CN110442451B - 一种面向深度学习的多类型gpu集群资源管理调度方法和系统 - Google Patents

一种面向深度学习的多类型gpu集群资源管理调度方法和系统 Download PDF

Info

Publication number
CN110442451B
CN110442451B CN201910630474.7A CN201910630474A CN110442451B CN 110442451 B CN110442451 B CN 110442451B CN 201910630474 A CN201910630474 A CN 201910630474A CN 110442451 B CN110442451 B CN 110442451B
Authority
CN
China
Prior art keywords
gpu
group
job
user
processed
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
CN201910630474.7A
Other languages
English (en)
Other versions
CN110442451A (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.)
CETC 52 Research Institute
Original Assignee
CETC 52 Research Institute
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 CETC 52 Research Institute filed Critical CETC 52 Research Institute
Priority to CN201910630474.7A priority Critical patent/CN110442451B/zh
Publication of CN110442451A publication Critical patent/CN110442451A/zh
Application granted granted Critical
Publication of CN110442451B publication Critical patent/CN110442451B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/5083Techniques for rebalancing the load in a distributed system
    • 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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种面向深度学习的多类型GPU集群资源管理和调度方法和系统,能够根据GPU的型号将GPU集群划分为若干GPU组,统计每一GPU组的空闲运算能力,并获取接入GPU集群的所有用户,记录每一用户的最小运算能力要求;定时访问作业队列,获取作业队列中优先级最高的待处理作业,并根据待处理作业调度GPU集群资源。本发明统一管理不同品牌、型号的GPU为一个集群,用于深度学习,减少维护的GPU集群数量,简化GPU集群管理复杂度;能够满足深度学习中不同用户的需求,根据用户需求设置合理的用户属性,用户不需要熟悉和关心GPU集群环境,资源调度根据用户的运算能力要求和优先级进行,调度方法能自动分配满足需求的资源,并提高不同GPU类型组的资源使用率。

Description

