当前位置:主页 > 科技论文 > 计算机论文 >

基于弱内存一致性的多线程确定性执行技术研究

发布时间:2022-01-06 23:39
  近年来,随着多核处理器的快速发展,人们广泛的使用并行技术来满足对程序性能提升的需求。由此,带来了诸多并行编程问题,本文就是研究其中之一,确定性问题。它给并行程序的编写,调试,测试带来诸多不便,同时降低了程序的可靠性。本文针对国产飞腾平台上的共享内存多线程程序,提出了一种确定性执行技术,并设计实现了确定性执行系统DetRT以代替Pthread运行时库。首先,本文研究了确定性问题的来源,将其分为数据竞争和同步竞争。在论证弱内存一致性对确定性执行系统性能提升价值的基础上,使用TSO弱内存一致性。本文提出了一种基于弱内存一致性的确定性执行技术,该技术采用串行阶段和并行阶段交替执行的方式,以同步操作为阶段分割的依据。并行阶段时线程间内存隔离,串行阶段时同步各线程的内存修改。本文针对飞腾平台应用程序特征提出了两点改进技术,一是提出串行阶段部分并行化技术,将使用不同同步操作的线程划分到不同的相关线程组中,线程组内串行,组间并行,解决因同步操作串行执行导致的性能下降问题;二是提出一种性能指导标记技术,让长并行距离线程跳过指定串行阶段,解决并行阶段的负载不均衡问题,给编程阶段性能优化带来了新方法。本文采... 

【文章来源】:哈尔滨工业大学黑龙江省 211工程院校 985工程院校

【文章页数】:73 页

【学位级别】:硕士

【部分图文】:

基于弱内存一致性的多线程确定性执行技术研究


功能测试(datarace)伪代码示意图

示意图,伪代码,功能测试,示意图


哈尔滨工业大学工学硕士学位论文是因为操作系统对线程的调度切换具有不确定性,导致不不同;确定性执行系统 DetRT 下执行时,由于进行了内存tal 和 Array 的竞争,而且多个线程最终提交内存时顺序时是相同的,保证了多线程程序在遇到数据竞争时保证确定功能测试程序 lockuse 是存在同步锁竞争的情况,伪代码如两个共享内存变量,线程分别在未获得互斥锁时及互斥锁进行写入。

示意图,伪代码,功能测试,测试程序


测试程序cond-signal在确定性多线程运行时库D序,每一次运行的结果都相同。表 4-6 测试程序 cond-signal 测试示例表(DetRT 确定性) 条件变量唤醒顺序0 1 2 3 4 5 6 7 8 9 10 11 12 10 1 2 3 4 5 6 7 8 9 10 11 12 10 1 2 3 4 5 6 7 8 9 10 11 12 10 1 2 3 4 5 6 7 8 9 10 11 12 10 1 2 3 4 5 6 7 8 9 10 11 12 10 1 2 3 4 5 6 7 8 9 10 11 12 10 1 2 3 4 5 6 7 8 9 10 11 12 10 1 2 3 4 5 6 7 8 9 10 11 12 1

【参考文献】:
期刊论文
[1]多线程程序数据竞争检测和验证方法研究综述![J]. 禹振,杨振,苏小红,王甜甜.  智能计算机与应用. 2017(03)
[2]确定性并行技术[J]. 周旭,卢凯,陈沉.  计算机学报. 2015(05)
[3]并发缺陷暴露、检测与规避研究综述[J]. 苏小红,禹振,王甜甜,马培军.  计算机学报. 2015(11)

博士论文
[1]面向多线程程序的确定性并行关键技术研究[D]. 陈沉.国防科学技术大学 2015
[2]面向多核/众核体系结构的确定性并行关键技术研究[D]. 周旭.国防科学技术大学 2013



本文编号:3573375

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3573375.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户52615***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com