This is the official repository to reproduce the simulation results of the paper "MINA: Fine-grained In-network Aggregation Resource Scheduling for Machine Learning Service" (accepted by INFOCOM 2025, to be published).
git submodule update --init
./vcpkg/bootstrap-vcpkg.sh
./vcpkg/vcpkg install nlohmann-json
To generate figures, a Python environment with numpy
, matplotlib
, and tqdm
is required.
All experiments are compiled with Apple clang v12.0.5 targeting arm64-apple-darwin24.1.0 and run on MacBook Pro M1. Although experiments are deterministic, the results may vary on different platforms.
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build . --parallel
cd ..
Before running the experiments, make sure the working directory is the root of this project.
For Figure "Overall performance of MINA".
build/mina_sim large-scale-simulation
python scripts/visualize_large_scale_simulation.py
For Table "Results of ablation study".
build/mina_sim ablation-study
For Figure "Sharing performance".
build/mina_sim sharing
python scripts/visualize_sharing_policy.py
For Figure "Performance and overhead of tree building algorithm".
build/mina_sim tree-building
python scripts/visualize_tree_building.py
For Figure "Relationship between tree conflicts and host fragments".
build/mina_sim tree-conflicts
python scripts/visualize_tree_conflicts.py
For Figure "Performance of job placement algorithm with different oversubscription ratios".
build/mina_sim job-placement
python scripts/visualize_job_placement.py
For Figure "Relationship between algorithm bandwidth and duration of one training step".
build/mina_sim accelerate-effectiveness
python scripts/visualize_accelerate_effectiveness.py
For "Overhead of host coordination" in Section 6.4 "Overhead Measurement".
build/mina_sim sharing-overhead