Ensuring Program Correctness with Linaro DDT

Linaro DDT is a highly scalable parallel debugger, part of the Linaro Forge suite, which is the de-facto standard for HPC development. It is designed specifically for HPC workloads, including multi-threaded applications, to ensure program correctness.

Description

Linaro DDT is a highly scalable parallel debugger capable of operating from a single processor up to hundreds of thousands of processors. It is designed from the ground up for HPC workloads, with a particular focus on multi-threaded applications, typically using MPI or SPMD codes. It offers state-of-the-art debugging capabilities, including powerful error detection mechanisms, and is designed to simplify remote interactive sessions. This training session walks through the debugger's key capabilities to verify program correctness.

Attributes

Level: Intermediate
Class type: General
Time commitment: 2h

Topics Covered

  • 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

Learning Outcomes

  • Ensure program correctness using Linaro DDT.
  • Isolate and investigate faults at scale.
  • Utilize advanced features like Tracepoints, Watchpoints, and Static analysis.
  • Perform memory debugging and detect various memory issues.
  • Debug GPU and Python code.
  • Visualize array data using the Multi-dimensional Array View.