并行任务动态分配方法组成比例

技术编号:8323270 阅读:232 留言:0更新日期:2013-02-14 00:20
一种并行任务动态分配方法,适用于包括多级用户进程的并行系统,所述多级用户进程包括至少两级主进程和普通进程。该方法包括:主进程将本级待分配的并行任务排序,形成本级待分配任务队列;接收下一级用户进程发送的任务请求消息及所请求的任务数量;从本级待分配任务队列的队首开始,按照下一级用户进程所请求的任务数量,为下一级用户进程分配任务,并更新本级待分配任务队列。本发明专利技术可提高动态任务分配的效率,以达到众多计算资源间的负载平衡。

【技术实现步骤摘要】

本专利技术涉及高性能计算领域,尤其涉及一种大规模并行环境下的。
技术介绍
大规模并行环境下,并行应用程序面对的计算资源众多,容易出现通信热点,产生负载不均衡现象,导致动态任务分配服务性能急剧下降,从而影响应用程序的整体效率。因此,在并行语言运行系统中,如何高效实现计算任务到计算资源的动态映射以达到众多计算资源间的负载平衡,保证并行应用程序性能最佳化,成为本领域技术人员亟待解决的技术问题之一。在大规模环境下实现动态任务分配,从而影响到应用程序性能,对于任务并行类课题,要实现动态任务分配,最直接的方式是用户利用并行消息库函数编写相应的控制程序,例如在MPI (消息传递编程模型,Message PassingInterface)程序中,选出一个主进程,通常为RANKO作为Master,其他进程向该进程发送任务请求消息,Master根据当前任务执行情况向其他进程提供任务分配服务。但这种实现方式的缺点在于1)用户编写任务控制程序具有一定的难度,实现较为复杂;2)可扩展性存在问题,在大规模并行系统上,用户进程成千上万,Master负担较重,影响程序的整体执行效率。此外,大规模并行环境的计算资源众多,经常出现计算资源故障的现象。因此,如何保证并行程序以较小的容错代价在计算资源出现故障的情况下继续执行,也是本领域技术人员亟待解决的技术问题。在容错方面,检查点技术是最为常见的手段之一。检查点技术是指当用户程序执行到一定阶段时,将当前用户程序执行的内存映像保留至磁盘,当故障发生时,读出最近一个检查点的内存映像,从该点重新运行用户程序。检查点容错技术需要保留完整程序的内存映像,代价较高,且大数据量的课题,需要保留的内容较多,对于平台的I/o能力有着极高的要求。此外,当有计算资源出现故障时,只能恢复到此前最近的检查点,故障产生的损失较大。
技术实现思路
本专利技术所要解决的技术问题是提高动态任务分配的效率,以达到众多计算资源间的负载平衡。为了解决上述问题,本专利技术提供了一种,适用于包括多级用户进程的并行系统;所述多级用户进程包括至少两级主进程和普通进程;该方法包括所述主进程将本级待分配的并行任务排序,形成本级待分配任务队列;所述主进程接收下一级用户进程发送的任务请求消息及所请求的任务数量;所述主进程从本级待分配任务队列的队首开始,按照下一级用户进程所请求的任务数量,为下一级用户进程分配任务,并更新本级待分配任务队列。可选的,该方法还包括所述主进程从本级待分配任务队列的队首开始,根据所述主进程本身的处理能力,为主进程分配任务,并更新本级待分配任务队列;在为主进程分配任务的过程中,暂停为下一级用户进程分配任务。可选的,还包括若所请求的任务数量大于所述本级待分配任务队列中的任务数量,则所述主进程向其上一级用户进程发送任务请求消息及所请求的任务数量,在接收到上一级用户进程分配的任务后更新所述本级待分配任务队列。可选的,该方法还包括若在所述用户进程接收并执行任务的过程中发生故障,则将发生故障的任务回收,并排到分配该任务的用户进程所管理的待分配任务队列的队尾,以重新参与任务分配。 可选的,所述主进程包括全局主进程和区域主进程;所述多级用户进程包括全局主进程、至少一级区域主进程和普通进程;所述全局主进程、至少一级区域主进程和普通进程呈树状排布;其中,全局主进程为根结点;区域主进程为分支结点;普通进程为叶子结点。可选的,在所述主用户进程将本级待分配的并行任务排序,形成待分配任务队列之前,还包括将所有用户进程按照全局主进程、至少一级区域主进程及普通进程分为多级用户进程。可选的,所述将所有用户进程按照全局主进程、至少一级区域主进程及普通进程分为多级用户进程包括选取作为全局主进程的用户进程;将其他用户进程分组;在各组内选取作为区域主进程的用户进程;余下的用户进程为普通进程。可选的,所述将其他用户进程分组包括将除全局主进程以外的用户进程分组以形成一级区域主进程;或者将除全局主进程以外的用户进程分组以形成一级区域主进程,并在分组后形成的用户进程组内再进行逐级分组,以形成有上下从属关系的多级区域主进程。可选的,所述选取作为全局主进程的用户进程包括选取逻辑进程号最小的用户进程为全局主进程;所述在各组内选取作为区域主进程的用户进程包括选择各组内逻辑进程号最小的的用户进程为区域主进程。可选的,该方法还包括所述全局主进程记录所有任务的分配情况,并根据接收任务的用户进程返回的任务完成情况,记录断点文件;所述区域主进程记录本级待分配任务的分配情况,并根据接收任务的用户进程返回的任务完成情况,向其上一级用户进程返回本级的任务完成情况;所述普通进程向其上一级用户进程返回普通进程本身的任务完成情况。可选的,该方法还包括若所述普通进程出现故障,则将分配给该普通进程的任务回收,并排到其上一级的区域主进程管理的待分配任务队列的队尾,重新参与任务分配;若所述区域主进程出现故障,则将分配给该区域主进程的任务回收,并排到其上一级的用户进程管理的待分配任务队列的队尾,重新参与任务分配;并从该区域主进程下一级的用户进程中选择新的区域主进程,继续为下一级用户进程分配任务;当所述全局主进程出现故障,从其下一级的区域主进程中选择新的全局主进程,读取所述断点文件,继续分配所述断点文件未记录的未完成任务。可选的,在所述主进程将本级待分配的并行任务排序,形成本级待分配任务队列之前,还包括进行初始化;所述初始化包括记录断点文件名、记录总任务数、记录任务块大小。可选的,所述普通进程一次请求的任务数量为一个任务块大小;所述区域主进程一次请求的任务数量为一个任务块大小与其下级所有用户进程数的乘积;可选的,在所述主进程将本级待分配的并行任务排序,形成本级待分配任务队列之前,还包括为每个任务分配唯一的任务号; 所述分配任务包括给出所分配任务的任务号。可选的,还包括在全局主进程的待分配任务队列之后增加一结束标记;当接收到的任务号为所述结束标记时,并行任务分配完毕。与现有技术相比,本专利技术的技术方案具有以下优点I、本专利技术通过基于排队论模型的多层动态任务分配模式,将动态任务分配服务分布至多个计算资源,降低了动态任务分配的代价,有效提高了任务分配服务的效率,从而避免了服务热点的产生,达到众多计算资源间的负载平衡。2、可选方案中,通过对用户进程进行分组以形成树形排布,更简化上级用户进程对下级用户进程以及对任务的管理。3、可选方案中,通过在服务端记录当前任务分配的情况,在部分计算资源出现故障的情况下,将分配给故障资源的任务回收,重新分配至健康计算资源,以保证并行应用程序能够继续正确执行,提供了容错效率,同时将故障资源带来的影响局限于一定的范围。此夕卜,断点文件的及时更新也能有效降低故障资源带来的损失。附图说明图I为本专利技术的的第一具体实施方式的流程图;图2为本专利技术的的第二具体实施方式的流程图;图3为本专利技术的的第三具体实施方式的流程图;图4为本专利技术的的第四具体实施方式的流程图;图5为本专利技术的中步骤将所有用户进程分为多级用户进程的一具体实施方式的流程图;图6为对应图具体实施方式的第一实施例的各阶段示意图;图7为对应图具体实施方式的第二实施例的各阶段示意图8为本专利技术的的第五具体实施方式的流程图;图9为本专利技术的的第一实施例的各阶段本文档来自技高网
...

