Continuous Correctness Checking for HPC Applications
Sunday, May 12, 2024 2:00 PM to 6:00 PM · 4 hr. (Europe/Berlin)
Hall Y10 - 2nd floor
Tutorial
Compiler and Tools for Parallel ProgrammingParallel Programming Languages
Information
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.
Format
On-site
Targeted Audience
The primary audience for this tutorial are MPI and OpenMP application developers writing C, C++ or Fortran codes as well as HPC support staff. This tutorial benefits both beginners and experts in parallel programming. We assume basic knowledge in MPI and a threading-based parallel programming paradigm.
Beginner Level
30%
Intermediate Level
70%
Prerequisites
Laptop to participate in the hands-on sessions. Optionally, docker/singularity/apptainer to execute the container for the hands-on exercises locally.