Debugging application code accounts for significant time during code development, which different studies estimate to be about 40-60% of the total development time. Debugging parallel code is even harder, as bugs might depend on the scheduling and scaling of the execution. We have seen applications to only fail at large scale, while succeeding at lower scale.
This 30-minute webinar presented two runtime correctness analysis tools for MPI and OpenMP, freely available under open-source licenses, which allow analysis even during large-scale execution.
|MUST is an MPI runtime correctness checking tool, which observes the execution of an MPI application and reports a broad range of portability issues, as well as deadlocks and data races.|
|Archer is an OpenMP-aware dynamic data race detection tool. Archer supports different modes for thread-centric or task-centric analysis. Archer is included in the latest LLVM releases (starting from 10).|
Combining both tools for hybrid MPI + OpenMP applications enables unprecedented runtime analysis of data races in multi-threaded MPI communication.
- Presentation slides
- Example code used in webinar
About the Presenter
Joachim Protze has been developing debugging and correctness analysis tools for more than ten years now. He is the developer of the dynamic analysis of Archer and one of the main developers of MUST. He leads the tools subcommittee of the OpenMP language committee, which defines and develops the interfaces for OpenMP tools such as Archer.