Simultaneously generate both a .map file and Performance Report

Describes how to load Linaro MAP and then profile and application, generating both a .map file and one or more type of Performance Report at once.

Before you begin

Make sure that the Linaro MAP component of Linaro Forge installed on your system is loaded:

$ map --version
Linaro MAP
Part of Linaro Forge.
Copyright (c) 2023-2025 Linaro Limited. All rights reserved.
...

Note

Please add the Linaro Forge installation path to the PATH environment variable to make the Linaro MAP available to the console:

export PATH=<Forge installation path>/bin:$PATH

Procedure

  1. Type the map --profile --report=<types> command in front of your existing mpiexec command-line, where <types> is a comma separated list of one or more of txt, csv, html, or summary (see --report) e.g.:

    map --profile --report=txt,html mpiexec -n 4 examples/wave_c
    
  2. If your program is submitted through a batch queuing system, modify your submission script to load the Linaro Forge module and add the map --profile --report=<types> command in front of the mpiexec command for which you want to generate a report.

Results

The program runs as usual, although startup and shutdown might take a few minutes longer while Linaro Forge generates and links the appropriate wrapper libraries before running, collecting the data at the end of the run. The runtime of your code (between MPI_Init and MPI_Finalize is not expected to be affected by more than a few percent at most.

After the run finishes, a .map file and whatever Performance Reports were requested are saved to the current working directory, using a name based on the application executable:

$ map --profile --report=txt,html,summary mpirun -n 4 ./wave_c

   [ ... normal MAP and wave_c output ... ]

MAP analysing program...
MAP gathering samples...
MAP generated wave_c_4p_1n_2022-11-16_18-53.map
MAP generated wave_c_4p_1n_2022-11-16_18-53.html
MAP generated wave_c_4p_1n_2022-11-16_18-53.txt

Linaro MAP profiling summary
============================
Profiling time:      31 seconds (between MPI init and finalize)
Peak process memory: 52002816 B (~49.6 MiB)

Compute:              92.3%    (28.6s) |========|
MPI:                   7.7%     (2.4s) ||
I/O:                   0.0%     (0.0s) |
  (based on time on the main thread)