[发明专利]一种基于弱内存一致性的多线程确定性执行方法有效
申请号: | 201910320893.0 | 申请日: | 2019-04-21 |
公开(公告)号: | CN110083445B | 公开(公告)日: | 2023-04-25 |
发明(设计)人: | 王开宇;季振洲;周一豪;吴倩倩;张源悍 | 申请(专利权)人: | 哈尔滨工业大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/52 |
代理公司: | 北京汇捷知识产权代理事务所(普通合伙) 11531 | 代理人: | 马金华 |
地址: | 150006 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 内存 一致性 多线程 确定性 执行 方法 | ||
本发明提出了基于弱内存一致性的多线程确定性执行方法。包括弱内存一致性模型,串行阶段线程并行化模块和性能指导标记模块。本方法使用TSO弱内存一致性概念,并且提出了两点创新性技术,包括串行阶段部分线程并行化技术和帮助长并行距离线程跳过同步点的性能指导标记技术。本发明可以解决现有确定性方法全局同步造成的性能下降问题,并且通过让一些并行阶段较长的线程跳过指定的同步点,有效的解决了并行阶段负载不均衡问题,使确定性技术在性能上有很大提升。
技术领域
本发明应用于多线程环境下提升确定性系统并行度,改善确定性系统性能。
背景技术
众所周知,近些年来,摩尔定律所定义的芯片性能增长规律渐渐遇到瓶颈,芯片集成度逐渐受到物理规律的限制,芯片频率的提升带来了严峻能耗问题和散热问题。并行计算和片上多核处理器(CMP,Chip Multiprocessor)的做法是将两个或者两个以上的处理器核心集成在同一块芯片上,这一技术的出现在一定程度上满足了人们对处理器性能提升的迫切需求。与传统的单核处理器不同,多核处理器中,多个任务在多个处理器核心上同时执行,它们共享总线和部分Cache,从而增加了芯片的整体处理能力和运行效率。但是,随之而来的是,给并行程序的开发和调试带来了严重的挑战,它比编写串行程序要困难许多。在多核平台上编写的并行程序通常使用多个执行体(例如线程)在多核处理器同时执行程序代码,这些执行体往往并不是多个串行程序的简单组合,而是为了互相配合完成同一个任务。因此,各个执行体之间就会广泛存在复杂的竞争,同步以及干扰关系。此时,并行程序的多个执行体由于系统调度执行的时刻不确定而产生不同的交织顺序(interleavings),就极有可能影响到上述竞争,同步,干扰关系,进而影响输出结果。
目前,确定性执行技术被认为是应对确定性问题的关键核心技术。确定性执行技术能够使程序在相同的输入下运行时,按照相同的调度产生相同输出结果。确定性执行技术的核心是控制并行执行体之间的同步、竞争和干扰,使执行体之间按照一定的规则和顺序进行交互,从而确保每次执行都能按照这种规则和顺序,使程序即使在不同的环境中执行也能得到相同的结果,但是为了获取确定性,系统需要付出大量的额外开销,因此如何提升确定性系统的性能就成了当前的研究热点。
发明内容
基于背景技术存在的技术问题,本发明提出了一种基于弱内存一致性的多线程弱确定性执行方法。
本发明提出的一种基于弱内存一致性的多线程弱确定性执行方法,所述系统包括弱内存一致性模型,串行阶段并行化模块和性能指导标记模块;弱内存一致性模块用于在保证多线程确定性执行的基础上,对线程实行内存隔离,延后线程向内存提交操作;串行阶段并行化模块,用于提升串行阶段线程并行度,让获取非互斥锁资源两组线程可以在串行阶段并行执行,缩短串行阶段耗时,提升性能;性能指导标记模块用于通过提供一个性能指导标记,标记长并行距离的线程,在确定的位置开始,跳过指定个数的串行阶段;避免在并行阶段中,并行距离较短的线程长时间等待长并行距离的线程,造成并行阶段效率不高。
优选地,所述弱内存一致性模型用于负责隔离线程,保证线程顺利执行并行、串行阶段,包括如下步骤:
步骤1:在并行阶段,将线程对内存的提交存储到各个线程的栈内存;
步骤2:线程在并行阶段并行执行;
步骤3:将线程向内存提交的操作推迟到同步点;
步骤4:在串行阶段,线程按照事先确定的顺序依次向内存提交修改;
步骤5:将内存备份提交给各个线程,为下次执行做准备。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910320893.0/2.html,转载请声明来源钻瓜专利网。