Visible to Intel only — GUID: GUID-4DE7052D-7D46-461F-AC34-EB918E36F233
Visible to Intel only — GUID: GUID-4DE7052D-7D46-461F-AC34-EB918E36F233
Execution Speed/Duration/Scope Properties to Minimize Analysis Overhead
Issue
Running your target application with the Intel® Advisor can take substantially longer than running your target application without the 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 Project Properties > Analysis Target > Survey Hotspots Analysis > Advanced > Stack unwinding mode > During collection.
Use the advisor CLI 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 the Analysis Workflow pane > Characterization Collect call stacks checkbox.
Disable the Project Properties > Analysis Target > Trip Counts and FLOP Analysis > Advanced > Collect stacks checkbox.
Ensure the CLI action option --stacks is omitted from the command line. Alternative: Use the CLI action option --no-stacks.
NOTE:If you collected callstack-attributed data with collect.py or advisor (with --collect=tripcounts), but callstack attribution went wrong, disable using callstacks data for analysis with analyze.py to 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 the Project Properties > Analysis Target > Survey Hotspots Analysis > Advanced > Stitch stacks checkbox.
Use the advisor CLI action option --no-stack-stitching. 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 the Project Properties > Analysis Target > Survey Hotspots Analysis > Advanced > Sampling interval checkbox.
Use the advisor CLI 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 the Project Properties > Analysis Target > Survey Hotspots Analysis > Advanced > Collection data limit, MB field.
Decrease the value in the advisor CLI 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 the Project Properties > Analysis Target > [Name] Analysis > Advanced > Loop Call Count Limit field.
Supply a non-zero value in the advisor CLI 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.
Path: Project Properties > Analysis Target > Survey Hotspots Analysis > Advanced |
CLI Action Options |
Description |
---|---|---|
Disable the Analyze MKL loops and functions checkbox. |
--no-mkl-user-mode | Do not show Intel® oneAPI Math Kernel Library loops and functions in Intel Advisor reports. |
Disable the Analyze Python loops and functions checkbox. |
--no-profile-python | Do shot show Python* loops and functions in Intel Advisor reports. |
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:
NOTE:
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. |
--no-spill-analysis | Do not calculate the number of consecutive load/store operations in registers and related memory traffic. |
Disable the Enable static instruction mix analysis checkbox. |
--no-static-instruction-mix | Do not statically calculate the number of specific instructions present in the binary. |