This repository contains the code necessary to reproduce the results presented in the "SRPT-based Congestion Control for Flows with Unknown Sizes" paper; specifically, Figures 4 and 5.
-
NS2-simulator
cd ns2 mkdir cmake-build-release cd cmake-build-release cmake .. -DCMAKE_BUILD_TYPE=Release make cd ../..
-
Auxiliary oracle-fct executable
cd scripts/plot_generation mkdir cmake-build-release cd cmake-build-release cmake .. -DCMAKE_BUILD_TYPE=Release make cd ../../../
Preparation:
export DEV_NS_DIR=$PWD/ns2
cd scripts # change to scripts dir
Running actual simulations:
python -m congestion_runner.run --scale final --control ascc\
--buffer ascc --input web_search --slacks default --load 0.8 --alpha 2.0
# see the description of CLI arguments below
The simulation results would be available in the results
folder.
Below we provide a detailed description of the CLI arguments.
-
Algorithms:
-
PIAS:
--buffer pias --control pias
-
aSCC:
--buffer ascc --control ascc
-
pFabric:
--buffer pfabric --control pfabric_clairvoyant
-
LAS:
--buffer las --control pias
-
-
Inputs:
-
Web Search:
--input web_search
-
Data Mining:
--input data_mining
-
-
Parameter specification:
- Load:
--load 0.8
- Alpha:
--alpha 1.0
- Load:
-
Other mandatory arguments:
--scale final --slacks default
Preparation
mkdir plots
export PLOT_PATH=$PWD/plots
cd scripts
Generating plot data in .csv
format:
# use same --control --buffer --input and --alpha parameters as for
# running simulations
python -m plot_generation.generate_plots --aspect load --value 0.8\
--scale final --control ascc --buffer ascc --input web_search\
--slacks default --alpha 2.0
The above command would create a .csv
fail in the PLOT_PATH
dir.
It is possible to generate csv for a range of parameters, which only requires
to specify --value
multiple times. Set --aspect
to either load
or alpha
to control which parameter to vary