【技术保护点】
一种并行任务动态分配方法,其特征在于,该方法适用于包括多级用户进程的并行系统;所述多级用户进程包括至少两级主进程和普通进程;该方法包括:所述主进程将本级待分配的并行任务排序,形成本级待分配任务队列;所述主进程接收下一级用户进程发送的任务请求消息及所请求的任务数量;所述主进程从本级待分配任务队列的队首开始,按照下一级用户进程所请求的任务数量,为下一级用户进程分配任务,并更新本级待分配任务队列。

【技术特征摘要】
1.一种并行任务动态分配方法,其特征在于,该方法适用于包括多级用户进程的并行系统;所述多级用户进程包括至少两级主进程和普通进程;该方法包括 所述主进程将本级待分配的并行任务排序,形成本级待分配任务队列; 所述主进程接收下一级用户进程发送的任务请求消息及所请求的任务数量; 所述主进程从本级待分配任务队列的队首开始,按照下一级用户进程所请求的任务数量,为下一级用户进程分配任务,并更新本级待分配任务队列。2.如权利要求I所述的并行任务动态分配方法,其特征在于,该方法还包括 所述主进程从本级待分配任务队列的队首开始,根据所述主进程本身的处理能力,为主进程分配任务,并更新本级待分配任务队列;在为主进程分配任务的过程中,暂停为下一级用户进程分配任务。3.如权利要求I或2所述的任一种并行任务动态分配方法,其特征在于,还包括 若所请求的任务数量大于所述本级待分配任务队列中的任务数量,则所述主进程向其上一级用户进程发送任务请求消息及所请求的任务数量,在接收到上一级用户进程分配的任务后更新所述本级待分配任务队列。4.如权利要求3所述的并行任务动态分配方法,其特征在于,该方法还包括 若在所述用户进程接收并执行任务的过程中发生故障,则将发生故障的任务回收,并排到分配该任务的用户进程所管理的待分配任务队列的队尾,以重新参与任务分配。5.如权利要求4所述的并行任务动态分配方法,其特征在于,所述主进程包括全局主进程和区域主进程; 所述多级用户进程包括全局主进程、至少一级区域主进程和普通进程; 所述全局主进程、至少一级区域主进程和普通进程呈树状排布;其中,全局主进程为根结点;区域主进程为分支结点;普通进程为叶子结点。6.如权利要求5所述的并行任务动态分配方法,其特征在于,在所述主进程将本级待分配的并行任务排序,形成本级待分配任务队列之前,还包括 将所有用户进程按照全局主进程、至少一级区域主进程及普通进程分为多级用户进程。7.如权利要求6所述的并行任务动态分配方法,其特征在于,所述将所有用户进程按照全局主进程、至少一级区域主进程及普通进程分为多级用户进程包括 选取作为全局主进程的用户进程; 将其他用户进程分组;在各组内选取作为区域主进程的用户进程; 余下的用户进程为普通进程。8.如权利要求7所述的并行任务动态分配方法,其特征在于,所述将其他用户进程分组包括 将除全局主进程以外的用户进程分组以形成一级区域主进程; 或者将除全局主进程以...

【专利技术属性】
技术研发人员:何王全魏迪权建校吴伟刘勇文延华方燕飞
申请(专利权)人:无锡江南计算技术研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1