【发布时间】:2013-02-01 02:15:49
【问题描述】:
一段时间以来,我一直在尝试优化我的程序。它有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 编译器。
非常感谢任何帮助。
非常感谢。
最好的问候,
贾巴巴
【问题讨论】:
-
将标题更改为“减少运行时间”(而不是“增加”),因为这正是您真正要问的。您可能想尝试
-faster、-warp=11或-so_damn_fast_it_ends_before_it_starts标志:-) -
@paxdiablo 感谢您的回复和编辑我的帖子标题。我将尝试使用您建议的优化标志,如果有任何速度提升,我将发布。除了 -fast 或单独使用此优化标志吗?
-
你做错什么了吗?是的!你没有在我的评论中看到幽默 :-) 我本以为第三个标志就很明显了,但是,就像我的妻子一样,地球上的绝大多数人都不理解我严重扭曲的幽默感。对此感到抱歉。
-
在充分尊重@paxdiablo 的情况下,我建议 OP 查阅英特尔 Fortran 编译器手册,以获取有关编译器标志的可用性和影响的更多信息。我建议 OP 也参考英特尔关于优化 Fortran 程序的出版物。哦,别忘了分析你的应用程序。
-
英特尔在优化方面有一个reference guide。手动分析当然是有见地的。此外,您可以使用
-opt-report、-guide和-par-report来获取有关 ifort 可以对您的代码做什么的详细报告。-prof-gen和-prof-use也很有用,可以使用分析数据进一步优化程序。
标签: optimization fortran