【问题标题】:How to profile number of function calls and wall clock time using HPCToolkit?如何使用 HPCToolkit 分析函数调用次数和挂钟时间?
【发布时间】:2015-05-18 10:46:15
【问题描述】:

我打算在 8 个节点的集群上分析社区地球系统模型 (CESM)。我能够使用HPCToolkit 成功分析应用程序

我只能获得两个指标,即 CPU Time(I) 和 CPU Time(E)。我对获取函数调用次数和挂钟时间等指标很感兴趣。如何使用 HPCToolkit 提取此类指标?

这是所需的其他信息:

1) 系统信息

操作系统/架构 [nitin@master ~]$ uname -a Linux master.ipoc.org 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

编译器:我正在使用英特尔系列编译器 [nitin@master ~]$ icc -V Intel(R) C Intel(R) 64 Compiler XE,适用于在 Intel(R) 64 上运行的应用程序,版本 15.0.2.164 Build 20150121 版权所有 (C) 1985-2015 英特尔公司。保留所有权利。

PAPI : 我还没有安装 PAPI。主要是因为在制作过程中遇到与安装有关的错误。我猜这是因为 http://icl.cs.utk.edu/papi/faq/#264 中所说的与 libpfm 相关的问题

Java [nitin@master ~]$ java -version java版本“1.7.0_09-icedtea” OpenJDK 运行时环境 (rhel-2.3.4.1.el6_3-x86_64) OpenJDK 64 位服务器 VM(内部版本 23.2-b09,混合模式)

2) 高性能计算工具包 (看起来我使用的是 HPCToolkit 版本 5.3.2 [2012.09.21]。我认为这是 README.Releasenotes 中的最新版本)

3) 分析应用程序:该应用程序是一个复杂的应用程序,称为社区地球系统模型 (CESM)。它有几个组件分布在许多 fortan 文件中。代码主要在 Fortran 中。我没有使用 hpclink,而是直接在 mpirun 命令中使用 hpcrun。我在 8 个节点(每个节点有 16 个内核)的集群上运行代码。因此,看起来我已经动态链接了应用程序。

【问题讨论】:

  • 我不确定 SO 是否适合这个平台(它对于问答网站来说太宽泛了)......也许你应该询问他们网站上提供的支持或论坛。跨度>
  • 是的。确实如此。如网站中所述,我已在论坛中发布问题。除此之外,我想知道是否有一些 HPCToolkit 用户设法解决了这个问题。
  • “附加了 config.log”?
  • 对不起。删除了该声明。这无关紧要。

标签: fortran profiling fortran90 hpc


【解决方案1】:

HPC Toolkit 不会为您提供函数调用的数量。它是基于采样的分析器,而不是“记录所有内容”分析器。

如果您需要知道确切的函数调用计数,那么您将需要检测代码或使用为回答您的问题而构建的其他东西,例如 gprof 或 callgrind(尽管对于 HPC 应用程序来说这样做并不容易或快速)。对于像 CESM 这样的代码,您可能不会从使用这些代码中获得任何收益。

对于挂钟,我希望它会提供此功能,因此建议您等待 HPC 工具包论坛回复您。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-17
    • 1970-01-01
    • 2010-11-16
    • 2017-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多