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