根据性能计数器将程序分类为计算密集型

时间:2014-05-08 17:16:18

标签: linux performance parallel-processing profiling perf

我正在尝试将少数并行程序归类为计算/内存/数据密集型。我可以根据从 perf 等性能计数器获得的值对它们进行分类。这个命令给出了一些值,比如我认为可以用来知道程序是否需要频繁访问内存的页面错误数,否则。

这种方法是否正确且可行。如果没有,有人可以指导我将程序分类到各自的类别。

干杯, 克里斯

1 个答案:

答案 0 :(得分:0)

是的,你应该在理论上用perf来做到这一点。如果您想分析内存活动,我认为不会发现页面错误事件。为此,在Intel处理器上,您应该使用允许您计算内存流量的非核心事件(单独读/写)。在我的Westmere-EP上,这些计数器是UNC_QMC_NORMAL_READS.ANYUNC_QMC_WRITES_FULL.ANY

以下文章完全解决了您的问题(在英特尔处理器上):

http://spiral.ece.cmu.edu:8080/pub-spiral/pubfile/ispass-2013_177.pdf