使用Intel Visual FORTRAN for X64进行代码矢量化

时间:2010-04-09 21:57:52

标签: windows fortran 64-bit intel vectorization

我正在使用Windows Server 2003 Enterprise X64 Edition上的Intel Visual FORTRAN编译我的fortran90代码。当我编译32位结构的代码并使用自动和手动矢量化选项时。代码将被编译,矢量化。当我在8核系统上运行时,编译的代码使用了70%的CPU,这表明向量化正在运行。但是当我使用64位编译器编译代码时,它表示代码是矢量化的,但是当我运行它时,它只显示大约12%的CPU使用率,这是8个中一个核心的完全使用,所以这意味着编译器说代码是矢量化的,矢量化不起作用。

这对我来说很奇怪,因为它是在X64版本的Windows上,我期待看到相反的结果。我认为在64位窗口上运行为64位体系结构编译的代码应该更好。

任何人都知道为什么编译后的代码无法为64位编译版本使用多核的全部功能?

1 个答案:

答案 0 :(得分:2)

我没有使用Windows版本的英特尔Fortran编译器,只有Mac和Linux。在英特尔术语中,“矢量化”使用单个处理器/核心上可用的小规模并行指令/多媒体扩展SSE,SSE2,SSE3,SSSE3,SSE4。这些编译器的功能可以在多个处理器/内核之间自动进行多线程执行,这就是“并行化”。选项是-vec或/ Qvec与-parallel或/ Qparallel。那你使用哪些编译器选项?