GPU集群调度方法、装置

未命名 07-20 阅读:190 评论:0

gpu集群调度方法、装置
技术领域
1.本发明涉及gpu技术领域,尤其涉及一种gpu集群调度方法、装置。


背景技术:

2.得益于gpu设备高性能的计算能力,gpu目前在深度学习,机器学习等等领域有着广泛的应用。随着人工智能技术的不断发展与推广,对ai模型的训练越来越依赖于大量的gpu设备。这些设备组成集群之后如何进行调度,提高gpu集群的利用率成为了一个研究热点。
3.现有的gpu调度集群很少出现租户的概念,但是云厂商提供gpu却往往需要涉及到多租户的资源分配,提高集群效率的同时租户之间的公平性如何保证成为研究gpu调度集群的一个挑战。


技术实现要素:

4.针对现有技术的不足,本发明提出一种gpu集群调度方法、装置,该方法在提高gpu集群资源利用率的同时,兼顾多租户的公平性。
5.为了实现上述目的,本发明一方面提供一种gpu集群调度方法,包括:
6.租户提交任务至等待队列;
7.获取集群中各个计算节点上的任务信息;
8.从所述等待队列中选取满足第一预设条件的任务;
9.依据所述任务与计算节点的亲和性,将满足第一预设条件的所述任务调度至选取满足第二预设条件的所述计算节点。
10.可选的,所述租户提交任务至等待队列之前,还包括:
11.将所述计算节点上的gpu分别按照内存与算力虚拟化成细粒度资源,
12.启动全局调度器控制全局的资源调度,所述计算节点上启动局部代理控制本节点上的gpu调度,所述全局调度器用于集群任务调度,所述局部代理用于收集租户资源使用情况。
13.可选的,所述租户提交任务至等待队列,包括:
14.在集群中创建所述租户,所述租户申请相应配额的资源;
15.所述租户使用申请到的所述资源提交任务到所述等待队列。
16.可选的,所述获取集群中各个计算节点上的任务信息,包括:
17.各个所述计算节点统计自身资源使用情况与任务执行情况上传给所述全局调度器。
18.可选的,所述的方法还包括:
19.当监测到任务到达和/或任务离开时,进行资源调度,从所述等待队列中选取满足所述第一预设条件的任务。
20.可选的,所述第一预设条件为根据租户时间维度与空间维度确定任务的调度优先
级条件;
21.所述空间维度为所述租户未使用的gpu显存份额;
22.所述时间维度为所述租户现行运行任务的使用时间在过去某一时间段的占比。
23.可选的,所述第一预设条件还包括:
24.在同一个租户提交的多个任务具有相同的调度优先级的情况下,选择需要使用资源最少的一任务优先。
25.可选的,所述第二预设条件为亲和性最高的计算节点优先级条件,包括:
26.在任务需要的资源小于一张gpu卡的情况下,采用树上资源碎片最小的所述计算节点优先;
27.在任务需要的资源等于一张gpu卡的情况下,采用与其他节点通信开销最大的所述计算节点优先;
28.在任务需要的资源多于一张gpu卡的情况下,则采用通信开销最小的所述计算节点优先。
29.可选的,当有任务运行结束时,通知所述全局调度器,再次进行下一任务调度。
30.本发明另一方面还提供了一种gpu集群调度装置,采用上述的gpu集群调度方法,包括:
31.任务提交模块,用于租户提交任务至等待队列;
32.节点任务获取模块,用于获取集群中各个计算节点上的任务信息;
33.调度任务选取模块,用于从所述等待队列中选取满足第一预设条件的任务;
34.任务放置模块,用于依据所述任务与计算节点的亲和性,将所述任务调度至选取满足第二预设条件的所述计算节点。
35.由以上方案可知,本发明的优点在于:
36.本发明提供的gpu集群调度方法,通过在集群中创建租户,租户提交任务至等待队列,并获取集群中各个计算节点上的任务信息;然后,根据租户时间与空间维度做公平性调度,提升集群租户公平性,通过从所述等待队列中选取满足第一预设条件的任务,依据所述任务与计算节点的亲和性,将满足第一预设条件的所述任务调度至选取满足第二预设条件的所述计算节点。该方法可以管理整个gpu集群的分配与调度,在提高集群gpu资源利用率的同时,兼顾多租户的公平性。
附图说明
37.图1为本发明实施例提供的gpu集群调度方法的流程示意图;
38.图2为gpu集群调度系统的原理图;
39.图3为本发明实施例的gpu集群调度装置的框架图;
40.图4为电子设备的结构示意图;
41.其中:
42.300-gpu集群调度装置;
43.301-任务提交模块;
44.302-节点任务获取模块;
45.303-调度任务选取模块;
46.304-任务放置模块;
47.400-电子设备;
48.401-处理器;
49.402-存储器。
具体实施方式
50.为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
51.本发明实施例提供的gpu集群调度方法,可以管理整个gpu集群的分配与调度,在提高集群gpu资源利用率的同时,兼顾多租户的公平性。
52.具体的,参考图1中所示,图1示出了gpu集群调度方法的流程示意图;
53.一种gpu集群调度方法,包括:
54.s1、租户提交任务至等待队列;
55.本实施例中,通过在集群中创建所述租户,所述租户申请相应配额的资源,所述租户使用申请到的所述资源提交任务到所述等待队列。
56.此外,在具体实现中,所述租户提交任务至等待队列之前,还包括:
57.将所述计算节点上的gpu分别按照内存与算力虚拟化成细粒度资源,在一些实施例中,具体使用kubernetes提供的设备扩展插件来进行k8s集群的gpu设备扩展与虚拟化,kubernetes集群可以细粒度分配gpu。
58.深度学习训练任务一旦开始,为了避免更多的复杂逻辑与调度开销,本实例就不再更改任务运行的位置。在一些实施例中,适用的深度学习框架为tensorflow、pytorch。
59.启动全局调度器控制全局的资源调度,所述计算节点上启动局部代理控制本节点上的gpu调度,全局调度器与局部代理调度原理如图2中所示。本实例调度系统共有三个组件,全局调度器、局部代理、设备扩展插件。全局调度器负责集群任务调度,局部代理负责将收集租户资源使用情况,设备扩展插件负责将gpu设备细粒度虚拟化并注册到k8s集群中。全局调度器在获取到局部代理发送的资源信息之后,进行任务选取与任务放置。
60.s2、获取集群中各个计算节点上的任务信息;
61.在集群层面,各个所述计算节点统计自身资源使用情况与任务执行情况上传给所述全局调度器。
62.然后,全局调度器根据租户时间与空间维度做公平性调度,提升集群租户公平性,将从等待队列中选取任务调度至合适的计算节点,具体过程如步骤s3、s4中所示。
63.s3、从所述等待队列中选取满足第一预设条件的任务;
64.此外,用户提交的任务到等待队列中,为了照顾租户公平性,本实施例当监测到任务到达和/或任务离开时,进行资源调度,从所述等待队列中选取满足所述第一预设条件的任务。具体从等待队列中选取任务时,选取原则同时考虑空间与时间进行调度,即所述第一预设条件为根据租户时间维度与空间维度确定任务的调度优先级条件。其中,所述空间维度为所述租户未使用的gpu显存份额,即租户的剩余份额,即租户未使用的gpu显存份额为租户申请的资源份额与正在使用的份额的差值,这个值有可能小于0。所述时间维度为所述租户现行运行任务的使用时间在过去某一时间段的占比,这是为了照顾租户在时间尺度上
的公平性。租户可能有多个任务,这个时间占比计是一个租户的任务的gpu算力使用在过去某一时间段上的积分除以全集群的任务在同一时间段上的积分。本实施例中,从等待队列中使用租户的剩余份额与租户其他任务已运行时间作为优先级进行任务选取,这样是为了尽可能提升集群租户公平性,租户剩余的资源越多,租户其他任务运行时间占比越小,该租户新任务被调度到的几率就越大。这样分别照顾了租户gpu空间与时间维度上的公平性。
65.此外,在同一个租户提交的多个任务具有相同的调度优先级的情况下,选择需要使用资源最少的一任务优先。
66.s4、依据所述任务与计算节点的亲和性,将满足第一预设条件的所述任务调度至选取满足第二预设条件的所述计算节点。
67.选取到任务之后,依据所述任务与计算节点的亲和性,选取合适的计算节点,进行任务调度。在具体实现中,本实施例选择亲和性最高的计算节点进行调度。所述第二预设条件为亲和性最高的计算节点优先级条件,即关于任务与计算节点亲和性,其具体包括:
68.在任务需要的资源小于一张gpu卡的情况下,采用树上资源碎片最小的所述计算节点优先;
69.在任务需要的资源等于一张gpu卡的情况下,采用与其他节点通信开销最大的所述计算节点优先;
70.在任务需要的资源多于一张gpu卡的情况下,则采用通信开销最小的所述计算节点优先。
71.在一些实施例中,具体从等待队列中选择使用资源最少的任务优先进行调度,调度至与其亲和性最高的计算节点。
72.此外,在具体实现中,当监测到租户提交新的任务时,重复上述过程;当有任务运行结束时,通知所述全局调度器,再次进行下一任务调度。
73.综上,本实施例提供的gpu集群调度方法,通过在集群中创建租户,租户提交任务至等待队列,并获取集群中各个计算节点上的任务信息;然后,根据租户时间与空间维度做公平性调度,提升集群租户公平性,通过从所述等待队列中选取满足第一预设条件的任务,依据所述任务与计算节点的亲和性,将满足第一预设条件的所述任务调度至选取满足第二预设条件的所述计算节点。该方法可以管理整个gpu集群的分配与调度,在提高集群gpu资源利用率的同时,兼顾多租户的公平性。
74.本发明上述实施例可以应用于gpu集群调度方法功能的终端设备中,该终端设备可以包括个人终端、以及上位机终端等,本发明实施例对此不加以限制。该终端可以支持windows、android(安卓)、ios、windowsphone等操作系统。
75.参照图3,图3示出了一种gpu集群调度装置300,应用于gpu集群调度方法可应用于个人终端、以及上位机终端设备中,其可实现通过如图1所示的方法,本技术实施例提供的gpu集群调度装置能够实现上述gpu集群调度方法实现的各个过程。
76.一种gpu集群调度装置300,至少包括
77.任务提交模块301,用于租户提交任务至等待队列;
78.节点任务获取模块302,用于获取集群中各个计算节点上的任务信息;
79.调度任务选取模块303,用于从所述等待队列中选取满足第一预设条件的任务;
80.任务放置模块304,用于依据所述任务与计算节点的亲和性,将所述任务调度至选
取满足第二预设条件的所述计算节点。
81.本实施例提供的gpu集群调度装置300,可以管理整个gpu集群的分配与调度,在提高集群gpu资源利用率的同时,兼顾多租户的公平性。
82.应当理解,对gpu集群调度方法的各描述同样适用于根据本技术实施例的gpu集群调度装置300,为避免重复,不再详细描述。
83.此外,应当理解,在根据本技术实施例的gpu集群调度装置300中,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即gpu集群调度装置可划分为与上述例示出的模块不同的功能模块,以完成以上描述的全部或者部分功能。
84.图4是本技术实施例提供的电子设备的结构示意图。
85.如图4中所示,本技术实施例还提供了一种电子设备400,包括处理器401,存储器402,存储在存储器402上并可在所述处理器401上运行的程序或指令,该程序或指令被处理器401执行时实现上述gpu集群调度方法的步骤,且能达到相同的技术效果。
86.需要注意的是,本技术实施例中的电子设备可包括移动电子设备和非移动电子设备。
87.本技术实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述gpu集群调度方法的步骤,且能达到相同的技术效果。
88.其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等。
89.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本技术实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以施加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
90.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本技术各个实施例所述的方法。
91.上面结合附图对本技术的实施例进行了描述,但是本技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本技术的启示下,在不脱离本技术宗旨和权利要求所保护的范围情况下,还可做出很多
形式,均属于本技术的保护之内。

