Arm-forge Debugger (Arm DDT)

1 minute read

Arm Forge is a set of tools for HPC development, debugging, and profiling. The server version is not free, but if you have access to a cluster that has Arm Forge as one of its module, then you can access it with its free client.

  1. Load Arm Forge module in the cluster node. If you want a specific version you need to specify it, like:
module load arm-forge/21.0.3
  1. Download and install the same version of Arm Forge client.

  2. In the client, add the remote server configuration. The GUI asks to input any password. If you want to pre-load any modules to be able to use by the application, you can load them in your ~/.bashrc. If you find another way, please share with me.

  3. After the connection is established, you can run and debug the application by browsing the executable file, setting its arguments, passing MPI options, and selecting what you want to profile (CUDA, OpenMP, Memory, …).

Manually launch the backend

With Arm-forge you can launch the backend first and then attach the clients later. For this purpose, follow these steps:

  1. Configure and connect to the remote connection.
  2. Select Manual Launch (Advanced) in the home screen.
  3. Select the number of processes as the number of MPI ranks you would like to attach.
  4. Specify the plugins. There is no need to pre-load any modules or run scripts from Arm-forge.
  5. After starting the backend, run the application with a command like this (options are arbitrary):
mpirun -np 2 /path/to/forge-client/on/server /path/to/ddtsession/file application [args]

# e.g.:

mpirun -np $(np) --display bind --mca pml ucx -x UCX_LOG_LEVEL=trace -x UCX_LOG_FILE=ucx.%p.log \
  /gpfs/fs1/scinet/mist/rhel8/software/2021a/opt/base/arm-forge/22.0.2/bin/forge-client \
  --ddtsessionfile ~/.allinea/session/connection.local-1 \
  application [args]
  1. Simply debug the program