You copied the Doc URL to your clipboard.

Arm MAP Quick Reference

Run Arm MAP on a workstation or remote interactive session

To run Arm MAP in non-interactive (offline) mode:

  1. Log in to a terminal session and prepare your environment. Load the environment module for Arm Forge.

    Note

    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.

  2. Prepare the code and compile with optimizations:

    mpicc -O3 -g myapp.c -o myapp.exe​
    
  3. Generate a profile with the Express Launch syntax:

    map --profile mpirun -n 8 ./myapp.exe arg1 arg2
    

    Note

    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
    
  4. Open the resulting .map file:

    map ./myapp_8p_1n_YYYY-MM-DD_HH-MM.map
    

    Note

    The .map file can be opened anywhere, no compute node allocation is needed. However, you must tell the GUI where to look for the program source files.

Strategy

Serial comparison​

Profile benchmark run, with codes compiled with both compilers, using map or perf​.

Scale comparison

  • 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.​

Was this page helpful? Yes No