Permalink
Browse files

* Started working on parallelization of NGOA simulation.

  • Loading branch information...
1 parent 66ba0d0 commit 14b70fb27d9bba75f0552523f0e42dd532259075 @kyeongsoo committed Apr 12, 2011
View
@@ -65,6 +65,9 @@ Note:
in the "src" directory. To use the shared library you can use the "opp_run"
command to load it dynamically. Open the "src/run_inet" script to see how
to do it.
+- To create a single executable (i.e., inet) when OMNeT++ was compiled
+ with static library option, remove "-make-so" from the top-level
+ 'Makefile'.
- If you add/remove files/directories later in the src directory, you MUST
re-create your makefile. Run "make makefiles" again if you are building
from the command line. (The IDE does it for you automatically)
View
@@ -10,9 +10,12 @@ cleanall: checkmakefiles
rm -f src/Makefile
makefiles:
+### To create a shared library
# cd src && opp_makemake -f --deep --make-so -o inet -O out $$NSC_VERSION_DEF
# cd src && opp_makemake -f --deep --make-so -o inet -O out $$NSC_VERSION_DEF -I$(OMNETPP_ROOT)/include/platdep -I$(OMNETPP_ROOT)/src/common
- cd src && opp_makemake -f --deep --make-lib -o inet -O out $$NSC_VERSION_DEF -I$(OMNETPP_ROOT)/include/platdep -I$(OMNETPP_ROOT)/src/common
+### To create a single executable
+# cd src && opp_makemake -f --deep -o inet -O out $$NSC_VERSION_DEF
+ cd src && opp_makemake -f --deep -o inet -O out $$NSC_VERSION_DEF -I$(OMNETPP_ROOT)/include/platdep -I$(OMNETPP_ROOT)/src/common
checkmakefiles:
@if [ ! -f src/Makefile ]; then \
@@ -0,0 +1,137 @@
+#
+# Copyright (C) 2010-2011 Kyeong Soo (Joseph) Kim. All rights reserved.
+#
+# This ini file provides architecture-specific configurations
+# for a hybrid TDM/WDM-PON architectures for the comparison study
+# of next-generation optical access (NGOA) architectures.
+#
+# Note that [General] section, i.e., configurations common to all
+# architectures including those of traffic models, is provided by
+# "General.ini".
+#
+# References
+# [1] N. K. Shankaranarayanan, Z. Jiang, and P. Mishra, "User-perceived
+# performance of web-browsing and interactive data in HFC cable access
+# networks," Proc. of ICC, June 2001.
+#
+
+
+### [General] section providing configurations common to all network architectures
+include ../General.ini
+
+
+### parallel simulation
+parallel-simulation = true
+parsim-communications-class="cMPICommunications"
+parsim-synchronization-class = "cNullMessageProtocol"
+*.server**.partition-id = 0
+*.olt**.partition-id = 0
+*.awg**.partition-id = 0
+*.onu[0]**.partition-id = 1
+*.host[0]**.partition-id = 1
+*.onu[1]**.partition-id = 2
+*.host[1]**.partition-id = 2
+###
+
+
+[Config HybridPonBase]
+########################################################################
+### Architecture-Specific Settings
+########################################################################
+network = inet.examples.ngoa.comparison_framework.parsim.HybridPon
+result-dir = results/HybridPon
+
+########################################################################
+### NIC (of ONUs, OLT)
+########################################################################
+
+#################################
+# Hybird PON settings
+#################################
+#**.numTransmitters = 2 # number of OLT transmitters (tx)
+#**.numReceivers = 1 # number of OLT receivers (rx)
+#**.onuTimeout = ${ot=10}ms # ONU timeout (ot) (default is 1 ms)
+**.olt.scheduler.voqSize = 121440000b # corresponding to 10,000 maximum size (1518 bytes) Ethernet frames; based on RTT(10ms)*BW(10G) (default is 80 Mb)
+**.onu.mac.queueSize = 121440000b # corresponding to 10,000 maximum size (1518 bytes) Ethernet frames; based on RTT(10ms)*BW(10G) (default is 80 Mb)
+
+
+[Config Default]
+extends = HybridPonBase
+result-dir = results/HybridPon/Default
+*.N = ${N=16,32,64} # number of ONUs
+*.n = ${n=1..10} # number of hosts per ONU
+#*.distribution_rate = ${dr=10}Gbps # rate of distribution fiber
+#*.feeder_rate = ${dr}Gbps # rate of feeder fiber
+**.numTransmitters = ${tx=1..5} # number of transmitters (tx)
+**.numReceivers = ${tx} # number of receivers (rx)
+*.backbone_rate = ${br=100, 1000}Gbps # rate of backbone link
+#*.backbone_delay = ${bd=4.7}ms # delay in backbone network (total RTT = 10 ms)
+
+
+[Config Test]
+extends = Default
+result-dir = results/HybridPon/Test
+sim-time-limit = 30min
+
+
+[Config N16_10h]
+extends = HybridPonBase
+result-dir = results/HybridPon/N16_10h
+sim-time-limit = 10h
+*.N = ${N=16} # number of ONUs
+*.n = ${n=1..10} # number of hosts per ONU
+#*.distribution_rate = ${dr=10}Gbps # rate of distribution fiber
+#*.feeder_rate = ${dr}Gbps # rate of feeder fiber
+**.numTransmitters = ${tx=1..5} # number of transmitters (tx)
+**.numReceivers = ${tx} # number of receivers (rx)
+*.backbone_rate = ${br=100, 1000}Gbps # rate of backbone link
+#*.backbone_delay = ${bd=4.7}ms # delay in backbone network (total RTT = 10 ms)
+
+
+[Config Debug_N2]
+extends = HybridPonBase
+result-dir = results/HybridPon/Debug_N2
+*.N = ${N=2} # number of ONUs
+*.n = ${n=1} # number of hosts per ONU
+**.numTransmitters = ${tx=2} # number of transmitters (tx)
+**.numReceivers = ${tx} # number of receivers (rx)
+*.backbone_rate = ${br=100}Gbps # rate of backbone link
+sim-time-limit = 5min
+
+
+[Config Debug_N2_video]
+extends = Debug_N2
+**.host[*].numHttpApps = 0
+**.host[*].numFtpApps = 0
+sim-time-limit = 10min
+warmup-period = 2min
+
+
+[Config Debug_N16]
+extends = N16_10h
+result-dir = results/HybridPon/Debug_N16
+sim-time-limit = 5min
+warmup-period = 0min
+
+
+[Config N32_10h]
+extends = HybridPonBase
+result-dir = results/HybridPon/N32_10h
+sim-time-limit = 10h
+*.N = ${N=32} # number of ONUs
+*.n = ${n=1..10} # number of hosts per ONU
+#*.distribution_rate = ${dr=10}Gbps # rate of distribution fiber
+#*.feeder_rate = ${dr}Gbps # rate of feeder fiber
+**.numTransmitters = ${tx=1..5} # number of transmitters (tx)
+**.numReceivers = ${tx} # number of receivers (rx)
+*.backbone_rate = ${br=100, 1000}Gbps # rate of backbone link
+#*.backbone_delay = ${bd=4.7}ms # delay in backbone network (total RTT = 10 ms)
+
+
+[Config Parsim_N2]
+extends = Debug_N2
+result-dir = results/HybridPon/Parsim_N2
+sim-time-limit = 30min
+*.server.routingFile = "server.irt"
+*.host[0].routingFile = "host0.irt"
+*.host[1].routingFile = "host1.irt"
@@ -0,0 +1,97 @@
+//
+// Copyright (C) 2004 Andras Varga
+// Copyright (C) 2010-2011 Kyeong Soo (Joseph) Kim
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation; either version 2
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+//
+
+
+package inet.examples.ngoa.comparison_framework.parsim;
+
+//import inet.networklayer.autorouting.FlatNetworkConfigurator;
+import inet.nodes.inet.StandardHostWithEthernetInterface2;
+import inet.nodes.inet.StandardHost3WithEthernetInterface2;
+import inet.nodes.inet.StandardServerWithEthernetInterface2;
+import inet.nodes.hybridpon.Olt;
+import inet.nodes.hybridpon.Onu;
+import inet.nodes.hybridpon.LambdaSplitter;
+
+
+//
+// Defines a hybrid TDM/WDM-PON architecture for a comparison
+// study of next-generation optical access (NGOA) architectures.
+//
+// @author Kyeong Soo (Joseph) Kim <kyeongsoo.kim@gmail.com>
+// @date 2011-03-14
+//
+network HybridPon
+{
+ parameters:
+ int N = default(16); // number of subscribers (ONUs)
+ int n = default(1); // number of hosts (users) per ONU (subscriber)
+ double uni_rate @unit(bps) = default(10Gbps); // transmission rate of ONU Ethernet UNIs
+ double uni_delay @unit(s) = default(0s); // no delay at UNIs
+ double distribution_rate @unit(bps) = default(10Gbps); // transmission rate of distribution fiber (between Onu and LambdaSplitter)
+ double distribution_delay @unit(s) = default(150us); // default delay of 150 us corresponds to 30 km fiber
+ double feeder_rate @unit(bps) = default(10Gbps); // transmission rate of feeder fiber (between Olt and LambdaSplitter)
+ double feeder_delay @unit(s) = default(150us); // default delay of 150 us corresponds to 30 km fiber
+ double backbone_rate @unit(bps) = default(100Gbps); // transmission rate of backbone link (between Olt and server)
+ double backbone_delay @unit(s) = default(4.7ms); // default delay of 4.7 ms gives total RTT of 10 ms including delays in feeder and distribution fiber
+ @display("bgb=519,184");
+ submodules:
+ // configurator: FlatNetworkConfigurator {
+ // parameters:
+ // @display("p=52,42");
+ // }
+ server: StandardServerWithEthernetInterface2 {
+ parameters:
+ @display("p=464,119;i=device/server_l");
+ gates:
+ ethg[1];
+ }
+ olt: Olt {
+ @display("p=355,119");
+ gates:
+ ethg[1];
+ phyg[N];
+ }
+ awg: LambdaSplitter {
+ parameters:
+ @display("p=239,119");
+ gates:
+ demuxg[N];
+ muxg[N];
+ }
+ onu[N]: Onu {
+ @display("p=131,119");
+ gates:
+ ethg[n];
+ }
+ host[N*n]: StandardHost3WithEthernetInterface2 {
+ parameters:
+ @display("i=device/laptop;p=46,119");
+ gates:
+ ethg[1];
+ }
+ connections:
+ for i=0..N-1, for j=0..n-1 {
+ host[i*n+j].ethg[0] <--> { delay = uni_delay; datarate = uni_rate; } <--> onu[i].ethg[j];
+ }
+ for i=0..N-1 {
+ onu[i].phyg <--> { delay = distribution_delay; datarate = distribution_rate; } <--> awg.demuxg[i];
+ awg.muxg[i] <--> { delay = feeder_delay; datarate = feeder_rate; } <--> olt.phyg[i];
+ }
+ olt.ethg[0] <--> { delay = backbone_delay; datarate = backbone_rate; } <--> server.ethg[0];
+}
@@ -0,0 +1,19 @@
+comparsion_framework parallel simulation
+========================================
+
+Shortdesc: parallel simulation extension of 'comparison_framework'
+Author: Kyeong Soo (Joseph) Kim (kyeongsoo.kim@gmail.com)
+License: GPL
+Requires: OMNeT++ (version 4.1 or later)
+ INET-HNRL (release inet-hnrl_20100705 or later)
+
+
+1. OMNeT++ Installation
+
+
+
+2. INET-HNRL Installation
+
+
+
+3. Parallel Run
Oops, something went wrong.

0 comments on commit 14b70fb

Please sign in to comment.