我打算在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个核心)。因此,看起来我已经动态链接了应用程序。
答案 0 :(得分:0)
HPC Toolkit不会为您提供函数调用的数量。它是一个基于抽样的分析器,而不是“log everything”分析器。
如果您需要知道确切的函数调用次数,那么您将需要检测代码或使用为回答您的问题而构建的其他内容,例如gprof或callgrind(尽管对于HPC应用程序而言不容易或快速执行)。对于像CESM这样的代码,你可能无法从中获得任何东西。
对于挂钟我希望它会提供这个,所以建议你等待HPC工具包论坛回答你。