[发明专利]海量计算粗颗粒并行实现及计算任务随机动态分配方法有效
申请号: | 201610412716.1 | 申请日: | 2016-06-13 |
公开(公告)号: | CN106095574B | 公开(公告)日: | 2019-01-08 |
发明(设计)人: | 王芬 | 申请(专利权)人: | 北京唯智佳辰科技发展有限责任公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京汇信合知识产权代理有限公司 11335 | 代理人: | 戴凤仪 |
地址: | 100034 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了海量计算粗颗粒并行实现及计算任务随机动态分配方法,包括:将整个计算程序划分为多个互不重叠的计算颗粒,统计各计算颗粒的加权CPU时间和整个计算过程的总CPU时间;对各计算颗粒加权CPU时间的大小排序,选出并行粗颗粒;基于随机分配策略将并行粗颗粒执行的计算任务的序列随机打乱,形成新的序列;基于文件标记技术和先申请先分配策略,将计算任务分配到所有进程中,完成所有计算任务的并行计算;主进程收集计算结果并进行后处理,完成整个计算过程。本发明最大限度的减少了进程之间的通信,减少了多进程并行计算时所需内存的峰值,同时完美解决计算实例复杂度不对等带来的进程等待问题,进而大大提高并行计算效率。 | ||
搜索关键词: | 海量 计算 颗粒 并行 实现 任务 随机 动态分配 方法 | ||
【主权项】:
1.一种海量计算粗颗粒并行实现及计算任务随机动态分配方法,其特征在于,包括:步骤1、根据问题计算特征,将整个计算过程中执行相同类型的所有独立计算的计算程序定义为计算颗粒,并将执行整个计算过程的整个计算程序划分为多个互不重叠的计算颗粒,计算颗粒执行的一个独立计算作为一个计算任务;步骤2、实现包含所有计算颗粒单次计算的串行计算,根据计算结果统计单次经典计算任务计算所需的CPU时间;步骤3、计算各计算颗粒的加权CPU时间和整个计算过程的总CPU时间;步骤4、对各计算颗粒按照加权CPU时间的大小进行排序,从大到小选出加权CPU时间之和大于99%总CPU时间的多个计算颗粒,并将选出的每个计算颗粒作为一个并行粗颗粒;步骤5、执行并行粗颗粒前,采用主进程执行并行粗颗粒之外的计算颗粒;步骤6、执行一个并行粗颗粒时,根据并行粗颗粒需要执行的所有计算任务,基于随机分配策略,主进程将并行粗颗粒执行的所有计算任务的序列随机打乱,形成新的计算任务序列;所述随机分配策略的实现方法为:步骤6‑1、将计算任务的序列List0={n},对应生成随机数序列{Rn},n=1,2,3,…,N;步骤6‑2、对序列{Rn}从小到大排序,排序后的序列为{On};步骤6‑3、生成新的不重复的计算任务序列List={Ln};步骤7、基于文件标记技术和先申请先分配策略,主进程按照新的计算任务序列将并行粗颗粒执行的所有计算任务分配到包含主进程的所有进程中,并完成计算任务的并行计算;所述文件标记技术为:若并行粗颗粒中某计算任务被分配到一进程中,则生成该计算任务的状态文件;另一进程在申请分配某一计算任务时,将尝试生成该计算任务的状态文件,如果该状态文件存在,则表明该计算任务已经被分配,则所述另一进程将自动尝试申请分配下一个计算任务;所述文件标记技术的实现方法为:步骤7‑1、一进程申请分配第i个计算任务;步骤7‑2、判断第i个计算任务的状态文件Fi是否存在,若存在则跳至步骤7‑5,若不存在则跳至步骤7‑3;步骤7‑3、生成状态文件Fi;步骤7‑4、完成第i个计算任务的计算;步骤7‑5、判断并行粗颗粒执行的所有计算任务是否全部完成,若未完成则i=i+1,并返回步骤7‑1,若已完成则跳至步骤7‑6;步骤7‑6、结束;步骤8、重复步骤6~步骤7,依次完成每个并行粗颗粒需要执行的所有计算任务的并行计算;步骤9、待所有并行粗颗粒需要执行的所有计算任务的并行计算完成后,主进程收集计算结果并进行后处理,完成整个计算过程。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京唯智佳辰科技发展有限责任公司,未经北京唯智佳辰科技发展有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610412716.1/,转载请声明来源钻瓜专利网。
- 上一篇:夹层玻璃用中间膜及夹层玻璃
- 下一篇:一种蓝莓种植营养土及制备方法