CN114647515A - 一种面向gpu集群的动态资源调度方法 - Google Patents

一种面向gpu集群的动态资源调度方法 Download PDF

Info

Publication number
CN114647515A
CN114647515A CN202210382828.2A CN202210382828A CN114647515A CN 114647515 A CN114647515 A CN 114647515A CN 202210382828 A CN202210382828 A CN 202210382828A CN 114647515 A CN114647515 A CN 114647515A
Authority
CN
China
Prior art keywords
resource
task
gpu
node
scheme
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210382828.2A
Other languages
English (en)
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 Dianzi University
Original Assignee
Hangzhou Dianzi University
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 Dianzi University filed Critical Hangzhou Dianzi University
Priority to CN202210382828.2A priority Critical patent/CN114647515A/zh
Publication of CN114647515A publication Critical patent/CN114647515A/zh
Pending legal-status Critical Current

Links

Images

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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开一种面向GPU集群的动态资源调度方法。构建资源‑时间模型和资源‑性能模型;进行分布式深度学习任务的动态资源方案决策;根据任务的最优方案
Figure DDA0003592538900000011
执行物理资源节点分配;在动态资源调度算法每次执行任务调度流程前,将分析已运行任务情况,决定是否进行资源迁移:调度器执行调度算法选择新的任务至GPU集群运行。本发明综合考虑了任务自身的完成时间和用户截至完成时间,根据GPU集群负载情况和任务运行情况可实时动态调度GPU工作,有效减少了深度学习训练任务完成时间,最大化截止时间保证率并有效地提高了GPU集群工作效率和GPU集群节点的资源利用率。

Description

