DDT is a distributed debugging tool with an intuitive GUI and support for MPI, OpenMP, and CUDA.

Category:  Debugger

Availability: Open access for all academic users

Usage Notes

To show the software versions:    module avail ddt

Loading the module will set the path and any necessary variables:    module load ddt/version

Additional Information

DDT is a licensed product. It is available to all CCR users but limited to 32 CPU tokens.

DDT manuals are available on the CCR front-end in pdf format and may be viewed using xpdf.  Manuals are located at the following paths:

/util/allinea/tools/doc/userguide.pdf   (for version 4.0)

/util/allinea/ddt3.1/doc/userguide.pdf  (for version 3.1)

Running DDT on CCR

There are three steps to running DDT on the CCR cluster:

  1. You must first re-compile your code with debugging enabled. Typically, you would use the "-g -O0" options when compiling and linking. DDT has been tested with intel-mpi/4.1.1 so you should load that module when compiling.

  2. You must then run your application under control of the DDT interface. This can be done via an interactive fisbatch job. For example:
    fisbatch --nodes=2 --ntasks-per-node=8 --partition=debug --qos=debug --time=01:00:00

    Once the fisbatch job starts you will be automatically logged onto the head node of the job. From there you would launch DDT by typing:
    module load ddt                                    (load desired version of DDT)
    export DDT_MPIRUN=mpiexec.hydra   (set desired MPI launcher)
    ddt ./your_executable &                     (launch app. under debug control)

    The DDT interface will automatically detect the SLURM environment and should correctly populate your job details. Be sure and check "Memory Debugging" if you suspect your bug is memory-related.

  3. Click "Run" and DDT will launch your application and pause it at the first operation. From there you can use the DDT debugger interface to step through the code and find the bugs!