CN103729291A - 一种基于同步关系的并行动态数据竞争检测系统 - Google Patents

一种基于同步关系的并行动态数据竞争检测系统 Download PDF

Info

Publication number
CN103729291A
CN103729291A CN201310716720.3A CN201310716720A CN103729291A CN 103729291 A CN103729291 A CN 103729291A CN 201310716720 A CN201310716720 A CN 201310716720A CN 103729291 A CN103729291 A CN 103729291A
Authority
CN
China
Prior art keywords
thread
parallel
module
detection
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201310716720.3A
Other languages
English (en)
Inventor
金海�
邵志远
彭建
黄能
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201310716720.3A priority Critical patent/CN103729291A/zh
Publication of CN103729291A publication Critical patent/CN103729291A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于同步关系的并行动态数据竞争检测系统,包括过滤模块、记录模块、向量时钟计算模块以及并行检测模块。过滤模块负责监控待检测程序运行过程中各个线程的内存访问操作,过滤冗余的内存访问以及不可能发生数据竞争的访问,过滤后剩下的访问由记录模块写入到各线程对应的记录文件中。向量时钟计算模块从记录文件中读出程序的内存访问记录,计算内存访问的向量时钟。并行检测模块利用向量时钟将检测任务划分成小的任务分配到多个工作线程中并负责汇总检测结果。本发明只记录可能发生竞争的内存访问并对访问区间进行合并压缩,使得记录量大幅减少,同时数据竞争检测算法的并行度较高,能够充分利用多核硬件实现检测加速。

Description

