We present the design and implementation of a debugging tool that displays a message-passing graph of the execution of an MPI application. Parts of the graph can be hidden or highlighted based on the stack trace, calling process or communicator of MPI calls. The tool incorporates several features enabling developers to explicitly control the ordering of message-passing events during the execution, and test that reordering these events does not compromise the correctness of the computations. In particular, we describe an automated running mode that detects competing sends matching the same wildcard receive and enables the developer to choose which execution path should be followed by the application.
['Basile Schaeli', 'Ali Al-Shabibi', 'Roger D. Hersch']
Visual Debugging of MPI Applications