Debugger Extension (续一)

作者: 甘驰 (Intel) (20 篇文章) 日期: 三月 19, 2009 在 12:58 下午

通过引入OpenMP把原来单线程的程序改为多线程,窃以为最难得莫过于设定数据共享特征,如shared, private, firstprivate, lastprivate, threadprivate,数据是否在OpenMP的并行区域内是否被各线程所共享由此决定,新手难免设错。Thread data sharing eventIntel debugger extension为发现这类问题而新增的。

Enable Thread Data Sharing Event Detection使Intel debugger extension开始检测。按下Stop On Thread Data Sharing Event后,如事件发生,则程序暂停,如不按下该键,则程序运行结束后,在图片下部的窗口显示事件的相关信息,如线程号,代码行号等。

 如OpenMP程序未发生该事件且结果正确则善,不然需加入 #pragma omp atomic 或 #pragma omp critical对该数据访问加以限制(串行化)

检测所有的数据访问会使程序运行得很慢很慢。一个解决方法是在访问可能的sharing data前设置断点,等运行到该处后,再启动thread data sharing detection,  离开可疑区域后再关闭检测。

 

分类: 并行计算, 英特尔® 软件网络 2.0
标签:

如需了解英特尔软件产品相关的性能和优化选项,请参阅优化注意事项.

 评论 (22)

2009年03月18日 23:15

Jeff Zhang 张炯 (Intel)
Jeff Zhang 张炯 (Intel)总分:
8,974
社区经理
谢谢,Colt。这个系列文章应该还是多核多线程技术相关的,下次在分类里面请把多核技术也勾上,方便来看博客的,谢谢。
2009年03月20日 07:11


` Angle_.
123126
2009年03月20日 07:12


` Angle_.
123126
2009年03月20日 07:12


` Angle_.
123126
2009年03月20日 07:12


` Angle_.
123126
2009年03月20日 07:12


` Angle_.
123126
2009年03月20日 07:12


` Angle_.
123126
2009年03月20日 07:12


` Angle_.
123126
2009年03月20日 07:12


` Angle_.
123126
2009年03月20日 12:02


la
13413230
2009年03月20日 22:06


陈齐
aa
2009年03月20日 22:06


陈齐
aa
2009年03月21日 05:38

1060573547
1060573547总分:
5
注册用户
喂喂喂
2009年03月21日 20:57


gubhliay
不错
2009年03月21日 21:52


宁菜
很深懊哦,我是刚学编程语言的。
我试着看吧。
2009年03月22日 20:46


唯一
不知道
2009年03月23日 02:28


阿一
可以,就是图片比较模糊
2009年03月23日 06:21


王涛
不错,还要慢慢学习了^_^
2009年04月23日 22:00


yyuuui
hhhhhhhhhhhhhhhhhhhhhhhhhh
2009年05月06日 09:56


qxgzr
Java技术联盟群:52968811 期待您的加盟!

群内讨论一切Java技术

想学好Java请您进群,真正的技术讨论群 !
2009年05月06日 09:57


qxgzr
Java技术联盟群:52968811 期待您的加盟!

群内讨论一切Java技术

想学好Java请您进群,真正的技术讨论群 !
2010年05月06日 01:54


给哥哥哥哥
中国人民感谢您!

 引用 (0)


 写评论  

欲获得技术支持,请访问软件支持页面.
姓名 (必填)*

电子邮件 (必填,不在本页面显示)*

您的 URL (可选)


评论*