Debugging is an essential part of developing and running scientific parallel applications, especially in a high-performance computing (HPC) environment. Efficient debugging tools can significantly improve your workflow and save valuable computational resources.

On CSCS HPC platforms, you have access to a range of powerful debugging tools tailored for parallel and distributed applications. These tools can help you diagnose issues and verify the correctness of your code - whether you are using MPI, OpenMP, or hybrid programming models.

Learning to debug effectively is crucial will not only help you quickly resolve issues but also build a deeper understanding of how your code interacts with the underlying hardware. In this section we’ll introduce you to the various debugging solutions available at CSCS. If you have issues or questions about debugging tools, please do not hesitate to contact us on support.cscs.ch.

Linaro Forge debugging tool (DDT)

The Linaro Forge DDT debugging tool can be used to debug serial, multi-threaded (OpenMP), multi-process (MPI), accelerator based (Cuda) codes written in Fortran, C/C++ and Python. Before using the debugger, the code source must be compiled with the -g (for cpu) and -G (for nvcc) debugging flags. 

Forge can only be used at CSCS with NVIDIA GPUs. CSCS does not have a license to debug codes on AMD GPUs.

UENV support

The documentation for using DDT with UENV images can be found in:

HPE/Cray debugging tools

The Cray Programming Environment (CPE) also provides debugging tools: