Distributed Debugging Tool (DDT) from Allinea Software is a parallel debugger that can be run up to hundreds of processors. DDT can be used to debug serial, OpenMP, and MPI codes.
To use DDT, the binary must be compiled with the debug output turned on, e.g.
gcc -g example.c -o myprogram
Begin by using
module load allinea ddt
This will bring up the initial setup dialog box:
Click on the 'Run' button and navigate to the executable to be run. The path to your program should now be in the 'Application' text box. The path MUST be the full path to the executable.
Next, if your program needs command line arguments, click on the 'Arguments' tab:
Here you may enter any arguments your program needs just as they would appear on the command line or set any environmental variables you may need.
To run your program using multiple processes, click on the 'MPI' tab:
You can adjust the number of MPI tasks (read processes) you wish to run in parallel, this will be the same number which normally follows the 'mpirun -np' on the command line. Note: even if you want to run you MPI code serially you must at least set this value to 1.
If OpenMP is enabled, you can specify the number threads by clicking 'OpenMP' tab.
Memory debugging can be enabled by clicking its tab.
To run your program, simply click on 'Run', and if there are no errors, your program should run to completion. Normal output should be printed to the console you launched DDT from.
Launching DDT From Within a Batch Job
For parallel jobs that run across multiple nodes, it is recommended to launch DDT within the UGE batch system. The following is a batch script example:
#!/bin/csh #$ -M firstname.lastname@example.org #$ -m abe #$ -pe mpi-8 16 #$ -q long #$ -v DISPLAY #$ -w e #$ -cwd module load mpich # load an MPI module module load allinea # load Allinea ddt -n $NSLOTS ./application # launch DDT and start debugging process