Intel® Thread Checker for Windows* - Compiler settings for Windows* OpenMP* applications when using Thread Checker

Recommended Intel® Compiler Settings for Windows* OpenMP* Applications When Using the Intel® Thread Checker

Get the best results from Intel® Thread Checker by using the following command to compile your Windows* OpenMP* applications:

icl file.c /Qopenmp /MD [/Qtcheck] /Od /Zi /link /fixed:no
Switch Purpose
/Qopenmp
(required)
Tells the compiler to process the OpenMP* pragmas.
/MD
(highly recommended)

Specifies to use the dynamic multi-threaded version of the C runtime library ( msvcrt80.dll).

Specifies to use the dynamic version of the OpenMP* runtime library. ( libguide40.dll or libiomp5md.dll)

Note:

  • /MT uses the static version of the Intel runtime libraries for OpenMP* applications ( libguide.lib or libiomp5mt.lib). Intel® Thread Checker reports false positives if you use the static version of the OpenMP* runtime libraries.
  • /MT specifies to use the static multi-threaded C runtime library ( libcmt.lib) that reduces the information available for the analysis engine. This may cause Intel® Thread Checker to miss statically linked libc calls of standard libraries. However, Intel® Thread Checker should still catch the underlying system APIs used to implement the libc capabilities.
/Qtcheck
(optional)
Enables thread count independent (TCI) analysis mode instead of thread count dependent (TCD) analysis mode on OpenMP* applications.
/Od
(recommended)

Allows Intel® Thread Checker to more easily associate errors to source lines.

Intel® Thread Checker can also analyze optimized binaries, but it is difficult for Intel® Thread Checker to pinpoint the source code location causing a problem in optimized assembly that does not have specific source lines.

/Zi
(highly recommended)

Creates symbols for the binary. Intel® Thread Checker uses the symbols to associate addresses to source lines.

Note: For binaries compiled without /Zi (no symbols), Intel® Thread Checker instruments using API Imports. Intel® Thread Checker cannot find all threading errors within a binary that is instrumented with API Imports. The Default of API Imports instrumentation on a particular file can be changed to Full Image via advanced settings in Intel® Thread Checker, but the result is that you will not see the source code that caused the problem, only the assembly.

/link /fixed:no
(required)

Required to allow Intel® Thread Checker to relocate functions within your binary.

Related Documentation

  • Intel® Thread Checker Help » About OpenMP*
  • Using Intel® Thread Checker on OpenMP* Applications Compiled with the Microsoft* Compiler at [url…]

Confirmed On:

  • Microsoft* Visual Studio* 2005 development system
  • Intel® C/C++ Compiler 10.1 for Windows*
  • Intel® Fortran Compiler 10.1 for Windows*
  • Intel® Thread Checker 3.1 for Windows*

Operating System:

Windows* XP Professional x64 Edition, Windows Server* 2003 Standard x64 Edition, Windows Server* 2003 Enterprise x64 Edition, Longhorn Beta 1, Windows Vista* Beta 1, Windows* Storage Server, Windows Vista* 64, Windows Vista* Starter, 32-bit version, Windows Vista* Home Basic, 32-bit version, Windows Vista* Home Premium, 32-bit version, Windows Vista* Business, 32-bit version, Windows Vista* Enterprise, 32-bit version, Windows Vista* Ultimate, 32-bit version, Windows Vista* RC2, Windows Vista* Home Basic, 64-bit version, Windows Vista* Home Premium, 64-bit version, Windows Vista* Business, 64-bit version, Windows Vista* Enterprise, 64-bit version, Windows Vista* Ultimate, 64-bit version, Windows Vista*, Windows Vista* 32, Windows Server* 2003 for Itanium-based Systems, Windows* XP Starter Edition, Windows* Compute Cluster Server 2003, Windows* 2000, Windows* XP 64-Bit Edition, Windows* XP Professional, Windows* XP Home Edition, Windows* XP Tablet PC Edition, Windows Server* 2003, Windows* XP Media Center Edition, Windows* 2000 Server, Windows* 2000 Advanced Server, Windows Server* 2003 Standard Edition, Windows* XP 64-Bit Edition Version 2003

Optimization Notice in English

Per informazioni più dettagliate sulle ottimizzazioni basate su compilatore, vedere il nostro Avviso sull'ottimizzazione.