通过额外的优化标志减少fortran运行时间

时间:2013-02-01 02:15:50

标签: optimization fortran

我一直在尝试优化我的程序一段时间。它有100多个子程序。到目前为止,我使用英特尔Fortran编译器的优化标志如下。

Optimization flag Time of completion
-c                     0.190 hr
-O3                    0.185 hr
-fast                  0.155 hr

所以,使用优化标志“-fast”我能够获得18.42%的速度。我想知道是否有任何其他优化标志,我可以尝试让我的程序运行得更快。因为现在,当我用我的问题只用O2标志运行我的程序时,花了大约25个小时才能完成。我真的需要提高计算效率。

我从https://support.scinet.utoronto.ca/wiki/images/7/77/Snug_techtalk_compiler.pdf

找到了有关“-fast”标志的信息

我在linux中使用intel fortran 13.1编译器。

非常感谢任何帮助。

非常感谢你。

最诚挚的问候,

Jdbaba

1 个答案:

答案 0 :(得分:2)

您没有说明您正在使用哪种编译器,但暗示英特尔会使用您的链接。使用Intel ifort,您可以尝试-parallel并获得自动并行化。过去某些时候,编译器将使用您的源代码做到最好,并且进一步的运行时间减少将需要改进错误的编码决策或算法改进,我们都没有从您的问题中提供信息来提供具体建议。 “profiling”表示程序花费运行时的位置。如果程序仅在子程序A中花费1%的运行时间,那么使子程序A运行速度快十倍是没有意义的......你将获得很少的整体改进。最好处理程序花费80%或50%或其运行时间的子程序。