views:

150

answers:

1

I'm compiling my fortran90 code using Intel Visual FORTRAN on Windows Server 2003 Enterprise X64 Edition. When I compile the code for 32 bit structure and using automatic and manual vectorizing options. The code will be compiled, vectorized. And when I run it on 8 core system the compiled code uses 70% of CPU that shows me that vectorizing is working. But when I compile the code with 64 Bit compiler, it says that the code is vectorized but when I run it it only shows CPU usage of about 12% that is full usage for one core out of 8, so it means that while the compiler says that code is vectorized, vectorization is not working.

And it's strange for me because it's on a X64 Edition Windows and I was expecting to see the reverse result. I thought that it should be better to run a code that is compiled for 64 Bit architecture on a 64 bit windows.

Anyone have any idea why the compiled code is not able to use the full power of multiple cores for 64 Bit Compiled version?

Thanks in advance for your responses.

A: 

I haven't used the Windows versions of the Intel Fortran compilers, only the Mac and Linux. In Intel nomenclature, "vectorization" uses the small-scale parallel instructions / multimedia extensions SSE, SSE2, SSE3, SSSE3, SSE4 that are available on a single processor / core. The feature of these compilers that can automatically multithread execution across multiple processors / cores is "parallelization". The options are -vec or /Qvec versus -parallel or /Qparallel. So which compiler options are you using?

M. S. B.
I'm using /Qvec option. But I thought /Qparallel option is for OpenMP parallelizing. And the other question is why when I use /Qvec with 32 Bit compiler the compiled code can use multiple core (cpu usage is lot more than a core) ?