CN114787830A - 异构集群中的机器学习工作负载编排 - Google Patents
异构集群中的机器学习工作负载编排 Download PDFInfo
- Publication number
- CN114787830A CN114787830A CN201980103157.8A CN201980103157A CN114787830A CN 114787830 A CN114787830 A CN 114787830A CN 201980103157 A CN201980103157 A CN 201980103157A CN 114787830 A CN114787830 A CN 114787830A
- Authority
- CN
- China
- Prior art keywords
- computing
- workload
- resources
- cluster
- subsystem
- 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
- 238000010801 machine learning Methods 0.000 title claims abstract description 37
- 238000013473 artificial intelligence Methods 0.000 claims abstract description 24
- 238000000034 method Methods 0.000 claims abstract description 17
- 230000003044 adaptive effect Effects 0.000 claims abstract description 9
- 238000012545 processing Methods 0.000 claims description 13
- 238000004891 communication Methods 0.000 claims description 7
- 230000002085 persistent effect Effects 0.000 claims description 7
- 230000006870 function Effects 0.000 claims description 5
- 238000000638 solvent extraction Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 7
- 238000013467 fragmentation Methods 0.000 description 3
- 238000006062 fragmentation reaction Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002250 progressing effect Effects 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/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- 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
- G06F9/505—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 considering the load
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Debugging And Monitoring (AREA)
Abstract
本文中描述了用于使用具有异构计算资源的分布式计算集群来编排诸如机器学习或人工智能应用之类的应用的执行的***和方法。发现子***可以标识每个计算集群的不同计算资源。该应用被划分成多个工作负载,其中每个工作负载与对应于计算集群中的一个的计算资源的资源需求相关联。自适应建模允许基于与每个相应工作负载被指派到的计算集群相关联的计算资源以及相关联的数据集来定义每个工作负载的超参数。
Description
背景技术
机器学习工作负载可以分布在多个计算节点之间。一些工作负载可以彼此独立地被并行处理,而其他工作负载可以被顺序地处理。大规模的机器学习应用可以分布在许多计算节点当中。
机器学习应用的工作负载分配的数据并行性、模型并行性和流水线并行性方法通常假定具有同构计算资源的专用计算节点是容易地可获得的。因此,恒定的超参数与给定机器学习应用的所有分布式工作负载相关联。
附图说明
本文中的书面公开内容描述了非限制性和非详尽的说明性示例。对下面描述的各图中描绘的此类说明性示例中的某些进行参考。
图1图示了在异构计算集群当中编排机器学习工作负载的工作负载编排***的示例框图。
图2A图示了经由内部部署(on-premises)计算设备的异构网络中的工作负载编排***对人工智能应用的集群管理的特定示例。
图2B图示了图2A的人工智能调度器的示例子***的框图。
图3图示了在计算机***中实现的示例工作负载编排***的框图。
图4图示了基于所发现的资源和所估计的资源需求将机器学习应用的工作负载分配到异构计算集群的方法的流程图。
具体实施方式
大规模数据处理和复杂应用的执行可以通过将数据处理任务或复杂应用划分成一组离散的工作负载来执行,其中一些工作负载可以被并行地执行或以其他方式处理。如特定工作流可能规定的那样,并行或顺序地编排各种工作流的执行可以由多个计算节点或计算节点集群(计算集群)来执行。每个计算节点可以就可用的计算资源而言来定义。类似地,计算集群可以就多个计算节点的集体可用计算资源而言来定义。如本文中所使用的,计算集群包括至少一个计算节点,但是可以包括多个计算节点。在云计算环境中,可以选择各种计算节点来具有同构或接近同构的计算资源。一些任务(诸如,大规模数据处理)可以基于可用计算资源和离散计算节点的数目被划分成任何数目的越来越小且越来越简单的并行处理工作流。
相比之下,一些复杂的应用(诸如,人工智能应用和机器学习应用)可以被划分成有限数目的工作负载,以用于由分布式计算集群执行。例如,在不破坏工作负载的功能的情况下,机器学习应用内相关联的工作负载中的一些不能够被进一步细分。如本文中所使用,术语工作负载包括特定的计算作业或任务以及相关联或基础的数据集。每个计算作业或任务可以包括针对关于相关联数据集要采取的动作的指令。
编排和/或调度***编排其中工作负载中每一个被不同计算集群执行的次序,并且随着学习进展,控制各种工作负载之间的所计算数据(诸如,所学习或训练的参数)的交换。在云计算环境中,其中计算集群可以具有同构或接近同构的计算资源,假设每个工作流正在以相同的速度来学习或以其他方式进展。因此,计算节点可以同步地传送和交换机器学习参数,而没有任何一个计算节点的显著资源碎片或未充分利用。
高效地管理与人工智能和机器学习应用相关联的工作负载变得越来越重要。人工智能和机器学习模型可以在专用的高端服务器或工作站中被训练,该高端服务器或工作站具有多个GPU或机器学习加速器(MLA),作为集群或数据中心的一部分(例如,在云中)。所述模型稍后被部署在云中或边缘处以用于推理,并且它们为了更好的数据驱动决策来生成见识。
例如,一些人工智能或其他机器学习模型利用成组调度(gang scheduling),在其中,该应用的所有工作负载被调度用于由一组分布式计算集群来并发执行。由一个计算节点执行的工作负载的一些部分可依赖于或以其他方式利用由执行其他工作负载的其他计算集群提供的机器学习参数。在同构计算集群的网络中,每个计算节点可以同时准备好例如彼此交换机器学习参数。
然而,在许多实例中,成组调度可能导致共享集群中的资源碎片和/或低利用率。考虑到图形处理单元(GPU)通常被建模为不能够以精细粒度被共享的整体式资源(monolithic resource),这个尤其是正确的。此外,一些人工智能或其他机器学习模型(诸如,基于随机梯度下降(SGD)的那些)利用计算集群之间和/或个体计算设备之间的参数的交换。
在一些实例中,可能期望使用内部部署计算设备和/或边缘设备来执行人工智能或其他机器学习应用。与云计算环境中不同,内部部署计算设备和边缘设备可以每个具有广泛不同的计算资源。因此,虽然云计算环境可以被建模为具有同构计算资源的多个分布式计算集群,但是内部部署和/或边缘设备网络被更准确地描述为具有异构计算资源的多个分布式计算集群。
计算资源的示例在没有限制的情况下包括中央处理单元(CPU)资源、GPU资源、易失性存储器资源、网络通信能力、持久性存储资源等。其计算资源相同或相差小于1.5倍的计算集群可以被描述为同构的,而其计算资源相差大于1.5倍的计算集群可以被描述为异构的。例如,可以就可用易失性存储器、可用持久性存储装置、处理器时钟速度、每秒浮点运算(“flops”)、计算核心或处理器的数目、存储器速度、网络带宽等中的一个或多个的函数而言来量化和比较同构或异构计算资源的计算资源。异构计算网络中的机器学习工作负载的指派可能导致一些计算集群的利用不足和/或计算集群之间的异步学习参数交换。
当前描述的***和方法为异构计算集群提供了机器学习模型感知和资源感知的工作负载调度,该异构计算集群诸如在内部部署计算设备和边缘设备的许多网络中找到的那些。该***可以基于与每个相应工作负载相关联的计算需求和每个相应计算集群的可用计算资源来将工作负载与计算集群进行匹配。为了补偿每个计算集群的不同处理速度,可以基于工作负载被指派到的计算集群的计算资源来定义或调整与每个工作负载相关联的超参数。
作为简单的示例,如果第一计算集群具有两个GPU,并且被指派了具有批大小超参数6,000的工作负载,则具有四个相同的GPU的第二计算集群可以被指派具有批大小超参数12,000的类似工作负载。更一般地,机器学习模型中的每个工作负载的批大小、时期和/或学习速度超参数可以基于每个相应工作负载被指派到的计算集群的计算资源以及与每个相应工作负载相关联的数据集被单独地定义和/或调整。
在各种示例中,可以选择指派到每个计算集群的(多个)工作负载的超参数,以改进整体学习结果,减少训练时间,使开销通信最小化,使通信和机器学习参数交换同步,和/或使计算资源利用率或效率最大化。在一些示例中,该***可以执行定义成无状态或有状态的工作负载,以便于迁移和碎片整理。
在许多实例中,内部部署计算设备和/或边缘设备的网络不仅具有异构计算资源,它们还可以由若干用户和/或组织共享。例如,异构计算环境可以包括部署在相同子网中的工作站/服务器池。作为另一示例,异构计算环境可以包括经由内联网或经由互联网连接的多个边缘设备,诸如物联网(IoT)设备、网关、自主汽车等。
用于异构计算集群的网络中的工作流的模型感知和资源感知调度的当前描述的***和方法可以被应用于或用于修改用于集群管理、机器学***性(DRF)和分层最大-最小公平性架构中阐述的基本集群管理方法可以被修改以并入本文中公开的概念。本文中描述的概念可以被添加到现有的集群管理架构。因此,集群管理架构的现有功能可以被增强,以允许基于每个不同计算集群的所标识的可用计算资源以及数据集将超参数动态指派到工作负载。
在一个示例中,工作负载编排***包括发现子***,以标识异构计算集群的网络中的每个计算集群的特定计算资源。清单子***接收或生成清单,该清单描述了与诸如人工智能应用或其他机器学习应用之类的应用相关联的每个工作负载的资源需求。该清单可以例如指定对于特定工作负载所需求的计算资源(例如,就CPU核心的数目、GPU资源、存储器资源、策略等而言)。放置子***可以通过匹配或映射每个工作负载的资源需求和每个计算集群的计算资源来将每个工作负载指派到计算集群中的一个。放置子***可以在进一步考虑亲和性、反亲和性和/或同地性约束和策略的情况下指派每个工作负载。自适应建模子***可以根据每个相应工作负载被指派到的计算集群的所标识的计算资源以及数据集来动态地定义(例如,建立、设置或修改)每个工作负载的超参数。
各种模块、***和子***在本文中被描述为实现功能和/或执行各种动作。在许多实例中,模块、***和子***可以被划分成子模块、子***,或者甚至作为子***的子部分。模块、***和子***可以在硬件中实现,或者作为存储在例如非暂时性计算机可读介质中的处理器可执行指令来实现。一些示例可以被具体实施为计算机程序产品,该计算机程序产品包括其上具有存储的指令的非暂时性计算机和/或机器可读介质,所述指令可以用于对计算机(或另一电子设备)进行编程以执行本文中描述的过程。
可以通过参考附图来进一步理解本公开的示例。容易理解的是,如在本文中的附图中一般地描述和图示的所公开的示例的部件可以以各种各样不同的配置来布置和设计。因此,对本公开的***和方法的示例的以下详细描述并不旨在限制如所要求保护的本公开的范围,而仅仅是代表本公开的可能示例。此外,方法的元素不一定需要以任何特定的次序执行,或者甚至不一定需要顺序地执行,元素也不需要仅执行一次,除非另有指定。在一些情况下,没有详细地示出或描述公知的特征、结构或操作。
图1图示了在异构计算集群130当中编排机器学习工作负载的工作负载编排***150的示例框图100。诸如人工智能应用或其他机器学习应用之类的应用服务105可以与工作负载编排***150通信以用于分布式执行。工作负载编排***150包括发现子***152、自适应建模子***154、放置子***156和清单子***158。
发现子***152标识或以其他方式概述作为异构计算集群130的一部分的计算集群A、B、C和Z(131、132、133和139)中的每一个的个体计算资源。异构计算集群130的网络可以包括任何数目的计算集群,但是在该示例中仅图示了四个。计算集群A、B、C和Z(131、132、133和139)可以具有计算资源的各种组合,由每个计算集群131-139的右下角中的条形图以图形方式来说明。例如,每个计算集群131-139可以具有不同的CPU资源、GPU资源、易失性存储器资源、网络带宽、网络时延特性、持久性存储资源等。
在一些示例中,发现子***152可以标识每个计算集群131-139的总(例如,理论上的)计算资源、每个计算集群131-139的当前可用计算资源、和/或每个计算集群131-139的计算资源在未来时间窗口期间的预期的或所调度的可用性。一些计算集群可具有彼此相同的计算资源,而其他集群可能是异构的。
清单子***158可以维持描述或指定了实现应用服务105的多个工作负载中的每一个的资源需求的清单。在一些示例中,清单子***158基于由发现子***152标识的计算集群131-139的计算资源将应用服务105划分成多个工作负载。例如,工作负载可以被有意地选择成具有对应于计算集群131-139的所标识的计算资源的资源需求。在其他实施例中,清单子***158可以接收描述了例如由应用服务105独立于计算集群131-139的所标识的计算资源而指定的预定义工作负载的资源需求的清单。
放置子***156将每个工作负载分配到计算集群131-139中的一个。例如,放置子***156可以通过将每个相应工作负载的资源需求与计算集群131-139中的每一个的所标识的计算资源进行匹配来将清单子***158中定义的应用服务105的工作负载与计算集群131-139进行匹配。
在一些示例中,放置子***156实现资源感知的工作负载调度,在其中资源需求包括对应于计算集群131-139的所标识的计算资源的度量(例如,CPU资源、GPU资源、vCPU、易失性存储器资源、网络带宽、网络时延特性、持久性存储资源等)。在其他示例中,放置***156附加地实现了模型感知的工作负载调度,在其中对计算集群131-139的工作负载的分配进一步基于工作负载的同地性、反亲和性和/或亲和性约束和策略。
在一些示例中,放置子***156可以基于可用的计算资源来放松或忽略局部性约束。如本文中所描述,可以通过迁移和碎片整理来解决结果得到的碎片。也就是说,虽然放置子***156可以实现资源感知和模型感知的工作负载指派,但是有时基于可用计算资源的限制,模型感知的约束可能被放松或者甚至被忽略。在部分或完全执行之后,工作负载编排***150可以将工作负载从一个计算集群131-139迁移到另一计算集群131-139,以满足亲和性和/或同地性约束。工作负载编排***150可以实现允许恢复机器学习模型的检查点方法,以避免重新运行,例如从开始来训练。
自适应建模子***154根据每个相应工作负载被指派到的计算集群131-139的所标识的计算资源来设置、调整或以其他方式定义每个工作负载的超参数。由于计算集群A和B(分别为131和132)的不同计算资源,指派到计算集群A 131的工作负载的超参数可能不同于指派到计算集群B 132的工作负载的超参数。例如,与指派到计算集群B-Z(132-139)的(多个)工作负载相比,可以向指派到计算集群A 131的(多个)工作负载指派不同的批大小、时期数目、学习速度和/或其他超参数。该***可以通过动态地修改指派到各种异构计算集群131-139的工作负载的超参数来减少掉队问题,以同步或更紧密地同步工作负载的执行。
图2A图示了经由工作负载编排***200的人工智能应用204的集群管理的特定示例,该工作负载编排***200包括清单202、人工智能调度器206、集群管理器210和注册表214。工作负载编排***200可以在内部部署计算设备212的异构网络中实现集群管理。清单202可以指定与人工智能应用204相关联的多个工作负载中的每一个的资源需求。集群管理器210、消息队列208和人工智能调度器206可以是放置子***的部件,该放置子***通过例如将每个相应工作负载的资源需求与每个相应计算设备的所标识的计算资源进行匹配来将人工智能应用204的每个工作负载分配到内部部署计算设备212的网络中的计算设备中的一个。
如先前所描述,注册表214可以由发现子***来维持。在一些示例中,注册表214可以是标识内部部署计算设备212的网络中的计算设备中的每一个的计算资源的动态数据库。工作负载编排***200还可以根据内部部署计算设备212的网络中的计算设备的所标识的计算资源来设置、调整或以其他方式定义每个所指派的工作负载的超参数。当计算资源变得可用时,发现子***可以获取或保留计算资源。因此,因为计算资源可用性是动态的,所以工作负载编排***200可以使用滞后裕度来获取具有适当的局部性和/或亲和性的资源,以满足工作负载的对应资源需求。
工作负载编排***200可以以资源感知的方式将工作负载指派到内部部署计算设备212的网络中的计算设备。也就是说,工作负载编排***200可以通过将每个计算设备的计算资源与每个工作负载的资源需求进行匹配或映射来将工作负载指派到计算设备。在一些示例中,工作负载编排***200还可以以模型感知的方式将工作负载指派到计算设备。也就是说,工作负载编排***200可以在进一步考虑工作负载的同地性约束、反亲和性和/或亲和性约束和策略的情况下将工作负载指派到计算设备。
工作负载编排***200可以隔离人工智能应用201的工作负载(例如,机器学习训练和干扰作业)。工作负载编排***200可以至少部分地基于与将工作负载指派到具有增加的GPU资源和/或其他加速器资源的计算益处的分布式计算设备相关联的网络通信成本的评估来将工作负载指派到内部部署计算设备212的网络中的计算设备。
在一些示例中,工作负载编排***200可以针对内部部署计算设备212的网络中的计算设备的计算资源实现抢占策略,以实施资源共享(例如,共享文件***216)。可以设置抢占策略,以避免使用任何一个计算设备的全部容量和/或减轻队头阻塞(head-of-line)问题。在一些示例中,如果较高优先级的作业到达消息队列208中,同时存在运行的较低优先级作业,则***200可以释放内部部署计算设备212的网络中的计算设备的计算资源,以集中于较高优先级作业。例如,较低优先级作业可能被暂时挂起,而较高优先级作业被执行。
图2B图示了图2A的人工智能调度器206的示例子***230-238的框图。清单202、集群管理器210、内部部署计算设备212的网络以及寄存器214在上面图2A的上下文中被描述。在所图示的示例中,人工智能调度器206包括作业服务子***230、资源管理器子***232、人工智能或机器学习模型调整器子***234、放置引擎子***236和剖析器(profiler)引擎子***238。各种子***230-238可以是本文中(例如,结合图1)描述的发现、自适应建模和放置子***的一部分。
图3图示了在计算机***中实现的示例工作负载编排***300的框图。如所图示,工作负载编排***300可以包括经由通信总线320连接到计算机可读存储介质370的处理器330、存储器340和网络接口350。处理器330可以执行或以其他方式处理存储在计算机可读存储介质370中的指令。存储在计算机可读存储介质370中的指令包括实现本文中描述的子***的操作模块380-386。
例如,发现子***模块380可以发现多个计算集群中的每个计算集群的计算资源。计算集群中的至少一些可以具有不同的计算资源。例如,不同计算集群之间的计算资源在量值上可以相差至少1.5倍(例如,相差2、10、100、1000倍等),并且被认为是异构计算集群。自适应建模子***模块382可以至少部分地基于每个相应工作负载被指派到的计算集群的计算资源来将超参数与关联于应用(诸如,人工智能或其他机器学习应用)的每个工作负载相关联。
放置子***模块384可以将每个工作负载指派到具有与每个相应工作负载的资源需求相对应的计算资源的计算集群。清单子***模块386可以标识应用的预定义工作负载的资源需求。替代地,清单子***模块386可以将诸如机器学习应用之类的应用划分成多个工作负载,其中每个工作负载具有对应于计算集群的计算资源的资源需求。
可以从所图示的特定示例来修改子***和模块的特定布置。因此,各种各样的计算***、电子设备、计算机可执行指令、网络配置等中的任一个可以被适配成实现本文中描述的概念。
图4图示了基于个体计算集群的所发现的计算资源和所估计的工作负载资源需求将诸如人工智能应用之类的应用的工作负载分配到异构计算集群的方法的流程图400。该***可以在405处标识具有异构计算资源的计算集群的网络中的每个计算集群的可用计算资源。该***可以标识应用的预定义工作负载的资源需求。替代地,在410处,该***可以将诸如机器学习应用之类的应用划分成多个工作负载,其中每个工作负载具有对应于计算集群的计算资源的资源需求。
在415处,该***可以将每个工作负载指派到计算集群中的一个。例如,可以基于每个工作负载的资源需求与每个工作负载被指派到的相应计算集群的可用计算资源之间的匹配来将每个工作负载指派到计算集群中的一个。在420处,该***可以根据每个相应计算集群的所标识的计算资源以及数据集来动态地定义每个工作负载的超参数。
上面描述了并且在各图中图示了本公开的特定示例。然而,要领会的是,可以对上面详述的特定配置和部件进行许多适配和修改。在一些情况下,没有详细示出或描述公知的特征、结构和/或操作。此外,所描述的特征、结构或操作可以以任何合适的方式被组合。还要领会的是,如一般描述的以及如结合本文中的各图描述的示例的部件可以以各种各样不同的配置来布置和设计。因此,设想了示例的所有可行的排列和组合。此外,要领会的是,可以对上面描述的示例的细节进行改变,而不脱离其基本原理。
在上面的描述中,出于简化本公开的目的,有时将各种特征聚集在单个示例、图或其描述中。然而,这个公开方法不要被解释为反映了如下意图:即,现在提出或未来提出的任何权利要求要求比那个权利要求中明确记载的特征更多的特征。更确切地说,要领会的是,发明的方面在于比任何单个前述公开示例的所有特征更少特征的组合。权利要求在此明确被并入到本详细描述中,其中每个权利要求独立地作为单独的示例。本公开包括独立权利要求及其从属权利要求的所有排列和组合。
Claims (15)
1.一种工作负载编排***,包括:
发现子***,用于标识多个计算集群中的每个计算集群的计算资源,其中所述计算集群具有异构计算资源;
清单子***,用于标识与应用和数据集相关联的多个工作负载中的每个工作负载的资源需求;
放置子***,用于基于(i)每个相应工作负载的所标识的资源需求和(ii)每个计算集群的所标识的计算资源的匹配来将每个工作负载指派到所述计算集群中的一个;以及
自适应建模子***,用于根据每个相应工作负载被指派到的计算集群的所标识的计算资源以及所述数据集来定义每个工作负载的超参数。
2.根据权利要求1所述的***,其中所述清单子***用于标识所述工作负载中的两个工作负载的同地性约束和策略,以及
其中所述放置子***将具有同地性约束的两个工作负载指派到相同的计算集群。
3.根据权利要求1所述的***,其中所述清单子***用于标识所述工作负载中的两个工作负载的亲和性约束,以及
其中所述放置子***将具有亲和性约束的两个工作负载指派到相同的计算集群。
4.根据权利要求1所述的***,其中由所述发现子***标识的每个计算集群的计算资源包括中央处理单元(CPU)资源、图形处理单元(GPU)资源、易失性存储器资源、网络带宽和持久性存储资源中的至少一个。
5.根据权利要求1所述的***,其中由所述清单子***标识的每个工作负载的资源需求包括反亲和性约束、局部性约束、通信开销需求、中央处理单元(CPU)需求、图形处理单元(GPU)需求、易失性存储器需求、网络带宽需求和持久性存储需求中的至少一个。
6.根据权利要求1所述的***,其中由所述发现子***标识的计算资源包括总计算资源和可用计算资源,以及
其中所述放置子***基于所述可用计算资源来指派所述工作负载。
7.根据权利要求1所述的***,其中由所述自适应建模子***定义的所述超参数包括批大小、时期、学习速度中的至少一个。
8.根据权利要求1所述的***,其中所述应用包括机器学习应用和人工智能应用中的一个的至少部分。
9.根据权利要求1所述的***,其中所述清单子***基于所述多个计算集群中的每个计算集群的所标识的计算资源将所述应用划分成所述多个工作负载。
10.一种方法,包括:
标识具有异构计算资源的多个计算集群中的每个计算集群的可用计算资源;
至少部分地基于所述计算集群中的至少一些的所标识的计算资源来将应用划分成多个工作负载,其中每个工作负载具有资源需求;
基于(i)每个相应工作负载的资源需求和(ii)每个计算集群的计算资源的匹配来将每个工作负载指派到所述计算集群中的一个;以及
根据相关联的数据集以及每个相应工作负载被指派到的计算集群的所标识的计算资源来定义每个工作负载的超参数,使得所述工作负载中的至少两个具有不同的超参数。
11.根据权利要求10所述的方法,其中每个计算集群的计算资源和每个工作负载的资源需求是就中央处理单元(CPU)资源、图形处理单元(GPU)资源、易失性存储器资源、网络通信能力和持久性存储资源中的至少一个而言来定义的。
12.根据权利要求10所述的方法,其中由所述自适应建模子***定义的所述超参数包括批大小、时期、学习速度中的至少一个。
13.根据权利要求10所述的方法,进一步包括:
标识所述计算集群中的一个的可用计算资源中的改变;以及
修改被指派到在其中标识了可用计算资源中的改变的计算集群的工作负载的超参数。
14.一种其上具有存储的指令的非暂时性计算机可读介质,所述指令在由计算设备的处理器执行时使得所述计算设备:
发现多个计算集群中的每个计算集群的计算资源,其中所述计算集群中的至少两个具有在量值上相差至少两倍的计算资源;
将机器学习应用划分成多个工作负载,其中每个工作负载具有由所述计算集群中的至少一个满足的资源需求;
将每个工作负载指派到具有与每个相应工作负载的资源需求相对应的计算资源的计算集群;以及
至少部分地基于每个相应工作负载被指派到的计算集群的计算资源和与每个相应工作负载相关联的数据集来将超参数与每个工作负载相关联。
15.根据权利要求14所述的非暂时性计算机可读介质,其中所述机器学习应用是人工智能应用的一部分。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2019/068121 WO2021126272A1 (en) | 2019-12-20 | 2019-12-20 | Machine learning workload orchestration in heterogeneous clusters |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114787830A true CN114787830A (zh) | 2022-07-22 |
Family
ID=76477763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980103157.8A Pending CN114787830A (zh) | 2019-12-20 | 2019-12-20 | 异构集群中的机器学习工作负载编排 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230012487A1 (zh) |
CN (1) | CN114787830A (zh) |
TW (1) | TWI763156B (zh) |
WO (1) | WO2021126272A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11875256B2 (en) | 2020-07-09 | 2024-01-16 | International Business Machines Corporation | Dynamic computation in decentralized distributed deep learning training |
US11977986B2 (en) * | 2020-07-09 | 2024-05-07 | International Business Machines Corporation | Dynamic computation rates for distributed deep learning |
US11886969B2 (en) | 2020-07-09 | 2024-01-30 | International Business Machines Corporation | Dynamic network bandwidth in distributed deep learning training |
US12020070B2 (en) * | 2021-04-02 | 2024-06-25 | Red Hat, Inc. | Managing computer workloads across distributed computing clusters |
CN117120979A (zh) * | 2021-05-07 | 2023-11-24 | 谷歌有限责任公司 | 用于机器学习工作负荷的异步分布式数据流 |
US20230074802A1 (en) * | 2021-09-09 | 2023-03-09 | Dell Products, L.P. | Orchestration of machine learning (ml) workloads |
CN114675965B (zh) * | 2022-03-10 | 2023-05-02 | 北京百度网讯科技有限公司 | 联邦学习方法、装置、设备和介质 |
CN115421930B (zh) * | 2022-11-07 | 2023-03-24 | 山东海量信息技术研究院 | 任务处理方法、***、装置、设备及计算机可读存储介质 |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1773539A (zh) * | 2004-11-12 | 2006-05-17 | 国际商业机器公司 | 用计算中心管理一个或多个计算资源的***和方法 |
CN104243617A (zh) * | 2014-10-14 | 2014-12-24 | 中国科学院信息工程研究所 | 一种异构集群中面向混合负载的任务调度方法及*** |
CN104317658A (zh) * | 2014-10-17 | 2015-01-28 | 华中科技大学 | 一种基于MapReduce的负载自适应任务调度方法 |
CN105159769A (zh) * | 2015-09-11 | 2015-12-16 | 国电南瑞科技股份有限公司 | 一种适用于计算能力异构集群的分布式作业调度方法 |
US20150379072A1 (en) * | 2014-06-30 | 2015-12-31 | Amazon Technologies, Inc. | Input processing for machine learning |
US20170024316A1 (en) * | 2015-07-23 | 2017-01-26 | Qualcomm Incorporated | Systems and methods for scheduling tasks in a heterogeneous processor cluster architecture using cache demand monitoring |
US20170068555A1 (en) * | 2015-09-04 | 2017-03-09 | International Business Machines Corporation | Operation-specific virtual machine placement constraints |
CN107018184A (zh) * | 2017-03-28 | 2017-08-04 | 华中科技大学 | 分布式深度神经网络集群分组同步优化方法及*** |
CN107766148A (zh) * | 2017-08-31 | 2018-03-06 | 北京百度网讯科技有限公司 | 一种异构集群及任务处理方法和装置 |
US20180165785A1 (en) * | 2016-12-12 | 2018-06-14 | Amazon Technologies, Inc. | Capacity reservation for virtualized graphics processing |
CN108304250A (zh) * | 2018-03-05 | 2018-07-20 | 北京百度网讯科技有限公司 | 用于确定运行机器学习任务的节点的方法和装置 |
CN109271015A (zh) * | 2018-10-10 | 2019-01-25 | 杭州电子科技大学 | 一种降低大规模分布式机器学习***能耗的方法 |
US20190220703A1 (en) * | 2019-03-28 | 2019-07-18 | Intel Corporation | Technologies for distributing iterative computations in heterogeneous computing environments |
US20190228303A1 (en) * | 2018-01-25 | 2019-07-25 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method and apparatus for scheduling resource for deep learning framework |
US10447806B1 (en) * | 2017-06-09 | 2019-10-15 | Nutanix, Inc. | Workload scheduling across heterogeneous resource environments |
US20190318240A1 (en) * | 2018-04-16 | 2019-10-17 | Kazuhm, Inc. | Training machine learning models in distributed computing systems |
CN110471758A (zh) * | 2019-07-02 | 2019-11-19 | 中国电力科学研究院有限公司 | 一种网络分析应用多用户并发作业调度***及方法 |
CN110489223A (zh) * | 2019-08-26 | 2019-11-22 | 北京邮电大学 | 一种异构集群中任务调度方法、装置及电子设备 |
CN110532078A (zh) * | 2019-08-29 | 2019-12-03 | 中国科学院软件研究所 | 一种边缘计算调度优化方法及*** |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9286044B2 (en) * | 2014-06-27 | 2016-03-15 | International Business Machines Corporation | Hybrid parallelization strategies for machine learning programs on top of MapReduce |
KR20190093568A (ko) * | 2016-12-31 | 2019-08-09 | 인텔 코포레이션 | 이종 컴퓨팅을 위한 시스템들, 방법들, 및 장치들 |
US10043232B1 (en) * | 2017-04-09 | 2018-08-07 | Intel Corporation | Compute cluster preemption within a general-purpose graphics processing unit |
US10474600B2 (en) * | 2017-09-14 | 2019-11-12 | Samsung Electronics Co., Ltd. | Heterogeneous accelerator for highly efficient learning systems |
-
2019
- 2019-12-20 WO PCT/US2019/068121 patent/WO2021126272A1/en active Application Filing
- 2019-12-20 US US17/783,311 patent/US20230012487A1/en active Pending
- 2019-12-20 CN CN201980103157.8A patent/CN114787830A/zh active Pending
-
2020
- 2020-11-27 TW TW109141875A patent/TWI763156B/zh active
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1773539A (zh) * | 2004-11-12 | 2006-05-17 | 国际商业机器公司 | 用计算中心管理一个或多个计算资源的***和方法 |
US20150379072A1 (en) * | 2014-06-30 | 2015-12-31 | Amazon Technologies, Inc. | Input processing for machine learning |
CN104243617A (zh) * | 2014-10-14 | 2014-12-24 | 中国科学院信息工程研究所 | 一种异构集群中面向混合负载的任务调度方法及*** |
CN104317658A (zh) * | 2014-10-17 | 2015-01-28 | 华中科技大学 | 一种基于MapReduce的负载自适应任务调度方法 |
US20170024316A1 (en) * | 2015-07-23 | 2017-01-26 | Qualcomm Incorporated | Systems and methods for scheduling tasks in a heterogeneous processor cluster architecture using cache demand monitoring |
US20170068555A1 (en) * | 2015-09-04 | 2017-03-09 | International Business Machines Corporation | Operation-specific virtual machine placement constraints |
CN105159769A (zh) * | 2015-09-11 | 2015-12-16 | 国电南瑞科技股份有限公司 | 一种适用于计算能力异构集群的分布式作业调度方法 |
US20180165785A1 (en) * | 2016-12-12 | 2018-06-14 | Amazon Technologies, Inc. | Capacity reservation for virtualized graphics processing |
CN107018184A (zh) * | 2017-03-28 | 2017-08-04 | 华中科技大学 | 分布式深度神经网络集群分组同步优化方法及*** |
US10447806B1 (en) * | 2017-06-09 | 2019-10-15 | Nutanix, Inc. | Workload scheduling across heterogeneous resource environments |
CN107766148A (zh) * | 2017-08-31 | 2018-03-06 | 北京百度网讯科技有限公司 | 一种异构集群及任务处理方法和装置 |
US20190228303A1 (en) * | 2018-01-25 | 2019-07-25 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method and apparatus for scheduling resource for deep learning framework |
CN108304250A (zh) * | 2018-03-05 | 2018-07-20 | 北京百度网讯科技有限公司 | 用于确定运行机器学习任务的节点的方法和装置 |
US20190318240A1 (en) * | 2018-04-16 | 2019-10-17 | Kazuhm, Inc. | Training machine learning models in distributed computing systems |
CN109271015A (zh) * | 2018-10-10 | 2019-01-25 | 杭州电子科技大学 | 一种降低大规模分布式机器学习***能耗的方法 |
US20190220703A1 (en) * | 2019-03-28 | 2019-07-18 | Intel Corporation | Technologies for distributing iterative computations in heterogeneous computing environments |
CN110471758A (zh) * | 2019-07-02 | 2019-11-19 | 中国电力科学研究院有限公司 | 一种网络分析应用多用户并发作业调度***及方法 |
CN110489223A (zh) * | 2019-08-26 | 2019-11-22 | 北京邮电大学 | 一种异构集群中任务调度方法、装置及电子设备 |
CN110532078A (zh) * | 2019-08-29 | 2019-12-03 | 中国科学院软件研究所 | 一种边缘计算调度优化方法及*** |
Non-Patent Citations (1)
Title |
---|
潘佳艺;王芳;杨静怡;谭支鹏;: "异构Hadoop集群下的负载自适应反馈调度策略", 计算机工程与科学, no. 03, 15 March 2017 (2017-03-15), pages 413 - 423 * |
Also Published As
Publication number | Publication date |
---|---|
TWI763156B (zh) | 2022-05-01 |
TW202127249A (zh) | 2021-07-16 |
WO2021126272A1 (en) | 2021-06-24 |
US20230012487A1 (en) | 2023-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114787830A (zh) | 异构集群中的机器学习工作负载编排 | |
WO2020181896A1 (zh) | 一种多智能体强化学习调度方法、***及电子设备 | |
CN107045456B (zh) | 一种资源分配方法及资源管理器 | |
CN107038069B (zh) | Hadoop平台下动态标签匹配DLMS调度方法 | |
EP2728473B1 (en) | Systems and methods for instruction entity allocation and scheduling on multi-processors | |
CN108337109B (zh) | 一种资源分配方法及装置和资源分配*** | |
US20200174844A1 (en) | System and method for resource partitioning in distributed computing | |
CN114741207B (zh) | 一种基于多维度组合并行的gpu资源调度方法和*** | |
CN109783225B (zh) | 一种多租户大数据平台的租户优先级管理方法及*** | |
Sun et al. | Towards distributed machine learning in shared clusters: A dynamically-partitioned approach | |
CN110221920B (zh) | 部署方法、装置、存储介质及*** | |
US20230145437A1 (en) | Execution prediction for compute clusters with multiple cores | |
CN113946431B (zh) | 一种资源调度方法、***、介质及计算设备 | |
US10936377B2 (en) | Distributed database system and resource management method for distributed database system | |
CN115934362B (zh) | 面向深度学习的服务器无感知计算集群调度方法及产品 | |
Razavi et al. | FA2: Fast, accurate autoscaling for serving deep learning inference with SLA guarantees | |
US20210390405A1 (en) | Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof | |
CN110780991A (zh) | 一种基于优先级的深度学习任务调度方法及装置 | |
Chiang et al. | DynamoML: Dynamic Resource Management Operators for Machine Learning Workloads. | |
CN111522637B (zh) | 一种基于成本效益的storm任务调度方法 | |
Thiyyakat et al. | Megha: Decentralized federated scheduling for data center workloads | |
Li et al. | An adaptive task scheduling method for networked UAV combat cloud system based on virtual machine and task migration | |
CN107529696B (zh) | 一种存储资源访问控制方法及装置 | |
Nzanywayingoma et al. | Task scheduling and virtual resource optimising in Hadoop YARN-based cloud computing environment | |
CN114764371A (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 |