一种面向GPU集群的动态资源调度方法
技术领域
本发明涉及一种面向GPU集群的动态资源调度方法,GPU集群上借助分布式深度学习技术利用多个GPU设备对深度神经网络(Deep Neural Networks,DNN)模型进行并行训练,从而加快训练过程。
背景技术
深度学习技术在过去几年被应用于众多业务场景当中,研发人员根据业务场景的目标特征构建DNN模型,并在特定数据集上反复训练直至模型精度维持在一个预期的水平,从而达到业务场景的复杂程度提高,此时需要结构更复杂并且层数越来越多的DNN模型来获得较高的精度,同时数据集的规模也不断地增长,导致训练一个DNN模型需要耗费大量的时间。
因此学术界和工业界需要通过分布式并行计算的方式构建分布式深度学习任务,在GPU集群上使用多个GPU设备同时对DNN模型进行训练从而加快训练过程。现在的主流的机器学习框架,如PyTorch、TensorFlow等,都对分布式深度学习提供了完整的技术支持。
多数企业和高校通常会采购多个GPU设备组建一个中小规模的GPU集群来运行多个用户的分布式深度学习任务。他们目前使用现有的GPU集群调度器,例如Yarn、Mesos和Kubernetes,并未对分布式深度学习任务提供良好的调度支持,会导致资源分配不当,运行效率不高,无法满足用户要求。在某实验室使用Yarn进行资源管理的GPU集群中,同一机架和跨机架分别采用无线宽带技术和以太网对GPU设备之间进行互联,由于GPU设备间的带宽差异,不同资源布局方式会导致DNN模型的训练效率不同,该GPU集群上的历史调度日志表明该GPU集群的平均资源利用率仅有50%。此外,对于GPU集群用户而言,任务截止时间是衡量用户满意度的关键指标,在大多数情况下,用户可以接受在截止时间之前完成的任务,而当任务结束时间超过截止时间时,用户对于GPU集群的性能满意度会大幅下降。
许多专家和学者在GPU集群的资源调度上针对不同的优化指标进行了研究,现有相关工作主要从减少任务完成时间和提升GPU集群性能指标两方面进行资源调度过程。现有相关工作虽然能够较为有效地解决GPU集群的资源调度问题,其中尝试结合资源分配、资源布局和截止时间需求的研究工作较少,但是对于在异构带宽环境下最大化截止时间保证率仍存在一定的局限性。
发明内容
本发明的一个目的是针对异构带宽环境下具有截止时间需求的多任务调度问题,提出一种面向GPU集群的动态调度的方法,将资源配置、资源布局和截止时间需求相结合得到调度决策,最大化截止时间保证率并提高GPU集群节点的资源利用率。
本发明方法包括以下步骤:
一种面向GPU集群的动态资源调度方法,包括以下步骤:
步骤(1)、基于分布式机器学习的Ring-Allreduce通信架构下的DNN模型迭代特征和GPU设备间的带宽差异,构建资源-时间模型;
步骤(2)、基于资源方案使用的资源数量、任务运行时间和任务截止时间构建了资源-性能模型;
步骤(3)、在步骤(1)、(2)基础上进行分布式深度学习任务的动态资源方案决策;
步骤(4)、在步骤(3)的基础上,根据任务的最优方案
Figure BDA0003592538880000021
执行物理资源节点分配;
步骤(5)、在动态资源调度算法每次执行任务调度流程前,将分析已运行任务情况,决定是否进行资源迁移:
步骤(6)、调度器执行调度算法选择新的任务至GPU集群运行。
本发明的另一个目的是提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述的方法。
本发明的又一个目的是提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述的方法。
本发明的有益效果:
1)利用时间模型获取任务在不同资源方案下的运行时间,其次利用性能模型指导分布式深度学习任务的最优资源方案生成,然后基于最近截止时间原则选择调度任务,最后进行资源分配确定资源方案的物理资源位置,生成含有GPU集群节点序号和GPU数量的运行方案。借助机器学习框架应用接口在GPU集群服务器上启动任务运行脚本,完成资源调度过程。
2)引入迁移机制减少调度过程中出现的资源碎片场景的影响。
3)Ring-Allreduce通信架构能够有效减少参数同步阶段所需要的通信时间。
4)使用资源-性能模型对可用资源方案进行筛选,保留可进行有效分布式训练的资源方案,减少出现资源浪费的现象。
与现有技术相比,本发明综合考虑了任务自身的完成时间和用户截至完成时间,根据GPU集群负载情况和任务运行情况可实时动态调度GPU工作,有效减少了深度学习训练任务完成时间,最大化截止时间保证率并有效地提高了GPU集群工作效率和GPU集群节点的资源利用率。
相关概念定义及符号说明
cfree:表示空闲GPU数量;
Trun:表示在某个资源方案下的实际运行时间;
Tcal:表示单个GPU设备上的计算时间;
ls:表示一个单节点资源方案列表;
lm:表示跨节点资源方案列表。
附图说明
图1:Ring-Allreduce通信架构示意图。
图2:资源配置决策示意图。
图3:物理资源分配示意图。
图4:资源迁移机制示意图。
图5:动态资源调度方法示意图。
具体实施方式
下面结合附图对本发明做进一步的分析。
本发明面向GPU集群的动态资源调度方法包括以下步骤:
一种面向GPU集群的动态资源调度方法,其特征在于包括以下步骤:
步骤(1)、基于分布式机器学习的Ring-Allreduce通信架构下的DNN模型迭代特征和GPU设备间的带宽差异,构建资源-时间模型:
所述Ring-Allreduce通信架构包括互相通信的GPU集群的若干节点,每个节点中包括多个CPU和GPU,同一个节点上的GPU设备借助高速串行计算机扩展总线标准(PCIe)和快速通道互联(QPI)进行通信(其中GPU和GPU间采用PCIe通信,GPU和CPU间采用PCIe通信,CPU和CPU间采用QPI通信),GPU集群中的节点与节点之间则借助无线宽带技术(InfiniBand)进行通信;
所述资源-时间模型包括如下:
(1.1)分布式深度学习任务在某个资源方案下的实际运行时间Trun表示如下:
Trun=Tstep×Nstep×Nepoch 式(1)
其中,Tstep是DNN模型训练一个批次大小的数据集所花费的时间,Nstep是DNN模型在一个迭代回合中可输入的一个批次大小的数据集个数,Nepoch表示迭代回合;
(1.2)Tstep由单个CPU设备上的计算时间Tcal、CPU与CPU设备间的通信时间Tcomm所组成,其计算公式如下:
Tstep=Tcal+Tcomm 式(2)
(1.4)Nstep会随着资源方案所包含的GPU总数不同而发生变化,数量越多,则Nstep则相应地减少;Nstep、DNN模型训练数据集大小Sdataset、批次大小Sbatch和GPU总数NGPU在分布式数据并行训练过程中的关系如下:
Figure BDA0003592538880000041
其中,NGPU由资源方案上每个节点的cused累加得到,Cused表示训练任务在单个节点上被使用的GPU数量;
(1.5)通过将DNN模型放置在单个GPU设备上进行若干批次的迭代并记录对应的运行时间,由于不涉及多设备通信,因此该运行时间仅包含将单个GPU设备上的计算时间表示如下:
Figure BDA0003592538880000042
其中,T'step是若干次迭代的运行时间,N'step是相应的迭代次数;
(1.6)如果不存在通信时间,那么任务的运行时间和资源方案所包含的GPU总数将为正比关系,即随着GPU总数上升,任务的运行时间将会成比例下降.而存在通信时间时,则会导致运行效率的下降;Ring-Allreduce通信架构下的通信时间Tcomm表示如下:
Figure BDA0003592538880000043
其中,BW是两GPU设备之间的带宽速度,如果两GPU设备处于同一个节点上,则BW就是节点内GPU设备之间的带宽,如果两GPU设备处于不同节点,则BW就是节点间的网络带宽;
步骤(2)、基于资源方案使用的资源数量、任务运行时间和任务截止时间构建了资源-性能模型:
(2.1)截止时间建模:
(2.1.1)设用户对于任务的截止时间需求由任务到达时间、任务优先级以及任务最大运行时间所组成,其中最大运行时间是任务仅在单个GPU设备上的运行时间,定义若干任务优先级,将优先级转换为任务的期望运行时间Texp,其计算公式表示如下:
Figure BDA0003592538880000051
其中,α对应任务优先级,
Figure BDA0003592538880000052
表示任务在单个GPU设备上运行的时间;
(2.1.2)设任务的到达时间和运行开始时间分别为Tarr和Tstart,则任务的截止时间Tdl和运行结束时间Tend则可分别表示为:
Tdl=Tarr+Texp 式(7)
Tend=Tstart+Trum 式(8)
(2.1.3)当任务的截至时间Tdl和运行结束时间Tend满足下述的式(9)时,说明任务结束时满足用户的截止时间需求:
Tend<Tdl 式(9)
(2.2)当资源方案所持有的GPU设备都位于同一节点上时,其带宽速度为GPU设备之间的直连带宽,而当资源方案所持有的GPU设备位于不同节点上时,其带宽速度则为节点和节点之间的网络带宽;由式(5)可知,在NGPU和Nparam不变时,Tcomm随着BW的减少而增加,将式(2)和式(3)代入式(1)中,并要求多机分布式训练的时间比单机训练的运行时间要来得短,则可以得到如下不等式:
Figure BDA0003592538880000053
其中,不等式前半部分和后半部分分别为DNN模型在多个节点和单个节点上训练一个迭代回合的时间,化简式(10)可得:
Tcomm<(NGPU-1)×Tcal 式(11)
当DNN模型在进行多机分布式训练时,Tcomm、NGPU和Tcal只有符合式(10)才能达到模型训练加速的目的;
(2.3)为衡量任务在不同资源方案下的性能,并在满足截至时间需求的多个资源方案中选择运行效率最高的资源方案,充分发挥资源性能,将资源-性能模型的性能公式定义为:
(2.3)为衡量任务在不同资源方案下的性能,并在满足截至时间需求的多个资源方案中选择运行效率最高的资源方案,充分发挥资源性能,将资源-性能模型的性能公式定义为:
Figure BDA0003592538880000061
其中Tdl表示任务的截至时间;
步骤(3)、在步骤(1)、(2)基础上进行分布式深度学习任务的动态资源方案决策的过程如下图2:
为等待队列中的每个任务基于集群空闲资源和资源布局生成可用资源方案列表,根据资源-性能模型并结合集群节点负载情况,确定每个任务的最优资源方案;具体如下:
(3.1)获取资源列表R,并设cfree>0的资源节点数量为n,cfree表示单个节点中空闲GPU数量,资源节点中cfree的最大值为max(cfree)及其累加和为sum(cfree),并初始化单节点资源方案列表ls和跨节点资源方案列表lm
(3.2)如果n=1,则在资源列表R获取cused从1至max(cfree)的资源方案Rt添加到ls中,如果n>1,则在资源列表R获取cused从1至sum(cfree)的资源方案Rt添加到lm中;
根据式(1)和式(8)计算ls和lm中Rt的Trun和Tend,并根据式(11)过滤部分低效率的资源方案Rt
(3.3)根据式(12)得到ls中性能
Figure BDA00035925388800000610
≥0且
Figure BDA00035925388800000611
的值为最大时的资源方案Rt作为单节点预期方案
Figure BDA0003592538880000062
以及根据式(12)得到ls中Tend>Tdl且Tend的值为最小时的资源方案Rt作为单节点非预期方案
Figure BDA0003592538880000063
根据式(12)得到从lm中性能
Figure BDA0003592538880000064
Figure BDA0003592538880000065
的值为最大时的资源方案Rt作为跨节点预期方案
Figure BDA0003592538880000066
以及根据式(12)得到lm中Tend>Tdl且Tend的值为最小时的资源方案Rt作为跨节点非预期方案
Figure BDA0003592538880000067
注意其中
Figure BDA0003592538880000068
Figure BDA0003592538880000069
可能不存在;
(3.4)判断是否满足跨节点预期方案
Figure BDA0003592538880000071
存在且GPU集群存在0<cfree<NGPU的资源节点,如果满足则说明当前任务存在跨节点资源方案可以利用局部资源并在Tdl内结束运行,此时最优资源方案
Figure BDA0003592538880000072
如果不满足但
Figure BDA0003592538880000073
存在,则最优资源方案
Figure BDA0003592538880000074
如果不满足且
Figure BDA0003592538880000075
仍不存在,则说明GPU集群当前空闲资源无法令当前任务在Tdl内运行结束运行,认为此时没有预期方案
Figure BDA0003592538880000076
Figure BDA0003592538880000077
可供选择,判断是否满足跨节点非预期方案
Figure BDA0003592538880000078
存在且GPU集群存在0<cfree<NGPU的资源节点,如果满足则说明当前任务存在跨节点资源方案可以利用局部资源并在Tdl内结束运行,此时最优资源方案
Figure BDA0003592538880000079
如果不满足,则最优资源方案
Figure BDA00035925388800000710
步骤(4)、在步骤(3)的基础上,根据任务的最优方案
Figure BDA00035925388800000711
执行物理资源节点分配过程如下图3:
(4.1)获取资源列表R并按照节点的cfree升序排序;
(4.2)如果步骤(3)最优资源方案
Figure BDA00035925388800000712
为单节点预期方案
Figure BDA00035925388800000713
则遍历资源列表R,找到cfree≥NGPU的资源节点Node(s,cfree),从该资源节点Node(s,cfree)移出NGPU个GPU设备,将Node(s,Nused)添加到
Figure BDA00035925388800000714
中,结束遍历,其中Node(s,cfree)表示GPU集群中的序号为s并且拥有cfree个空闲GPU的节点对象,s表示节点对象的序号;Node(s,Nused)表示GPU集群中的序号为s并且拥有Nused个使用中GPU的节点对象;
(4.3)如果步骤(3)最优资源方案
Figure BDA00035925388800000715
为跨节点预期方案
Figure BDA00035925388800000716
则设Nused=NGPU,NGPU是由资源方案上每个节点的cused累加得到的GPU总数,遍历资源列表R,找到cfree>0的资源节点对象Node(s,cfree),从该资源节点对象Node(s,cfree)和Nused分别移出min(cfree,Nused)个GPU设备,将资源节点对象Node(s,min(cfree,NGPU))添加到
Figure BDA00035925388800000717
中,以此类推,直到Nused=0,结束遍历;Node(s,min(cfree,NGPU))表示Node(s,Nused)表示GPU集群中的序号为s并且拥有min(cfree,Nused)个GPU的节点对象;
步骤(5)、在动态资源调度算法每次执行任务调度流程前,将分析已运行任务情况,决定是否进行资源迁移过程如下图4;具体如下:
(5.1)初始化任务列表ls和lm;遍历运行任务队列Qrun,将原处于单节点运行的任务t添加到ls中,将原处于跨节点运行的任务t添加到lm中;
(5.2)将ls和lm中的任务t根据最优资源方案
Figure BDA0003592538880000081
的GPU总数NGPU降序排序;首先遍历ls,对其中的任务t执行步骤(4)的物理资源分配过程,然后遍历lm,对其中的任务t同样执行步骤(4)的物理资源分配过程;
步骤(6)、调度器执行调度算法选择新的任务至GPU集群运行;具体如下:
(6.1)接收等待任务队列Qwait、资源列表R和当前时间Tcurr,其中Tcurr以单位时间增加,当分布式深度学习任务的到达时间Tarr=Tcurr时,将任务添加到队列Qwait中,此时根据式(7)预先计算任务的截至时间Tdl
(6.2)动态资源调度的过程如下图5;具体步骤如下:
(6.2.1)根据GPU集群资源的负载情况,尝试执行步骤(5)的资源迁移过程;
(6.2.2)遍历等待队列Qwait,对任务t执行步骤(3)的资源方案决策得到t的最优资源方案
Figure BDA0003592538880000082
(6.2.3)初始化预期任务队列Qexp和非预期任务队列
Figure BDA0003592538880000083
如果任务的运行结束时间Tend和截止时间Tdl满足式(9),则将任务t添加到队列Qexp中,反之添加到队列
Figure BDA0003592538880000084
中;将队列Qexp中的任务t根据Tdl-Tend的值升序降序,此时排在队头的任务t在资源方案
Figure BDA0003592538880000085
下的Tend越接近Tdl;将队列
Figure BDA0003592538880000086
中的任务t根据Tend的值升序排序,排在队头的任务t在资源方案
Figure BDA0003592538880000087
下的Tend越接近Tdl;注意队列Qexp可能为空;
(6.2.4)如果队列Qexp不为空,则选择排头任务t作为调度任务t*;如果队列Qexp为空则选择队列
Figure BDA0003592538880000088
中的排头任务t作为调度任务t*;对t*执行步骤(4)的物理资源分配过程。
实验数据
(1)参与测量的DNN模型在GPU集群单个GPU设备训练多个迭代回合的时间
Figure BDA0003592538880000089
Figure BDA0003592538880000091
(2)实验数据对比:
(2.1)Earliest Deadline First(EDF):从等待队列中选择截止时间最小的任务并使用整体GPU资源进行资源分配;
(2.2)First In First Out(FIFO):等待任务队列中选择到达时间最小的任务并使用整体GPU资源进行资源分配;
(2.3)Themis:将GPU资源根据完成时间公平性分配给多个等待任务并一次性调度至GPU集群运行,尽可能保证任务之间具有相近的完成时间;
(2.4)No Resource Migration(NoRM):为了验证DRS引入迁移机制的有效性,将DRS中的迁移机制部分移除,比较它和DRS的各种性能指标。
(2.5)本发明面向GPU集群的动态资源调度方法为Dynamic Resource Scheduling(DRS)。
(3)不同任务抵达率对于各个调度算法性能的比较:
(3.1)截止时间保证率/%
Figure BDA0003592538880000092
(3.2)平均等待时间/h
Figure BDA0003592538880000093
Figure BDA0003592538880000101
(3.3)平均完成时间/h
Figure BDA0003592538880000102
(4)不同资源节点数量下对于各个调度算法性能的比较:
(4.1)截止时间保证率/%
Figure BDA0003592538880000103
(4.2)平均等待时间/h
Figure BDA0003592538880000104
(4.3)平均完成时间/h
Figure BDA0003592538880000111
(5)同紧急任务数量下对于各个调度算法性能的比较:
(5.1)截止时间保证率/%
Figure BDA0003592538880000112
(5.2)平均等待时间/h
Figure BDA0003592538880000113
(5.3)平均完成时间/h
Figure BDA0003592538880000114
Figure BDA0003592538880000121
(6)不同接收时间下对于各个调度算法性能的比较:
(6.1)截止时间保证率/%
Figure BDA0003592538880000122
(6.2)平均等待时间/h
Figure BDA0003592538880000123
(6.3)平均完成时间/h
Figure BDA0003592538880000124
Figure BDA0003592538880000131

