A C++ static library for fine-grain profiling MPI programs. Measure each MPI routines & CPU time for each process with better visualization.
- Time MPI routines used in linked programs
- Render timed result in mpi_record.<process_id>
- In order to run MPI, you should have GNU C++ compiler (g++).
- For Windows users, you should start by installing MinGW Package Installer
- For Mac users, XCode has already (most of the time) had g++ pre-installed to you
- For Ubuntu users, you can download Homebrew and use the following command
brew install gcc
- MPICC/C++ is included with GNU package.
- To compile and get the static library
mpi_timer.a
, runmake
- To profile your program, compile & run it together with the generated
.a
file and supply number of threads:- For example, to profile
mpi_test.cpp
running with 4 tasks (processes), either way works:
make all SRC=mpi_test.cpp NP=4
or
mpic++ mpi_timer.a mpi_test.cpp -o run && mpirun ./run -np 4
- For example, to profile
- After compile & run, each timing result for each process p will be in
mpi_record.p
file - To clean object files, run
make clean
- To clean processes' records, run
make clean_all
- Dung Tuan Le
Computer Science major.
University of Rochester '21.
Kronos is MIT licensed.