本发明专利技术提供一种跨节点并行计算任务局部进程迁移的方法,包括以下步骤:步骤1,计算任务的启动配置脚本的配置过程;步骤2,计算任务容器化部署过程;步骤3,容器运行时迁移过程。本发明专利技术实现MPI并行计算任务的容器化部署和单容器的跨节点迁移,相比于全部进程迁移,通过单容器实现局部进程迁移的方式,引入的存储开销和检查点开销更小,同时可以保持计算任务整体不中断运行,更加灵活的支撑容错、负载均衡、弹性调度等场景。
【技术实现步骤摘要】
本专利技术属于进程迁移,具体涉及一种跨节点并行计算任务局部进程迁移的方法。
技术介绍
1、目前,高性能计算领域的调度大多以静态资源分配为主,计算任务运行前申请一定数量的资源,运行期间所见资源数量不可变更,由于不同工作负载对资源的需求各有不同,造成一定程度的资源闲置。计算任务迁移可以帮助实现资源弹性调度,更加有效充分的利用计算资源。
2、现有技术中,计算任务迁移时,需要计算任务的全部进程迁移,不仅迁移时系统开销较高,而且,在进行计算任务迁移时,需要中断整体的计算任务,降低计算任务的执行效率和体验。
技术实现思路
1、针对现有技术存在的缺陷,本专利技术提供一种跨节点并行计算任务局部进程迁移的方法,可有效解决上述问题。
2、本专利技术采用的技术方案如下:
3、本专利技术提供一种跨节点并行计算任务局部进程迁移的方法,包括以下步骤:
4、步骤1,计算任务的启动配置脚本的配置过程:
5、配置所述计算任务的启动配置脚本的信息,包括计算节点列表、容器镜像、单个容器对应的进程数量以及计算任务并行运行需要的进程总数量n;
6、步骤2,计算任务容器化部署过程:
7、步骤2.1,获得容器网络的网关地址和网络地址区间;根据所述网关地址和和所述网络地址区间,构建得到容器虚拟网络;
8、步骤2.2,启动计算任务的启动配置脚本,根据单个容器对应的进程数量以及计算任务并行运行需要的进程总数量n,得到需要的容器总数量m;</p>9、基于所述容器镜像,创建m个容器;从所述计算节点列表中选择执行本次计算任务所需的m个计算节点,向每个选择到的计算节点中部署一个容器,并向所述容器内分配对应数量的进程;
10、步骤2.3,对每个创建的容器进行初始化,分配属于所述网络地址区间的容器网络地址,使m个容器成为所述容器虚拟网络的网络节点,具有网络拓扑结构,基于所述容器虚拟网络,m个容器之间可进行通信;
11、步骤2.4,将每个计算节点的输入和输出文件路径挂载到对应容器中,启动各个容器,各个计算节点的进程在对应容器内并行运行,将进程间通信转化为容器间基于容器虚拟网络的通信,由此实现计算任务跨节点并行运行;
12、步骤3,容器运行时迁移过程:
13、步骤3.1,当容器运行时迁移模块监听到容器迁移信号时,保存被迁移容器运行时完整状态;选择目标计算节点,将所述被迁移容器运行时完整状态传输到所述目标计算节点;
14、步骤3.2,在目标计算节点初始化创建并启动新容器,配置新容器的容器网络地址与被迁移容器的容器网络地址相同,并且,将所述被迁移容器运行时完整状态配置给所述新容器,使所述新容器的容器状态,与被迁移容器完全相同,因此,使所述新容器恢复到所述被迁移容器的运行时状态,运行所述新容器。
15、优选的,步骤2.4之后,还包括:
16、步骤2.5,计算任务运行状态监控过程:
17、在各个计算节点的容器并行运行时,实时监控各个容器的运行状态,以及,实时监控每个容器内运行的进程的状态。
18、优选的,步骤2.4之后,还包括:
19、步骤2.6,计算资源监控过程:
20、在各个计算节点的容器并行运行时,对各个计算节点的节点状态进行监控。
21、优选的,步骤2.4之后,还包括:
22、步骤2.7,日志收集过程:
23、在各个计算节点的容器并行运行时,收集各个容器的运行日志,包括容器输入信息和容器输出信息。
24、优选的,步骤3.1中,当容器运行时迁移模块监听到容器迁移指令时,保存被迁移容器运行时完整状态,选择目标计算节点,将所述被迁移容器运行时完整状态传输到所述目标计算节点,具体为:
25、步骤3.1.1,预定义容器的检查点生成策略;
26、步骤3.1.2,当容器运行时迁移模块监听到容器迁移指令时,根据预定义的检查点生成策略,生成每个容器的状态检查点信息,包括:容器运行时状态、内存状态、网络状态和文件系统状态,由此形成容器运行时完整状态,并保存到持久化存储中;
27、步骤3.1.3,容器运行时迁移模块将持久化存储中的被迁移容器运行时完整状态传输到所述目标计算节点。
28、优选的,步骤3.2之后,还包括:
29、步骤3.3,迁移验证过程:
30、在完成容器迁移后,验证在目标计算节点的新容器是否运行正常。
31、本专利技术还提供一种跨节点并行计算任务局部进程迁移的系统,包括:配置文件、计算任务容器化部署模块和容器运行时迁移模块;
32、所述配置文件,为计算任务的启动配置脚本,包括计算节点列表、容器镜像、单个容器对应的进程数量以及计算任务并行运行需要的进程总数量n;
33、所述计算任务容器化部署模块,包括:
34、容器虚拟网络构建子模块,用于获得容器网络的网关地址和网络地址区间;根据所述网关地址和和所述网络地址区间,构建得到容器虚拟网络;
35、容器资源分配子模块,用于根据单个容器对应的进程数量以及计算任务并行运行需要的进程总数量n,得到需要的容器总数量m;基于所述容器镜像,创建m个容器;从所述计算节点列表中选择执行本次计算任务所需的m个计算节点,向每个选择到的计算节点中部署一个容器,并向所述容器内分配对应数量的进程;
36、容器初始化子模块,用于对每个计算节点部署的容器进行初始化,分配属于所述网络地址区间的容器网络地址,使m个容器成为所述容器虚拟网络的网络节点,具有网络拓扑结构,基于所述容器虚拟网络,m个容器之间可进行通信;将每个计算节点的输入和输出文件路径挂载到对应容器中,启动各个容器,各个计算节点的进程在对应容器内并行运行,将进程间通信转化为容器间基于容器虚拟网络的通信,由此实现计算任务跨节点并行运行;
37、所述容器运行时迁移模块包括:
38、迁移信号接收子模块,用于接收容器迁移信号;
39、检查点策略执行子模块,用于预定义容器的检查点生成策略;根据预定义的检查点生成策略,生成每个容器的状态检查点信息,包括:容器运行时状态、内存状态、网络状态和文件系统状态,由此形成容器运行时完整状态;
40、运行时状态保存子模块,用于保存所述检查点策略执行子模块获得的容器运行时完整状态;
41、迁移数据传输子模块,用于选择目标计算节点,将所述被迁移容器运行时完整状态传输到所述目标计算节点;
42、运行时状态恢复子模块,用于在目标计算节点初始化创建并启动新容器,配置新容器的容器网络地址与被迁移容器的容器网络地址相同,并且,将所述被迁移容器运行时完整状态配置给所述新容器,使所述新容器的容器状态,与被迁移容器完全相同,因此,使所述新容器恢复到所述被迁移容器的运行时状态,运行所述新容器;
43、迁移验证子模块,用于在完成容器本文档来自技高网
...
【技术保护点】
1.一种跨节点并行计算任务局部进程迁移的方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种跨节点并行计算任务局部进程迁移的方法,其特征在于,步骤2.4之后,还包括:
3.根据权利要求1所述的一种跨节点并行计算任务局部进程迁移的方法,其特征在于,步骤2.4之后,还包括:
4.根据权利要求1所述的一种跨节点并行计算任务局部进程迁移的方法,其特征在于,步骤2.4之后,还包括:
5.根据权利要求1所述的一种跨节点并行计算任务局部进程迁移的方法,其特征在于,步骤3.1中,当容器运行时迁移模块监听到容器迁移指令时,保存被迁移容器运行时完整状态,选择目标计算节点,将所述被迁移容器运行时完整状态传输到所述目标计算节点,具体为:
6.根据权利要求1所述的一种跨节点并行计算任务局部进程迁移的方法,其特征在于,步骤3.2之后,还包括:
7.一种跨节点并行计算任务局部进程迁移的系统,其特征在于,包括:配置文件、计算任务容器化部署模块和容器运行时迁移模块;
8.根据权利要求7所述的一种跨节点并行计算任务局部进程迁移的系统,其特征在于,所述计算任务容器化部署模块还包括:
...
【技术特征摘要】
1.一种跨节点并行计算任务局部进程迁移的方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种跨节点并行计算任务局部进程迁移的方法,其特征在于,步骤2.4之后,还包括:
3.根据权利要求1所述的一种跨节点并行计算任务局部进程迁移的方法,其特征在于,步骤2.4之后,还包括:
4.根据权利要求1所述的一种跨节点并行计算任务局部进程迁移的方法,其特征在于,步骤2.4之后,还包括:
5.根据权利要求1所述的一种跨节点并行计算任务局部进程迁移的方法,其特征在于,步骤3.1中,...
【专利技术属性】
技术研发人员:王小宁,闫晓婷,卢莎莎,赵一宁,肖海力,
申请(专利权)人:中国科学院计算机网络信息中心,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。