Intel® Advisor User Guide

ID 766448
Date 7/13/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

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
NOTE:

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.

NOTE:

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.

--no-support-multi-isa-binaries

Do not collect a variety of data for loops that reside in non-executed code paths, including:

  • Loop assembly code

  • Instruction set architecture (ISA)

  • Vector length

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.