Fotran77 和 Fortran90/95 通过当前的编译器与数组操作在性能上有何不同?

计算科学 正则
2021-12-25 18:05:40

我想为 Fortran 中的数组操作编写最优化的程序(例如,大矩阵的矩阵乘法,大矩阵的平方等)

那么,使用当今市场上的 fortran 编译器(例如 gfortran),F77 与 F90/95(或 F03)相比如何?我应该使用特定的编译器来优化特定版本的 Fortran 的速度吗?

此外,我如何对这些 Fortran 程序进行编码以优化基于所使用的 Fortran 版本的速度是否有所不同?或者这只是简单地更改扩展名(例如.f90 到.f70)并且程序运行得更快?

1个回答

在与快速库(MKL、FLAME、MAGMA 等)进行比较之前,几乎没有充分的理由编写自己的密集矩阵操作例程。编写这些库是一项具有挑战性的工作,它高度依赖于目标架构,并且需要比简单的嵌套 do 循环更深入的概念。您应该参与有关该主题的完整文献,并且您应该注意,目前该领域中性能最佳的库基本上都不是用 Fortran(任何风格)编写的。其中大多数是 C/C++ 加上目标内在函数或汇编代码。编译器还不足以实现任何芯片的全部性能。