Compiler Switches for Intel® Parallel Amplifier

Introduction :
Intel® Parallel Amplifier can analyze just about any native binary.  However, some settings make analysis easier.

Useful Settings for Intel® Parallel Amplifier:

Switch

Purpose

/Zi
(highly recommended)

Intel® Parallel Amplifier uses the symbols to associate addresses to source lines.

"Release" Build    
(highly recommended)

The time expired to execute a section of code may change if you don't use your normal production switches (Not /Od).  Potentially causing you to analyze and attempt optimization on a section of code that is not a performance problem.

/MD or /MDd

(recommended)

Using this setting will allow Amplifier to differentiate C runtime calls from your code in User Attribution.

  

Useful Settings for OpenMP* Applications compiled with the Intel® Compiler for Intel® Parallel Amplifier:

Switch

Purpose

/Qopenmp

(highly recommended)

Without this switch Intel® Parallel Amplifier will not identify parallel regions due to OpenMP pragmas.

/MD or /MDd

(recommended)

In Intel® Compiler 10.1 this setting chooses the dynamic version of the OpenMP* runtime libraries which has been instrumented for Intel® Parallel Amplifier.

In Intel Compiler 11.0 or Intel Parallel Composer, please see below.

/Qopenmp-link:dynamic

(recommended)

In Intel® Compiler 11.0 and Intel® Composer this setting chooses the dynamic version of the OpenMP* runtime libraries which has been instrumented for Intel® Parallel Amplifier.

This is the default when using Intel Compiler 11.0 or Intel Parallel Composer.


Useful Setting for applications using Intel® Threading Building Blocks:

Switch

Purpose

/D
"TBB_USE_THREADING_TOOLS"
(recommended)

This setting adds the proper instrumentation allowing Intel® Parallel Amplifier to properly identify Intel® Threading Building Blocks.

  

Settings not recommended for use with Intel® Parallel Amplifier:

Switch

Purpose

/Qtcheck
(do not use)

This setting is an alternative method of instrumentation for Intel® Thread Checker, it will cause overhead altering the performance analysis.   Intel® Parallel Amplifier does not use this switch.

/Qopenmp-link:static

(do not use)

This setting places the static version of the Intel® OpenMP* libraries into your code.  This version does not contain the necessary instrumentation for Intel® Parallel Amplifier.

/Qtprofile

(do not use)

This setting is an alternative method of instrumentation for Intel® Thread Profiler, it will cause overhead altering the performance analysis.  Intel® Parallel Amplifier does not use this switch.

/Qopenmp_stubs

(do not use)

This setting will prevent OpenMP* codes from actually being parallel.

/debug:parallel

(do not use)

This setting enables the Intel® Parallel Debugger Extension for the Intel® Parallel Composer.  It is not used for the Intel® Parallel Amplifier

  

Settings which have no impact on Intel® Parallel Amplifier:

Switch

Purpose

/FIXED:NO

This is not required for Intel® Parallel Amplifier.  It is a linker switch required by the code instrumentor used in Intel Thread Checker, Intel Thread Profiler, and in the call graph in Intel® VTuneTM Performance Analyzer.

Note:
Intel® Parallel Amplifier works better with dynamic versions of the following libraries:

  • OpenMP* Runtime Library (libiomp5md.dll or libguide40.dll)
  • C Runtime Library (msvcr90.dll, msvcr80.dll, msvcr90d.dll, or msvcr80d.dll)

Intel® Parallel Amplifier does not work as well with the following libraries:

  • OpenMP* Runtime Library (libiomp5mt.lib, libguide.lib, vcomp80.dll/vcomp90.dll or vcomp80d.dll/vcomp90d.dll)
  • C Runtime Library (libcmt.lib)

More Information:

This article addressed the most obvious switches that developers would have concerns over.  Most switches will work with Intel® Parallel Amplifier - but not every switch combination is tested.  If you have information regarding other switches, please add a comment to this article.  If you have question regarding a particular switch please submit an issue to the Intel® Parallel Studio Forum.

Version :
Intel® Parallel Amplifier
Intel® Parallel Composer
Intel® C++ Compiler for Windows* 11.0
Intel® C++ Compiler for Windows* 10.1
Microsoft* Visual Studio 2005
Microsoft* Visual Studio 2008

 

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