[发明专利]基于自适应释放的确定性重放方法有效
申请号: | 201711487307.9 | 申请日: | 2017-12-29 |
公开(公告)号: | CN108196963B | 公开(公告)日: | 2021-11-16 |
发明(设计)人: | 应欢;王磊;朱朝阳;韩丽芳;周亮;梅文明;缪思薇;邱意民;余文豪;李梦涛;范永;王海翔 | 申请(专利权)人: | 中国电力科学研究院有限公司;国家电网公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 北京工信联合知识产权代理有限公司 11266 | 代理人: | 郭一斐 |
地址: | 100192 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 自适应 释放 的确 定性 重放 方法 | ||
本发明公开了一种基于自适应释放的确定性重放方法,基于库函数重载确定线程执行同步操作的顺序,并在线程请求获得共享页面的访问权限失败时调用自适应释放模块,自适应释放模块将引起各线程阻塞的所有共享页面暂存于候选集合,并从候选集合中选出合适的释放线程和被释放共享页面移入待释放集合;所有线程遍历待释放集合判断自身是否为释放线程,若判断结果为是,则当前线程释放相应的共享页面,若判断结果为否,则当前线程替释放线程释放相应的共享页面,释放线程在后续执行过程中取消被释放共享页面的访问权限。本发明能够让最合适的线程在合适的时机释放最合适的共享页面,降低并行程序在记录阶段处理页保护异常的开销,提高记录性能。
技术领域
本发明涉及并行程序调试技术领域,具体涉及基于自适应释放的确定性重放方法。
背景技术
与传统的串行程序不同,并行程序的执行具有不确定性,即在输入相同的情况下,同一个并行程序执行多次的结果并不相同。造成并行程序不确定性的主要因素是各线程访问共享内存的顺序不确定。并行程序的不确定性会给调试带来困难,为了解决这一问题,目前通常采用确定性重放技术,确定性重放技术包括两步:记录和重放,在记录阶段,将各线程间的访存依赖关系记录在日志文件中;在重放阶段,强制各线程按照所记录的日志执行访存操作。
传统的实现确定性重放的方法主要通过记录所有线程的访存指令顺序来确定并行程序的访存依赖关系,但是其记录开销非常大。为了降低时间开销,现有技术中提出基于页保护机制的确定性重放方法,这种方法利用页保护机制能够为运行的进程提供对虚拟页面的访问控制,通过限定每个线程对共享页面的访问权限,以此来推断各线程访问共享内存的顺序。在记录阶段,记录每个共享页面的访问权限在各线程间的转移顺序;在重放阶段,强制各线程根据日志内容来获得共享页面的访问权限。然而,对于这种确定性重放方法来说,页保护异常是其主要的性能开销来源。并行程序执行过程中触发页保护异常存在两种情况:第一次访问某个共享页面;释放后再次访问同一个共享页面。我们无法避免第一种情况下引入的页保护异常(每个新创建的线程执行前,所有共享页面都被添加页保护,否则将会遗漏某些访存操作)。与前者不同,通过优化释放策略,可以降低第二种情况下引入的页保护异常。为了让各线程公平竞争共享页面的访问权限,基于页保护机制的确定性重放方法一般提供多个释放同步点,例如libc类库函数、同步操作类库函数等。然而,释放同步点的数量越多,页保护异常的次数越少,程序并行度偏低,但并行程序处理页保护异常的开销较小;相反,释放同步点的数量越少,页保护异常的次数越多,程序并行度偏高,但并行程序处理页保护异常的开销较大。目前,对于不同的并行程序来说,无法通过单一的增加或减少释放同步点的数量来提高并行程序的记录性能,现有的基于页保护机制的确定性重放方法的记录性能较差,无法满足设计要求。
发明内容
本发明要解决的技术问题是面向基于页保护机制的确定性重放方法,提供一种基于自适应释放的确定性重放方法,能够以最合适的线程在合适的时机释放最合适的共享页面,改善并行程序当前的并行度,使每一次共享页面的释放获得的收益最优,最大化的降低并行程序在记录阶段处理页保护异常的开销,从而大大提高其记录性能。
为了解决上述技术问题,本发明提供的技术方案如下:
一种基于自适应释放的确定性重放方法,包括以下步骤:
1)并行程序中的每个线程在执行前,将所有的共享页面都设置为不可访问状态;并行程序的线程在缺少共享页面的访问权限而触发页保护异常时会进入共享页面访问权限请求处理模块;
2)线程在共享页面访问权限请求模块中请求获得共享页面的访问权限,若请求成功,则该线程设置该共享页面相应的访问权限,并调用记录重放模块记录本事件,若请求失败,则进入步骤3);
3)判断当前并行程序的所有线程是否都处于阻塞状态,如果判断结果为是,则调用自适应释放模块并进入步骤4);若判断结果为否,则再次执行步骤3);
所述阻塞状态为线程由于缺少共享页面的访问权限或由于执行同步操作而无法继续正常执行的状态;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电力科学研究院有限公司;国家电网公司,未经中国电力科学研究院有限公司;国家电网公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711487307.9/2.html,转载请声明来源钻瓜专利网。