ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Debugger extension (续一)

Debugger extension (续一)

原创 Linux操作系统 作者:yuyh748 时间:2009-04-11 11:35:31 0 删除 编辑

通过引入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,  离开可疑区域后再关闭检测。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10256541/viewspace-588669/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-07-29

  • 博文量
    37
  • 访问量
    48323