perf-reports Overview

Website: Arm Performance Reports Website
Arm Performance Reports User Guide: Arm Performance Reports User Guide

Arm Performance Reports (formerly Allinea Performance Reports) are an effective way to characterize and understand the performance of HPC application runs.

A single-page HTML report can answer a range of questions about the performance characteristics of a job, and suggest areas to focus on during more in-depth profiling.

See the Usage tab to get started, or the Arm Performance Reports user guide for more information.



Converting an Arm MAP Profile

If you are familiar with Arm MAP and have an existing MAP profile, the simplest way to obtain a report is to simply generate one from the MAP file. You may also find it beneficial to generate all of your reports this way, as the MAP file can later be used to examine your application in more detail.
  1. Generate a MAP file (instructions can be found on the Arm Forge page)
  2. Run the following:
    module load perf-reports
This will output an HTML and a txt file in the current directory

Linking your program with the Performance Reports sampler (for Cray systems)

In order to collect information about your program, you must link your program with the Performance Report sampling libraries. When using shared libraries on non-Cray systems, MAP can do this automatically at runtime. On Cray systems, however, this process must be performed manually. The map-static-link and map-dynamic-link modules can help with this.
  1. module load perf-reports
  2. module load map-static-link # or map-dynamic-link
  3. Re-link your program.

Do I need to recompile?

There is no need to instrument your code with Arm Performance Reports. Also, because source line information is not used, the -g compiler flag is not required.

Generating a report

To generate HTML and text reports, take an existing queue submission script and modify it to include the following:
source $MODULESHOME/init/bash # May already be included if using modules
module load perf-reports
And then add a prefix to your aprun command, for example:
aprun -n 128 -N 8 ./myapp a b c
would become:
perf-report aprun -n 128 -N 8 ./myapp a b c
Once your job has completed running, the program's working directory should contain timestamped .html and .txt files such as myapp_1p_1t_2016-01-01_12-00.html and myapp_1p_1t_2016-01-01_12-00.txt. A video introducing Performance Reports is also available on the OLCF Vimeo channel. For more information see the Arm Performance Reports user guide.


  • 6.0
  • 6.0.3-47102
  • 6.1.1
  • 7.1