一种基于同步关系的并行动态数据竞争检测系统
技术领域
本发明属于计算机软件测试与调试领域,更具体地,本发明描述一种基于同步关系的并行动态数据竞争检测系统。
背景技术
随着多核硬件的广泛普及,多线程软件也随之渗入到计算领域的方方面面,多线程软件能够充分利用多核硬件资源,在同一时间执行多项任务,特别适用于需要快速响应用户操作的任务,除此之外,多线程软件还可以成倍的加速某些任务。然而多线程程序固有的不确定性带来了数据竞争,死锁以及违反原子性等运行时错误,其中数据竞争指的是当多个线程访问同一个内存地址并且其中至少有一个为写操作时的程序状态,是多线程程序错误中最为普遍的一种错误。近几十年来,数据竞争导致的软件故障对社会造成了非常严重的损失和伤害,比如2003年美国东北部大范围停电以及Therac-25重大医疗事故。不幸的是,这类错误与线程的调度顺序密切相关,因而极其难以重现。近年来由于数据竞争造成的经济损失甚至人身伤害迫使人们加大对数据竞争检测方法的研究。
现有的数据竞争检测方法一般可分为静态和动态两大类。静态检测方法在编译时对程序源码进行全局分析,其优势在于可以覆盖程序所有的执行路径,从而检测到潜在的数据竞争。静态方法还可以加大检测对象的粒度,比如以对象而不是机器字为基本检测单位可以减小检测开销。然而,静态方法由于缺少程序的运行时信息只能做很多保守的假设,导致检测结果极其不准确,给用户造成很多的困扰。反之,动态方法在程序运行时对其进行跟踪检测,因为可以利用程序的运行时信息,动态方法的检测结果较为准确,甚至可以做到没有误报。动态方法的缺点在于检测结果只限于程序具体的一次执行,因此没有办法检测出潜在的竞争。另外,动态方法需要跟踪程序的内存访问记录,而多线程程序的内存访问数量往往极其庞大,所以动态方法的检测开销非常高。对于数据竞争这类极其难以推理和调试的错误,误报产生的时间成本是难以容忍的,因此目前业界大都采用动态方法。由于数据竞争能够造成难以估量的损失和伤害,工业界迫切需要一种准确并且低开销的数据竞争检测方法。
发明内容
针对现有动态数据竞争检测方法开销过高的缺点,本发明提出一种离线的并行数据竞争检测系统,此方法充分利用待检测程序的并行结构,使得访存记录量大幅减少,其检测算法具有很高的并行性,因而可以充分利用现有的多核平台来加快检测速度。
本发明提供了一种基于同步关系的并行动态数据竞争检测系统,包括过滤模块、记录模块、向量时钟计算模块以及并行检测模块,其中:
所述过滤模块用于监控线程的执行过程,截获线程的内存访问,过滤掉重复和不可能造成数据竞争的访问,对访问区间进行压缩合并,最后将过滤后的访存信息发送到所述记录模块;
所述记录模块用于建立待检测程序的访存记录到外部记录文件的映射关系,即将每个线程经过过滤的访存信息写入到与之对应的外部文件中,同时负责编码和压缩所记录的信息;
所述向量时钟计算模块用于根据所述文件系统中记录的信息计算各事件的向量时钟,计算方法采用经典的向量时钟算法,所述并行检测模块利用所述计算所得向量时钟判断两个事件是否可能同时发生;
所述并行检测模块用于并行检测并行程序执行过程中是否实际发生了数据竞争,并在检测到数据竞争后将结果终结后报告给用户。
优选地,所述过滤模块基于下述过滤策略进行过滤:(1)所有发生在两次同步操作之间的内存访问,程序计算器、访问地址、访问宽度和访问方式都相同的只被记录一次;(2)对于每个线程,忽略其在当前活动记录上的内存访问。(3)将多个相互兼容的访问区间合并成一个大的等价区间。
优选地,所述记录模块将每个线程过滤后的访存信息写入到与之对应的记录文件,每个线程与记录文件有一一对应的关系,给定一个线程可以直接获取其对应的记录文件,反之给定一个记录文件可以直接获取其对应的线程号。
进一步优选地,在所述记录文件中,每个并行区对应一个目录,目录以“并行区号+创建并行区的线程号”命名,并行区内的每个线程对应这个目录下的一个文件,文件直接以线程号命名。
优选地,所述向量时钟计算模块从所述记录文件中读入每个线程的访存记录,并将其分割成同步块;所述向量时钟计算模块采用经典向量时钟算法为每个同步块计算向量时钟值,同步块中的所有内存访问具有同一向量时钟;通过比较两个同步块的时钟向量可以得到两个同步块A,B的先后发生关系,所述关系包括A->B,B->A,A|B,其中->表示左边先于右边发生,|表示两者同时发生,两同步块具有|关系时才可能发生数据竞争。
优选地,所述并行检测模块逐个对比所有同步块对A,B,如果A|B,那么A,B可能包含数据竞争,否则不可能有竞争;为进一步检测A,B是否包含竞争,所述并行检测模块将问题抽象成区间重叠问题,即将每个访存操作抽象成一个区间,区间起始地址为访存地址,区间宽度为访问宽度;如果存在区间S1∈A,S2∈B,S1与S2重叠并且S1与S2至少有一个是写操作,则可判定A,B之间有数据竞争;为利用多核硬件或者分布式计算系统加速检测过程,一次上述检测过程可由一个线程或分布式系统节点来完成,所有同步块对的检测可因此并行进行;检测到的数据竞争竞争可根据PC对应到源程序的文件名和行号。
总体而言,本发明具有如下有效效果:
(1)本发明能够将多个相互兼容的访问区间合并成一个较大的访问区间,从而大大减少需要记录的数据量,节省磁盘空间。同时,数据量的减少也意味着后期分析阶段可以快速高效的进行。因此本发明可以应用于内存访问密集型并行程序。
(2)本发明提出一种新的数据竞争检测算法,该算法将数据竞争检测问题抽象成区间重合问题,后者可以通过快速排序和二分查找来解决,最优情况下的时间复杂度为O(NlogN),其中N为区间数量。
(3)本发明的检测算法具有较高的数据并行度,整个大的检测任务可以划分为多个独立的较小任务在多核平台上并行执行,以此实现成倍的加速。
附图说明
图1是本发明基于同步关系的并行动态数据竞争检测系统。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
首先对本发明中的术语作简单说明:
OpenMP:一种用于高效简洁地编写并行程序的API(ApplicationProgramming Interface),以编译器指令的形式提供易于理解和使用的并行编程接口。OpenMP以并行区为基本单位,每个并行区包含若干个成员线程。一个并行区通常对应一个可并行的任务,由成员线程合作完成。
PIN:由Intel公司研发的一个二进制插桩框架,用户可在其上实现自定义的程序监控工具,用于监控程序运行过程中发生的事件,如读写操作,同步操作,函数调用等。
临界区:同一时刻至多被一个线程执行的代码片。
同步操作:涉及线程的等待和唤醒的指令或者函数,比如lock和unlock,signal和wait,send和receive等。
同步块:线程执行过程中由相邻同步操作分隔开来的指令流。
活动记录:线程当前正在执行的函数在堆栈上的合法内存区域。
向量时钟:用以表征某个事件的发生时间,通过比较两个事件的向量时钟可以确定它们的先后发生关系,两个没有明确先后发生关系的时间被认为是冲突的,因为它们有可能同时发生。
针对现有动态数据竞争检测方法开销过高的缺点,本发明提出一种离线的并行数据竞争检测系统,此方法充分利用待检测程序的并行结构,使得访存记录量大幅减少,其检测算法具有很高的并行性,因而可以充分利用现有的多核平台或者分布式平台来加快检测速度。本发明分为在线跟踪和离线分析两个部分。
在线跟踪的目的在于监控程序运行时发生的内存访问,把每个线程可能造成数据竞争的内存访问写入到外部文件中。在线跟踪包含过滤模块和记录模块。由于现有的并行程序往往是内存密集型应用,每个线程在其生命周期内会进行大量访存操作,全部记录下这些访存操作将会使得记录文件极其庞大,因而会加大后期分析难度。通过观察可以发现一个线程的大部分内存访问不可能造成数据竞争,因为这些访问操作的是线程的私有变量。另外,程序执行过程中同一条指令会反复以同样的方式(读或写)访问同一个内存地址,每一个地址只需要记录一次。过滤模块的目的即在于解决这个问题,该模块能够过滤掉冗余的或者不可能造成数据竞争的内存访问。过滤后的访存操作被发送到记录模块,以便进一步被写到外部文件中。过滤规则和记录的内容既可以保证排除大多数冗余记录,也能确保记录足够的运行时信息供离线分析所用。
离线分析包含向量时钟计算模块和并行检测模块,向量时钟计算模块用于计算线程事件的先后发生关系(即向量时钟,定义见“具体实施方式”一节),这些事件包括同步操作(加/解锁,等待/唤醒操作等)和内存访存事件。向量时钟可以用来决定两个事件是否具有先后发生关系,并行检测模块将检测任务划分成较小任务并将其发送给不同的工作线程,工作线程根据向量时钟来判断是否存在冲突的内存访问。因为检测任务具有内在的可并行性,检测模块可以充分利用多核平台和分布式平台来提高检测速度,也可以很容易的实现水平扩展。
本发明针对OpenMP程序,充分利用其并行结构降低检测开销;采用动态检测方法,检测出的数据竞争是程序执行过程中实际发生的竞争;采用在线跟踪加离线检测的两阶段策略,在线跟踪阶段使用二进制插桩工具截获并记录并行程序的内存访问记录和同步操作,离线检测阶段读入第一阶段的记录结果并对其进行并行分析。
如图1所示,本发明基于同步关系的并行动态数据竞争检测系统包括过滤模块、记录模块、向量时钟计算模块和并行检测模块。前两个模块在PIN中实现,后两个在另外一个独立的分析程序(以“分析器”指代)中实现。
过滤模块的主要功能在于过滤掉线程中冗余的或者不可能造成数据竞争的访存操作。两次访存操作的PC(Program Counter)、访问地址、读写方式以及访问宽度都相同时,只需要记录其中一次就足够。具体来说,过滤模块会暂时保存已经记录过的访存操作,在遇到一次新的访存操作时,过滤模块首先检查该操作是否已被记录,如果是则忽略,否则将其发送到记录模块。针对OpenMP程序的访存模式,过滤模块会忽略线程在当前活动记录上的访存操作,这一部分操作造成数据竞争的概率非常小,所以在实际检测过程中因为效率问题可以忽略。因为程序的绝大部分访存都是操作当前活动记录中的局部变量,这种过滤规则会极大地降低记录的数量,因而能够将记录文件的大小保持在可控的范围之内,通常可以将其全部读入到内存中。过滤之后的访存操作发送到记录模块。
记录模块的主要目的在于将过滤后的访存操作写入到外部文件,由于分析器设计及实现的复杂性与外部文件的组织以及文件中内容的格式息息相关,记录模块必须规定一种简单的文件组织结构和记录格式。除此之外,记录的内容必须能够准确描述程序的执行过程以便保留完整的运行时信息。一种可行的文件组织方式是用一个目录表示OpenMP中的一个并行区,目录下的文件对应并行区中的各个成员线程,文件可以以线程号命名,这样的组织方式比较直观且易于分析。每个被记录的访存操作以二进制的方式编码,以实际发生顺序写入到各自对应的线程文件中,同步操作也以相同的方式处理。分析器读取的时候只需要顺序读入各个线程文件就可以还原程序的运行场景。
向量时钟计算模块用于计算同步块的向量时钟,该模块首先从外部文件中读人同步块,然后使用经典的向量时钟算法为每个同步块计算向量时钟值。通过比较向量时钟可以得到任意两个同步块的先后发生关系,例如两个同步块A和B,它们的关系可能是A->B,B->A,或者A|B,其中->表示左边先于右边发生,|表示两者同时发生。
并行检测模块利用上述向量时钟,逐对比较两个同步块的向量时钟,当两个同步块具有|关系时,数据竞争有可能发生,否则不可能发生。确定两同步块A,B可能发生数据竞争以后,检测模块尝试在A和B中分别找出冲突的访存操作,这可以通过区间重叠问题来实现,因为内存访问本质上可以抽象成一个区间,起始地址为区间起点,访问宽度为区间长度。值得注意的是任意两对同步块的检测是可以并行的,并行检测可以利用多核硬件或者分布式计算框架来实现。发现数据竞争后可以通过造成竞争的指令PC定位到源代码的文件名和行数,将其报告给用户。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种基于同步关系的并行动态数据竞争检测系统,其特征在于,包括过滤模块、记录模块、向量时钟计算模块以及并行检测模块,其中:
所述过滤模块用于监控线程的执行过程,截获线程的内存访问,过滤掉重复和不可能造成数据竞争的访问,对访问区间进行压缩合并,最后将过滤后的访存信息发送到所述记录模块;
所述记录模块用于建立待检测程序的访存记录到外部记录文件的映射关系,即将每个线程过滤后的访存信息写入到与之对应的外部文件中,同时负责编码和压缩所记录的信息;
所述向量时钟计算模块用于为监控到的程序事件计算向量时钟,计算方法采用经典的向量时钟算法,所述并行检测模块利用计算所得向量时钟判断两个事件是否可能同时发生;
所述并行检测模块用于并行检测程序执行过程中是否实际发生了数据竞争,并在检测到数据竞争后将结果汇总后报告给用户。
2.根据权利要求1所述的基于同步关系的并行动态数据竞争检测系统,其特征在于,所述过滤模块基于下述过滤策略进行过滤和压缩:(1)所有发生在两次同步操作之间的内存访问中,程序计算器、访问地址、访问宽度和访问方式都相同的只被记录一次;(2)对于每个线程,忽略其在当前活动记录上的内存访问;(3)将多个相互兼容的访问区间合并成一个大的等价区间。
3.根据权利要求1或2所述的基于同步关系的并行动态数据竞争检测系统,其特征在于,所述记录模块将每个线程过滤后的访存信息写入到与之对应的记录文件,每个线程与记录文件有一一对应的关系,给定一个线程可以直接获取其对应的记录文件,反之给定一个记录文件可以直接获取其对应的线程号。
4.根据权利要求1至3任一项所述的基于同步关系的并行动态数据竞争检测系统,其特征在于,在所述记录文件中,每个并行区对应一个目录,目录以“并行区号+创建并行区的线程号”命名,并行区内的每个线程对应这个目录下的一个文件,文件直接以线程号命名。
5.根据权利要求1至4任一项所述的基于同步关系的并行动态数据竞争检测系统,其特征在于,所述向量时钟计算模块从所述记录文件中读入每个线程的访存记录,并将其分割成同步块;所述向量时钟计算模块采用经典向量时钟算法为每个同步块计算向量时钟值,同步块中的所有内存访问具有同一向量时钟;通过比较两个同步块的时钟向量可以得到两个同步块A,B的先后发生关系,所述关系包括A->B,B->A,A|B,其中->表示左边先于右边发生,|表示两者同时发生,只有两个同步块具有|关系时才可能发生数据竞争。
6.根据权利要求5所述的基于同步关系的并行动态数据竞争检测系统,其特征在于,所述并行检测模块逐个对比所有同步块对A,B,如果A|B,那么A,B可能包含数据竞争,否则不可能有竞争;为进一步检测A,B是否包含竞争,所述并行检测模块将问题抽象成区间重叠问题,即将每个访存操作抽象成一个区间,区间起始地址为访存地址,区间宽度为访问宽度;如果存在区间S1∈A,S2∈B,S1与S2重叠并且S1与S2至少有一个是写操作,则可判定A,B之间有数据竞争;为利用多核硬件或者分布式计算系统加速检测过程,每次上述检测过程可由一个线程或分布式系统节点来完成,所有同步块对的检测可以并行进行;检测到的数据竞争竞争可根据PC对应到源程序的文件名和行号。
CN201310716720.3A 2013-12-23 2013-12-23 一种基于同步关系的并行动态数据竞争检测系统 Pending CN103729291A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310716720.3A CN103729291A (zh) 2013-12-23 2013-12-23 一种基于同步关系的并行动态数据竞争检测系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310716720.3A CN103729291A (zh) 2013-12-23 2013-12-23 一种基于同步关系的并行动态数据竞争检测系统

