[发明专利]一种多级并行化编程方法有效
申请号: | 201010205530.1 | 申请日: | 2010-06-22 |
公开(公告)号: | CN101887367A | 公开(公告)日: | 2010-11-17 |
发明(设计)人: | 于策;汤善江;张涛;孙济洲;徐祯;孙超;王萌萌 | 申请(专利权)人: | 天津大学 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F9/46 |
代理公司: | 天津市北洋有限责任专利代理事务所 12201 | 代理人: | 温国林 |
地址: | 300072*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 多级 并行 编程 方法 | ||
1.一种多级并行化编程方法,包括进程间的处理和进程内的处理,所述进程间的处理由主进程、从进程、DAG任务解析线程、第一线程池缓冲区、通信线城池、任务分配线程、数据同步线程和第一DAG任务完成反馈队列之间的相互通信实现;所述进程内的处理由主线程、第二线程池缓冲区、工作线程池、工作线程和第二DAG任务完成反馈队列之间的相互通信实现;其特征在于,所述进程间的处理包括:
(1)所述DAG任务解析线程解析第一DAG图,获取并下发DAG任务到所述第一线程池缓冲区;
(2)所述通信线程池中的闲置线程从所述第一线程池缓冲区中获取DAG任务,所述任务分配线程下发DAG任务给相应的所述从进程并进入等待确认信息的状态;
(3)当任意一所述从进程完成DAG任务,其对完成的数据块内容进行广播,所述数据同步线程使所述主进程和所有所述从进程进行数据同步更新;广播完毕后,发送确认信息给相应的所述任务分配线程;
(4)所述任务分配线程接收到相应的所述从进程的确认信息后,将已完成的DAG任务ID写入所述第一DAG任务完成反馈队列;
(5)所述DAG任务解析线程实时监测所述第一DAG任务完成反馈队列,当有完成的DAG任务时,更新所述第一DAG图;否则,重新执行步骤(1),当所有的任务都完成,退出监测,流程结束;
所述进程内的处理包括:
(6)所述主线程获取所述从进程发送的DAG任务,解析第二DAG图,获取并下发DAG任务到所述第二线程池缓冲区;
(7)所述工作线程池从所述第二线程池缓冲区中获取DAG任务,将其下发给任一闲置的所述工作线程;当所述工作线程完成DAG任务时,将完成的DAG任务ID写入所述第二DAG任务完成反馈队列中;
(8)所述主线程实时监测所述第二DAG任务完成反馈队列,当有完成的DAG任务时,所述主线程更新所述第二DAG图,重新执行步骤(6);当所有的任务都完成后,所述主线程将退出监测,进入等待下一个新任务状态。
2.根据权利要求1所述的多级并行化编程方法,其特征在于,所述多级并行化编程方法还包括进程间的容错处理和进程内的容错处理,所述进程间的容错处理由所述DAG任务解析线程、第一超时队列、所述通信线程池中的任务分配线程、所述任务分配线程、第一DAG任务注册表、容错线程之间的相互通信实现;所述进程内的容错处理由所述主线程、第二超时队列、所述工作线程、第二DAG任务注册表、所述工作线程池之间的相互通信实现;具体地,
所述进程间的容错处理包括:
将所述DAG任务解析线程获取到的DAG任务下发到所述第一超时队列中;
当所述通信线程池中的任务分配线程获取到DAG任务后,所述任务分配线程将到所述第一DAG任务注册表中进行登记,记录任务分配线程ID及DAG任务ID;
当所述DAG任务解析线程实时监测发现有完成的DAG任务时,将从所述第一超时队列中将该DAG任务ID删除;
所述容错线程实时监测所述第一超时队列,根据第一超时阈值检测是否存在DAG任务超时;当发现有DAG任务超时,从所述第一超时队列中删除DAG任务ID,否则,继续反复监测所述第一超时队列;
所述进程内的容错处理包括:
将所述主线程获取到的DAG任务下发到所述第二超时队列中,当所述工作线程获取一可计算的DAG任务后,所述工作线程将到所述第二DAG任务注册表中进行登记,记录工作线程ID及DAG任务ID;
所述主线程实时监测所述第二超时队列,根据第二超时阈值检测是否存在DAG任务超时,当发现有DAG任务超时时,所述工作线程池杀死所述工作线程,重新创建一新工作线程替代被杀死的工作线程,将超时的DAG任务从所述第二超时队列中删除。
3.根据权利要求2所述的多级并行化编程方法,其特征在于,所述容错线程实时监测所述第一超时队列,根据第一超时阈值检测是否存在DAG任务超时,具体为:
当前时刻与所述第一超时队列的起始时间做差,得到的差值大于等于所述第一超时阈值时,视为存在DAG任务超时。
4.根据权利要求2所述的多级并行化编程方法,其特征在于,所述主线程实时监测所述第二超时队列,根据第二超时阈值检测是否存在DAG任务超时,具体为:
当前时刻与所述第二超时队列的起始时间做差,得到的差值大于等于所述第二超时阈值时,视为存在DAG任务超时。
5.根据权利要求2所述的多级并行化编程方法,其特征在于,所述第一超时阈值大于第二超时阈值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津大学,未经天津大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010205530.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种高升阻比陶瓷热敏电阻器及其制备方法
- 下一篇:方便干燥的新型草捆