一种面向深度学习的多类型GPU集群资源管理调度方法和系统
技术领域
本申请属于高性能计算领域,具体涉及一种面向深度学习的多类型GPU集群资源管理和调度方法和系统。
背景技术
在图像、语音识别、自然语言处理、强化学习等许多技术领域中,深度学习已经被证明是非常有效的,并且在某些问题上已经达到甚至超越了人类的水平。然而,深度学习对于计算能力有着很大的依赖,单GPU的资源限制往往不能满足对大规模数据和模型的处理要求。多GPU的并行计算能有效降低深度学习时间。深度学习框架TensorFlow、Caffe、PyTorch等已经支持多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组的空闲运算能力和待释放运算能力的总和,若所有计算后的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组,统计每一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集群资源管理模块,还用于在每次作业执行完成后,释放相应GPU组与该作业对应的运算能力,更新相应GPU组的空闲运算能力。
本申请提供的面向深度学习的多类型GPU集群资源管理和调度方法和系统,能够统一管理不同品牌、型号的GPU为一个集群,用于深度学习,减少维护的GPU集群数量,简化GPU集群管理复杂度;能够满足深度学习中不同用户的需求,根据用户需求设置合理的用户属性,用户不需要熟悉和关心GPU集群环境,资源调度根据用户的运算能力要求和优先级进行,调度方法能自动分配满足需求的资源,并提高不同GPU类型组的资源使用率。
附图说明
图1为本申请的多类型GPU集群分组的一种实施例示意图;
图2为本申请的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运算能力根据部署的深度学习框架选择,对应的包括但不限于单精度浮点运算能力、双精度浮点运算能力、INT8整形运算能力,单位可以为TFLOPS。
如图1所示,在一实施例中,GPU集群中包含3中类型的GPU,其中,GPUA group包含3个GPU服务器,12块GPUA类型卡,GPUA组总运算能力=GUPA单精度浮点运算能力*3*4,单位TFLOPS;GPUB group包含1个GPU服务器,4块GPUB类型卡,GPUB组总运算能力=GUPB单精度浮点运算能力*4,单位TFLOPS;GPUC group包含2个GPU服务器,8块GPUC类型卡,GPUC组总运算能力=GUPC单精度浮点运算能力*2*4,单位TFLOPS。
且GPU集群与IB网络交换机连接,而IB网络交换机与两个存储阵列连接,两个存储阵列则同时连接至一个千兆/万兆交换机上,该千兆/万兆交换机与CPU服务器连接。
在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集群中最高的总运算能力。
用户的优先级具有多级,例如设置优先级从低到高为0,1,2,3,4,5,6,7,8,9。
在管理用户的过程中,必然会出现的是用户的新增和删除,在一实施例中,若增加了新的用户,则记录新用户的最小运算能力要求、优先级信息和用户名称,并初始化新用户的状态为空闲,新增完成后该用户即可提交作业;若删除了已有的用户,则将被删除的用户对应的记录信息删除,用户删除后该用户则无法提交作业。
需要说明的是,在删除已有用户时必须在用户状态为空闲时才允许被删除。
本实施例的面向深度学习的多类型GPU集群资源管理调度方法在根据用户提交的作业调度GPU集群资源方面,包括:
访问作业队列,获取作业队列中优先级最高的待处理作业,并通过如下步骤根据所述待处理作业调度GPU集群资源:
若存在空闲运算能力满足所述待处理作业对应的用户的最小运算能力要求的GPU组,则将待处理作业分配至满足最小运算能力要求且需要的GPU数量最多的GPU组;
若不存在空闲运算能力满足所述待处理作业对应的用户的最小运算能力要求的GPU组,则根据优先级从小到大遍历当前执行作业,比较当前执行作业与待处理作业的优先级:
若所有的当前执行作业的优先级均大于或等于待处理作业的优先级,则等待下一次调度;若存在当前执行作业的优先级小于待处理作业的优先级,则依次计算处理当前执行作业的GPU组的空闲运算能力和待释放运算能力的总和,若所有计算后的GPU组的总和均不满足所述待处理作业对应的用户的最小运算能力要求,则等待下一次调度;若存在总和满足所述待处理作业对应的用户的最小运算能力要求的GPU组,则将待处理作业分配至满足最小运算能力要求且需要的GPU数量最多的GPU组,并将该GPU组中与待释放运算能力对应的当前执行作业保存后挂起。
需要说明的是,待释放运算能力应理解为在达到满足在用户最小运算能力目的下,该GPU组中最少需要挂起的当前执行作业对应的运算能力,且被挂起的当前执行作业可以是一个或多个。被挂起的作业将重新放入作业队列中,并按照作业信息中的优先级等待被获取执行。
本实施例中采用任务轮询的方式访问作业队列。相应的,等待下一次调度应理解为等待下一次轮询,即每一次调度均从访问作业队列开始。
为了避免出现不同类型的GPU之间的协作问题,在GPU集群资源调度时,一个作业不能跨GPU组进行分配,即不能两个或两个以上的GPU组同时执行同一个作业。
同理,优先级较大的作业只能选择抢占某一个GPU组中部分或全部的优先级交底的作业,即同一个作业不能跨GPU组抢占。
当然,为了充分利用GPU组的资源,一个GPU组可以同时执行一个或多个作业。
为了便于进一步理解本实施例面向深度学习的多类型GPU集群资源管理调度方法在调度GPU集群资源方面的工作流程,以下结合附图2通过实施例进行详述。
步骤1、访问作业队列;
步骤2、判断作业队列是否为空,若作业队列不为空,则执行步骤3;否则等待下一次调度;
步骤3、获取作业队列中优先级最高的待处理作业;
步骤4、按照GPU组的总运算能力从小到大的顺序,从GPU集群中获取一个GPU组;
步骤5、判断获取的GPU组的空闲运算能力是否满足待处理作业对应的用户的最小运算能力要求;若GPU组的空闲运算能力满足待处理作业对应的用户的最小运算能力要求,则执行步骤6;否则执行步骤11;
步骤6、比较该GPU组分配给待处理作业的GPU数量和之前记录的某一GPU组分配该待处理作业的GPU数量,若本次分配的GPU数量大于之前记录的分配的GPU数量,则执行步骤7;否则执行步骤8;
步骤7、更新待分配的GPU组信息和需要分配的GPU数量,并执行步骤9;
步骤8、不更新待分配的GPU组的信息和需要分配的GPU数量,并执行步骤9;
步骤9、判断当前的GPU组是否是GPU集群中的最后一个GPU组,若是最后一个,则执行步骤10;否则重新执行步骤4,进入GPU集群中取出一个除已获取过的GPU组之外的GPU组;
步骤10、则按照最新记录分配GPU组和GPU数量,执行作业并返回步骤1,在作业完成后释放相应GPU组与该作业对应的运算能力,更新相应GPU组的空闲运算能力;
步骤11、累加非空闲GPU组的数量;
步骤12、判断当前的GPU组是否是GPU集群中的最后一个GPU组,若是最后一个,则执行步骤13;否则重新执行步骤4,进入GPU集群中取出一个除已获取过的GPU组之外的GPU组;
步骤13、判断非空闲的GPU组的数量和GPU集群中总的GPU数量,若非空闲的GPU组的数量等于GPU集群中总的GPU数量,则执行步骤14;否则执行步骤10;
步骤14、获取GPU集群中当前执行作业(运行作业)最低的优先级;
步骤15、判断最低的优先级和待处理作业的优先级,若待处理作业的优先级高于当前执行作业最低的优先级,则进入步骤16;否则等待下一次调度;
步骤16、按照GPU组的总运算能力从小到大的顺序,从GPU集群中获取一个GPU组;
步骤17、若当前GPU组空闲或存在运行作业的优先级小于待处理作业的优先级,则执行步骤19;否则执行步骤18;
步骤18、判断当前的GPU组是否是GPU集群中的最后一个GPU组,若是最后一个,则等待下一次调度;否则重新执行步骤16,进入GPU集群中取出一个除已获取过的GPU组之外的GPU组;
步骤19、计算当前GPU组能提供给待处理作业的运算能力总和,该总和为GPU组的空闲运算能力加上当前GPU组中比待处理作业的优先级更小的运行作业所占用的算力(即待释放运算能力);
步骤20、若待理处作业对应的用户的最小运算能力要求大于能提供给待处理作业的运算能力总和,则执行步骤18;否则执行步骤21;
步骤21、挂起该GPU组中的一个或多个当前执行作业,直至释放满足待处理作业的用户对应的最小运算能力要求;将待处理作业分配给该GPU组,在作业完成后释放相应GPU组与该作业对应的运算能力,更新相应GPU组的空闲运算能力。
本实施例就每个步骤而言可视为针对前述相应的实施例,就所有步骤而言也可视为前述相应实施例的结合。
需要说明的是,本实施例为了便于对工作流程的理解结合图2进行描述,而步骤1至步骤21本身也清楚完整的展现了在调度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的型号创建新的GPU组,将新GPU分配至新创建的GPU组中,并统计新创建的GPU组的总运算能力和空闲运算能力;
若GPU集群中移除了GPU,则所述GPU集群资源管理模块执行如下操作:
删除该GPU对应的识别码,并更新被移除的GPU对应的GPU组的总运算能力和空闲运算能力。
具体的,若增加了新的用户,则所述用户管理模块执行如下操作:
记录新用户的最小运算能力要求、优先级信息和用户名称,并初始化新用户的状态为空闲;
若删除了已有的用户,则所述用户管理模块执行如下操作:将被删除的用户对应的记录信息删除。
具体的,所述根据用户提交的作业调度GPU集群资源还包括:
一个GPU组可以同时执行一个或多个作业;
一个作业不能跨GPU组进行分配,即不能两个或两个以上的GPU组同时执行同一个作业。
具体的,所述GPU集群资源管理模块,还用于在每次作业执行完成后,释放相应GPU组与该作业对应的运算能力,更新相应GPU组的空闲运算能力。
关于面向深度学习的多类型GPU集群资源管理调度系统的进一步限定请参考上述对于面向深度学习的多类型GPU集群资源管理调度方法的限定,在此不再进行赘述。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种面向深度学习的多类型GPU集群资源管理调度方法,用于管理GPU集群资源、管理用户以及根据用户提交的作业调度GPU集群资源,其特征在于,所述面向深度学习的多类型GPU集群资源管理调度方法,包括:
根据GPU的型号将GPU集群划分为若干GPU组,统计每一GPU组的空闲运算能力,并获取接入GPU集群的所有用户,记录每一用户的最小运算能力要求;
访问作业队列,获取作业队列中优先级最高的待处理作业,并通过如下步骤根据所述待处理作业调度GPU集群资源:
若存在空闲运算能力满足所述待处理作业对应的用户的最小运算能力要求的GPU组,则将待处理作业分配至满足最小运算能力要求且需要的GPU数量最多的GPU组;
若不存在空闲运算能力满足所述待处理作业对应的用户的最小运算能力要求的GPU组,则根据优先级从小到大遍历当前执行作业,比较当前执行作业与待处理作业的优先级:
若所有的当前执行作业的优先级均大于或等于待处理作业的优先级,则等待下一次调度;若存在当前执行作业的优先级小于待处理作业的优先级,则依次计算处理当前执行作业的GPU组的空闲运算能力和待释放运算能力的总和,若所有计算后的GPU组的总和均不满足所述待处理作业对应的用户的最小运算能力要求,则等待下一次调度;若存在总和满足所述待处理作业对应的用户的最小运算能力要求的GPU组,则将待处理作业分配至满足最小运算能力要求且需要的GPU数量最多的GPU组,并将该GPU组中与待释放运算能力对应的当前执行作业保存后挂起。
2.如权利要求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组的总运算能力和空闲运算能力。
3.如权利要求1所述的面向深度学习的多类型GPU集群资源管理调度方法,其特征在于,在管理用户过程中,若增加了新的用户,则记录新用户的最小运算能力要求、优先级信息和用户名称,并初始化新用户的状态为空闲;若删除了已有的用户,则将被删除的用户对应的记录信息删除。
4.如权利要求1所述的面向深度学习的多类型GPU集群资源管理调度方法,其特征在于,所述根据用户提交的作业调度GPU集群资源还包括:
一个GPU组可以同时执行一个或多个作业;
一个作业不能跨GPU组进行分配,即不能两个或两个以上的GPU组同时执行同一个作业。
5.如权利要求1所述的面向深度学习的多类型GPU集群资源管理调度方法,其特征在于,还包括每次作业执行完成后,释放相应GPU组与该作业对应的运算能力,更新相应GPU组的空闲运算能力。
6.一种面向深度学习的多类型GPU集群资源管理调度系统,用于管理GPU集群资源、管理用户以及根据用户提交的作业调度GPU集群资源,其特征在于,所述面向深度学习的多类型GPU集群资源管理调度系统,包括:
GPU集群资源管理模块,用于根据GPU的型号将GPU集群划分为若干GPU组,统计每一GPU组的空闲运算能力;
用户管理模块,用于获取接入GPU集群的所有用户,记录每一用户的最小运算能力要求;
GPU集群资源调度模块,用于访问作业队列,获取作业队列中优先级最高的待处理作业,并通过如下步骤根据所述待处理作业调度GPU集群资源:
若存在空闲运算能力满足所述待处理作业对应的用户的最小运算能力要求的GPU组,则将待处理作业分配至满足最小运算能力要求且需要的GPU数量最多的GPU组;
若不存在空闲运算能力满足所述待处理作业对应的用户的最小运算能力要求的GPU组,则根据优先级从小到大遍历当前执行作业,比较当前执行作业与待处理作业的优先级:
若所有的当前执行作业的优先级均大于或等于待处理作业的优先级,则等待下一次调度;若存在当前执行作业的优先级小于待处理作业的优先级,则依次计算处理当前执行作业的GPU组的空闲运算能力和待释放运算能力的总和,若所有计算后的GPU组的总和均不满足所述待处理作业对应的用户的最小运算能力要求,则等待下一次调度;若存在总和满足所述待处理作业对应的用户的最小运算能力要求的GPU组,则将待处理作业分配至满足最小运算能力要求且需要的GPU数量最多的GPU组,并将该GPU组中与待释放运算能力对应的当前执行作业保存后挂起。
7.如权利要求6所述的面向深度学习的多类型GPU集群资源管理调度系统,其特征在于,若GPU集群中添加了新的GPU,则所述GPU集群资源管理模块执行如下操作:
识别新GPU的型号以及运算能力,分配相应的识别码,初始化新GPU的状态为空闲,并判断是否存在与新GPU的型号相同的GPU组;若存在与新GPU的型号相同的GPU组,则将新GPU分配至对应的GPU组中,同时更新GPU组的总运算能力和空闲运算能力;否则根据新GPU的型号创建新的GPU组,将新GPU分配至新创建的GPU组中,并统计新创建的GPU组的总运算能力和空闲运算能力;
若GPU集群中移除了GPU,则所述GPU集群资源管理模块执行如下操作:
删除该GPU对应的识别码,并更新被移除的GPU对应的GPU组的总运算能力和空闲运算能力。
8.如权利要求6所述的面向深度学习的多类型GPU集群资源管理调度系统,其特征在于,若增加了新的用户,则所述用户管理模块执行如下操作:
记录新用户的最小运算能力要求、优先级信息和用户名称,并初始化新用户的状态为空闲;
若删除了已有的用户,则所述用户管理模块执行如下操作:将被删除的用户对应的记录信息删除。
9.如权利要求6所述的面向深度学习的多类型GPU集群资源管理调度系统,其特征在于,所述根据用户提交的作业调度GPU集群资源还包括:
一个GPU组可以同时执行一个或多个作业;
一个作业不能跨GPU组进行分配,即不能两个或两个以上的GPU组同时执行同一个作业。
10.如权利要求6所述的面向深度学习的多类型GPU集群资源管理调度系统,其特征在于,所述GPU集群资源管理模块,还用于在每次作业执行完成后,释放相应GPU组与该作业对应的运算能力,更新相应GPU组的空闲运算能力。
CN201910630474.7A 2019-07-12 2019-07-12 一种面向深度学习的多类型gpu集群资源管理调度方法和系统 Active CN110442451B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910630474.7A CN110442451B (zh) 2019-07-12 2019-07-12 一种面向深度学习的多类型gpu集群资源管理调度方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910630474.7A CN110442451B (zh) 2019-07-12 2019-07-12 一种面向深度学习的多类型gpu集群资源管理调度方法和系统

