SC23 Proceedings

The International Conference for High Performance Computing, Networking, Storage, and Analysis

Workshops Archive

Mapping High-Level Concurrency from OpenMP and MPI to ThreadSanitizer Fibers


Workshop: 7th International Workshop on Software Correctness for HPC Applications (Correctness '23)

Authors: Joachim Jenke, Simon Schwitanski, Isabel Thärigen, and Matthias S. Müller (RWTH Aachen University)


Abstract: High-level parallel programming paradigms like MPI and OpenMP allow expressing concurrency independent from the execution unit finally executing the code. Most general-purposed data race detection tools perform thread-centric analysis with the operating system thread as the execution unit. ThreadSanitizer introduced the concept of software fibers as more fine-grained execution units. We use ThreadSanitizer fibers to model the concurrency semantics of OpenMP tasks, MPI non-blocking communication, and MPI one-sided communication. We propose different optimizations regarding handling ThreadSanitizer fibers, resulting in less runtime and memory overhead. In our experiment, we demonstrate how this augmented tool set can be applied to a highly asynchronous application using OpenMP tasking in combination with MPI non-blocking communication. For task-centric data race detection, we observe a moderate runtime overhead of up to 12%. Handling MPI non-blocking communication results in up to 3x runtime overhead. The holistic analysis of the code yields up to 10x runtime overhead.





Back to 7th International Workshop on Software Correctness for HPC Applications (Correctness '23) Archive Listing



Back to Full Workshop Archive Listing