I have used Intel C++ Compiler 11.0 to compiler our code on Linux and it works fine. The compiler is able to auto-parallelize, vectorize and also parallelize OpenMP parts successfully. Now I have ported the code to Windows and using MS Visual Studio 2008 to compile our code using Intel C++ Compiler 11.0 for Windows. On Windows, however, OpenMP parts are parallelized successfully, but it seems that auto-parallelization is not active. I call the compiler with these compiler options:
/c /O3 /Og /Ob2 /Ot /Qipo /GA /EHsc /RTC1 /MT /GS /fp:fast=2 /Fo"x64\\Release/"
/W1 /nologo /Qopenmp /Qfp-speculation:fast /Qparallel
/Quse-intel-optimized-headers /Qprof_gen /Qprof_dir "x64\\Release"
/Qopt-report-file:"C:\\Documents and Settings\\Sophia\\My Documents\\Visual Studio
I should also say that the compiler on Windows could not detect OpenMP pragmas until I added /Qopenmp-lib:compat. As I said, there are many loops that are auto-parallelized and vectorized using auto-parallelization feature in Linux, but same code is not auto-parallelized on Windows. Besides, I found out that there are two features in Intel Visual Fortran for Windows which are "High Performance Parallel Optimizer (HPO)" and "Automatic Vectorizer". Are they also included in Intel C++ Compiler on Winodws and/or Linux?