DDT is a distributed debugging tool with an intuitive GUI and
support for MPI, OpenMP, and CUDA.
To show the software versions:
module avail ddt
Loading the module will set the path and any necessary
module load ddt/version
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
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
fisbatch --nodes=2 --ntasks-per-node=8 --partition=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!