NERSCPowering Scientific Discovery for 50 Years

Debugging and Optimizing Parallel Codes with Linaro Forge, March 5, 2025

March 5, 2025

NERSC is hosting a virtual training event 'Debugging and Optimizing Parallel Codes with Linaro Forge' on Wednesday, March 5, 2025.  

This training course provides two 90 minute sessions to enable users to maximize their usage of the Forge tools. We will provide an overview of Linaro Forge, a cross platform, integrated environment for debugging and optimizing parallel codes at any scale. We will provide hands-on demonstrations and exercises of how Linaro Forge reduces development time, simplifies debugging, and eases application performance enhancement on Perlmutter.

Agenda (Tentative)

Time (PT/UTC-8) Topic Presenters
9 am Welcome  
9:10 am Ensuring Program Correctness with Linaro DDT Rudy Shand (Linaro)
9:55 am Hands-on Rudy Shand (Linaro)
10:40 am Break  
11:00 am Performance Engineering with Linaro Performance Reports and Linaro MAP Rudy Shand (Linaro)
11:45 am Hands-on Rudy Shand (Linaro)
12:30 pm Adjourn  

Session 1: Ensuring Program Correctness with Linaro DDT

Using sample codes, we will walk through the major capabilities of the debugger to illustrate how DDT can debug applications ranging from a single thread to large scale.

  • Submitting a Forge job on your batch system
  • Using Forge as a remote client
  • Using semantic analysis tools to catch bugs before you even run the code
  • How to use sparklines to visualize variable values across processes and threads
  • Illustrate memory debugging to trap array out of bounds errors and memory leaks
  • Using the array viewer to visualize multi-dimensional variables
  • Using watchpoints to halt execution dependent upon expression values
  • Offline debugging for large scale debugging, catching non-deterministic errors and continuous integration
  • Trace points, a flexible and deterministic printf alternative
  • Modifying the definition of your program without re-building using the Evaluate Window
  • Debugging GPU applications
  • Debugging Python applications

Session 2: Performance Engineering with Linaro Performance Reports and Linaro MAP

We will illustrate how in a matter of minutes you can understand the nature of your application’s performance. We will introduce best practices to attain and maintain optimal performance.

  • Understanding the performance road map
  • Using Performance Reports to understand your application’s overall performance characteristics
  • Characterize file IO behavior
  • Isolate workload imbalance issues in codes at any scale
  • See how the amount of time spent in memory operations varies over time and processes
  • Isolate problematic memory access patterns
  • Determine how well your application is vectorized
  • Profiling GPU applications
  • Profiling Python applications

Registration

Please use this form to register.

Presentation Materials

TBA