11. Running Extrae on top of PnMPI¶
11.1. Introduction¶
Most tools targeting MPI rely on the MPI Profiling Interface (PMPI), which
allows tools to transparently intercept invocations to MPI routines and with
that to establish wrappers around MPI calls to gather execution information.
However, the usage of this interface is limited to a single tool. PnMPI
eliminates the restriction of a single PMPI tool layer per execution. It can
dynamically load and chain multiple PMPI tools into a single tool stack and then
interject this complete stack between the target application and the library
without changing the view for each individual tool. It enables the user to
combine arbitrary MPI tools without having to reimplement them. When Extrae is
operating through LD_PRELOAD
interposition it also supports to run on
top of PnMPI.
11.2. Instructions to run with PnMPI¶
Extrae tracing libraries have to be processed with the patch tool that comes included with PnMPI. Just run this utility, passing as argument the tracing library that you want to load under the PnMPI environment and the output name for the patched library.
$PNMPI_HOME/patch/patch libmpitrace.so libmpitrace-pnmpi.so
At execution time the PNMPI_CONF
environment variable has to be
defined, pointing to a file that specifies all the tools that will be loaded
with PnMPI.
export PNMPI_CONF=$PNMPI_HOME/demo/.pnmpi-conf
In this file we have to add the patched tracing library at the beginning of the list.
module libmpitrace-pnmpi
module another-tool
...