Publications (1)

Publication Number Publication Date
CN103729291A true CN103729291A (zh) 2014-04-16

Family

ID=50453372

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310716720.3A Pending CN103729291A (zh) 2013-12-23 2013-12-23 一种基于同步关系的并行动态数据竞争检测系统

Country Status (1)

Country Link
CN (1) CN103729291A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105117369A (zh) * 2015-08-04 2015-12-02 复旦大学 一种基于异构平台的多种并行错误检测体系架构
CN106201732A (zh) * 2016-07-18 2016-12-07 电子科技大学 在粒子模拟算法并行中去除数据竞争的线分配并行方法
CN106202387A (zh) * 2016-07-08 2016-12-07 陈光宇 一种数据一致性并行维护方法
CN106227656A (zh) * 2016-07-18 2016-12-14 中国科学院软件研究所 一种基于硬件和线程本地时序的数据竞争采样检测方法
CN106250245A (zh) * 2016-07-18 2016-12-21 电子科技大学 在粒子模拟算法并行中去除数据竞争的面分配并行方法
CN106484618A (zh) * 2016-10-10 2017-03-08 中国电力科学研究院 一种基于访存依赖对的并行重放方法和装置
CN106844215A (zh) * 2017-01-24 2017-06-13 东南大学 一种基于约束求解的原子违背探测方法
CN107810516A (zh) * 2015-06-26 2018-03-16 微软技术许可有限责任公司 通过矢量时钟转换的实时分布式共同创作
CN110059014A (zh) * 2019-04-28 2019-07-26 西安邮电大学 一种并发程序数据竞争指令级定位方法
CN111967178A (zh) * 2020-07-29 2020-11-20 电子科技大学 在粒子模拟算法并行中减少数据竞争的粒子排序发射方法
CN113835990A (zh) * 2020-06-23 2021-12-24 中科寒武纪科技股份有限公司 检测方法、装置、计算机设备和存储介质
CN116955044A (zh) * 2023-09-12 2023-10-27 北京开源芯片研究院 处理器的缓存工作机制的测试方法、装置、设备及介质
CN118152153A (zh) * 2024-05-09 2024-06-07 北京麟卓信息科技有限公司 基于合并访存的片上共享存储器访存事务大小测算方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090282288A1 (en) * 2008-05-08 2009-11-12 Nec Laboratories America, Inc. Dynamic model checking with property driven pruning to detect race conditions
CN102314394A (zh) * 2010-06-25 2012-01-11 微软公司 数据范围化的动态数据竞争检测

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090282288A1 (en) * 2008-05-08 2009-11-12 Nec Laboratories America, Inc. Dynamic model checking with property driven pruning to detect race conditions
CN102314394A (zh) * 2010-06-25 2012-01-11 微软公司 数据范围化的动态数据竞争检测

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PAUL SACK ET.AL: "Accurate and Efficient Filtering for the Intel Thread Checker Race Detector", 《ASID"06 PROCEEDINGS OF THE 1ST WORKSHOP ON ARCHITECTURAL AND SYSTEM SUPPORT FOR IMPROVING SOFTWARE DEPENDABILITY》, 21 October 2006 (2006-10-21), pages 1 - 8, XP055016075 *
TUSHARA C.KARUNARATNA: "Nondeterminator-3:A Provably Good Data-Race Detector That Runs in Parallel", 《SUBMITTED TO THE DEPARTMENT OF ELECTRICAL ENGINEERING AND COMPUTER IN PARTIAL FULFILLMENT OF THE REQUIREMENTS FOR THE DEGREE OF MASTER OF ENGINEERING IN ELECTRICAL ENGINEERING AND COMPUTER SCIENCE AT THE MASSACHUSETTS INSTITUTE OF TECHNOLOGY 2005》, 30 September 2005 (2005-09-30), pages 11 - 13 *

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107810516A (zh) * 2015-06-26 2018-03-16 微软技术许可有限责任公司 通过矢量时钟转换的实时分布式共同创作
CN105117369A (zh) * 2015-08-04 2015-12-02 复旦大学 一种基于异构平台的多种并行错误检测体系架构
CN105117369B (zh) * 2015-08-04 2017-11-10 复旦大学 一种基于异构平台的多种并行错误检测系统
CN106202387A (zh) * 2016-07-08 2016-12-07 陈光宇 一种数据一致性并行维护方法
CN106202387B (zh) * 2016-07-08 2019-05-21 苏州超块链信息科技有限公司 一种数据一致性并行维护方法
WO2018006624A1 (zh) * 2016-07-08 2018-01-11 苏州超块链信息科技有限公司 一种数据一致性并行维护方法
CN106227656A (zh) * 2016-07-18 2016-12-14 中国科学院软件研究所 一种基于硬件和线程本地时序的数据竞争采样检测方法
CN106250245A (zh) * 2016-07-18 2016-12-21 电子科技大学 在粒子模拟算法并行中去除数据竞争的面分配并行方法
CN106201732A (zh) * 2016-07-18 2016-12-07 电子科技大学 在粒子模拟算法并行中去除数据竞争的线分配并行方法
CN106227656B (zh) * 2016-07-18 2018-07-17 中国科学院软件研究所 一种基于硬件和线程本地时序的数据竞争采样检测方法
CN106201732B (zh) * 2016-07-18 2019-05-14 电子科技大学 在粒子模拟算法并行中去除数据竞争的线分配并行方法
CN106250245B (zh) * 2016-07-18 2019-05-14 电子科技大学 一种去除粒子模拟算法并行运算中数据竞争的方法
CN106484618A (zh) * 2016-10-10 2017-03-08 中国电力科学研究院 一种基于访存依赖对的并行重放方法和装置
CN106484618B (zh) * 2016-10-10 2019-04-30 中国电力科学研究院 一种基于访存依赖对的并行重放方法和装置
CN106844215A (zh) * 2017-01-24 2017-06-13 东南大学 一种基于约束求解的原子违背探测方法
CN106844215B (zh) * 2017-01-24 2020-03-31 东南大学 一种基于约束求解的原子违背探测方法
CN110059014A (zh) * 2019-04-28 2019-07-26 西安邮电大学 一种并发程序数据竞争指令级定位方法
CN110059014B (zh) * 2019-04-28 2022-09-27 西安邮电大学 一种并发程序数据竞争指令级定位方法
CN113835990A (zh) * 2020-06-23 2021-12-24 中科寒武纪科技股份有限公司 检测方法、装置、计算机设备和存储介质
CN113835990B (zh) * 2020-06-23 2024-01-30 中科寒武纪科技股份有限公司 检测方法、装置、计算机设备和存储介质
CN111967178A (zh) * 2020-07-29 2020-11-20 电子科技大学 在粒子模拟算法并行中减少数据竞争的粒子排序发射方法
CN111967178B (zh) * 2020-07-29 2022-10-14 电子科技大学 在粒子模拟算法并行中减少数据竞争的粒子排序发射方法
CN116955044A (zh) * 2023-09-12 2023-10-27 北京开源芯片研究院 处理器的缓存工作机制的测试方法、装置、设备及介质
CN116955044B (zh) * 2023-09-12 2023-12-22 北京开源芯片研究院 处理器的缓存工作机制的测试方法、装置、设备及介质
CN118152153A (zh) * 2024-05-09 2024-06-07 北京麟卓信息科技有限公司 基于合并访存的片上共享存储器访存事务大小测算方法
CN118152153B (zh) * 2024-05-09 2024-07-16 北京麟卓信息科技有限公司 基于合并访存的片上共享存储器访存事务大小测算方法

