Debugging on Aurora - Overview¶
There are 3 debuggers available on Aurora:
- gdb-oneapi - This is Intel's version of gdb augmented to allow debugging kernels executing on the PVC GPUs.
- DDT - The Linaro parallel debugger. This is the same parallel debugger that we have on Polaris. It supports a client-server mode and (via using
gdb-oneapi
internally) debugging kernels executing on the PVC GPUs. - gdb4hpc - An alternative for CPU debugging only that will apply commands to all threads in the MPI process group.
There is also a correctness tool for Fortran:
- Codee - This is a tool from Codee which can automatically analyze your code line-by-line to identify and fix opportunities for correctness, modernization, security and optimization. It is especially useful for legacy Fortran codes.
Preliminary steps¶
- You can use the module
mpich/dbg
. The module enables runtime checks during MPICH execution. - The
mpich/dbg
module also allows you to run valgrind (frommodule load valgrind
) as:mpirun $OPT valgrind $BIN
- You can also recompile your code with
-fsanitize=address
to help detect memory access errors (will work for both CPU and GPU, see Intel documentation for more details)