Allinea: DDT
Type of application
In order to start a debugging job for a (parallel) application:
- Press the Run button. In the next window:
- Fill the "Äpplication" field with the exact path of the executable to be run
- If the application needs command line arguments or stdin input, these can be provided in the "Arguments" and "stdin file" fields, respectively.
Note
For all the following application types, make sure to load the appropriate modules in the same terminal as the DDT will be run, or have the modules be loaded in the .bashrc file. Otherwise, libraries will be missing.
MPI applications
- Provide the number of processes
- Define MPI implementation. In order to do that:
- Click the "Change" button
- Choose between different MPI libraries
- Define the exact path, on the server, of the mpirun command of the chosen MPI library
- Click Ok
- Click Run
Different MPI libraries need different settings. First of all be sure that the application is compiled with the mpicc command of the corresponding library.
- OpenMPI 1.8.1 compiled with Intel compiler: Load the intel/compiler/64/14.0/2013_sp1.3.174 module.
- OpenMPI 1.8.1 compiled with GCC: Just follow the above steps. No other changes must be made.
- MVAPICH2 2.0b compiled with Intel compiler: Load the mvapich2/intel/63/2.0b and intel/compiler/64/14.0/2013_sp1.3.174 modules.
- MVAPICH2 2.0b compiled with GCC: Load the mvapich2/intel/63/2.0b module.
- Intel MPI 4.1.3: Load the intel/compiler/64/14.0/2013_sp1.3.174 and intel-mpi/64/4.1.3/049 modules.
- MPICH 3.1 compiled with GCC: Load the mpich/ge/gcc/64/3.1 module.
Debug the application
After DDT starts the application, all the processes/threads will stop at the first statement of the main function.
Running steps
There are several ways to continue with the application workflow:
- Play/Continue Error creating thumbnail: File missing: Run the application until the end or until it reaches a breakpoint.
- Step into Error creating thumbnail: File missing: Step to the next command in the code.
- Step over Error creating thumbnail: File missing: Step to the next command in the current function (does not enter called functions).
- Step out Error creating thumbnail: File missing: Step out of the current function (does not work for main).
- Run to line Error creating thumbnail: File missing: Run the application until it reaches a given line number.
The application can be paused at any point by pressing the Pause button.
Breakpoints
To set a breakpoint, either press the Add Breakpoint button (
), which will open an Edit Breakpoint window, or press the white dot on the left of the required line. After the breakpoint is set, a red dot will appear on the left of the corresponding line.
All the breakpoints can be seen in the Breakpoints tab, on the bottom left corner of the window. To edit the settings of a breakpoint, either right clock on it and click edit (from within the Breakpoints tab) or directly edit its settings, changing the values of the corresponding columns.
Variables
The variable tabs can be seen on the right side of the window.
- The Locals tab includes all the local variables of the current function, along with their values.
- The Current Line tab includes all the variables of the current code line, along with their values.
- To constantly view the value of a variable, right click on it and press Add to Evaluations. It will then appear in the Evaluation tab, on the bottom right corner of the window and its value will automatically change as the application goes on.
- A watchpoint can be added to any variable, by right clicking on it and pressing Add Watchpoint. It will then appear in the Watchpoints tab, on the bottom left part of the window, and every time the value of that variable changes a notification will appear on the screen.
Arrays
If a variable is an array then it can be seen in its dimensional view. Right click on the array and press View Array.
- Set the number and the size of the array's dimensions.
- If the array is statically allocated, then DDT automatically finds the number and the size of the dimensions.
- If the array is dynamically allocated, then DDT automatically finds the number of dimensions, but the user must provide the size for each dimension.
- If the array has different values for different processes, they can all be seen in one table by selecting the corresponding number in the Distributed Array Dimensions drop down menu.
- Click Evaluate and the array will appear in the Data Table tab on the bottom part of the window.
- To find a specific element in the table, type its coordinates after clicking on the Goto button.
- To export the results into .cvs or .hdf5 format, click on the Export button.
- Statistics about the values of the array can be seen under the Statistics tab.
- The array values can be visualised, when pressing the Visualise button. The resulted graph will by default be a 3D one. An example image is shown below, where each process calculates a different sin curve.