Continuous Correctness Checking for HPC Applications

Course/Event Essentials

Event/Course Start
Event/Course End
Event/Course Format
In person

Venue Information

Country: Germany
Venue Details: Click here

Training Content and Scope

Scientific Domain
Technical Domain
Level of Instruction
Intermediate
Advanced
Sector of the Target Audience
Research and Academia
Industry
Public Sector
HPC Profile of Target Audience
Application Developers
Language of Instruction

Other Information

Supporting Project(s)
POP
Event/Course Description

In high-performance computing (HPC), applications can have millions of lines of code and contain a high degree of parallelism for the most efficient computations. This parallelism introduces a wide range of potential defects — commonly called bugs — in those applications. Such defects can be non-deterministic and have significant consequences, ranging from silently corrupting results to deadlocking or crashing the application run. Hence, developers must not only cope with mastering complex HPC architectures but also deal with the pitfalls of parallel programming. Considering that 40-60% of code development time is spent in debugging, knowledge of a proper tools set is crucial. Learn to debug using compiler-based tools like LLVM sanitizers, Archer for OpenMP data-race detection, and MUST for MPI+OpenMP runtime correctness. Discover how to integrate these tools into continuous integration on GitHub and GitLab. Hands-on examples guide you through applying these tools to example codes. Optionally, test the tools on your own codes in the final hands-on session. Join us for a practical session on mastering the challenges of parallel programming in complex HPC architectures.