Allinea: DDT

From Define Wiki
Revision as of 10:54, 30 March 2015 by K mouza (talk | contribs)
Jump to navigation Jump to search

Type of application

In order to start a debugging job for a (parallel) application:

  1. Press the Run button. In the next window:
  2. 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.

MPI applications

  1. Provide the number of processes
  2. 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
  3. 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 from the same terminal as DDT is run, otherwise an error message will appear stating that the libimf.so shared library cannot be found.
  • 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 from the same terminal as DDT is run, otherwise missing shared libraries error messages will appear.
  • MVAPICH2 2.0b compiled with GCC: Load the mvapich2/intel/63/2.0b module from the same terminal as DDT is run.
  • 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 from the same terminal as DDT is run.
  • MPICH 3.1 compiled with GCC: Load the mpich/ge/gcc/64/3.1 module from the same terminal as DDT is run.

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 (

Error creating thumbnail: File missing

), 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.

  1. 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.
  2. 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.
Error creating thumbnail: File missing