首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OProfile与OpenMP

OProfile与OpenMP
EN

Stack Overflow用户
提问于 2016-01-06 00:40:05
回答 1查看 120关注 0票数 0

我使用OProfile对OpenMP并行化代码执行以下操作,

代码语言:javascript
复制
$ gcc -I/usr/include/hdf5/serial/ -std=c11 -O3 -fopt-info -fopenmp sp_linsvm.c -o sp_linsvm -lhdf5_serial
$ sudo ocount --events=CPU_CLK_UNHALTED,LLC_MISSES,LLC_REFS,MEM_INST_RETIRED,BR_MISP_EXEC, ./sp_linsvm
Events were actively counted for 22.0 seconds.
Event counts (scaled) for /home/aidan/progs/linsvm/sp_linsvm:
    Event                    Count                    % time counted
    BR_MISP_EXEC             6,523,181                80.00
    CPU_CLK_UNHALTED         225,384,009,348          80.00
    LLC_MISSES               276,587,407              80.02
    LLC_REFS                 1,098,236,806            80.00
    MEM_INST_RETIRED         51,754,855,734           79.99

我如何知道事件是按CPU计算还是作为一个整体计算?我很确定这是一个整体,因为如果我不使用OpenMP进行编译,它们接近于数字,但我想确定。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-09 01:46:21

ocount ... ./program的默认模式是“命令”。据我所知,没有-t (--separate-thread)或-c (--separate-cpu)选项,所有线程的数据都会被聚合。

所以,检查文档http://oprofile.sourceforge.net/doc/controlling-counter.html#controlling-ocount并尝试-t / -c选项..。

--separate-thread / -t此选项可与-进程列表或-线程列表选项结合使用,以便在每个线程(每个进程)的基础上显示事件计数。如果没有此选项,所有计数都将被聚合。 --separate-cpu / -c此选项可与-系统范围的或-cpu列表选项结合使用,以便在每个cpu的基础上显示事件计数。如果没有此选项,所有计数都将被聚合。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34623813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档