diff --git a/asap-tools/README.md b/asap-tools/README.md index 472e679..8e2f555 100644 --- a/asap-tools/README.md +++ b/asap-tools/README.md @@ -12,6 +12,11 @@ A framework for running end-to-end distributed systems experiments on CloudLab, - Ubuntu - Python 3.8+ - Local clone of `ASAPQuery` repo (at `$REPO_ROOT`) + - Dependencies for running the experiment orchestrators (`experiment_run_e2e.py`, `experiment_run_clickhouse.py`, etc.): + ```bash + cd $REPO_ROOT/asap-tools/experiments + ./setup_dependencies.sh + ``` - **CloudLab:** - Active experiment with N nodes diff --git a/asap-tools/experiments/requirements.txt b/asap-tools/experiments/requirements.txt new file mode 100644 index 0000000..d6622c2 --- /dev/null +++ b/asap-tools/experiments/requirements.txt @@ -0,0 +1,10 @@ +hydra-core==1.3.2 +omegaconf==2.3.0 +Jinja2==3.1.2 +PyYAML==6.0.2 +humanize==4.9.0 +matplotlib==3.7.1 +msgpack==1.1.0 +numpy>=1.26,<2 +pandas==2.0.3 +plotnine==0.12.4 diff --git a/asap-tools/experiments/setup_dependencies.sh b/asap-tools/experiments/setup_dependencies.sh new file mode 100755 index 0000000..2fd8565 --- /dev/null +++ b/asap-tools/experiments/setup_dependencies.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +# Installs the dependencies needed to run the experiment orchestrators +# (experiment_run_e2e.py, experiment_run_clickhouse.py, etc.) from the local +# machine. These scripts only drive remote CloudLab nodes over ssh/rsync; all +# component installation on the nodes themselves is handled by +# asap-tools/deploy_from_scratch.sh. + +set -e + +THIS_DIR=$(dirname "$(readlink -f "${BASH_SOURCE[0]}")") + +sudo apt-get update +sudo apt-get install -y python3-pip rsync openssh-client +pip3 install --user -r "${THIS_DIR}/requirements.txt" + +# promql_utilities (used by post_experiment/) isn't on PyPI, install local editable copy +pip3 install --user -e "${THIS_DIR}/../../asap-common/dependencies/py/promql_utilities"