-
- Setup
-
- Simuation Instructions
-
- Plotting Instructions
- Download omnet++ version 4.6 by git clone
- Download Homa Source
- Implement PBS based on above two sources.
-
Get into the omnettpp-4.6 directory
cd omnetpp-4.6 -
set enviroment
. setenv -
open
~/.bash_profileand add the following lineexport PATH=$PATH:$HOME/omnetpp-4.6/bin -
use
.bash_profilesource ~/.bash_profile -
Run the configuriation
NO_TCL=1 ./configure -
compile omnettpp-4.6
make MODE=release -
Copy the diff patch below into a file (eg. patch.diff) and apply it to OMNeT++ directory and rebuild OMNeT++ from the directory (.../omnetpp-4.6$ patch -p1 < patch.diff).
-
Since the source code is changed, the code needs to be recompiled. So, repeat step 5 and 6.
-
change to init directory.
cd inet -
Generate makefiles
make makefiles -
Build the release version.
make MODE=release -
Note:If you get the error: "In file included from inet/common/serializer/sctp/SCTPSerializer.cc:28:0: ./inet/common/serializer/sctp/headers/sctphdr.h:415:22: error: flexible array member in union uint8_t info[];", you have just to modify the code in the sctphdr.h and make it:
*uint8_t info [128];*More details here: stack overflow
-
(Optional) Run some specific examples by changing into the example's directory and executing
./run
-
Change to homatranport directoty. (Note: Default home directory should Research becuase some problem require the path name to Start with Research. So, if you copy from the repository, you can move the Research folder within home directory.)
~/Research/RpcTransportDesign/OMNeT++Simulation/homatransport -
Generate makefiles.
make makefiles -
Build the release version, and the executablle name is homatransport under
~/Research/RpcTransportDesign/OMNeT++Simulation/homatransport/srcmake MODE=release -
Run some examples. Get into dcntop folder and run the following command:
../homatransport -u Cmdenv -c WorkloadHadoop --r_alpha=100 --r_mode=homa -r 15 -n ..:../../simulations:../../../inet/examples:../../../inet/src -l ../../../inet/src/INET homaTransportConfig.ini -
Notes:
- homatransport: executable name
- -u Cmdenv: using command line argument
- -c WorkloadHadoop: workload type which is defined in config file
- --r_alpha=100: config PBS alpha number (Used by PBS schuding policy)
- --r_mode=homa: transport type (homa, aware, blind (Note: aware, and blind are used by PBS))
- -r 15: running number to specify loading factor(more details in config file)
- -n ..:../../simulations:../../../inet/examples:../../../inet/src -l ../../../inet/src/INET: using inet
- homaTransportConfig.ini: specified config file, users can defined their own config file by following OMNET++ documentation.
nohup ../homatransport -u Cmdenv --output-scalar-file="~/ResultDir/allrpc_blind_1000.sca" -c WorkloadHadoop --r_alpha=2 --r_mode=blind -r 15 -n ..:../../simulations:../../../inet/examples:../../../inet/src -l ../../../inet/src/INET allrpcTransportConfig.ini &
../homatransport -u Cmdenv --output-scalar-file="~/ResultDir/allrpc_blind_1000.sca" -c WorkloadHadoop --r_alpha=2 --r_mode=blind -r 15 -n ..:../../simulations:../../../inet/examples:../../../inet/src -l ../../../inet/src/INET allrpcTransportConfig.ini
../homatransport -u Cmdenv --output-scalar-file="~/ResultDir/allrpc_blind_1000.sca" --output-vector-file="~/ResultDir/allrpc_blind_1000.vci" -c WorkloadHadoop --r_alpha=2 --r_mode=blind -r 15 -n ..:../../simulations:../../../inet/examples:../../../inet/src -l ../../../inet/src/INET allrpcTransportConfig.ini
Note: the output file will be in ~/ResultDir/
-
install R packages:
sudo apt install r-base -
Then, run
Rto install the following 3 packages:
install.packages("gridExtra")
install.packages("ggplot2")
install.packages("reshape2") -
Go to the following directory:
cd ~/Research/RpcTransportDesign/OMNeT++Simulation/analysis/PlotScript -
Run the following python script:
python PlotDigester.py --plotType StretchVsTransport --resultDir
-
Note: appending the destination resultDir at the end of the command line. Also, fileList.txt should be created in the result directoty, the following sample structure of the result directory:
mkunal@node-1:~/Research/RpcTransportDesign/OMNeT++Simulation/homatransport/src/dcntopo/results/blind$ tree
.
├── blind10
│ └── allrpc_blind_10.sca
├── blind2
│ └── allrpc_blind_2.sca
├── blind2.5
│ └── allrpc_blind_2.5.sca
├── blind5
│ └── allrpc_blind_5.sca
└── fileList.txtmkunal@node-1:~/Research/RpcTransportDesign/OMNeT++Simulation/homatransport/src/dcntopo/results/blind$ cat fileList.txtblind10/allrpc_blind_10.sca
blind2.5/allrpc_blind_2.5.sca
blind2/allrpc_blind_2.sca
blind5/allrpc_blind_5.sca
-
If the command line does not generate the graph, then following the following steps:
cd PlotScripts && mkdir plots -
To ensure the strechVsTransport.txt in the current directory, which
is generated by the python parser file from above command. Run the
following command to generate ggplot2 graph:
Rscript PBS_Transprit.r
And the result graphs are in the plots directory. -
Copy the pdf file to the local machine:
scp username@ip_address:~/Research/RpcTransportDesign/OMNeT++Simulation/analysis/PlotScripts/plots/TailStretchVsTransport_rho0.8.pdf .