Similar Documents

Publication Publication Date Title
CN103729291A (zh) 一种基于同步关系的并行动态数据竞争检测系统
Dean et al. Perfscope: Practical online server performance bug inference in production cloud computing infrastructures
US9323652B2 (en) Iterative bottleneck detector for executing applications
CN101937365B (zh) 并行程序的死锁检测方法和系统
CN103365776B (zh) 基于确定性重放的并行系统弱一致性的验证方法和系统
CN102722431B (zh) 进程监控方法及装置
Xu et al. Experience mining Google's production console logs
CN104541244A (zh) 用于进行重放执行的方法和系统
Da Luo et al. Multicore SDK: A practical and efficient deadlock detector for real-world applications
CN101872323A (zh) 一种基于虚拟机的故障注入测试方法
Leungwattanakit et al. Modular software model checking for distributed systems
CN108089971B (zh) 基于嵌入式实时系统的日志服务方法和系统
Huang et al. GPredict: Generic predictive concurrency analysis
CN103577310A (zh) 记录软件调试日志的方法以及装置
CN110059014B (zh) 一种并发程序数据竞争指令级定位方法
US11768754B2 (en) Parallel program scalability bottleneck detection method and computing device
CN102301343A (zh) 软件监测方法、装置以及系统
WO2015027403A1 (en) Testing multi-threaded applications
Cai et al. Lock trace reduction for multithreaded programs
Ha et al. An Efficient Algorithm for On‐the‐Fly Data Race Detection Using an Epoch‐Based Technique
Huang et al. Scaling predictive analysis of concurrent programs by removing trace redundancy
Cai et al. LOFT: redundant synchronization event removal for data race detection
US20120059997A1 (en) Apparatus and method for detecting data race
Zheng et al. On performance debugging of unnecessary lock contentions on multicore processors: A replay-based approach
Artho et al. Visual analytics for concurrent Java executions

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20140416