Tchecker反映程序中有冲突,但是执行时能返回正确结果,那么我应该怎么做呢?

bjt_ 2007-01-14 04:54:04
在使用openMP线程化程序时,在已经对程序中的所有循环中可能冲突的变量加过omp的private关键字,并且执行结果也正确的情况下,Tchecker还是提醒我有:Write -> Read data-race Memory read at [potential_serial.exe, 0x5250] conflicts with a prior memory write at [potential_serial.exe, 0xd598] (flow dependence)以及output dependence。我应该怎么办?
...全文
444 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
icansaymyabc 2007-01-18
  • 打赏
  • 举报
回复
最让我迷惑的那次,刚刚启动的机器,用 icl 命令行带了几个参数编译后tcheck报告了数据冲突.同样的命令行重编了几次都有冲突.
我改用没有参数的 icl 命令直接编译,没有冲突.
我逐步把参数一个一个地加上最后还原成了最开始的命令行,编译结果还是没有冲突.

我每次编译都是把中间文件和EXE文件删掉,目录中仅有唯一一个cpp文件才编译的.我真是找不到话说了.
icansaymyabc 2007-01-18
  • 打赏
  • 举报
回复
现在的CPU有乱序执行的能力,不要假定CPU中的指令流和你的程序逻辑完全一致。
还有由于线程调度等原因,线程代码可以在任何你意想不到的时候执行——只要你没有用严格的同步命令控制它不得在那里出现。

还有就是MKL库函数造成的数据冲突真是让人头疼,用户又无法干涉。
而且行为不确定,明明什么都没改,有时候编译结果就是没冲突。
改用 icl 命令行编译情况相反,多数时候编译结果没有冲突,可是有时候也会编出有冲突的EXE。简直是摸不着头脑啊。
IntelPerLib 2007-01-16
  • 打赏
  • 举报
回复
比如说updatePositions和computePot虽然是使用得全局变量但是他们运行是顺序的应该不会变量访问的冲突,

---------
线程中有同步的语句保证他们是顺序执行的么?
IntelPerLib 2007-01-15
  • 打赏
  • 举报
回复
两种原因: (1) 程序中可能有同步问题. (2) Threading Check 误报. 仔细查看一下程序, 如果确实没有发现错误, 建议去 https://premier.intel.com 提交一个bug的报告.
h2o0 2007-01-15
  • 打赏
  • 举报
回复
我也发现这个问题,但是我的程序是在线性区和并行区应该互相不影响,比如说updatePositions和computePot虽然是使用得全局变量但是他们运行是顺序的应该不会变量访问的冲突,还有ThreadChecker发现在MKL vdInvSqrt方法中也有这个问题,不知道是ThreadChecker的问题还是代码的问题
aero_boy 2007-01-14
  • 打赏
  • 举报
回复
这样可能效率会差些
数字治理作为数字经济时代政府治理现代化的重要方向,强调利用数字技术优化政府组织运行机制、促进政务数据共享、提升公共服务效率,实现由传统行政管理向数据驱动型治理转变 2014年,国家启动“信息惠民国家试点城市建设”,选择80个城市开展试点,核心内容包括:建设政务数据平台、推动数据共享、推动“一网通办”等,是我国数字治理实践的重要探索 本文借鉴刘奥龙等(2026)的研究思路和方法,将信息惠民国家试点城市建设作为数字治理的准自然实验,衡量各城市政府数字治理,整理形成地级市信息惠民政策试点DID数据,并进一步构建省份数字治理程度指标数据,为数字治理经济效应研究提供数据支持 具体整理过程如下: 1.城市政府数字治理:采用信息惠民国家试点城市冲击来衡量各城市政府数字治理,城市若成为信息惠民国家试点城市取值为1, 表明城市推行政府数字治理,否则为0 2.省份数字治理程度:选择各省份内信息惠民国家试点城市数量占省内所有城市的比值来衡量省份整体推进数字治理的程度 一、数据介绍 数据名称:政府数字治理程度_省+地级市 数据范围:省份、地级市 时间范围:2000-2025年 样本数量:省份806条;地级市7722条 数据来源:国家发展改革委 数据说明:含信息惠民试点城市名单、省份数字治理程度、地级市DID明细数据等 二、数据指标 年份 省份 省份代码 所属地域 省内城市总数量 当年实施试点城市数量 数字治理程度 年份 省份 城市 省份代码 城市代码 所属地域 胡焕庸线 “信息惠民”试点时间 Treat Post DID 三、参考文献 [1]刘奥龙,马亦凡,高娜娜.打破创新藩篱:数字治理能否推动区域协同创新[J].山西财经大学学报,2026,48(3):26-38.

568

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