CN112416585A - 面向深度学习的gpu资源管理与智能化调度方法 - Google Patents
面向深度学习的gpu资源管理与智能化调度方法 Download PDFInfo
- Publication number
- CN112416585A CN112416585A CN202011310749.8A CN202011310749A CN112416585A CN 112416585 A CN112416585 A CN 112416585A CN 202011310749 A CN202011310749 A CN 202011310749A CN 112416585 A CN112416585 A CN 112416585A
- Authority
- CN
- China
- Prior art keywords
- deep learning
- resource
- job
- scheduling
- gpu
- 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.)
- Granted
Links
- 238000013135 deep learning Methods 0.000 title claims abstract description 41
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000012795 verification Methods 0.000 claims abstract description 6
- 238000007726 management method Methods 0.000 claims description 21
- 238000004422 calculation algorithm Methods 0.000 claims description 19
- 238000004891 communication Methods 0.000 claims description 7
- 230000007246 mechanism Effects 0.000 claims description 7
- 230000002068 genetic effect Effects 0.000 claims description 5
- 238000010801 machine learning Methods 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims description 3
- 238000013468 resource allocation Methods 0.000 claims 1
- 238000012549 training Methods 0.000 abstract description 10
- 238000004458 analytical method Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000013136 deep learning model Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000035772 mutation Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 210000000349 chromosome Anatomy 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45575—Starting, stopping, suspending or resuming virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Genetics & Genomics (AREA)
- Physiology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种面向深度学习的GPU资源管理与智能化调度方法,包括以下步骤:第一步,用户通过前端接口组件提交深度学习作业,包括待执行的深度学习程序与训练数据集;第二步,在进行验证后将作业添加到调度器对应的待调度队列;第三步,为该作业启动独立的作业管理器;第四步,向资源管理器申请作业运行需要的计算资源;第五步,对待调度作业进行特征建模与分析;第六步,根据作业特征与集群计算节点特征生成资源调度方案;第七步,按照调度方案将作业调度到指定计算节点上;第八步,作业执行器启动容器并执行深度学习程序。本发明可解决现有集群资源调度方法在深度学习场景下GPU资源利用率低、作业执行性能差的问题。
Description
技术领域
本发明涉及集群资源调度技术领域,尤其是一种面向深度学习的GPU资源管理与智能化调度方法。
背景技术
近年来的研究与实践表明,相比传统机器学习技术,深度学习在计算机视觉、语音识别等领域能够获得更高的精度,从而得到广泛使用。深度学习模型训练过程存在很大计算量,而图形处理器(Graphics Processing Unit,GPU)能够更高效地执行这种简单但规模庞大的计算任务,因此成为运行深度学习程序的重要基础计算资源。
由于GPU卡通常比较昂贵,为每个用户(组)部署独立的私有集群成本很高,而且用户并不会一直进行模型训练工作,因此用户通常会共用这些GPU资源来降低成本。为了避免冲突问题以及充分利用集群资源,就需要对大量的GPU等资源进行高效的管理并对用户作业进行统一合理的调度。
对于深度学习场景下GPU资源管理与调度,存在以下问题:
在资源利用率上,随着硬件技术的快速发展,不断有新的GPU卡被推出,因此集群中通常存在不同型号的GPU卡,它们在算力和显存上都存在很大差异,不加区分地分配会造成一些作业在执行时性能不足,而另一些作业在执行时性能过剩的问题。由于缺乏成熟高效的GPU资源虚拟化技术,目前通常独占使用GPU,但部分开发测试目的的小作业资源需求很低,独占使用加剧了资源浪费问题。
在资源调度策略上,目前很多深度学习模型训练工作仍以单机单GPU卡的模式进行,但是为了追求更高的准确度,深度学习模型网络越来越深、参数越来越多,用于训练的数据集规模也越来越大,单GPU卡已经很难容纳,性能也出现瓶颈,于是出现了单机多卡、多机多卡的分布式训练模式。与大数据应用不同,分布式深度学习作业的多个实例之间存在复杂且大量的数据交换与信息同步,不合理的资源调度方案会极大地降低作业执行性能。
因此,如何设计一个调度机制,使得调度器在深度学习场景下依旧获得很好的GPU资源利用率与作业执行性能,成为一个非常有挑战性的工作。
发明内容
发明目的:针对上述现有技术存在的问题和不足,本发明的目的是提供一种面向深度学习的GPU资源管理与智能化调度方法,解决现有系统在深度学习场景下GPU资源利用率低、作业执行性能差的问题。
技术方案:为了实现上述发明目的,本发明采用的技术方案是提供一种面向深度学习的GPU资源管理与智能化调度方法,包括以下步骤:
(1)用户通过前端接口组件提交深度学习作业(简称作业),所述作业包括需要执行的深度学习程序、程序运行输入数据集以及作业的任务划分信息;
(2)对所述作业进行参数有效性检查与权限验证,然后将作业添加到指定的待调度队列中等待调度;
(3)当作业被选中开始调度,为所述作业启动一个独立的作业管理器来负责所述作业的后续运行;
(4)作业管理器根据所述深度学习作业的任务划分,为每一个任务向全局资源管理器申请运行所需要的计算资源;
(5)基于作业资源需求智能化预测模型(简称预测模型)对作业特征进行建模分析,包括作业运行时对GPU算力、GPU显存、CPU、内存及网络带宽资源需求特征,并生成作业执行资源需求向量;
(6)利用所述步骤(5)返回的资源需求向量,并结合作业的分布式架构与集群网络拓扑结构来生成所述作业的资源调度方案;
(7)根据所述资源调度方案,通过推送机制将所述作业调度到指定的计算节点上;
(8)作业执行器为所述作业的每一个任务启动独立的运行容器来具体执行深度学习程序。
进一步地,所述步骤(3)中,由于当前多数深度学习框架不具备弹性机制,为了避免同时调度多个作业导致资源死锁问题,采用成组调度机制,即前一个作业的所有资源需求均得到满足后才开始给下一个作业分配资源。
进一步地,所述步骤(3)中,为了降低作业调度器的负载,为每一个作业启动独立的作业管理器,由所述作业管理器负责所述作业的生命周期管理,所述生命周期管理包括申请资源、推送到计算节点、监控运行状态以及重试失败任务等。
进一步地,所述步骤(4)中,由于当前多数分布式深度学习框架采用静态映射方式,作业的任务划分在执行前就已经确定,因此调度系统只需按照预先划分的任务来分配资源并决定资源调度方案。
进一步地,所述步骤(5)中,建立作业资源需求智能化预测模型,所述预测模型的输入特征包括任务划分、超参数设置以及数据集规模,所述预测模型的输出标签包括作业资源需求向量(简称向量),所述向量包括CPU、内存、GPU算力、GPU显存以及网络带宽,并利用传统机器学习算法求解所述预测模型对应的回归问题。
进一步地,所述步骤(5)中,采集同类作业在历史运行时的实际资源需求等特征,并利用所述预测模型,对后续的作业资源需求特征进行预测。
进一步地,所述步骤(6)中,首先按照队列间采用公平调度、队列内采用先到先服务调度的原则决定作业的执行顺序并选择待调度作业,然后提取作业的分布式拓扑与集群网络的拓扑结构,并根据作业的资源需求特征,建立网络通信代价模型,最后利用启发式方法遗传算法求解生成调度方案。
有益效果:本发明能够在深度学习场景下,通过一种面向深度学习的GPU资源管理与智能化调度方法,有效地解决了GPU资源利用率低、作业执行性能差的问题:第一,本发明对现有主流深度学习框架进行抽象并提取共性,提供了一个深度学习框架无关的服务接口,具有很好的框架兼容性与易用性。第二,本发明提供了对于作业资源需求的智能化预测模型,能够根据历史调度数据预测待调度作业在运行时的特征,从而自动确定作业资源需求向量,并增强调度。第三,不同于以往方法将待调度作业完全当成黑盒,本发明利用收集到的信息,并在调度时考虑作业分布式拓扑结构与集群网络拓扑结构,生成更高效的调度方案,提升作业的执行性能。
附图说明
图1为本发明的方法总体流程示意图;
图2为本发明所述利用分组编码方式表示资源调度方案示意图;
图3为本发明所述调度策略流程图。
具体实施方式
下面结合附图和具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
本发明提出了一种面向深度学习的GPU资源管理与智能化调度方法,解决了深度学习场景下,GPU资源利用率低与作业执行性能差的问题。
如图1所示,本发明的完整流程包括作业提交阶段、权限验证阶段、作业管理器启动阶段、资源申请阶段、作业特征建模与分析阶段、资源调度方案生成阶段、作业分发阶段、执行阶段8个部分。具体的实施方式分别说明如下:
作业提交阶段对应技术方案步骤(1)。具体实施方式为:用户通过可视化管理前端或API接口提交深度学习作业,包括可执行深度学习程序、程序运行所需输入训练集、作业任务划分、程序启动参数。在本发明的调度系统中,对作业的定义如下:一个作业由若干任务组成,如在参数服务器(Parameter Server)架构中,就包括参数服务器与工作节点(Worker)两种。单机单卡与单机多卡作业只有一个任务,而多机多卡作业则包括多个任务,每个任务对应一个参数服务器或工作节点。由于目前大多数深度学习框架并不具备弹性机制,因此任务的数量及划分方式由用户在提交作业时指定。在调度时,一个任务被调度到一个计算节点(物理机)上运行,一个计算节点可以同时运行多个任务。作业是用户提交的基本单位,而任务是系统调度执行的基本单位。
权限验证阶段对应技术方案步骤(2)。具体的实施方式为:接收到用户提交的作业后,首先对作业参数有效性与完整性进行检查,然后验证用户是否有权限将作业提交至指定的待调度队列,最后,在验证通过后将作业添加到调度器的指定待调度队列中,并记录该次请求。
作业管理器启动阶段对应技术方案步骤(3)。具体的实施方式为:调度器按照公平调度原则决定待调度作业的执行顺序。当该作业被选中开始调度执行时,启动一个独立的作业管理器来负责该作业的后续生命周期流程。
资源申请阶段对应技术方案步骤(4)。具体的实施方式为:作业管理器根据作业的任务划分,然后为每一个任务申请计算资源,直到该作业的所有任务资源需求均得到满足。
作业特征建模与分析阶段对应技术方案步骤(5)。具体实施方式为:调度系统利用同类作业历史运行时收集到的作业对CPU、内存、GPU算力资源、GPU显存资源与网络带宽资源的实际使用数据,然后基于这些数据利用传统机器学习模型随机森林算法训练作业资源需求向量预测模型,接着利用该模型预测待调度作业运行时资源需求向量特征,从而给作业分配合适的资源及选择合适的调度方案。
资源调度方案生成阶段对应技术方案步骤(6)。具体实施方式为:首先,过滤掉不满足需求的计算节点与GPU,得到候选节点列表;接着,利用步骤(5)返回的作业资源需求向量,得到与该作业GPU算力需求最匹配的GPU型号,并从候选节点中选出拥有该GPU型号的节点,作为下一步的候选节点列表,如该型号的GPU资源不足,则选择性能接近的;最后利用启发式方法分组遗传算法,生成一个较优的资源调度方案。
为了解决本发明的资源调度问题,就需要对调度目标进行形式化定义。对于一个分布式模型训练作业,不同的资源调度方案对作业执行性能有很大的影响,而这主要由网络通信质量决定,因此在生成资源调度方案时需要考虑网络通信,并在此基础上尽可能考虑其他指标,如降低资源碎片等。首先基于作业拓扑与集群网络拓扑结构等因素对不同的调度方案进行评估,得分Score由网络通信开销Costnetwork与节点匹配度Fitnessnode两部分组成。调度的目的就是最小化该得分。
Score=Costnetwork+ΣFitnessnode
以下介绍如何结合分组遗传算法来求解本发明的资源调度方案生成问题:
1)编码方式。图2展示了本发明的调度策略下如何使用分组编码来表示一个资源调度方案(将8个任务放置到若干计算节点上的两种调度方案)。从遗传算法概念的角度,每一条染色体代表一种资源调度方案,每一个基因位代表一个任务,每一个基因组代表一个计算节点,在交叉与变异操作时均以一个计算节点为单位。
2)初始种群生成。采用最先适应算法(First-Fit)与随机适应算法(Random-Fit)两种简单算法来生成若干初始的资源调度方案。其中最先适应算法的思想是将每一个任务调度到第一个能够放置的计算节点上,而随机适应算法则是随机选取一个符合需求的节点。这两种算法复杂度都很低,运行速度足够快。
3)适应度函数与选择策略。本发明的调度目的是为了降低通信开销,因此适应度函数Fitness为调度目标的负值(网络通信开销越小,适应度越好)。为了加快算法收敛速度,在这基础上,引入了一个新的变量NumNodesusing,即调度方案需要的计算节点数量,使得算法能够在网络开销接近时,优先选择使用节点少的资源调度方案。
Fitness=-(Costnetwork+∑Fitnessnode+NumNodesusing)
选择锦标赛法作为选择策略。锦标赛法每次进行多轮淘汰并选取最好的,不需要进行全量排序,复杂度低,而且可以并行化处理,时间开销更小,更适合本发明在线调度场景。
4)交叉与变异规则。交叉的过程如下:首先,从当前资源调度方案中利用选择策略选择两个方案X与Y,并分别选择交叉点(计算节点)与交叉位置;然后,将选中的计算节点与节点上任务添加到另一个调度方案的交叉位置中;接着,在交叉后,新的调度方案中可能会存在重复的计算节点与任务,需要将这些重复的删除,由于交叉变异的基本单位是一个计算节点,因此需要将重复的计算节点,以及重复任务所在的计算节点删除;最后,由于被删除节点上的任务也被删除,需要将这些任务重新添加到剩余的计算节点上,采用最先适应算法将被删除的任务添加到剩余计算节点中。与交叉规则类似,变异的过程如下:首先,选择一个资源调度方案Y,并随机选择一个计算节点,将该计算节点以及计算节点上的任务删除;然后,将被删除的任务按照最先适应算法重新放置到剩余的计算节点上,得到新的调度方案。
图3展示了本发明中资源调度方案生成流程。由于资源碎片的存在,被选中的作业可能无法被同时调度,针对这种情况,等待一段时间并再次尝试生成有效的资源调度方案。在资源较为分散等场景下,生成的资源调度方案可能不够好,此时可以等待一段时间,看是否有更多、更合适的资源被释放;最后,在生成的调度方案足够好或调度算法运行时间超时后,按照当前最佳的资源调度方案调度作业。
作业分发阶段对应技术方案步骤(7)。具体实施方式为:在作业的所有任务资源需求均得到满足后,作业管理器按照资源调度方案,将作业的任务推送到对应的计算节点上,等待执行。
作业执行阶段对应技术方案步骤(8)。具体实施方式为:首先,为作业创建对应的作业运行环境(即容器,Container),并根据作业资源需求限制容器可用资源;然后,当容器启动后,将作业包含的用户深度学习程序下载至容器内指定位置;接着,将深度学习程序模型训练需要的训练数据集挂载到本地相应目录;随后,通过启动命令启动用户的深度学习程序(简称程序),并持续监控该程序的运行情况;最后,当程序执行完毕后,将程序的输出文件转存到外部可靠存储HDFS中,销毁容器并释放其占用的系统资源。
本发明提出了一种面向深度学习的GPU资源管理与智能化调度方法。通过对作业进行建模与分析,系统能够提前有效预测作业运行资源需求。与常见的调度方法(打散、集中、随机)相比,本发明资源调度方法下单个作业执行时间降低了33.5%至59.5%,多个作业的平均作业完成时间(Job Completion Time,JCT)又进一步降低了10%。相比现有的Kubernetes系统,本发明资源调度方法降低了48%的作业平均完成时间。在系统可扩展性方面,当集群节点增加时,调度系统吞吐速度可以保持稳定,具有良好的可扩展性。本发明所研究提出的面向深度学习的GPU资源管理与智能化调度方法具有显著的性能优化效果。
Claims (7)
1.一种面向深度学习的GPU资源管理与智能化调度方法,包括以下步骤:
(1)用户通过前端接口组件提交深度学习作业,所述深度学习作业包括需要执行的深度学习程序、程序运行输入数据集以及作业的任务划分信息;
(2)对所述深度学习作业进行参数有效性检查与权限验证,然后将深度学习作业添加到指定的待调度队列中等待调度;
(3)当深度学习作业被选中开始调度,为所述深度学习作业启动一个独立的作业管理器来负责所述深度学习作业的后续运行;
(4)作业管理器根据深度学习作业的任务划分,为每一个任务向全局资源管理器申请运行所需要的计算资源;
(5)基于作业资源需求智能化预测模型对作业特征进行建模分析,包括作业运行时对GPU算力、GPU显存、CPU、内存及网络带宽资源需求特征,并生成作业执行资源需求向量;
(6)利用所述步骤(5)返回的资源需求向量,并结合作业的分布式架构与集群网络拓扑结构来生成所述深度学习作业的资源调度方案;
(7)根据所述资源调度方案,通过推送机制将所述深度学习作业调度到指定的计算节点上;
(8)作业执行器为所述深度学习作业的每一个任务启动独立的运行容器来具体执行深度学习程序。
2.根据权利要求1所述的面向深度学习的GPU资源管理与智能化调度方法,其特征在于:所述步骤(3)中,采用成组调度机制:前一个作业的所有资源需求均得到满足后才开始给下一个作业分配资源。
3.根据权利要求1所述的面向深度学习的GPU资源管理与智能化调度方法,其特征在于:所述步骤(3)中,为每一个深度学习作业启动独立的作业管理器,由所述作业管理器负责所述深度学习作业的生命周期管理,所述生命周期管理包括申请资源、推送到计算节点、监控运行状态以及重试失败任务。
4.根据权利要求1所述的面向深度学习的GPU资源管理与智能化调度方法,其特征在于:所述步骤(4)中,调度系统只需按照预先划分的任务来分配资源并决定资源调度方案,所述深度学习作业的任务划分在执行前就已经确定。
5.根据权利要求1所述的面向深度学习的GPU资源管理与智能化调度方法,其特征在于:所述步骤(5)中,建立作业资源需求智能化预测模型,所述作业资源需求智能化预测模型的输入特征包括任务划分、超参数设置以及数据集规模,所述作业资源需求智能化预测模型的输出标签为作业执行资源需求向量,所述作业执行资源需求向量包括CPU、内存、GPU算力、GPU显存以及网络带宽,并利用传统机器学习算法求解所述作业资源需求智能化预测模型对应的回归问题。
6.根据权利要求1所述的面向深度学习的GPU资源管理与智能化调度方法,其特征在于:所述步骤(5)中,采集同类作业在历史运行时的实际资源需求特征,并利用所述作业资源需求智能化预测模型,对后续的深度学习作业资源需求特征进行预测。
7.根据权利要求1所述的面向深度学习的GPU资源管理与智能化调度方法,其特征在于:所述步骤(6)中,首先按照队列间采用公平调度、队列内采用先到先服务调度的原则决定作业的执行顺序并选择待调度作业,然后提取作业的分布式拓扑与集群网络的拓扑结构,并根据作业的资源需求特征,建立网络通信代价模型,最后利用启发式方法遗传算法求解生成资源调度方案。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011310749.8A CN112416585B (zh) | 2020-11-20 | 2020-11-20 | 面向深度学习的gpu资源管理与智能化调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011310749.8A CN112416585B (zh) | 2020-11-20 | 2020-11-20 | 面向深度学习的gpu资源管理与智能化调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112416585A true CN112416585A (zh) | 2021-02-26 |
CN112416585B CN112416585B (zh) | 2024-03-15 |
Family
ID=74776959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011310749.8A Active CN112416585B (zh) | 2020-11-20 | 2020-11-20 | 面向深度学习的gpu资源管理与智能化调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112416585B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094116A (zh) * | 2021-04-01 | 2021-07-09 | 中国科学院软件研究所 | 一种基于负载特征分析的深度学习应用云配置推荐方法及系统 |
CN113608722A (zh) * | 2021-07-31 | 2021-11-05 | 云南电网有限责任公司信息中心 | 一种基于分布式技术的算法封装方法 |
CN113656151A (zh) * | 2021-08-20 | 2021-11-16 | 上海熠知电子科技有限公司 | 深度学习算力虚拟化方法 |
CN113791906A (zh) * | 2021-08-09 | 2021-12-14 | 戴西(上海)软件有限公司 | 基于gpu资源在人工智能与工程领域调度系统及优化算法 |
CN114461382A (zh) * | 2021-12-27 | 2022-05-10 | 天翼云科技有限公司 | 可灵活配置的算力调度实现方法、装置及存储介质 |
CN114610501A (zh) * | 2022-03-24 | 2022-06-10 | 北京航天晨信科技有限责任公司 | 一种对任务规划模型并行训练的资源分配方法 |
CN115048216A (zh) * | 2022-05-31 | 2022-09-13 | 苏州浪潮智能科技有限公司 | 一种人工智能集群的资源管理调度方法、装置和设备 |
CN115202850A (zh) * | 2022-09-09 | 2022-10-18 | 国家超级计算天津中心 | 作业调度方法、装置、电子设备和存储介质 |
WO2022262167A1 (zh) * | 2021-06-15 | 2022-12-22 | 上海商汤科技开发有限公司 | 集群资源调度方法及装置、电子设备和存储介质 |
WO2024066330A1 (zh) * | 2022-09-27 | 2024-04-04 | 中兴通讯股份有限公司 | Gpu资源调度方法、服务器及存储介质 |
CN118210606A (zh) * | 2024-03-12 | 2024-06-18 | 中国地质调查局自然资源综合调查指挥中心 | 人工智能地质图建模的任务管理与资源调度方法及系统 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106959891A (zh) * | 2017-03-30 | 2017-07-18 | 山东超越数控电子有限公司 | 一种实现gpu调度的集群管理方法和系统 |
CN108881446A (zh) * | 2018-06-22 | 2018-11-23 | 深源恒际科技有限公司 | 一种基于深度学习的人工智能平台系统 |
CN109034396A (zh) * | 2018-07-11 | 2018-12-18 | 北京百度网讯科技有限公司 | 用于处理分布式集群中的深度学习作业的方法和装置 |
CN109086134A (zh) * | 2018-07-19 | 2018-12-25 | 郑州云海信息技术有限公司 | 一种深度学习作业的运行方法和装置 |
CN109189401A (zh) * | 2018-07-06 | 2019-01-11 | 曙光信息产业(北京)有限公司 | 一种深度学习框架的部署方法以及系统 |
US20190087383A1 (en) * | 2017-09-19 | 2019-03-21 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Intelligent big data system, and method and apparatus for providing intelligent big data service |
US20190332422A1 (en) * | 2018-04-26 | 2019-10-31 | International Business Machines Corporation | Dynamic accelerator scheduling and grouping for deep learning jobs in a computing cluster |
CN110399222A (zh) * | 2019-07-25 | 2019-11-01 | 北京邮电大学 | Gpu集群深度学习任务并行化方法、装置及电子设备 |
CN110442451A (zh) * | 2019-07-12 | 2019-11-12 | 中电海康集团有限公司 | 一种面向深度学习的多类型gpu集群资源管理调度方法和系统 |
CN111090456A (zh) * | 2019-12-06 | 2020-05-01 | 浪潮(北京)电子信息产业有限公司 | 一种深度学习开发环境的构建方法、装置、设备及介质 |
KR102140730B1 (ko) * | 2019-12-17 | 2020-08-04 | (주) 씨이랩 | Gpu 기반의 딥러닝 개발 환경 제공 시스템 및 방법 |
CN111694656A (zh) * | 2020-04-22 | 2020-09-22 | 北京大学 | 基于多智能体深度强化学习的集群资源调度方法及系统 |
-
2020
- 2020-11-20 CN CN202011310749.8A patent/CN112416585B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106959891A (zh) * | 2017-03-30 | 2017-07-18 | 山东超越数控电子有限公司 | 一种实现gpu调度的集群管理方法和系统 |
US20190087383A1 (en) * | 2017-09-19 | 2019-03-21 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Intelligent big data system, and method and apparatus for providing intelligent big data service |
US20190332422A1 (en) * | 2018-04-26 | 2019-10-31 | International Business Machines Corporation | Dynamic accelerator scheduling and grouping for deep learning jobs in a computing cluster |
CN108881446A (zh) * | 2018-06-22 | 2018-11-23 | 深源恒际科技有限公司 | 一种基于深度学习的人工智能平台系统 |
CN109189401A (zh) * | 2018-07-06 | 2019-01-11 | 曙光信息产业(北京)有限公司 | 一种深度学习框架的部署方法以及系统 |
CN109034396A (zh) * | 2018-07-11 | 2018-12-18 | 北京百度网讯科技有限公司 | 用于处理分布式集群中的深度学习作业的方法和装置 |
CN109086134A (zh) * | 2018-07-19 | 2018-12-25 | 郑州云海信息技术有限公司 | 一种深度学习作业的运行方法和装置 |
CN110442451A (zh) * | 2019-07-12 | 2019-11-12 | 中电海康集团有限公司 | 一种面向深度学习的多类型gpu集群资源管理调度方法和系统 |
CN110399222A (zh) * | 2019-07-25 | 2019-11-01 | 北京邮电大学 | Gpu集群深度学习任务并行化方法、装置及电子设备 |
CN111090456A (zh) * | 2019-12-06 | 2020-05-01 | 浪潮(北京)电子信息产业有限公司 | 一种深度学习开发环境的构建方法、装置、设备及介质 |
KR102140730B1 (ko) * | 2019-12-17 | 2020-08-04 | (주) 씨이랩 | Gpu 기반의 딥러닝 개발 환경 제공 시스템 및 방법 |
CN111694656A (zh) * | 2020-04-22 | 2020-09-22 | 北京大学 | 基于多智能体深度强化学习的集群资源调度方法及系统 |
Non-Patent Citations (3)
Title |
---|
PANELVÍCTOR CAMPOS ET AL.: "Distributed training strategies for a computer vision deep learning algorithm on a distributed GPU cluster", 《PROCEDIA COMPUTER SCIENCE》 * |
刘惠 等: "面向GPU异构集群的自学习负载均衡调度算法惠", 《西安石油大学学报( 自然科学版)》, vol. 30, no. 3 * |
林健 等: "深度学习云服务适配问题研究", 《软件导刊》 * |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113094116A (zh) * | 2021-04-01 | 2021-07-09 | 中国科学院软件研究所 | 一种基于负载特征分析的深度学习应用云配置推荐方法及系统 |
CN113094116B (zh) * | 2021-04-01 | 2022-10-11 | 中国科学院软件研究所 | 一种基于负载特征分析的深度学习应用云配置推荐方法及系统 |
WO2022262167A1 (zh) * | 2021-06-15 | 2022-12-22 | 上海商汤科技开发有限公司 | 集群资源调度方法及装置、电子设备和存储介质 |
CN113608722A (zh) * | 2021-07-31 | 2021-11-05 | 云南电网有限责任公司信息中心 | 一种基于分布式技术的算法封装方法 |
CN113791906A (zh) * | 2021-08-09 | 2021-12-14 | 戴西(上海)软件有限公司 | 基于gpu资源在人工智能与工程领域调度系统及优化算法 |
CN113656151A (zh) * | 2021-08-20 | 2021-11-16 | 上海熠知电子科技有限公司 | 深度学习算力虚拟化方法 |
CN113656151B (zh) * | 2021-08-20 | 2024-10-25 | 上海熠知电子科技有限公司 | 深度学习算力虚拟化方法 |
CN114461382A (zh) * | 2021-12-27 | 2022-05-10 | 天翼云科技有限公司 | 可灵活配置的算力调度实现方法、装置及存储介质 |
CN114610501A (zh) * | 2022-03-24 | 2022-06-10 | 北京航天晨信科技有限责任公司 | 一种对任务规划模型并行训练的资源分配方法 |
CN115048216A (zh) * | 2022-05-31 | 2022-09-13 | 苏州浪潮智能科技有限公司 | 一种人工智能集群的资源管理调度方法、装置和设备 |
CN115048216B (zh) * | 2022-05-31 | 2024-06-04 | 苏州浪潮智能科技有限公司 | 一种人工智能集群的资源管理调度方法、装置和设备 |
CN115202850B (zh) * | 2022-09-09 | 2022-12-20 | 国家超级计算天津中心 | 作业调度方法、装置、电子设备和存储介质 |
CN115202850A (zh) * | 2022-09-09 | 2022-10-18 | 国家超级计算天津中心 | 作业调度方法、装置、电子设备和存储介质 |
WO2024066330A1 (zh) * | 2022-09-27 | 2024-04-04 | 中兴通讯股份有限公司 | Gpu资源调度方法、服务器及存储介质 |
CN118210606A (zh) * | 2024-03-12 | 2024-06-18 | 中国地质调查局自然资源综合调查指挥中心 | 人工智能地质图建模的任务管理与资源调度方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112416585B (zh) | 2024-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112416585B (zh) | 面向深度学习的gpu资源管理与智能化调度方法 | |
Gu et al. | Liquid: Intelligent resource estimation and network-efficient scheduling for deep learning jobs on distributed GPU clusters | |
CN111768006B (zh) | 一种人工智能模型的训练方法、装置、设备及存储介质 | |
JP4781089B2 (ja) | タスク割り当て方法およびタスク割り当て装置 | |
CN113377540A (zh) | 集群资源调度方法及装置、电子设备和存储介质 | |
CN111381950A (zh) | 一种面向边缘计算环境基于多副本的任务调度方法和系统 | |
TWI786564B (zh) | 任務調度方法和裝置、儲存媒體及計算機設備 | |
CN113946431B (zh) | 一种资源调度方法、系统、介质及计算设备 | |
CN114237869B (zh) | 基于强化学习的Ray双层调度方法、装置和电子设备 | |
CN111274036A (zh) | 一种基于速度预测的深度学习任务的调度方法 | |
CN115237580B (zh) | 面向智能计算的流水并行训练自适应调整系统、方法 | |
CN114911613A (zh) | 一种云际计算环境中跨集群资源高可用调度方法及系统 | |
CN115586961A (zh) | 一种ai平台计算资源任务调度方法、装置及介质 | |
CN110221902A (zh) | 一种基于虚拟机的数据传输方法及相关装置 | |
CN114510319A (zh) | 一种基于Kubernetes集群GPU空间共享的方法 | |
CN117539612A (zh) | 基于混沌麻雀算法的ai训推平台任务调度方法和系统 | |
CN116010051A (zh) | 一种联邦学习多任务调度方法及装置 | |
Thai et al. | Algorithms for optimising heterogeneous Cloud virtual machine clusters | |
CN113391886A (zh) | 任务调度方法和装置 | |
CN118277087B (zh) | 一种资源调度策略确定方法、介质、电子设备和程序产品 | |
US11934870B2 (en) | Method for scheduling a set of computing tasks in a supercomputer | |
Biswas et al. | A Machine Learning Approach for Predicting Efficient CPU Scheduling Algorithm | |
CN118656177A (zh) | 一种基于gpu拓扑结构的容器调度方法、装置、介质及设备 | |
CN118708533A (zh) | 面向K8s的多机多卡GPU最优通信调度方法和系统 | |
CN116467084A (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 |