[发明专利]一种数据容错的多线程投机方法有效
申请号: | 201410111160.3 | 申请日: | 2014-03-24 |
公开(公告)号: | CN103942096B | 公开(公告)日: | 2017-06-13 |
发明(设计)人: | 孟静磊;潘平;袁明敏;李颂元;邵景程;马建良;俞立呈;陈天洲;刘莉;施青松 | 申请(专利权)人: | 浙江大学 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F11/07 |
代理公司: | 杭州求是专利事务所有限公司33200 | 代理人: | 杜军 |
地址: | 310027 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开一种数据容错的多线程投机方法。该方法是基于数据容错的多线程投机方法,让先到达栅栏的线程投机执行,充分利用众多线程之间同步数据造成的运行时间浪费,加速程序运行。本发明基于投机,判断,回滚的流程通过回滚错误的投机来保证程序的正确性。本发明对投机判断和回滚判断进行了建模,保证其效率。本发明通过限制投机深度,使得投机收益在减去该投机开销后保持一定范围内的稳定,从而提供稳定的程序运行速度提升。 | ||
搜索关键词: | 一种 数据 容错 多线程 投机 方法 | ||
【主权项】:
一种数据容错的多线程投机方法,其特征在于该方法包括以下步骤:步骤(1)、线程到达栅栏,赋予投机线程容错数据版本:多线程执行过程中线程会遇到多个栅栏,对于任何先于其他线程到达某一栅栏的线程,从第一个穿越该栅栏的线程开始,每个线程所携带的容错数据赋予一个版本,该版本的赋予由其穿越该栅栏的次序决定;最后一个到达该栅栏的线程拥有数据的最终版本,所述的最终版本为数据的正确版本;对于先于其他到达栅栏的线程,允许其携带自身的数据继续执行而不是等待其他线程,其携带的数据称为容错数据,该带有容错数据的线程称为容错投机线程;步骤(2)、判断投机线程容错数据版本是否为最终版本:当某个投机线程到达栅栏时,判断其容错数据版本是否为最终版本;若不是最终版本,则该线程继续投机执行步骤(3);反之则标记自身为非投机线程正确运行并发出投机唤醒信号,通知非最终版本的投机线程执行步骤(5);步骤(3)、判断非最终版本的投机线程是否收到收到投机唤醒信号,若收到则执行步骤(5),否则执行步骤(4);步骤(4)、判断投机线程是否需要回滚:对于非最终版本的投机线程,在其每到下一个栅栏时都要判断其是否需要回滚,判断线程回滚条件如下所述;如果不需要回滚,则继续投机执行;如果需要回滚,则回滚至该投机线程第一次投机执行所在的栅栏;所述的线程回滚的条件为:投机线程在最终版本的数据到达之前,若该线程已经投机执行超过了设定的投机深度,则回滚;所述的投机深度为允许投机线程携带容错数据穿越的栅栏数目;步骤(5)、判断投机线程是否投机成功:对于非最终版本的投机线程,在收到投机唤醒信号后都要判断自身是否投机成功,投机成功的判断条件如下所述;如果投机成功,则标记自身为非投机线程正确运行;反之则回滚至该投机线程第一次投机执行时所在的栅栏;所述的投机成功条件为:投机线程内的容错数据与最终版本的数据相同;或者投机线程内的容错数据与最终版本的数据不相同,但该投机线程最终的运行结果与容错数据无关。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410111160.3/,转载请声明来源钻瓜专利网。
- 上一篇:涡轮增压器涡轮模具
- 下一篇:一种用于法兰部件的模具结构
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置