When you click Run on the Welcome page, the Run window displays.
The settings are grouped into sections. Click Details to expand a section.
Application: The full file path to your application. If you specified one on the command line, this is automatically filled in. You can browse and select your application.
Note
Many MPIs have problems working with directory and program names that contain spaces. We recommend that you do not use spaces in directory and file names.
Arguments: (optional) The arguments passed to your application. These are automatically filled if you entered some on the command line.
Note
Avoid using quote characters such as '
and "
, as these may be interpreted differently by DDT and your command shell. If you must use these characters but cannot get them to work as expected, contact Arm support.
stdin file: (optional) This enables you to choose a file to be used
as the standard input (stdin
) for your program. Arguments are automatically added to mpirun
to ensure your input file is used.
Working Directory: (optional) The working directory to use when debugging your program. If this is blank then DDT's working directory is used instead.
Note
If you only have a single process license or have selected none as your MPI Implementation, the MPI options will be missing. The MPI options are not available when DDT is in single process mode. See Debug single-process programs for more details about using DDT with a single process.
Number of processes: The number of processes that you want to debug. DDT supports hundreds of thousands of processes but this is limited by your license.
Number of nodes: This is the number of compute nodes that you want to use to run your program.
Processes per node: This is the number of MPI processes to run on each compute node.
Implementation: The MPI implementation to use. If you are submitting a job to a queue, the queue settings will also be summarized here. Click Change to change the MPI implementation.
Notes:
PATH
, or you want to use
an MPI run command that is not your default one, you can configure
this using the Options window (See System on Optional configuration).mpirun arguments: (optional): The arguments that are passed to
mpirun or your equivalent, usually prior to your executable
name in normal usage. You can place machine file arguments here, if
necessary. For most users this box can be left empty. You can also
specify arguments on the command line (using the –mpiargs
command-line
argument) or using the ALLINEA_MPIRUN_ARGUMENTS
environment variable
if this is more convenient.
Notes:
-np
argument as DDT will do this for you.–task-nb
or –process-nb
arguments as DDT will do this for you.Number of OpenMP threads: The number of OpenMP threads to run your
application with. The OMP_NUM_THREADS
environment variable is set to
this value.
For more information on debugging OpenMP programs see Debug OpenMP programs.
If your license supports it, you can also debug GPU programs by enabling CUDA support. For more information on debugging CUDA programs see NVIDIA GPU debugging.
Track GPU Allocations: Tracks CUDA memory allocations made using
cudaMalloc
, and similar methods. See CUDA memory debugging for more information.
Detect invalid accesses (memcheck): Turns on the CUDA-MEMCHECK error detection tool. See CUDA memory debugging for more information.
Note
Debugging applications using both CUDA and ROCm is not supported.
If your license supports it, you can also debug GPU programs by enabling ROCm support. For more information on debugging ROCm programs see ROCm GPU debugging.
Note
Debugging applications using both CUDA and ROCm is not supported.
Click Details to open the Memory Debugging Options window.
See Memory debugging options for details of the available settings.
The optional Environment Variables section should contain additional environment variables that should be passed to mpirun or its equivalent. These environment variables can also be passed to your program, depending on which MPI implementation your system uses. Most users will not need to use this section.
Note
On some systems it may be necessary to set environment variables for the DDT backend itself. For example, if /tmp is unusable on the compute nodes you may want to set TMPDIR
to a different directory. You can specify such environment variables in /path/to/ddt/lib/environment
. Enter one variable per line and separate the variable name and value with =
. For example, TMPDIR=/work/user
.
The optional Plugins section lets you enable plugins for various third-party libraries, such as the Intel Message Checker or Marmot. See Use and write plugins for more information.
Click Run to start your program, or Submit if working through a queue (see Integration with queuing systems). This runs your program through the debug interface you selected and allows your MPI implementation to determine which nodes to start which processes on.
Note
If you have a program compiled with Intel ifort or GNU g77 you may not see your code and highlight line when DDT starts. This is because those compilers create a pseudo MAIN
function, above the top level of your code. To fix this you can either open your Source Code window, add a breakpoint in your code, then run to that breakpoint, or you can use the Step into function to step into your code.
When your program starts, DDT attempts to determine the MPI world rank of each process. If this fails, an error message displays:
This means that the number DDT shows for each process may not be the MPI rank of the process. To correct this you can tell DDT to use a variable from your program as the rank for each process.
See Assign MPI ranks for details.