DDT – Distributed Debugging Tool
Allinea Tools DDT allows you to debug, visualize and optimize the workflow, view the source code and the output using an intuitive Graphical User Interface (GUI) or command-line options. You could debug the supercomputer from your laptop with fast native clients for Mac OS/X, PC Windows, or Linux/Unix.
When compiling the program you wish to debug, you must add the debug flag to your compile command. For most compilers, it is
-g. It is also better to turn off compiler optimization flags for debugging purposes. For example,
% mpif90 -g -o helloworld.exe helloworld.f90
Launch DDT in one of your preferred ways, as a GUI application or using a command-line options:
- In Pegasus2 environment by launching a GUI tool in the interactive queue:
% module load allinea/4.2.1 % bsub -q interactive -Is -XF ddt
This requires logging to a graphical node (pegasus-gw.ccs.miami.edu) and have X11 forwarding enabled.
- Using a remote Mac OS/X GUI client: Install and launch
- Using a remote PC Windows GUI client: Install and launch
- Using a remote Linux/Unix GUI client: Install and launch
(Note that launching a remote GUI client is a faster way, due to the graphical interface running on your local machine and not requiring X11 forwarding.)
- Using in-line options in the runscript for offline debugging analysis at a later time.
% module load allinea/4.2.1
mpirunin your job runscript with
ddt. Add command-line options for memory debugging, setting the tracepoints, or saving output as *.html for the offline debugging (add
-offlineoption), as needed. Consult the Chapter 15. DDT: Offline Debugging in User’s Guide (DDT + MAP) AllineaTools V.4.2.1 for exploring the options. For example, if your runscript ddtjob.sh launches the job as follows:
mpirun -n 1024 myprogram
replace it with something like the following (choose the command-line options you need):
ddt -memory -trace-at main.c:31,y,z -offline -ddtjob.html -n 1024 myprogram
Then submit it as a usual batch job:
% bsub < ./ddtjob.sh
After the job is finished, view the offline report output ddtjob.html with any HTML browser.
When working with GUI DDT application, open the welcome screen:
Choose the “Remote Launch” if you are using any of the remote clients, and establish connection with pegasus2-ccs.miami.edu. The choose “Run” and follow the further instructions to configure and debug your applications:
User’s Guide could also be found in the AllineaTools installation directory on Pegasus2 in the following location:
Examples of DDT tool view for a simple parallel program are shows below. The DDT initially stops after the MPI_INIT in the MPI application, to give you further control to customize the execution.
Press the button “Run”/”Play” to continue:
If you need the debugger to stop right after entering the program (and before reaching the MPI_INIT), set the environmental variable DDT_STOP_AT_MAIN=1 .
Choose to view the output from any particular process, or from all the processes: