Before You Begin

Before you begin with the Intel Advisor:

  • Build an optimized binary of your application in release mode using settings designed to produce the most accurate and complete analysis results.

  • Verify the resulting executable runs before trying to analyze it with the Intel Advisor.

To Do This

For This Tool

Optimal C/C++ Settings

Request full debug information (compiler and linker).

Vectorization Advisor

Threading Advisor

Linux* OS command line: -g

Windows* OS command line:

  • /ZI

  • /DEBUG

Microsoft Visual Studio* IDE:

  • C/C++ > General > Debug Information Format > Program Database (/Zi)

  • Linker > Debugging > Generate Debug Info > Yes (/DEBUG)

Request moderate optimization.

Vectorization Advisor

Threading Advisor

Linux* OS command line: -O2 or higher

Windows* OS command line:

  • /O2 or higher

  • /Ob1 (Threading Advisor only)

Visual Studio* IDE:

  • C/C++ > Optimization > Optimization > Maximize Speed (/O2) or higher

  • C/C++ > Optimization > Inline Function Expansion > Only_inline (/Ob1) (Threading Advisor only)

Produce compiler diagnostics (necessary for version 15.0 of the Intel compiler; unnecessary for version 16.0 and higher).

Vectorization Advisor only

Linux* OS command line: -qopt-report=5

Windows* OS command line: /Qopt-report:5

Visual Studio* IDE: C/C++ > Diagnostics [Intel C++] > Optimization Diagnostic Level > Level 5 (/Qopt-report:5)

Enable vectorization.

Vectorization Advisor only

Linux* OS command line: -vec

Windows* OS command line: /Qvec

Enable SIMD directives.

Vectorization Advisor only

Linux command line: -simd

Windows* OS command line: /Qsimd

Enable generation of multi-threaded code based on OpenMP* directives.

Vectorization Advisor only

Linux* OS command line: -qopenmp

Windows* OS command line: /Qopenmp

Visual Studio* IDE: C/C++ > Language [Intel C++] > OpenMP Support > Generate Parallel Code (/Qopenmp)

Search additional directory related to Intel Advisor annotation definitions.

Primarily Threading Advisor, but could also be useful for Vectorization Advisor refinement analyses

Linux* OS command line: - I${ADVISOR_[product_year]_DIR}/include

Windows* OS command line: /I"%ADVISOR_[product_year]_DIR%"\include

Visual Studio* IDE: C/C++ > General > Additional Include Directories > $(ADVISOR_[product_year]_DIR)\include;%(AdditionalIncludeDirectories)

Search for unresolved references in multithreaded, dynamically linked libraries.

Threading Advisor only

Linux* OS command line: -Bdynamic

Windows* OS command line: /MD or /MDd

Visual Studio* IDE: C/C++ > Code Generation > Runtime Library > Mutithread

Enable dynamic loading.

Threading Advisor only

Linux* OS command line: -ldl

To Do This

For This Tool

Optimal Fortran Settings

Request full debug information (compiler and linker).

Vectorization Advisor

Threading Advisor

Linux* OS command line: -g

Windows* OS command line:

  • /debug=full

  • /DEBUG

Visual Studio* IDE:

  • Fortran > General > Debug Information Format > Full (/debug=full)

  • Linker > Debugging > Generate Debug Info > Yes (/DEBUG)

Request moderate optimization.

Vectorization Advisor

Threading Advisor

Linux* OS command line: -O2 or higher

Windows* OS command line:

  • /O2 or higher

  • /Ob1 (Threading Advisor only)

Visual Studio* IDE:

  • Fortran > Optimization > Optimization > Maximize Speed or higher

  • Fortran > Optimization > Inline Function Expansion > Only INLINE directive (/Ob1) (Threading Advisor only)

Produce compiler diagnostics (necessary for version 15.0 of the Intel compiler; unnecessary for version 16.0 and higher).

Vectorization Advisor only

Linux* OS command line: -qopt-report=5

Windows* OS command line: /Qopt-report:5

Visual Studio* IDE: Fortran > Diagnostics > Optimization Diagnostic Level > Level 5 (/Qopt-report:5)

Enable vectorization.

Vectorization Advisor only

Linux* OS command line: -vec

Windows* OS command line: /Qvec

Enable SIMD directives.

Vectorization Advisor only

Linux* OS command line: -simd

Windows* OS command line: /Qsimd

Enable generation of multi-threaded code based on OpenMP* directives.

Vectorization Advisor only

Linux* OS command line: -qopenmp

Visual Studio* IDE: Fortran > Language > Process OpenMP Directives > Generate Parallel Code (/Qopenmp)

Search additional directory related to Intel Advisor annotation definitions.

Primarily Threading Advisor, but could also be useful for Vectorization Advisor refinement analyses

Linux* OS command line:

  • -I${ADVISOR_[product_year]_DIR}/include/ia32 or -I${ADVISOR_[product_year]_DIR}/include/ia64

  • -L${ADVISOR_[product_year]_DIR}/lib32 or -L${ADVISOR_[product_year]_DIR}/lib64

  • -ladvisor

Windows* OS command line:

  • /I"%ADVISOR_[product_year]_DIR%"\include\ia32 or /I"%ADVISOR_[product_year]_DIR%"\include\ia64

  • /L"%ADVISOR_[product_year]_DIR%"\lib32 or /L"%ADVISOR_[product_year]_DIR%"\lib64

  • /ladvisor or

Visual Studio* IDE:

  • Fortran > General > Additional Include Directories > "$(ADVISOR_[product_year]_DIR)\include\ia32\" or "$(ADVISOR_[product_year]_DIR)\include\ia64\"

  • Linker > General > Additional Library Directories > "$(ADVISOR_[product_year]_DIR)\lib32" or "$(ADVISOR_[product_year]_DIR)\lib64"

  • Linker > Input > Additional Dependencies > .lib > libadvisor

Search for unresolved references in multithreaded, dynamically linked libraries.

Threading Advisor only

Linux* OS command line: -shared-intel

Windows* OS command line: /MD or /MDd

Visual Studio* IDE: Fortran > Libraries > Runtime Librarary > Multithread DLL (/libs:dll /threads) or Debug Multithread DLL (/libs:dll /threads /dbglibs)

Enable dynamic loading.

Threading Advisor only

Linux* OS command line: -ldl

For more complete information about compiler optimizations, see our Optimization Notice.