并发程序违反顺序一致性错误的检测与消除

来源 :中国科学院计算技术研究所 | 被引量 : 0次 | 上传用户:kelu1fu
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着处理器朝多核和众核的方向发展,利用单片共享存储的并发编程也越来越普遍。顺序一致性是并发编程中最直观自然的存储一致性模型,然而按照顺序一致性假设编写成的并发程序在弱一致性模型的平台上执行时,由于处理器可以对访存指令进行乱序等优化,可能会得到违反顺序一致性的结果,最终导致程序出错。向程序代码中插入fence指令,或者用锁来同步并发访问,可以消除这种潜在违反顺序一致性的错误。但是,针对大型的实际并发应用,特别是C/C++程序,已有的一些方法和工具都存在各自的缺陷。   本论文提出一种动态检测和消除并发程序中的潜在违反顺序一致性错误的方法。该方法基于数据竞争检测技术,结合了冲突图和延迟集理论。在并发程序的动态执行过程中,先构造竞争图,包含不同线程的竞争访问节点(未同步的冲突访问)、线程内的程序序边、线程间的竞争边。竞争图中由竞争访问、程序序边以及竞争边构成的圈称为竞争圈。由于竞争圈可能导致非顺序一致的执行与结果,称其为潜在违反顺序一致性错误(Potential Violation of Sequential Consistency,简称PVSC)。然后,根据所有竞争圈计算出延迟集,并最终建议程序员向源程序插入fence指令,以消除PVSC错误。进一步,将竞争图转换为PC竞争图,把圈识别和延迟集计算的复杂度降低到O(n2),其中n表示程序中竞争访问的静态指令数目。   对于本文提出的方法,采用SPLASH-2并发测试集、两个实际大型并发应用MySQL和Apache、以及一些Cilk并发程序进行评估。实验结果表明,该方法能有效检测出实际应用并发程序中的潜在违反顺序一致性的错误,同时将由fence指令引入的性能下降控制在很小的范围,平均6.3%,最后该方法相对于数据竞争检测工具的额外开销很小,平均3.3%。
其他文献
随着信息科技的发展,大量的数据被生产出来,并逐渐成为各个企业组织的重要资产。数据的丢失往往会带来重大的经济损失,甚至威胁到企业的生存。全球每年都会发生因为数据丢失造成
博客(web blog)是Web2.0的典型应用之一。博客通过提供作者与读者的交流平台而构建出交互式和动态更新的社会网络,已成为一种重要的信息传播媒介。博客的形式多样、内容灵活,极
随着GIS应用的不断发展,GIS数据出现了激增的趋势,现有使用文件系统、数据库的数据管理方法遇到了处理和存储能力的瓶颈。使用集群系统管理和处理GIS数据将成为高性能GIS应用的
机器人足球系统是一个新型的交叉学科,是一个典型的分布式人工多智能体系统,在这个系统中,多个智能体,即机器人小车,在复杂的场地环境中相互协同配合完成任务。机器人足球系统涉及
随着计算机技术在工作和生活中扮演越来越重要的角色,对儿童的计算机科学的教育越来越受到国内外研究人员的重视。编程教育已经被证实可以激发儿童对计算机科学的兴趣,培养儿童
随着技术的进步,由商用部件构成的、成本低廉的机群系统已经成为高性能计算应用的主流。但是,机群系统计算密度低、体积大、能耗高,可靠性差,很大程度上制约了自身的发展。刀片服
重复数据删除技术可以大幅度削减重复数据,节省存储空间。内容地址存储是重复数据删除技术在备份、归档系统中实现的一种常用的数据存储形式。由于备份、归档系统中存在着大量
对等网络技术的出现为互联网提供了一种分散式的计算和服务模式。对等网络可以有效地利用和整合网络中各节点的计算能力和存储能力,从而解决互联网中大规模信息资源共享的问题
随着计算机及网络技术的迅速发展,因特网上的视频数据呈指数增长,视频侵权问题日益严重。为了保护视频版权,急需视频拷贝检测技术。所谓视频拷贝检测,亦称相似视频检测,可描述为:指
随着计算机技术的日益发展,互联网已经成为人们日常生活中的一个重要组成部分网络以一种便捷的方式为人们提供了海量的信息资源。然而目前的网页主要采用基于视觉的方式设计,因