Overview
Participants
News
Demo
Links
Current Spec

 

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.