Skip to content

Docs CSC now features an automatic Finnish translation. Click here for more information.

Warning!

Puhti and Mahti will be decommissioned after Roihu becomes available. Users should clean up unnecessary files and move any required data by the end of August 2026. See the Roihu data preparation instructions for details.

Puhti scratch is very full: keep only active data there and move or delete everything else. No new Puhti scratch quota will be granted.

DDT

Arm DDT is a parallel debugger with a graphical user interface (GUI).

Available

  • Puhti: 22.0.4, 22.1.3, 23.0.4
  • Mahti: 22.1.0, 23.0.3

License

Usage is possible for both academic and commercial purposes.

Usage

Set up the debugger environment

module load ddt

Compile the application to be debugged, for example a Fortran, C or C++ program, with the compiler option -g to enable generation of debug information.

Here are a few examples of MPI debug sessions. The first salloc command requests 40 processes in a single node and the second 40 processes divided into two nodes:

export SLURM_OVERLAP=1

salloc --nodes=1 --ntasks-per-node=40 --time=00:30:00 --partition=small --account=<project_id> ddt srun ./debug_enabled_code
salloc --nodes=2 --ntasks-per-node=20 --time=00:30:00 --partition=large --account=<project_id> ddt srun ./debug_enabled_code

By default, DDT sets the initial breakpoint at MPI_Init. For debugging scalar or plain OpenMP programs, set the following environment variables before starting the debugger:

export ALLINEA_MPI_INIT=main
export ALLINEA_HOLD_MPI_INIT=1

More information

  • On CSC supercomputers:
    • Puhti: /appl/opt/ddt/23.0.4/doc/userguide-forge.pdf
    • Mahti: /appl/opt/ddt/23.0.3/doc/userguide-forge.pdf
  • On-line documentation