- For testbed setup and experiments please refer to
TESTBED.md
- This has been tested on Ubuntu 22.04 with Python 3.10.12.
- It is assumed that Python 3.10.12 can be invoked with
python3.
- Run
bash setup.shand follow all prompts.
- Run
jupyter notebook regenerate_plots.ipynband execute the cells to (re)generate plots from our paper
- Run
python3 simulation/sim.py -workload themis1 -num_gpus 64 -num_apps 500 -scheduling_policy FIFO -output_file FIFO_toy_result.csvto run a simulation with a FIFO scheduler, 500 applications sampled from the themis workload on a 64 GPU cluster - Run
python3 simulation/utils/result_summary.py -fnames FIFO_toy_result.csvto get the summary statistics
- Run
bash run_toy_example.shto run and compare FIFO, SRSF, PCS-pred, PCS-bal, PCS-jct with the same workload/configurations as in the previous example
- Run
bash run_workload2.sh - Once the script finishes, you can use
figure7_plot.ipynbto analyze and plot figure 7a,7b
- Run
bash run_workload3.sh - Once the script finishes, you can use
figure8_plot.ipynbto analyze and plot figure 8a,8b
- Run
bash profile_time_per_sim.sh - Once the script finishes, you can use
figure9a_plot.ipynbto analyze and plot figure 9a
- Run
bash profile_sensitivity_error_in_size.sh - Once the script finishes, you can use
figure10_plot.ipynbto analyze and plot figure 10a,10b
- Run
python3 reproduce.py -hto see which traces and workloads are acceptable for correct usage. - It will also show you additional simulation configuration parameters.
The PDF of the paper is also available
- Upon running
python3 reproduce.py <workload>, you will be shown an interactive figure showing the pareto front. - Click a point on the pareto front and click
Create Config. This will generate a configuration file for a simulation which will then run. The simulation results are displayed at the end.