请让我知道如何设置 INTEL fortran 编译器选项以获得 IA32 和 X64 位的 8 核系统的最佳性能。实际上,我想执行一个 fortran 程序并利用 8 核系统中可用的所有 CPU 时间。现在程序只使用了 13% 的 CPU 时间。
2 回答
您可以在本教程中了解英特尔 FORTRAN 的自动矢量化和引导式自动并行化功能:http: //software.intel.com/sites/products/documentation/hpc/composerxe/en-us/start/win/tutorial_comp_for_win.pdf。
如果您正在做线性代数、求解器、FFT,如果您将问题映射到英特尔数学内核库的调用中,您可能会获得最佳结果:http: //software.intel.com/en-us/articles/intel-mkl/ 它们已经是多线程的、矢量化的和缓存优化的。
如果您正在进行媒体/信号处理,您可能会将您的问题映射到英特尔性能基元库中的调用:http: //software.intel.com/en-us/articles/intel-ipp/
快乐黑客!
在我的特定应用程序中,一个计算网络模型包含几个循环,运行 20k 次迭代,每次迭代访问多个嵌套的if's
,只需在编译器中启用 /Q2 级别优化就足以大幅减少计算时间,同时保持 CPU 负载在15%。在类似的说明中,我注意到将优化设置提升到最后一个级别(/Q3),确实按照您的要求(以大约满负载运行所有 CPU),但计算时间根本没有减少。因此,如果一个人有一个小问题,并且要测试的几个案例和处理能力是唯一的瓶颈,那么打开多个 Fortran 解决方案并同时运行这些案例可能是一个好主意。