【问题标题】:Good profiler for Fortran and MPIFortran 和 MPI 的良好分析器
【发布时间】:2013-08-14 00:55:46
【问题描述】:

对于包含 MPI 的 Fortran 代码库,您使用哪个分析器? gprof 似乎无法正常工作。 Sun Studio Analyzer 仅返回 C/C++ 系统调用的计时,并且不显示任何 fortran 函数。

【问题讨论】:

  • gprof 有什么问题?我用它来分析我的 MPI 程序没有问题。您是否使用-pg 编译了要分析的对象?
  • 要求我们推荐或查找工具、库或最喜欢的非现场资源的问题对于 Stack Overflow 来说是题外话,因为它们往往会吸引固执己见的答案和垃圾邮件。
  • gprof 如果您的调用树很浅,并且对 I/O 所花费的时间视而不见(如果有的话),则可以。我使用this method,它与 Fortran 中的 GDB 一起使用。我关闭 MPI,进行性能调整,然后重新打开 MPI。
  • 感谢@MikeDunlavey 的回答。
  • @IRO-bot:我已经正确使用了 gprof,但是从属日志和主日志输出不正确,或者大多数有时非常耗时的功能没有显示出来。所以我想看看是否还有其他选择。谢谢。

标签: profiling fortran mpi profiler


【解决方案1】:

有许多专门用于并行/MPI 程序的性能分析工具,例如:

  • Score-P,可与许多不同的分析工具一起使用,例如Cube, Vampir
  • HPCToolkit 仅使用采样,因此您不必重新编译您的应用程序
  • Tau

起初它们可能没有那么简单易用,但它们为调查并行应用程序的性能提供了更多帮助。

【讨论】:

    【解决方案2】:

    当提问者说“gprof 似乎没有正常工作”时,也许他指的是 N MPI 进程可能会破坏 gmon.out 文件的事实。在这种情况下,(未记录的)GMON_OUT_PREFIX 环境变量可能会使 gprof 更有用:

    $ export GMON_OUT_PREFIX=gmon.out
    $ mpiexec -np 4 cpi
    

    【讨论】:

      【解决方案3】:

      Allinea MAP 是一个简单明了但非常强大的分析器。

      它旨在显示 Fortran、C 和 C++ MPI 应用程序中的性能问题,并且只需很少的努力即可开始并进行分析。

      它是图形化的,并与源代码浏览器集成,可根据代码行显示性能,并能够分析不良 MPI 行为、不良工作平衡或不良矢量化。

      我是产品背后的团队之一,所以有点偏见。它是商业的——网站上有评估许可证。

      【讨论】:

        【解决方案4】:

        gprof 是 Fortran 和其他基于 GNU 的编译器的出色分析器。

        【讨论】:

        • @CyrilDuchon-Doris 他可能读过,他的回答是对 SkypeMeSm 问题的反驳,因为他没有提供任何细节和解释“为什么 gprof 不能正常工作”
        【解决方案5】:

        您可以使用Intel Trace analyzer 来配置 MPI 通信,使用Intel VTune 来获取单个 MPI 任务的配置文件。这两种软件都在英特尔网站上广泛记录。

        【讨论】:

          【解决方案6】:

          我想再添加两个分析器:(1) mpiP 是一个轻量级分析器,可以产生文本输出,但只测量 MPI 函数。 (2) Scalasca - 这会产生一个复杂的输出,它也可以指向同步不平衡(延迟发送者/延迟接收者)(与不指向同步不平衡的 TAU 相反)。

          【讨论】:

            猜你喜欢
            • 2015-06-09
            • 2014-02-24
            • 2011-04-07
            • 1970-01-01
            • 2011-12-19
            • 2013-02-12
            • 1970-01-01
            • 2013-08-10
            • 1970-01-01
            相关资源
            最近更新 更多