Arm Forge is available on Oscar. There are two products, DDT (debugger) and MAP (performance reports).
We recommend you use the Arm Forge remote client to launch your debugging jobs on Oscar. The first time you set up Arm Forge you will need to configure the client with the following steps:
Download the arm forge remote client on your machine.
Compile your code with -g
so you can see the source code in your debugging session
Arm DDT
Arm DDT is a powerful graphical debugger suitable for many different development environments, including:
Single process and multithreaded software.
OpenMP.
Parallel (MPI) software.
Arm MAP is a parallel profiler that shows you which lines of code took the most time to run, and why. Arm MAP does not require any complicated configuration, and you do not need to have experience with profiling tools to use it.
Arm MAP supports:
MPI, OpenMP and single-threaded programs.
Small data files. All data is aggregated on the cluster and only a few megabytes written to disk, regardless of the size or duration of the run.
Sophisticated source code view, enabling you to analyze performance across individual functions.
Both interactive and batch modes for gathering profile data.
A rich set of metrics, that show memory usage, floating-point calculations and MPI usage across processes, including:
Percentage of vectorized instructions, including AVX extensions, used in each part of the code.
Time spent in memory operations, and how it varies over time and processes, to verify if there are any cache bottlenecks.
A visual overview across aggregated processes and cores that highlights any regions of imbalance in the code.
We have provided templates for you to use for job submission settings. These templates are in/gpfs/runtime/opt/forge/19.1.2/templates
Click Run and debug a program
to open the following menu
Click Configure
next to Submit to Queue and enter /gpfs/runtime/opt/forge/19.1.2/templates/slurm-ccv.qtf
as the Submission template file
slurm-ccv-qtf
lets you specify the total number of tasks. The number of tasks may not be equal for each node. This option will be the shortest time in the queue, but may not give you consistent run times.
slurm-ccv-mpi.qtf
is for MPI jobs where you want to specify number of nodes and tasks per node
slurm-ccv-threaded.qtf
is for threaded (single node) jobs
You will need to configure remote launch for Oscar
Open the client on your machine
Click 'Remote Launch' -> Configure
Add username@ssh.ccv.brown.edu
as the Host Name
Add /gpfs/runtime/opt/forge/19.1.2
as the Remote Installation Directory
Test Remote Launch. You should enter the password used for Oscar. If successful you should see the message Remote Launch test completed successfully
If you have a mismatch between your client version on the version of Forge on Oscar you will see an error message. To fix this make sure you are using compatible client and remote versions
Once you are connected you will see a Licence checked out and "Connected to username@ssh.ccv.brown.edu' on the client.