A Deadlock Detection Concept for OpenMP Tasks and Fully Hybrid MPI-OpenMP Applications
Authors: Tobias Hilbrich (Dresden University of Technology), Bronis R. de Supinski (Lawrence Livermore National Laboratory), Andreas Knuepfer (Dresden University of Technology), Robert Dietrich (Dresden University of Technology), Christian Terboven (RWTH Aachen University), Felix Muenchhalfen (RWTH Aachen University), Wolfgang E. Nagel (Dresden University of Technology)
Abstract: Current high performance computing applications often combine the Message Passing Interface (MPI) with threaded parallel programming paradigms, e.g., OpenMP. MPI allows fully hybrid applications in which multiple threads of a process issue MPI operations concurrently. Little study on deadlock conditions for this combined use exists. We propose a wait-for graph approach to understand and detect deadlock for such fully hybrid applications. It specifically considers OpenMP 3.0 tasking support to incorporate OpenMP’s task-based execution model. Our model creates dependencies with deadlock criteria that can be visualized to support comprehensive deadlock reports. We use a model checking approach to investigate wide ranges of valid execution states of example programs to verify the soundness of our wait-for graph construction.
Two-page extended abstract: pdf