Skip to content

A C++ static library for fine-grain profiling MPI programs.

License

Notifications You must be signed in to change notification settings

dle8/MPI-Profiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

453e62b Β· Mar 27, 2020

History

42 Commits
Mar 22, 2020
Mar 22, 2020
Mar 24, 2020
Mar 27, 2020
Mar 23, 2020
Mar 24, 2020
Mar 24, 2020
Mar 24, 2020
Mar 24, 2020
Mar 24, 2020
Mar 23, 2020
Mar 24, 2020

Repository files navigation

A C++ static library for fine-grain profiling MPI programs. Measure each MPI routines & CPU time for each process with better visualization.

πŸ“š Table of contents

βš™ Technical stack

πŸš€ Features

  • Time MPI routines used in linked programs
  • Render timed result in mpi_record.<process_id>

⬇ Installation

  • 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.

πŸ“‹ Usage

  • To compile and get the static library mpi_timer.a, run make
  • 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
  • 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

πŸ‘¨β€πŸ’» Contributors

  • Dung Tuan Le
    Computer Science major.
    University of Rochester '21.

πŸ“„ License

Kronos is MIT licensed.

About

A C++ static library for fine-grain profiling MPI programs.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published