CN116166421A - 分布式训练任务的资源调度方法及其设备 - Google Patents
分布式训练任务的资源调度方法及其设备 Download PDFInfo
- Publication number
- CN116166421A CN116166421A CN202211631237.0A CN202211631237A CN116166421A CN 116166421 A CN116166421 A CN 116166421A CN 202211631237 A CN202211631237 A CN 202211631237A CN 116166421 A CN116166421 A CN 116166421A
- Authority
- CN
- China
- Prior art keywords
- training
- task
- clusters
- cluster
- tasks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种分布式训练任务的资源调度方法、集群资源调度装置、电子设备及计算机可读存储介质。该资源调度方法包括:获取全部训练任务,确定训练任务的优先级,并将训练任务分发至对应的集群中;基于优先级确定集群当前执行的目标训练任务;其中,目标训练任务为集群中未训练的全部训练任务中优先级最高的训练任务;对所有集群进行容器化部署,以获取所有集群中空闲资源量;获取目标训练任务及其需求资源量;采用集群中空闲资源量大于需求资源量且空闲资源量最小的节点,对目标训练任务进行训练。本申请在保证训练任务合理排队的同时,能够提高集群的资源利用率。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种分布式训练任务的资源调度方法、集群资源调度装置、电子设备及计算机可读存储介质。
背景技术
随着深度学习的快速发展,依赖的训练网络模型也日益增大,原始的单机训练已经无法满足训练大规模网络训练速度的要求,因此基于分布式环境进行分布式的多级多卡训练尤为必要。但在一个对外开放的共享集群中,用户会与其他集群用户共享训练资源,以完成各自的训练任务,当用户量增大,会出现集群资源争抢、资源利用率不高、部分资源闲置等现象。
发明内容
本申请提出了一种分布式训练任务的资源调度方法、电子设备及计算机可读存储介质,以解决上述集群中资源量利用率不高的问题。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种分布式训练任务的资源调度方法,该方法包括:
获取全部训练任务,确定训练任务的优先级,并将训练任务分发至对应的集群中;基于优先级确定集群当前执行的目标训练任务;其中,目标训练任务为集群中未训练的全部训练任务中优先级最高的训练任务;对所有集群进行容器化部署,以获取所有集群中空闲资源量;获取目标训练任务及其需求资源量;采用集群中空闲资源量大于需求资源量且空闲资源量最小的节点,对目标训练任务进行训练。
其中,在采用集群中空闲资源量大于需求资源量且空闲资源量最小的节点的步骤之前,调度方法还包括:获取目标训练任务对应的集群的空闲资源量;判断在目标训练任务对应的集群中是否存在空闲资源量大于或等于目标训练任务的需求资源量的节点;若否,则等待目标训练任务对应的集群中释放资源,其中,全部训练任务中未训练且优先级小于目标训练任务优先级的训练任务保持等待。
其中,对所有集群进行容器化部署,以获取所有集群中空闲资源量,包括:在所有集群内部署Kubernete集群;利用Kubernete集群在所有集群的所有节点上创造容器;基于容器获取所有集群中每个节点的空闲资源量。
其中,调度方法还包括:利用容器监测所有集群中的空闲资源量是否发生变化;响应于所有集群中空闲资源量是否发生变化,实时上报变化后的空闲资源量。
其中,在对目标训练任务进行训练的步骤之后,调度方法还包括:确定分配有目标训练任务的其他集群,并对在其他集群中的目标训练任务进行释放。
其中,将训练任务分发至对应的集群中,包括:获取全部训练任务,确定训练任务的任务指定标签;基于任务指定标签将训练任务分发至对应的集群中。
其中,确定分配有目标训练任务的其他集群,包括:基于任务指定标签确定分配有目标训练任务的其他集群。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种集群资源调度装置,该装置包括任务获取模块、任务确定模块、空闲资源获取模块及任务训练模块。
任务获取模块用于获取全部训练任务,确定训练任务的优先级,并将训练任务分发至对应的集群中;任务确定模块用于基于优先级确定集群当前执行的目标训练任务以及获取目标训练任务及其需求资源量;其中,目标训练任务为集群中未训练的全部训练任务中优先级最高的训练任务;空闲资源获取模块用于对所有集群进行容器化部署,以获取所有集群中空闲资源量;任务训练模块用于采用集群中空闲资源量大于需求资源量且空闲资源量最小的节点,对目标训练任务进行训练。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种电子设备,该电子设备包括处理器及与处理器连接的存储器,存储器中存储有程序数据,处理器执行存储器存储的程序数据,以执行实现上述的分布式训练任务的资源调度方法。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种计算机可读存储介质,其内部存储有程序指令,程序指令被执行以实现上述的分布式训练任务的资源调度方法。
本申请的有益效果是:区别于现有技术的情况,本申请通过获取全部的训练任务,并确定训练任务的优先级,将所有训练任务分发至对应的集群中,能够实现多个训练任务的分布式训练,提高训练效率,且本申请在每个集群中基于训练任务的优先级确定当前执行的目标训练任务;其中,目标训练任务为当前集群中未训练的全部训练任务中优先级最高的训练任务,能够保证集群内训练任务合理排队;进一步在确定当前执行的目标训练任务后,获取目标训练任务的需求资源量,在此之前,本申请需要对所有集群进行容器化部署,以获取所有集群中空闲资源量;在获取所有集群中的空闲资源量后,本申请就可以在该集群中采用集群中空闲资源量大于需求资源量且空闲资源量最小的节点,对目标训练任务进行训练,能够提高集群中节点的资源利用率。因此,通过上述方式,本申请可以在保证集群内训练任务合理排队的同时,提高集群中节点的资源利用率。
附图说明
图1是本申请提供的分布式训练任务的资源调度方法第一实施例的流程示意图;
图2是图1中步骤S101的一具体流程示意图;
图3是本申请提供的分布式训练任务的资源调度方法第二实施例的流程示意图;
图4是本申请提供的分布式训练任务的资源调度方法第三实施例的流程示意图;
图5是图1中步骤S103一具体实施方式的流程示意图;
图6是本申请提供的分布式训练任务的资源调度方法第四实施例的流程示意图;
图7是本申请提供的分布式训练任务的资源调度方法的一具体实施方案的流程示意图;
图8是本申请提供的集群资源调度装置一实施例的结构示意图;
图9是本申请电子设备一实施例的结构示意图;
图10是本申请计算机可读存储介质一实施例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着深度学习的快速发展,原始的单机训练已经无法满足训练大规模网络训练速度的要求,因此基于分布式环境进行分布式训练尤为必要。而在一个对外开放的共享集群中,用户会与其他集群用户共享训练资源,以完成各自的训练任务,用户量增大,会出现资源争抢及资源利用率不高的问题。
为了解决上述问题,本申请首先提出一种分布式训练任务的资源调度方法,请参阅图1,图1是本申请提供的分布式训练任务的资源调度方法第一实施例的流程示意图。如图1所示,本实施例的资源调度方法具体包括步骤S101至步骤S105:
步骤S101:获取全部训练任务,确定训练任务的优先级,并将训练任务分发至对应的集群中。
为了保证分布式训练任务的全部训练任务即能合理有效的进行训练,本实施例中的集群资源调度装置一次性获取全部训练任务,并对所有的训练任务进行优先级的排序,确定全部训练任务的优先级,其中确定优先级的方式可以基于训练任务的权重值进行确定,也可以基于训练任务的排队顺序进行确定,本实施例中优先级的确定并不局限于上述方式,在此不作限定。确定全部训练任务的优先级后,就基于训练任务的标签分发至对应的集群中,其中,一个训练任务可以分发至多个集群中。
步骤S102:基于优先级确定集群当前执行的目标训练任务;其中,目标训练任务为集群中未训练的全部训练任务中优先级最高的训练任务。
集群资源调度装置将所有的训练任务都分发至对应的集群后,在存在训练任务的每一个集群内基于训练任务的优先级确定当前集群内优先需执行的目标训练任务,目标训练任务即为当前集群中未训练的全部训练任务中优先级最高的训练任务。
步骤S103:对所有集群进行容器化部署,以获取所有集群中空闲资源量。
在对目标训练任务进行训练之前,本实施例中的集群资源调度装置可以对所有的集群利用Kubernete集群进行容器化部署,从而获取所有集群中的空闲资源量。
步骤S104:获取目标训练任务及其需求资源量。
在确定每一个集群内中优先级最高的目标训练任务后,集群调度装置获取目标训练任务,并获取目标训练任务的需求资源量,例如,目标训练任务需要8个显卡执行训练,则该目标训练任务的需求资源量为8卡。
步骤S105:采用集群中空闲资源量大于需求资源量且空闲资源量最小的节点,对目标训练任务进行训练。
在集群中有多个符合目标训练任务需求资源量的节点可供目标训练任务执行训练时,此时基于步骤S103获取该集群中所有节点的空闲资源量,采用集群中空闲资源量大于需求资源量且空闲资源量最小的节点,对目标训练任务进行训练,例如当前集群中5个节点的空闲资源量分别为[5,4,3,2,1],当前目标训练任务需求资源量为3卡,符合目标训练任务需求资源量的节点为空闲资源量为5、4、3的节点,则选择空闲资源量为3的节点对目标训练任务进行训练。
区别于现有技术的情况,本申请通过获取全部的训练任务,并确定训练任务的优先级,将所有训练任务分发至对应的集群中,能够实现多个训练任务的分布式训练,提高训练效率,且本申请在每个集群中基于训练任务的优先级确定当前执行的目标训练任务;其中,目标训练任务为当前集群中未训练的全部训练任务中优先级最高的训练任务,能够保证集群内训练任务合理排队;进一步在确定当前执行的目标训练任务后,获取目标训练任务的需求资源量,在此之前,本申请需要对所有集群进行容器化部署,以获取所有集群中空闲资源量;在获取所有集群中的空闲资源量后,本申请就可以在该集群中采用集群中空闲资源量大于需求资源量且空闲资源量最小的节点,对目标训练任务进行训练,能够提高集群中节点的资源利用率。因此,通过上述方式,本申请可以在保证集群内训练任务合理排队的同时,提高集群中节点的资源利用率。
基于上述实施例,可选地,将训练任务分发至对应的集群中的方法如图2所示,请参阅图2,图2是图1中步骤S101的一具体流程示意图。本实施例可以通过如图2所示的方法实现步骤S101,具体实施步骤包括步骤S201至步骤S202:
步骤S201:获取全部训练任务,确定训练任务的任务指定标签。
在集群资源调度装置一次性获取全部训练任务后,可以基于训练任务的类型确认训练任务的指定标签。例如若训练任务为图像类型的训练任务则自身训练时指定标签则为图像训练任务,训练任务为语音识别类型的训练任务则自身的指定标定为语音训练任务。
步骤S202:基于任务指定标签将训练任务分发至对应的集群中。
当确认全部任务的指定标签后,将全部训练任务基于自身的指定标定分发至对应的集群中,图像类型的训练任务则分发至图像训练的集群中。
可选地,请参阅图3,图3是本申请提供的分布式训练任务的资源调度方法第二实施例的流程示意图。如图3所示,本实施例的资源调度方法具体包括步骤S301至步骤S306:
步骤S301:获取全部训练任务,确定训练任务的优先级,并将训练任务分发至对应的集群中。
步骤S301与步骤S101一致,不再赘述。
步骤S302:基于优先级确定集群当前执行的目标训练任务;其中,目标训练任务为集群中未训练的全部训练任务中优先级最高的训练任务。
步骤S302与步骤S102一致,不再赘述。
步骤S303:对所有集群进行容器化部署,以获取所有集群中空闲资源量。
步骤S303与步骤S103一致,不再赘述。
步骤S304:获取目标训练任务及其需求资源量。
步骤S304与步骤S104一致,不再赘述。
步骤S305:采用集群中空闲资源量大于需求资源量且空闲资源量最小的节点,对目标训练任务进行训练。
步骤S305与步骤S105一致,不再赘述。
步骤S306:确定分配有目标训练任务的其他集群,并对在其他集群中的标训练任务进行释放。
设目标训练任务为任务一,任务一被分发至多个对应的集群中,在某一个集群中,当任务一为当前集群中优先级最高的训练任务时,则采用该集群中空闲资源量大于需求资源量且空闲资源量最小的节点对任务一进行训练。任务一训练完成后,集群资源调度装置确认分配有任务一的其他集群,此时资源调度装置将在其他集群中的任务一进行释放。
具体地,集群资源调度装置可以基于任务指定标签确定分配有目标训练任务的其他集群。
集群资源调度装置在将任务分发至对应的集群时,可以记录每一个训练任务被分发的集群,若训练任务在分发的集群中的某一个训练完成后,则在其他集群中将目标训练任务立即释放,避免对训练资源造成浪费。
可选地,请参阅图4,图4是本申请提供的分布式训练任务的资源调度方法第三实施例的流程示意图。如图4所示,本实施例的资源调度方法具体包括步骤S401至步骤S408:
步骤S401:获取全部训练任务,确定训练任务的优先级,并将训练任务分发至对应的集群中。
步骤S401与步骤S101一致,不再赘述。
步骤S402:基于优先级确定集群当前执行的目标训练任务;其中,目标训练任务为集群中未训练的全部训练任务中优先级最高的训练任务。
步骤S402与步骤S102一致,不再赘述。
步骤S403:对所有集群进行容器化部署,以获取所有集群中空闲资源量。
步骤S403与步骤S103一致,不再赘述。
步骤S404:获取目标训练任务及其需求资源量。
步骤S404与步骤S104一致,不再赘述。
步骤S405:获取目标训练任务对应的集群的空闲资源量。
在确定每一个集群内中优先级最高的目标训练任务及目标训练任务的需求资源量,在采用集群中空闲资源量大于需求资源量且空闲资源量最小的节点对目标训练任务进行训练时,则可以利用之前部署的Kubernete集群直接获取该目标训练任务对应的集群中所有节点的空闲资源量。
步骤S406:判断在目标训练任务对应的集群是否存在空闲资源量大于或等于目标训练任务的需求资源量的节点。
当集群资源调度装置目标训练任务对应的集群中节点的空闲资源量后,需要判断当前目标训练任务对应的集群中是否存在空闲资源量大于或等于需求资源量的节点。
若目标训练任务对应的集群的不存在空闲资源量大于或等于需求资源量的节点,则转至步骤S407,若目标训练任务对应的集群的存在空闲资源量大于或等于需求资源量的节点,则转至步骤S408。
步骤S407:等待目标训练任务对应的集群释放资源,其中,全部训练任务中未训练且优先级小于目标训练任务优先级的训练任务保持等待。
若目标训练任务对应的集群的不存在空闲资源量大于或等于需求资源量的节点,集群资源调度装置则等待目标训练任务对应的集群中释放资源,直至存在满足目标训练任务的需求资源的集群节点,并且在此之前,全部训练任务中未训练且优先级小于目标训练任务优先级的训练任务保持等待。
步骤S408:采用集群中空闲资源量大于需求资源量且空闲资源量最小的节点,对目标训练任务进行训练。
若目标训练任务对应的集群的存在空闲资源量大于或等于需求资源量的节点,集群资源调度装置则采用集群中空闲资源量大于需求资源量且空闲资源量最小的节点,对目标训练任务进行训练。
例如,目标训练任务的需求资源量为8卡,此时目标训练任务对应的集群中的节点的空闲资源量为[5,4,1,1,0],在该集群节点中,不存在空闲资源量大于或等于8卡的节点,则等待存在空闲资源量大于或等于8卡的节点再对目标训练任务进行训练,优先级低于目标训练任务的训练任务则进行等待。
可选地,请参阅图5,图5是图1中步骤S103一具体实施方式的流程示意图。如图5所示,空闲资源量获取的具体实施步骤包括步骤S501至步骤S503:
步骤S501:在所有集群内部署Kubernete集群。
集群资源调度装置可以在所有的集群中部署Kubernete集群。
其中,Kubernete简称K8s,Kubernete是一个开源的用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效。
步骤S502:利用Kubernete集群在所有集群的所有节点上创造容器。
当所有集群中都部署了Kubernete集群后,集群资源调度装置就可以利用利用Kubernete集群在所有集群的所有节点上创造容器。
步骤S503:基于容器获取所有集群中每个节点的空闲资源量。
集群资源调度装置在创造容器之后,就可以利用容器将集群中每个节点的空闲资源量整合在Kubernete的管理下,并获取所有集群中每个节点的空闲资源量。
在本申请中,为了计算集群中节点间的数据传输和同步、多个训练任务的资源分配、多型号配置的节点资源优化,整合每个集群上单独的计算资源,通过在每个集群部署Kubernete集群,将每个集群中节点的空闲资源量整合在Kubenete的管理下,通过在每个节点上创建容器,将空闲资源量供给单个计算单元,从而实现对空闲资源量的动态分配,也可以进一步加快训练任务的训练速度。
可选地,请参阅图6,图6是本申请提供的分布式训练任务的资源调度方法第四实施例的流程示意图。如图6所示,本实施例的调度方法还包括步骤S601至步骤S602:
步骤S601:利用容器监测所有集群中的空闲资源量是否发生变化。
当某个目标训练任务完成训练后,每个集群中节点的空闲资源量会发生变化,利用Kubernete集群的容器监测所有集群中的空闲资源量是否发生变化。
步骤S602:响应于所有集群中空闲资源量是否发生变化,实时上报变化后的空闲资源量。
集群资源调度装置利用Kubernete集群监测所有集群中的空闲资源量发生变化,则实时上报变化后的空闲资源量,对每个集群中每个节点的空闲资源量进行更新。
在一应用场景中,请参阅图7,图7是本申请提供的分布式训练任务的资源调度方法的一具体实施方案的流程示意图。如图7所示,一次性获取全部训练任务,并确定全部训练任务的优先级,训练任务优先级排序由高到低依次分别为任务1、任务2、任务3、任务4及任务5。
假设共有4个集群,分别为集群A、集群B、集群C及集群D,基于训练任务的指定标签将任务1提交到集群A、B,将任务2提交集群C;将任务3提交到集群A;将任务4提交到集群A、B;将任务5提交到集群B。
设每个训练任务的耗时均相同,在每个集群内对训练任务进行训练时,首先需要确定目标训练任务,目标训练任务为未训练的全部训练任务中优先级最高的训练任务。在第一轮训练中,集群A、B中目标训练任务均为任务1,在集群C中目标训练任务为任务2。
在第一轮训练过程中,对于集群A而言,首先对在集群A、B中挑选空闲资源量大于任务1的需求资源量且空闲资源量最小的节点对目标训练任务1进行训练,若该节点在集群A中,则集群A中的该节点对任务1进行训练,集群B中任务1进行释放,集群B中的目标训练任务为任务4,集群B中则挑选空闲资源量大于任务1的需求资源量且空闲资源量最小的节点对任务4进行训练,集群A中的任务4则进行释放。若该节点在集群B中,则集群B中的该节点对任务1进行训练,集群A中任务1进行释放,集群A中的目标训练任务为任务3,集群A中则挑选空闲资源量大于任务3的需求资源量且空闲资源量最小的节点对任务3进行训练。
对于集群C而言,集群C开始挑选空闲资源量大于任务1的需求资源量且空闲资源量最小的节点对任务2进行训练。
在第一轮训练完成后,若第一轮训练完成任务1、任务4及任务2,则在第二轮训练任务训练时,集群A则开始采用集群中空闲资源量大于需求资源量且空闲资源量最小的节点训练任务3,集群B则开始采用集群中空闲资源量大于需求资源量且空闲资源量最小的节点训练任务5。
若第一轮训练完成任务1、任务3及任务2,则在第二轮训练任务训练时,集群A、B中则开始采用集群中空闲资源量大于需求资源量且空闲资源量最小的节点训练任务4,若该节点在集群A中,集群B中的任务4则进行释放,集群B开始采用集群中空闲资源量大于需求资源量且空闲资源量最小的节点训练任务5;若若该节点在集群B中,则采用集群B对任务4进行训练,集群A中的任务4进行释放,此时,任务5仍然未被训练,则开始第三轮训练,在第三轮训练中采用集群B空闲资源量大于需求资源量且空闲资源量最小的节点对任务5进行训练。
在上述过程中,若不存在集群中空闲资源量大于或等于目标训练任务的节点,则进行等待目标训练任务对应的集群中存在满足目标训练任务的需求资源的集群,再对目标训练任务进行训练,未训练的全部训练任务中处于目标训练任务的优先级后的训练任务也进行等待。
区别于现有技术的情况,本申请通过获取全部的训练任务,并确定训练任务的优先级,将所有训练任务分发至对应的集群中,能够实现多个训练任务的分布式训练,提高训练效率,且本申请在每个集群中基于训练任务的优先级确定当前执行的目标训练任务;其中,目标训练任务为当前集群中未训练的全部训练任务中优先级最高的训练任务,能够保证集群内训练任务合理排队;进一步在确定当前执行的目标训练任务后,获取目标训练任务的需求资源量,在此之前,本申请需要对所有集群进行容器化部署,以获取所有集群中空闲资源量;在获取所有集群中的空闲资源量后,本申请就可以在该集群中采用集群中空闲资源量大于需求资源量且空闲资源量最小的节点,对目标训练任务进行训练,能够提高集群中节点的资源利用率。因此,通过上述方式,本申请可以在保证集群内训练任务合理排队的同时,提高集群中节点的资源利用率。此外,在本申请中是采用集群中空闲资源量大于需求资源量且空闲资源量最小的节点对目标训练任务进行训练,即本申请是为了实现资源优先调满,资源优先调满可以降低集群资源的碎卡率,从而提高集群资源。其次,本申请还在全部集群中部署Kubernete集群,可以有效使用Kubernete集群的大规模集群,提高计算效率。
可选地,本申请进一步提出一种集群资源调度装置,请参阅图8,图8是本申请提供的集群资源调度装置一实施例的结构示意图,该集群资源调度装置100包括任务获取模块10、任务确定模块20、任务训练模块30及空闲资源获取模块40。
任务获取模块10用于获取全部训练任务,确定训练任务的优先级,并将训练任务分发至对应的集群中;任务确定模块20用于基于优先级确定集群当前执行的目标训练任务以及获取目标训练任务及其需求资源量;其中,目标训练任务为集群中未训练的全部训练任务中优先级最高的训练任务;任务训练模块30用于采用集群中空闲资源量大于需求资源量且空闲资源量最小的节点,对目标训练任务进行训练。空闲资源获取模块40用于对所有集群进行容器化部署,以获取所有集群中空闲资源量。
可选地,本申请进一步提出一种电子设备,请参阅图9,图9是本申请电子设备一实施例的结构示意图,该电子设备200包括处理器201及与处理器201连接的存储器202。
处理器201还可以称为CPU(Central Processing Unit,中央处理单元)。处理器201可能是一种集成电路芯片,具有信号的处理能力。处理器201还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器202用于存储处理器201运行所需的程序数据。
处理器201还用于执行存储器202存储的程序数据以实现上述分布式训练任务的资源调度方法。
可选地,本申请进一步提出一种计算机可读存储介质。请参阅图10,图10是本申请计算机可读存储介质一实施例的结构示意图。
本申请实施例的计算机可读存储介质300内部存储有程序指令310,程序指令310被执行以实现上述分布式训练任务的资源调度方法。
其中,程序指令310可以形成程序文件以软件产品的形式存储在上述存储介质中,以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
本实施例计算机可读存储介质300可以是但不局限于U盘、SD卡、PD光驱、移动硬盘、大容量软驱、闪存、多媒体记忆卡、服务器等。
在一个实施例中,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述各方法实施例中的步骤。
另外,上述功能如果以软件功能的形式实现并作为独立产品销售或使用时,可存储在一个移动终端可读取存储介质中,即,本申请还提供一种存储有程序数据的存储装置,所述程序数据能够被执行以实现上述实施例的方法,该存储装置可以为如U盘、光盘、服务器等。也就是说,本申请可以以软件产品的形式体现出来,其包括若干指令用以使得一台智能终端执行各个实施例所述方法的全部或部分步骤。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的机构、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(可以是个人计算机,服务器,网络设备或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
以上所述仅为本申请的实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种分布式训练任务的资源调度方法,其特征在于,包括:
获取全部训练任务,确定所述训练任务的优先级,并将所述训练任务分发至对应的集群中;
基于所述优先级确定所述集群当前执行的目标训练任务;其中,所述目标训练任务为所述集群中未训练的全部所述训练任务中优先级最高的训练任务;
对所有所述集群进行容器化部署,以获取所有所述集群中空闲资源量;
获取所述目标训练任务及其需求资源量;
采用所述集群中空闲资源量大于所述需求资源量且空闲资源量最小的节点,对所述目标训练任务进行训练。
2.根据权利要求1所述的资源调度方法,其特征在于,在所述采用所述集群中空闲资源量大于所述需求资源量且空闲资源量最小的节点的步骤之前,所述调度方法还包括:
获取所述目标训练任务对应的集群的空闲资源量;
判断在所述目标训练任务对应的集群中是否存在空闲资源量大于或等于所述目标训练任务的需求资源量的节点;
若否,则等待所述目标训练任务对应的集群中释放资源,其中,所述全部训练任务中未训练且优先级小于所述目标训练任务优先级的训练任务保持等待。
3.根据权利要求1所述的资源调度方法,其特征在于,所述对所有所述集群进行容器化部署,以获取所有所述集群中空闲资源量,包括:
在所有所述集群内部署Kubernete集群;
利用所述Kubernete集群在所有所述集群的所有节点上创造容器;
基于所述容器获取所有所述集群中每个节点的空闲资源量。
4.根据权利要求3所述的资源调度方法,其特征在于,还包括:
利用所述容器监测所有所述集群中的所述空闲资源量是否发生变化;
响应于所有所述集群中所述空闲资源量是否发生变化,实时上报变化后的所述空闲资源量。
5.根据权利要求1所述的资源调度方法,其特征在于,在所述对所述目标训练任务进行训练的步骤之后,所述调度方法还包括:
确定分配有所述目标训练任务的其他集群,并对在所述其他集群中的所述目标训练任务进行释放。
6.根据权利要求5所述的资源调度方法,其特征在于,所述将所述训练任务分发至对应的集群中,包括:
获取全部训练任务,确定所述训练任务的任务指定标签;
基于所述任务指定标签将所述训练任务分发至对应的集群中。
7.根据权利要求6所述的资源调度方法,其特征在于,所述确定分配有所述目标训练任务的其他集群,包括:
基于所述任务指定标签确定分配有所述目标训练任务的其他集群。
8.一种集群资源调度装置,其特征在于,包括:
任务获取模块,用于获取全部训练任务,确定所述训练任务的优先级,并将所述训练任务分发至对应的集群中;
任务确定模块,用于基于所述优先级确定所述集群当前执行的目标训练任务以及获取所述目标训练任务及其需求资源量;其中,所述目标训练任务为所述集群中未训练的全部所述训练任务中优先级最高的训练任务;
空闲资源获取模块,用于对所有所述集群进行容器化部署,以获取所有所述集群中空闲资源量;
任务训练模块,用于采用所述集群中空闲资源量大于所述需求资源量且空闲资源量最小的节点,对所述目标训练任务进行训练。
9.一种电子设备,其特征在于,所述电子设备包括处理器以及与所述处理器连接的存储器,其中,所述存储器中存储有程序数据,所述处理器执行所述存储器存储的所述程序数据,以执行实现权利要求1-7任一项所述的分布式训练任务的资源调度方法。
10.一种计算机可读存储介质,其特征在于,其内部存储有程序指令,所述程序指令被执行以实现权利要求1-7任一项所述的分布式训练任务的资源调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211631237.0A CN116166421A (zh) | 2022-12-15 | 2022-12-15 | 分布式训练任务的资源调度方法及其设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211631237.0A CN116166421A (zh) | 2022-12-15 | 2022-12-15 | 分布式训练任务的资源调度方法及其设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116166421A true CN116166421A (zh) | 2023-05-26 |
Family
ID=86410408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211631237.0A Pending CN116166421A (zh) | 2022-12-15 | 2022-12-15 | 分布式训练任务的资源调度方法及其设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116166421A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116483546A (zh) * | 2023-06-21 | 2023-07-25 | 苏州浪潮智能科技有限公司 | 分布式训练任务调度方法、装置、设备及存储介质 |
-
2022
- 2022-12-15 CN CN202211631237.0A patent/CN116166421A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116483546A (zh) * | 2023-06-21 | 2023-07-25 | 苏州浪潮智能科技有限公司 | 分布式训练任务调度方法、装置、设备及存储介质 |
CN116483546B (zh) * | 2023-06-21 | 2023-09-05 | 苏州浪潮智能科技有限公司 | 分布式训练任务调度方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110837410B (zh) | 任务调度方法、装置、电子设备及计算机可读存储介质 | |
CN110489213B (zh) | 一种任务处理方法及处理装置、计算机系统 | |
CN109150987B (zh) | 基于主机层和容器层的两层式容器集群弹性扩容方法 | |
US8434085B2 (en) | Scalable scheduling of tasks in heterogeneous systems | |
WO2016145904A1 (zh) | 一种资源管理方法、装置和系统 | |
CN116302617B (zh) | 共享内存的方法、通信方法、嵌入式系统以及电子设备 | |
CN113434284B (zh) | 一种隐私计算服务端设备、系统及任务调度方法 | |
CN112486642B (zh) | 资源调度方法、装置、电子设备及计算机可读存储介质 | |
CN109918203A (zh) | 接入服务器内存管理优化方法、接入服务器及通信系统 | |
CN111798113A (zh) | 资源分配方法、装置、存储介质和电子设备 | |
CN116166421A (zh) | 分布式训练任务的资源调度方法及其设备 | |
CN109002364A (zh) | 进程间通信的优化方法、电子装置以及可读存储介质 | |
CN113946431A (zh) | 一种资源调度方法、系统、介质及计算设备 | |
CA2631255A1 (en) | Scalable scheduling of tasks in heterogeneous systems | |
CN111813541B (zh) | 一种任务调度方法、装置、介质和设备 | |
CN111143063B (zh) | 任务的资源预约方法及装置 | |
CN110750350B (zh) | 一种大资源调度方法、系统、装置及可读存储介质 | |
CN115878333A (zh) | 进程组间的一致性判断方法、装置及设备 | |
CN115964152A (zh) | Gpu资源调度方法、设备和存储介质 | |
CN115809126A (zh) | 混合部署场景下的作业调度方法、装置及电子设备 | |
CN114675954A (zh) | 任务调度方法及装置 | |
CN112506655B (zh) | 一种绘图方法、存储介质及应用服务器 | |
CN114610465A (zh) | 任务处理方法、装置及存储介质 | |
JPH10289219A (ja) | クライアント・サーバシステム、キャッシュ管理方法及び記録媒体 | |
CN112835721A (zh) | 分配gpu卡的数量的方法、装置、电子设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |