Measures the latency between each pair of MPI ranks using various kernels.
The results are stored as hdf5 files.
To analyze the data, use the provided r-script load_and_process.r
This project uses cmake to setup the build environment. It depends on Boost (program_options, log) and a build of DASH-MPI which is available on GitHub: https://github.com/dash-project/dash When everything is set up correctly, run build.sh to build the project using cmake.
If your version of Boost is too new, cmake might not detect the dependencies correctly. Hence the application does not link correctly.
In this case, uncomment the provided workaround in CMakeLists.txt
.
For the collection of the data run the application with mpiexec ./all-pairs <params>
. The output files are placed in the current directory.
As this application uses parallel I/O, run it on a parallel filesystem only.
For the postprocessing see the README in the r-scripts folder.
To show all options, run all-pairs --help
Feel free to write your own kernels by extending AllPairsKernel
or a subclass of it.
Run on 20 haswell nodes of SuperMUC, using intel MPI. The cassis switches (3) can be easily seen as light blue blocks.
Run on 5 nodes of Hazel Hen using cray MPI. The schedule is disadvantageous because the nodes are split over two groups of the dragonfly interconnect.