0

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

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

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

4

1 回答 1

2

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

于 2010-04-10T00:59:27.420 回答