The only dependency you need is Docker (v27.4 or above). Quick download link: https://www.docker.com/products/docker-desktop/.
The commands below are targeted for Unix systems.
Please note that on some systems, Docker and Docker BuildX are packaged separately -- to build the image from scratch, you need Docker Buildx. On UNIX systems, your user should be added to the docker group to avoid needing sudo for Docker commands.
docker pull --platform linux/amd64 radu33/m3sa:m3sa-experiment
docker tag radu33/m3sa:m3sa-experiment m3sa-experimentgit clone https://github.com/atlarge-research/opendc-m3sa-reproducibility-capsule.git
cd opendc-m3sa-reproducibility-capsule
docker buildx build --platform linux/amd64 -t m3sa-experiment .You can now run the experiment(s) using the following command:
docker run --platform linux/amd64 --rm -v $(pwd):/app/reproduced m3sa-experiment experiment1docker run --platform linux/amd64 --rm -v $(pwd):/app/reproduced m3sa-experimentPlease note that the names of the figures match the figures from the technical report. The figures
4A,4B,4Cfrom the M3SA article are figures9A,9B,9Cfrom the output.
First, ensure that you have Python 3.12 or higher, and Java Runtime 21 installed on your system.
Next, run the following setup commands:
(cd bin/m3sa && python -m venv venv && . venv/bin/activate && pip install -r requirements.txt)
export VIRTUAL_ENV=bin/m3sa/venv
export PATH="${VIRTUAL_ENV}/bin:$PATH"
chmod +x m3sa-experiment
source "${VIRTUAL_ENV}/bin/activate"You can now run the experiment(s) using the following command:
./m3sa-experimentYou may additionally specify which experiment to run by providing the experiment name as an argument (from the list figure4, figure6, experiment1, experiment2, experiment3):
# Example: run only the experiment for Experiment 1,
# which produces figures A, B, and C in the paper
./m3sa-experiment experiment1