Multi-ApplicationOnlineProfiling
2.1
|
In order to retrieve data from MPI execution, MALP runs the application and an analyser within the same MPI context (same mpirun command). When two programs run in the same MPI context, they share the same MPI_COMM_WORLD communicator, but as MALP must be able to profile MPI application without modifications, this is not acceptable : this shows the need to introduce MPI virtualization.
MALP can be described with 3 main parts :
The virtual MPI environment consists in adding a layer between MPI applications and the MPI library in order to isolate the profiled program into its own environment. It is mainly set up by replacing the MPI_COMM_WORLD communicator by one which is "local" to each program. A new communicator is also introduced in order to allow communications between two seperate programs launched in the same MPI context : MPI_COMM_UNIVERSE (used to exchange data between instrumentation and analyzer).
This is basically done by wrapping the MPI functions and replacing the communicator on the fly.
See Virtual MPI for more information
Instrumentation is performed at run time by replacing wanted functions by wrapped ones which perform per call analysis (duration etc.) and send data to the analyser.
The wrapped function are :
The Analyzer is the program which runs in the same MPI context as the profiled program. It waits for instrumentation events and process them. The Analyser consists of different parts :
See Launcher to get informations about how to launch.