一种基于MPI三层拓扑结构的超时机制管理模块制造技术

技术编号:35743171 阅读:13 留言:0更新日期:2022-11-26 18:47
本发明专利技术涉及一种基于MPI三层拓扑结构的超时机制管理模块,包括总调度模块、二级调度模块、总调度超时管理模块和二级调度超时管理模块;所述总调度模块设有一个总调度进程、二级调度模块设有N个二级调度进程,二级调度进程设有N*N个工作进程模块,所述二级调度模块负责接收总调度模块分块计算资料,管理其下N个所述工作进程的计算任务分配;所述二级调度模块将其下N个所述工作进程注册到所述二级调度超时机制管理模块,发送计算任务后监控工作进程状态,判断是否超时;通过三层MPI网络拓扑,并配合超时机制管理模块,有效提高超大规模并行计算的容错率,在多个核心出现错误、宕机或进程假死情况下,仍可保证计算任务顺利完成。仍可保证计算任务顺利完成。

【技术实现步骤摘要】
一种基于MPI三层拓扑结构的超时机制管理模块
[0001]

[0002]本专利技术属于通讯
,具体涉及一种基于MPI三层拓扑结构的超时机制管理模块。
[0003]
技术介绍

[0004]现阶段超级计算中心通常拥有千万级异构芯片用于超大规模并行计算,每项计算任务在调用如此规模的计算资源过程中,通常使用MPI通信协议对全部计算资源进行管理调度,通过程序设计,MPI通信协议主要负责数据的同步异步发送和接收,其本身并无通信过程中的超时管理机制,但整个计算过程中难以保证每个计算节点都可以正常运行到任务结束,这就导致了需耗时几天甚至更久的计算任务因少数发生错误的节点而最终任务失败,造成计算资源的巨大浪费。
[0005]当某个计算节点发生宕机或处于假死状态时,该节点无法触发MPI发送和接收指令,因此上游计算任务管理节点无法完成MPI通信逻辑闭环,以致整个计算任务缺失部分计算结果或无法正常结束。由于现存各版本MPI开发包中并不存在通信超时管理的相关接口,这就导致通讯中接收节点会因发送节点故障无法正常获取数据,这类问题依靠现有MPI程序无法有效解决,因此超时机制的引入在保证超大规模并行计算过程中尤为重要。
[0006]
技术实现思路

