基于滑动窗口的多核程序数据竞争硬件检测算法-朱素霞.pdf
《基于滑动窗口的多核程序数据竞争硬件检测算法-朱素霞.pdf》由会员分享,可在线阅读,更多相关《基于滑动窗口的多核程序数据竞争硬件检测算法-朱素霞.pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2016年9月 Journal on Communications September 2016 2016173-1 第37卷第9期 通 信 学 报 Vol.37 No.9基于滑动窗口的多核程序数据竞争硬件检测算法 朱素霞1,2,陈德运1,2,季振洲3,孙广路1(1. 哈尔滨理工大学计算机科学与技术学院,黑龙江 哈尔滨 150080; 2. 哈尔滨理工大学计算机科学与技术学院博士后流动站,黑龙江 哈尔滨 150080; 3. 哈尔滨工业大学计算机科学与技术学院,黑龙江 哈尔滨 150001) 摘 要:数据竞争是引起多核程序发生并发错误的主要原因。针对现有基于硬件的 happens-before
2、 数据竞争检测方法硬件开销大的问题,提出了一种轻量级的内存竞争硬件检测算法,该算法利用滑动窗口技术动态检测程序执行过程中发生的距离较近、更易引发并发错误的数据竞争。考虑竞争距离的大小,将并发线程片段细分为加锁并发竞争域和包含线程近期执行序列的未加锁并发竞争域,用一对交替移动的可重写滑动窗口保存未加锁并发竞争域内的内存操作指令,用一个大小可变的可重写滑动窗口保存加锁并发竞争域内的内存操作指令,当来自远程的共享访问与窗口内的内存访问发生冲突时,检测到数据竞争。在硬件实现结构中,仅为每个g3800g10714g3132核g9167加3对较小g4622g4556的硬件g12626g2529g4504存
3、g3132来保存并发竞争域内的数据g3332g3348,g7092g19668更g6925原有的cache一g14280g5627g2339g16770,g5114来的g5114g4497开销g1314,g14033g3827g5567g17907g3332检测多核程序并发执行过程中发生的动态数据竞争,为多核程序开发和生g1147g17828行g19466段的并发错误g16798g7041提g1391有g6940的指g4560信g5699。 关键词:数据竞争g727滑动窗口g727硬件g12626g2529g727并发错误g727多核程序 中图分类号:TP303 文献标识码:A Hardwar
4、e data race detection algorithm based on sliding windows ZHU Su-xia1,2, CHEN De-yun1,2, JI Zhen-zhou3, SUN Guang-lu1(1. School of Computer Science and Technology, Harbin University of Technology, Harbin 150080, China; 2. Postdoctoral Research Station, School of Computer Science and Technology, Harbi
5、n University of Technology, Harbin 150080, China; 3. School of Computer Science and Technology, Harbin Institute of Technology, Harbin 150001, China) Abstract: Data race is a major factor which causes multi-core programs to produce concurrent bugs. To address the high hardware cost in happens-before
6、 detection proposals, a light-weight hardware data race detection approach based on slid-ing window technology was proposed. It used sliding windows to save recent memory instructions in thread execution and dynamically detected data races with small race distance which more easily lead to concurren
7、t bugs. Considering the race distance, parallel thread segments were subdivided into concurrent race regions with lock and concurrent race re-gions without lock. A pair of alternate rewritable sliding windows was used to store the memory instructions in concur-rent race region without lock, and a sl
8、iding window with variable size was used to store the memory instructions in con-current race region with lock. When there was a conflict between a remote sharing access and memory accesses in sliding windows, a data race was detected. In the hardware implementation, the addresses of the data in sli
9、ding windows were automatically encoded into three hardware signatures with small size. Data races can be detected quickly without modi-fying the L1 cache and cache coherence protocol messages. This approach supplies efficient guidance to help users to di-agnose concurrency bugs occurred in the deve
10、lopment and production run of multi-core programs, achieving smaller hardware and bandwidth overhead. Key words: data race, sliding window, hardware signature, concurrency bug, multi-core program 收稿日期:2016-04-05g727修回日期:2016-07-14 基金项目:g3281g4490自g9994g12197学g19750g5192基g18341g17176g2173g20045g11458
11、(No.61502123)g727g21669g21869g8755g11477g19750g5192g12197学基g18341g17176g2173g20045g11458(No.QC2015084)g727中g3281g2350g3775g2530g12197学基g18341g17176g2173g20045g11458(No.2015M571429)g727g3281g4490自g9994g12197学基g18341g17176g2173g20045g11458(No.61472100)g727g3281g4490重g9869基g11796g11752g12362发g4649g1675
12、7g2022g708g256973g257g16757g2022g709基g18341g17176g2173g20045g11458(No.2011CB302501) Foundation Items: The National Natural Science Foundation of China for Youths(No.61502123), Heilongjiang Province ScienceFoundation for Youths(No.QC2015084), The China Postdoctoral Science Foundation(No.2015M571429),
13、 The National Natural Sci-ence Foundation of China(No.61472100), The National Basic Research Program of China(973 Program)(No.2011CB302501) doi:10.11959/j.issn.1000-436x.2016173 万方数据第9期 朱素霞等:基于滑动窗口的多核程序数据竞争硬件检测算法 11 1 引言 随着多核处理器的广泛应用,多核编程也变得越来越普遍。然而,多核程序执行时因为线程间共享内存访问交互顺序的不确定性,导致并发错误频现,限制了多核程序的应用。多核
14、程序运行时,当2 个或多个线程并发访问同一个共享变量,没有采取正确的同步措施,并且至少有一个是写操作时,就可能引起数据竞争。数据竞争是一种常见的并发错误,检测数据竞争是多核程序开发、调试和诊断的重要手段,也是多核程序生产运行阶段的重要分析手段。因此,研究者们提出了一系列的数据竞争检测方法,有软件实现的17,有硬件实现的813,也有软硬结合的1416,g10990至g17836出现了g2842用的数据竞争检测g5049g186717。g7424g7003g19036g4557g3534g1122硬件的数据竞争g2172g5589检测方法g4649开研究。 g17902常有2g3835g12879
15、方法来检测数据竞争,一种是g3534g1122g19157g19610合的,g3926g7003g104981g727一种是g3534g1122happens-beforeg1863系的,g3926g7003g1049817。g3534g1122g19157g19610合的方法是g1393据g6164有访问同一个共享变量应g16825g1363用g11468同g19157的g5617g5831,g17331g17406访问共享变量的g19157g19610合,当2个访问同一个共享变量g1363用的g19157g19610合的交g19610为g12366时,g2029g16760为存g3324数
16、据竞争。Happens-before 方法g3534g1122线程g10267段,g8611个处理器核g1363用一个g17935g17765时g19059来g7643g16772当g2081正g3324执行的线程g10267段,此g3818g8611个变量g18129有一个时g6151g16772g5417g4439g3324处理器访问的g2750个g10267段g1025,当g2490一个处理器访问g17837个变量时,g4570变量的时g6151同g14270g17535的时g19059g17839行g8616g17751,来g1927定g17837 2 个g11468应的g10267段
17、是g2554存g3324g17935g17765g990的happens-beforeg1863系,g17836是存g3324g17935g17765g990的重g2484,g3926g7536存g3324g17935g17765g990的重g2484,g2029g16760为存g3324竞争。 软件实现的数据竞争检测g12651法g17902常g1262g1209 10 200 g1505g19489g1314程序运行的g17907g524210,g3926此g19489g17907g1262g5445g2721程序运行的顺序或竞争发生的时间,g1363生产运行时出现的数据竞争g7368是g
18、19602g1209发现。因此,有研究者提出了g3534g1122硬件的数据竞争检测方法。g3534g1122硬件的检测方法g4557程序的性能g5445g2721g17751g4579,g4557发现程序生产运行时的数据竞争g8616g17751有g6940,然而g4439们g5460g5460g9167g2164g17751多的硬件g17176g9316。g8616g3926g7003g104988g19668要为cacheg3371g9167g2164g20081g3818的时g6151或g19157g1461g5699,g7003g104989g6925变cache一致性g2339g1
19、6770g10378g5589g7438,g7003g1049810采用了g3534g1122硬件g12626g2529的方g5347实现数据竞争的检测,g1306g19668要g9167g2164g12626g2529g19443列,硬件开g19156g1185然g17819g3835,并且采用g1207g1227g17751g20652的g3250g9390g7438制来定g1313竞争的g1313g13634。而且,g3835多数g3534g1122g19157g19610合和 happens-before的硬件检测方法g19668要g3324现有的 cache 一致性g2339g167
20、70g3534g11796g1055g990g9167g2164g7044的g9052g5699。然而,cache 和一致性g2339g16770g18108件g18129是处理器的g1863g19202g18108件,g3926g7536g19668要g3698g2164g17819多硬件g17176g9316或g7368g6925cache,g19668要重g7044g16792g1284g1866g4557处理器性能的g5445g2721,不g2045g1122应用g2052实g19481g1025。g15441然g17829g7411也有研究者提出的g1866g1194g12879g3
21、423的数据竞争硬件检测方法硬件的开g19156g17751g45791113,g1306g3355只能检测某特定g12879g3423的数据竞争。 g7424g7003g19036g4557现有g3534g1122 happens-before 数据竞争检测方法硬件开g19156g3835的问题,鉴g1122线程的并发执行是导致竞争发生的主要原因,结合竞争距离g3835g4579,g4570并发的线程g10267段细分为g2164g19157并发竞争域和未g2164g19157并发竞争域,提出了一种轻量级的g2172g5589数据竞争检测方法。g16825方法g3534g1122g3324线
22、数据流处理g1025常用的滑g2172窗口技术,保存线程g17829g7411执行的内存操作指令序列,g2172g5589地检测竞争距离g17751g17829的、g7368易引发并发错误的数据竞争。g16825方法无g19668g7368g6925 cache 和一致性g2339g16770g7438构,仅g9167g2164少量的硬件g12626g2529寄存器,带来的带宽开g19156g4579。 g7424g7003的研究g19036g4557采用g19157同步方g5347的多核程序g4649开。 2 研究动机 数据竞争的检测是 NP 困g19602问题,已g5460的数据竞争检测方
23、法g3835多旨g3324检测尽可能多的数据竞争。然而,现实情况存g3324g1209下问题。 1) happens-beforeg12651法g1207g1227昂贵 g3534g1122 happens-before 的内存竞争检测方法g19668要考虑g6164有的同步操作,g17836g19668要g1363用向量时g19059g4557不同线程g1025的内存访问g17839行g7643g16772和排序,无论是已有的软件实现方法g17836是硬件实现方法,g18129g3324内存或硬件开g19156方面付出了g17751g3835g1207g1227。 2) 数据竞争是g2554
24、g1262引起并发错误受距离g5445g2721 数据竞争是引发并发错误的主要原因,g1306并不是g6164有的数据竞争g18129g1262引发并发错误,尤g1866是那些竞争双方距离g17751远的数据竞争。因为距离g17751远的数据竞争执行顺序发生反转的概率g4579,从而引发错误的可能性就g457910。g3926图1(a)g6164示,线程j访问共享变量x后,线程 ig17819了很久才访问x,g17837 2个访问g3324时间g990g11468隔很远,g15441然线程 j未g9167g2164同步操作,g1306g16825数据竞争执行顺序发生反转是一个g4579概率事件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 滑动 窗口 多核 程序 数据 竞争 硬件 检测 算法 朱素霞
限制150内