Arm MAP Quick Reference
Quick reference for using Arm MAP.
Run Arm MAP on a workstation or remote interactive session
To run Arm MAP in non-interactive (offline) mode:
Log in to a terminal session and prepare your environment. Load the environment module for Arm Forge.
The name of the environment variable is determined by the system administrator, please check with them for the environment variable you should use for your system.
Prepare the code and compile with optimizations:
mpicc -O3 -g myapp.c -o myapp.exe
Generate a profile with the Express Launch syntax:
map --profile mpirun -n 8 ./myapp.exe arg1 arg2
In Arm MAP 19.x+ versions, you can profile python applications (sequential and parallel using mpi4py). To profile python applications, use:
map --profile python ./myapp.exe
Open the resulting
.mapfile can be opened anywhere, no compute node allocation is needed. However, you must tell the GUI where to look for the program source files.
Profile benchmark run, with codes compiled with both compilers, using map or perf.
Find a suitable benchmark to do scaling runs across various numbers of cores (weak and strong scaling).
Consider placement of tasks to minimise interference between tasks.
Look at whether hot sections have similar work between compilers
To locate sections of code that consume most of the runtime, use Arm MAP profile runs.
Are the locations the same for both compilers? Consider whether these sections be improved.
Report major runtime differences across compilers to the Arm Compiler team.
Search for compiler specific sections/intrinsics
Search the source for compiler-specific intrinsics, or pragmas, and consider if these can be ported to Arm Compiler or platform-compatible versions.
If AVX512 vector instructions are present, consider converting these.