适用于多种计算框架的资源调度方法及系统与流程

文档序号:19943020发布日期:2020-02-14 23:26阅读:143来源:国知局
适用于多种计算框架的资源调度方法及系统与流程

本发明涉及分布式计算领域,具体地,涉及一种适用于多种计算框架的资源调度方法及系统。



背景技术:

在高性能计算集群中,越来越多的用户的计算环境变的越来越复杂,不同的操作系统,不同的版本号,不同的mpi类型与版本,使得计算环境越来越难以维护。同时越来越多的用户更倾向于将传统的高性能集群转变成一个综合计算的集群,不仅仅是mpi计算框架,还有如对其他计算框架的支持,例如大数据分析计算框架hadoop,spark,storm等,以及对机器学习和深度学习的支持如tensorflow,caffe,paddlepaddle等。

专利文献109933433a公开了一种gpu资源调度系统及其调度方法,包括一gpu总集合,所述gpu总集合包括多个gpu节点;一gpu调用单元,所述gpu调用单元通信地连接所述gpu总集合,并调用所述gpu节点以形成一gpu子集合;以及一资源管理单元,所述资源管理单元通信地连接所述gpu总集合和所述gpu调用单元,并调用所述gpu节点以形成一gpu调度子集合,其中所述gpu调用单元监控所述gpu节点的调用信息,所述资源度量单元测量未调用状态的所述gpu并根据用户的资源请求以形成所述gpu调度子集合。该专利在支持多种计算框架上仍有待完善的空间。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种适用于多种计算框架的资源调度方法及系统。

根据本发明提供的一种适用于多种计算框架的资源调度方法,包括:计算任务管理步骤:进行插件化任务的注册、打包;作业模型编排及引擎步骤:基于打包后的插件,面向不同的业务进行流程编排,并提供基于镜像的流程的解析引擎功能;统一资源调度步骤:对各个计算节点的计算资源进行感知,并与不同的计算任务进行资源建模,然后根据相应的策略,并结合编排好的流程,调度相应的计算节点,获取统一资源调度控制信息;所述统一资源调度控制信息控制统一资源调度行为。

优选地,计算任务管理步骤包括:上传步骤:根据计算任务信息、计算任务依赖文件信息,将计算任务及计算任务依赖文件上传至服务器中,获取计算任务结果信息、计算任务依赖文件结果信息;软件版本管理步骤:根据计算任务上传结果信息、计算任务依赖文件上传结果信息,对用户上传的计算任务进行版本标注及管理,获取计算任务标注管理结果信息。

优选地,计算任务管理步骤还包括:计算框架版本管理步骤:建立计算任务版本与依赖的计算框架版本之间的映射关系;容器化打包步骤:将基于不同计算框架的不同版本的计算任务分别进行容器化打包,生成计算任务版本唯一、计算框架版本唯一的计算任务镜像,获取计算任务镜像结果信息。

优选地,所述作业模型编排及引擎步骤包括:镜像节点及接口展现步骤:根据计算任务镜像结果信息,以镜像为节点,计算任务为核心进行展示,可视化提取计算任务的输入、输出参数作为镜像的i/o参数,并标明i/o参数的名称属性、类别属性、个数属性;镜像流程业务编排步骤:以镜像为节点,依据实际生产环境的业务流程,通过连线来标明各个任务镜像之间的前后依赖关系,并标明各个镜像的执行先后次序,支持顺序结构、分支结构、合并结构;镜像流程模型引擎步骤:对镜像流程模型进行解析,识别模型中的各个镜像依赖关系属性、参数属性,并通过调用资源调度接口,依次将镜像调度到不同的计算节点中运行。

优选地,还包括:异构平台统一感知步骤:统一感知不同硬件平台、不同操作步骤的计算资源(包括:cpu、mem、disk、net等资源),并匹配镜像的不同资源需求;异构计算资源统一感知步骤:统一感知显卡计算资源(包括:nvidia、amd等显卡计算资源;),并提供感知接口定制接口单元,支持国产gpu的感知的扩展;计算资源的穿透访问步骤:计算任务穿透容器对物理资源进行访问,将基于容器的设备(包括:cpu设备、mem设备、disk设备、net设备、gpu设备)虚拟化;支持传统的mpi作业,通过容器和mpi作业管理插件实现对大规模并行作业的调度,启动、运行、统计、监控、挂起、迁移、断点运行等功能;

