PARCOACH is a framework that aims at helping users programming MPI codes. It proposes an advanced aid for detecting errors when using MPI collective communications, non-blocking communications (i.e., MPI_Isend/Irecv), and correct usage of MPI routines in programs using both MPI and threads. It leverages a coupled static and dynamic analysis to detect conditions that may lead to deadlock due to MPI usage in parallel programs. It also raises user-friendly error messages to help developers correcting their programs.
Goals within DEEP-SEA
In DEEP-SEA, the PARCOACH framework will be extended with a new module that will help developers programming with MPI-RMA. This module will focus on detecting memory consistency errors when using MPI-RMA, one of the main challenges for programmers when using such approaches. With its double static and dynamic approach, it will raise to the user detected memory consistency errors both at compile time (for those that can be detected at that time) and at runtime, with a user-friendly error message helping users localize where the race condition occurred. This module will also support the Notified RMA communications feature of MPI-RMA implemented in the project.