[0007]为解决超大规模并行计算进程管理,以及计算进程意外宕机假死等情况带来的任务失败问题,本专利技术提出一种基于MPI三层拓扑结构的超时机制管理模块,根据计算进程状态断开无效MPI通信,将失败任务重新分配正常计算节点,保证整体并行计算任务能够顺利完成。
[0008]本专利技术的技术方案为:一种基于MPI三层拓扑结构的超时机制管理模块,包括总调度模块、二级调度模块、总调度超时管理模块和二级调度超时管理模块;所述总调度模块设有一个总调度进程、二级调度模块设有N个二级调度进程,二级调度进程设有N*N个工作进程模块,N为正整数,*为乘积符号,总调度模块进程号为0;所述二级调度模块负责接收总调度模块分块计算资料,管理其下N个所述工作进程的计算任务分配;所述二级调度模块将其下N个所述工作进程注册到所述二级调度超时机制管理模块,发送计算任务后监控工作进程状态,判断是否超时;总调度超时机制模块通过MPI异步接收的方式,按设置的超时时间定期查询二级调度进程是否上送N个工作进程计算结果的汇总数据,二级调度超时机制模块通过MPI异步接收的方式,按设置的超时时间定期查询其下子N个子工作进程是否上送计算结果;二级调度超时机制管理模块若在设置的超时时间内没有获得某子工作进程计算
结果,则上述二级调度进程取消与该子工作进程的MPI通信,并将此次使用的计算资料重新加入计算资料集合,等待发送给其他完成计算任务的子工作进程;总调度超时机制管理模块若在设置的超时时间内没有获得某二级调度进程的N个计算结果汇总数据,则上述总调度进程取消与该二级调度进程的MPI通信,将该二级调度进程计算资料分块未完成部分平均划分,通过MPI发送给其他正常的二级调度进程,最后在超时机制管理模块中注销所述二级调度进程。
[0009]本专利技术的优点和积极效果在于:本专利技术通过三层MPI拓扑结构执行千万级并行计算任务时,可更均衡地分摊MPI通信压力,如2500万进程,总调度进程和二级调度进程只需最多同时与5000个节点保持通信,消耗算力的工作进程节点只需和一个父二级调度进程保持通信;超时机制管理模块可大大提高超大规模并行计算任务的容错率,部分计算进程节点的意外宕机或假死,会将其未完成的任务分配到正常节点,以保证整体并行计算任务正常进行。
具体实施方式
[0010]三层MPI拓扑结构从上至下分别为总调度模块层,二级调度模块层和工作进程模块层。总调度模块层进程数为1,且进程中带有超时机制管理模块;二级调度模块层进程数为N,且进程中带有超时机制管理模块;工作进程模块层进程数为N*N,即每个二级调度进程管理N个工作进程。系统总进程数为1+N+N*N。
[0011]设二级调度模块进程数为3000,工作进程模块进程数为900万(3000*3000),则MPI总进程数为9003001,二级调度进程的超时机制管理模块超时时间为3分钟,总调度模块的超时机制管理模块超时时间为30分钟。
[0012]本实施例具体实现方法,包括以下步骤:总调度进程MPI进程号为0,二级调度模块进程数为3000,MPI进程编号为1~3000,总调度进程启动后将数据或文件划分为3000份,设置本进程的超时机制管理模块超时时间为30分钟,根据二级调度模块MPI进程号1~3000,调用MPI异步接收信令,注册MPI接收连接到超时机制管理模块,计时器等待二级调度进程完成信令接收。
[0013]每个二级调度进程负责管理3000个子工作进程,在其初始化过程中,设置本进程的超时机制管理模块超时时间为3分钟,根据其下子工作进程的MPI进程号,调用MPI异步接收信令,注册MPI接收连接到超时机制管理模块,计时器等待子工作进程完成计算接收结果。
[0014]子工作进程号为MPI程序按顺序生成,在本实施例中,设二级调度进程号为X(1<=X<=3000),则其管理的子工作进程号Y的范围为3000*X<Y<=3000*(X+1)。
[0015]每个二级调度进程分配到的计算任务数量为10000个,二级调度进程管理该任务集合,按顺序发送到子工作进程,即第一次从集合中取出3000个任务发送给全部子工作进程,之后每当有子工作进程返回计算结果,则从集合新取出一个任务发送给该子工作进程。
[0016]当二级调度进程收到二级调度超时机制管理模块计算超时通知,根据超时的子工作进程号,得到为正常完成的计算任务,将此任务重新放回计算任务集合,等待发送给下一个正常完成计算的子工作进程。
[0017]总调度超时机制管理模块超时时间为30分钟,超时机制管理模块在总调度进程发
起MPI异步接收通信后,记录二级调度进程号1~3000,以及每个二级调度进程分配的计算资料分块信息。之后上述模块以定时轮询的方式,检测MPI异步接收通信是否收到二级调度进程汇总数据,若超时时间内正常收到,则重置该二级调度进程超时计时,并更新计算资料分块已完成信息;若30分钟未收到某二级调度进程汇总结果,则认定该二级调度进程为不可用状态,并将其计算资料分块未完成部分发送给其他正常的二级调度进程。
[0018]二级调度超时机制管理模块超时时间为3分钟,在二级调度进程发起MPI异步接收通信后,记录全部子工作进程号,以及发送的资料在计算资料集合中的序号。之后上述模块以定时轮询的方式,检测MPI异步接收通信是否收到子工作进程计算结果,若超时时间内正常收到,则重置该子工作进程超时计时,并从计算资料集合按顺序取下一个计算任务发送给该子工作进程;若3分钟未收到某子工作进程汇总结果,则认定该子工作进程为不可用状态,并将该为完成的计算任务放回计算资料集合,等待发送给其他正常完成计算任务的子工作进程。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于MPI三层拓扑结构的超时机制管理模块,包括总调度模块、二级调度模块、总调度超时管理模块和二级调度超时管理模块;其特征是:所述总调度模块设有一个总调度进程、二级调度模块设有N个二级调度进程,二级调度进程设有N*N个工作进程模块,N为正整数,*为乘积符号,总调度模块进程号为0;所述二级调度模块负责接收总调度模块分块计算资料,管理其下N个所述工作进程的计算任务分配;所述二级调度模块将其下N个所述工作进程注册到所述二级调度超时机制管理模块,发送计算任务后监控工作进程状态,判断是否超时;总调度超时机制模块通过MPI异步接收的方式,按设置的超时时间定期查询二级调度进程是否上送N个工作进程计算结果的汇总...

【专利技术属性】
技术研发人员:王顺志刘啸森刘凤永
申请(专利权)人:青岛超蓝生物信息科技有限公司
类型:发明
国别省市:

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

1