[发明专利]基于GPU的乐观时间管理方法有效
申请号: | 201510581194.3 | 申请日: | 2015-09-14 |
公开(公告)号: | CN105183536B | 公开(公告)日: | 2018-11-13 |
发明(设计)人: | 姚益平;唐文杰;鄢来斌;蒋志文;曲庆军;孟冬;朱峰;陈慧龙;姚峰;李建波 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 湖南兆弘专利事务所(普通合伙) 43008 | 代理人: | 周长清 |
地址: | 410073 湖南省长沙市砚瓦池正街47号中国*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 gpu 乐观 时间 管理 方法 | ||
1.一种基于GPU的乐观时间管理方法,其特征在于,步骤为:
S1:仿真初始化,生成若干的初始化仿真事件;
S2:判断仿真是否结束?即,全局虚拟时间GVT是否大于用户所要求的结束时间;如结果为“是”,则算法结束;如结果为“否”,则继续执行步骤S3;
S3:构建时间窗口[Tfloor,Tceilling);所述时间窗口的时戳下界Tfloor为全局虚拟时间GVT,时戳上界Tceilling为GVT+2*lookahead;其中,lookahead为前瞻值;
S4:事件提取;GPU线程并行地检查所有仿真事件,若仿真事件的时戳位于时间窗口内部,则将该仿真事件加入到其目标逻辑进程FEL中,其中仿真事件在FEL中按时戳先后顺序排列;其中FEL为逻辑上的未来事件队列;
S5:前向事件处理;GPU线程并行地处理各个逻辑进程FEL中的事件;
S6:逆向事件处理;如发生因果乱序的情况,表明某些事件已被错误的处理,就通过逆向事件处理来修复;
S7:事件提交;将所有已处理事件的提交,确认并清除其所占用的存储资源,之后把所有逻辑进程PEL置为空,转步骤S2;其中PEL为逻辑进程的已处理事件队列。
2.根据权利要求1所述的基于GPU的乐观时间管理方法,其特征在于,所述步骤S1的步骤为:
S101:在GPU端申请显存,用于存放逻辑进程、仿真事件、以及用于仿真管理的相关数据结构;
S102:初始化所有逻辑进程的状态,并生成若干的初始化仿真事件。
3.根据权利要求1所述的基于GPU的乐观时间管理方法,其特征在于,所述步骤S3中,全局虚拟时间GVT的取值为当前所有未处理事件的时戳最小值,由GPU线程通过全局规约计算得到。
4.根据权利要求1所述的基于GPU的乐观时间管理方法,其特征在于,所述步骤S4中,当多个线程同时向同一逻辑进程的FEL中插入仿真事件时,通过锁来实现线程间的协同。
5.根据权利要求1或2或3或4所述的基于GPU的乐观时间管理方法,其特征在于,所述步骤S5中,在事件处理前,把该逻辑进程的当前状态保存在该事件中以备恢复使用;事件处理将改变逻辑进程的状态,并产生新的消息发送给其他逻辑进程。
6.根据权利要求5所述的基于GPU的乐观时间管理方法,其特征在于,所述步骤S5中,记录了当前发送给每个逻辑进程的消息最小时戳,记为tmsg(lp);若该时戳小于逻辑进程的lvt,lvt为局部虚拟时间,则表明因果乱序已经发生,线程将暂停执行该逻辑进程FEL中的事件;事件处理完成后放入该逻辑进程的已处理事件队列PEL的尾部。
7.根据权利要求6所述的基于GPU的乐观时间管理方法,其特征在于,所述步骤S6的具体流程为:
S6.1线程从PEL的尾部开始,逐步“取消”所有过度乐观执行的事件;即,若事件时戳大于等于tmsg(lp),则该事件需要被取消;所述“取消”事件意味着将逻辑进程的状态恢复到处理该事件之前,并将该事件重新插入到FEL中;逻辑进程的状态使用之前保存在仿真事件中的数据来恢复;
S6.2线程并行地扫描事件池,检查所有新产生的消息;若其“父亲”事件已被取消,表明该消息不应该存在,直接清除该消息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510581194.3/1.html,转载请声明来源钻瓜专利网。