Intel® Advisor User Guide

ID 766448
Date 11/07/2023
Public

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

Document Table of Contents

Minimize Analysis Overhead

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

The following tables summarize how to minimize overhead while collecting and finalizing Intel® Advisor analysis data.

Collection Controls

The following table is a summary. For more information, see Collection Controls to Minimize Analysis Overhead.

Minimization Technique

Impacted Analyses

Summary

Pause collection/Resume collection using API methods

  • Survey

  • Characterization

Pause collection:

  • C++: __itt_pause

  • Fortran: Use ITTNOTIFY statement to call ITT_PAUSE() subroutine

Resume collection:

  • C++: __itt_resume

  • Fortran: Use ITTNOTIFY statement to call ITT_RESUME() subroutine

Pause collection/Resume collection using annotations

  • Survey

  • Dependencies

Some analysis types recognize the structural annotations typically used in the Threading perspective workflow.

Pause collection:

  • C++: ANNOTATE_DISABLE_COLLECTION_PUSH

  • Fortran: call annotate_disable_collection_push()

  • C#: Annotate.DisableCollectionPush();

Resume collection:

  • C++: ANNOTATE_DISABLE_COLLECTION_POP

  • Fortran: call annotate_disable_collection_pop()

  • C#: Annotate.DisableCollectionPop();

NOTE:
C# and .NET support is deprecated starting Intel® Advisor 2021.1.

Start target application with collection paused

  • Survey

  • Characterization

Start target application with collection paused:

  • GUI control: Workflow pane > Start paused control

  • advisor CLI action option: -start-paused

NOTE:

You can use different techniques to resume collection. The most common is __itt_resume

Start target application with collection paused/Resume collection after N seconds

  • Survey

  • Characterization

GUI control: Project Properties > Analysis Target > [Name] Analysis > Advanced > Automatically resume collection after (sec) checkbox

advisor CLI action option: -resume-after=<integer>

Stop collection after N seconds

All

GUI control: Project Properties > Analysis Target > [Name] Analysis > Advanced > Automatically stop collection after (sec) checkbox and field

advisor CLI action: -stop-after=<integer>

Stop collection

All

GUI control: Workflow pane > Stop current analysis control and Site Coverage widget

advisor CLI: action option: -command=stop

Manually pause collection/Manually resume collection

  • Survey

  • Characterization

Pause collection:

  • GUI control: Workflow pane > Pause control

  • advisor CLI action: -command=pause

Resume collection:

  • GUI control: Workflow pane > Resume control

  • advisor CLI action: -command=resume

Attach to process/Detach from process

  • Survey

  • Characterization

Attach to process:

  • GUI control: Project Properties > Analysis Target > [Name] Analysis> Launch Application drop-down list > Attach to Process

  • advisor CLI action options: -target-pid=<unsigned integer> and -target-process=<string>

Detach from process:

  • GUI control: Workflow pane > Stop current analysis control

  • advisor CLI action: -command=detach

Loop Markup

The following table is a summary. For more information, see Loop Markup to Minimize Analysis Overhead.

Minimization Technique

Impacted Intel Advisor Analyses

Summary

Select loops by ID

  • Characterization

  • Dependencies

  • Memory Access Patterns

GUI control: Survey Report checkbox(es)

advisor CLI action option: -mark-up-list=<string>

Select loops by source file/line

  • Characterization

  • Dependencies

  • Memory Access Patterns

GUI control: Survey Report checkbox(es)

advisor CLI action: -mark-up-loops with action option -select=<string>

Select loops by criteria

  • Dependencies

  • Memory Access Patterns

advisor CLI: action -mark-up-loops or -collect with action option -loops=<string>

Filtering

The following table is a summary. For more information, see Filtering to Minimize Analysis Overhead.

Minimization Technique

Impacted Intel Advisor Analyses

Summary

Filter modules

  • Survey

  • Characterization

GUI control: Project Properties > Analysis Target > [Name] Analysis > Modules options and field

advisor CLI: action option: -module-filter-mode=include | exclude and -module-filter=<string>

Execution Speed/Duration/Scope Properties

The following table is a summary. For more information, see Execution Speed/Duration/Scope Properties to Minimize Analysis Overhead.

Minimization Technique

Impacted Intel Advisor Analyses

Summary

Change stackwalk mode from offline (after collection) to online (during collection)

Survey

GUI control: Project Properties > Analysis Target > Survey Hotspots Analysis > Advanced > Stack unwinding mode > During collection

advisor CLI action option: -stackwalk-mode=online

Disable stacks collection

  • Characterization

GUI controls:

  • Vectorization Workflow pane > Enable Roofline with Callstacks checkbox

  • Project Properties > Analysis Target > Trip Counts and FLOP Analysis > Advanced > Collect stacks checkbox

advisor CLI action option: -no-stacks (or just ensure the CLI action option -stacks is omitted from the advisor command line)

Disable stitch stacks

Survey

GUI control: Project Properties > Analysis Target > Survey Hotspots Analysis > Advanced > Stitch stacks checkbox

advisorCLI action option: -no-stack-stitching

Increase sampling interval

Survey

GUI control: Project Properties > Analysis Target > Survey Hotspots Analysis > Advanced > Sampling interval field

advisor CLI action option: interval=<integer>

Limit collected analysis data

Survey

GUI control: Project Properties > Analysis Target > Survey Hotspots Analysis > Advanced > Collection data limit, MB field

advisor CLI action option: -data-limit=<integer>

Limit loop call count

  • Dependencies

  • Memory Access Patterns

GUI control: Project Properties > Analysis Target > [Name] Analysis > Advanced > Loop Call Count Limit field

advisor CLI action option: -loop-call-count-limit=<integer>

Disable additional analysis

Survey

GUI controls: Project Properties > Analysis Target > Survey Hotspots Analysis > Advanced...

  • Analyze MKL loops and functions checkbox

  • Analyze Python loops and functions checkbox

  • Analyze loops that reside in non-executed code paths checkbox

  • Enable register spill/fill analysis checkbox

  • Enable static instruction mix analysis checkbox

advisor CLI action options:

  • -no-mkl-user-mode

  • -no-profile-python

  • -no-support-multi-isa-binaries

  • -no-spill-analysis

  • -no-static-instruction-mix

Miscellaneous Techniques

The following table is a summary. For more information, see Miscellaneous Techniques to Minimize Analysis Overhead.

Minimization Technique

Impacted Intel Advisor Analyses

Summary

Disable cache simulation

  • Characterization

  • Memory Access Patterns

GUI controls:

  • Project Properties > Analysis Target > Memory Access Patterns Analysis > Advanced > Enable cache simulation checkbox

  • Project Properties > Analysis Target > Trip Counts and FLOP Analysis > Advanced > Enable cache simulation checkbox

advisor CLI action option: -no-enable-cache-simulation

Limit reported data

Memory Access Patterns

GUI controls:

  • Project Properties > Analysis Target > Memory Access Patterns Analysis > Advanced > Report stack variables checkbox

  • Project Properties > Analysis Target > Memory Access Patterns Analysis > Advanced > Report heap allocated variables checkbox

advisor CLI action options:

  • -no-record-stack-frame

  • -no-record-mem-allocations

Minimize data set

All, but especially:

  • Dependencies

  • Memory Access Patterns