2010-07-30 74 views
0

我收集了使用PAPI的L2缓存未命中数的数据。我用4个线程(mpirun -np 4)运行了一个MPI应用程序,每个线程都读取L2中的缓存未命中。每个线程输出每个时间戳的数据。 如:如何解释papi输出

Timestamp    data 
xxx530  thread# 0 2136 
xxx531  thread# 0 3217 
..   .   . 
.   .   . 
.   .   . 
.   .   . 
xxx550  thread# 0 412334255 

xxx530  thread #1 2456 
xxx531  thread#1  4243 
xxx532  thread #1 4567 
and so on 

现在我qstn,是我是否shud在时间戳xxx530添加所有的高速缓存未命中值线0,1,2,3,shud我取最高值的thrreda0,1, 2,3为时间戳xxx530?

+0

你可以修改你的程序吗?不要在某个线程中用内存做一些工作。然后你会从这个线程中得到计数器并选择变量(换句话说就是“总和”或“最大值” - 换句话说 - 每线程计数器或系统/ CPU范围计数器) – osgx 2010-11-10 04:39:00

回答

0

裸露的L2高速缓存未命中计数是没有用的。

您还应该计算缓存命中次数或内存访问次数来获取一些有用的信息。