一种任务调度方法、装置、计算机设备和存储介质
文献发布时间:2023-06-19 12:10:19
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种任务调度方法、装置、计算机设备和存储介质。
背景技术
为满足不同的深度学习任务对应的不同资源需求,任务调度系统发挥着越来越重要的作用,现有技术中,应用于任务调度系统中的任务调度方法,大多基于深度学习任务的资源需求量,以分配尽量少的节点服务器为目标为每一个深度学习任务调度资源。
但是,在利用上述方法调度的资源执行深度学习任务时,存在执行速度慢、效率低的问题。
发明内容
本公开实施例至少提供一种任务调度方法、装置、计算机设备和存储介质。
第一方面,本公开实施例提供了一种任务调度方法,包括:
获取待处理的任务的任务信息;
基于所述任务信息,确定所述任务的任务类型;
基于所述任务类型,确定执行所述任务的目标节点服务器以及所述目标节点服务器上的目标资源;
将所述目标节点服务器以及所述目标节点服务器上的目标资源分配用于执行所述任务。
任务信息能够反映待处理的任务的资源需求量和通讯量需求信息等信息,从而,基于任务信息,能够确定与任务信息匹配的任务类型。不同任务类型的任务对应的确定目标节点服务器和目标资源的方式不同,基于确定的任务类型,能够确定出与该任务类型相匹配的资源确定方式,进而,利用确定的资源确定方式为待处理的任务分配目标资源,能够提高分配的目标资源的合理性,进而,利用确定目标资源执行待处理的任务,能够提高任务执行的速度和效率。
在一种可能的实施方式中,所述根据所述任务信息,确定所述任务的任务类型,包括:
根据所述任务信息,确定所述任务的资源需求量、所述任务的通讯量需求信息;
确定节点服务器中的资源数量;
基于确定的所述资源需求量、任务的通讯量需求信息、所述节点服务器中的资源数量,确定所述任务的任务类型。
这样,通讯量需求信息能够反映任务对于通信量和计算量的需求信息,资源需求量能够反映执行任务所需的空闲资源的数量,节点服务器中的资源数量能够反映出一个节点服务器中的最大空闲资源数量。进而,基于资源需求量、任务的通讯量需求信息、节点服务器中的资源数量,能够准确地确定出待处理任务的任务类型。
在一种可能的实施方式中,所述基于所述任务类型,确定执行所述任务的目标节点服务器以及所述目标节点服务器上的目标资源,包括:
基于所述任务的任务类型、所述任务的资源需求量以及每个节点服务器上的空闲资源,确定执行所述任务的目标节点服务器以及所述目标节点服务器上的目标资源。
这样,不同的任务类型的任务具有不同的资源分配优先级,比如,对通信量要求较高的单节点多资源通讯类型的任务,资源分配优先级较高,因此可以从空闲资源的数量大于资源需求量的节点服务器中筛选目标节点服务器,对于计算量较多的单节点多资源计算类型的任务,资源分配优先级相对单节点多资源通讯类型的优先级低,因此,可以从空闲资源的数量小于资源需求量的节点服务器中筛选目标节点服务器。这样,根据不同的任务类型来为任务分配目标节点服务器和目标节点服务器中的目标资源,能够实现将每个节点服务器中的空闲资源合理地分配给不同的任务,从而,提高任务调度和执行的速度和效率。
在一种可能的实施方式中,所述基于所述任务的任务类型、所述任务的资源需求量以及每个节点服务器上的空闲资源,确定执行所述任务的目标节点服务器以及所述目标节点服务器上的目标资源,包括:
基于所述任务的任务类型,确定与所述任务类型相匹配的至少一个初始节点服务器;
基于所述任务的资源需求量以及每个初始节点服务器上的空闲资源,从所述至少一个初始节点服务器中,确定执行所述任务的目标节点服务器以及所述目标节点服务器上的目标资源。
这样,基于任务类型,能够先筛选出能够执行待处理的任务的初始节点服务器,再根据任务的资源需求量和每个初始节点服务器上的空闲资源,筛选出最终的用于执行待处理的任务的目标节点服务器和目标资源,从而,筛选出的目标节点服务器和目标资源不仅能够执行待处理的任务,还能够具有最快的执行速度,从而,提高任务执行的速度和效率。
在一种可能的实施方式中,所述任务类型包括单节点多资源通讯类型;
所述从所述至少一个初始节点服务器中,确定执行所述任务的目标节点服务器,包括:
基于所述至少一个初始节点服务器中的每个初始节点服务器上的空闲资源的数量,筛选空闲资源的数量大于或等于所述资源需求量的初始节点服务器作为第一节点服务器;
基于所述第一节点服务器上的空闲资源和所述任务的资源需求量,确定执行所述任务的目标节点服务器。
这样,单节点多资源通讯类型对于通信量的需求较高,因此选取包括空闲资源的数量大于或等于资源需求量的第一节点服务器,而不是等待空闲资源的数量小于资源需求量的其他节点服务器释放资源,实现将空闲资源的数量较多的初始节点服务器优先分配给该类型的任务,以满足该类型的任务的通信量需求,进而,从第一节点服务器中选取执行任务的目标节点服务器,能够有效提高该类型的任务的调度和执行效率。
在一种可能的实施方式中,所述基于所述第一节点服务器上的空闲资源和所述任务的资源需求量,确定执行所述任务的目标节点服务器,包括:
确定所述资源需求量对应的至少一个预设拓扑结构;
在所述第一节点服务器中筛选具有任一个所述预设拓扑结构,并且空闲资源的数量最少的第一节点服务器作为所述目标节点服务器。
这样,具有预设拓扑结构的资源之间具有较高的通信质量,利用具有预设拓扑结构的目标节点服务器,能够进一步提高执行单节点多资源通讯类型的任务的速度。另外,选取空闲资源的数量最少的第一节点服务器,能够减少对空闲资源的数量多的第一节点服务器中的空闲资源的原有拓扑结构的拆分,实现对最优的拓扑结构的保护以及将其合理应用在单节点多资源通讯类型等其他任务上。
在一种可能的实施方式中,确定所述目标节点服务器上的目标资源,包括:
将所述目标节点服务器中的具有的预设拓扑结构作为目标拓扑结构;
将目标节点服务器中构成所述目标拓扑结构的空闲资源作为所述目标资源。
这样,能够实现利用具有目标拓扑结构的目标资源执行单节点多资源通讯类型的任务,提高执行该类型的任务的调度和执行效率。
在一种可能的实施方式中,所述任务类型包括单节点多资源计算类型;
所述从所述至少一个初始节点服务器中,确定执行所述任务的目标节点服务器,包括:
基于所述至少一个初始节点服务器中的每个初始节点服务器上的空闲资源的数量,筛选空闲资源的数量小于或等于所述资源需求量的第二节点服务器;
基于所述第二节点服务器上的空闲资源和所述任务的资源需求量,确定执行所述任务的目标节点服务器。
这样,单节点多资源计算类型对于计算量的需求较高,对于通信量的需求较小,因此,选取包括空闲资源的数量小于资源需求量的第二节点服务器,能够满足该类型的任务的通信量需求和计算量需求,在一定程度上提高该类型的任务的调度和执行效率。进一步地,该类型的任务不占用空闲资源的数量大于资源需求量的初始节点服务器,能够将该类节点服务器留给资源需求较高的单节点多资源通讯类型的任务,实现了在提高单节点多资源计算类型的任务的调度和执行效率的同时,提高了单节点多资源通讯类型的任务的调度和执行效率。进一步地,该实施方式能够避免对空闲资源的数量多的初始节点服务器中的空闲资源的原有拓扑结构的拆分,实现对最优的拓扑结构的保护以及将其合理应用在单节点多资源通讯类型等其他任务上。
在一种可能的实施方式中,所述基于所述第二节点服务器上的空闲资源和所述任务的资源需求量,确定执行所述任务的目标节点服务器,包括:
确定所述资源需求量对应的至少一个预设拓扑结构;
在所述第二节点服务器中筛选具有任一个所述预设拓扑结构的第二服务器作为所述目标节点服务器。
这样,具有预设拓扑结构的资源之间具有较高的通信质量,利用具有预设拓扑结构的目标节点服务器,能够提高单节点多资源计算类型的任务的调度和执行效率。
在一种可能的实施方式中,所述基于所述第二节点服务器上的空闲资源和所述任务的资源需求量,确定执行所述任务的目标节点服务器,还包括:
在从所述第二节点服务器中未筛选出具有任一个所述预设拓扑结构的第二节点服务器的情况下,经过预设时长或至少一个节点服务器上的空闲资源发生变化,重新获取每个节点服务器上的空闲资源的数量,并返回基于所述至少一个初始节点服务器中的每个初始节点服务器上的空闲资源的数量,筛选空闲资源的数量小于或等于所述资源需求量的第二节点服务器的步骤。
这样,利用重新获取每个节点服务器上的空闲资源的数量的方法,能够及时地为任务分配所需要的、且具有预设拓扑结构的空闲资源,进而,能够及时地执行单节点多资源计算类型的任务。另外,还能够避免对空闲资源的数量较多的初始节点服务器中的空闲资源的原有拓扑结构的拆分,实现对最优的拓扑结构的保护以及将其合理应用在单节点多资源通信类型等其他任务上。
在一种可能的实施方式中,所述任务类型包括多节点类型;
所述从所述至少一个初始节点服务器中,确定执行所述任务的目标节点服务器,包括:
基于所述任务的资源需求量,从所述至少一个初始节点服务器中,确定执行任务所需的第三节点服务器的最大数量;其中,所述第三节点服务器为空载的初始节点服务器;
将所述最大数量的第三节点服务器作为所述目标节点服务器。
这样,空载的第三节点服务器中的空闲资源具有最优的拓扑结构,选取最大数量的第三节点服务器作为目标节点服务器,能够保证用于执行多节点类型的任务的目标节点服务器都具有最优的拓扑结构,从而能够提高执行多节点类型的任务的效率。
在一种可能的实施方式中,所述从所述至少一个初始节点服务器中,确定执行所述任务的目标节点服务器,还包括:
在最大数量的第三节点服务器上的资源总量小于所述资源需求量的情况下,确定所述资源总量与所述资源需求量的差值;
基于每个初始节点服务器上的空闲资源的数量,筛选空闲资源的数量小于或等于所述差值的第四节点服务器;
基于所述第四节点服务器上的空闲资源和所述差值,确定执行所述任务的目标节点服务器。
这样,资源总量与资源需求量的差值能够反映任务除需要空载的目标节点服务器所包括的空闲资源之外,还需要在其他的初始节点服务器上选取目标资源,进而,基于差值选取第四节点服务器,能够实现对任务所需要的空闲资源的合理分配,从而,能够提高执行任务的速度。
在一种可能的实施方式中,所述任务类型包括单资源类型;
所述从所述至少一个初始节点服务器中,确定执行所述任务的目标节点服务器,包括:
基于所述至少一个初始节点服务器中的每个初始节点服务器上的空闲资源的数量,将空闲资源的数量与所述资源需求量相等的初始节点服务器作为所述目标节点服务器。
这样,单资源类型的任务只需要一个空闲资源即可以执行,因此,利用空闲资源的数量与资源需求量相等的目标节点服务器,就能够快速高效地执行任务。
在一种可能的实施方式中,还包括确定预设拓扑结构的步骤:
针对任一待匹配节点服务器中的空闲资源,确定该待匹配节点服务器中的任一数量的空闲资源对应的所有的拓扑结构;
基于空闲资源之间的通信介质,确定每个所述拓扑结构的通信等待时长;
基于所述通信等待时长,确定与该待匹配节点服务器中任一数量的空闲资源对应的预设拓扑结构。
这样,每个拓扑结构的通信等待时长能够表征利用该拓扑结构执行任务所需要的等待时间,利用通信等待时长,能够筛选出任务执行效率最高的预设拓扑结构,从而,利用具有预设拓扑结构的空闲资源执行任务,能够提高任务执行效率。
在一种可能的实施方式中,所述基于所述通信等待时长,确定与该待匹配节点服务器中任一数量的空闲资源对应的预设拓扑结构,包括:
按照所述通信等待时长从低到高的顺序,将所述拓扑结构进行排序;
将排序次序小于预设次序的拓扑结构,作为与该待匹配节点服务器对应的预设拓扑结构。
这样,利用预设次序筛选预设拓扑结构,能够保证筛选出的预设拓扑结构的通信等待时长相对较短,进而,利用该预设拓扑结构执行任务,能够实现以较快的速度执行任务。
在一种可能的实施方式中,所述基于所述通信等待时长,确定与该待匹配节点服务器中任一数量的空闲资源对应的预设拓扑结构,包括
针对任一数量的空闲资源,将所述通信等待时长小于预设等待阈值的拓扑结构,作为与该待匹配节点服务器中的该数量的空闲资源对应的预设拓扑结构。
这样,利用预设等待阈值筛选预设拓扑结构,能够保证筛选出的预设拓扑结构的通信等待时长小于预设等待阈值,进而,利用该预设拓扑结构执行任务,能够合理地降低执行任务需要的通信等待时长。
在一种可能的实施方式中,所述根据所述任务信息,确定所述任务的任务类型,包括:
获取每个节点服务器上的空闲资源;
根据所述任务信息,确定所述任务的资源需求量、所述任务的通讯量需求信息;
基于每个所述节点服务器上的空闲资源、所述任务的资源需求量、所述任务的通讯量需求信息,确定执行所述任务的目标节点服务器以及所述目标节点服务器上的目标资源;
基于执行所述任务的目标节点服务器以及所述目标节点服务器上的目标资源,确定所述任务的任务类型。
这样,在确定任务类型的同时确定目标节点服务器和目标资源,进而,可以直接根据将任务类型对应的目标节点服务器和目标资源分配给待处理的任务,省略了选取初始节点服务器的时间,提高了资源调度的速度和效率,从而,提高了任务执行的速度和效率。
在一种可能的实施方式中,所述方法还包括:
在获取的待处理的任务包括多个的情况下,基于每一个所述任务的任务类型,确定每个任务的资源分配优先级;
基于每一个所述任务的资源分配优先级,确定执行所述任务的目标节点服务器以及所述目标节点服务器上的目标资源。
这样,基于资源分配优先级为不同的任务分配资源,能够实现将每个节点服务器中的空闲资源合理地分配给不同的任务。
在一种可能的实施方式中,所述任务类型包括单节点多资源通讯类型、单节点多资源计算类型、多节点类型、单资源类型;
所述基于每一个所述任务的任务类型,确定每个任务的资源分配优先级,包括:
将所述单节点多资源通讯类型的任务的资源分配优先级设置为第一优先级;
将所述单节点多资源计算类型的任务的资源分配优先级设置为第二优先级;
将所述多节点类型的任务的资源分配优先级设置为第三优先级;
将所述单资源类型的任务的资源分配优先级设置为第四优先级。
这样,单节点多资源通讯类型的任务对于通信量的需求较高,将该任务类型的任务设置为第一优先级,能够满足其所需要的通信量,提高执行该任务类型的任务的速度,单节点多资源计算类型的任务对于计算量的需求较高,对于通信量的需求较小,将该任务类型的任务设置为第二优先级,能够满足其所需要的计算量,并能够避免对空闲资源的数量多的节点服务器中的空闲资源的原有拓扑结构的拆分,多节点类型的任务需要空载的节点服务器且该任务类型的任务相对较少,将其设置为第三优先级,能够保证及时地为单节点多资源通讯类型的任务和单节点多资源计算类型的任务分配资源,单资源类型的任务只需要一个资源即可以执行,因此设置为第四优先级能够保证在及时地为单节点多资源通讯类型的任务和单节点多资源计算类型的任务分配资源的基础上,不影响该任务类型的任务的执行速度。
在一种可能的实施方式中,所述任务信息包括所述资源需求量,所述方法还包括获取所述资源需求量的步骤:
获取所述待处理的任务的配置文件;
从所述配置文件中获取所述待处理的任务的资源需求量。
这样,直接从配置文件获取资源需求量,提高了确定资源需求量的速度。
在一种可能的实施方式中,所述任务信息包括所述通讯量需求信息,所述方法还包括获取所述通讯量需求信息的步骤:
获取所述待处理的任务的计算量信息和通信量信息;
基于所述计算量信息和通信量信息,确定所述通讯量需求信息。
这样,基于获取的计算量信息和通信量信息确定通讯量需求信息,能够保证确定的通讯量需求信息的准确性。
在一种可能的实施方式中,所述获取所述待处理的任务的计算量信息和通信量信息,包括:
基于获取的所述待处理的任务的配置文件或获取的所述待处理的任务请求,确定所述待处理的任务的计算量信息和通信量信息;其中,所述任务请求中包括所述计算量信息和通信量信息。
这样,基于对配置文件或任务请求的解析,确定计算量信息和通信量信息,能够提高确定的计算量信息和通信量信息的准确性。
在一种可能的实施方式中,所述任务信息包括所述通讯量需求信息,所述方法还包括获取所述通讯量需求信息的步骤:
获取所述待处理的任务的配置文件;
从所述配置文件中获取所述待处理的任务的通讯量需求信息。
这样,直接从配置文件中获取通讯量需求信息,省略了计算该信息的步骤,提高了确定通讯量需求信息的速度。
在一种可能的实施方式中,所述基于确定的所述资源需求量、任务的通讯量需求信息、所述节点服务器中的资源数量,确定所述任务的任务类型,包括:
基于所述资源需求量和所述节点服务器中的资源数量,确定所述待处理的任务对应的目标节点服务器的数量;
基于所述待处理的任务对应的目标节点服务器的数量和所述通讯量需求信息,确定所述待处理的任务的任务类型。
这样,基于节点服务器中的资源数量和节点服务器中的资源数量,能够准确地确定出任务的任务类型。
在一种可能的实施方式中,所述任务类型包括单节点多资源通讯类型、单节点多资源计算类型、多节点类型、单资源类型;
所述基于所述待处理的任务对应的目标节点服务器的数量和所述通讯量需求信息,确定所述待处理的任务的任务类型,包括:
在所述待处理的任务对应的目标节点服务器的数量等于1、所述待处理的任务对应的目标资源的数量大于1、并且所述通讯量需求信息指示所述待处理的任务的通信量需求高于计算量需求的情况下,确定所述待处理的任务的任务类型为单节点多资源通讯类型;
在所述待处理的任务对应的目标节点服务器的数量等于1、所述待处理的任务对应的目标资源的数量大于1、并且所述通讯量需求信息指示所述待处理的任务的计算量需求高于通信量需求的情况下,确定所述待处理的任务的任务类型为单节点多资源计算类型;
在所述待处理的任务对应的目标节点服务器的数量大于1的情况下,确定所述待处理的任务的任务类型为多节点类型;
在所述待处理的任务对应的目标资源的数量等于1的情况下,确定所述待处理的任务的任务类型为单资源类型。
这样,能够准确地确定出每个任务的任务类型。
第二方面,本公开实施例还提供一种任务调度方法,应用于客户端,包括:
确定待处理的任务的任务类型;
基于所述任务的任务类型,确定执行所述任务的目标节点服务器以及所述目标节点服务器上的目标资源;
将所述目标节点服务器的信息以及所述目标资源的信息发送给调度器,以使所述调度器将所述目标节点服务器以及所述目标资源分配给所述待处理的任务。
这样,客户端基于确定的任务类型先确定目标节点服务器和目标资源,然后将其发送给调度器的方式,调度器省略了确定目标节点服务器和目标资源的步骤,可以直接将目标节点服务器和目标资源分配给任务,从而,能够提高资源调度的速度以及任务的执行速度和效率。
在一种可能的实施方式中,所述确定待处理的任务的任务类型,包括:
确定所述任务的资源需求量、所述任务的通讯量需求信息以及所述节点服务器中的资源数量;
基于确定的所述资源需求量、任务的通讯量需求信息、所述节点服务器中的资源数量,确定所述任务的任务类型。
这样,通讯量需求信息能够反映任务对于通信量和计算量的需求信息,资源需求量能够反映执行任务所需的空闲资源的数量,节点服务器中的资源数量能够反映出一个节点服务器中的最大空闲资源数量。进而,基于资源需求量、任务的通讯量需求信息、节点服务器中的资源数量,能够准确地确定出待处理任务的任务类型。
在一种可能的实施方式中,所述确定待处理的任务的任务类型,包括:
获取每个节点服务器上的空闲资源;
基于每个所述节点服务器上的空闲资源、所述任务的资源需求量、所述任务的通讯量需求信息,确定执行所述任务的至少一个目标节点服务器以及所述目标节点服务器上的目标资源;
基于所述至少一个目标节点服务器以及所述目标节点服务器上的目标资源,确定所述任务的任务类型。
这样,基于空闲资源确定任务类型,能够保证当前确定的目标节点服务器和目标资源能够直接用于执行任务。
第三方面,本公开实施例还提供一种任务调度装置,应用于调度器端,包括:
获取模块,用于获取待处理的任务的任务信息;
第一确定模块,用于基于所述任务信息,确定所述任务的任务类型;
第二确定模块,用于基于所述任务类型,确定执行所述任务的目标节点服务器以及所述目标节点服务器上的目标资源;
分配模块,用于将所述目标节点服务器以及所述目标节点服务器上的目标资源分配用于执行所述任务。
第四方面,本公开实例还包括一种任务调度装置,应用于客户端,包括:
第三确定模块,用于确定待处理的任务的任务类型;
第四确定模块,用于基于所述任务的任务类型,确定执行所述任务的目标节点服务器以及所述目标节点服务器上的目标资源;
发送模块,用于将所述目标节点服务器的信息以及所述目标资源的信息发送给调度器,以使所述调度器将所述目标节点服务器以及所述目标资源分配给所述待处理的任务
第五方面,本公开可选实现方式还提供一种计算机设备,处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤,或者,执行上述第二方面,或第二方面中任一种可能的实施方式中的步骤。
第六方面,本公开可选实现方式还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤,或者,执行上述第二方面,或第二方面中任一种可能的实施方式中的步骤。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种应用于调度器端的任务调度方法的流程图;
图2示出了本公开实施例所提供的一种节点服务器的结构示意图;
图3示出了本公开实施例所提供的一种确定预设拓扑结构的方法的流程图;
图4示出了本公开实施例所提供的一种节点服务器之间的拓扑关系示意图;
图5示出了本公开实施例所提供的一种多节点类型任务的拓扑结构示意图;
图6a示出了本公开实施例所提供的8资源对应的预设拓扑结构示意图;
图6b示出了本公开实施例所提供的7资源对应的预设拓扑结构示意图;
图6c示出了本公开实施例所提供的6资源对应的预设拓扑结构示意图;
图6d示出了本公开实施例所提供的5资源对应的预设拓扑结构示意图;
图6e示出了本公开实施例所提供的4资源对应的预设拓扑结构示意图;
图6f示出了本公开实施例所提供的3资源对应的预设拓扑结构示意图;
图6g示出了本公开实施例所提供的2资源对应的预设拓扑结构示意图;
图7示出了本公开实施例所提供的一种包括不同空闲资源的初始节点服务器的拆分示意图;
图8示出了本公开实施例所提供的一种应用于客户端的任务调度方法的流程图;
图9示出了本公开实施例所提供的一种应用于调度器端的任务调度装置的示意图;
图10示出了本公开实施例所提供的一种应用于客户端的任务调度装置的示意图;
图11示出了本公开实施例所提供的一种计算机设备结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
另外,本公开实施例中的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
在本文中提及的“多个或者若干个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
经研究发现,为满足不同的深度学习任务对应的不同资源需求,任务调度系统发挥着越来越重要的作用,现有技术中,应用于任务调度系统中的任务调度方法,大多基于深度学习任务的资源需求量,以分配尽量少的节点服务器为目标为每一个深度学习任务调度资源。但是,在利用上述方法调度的资源执行深度学习任务时,存在执行速度慢、效率低的问题。
基于上述研究,本公开提供了一种任务调度方法、装置、计算机设备和存储介质,任务信息能够反映待处理的任务的资源需求量和通讯量需求信息等信息,从而,基于任务信息,能够确定与任务信息匹配的任务类型。不同任务类型的任务对应的确定目标节点服务器和目标资源的方式不同,基于确定的任务类型,能够确定出与该任务类型相匹配的资源确定方式,进而,利用确定的资源确定方式为待处理的任务分配目标资源,能够提高分配的目标资源的合理性,进而,利用确定目标资源执行待处理的任务,能够提高任务执行的速度和效率。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
需要说明的是,本公开实施例中所提到的特定名词包括:
GPU:Graphics Processing Unit,图形处理器,又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器;
CPU:Central Processing Unit,中央处理器,作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元;
NIC:Network Interface Controller,网络接口控制器,又称网络接口控制器,网络适配器,网卡,或局域网接收器,是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件;
PCIe:peripheral component interconnect express,是一种高速串行计算机扩展总线标准;
QPI:Quick Path Interconnect,又名CSI(Common System Interface)公共系统接口,是一种可以实现芯片间直接互联的架构;
NVLink,是英伟达开发并推出的一种总线及其通信协议。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种任务调度方法进行详细介绍,本公开实施例所提供的任务调度方法的执行主体一般为具有一定计算能力的计算机设备,在一些可能的实现方式中,该任务调度方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
下面以执行主体为计算机设备为例对本公开实施例提供的任务调度方法加以说明。
如图1所示,为本公开实施例提供的一种应用于调度器端的任务调度方法的流程图,可以包括以下步骤:
S101:获取待处理的任务的任务信息。
这里,待处理的任务可以是深度学习任务,是任务调度系统基于用户在客户端提交的预定义的配置文件获取的任务,任务调度系统的本质可以是进行资源调度的调度器。任务调度系统中可以包括若干个节点服务器,每个节点服务器上包括一定数量的计算资源和一定数量的CPU,其中,节点服务器可以为GPU节点服务器,计算资源可以是GPU节点服务器中的GPU,CPU之间可以利用QPI连接进行通信,一个节点服务器中的GPU和CPU可以利用PCIe进行通信,一个节点服务器中的CPU可以利用NIC和其他节点服务器中的CPU进行通信,一个节点服务器中的所有GPU可以利用NVLink连接进行通信。
如图2所示,为本公开实施例所提供的一种节点服务器的结构示意图,其中,节点服务器中可以包括2个CPU服务器(CPU0和CPU1)和8个GPU(V100GPU0,V100GPU1,V100GPU2,V100GPU3,V100GPU4,V100GPU5,V100GPU6,V100GPU7),PCIe Switches表示利用PCIe进行通信。
任务调度系统在获取任务的同时,还可以获取到该任务的任务信息。其中,任务信息为一种用于表征待处理的任务的资源需求量、通讯量需求信息的信息。
S102:基于任务信息,确定任务的任务类型。
这里,任务类型能够反映任务所需要的节点服务器的数量、GPU资源的数量和通讯量需求,执行不同任务类型的任务选取的节点服务器的数量不同。不同的任务可以具有不同的任务类型,针对同一任务,在选取的节点服务器的数量不同的情况下,该任务的任务类型也不同。
因此,具体实施时,可以基于获取的任务信息所表征的资源需求量、通讯量需求信息等信息,确定任务的任务类型。
S103:基于任务类型,确定执行任务的目标节点服务器以及目标节点服务器上的目标资源。
这里,针对不同任务类型的任务,确定目标节点服务器和目标资源的方式不同。
在确定任务类型之后,可以根据每个节点服务器上的空闲资源以及该任务的任务类型,确定可以用于执行任务的目标节点服务器以及目标节点服务器上的目标资源。其中,目标资源为空闲资源。
S104:将目标节点服务器以及目标节点服务器上的目标资源分配用于执行任务。
这里,在确定执行任务的目标节点服务器以及目标节点服务器上的目标资源之后,任务调度系统可以将目标节点服务器以及目标节点服务器上的目标资源分配给任务以执行该任务。
这样,任务信息能够反映待处理的任务的资源需求量和通讯量需求信息等信息,从而,基于任务信息,能够确定与任务信息匹配的任务类型。不同任务类型的任务对应的确定目标节点服务器和目标资源的方式不同,基于确定的任务类型,能够确定出与该任务类型相匹配的资源确定方式,进而,利用确定的资源确定方式为待处理的任务分配目标资源,能够提高分配的目标资源的合理性,进而,利用确定目标资源执行待处理的任务,能够提高任务执行的速度和效率。
在一种实施例中,可以按照以下步骤确定任务的任务类型:
步骤一、根据任务信息,确定任务的资源需求量、任务的通讯量需求信息。
这里,不同的任务,需要不同数量的空闲GPU执行,任务的资源需求量可以是执行任务所需要的GPU的数量。通讯量需求信息用于表征该任务所对应的计算量和通信量之间的比值。一个任务在被确定之后,其所需要的GPU的数量也将被确定,即可以确定任务的资源需求量,同时,一个任务在被确定之后,其所对应的通讯量需求信息也将被确定。因此,一个任务在被确定之后,用于表征资源需求量和通讯量需求信息的任务信息也被确定。
进而,任务调度系统可以根据获取的任务的任务信息,确定其所表征的该任务的资源需求量和通讯量需求信息。
步骤二、确定节点服务器中的资源数量。
这里,资源数量即GPU数量。节点服务器中的资源数量等同于节点服务器中的资源的数量。
具体实施时,任务调度系统中每个节点服务器上包括的GPU数量可以不相同,例如,任务调度系统中的节点服务器可以包括8GPU的节点服务器和4GPU的节点服务器,这里不进行限定。
步骤三、基于确定的资源需求量、任务的通讯量需求信息、节点服务器中的资源数量,确定任务的任务类型。
具体实施时,可以基于资源需求量和节点服务器中的资源数量,确定执行该待处理的任务所需要的节点服务器的数量,也即确定该待处理的任务对应的目标节点服务器的数量。其中,
进而,可以基于待处理的任务对应的目标节点服务器的数量和确定的该任务的通讯量需求信息,确定该待处理的任务的任务类型。
在一种实施例中,任务类型可以包括单节点多资源通讯类型、单节点多资源计算类型、多节点类型和单资源类型。
这里,基于任务的资源需求量,可以将任务划分为单节点类型任务和多节点类型任务,其中,单节点类型任务利用一个目标节点服务器中的资源即可完成,多节点类型任务需要至少两个目标节点服务器中的资源才可以完成;对于单节点任务,基于任务的资源需求量,又可以划分为单节点多资源类型任务和单资源类型任务,其中,单资源类型任务表示该任务只需要一个目标节点服务器中的一个空闲资源即可以完成,单节点多资源类型任务需要一个目标节点服务器中的多个空闲资源才可以完成;另外,根据任务的通讯量需求信息,又可以将单节点多资源类型任务划分为单节点多资源通讯类型任务、单节点多资源计算类型任务,其中,单节点多资源通讯类型任务表示该任务对于通信量的需求较高,单节点多资源计算类型任务表示该任务对于计算量的需求较高。
具体实施时,在确定待处理的任务对应的目标节点服务器的数量等于1、待处理的任务对应的目标资源的数量大于1、并且通讯量需求信息指示待处理的任务的通信量需求高于计算量需求的情况下,确定待处理的任务的任务类型为单节点多资源通讯类型。
在确定待处理的任务对应的目标节点服务器的数量等于1、待处理的任务对应的目标资源的数量大于1、并且通讯量需求信息指示待处理的任务的计算量需求高于通信量需求的情况下,确定待处理的任务的任务类型为单节点多资源计算类型。
在确定待处理的任务对应的目标节点服务器的数量大于1的情况下,确定待处理的任务的任务类型为多节点类型;
在确定待处理的任务对应的目标资源的数量等于1的情况下,确定待处理的任务的任务类型为单资源类型。
例如,任务的资源需求量为7,节点服务器上资源的数量为8,计算量和通信量之间的比值大于1,则可以确定该任务所需要的目标节点服务器的数量为1,进而,基于比值大于1和目标节点服务器的数量1,可以确定该任务的任务类型为单节点多资源计算类型。
在一种实施例中,针对S103,可以按照以下步骤实施:
基于任务的任务类型、任务的资源需求量以及每个节点服务器上的空闲资源,确定执行任务的目标节点服务器以及目标节点服务器上的目标资源。
这里,每个节点服务器上的GPU可以单独使用,每个节点服务器上的空闲GPU为当前未使用的GPU。
具体实施时,可以根据每个节点服务器上的空闲GPU的数量,将每个节点服务器划分到不同的空闲资源链表中,其中,每个空闲资源链表仅由包括一种空闲GPU的数量的节点服务器组成。例如,空闲资源链表可以为1空闲GPU链表,2空闲GPU链表等,其中,1空闲GPU链表表示链表中的节点服务器均为只有一个GUP空闲的节点服务器。
在确定任务的任务类型之后,可以根据先基于任务的任务类型,确定与任务类型相匹配的至少一个初始节点服务器。
这里,初始节点服务器可以为从空闲链表中选出来的节点服务器,可以为一组能够用于执行待处理的任务的多个节点服务器或单个节点服务器。例如,某一任务为单节点多资源通讯类型的任务,资源需求量为3,则可以从空闲链表中选取多个资源数量大于或等于3的多个节点服务器作为初始节点服务器,以及多组节点服务器,其中,每组节点服务器中的资源数量大于或等于3。
进而,可以基于任务的资源需求量以及每个初始节点服务器上的空闲资源,从至少一个初始节点服务器中,确定执行任务的目标节点服务器以及目标节点服务器上的目标资源。
具体实施时,基于任务的资源需求量以及每个初始节点服务器上的空闲资源,可以至少一个初始节点服务器中,选取目标数量的目标节点服务器,并可以基于任务的资源需求量,确定在每个目标节点服务器上选取的用于执行任务的目标资源。其中,目标数量为上述实施例中确定的目标服务器的数量。
例如,在确定任务的任务类型为多节点类型,资源需求量为13,节点服务器上资源数量为8的情况下,可以在任务调度系统中的节点服务器中选取两个目标节点服务器,其中一个目标节点服务器为空载的节点服务器,一个目标节点服务器中包括的空闲资源的数量为5。
在一种实施例中,在任务类型包括单节点多资源通讯类型的情况下,可以按照以下步骤从至少一个初始节点服务器中,确定执行任务的目标节点服务器:
步骤一、基于至少一个初始节点服务器中的每个初始节点服务器上的空闲资源的数量,筛选空闲资源的数量大于或等于资源需求量的初始节点服务器作为第一节点服务器;
步骤二、基于第一节点服务器上的空闲资源和任务的资源需求量,确定执行任务的目标节点服务器。
这里,由于单节点多资源通讯类型任务对于通信量的需求较高,所以可以基于每个初始节点服务器上的空闲资源的数量,筛选出空闲资源的数量大于或等于任务的资源需求量的第一节点服务器,这样,能够保证第一节点服务器中存在足够数量的空闲资源用于满足任务的通信量需求。具体实施时,筛选出的第一节点服务器可以包括一个或多个。
进而,可以根据资源需求量,从筛选出的第一节点服务器中选取用于执行任务的目标节点服务器。
具体实施时,在筛选出第一节点服务器之后,可以根据任务的资源需求量,确定资源需求量对应的至少一个预设拓扑结构,其中,预设拓扑结构是执行任务所需要的空闲资源之间的较优的拓扑结构,将空闲资源利用预设拓扑结构进行连接以执行任务,可以减少通信等待时长,提高执行任务的速度。
在一种实施例中,可以按照如图3所示的方法确定任一空闲资源对应的预设拓扑结构,如图3所示,为本公开实施例所提供的一种确定预设拓扑结构的方法的流程图,可以包括以下步骤:
S301:针对任一待匹配节点服务器中的空闲资源,确定该待匹配节点服务器中的任一数量的空闲资源对应的所有的拓扑结构。
S302:基于空闲资源之间的通信介质,确定每个拓扑结构的通信等待时长。
S303:基于通信等待时长,确定与该待匹配节点服务器中任一数量的空闲资源对应的预设拓扑结构。
这里,待匹配节点服务器中包括任一数量的空闲资源,待匹配节点服务器可以为任一节点服务器。资源需求量和空闲资源相对应,具体的,一种资源需求量可以与至少一个待匹配节点服务器中的空闲资源相对应。例如,资源需求量为7,待匹配节点服务器可以为一个空闲资源数量为7的节点服务器,或者,待匹配节点服务器可以为一组包括的空闲资源的数量为7的多个节点服务器,比如,可以为由一个包括3空闲资源的节点服务器和一个包括4空闲资源的节点服务器组成的一组节点服务器。因此,该方法也为确定任一资源需求量对应的预设拓扑结构的方法。
任务调度系统中所包括的不同节点服务器以及同一节点服务器中的GPU和CPU之间通信质量是不同的,常见的通信方式如上述实施例所提及的QPI、PCIe、NIC和NVLink4种,其中,NVLink的通信速率大于QPI的通信速率,QPI的通信速率待大于利用PCIe、NIC和网络的通信速率。通信介质可以为根据通信方式对应的介质确定。
针对任一待匹配节点服务器中的空闲资源,可以先确定该空闲资源对应的所有的拓扑结构,然后基于待匹配节点服务器中的空闲资源之间的通信介质,确定每一个拓扑结构的通信等待时长。
这里,在待匹配节点服务器为一组节点服务器的情况下,可以确定该一组节点服务器中的空闲资源可以组成的所有拓扑结构,然后,可以基于节点服务器之间的通信介质和空闲资源之间的通信介质,确定每一个拓扑结构的通信等待时长。
进一步的,可以根据每一个拓扑结构的通信等待时长,对所有的拓扑结构进行筛选,筛选出符合预设条件的拓扑结构作为预设拓扑结构。
具体实施时,可以利用先验的方式,确定每一数量的空闲资源在不同的拓扑结构下对应的通信等待时长,其中,一种数量的空闲资源可以对应于多种拓扑结构,如图4所示,为本公开实施例所提供的一种节点服务器之间的拓扑关系示意图,其中,NVLINK/NVSWITCH用于GPU之间的通信,Network(网络)和NIC用于不同的节点服务器之间的通信。
针对每个拓扑结构,利用具有该拓扑结构的GPU,基于ring allreduce模型执行该数量的空闲资源对应的资源需求量的任务,其中,在基于ring allreduce模型执行任务的过程中,需要每一个GPU依次进行通信,因此,总的通信等待时长将受到拓扑结构中GPU之间的最小的通信带宽的限制。
具体实施时,针对单一节点服务器内的allreduce通信等待时长,可以按照公式一确定:
其中,T表示通信等待时长,n表示需要的GPU的数量,α表示恒定的建立通信的时延,s表示ring allreduce模型的大小(即通信规模大小),BW表示拓扑结构下的GPU之间通信带宽的集合,min(BW)表示拓扑结构中GPU之间的最小的通信带宽。
在一种实施例中,针对空闲资源对应的任务为多节点类型任务的情况,执行任务所需要的一次allreduce的通信等待时长,可以包括单一节点服务器内的allreduce通信等待时长和节点服务器之间的allreduce通信等待时长,其中,单一节点服务器内的allreduce通信等待时长可以包括节点服务器内一次reduce操作和节点服务器内一次broadcast操作。
如图5所示,为本公开实施例所提供的一种多节点类型任务的拓扑结构示意图,其中,bw
具体实施时,节点服务器内一次reduce操作和节点服务器内一次broadcast操作的通信等待时长可以根据公式二确定:
节点服务器之间的allreduce通信等待时长可以根据公式三确定:
其中,m表示使用的节点服务器的数量。
另外,针对ring allreduce模型,在利用节点服务器和节点服务器内的GPU执行任务时,通常采用双层通信方式,因此,可以确定执行任务所需要的一次双层allreduce的通信等待时长可以如公式四所示:
max
其中,max
进而,根据上述公式一~公式四,可以确定如公式五所示的任一数量的空闲资源对应的任务j
c
其中,N
对于任务j
min∑
其中,min∑
在一种实施例中,基于公式五,可以确定每一种数量的空闲资源下的所有拓扑关系的总的通信等待时长,进而,可以将每一种拓扑关系的总的通信等待时长按照从低到高的顺序进行排序,然后,利用预设次序,将排序次序小于预设次序的拓扑结构,作为该数量的空闲资源对应的预设拓扑结构,也即,作为与该待匹配节点服务器对应的预设拓扑结构。其中,预设次序可以根据实际需要设置,这里不进行限定。
这样,利用预设次序对拓扑结构进行筛选,得到的预设拓扑结构对应的通信等待时长在能够满足执行空闲资源对应的资源需求量的任务的时间要求的基础上,还能够实现尽量降低执行该资源需求量的任务的时间的目的。
在另一个实施例中,在基于公式五,确定每一种资源需求量下的所有拓扑关系的通信等待时长之后,可以将通信等待时长小于预设等待阈值的拓扑结构,作为与该资源需求量对应的预设拓扑结构,也即,可以作为与该待匹配节点服务器对应的预设拓扑结构。这样,利用该预设拓扑结构执行任务,能够合理地降低执行任务需要的通信等待时长,其中,预设等待阈值可以根据实际需要设置,这里不进行限定。
另外,由于NVLink的通信速率最高,所以最优的拓扑结构中的资源之间的通信方式应该均为NVLink。
具体实施时,针对节点服务器上资源数量为8的情况下,可以确定以下不同资源需求量下任务的预设拓扑结构,其中,不同资源需求量下的任务的预设拓扑结构是指单个节点服务器上不同资源需求量对应的预设拓扑结构,如图6a所示,为本公开实施例所提供的8资源对应的预设拓扑结构示意图,如图6b所示,为本公开实施例所提供的7资源对应的预设拓扑结构示意图,如图6c所示,为本公开实施例所提供的6资源对应的预设拓扑结构示意图,如图6d所示,为本公开实施例所提供的5资源对应的预设拓扑结构示意图,如图6e所示,为本公开实施例所提供的4资源对应的预设拓扑结构示意图,如图6f所示,为本公开实施例所提供的3资源对应的预设拓扑结构示意图,如图6g所示,为本公开实施例所提供的2资源对应的预设拓扑结构示意图。
进一步的,在基于上述方式确定资源需求量对应的至少一个预设拓扑结构以及第一节点服务器之后,可以从第一节点服务器中筛选具有任一个预设拓扑结构第一节点服务器,这样,利用筛选出的具有任一个预设拓扑结构的第一节点服务器执行该任务,能够减少通信等待时长,进而,在从筛选出的具有任一个预设拓扑结构的第一节点服务器中,选取空闲资源的数量最少的第一节点服务器作为目标节点服务器,这样,利用空闲资源数量最小的第一节点服务器作为目标节点服务器,能够减少对具有任一个预设拓扑结构且空闲资源数量较多的第一节点服务器的原有拓扑结构的拆分,实现对最优的拓扑结构的保护以及将其合理应用在单节点多资源通信类型等其他任务上。
具体实施时,在筛选目标节点服务器的过程中,如果存在空闲资源数量等于资源需求量且具有任一个预设拓扑结构的第一节点服务器,则可以直接将该第一节点服务器作为目标节点服务器。
如果只存在空闲资源数量大于资源需求量且具有任一个预设拓扑结构的第一节点服务器,则选取空闲资源数量最小的第一节点服务器作为目标节点服务器,然后将该目标节点服务器中的空闲资源进行拆分,拆分出具有预设拓扑结构的资源用于执行任务,如图7所示,为本公开实施例所提供的一种包括不同空闲资源的初始节点服务器的拆分示意图,其中,Slot可以表示初始节点服务器,并且由图7可知,在一个初始节点服务器中包括的资源数量数为8时,6空闲资源拆分得到的最优的拓扑结构只能是4空闲资源加2空闲资源模式,5空闲资源拆分得到的最优的拓扑结构只能是3空闲资源加2空闲资源模式,job可以表示任务,8GPUjobs可以表示需要8空闲GPU可以完成的任务,Empty 7GPU Slot表示7空闲GPU的节点服务器。
这里,如果筛选出的具有任一个预设拓扑结构且空闲资源数量最小的第一节点服务器包括多个,则可以随机选取任一个第一节点服务器作为目标节点服务器。
另外,在确定目标节点服务器之后,可以将目标节点服务器具有的预设拓扑结构作为目标拓扑结构,然后,可以将目标节点服务器中构成目标拓扑结构的空闲资源作为目标资源。具体实施时,在确定目标节点服务器中的空闲资源数量等于资源需求量情况下,可以将其中所有的空闲资源作为目标资源;在确定目标节点服务器中的空闲资源数量大于资源需求量且空闲资源数量最小的情况下,可以将拆分出的具有目标拓扑结构的资源作为目标资源用于执行任务。
在另一种实施例中,如果未能筛选出可以满足资源需求量的第一节点服务器,则需要暂缓执行该任务,直至确定存在满足资源需求量且具有至少一个预设拓扑结构的第一节点服务器时,再执行该任务。
在一种实施例中,在任务类型包括单节点多资源计算类型的情况下,可以按照以下步骤从至少一个初始节点服务器中,确定执行任务的目标节点服务器:
步骤一、基于至少一个初始节点服务器中的每个初始节点服务器上的空闲资源的数量,筛选空闲资源的数量小于或等于资源需求量的第二节点服务器;
步骤二、基于第二节点服务器上的空闲资源和任务的资源需求量,确定执行任务的目标节点服务器。
这里,由于单节点多资源通讯类型任务对于计算量的需求高于对于通信量的需求,所说可以基于至少一个初始节点服务器中的每个初始节点服务器上的空闲资源的数量,筛选出空闲资源的数量小于或等于资源需求量的第二节点服务器。然后可以确定资源需求量对应的至少一个预设拓扑结构,在第二节点服务器中筛选是否存在具有任一个预设拓扑结构的第二节点服务器,如果是,则将该第二节点服务器作为目标节点服务器,并将该目标节点服务器中的空闲资源作为目标资源,这里,由于筛选的第二节点服务器的空闲资源的数量是小于或等于资源需求量的,所以筛选出的具有任一个预设拓扑结构的第二节点服务器中所包括的空闲资源的数量一定是等于资源需求量的。
如果在从第二节点服务器中未筛选出具有任一个预设拓扑结构的第二节点服务器的情况下,则等待执行该任务,然后经过预设时长重新获取每个节点服务器上的空闲资源,进而,重新筛选出空闲资源的数量小于或等于资源需求量的第二节点服务器,直至可以从第二节点服务器中筛选出能够执行该任务的目标节点服务器时,为该任务分配资源。
或者,在具体实施时,任务调度系统中,单资源类型的任务的数量较多,所以节点服务器中的资源经常会被单独使用,而单资源类型的任务执行速度较快,所以节点服务器中会经常存在刚刚释放的单个资源,所以可以在确定至少一个节点服务器上的空闲资源的数量发生变化时,确定该节点服务器上已有的空闲资源和刚刚释放的单个资源是否可以组成资源需求量对应的任一个预设拓扑结构,如果是,则将该节点服务器作为目标节点服务器,将该目标节点服务器中的资源作为目标资源,进而可以将该目标节点服务器中的目标资源分配给该任务。
在一种实施例中,在任务类型包括多节点类型的情况下,需要选取多个节点服务器用于执行该任务类型的任务,另外,根据公式一~公式六可以得出结论,对于多节点类型的任务,可以根据其对应的资源需求量以及节点服务器上包括的空闲资源的最大数量(即节点服务器上包括的资源数量),先从初始节点服务器中为其分配最大数量的空载的第三节点服务器,并将空载的第三节点服务器作为目标服务器。例如,资源需求量为35,节点服务器上包括的资源数量为8,则先为其分配4个空载的第三节点服务器。
进一步的,在最大数量的第三节点服务器上所包括的资源总量小于资源需求量的情况下,则说明仅仅使用最大数量的第三节点服务器还不能够完成任务,还需要再使用一个初始节点服务器上的部分空闲资源以执行该任务,因此,需要先确定资源总量与资源需求量的差值,其中,该差值为另外需要使用的一个初始节点服务器上包括的空闲资源的数量。
在确定差值之后,可以按照为单节点多资源计算类型的任务分配资源的方法,为该多节点类型的任务选取目标节点服务器。具体实施时,可以基于每个初始节点服务器上的空闲资源的数量,筛选空闲资源的数量小于或等于差值的第四节点服务器,然后基于上述实施例中确定单节点多资源计算类型的任务的目标节点服务器的方法,从第四节点服务器中筛选出目标节点服务器,进而,可以将选取的空载的目标节点服务器和该目标节点服务器一起分配给该多节点类型的任务。
另外,如果在为多节点类型的任务选取空载的目标节点服务器的过程中,不存在足够数量空载的节点服务器时,则等待执行该任务,直至存在足够数量空载的节点服务器时,为其分配节点服务器和资源。
在一种实施例中,在任务类型包括单资源类型的情况下,该任务类型的任务的资源需求量为1,只需要单资源即可完成,因此可以直接基于每个初始节点服务器上的空闲资源的数量,将空闲资源的数量与资源需求量相等的初始节点服务器作为目标节点服务器,如果空闲资源的数量与资源需求量相等的初始节点服务器包括多个,则可以随机选取任一个初始节点服务器作为目标服务器。
另外,在不存在空闲资源的数量与资源需求量相等的初始节点服务器的情况下,则等待执行该任务,直至存在空闲资源的数量与资源需求量相等的节点服务器时,为其分配资源并执行。
在一种实施例中,针对S102,还可以按照以下步骤确定任务的任务类型:
步骤一、获取每个节点服务器上的空闲资源。
这里,在获取到待处理的任务的任务信息之后,可以同时获取每个节点服务器上的空闲资源。
步骤二、根据任务信息,确定任务的资源需求量、任务的通讯量需求信息。
本步骤的具体实施过程可以参照上述实施例中确定资源需求量和通讯量需求信息的步骤,这里不再赘述。
步骤三、基于每个节点服务器上的空闲资源、任务的资源需求量、任务的通讯量需求信息,确定执行任务的目标节点服务器以及目标节点服务器上的目标资源。
这里,任务调度系统可以直接基于该待处理的任务所需要的资源需求量和每个节点服务器上的空闲资源以及通讯量需求信息,确定能够满足资源需求量和通讯需求量信息对应的通讯量需求的目标节点服务器和目标资源。其中,目标节点服务器中的目标资源具有最优的预设拓扑结构。
步骤四、基于执行任务的目标节点服务器以及目标节点服务器上的目标资源,确定任务的任务类型。
这里,可以基于确定的目标节点服务器的数量、目标节点服务器上的目标资源的数量和通讯量需求信息,确定该任务的任务类型。
这样,在确定任务类型的同时确定目标节点服务器和目标资源,进而,可以直接根据将任务类型对应的目标节点服务器和目标资源分配给待处理的任务,省略了选取初始节点服务器的时间,提高了资源调度的速度和效率,从而,提高了任务执行的速度和效率。
在另一种实施方式中,用户还可以在提交的配置文件中直接标注待处理的任务的任务类型,进而,任务调度系统可以直接从获取的配置文件中确定该任务的任务类型,并将其作为获取的该任务的任务信息。
在一种实施例中,不同任务类型的任务具有不同的资源分配优先级,在获取的待处理的任务包括多个的情况下,可以先确定每一个任务的任务类型,然后基于每一个任务的任务类型,确定每个任务的资源分配优先级。
进而,可以基于每个任务的资源分配优先级,确定执行该任务的目标节点服务器以及目标节点服务器上的目标资源,从而实现合理地为每个任务分配资源。
具体实施时,可以将单节点多资源通讯类型的任务的资源分配优先级设置为第一优先级;将单节点多资源计算类型的任务的资源分配优先级设置为第二优先级;将多节点类型的任务的资源分配优先级设置为第三优先级;将单资源类型的任务的资源分配优先级设置为第四优先级。
这样,单节点多资源通讯类型的任务对于通信量的需求较高,将该任务类型的任务设置为第一优先级,能够满足其所需要的通信量,提高执行该任务类型的任务的速度,单节点多资源计算类型的任务对于计算量的需求较高,对于通信量的需求较小,将该任务类型的任务设置为第二优先级,能够满足其所需要的计算量,并能够避免对空闲资源的数量多的节点服务器中的空闲资源的原有拓扑结构的拆分,多节点类型的任务需要空载的节点服务器且该任务类型的任务相对较少,将其设置为第三优先级,能够保证及时地为单节点多资源通讯类型的任务和单节点多资源计算类型的任务分配资源,单资源类型的任务只需要一个资源即可以执行,因此设置为第四优先级能够保证在及时地为单节点多资源通讯类型的任务和单节点多资源计算类型的任务分配资源的基础上,不影响该任务类型的任务的执行速度。
在一种实施例中,任务信息可以包括资源需求量,因此,可以按照以下步骤获取资源需求量:
步骤一、获取待处理的任务的配置文件。
步骤二、从配置文件中获取待处理的任务的资源需求量。
具体实施时,用户在客户端提交与待处理的任务相关的预定义的配置文件的时候,可以直接在配置文件中确定该待处理的任务的资源需求量信息。进而,任务调度系统可以直接从获取的配置文件中获取待处理的任务的资源需求量,并将其作为获取的该任务的任务信息。
这样,不需要对配置文件进行解析就能够获取资源需求量,提高了确定资源需求量的速度。
在一种实施例中,任务信息可以包括通讯量需求信息,因此,可以按照以下步骤获取通讯量需求信息:
步骤一、获取待处理的任务的计算量信息和通信量信息。
具体实施时,可以基于对获取的待处理的任务的配置文件的解析,或基于对获取的待处理的任务请求的解析,确定待处理的任务的计算量信息和通信量信息;其中,任务请求中包括计算量信息和通信量信息,任务请求可以为用户在客户端提交的为任务分配资源的请求。
步骤二、基于计算量信息和通信量信息,确定通讯量需求信息。
这里,可以确定计算量信息对应的计算量和通信量信息对应的计算量之间的比值,并基于确定的比值,确定通讯量需求信息。
在另一种实施例中,在任务信息可以包括通讯量需求信息的情况下,还可以按照以下步骤获取通讯量需求信息:
步骤一、获取待处理的任务的配置文件;
步骤二、从配置文件中获取待处理的任务的通讯量需求信息。
这里,用户提交的配置文件中可以直接包括该待处理的任务的通讯量需求信息。进而,任务调度系统可以直接从获取的配置文件中获取待处理的任务的通讯量需求信息,并将其作为获取的该任务的任务信息。
这样,不需要对配置文件进行解析以获取通讯量需求信息,省略了计算该信息的步骤,提高了确定通讯量需求信息的速度。
另外,本公开实施例化提供了一种应用于客户端的任务调度方法,如图8所示,为本公开实施例所提供的一种应用于客户端的任务调度方法的流程图,可以包括以下步骤:
S801:确定待处理的任务的任务类型。
这里,用户在客户端提交与待处理的任务相关的预定义的配置文件之后,客户端可以基于该配置文件,直接确定该任务的任务类型。
S802:基于任务的任务类型,确定执行任务的目标节点服务器以及目标节点服务器上的目标资源。
这里,针对不同任务类型的任务,确定目标节点服务器和目标资源的方式不同。
客户端在确定任务的任务类型之后,可以根据每个节点服务器上的空闲资源以及该任务的任务类型,确定可以用于执行任务的目标节点服务器以及目标节点服务器上的目标资源。其中,目标资源为空闲资源。
关于S802的具体实施过程,可以参照应用于调度器端的任务调度方法中,基于任务类型确定目标节点服务器和目标资源的步骤,只是执行主体由调度器变为该调度器对应的客户端,因此,这里不再赘述。
S803:将目标节点服务器的信息以及目标资源的信息发送给调度器,以使调度器将目标节点服务器以及目标资源分配给待处理的任务。
这里,客户端可以直接将确定的目标节点服务器的信息以及目标资源的信息发送给调度器,也即,发送给任务调度系统。之后,调度器可以直接基于目标节点服务器的信息和目标资源的信息,确定用于执行该待处理的任务的目标节点服务器以及目标节点服务器上的目标资源,进而,可以将目标节点服务器以及目标资源分配给待处理的任务。
这样,客户端基于确定的任务类型先确定目标节点服务器和目标资源,然后将其发送给调度器的方式,调度器省略了确定目标节点服务器和目标资源的步骤,可以直接将目标节点服务器和目标资源分配给任务,从而,能够提高资源调度的速度以及任务的执行速度和效率。
在一种实施例中,针对S801,可以按照以下步骤确定任务类型:
步骤一、确定任务的资源需求量、任务的通讯量需求信息以及节点服务器中的资源数量。
这里,客户端可以基于对配置文件的解析,确定任务的资源需求量和任务的通讯量需求信息。
或者,可以直接从配置文件中获取任务的资源需求量和任务的通讯量需求信息,这里不进行限定。
并且,客户端可以确定任务调度系统中节点服务器中的资源数量。这里,资源数量即GPU数量。
步骤二、基于确定的资源需求量、任务的通讯量需求信息、节点服务器中的资源数量,确定任务的任务类型。
具体实施时,可以基于资源需求量和节点服务器中的资源数量,确定执行该待处理的任务所需要的节点服务器的数量,也即确定该待处理的任务对应的目标节点服务器的数量。其中,
进而,可以基于待处理的任务对应的目标节点服务器的数量和确定的该任务的通讯量需求信息,确定该待处理的任务的任务类型。
在另一种实施例中,针对S801,还可以按照以下步骤确定任务类型:
步骤一、获取每个节点服务器上的空闲资源。
这里,客户端在获取到用户提交的配置文件之后,可以同时获取每个节点服务器上的空闲资源。
步骤二、基于每个节点服务器上的空闲资源、任务的资源需求量、任务的通讯量需求信息,确定执行任务的至少一个目标节点服务器以及目标节点服务器上的目标资源。
这里,客户端可以直接基于该待处理的任务所需要的资源需求量和每个节点服务器上的空闲资源以及通讯量需求信息,确定能够满足资源需求量和通讯需求量信息对应的通讯量需求的目标节点服务器和目标资源。其中,目标节点服务器中的目标资源具有最优的预设拓扑结构。
步骤三、基于至少一个目标节点服务器以及目标节点服务器上的目标资源,确定任务的任务类型。
这里,可以基于确定的目标节点服务器的数量、目标节点服务器上的目标资源的数量和通讯量需求信息,确定该任务的任务类型。
具体实施时,关于上述实施例中提及的确定任务类型的步骤的具体实施过程,可以参照应用于调度器端的任务调度方法中确定任务类型的步骤,只是执行主体由调度器变为该调度器对应的客户端,因此,这里不再赘述。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与应用于调度器端的任务调度方法对应的任务调度装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述任务调度方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
如图9所示,为本公开实施例提供的一种应用于调度器端的任务调度装置的示意图,包括:
获取模块901,用于获取待处理的任务的任务信息;
第一确定模块902,用于基于所述任务信息,确定所述任务的任务类型;
第二确定模块903,用于基于所述任务类型,确定执行所述任务的目标节点服务器以及所述目标节点服务器上的目标资源;
分配模块904,用于将所述目标节点服务器以及所述目标节点服务器上的目标资源分配用于执行所述任务。
在一种可能的实施方式中,所述第一确定模块902,用于根据所述任务信息,确定所述任务的资源需求量、所述任务的通讯量需求信息;
确定节点服务器中的资源数量;
基于确定的所述资源需求量、任务的通讯量需求信息、所述节点服务器中的资源数量,确定所述任务的任务类型。
在一种可能的实施方式中,所述第二确定模块903,用于基于所述任务的任务类型、所述任务的资源需求量以及每个节点服务器上的空闲资源,确定执行所述任务的目标节点服务器以及所述目标节点服务器上的目标资源。
在一种可能的实施方式中,所述第二确定模块903,用于基于所述任务的任务类型,确定与所述任务类型相匹配的至少一个初始节点服务器;
基于所述任务的资源需求量以及每个初始节点服务器上的空闲资源,从所述至少一个初始节点服务器中,确定执行所述任务的目标节点服务器以及所述目标节点服务器上的目标资源。
在一种可能的实施方式中,所述任务类型包括单节点多资源通讯类型;
所述第二确定模块903,用于基于所述至少一个初始节点服务器中的每个初始节点服务器上的空闲资源的数量,筛选空闲资源的数量大于或等于所述资源需求量的初始节点服务器作为第一节点服务器;
基于所述第一节点服务器上的空闲资源和所述任务的资源需求量,确定执行所述任务的目标节点服务器。
在一种可能的实施方式中,所述第二确定模块903,用于确定所述资源需求量对应的至少一个预设拓扑结构;
在所述第一节点服务器中筛选具有任一个所述预设拓扑结构,并且空闲资源的数量最少的第一节点服务器作为所述目标节点服务器。
在一种可能的实施方式中,所述第二确定模块903,用于将所述目标节点服务器中的具有的预设拓扑结构作为目标拓扑结构;
将目标节点服务器中构成所述目标拓扑结构的空闲资源作为所述目标资源。
在一种可能的实施方式中,所述任务类型包括单节点多资源计算类型;
所述第二确定模块903,用于基于所述至少一个初始节点服务器中的每个初始节点服务器上的空闲资源的数量,筛选空闲资源的数量小于或等于所述资源需求量的第二节点服务器;
基于所述第二节点服务器上的空闲资源和所述任务的资源需求量,确定执行所述任务的目标节点服务器。
在一种可能的实施方式中,所述第二确定模块903,用于确定所述资源需求量对应的至少一个预设拓扑结构;
在所述第二节点服务器中筛选具有任一个所述预设拓扑结构的第二服务器作为所述目标节点服务器。
在一种可能的实施方式中,所述第二确定模块903,还用于在从所述第二节点服务器中未筛选出具有任一个所述预设拓扑结构的第二节点服务器的情况下,经过预设时长或至少一个节点服务器上的空闲资源发生变化,重新获取每个节点服务器上的空闲资源的数量,并返回基于所述至少一个初始节点服务器中的每个初始节点服务器上的空闲资源的数量,筛选空闲资源的数量小于或等于所述资源需求量的第二节点服务器的步骤。
在一种可能的实施方式中,所述任务类型包括多节点类型;
所述第二确定模块903,用于基于所述任务的资源需求量,从所述至少一个初始节点服务器中,确定执行任务所需的第三节点服务器的最大数量;其中,所述第三节点服务器为空载的初始节点服务器;
将所述最大数量的第三节点服务器作为所述目标节点服务器。
在一种可能的实施方式中,所述第二确定模块903,还用于在最大数量的第三节点服务器上的资源总量小于所述资源需求量的情况下,确定所述资源总量与所述资源需求量的差值;
基于每个初始节点服务器上的空闲资源的数量,筛选空闲资源的数量小于或等于所述差值的第四节点服务器;
基于所述第四节点服务器上的空闲资源和所述差值,确定执行所述任务的目标节点服务器。
在一种可能的实施方式中,所述任务类型包括单资源类型;
所述第二确定模块903,用于基于所述至少一个初始节点服务器中的每个初始节点服务器上的空闲资源的数量,将空闲资源的数量与所述资源需求量相等的初始节点服务器作为所述目标节点服务器。
在一种可能的实施方式中,所述第二确定模块903,还用于按照以下步骤确定预设拓扑结构:
针对任一待匹配节点服务器中的空闲资源,确定该待匹配节点服务器中的任一数量的空闲资源对应的所有的拓扑结构;
基于空闲资源之间的通信介质,确定每个所述拓扑结构的通信等待时长;
基于所述通信等待时长,确定与该待匹配节点服务器中任一数量的空闲资源对应的预设拓扑结构。
在一种可能的实施方式中,所述第二确定模块903,用于按照所述通信等待时长从低到高的顺序,将所述拓扑结构进行排序;
将排序次序小于预设次序的拓扑结构,作为与该待匹配节点服务器对应的预设拓扑结构。
在一种可能的实施方式中,所述第二确定模块903,用于针对任一数量的空闲资源,将所述通信等待时长小于预设等待阈值的拓扑结构,作为与该待匹配节点服务器中的该数量的空闲资源对应的预设拓扑结构。
在一种可能的实施方式中,所述第一确定模块902,用于获取每个节点服务器上的空闲资源;
根据所述任务信息,确定所述任务的资源需求量、所述任务的通讯量需求信息;
基于每个所述节点服务器上的空闲资源、所述任务的资源需求量、所述任务的通讯量需求信息,确定执行所述任务的目标节点服务器以及所述目标节点服务器上的目标资源;
基于执行所述任务的目标节点服务器以及所述目标节点服务器上的目标资源,确定所述任务的任务类型。
在一种可能的实施方式中,所述第二确定模块903,还用于在获取的待处理的任务包括多个的情况下,基于每一个所述任务的任务类型,确定每个任务的资源分配优先级;
基于每一个所述任务的资源分配优先级,确定执行所述任务的目标节点服务器以及所述目标节点服务器上的目标资源。
在一种可能的实施方式中,所述任务类型包括单节点多资源通讯类型、单节点多资源计算类型、多节点类型、单资源类型;
所述第二确定模块903,用于将所述单节点多资源通讯类型的任务的资源分配优先级设置为第一优先级;
将所述单节点多资源计算类型的任务的资源分配优先级设置为第二优先级;
将所述多节点类型的任务的资源分配优先级设置为第三优先级;
将所述单资源类型的任务的资源分配优先级设置为第四优先级。
在一种可能的实施方式中,所述任务信息包括所述资源需求量,所述第一确定模块902,还用于按照以下步骤获取所述资源需求量:
获取所述待处理的任务的配置文件;
从所述配置文件中获取所述待处理的任务的资源需求量。
在一种可能的实施方式中,所述任务信息包括所述通讯量需求信息,所述第一确定模块902,还用于按照以下步骤获取所述通讯量需求信息:
获取所述待处理的任务的计算量信息和通信量信息;
基于所述计算量信息和通信量信息,确定所述通讯量需求信息。
在一种可能的实施方式中,所述第一确定模块902,用于基于获取的所述待处理的任务的配置文件或获取的所述待处理的任务请求,确定所述待处理的任务的计算量信息和通信量信息;其中,所述任务请求中包括所述计算量信息和通信量信息。
在一种可能的实施方式中,所述任务信息包括所述通讯量需求信息,所述第一确定模块902,还用于按照以下步骤获取所述通讯量需求信息:
获取所述待处理的任务的配置文件;
从所述配置文件中获取所述待处理的任务的通讯量需求信息。
在一种可能的实施方式中,所述第一确定模块902,用于基于所述资源需求量和所述节点服务器中的资源数量,确定所述待处理的任务对应的目标节点服务器的数量;
基于所述待处理的任务对应的目标节点服务器的数量和所述通讯量需求信息,确定所述待处理的任务的任务类型。
在一种可能的实施方式中,所述任务类型包括单节点多资源通讯类型、单节点多资源计算类型、多节点类型、单资源类型;
所述第一确定模块902,用于在所述待处理的任务对应的目标节点服务器的数量等于1、所述待处理的任务对应的目标资源的数量大于1、并且所述通讯量需求信息指示所述待处理的任务的通信量需求高于计算量需求的情况下,确定所述待处理的任务的任务类型为单节点多资源通讯类型;
在所述待处理的任务对应的目标节点服务器的数量等于1、所述待处理的任务对应的目标资源的数量大于1、并且所述通讯量需求信息指示所述待处理的任务的计算量需求高于通信量需求的情况下,确定所述待处理的任务的任务类型为单节点多资源计算类型;
在所述待处理的任务对应的目标节点服务器的数量大于1的情况下,确定所述待处理的任务的任务类型为多节点类型;
在所述待处理的任务对应的目标资源的数量等于1的情况下,确定所述待处理的任务的任务类型为单资源类型。
基于同一发明构思,本公开实施例中还提供了与应用于客户端的任务调度方法对应的任务调度装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述任务调度方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
如图10所示,为本公开实施例提供的一种应用于客户端的任务调度装置的示意图,包括:
第三确定模块1001,用于确定待处理的任务的任务类型;
第四确定模块1002,用于基于所述任务的任务类型,确定执行所述任务的目标节点服务器以及所述目标节点服务器上的目标资源;
发送模块1003,用于将所述目标节点服务器的信息以及所述目标资源的信息发送给调度器,以使所述调度器将所述目标节点服务器以及所述目标资源分配给所述待处理的任务
在一种可能的实施方式中,所述第三确定模块1001,用于确定所述任务的资源需求量、所述任务的通讯量需求信息以及所述节点服务器中的资源数量;
基于确定的所述资源需求量、任务的通讯量需求信息、所述节点服务器中的资源数量,确定所述任务的任务类型。
在一种可能的实施方式中,所述第三确定模块1001,用于获取每个节点服务器上的空闲资源;
基于每个所述节点服务器上的空闲资源、所述任务的资源需求量、所述任务的通讯量需求信息,确定执行所述任务的至少一个目标节点服务器以及所述目标节点服务器上的目标资源;
基于所述至少一个目标节点服务器以及所述目标节点服务器上的目标资源,确定所述任务的任务类型。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
本公开实施例还提供了一种计算机设备,如图11所示,为本公开实施例提供的一种计算机设备结构示意图,包括:
处理器1101和存储器1102;所述存储器1102存储有处理器1101可执行的机器可读指令,处理器1101用于执行存储器1102中存储的机器可读指令,所述机器可读指令被处理器1101执行时,处理器1101执行下述步骤:S101:获取待处理的任务的任务信息;S102:基于任务信息,确定任务的任务类型;S103:基于任务类型,确定执行任务的目标节点服务器以及目标节点服务器上的目标资源以及S104:将目标节点服务器以及目标节点服务器上的目标资源分配用于执行任务。
上述存储器1102包括内存1121和外部存储器1122;这里的内存1121也称内存储器,用于暂时存放处理器1101中的运算数据,以及与硬盘等外部存储器1122交换的数据,处理器1101通过内存1121与外部存储器1122进行数据交换。
上述指令的具体执行过程可以参考本公开实施例中所述的任务调度方法的步骤,此处不再赘述。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的任务调度方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例所提供的任务调度方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的任务调度方法的步骤,具体可参见上述方法实施例,在此不再赘述。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
- 任务调度方法、任务调度系统、存储介质和计算机设备
- 任务调度方法、装置、任务调度平台及计算机存储介质