Publications (2)

Publication Number Publication Date
CN110442451A CN110442451A (zh) 2019-11-12
CN110442451B true CN110442451B (zh) 2023-05-05

Family

ID=68429654

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910630474.7A Active CN110442451B (zh) 2019-07-12 2019-07-12 一种面向深度学习的多类型gpu集群资源管理调度方法和系统

Country Status (1)

Country Link
CN (1) CN110442451B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111078356A (zh) * 2019-11-22 2020-04-28 北京达佳互联信息技术有限公司 Gpu集群资源控制系统、方法、装置、设备及存储介质
CN111158879B (zh) * 2019-12-31 2024-03-22 上海依图网络科技有限公司 一种系统资源的调度方法,装置、机器可读介质和系统
CN111405012A (zh) * 2020-03-06 2020-07-10 深圳市瑞驰信息技术有限公司 一种基于mqtt及http的ai算力池集群管理方法
CN112114967B (zh) * 2020-09-16 2024-01-30 武汉凌久微电子有限公司 一种基于服务优先级的gpu资源预留方法
CN113760493B (zh) * 2020-11-05 2024-05-17 北京沃东天骏信息技术有限公司 一种作业调度方法和装置
CN112416585B (zh) * 2020-11-20 2024-03-15 南京大学 面向深度学习的gpu资源管理与智能化调度方法
CN113065848B (zh) * 2021-04-02 2024-06-21 东云睿连(武汉)计算技术有限公司 一种支持多类集群后端的深度学习调度系统及调度方法
CN113535695B (zh) * 2021-06-21 2022-09-13 中盾创新数字科技(北京)有限公司 一种基于进程调度的档案更新方法
CN113377515A (zh) * 2021-06-22 2021-09-10 浪潮云信息技术股份公司 一种Kubernetes资源的任务预调度方法
CN113867961B (zh) * 2021-09-30 2022-07-22 中国矿业大学(北京) 一种异构gpu集群深度学习混合负载调度优化方法
CN114020470B (zh) * 2021-11-09 2024-04-26 抖音视界有限公司 资源分配方法、装置、可读介质及电子设备
CN115373860B (zh) * 2022-10-26 2023-01-10 小米汽车科技有限公司 Gpu任务的调度方法、装置、设备和存储介质
CN116643860A (zh) * 2023-04-26 2023-08-25 国家气象信息中心(中国气象局气象数据中心) 针对气象机器学习算法运行的优先级调度方法、系统、电子设备和计算机程序产品
CN116757915B (zh) * 2023-08-16 2023-11-28 北京蓝耘科技股份有限公司 一种集群gpu资源调度方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106326006A (zh) * 2016-08-23 2017-01-11 成都卡莱博尔信息技术股份有限公司 针对数据平台任务流的任务管理系统
CN106708481A (zh) * 2015-07-30 2017-05-24 北京京东尚科信息技术有限公司 一种控制任务执行的方法
CN109634748A (zh) * 2018-12-12 2019-04-16 深圳前海微众银行股份有限公司 集群资源调度方法、装置、设备及计算机可读存储介质
CN109766183A (zh) * 2018-12-28 2019-05-17 郑州云海信息技术有限公司 一种集群gpu复用及智能负载的方法及系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105900064B (zh) * 2014-11-19 2019-05-03 华为技术有限公司 调度数据流任务的方法和装置
US10102025B2 (en) * 2016-05-31 2018-10-16 Huawei Technologies Co., Ltd. Virtual machine resource utilization in a data center

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106708481A (zh) * 2015-07-30 2017-05-24 北京京东尚科信息技术有限公司 一种控制任务执行的方法
CN106326006A (zh) * 2016-08-23 2017-01-11 成都卡莱博尔信息技术股份有限公司 针对数据平台任务流的任务管理系统
CN109634748A (zh) * 2018-12-12 2019-04-16 深圳前海微众银行股份有限公司 集群资源调度方法、装置、设备及计算机可读存储介质
CN109766183A (zh) * 2018-12-28 2019-05-17 郑州云海信息技术有限公司 一种集群gpu复用及智能负载的方法及系统