Claims (9)

1.一种面向GPU集群的动态资源调度方法,其特征在于包括以下步骤:
步骤(1)、基于分布式机器学习的Ring-Allreduce通信架构下的DNN模型迭代特征和GPU设备间的带宽差异,构建资源-时间模型:
所述资源-时间模型包括如下:
(1.1)分布式深度学习任务在某个资源方案下的实际运行时间Trun表示如下:
Trun=Tstep×Nstep×Nepoch 式(1)
其中,Tstep是DNN模型训练一个批次大小的数据集所花费的时间,Nstep是DNN模型在一个迭代回合中可输入的一个批次大小的数据集个数,Nepoch表示迭代回合;
(1.2)Tstep由单个CPU设备上的计算时间Tcal、CPU与CPU设备间的通信时间Tcomm所组成,其计算公式如下:
Tstep=Tcal+Tcomm 式(2)
(1.4)Nstep会随着资源方案所包含的GPU总数不同而发生变化,数量越多,则Nstep则相应地减少;Nstep、DNN模型训练数据集大小Sdataset、批次大小Sbatch和GPU总数NGPU在分布式数据并行训练过程中的关系如下:
Figure FDA0003592538870000011
其中,NGPU由资源方案上每个节点的cused累加得到,cused表示训练任务在单个节点上被使用的GPU数量;
(1.5)通过将DNN模型放置在单个GPU设备上进行若干批次的迭代并记录对应的运行时间,由于不涉及多设备通信,因此该运行时间仅包含将单个GPU设备上的计算时间表示如下:
Figure FDA0003592538870000012
其中,T′step是若干次迭代的运行时间,N′step是相应的迭代次数;
(1.6)如果不存在通信时间,那么任务的运行时间和资源方案所包含的GPU总数将为正比关系,即随着GPU总数上升,任务的运行时间将会成比例下降.而存在通信时间时,则会导致运行效率的下降;Ring-Allreduce通信架构下的通信时间Tcomm表示如下:
Figure FDA0003592538870000021
其中,BW是两GPU设备之间的带宽速度,如果两GPU设备处于同一个节点上,则BW就是节点内GPU设备之间的带宽,如果两GPU设备处于不同节点,则BW就是节点间的网络带宽;
步骤(2)、基于资源方案使用的资源数量、任务运行时间和任务截止时间构建资源-性能模型:
(2.1)截止时间建模:
(2.1.1)设用户对于任务的截止时间需求由任务到达时间、任务优先级以及任务最大运行时间所组成,其中最大运行时间是任务仅在单个GPU设备上的运行时间,定义若干任务优先级,将优先级转换为任务的期望运行时间Texp,其计算公式表示如下:
Figure FDA0003592538870000022
其中,α对应任务优先级,
Figure FDA0003592538870000023
表示任务在单个GPU设备上运行的时间;
(2.1.2)设任务的到达时间和运行开始时间分别为Tarr和Tstart,则任务的截止时间Tdl和运行结束时间Tend则可分别表示为:
Tdl=Tarr+Texp 式(7)
Tend=Tstart+Trun 式(8)
(2.1.3)当任务的截至时间Tdl和运行结束时间Tend满足下述的式(9)时,说明任务结束时满足用户的截止时间需求:
Tend<Tdl 式(9)
(2.2)当资源方案所持有的GPU设备都位于同一节点上时,其带宽速度为GPU设备之间的直连带宽,而当资源方案所持有的GPU设备位于不同节点上时,其带宽速度则为节点和节点之间的网络带宽;由式(5)可知,在NGPU和Nparam不变时,Tcomm随着BW的减少而增加,将式(2)和式(3)代入式(1)中,并要求多机分布式训练的时间比单机训练的运行时间要来得短,则可以得到如下不等式:
Figure FDA0003592538870000031
其中,不等式前半部分和后半部分分别为DNN模型在多个节点和单个节点上训练一个迭代回合的时间,化简式(10)可得:
Tcomm<(NGPU-1)×Tcal 式(11)
当DNN模型在进行多机分布式训练时,Tcomm、NGPU和Tcal只有符合式(10)才能达到模型训练加速的目的;
(2.3)为衡量任务在不同资源方案下的性能,并在满足截至时间需求的多个资源方案中选择运行效率最高的资源方案,充分发挥资源性能,将资源-性能模型的性能公式定义为:
(2.3)为衡量任务在不同资源方案下的性能,并在满足截至时间需求的多个资源方案中选择运行效率最高的资源方案,充分发挥资源性能,将资源-性能模型的性能公式定义为:
Figure FDA0003592538870000032
其中Tdl表示任务的截至时间;
步骤(3)、在步骤(1)、(2)基础上进行分布式深度学习任务的动态资源方案决策:
为等待队列中的每个任务基于集群空闲资源和资源布局生成可用资源方案列表,根据资源-性能模型并结合集群节点负载情况,确定每个任务的最优资源方案;
步骤(4)、在步骤(3)的基础上,根据任务的最优方案
Figure FDA0003592538870000033
执行物理资源节点分配;
步骤(5)、在动态资源调度算法每次执行任务调度流程前,将分析已运行任务情况,决定是否进行资源迁移;
步骤(6)、调度器执行调度算法选择新的任务至GPU集群运行。
2.如权利要求1所述的一种面向GPU集群的动态资源调度方法,其特征在于步骤(1)中所述Ring-Allreduce通信架构包括互相通信的GPU集群的若干节点,每个节点中包括多个CPU和GPU,同一个节点上的GPU设备借助高速串行计算机扩展总线标准PCIe和快速通道互联QPI进行通信,其中GPU和GPU间采用PCIe通信,GPU和CPU间采用PCIe通信,CPU和CPU间采用QPI通信;GPU集群中的节点与节点之间则借助无线宽带技术进行通信。
3.如权利要求1所述的一种面向GPU集群的动态资源调度方法,其特征在于步骤(3)中具体如下:
(3.1)获取资源列表R,并设cfree>0的资源节点数量为n,cfree表示单个节点中空闲GPU数量,资源节点中cfree的最大值为max(cfree)及其累加和为sum(cfree),并初始化单节点资源方案列表ls和跨节点资源方案列表lm
(3.2)如果n=1,则在资源列表R获取cused从1至max(cfree)的资源方案Rt添加到ls中,如果n>1,则在资源列表R获取cused从1至sum(cfree)的资源方案Rt添加到lm中;
根据式(1)和式(8)计算ls和lm中Rt的Trun和Tend,并根据式(11)过滤部分低效率的资源方案Rt
(3.3)根据式(12)得到ls中性能
Figure FDA0003592538870000041
Figure FDA0003592538870000042
的值为最大时的资源方案Rt作为单节点预期方案
Figure FDA0003592538870000043
以及根据式(12)得到ls中Tend>Tdl且Tend的值为最小时的资源方案Rt作为单节点非预期方案
Figure FDA0003592538870000044
根据式(12)得到从lm中性能
Figure FDA0003592538870000045
Figure FDA0003592538870000046
的值为最大时的资源方案Rt作为跨节点预期方案
Figure FDA0003592538870000047
以及根据式(12)得到lm中Tend>Tdl且Tend的值为最小时的资源方案Rt作为跨节点非预期方案
Figure FDA0003592538870000048
注意其中
Figure FDA0003592538870000049
Figure FDA00035925388700000410
可能不存在;
(3.4)判断是否满足跨节点预期方案
Figure FDA00035925388700000411
存在且GPU集群存在0<cfree<NGPU的资源节点,如果满足则说明当前任务存在跨节点资源方案可以利用局部资源并在Tdl内结束运行,此时最优资源方案
Figure FDA00035925388700000412
如果不满足但
Figure FDA00035925388700000413
存在,则最优资源方案
Figure FDA00035925388700000414
如果不满足且
Figure FDA00035925388700000415
仍不存在,则说明GPU集群当前空闲资源无法令当前任务在Tdl内运行结束运行,则认为此时没有预期方案
Figure FDA00035925388700000416
Figure FDA00035925388700000417
可供选择,则判断是否满足跨节点非预期方案
Figure FDA00035925388700000418
存在且GPU集群存在0<cfree<NGPU的资源节点,如果满足则说明当前任务存在跨节点资源方案可以利用局部资源并在Tdl内结束运行,此时最优资源方案
Figure FDA0003592538870000051
如果不满足,则最优资源方案
Figure FDA0003592538870000052
4.如权利要求3所述的一种面向GPU集群的动态资源调度方法,其特征在于步骤(4)具体是:
(4.1)获取资源列表R并按照节点的cfree升序排序;
(4.2)如果步骤(3)最优资源方案
Figure FDA0003592538870000053
为单节点预期方案
Figure FDA0003592538870000054
则遍历资源列表R,找到cfree≥NGPU的资源节点Node(s,cfree),从该资源节点Node(s,cfree)移出NGPU个GPU设备,将Node(s,Nused)添加到
Figure FDA0003592538870000055
中,结束遍历,其中Node(s,cfree)表示GPU集群中的序号为s并且拥有cfree个空闲GPU的节点对象,s表示节点对象的序号;Node(s,Nused)表示GPU集群中的序号为s并且拥有Nused个使用中GPU的节点对象;
(4.3)如果步骤(3)最优资源方案
Figure FDA0003592538870000056
为跨节点预期方案
Figure FDA0003592538870000057
则设Nused=NGPU,NGPU是由资源方案上每个节点的cused累加得到的GPU总数,遍历资源列表R,找到cfree>0的资源节点对象Node(s,cfree),从该资源节点对象Node(s,cfree)和Nused分别移出min(cfree,Nused)个GPU设备,将资源节点对象Node(s,min(cfree,NGPU))添加到
Figure FDA0003592538870000058
中,以此类推,直到Nused=0,结束遍历;Node(s,min(cfree,NGPU))表示Node(s,Nused)表示GPU集群中的序号为s并且拥有min(cfree,Nused)个GPU的节点对象。
5.如权利要求4所述的一种面向GPU集群的动态资源调度方法,其特征在于步骤(5)具体是:
(5.1)初始化任务列表ls和lm;遍历运行任务队列Qrun,将原处于单节点运行的任务t添加到ls中,将原处于跨节点运行的任务t添加到lm中;
(5.2)将ls和lm中的任务t根据最优资源方案
Figure FDA0003592538870000059
的GPU总数NGPU降序排序;首先遍历ls,对其中的任务t执行步骤(4)的物理资源分配过程,然后遍历lm,对其中的任务t同样执行步骤(4)的物理资源分配过程。
6.如权利要求5所述的一种面向GPU集群的动态资源调度方法,其特征在于步骤(6)具体是:
(6.1)接收等待任务队列Qwait、资源列表R和当前时间Tcurr,其中Tcurr以单位时间增加,当分布式深度学习任务的到达时间Tarr=Tcurr时,将任务添加到队列Qwait中,此时根据式(7)预先计算任务的截至时间Tdl
(6.2)动态资源调度。
7.如权利要求6所述的一种面向GPU集群的动态资源调度方法,其特征在于步骤(6.2)具体是:
(6.2.1)根据GPU集群资源的负载情况,尝试执行步骤(5)的资源迁移过程;
(6.2.2)遍历等待队列Qwait,对任务t执行步骤(3)的资源方案决策得到t的最优资源方案
Figure FDA0003592538870000061
(6.2.3)初始化预期任务队列Qexp和非预期任务队列
Figure FDA0003592538870000062
如果任务的运行结束时间Tend和截止时间Tdl满足式(9),则将任务t添加到队列Qexp中,反之添加到队列
Figure FDA0003592538870000063
中;将队列Qexp中的任务t根据Tdl-Tend的值升序降序,此时排在队头的任务t在资源方案
Figure FDA0003592538870000064
下的Tend越接近Tdl;将队列
Figure FDA0003592538870000065
中的任务t根据Tend的值升序排序,排在队头的任务t在资源方案
Figure FDA0003592538870000067
下的Tend越接近Tdl;注意队列Qexp可能为空;
(6.2.4)如果队列Qexp不为空,则选择排头任务t作为调度任务t*;如果队列Qexp为空则选择队列
Figure FDA0003592538870000066
中的排头任务t作为调度任务t*;对t*执行步骤(4)的物理资源分配过程。
8.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1-7任一项所述的方法。
9.一种机器可读存储介质,其特征在于,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现权利要求1-7任一项所述的方法。
CN202210382828.2A 2022-04-12 2022-04-12 一种面向gpu集群的动态资源调度方法 Pending CN114647515A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210382828.2A CN114647515A (zh) 2022-04-12 2022-04-12 一种面向gpu集群的动态资源调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210382828.2A CN114647515A (zh) 2022-04-12 2022-04-12 一种面向gpu集群的动态资源调度方法

