我在 Windows Server 2003 Enterprise X64 Edition 上使用 Intel Visual FORTRAN 编译我的 fortran90 代码。当我为 32 位结构编译代码并使用自动和手动矢量化选项时。代码将被编译、矢量化。当我在 8 核系统上运行它时,编译后的代码使用了 70% 的 CPU,这表明矢量化正在工作。但是当我用 64 位编译器编译代码时,它说代码是矢量化的,但是当我运行它时,它只显示大约 12% 的 CPU 使用率,这是 8 个内核中一个内核的完全使用率,所以这意味着编译器说代码是矢量化的,矢量化不起作用。
这对我来说很奇怪,因为它是在 X64 版 Windows 上,我期待看到相反的结果。我认为最好在 64 位窗口上运行为 64 位架构编译的代码。
任何人都知道为什么编译的代码不能为 64 位编译版本使用多核的全部功能?