如何使用HPCToolkit分析函数调用次数和挂钟时间?

时间:2015-03-16 10:42:14

标签: fortran profiling fortran90 hpc

我打算在8个节点的集群上分析社区地球系统模型(CESM)。我可以使用HPCToolkit

成功分析应用程序

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

这是所需的其他信息:

1)系统信息

OS /建筑 [nitin @ master~] $ uname -a Linux master.ipoc.org 2.6.32-358.el6.x86_64#1 SMP Fri 2月22日00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU / Linux

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

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

中有关libpfm的问题

爪哇 [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 (看起来我正在使用HPCToolkit版本5.3.2 [2012.09.21]。我看到这是README中的最新版本.Releasenotes)

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

1 个答案:

答案 0 :(得分:0)

HPC Toolkit不会为您提供函数调用的数量。它是一个基于抽样的分析器,而不是“log everything”分析器。

如果您需要知道确切的函数调用次数,那么您将需要检测代码或使用为回答您的问题而构建的其他内容,例如gprof或callgrind(尽管对于HPC应用程序而言不容易或快速执行)。对于像CESM这样的代码,你可能无法从中获得任何东西。

对于挂钟我希望它会提供这个,所以建议你等待HPC工具包论坛回答你。