Skip to content

Commit 1388095

Browse files
chore(tools): add script to install local dependencies for experiment orchestrators (#406)
* dev(tools): add script to install local dependencies for experiment orchestrators experiment_run_e2e.py and experiment_run_clickhouse.py had no documented or scripted way to install the Python packages they need to run locally (hydra-core, omegaconf, Jinja2, PyYAML). Fixes #399 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * added more packages --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent c77cf60 commit 1388095

3 files changed

Lines changed: 33 additions & 0 deletions

File tree

‎asap-tools/README.md‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@ A framework for running end-to-end distributed systems experiments on CloudLab,
1212
- Ubuntu
1313
- Python 3.8+
1414
- Local clone of `ASAPQuery` repo (at `$REPO_ROOT`)
15+
- Dependencies for running the experiment orchestrators (`experiment_run_e2e.py`, `experiment_run_clickhouse.py`, etc.):
16+
```bash
17+
cd $REPO_ROOT/asap-tools/experiments
18+
./setup_dependencies.sh
19+
```
1520

1621
- **CloudLab:**
1722
- Active experiment with N nodes
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
hydra-core==1.3.2
2+
omegaconf==2.3.0
3+
Jinja2==3.1.2
4+
PyYAML==6.0.2
5+
humanize==4.9.0
6+
matplotlib==3.7.1
7+
msgpack==1.1.0
8+
numpy>=1.26,<2
9+
pandas==2.0.3
10+
plotnine==0.12.4
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#!/bin/bash
2+
3+
# Installs the dependencies needed to run the experiment orchestrators
4+
# (experiment_run_e2e.py, experiment_run_clickhouse.py, etc.) from the local
5+
# machine. These scripts only drive remote CloudLab nodes over ssh/rsync; all
6+
# component installation on the nodes themselves is handled by
7+
# asap-tools/deploy_from_scratch.sh.
8+
9+
set -e
10+
11+
THIS_DIR=$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")
12+
13+
sudo apt-get update
14+
sudo apt-get install -y python3-pip rsync openssh-client
15+
pip3 install --user -r "${THIS_DIR}/requirements.txt"
16+
17+
# promql_utilities (used by post_experiment/) isn't on PyPI, install local editable copy
18+
pip3 install --user -e "${THIS_DIR}/../../asap-common/dependencies/py/promql_utilities"

0 commit comments

Comments
 (0)