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.