|
|
Using PERUSE To Interpret Detailed Timings of A Message Transfer
(application is mpi_late_wait)
|
| Annotated Transfer |
 |
| Figure 1: Paraver result from this application
using this Paraver Tracefile
and this Paraver Configuration File .
|
| States |
 |
| Figure 2: The state as is selecting only the PERUSE events. We identify
that despite the communication line goes from the Isend to the receiver Wait,
the communication (marked as peruse state - some kind of brown) is concentrated on
more or less the first half. We can identify also some additional PERUSE events during
the communication. (application=mpi_late_wait.c,
tracefile=peruse_example.prv,
config_file=peruse_example.pcf)
|
| MPI Calls |
 |
| Figure 3: The MPI calls view to correlate the area to the MPI calls. We
can see that as the MPI library is threaded, the communication takes place while the
receiver was outside MPI on the usleep call.
(application=mpi_late_wait.c,
tracefile=peruse_example.prv,
config_file=peruse_example.pcf)
|
| Transfer Continue Events |
 |
| Figure 4: The PERUSE_COMM_REQ_XFER_CONTINUE, that in fact are the flags
within the peruse state that we identified in the first view.
(application=mpi_late_wait.c,
tracefile=peruse_example.prv,
config_file=peruse_example.pcf)
|
| States With Transfer |
 |
| Figure 5: The state as is view selecting only the events of
PERUSE_COMM_REQ_XFER_BEGIN and PERUSE_COMM_REQ_XFER_END, quite similar to the first
view, but delimiting the transfer with the flags.
(application=mpi_late_wait.c,
tracefile=peruse_example.prv,
config_file=peruse_example.pcf)
|
- Acknowledgements: Tracefile and sample source code are due to
Rainer Keller. Visualization graphics
were generated with Paraver, an advanced
tool created by the folks at CEPBA.
The PERUSE-enabled MPI used was Open MPI.
|
|