多策略调度步骤:基于容器镜像调度的资源(包括:cpu、mem等资源)的负载与优先调度,支持基于容器镜像的gpu特定资源调度;

容器镜像混合调度步骤:在同一集群环境中,多种异构计算框架同时运行,保持各个计算框架之间不冲突;保证各个计算任务的执行的正确性;支持大数据计算框架mapreduce,支持主流流式计算框架spark、storm等;

异常容错调度步骤:实时感知容器镜像健康状态,在发现容器异常的情况下,根据调度策略,在其他健康节点中进行容错调度。

根据本发明提供的一种适用于多种计算框架的资源调度系统,包括:计算任务管理模块:进行插件化任务的注册、打包;作业模型编排及引擎模块:基于打包后的插件,面向不同的业务进行流程编排,并提供基于镜像的流程的解析引擎功能;统一资源调度模块:对各个计算节点的计算资源进行感知,并与不同的计算任务进行资源建模,然后根据相应的策略,并结合编排好的流程,调度相应的计算节点,获取统一资源调度控制信息;所述统一资源调度控制信息控制统一资源调度行为。

优选地,计算任务管理模块包括:上传模块:根据计算任务信息、计算任务依赖文件信息,将计算任务及计算任务依赖文件上传至服务器中,获取计算任务结果信息、计算任务依赖文件结果信息;软件版本管理模块:根据计算任务上传结果信息、计算任务依赖文件上传结果信息,对用户上传的计算任务进行版本标注及管理,获取计算任务标注管理结果信息。

优选地,计算任务管理模块还包括:计算框架版本管理模块:建立计算任务版本与依赖的计算框架版本之间的映射关系;容器化打包模块:将基于不同计算框架的不同版本的计算任务分别进行容器化打包,生成计算任务版本唯一、计算框架版本唯一的计算任务镜像,获取计算任务镜像结果信息。

优选地,所述作业模型编排及引擎模块包括:镜像节点及接口展现模块:根据计算任务镜像结果信息,以镜像为节点,计算任务为核心进行展示,可视化提取计算任务的输入、输出参数作为镜像的i/o参数,并标明i/o参数的名称属性、类别属性、个数属性;镜像流程业务编排模块:以镜像为节点,依据实际生产环境的业务流程,通过连线来标明各个任务镜像之间的前后依赖关系,并标明各个镜像的执行先后次序,支持顺序结构、分支结构、合并结构;镜像流程模型引擎模块:对镜像流程模型进行解析,识别模型中的各个镜像依赖关系属性、参数属性,并通过调用资源调度接口,依次将镜像调度到不同的计算节点中运行。

优选地,还包括:异构平台统一感知模块:统一感知不同硬件平台、不同操作模块的计算资源(包括:cpu、mem、disk、net等资源),并匹配镜像的不同资源需求;异构计算资源统一感知模块:统一感知显卡计算资源(包括:nvidia、amd等显卡计算资源;),并提供感知接口定制接口单元,支持国产gpu的感知的扩展;计算资源的穿透访问模块:计算任务穿透容器对物理资源进行访问,将基于容器的设备(包括:cpu设备、mem设备、disk设备、net设备、gpu设备)虚拟化;支持传统的mpi作业,通过容器和mpi作业管理插件实现对大规模并行作业的调度,启动、运行、统计、监控、挂起、迁移、断点运行等功能;

多策略调度模块:基于容器镜像调度的资源(包括:cpu、mem等资源)的负载与优先调度,支持基于容器镜像的gpu特定资源调度;

容器镜像混合调度模块:在同一集群环境中,多种异构计算框架同时运行,保持各个计算框架之间不冲突;保证各个计算任务的执行的正确性;支持大数据计算框架mapreduce,支持主流流式计算框架spark、storm等;

异常容错调度模块:实时感知容器镜像健康状态,在发现容器异常的情况下,根据调度策略,在其他健康节点中进行容错调度。

与现有技术相比,本发明具有如下的有益效果:

