Execution Speed/Duration/Scope Properties to Minimize Analysis Overhead
Issue
Running your target application with the
can take substantially longer than running your target application without the
.
Intel® Advisor
Intel Advisor
Depending on an accuracy level and analyses you choose for a perspective, different overhead is added to your application execution time.
For example:
Runtime Overhead / Analysis
| Survey
| Characterization
| Dependencies
| MAP
|
---|---|---|---|---|
Target application runtime with
Intel® Advisor compared to runtime without
Intel® Advisor | 1.1x longer
| 2 - 55x longer
| 5 - 100x longer
| 5 - 20x longer
|
Solutions
Use the following techniques to minimize overhead while collecting
Intel Advisor
analysis data. The
Disabling additional analysis
technique also minimizes finalization overhead.
Change Stackwalk Mode from Offline (After collection) to Online (During Collection)
Minimize collection overhead.
Applicable analysis: Survey.
Set to offline/after collection when:
- Survey analysis runtime overhead exceeds 1.1x.
- A large quantity of data is allocated on the stack, which is a common case for Fortran applications or applications with a large number of small, parallel, OpenMP* regions
Note
: In the commands below, make sure to replace the
myApplication
with your application executable path and name
before
executing a command. If your application requires additional command line options, add them
after
the executable name.To implement, do one of the following before/while running a Survey analysis:
- Set.
- Use theadvisorCLI action option--stackwalk-mode=online. For example:advisor --collect=survey --project-dir=./advi_results --stackwalk-mode=online -- ./myApplication
Disable Stacks Collection
Minimize collection overhead.
Applicable analyses:
Characterization with Trip Counts and FLOP collections enabled
.
To implement, do one of the following before/while running the analysis:
- Disable thecheckbox.Analysis Workflowpane> CharacterizationCollect call stacks
- Disable thecheckbox.
- Ensure the CLI action option--stacksis omitted from the command line. Alternative: Use the CLI action option--no-stacks.If you collected callstack-attributed data withcollect.pyoradvisor(with--collect=tripcounts), but callstack attribution went wrong, disable using callstacks data for analysis withanalyze.pyto avoid using the wrong data. This is a possible fallback when data with stacks is broken. Notice that this reduces modeling accuracy.
Disable Stitch Stacks
Minimize collection overhead.
Applicable analysis: Survey.
The stitch stacks option restores a logical call tree for
Intel® oneAPI Threading Building Blocks
(oneTBB
) or OpenMP* applications by catching notifications from the runtime and attaching stacks to a point introducing a parallel workload.
Disable when Survey analysis runtime overhead exceeds 1.1x.
Note
: In the commands below, make sure to replace the
myApplication
with your application executable path and name
before
executing a command. If your application requires additional command line options, add them
after
the executable name.To implement, do one of the following before/while running the analysis:
- Disable thecheckbox.
- Use theadvisorCLI action option . For example:advisor --collect=survey --project-dir=./advi_results --no-stack-stitching -- ./myApplication
Disabling stack stitching may decrease the overhead for applications using
oneTBB
.
Increase Sampling Interval
Minimize collection overhead.
Applicable analysis: Survey.
Increase the wait time between each analysis collection sample when your target application runtime is long.
Note
: In the commands below, make sure to replace the
myApplication
with your application executable path and name
before
executing a command. If your application requires additional command line options, add them
after
the executable name.To implement, do one of the following before/while running the analysis:
- Increase the value in thecheckbox.
- Use theadvisorCLI action option--interval=<integer>when running a Survey analysis. For example:advisor --collect=survey --project-dir=./advi_results --interval=20 -- ./myApplication
Limit Collected Analysis Data
Minimize collection overhead.
Applicable analysis: Survey.
Decrease the amount of collected raw data when exceeding a size threshold could cause issues. For example: You have storage space limitations.
Note
: In the commands below, make sure to replace the
myApplication
with your application executable path and name
before
executing a command. If your application requires additional command line options, add them
after
the executable name.To implement, do one of the following before/while running the analysis:
- Decrease the value in thefield.
- Decrease the value in theadvisorCLI action option--data-limit=<integer>. For example:advisor --collect=survey --project-dir=./advi_results --data-limit=250 -- ./myApplication
Limit Loop Call Count
Minimize collection overhead.
Applicable analysis: Dependencies, Memory Access Patterns.
Decrease the maximum number of instances each marked loop is analyzed.
Note
: In the commands below, make sure to replace the
myApplication
with your application executable path and name
before
executing a command. If your application requires additional command line options, add them
after
the executable name.To implement, do one of the following before/while running the analysis:
- Supply a non-zero value in thefield.
- Supply a non-zero value in theadvisorCLI action option--loop-call-count-limit=<integer>. For example:advisor --collect=dependencies --project-dir=./advi_results --loop-call-count-limit=10 -- ./myApplication
Disable Additional Analysis
Minimize finalization overhead.
Applicable analysis: Survey.
Implement these techniques when the additional data is not important to you.
The default setting for all the properties/options in the table below is disabled.
CLI Action Options
| Description
| |
---|---|---|
Disable the
Analyze MKL loops and functions checkbox.
| Do not show
Intel® oneAPI Math Kernel Library loops and functions in
Intel Advisor | |
Disable the
Analyze Python loops and functions checkbox.
| Do shot show Python* loops and functions in
Intel Advisor | |
Disable the
Analyze loops that reside in non-executed code paths checkbox.
| Do not collect a variety of data for loops that reside in non-executed code paths, including:
This capability is available only for binaries compiled using the
-ax (Linux* OS)/Qax (Windows* OS) option with an Intel® compiler.
| |
Disable the
Enable register spill/fill analysis checkbox.
| Do not calculate the number of consecutive load/store operations in registers and related memory traffic.
| |
Disable the
Enable static instruction mix analysis checkbox.
| Do not statically calculate the number of specific instructions present in the binary.
|