Also Published As

Publication number Publication date
CN110442451A (zh) 2019-11-12

Similar Documents

Publication Publication Date Title
CN110442451B (zh) 一种面向深度学习的多类型gpu集群资源管理调度方法和系统
US11379272B2 (en) Autoscaling using file access or cache usage for cluster machines
US20190324819A1 (en) Distributed-system task assignment method and apparatus
CN105718479B (zh) 跨idc大数据处理架构下执行策略生成方法、装置
CN109034396B (zh) 用于处理分布式集群中的深度学习作业的方法和装置
US8087026B2 (en) Fair share scheduling based on an individual user's resource usage and the tracking of that usage
US8914805B2 (en) Rescheduling workload in a hybrid computing environment
CN111400022A (zh) 一种资源调度方法、装置及电子设备
CN110389816B (zh) 用于资源调度的方法、装置以及计算机可读介质
CN112416585B (zh) 面向深度学习的gpu资源管理与智能化调度方法
US20120110047A1 (en) Reducing the Response Time of Flexible Highly Data Parallel Tasks
CN112114973B (zh) 一种数据处理方法及装置
CN102096599A (zh) 一种多队列任务调度方法及相关系统和设备
US20240111586A1 (en) Multi-policy intelligent scheduling method and apparatus oriented to heterogeneous computing power
Bansal et al. Dynamic task-scheduling in grid computing using prioritized round robin algorithm
CN114741207A (zh) 一种基于多维度组合并行的gpu资源调度方法和系统
CN113946431B (zh) 一种资源调度方法、系统、介质及计算设备
CN113342477A (zh) 一种容器组部署方法、装置、设备及存储介质
CN103685492A (zh) Hadoop集群系统的调度方法、调度装置及其应用
CN113407343A (zh) 一种基于资源分配的业务处理方法、装置及设备
CN117707759A (zh) 一种多租户gpu集群弹性配额调度方法和系统
CN110851245A (zh) 一种分布式异步任务调度方法及电子设备
CN116932198A (zh) 资源调度方法、装置、电子设备及可读存储介质
CN112052087B (zh) 动态资源调整与迁移的深度学习训练系统及方法
CN114741197B (zh) 资源释放方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200515

Address after: Ma Cheng Road Hangzhou City, Zhejiang province 310012 No. 36

Applicant after: NO.52 RESEARCH INSTITUTE OF CHINA ELECTRONICS TECHNOLOGY GROUP Corp.

Address before: Yuhang District, Hangzhou City, Zhejiang Province, 311121 West No. 1500 Building 1 room 311

Applicant before: CETHIK GROUP Co.,Ltd.

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant