CN112148468B - 一种资源调度方法、装置、电子设备及存储介质 - Google Patents

一种资源调度方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112148468B
CN112148468B CN201910578725.1A CN201910578725A CN112148468B CN 112148468 B CN112148468 B CN 112148468B CN 201910578725 A CN201910578725 A CN 201910578725A CN 112148468 B CN112148468 B CN 112148468B
Authority
CN
China
Prior art keywords
processed
task
server
gpu
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.)
Active
Application number
CN201910578725.1A
Other languages
English (en)
Other versions
CN112148468A (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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital 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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201910578725.1A priority Critical patent/CN112148468B/zh
Publication of CN112148468A publication Critical patent/CN112148468A/zh
Application granted granted Critical
Publication of CN112148468B publication Critical patent/CN112148468B/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Abstract

本发明实施例提供了一种资源调度方法、装置、电子设备及存储介质。该方法应用于GPU服务器集群中的调度节点,GPU服务器集群中的各个GPU服务器被划分为第一类服务器和第二类GPU服务器;该资源调度方法包括:获取待处理任务,并根据待处理任务所需的目标GPU资源,确定待处理任务的类型;其中,类型包括:整机任务和碎片任务;当待处理任务的类型为整机任务时,基于目标GPU资源,确定待处理任务所需GPU服务器的数量,将待处理任务分配到数量个第一类服务器中;当待处理任务的类型为碎片任务时,将待处理任务分配到GPU资源满足目标GPU资源的第二类服务器中。应用本发明实施例提供的方案,能够提高待处理任务的处理效率。

Description

一种资源调度方法、装置、电子设备及存储介质
技术领域
本发明涉及计算机技术领域,特别是涉及一种资源调度方法、装置、电子设备及存储介质。
背景技术
当前,GPU(Graphics Processing Unit,图像处理器)服务器集群经常被用于处理深度学习训练任务、创建开发环境任务等各类待处理任务。具体的,GPU服务器集群包括调度节点和多个GPU服务器,其中,调度节点用于为各个待处理任务进行GPU资源调度,将各个待处理任务分配到相应的GPU服务器中,各个GPU服务器用于通过自身所安装的GPU处理待处理任务。
GPU是一种用于深度学习训练的硬件,且GPU资源是以每个GPU所能提供的资源为单位的,即同一个GPU不能同时分配给多个任务。基于此,可以将一个GPU所能提供的资源大小记为1卡,则一个待处理任务所需要的GPU资源为n个GPU所能提供的资源时,可以记为该任务所需的GPU资源为n卡,即该任务需要n个GPU。而在GPU服务器集群中,每个GPU服务器中可以安装至少一个GPU。
通常,待处理任务可以分为整机任务和碎片任务。其中,整机任务所需GPU个数为每个GPU服务器安装的GPU数量的整数倍;碎片任务所需GPU个数小于每个GPU服务器安装的GPU数量。相应的,整机任务所需要的GPU资源可以称为整机资源,碎片任务所需要的GPU资源可以称为碎片资源。
在相关技术中,调度节点在对待处理任务进行资源调度时,会优先利用GPU剩余资源较少的GPU服务器中的资源。
例如,集群中每台GPU服务器安装有8个GPU;待处理任务队列(任务名GPU需求)为:t1 2个GPU,t2 1个GPU,t3 8个GPU,t4 16个GPU,t5 3个GPU;集群中各个GPU服务器中的GPU资源(服务器编号,GPU资源)为:n1 3个GPU,n2 4个GPU,n3 4个GPU,n4 7个GPU
则集群中调度节点的调度过程为:
1、将待处理任务t1分配到GPU服务器n1中,GPU服务器n1GPU资源为1个GPU;
2、将待处理任务t2分配到GPU服务器n1中,GPU服务器n1无GPU资源;
3、待处理任务t3和t4等待;
4、将待处理任务t5分配到GPU服务器n2中,GPU服务器n2GPU资源为1个GPU;
……
显然,当持续不断有碎片任务进入等待任务队列,且不断有碎片资源被释放时,则GPU服务器n4会由于GPU资源不满足8卡需求,同时调度又是优先占满GPU资源较少的节点,而处于一直等待接收任务的状态。同时,待处理任务t3和t4又会由于所需要的GPU资源为整机资源,则处于一直等待被分配资源的状态。
这样,当待处理任务允许插队调度,即先匹配到资源的待处理任务可以先处理时,则整机任务很难被分配到资源;而当待处理任务不允许插队调度,即前一个待处理任务被分配资源后,下一个任务才能被分配资源时,则整机任务会阻塞碎片任务运行。
显然,无论是否运行插队调度,上述相关技术均会导致待处理任务的处理效率较低。
发明内容
本发明实施例的目的在于提供一种资源调度方法、装置、电子设备及存储介质,以实现提高待处理任务的处理效率。具体技术方案如下:
第一方面,本发明实施例提供了一种资源调度方法,应用于GPU服务器集群中的调度节点,所述GPU服务器集群中的各个GPU服务器被划分为第一类服务器和第二类GPU服务器,所述方法包括:
获取待处理任务,并根据所述待处理任务所需的目标GPU资源,确定所述待处理任务的类型;其中,所述类型包括:整机任务和碎片任务;
当所述待处理任务的类型为整机任务时,基于所述目标GPU资源,确定所述待处理任务所需GPU服务器的数量,将所述待处理任务分配到所述数量个所述第一类服务器中;
当所述待处理任务的类型为碎片任务时,将所述待处理任务分配到GPU资源满足所述目标GPU资源的所述第二类服务器中。
可选的,一种具体实现方式中,所述待处理任务为目标数量个,所述目标数量大于1;
所述当所述待处理任务的类型为碎片任务时,将所述待处理任务分配到GPU资源满足所述目标GPU资源的所述第二类服务器中的步骤,包括:
当所述目标数量个待处理任务中存在多个待处理任务的类型为碎片任务时,在所述多个待处理任务中,如果至少两个待处理任务中每个待处理任务的目标GPU资源满足预设资源关系,将所述至少两个待处理任务分配到一第一服务器中,其中,所述第一服务器为GPU资源满足所述至少两个待处理任务的目标GPU资源之和的所述第二类服务器;
如果所述多个待处理任务中存在未被分配的待处理任务,针对每个未被分配的待处理任务,将该待处理任务分配到GPU资源满足所述待处理任务的所述第二类服务器中;
其中,所述预设资源关系为:所述至少两个待处理任务中每个待处理任务的目标GPU资源的数量相同,且所述至少两个待处理任务的目标GPU资源之和不大于所述第二类服务器所能提供的最大GPU资源;
或,
所述预设资源关系为:所述至少两个待处理任务的目标GPU资源之和等于所述第二类服务器所能提供的最大GPU资源。
可选的,一种具体实现方式中,所述当所述待处理任务的类型为碎片任务时,将所述待处理任务分配到GPU资源满足所述目标GPU资源的所述第二类服务器中的步骤,包括:
当所述待处理任务的类型为碎片任务时,利用所述待处理任务的任务信息,预测所述待处理任务的运行时长,作为预测运行时长;
基于所述预测运行时长,将所述待处理任务分配到GPU资源满足所述待处理任务的所述第二类服务器中。
可选的,一种具体实现方式中,所述待处理任务为目标数量个,所述目标数量大于1;
所述当所述待处理任务的类型为碎片任务时,利用所述待处理任务的任务信息,预测所述待处理任务的运行时长,作为预测运行时长的步骤,包括:
当所述目标数量个待处理任务中存在多个待处理任务的类型为碎片任务时,利用所述多个待处理任务中的各个待处理任务的任务信息,分别预测各个待处理任务的运行时长,作为各个待处理任务的预测运行时长;
所述基于所述预测运行时长,将所述待处理任务分配到GPU资源满足所述待处理任务的所述第二类服务器中的步骤,包括:
在所述多个待处理任务中,如果至少两个待处理任务中任两个待处理任务的预测运行时长差值小于预设时长阈值,且所述至少两个待处理任务的目标GPU资源之和不大于所述第二类服务器所能提供的最大GPU资源,将所述至少两个待处理任务分配到一第二服务器,所述第二服务器为GPU资源满足所述至少两个待处理任务的目标GPU资源之和的所述第二类服务器;
如果所述多个待处理任务中存在未被分配的待处理任务,针对每个未被分配的待处理任务,将该待处理任务分配到GPU资源满足所述待处理任务的所述第二类服务器中。
可选的,一种具体实现方式中,所述基于所述预测运行时长,将所述待处理任务分配到GPU资源满足所述待处理任务的所述第二类服务器中的步骤,包括:
在各个所述第二类服务器中,确定GPU资源满足所述待处理任务的各个候选服务器;
基于所述预测运行时长,以及各个所述候选服务器当前所运行任务的待运行时长,在各个所述候选服务器中,确定第三服务器,并将所述待处理任务分配到所述第三服务器中。
可选的,一种具体实现方式中,所述基于所述预测运行时长,以及各个所述候选服务器当前所运行任务的待运行时长,在各个所述候选服务器中,确定第三服务器的步骤,包括:
针对每个所述候选服务器,计算所述预测运行时长与该候选服务器的所述待运行时长的数据差;
将计算得到的数据差最小的候选服务器,确定为第三服务器。
可选的,一种具体实现方式中,所述基于所述预测运行时长,以及各个所述候选服务器当前所运行任务的待运行时长,在各个所述候选服务器中,确定第三服务器的步骤,包括:
针对每个所述候选服务器,基于该候选服务器的运行状态信息、该候选服务器的所述待运行时长、所述待处理任务的任务信息和所述预测运行时长,对该候选服务器进行打分,得到该候选服务器的目标分值;
将所得到的最大目标分值对应的候选服务器,确定为第三服务器。
可选的,一种具体实现方式中,每个所述候选服务器的所述运行状态信息包括:该候选服务器的GPU剩余资源、CPU剩余资源、可用存储空间以及所存储的镜像信息;所述待处理任务的任务信息包括:所述待处理任务所需的目标GPU资源、目标CPU资源和目标存储空间,以及所述待处理任务的目标镜像信息;
所述针对每个所述候选服务器,基于该候选服务器的运行状态信息、该候选服务器的所述待运行时长、所述待处理任务的任务信息和所述预测运行时长,对该候选服务器进行打分,得到该候选服务器的目标分值的步骤,包括:
根据每个所述候选服务器的GPU剩余资源与所述目标GPU资源的数据差,确定每个所述候选服务器的GPU权重;
根据每个所述候选服务器的所述待运行时长与所述预测运行时长的数据差,确定每个所述候选服务器的时长权重;
根据每个所述候选服务器的CPU剩余资源与所述目标CPU资源的数据差,确定每个所述候选服务器的CPU权重;
根据每个所述候选服务器的可用存储空间与所述目标存储空间的数据差,确定每个所述候选服务器的空间权重;
分别判断每个所述候选服务器所存储的镜像信息中是否包括所述目标镜像信息,并根据判断结果,确定每个所述候选服务器的镜像权重;
针对每个所述候选服务器,计算该候选服务器的GPU权重、时长权重、CPU权重、空间权重和镜像权重的和值,作为该候选服务器的目标分值。
可选的,一种具体实现方式中,所述利用所述待处理任务的任务信息,预测所述待处理任务的运行时长,作为预测运行时长的步骤,包括:
将所述待处理任务的任务信息输入到预设的时长预测模型中,获得所述时长预测模型的第一输出结果,并将所述第一输出结果作为预测运行时长;
其中,所述时长预测模型是基于多个任务样本训练得到的。
可选的,一种具体实现方式中,所述GPU服务器集群中所述第一类服务器和所述第二类服务器的数量关系是按照预设调整方式,且周期性调整的;
所述预设调整方式为:
在每个所述预设周期内,当开始运行一待处理任务和/或结束一已运行的任务时,采集当前时刻所述集群的集群信息;其中,所述集群信息包括:所述集群内的任务信息和资源信息;
在每个所述预设周期结束时,将所采集到的各个集群信息、每个集群信息对应的时刻,以及该预设周期的时间特性输入到预设的比例预测模型中,获得所述比例预测模型的第二输出结果,作为该预设周期的下一周期内,所述GPU服务器集群中所述第一类服务器和所述第二类服务器的数量关系;其中,所述比例预测模型是基于多个样本集群信息、多个所述样本集群信息对应的时刻和多个样本时间特性训练得到的。
第二方面,本发明实施例提供了一种资源调度装置,应用于GPU服务器集群中的调度节点,所述GPU服务器集群中的各个GPU服务器被划分为第一类服务器和第二类GPU服务器,所述装置包括:
任务获取模块,用于获取待处理任务,并根据所述待处理任务所需的目标GPU资源,确定所述待处理任务的类型;其中,所述类型包括:整机任务和碎片任务;
第一分配模块,用于当所述待处理任务的类型为整机任务时,基于所述目标GPU资源,确定所述待处理任务所需GPU服务器的数量,将所述待处理任务分配到所述数量个所述第一类服务器中;
第二分配模块,用于当所述待处理任务的类型为碎片任务时,将所述待处理任务分配到GPU资源满足所述目标GPU资源的所述第二类服务器中。
可选的,一种具体实现方式中,所述待处理任务为目标数量个,所述目标数量大于1;所述第二分配模块具体用于:
当所述目标数量个待处理任务中存在多个待处理任务的类型为碎片任务时,在所述多个待处理任务中,如果至少两个待处理任务中每个待处理任务的目标GPU资源满足预设资源关系,将所述至少两个待处理任务分配到一第一服务器中,其中,所述第一服务器为GPU资源满足所述至少两个待处理任务的目标GPU资源之和的所述第二类服务器;如果所述多个待处理任务中存在未被分配的待处理任务,针对每个未被分配的待处理任务,将该待处理任务分配到GPU资源满足所述待处理任务的所述第二类服务器中;其中,所述预设资源关系为:所述至少两个待处理任务中每个待处理任务的目标GPU资源的数量相同,且所述至少两个待处理任务的目标GPU资源之和不大于所述第二类服务器所能提供的最大GPU资源;或,所述预设资源关系为:所述至少两个待处理任务的目标GPU资源之和等于所述第二类服务器所能提供的最大GPU资源。
可选的,一种具体实现方式中,所述第二分配模块包括:
时长确定子模块,用于当所述待处理任务的类型为碎片任务时,利用所述待处理任务的任务信息,预测所述待处理任务的运行时长,作为预测运行时长;
服务器分配子模块,用于基于所述预测运行时长,将所述待处理任务分配到GPU资源满足所述待处理任务的所述第二类服务器中。
可选的,一种具体实现方式中,所述待处理任务为目标数量个,所述目标数量大于1;
所述时长确定子模块,具体用于当所述目标数量个待处理任务中存在多个待处理任务的类型为碎片任务时,利用所述多个待处理任务中的各个待处理任务的任务信息,分别预测各个待处理任务的运行时长,作为各个待处理任务的预测运行时长;
所述服务器分配子模块,具体用于在所述多个待处理任务中,如果至少两个待处理任务中任两个待处理任务的预测运行时长差值小于预设时长阈值,且所述至少两个待处理任务的目标GPU资源之和不大于所述第二类服务器所能提供的最大GPU资源,将所述至少两个待处理任务分配到一第二服务器,所述第二服务器为GPU资源满足所述至少两个待处理任务的目标GPU资源之和的所述第二类服务器;如果所述多个待处理任务中存在未被分配的待处理任务,针对每个未被分配的待处理任务,将该待处理任务分配到GPU资源满足所述待处理任务的所述第二类服务器中。
可选的,一种具体实现方式中,所述服务器分配子模块包括:
服务器确定单元,用于在各个所述第二类服务器中,确定GPU资源满足所述待处理任务的各个候选服务器;
服务器分配单元,用于基于所述预测运行时长,以及各个所述候选服务器当前所运行任务的待运行时长,在各个所述候选服务器中,确定第三服务器,并将所述待处理任务分配到所述第三服务器中。
可选的,一种具体实现方式中,所述服务器分配单元具体用于:
针对每个所述候选服务器,计算所述预测运行时长与该候选服务器的所述待运行时长的数据差;将计算得到的数据差最小的候选服务器,确定为第三服务器。
可选的,一种具体实现方式中,所述服务器分配单元包括:
分值计算子单元,用于针对每个所述候选服务器,基于该候选服务器的运行状态信息、该候选服务器的所述待运行时长、所述待处理任务的任务信息和所述预测运行时长,对该候选服务器进行打分,得到该候选服务器的目标分值;
服务器确定子单元,用于将所得到的最大目标分值对应的候选服务器,确定为第三服务器。
可选的,一种具体实现方式中,每个所述候选服务器的所述运行状态信息包括:该候选服务器的GPU剩余资源、CPU剩余资源、可用存储空间以及所存储的镜像信息;所述待处理任务的任务信息包括:所述待处理任务所需的目标GPU资源、目标CPU资源和目标存储空间,以及所述待处理任务的目标镜像信息;
所述分值计算子单元具体用于:
根据每个所述候选服务器的GPU剩余资源与所述目标GPU资源的数据差,确定每个所述候选服务器的GPU权重;根据每个所述候选服务器的所述待运行时长与所述预测运行时长的数据差,确定每个所述候选服务器的时长权重;根据每个所述候选服务器的CPU剩余资源与所述目标CPU资源的数据差,确定每个所述候选服务器的CPU权重;根据每个所述候选服务器的可用存储空间与所述目标存储空间的数据差,确定每个所述候选服务器的空间权重;分别判断每个所述候选服务器所存储的镜像信息中是否包括所述目标镜像信息,并根据判断结果,确定每个所述候选服务器的镜像权重;针对每个所述候选服务器,计算该候选服务器的GPU权重、时长权重、CPU权重、空间权重和镜像权重的和值,作为该候选服务器的目标分值。
可选的,一种具体实现方式中,所述时长确定子模块具体用于:
将所述待处理任务的任务信息输入到预设的时长预测模型中,获得所述时长预测模型的第一输出结果,并将所述第一输出结果作为预测运行时长;
其中,所述时长预测模型是基于多个任务样本训练得到的。
可选的,一种具体实现方式中,所述装置还包括:
关系调整模块,用于按照预设方法,且周期性地调整所述GPU服务器集群中所述第一类服务器和所述第二类服务器的数量关系;
所述关系调整模块具体用于:
在每个所述预设周期内,当开始运行一待处理任务和/或结束一已运行的任务时,采集当前时刻所述集群的集群信息;其中,所述集群信息包括:所述集群内的任务信息和资源信息;在每个所述预设周期结束时,将所采集到的各个集群信息、每个集群信息对应的时刻,以及该预设周期的时间特性输入到预设的比例预测模型中,获得所述比例预测模型的第二输出结果,作为该预设周期的下一周期内,所述GPU服务器集群中所述第一类服务器和所述第二类服务器的数量关系;其中,所述比例预测模型是基于多个样本集群信息、多个所述样本集群信息对应的时刻和多个样本时间特性训练得到的。
第三方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现:
获取待处理任务,并根据所述待处理任务所需的目标GPU资源,确定所述待处理任务的类型;其中,所述类型包括:整机任务和碎片任务;
当所述待处理任务的类型为整机任务时,基于所述目标GPU资源,确定所述待处理任务所需GPU服务器的数量,将所述待处理任务分配到所述数量个第一类服务器中;
当所述待处理任务的类型为碎片任务时,将所述待处理任务分配到GPU资源满足所述目标GPU资源的第二类服务器中。
以上可见,应用本发明实施例提供的方案,可以将GPU服务器集群中的各个GPU服务器划分为用于处理整机任务的第一类服务器和用于处理碎片任务的第二类服务器。这样,在获取到待处理任务时,GPU服务器集群中的调度节点便可以首先根据待处理任务所需的目标GPU资源,确定该待处理任务的类型。进而,当待处理任务为整机任务时,便可以将该待处理任务分配到第一类服务器中,相应的,当待处理任务为碎片任务时,便可以将该待处理任务分配到第二类服务器中。
显然,应用本发明实施例提供的方案,是将整机任务和碎片任务分别分配到不同类型的GPU服务器中进行处理的。其中,对于各个第一类服务器而言,该第一类服务器中的GPU资源处于全部被占用或者全部未被占用的状态中。这样,无论待处理任务是否允许插队调度,对于待处理的整机任务而言,其不需要花费大量时间等待正在处理碎片任务的GPU服务器释放出全部GPU资源后,才可以被分配,相反的,调度节点可以直接在第一类服务器中寻找GPU资源未被占用的GPU服务器,并将该整机任务分配到所寻找到的GPU服务器中。基于此,应用本发明实施例提供的方案,待处理的整机任务可以被快速地分配到GPU服务器中,从而可以提高待处理任务的处理效率。
此外,当待处理任务不允许插队调度时,由于待处理的整机任务可以被快速地分配到GPU服务器中,因此待处理的整机任务也将不会阻塞后续待处理的碎片任务的运行。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种资源调度方法的流程示意图;
图2为图1中步骤S103的一种具体实现方式的流程示意图;
图3为图1中步骤S103的另一种具体实现方式的流程示意图;
图4为本发明实施例提供的GPU服务器集群中第一类服务器和第二类服务器的数量关系的一种调整方式的流程示意图;
图5为本发明实施例提供的一种资源调度装置的结构示意图;
图6为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在相关技术中,调度节点在对待处理任务进行资源调度时,会优先利用GPU剩余资源较少的GPU服务器中的资源。这样,当待处理任务允许插队调度,即先匹配到资源的待处理任务可以先处理时,则整机任务很难被分配到资源;而当待处理任务不允许插队调度,即前一个待处理任务被分配资源后,下一个任务才能被分配资源时,则整机任务会阻塞碎片任务运行。显然,无论是否运行插队调度,上述相关技术均会导致待处理任务的处理效率较低。为了解决上述技术问题,本发明实施例提供了一种资源调度方法。
下面,首先对本发明实施例提供的一种资源调度方法进行介绍。
图1为本发明实施例提供的一种资源调度方法的流程示意图。其中,该资源调度方法,应用于GPU服务器集群中的调度节点,GPU服务器集群中的各个GPU服务器被划分为第一类服务器和第二类GPU服务器,第一类服务器用于处理整机任务,第二类服务器用于处理碎片任务。
其中,GPU服务器集群中的调度节点可以为任一需要在GPU服务器集群中的各个GPU服务器中,为接收到的待处理任务分配GPU资源的电子设备,对此,本发明实施例不做具体限定,以下简称调度节点。
在GPU服务器集群中,GPU服务器可以基于GPU出色的图形处理能力和高性能计算能力,应用于视频编解码、深度学习、科学计算等多种场景中,并提供快速、稳定、弹性的计算服务,基于此,调度节点所接收到的待处理任务可以为各类GPU服务器集群中的各个GPU服务器可以处理的任务。例如,可以为模型训练任务,也可以为创建开发环境任务等,这都是合理的。
进一步的,调度节点可以与GPU服务器集群中的任一GPU服务器进行信息交互,例如,向任一GPU服务器分配待处理任务、接收各个GPU服务器反馈的任务处理进程等;此外,调度节点还可以维护和管理GPU服务器集群中的各个GPU服务器的分类,例如,为各个GPU服务器划分类别、调整任一GPU服务器的类别等。
其中,调度节点可以通过多种方式为GPU服务器集群中的各个GPU服务器划分类别,对此,本发明实施例不做具体限定。
优选的,调度节点可以存储有服务器类别表,该类别表中记录了类别为第一类服务器的各个GPU服务器的标识信息和类别为第二类服务器的各个GPU服务器的标识信息。进而,当调度节点需要将一待处理任务分配到第一类服务器中时,即可在该类别表中记录的类别为第一类服务器的各个GPU服务器的标识信息中确定该待处理任务将被分配到的各个第一类服务器中;相应的,当调度节点需要将一待处理任务分配到第二类服务器中时,即可在该类别表中记录的类别为第二类服务器的各个GPU服务器的标识信息中确定该待处理任务将被分配到的各个第二类服务器中。
进一步的,调度节点在调整任一GPU服务器的类别时,便可以删除该类别表中,所记录的该GPU服务器的当前类别对应的各个服务器标识中,该GPU服务器的标识,并将该服务器的标识添加到该GPU服务器所要调整为的类别对应的各个服务器标识中。
优选的,调度节点可以为各个GPU服务器添加类别标签,即为类别为第一类服务器的各个GPU服务器添加用于表征第一类服务器的标签,例如,整机标签,为类别为第二类服务器的各个GPU服务器添加用于表征第二类服务器的标签,例如,碎片标签。进而,当调度节点需要将一待处理任务分配到第一类服务器中时,便可以在各个GPU服务器中查找具有用于表征第一类服务器的标签的GPU服务器,并将该待处理任务分配到所查找到的GPU服务器中;相应的,当调度节点需要将一待处理任务分配到第二类服务器中时,便可以在各个GPU服务器中查找具有用于表征第二类服务器的标签的GPU服务器,并将该待处理任务分配到所查找到的GPU服务器中。
进一步的,调度节点在调整任一GPU服务器的类别时,便可以将该GPU服务器所具有的的用于表征当前类别的标签替换为用于表征所要调整为的类别的标签。例如,将整机标签替换为碎片标签,或,将碎片标签替换为整机标签等,这都是合理的。
如图1所示,本发明实施例提供的一种资源调度方法可以包括如下步骤:
S101:获取待处理任务,并根据待处理任务所需的目标GPU资源,确定待处理任务的类型;
其中,类型包括:整机任务和碎片任务;
S102:当待处理任务的类型为整机任务时,基于目标GPU资源,确定待处理任务所需GPU服务器的数量,将待处理任务分配到数量个第一类服务器中;
S103:当待处理任务的类型为碎片任务时,将待处理任务分配到GPU资源满足目标GPU资源的第二类服务器中。
以上可见,应用本发明实施例提供的方案,是将整机任务和碎片任务分别分配到不同类型的GPU服务器中进行处理的。其中,对于各个第一类服务器而言,该第一类服务器中的GPU资源处于全部被占用或者全部未被占用的状态中。这样,无论待处理任务是否允许插队调度,对于待处理的整机任务而言,其不需要花费大量时间等待正在处理碎片任务的GPU服务器释放出全部GPU资源后,才可以被分配,相反的,调度节点可以直接在第一类服务器中寻找GPU资源未被占用的GPU服务器,并将该整机任务分配到所寻找到的GPU服务器中。基于此,应用本发明实施例提供的方案,待处理的整机任务可以被快速地分配到GPU服务器中,从而可以提高待处理任务的处理效率。
此外,当待处理任务不允许插队调度时,由于待处理的整机任务可以被快速地分配到GPU服务器中,因此待处理的整机任务也将不会阻塞后续待处理的碎片任务的运行。
在上述步骤S101中,调度节点可以通过多种方式获取待处理任务。
例如,调度节点可以获取到用户直接在该调度节点中上传的待处理任务,也可以获取其他电子设备发送的待处理任务,这都是合理的。
其中,当调度节点获取其他电子设备发送的待处理任务时,该其他电子设备可以按照预设的时间间隔向调度节点不断发送待处理任务,也可以按照预设的发送时刻,在该发送时刻向调度节点不断发送待处理任务,也可以是在接收到用户的任务发送指令时,向调度节点不断发送待处理任务,这都是合理的。
由于调度节点所获取的待处理任务中携带有该待处理任务所需的目标GPU资源,则调度节点在接收到该待处理任务时,便可以获知该待处理任务所需的目标GPU资源,进而,调度节点便可以根据该目标GPU资源,确定该待处理任务的类型。
由于,GPU服务器集群中的各个GPU服务器可以按照有数量相同的至少一个GPU,例如,各个GPU服务器分别安装有8个GPU,因此,调度节点便可以根据待处理任务所需的目标GPU资源与每个GPU服务器所安装的GPU数量之间的数量关系,确定该待处理任务的类型。
其中,当待处理任务所需的目标GPU资源为每个GPU服务器安装的GPU数量的整数倍时,调度节点便可以确定该待处理任务的类型为整机任务。
例如,各个GPU服务器分别安装有8个GPU,待处理任务所需的目标GPU资源为16个GPU,则该待处理任务的任务类型为整机任务;
又例如,各个GPU服务器分别安装有32个GPU,待处理任务所需的目标GPU也为32个GPU,则该待处理任务的任务类型为整机任务。
这样,调度节点便可以继续执行上述步骤S102,即可以基于目标GPU资源,确定该待处理任务所需GPU服务器的数量,并将该待处理任务分配到数量个第一类服务器中。
具体的,待处理任务所需的目标GPU资源为每个GPU服务器安装的GPU数量的N倍,则调度节点可以确定该待处理任务所需GPU服务器的数量为N。进而,调度节点便可以在各个第一类服务器中,确定N个GPU资源空闲的GPU服务器,并将该待处理任务分配到所确定的N个GPU服务器中。这样,该N个GPU服务器便可以开始运行该待处理任务,以完成对该待处理任务的处理。其中,上述N≥1。
其中,由于待处理任务所需的目标GPU资源为每个GPU服务器安装的GPU数量的整数倍,则该整数倍的整数值即为该待处理任务所需GPU服务器的数量。进而,
相对的,当待处理任务所需的目标GPU资源小于每个GPU服务器安装的GPU数量时,调度节点便可以确定该待处理任务的类型为碎片任务。
例如,各个GPU服务器分别安装有8个GPU,待处理任务所需的目标GPU资源为4个GPU,则该待处理任务的任务类型为碎片任务。
又例如,各个GPU服务器分别安装有32个GPU,待处理任务所需的目标GPU也为30个GPU,则该待处理任务的任务类型为碎片任务。
这样,调度节点便可以继续执行上述步骤S103,即可以将待处理任务分配到GPU资源满足目标GPU资源的第二类服务器中。
具体的,待处理任务所需的目标GPU资源为M时,调度节点便可以在各个第二类服务器中,确定剩余资源不小于M的各个GPU服务器。进而,在所确定的GPU服务器中选择一GPU服务器,并将该待处理任务分配到所选择的GPU服务器中。这样,该所选择的GPU服务便可以开始运行待处理任务,以完成对该待处理任务的处理。其中,上述M小于各个GPU服务器所安装的GPU的数量。
可以理解的,在上述步骤S101中,调度节点可以获取到目标数量个待处理任务,而由于该目标数量大于1,也就说,调度节点可以获取到多个待处理任务。这样,调度节点便可以逐一确定所接收到的各个待处理任务的类型。
基于此,可选的,一种具体实现方式中,如图2所示,当调度节点获取到目标数量个待处理任务时,调度节点执行上述步骤S103,当待处理任务的类型为碎片任务时,将待处理任务分配到GPU资源满足目标GPU资源的第二类服务器中,可以包括如下步骤:
S201:当目标数量个待处理任务中存在多个待处理任务的类型为碎片任务时,在多个待处理任务中,如果至少两个待处理任务中每个待处理任务的目标GPU资源满足预设资源关系,将至少两个待处理任务分配到一第一服务器中,其中,第一服务器为GPU资源满足至少两个待处理任务的目标GPU资源之和的第二类服务器;
S202:如果多个待处理任务中存在未被分配的待处理任务,针对每个未被分配的待处理任务,将该待处理任务分配到GPU资源满足待处理任务的第二类服务器中;
其中,预设资源关系为:至少两个待处理任务中每个待处理任务的目标GPU资源的数量相同,且至少两个待处理任务的目标GPU资源之和不大于第二类服务器所能提供的最大GPU资源;或,预设资源关系为:至少两个待处理任务的目标GPU资源之和等于第二类服务器所能提供的最大GPU资源。
可以理解的,对于上述多个待处理任务中的至少两个待处理任务而言,当该至少两个待处理任务所需的目标GPU资源之和不超过第二类服务器安装的GPU数量,即不超过第二类服务器所能提供的最大GPU资源时,调度节点可以确定一GPU资源满足该至少两个碎片待处理任务的目标GPU资源之和的第二类服务器,进而,将该至少两个待处理任务分配到该所确定的第二类服务器中。
基于此,在本具体实现方式中,由于每个待处理任务携带有自身所需的目标GPU资源,则调度节点便可以确定上述多个待处理任务中,各个待处理任务所需的目标GPU资源。其中,多个待处理任务为调度节点在所获取的目标数量个待处理任务中,确定出来的类型为碎片任务的多个待处理任务。
进而,调度节点便可以根据上述多个待处理任务中各个待处理任务所需的目标GPU资源,确定上述多个待处理任务中,是否存在至少两个待处理任务中每个待处理任务的目标GPU资源满足预设资源关系,当存在时,调度节点便可以将该至少两个待处理任务分配到GPU资源满足该至少两个待处理任务的目标GPU资源之和的第二类服务器。
其中,上述预设资源关系可以包括以下两种资源关系中的至少一种:
第一种资源关系:至少两个待处理任务中每个待处理任务的目标GPU资源的数量相同,且至少两个待处理任务的目标GPU资源之和不大于第二类服务器所能提供的最大GPU资源;
第二种资源关系:至少两个待处理任务的目标GPU资源之和等于第二类服务器所能提供的最大GPU资源。
也就是说,在实际应用中,调度节点根据预先设置好的预设资源关系,可以只将上述多个待处理任务中,满足上述第一种资源关系的至少两个待处理资源分配到一GPU资源满足该至少两个待处理任务的目标GPU资源之和的第二类服务器;也可以只将上述多个待处理任务中,满足上述第二种资源关系的至少两个待处理资源分配到一GPU资源满足该至少两个待处理任务的目标GPU资源之和的第二类服务器;还可以即将上述多个待处理任务中,满足上述第一种资源关系的至少两个待处理资源分配到一GPU资源满足该至少两个待处理任务的目标GPU资源之和的第二类服务器,又将上述多个待处理任务中,满足上述第二种资源关系的至少两个待处理资源分配到一GPU资源满足该至少两个待处理任务的目标GPU资源之和的第二类服务器。这都合理的。
此外,需要说明的是,在实际应用中,上述预测资源关系还可以是其他与上述多个待处理任务中的各个待处理任务所需的目标GPU资源有关的关系,对此,本发明实施例不做具体限定。
进一步的,在执行完上述步骤201后,上述多个待处理任务中可能存在未被分配的待处理任务。即上述多个待处理任务中存在不能与其他待处理任务分配到同一第二类服务器中的待处理任务。其中,该其他待处理任务为:上述多个待处理任务中除该待处理任务之外的各个待处理任务。
例如,一未被分配的待处理任务所需的目标GPU资源的数量与上述多个待处理任务中,各个其他待处理任务所需的目标GPU资源的数量不同。
假设:上述多个待处理任务包括待处理任务1、待处理任务2、待处理任务3、待处理任务4和待处理任务5,待处理任务1所需的目标GPU资源为2个GPU,待处理任务2所需的目标GPU资源为2个GPU,待处理任务3所需的目标GPU资源为2个GPU,待处理任务4所需的目标GPU资源为2个GPU,待处理任务5所需的目标GPU资源为5个GPU。因此,待处理任务5无法与其他待处理任务分配到同一第二类服务器中,进而,待处理任务5为调度节点执行上述步骤11后,剩余的未被分配的待处理任务。
又例如,一未被分配的待处理任务所需的目标GPU资源较多,与上述多个待处理任务中,任一个其他待处理任务所需的目标GPU资源的和值超过第二类服务器所能提供的最大GPU资源,即超过第二类服务器所安装的GPU个数。
示例性的,假设:上述多个待处理任务包括待处理任务1、待处理任务2、待处理任务3、待处理任务4和待处理任务5,待处理任务1所需的目标GPU资源为3个GPU,待处理任务2所需的目标GPU资源为3个GPU,待处理任务3所需的目标GPU资源为3个GPU,待处理任务4所需的目标GPU资源为3个GPU,待处理任务5所需的目标GPU资源为6个GPU。因此,待处理任务5无法与其他待处理任务分配到同一第二类服务器中,进而,待处理任务5为调度节点执行上述步骤11后,剩余的未被分配的待处理任务。
基于此,在执行完上述步骤201后,当调度节点便可以确定上述多个待处理任务中是否存在未被分配的待处理任务,进而,执行上述步骤12。即当判断得到上述多个待处理任务中存在未被分配的待处理任务,在针对每个未被分配的待处理任务,调度节点便可以将该待处理任务分配到GPU资源满足待处理任务的第二类服务器中。
其中,调度节点可以采用多种方式执行上述步骤201,对此,本发明实施例不做具体限定。例如,调度节点可以采用本发明实施例提供的其他具体实现方式执行上述步骤S201。
此外,针对上述第一种预设资源关系,至少两个待处理任务中每个待处理任务的目标GPU资源的数量相同,且至少两个待处理任务的目标GPU资源之和不大于第二类服务器所能提供的最大GPU资源,具体的:
针对上述多个待处理任务中的任两个待处理任务,调度节点可以首先确定该两个待处理任务的目标GPU资源的数量是否相同。当该两个待处理任务的目标GPU资源的数量相同时,调度节点可以确定该两个待处理任务可能可以被分配到同一第二类服务器。
接着,调度节点可以计算该两个待处理任务所需的目标GPU资源的和值,并判断该和值是否不超过第二类服务器所能提供的最大GPU资源。这样,当判断得到该和值不超过第二类服务器所能提供的最大GPU资源时,调度节点便可以确定该两个待处理任务可以被分配到同一第二类服务器中。
其中,优选的,一种实施例中,对于该两个待处理任务,调度节点可以直接将该两个待处理任务分配到GPU资源满足该两个待处理任务的目标GPU资源的和值的第二类服务器中。
优选的,另一种实施例中,对于该两个待处理节点,调度节点可以继续在上述多个待处理任务中除该两个待处理任务的其他待处理任务中,查找所需的目标GPU资源的数量与该两个待处理任务分别所需的GPU资源的数量相同,且所需的目标GPU资源与该两个待处理任务所需的目标GPU资源的和值不超过第二类服务器所能提供的最大GPU资源的一个其他待处理任务。
其中,当查找到时,调度节点可以确定该其他待处理任务和该两个待处理任务可以被分配到同一第二类服务器中,进而,调度节点可以直接将上述三个待处理任务分配到GPU资源满足该三个待处理任务的目标GPU资源的和值的第二类服务器中。
当然,当查找到时,调度节点也可以继续执行上述查找步骤,在上述多个待处理任务中除上述三个待处理任务的其他待处理任务中,查找第四个、第五个,甚至更多个可以与上述三个待处理任务分配到同一第二类服务器中的其他待处理任务。进而,将所查找到的其他待处理任务与上述三个待处理任务分配到同一第二类服务器中。基于此,调度节点可以将尽可能多的待处理任务分配到同一第二类服务器中。
其中,在本实施例中,调度节点查找能够与该两个待处理任务分配到同一第二类服务器中的各个其他待处理任务的方式为:
针对任一其他待处理任务,判断该其他待处理任务所需的目标GPU资源的数量是否与已确定的能够分配到同一第二类服务器中的各个待处理任务所需的目标GPU资源的数量相同;并在判断结果为是时,进一步判断该其他待处理任务所需的目标GPU资源与已确定的能够分配到同一第二类服务器中的全部待处理任务所需的目标GPU资源的和值是否不超过第二类服务器所能提供的最大GPU资源。这样,在判断结果为不超过时,调度节点便可以将该其他待处理任务确定为:能够与已确定的能够分配到同一第二类服务器中的各个待处理任务分配到同一第二类服务器中待处理任务。
例如,假设:每个第二类服务器按照有8个GPU,上述多个待处理任务包括待处理任务1、待处理任务2、待处理任务3、待处理任务4和待处理任务5,待处理任务1所需的目标GPU资源为2个GPU,待处理任务2所需的目标GPU资源为2个GPU,待处理任务3所需的目标GPU资源为2个GPU,待处理任务4所需的目标GPU资源为2个GPU,待处理任务5所需的目标GPU资源为5个GPU。
则调度节点可以确定首先确定上述待处理任务1和待处理任务2可以被分配到同一第二类服务中。
可选的,调度节点可以将上述待处理任务1和待处理任务2分配到同一资源满足4个GPU资源的第二类服务器中,进而,将待处理任务3和待处理任务4分配到分配到一资源满足4个GPU资源的第二类服务器中,将待处理任务5分配到一资源满足5个GPU资源的第二类服务器中。
可选的,调度节点也可以进一步确定上述待处理任务3和待处理任务4也可以与上述待处理任务1和待处理任务2被分配到同一第二类服务中,进而,调度节点便可以将上述待处理任务1、待处理任务2、待处理任务3和待处理任务4分配到同一资源满足8个GPU资源的第二类服务器中,将待处理任务5分配到一资源满足5个GPU资源的第二类服务器中。
针对上述第二种资源关系:至少两个待处理任务的目标GPU资源之和等于第二类服务器所能提供的最大GPU资源,具体的,
具体的,针对上述多个待处理任务中的任一个待处理任务,调度节点可以首先上述多个待处理任务中除该待处理任务以外的其他待处理任务中,查找所需的目标GPU资源与该待处理任务所需的目标GPU资源之和等于第二类服务器所能提供的最大GPU资源的至少一个其他待处理任务,进而,当查找到时,调度节点便可以将该查找到的至少一个其他待处理任务与该待处理任务分配到同一空闲的第二类服务器中。其中,该空闲的第二类服务器中的全部GPU资源均未被占用。
例如,假设:每个第二类服务器按照有8个GPU,上述多个待处理任务包括待处理任务1、待处理任务2、待处理任务3、待处理任务4和待处理任务5,待处理任务1所需的目标GPU资源为2个GPU,待处理任务2所需的目标GPU资源为6个GPU,待处理任务3所需的目标GPU资源为2个GPU,待处理任务4所需的目标GPU资源为2个GPU,待处理任务5所需的目标GPU资源为4个GPU。
则可选的,调度节点可以将待处理任务1和待处理任务2分配到同一空闲的第二类服务器中,并将待处理任务3、待处理任务4和待处理任务3分配到同一空闲的第二类服务器中。
可选的,调度节点可以将待处理任务3和待处理任务2分配到同一空闲的第二类服务器中,并将待处理任务1、待处理任务4和待处理任务3分配到同一空闲的第二类服务器中.
可选的,调度节点可以将待处理任务4和待处理任务2分配到同一空闲的第二类服务器中,并将待处理任务3、待处理任务1和待处理任务3分配到同一空闲的第二类服务器中。
为了能够使各个第二类服务器能够在较短时间内释放较多的GPU资源,以进一步减少碎片资源,并提高资源处理效率,可以将结束时间相近的待处理任务分配到同一第二类服务器中。基于此,可选的,一种具体实现方式中,如图3所示,上述步骤S103,当待处理任务的类型为碎片任务时,将待处理任务分配到GPU资源满足待处理任务的第二类服务器中的,可以包括如下步骤:
S301:当待处理任务的类型为碎片任务时,利用待处理任务的任务信息,预测待处理任务的运行时长,作为预测运行时长;
当在上述步骤S101中,调度节点确定待处理任务的类型为碎片任务时,调度节点便可以利用该利用待处理任务的任务信息,预测该待处理任务的运行时长,并将预测得到的运行时长作为该待处理任务的预测运行时长。
优选的:上述步骤S301,利用待处理任务的任务信息,预测待处理任务的运行时长,作为预测运行时长,可以包括如下步骤,包括:
将待处理任务的任务信息输入到预设的时长预测模型中,获得时长预测模型的第一输出结果,并将第一输出结果作为预测运行时长;
其中,时长预测模型是基于多个任务样本训练得到的。
在获取到待处理任务后,调度节点便可以获得该待处理任务的任务信息。进而,调度节点便可以将所获得的任务信息输入到预设的时长预测模型中,进而,得到该时长预测模型输出的第一输出结果,并将该第一输出结果作为预测运行时长。
其中,上述任务信息可以包括各类任务参数,例如,任务名称、任务所属人、任务所使用的数据集、任务框架、任务输入的时长、任务迭代次数等任务参数,当然,也可以包括其他任务参数。
上述时长预测模型是基于多个任务样本训练得到的,每个样本信息中可以包括一任务的任务信息、该任务的实际运行时长和该任务的预测运行时长。
具体的,将每个任务样本输入到预设的初始时长预测模型中进行训练,进而,得到训练完成的时长预测模型。在训练过程中,初始时长预测模型可以学习各个任务样本中任务的任务信息和实际运行时长的特点,输出各个样本信息中任务的预测运行时长,经过对大量的任务样本的学习,初始时长预测模型逐步建立任务信息和预测运行时长的对应关系,进而得到时长预测模型。
进而,训练得到的时长预测模型也就可以用于对待处理任务的任务信息进行检测,输出的检测结果即为该待处理任务的预测运行时长。
此外,可选的,在该待处理任务完成后,调度节点可以获取该待处理任务的实际运行时长,则调度节点可以利用该待处理任务的任务信息、该待处理任务的实际运行时长和上述得到的该待处理任务的预测运行时长,对该时长预测模型进行更新。
S302:基于预测运行时长,将待处理任务分配到GPU资源满足待处理任务的第二类服务器中。
进而,调度节点在完成上述步骤S301,得到待处理任务的预测运行时长后,便可以基于该预测运行时长,将待处理任务分配到GPU资源满足待处理任务的第二类服务器中。
其中,调度节点可以通过多种方式执行上述步骤S302,对此本发明实施例不做具体限定。
可以理解的,在上述步骤S101中,调度节点可以获取到目标数量个待处理任务,由于该目标数量大于1,也就说,调度节点可以获取到多个待处理任务。
基于此,可选的,一种具体实现方式中,当调度节点获取到目标数量个待处理任务时:
调度节点执行上述步骤S301,当待处理任务的类型为碎片任务时,利用待处理任务的任务信息,预测待处理任务的运行时长,作为预测运行时长,可以包括如下步骤:
当目标数量个待处理任务中存在多个待处理任务的类型为碎片任务时,利用多个待处理任务中的各个待处理任务的任务信息,分别预测各个待处理任务的运行时长,作为各个待处理任务的预测运行时长;
也就是说,针对上述多个待处理任务中的每个待处理任务,调度节点可以利用该待处理任务的任务信息,预测该待处理任务的运行时长,并将预测得到的运行时长作为该待处理任务的预测运行时长。
这样,在本具体实现方式中,调度节点可以得到上述多个待处理任务中的每个待处理任务的预测运行时长和所需的目标GPU资源。
进而,调度节点执行上述步骤S302,基于预测运行时长,将待处理任务分配到GPU资源满足待处理任务的第二类服务器中,可以包括如下步骤:
步骤11:在多个待处理任务中,如果至少两个待处理任务中任两个待处理任务的预测运行时长差值小于预设时长阈值,且至少两个待处理任务的目标GPU资源之和不大于第二类服务器所能提供的最大GPU资源,将至少两个待处理任务分配到一第二服务器,第二服务器为GPU资源满足至少两个待处理任务的目标GPU资源之和的第二类服务器;
步骤12:如果多个待处理任务中存在未被分配的待处理任务,针对每个未被分配的待处理任务,将该待处理任务分配到GPU资源满足待处理任务的第二类服务器中。
可以理解的,对于上述多个待处理任务中的至少两个待处理任务而言,当该至少两个待处理任务所需的目标GPU资源之和不超过第二类服务器所安装的GPU数量,即不超过第二类服务器所能提供的最大GPU资源时,调度节点可以确定一GPU资源满足该至少两个待处理任务的目标GPU资源之和的第二类服务器,进而,将该至少两个待处理任务分配到该所确定的第二类服务器中。
基于此,为了能够使各个第二类服务器能够在较短时间内释放较多的GPU资源,当将至少两个待处理任务分配到同一第二类服务器时,调度节点希望至少两个待处理任务的预测运行时长差值能够较小。这样,该第二类服务器便可以在较短的时间内释放所分配的上述至少两个待处理任务所占用的GPU资源。
其中,当上述所分配的至少两个待处理任务的预测运行时长差值越小时,说明该至少两个待处理任务的预测运行时长越接近,进而,第二类服务器运行完成该至少两个待处理任务的时间点越接近,则该第二类服务器可以在越短的时间内释放所分配的上述至少两个待处理任务所占用的GPU资源。
例如,当上述所分配的至少两个待处理任务的预测运行时长相同时,第二类服务器运行完成该至少两个待处理任务的时间点相同,则该第二类服务器便可以同时释放该至少两个待处理任务所占用的GPU资源,从而可以同时释放较多的GPU资源。
基于此,在本具体实现方式中,调度节点在得到上述多个待处理任务中各个待处理任务的预测运行时长后,便可以执行上述步骤11,具体的:
针对上述多个待处理任务中的任两个待处理任务,调度节点可以首先计算该两个待处理任务的预测运行时长差值,并判断所计算得到的差值是否小于预设时长阈值。当该两个待处理任务的预测运行时长差值小于预设时长阈值时,调度节点可以确定该两个待处理任务可能可以被分配到同一第二类服务器。
接着,调度节点可以计算该两个待处理任务所需的目标GPU资源的和值,并判断该和值是否不超过第二类服务器所能提供的最大GPU资源。这样,当判断得到该和值不超过第二类服务器所能提供的最大GPU资源时,调度节点便可以确定该两个待处理任务可以被分配到同一第二类服务器中。
基于此,优选的,一种实施例中,对于该两个待处理任务,调度节点可以直接将该两个待处理任务分配到GPU资源满足该两个待处理任务的目标GPU资源的和值的第二类服务器中。
优选的,另一种实施例中,对于该两个待处理节点,调度节点可以继续在上述多个待处理任务中除该两个待处理任务的其他待处理任务中,查找预测运行时长与该两个待处理任务中每一个的预测运行时长差值均小于预设时长阈值,且所需的目标GPU资源与该两个待处理任务所需的目标GPU资源的和值不超过第二类服务器所能提供的最大GPU资源的一个其他待处理任务。
其中,当查找到时,调度节点可以确定该其他待处理任务和该两个待处理任务可以被分配到同一第二类服务器中,进而,调度节点可以直接将上述三个待处理任务分配到GPU资源满足该三个待处理任务的目标GPU资源的和值的第二类服务器中。
当然,当查找到时,调度节点也可以继续执行上述查找步骤,在上述多个待处理任务中除上述三个待处理任务的其他待处理任务中,查找第四个、第五个,甚至更多个可以与上述三个待处理任务分配到同一第二类服务器中的其他待处理任务。进而,将所查找到的其他待处理任务与上述三个待处理任务分配到同一第二类服务器中。基于此,调度节点可以将尽可能多的待处理任务分配到同一第二类服务器中,从而,可以使得第二类服务器可以在较短时间内释放尽可能多的GPU资源。
其中,在本实施例中,调度节点查找能够与该两个待处理任务分配到同一第二类服务器中的各个其他待处理任务的方式为:
针对任一其他待处理任务,确定该其他待处理任务与已确定的能够分配到同一第二类服务器中的各个待处理任务的预测运行时长差值,并在该差值小于预设时长阈值时,进一步判断该其他待处理任务所需的目标GPU资源与已确定的能够分配到同一第二类服务器中的全部待处理任务所需的目标GPU资源的和值是否不超过第二类服务器所能提供的最大GPU资源。这样,在判断结果为不超过时,调度节点便可以将该其他待处理任务确定为:能够与已确定的能够分配到同一第二类服务器中的各个待处理任务分配到同一第二类服务器中待处理任务。
可选的,针对任一其他待处理任务,上述确定该其他待处理任务与已确定的能够分配到同一第二类服务器中的各个待处理任务的预测运行时长差值,可以为:调度节点计算该其他待处理任务与已确定的能够分配到同一第二类服务器中的各个待处理任务的预测运行时长差值。
可选的,调度节点也可以在执行上述步骤11,得到各个待处理任务的预测运行时长后,计算得到各个待处理任务中,任两个待处理任务的预测运行时长差值。则针对任一其他待处理任务,上述确定该其他待处理任务与已确定的能够分配到同一第二类服务器中的各个待处理任务的预测运行时长差值,即为调度节点从预先计算得到的各个预测运行时长差值中,获取其他待处理任务与已确定的能够分配到同一第二类服务器中的各个待处理任务的预测运行时长差值。
例如,假设:预设时长阈值为5分钟,每个第二类服务器按照有8个GPU,上述多个待处理任务包括待处理任务1、待处理任务2和待处理任务3,待处理任务1的预测运行时长为1小时,且所需的目标GPU资源为2个GPU,待处理任务2的预测运行时长为1小时3分钟,且所需的目标GPU资源为1个GPU,待处理任务3的预测运行时长为1小时2分钟,且所需的目标GPU资源为4个GPU。
则调度节点可以确定首先确定上述待处理任务1和待处理任务2可以被分配到同一第二类服务中。
可选的,调度节点可以将上述待处理任务1和待处理任务2分配到同一资源满足3个GPU资源的第二类服务器中,进而,将待处理任务3分配到一资源满足4个GPU资源的第二类服务器中。
可选的,调度节点也可以进一步确定上述待处理任务3也可以与上述待处理任务1和待处理任务2被分配到同一第二类服务中,进而,调度节点便可以将上述待处理任务1、待处理任务2和待处理任务3分配到同一资源满足7个GPU资源的第二类服务器中。
其中,上述预设时长阈值可以根据实际实施中的应用需求和设备限制要求进行设定,在本发明实施例中不对预设时长阈值的具体数值进行限定。
进一步的,在执行完上述步骤11后,上述多个待处理任务中可能存在未被分配的待处理任务。即上述多个待处理任务中存在不能与其他待处理任务分配到同一第二类服务器中的待处理任务。其中,该其他待处理任务为:上述多个待处理任务中除该待处理任务之外的各个待处理任务。
例如,一未被分配的待处理任务的预测运行时长与上述多个待处理任务中,各个其他待处理任务的预测运行时长差值较大,超过预设时长阈值。
示例性的,待处理任务A的预测运行时长为3小时,各个其他待处理任务的预测运行时长均小于2小时,预设时长阈值为10分钟,则待处理任务A的预测运行时长与每个其他待处理任务的预测运行时长的差值均大于预测时长阈值,因此,待处理任务A无法与其他待处理任务分配到同一第二类服务器中,进而,待处理任务A为调度节点执行上述步骤11后,剩余的未被分配的待处理任务。
又例如,一未被分配的待处理任务所需的目标GPU资源较多,与上述多个待处理任务中,各个其他待处理任务所需的目标GPU资源的和值超过第二类服务器所能提供的最大GPU资源,即超过第二类服务器所安装的GPU个数。
示例性的,第二类服务器所安装的GPU个数为8个,待处理任务B所需的目标GPU资源为7个GPU,各个其他待处理任务所需的目标GPU资源均大于1个GPU,则待处理任务B所需的目标GPU资源与每个其他待处理任务所需的目标GPU资源的和值均大于第二类服务器所安装的GPU个数,因此,待处理任务B无法与其他待处理任务分配到同一第二类服务器中,进而,待处理任务B为调度节点执行上述步骤11后,剩余的未被分配的待处理任务。
基于此,在执行完上述步骤11后,当调度节点便可以确定上述多个待处理任务中,是否存在未被分配的待处理任务,进而,执行上述步骤12。即当判断得到上述多个待处理任务中,存在未被分配的待处理任务,针对每个未被分配的待处理任务,调度节点便可以将该待处理任务分配到GPU资源满足待处理任务的第二类服务器中。
其中,调度节点可以采用多种方式执行上述步骤12,对此,本发明实施例不做具体限定。
可选的,另一种具体实现方式中,调度节点执行上述步骤S302,基于预测运行时长,将待处理任务分配到GPU资源满足待处理任务的第二类服务器中,可以包括如下步骤:
步骤21:在各个第二类服务器中,确定GPU资源满足待处理任务的各个候选服务器;
进一步的,在获取到待处理任务时,调度节点便可以获得该待处理任务所需的目标GPU资源,进而,调度节点便可以在各个第二类服务器中,确定剩余资源不小于该目标GPU资源的各个GPU服务器,并将所确定的各个GPU服务器作为各个候选服务器。
步骤22:基于预测运行时长,以及各个候选服务器当前所运行任务的待运行时长,在各个候选服务器中,确定第三服务器,并将待处理任务分配到第三服务器中。
此外,在确定各个候选服务器后,调度节点可以进一步确定各个候选服务器当前所运行任务的待运行时长,即调度节点可以确定各个候选服务器当前所运行的任务还需要运行多久才能处理完成,结束运行并释放GPU资源。
这样,在确定待处理任务的预测运行时长和各个候选服务器当前所运行任务的待运行时长后,调度节点便可以基于预测运行时长,以及各个候选服务器当前所运行任务的待运行时长,在各个候选服务器中,确定第三服务器,并将待处理任务分配到第三服务器中。
需要说明的是,当调度节点执行上述步骤12,针对每个未被分配的待处理任务,将该待处理任务分配到GPU资源满足待处理任务的第二类服务器中时,针对每个未被分配的待处理任务,调度节点可以采用上述本具体实现方式中所提供的方式。进而,在上述步骤21和22中,待处理认为即为上述步骤12中的每个未被分配的待处理任务。
优选的,上述步骤22中,基于预测运行时长,以及各个候选服务器当前所运行任务的待运行时长,在各个候选服务器中,确定第三服务器,可以包括如下步骤:
步骤31:针对每个候选服务器,计算预测运行时长与该候选服务器的待运行时长的数据差;
步骤32:将计算得到的数据差最小的候选服务器,确定为第三服务器。
具体的:
为了能够使各个第二类服务器能够在较短时间内释放较多的GPU资源,则在确定第三服务器时,调度节点希望所确定的第三服务器运行完成当前所运行任务,从而释放该当前所运行任务所占用的GPU资源的时间,与该第三服务器运行完成该待处理任务,从而释放该待处理任务所占用的GPU资源的时间越接近越好。
例如,当第三服务器运行完成当前所运行任务,从而释放该当前所运行任务所占用的GPU资源的时间,与该第三服务器运行完成该待处理任务,从而释放该待处理任务所占用的GPU资源的时间相同时,第三服务器便可以在较短时间内释放该当前所运行任务所占用的GPU资源和待处理任务所占用的GPU资源,从而可以实现同时释放较多的GPU资源。
进而,当第三服务器运行完成当前所运行任务,从而释放该当前所运行任务所占用的GPU资源的时间,与该第三服务器运行完成该待处理任务,从而释放该待处理任务所占用的GPU资源的时间较为接近时,显然,第三服务器当前所运行任务的待运行时长与待处理任务的预测运行时长也较为接近。
基于此,调度节点在执行上述步骤S203,基于预测运行时长,以及各个候选服务器当前所运行任务的待运行时长,在各个候选服务器中,确定第三服务器时,便可以:
针对每个候选服务器,计算待处理任务的预测运行时长与该候选服务器当前所运行任务的的待运行时长的数据差;进而,将计算得到的最小数据差对应的候选服务器,确定为用于处理该待处理任务的第三服务器。
这样,调度节点便可以将该待处理任务分配到该第三服务器,进而,第三服务器便可以开始运行待处理任务,以完成对该待处理任务的处理。
其中,针对每个候选服务器,当待处理任务的预测运行时长与该候选服务器当前所运行任务的的待运行时长的差值不小于零时,则所计算得到的数据差为:待处理任务的预测运行时长与该候选服务器当前所运行任务的的待运行时长的差值;否则,所计算得到的数据差为:待处理任务的预测运行时长与该候选服务器当前所运行任务的的待运行时长的差值的绝对值。
优选的,上述步骤22中,基于预测运行时长,以及各个候选服务器当前所运行任务的待运行时长,在各个候选服务器中,确定第三服务器,可以包括如下步骤:
步骤41:针对每个候选服务器,基于该候选服务器的运行状态信息、该候选服务器的待运行时长、待处理任务的任务信息和预测运行时长,对该候选服务器进行打分,得到该候选服务器的目标分值;
步骤42:将所得到的最大目标分值对应的候选服务器,确定为第三服务器。
可以理解的,GPU服务器在处理任务时,除该GPU服务器的剩余GPU资源外,该GPU服务器的其他性能参数也会对任务的处理效果带来影响。
基于此,为了能够保证所确定的第三服务器能够在剩余资源满足待处理任务所需的目标GPU资源的同时,提高第三服务器对该待处理任务的处理效果,针对每个候选服务器,调度节点便可以基于该候选服务器的运行状态信息、该候选服务器的待运行时长、待处理任务的任务信息和预测运行时长,对该候选服务器进行打分,得到该候选服务器的目标分值;进而,将所得到的最大目标分值对应的候选服务器,确定为用于处理该待处理任务的第三服务器。
这样,调度节点便可以将该待处理任务分配到该第三服务器,进而,第三服务器便可以开始运行待处理任务,以完成对该待处理任务的处理。
可选的,在上述步骤41中,待处理任务的任务信息可以包括:待处理任务所需的目标GPU资源、目标CPU资源和目标存储空间,以及待处理任务的目标镜像信息,相应的,每个候选服务器的运行状态信息可以包括:该候选服务器的GPU剩余资源、CPU剩余资源、可用存储空间以及所存储的镜像信息;
基于此,上述步骤41,针对每个候选服务器,基于该候选服务器的运行状态信息、该候选服务器的待运行时长、待处理任务的任务信息和预测运行时长,对该候选服务器进行打分,得到该候选服务器的目标分值,可以包括如下步骤:
步骤411:根据每个候选服务器的GPU剩余资源与目标GPU资源的数据差,确定每个候选服务器的GPU权重;
调度节点可以首先确定每个候选服务器的GPU剩余资源与待处理任务所需的目标GPU资源的数据差。进而,调度节点便可以根据所确定的各个数据差,确定每个候选服务器的GPU权重。
其中,针对每个候选服务器,当该候选服务器的GPU剩余资源与待处理任务所需的目标GPU资源的差值不小于零时,则所确定的数据差为:该候选服务器的GPU剩余资源与待处理任务所需的目标GPU资源的差值;否则,所确定的数据差为:该候选服务器的GPU剩余资源与待处理任务所需的目标GPU资源的差值的绝对值。并且,候选服务器的GPU剩余资源与目标GPU资源的数据差越小,则该候选服务器的GPU权值越大。
此外,调度节点可以通过多种方式执行上述步骤211,对此,本发明实施例不做具体限定。
例如,调度节点可以根据每个候选服务器的GPU剩余资源与待处理任务所需的目标GPU资源的数据差的比例关系,确定每个候选服务器的GPU权重。
步骤412:根据每个候选服务器的待运行时长与预测运行时长的数据差,确定每个候选服务器的时长权重;
调度节点可以首先确定每个候选服务器当前所运行任务的待运行时长与待处理任务的预测运行时长的数据差。进而,调度节点白可以根据所确定的数据差,确定每个候选服务器的时长权重。
其中,针对每个候选服务器,当该候选服务器当前所运行任务的待运行时长与待处理任务的预测运行时长的差值不小于零时,则所确定的数据差为:该候选服务器当前所运行任务的待运行时长与待处理任务的预测运行时长的差值;否则,所确定的数据差为:该候选服务器当前所运行任务的待运行时长与待处理任务的预测运行时长的差值的绝对值。并且,候选服务器的GPU剩余资源与目标GPU资源的数据差越小,则该候选服务器的GPU权值越大。
其中,候选服务器当前所运行任务的待运行时长与待处理任务的预测运行时长的数据差越小,则该候选服务器是的时长权重越大。
此外,调度节点可以通过多种方式执行上述步骤212,对此,本发明实施例不做具体限定。
例如,调度节点可以根据每个候选服务器当前所运行任务的待运行时长与待处理任务的预测运行时长的数据差的比例关系,确定每个候选服务器的时长权重。
步骤413:根据每个候选服务器的CPU剩余资源与目标CPU资源的数据差,确定每个候选服务器的CPU权重;
调度节点可以首先确定每个候选服务器的CPU剩余资源是否满足待处理任务所需的目标CPU资源,进而,去除掉CPU剩余资源不满足待处理任务所需的目标CPU资源的候选服务器,得到剩余的候选服务器,进而,调度节点便可以每个剩余的候选服务器的CPU剩余资源与待处理任务所需的CPU资源的数据差,确定每个剩余的候选服务器的CPU权重。
其中,调度节点可以确定CPU剩余资源不满足待处理任务所需的目标CPU资源的候选服务器的CPU权重为零。
针对每个剩余的候选服务器,当该剩余的候选服务器的CPU剩余资源与待处理任务所需的目标CPU资源的差值不小于零时,则所确定的数据差为:该剩余的候选服务器的CPU剩余资源与待处理任务所需的目标CPU资源的差值的差值;否则,所确定的数据差为:该剩余的候选服务器的CPU剩余资源与待处理任务所需的目标CPU资源的差值的差值的绝对值。并且,剩余的候选服务器的CPU剩余资源与待处理任务所需的目标CPU资源的数据差越大,则该候选服务器的CPU权重越大。
此外,调度节点可以通过多种方式执行上述步骤213,对此,本发明实施例不做具体限定。
例如,调度节点可以根据每个剩余的候选服务器的CPU剩余资源与待处理任务所需的目标CPU资源的数据差的比例关系,确定每个剩余的候选服务器的CPU权重。
步骤414:根据每个候选服务器的可用存储空间与目标存储空间的数据差,确定每个候选服务器的空间权重;
调度节点可以首先确定每个候选服务器的可用存储空间是否满足待处理任务所需的目标存储空间,进而,去除掉可用存储空间不满足待处理任务所需的目标存储空间的候选服务器,得到剩余的候选服务器,进而,调度节点便可以每个剩余的候选服务器的可用存储空间与待处理任务所需的目标存储空间的数据差,确定每个剩余的候选服务器的空间权重。
其中,调度节点可以确定存储空间不满足待处理任务所需的目标存储空间的候选服务器的空间权重为零。
其中,针对每个剩余的候选服务器,当该剩余的候选服务器的可用存储空间与待处理任务所需的目标存储空间的差值不小于零时,则所确定的数据差为:该剩余的候选服务器的可用存储空间与待处理任务所需的目标存储空间的差值;否则,所确定的数据差为:该剩余的候选服务器的可用存储空间与待处理任务所需的目标存储空间的差值的差值的绝对值。并且,剩余的候选服务器的可用存储空间与待处理任务所需的目标存储空间的数据差越大,则该候选服务器的空间权重越大。
此外,调度节点可以通过多种方式执行上述步骤214,对此,本发明实施例不做具体限定。
例如,调度节点可以根据每个剩余的候选服务器的可用存储空间与待处理任务所需的目标存储空间的数据差的比例关系,确定每个剩余的候选服务器的空间权重。
步骤415:分别判断每个候选服务器所存储的镜像信息中是否包括目标镜像信息,并根据判断结果,确定每个候选服务器的镜像权重;
其中,镜像(Mirroring)为一种文件形式,很多文件可以被转换为镜像信息存储,而在得到该镜像信息后,也可以将该镜像信息再次逆转换为原始文件。具体的,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像,则在上述步骤215中,即为判断每个候选服务器中是否存储有待处理任务的相关数据。
调度节点可以首先确定每个候选服务器所存储的镜像信息中是否包括待处理任务的目标镜像信息,进而,根据判断结果,确定各个候选服务器的镜像权重。
其中,所存储的镜像信息中包括目标镜像信息的候选服务器的镜像权重大于所存储的镜像信息中不包括目标镜像信息的候选服务器的镜像权重。
需要说明的是,本发明实施例中,不限定上述步骤411-415的具体执行顺序。
步骤416:针对每个候选服务器,计算该候选服务器的GPU权重、时长权重、CPU权重、空间权重和镜像权重的和值,作为该候选服务器的目标分值。
针对每个候选服务器,在确定该候选服务器的GPU权重、时长权重、CPU权重、空间权重和镜像权重后,调度节点便可以计算上述所确定的GPU权重、时长权重、CPU权重、空间权重和镜像权重的和值,进而,将计算得到的和值作为该候选服务器的目标分值。
为了能够保证调度节点在获取到待处理任务时,可以及时地为该待处理任务分配GPU资源,从而进一步提高待处理任务的处理效率。可选的,一种具体实现方式中,GPU服务器集群中第一类服务器和第二类服务器的数量关系是可以按照预设调整方式,且周期性调整的。
也就是说,在本具体实现方式中,调度节点可以按照预设周期,在每个预设周期结束时,调整GPU服务器集群中至少一个GPU服务器的类别,例如,将一个或多个第二类服务器调整为第一类服务器,或,将一个或多个第一类服务器调整为第二类服务器。这样,调整后的第一类服务器和第二类服务器便可以作为在该预设周期的下一周期内用于处理整机任务和碎片任务的GPU服务器。
其中,在本具体实现方式中,如图4,上述预设的调整方式可以包括如下步骤:
S401:在每个预设周期内,当开始运行一待处理任务和/或结束一已运行的任务时,采集当前时刻集群的集群信息;
其中,集群信息包括:集群内的任务信息和资源信息;
S402:在每个预设周期结束时,将所采集到的各个集群信息、每个集群信息对应的时刻,以及该预设周期的时间特性输入到预设的比例预测模型中,获得比例预测模型的第二输出结果,作为该预设周期的下一周期内,GPU服务器集群中第一类服务器和第二类服务器的数量关系;
其中,比例预测模型是基于多个样本集群信息、多个样本集群信息对应的时刻和多个样本时间特性训练得到的。
在本具体实现方式中,在每个预设周期内,当GPU服务器集群中的一GPU服务器开始运行一待处理任务和/或结束一已运行的任务时,调度节点便可以采集当前时刻该GPU服务器集群内的任务信息和资源信息。
其中,该任务信息可以包括:该GPU服务器集群中正在运行的任务总数量、正在运行的各类任务数量、正在等待分配GPU资源的任务总数据,以及正在等待分配GPU资源的各类任务数量等;当然,该任务信息中,还可以包括其他与该GPU服务器集群中的任务相关的信息;
该资源信息可以包括:该GPU服务器集群中的剩余GPU资源总量、各类GPU服务器所剩余GPU资源数量、正在使用的GPU资源总量,以及正在使用的各类GPU资源数量等;当然,该任务信息中,还可以包括其他与该GPU服务器集群中的GPU资源相关的信息。
此外,调度节点还可以获取到该预设周期的时间特性。其中,所谓预设周期的时间特性可以包括该预设周期的时长、该预设周期是否节假日、该预设周期为该GPU服务器集群开始运行的第几个周期等;当然,该预设周期的时间特性还可以包括其他与该预设周期的时间相关的特性信息。
具体的,可以在该预设周期中的任一时刻获取该预设周期的时间特性,例如,在该预设周期的开始时刻获取该预设周期的时间特性,或,在该预设周期的结束时刻获取该预设周期的时间特性等,这都是合理的。
这样,在每个预设周期结束时,调度节点便可以将所采集到的各个集群信息、每个集群信息对应的时刻,以及该预设周期的时间特性输入到预设的比例预测模型中,并获得比例预测模型的第二输出结果。其中,该所获得的第二输出结果即为该预设周期的下一周期内,GPU服务器集群中第一类服务器和第二类服务器的数量关系。
其中,上述比例预测模型是基于多个样本信息训练得到的,其中,每个样本信息中可以包括采集到的多个样本集群信息、每个样本集群信息对应的采集时刻,以及该多个样本集群信息对应的周期的时间特性。
具体的,将每个样本信息和每个样本信息对应的第一类服务器和第二类服务器的数量关系输入到预设的初始比例预测模型中进行训练,进而,得到训练完成的比例预测模型。在训练过程中,初始比例预测模型可以学习各个样本信息的特点,输出各个样本信息对应的数量关系,经过对大量的样本信息和样本信息对应的数量关系的学习,初始比例预测模型逐步建立样本信息和数量关系的对应关系,进而得到比例预测模型。
进而,训练得到的比例预测模型也就可以用于对在各个预设周期内采集到的各个集群信息、每个集群信息对应的时刻,以及该预设周期的时间特性进行检测,输出的检测结果即为该预设周期的下一周期内,GPU服务器集群中第一类服务器和第二类服务器的数量关系。
进一步的,在本具体实现方式中,在确定该预设周期的下一周期内,GPU服务器集群中第一类服务器和第二类服务器的数量关系后,调度节点便可以根据该数量关系,对当前的各个第一类服务器或第二类服务器中的至少一个服务器的类别进行调整。
显然,当所确定的该预设周期的下一周期内,GPU服务器集群中第一类服务器和第二类服务器的数量关系与当前GPU服务器集群中第一类服务器和第二类服务器的数量关系相同时,即在该预设周期和该预设周期的下一周期内,GPU服务器集群中第一类服务器和第二类服务器的数量关系相同时,调度节点也可以不调整当前的各个第一类服务器和第二类服务器的类型。
此外,在GPU服务器集群第一次开始运行时,GPU服务器集群中的各个GPU服务器还未被分类,此时,调度节点可以接收用户输入的第一类服务器和第二类服务器的数量关系,进而,基于该所接收到的数量关系配置各个GPU服务器,即为各个GPU服务器划分类别。
此外,优选的,在得到上述该预设周期的下一周期内,GPU服务器集群中第一类服务器和第二类服务器的数量关系后,调度节点还可以利用在该预设周期内所采集到的各个集群信息、每个集群信息对应的时刻、该预设周期的时间特性输入以及预测得到的该预设周期的下一周期内,GPU服务器集群中第一类服务器和第二类服务器的数量关系,对上述比例预测模型进行更新。
相应于上述本发明实施例提供的一种资源调度方法,本发明实施例还提供了一种资源调度装置。
图5为本发明实施例提供的一种资源调度装置的结构示意图。其中,该装置应用于GPU服务器集群中的调度节点,GPU服务器集群中的各个GPU服务器被划分为第一类服务器和第二类GPU服务器。如图5所示,该资源调度装置包括如下模块:
任务获取模块510,用于获取待处理任务,并根据待处理任务所需的目标GPU资源,确定待处理任务的类型;其中,类型包括:整机任务和碎片任务;
第一分配模块520,用于当待处理任务的类型为整机任务时,基于目标GPU资源,确定待处理任务所需GPU服务器的数量,将待处理任务分配到数量个第一类服务器中;
第二分配模块530,用于当待处理任务的类型为碎片任务时,将待处理任务分配到GPU资源满足目标GPU资源的第二类服务器中。
以上可见,应用本发明实施例提供的方案,是将整机任务和碎片任务分别分配到不同类型的GPU服务器中进行处理的。其中,对于各个第一类服务器而言,该第一类服务器中的GPU资源处于全部被占用或者全部未被占用的状态中。这样,无论待处理任务是否允许插队调度,对于待处理的整机任务而言,其不需要花费大量时间等待正在处理碎片任务的GPU服务器释放出全部GPU资源后,才可以被分配,相反的,调度节点可以直接在第一类服务器中寻找GPU资源未被占用的GPU服务器,并将该整机任务分配到所寻找到的GPU服务器中。基于此,应用本发明实施例提供的方案,待处理的整机任务可以被快速地分配到GPU服务器中,从而可以提高待处理任务的处理效率。
此外,当待处理任务不允许插队调度时,由于待处理的整机任务可以被快速地分配到GPU服务器中,因此待处理的整机任务也将不会阻塞后续待处理的碎片任务的运行。
可选的,一种具体实现方式中,上述待处理任务为目标数量个,该目标数量大于1,则在本具体实现方式中,上述第二分配模块530可以具体用于:
当目标数量个待处理任务中存在多个待处理任务的类型为碎片任务时,在多个待处理任务中,如果至少两个待处理任务中每个待处理任务的目标GPU资源满足预设资源关系,将至少两个待处理任务分配到一第一服务器中,其中,第一服务器为GPU资源满足至少两个待处理任务的目标GPU资源之和的第二类服务器;如果多个待处理任务中存在未被分配的待处理任务,针对每个未被分配的待处理任务,将该待处理任务分配到GPU资源满足待处理任务的第二类服务器中;其中,预设资源关系为:至少两个待处理任务中每个待处理任务的目标GPU资源的数量相同,且至少两个待处理任务的目标GPU资源之和不大于第二类服务器所能提供的最大GPU资源;或,预设资源关系为:至少两个待处理任务的目标GPU资源之和等于第二类服务器所能提供的最大GPU资源。
可选的,一种具体实现方式中,上述第二分配模块530可以包括:
时长确定子模块,用于当待处理任务的类型为碎片任务时,利用待处理任务的任务信息,预测待处理任务的运行时长,作为预测运行时长;
服务器确定子模块,用于基于预测运行时长,将待处理任务分配到GPU资源满足待处理任务的第二类服务器中。
可选的,一种具体实现方式中,上述待处理任务为目标数量个,该目标数量大于1,则在本具体实现方式中,
上述时长确定子模块,可以具体用于当目标数量个待处理任务中存在多个待处理任务的类型为碎片任务时,利用多个待处理任务中的各个待处理任务的任务信息,分别预测各个待处理任务的运行时长,作为各个待处理任务的预测运行时长;
上述服务器分配子模块,可以具体用于在多个待处理任务中,如果至少两个待处理任务中任两个待处理任务的预测运行时长差值小于预设时长阈值,且至少两个待处理任务的目标GPU资源之和不大于第二类服务器所能提供的最大GPU资源,将至少两个待处理任务分配到一第二服务器,第二服务器为GPU资源满足至少两个待处理任务的目标GPU资源之和的第二类服务器;如果多个待处理任务中存在未被分配的待处理任务,针对每个未被分配的待处理任务,将该待处理任务分配到GPU资源满足待处理任务的第二类服务器中。
可选的,一种具体实现方式中,上述服务器分配子模块可以包括:
服务器确定单元,用于在各个第二类服务器中,确定GPU资源满足待处理任务的各个候选服务器;
服务器分配单元,用于基于预测运行时长,以及各个候选服务器当前所运行任务的待运行时长,在各个候选服务器中,确定第三服务器,并将待处理任务分配到第三服务器中。
可选的,一种具体实现方式中,上述服务器分配单元可以具体用于:
针对每个候选服务器,计算预测运行时长与该候选服务器的待运行时长的数据差;将计算得到的数据差最小的候选服务器,确定为第三服务器。
可选的,一种具体实现方式中,上述服务器分配子模块可以包括:
分值计算子单元,用于针对每个候选服务器,基于该候选服务器的运行状态信息、该候选服务器的待运行时长、待处理任务的任务信息和预测运行时长,对该候选服务器进行打分,得到该候选服务器的目标分值;
服务器确定子单元,用于将所得到的最大目标分值对应的候选服务器,确定为第三服务器。
可选的,一种具体实现方式中,每个候选服务器的运行状态信息包括:该候选服务器的GPU剩余资源、CPU剩余资源、可用存储空间以及所存储的镜像信息;待处理任务的任务信息包括:待处理任务所需的目标GPU资源、目标CPU资源和目标存储空间,以及待处理任务的目标镜像信息;
则在本具体实现方式中,上述分值计算子单元可以具体用于:
根据每个候选服务器的GPU剩余资源与目标GPU资源的数据差,确定每个候选服务器的GPU权重;根据每个候选服务器的待运行时长与预测运行时长的数据差,确定每个候选服务器的时长权重;根据每个候选服务器的CPU剩余资源与目标CPU资源的数据差,确定每个候选服务器的CPU权重;根据每个候选服务器的可用存储空间与目标存储空间的数据差,确定每个候选服务器的空间权重;分别判断每个候选服务器所存储的镜像信息中是否包括目标镜像信息,并根据判断结果,确定每个候选服务器的镜像权重;针对每个候选服务器,计算该候选服务器的GPU权重、时长权重、CPU权重、空间权重和镜像权重的和值,作为该候选服务器的目标分值。
可选的,一种具体实现方式中,上述时长确定子模块可以具体用于:
将待处理任务的任务信息输入到预设的时长预测模型中,获得时长预测模型的第一输出结果,并将第一输出结果作为预测运行时长;
其中,时长预测模型是基于多个任务样本训练得到的。
可选的,一种具体实现方式中,上述资源调度装置还可以包括:
关系调整模块,用于按照预设方法,且周期性地调整GPU服务器集群中第一类服务器和第二类服务器的数量关系;
则在本具体实现方式中,上述关系调整模块可以具体用于:
在每个预设周期内,当开始运行一待处理任务和/或结束一已运行的任务时,采集当前时刻集群的集群信息;其中,集群信息包括:集群内的任务信息和资源信息;在每个预设周期结束时,将所采集到的各个集群信息、每个集群信息对应的时刻,以及该预设周期的时间特性输入到预设的比例预测模型中,获得比例预测模型的第二输出结果,作为该预设周期的下一周期内,GPU服务器集群中第一类服务器和第二类服务器的数量关系;其中,比例预测模型是基于多个样本集群信息、多个样本集群信息对应的时刻和多个样本时间特性训练得到的。
相应于上述本发明实施例提供的一种资源调度方法,本发明实施例还提供了一种电子设备,该电子设备即为上述本发明实施例中的调度节点。如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现上述本发明实施例提供的一种资源调度方法中任一的方法。
上述调度节点提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述调度节点与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
相应于上述本发明实施例提供的一种资源调度方法,本发明实施例还提供了一种计算机可读存储介质,该计算机程序被处理器执行时实现上述本发明实施例提供的一种资源调度方法中任一的方法。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、调度节点实施例、计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (19)

1.一种资源调度方法,其特征在于,应用于GPU服务器集群中的调度节点,所述GPU服务器集群中的各个GPU服务器被划分为第一类服务器和第二类服务器,所述方法包括:
获取待处理任务,并根据所述待处理任务所需的目标GPU资源,确定所述待处理任务的类型;其中,所述类型包括:整机任务和碎片任务;所述整机任务为:所述待处理任务所需的目标GPU资源为每个GPU服务器安装的GPU数量的整数倍时的待处理任务的类型;所述碎片任务为:待处理任务所需的目标GPU资源小于每个GPU服务器安装的GPU数量时的待处理任务的类型;
当所述待处理任务的类型为整机任务时,基于所述目标GPU资源,确定所述待处理任务所需GPU服务器的数量,将所述待处理任务分配到所述数量个所述第一类服务器中;
当所述待处理任务的类型为碎片任务时,将所述待处理任务分配到GPU资源满足所述目标GPU资源的所述第二类服务器中;
所述GPU服务器集群中所述第一类服务器和所述第二类服务器的数量关系是按照预设调整方式,且周期性调整的;所述预设调整方式为:
在每个预设周期内,当开始运行一待处理任务和/或结束一已运行的任务时,采集当前时刻所述集群的集群信息;其中,所述集群信息包括:所述集群内的任务信息和资源信息;
在每个所述预设周期结束时,将所采集到的各个集群信息、每个集群信息对应的时刻,以及该预设周期的时间特性输入到预设的比例预测模型中,获得所述比例预测模型的第二输出结果,作为该预设周期的下一周期内,所述GPU服务器集群中所述第一类服务器和所述第二类服务器的数量关系;其中,所述比例预测模型是基于多个样本集群信息、多个所述样本集群信息对应的时刻和多个样本时间特性训练得到的。
2.根据权利要求1所述的方法,其特征在于,所述待处理任务为目标数量个,所述目标数量大于1;
所述当所述待处理任务的类型为碎片任务时,将所述待处理任务分配到GPU资源满足所述目标GPU资源的所述第二类服务器中的步骤,包括:
当所述目标数量个待处理任务中存在多个待处理任务的类型为碎片任务时,在所述多个待处理任务中,如果至少两个待处理任务中每个待处理任务的目标GPU资源满足预设资源关系,将所述至少两个待处理任务分配到一第一服务器中,其中,所述第一服务器为GPU资源满足所述至少两个待处理任务的目标GPU资源之和的所述第二类服务器;
如果所述多个待处理任务中存在未被分配的待处理任务,针对每个未被分配的待处理任务,将该待处理任务分配到GPU资源满足所述待处理任务的所述第二类服务器中;
其中,所述预设资源关系为:所述至少两个待处理任务中每个待处理任务的目标GPU资源的数量相同,且所述至少两个待处理任务的目标GPU资源之和不大于所述第二类服务器所能提供的最大GPU资源;
或,
所述预设资源关系为:所述至少两个待处理任务的目标GPU资源之和等于所述第二类服务器所能提供的最大GPU资源。
3.根据权利要求1所述的方法,其特征在于,所述当所述待处理任务的类型为碎片任务时,将所述待处理任务分配到GPU资源满足所述目标GPU资源的所述第二类服务器中的步骤,包括:
当所述待处理任务的类型为碎片任务时,利用所述待处理任务的任务信息,预测所述待处理任务的运行时长,作为预测运行时长;
基于所述预测运行时长,将所述待处理任务分配到GPU资源满足所述待处理任务的所述第二类服务器中。
4.根据权利要求3所述的方法,其特征在于,所述待处理任务为目标数量个,所述目标数量大于1;
所述当所述待处理任务的类型为碎片任务时,利用所述待处理任务的任务信息,预测所述待处理任务的运行时长,作为预测运行时长的步骤,包括:
当所述目标数量个待处理任务中存在多个待处理任务的类型为碎片任务时,利用所述多个待处理任务中的各个待处理任务的任务信息,分别预测各个待处理任务的运行时长,作为各个待处理任务的预测运行时长;
所述基于所述预测运行时长,将所述待处理任务分配到GPU资源满足所述待处理任务的所述第二类服务器中的步骤,包括:
在所述多个待处理任务中,如果至少两个待处理任务中任两个待处理任务的预测运行时长差值小于预设时长阈值,且所述至少两个待处理任务的目标GPU资源之和不大于所述第二类服务器所能提供的最大GPU资源,将所述至少两个待处理任务分配到一第二服务器,所述第二服务器为GPU资源满足所述至少两个待处理任务的目标GPU资源之和的所述第二类服务器;
如果所述多个待处理任务中存在未被分配的待处理任务,针对每个未被分配的待处理任务,将该待处理任务分配到GPU资源满足所述待处理任务的所述第二类服务器中。
5.根据权利要求3所述的方法,其特征在于,所述基于所述预测运行时长,将所述待处理任务分配到GPU资源满足所述待处理任务的所述第二类服务器中的步骤,包括:
在各个所述第二类服务器中,确定GPU资源满足所述待处理任务的各个候选服务器;
基于所述预测运行时长,以及各个所述候选服务器当前所运行任务的待运行时长,在各个所述候选服务器中,确定第三服务器,并将所述待处理任务分配到所述第三服务器中。
6.根据权利要求5所述的方法,其特征在于,所述基于所述预测运行时长,以及各个所述候选服务器当前所运行任务的待运行时长,在各个所述候选服务器中,确定第三服务器的步骤,包括:
针对每个所述候选服务器,计算所述预测运行时长与该候选服务器的所述待运行时长的数据差;
将计算得到的数据差最小的候选服务器,确定为第三服务器。
7.根据权利要求5所述的方法,其特征在于,所述基于所述预测运行时长,以及各个所述候选服务器当前所运行任务的待运行时长,在各个所述候选服务器中,确定第三服务器的步骤,包括:
针对每个所述候选服务器,基于该候选服务器的运行状态信息、该候选服务器的所述待运行时长、所述待处理任务的任务信息和所述预测运行时长,对该候选服务器进行打分,得到该候选服务器的目标分值;
将所得到的最大目标分值对应的候选服务器,确定为第三服务器。
8.根据权利要求7所述的方法,其特征在于,每个所述候选服务器的所述运行状态信息包括:该候选服务器的GPU剩余资源、CPU剩余资源、可用存储空间以及所存储的镜像信息;所述待处理任务的任务信息包括:所述待处理任务所需的目标GPU资源、目标CPU资源和目标存储空间,以及所述待处理任务的目标镜像信息;
所述针对每个所述候选服务器,基于该候选服务器的运行状态信息、该候选服务器的所述待运行时长、所述待处理任务的任务信息和所述预测运行时长,对该候选服务器进行打分,得到该候选服务器的目标分值的步骤,包括:
根据每个所述候选服务器的GPU剩余资源与所述目标GPU资源的数据差,确定每个所述候选服务器的GPU权重;
根据每个所述候选服务器的所述待运行时长与所述预测运行时长的数据差,确定每个所述候选服务器的时长权重;
根据每个所述候选服务器的CPU剩余资源与所述目标CPU资源的数据差,确定每个所述候选服务器的CPU权重;
根据每个所述候选服务器的可用存储空间与所述目标存储空间的数据差,确定每个所述候选服务器的空间权重;
分别判断每个所述候选服务器所存储的镜像信息中是否包括所述目标镜像信息,并根据判断结果,确定每个所述候选服务器的镜像权重;
针对每个所述候选服务器,计算该候选服务器的GPU权重、时长权重、CPU权重、空间权重和镜像权重的和值,作为该候选服务器的目标分值。
9.根据权利要求3所述的方法,其特征在于,所述利用所述待处理任务的任务信息,预测所述待处理任务的运行时长,作为预测运行时长的步骤,包括:
将所述待处理任务的任务信息输入到预设的时长预测模型中,获得所述时长预测模型的第一输出结果,并将所述第一输出结果作为预测运行时长;
其中,所述时长预测模型是基于多个任务样本训练得到的。
10.一种资源调度装置,其特征在于,应用于GPU服务器集群中的调度节点,所述GPU服务器集群中的各个GPU服务器被划分为第一类服务器和第二类服务器,所述装置包括:
任务获取模块,用于获取待处理任务,并根据所述待处理任务所需的目标GPU资源,确定所述待处理任务的类型;其中,所述类型包括:整机任务和碎片任务;所述整机任务为:所述待处理任务所需的目标GPU资源为每个GPU服务器安装的GPU数量的整数倍时的待处理任务的类型;所述碎片任务为:待处理任务所需的目标GPU资源小于每个GPU服务器安装的GPU数量时的待处理任务的类型;
第一分配模块,用于当所述待处理任务的类型为整机任务时,基于所述目标GPU资源,确定所述待处理任务所需GPU服务器的数量,将所述待处理任务分配到所述数量个所述第一类服务器中;
第二分配模块,用于当所述待处理任务的类型为碎片任务时,将所述待处理任务分配到GPU资源满足所述目标GPU资源的所述第二类服务器中;
关系调整模块,用于按照预设方法,且周期性地调整所述GPU服务器集群中所述第一类服务器和所述第二类服务器的数量关系;
所述关系调整模块具体用于:
在每个预设周期内,当开始运行一待处理任务和/或结束一已运行的任务时,采集当前时刻所述集群的集群信息;其中,所述集群信息包括:所述集群内的任务信息和资源信息;在每个所述预设周期结束时,将所采集到的各个集群信息、每个集群信息对应的时刻,以及该预设周期的时间特性输入到预设的比例预测模型中,获得所述比例预测模型的第二输出结果,作为该预设周期的下一周期内,所述GPU服务器集群中所述第一类服务器和所述第二类服务器的数量关系;其中,所述比例预测模型是基于多个样本集群信息、多个所述样本集群信息对应的时刻和多个样本时间特性训练得到的。
11.根据权利要求10所述的装置,其特征在于,所述待处理任务为目标数量个,所述目标数量大于1;所述第二分配模块具体用于:
当所述目标数量个待处理任务中存在多个待处理任务的类型为碎片任务时,在所述多个待处理任务中,如果至少两个待处理任务中每个待处理任务的目标GPU资源满足预设资源关系,将所述至少两个待处理任务分配到一第一服务器中,其中,所述第一服务器为GPU资源满足所述至少两个待处理任务的目标GPU资源之和的所述第二类服务器;如果所述多个待处理任务中存在未被分配的待处理任务,针对每个未被分配的待处理任务,将该待处理任务分配到GPU资源满足所述待处理任务的所述第二类服务器中;其中,所述预设资源关系为:所述至少两个待处理任务中每个待处理任务的目标GPU资源的数量相同,且所述至少两个待处理任务的目标GPU资源之和不大于所述第二类服务器所能提供的最大GPU资源;或,所述预设资源关系为:所述至少两个待处理任务的目标GPU资源之和等于所述第二类服务器所能提供的最大GPU资源。
12.根据权利要求10所述的装置,其特征在于,所述第二分配模块包括:
时长确定子模块,用于当所述待处理任务的类型为碎片任务时,利用所述待处理任务的任务信息,预测所述待处理任务的运行时长,作为预测运行时长;
服务器分配子模块,用于基于所述预测运行时长,将所述待处理任务分配到GPU资源满足所述待处理任务的所述第二类服务器中。
13.根据权利要求12所述的装置,其特征在于,所述待处理任务为目标数量个,所述目标数量大于1;
所述时长确定子模块,具体用于当所述目标数量个待处理任务中存在多个待处理任务的类型为碎片任务时,利用所述多个待处理任务中的各个待处理任务的任务信息,分别预测各个待处理任务的运行时长,作为各个待处理任务的预测运行时长;
所述服务器分配子模块,具体用于在所述多个待处理任务中,如果至少两个待处理任务中任两个待处理任务的预测运行时长差值小于预设时长阈值,且所述至少两个待处理任务的目标GPU资源之和不大于所述第二类服务器所能提供的最大GPU资源,将所述至少两个待处理任务分配到一第二服务器,所述第二服务器为GPU资源满足所述至少两个待处理任务的目标GPU资源之和的所述第二类服务器;如果所述多个待处理任务中存在未被分配的待处理任务,针对每个未被分配的待处理任务,将该待处理任务分配到GPU资源满足所述待处理任务的所述第二类服务器中。
14.根据权利要求12所述的装置,其特征在于,所述服务器分配子模块包括:
服务器确定单元,用于在各个所述第二类服务器中,确定GPU资源满足所述待处理任务的各个候选服务器;
服务器分配单元,用于基于所述预测运行时长,以及各个所述候选服务器当前所运行任务的待运行时长,在各个所述候选服务器中,确定第三服务器,并将所述待处理任务分配到所述第三服务器中。
15.根据权利要求14所述的装置,其特征在于,所述服务器分配单元具体用于:
针对每个所述候选服务器,计算所述预测运行时长与该候选服务器的所述待运行时长的数据差;将计算得到的数据差最小的候选服务器,确定为第三服务器。
16.根据权利要求14所述的装置,其特征在于,所述服务器分配单元包括:
分值计算子单元,用于针对每个所述候选服务器,基于该候选服务器的运行状态信息、该候选服务器的所述待运行时长、所述待处理任务的任务信息和所述预测运行时长,对该候选服务器进行打分,得到该候选服务器的目标分值;
服务器确定子单元,用于将所得到的最大目标分值对应的候选服务器,确定为第三服务器。
17.根据权利要求16所述的装置,其特征在于,每个所述候选服务器的所述运行状态信息包括:该候选服务器的GPU剩余资源、CPU剩余资源、可用存储空间以及所存储的镜像信息;所述待处理任务的任务信息包括:所述待处理任务所需的目标GPU资源、目标CPU资源和目标存储空间,以及所述待处理任务的目标镜像信息;
所述分值计算子单元具体用于:
根据每个所述候选服务器的GPU剩余资源与所述目标GPU资源的数据差,确定每个所述候选服务器的GPU权重;根据每个所述候选服务器的所述待运行时长与所述预测运行时长的数据差,确定每个所述候选服务器的时长权重;根据每个所述候选服务器的CPU剩余资源与所述目标CPU资源的数据差,确定每个所述候选服务器的CPU权重;根据每个所述候选服务器的可用存储空间与所述目标存储空间的数据差,确定每个所述候选服务器的空间权重;分别判断每个所述候选服务器所存储的镜像信息中是否包括所述目标镜像信息,并根据判断结果,确定每个所述候选服务器的镜像权重;针对每个所述候选服务器,计算该候选服务器的GPU权重、时长权重、CPU权重、空间权重和镜像权重的和值,作为该候选服务器的目标分值。
18.根据权利要求12所述的装置,其特征在于,所述时长确定子模块具体用于:
将所述待处理任务的任务信息输入到预设的时长预测模型中,获得所述时长预测模型的第一输出结果,并将所述第一输出结果作为预测运行时长;
其中,所述时长预测模型是基于多个任务样本训练得到的。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现:
获取待处理任务,并根据所述待处理任务所需的目标GPU资源,确定所述待处理任务的类型;其中,所述类型包括:整机任务和碎片任务;所述整机任务为:所述待处理任务所需的目标GPU资源为每个GPU服务器安装的GPU数量的整数倍时的待处理任务的类型;所述碎片任务为:待处理任务所需的目标GPU资源小于每个GPU服务器安装的GPU数量时的待处理任务的类型;
当所述待处理任务的类型为整机任务时,基于所述目标GPU资源,确定所述待处理任务所需GPU服务器的数量,将所述待处理任务分配到所述数量个第一类服务器中;
当所述待处理任务的类型为碎片任务时,将所述待处理任务分配到GPU资源满足所述目标GPU资源的第二类服务器中;
所述GPU服务器集群中所述第一类服务器和所述第二类服务器的数量关系是按照预设调整方式,且周期性调整的;所述预设调整方式为:
在每个预设周期内,当开始运行一待处理任务和/或结束一已运行的任务时,采集当前时刻所述集群的集群信息;其中,所述集群信息包括:所述集群内的任务信息和资源信息;
在每个所述预设周期结束时,将所采集到的各个集群信息、每个集群信息对应的时刻,以及该预设周期的时间特性输入到预设的比例预测模型中,获得所述比例预测模型的第二输出结果,作为该预设周期的下一周期内,所述GPU服务器集群中所述第一类服务器和所述第二类服务器的数量关系;其中,所述比例预测模型是基于多个样本集群信息、多个所述样本集群信息对应的时刻和多个样本时间特性训练得到的。
CN201910578725.1A 2019-06-28 2019-06-28 一种资源调度方法、装置、电子设备及存储介质 Active CN112148468B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910578725.1A CN112148468B (zh) 2019-06-28 2019-06-28 一种资源调度方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910578725.1A CN112148468B (zh) 2019-06-28 2019-06-28 一种资源调度方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN112148468A CN112148468A (zh) 2020-12-29
CN112148468B true CN112148468B (zh) 2023-10-10

Family

ID=73891254

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910578725.1A Active CN112148468B (zh) 2019-06-28 2019-06-28 一种资源调度方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112148468B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113238848A (zh) * 2021-05-27 2021-08-10 上海商汤科技开发有限公司 一种任务调度方法、装置、计算机设备和存储介质
CN113485833B (zh) * 2021-07-09 2024-02-06 支付宝(杭州)信息技术有限公司 资源预测方法和装置
CN113742059B (zh) * 2021-07-15 2024-03-29 上海朋熙半导体有限公司 任务分配方法、装置、计算机设备和存储介质
CN115794337B (zh) * 2022-11-14 2023-09-26 北京百度网讯科技有限公司 资源调度方法、装置、云平台、设备及存储介质
CN115981871B (zh) * 2023-03-17 2024-01-26 苏州万店掌网络科技有限公司 一种gpu资源调度方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018059423A1 (zh) * 2016-09-30 2018-04-05 腾讯科技(深圳)有限公司 分布式资源调度方法、调度节点及接入节点
WO2018120993A1 (zh) * 2016-12-30 2018-07-05 华为技术有限公司 一种分布式系统任务分配的方法和装置
CN109032610A (zh) * 2017-06-08 2018-12-18 杭州海康威视数字技术股份有限公司 一种程序包部署方法、电子设备及分布式系统
CN109471727A (zh) * 2018-10-29 2019-03-15 北京金山云网络技术有限公司 一种任务处理方法、装置及系统
CN109634748A (zh) * 2018-12-12 2019-04-16 深圳前海微众银行股份有限公司 集群资源调度方法、装置、设备及计算机可读存储介质
CN109936604A (zh) * 2017-12-18 2019-06-25 北京图森未来科技有限公司 一种资源调度方法、装置和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10846144B2 (en) * 2017-12-05 2020-11-24 D2Iq, Inc. Multistep automated scaling for cluster containers

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018059423A1 (zh) * 2016-09-30 2018-04-05 腾讯科技(深圳)有限公司 分布式资源调度方法、调度节点及接入节点
WO2018120993A1 (zh) * 2016-12-30 2018-07-05 华为技术有限公司 一种分布式系统任务分配的方法和装置
CN108268318A (zh) * 2016-12-30 2018-07-10 华为技术有限公司 一种分布式系统任务分配的方法和装置
CN109032610A (zh) * 2017-06-08 2018-12-18 杭州海康威视数字技术股份有限公司 一种程序包部署方法、电子设备及分布式系统
CN109936604A (zh) * 2017-12-18 2019-06-25 北京图森未来科技有限公司 一种资源调度方法、装置和系统
CN109471727A (zh) * 2018-10-29 2019-03-15 北京金山云网络技术有限公司 一种任务处理方法、装置及系统
CN109634748A (zh) * 2018-12-12 2019-04-16 深圳前海微众银行股份有限公司 集群资源调度方法、装置、设备及计算机可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一种基于Spark在线Web服务的高效低延迟调度资源算法;丁晶晶;张功萱;;计算机工程与科学(08);38-44 *
云计算环境下多GPU资源调度机制研究;吕相文;袁家斌;张玉洁;;小型微型计算机系统(04);49-55 *

Also Published As

Publication number Publication date
CN112148468A (zh) 2020-12-29

Similar Documents

Publication Publication Date Title
CN112148468B (zh) 一种资源调度方法、装置、电子设备及存储介质
CN110837410B (zh) 任务调度方法、装置、电子设备及计算机可读存储介质
CN108027889B (zh) 一种用于增量式学习云系统的训练、调度方法及相关设备
CN112153700B (zh) 一种网络切片资源管理方法及设备
CN110389816B (zh) 用于资源调度的方法、装置以及计算机可读介质
US8434085B2 (en) Scalable scheduling of tasks in heterogeneous systems
CN112449750A (zh) 日志数据收集方法、日志数据收集装置、存储介质和日志数据收集系统
CN111108480A (zh) 一种用于分布式资源需求及分配的系统和方法
CN105900064A (zh) 调度数据流任务的方法和装置
CN105487930A (zh) 一种基于Hadoop的任务优化调度方法
WO2017166643A1 (zh) 一种任务资源的量化方法和装置
CN104915253B (zh) 一种作业调度的方法及作业处理器
CN103701886A (zh) 一种云计算环境下的服务及资源分层调度方法
CN113946431B (zh) 一种资源调度方法、系统、介质及计算设备
CN106775948B (zh) 一种基于优先级的云任务调度方法及装置
CN105607952B (zh) 一种虚拟化资源的调度方法及装置
CN106569892B (zh) 资源调度方法与设备
CN111343288B (zh) 作业调度方法、系统及计算设备
US20230037783A1 (en) Resource scheduling method and related apparatus
CN103491024A (zh) 一种面向流式数据的作业调度方法及装置
CN104580194A (zh) 面向视频应用的虚拟化资源管理方法及装置
CN111625367B (zh) 一种动态调整文件系统读写资源的方法
Choi et al. An enhanced data-locality-aware task scheduling algorithm for hadoop applications
CN105022668A (zh) 一种作业调度方法及系统
CN106502790A (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