1、本发明针对目前主流的mpi并行计算库,可以提供针对不同操作系统,不同mpi厂商,不同版本的多种模板组合。通过这种组合,可以提供更加灵活的并行计算环境环境,并且避免了在非容器化环境时各不同mpi库和版本兼容性问题;

2、本发明能够使得计算任务容器化,从而使计算任务运行在一个完全隔离的环境中,运行更安全。同时,也可以根据计算任务对资源的需求来严格限制其对资源的使用,从而保证系统资源的合理分配;

3、本发明能够使得传统的高性能作业的很多高级功能更容易实现,例如作业的挂起,迁移等,作业所使用的资源可以更好的进行隔离,释放,作业也更容恢复;

4、本发明能够使得复杂多变的计算环境可以得到更好的管理和运维,并且有效保证了隔离性。对于很多研究人员来说,自研的计算环境和模型可以直接运行起来,而无需复杂的部署过程,同时可以实时进行更改和更新;

5、本发明对于多种异构的计算框架,增加了资源管理与调度以及作业运行机制的通用性,高性能计算系统从传统单一的高性能计算框架的支持(例如mpi等)过度到对主流计算框架的支持,例如mpi,hadoop,spark,storm,tensorflow等。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明的方法流程示意图。

图2为本发明的系统框架示意图。

图3为本发明实施例中的传统计算任务运行到容器作业运行的转变示意图。

图4为本发明实施例中的基于容器的支持多种计算框架的资源调度系统示意图。

图5为本发明实施例中的基于容器的计算任务的调度过程示意图。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

根据本发明提供的一种适用于多种计算框架的资源调度方法,包括:计算任务管理步骤:进行插件化任务的注册、打包;作业模型编排及引擎步骤:基于打包后的插件,面向不同的业务进行流程编排,并提供基于镜像的流程的解析引擎功能;统一资源调度步骤:对各个计算节点的计算资源进行感知,并与不同的计算任务进行资源建模,然后根据相应的策略,并结合编排好的流程,调度相应的计算节点,获取统一资源调度控制信息;所述统一资源调度控制信息控制统一资源调度行为。

优选地,计算任务管理步骤包括:上传步骤:根据计算任务信息、计算任务依赖文件信息,将计算任务及计算任务依赖文件上传至服务器中,获取计算任务结果信息、计算任务依赖文件结果信息;软件版本管理步骤:根据计算任务上传结果信息、计算任务依赖文件上传结果信息,对用户上传的计算任务进行版本标注及管理,获取计算任务标注管理结果信息。

优选地,计算任务管理步骤还包括:计算框架版本管理步骤:建立计算任务版本与依赖的计算框架版本之间的映射关系;容器化打包步骤:将基于不同计算框架的不同版本的计算任务分别进行容器化打包,生成计算任务版本唯一、计算框架版本唯一的计算任务镜像,获取计算任务镜像结果信息。

优选地,所述作业模型编排及引擎步骤包括:镜像节点及接口展现步骤:根据计算任务镜像结果信息,以镜像为节点,计算任务为核心进行展示,可视化提取计算任务的输入、输出参数作为镜像的i/o参数,并标明i/o参数的名称属性、类别属性、个数属性;镜像流程业务编排步骤:以镜像为节点,依据实际生产环境的业务流程,通过连线来标明各个任务镜像之间的前后依赖关系,并标明各个镜像的执行先后次序,支持顺序结构、分支结构、合并结构;镜像流程模型引擎步骤:对镜像流程模型进行解析,识别模型中的各个镜像依赖关系属性、参数属性,并通过调用资源调度接口,依次将镜像调度到不同的计算节点中运行。

优选地,还包括:异构平台统一感知步骤:统一感知不同硬件平台、不同操作步骤的计算资源(包括:cpu、mem、disk、net等资源),并匹配镜像的不同资源需求;异构计算资源统一感知步骤:统一感知显卡计算资源(包括:nvidia、amd等显卡计算资源;),并提供感知接口定制接口单元,支持国产gpu的感知的扩展;计算资源的穿透访问步骤:计算任务穿透容器对物理资源进行访问,将基于容器的设备(包括:cpu设备、mem设备、disk设备、net设备、gpu设备)虚拟化;支持传统的mpi作业,通过容器和mpi作业管理插件实现对大规模并行作业的调度,启动、运行、统计、监控、挂起、迁移、断点运行等功能;