Publications (1)

Publication Number Publication Date
CN114647515A true CN114647515A (zh) 2022-06-21

Family

ID=81996955

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210382828.2A Pending CN114647515A (zh) 2022-04-12 2022-04-12 一种面向gpu集群的动态资源调度方法

Country Status (1)

Country Link
CN (1) CN114647515A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115314397A (zh) * 2022-08-05 2022-11-08 中科计算技术西部研究院 用于分布式训练的网络模拟方法、系统、装置及存储介质
CN117032937A (zh) * 2023-09-28 2023-11-10 之江实验室 基于gpu的任务调度方法、电子装置和存储介质
CN117407155A (zh) * 2023-09-22 2024-01-16 国网冀北电力有限公司信息通信分公司 资源方案确定方法、装置、存储介质及电子设备
CN117632444A (zh) * 2024-01-26 2024-03-01 之江实验室 一种计算机集群的npu容错调度系统
WO2024060789A1 (zh) * 2022-09-21 2024-03-28 之江实验室 面向智能计算的分布式训练任务调度方法、系统和装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115314397A (zh) * 2022-08-05 2022-11-08 中科计算技术西部研究院 用于分布式训练的网络模拟方法、系统、装置及存储介质
CN115314397B (zh) * 2022-08-05 2023-07-21 中科计算技术西部研究院 用于分布式训练的网络模拟方法、系统、装置及存储介质
WO2024060789A1 (zh) * 2022-09-21 2024-03-28 之江实验室 面向智能计算的分布式训练任务调度方法、系统和装置
CN117407155A (zh) * 2023-09-22 2024-01-16 国网冀北电力有限公司信息通信分公司 资源方案确定方法、装置、存储介质及电子设备
CN117032937A (zh) * 2023-09-28 2023-11-10 之江实验室 基于gpu的任务调度方法、电子装置和存储介质
CN117032937B (zh) * 2023-09-28 2024-01-09 之江实验室 基于gpu的任务调度方法、电子装置和存储介质
CN117632444A (zh) * 2024-01-26 2024-03-01 之江实验室 一种计算机集群的npu容错调度系统
CN117632444B (zh) * 2024-01-26 2024-06-11 之江实验室 一种计算机集群的npu容错调度系统

