-
Notifications
You must be signed in to change notification settings - Fork 17
install and experiments CODES v1.5.0
You can download the latest installation script in CODES-compile-instructions.sh (you can find the script to install the current CODES version (v1.5.0) in here).
Make sure you have MPICH installed (needed for Conceptual/Union support) or OpenMPI (disable union support in the script). Common additional libraries should be installed too, including: libtool, autoconf, Python 2.7 and boost.
By default, the script will try to download and compile CODES, required libraries and some optional libraries. You can disable two libraries CODES uses in the script by changing their flag to 0 from 1:
swm_enable=0
union_enable=0To compile CODES, just drop the script in a new folder and run:
bash CODES-compile-instructions.shWhen you compile CODES with SWM and Union support, you can simulate real life workload behavior on the simulated computer nodes. The executable that will spawn these simulations will be at: codes/build//src/model-net-mpi-replay. The applications that you can run with it include:
- MILC: MIMD Lattice Computation
- Jacobi3D: 3D Jacobi iterative solver
- LAMMPS: Large-scale Atomic/Molecular Massively Parallel Simulator
Additionally, without SWM or SWM you can run one of several network noise patterns, including:
- Uniform random traffic
- Nearest group traffic
- Nearest neighbor traffic
Configuring CODES to run an experiment is challenging. There are multiple configuration files to modify in order to determine what to run and how to run it. In order to make it simple, we provide a list of
The repo https://github.com/CODES-org/experiments offers a series of preconfigured experiments.
Clone experiments repo:
git clone https://github.com/CODES-org/experiments
cd experiments
git checkout a38b870 # Current version, as of time of writing, works with v.1.5.0Use run-experiment.sh to run any of the scripts available. run-experiment.sh sets up some important global environment variables that the scripts can use. run-sbatch.sh sets up an enviroment too for a system where slurm is available. Not all experiment scripts are designed to work with sbatch, but those that do can be run with both run-experiment and run-sbatch. This is just to make life easier when you are testing in different environments.
Example of running an experiment:
bash run-experiment.sh mpi_replay_py/run_mpi_collecting_data_experiments.pyThis script runs six experiments with different mixes of the three applications (MILC, Jacobi3D and LAMMPS) and uniform random noise at different intensities.
The output of running the experiment will be stored in mpi_replay_py/results/exp-XXX where XXX is an increasing number starting at 001. Every single time you run the experiment above, it will create a new folder with results. In the results folder you will find both the configuration files passed to codes/build//src/model-net-mpi-replay and the results of running the experiment.
These six experiments save some statistics gathered during the simulation. To visualize them, you can use:
# visualizing iterations (aggregated per job)
python visualizing_jobs/print-iterations.py --legends "job 0" "job 1" "job 2" -- mpi_replay_py/results/exp-001/dfly-72-01-jacobi12-milc10-milc30-ur6/exec_output/iteration-logs
# visualizing packet latency (aggregated over a window of time)
python ../codes/scripts/reproducibility-pads23/python-scripts/plot-packet-latency.py plotfromraw --latencies-dir mpi_replay_py/results/exp-001/dfly-72-01-jacobi12-milc10-milc30-ur6/exec_output/packet_latency --start 0 --end 9.3e7