Introduction
Threading error analysis in Intel® Inspector can analyze most native binaries. However, some settings make analysis easier. In this article, "Intel Inspector" refers to the threading error analysis feature in particular.
Switch | Effect |
---|---|
Linux*: Windows*: |
Highly recommended. Intel Inspector uses the symbols to associate addresses to source lines. For threading error analysis this setting will suppress some false positives. |
Linux*: Windows*: |
Recommended for initial analysis Allows Intel Inspector to more easily associate errors to the correct source line. Intel Inspector can also analyze optimized binaries, but it is difficult to pinpoint the source code location causing a problem in optimized assembly that does not have specific source lines. Note: While it is easier to do analysis of binaries without optimization, it is also important to check for memory errors in your "released/optimized" version of your binaries. |
Linux*: Windows*: |
Recommended. Using this default setting will suppress some false positives. |
Switch | Effect |
---|---|
Linux*: Windows*: |
Highly recommended. Without this switch Intel Inspector will not find any data races or deadlocks associated with the threading due to your OpenMP* pragmas. |
Linux*: Windows*: |
Recommended. In Intel® Compiler 11.x, 12.x and Intel® Composer this setting chooses the dynamic version of the OpenMP* runtime libraries which has been instrumented for Intel Inspector. This is the default when using Intel Compiler 11.x, 12.x or Intel Parallel Composer. |
Switch | Effect |
---|---|
Linux*: Windows*: |
Highly recommended. Intel Inspector needs an instrumented version of TBB. The Macro TBB_USE_THREADING_TOOLS directs TBB to enable this instrumentation The Macro TBB_USE_THREADING_TOOLS is set when you set TBB_USE_DEBUG. Without TBB_USE_THREADING Intel Inspector will identify false positives in Intel® TBB. |
Switch | Effect |
---|---|
Linux*: Windows*: |
Not recommended. Using these setting will prevent threading Error analysis in Intel Inspector from suppressing some false positives.[1] |
Linux*: Windows*: |
Do not use. Binaries which use instructions not supported by Intel processors may cause unknown behaviors in Intel Inspector. |
Linux*: Windows*: |
Not recommended. Intel Inspector works best with full (the default). Other options including parallel, extended, emit-column, expr-source-pos, inline-debug-info, semantic-stepping, & variable-locations are not supported by Intel Inspector. |
Linux*: Windows*: |
Do not use. Threading error analysis in Inspector does not support coarray Fortran. |
Switch | Effect |
---|---|
Linux*: Windows*: |
This is not required for Intel Inspector. 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 VTune Performance Analyzer. |
Notes
[1] Threading Error Analysis in Intel Inspector works better with dynamic versions of the following libraries:
- OpenMP* Runtime Library as supplied by an Intel Compiler3
Linux:libiomp5.so
orlibguide40.so,
Windows:libiomp5.dll
orlibguide.dll
- Posix Thread library
Linux:libthread.so
- C Runtime Library
Linux:libc.so,
Windows:msvcr90.dll, msvcr80.dll, msvcr90d.dll,
ormsvcr80d.dll
Threading Error Analysis in Intel Inspector does not work as well with the static version of the following libraries:
- OpenMP* Runtime Library as supplied by an Intel Compiler
Linux:libiomp5.a
orlibguide4.a
Windows: libiomp5mt.lib, libguide.lib - Posix Thread library
Linux:libpthread.a
- C Runtime Library
Linux:libc.a
Windows: libcmt.lib
[2] Threading Error Analysis in Intel Inspector does not support OpenMP libraries based on the GNU Compiler (libgomp.so), or Microsoft Compiler (vcomp90.dll, vcomp90d.dll). Those libraries are not instrumented to support threading error analysis in Intel Inspector – therefore you are likely to get false positives and false negatives if you use those libraries.
More Information
This article addressed the most obvious switches that developers would have concerns over. Most switches will work with Intel® Inspector - 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 Inspector Forum