Similar Documents

Publication Publication Date Title
CN114647515A (zh) 一种面向gpu集群的动态资源调度方法
CN110737529A (zh) 一种面向短时多变大数据作业集群调度自适应性配置方法
CN109561148A (zh) 边缘计算网络中基于有向无环图的分布式任务调度方法
CN111274036A (zh) 一种基于速度预测的深度学习任务的调度方法
CN107943568B (zh) 综合模块化航空电子系统两级调度模型与原型平台
Xiao et al. A cooperative coevolution hyper-heuristic framework for workflow scheduling problem
CN111813506A (zh) 一种基于粒子群算法资源感知计算迁移方法、装置及介质
CN112416585A (zh) 面向深度学习的gpu资源管理与智能化调度方法
CN111831415B (zh) 一种多队列多集群的任务调度方法及系统
CN108427602B (zh) 一种分布式计算任务的协同调度方法及装置
CN115994567B (zh) 一种深度神经网络模型并行计算任务异步调度方法
CN110780985A (zh) 一种有限时间的并行任务调度方法与装置
CN116932201A (zh) 一种面向深度学习训练任务的多资源共享调度方法
Peng et al. Diversity vs. parallelism in distributed computing with redundancy
CN110275765B (zh) 基于分支dag依赖的数据并行作业调度方法
He Optimization of edge delay sensitive task scheduling based on genetic algorithm
CN115016938A (zh) 一种基于强化学习的计算图自动划分方法
CN114675953A (zh) 资源动态调度方法、装置、设备及计算机可读存储介质
CN112698911B (zh) 一种基于深度强化学习的云作业调度方法
Xu et al. Talos: A weighted speedup-aware device placement of deep learning models
CN110928683B (zh) 基于两类密集型虚拟机的边缘计算资源分配方法
CN113010319A (zh) 混合启发式规则和遗传算法的动态工作流调度优化方法
CN112448899A (zh) 一种基于流量调度的多任务训练集群网络优化方法
Al-Olimat et al. Cloudlet Scheduling with Population Based Metaheuristics
CN113254195B (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