数据竞争分类与检测的研究

来源 :中国科学院大学 | 被引量 : 0次 | 上传用户:whywhatyou
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
并行计算是当前计算机技术发展的趋势。随着多核和众核技术的发展,越来越多的软件和应用程序需要使用多线程语言编写。众所周知,并行程序远远比串行程序难编写,非常容易出现各种各样的错误,例如死锁、原子性违反等等。数据竞争是引起并行程序错误的主要原因之一。并行程序非常容易出现数据竞争;有一部分数据竞争是由于程序员的疏漏导致的,而另外一部分数据竞争则是程序员刻意引入,用来实现微妙而复杂的并行算法。不同性质和种类的数据竞争会引发不同的问题,它们需要被区别对待。  本文对并行程序中的数据竞争问题展开研究,主要创新和贡献如下:  1.提出数据竞争分类理论:根据数据竞争引起的问题的性质对数据竞争进行分类,并给出每一类数据竞争的形式化定义。  2.给出一种用户自定义同步的严格定义,一般性的回答了如下两个问题:  1)什么样的冲突访存构成这种用户自定义同步?  2)其他冲突的访存如何正确地被这种用户自定义同步机制同步了?  3.提出一个新的内存一致性模型,称为无问题竞争模型(Buggy-Race-Free Model,BRFM)。BRFM对属于Buggy-Race-Free的程序维护顺序一致性语义,而让其他(含有Buggy Races的)程序的语义是未定义的。在BRFM模型下,由用户自定义同步编程引入的通信竞争和非顺序一致性竞争可以正确地执行。  4.实现了一个静态分析工具来对Java程序中存在的数据竞争进行分类。实验结果表明该分析工具可以有效地发现潜在可能出错的数据竞争。  5.提出了一个新的分析并行程序中并行区域的MHP(May Happen in Parallel)算法,对Java程序中的start/join同步机制进行分析。与已有的算法相比,新算法抛弃了“子线程只会被父线程等待结束”这一冗余假设,以非耦合的方式来分别处理start同步与join同步;在计算控制信息(dominator)时,新算法不必像已有的算法那样构造全程序的控制流图,显著地提高了算法的扩展性。与已有的MHP算法相比,新的算法设计逻辑更加简洁、完备,时间复杂度更小。实验结果表明,新算法的开销仅占已有的MHP算法开销的0.14%。
其他文献
近年来,随着经济的发展和生活水平的提高,图像和视频在人们日常生活中应用的越来越广泛,尤其是在视频监控领域的应用。随着人们对图像质量的要求越来越高,智能化高清监控时代已经
文本聚类主要目的是以无监督机器学习方式将文本划分为多个类,每个类包含相似度较高的文本,类与类之间有较低相似度。中文短文本则是随着微博等用户量大、发表量大的社交网络发
本文以实现适用于无人机的视频压缩算法为目标,从理论研究和工程应用两方面出发,对符合无人机航拍视频序列特点的压缩方案进行了方法研究和仿真试验。近年来,无人机平台技术的不
近红外光谱是一种有竞争力的,非侵入式的用于探测人脑活动的脑成像技术(fNIRS)。它以神经活动与血氧变化的紧密联系为前提来通过测量血氧变化观测人脑的神经活动。对比现代的
学位
片上集成的晶体管数目持续增长,而传统单核处理器的性能发展却难以持续,因为依靠指令级并行获得的收益越来越少,而功耗问题和散热问题也日益凸显出来。多核/众核处理器在单个芯
独立成分分析(Independent Component Analysis,ICA)算法是盲源分离的一种有效手段,是以独立性为约束条件从多维数据中挖掘出其本质结构的一种方法。目前,针对大数据量的ICA处理
随着硬件技术、服务器技术、业务处理需求的发展,网络设备的处理能力得到了大幅提高,并且也得到了越来越广泛的应用。多核网络设备的出现,使得硬件的处理能力得到成倍的增长,
随着Web2.0的兴起与发展,用户的身份也逐渐发生了转变,既是互联网的消费者,同时也成为了互联网内容的构建者。通信领域也因此正在转变传统的服务观念,开始更加重视服务模式的
随着互联网的迅速发展,促进了信息处理和信息交互的技术的研究与应用,其中研究应用的热点之一便是在计算机网络环境下的合作协同计算。合作协同计算不仅发生在合作者之间的,甚至