In very large, complex functions, loops preceded by OpenMP directives may not be threaded. Compiler may emit the warning remark: "An internal threshold was exceeded: loops may not be vectorized or parallelized. Try to reduce routine size."
Linker error generated when different parts of a program try to link both the static and dynamic versions of the OpenMP runtime. The solution is to expilcitly call out either a dynamic or static link.
The Intel® Compilers provide an OpenMP* runtime library to enable mixed Microsoft Visual C++* and Intel Compiler builds that both use OpenMP*.
The Intel C++ and Fortran compilers for Windows* and Linux* provide 'legacy' and 'compatibility' implementations of the OpenMP THREADPRIVATE directive. The 'compatibility' option should not be used when everything is compiled by Intel compilers.
Intel MKL in Microsoft Visual Studio
This article discussions parallelization and provides links that will help you understand your programming environment and evaluate the suitability of your app.
This article is part of the Intel® Modern Code Developer Community documentation which supports developers in leveraging application performance in code through a systematic step-by-step optimization framework methodology. This article addresses: Thread level parallelization.
Compiler Methodology for Intel® MIC Architecture
面向英特尔® MIC 架构进行应用的适用性分析