File | Description |
---|---|
CLoudlab deployment | Long list of commands that turns a fresh cloudlab instance into one ready for our evaluation experiments. Note that the script requires at least 2 restarts between stages and relevant sections must be run manually (just running the script once will not do it, todo:: automate later). Most steps in the script are optional for remote memory server but I have usually done them to just make the environment symetric |
benchmark.sh | Main benchmarking script used to generate raw data (spilled to disc as csvs in experiment_results). Usage is quite simple but below there also are some exaples |
analysis/experiment_helpers.py | Helper functions that turn raw ftrace/time/cgroup/nic and other collected data into metrics that we care about. Would be great to have the logic reviewed by someone else. This has been a source of bugs in the past |
analysis/oblivious.ipynb | Data exploration notebook. Uses the API from the helpers above |
cpp workloads | |
python workloads |
#Usage: sudo ./benchmark.sh experiment_name num_pages program_invocation
Exaples:
sudo ./benchmark.sh mmult_eigen_dot 528000 taskset -c $CPU ./cpp/mmult_eigen_dot 4 $((4096*4096*8)) dot
sudo ./benchmark.sh sort 33529 taskset -c $CPU ./cpp/sort 42 $((1<<25)) bitonic_sort false
RATIOS=20 sudo ./benchmark.sh sort_merge 262000 taskset -c $CPU ./cpp/sort_merge 42 $((1<<28)) bitonic_merge false