多策略调度步骤:基于容器镜像调度的资源(包括:cpu、mem等资源)的负载与优先调度,支持基于容器镜像的gpu特定资源调度;

容器镜像混合调度步骤:在同一集群环境中,多种异构计算框架同时运行,保持各个计算框架之间不冲突;保证各个计算任务的执行的正确性;支持大数据计算框架mapreduce,支持主流流式计算框架spark、storm等;

异常容错调度步骤:实时感知容器镜像健康状态,在发现容器异常的情况下,根据调度策略,在其他健康节点中进行容错调度。

根据本发明提供的一种适用于多种计算框架的资源调度系统,包括:计算任务管理模块:进行插件化任务的注册、打包;作业模型编排及引擎模块:基于打包后的插件,面向不同的业务进行流程编排,并提供基于镜像的流程的解析引擎功能;统一资源调度模块:对各个计算节点的计算资源进行感知,并与不同的计算任务进行资源建模,然后根据相应的策略,并结合编排好的流程,调度相应的计算节点,获取统一资源调度控制信息;所述统一资源调度控制信息控制统一资源调度行为。

优选地,计算任务管理模块包括:上传模块:根据计算任务信息、计算任务依赖文件信息,将计算任务及计算任务依赖文件上传至服务器中,获取计算任务结果信息、计算任务依赖文件结果信息;软件版本管理模块:根据计算任务上传结果信息、计算任务依赖文件上传结果信息,对用户上传的计算任务进行版本标注及管理,获取计算任务标注管理结果信息。

优选地,计算任务管理模块还包括:计算框架版本管理模块:建立计算任务版本与依赖的计算框架版本之间的映射关系;容器化打包模块:将基于不同计算框架的不同版本的计算任务分别进行容器化打包,生成计算任务版本唯一、计算框架版本唯一的计算任务镜像,获取计算任务镜像结果信息。

优选地,所述作业模型编排及引擎模块包括:镜像节点及接口展现模块:根据计算任务镜像结果信息,以镜像为节点,计算任务为核心进行展示,可视化提取计算任务的输入、输出参数作为镜像的i/o参数,并标明i/o参数的名称属性、类别属性、个数属性;镜像流程业务编排模块:以镜像为节点,依据实际生产环境的业务流程,通过连线来标明各个任务镜像之间的前后依赖关系,并标明各个镜像的执行先后次序,支持顺序结构、分支结构、合并结构;镜像流程模型引擎模块:对镜像流程模型进行解析,识别模型中的各个镜像依赖关系属性、参数属性,并通过调用资源调度接口,依次将镜像调度到不同的计算节点中运行。

优选地,还包括:异构平台统一感知模块:统一感知不同硬件平台、不同操作模块的计算资源(包括:cpu、mem、disk、net等资源),并匹配镜像的不同资源需求;异构计算资源统一感知模块:统一感知显卡计算资源(包括:nvidia、amd等显卡计算资源;),并提供感知接口定制接口单元,支持国产gpu的感知的扩展;计算资源的穿透访问模块:计算任务穿透容器对物理资源进行访问,将基于容器的设备(包括:cpu设备、mem设备、disk设备、net设备、gpu设备)虚拟化;支持传统的mpi作业,通过容器和mpi作业管理插件实现对大规模并行作业的调度,启动、运行、统计、监控、挂起、迁移、断点运行等功能;

多策略调度模块:基于容器镜像调度的资源(包括:cpu、mem等资源)的负载与优先调度,支持基于容器镜像的gpu特定资源调度;

容器镜像混合调度模块:在同一集群环境中,多种异构计算框架同时运行,保持各个计算框架之间不冲突;保证各个计算任务的执行的正确性;支持大数据计算框架mapreduce,支持主流流式计算框架spark、storm等;

异常容错调度模块:实时感知容器镜像健康状态,在发现容器异常的情况下,根据调度策略,在其他健康节点中进行容错调度。

具体地,在一个实施例中,在传统高性能计算资源调度系统的基础之上,一种适用于多种计算框架的资源调度系统通过引入容器技术,实现计算任务容器化,简化计算环境的复杂度,增加整个集群架构的通用性以及扩展性。本系统软件模块主要包括异构框架的计算任务管理模块、基于容器化计算任务镜像的作业模型编排及引擎模块、基于容器镜像的统一资源调度模块和基于容器的计算任务二次开发插件模块,具体模块功能定义如下:

1、异构框架的计算任务管理模块

异构框架的计算任务管理模块主要是对基于异构计算框架的计算任务的注册和版本管理,以及容器化打包等功能。

a、提供可视化的计算任务的注册管理功能,支持用户通过web页面将计算任务及相关依赖文件的上传至服务器中,并支持计算任务的增删改查等功能;

b、提供计算任务的软件版本管理功能,系统对用户上传的计算任务进行版本标注及管理功能,允许用户在发起计算作业的时候,选择不同版本的计算任务,便于用户在对相同计算任务的参数优化的计算结果的对比;

c、提供计算任务依赖的计算框架的版本管理功能,由于不同版本的计算框架的执行效果较大,甚至不同版本的计算框架的接口存在差别,有可能导致计算任务的运行失败,所以建立计算任务版本与依赖的计算框架版本之间的映射关系,保障计算任务不同版本或者平台升级改造时,原有的计算任务仍然可以正常运行;

d、提供计算任务的容器化打包功能,支持将基于不同计算框架的不同版本的计算任务分别进行容器化打包,生成计算任务版本唯一、计算框架版本唯一的的计算任务镜像,支撑计算任务在不同计算节点上的快速部署、运行;支持多个关联任务的统一容器化打包。

2、基于容器化计算任务镜像的作业模型编排及引擎模块

a、提供可视化的镜像节点及接口展现功能,支持以镜像为节点,计算任务为核心的展现方式,可视化提取计算任务的输入、输出参数作为镜像的i/o参数,并标明i/o参数的名称、类别、个数等属性;

b、提供镜像流程的业务编排功能,支持以镜像为节点,依据实际生产环境的业务流程,通过连线来标明各个任务镜像之间的前后依赖关系,并标明各个镜像的执行先后次序,支持顺序、分支、合并等结构;

c、提供镜像流程模型的引擎功能,支持对镜像流程模型进行解析,识别模型中的各个镜像依赖关系、参数属性等,并能通过调用资源调度接口,依次将镜像调度到不同的计算节点中运行。

3、基于容器镜像的统一资源调度模块

a、提供异构平台的统一感知功能,支持不同硬件平台、不同操作系统的计算资源的统一感知,包括cpu、mem、disk、net等资源,并能够匹配镜像的不同资源需求;

b、提供异构计算资源的统一感知功能,支持对nvidia、amd等显卡计算资源的感知,并提供感知接口定制接口模块,支持国产gpu的感知的扩展;

c、提供基于容器的计算资源的穿透访问,支持计算任务能够穿透容器实现对物理资源的访问,支持基于容器的cpu、mem、disk、net、gpu等设备的虚拟化;支持传统的mpi作业,通过容器和mpi作业管理插件实现对大规模并行作业的调度,启动、运行、统计、监控、挂起、迁移、断点运行等功能。

d、提供基于容器镜像的多策略调度功能,支持基于容器镜像调度的cpu、mem等资源的负载与优先调度,支持基于容器镜像的gpu等特定资源的调度;

e、提供基于异构计算框架的容器镜像的混合调度,支持在同一集群环境中,实现多种异构计算框架的同时运行,且各个计算框架之间不冲突,保证各个计算任务的执行的正确性;支持大数据计算框架mapreduce,支持主流流式计算框架spark、storm等;

f、提供基于容器的异常容错调度,支持对容器镜像健康状态的实时感知,在发现容器异常的情况下,能够根据调度策略,在其他健康节点中进行容错调度。

4、基于容器的计算任务二次开发插件模块:支持在计算框架的基础上,开发针对不同框架的计算任务插件,实现作业的动态扩展与弹性伸缩等功能。

本发明在分布式计算环境中,基于同一计算框架不同版本如不同版本的mpi:mpi-1.2与mpi-2、的计算任务的混合调度;本发明在分布式计算环境中,快速响应mpi、mapreduce、spark、tensorflow等不同计算框架的资源调度需求;本发明在分布式计算环境中,同时响应mpi、mapreduce、spark、tensorflow等异构计算框架的计算任务的混合调度。

本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1