/PIAS-NS2

PIAS NS2 Simulation

Primary LanguageC++

PIAS-NS2

Installation

Download Network Simulator (NS) 2.34 and unzip it.

$ tar -zxvf ns-allinone-2.34.tar.gz

Copy pFabric.patch to the top ns-2.34 folder (ns-allinone-2.34) and apply the patch. Then install NS2.

$ cd ns-allinone-2.34
$ patch -p1 --ignore-whitespace -i pFabric.patch
$ ./install

Copy files in tcp folder to ns-allinone-2.34/ns-2.34/tcp/.

Copy files in queue folder to ns-allinone-2.34/ns-2.34/queue/.

Add queue/priority.o to ns-allinone-2.34/ns-2.34/Makefile.

Run make on /ns-allinone-2.34/ns-2.34.

Simulation Results

Please see our latest online version which is modified from the original NSDI version. In this new version, we update demotion threshold derivation and fix some bugs that may degrade the performance of PIAS.

Running Large-Scale Simulations

You can find simulation scrips in scripts folder:

There are many parameters to configue in run_[transport]_[workload].py. Note that you need to modify ns_path and sim_script correspondingly.

For each simulation, it will create a folder whose name is [workload]_[transport]_[load]. For example, if we run PIAS using the websearch workload at 90% load, we will get a folder named websearch_pias_90.

Each folder contains two files: flow.tr and logFile.tr. The flow.tr gives flow completion time results with the following format:

number of packets, flow completion time, number of timeouts, src ID, dst ID

You can use result.py to parse flow.tr files as follows:

$ python result.py -a -i [path]/flow.tr

Contact

If you have any question about PIAS simulation code, please contact Wei Bai.

Acknowledgements

We thank Mohammad Alizadeh for sharing pFabric simulation code.