CN116483546B - 分布式训练任务调度方法、装置、设备及存储介质 - Google Patents

分布式训练任务调度方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116483546B
CN116483546B CN202310740013.1A CN202310740013A CN116483546B CN 116483546 B CN116483546 B CN 116483546B CN 202310740013 A CN202310740013 A CN 202310740013A CN 116483546 B CN116483546 B CN 116483546B
Authority
CN
China
Prior art keywords
training
resource
training task
task
resources
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.)
Active
Application number
CN202310740013.1A
Other languages
English (en)
Other versions
CN116483546A (zh
Inventor
康英杰
王德奎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202310740013.1A priority Critical patent/CN116483546B/zh
Publication of CN116483546A publication Critical patent/CN116483546A/zh
Application granted granted Critical
Publication of CN116483546B publication Critical patent/CN116483546B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及计算机技术领域,公开了一种分布式训练任务调度方法、装置、设备及存储介质,包括:获取各个训练任务的调度状态,调度状态包括调度成功以及调度未成功;对于调度状态为调度未成功的第一训练任务,获取目标集群资源的空闲资源量以及第一训练任务的最小资源需求量;若空闲资源量小于最小资源需求量,从调度状态为调度成功的第二训练任务中筛选出可分配资源的训练任务,以获取可分配资源;基于可分配资源以及所述空闲资源量,对第一训练任务进行任务调度;本发明可以大幅提高资源利用率和容错能力,缩短模型训练周期。

Description

分布式训练任务调度方法、装置、设备及存储介质
技术领域
本发明涉及计算机技术领域,具体涉及一种分布式训练任务调度方法、装置、设备及存储介质。
背景技术
随着数据集以及模型规模的不断增加,传统的单机训练方式已无法有效地进行大规模深度神经网络的训练。因此,分布式训练随之应运而生,即使用多台计算机来共同进行模型的训练。然而,现有的分布式训练难以适应训练需求和数据规模的变化,因此会导致一些计算节点空闲,从而浪费了计算资源,且增加了模型训练的周期。
发明内容
有鉴于此,本发明提供了一种分布式训练任务调度方法、装置、设备及存储介质,以解决现有分布式训练难以适应训练需求和数据规模的变化,因此会导致一些计算节点空闲,从而浪费了计算资源,且增加了模型训练周期的问题。
第一方面,本发明提供了一种分布式训练任务调度方法,该方法包括:获取各个训练任务的调度状态,调度状态包括调度成功以及调度未成功;对于调度状态为调度未成功的第一训练任务,获取目标集群资源的空闲资源量以及第一训练任务的最小资源需求量;若空闲资源量小于最小资源需求量,从调度状态为调度成功的第二训练任务中筛选出可分配资源的训练任务,以获取可分配资源;基于可分配资源以及空闲资源量,对第一训练任务进行任务调度。通过上述过程,可以大幅提高资源利用率和容错能力,缩短模型训练周期。
在一种可选的实施方式中,调度状态还包括保护标识,保护标识用于确定对应的训练任务是否处于保护期,其中,未处于保护期的训练任务能够进行资源调配。
在一种可选的实施方式中,从调度状态为调度成功的第二训练任务中筛选出可分配资源的训练任务,以获取可分配资源,包括:
计算空闲资源量与最小资源需求量之间的资源量差值;
基于资源量差值,从调度成功的第二训练任务中筛选出未处于保护期且满足资源配出条件的目标训练任务;其中,资源配出条件包括第二训练任务的资源量大于第二训练任务的最小资源需求量;
对目标训练任务中的可配出资源进行资源抢占的任务调度,得到可分配资源。
在一种可选的实施方式中,该方法还包括:
对被抢占结束的目标训练任务添加保护标记,以使被抢占后的目标训练任务处于保护期。
在一种可选的实施方式中,对目标训练任务中的可配出资源进行资源抢占的任务调度,包括:
将第一训练任务加入抢占任务队列;
对抢占任务队列中的第一训练任务进行排序;
按照顺序对目标训练任务中的可配出资源进行抢占。
在一种可选的实施方式中,按照顺序对目标训练任务中的可配出资源进行抢占,包括:
获取资源量差值所对应的实例信息;
基于实例信息,确定差值实例集;
基于差值实例集中各实例所占的资源量的大小顺序,对目标训练任务中各实例的资源进行抢占。
在一种可选的实施方式中,该方法还包括:
若空闲资源量等于最小资源需求量,基于空闲资源量对第一训练任务进行任务调度。
在一种可选的实施方式中,该方法还包括:
将任务调度的操作添加至操作列表,并将调度操作结果更新至本地信息副本中。
在一种可选的实施方式中,该方法还包括:
若空闲资源量大于最小资源需求量,基于空闲资源量对第一训练任务进行任务调度;
对于调度状态为调度成功的第二训练任务,获取集群资源的当前空闲资源量;
基于当前空闲资源量对第二训练任务对应的资源进行扩容,以增加第二训练任务对应的资源。
在一种可选的实施方式中,基于当前空闲资源量对第二训练任务对应的资源进行扩容,以增加第二训练任务对应的资源,包括:
获取满足扩容条件且未处于保护期的第二训练任务;其中,扩容条件包括第二训练任务的资源量为非最大资源需求量;
将第二训练任务加入扩容任务队列,并对扩容任务队列中的第二训练任务进行排序;
按照顺序对第二训练任务进行扩容操作,以增加第二训练任务对应的资源。
在一种可选的实施方式中,该方法还包括:
在扩容成功时将扩容操作添加至操作列表,并将扩容操作结果更新至本地信息副本中。
在一种可选的实施方式中,该方法还包括:
对被扩容结束的第二训练任务添加保护标记,以使被扩容后的第二训练任务处于保护期。
在一种可选的实施方式中,该方法还包括:
当第二训练任务的资源量达到最大资源需求量时,将第二训练任务从扩容任务队列中移除;
或,当扩容任务队列为空时,停止扩容操作。
在一种可选的实施方式中,该方法还包括:
获取空闲资源中的扩容可用资源;
当扩容可用资源的使用率达到使用阈值时,停止扩容操作;其中,当扩容可用资源包括多类型资源时,将多类型资源中使用率最高的资源与使用阈值进行比对。
在一种可选的实施方式中,最小资源需求量的计算,包括:
获取第一训练任务中所携带的实例信息;
基于实例信息,确定最小实例集;
根据最小实例集中各实例所占的资源量,确定第一训练任务能够正常运行所需的最小资源需求量。
在一种可选的实施方式中,获取各个训练任务的调度状态,包括:
基于本地信息副本获取集群的训练任务信息;
通过训练任务信息确定调度训练任务列表;
基于调度训练任务列表确定各个训练任务的调度状态。
在一种可选的实施方式中,通过训练任务信息确定调度训练任务列表,包括:
通过训练任务信息获取训练任务;
从训练任务中筛选出调度训练任务,并基于调度训练任务生成调度训练任务列表。
在一种可选的实施方式中,该方法还包括:
将获取的集群信息及训练任务信息保存为本地信息副本;其中,集群信息包括集群资源,以及集群资源的使用信息。
第二方面,本发明提供了一种分布式训练任务调度装置,该装置主要包括:状态获取模块、资源获取模块、资源分配模块、及任务调度模块;其中,状态获取模块用于获取各个训练任务的调度状态,调度状态包括调度成功以及调度未成功;资源获取模块用于对于调度状态为调度未成功的第一训练任务,获取目标集群资源的空闲资源量以及第一训练任务的最小资源需求量;资源分配模块用于若空闲资源量小于最小资源需求量,从调度状态为调度成功的第二训练任务中筛选出可分配资源的训练任务,以获取可分配资源;任务调度模块用于基于可分配资源以及空闲资源量,对第一训练任务进行任务调度。通过上述过程,可以大幅提高资源利用率和容错能力,缩短模型训练周期。
第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的分布式训练任务调度方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的分布式训练任务调度方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的一种应用环境的示意图;
图2是本发明实施例的分布式训练任务调度方法的流程示意图;
图3是本发明实施例的另一分布式训练任务调度方法的流程示意图;
图4是本发明实施例的又一分布式训练任务调度方法的流程示意图;
图5是本发明实施例的再一分布式训练任务调度方法的流程示意图;
图6是本发明实施例的分布式训练任务调度装置的结构框图;
图7是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”和“第二”是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的保护。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本发明中的“多个”可以表示至少两个,例如可以是两个、三个或者更多个,本发明实施例不做限制。
请参阅图1,图1是本发明实施例提供的一种应用环境的示意图,该示意图包括计算服务器100中可以包含有显示器101、处理器102和存储器103。计算服务器100可以通过网络300与管理服务器200进行通信连接,该管理服务器200可用于为计算服务器上安装的计算程序提供服务(如管理服务等),可在管理服务器200上或独立于管理服务器200设置数据库201,用于为管理服务器200提供数据存储服务。此外,管理服务器200中可以运行有处理引擎202,该处理引擎202可以用于执行由管理服务器200所执行的步骤。
可选的,计算服务器100可以但不限于为可以计算数据的终端,如移动终端(例如平板电脑)、笔记本电脑、PC(Personal Computer,个人计算机)机等终端上,上述网络可以包括但不限于无线网络或有线网络。其中,该无线网络包括:蓝牙、WIFI(WirelessFidelity,无线保真)及其他实现无线通信的网络。上述有线网络可以包括但不限于:广域网、城域网、服务器集群。上述服务器200可以包括但不限于任何可以进行计算的硬件设备。
此外,在本实施例中,上述分布式训练任务调度方法还可以但不限于应用于处理能力较强大的独立的处理设备中,而无需进行数据交互。例如,该处理设备可以但不限于为处理能力较强大的终端设备,即,上述分布式训练任务调度方法中的各个操作可以集成在一个独立的处理设备中。上述仅是一种示例,本实施例中对此不作任何限定。
可选的,在本实施例中,上述分布式训练任务调度方法可以由管理服务器200来执行,也可以由计算服务器100来执行,还可以是由管理服务器200和计算服务器100共同执行。其中,计算服务器100执行本发明实施例的分布式训练任务调度方法也可以是由安装在其上的客户端来执行。
具体应用时,首先建立管理服务器与各计算服务器的通信连接。其中管理服务器用于负责整个训练过程的协调管理,包括数据分发、参数更新等。即管理服务器会向所有的计算服务器发送控制指令,以控制整个训练的进度和流程。计算服务器用于进行实际的计算任务,负责获取训练数据、执行前向计算和反向传播等操作,并将计算结果返回给管理服务器。
根据本发明实施例,提供了一种分布式训练任务调度方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种分布式训练任务调度方法,可用于上述的计算服务器,图2是根据本发明实施例的分布式训练任务调度方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,获取各个训练任务的调度状态。
本实施例中,通过获取各个训练任务的调度状态,以便于根据各个训练任务的调度状态确定是否需对其进行资源调度。
一种可选的实施方式中,周期性地从AI训练平台中获取集群信息及训练任务信息,然后将获取的集群信息及训练任务信息保存为本地信息副本。其中,本实施例中在从AI训练平台中获取集群信息及训练任务信息后,本调度周期内将不再接受AI训练平台中新的信息变化。本实施例中调度周期为1秒,即每间隔1秒,执行一次任务调度,在其他实施例中,调度的周期还可以根据实际需求进行调整,还可以进行非周期的调度。
可选的,集群信息包括集群资源(如集群的计算服务器信息、管理服务器信息),以及集群资源的使用信息(如集群中各种类型资源的总量、已用量、可用量),集群中各种类型资源的总量为各主机CPU、GPU、内存等等各类资源数量的总和。
可以理解的,通过将集群信息及训练任务信息拷贝为管理服务器(管理服务器中调度器)的本地信息副本,以便于对调度未成功的训练任务进行尝试调度或调度失败被回退的过程中,仅修改这个本地信息副本中的资源,避免了在此过程中对集群中资源状态的影响。
一种可选的实施方式中,可以基于本地信息副本获取集群的训练任务信息,然后通过训练任务信息获取训练任务,从训练任务中筛选出调度训练任务,并基于调度训练任务生成调度训练任务列表,再基于调度训练任务列表确定各个训练任务的调度状态。其中,调度状态包括调度成功以及调度未成功,且调度成功可以包括本调度周期调度成功和过去调度周期调度成功的训练任务。
可选的,在基于训练任务列表确定各个训练任务的调度状态,如为调度未成功的状态时,可以对训练任务列表中调度未成功的训练任务进行排序,然后按照顺序确定第一训练任务。其中,对调度未成功的训练任务进行排序时,可以按照训练任务运行所需的最小资源由小到大依次排序,还可以基于训练任务的创建时间以及未被调度成功的次序进行排序。可以理解的,通过对训练任务列表中的调度未成功的训练任务进行排序以便于提高第一训练任务的确定效率,且能够将需要尽快完成调度的第一训练任务尽快完成调度,避免同一个第一训练任务多次未调度或长时间未被调度的情况,满足了实际应用需求。
一种可选的实施方式中,第一训练任务包括master/launcher和worker角色,每个角色也会有多个实例,在分布式训练任务创建时,每个实例需要的资源数量就是固定的,但对于实施例来说,各实例的个数并不固定,会有一个最大值和一个最小值。其中,当实例的个数为最大值时则可以得到第一训练任务能够正常运行的最大资源量,即最大资源需求量,当实例的个数为最小值时则可以得到第一训练任务能够正常运行的最小资源需求量,即最小资源需求量。
master/launcher角色为训练任务中的管理角色,负责整个训练过程的协调管理,包括数据分发、参数更新等。它会向所有worker角色发送控制指令,以控制整个训练的进度和流程。
worker角色为训练任务中的计算角色,进行实际的计算任务,负责获取训练数据、执行前向计算和反向传播等操作,并将计算结果返回给管理角色。
步骤S202,对于调度状态为调度未成功的第一训练任务,获取目标集群资源的空闲资源量以及第一训练任务的最小资源需求量。
本实施例中,对于调度状态为调度未成功的第一训练任务,通过获取目标集群资源的空闲资源量以及第一训练任务的最小资源需求量,以便于为第一训练任务分配运行所需的最小资源需求量,避免后续调度未成功的训练任务由于集群资源量不足而造成训练终止,且提高了资源利用率。
一种可选的实施方式中,可以首先获取第一训练任务中所携带的实例信息,基于该实例信息,确定最小实例集,再根据最小实例集中各实例所占的资源量,确定第一训练任务能够正常运行所需的最小资源需求量,即最小资源需求量。然后再获取集群资源中的空闲资源量,当空闲资源量满足最小资源需求量时,即空闲资源量大于等于最小资源需求量时,基于空闲资源量对第一训练任务进行任务调度,并标记第一训练任务调度成功。最后再将第一训练任务的任务调度的操作添加至操作列表中,并将调度操作结果更新至本地信息副本中,以进行调度操作记录。同样的,还可以首先获取第一训练任务中所携带的实例信息,基于该实例信息,确定最大实例集,再根据最大实例集中各实例所占的资源量,确定第一训练任务能够正常运行所需的最大资源需求量,即最大资源需求量。其中,调度操作是分别把哪些master/launcher和worker的哪些实例调度到哪些计算服务器上。
具体实施时,可以将最小实例集中各实例的个数乘以所占用的资源量后,再进行求和计算,从而得到第一训练任务能够正常运行所需的最小资源需求量。同样的,可以将最大实例集中各实例的个数乘以所占用的资源量后,再进行求和计算,从而得到第一训练任务能够正常运行所需的最大资源需求量。
一种可选的实施方式中,可以基于最小实例集中各实例所占的资源量,对空闲资源量中的资源进行调用;当最小实例集中的所有实例均完成资源调度时,将第一训练任务标记为调度成功。
可以理解的,为第一训练任务分配能够正常运行所需的最小资源需求量时,可以在集群资源存在空闲资源时,将最小实例集中的各个实例根据空闲资源量的大小不断地进行空闲资源的调用,直至最小实例集中的所有实例均完成资源调度时,则认为第一训练任务标记为调度成功。即,集群资源中的空闲资源可以不是一个完整的资源,而是由多个计算服务器所空闲的资源的总和,对调度未成功的训练任务中的各实例进行调度时,也可以一次调度完成或多次调度完成。
可选的,调度状态还包括保护标识,保护标识用于确定对应的训练任务是否处于保护期,其中,未处于保护期的训练任务能够进行资源调配。
步骤S203,若空闲资源量小于最小资源需求量,从调度状态为调度成功的第二训练任务中筛选出可分配资源的训练任务,以获取可分配资源。
本实施例中,当集群资源中的空闲资源量小于最小资源需求量,即空闲资源量不足时,从调度状态为调度成功的第二训练任务中筛选出可分配资源的训练任务,以获取可分配资源,从而提高集群的整体资源利用率。
一种可选的实施方式中,首先计算空闲资源量与最小资源需求量之间的资源量差值;基于资源量差值,从调度成功的第二训练任务中筛选出未处于保护期且满足资源配出条件的目标训练任务;对目标训练任务中的可配出资源进行资源抢占的任务调度,得到可分配资源。其中,资源配出条件包括第二训练任务的资源量大于第二训练任务的最小资源需求量。
可选的,对目标训练任务中的可配出资源进行资源抢占的任务调度时,可以将第一训练任务加入抢占任务队列,然后对抢占任务队列中的第一训练任务进行排序,接着按照顺序对目标训练任务中的可配出资源进行抢占。
可选的,按照顺序对目标训练任务中的可配出资源进行抢占是时,可以获取资源量差值所对应的实例信息,然后基于实例信息,确定差值实例集,最后基于差值实例集中各实例所占的资源量的大小序,对目标训练任务中各实例的资源进行抢占。
本实施方式中,通过当集群资源中的空闲资源量不足时,对调度成功、未处于保护期且满足资源配出条件的第二训练任务中目标训练任务的资源进行抢占,以提高集群的整体资源利用率。其中,处于保护期的训练任务是无法进行扩容以及被抢占的,通过保护期的设置,以避免频繁扩缩容导致训练失败,提高稳定性。
其中,抢占操作是把哪些master/launcher和worker的某些实例从某些计算服务器上删除,且对影响到的第二训练任务打上保护期标记。
一种可选的实施方式中,首先获取本地信息副本中调度成功的第二训练任务,然后从未处于保护期且满足资源配出条件的第二训练任务中确定目标训练任务,并将目标训练任务中的资源加入资源抢占队列;然后获取本地信息副本中未被调度成功,即调度未成功的第一训练任务,并将第一训练任务加入抢占任务队列;再对抢占任务队列中的第一训练任务进行排序;最后按照顺序对目标训练任务的资源进行抢占。其中,对抢占任务队列中第一训练任务进行排序时,可以按照第一训练任务运行所需的最小资源由小到大依次排序,还可以基于第一训练任务的创建时间以及未被调度成功的次序进行排序。本实施方式中,通过对抢占任务队列中第一训练任务进行排序以便于提高第一训练任务的选择效率,且能够将需要尽快完成调度的未被调度成功的第一训练任务尽快完成调度,避免同一个未被调度成功的训练任务多次未被调度或长时间未被调度的情况,满足了实际应用需求。
一种可选的实施方式中,还可以在空闲资源量不足的场景下,将调度成功的第二训练任务中,未处于保护期且满足资源配出条件的目标训练任务的资源(大于最小资源需求量部分的资源)加入资源抢占队列;将本地信息副本中第一训练任务加入抢占任务队列并进行排序,然后按照顺序遍历资源抢占队列,根据资源抢占队列的具体资源信息(如资源集合中的各个资源量),确定将要抢占的目标训练任务的某一实例(被抢占者)所对应的资源,然后尝试对这些计算服务器上的被抢占者进行驱逐(从计算服务器上删除并释放资源)。
一种可选的实施方式中,可以基于本地信息副本获取集群的训练任务信息,通过训练任务信息确定调度成功的第二训练任务;同时,还可以基于本地信息副本获取各第二训练任务的调度操作、扩容操作信息,从而确定第二训练任务所调度的资源量是否已经大于最小资源所需量。当第二训练任务的当前资源量大于最小资源所需量时,则认为第二训练任务满足资源配出条件。在判断第二训练任务未处于保护期时,可以基于该第二训练任务所携带的保护标记进行判断。该保护标记可以为带有时间戳的标记信息。通过将调度成功、未处于保护期且满足资源配出条件的第二训练任务中的目标训练任务的资源加入资源抢占队列,以便于对资源抢占队列中各目标训练任务中某些实例所对应的资源进行抢占。
步骤S204,基于可分配资源以及空闲资源量,对第一训练任务进行任务调度。
本实施例中,通过基于可分配资源以及空闲资源量,对第一训练任务进行任务调度,为第一训练任务的正常训练提供必要条件。
一种可选的实施方式中,可以获取第一训练任务能够正常运行所需的最小资源需求量;然后基于从最小资源需求量所对应的实例,然后按照顺序遍历资源抢占队列,根据资源抢占队列的具体资源信息(如资源集合中的各个资源量),确定将要抢占的目标训练任务的某一实例(被抢占者)所对应的资源;最后尝试对这些计算服务器上的被抢占者进行驱逐(从计算服务器上删除并释放资源,当未被调度成功的训练任务所抢占的资源满足所需的最小资源需求量(即最小实例集中所有的实例均完成资源抢占)时,标记第一训练任务调度成功,将任务调度的操作添加至操作列表,并将调度操作结果更新至本地信息副本中。
本实施例提供的分布式训练任务调度方法,首先获取各个训练任务的调度状态,以便于根据各个训练任务的调度状态确定是否需对其进行资源调度;对于调度状态为调度未成功的第一训练任务,获取目标集群资源的空闲资源量以及第一训练任务的最小资源需求量,以便于为第一训练任务分配运行所需的最小资源需求量,避免后续调度未成功训练任务由于集群资源量不足而造成训练终止,且提高了资源利用率;当集群资源中的空闲资源量小于最小资源需求量,即空闲资源量不足时,从调度状态为调度成功的第二训练任务中筛选出可分配资源的训练任务,以获取可分配资源,从而提高集群的整体资源利用率;通过基于可分配资源以及空闲资源量,对第一训练任务进行任务调度,为第一训练任务的正常训练提供必要条件。因此,本发明可以大幅提高资源利用率和容错能力,缩短模型训练周期。
在本实施例中提供了一种分布式训练任务调度方法,可用于上述的计算服务器,图3是根据本发明实施例的分布式训练任务调度方法的流程图,如图3所示,该流程包括如下步骤:
步骤S301,获取各个训练任务的调度状态。
本实施例中,通过获取各个训练任务的调度状态,以便于根据各个训练任务的调度状态确定是否需对其进行资源调度
详细请参见图2所示实施例的步骤S201,在此不再赘述。
步骤S302,对于调度状态为调度未成功的第一训练任务,获取目标集群资源的空闲资源量以及第一训练任务的最小资源需求量。
本实施例中,对于调度状态为调度未成功的第一训练任务,通过获取目标集群资源的空闲资源量以及第一训练任务的最小资源需求量,以便于为第一训练任务分配运行所需的最小资源需求量,避免后续调度未成功的训练任务由于集群资源量不足而造成训练终止,且提高了资源利用率。
详细请参见图2所示实施例的步骤S202,在此不再赘述。
步骤S303,若空闲资源量大于最小资源需求量,基于空闲资源量对第一训练任务进行任务调度。
本实施例中,当集群资源中的空闲资源量小于最小资源需求量,即空闲资源量不足时,从调度状态为调度成功的第二训练任务中筛选出可分配资源的训练任务,以便于对目标训练任务中某些实例所对应的资源进行抢占,从而提高集群的整体资源利用率。
具体地,上述步骤S303包括:
步骤S3031,计算空闲资源量与最小资源需求量之间的资源量差值。
本实施例中,当集群资源中的空闲资源量小于最小资源需求量,即空闲资源量不足时,首先计算空闲资源量与最小资源需求量之间的资源量差值,以便于基于资源量差值确定满足资源配出条件的目标训练任务。
步骤S3032,基于资源量差值,从调度成功的第二训练任务中筛选出未处于保护期且满足资源配出条件的目标训练任务。
本实施例中,通过基于资源量差值,从调度成功的第二训练任务中筛选出未处于保护期且满足资源配出条件的目标训练任务,以便于对目标训练任务中某些实例所对应的资源进行抢占。
一种可选的实施方式中,可以基于本地信息副本获取集群的训练任务信息,通过训练任务信息确定调度成功的第二训练任务;同时,还可以基于本地信息副本获取各第二训练任务的调度操作、扩容操作信息,从而确定第二训练任务所调度的资源量是否已经大于自身的最小资源所需量。当第二训练任务的当前资源量大于最小资源所需量时,则认为第二训练任务满足资源配出条件。在判断第二训练任务未处于保护期时,可以基于该第二训练任务所携带的保护标记进行判断。该保护标记可以为带有时间戳的标记信息。通过将调度成功、未处于保护期且满足资源配出条件的第二训练任务中的目标训练任务的资源加入资源抢占队列,以便于对资源抢占队列中各目标训练任务中某些实例所对应的资源进行抢占。
步骤S3033,对目标训练任务中的可配出资源进行资源抢占的任务调度,得到可分配资源。
本实施例中,对目标训练任务中的可配出资源进行资源抢占的任务调度,得到可分配资源,从而提高集群的整体资源利用率。
一种可选的实施方式中,首先对目标训练任务中的可配出资源进行资源抢占时的任务调度,可以将第一训练任务加入抢占任务队列,然后对抢占任务队列中的第一训练任务进行排序,接着按照顺序对目标训练任务中的可配出资源进行抢占。
可选的,按照顺序对目标训练任务中的可配出资源进行抢占是时,可以获取资源量差值所对应的实例信息,然后基于实例信息,确定差值实例集,最后基于差值实例集中各实例所占的资源量的大小顺序,对目标训练任务中各实例的资源进行抢占。
一种可选的实施方式中,首先获取本地信息副本中调度成功的第二训练任务,然后从未处于保护期且满足资源配出条件的第二训练任务中确定目标训练任务,并将目标训练任务中的资源加入资源抢占队列;然后获取本地信息副本中未被调度成功,即调度未成功的第一训练任务,并将第一训练任务加入抢占任务队列;再对抢占任务队列中的第一训练任务进行排序;最后按照顺序对目标训练任务的资源进行抢占。其中,对抢占任务队列中第一训练任务进行排序时,可以按照第一训练任务运行所需的最小资源由小到大依次排序,还可以基于第一训练任务的创建时间以及未被调度成功的次序进行排序。本实施方式中,通过对抢占任务队列中第一训练任务进行排序以便于提高第一训练任务的选择效率,且能够将需要尽快完成调度的未被调度成功的第一训练任务尽快完成调度,避免同一个未被调度成功的训练任务多次未被调度或长时间未被调度的情况,满足了实际应用需求。
一种可选的实施方式中,还可以在空闲资源量不足的场景下,将调度成功的第二训练任务中,未处于保护期且满足资源配出条件的目标训练任务的资源(大于最小资源需求量部分的资源)加入资源抢占队列;将本地信息副本中第一训练任务加入抢占任务队列并进行排序,然后按照顺序遍历资源抢占队列,根据资源抢占队列的具体资源信息(如资源集合中的各个资源量),确定将要抢占的目标训练任务的某一实例(被抢占者)所对应的资源,然后尝试对这些计算服务器上的被抢占者进行驱逐(从计算服务器上删除并释放资源)。
一种可选的实施方式中,通过对被抢占结束的目标训练任务添加保护标记,以使被抢占后的目标训练任务处于保护期。
可以理解的,当集群资源不足时,对调度成功、未处于保护期且满足资源配出条件的目标训练任务的资源进行抢占,以提高集群的整体资源利用率。其中,处于保护期的训练任务是无法进行扩容以及被抢占的,通过保护期的设置,以避免频繁扩缩容导致训练失败,提高稳定性。
步骤S304,基于可分配资源以及空闲资源量,对第一训练任务进行任务调度。
本实施例中,通过基于可分配资源以及空闲资源量,对第一训练任务进行任务调度,为第一训练任务的正常训练提供必要条件。
详细请参见图2所示实施例的步骤S204,在此不再赘述。
本实施例提供的分布式训练任务调度方法,首先获取各个训练任务的调度状态,以便于根据各个训练任务的调度状态确定是否需对其进行资源调度;对于调度状态为调度未成功的第一训练任务,获取目标集群资源的空闲资源量以及第一训练任务的最小资源需求量,以便于为第一训练任务分配运行所需的最小资源需求量,避免后续调度未成功的训练任务由于集群资源量不足而造成训练终止,且提高了资源利用率;当集群资源中的空闲资源量小于最小资源需求量,即空闲资源量不足时,从调度状态为调度成功的第二训练任务中筛选出可分配资源的训练任务,以获取可分配资源,从而提高集群的整体资源利用率;通过基于可分配资源以及空闲资源量,对第一训练任务进行任务调度,为第一训练任务的正常训练提供必要条件。因此,本发明可以大幅提高资源利用率和容错能力,缩短模型训练周期。
在本实施例中提供了一种分布式训练任务调度方法,可用于上述的计算服务器,图4是根据本发明实施例的分布式训练任务调度方法的流程图,如图4所示,该流程包括如下步骤:
步骤S401,获取各个训练任务的调度状态。
本实施例中,通过获取各个训练任务的调度状态,以便于根据各个训练任务的调度状态确定是否需对其进行资源调度。
详细请参见图2所示实施例的步骤S201,在此不再赘述。
步骤S402,对于调度状态为调度未成功的第一训练任务,获取目标集群资源的空闲资源量以及第一训练任务的最小资源需求量。
本实施例中,对于调度状态为调度未成功的第一训练任务,通过获取目标集群资源的空闲资源量以及第一训练任务的最小资源需求量,以便于为第一训练任务分配运行所需的最小资源需求量,避免后续调度未成功的训练任务由于集群资源量不足而造成训练终止,且提高了资源利用率。
详细请参见图2所示实施例的步骤S202,在此不再赘述。
步骤S403,若空闲资源量大于最小资源需求量,基于空闲资源量对第一训练任务进行任务调度。
本实施例中,若空闲资源量大于最小资源需求量,基于空闲资源量对第一训练任务进行任务调度,以避免后续调度未成功的训练任务由于集群资源量不足而造成训练终止,且提高了资源利用率。
一种可选的实施方式中,可以首先获取第一训练任务中所携带的实例信息,基于该实例信息,确定最小实例集,再根据最小实例集中各实例所占的资源量,确定第一训练任务能够正常运行所需的最小资源需求量。然后再获取集群资源中的空闲资源量,当空闲资源量满足最小资源需求量时,标记第一训练任务调度成功。最后再将第一训练任务的任务调度的操作添加至操作列表中,并将调度操作结果更新至本地信息副本中,以进行调度操作记录。同样的,还可以首先获取第一训练任务中所携带的实例信息,基于该实例信息,确定最大实例集,再根据最大实例集中各实例所占的资源量,确定第一训练任务能够正常运行所需的最大资源需求量。其中,调度操作是分别把某些master/launcher和worker的某些实例调度到某些计算服务器上。
具体实施时,可以将最小实例集中各实例的个数乘以所占用的资源量后,再进行求和计算,从而得到第一训练任务能够正常运行所需的最小资源需求量。同样的,可以将最大实例集中各实例的个数乘以所占用的资源量后,再进行求和计算,从而得到第一训练任务能够正常运行所需的最大资源需求量。
一种可选的实施方式中,可以基于最小实例集中各实例所占的资源量,对空闲资源量中的资源进行调用;当最小实例集中的所有实例均完成资源调度时,将待第一训练任务标记为调度成功。
可以理解的,为第一训练任务分配能够正常运行所需的最小资源需求量时,可以在集群资源存在空闲资源时,将最小实例集中的各个实例根据空闲资源量的大小不断地进行空闲资源的调用,直至最小实例集中的所有实例均完成资源调度时,则认为第一训练任务标记为调度成功。即,集群资源中的空闲资源可以不是一个完整的资源,而是由多个计算服务器所空闲的资源的总和,对第一训练任务中的各实例进行调度时,也可以一次调度完成或多次调度完成。
步骤S404,对于调度状态为调度成功的第二训练任务,获取集群资源的当前空闲资源量。
本实施例中,对于调度状态为调度成功的第二训练任务,获取集群资源的当前空闲资源量,以便于确定是否能够对第二训练任务的资源进行扩容,降低集群空闲资源比例,从而提高集群的整体资源利用率。
一种可选的实施方式中,当空闲资源中的扩容可用资源未达到使用阈值时,使用扩容可用资源中的空闲资源,对调度成功、未处于保护期且满足扩容条件的第二训练任务进行扩容。其中,扩容可用资源为从集群中所有计算服务器中去除未被调度成功的训练任务可以使用的计算服务器,剩下的计算服务器上的资源就是扩容可用的资源。极端情况下,如果未被调度成功的训练任务可以使用所有计算服务器,意味着资源不足,此时扩容可用的资源为0。
其中,扩容操作是分别把某些master/launcher和worker的某些实例调度到某些计算服务器上,且对影响到的目标训练任务打上保护期标记。
具体实施例时,可以先获取本地信息副本中调度成功、满足扩容条件且未处于保护期的第二训练任务;再将第二训练任务加入扩容任务队列,并对扩容任务队列中的第二训练任务进行排序;然后按照顺序对第二训练任务进行扩容,在扩容成功时将扩容操作添加至操作列表,并将扩容操作结果更新至本地信息副本中。其中,对扩容任务队列中的第二训练任务进行排序时,可以按照第二训练任务运行所需的最小资源由小到大依次排序,还可以基于第二训练任务的创建时间以及未被调度成功的次序进行排序。本实施方式中,通过对第二训练队列中的第二训练任务进行排序以便于提高第二训练任务的确定效率,且能够将需要尽快完成调度的第二训练任务尽快完成调度,避免同一个第二训练任务多次未调度或长时间未被调度的情况,满足了实际应用需求。
可以理解的,在集资源充足的场景下在对第二训练任务进行资源扩充时,可以将最大实例集中除去最小实例集中以及被调用的实例后,将剩下的实例作为可扩容的部分,然后将该部分的实例不断地进行空闲资源的调用,并在扩容成功时把扩容操作添加到操作列表中。即,集群资源中的空闲资源可以不是一个完整的资源,而是由多个计算服务器所空闲的资源的总和,对第二训练任务中的需要扩充的实例进行调度时,也可以一次调度完成或多次调度完成。
步骤S405,基于当前空闲资源量对第二训练任务对应的资源进行扩容,以增加第二训练任务对应的资源。
本实施例中,通过基于当前空闲资源量对第二训练任务对应的资源进行扩容,以增加第二训练任务对应的资源,从而提高对第二训练任务的训练效率。
一种可选的实施方式中,还可以在根据空闲资源的具体资源信息(如资源集合中的各个资源量)循环遍历扩容任务队列,根据每次尝试对第二训练任务扩容一个实例,在扩容成功时将扩容操作添加至操作列表,并将扩容操结果作更新至本地信息副本中。
一种可选的实施方式中,当第二训练任务的资源量达到最大资源需求量时,将第二训练任务从扩容任务队列中移除。或者当扩容任务队列为空时,停止扩容操作。还可以获取空闲资源中的扩容可用资源,当扩容可用资源的使用率达到使用阈值时,停止扩容操作。其中,当扩容可用资源包括多类型资源时,将多类型资源中使用率最高的资源与使用阈值进行比对,该使用阈值可以为扩容可用资源的80%,在其他实施例中可根据实际需求进行调整。通过设定使用阈值,避免了后续新建训练任务的等待。
本实施例提供的分布式训练任务调度方法,首先获取各个训练任务的调度状态,以便于根据各个训练任务的调度状态确定是否需对其进行资源调度;对于调度状态为调度未成功的第一训练任务,获取目标集群资源的空闲资源量以及第一训练任务的最小资源需求量,以便于为第一训练任务分配运行所需的最小资源需求量,避免后续调度未成功的训练任务由于集群资源量不足而造成训练终止,且提高了资源利用率;通过在空闲资源量大于最小资源需求量时,基于空闲资源量对第一训练任务进行任务调度,以避免后续调度未成功的训练任务由于集群资源量不足而造成训练终止,且提高了资源利用率;对于调度状态为调度成功的第二训练任务,获取集群资源的当前空闲资源量,以便于确定是否能够对第二训练任务的资源进行扩容,降低集群空闲资源比例,从而提高集群的整体资源利用率。因此,本发明可以大幅提高资源利用率和容错能力,缩短模型训练周期。
在本实施例中提供了一种分布式训练任务调度方法,可用于上述的计算服务器,图5是根据本发明实施例的分布式训练任务调度方法的流程图,如图5所示,该流程包括如下步骤:
步骤S501,获取各个训练任务的调度状态。
本实施例中,通过获取各个训练任务的调度状态,以便于根据各个训练任务的调度状态确定是否需对其进行资源调度。
详细请参见图2所示实施例的步骤S201,在此不再赘述。
步骤S502,对于调度状态为调度未成功的第一训练任务,获取目标集群资源的空闲资源量以及第一训练任务的最小资源需求量。
本实施例中,对于调度状态为调度未成功的第一训练任务,通过获取目标集群资源的空闲资源量以及第一训练任务的最小资源需求量,以便于为第一训练任务分配运行所需的最小资源需求量,避免后续调度未成功的训练任务由于集群资源量不足而造成训练终止,且提高了资源利用率。
详细请参见图2所示实施例的步骤S202,在此不再赘述。
步骤S503,若空闲资源量大于最小资源需求量,基于空闲资源量对第一训练任务进行任务调度。
本实施例中,若空闲资源量大于最小资源需求量,基于空闲资源量对第一训练任务进行任务调度,以避免后续调度未成功的训练任务由于集群资源量不足而造成训练终止,且提高了资源利用率。
详细请参见图4所示实施例的步骤S403,在此不再赘述。
步骤S504,对于调度状态为调度成功的第二训练任务,获取集群资源的当前空闲资源量。
本实施例中,对于调度状态为调度成功的第二训练任务,获取集群资源的当前空闲资源量,以便于确定是否能够对第二训练任务的资源进行扩容,降低集群空闲资源比例,从而提高集群的整体资源利用率
详细请参见图4所示实施例的步骤S404,在此不再赘述。
步骤S505,基于当前空闲资源量对第二训练任务对应的资源进行扩容,以增加第二训练任务对应的资源。
本实施例中,通过基于当前空闲资源量对第二训练任务对应的资源进行扩容,以增加第二训练任务对应的资源,从而提高对第二训练任务的训练效率。
具体的,上述步骤S505包括:
步骤S5051,获取满足扩容条件且未处于保护期的第二训练任务。
本实施例中,通过获取满足扩容条件且未处于保护期的第二训练任务,以便于对第二训练任务的资源进行扩容。
一种可选的实施方式中,可以基于本地信息副本获取集群的训练任务信息,通过训练任务信息确定调度成功的第二训练任务;同时,还可以基于本地信息副本获取各第二训练任务的调度操作以及扩容操作信息,从而确定第二训练任务所调度的资源量是否已经到达最大资源需求量。当第二训练任务的当前资源量未达到最大资源需求量时,则认为第二训练任务满足扩容条件。在判断第二训练任是否处于保护期时,可以基于该第二训练任务所携带的保护标记进行判断。该保护标记可以为带有时间戳的标记信息。
步骤S5052,将第二训练任务加入扩容任务队列,并对扩容任务队列中的第二训练任务进行排序。
本实施例中,通过将第二训练任务加入扩容任务队列,并对扩容任务队列中的第二训练任务进行排序,以便于提高第二训练任务的确定效率,且能够将需要尽快完成调度的第二训练任务尽快完成调度,避免同一个第二训练任务多次未扩容或长时间未被扩容的情况,满足了实际应用需求。
一种可选的实施方式中,首先将第二训练任务加入扩容任务队列,然后按照第二训练任务运行所需的最小资源由小到大依次排序,也可以基于第二训练任务的创建时间由小到大依次排序,还可以根据第二训练任务未被扩容成功的次序以及优先级进行排序。
步骤S5053,按照顺序对第二训练任务进行扩容操作,以增加第二训练任务对应的资源。
本实施例中,通过按照顺序对第二训练任务进行扩容操作,以增加第二训练任务对应的资源,从而提高对第二训练任务的训练效率。
一种可选的实施方式中,首先将最大实例集中除去最小实例集中以及被调用的实例后,将剩下的实例作为可扩容的部分,然后将该部分的实例不断地进行空闲资源的调用,并在扩容成功时把扩容操作添加到操作列表中。即,集群资源中的空闲资源可以不是一个完整的资源,而是由多个计算服务器所空闲的资源的总和,对目标训练任务中的需要扩充的实例进行调度时,也可以一次调度完成或多次调度完成。
一种可选的实施方式中,还可以在集资源充足的场景下,根据空闲资源的具体资源信息(如资源集合中的各个资源量)循环遍历扩容任务队列,根据每次尝试对第二训练任务扩容一个实例,并在扩容成功时将扩容操作添加至操作列表,并将扩容操作更新至本地信息副本中。
一种可选的实施方式中,当第二训练任务的资源量达到最大资源需求量时,将第二训练任务从扩容任务队列中移除。或者当扩容任务队列为空时,停止扩容操作。还可以获取空闲资源中的扩容可用资源,当扩容可用资源的使用率达到使用阈值时,停止扩容操作。其中,当扩容可用资源包括多类型资源时,将多类型资源中使用率最高的资源与使用阈值进行比对,该使用阈值可以为扩容可用资源的80%,在其他实施例中可根据实际需求进行调整。通过设定使用阈值,避免了后续新建训练任务的等待。
一种可选的实施方式中,还可以对被扩容结束的第二训练任务添加保护标记,以使被扩容后的第二训练任务处于保护期。
可以理解的,通过对结束扩容的第二训练任务添加保护标记,以保护第二训练任务受到扩容操作影响后,在短时间内不能再次被影响。其中,上述保护期可以从上一次弹性任务扩容或缩容完成时开始计算,也可以从上一调度周期的结束时间计算,保护的时长是可以根据第二训练任务的需求进行调整。即,通过保护期的设置以避免在频繁扩容或缩容的极端情况下,训练任务运行失败。
本实施例提供的分布式训练任务调度方法,首先获取各个训练任务的调度状态,以便于根据各个训练任务的调度状态确定是否需对其进行资源调度;对于调度状态为调度未成功的第一训练任务,获取目标集群资源的空闲资源量以及第一训练任务的最小资源需求量,以便于为第一训练任务分配运行所需的最小资源需求量,避免后续调度未成功的训练任务由于集群资源量不足而造成训练终止,且提高了资源利用率;通过在空闲资源量大于最小资源需求量时,基于空闲资源量对第一训练任务进行任务调度,以避免后续调度未成功的训练任务由于集群资源量不足而造成训练终止,且提高了资源利用率;对于调度状态为调度成功的第二训练任务,获取集群资源的当前空闲资源量,以便于确定是否能够对第二训练任务的资源进行扩容,降低集群空闲资源比例,从而提高集群的整体资源利用率。因此,本发明可以大幅提高资源利用率和容错能力,缩短模型训练周期。
在本实施例中还提供了一种分布式训练任务调度装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种分布式训练任务调度装置,如图6所示,包括:
状态获取模块601,用于获取各个训练任务的调度状态,调度状态包括调度成功以及调度未成功。
在一些可选的实施方式中,状态获取模块601包括:
信息获取单元,用于基于本地信息副本获取集群的训练任务信息。
任务列表确定单元,用于通过训练任务信息确定调度训练任务列表。
可选的,通过训练任务信息获取训练任务;从训练任务中筛选出调度训练任务,并基于调度训练任务生成调度训练任务列表。
训练任务确定单元,用于基于调度训练任务列表确定各个训练任务的调度状态。
可选的,调度状态还包括保护标识,保护标识用于确定对应的训练任务是否处于保护期,其中,未处于所述保护期的训练任务能够进行资源调配。
资源获取模块602,用于对于调度状态为调度未成功的第一训练任务,获取目标集群资源的空闲资源量以及第一训练任务的最小资源需求量。
资源分配模块603,用于若空闲资源量小于最小资源需求量,从调度状态为调度成功的第二训练任务中筛选出可分配资源的训练任务,以获取可分配资源。
在一些可选的实施方式中,资源分配模块603包括:
最小资源量确定单元,用于获取第一训练任务中所携带的实例信息;基于实例信息,确定最小实例集;根据最小实例集中各实例所占的资源量,确定第一训练任务能够正常运行所需的最小资源量。
资源量确定单元,用于计算空闲资源量与最小资源需求量之间的资源量差值。
任务筛选单元,用于基于资源量差值,从调度成功的第二训练任务中筛选出未处于保护期且满足资源配出条件的目标训练任务。其中,资源配出条件包括第二训练任务的资源量大于第二训练任务的最小资源需求量。
资源抢占单元,用于对目标训练任务中的可配出资源进行资源抢占的任务调度,得到可分配资源。
可选的,将第一训练任务加入抢占任务队列;对抢占任务队列中的第一训练任务进行排序;按照顺序对目标训练任务中的可配出资源进行抢占。
可选的,按照顺序对目标训练任务中的可配出资源进行抢占时,首先
获取资源量差值所对应的实例信息;基于实例信息,确定差值实例集;基于差值实例集中各实例所占的资源量的大小顺序,对目标训练任务中各实例的资源进行抢占。
第一标记单元,用于对被抢占结束的目标训练任务添加保护标记,以使被抢占后的目标训练任务处于保护期。
在一些可选的实施方式中,资源分配模块603还用于,若空闲资源量等于最小资源需求量,基于空闲资源量对第一训练任务进行任务调度。
任务调度模块604,用于基于可分配资源以及空闲资源量,对第一训练任务进行任务调度。
在一些可选的实施方式中,任务调度模块604,还用于若空闲资源量大于最小资源需求量,基于空闲资源量对第一训练任务进行任务调度。
在一些可选的实施方式中,上述装置还包括:
资源量获取模块,用于对于调度状态为调度成功的第二训练任务,获取集群资源的当前空闲资源量。
资源扩容模块,用于基于当前空闲资源量对第二训练任务对应的资源进行扩容,以增加第二训练任务对应的资源。
可选的,资源扩容模块包括:
任务获取单元,用于获取满足扩容条件且未处于保护期的第二训练任务;其中,扩容条件包括第二训练任务的资源量为非最大资源需求量。
任务排序单元,用于将第二训练任务加入扩容任务队列,并对扩容任务队列中的第二训练任务进行排序。
资源扩充单元,用于按照顺序对第二训练任务进行扩容操作,以增加第二训练任务对应的资源。
可选的,当第二训练任务的资源量达到最大资源需求量时,将第二训练任务从扩容任务队列中移除;或,当扩容任务队列为空时,停止扩容操作。
可选的,获取空闲资源中的扩容可用资源;当扩容可用资源的使用率达到使用阈值时,停止扩容操作;其中,当扩容可用资源包括多类型资源时,将多类型资源中使用率最高的资源与使用阈值进行比对。
第二标记单元,用于对被扩容结束的第二训练任务添加保护标记,以使被扩容后的第二训练任务处于保护期。
调度操作更新模块,用于将任务调度的操作添加至操作列表,并将调度操作结果更新至本地信息副本中。
扩容操作更新模块,用于在扩容成功时将扩容操作添加至操作列表,并将扩容操作结果更新至本地信息副本中。
信息另存模块,用于将获取的集群信息及训练任务信息保存为本地信息副本。其中,集群信息包括集群资源,以及集群资源的使用信息。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本实施例中的分布式训练任务调度装置是以功能单元的形式来呈现,这里的单元是指ASIC(ApplicationSpecificIntegratedCircuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种计算机设备,具有上述图6所示的分布式训练任务调度装置。
请参阅图7,图7是本发明可选实施例提供的一种计算机设备的结构示意图,如图7所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图7中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据一种小程序落地页的展现的计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、服务器集群、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (20)

1.一种分布式训练任务调度方法,其特征在于,所述方法包括:
获取各个训练任务的调度状态,所述调度状态包括调度成功以及调度未成功;
对于调度状态为调度未成功的第一训练任务,获取目标集群资源的空闲资源量以及所述第一训练任务的最小资源需求量;
若所述空闲资源量小于所述最小资源需求量,从所述调度状态为调度成功的第二训练任务中筛选出可分配资源的训练任务,以获取所述可分配资源;
基于所述可分配资源以及所述空闲资源量,对所述第一训练任务进行任务调度;
所述从所述调度状态为调度成功的第二训练任务中筛选出可分配资源的训练任务,以获取所述可分配资源,包括:
计算所述空闲资源量与所述最小资源需求量之间的资源量差值;
基于所述资源量差值,从所述调度成功的第二训练任务中筛选出未处于保护期且满足资源配出条件的目标训练任务;其中,所述资源配出条件包括所述第二训练任务的资源量大于所述第二训练任务的最小资源需求量;
对所述目标训练任务中的可配出资源进行资源抢占的任务调度,得到所述可分配资源。
2.根据权利要求1所述的方法,其特征在于,所述调度状态还包括保护标识,所述保护标识用于确定对应的训练任务是否处于保护期,其中,未处于所述保护期的训练任务能够进行资源调配。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
对被抢占结束的所述目标训练任务添加保护标记,以使被抢占后的所述目标训练任务处于保护期。
4.根据权利要求2所述的方法,其特征在于,对所述目标训练任务中的可配出资源进行资源抢占的任务调度,包括:
将所述第一训练任务加入抢占任务队列;
对所述抢占任务队列中的第一训练任务进行排序;
按照顺序对所述目标训练任务中的可配出资源进行抢占的任务调度。
5.根据权利要求4所述的方法,其特征在于,所述按照顺序对所述目标训练任务中的可配出资源进行抢占,包括:
获取所述资源量差值所对应的实例信息;
基于所述实例信息,确定差值实例集;
基于所述差值实例集中各实例所占的资源量的大小顺序,对所述目标训练任务中各实例的资源进行抢占。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述空闲资源量等于所述最小资源需求量,基于所述空闲资源量对所述第一训练任务进行任务调度。
7.根据权利要求5或6所述的方法,其特征在于,所述方法还包括:
将所述任务调度的操作添加至操作列表,并将调度操作结果更新至本地信息副本中。
8.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述空闲资源量大于所述最小资源需求量,基于所述空闲资源量对所述第一训练任务进行任务调度;
对于调度状态为调度成功的第二训练任务,获取所述集群资源的当前空闲资源量;
基于所述当前空闲资源量对所述第二训练任务对应的资源进行扩容,以增加所述第二训练任务对应的资源。
9.根据权利要求8所述的方法,其特征在于,所述基于所述当前空闲资源量对所述第二训练任务对应的资源进行扩容,以增加所述第二训练任务对应的资源,包括:
获取满足扩容条件且未处于保护期的第二训练任务;其中,所述扩容条件包括所述第二训练任务的资源量为非最大资源需求量;
将所述第二训练任务加入扩容任务队列,并对所述扩容任务队列中的第二训练任务进行排序;
按照顺序对所述第二训练任务进行扩容操作,以增加所述第二训练任务对应的资源。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
在扩容成功时将扩容操作添加至操作列表,并将扩容操作结果更新至本地信息副本中。
11.根据权利要求9所述的方法,其特征在于,所述方法还包括:
对被扩容结束的所述第二训练任务添加保护标记,以使被扩容后的所述第二训练任务处于保护期。
12.根据权利要求9所述的方法,其特征在于,所述方法还包括:
当所述第二训练任务的资源量达到最大资源需求量时,将所述第二训练任务从所述扩容任务队列中移除;
或,当所述扩容任务队列为空时,停止所述扩容操作。
13.根据权利要求9所述的方法,其特征在于,所述方法还包括:
获取所述空闲资源中的扩容可用资源;
当所述扩容可用资源的使用率达到使用阈值时,停止所述扩容操作;其中,当所述扩容可用资源包括多类型资源时,将所述多类型资源中使用率最高的资源与所述使用阈值进行比对。
14.根据权利要求1所述的方法,其特征在于,所述最小资源需求量的计算,包括:
获取所述第一训练任务中所携带的实例信息;
基于所述实例信息,确定最小实例集;
根据所述最小实例集中各实例所占的资源量,确定所述第一训练任务能够正常运行所需的最小资源需求量。
15.根据权利要求14所述的方法,其特征在于,获取各个训练任务的调度状态,包括:
基于本地信息副本获取集群的训练任务信息;
通过所述训练任务信息确定调度训练任务列表;
基于所述调度训练任务列表确定各个训练任务的调度状态。
16.根据权利要求15所述的方法,其特征在于,通过所述训练任务信息确定调度训练任务列表,包括:
通过所述训练任务信息获取训练任务;
从所述训练任务中筛选出调度训练任务,并基于所述调度训练任务生成所述调度训练任务列表。
17.根据权利要求15所述的方法,其特征在于,所述方法还包括:
将获取的集群信息及训练任务信息保存为本地信息副本;其中,所述集群信息包括集群资源,以及所述集群资源的使用信息。
18.一种分布式训练任务调度装置,其特征在于,所述装置包括:
状态获取模块,用于获取各个训练任务的调度状态,所述调度状态包括调度成功以及调度未成功;
资源获取模块,用于对于调度状态为调度未成功的第一训练任务,获取目标集群资源的空闲资源量以及所述第一训练任务的最小资源需求量;
资源分配模块,用于若所述空闲资源量小于所述最小资源需求量,从所述调度状态为调度成功的第二训练任务中筛选出可分配资源的训练任务,以获取所述可分配资源;
所述从所述调度状态为调度成功的第二训练任务中筛选出可分配资源的训练任务,以获取所述可分配资源,包括:
计算所述空闲资源量与所述最小资源需求量之间的资源量差值;
基于所述资源量差值,从所述调度成功的第二训练任务中筛选出未处于保护期且满足资源配出条件的目标训练任务;其中,所述资源配出条件包括所述第二训练任务的资源量大于所述第二训练任务的最小资源需求量;
对所述目标训练任务中的可配出资源进行资源抢占的任务调度,得到所述可分配资源;
任务调度模块,用于基于所述可分配资源以及所述空闲资源量,对所述第一训练任务进行任务调度。
19.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至17中任一项所述的方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至17中任一项所述的方法。
CN202310740013.1A 2023-06-21 2023-06-21 分布式训练任务调度方法、装置、设备及存储介质 Active CN116483546B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310740013.1A CN116483546B (zh) 2023-06-21 2023-06-21 分布式训练任务调度方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310740013.1A CN116483546B (zh) 2023-06-21 2023-06-21 分布式训练任务调度方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN116483546A CN116483546A (zh) 2023-07-25
CN116483546B true CN116483546B (zh) 2023-09-05

Family

ID=87223538

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310740013.1A Active CN116483546B (zh) 2023-06-21 2023-06-21 分布式训练任务调度方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116483546B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117649069A (zh) * 2023-11-07 2024-03-05 北京城建设计发展集团股份有限公司 基于遗传算法的多片区运维资源统筹调度方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112416599A (zh) * 2020-12-03 2021-02-26 腾讯科技(深圳)有限公司 一种资源调度方法、装置、设备及计算机可读存储介质
CN113867959A (zh) * 2021-09-29 2021-12-31 苏州浪潮智能科技有限公司 一种训练任务资源调度方法、装置、设备及介质
WO2022033024A1 (zh) * 2020-08-12 2022-02-17 中国银联股份有限公司 深度学习模型的分布式训练方法以及装置
CN114924851A (zh) * 2022-05-14 2022-08-19 云知声智能科技股份有限公司 训练任务的调度方法、装置、电子设备和存储介质
CN116166421A (zh) * 2022-12-15 2023-05-26 浙江大华技术股份有限公司 分布式训练任务的资源调度方法及其设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022033024A1 (zh) * 2020-08-12 2022-02-17 中国银联股份有限公司 深度学习模型的分布式训练方法以及装置
CN112416599A (zh) * 2020-12-03 2021-02-26 腾讯科技(深圳)有限公司 一种资源调度方法、装置、设备及计算机可读存储介质
CN113867959A (zh) * 2021-09-29 2021-12-31 苏州浪潮智能科技有限公司 一种训练任务资源调度方法、装置、设备及介质
CN114924851A (zh) * 2022-05-14 2022-08-19 云知声智能科技股份有限公司 训练任务的调度方法、装置、电子设备和存储介质
CN116166421A (zh) * 2022-12-15 2023-05-26 浙江大华技术股份有限公司 分布式训练任务的资源调度方法及其设备

Also Published As

Publication number Publication date
CN116483546A (zh) 2023-07-25

Similar Documents

Publication Publication Date Title
CN111768006B (zh) 一种人工智能模型的训练方法、装置、设备及存储介质
US8943353B2 (en) Assigning nodes to jobs based on reliability factors
US10831387B1 (en) Snapshot reservations in a distributed storage system
US9319281B2 (en) Resource management method, resource management device, and program product
CN111104222A (zh) 任务处理方法、装置、计算机设备和存储介质
CN110389843B (zh) 一种业务调度方法、装置、设备及可读存储介质
WO2012144985A1 (en) Scheduling map and reduce tasks of jobs for execution according to performance goals
CN112114950A (zh) 任务调度方法和装置、以及集群管理系统
CN113835865B (zh) 一种任务部署方法和装置、电子设备和存储介质
CN111104227B (zh) 一种K8s平台的资源控制方法、装置及相关组件
CN116483546B (zh) 分布式训练任务调度方法、装置、设备及存储介质
CN113032102B (zh) 资源重调度方法、装置、设备和介质
CN112148468A (zh) 一种资源调度方法、装置、电子设备及存储介质
CN113886069A (zh) 一种资源分配方法、装置、电子设备及存储介质
CN112860387A (zh) 分布式任务调度方法、装置、计算机设备及存储介质
CN112579692A (zh) 一种数据同步方法、装置、系统、设备及存储介质
US20230004440A1 (en) Allocating of computing resources for applications
CN112486642A (zh) 资源调度方法、装置、电子设备及计算机可读存储介质
CN114721824A (zh) 一种资源分配方法、介质以及电子设备
CN112988383A (zh) 一种资源分配方法、装置、设备以及存储介质
CN116881012A (zh) 一种容器应用垂直扩容方法、装置、设备及可读存储介质
CN110188258B (zh) 使用爬虫获取外部数据的方法及装置
CN113377500B (zh) 一种资源调度方法、装置、设备及介质
CN115686825A (zh) 资源管理方法、装置、服务器及存储介质
CN115080207A (zh) 基于容器集群的任务处理方法及装置

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
GR01 Patent grant
GR01 Patent grant