AllineaDDTbanner

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 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

    Replace mpiexec or mpirun in 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 -offline option), 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:

RunDDT1

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:

/share/opt/allinea/4.2.1/tools/doc/userguide.pdf

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:

 

DDT example of simple MPI program

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:

 

SimpleDDT3

 

HAPPY DEBUGGING!

 

Debugging and Profiling with Allinea Tools

DDT – Distributed Debugging Tool

MAP – MPI Profiling

PerformanceReports – MPI profiling summary

Remote DDT/MAP client for Mac OS/X: install and configure

Remote DDT/MAP remote client for PC Windows: install and conifgure

Remote DDT/MAP remote client for Linux/Unix: install and configure

DDT for a serial job (no MPI): configure and run

DDT for a multi-processor MPI application: configure and run

MAP: configure and run

User’s Guide  (DDT + MAP) AllineaTools Version.4.2.1-37994

User’s Guide (PerformanceReports) AllineaTools Version 4.2-PR

Debugging and Profiling with Allinea Tools

HPC Documentation

HPC Home