Course/Event Essentials
Training Content and Scope
Other 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.