技术特征:
1.一种gpu集群调度方法,其特征在于,包括:租户提交任务至等待队列;获取集群中各个计算节点上的任务信息;从所述等待队列中选取满足第一预设条件的任务;依据所述任务与计算节点的亲和性,将满足第一预设条件的所述任务调度至选取满足第二预设条件的所述计算节点。2.根据权利要求1所述的方法,其特征在于,所述租户提交任务至等待队列之前,还包括:将所述计算节点上的gpu分别按照内存与算力虚拟化成细粒度资源,启动全局调度器控制全局的资源调度,所述计算节点上启动局部代理控制本节点上的gpu调度,所述全局调度器用于集群任务调度,所述局部代理用于收集租户资源使用情况。3.根据权利要求2所述的方法,其特征在于,所述租户提交任务至等待队列,包括:在集群中创建所述租户,所述租户申请相应配额的资源;所述租户使用申请到的所述资源提交任务到所述等待队列。4.根据权利要求2所述的方法,其特征在于,所述获取集群中各个计算节点上的任务信息,包括:各个所述计算节点统计自身资源使用情况与任务执行情况上传给所述全局调度器。5.根据权利要求1所述的方法,其特征在于,还包括:当监测到任务到达和/或任务离开时,进行资源调度,从所述等待队列中选取满足所述第一预设条件的任务。6.根据权利要求1所述的方法,其特征在于,所述第一预设条件为根据租户时间维度与空间维度确定任务的调度优先级条件;所述空间维度为所述租户未使用的gpu显存份额;所述时间维度为所述租户现行运行任务的使用时间在过去某一时间段的占比。7.根据权利要求6所述的方法,其特征在于,所述第一预设条件还包括:在同一个租户提交的多个任务具有相同的调度优先级的情况下,选择需要使用资源最少的一任务优先。8.根据权利要求1所述的方法,其特征在于,所述第二预设条件为亲和性最高的计算节点优先级条件,包括:在任务需要的资源小于一张gpu卡的情况下,采用树上资源碎片最小的所述计算节点优先;在任务需要的资源等于一张gpu卡的情况下,采用与其他节点通信开销最大的所述计算节点优先;在任务需要的资源多于一张gpu卡的情况下,则采用通信开销最小的所述计算节点优先。9.根据权利要求2所述的方法,其特征在于,还包括:当有任务运行结束时,通知所述全局调度器,再次进行下一任务调度。10.一种gpu集群调度装置,其特征在于,采用权利要求1-9任一项所述的gpu集群调度方法,包括:
任务提交模块,用于租户提交任务至等待队列;节点任务获取模块,用于获取集群中各个计算节点上的任务信息;调度任务选取模块,用于从所述等待队列中选取满足第一预设条件的任务;任务放置模块,用于依据所述任务与计算节点的亲和性,将所述任务调度至选取满足第二预设条件的所述计算节点。

技术总结
本发明提出一种GPU集群调度方法、装置,所述方法包括:租户提交任务至等待队列;获取集群中各个计算节点上的任务信息;从所述等待队列中选取满足第一预设条件的任务;依据所述任务与计算节点的亲和性,将满足第一预设条件的所述任务调度至选取满足第二预设条件的所述计算节点。该方法在提高GPU集群资源利用率的同时,兼顾多租户的公平性。兼顾多租户的公平性。兼顾多租户的公平性。


技术研发人员:李志轩 孙毓忠 张凯
受保护的技术使用者:中国科学院计算技术研究所
技术研发日:2023.03.09
技术公布日:2023/7/19
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