CN115599512A - 在图形处理单元上调度作业 - Google Patents
在图形处理单元上调度作业 Download PDFInfo
- Publication number
- CN115599512A CN115599512A CN202111264875.9A CN202111264875A CN115599512A CN 115599512 A CN115599512 A CN 115599512A CN 202111264875 A CN202111264875 A CN 202111264875A CN 115599512 A CN115599512 A CN 115599512A
- Authority
- CN
- China
- Prior art keywords
- job
- existing
- gpu
- gpus
- computing system
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 58
- 230000005012 migration Effects 0.000 claims abstract description 39
- 238000013508 migration Methods 0.000 claims abstract description 39
- 238000000034 method Methods 0.000 claims description 38
- 230000008569 process Effects 0.000 claims description 21
- 230000006870 function Effects 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 11
- 238000005457 optimization Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000013215 result calculation Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开的实施例涉及在图形处理单元上调度作业。示例实现涉及针对多个图形处理单元(GPU)的作业的调度,该多个GPU提供由多个虚拟GPU进行的并发处理。根据一个示例,包括一个或多个GPU的计算系统接收调度待由计算系统执行的新作业的请求。新作业被分配给一个或多个vGPU。现有作业的分配被更新到一个或多个vGPU。操作一个或多个GPU的操作成本和分配新作业的迁移成本被最小化以及一个或多个虚拟GPU上的现有作业的分配被更新。由计算系统中的一个或多个GPU处理新作业和现有作业。
Description
背景技术
一些计算系统使用图形处理单元(GPU)来执行针对应用的计算。一些系统允许多个应用在单个GPU上并发地运行。
附图说明
此处描述的实施例是通过示例而非限制的方式来说明的。在附图中,相同的附图标记指代相同的元件。
图1是根据一些实施例的计算系统的图。
图2是根据一些实施例的作业和GPU的示例布置的图。
图3是根据一些实施例的GPU调度器处理的流程图。
图4是根据一个实施例的分布式计算系统的处理节点的框图。
图5是示出根据一个实施例的分布式计算系统的处理节点的框图。
具体实施方式
在一些GPU中,只有一个进程(例如,应用程序)可以在给定时间(例如,通过多路复用技术)使用GPU。由于单个应用通常未充分利用GPU计算能力,这可能会导致GPU资源未得到充分利用。一些GPU通过使得多个进程在同一个GPU上被并发处理来克服这个问题。这可以提供更好的性能优势。然而,一些容器平台通常仅支持将独占GPU指派给一个容器的模型或GPU共享的时间复用方法。该方法会导致资源共享效率低下和性能下降,并且在调度需要GPU资源的应用时没有考虑有效地共享GPU。因为现有的GPU调度方法不允许GPU共享或者使用简单的先到先得调度器,因此期望更好的GPU调度技术。
本文所描述的技术包括GPU调度进程,该进程在最小化GPU操作成本和作业迁移成本的同时将作业分配给计算系统中的GPU的vGPU(vGPU)。无论何时接收到新的作业请求或在现有作业完成时,GPU调度进程都会向vGPU更新作业的分配(例如,可能导致一个或多个作业从一个物理GPU迁移到另一个物理GPU)。该技术适用于现有容器平台,并且可以配置为根据所选用例对迁移成本或操作成本赋予优先级。在一个实现中,将GPU调度进程建模为可以在多项式时间内得到最优解的整数线性规划优化问题。
在本文的技术描述中,阐述了许多具体细节以提供对示例性实施例的透彻理解。然而,对于本领域技术人员来说,显而易见的是,可以在没有这些特定细节中的一些的情况下实施本文描述的实施例。在其他情况下,以框图的形式示出了众所周知的结构和设备。
术语“连接”或“耦合”以及相关术语在操作意义上使用并且不一定限于直接连接或耦合。因此,例如,两个设备可以直接耦合,或者经由一个或多个中间介质或设备耦合。作为另一个例子,设备可以以这样一种方式耦合,即信息可以在它们之间传递,而彼此之间不共享任何物理连接。基于在此提供的公开内容,本领域普通技术人员将理解根据前述定义存在连接或耦合的多种方式。
如果说明书规定组件或特征“可以”、“能够”、“能”或“可能”被包括或具有特征,则该特定组件或特征不需要被包括或具有特征。
如在本文的描述和随后的权利要求书中所使用的,“一”、“一个”和“该”的含义包括复数引用,除非上下文另有明确规定。此外,如在本文的描述中使用的,除非上下文另有明确规定,否则“在”的含义包括“在……中”和“在……上”。
短语“在一个实施例中”、“根据一个实施例”等一般表示该短语之后的特定特征、结构或特性包括在本公开的至少一个实施例中并且可以包括在本公开的一个以上实施例中。重要的是,这样的短语不一定指同一实施例。
“节点”或“处理节点”通常是指计算元件。分布式系统的节点可以是虚拟或物理形式的计算机系统(例如,客户端、服务器或对等体)、计算机系统的一个或多个组件、计算元件、计算引擎、硬件设备、软件实体或进程,或上述的组合。节点的非限制性示例包括软件进程(例如,客户端或服务器)、虚拟机、存储软件堆栈的虚拟控制器、存储服务器、超融合平台、数据虚拟化平台、传感器或执行器。
图1是根据一些实施例的计算系统100的图。计算系统100向一个或多个用户提供计算资源。计算系统100可以包括一个或多个服务器、存储设备、通信网络、网络结构、互连(interconnect)、网络接口卡、交换机、路由器等。在一个实现中,计算系统100位于数据中心中并且耦合到其他计算系统。在其他一些实现中,计算系统100可以是任何其他类型的计算设备,如个人计算机(桌上型计算机、膝上型计算机或工作站)或移动设备。计算系统100至少包括用于执行数据处理的一个应用102。应用102向调度器106发送一个或多个作业请求104。本文中所使用的作业是任何数据处理任务。调度器106将该作业分配给计算系统100中的处理资源以执行该作业。例如,处理资源可以是中央处理单元(CPU)、图形处理单元(GPU)、现场可编程门阵列(FPGA)、专用电路(ASIC)等。在各种实施例中,调度器106可以在操作系统(OS)中实现,也可以作为容器编排系统(例如,Kubernetes)来实现。
计算系统100包括一个或多个GPU,其中一个或多个GPU提供由多个vGPU并发处理多个作业的能力。在一个实施例中,GPU在计算系统100中是异构的(例如,GPU中的一个或多个GPU不同于一个或多个其他GPU)。例如,在一个实施例中,GPU中的一个或多个GPU由第一GPU制造商生产,一个或多个其他GPU由第二制造商生产,并且第一制造商的GPU设计不同于第二制造商的GPU设计。在一些情况下,GPU中的不同GPU可以是同一制造商生产的不同型号。实施例向GPU提供作业分配的有效计算而不管GPU制造商或型号类型。
当应用102被编程为使用GPU来有效地执行所选择的数据处理任务(例如,与人工智能(AI)计算、机器学习(ML)、自然语言处理(NLP)、机器感知(包括语音识别、面部识别、对象识别等)、神经网络等有关的某些任务),应用102向调度器106发送一个或多个作业请求104,并且调度器106指示或与GPU调度器108协作将作业分配给GPU以执行作业。尽管图1中描绘了GPU调度器108在调度器106内,但在其他一些实现中,GPU调度器108可以与调度器106并列实现或在调度器106外部实现。
示例计算系统100包括多个GPU,诸如GPU1 110、GPU2 112,......,GPU N 114,其中N是自然数。在一个实现中,GPU包括多个vGPU。物理GPU可以被划分为X个vGPU,其中X是可配置的自然数。vGPU使得计算系统100中的多个应用(例如,容器化应用)能够共享一个物理GPU或将多个GPU分配给单个应用。例如,GPU1 110包括B1个vGPU 116,其中B1是自然数,GPU2112包括B2个vGPU 118,其中B2是自然数,......,GPU N 114包括BN个vGPU 120,其中BN是自然数。在一个实施例中,B1、B2、......BN具有相同的值。在另一实施例中,B1、B2、......BN中的任何一个或多个具有不同的值。因此,计算系统102中的任何GPU上的处理资源的量(经由一组vGPU)可以不同于计算系统100中的其他GPU。例如,B1可以为5,B2可以为10,BN可以为8。
GPU调度器108确定从作业请求104到vGPU的最优作业分配。在一个实施例中,无论何时接收到新的作业请求,GPU调度器108考虑到新作业的要求以及现有作业向vGPU的先前分配,确定向vGPU的作业的新的最优分配。这可能会导致将一个或多个现有作业从一个物理GPU迁移到另一个物理GPU。在另一实施例中,无论何时现有作业完成,GPU调度器108考虑到所完成的作业的要求以及向vGPU的现有作业的分配,确定向vGPU的作业的新的最优分配。这也可能会导致将一个或多个作业从一个物理GPU迁移到另一个物理GPU。通过在计算系统100中持续地重新评估向vGPU的作业的最优分配,GPU调度器108防止向GPU的作业的过度订阅,避免GPU资源碎片,并且避免GPU资源未充分利用。由此提高了计算系统100的整体性能。
在一个实施例中,一旦GPU调度器108基于输入变量将最优GPU分配问题的解公式化为整数线性规划优化问题,GPU调度器将该公式发送给求解器122。求解器122确定公式的最优解并将一组输出数据(如下述)返回给GPU调度器。GPU调度器在计算系统100中使用输出数据来实现向GPU的作业的最优分配(例如,可能迁移现有作业和/或分配新作业)。在一个实施例中,求解器122与GPU调度器108集成。在另一实施例中,求解器122由计算系统100执行,但不与GPU调度器108集成。在又一实施例中,求解器122由除计算系统100之外的计算系统(例如,由GPU调度器108通过网络(例如互联网)可访问的另一计算系统)执行。可以使用用于求解器122的任何合适的整数线性规划求解器,例如,Gurobi优化工具包(从Gurobi优化有限责任公司可获得);CPLEX优化器(可从IBM公司可获得);或者线性规划“OR”工具(作为开源软件从谷歌可获得),等等。
图2是根据一些实施例的作业和GPU的示例布置200的图。在该示例中,考虑具有N个GPU的计算系统,其中GPU 1 110具有数目为B1的vGPU 116,表示为vGPU 1-1、......vGPU1-B1 116;GPU 2112具有数目为B2的vGPU 118,表示为vGPU 2-1、vGPU 2-2、......vGPU 2-B2 118;并且GPU N 110具有数目为BN的vGPU 120,表示为vGPU N-1、vGPU N-2、vGPU N-3、......vGPU N-BN 120,结果计算系统100具有数目为B=(B1+B2+...+BN)的vGPU可用用于处理作业。假设GPU调度器108接收分配作业F 202以供由计算系统100的GPU处理的作业请求104,并且假设作业F需要L个vGPU来执行作业F,其中L是自然数。假设作业不能分配给多于一个物理GPU。假设任何给定作业可能需要比任何其他作业更多、相同或更少的vGPU。在GPU调度器108的第一示例调用中,GPU调度器优化地将作业F 202分配给来自该组GPU 116、118、......120的L个不同vGPU,使得针对计算系统102的迁移成本和操作成本被最小化,例如通过关于图3所描述的方式。这可能会导致一些GPU未被使用并且被关闭。这样可能会导致一些vGPU未被使用。在分配作业F后,L个vGPU在物理GPU中使用。
现在假设GPU调度器108接收分配作业G 204以供由计算系统100的GPU处理的另一作业请求104,并且假设作业G需要M个vGPU来执行作业G,其中M是自然数。在GPU调度器108的第二示例调用中,GPU调度器将作业G 204最优地分配给来自该组vGPU 116、118、.......120的M个不同vGPU,使得针对计算系统100的迁移成本和操作成本被最小化,例如通过关于图3所描述的方式。该分配确定将现有作业F 202和先前分配的L个vGPU纳入考虑。这可能会导致一些GPU未被使用并且被关闭。这可能会导致一些vGPU未被使用。可能会导致由先前分配的物理GPU执行的现有作业F 202被迁移到另一物理GPU。在分配作业F后,L+M个vGPU在使用。
现在假设GPU调度器108接收分配作业H 206以供由计算系统100的GPU处理的作业请求104,并且假设作业H需要P个vGPU来执行作业H,其中P是自然数。还假设作业F已经完成。在GPU调度器108的第三示例调用中,GPU调度器将作业H 204最优地分配给来自该组vGPU 116、118、......120的P个不同vGPU,使得针对计算系统100的迁移成本和操作成本被最小化,例如通过关于如图3所描述的方式。该分配确定将现有作业F 202和先前分配的L个vGPU以及现有作业G 204和先前分配的M个vGPU的完成纳入考虑。这可能会导致一些GPU未被使用并且被关闭。可能会导致一些vGPU未被使用。可能会导致由先前分配的物理GPU执行的一个或多个现有作业G 204被迁移到另一物理GPU,包括例如先前用于处理作业F 202的物理GPU。在作业H 206的分配和作业F 202的完成之后,M+P个vGPU在使用。
因此,无论何时接收到新作业请求或当现有作业完成时,重复调用GPU调度器108以将作业分配给vGPU,导致计算系统100中GPU的最优利用。
图3是根据一些实施例的GPU调度器处理300的流程图。为了方便起见,将参考上述图1的元件来对图3进行描述。在框302中,GPU调度器108接收调度待由计算系统100的(多个)GPU执行的新作业的作业请求104。在框304中,GPU调度器108向一个或多个vGPU分配新作业。在框306中,GPU调度器108向一个或多个vGPU更新现有作业的分配。在框308中,GPU调度器使操作成本和分配新作业并且向一个或多个vGPU更新现有作业的分配的迁移成本。在一个实施例中,向一个或多个vGPU的对新作业的分配、向一个或多个vGPU的对现有作业的分配的更新、以及对操作成本和分配新作业并且向一个或多个vGPU更新现有作业的分配的迁移成本的最小化在多项式时间内执行,如在以下描述的。在一个实施例中,框308的执行至少部分地由求解器122完成。在框310中,计算系统100的分配的vGPU(以及GPU,通过扩展)处理新作业和现有作业。
在一个实施例中,无论何时接收到新作业请求,执行图3中的动作。在另一实施例中,无论何时现有作业完成,执行框304和框306的动作(除非在该实例中,没有待处理的新作业,没有新作业被分配或者被处理,但是剩余现有作业的分配被更新并且剩余现有作业被处理)。在另一个实施例中,自动地同时执行框304、框306和框308的动作。
GPU调度器108提供GPU调度问题的最优解。该问题是装箱问题的一个实例,其中箱子受到约束(例如,箱子中项的最小大小是常数)。例如,箱子可以表示vGPU,项可以表示作业。在具有约束条件的装箱问题中,箱子内的项的总组合等于,其中,K是不同大小的箱子的数目,M是项的数目。因此,具有R个不同箱子的箱子总组合等于,由n的多项式限定。因此,本文的GPU调度问题的解可以在多项式时间内求得。
GPU调度器108将以下变量作为输入数据:1)一组作业(先前分配的以及需要分配的任何(多个)新作业);2)系统中的现有作业的先前分配决定(其中kij是二进制变量,其表示将作业i分配给GPU j的先前决定;3)针对每个作业的迁移成本的权重4)系统管理员为目标函数∈1,∈2选择的权重,(其中,∈1表示操作成本,∈2表示迁移成本);5)每个作业所需的虚拟GPU的数目以及6)系统中的物理GPU的总数N。
GPU调度器108产生以下变量作为输出数据:(1)在系统中分配所有作业(现有作业和新作业)的新决定其中,xij表示将作业i分配给GPU j的决定;2)作业迁移的数目和迁移成本;3)对迁移作业i的二元决定δi(是或否);以及4)是否开启GPU j的二元决定GPU调度器108至少部分地基于输出数据来实现对作业和vGPU的分配决定。然后vGPU处理被分配给其vGPU的作业。
表1列出了输入变量和输出变量。
表1
式1和约束条件1、约束条件2、约束条件3、约束条件4表示由GPU调度器108进行的GPU分配问题的公式,其被发送到求解器122进行处理。
δi,xij,kij∈{0,1} 约束条件4
式1的目标函数具有两部分:(i)左侧示出了计算系统中的针对接通GPU(所需的)的操作成本,该操作成本由示出了目标函数中的操作成本的优先级的常数偏置;(ii)右侧示出了作业的加权迁移成本。约束条件1要求被分配给物理GPU的作业的数目不能超过物理GPU的容量。约束条件2要求每个作业仅能在物理GPU中的一个物理GPU上被调度。
约束条件3要求在新分配与当前分配不同时,通过在迁移的情况下将变量δi设置为1并且在不迁移的情况下设置为0,来执行迁移。如图表2所示。
表2
x<sub>ij</sub> | k<sub>ij</sub> | δ<sub>i</sub> |
0 | 0 | 0 |
1 | 1 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
约束条件4要求δi、xij、kij是二进制变量,可以是0或1。
本文所描述的技术提供了一种GPU调度进程,以在考虑操作成本和迁移成本的情况下,将作业最优地分配给vGPU。系统管理员具有选择成本模型的能力,并可以通过调整操作成本或迁移成本各自的权重wi来向操作成本或迁移成本赋予优先级。系统管理员可以指定计算系统中的GPU的数目N、可用vGPU的数目、每个物理GPU被划分为多少个vGPU B、随着时间Ri的推移每个作业所需的vGPU的数目。
本文参考图1到图5所描述的处理可以以可执行指令的形式和/或其他类型电子电路装置的形式实现,可执行指令存储在机器可读介质上并且由处理资源(例如,微控制器、微处理器、中央处理单元核、专用集成电路(ASIC),现场可编程门阵列(FPGA)等)执行。例如,该处理可以由一个或多个计算系统或各种形式的节点来执行,诸如上文参考图1和图2描述的系统,或下文参考图4和图5描述的节点和/或计算系统。
本文描述的实施例包括各种步骤,其示例已在上文中描述。如上面进一步描述的,这些步骤可以由硬件组件执行或者可以体现在机器可执行指令中,机器可执行指令可以用于使用指令编程的处理器执行这些步骤。备选地,至少一些步骤可以由硬件、软件和/或固件的组合来执行。
本文所描述的实施例可以作为计算机程序产品被提供,其可以包括在其上体现指令的有形机器可读存储介质,该指令可以用于对计算机(或其他电子设备)进行编程以执行进程。机器可读介质可以包括但不限于适用于存储电子指令(例如,计算机编程代码,如软件或固件)的固定(硬盘)驱动器、磁带、软盘、光盘、光盘只读存储器(CD-ROM)和磁光盘、半导体存储器,例如ROM、PROM、随机存取存储器(RAM)、可编程只读存储器(PROM)、可擦除PROM(EPROM),电可擦除PROM(EEPROM)、闪存、磁卡或光卡,或其他类型的媒体/机器可读媒体。
本文所描述的各种方法可以通过结合包含根据本文的示例性实施例的代码的一个或多个机器可读存储介质与适当的标准计算机硬件来实践,以执行其中所包含的代码。用于实践本文的各种实施例的装置可涉及一个或多个计算元件或计算机(或单个计算机内的一个或多个处理器)和包含或具有对根据本文的各种方法编码的计算机程序的网络访问的存储系统,并且本文所描述的各种实施例的方法步骤可以通过计算机程序产品的模块、例程、子例程或子部分来完成。
图4是根据一个示例实施例的系统(诸如计算系统100)的处理节点400的框图。在图4所示的示例中,节点400包括耦合到编码有用于执行调度的指令的非瞬态机器可读介质420的处理资源410。处理资源410可以包括适于取回和/或执行来自机器可读介质420的指令以执行与本文描述的各种示例相关的功能的微控制器、微处理器、(多个)中央处理单元(CPU)核、图形处理单元(GPU)、ASIC、FPGA、和/或其他硬件设备。附加地或者备选地,处理资源410可以包括用于执行本文的指令的功能的电子电路装置。
机器可读介质420可以是适合于存储可执行指令的任何介质。机器可读介质420的非限制性示例包括随机存取存储器(RAM)、只读存储器(ROM)、电可擦除只读存储器(EEPROM)、闪存、硬盘驱动器、光盘等。机器可读介质420可以放置在节点400内,如图4所示,在该情况下,可执行指令可以被视为“安装”或“嵌入”在节点400上。备选地,机器可读介质420可以是便携式(例如,外部)存储介质,并且可以是“安装包”的一部分。存储在机器可读介质420上的指令可用于实现本文所描述的方法的至少一部分。
如下文进一步描述的,机器可读介质420可以在其上存储有一组可执行指令430、440、450和460。应当理解的是在替代实现中,包括在一个方框内的部分或全部可执行指令和/或电子电路可以被包括在图中所示的不同方框中或未示出的不同方框中。在一些实现中,机器可读介质420可以包括未示出的其他指令以执行本文的其他功能,例如建立写入权重或选出超时。
指令430在执行时使处理资源410执行调度器116处理。在一个实施例中,调度器处理包括由计算系统100上的处理资源执行将作业请求分配给计算系统100(例如,诸如GPU、ASIC、FPGA等)内的计算资源的过程。调度器指令430调用GPU调度器指令440。指令440在执行时使处理资源410执行GPU调度器处理。在一个实施例中,GPU调度器处理包括由计算系统100上的处理资源在计算系统100内执行将作业最优地分配给GPU的过程。指令450在执行时使处理资源410执行应用100处理。在一个实施例中,应用102处理包括由应用的用户指导的任何期望的数据处理。应用指令450的执行导致对调度器指令430的调用。GPU调度器指令440调用求解器指令460。指令460在执行时使处理资源410执行求解器处理(例如,生成GPU分配的线性规划问题的解)。
图5是示出根据一个实施例的节点500的框图,该节点500可以表示系统(例如计算系统100)的节点。在本示例的上下文中,节点500具有以软件为中心的架构,该架构集成了计算、存储、联网和虚拟化资源以及其他技术。
节点500可以实现为物理服务器(例如,具有x86或ARM架构的服务器)或其他合适的计算设备。在本示例中,节点500托管数目是n的来宾虚拟机(VM)502、504和506(n是自然数),并且可以被配置为执行如本文描述的GPU调度。在一些实施例中,多个这样的节点、每个执行调度器106、GPU调度器108和应用102处理(如上文结合图1至图4描述的)可以耦合到网络并且被配置为集群的一部分。取决于特定实现方式,系统支持的一个或多个服务可能与虚拟机502、虚拟机504和虚拟机506相关,或者可能不相关。
节点500可以包括位于虚拟机监测器510之上的虚拟应用(appliance)508。虚拟应用508可以包括调度器106、GPU调度器108、求解器122和应用102。虚拟应用508可以包括与控制平面514和数据路径516通信的虚拟文件系统512。控制平面514可以处理节点500内的应用和资源之间的数据流。数据路径516能够提供虚拟文件系统512和操作系统(OS)518之间的合适的输入/输出(I/O)接口。在一个实施例中,调度器106和GPU调度器108与OS 518集成。根据一个实施例,虚拟应用508表示配置为运行存储堆栈软件(未示出)的虚拟控制器,该存储堆栈软件可用于执行如下功能:诸如管理由虚拟机502、虚拟机504和虚拟机506对存储装置520的访问、提供动态资源共享、在存储资源522和存储资源524之间移动VM数据、提供数据移动、和/或执行其他超融合数据中心功能。
节点500还可以包括位于虚拟机监测器510之下的若干硬件组件。例如,节点500可以包括存储装置520,其可以是具有若干硬盘驱动(HDD)522和/或固态硬盘(SSD)524的独立磁盘冗余阵列(RAID)存储装置。节点500还可以包括存储器526(例如,随机存取存储器(RAM)、只读存储器(ROM)、闪存等)以及一个或多个处理器528。节点500可以包括无线和/或有线网络接口组件,以实现通过网络530(例如,与其他节点或与互联网)的通信。节点500还能够包括一个或多个GPU 536。
在前述描述中,阐述了许多细节以提供对本文公开的主题的理解。然而,可以在没有部分或全部这些细节的情况下实践实现方式。其他实现方式可以包括对以上所讨论的细节的修改和变化。以下权利要求旨在涵盖这些修改和变化。
Claims (20)
1.一种方法,包括:
在包括一个或多个图形处理单元GPU的计算系统中接收调度待由所述计算系统执行的新作业的请求,所述一个或多个GPU由多个虚拟GPU vGPU提供对多个作业的并发处理;
向一个或多个vGPU分配所述新作业;
向一个或多个vGPU更新现有作业的分配;
使操作所述一个或多个GPU的操作成本和分配所述新作业并且向所述一个或多个vGPU更新所述现有作业的所述分配的迁移成本最小化;以及
由所述计算系统中的所述一个或多个GPU处理所述新作业以及具有经更新的分配的所述现有作业。
2.根据权利要求1所述的方法,其中所述计算系统的所述一个或多个GPU是异构的。
3.根据权利要求1所述的方法,其中更新现有作业的分配包括向另一GPU迁移现有作业。
4.根据权利要求1所述的方法,其中所述更新和所述最小化在现有作业完成时被执行。
5.根据权利要求1所述的方法,包括接收针对所述操作成本和迁移成本的权重。
6.根据权利要求1所述的方法,其中使操作所述一个或多个GPU的操作成本和分配所述新作业并且向所述一个或多个vGPU更新所述现有作业的所述分配的迁移成本最小化包括:由GPU调度器接收一组现有作业、所述现有作业的分配决定、新作业和现有作业的针对迁移成本的权重、两个目标函数的针对操作成本和迁移成本的权重、每个作业所需的vGPU的数目、以及所述计算系统中的GPU的数目。
7.根据权利要求1所述的方法,其中使操作所述一个或多个GPU的操作成本和分配所述新作业并且向所述一个或多个vGPU更新所述现有作业的所述分配的迁移成本最小化包括:由GPU调度器确定对分配新作业和现有作业的决定、作业迁移的数目和迁移成本、对迁移现有作业的决定、以及对关闭和接通GPU的决定。
8.根据权利要求1所述的方法,其中使操作所述一个或多个GPU的操作成本和分配所述新作业并且向所述一个或多个vGPU更新所述现有作业的所述分配的迁移成本最小化包括:由GPU调度器确定接通多个GPU的最小化操作成本以及迁移现有作业的最小化迁移成本,使得被分配给GPU的作业的数目不能够大于所述GPU的容量,所述新作业只能在一个GPU上被调度,并且作业的迁移在现有作业的新分配不同于现有作业的当前分配时被执行。
9.一种非瞬态机器可读存储介质,其上存储有可执行指令,所述可执行指令在由处理资源执行时,使所述处理资源:
在包括一个或多个图形处理单元GPU的计算系统中接收调度待由所述计算系统执行的新作业的请求,所述一个或多个GPU由多个虚拟GPU vGPU提供多个作业的并发处理;
向一个或多个vGPU分配所述新作业;
向一个或多个vGPU更新现有作业的分配;
使操作所述一个或多个GPU的操作成本和分配所述新作业并且向所述一个或多个vGPU更新所述现有作业的所述分配的迁移成本最小化;以及
由所述计算系统中的所述一个或多个GPU处理所述新作业以及所述现有作业。
10.根据权利要求9所述的非瞬态机器可读存储介质,其中所述计算系统的所述一个或多个GPU是异构的。
11.根据权利要求9所述的非瞬态机器可读存储介质,其中使所述处理资源更新现有作业的分配的指令包括:使所述处理资源向另一GPU迁移现有作业的指令。
12.根据权利要求9所述的非瞬态机器可读存储介质,其中所述更新和最小化指令在现有作业完成时被执行。
13.根据权利要求9所述的非瞬态机器可读存储介质,包括:在被执行时使所述处理资源接收针对所述操作成本和迁移成本的权重的指令。
14.一种计算系统,包括:
一个或多个图形处理单元GPU,所述一个或多个GPU由多个虚拟GPU vGPU提供对多个作业的并发处理;以及
GPU调度器,用于接收调度待由所述计算系统执行的新作业的请求,向一个或多个vGPU分配所述新作业,向一个或多个vGPU更新现有作业的分配,并且使操作所述一个或多个GPU的操作成本和分配所述新作业并且向所述一个或多个vGPU更新所述现有作业的所述分配的迁移成本最小化;
其中所述一个或多个GPU用于处理所述新作业和所述现有作业。
15.根据权利要求14所述的计算系统,其中所述计算系统的所述一个或多个GPU是异构的。
16.根据权利要求14所述的计算系统,其中用于更新现有作业的分配的所述GPU调度器包括:用于向另一GPU迁移现有作业的所述GPU调度器。
17.根据权利要求14所述的计算系统,其中所述更新和所述最小化在现有作业完成时被执行。
18.根据权利要求14所述的计算系统,其中所述GPU调度器用于接收针对所述操作成本和迁移成本的权重。
19.根据权利要求14所述的计算系统,其中使操作所述一个或多个GPU的操作成本和分配所述新作业并且向所述一个或多个vGPU更新所述现有作业的所述分配的迁移成本最小化包括:由所述GPU调度器接收一组现有作业、所述现有作业的分配决定、新作业和现有作业的针对迁移成本的权重、两个目标函数的针对操作成本和迁移成本的权重、每个作业所需的vGPU的数目、以及所述计算系统中的GPU的数目。
20.根据权利要求14所述的计算系统,其中使操作所述一个或多个GPU的操作成本和分配所述新作业并且向所述一个或多个vGPU更新所述现有作业的所述分配的迁移成本最小化包括:由所述GPU调度器确定对分配新作业和现有作业的决定、作业迁移的数目和迁移成本、对迁移现有作业的决定、以及对关闭和接通GPU的决定。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/360,122 US11651470B2 (en) | 2021-06-28 | 2021-06-28 | Scheduling jobs on graphical processing units |
US17/360,122 | 2021-06-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115599512A true CN115599512A (zh) | 2023-01-13 |
Family
ID=84388263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111264875.9A Pending CN115599512A (zh) | 2021-06-28 | 2021-10-28 | 在图形处理单元上调度作业 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11651470B2 (zh) |
CN (1) | CN115599512A (zh) |
DE (1) | DE102021127324A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12007942B2 (en) | 2021-10-27 | 2024-06-11 | EMC IP Holding Company LLC | Methods and systems for seamlessly provisioning client application nodes in a distributed system |
US20230126511A1 (en) * | 2021-10-27 | 2023-04-27 | EMC IP Holding Company LLC | Methods and systems for storing data in a distributed system using gpus |
US11922071B2 (en) | 2021-10-27 | 2024-03-05 | EMC IP Holding Company LLC | Methods and systems for storing data in a distributed system using offload components and a GPU module |
CN116757915B (zh) * | 2023-08-16 | 2023-11-28 | 北京蓝耘科技股份有限公司 | 一种集群gpu资源调度方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108351810A (zh) * | 2015-11-11 | 2018-07-31 | 亚马逊科技公司 | 用于虚拟化图形处理的扩展 |
US20190347137A1 (en) * | 2018-05-08 | 2019-11-14 | Vmware, Inc. | Task assignment in virtual gpu enabled systems |
CN112286645A (zh) * | 2020-12-29 | 2021-01-29 | 北京泽塔云科技股份有限公司 | 一种gpu资源池调度系统及方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9135741B2 (en) * | 2012-01-23 | 2015-09-15 | Nec Laboratories America, Inc. | Interference-driven resource management for GPU-based heterogeneous clusters |
TWI479422B (zh) * | 2013-01-25 | 2015-04-01 | Wistron Corp | 電腦系統及其繪圖處理方法 |
US9904975B2 (en) * | 2015-11-11 | 2018-02-27 | Amazon Technologies, Inc. | Scaling for virtualized graphics processing |
US10282811B2 (en) * | 2017-04-07 | 2019-05-07 | Intel Corporation | Apparatus and method for managing data bias in a graphics processing architecture |
CN109376009A (zh) | 2018-09-26 | 2019-02-22 | 郑州云海信息技术有限公司 | 一种共享资源的方法及装置 |
US20210110089A1 (en) | 2019-10-10 | 2021-04-15 | Nvidia Corporation | Generating computer simulations of manipulations of materials based on machine learning from measured statistics of observed manipulations |
US11113782B2 (en) * | 2019-10-15 | 2021-09-07 | Vmware, Inc. | Dynamic kernel slicing for VGPU sharing in serverless computing systems |
CN111506404A (zh) | 2020-04-07 | 2020-08-07 | 上海德拓信息技术股份有限公司 | 一种基于Kubernetes的共享GPU调度方法 |
US20220050714A1 (en) * | 2020-08-14 | 2022-02-17 | Lancium Llc | Power aware scheduling |
CN111966500B (zh) | 2020-09-07 | 2023-08-11 | 网易(杭州)网络有限公司 | 资源调度方法、装置、电子设备及存储介质 |
US20210117246A1 (en) * | 2020-09-25 | 2021-04-22 | Intel Corporation | Disaggregated computing for distributed confidential computing environment |
-
2021
- 2021-06-28 US US17/360,122 patent/US11651470B2/en active Active
- 2021-10-21 DE DE102021127324.2A patent/DE102021127324A1/de active Pending
- 2021-10-28 CN CN202111264875.9A patent/CN115599512A/zh active Pending
-
2023
- 2023-04-26 US US18/307,728 patent/US20240095870A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108351810A (zh) * | 2015-11-11 | 2018-07-31 | 亚马逊科技公司 | 用于虚拟化图形处理的扩展 |
US20190347137A1 (en) * | 2018-05-08 | 2019-11-14 | Vmware, Inc. | Task assignment in virtual gpu enabled systems |
CN112286645A (zh) * | 2020-12-29 | 2021-01-29 | 北京泽塔云科技股份有限公司 | 一种gpu资源池调度系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
DE102021127324A1 (de) | 2022-12-29 |
US20240095870A1 (en) | 2024-03-21 |
US20220414817A1 (en) | 2022-12-29 |
US11651470B2 (en) | 2023-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11720408B2 (en) | Method and system for assigning a virtual machine in virtual GPU enabled systems | |
US9268394B2 (en) | Virtualized application power budgeting | |
US11651470B2 (en) | Scheduling jobs on graphical processing units | |
Chowdhury et al. | Implementation and performance analysis of various VM placement strategies in CloudSim | |
Aziza et al. | Bi-objective decision support system for task-scheduling based on genetic algorithm in cloud computing | |
Meshkati et al. | Energy-aware resource utilization based on particle swarm optimization and artificial bee colony algorithms in cloud computing | |
RU2571366C2 (ru) | Виртуальная архитектура неоднородного доступа к памяти для виртуальных машин | |
CN105843683B (zh) | 用于动态优化平台资源分配的方法、系统和设备 | |
US9021477B2 (en) | Method for improving the performance of high performance computing applications on Cloud using integrated load balancing | |
US8332862B2 (en) | Scheduling ready tasks by generating network flow graph using information receive from root task having affinities between ready task and computers for execution | |
CN107273185B (zh) | 一种基于虚拟机的负载均衡控制方法 | |
US20160196157A1 (en) | Information processing system, management device, and method of controlling information processing system | |
Aruna et al. | An improved load balanced metaheuristic scheduling in cloud | |
CN114138486A (zh) | 面向云边异构环境的容器化微服务编排方法、系统及介质 | |
US11287999B2 (en) | Multi-instance 2LM architecture for SCM applications | |
Ramezani et al. | A multi-objective load balancing system for cloud environments | |
Natesan et al. | Optimal task scheduling in the cloud environment using a mean grey wolf optimization algorithm | |
US20200341789A1 (en) | Containerized workload scheduling | |
Sonkar et al. | A review on resource allocation and VM scheduling techniques and a model for efficient resource management in cloud computing environment | |
Seth et al. | Dynamic threshold-based dynamic resource allocation using multiple VM migration for cloud computing systems | |
US20220229695A1 (en) | System and method for scheduling in a computing system | |
Mollamotalebi et al. | Multi-objective dynamic management of virtual machines in cloud environments | |
AU2021103249A4 (en) | A novel multi-level optimization for task scheduling and load balancing in cloud | |
Komarasamy et al. | ScHeduling of jobs and Adaptive Resource Provisioning (SHARP) approach in cloud computing | |
US20220413941A1 (en) | Computing clusters |
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 |