[发明专利]并行任务动态分配方法有效
申请号: | 201210438264.6 | 申请日: | 2012-11-06 |
公开(公告)号: | CN102929707A | 公开(公告)日: | 2013-02-13 |
发明(设计)人: | 何王全;魏迪;权建校;吴伟;刘勇;文延华;方燕飞 | 申请(专利权)人: | 无锡江南计算技术研究所 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/50 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 骆苏华 |
地址: | 214083 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 并行 任务 动态分配 方法 | ||
技术领域
本发明涉及高性能计算领域,尤其涉及一种大规模并行环境下的并行任务动态分配方法。
背景技术
大规模并行环境下,并行应用程序面对的计算资源众多,容易出现通信热点,产生负载不均衡现象,导致动态任务分配服务性能急剧下降,从而影响应用程序的整体效率。因此,在并行语言运行系统中,如何高效实现计算任务到计算资源的动态映射以达到众多计算资源间的负载平衡,保证并行应用程序性能最佳化,成为本领域技术人员亟待解决的技术问题之一。在大规模环境下实现动态任务分配,从而影响到应用程序性能,
对于任务并行类课题,要实现动态任务分配,最直接的方式是用户利用并行消息库函数编写相应的控制程序,例如在MPI(消息传递编程模型,Message Passing Interface)程序中,选出一个主进程,通常为RANK0作为Master,其他进程向该进程发送任务请求消息,Master根据当前任务执行情况向其他进程提供任务分配服务。但这种实现方式的缺点在于:1)用户编写任务控制程序具有一定的难度,实现较为复杂;2)可扩展性存在问题,在大规模并行系统上,用户进程成千上万,Master负担较重,影响程序的整体执行效率。
此外,大规模并行环境的计算资源众多,经常出现计算资源故障的现象。因此,如何保证并行程序以较小的容错代价在计算资源出现故障的情况下继续执行,也是本领域技术人员亟待解决的技术问题。
在容错方面,检查点技术是最为常见的手段之一。检查点技术是指当用户程序执行到一定阶段时,将当前用户程序执行的内存映像保留至磁盘,当故障发生时,读出最近一个检查点的内存映像,从该点重新运行用户程序。检查点容错技术需要保留完整程序的内存映像,代价较高,且大数据量的课题,需要保留的内容较多,对于平台的I/O能力有着极高的要求。此外,当有计算资源出现故障时,只能恢复到此前最近的检查点,故障产生的损失较大。
发明内容
本发明所要解决的技术问题是提高动态任务分配的效率,以达到众多计算资源间的负载平衡。
为了解决上述问题,本发明提供了一种并行任务动态分配方法,适用于包括多级用户进程的并行系统;所述多级用户进程包括至少两级主进程和普通进程;该方法包括:
所述主进程将本级待分配的并行任务排序,形成本级待分配任务队列;
所述主进程接收下一级用户进程发送的任务请求消息及所请求的任务数量;
所述主进程从本级待分配任务队列的队首开始,按照下一级用户进程所请求的任务数量,为下一级用户进程分配任务,并更新本级待分配任务队列。
可选的,该方法还包括:
所述主进程从本级待分配任务队列的队首开始,根据所述主进程本身的处理能力,为主进程分配任务,并更新本级待分配任务队列;在为主进程分配任务的过程中,暂停为下一级用户进程分配任务。
可选的,还包括:
若所请求的任务数量大于所述本级待分配任务队列中的任务数量,则所述主进程向其上一级用户进程发送任务请求消息及所请求的任务数量,在接收到上一级用户进程分配的任务后更新所述本级待分配任务队列。
可选的,该方法还包括:
若在所述用户进程接收并执行任务的过程中发生故障,则将发生故障的任务回收,并排到分配该任务的用户进程所管理的待分配任务队列的队尾,以重新参与任务分配。
可选的,所述主进程包括全局主进程和区域主进程;
所述多级用户进程包括全局主进程、至少一级区域主进程和普通进程;
所述全局主进程、至少一级区域主进程和普通进程呈树状排布;其中,全局主进程为根结点;区域主进程为分支结点;普通进程为叶子结点。
可选的,在所述主用户进程将本级待分配的并行任务排序,形成待分配任务队列之前,还包括:
将所有用户进程按照全局主进程、至少一级区域主进程及普通进程分为多级用户进程。
可选的,所述将所有用户进程按照全局主进程、至少一级区域主进程及普通进程分为多级用户进程包括:
选取作为全局主进程的用户进程;
将其他用户进程分组;在各组内选取作为区域主进程的用户进程;
余下的用户进程为普通进程。
可选的,所述将其他用户进程分组包括:
将除全局主进程以外的用户进程分组以形成一级区域主进程;
或者将除全局主进程以外的用户进程分组以形成一级区域主进程,并在分组后形成的用户进程组内再进行逐级分组,以形成有上下从属关系的多级区域主进程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡江南计算技术研究所,未经无锡江南计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210438264.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:压缩机
- 下一篇:一种透明减反射镀膜液及其制备方法和应用