I'm porting a legacy code to the Intel Atom N550. I'm using the Intel C/C++ compiler v11.1.067 embedded in the Microsoft Visual Studio 2008 on Asus EeePC, which has a 1.5GHz N550 and Windows 7 Starter (32-bit). I believe that Atom has 2 cores, and is capable of running 4 threads in parallel. When I turn on the compiler option for parallelization, the code builds successfully, but gives me run-time exceptions with the following error message:
"C:\\Program Files\\Common Files\\Intel\\Shared Files\\cpp\\bin\\Intel64\\libiomp5md.dll is either not designed to run on Windows or it contains an error. Try installing the program again ..."
If I turn off the parallelization option, the code builds and runs successfully. When I run the code, I can see that the CPU usage is 25% ~ 29%. The task manager shows 4 CPU Usage History windows, assumedly one for each thread. Only one window shows near 100% usage; the rest 3 windows show close to 0% CPU activity.
I wonder why the code can not be paralleled? Is it because I have a 32-bit OS? Please help me understand this behavior.
If your code runs correctly without parallelization, you must be using the correct (ia32) compiler, so it seems you have incorrectly over-ridden the PATH for run-time choice of .dll. Make sure you don't have X64 enabled anywhere in the Visual Studio setup and don't add any \intel64\ folders to the search paths.
Further questions might better be asked on the C++ forum.