/akypuera

a library to trace mpi applications and generate paje trace files

Primary LanguageCGNU General Public License v3.0GPL-3.0

Akypuera

Akypuera is a tracing library for MPI applications released under GPLv3. Throughout the years, it has become also a repository for a plethora of converters from OTF2, TAU, Paraver file formats to the Paje file format. The library, simplified as aky (linked with -laky to MPI apps), uses librastro to provide low memory footprint and low intrusion during tracing. The binary trace files are converted to the Paje file format using the tool called aky_converter. Akypuera is a word from the tupi language that means trace.

Akypuera has support for both OMPI (a real MPI implementation) and SMPI (the SimGrid's MPI interface to simulate MPI applications), but not at the same time. So if you want to trace OMPI, you need to -DSMPI=OFF and use mpicc to compile your application. If you want to trace SMPI, you need to -DSMPI=ON and then use smpicc. More details on this page of the Akypuera's wiki to know how to configure aky with SMPI.

Below we list a quick hands-on with aky. Refer to Akypuera's wiki for extra details.

Installation

No special dependencies are required. Other dependencies are included in this repository as git submodules so cloning as below should be sufficient to take them automatically. We recommend an out-of-source compilation (run ccmake on the build directory to customize the compilation/installation):

git clone --recursive git://github.com/schnorr/akypuera.git
mkdir build
cd build
cmake ..
make

Utilization

There are many ways. If your MPI application is already compiled simply do:

LD_PRELOAD=/path/to/libaky.so:/path/to/libmpi.so.1 mpirun -np n ./myapp

If you have access to the MPI application source code, you can use aky like this:

mpicc source_file.c -o mpi_app -laky 

When executing, you might want to specify the LD_LIBRARY_PATH to contain the path to libaky.so. The execution will create a binary trace file in the rastro format for each MPI process. A run with 3 processes generate these files: rastro-0-0.rst, rastro-1-0.rst, and rastro-2-0.rst. Trace files created with akypuera are converted to the Paje generic format using aky_converter, passing as parameter all the rst files generated by the mpi execution. The corresponding paje trace file is printed on stdout.

aky_converter rastro*.rst

Trace file converters

Akypuera is bundled with a bunch of other tools for trace file conversions towards the Paje file format. See the Akypuera's wiki for a detailed description of how to configure, build, and use each of them. Here's a quick list of them:

Deprecated converters

  • otf2paje: Converts from the OTF trace file format to the Paje's generic file format. More about otf2paje. This tool is currently deprecated and kept only for historical reasons. You might want to consider the adoption of the Open Trace Format 2 (OTF2) trace file format if you are coming from the OTF world (see next point).

  • otf22paje: Converts from the OTF2 trace file format to Paje's generic file format. More about otf22paje. The tool relies on the OTF2 library released with ScoreP. Since the API for reading the binary format of OTF2 traces change very often, any help to keep it updated is very appreciated. As of now, we rely on custom scripts (written in bash, perl, and julia) that exploit the more stable output of the otf2-print tool. So far, we have been using such scripts to convert OpenMP traces created with ScoreP; they are available at this directory. The perl and julia versions are recommended.