Linaro MAP adds unexpected overhead to my program

The Linaro Forge sampler library adds a small overhead to the execution of your program. Usually, this is less than 5% of the wall clock execution time.

However, under some circumstances the overhead can exceed this, especially for short runs. This is particularly likely if your program has high OpenMP overhead, for example, if it is greater than 40%.

In this case, the measurements reported by Linaro MAP are affected by this overhead and therefore less reliable. Increasing the run time of your program, for example, by changing the size of the input, decreases the overall overhead, although the initial few minutes still incur the higher overhead.

At high per-process thread counts, the Linaro Forge sampler library can incur more significant overhead.

By default, when Linaro MAP detects a large number of threads, it automatically reduces the sampling interval to limit the performance impact.

Sampling behavior can be modified by setting the FORGE_SAMPLER_INTERVAL and FORGE_SAMPLER_INTERVAL_PER_THREAD environment variables.

For more information on the use of these environment variables, see MAP and Performance Reports variables.

The Linaro Forge sampler library can add excessive overhead when processing significant writes to stdout/stderr by your application. Avoid this overhead by preventing your application from writing to stdout/stderr, for example by setting your application to write to a file instead.