TWI763156B - 異質叢集中之機器學習工作負載編排技術 - Google Patents
異質叢集中之機器學習工作負載編排技術 Download PDFInfo
- Publication number
- TWI763156B TWI763156B TW109141875A TW109141875A TWI763156B TW I763156 B TWI763156 B TW I763156B TW 109141875 A TW109141875 A TW 109141875A TW 109141875 A TW109141875 A TW 109141875A TW I763156 B TWI763156 B TW I763156B
- Authority
- TW
- Taiwan
- Prior art keywords
- computing
- workload
- resources
- subsystem
- computing resources
- Prior art date
Links
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
本發明係有關於異質叢集中之機器學習工作負載編排技術。
機器學習工作負載可分散在多個運算節點之間。一些工作負載可彼此獨立並行處理,而其他工作負載可序列式處理。大規模機器學習應用程式可分散於許多運算節點當中。
對於機器學習應用程式之工作負載分配的資料平行性、模型平行性及管線平行性方法,大體上假定具有同質運算資源之專用運算節點可輕易取得。因此,恆定超參數與給定機器學習應用程式之所有經分散之工作負載相關聯。
於本發明的一個樣態中,揭示一種工作負載編排系統,其包含:一探索子系統,其用以識別多個運算叢集之每個運算叢集的運算資源,其中該等運算叢集具有異質運算資源;一清單子系統,其用以識別針對多個工作負載之每個工作負載的資源需求,且該等工作負載係與一應用程式及資料集相關聯;一置放子系統,其用以基於下列(i)與(ii)之匹配來將每個工作負載分派給該等運算叢集中之一者:(i)每個各別工作負載之該等經識別之資源需求,及(ii)每個運算叢集之該等經識別之運算資源;以及一適應性模型化子系統,其用以根據每個各別工作負載所分派之該運算叢集之該等經識別之運算資源與該資料集,來定義每個工作負載之超參數。
大規模資料處理及複雜應用程式之執行可藉由將資料處理任務或複雜應用程式劃分成一組離散工作負載來執行,其中一些離散工作負載可並行執行或處理。在編排各種工作流程之並行或序列式執行上,因特定工作流程可下決定,故可由多個運算節點或運算節點之叢集(運算叢集)執行。每個運算節點可依據可用的運算資源來界定。類似地,一運算叢集可依據多個運算節點之集體可用運算資源來界定。在本文中使用時,運算叢集包括至少一個運算節點而可包括多個運算節點。在一雲端運算環境中,各種運算節點可被選擇為具有同質或接近同質的運算資源。有些任務(諸如大規模資料處理),可基於離散運算節點及可用運算資源之數目而分成任何數目之用於平行處理的工作流程,且該工作流程越變越小且越簡單。
相比之下,一些複雜的應用程式(諸如人工智慧應用程式及機器學習應用程式)可被分成一有限數量之工作負載以供分散式運算叢集執行。例如,與一機器學習應用程式內相關聯之一些工作負載無法在不損及工作負載功能下進一步細分。在本文中使用時,工作負載一詞包括特定的運算工作或任務、及一相關聯的或基礎的資料集。每個運算工作或任務可包括用於要對相關聯資料集採取之動作的指令。
一編排及/或排程系統係編排每個工作負載由不同運算叢集執行的順序,並在進行學習時控制已運算之資料(諸如經學習或訓練之參數)在各種工作負載之間的的交換。在一雲端運算環境中,且其運算叢集可具有同質或接近同質的運算資源,則假設每個工作流程是以相同速率學習或以其他方式進行。因此,運算節點可同步地溝通及交換機器學習參數,而無顯著的資源碎片化或任一運算節點未充分利用的情況。
有效地管理與人工智慧及機器學習應用程式相關聯的工作負載益趨重要。可利用多個GPU或機器學習加速器(MLA)作為部分的叢集或(例如在雲端的)資料中心,在專用的高端伺服器或工作站中訓練人工智慧及機器學習模型。該等模型稍後部署在雲端或在邊緣端以用於推論,且該等模型產生見解以用於較佳的資料驅動式決策。
例如,一些人工智慧或其他機器學習模型是使用分組排程,在分組排程中該應用程式之所有工作負載係經排程以供同時執行,該同時執行係由一組分散式運算叢集進行。由一個運算節點執行之工作負載的一些部分可依賴抑或是利用由執行其他工作負載之其他運算叢集所提供的機器學習參數。在同質運算叢集的一網路中,每個運算節點可同時作好準備以供例如彼此交換機器學習參數。
然而,在許多情況下,分組排程會導致共享叢集中之資源碎片化及/或低利用率。有鑑於圖形處理單元(GPU)通常經模型化為無法以精細粒度共享之單塊資源,尤復如是。此外,諸如基於隨機梯度下降(SGD)的模型等一些人工智慧或其他機器學習模型,是利用在運算叢集之間及/或在個別運算裝置之間交換參數。
在一些情況下,可能會希望使用就地部署運算裝置及/或邊緣裝置來執行人工智慧或其他機器學習應用程式。不同於雲端運算環境,就地部署運算裝置及邊緣裝置可各自具有大相逕庭的運算資源。因此,一雲端運算環境能被模型化為具有同質運算資源之複數個分散式運算叢集;而就地部署及/或邊緣裝置網路則更準確地描述為具有異質運算資源之複數個分散式運算叢集。
運算資源之範例包括但不限於中央處理單元(CPU)資源、GPU資源、依電性記憶體資源、網路通訊能力、持久儲存器資源、及類似者。運算資源相等或相差少於1.5倍的運算叢集可描述為同質,而運算資源相差大於1.5者可描述為異質。例如,同質或異質運算資源的運算資源可依據一或多個下列項目之函數來量化或比較:可用之依電性記憶體、可用之持久儲存器、處理器時鐘速度、每秒浮點運算數(「FLOPS」)、運算核心或處理器的數目、記憶體速度、網路頻寬、及類似者。在一異質運算網路中的機器學習工作負載之分派可能導致一些運算叢集未充分利用及/或在運算叢集之間學習參數未同步交換。
本發明所描述的系統及方法提供用於異質運算叢集的機器學習模型感知及資源感知工作負載排程,諸如在許多就地部署運算裝置及邊緣裝置之網路中出現者。該系統可將工作負載與運算叢集匹配,其係基於與每個各別工作負載相關聯的運算需求、以及每個各別運算叢集之可用運算資源來匹配。為了就每個運算叢集之不同處理速度進行補償,可基於工作負載所分派的運算叢集之運算資源,來定義或調整與每個工作負載相關聯的超參數。
作為一簡單範例,若第一運算叢集具有兩個GPU且被分派一具有6,000之批次大小超參數的工作負載,則具有四個相同GPU之第二運算叢集可被分派一具有12,000之批次大小超參數的類似工作負載。更普遍地,可基於每個各別工作負載所分派的運算叢集之運算資源、及與每個各別工作負載相關聯之資料集,來個別定義及/或調整機器學習模型中之每個工作負載的批次大小、遍歷數(epoch)及/或學習速率超參數。
在各種範例中,可選擇用於被分派至各運算叢集之工作負載的超參數,以便改良總體學習結果、減少訓練時間、將架空通訊、同步通訊及機器學習參數交換最小化、及/或將運算資源利用率或效率最大化。在一些範例中,該系統可執行經定義為無狀態或有狀態之工作負載,以促進遷移及重組。
在許多情況下,就地部署運算裝置及/或邊緣裝置之網路不僅具有異質運算資源,該等網路亦可被若干使用者及/或組織共用。舉例而言,一異質運算環境可包括部署於相同子網路中之工作站/伺服器的集區。作為另一範例,一異質運算環境可包括透過一內部網路或經由網際網路連接之多個邊緣裝置,諸如物聯網(IoT)裝置、閘道、自駕車等。
目前所描述的用於在異質運算叢集之網路中對工作流程進行模型感知及資源感知排程的系統及方法,可應用程式或使用在修改各式各樣之用於叢集管理、機器學習、深度學習、電腦視覺及類似者的現有技術及方法。舉例而言,可修改在Apache MesosTM
、KubernetesTM
、階層式主導資源公平(DRF)及階層式最大最小公平性架構中闡述的基本叢集管理方法,以併入本文所揭示之概念中。可將本文所述的概念增添至現有叢集管理架構中。因此,可擴增一叢集管理架構之現有功能性,以允許基於各個不同運算叢集之經識別的可用運算資源及資料集來動態分派超參數至工作負載。
在一個範例中,一工作負載編排系統包括一探索子系統,其用以識別在一異質運算叢集網路中之每個運算叢集的特定運算資源。一清單子系統接收或產生一清單,該清單描述與一應用程式(諸如一人工智慧應用程式或其他機器學習應用程式)相關聯之每個工作負載的資源需求。該清單可例如指定一特定工作負載所需的運算資源(例如,依據CPU核心的數量、GPU資源、記憶體資源、策略等)。一置放子系統可藉由匹配或映射每個工作負載的資源需求及每個運算叢集的運算資源,來將每個工作負載分派給該等運算叢集中之一者。該置放子系統可在進一步考慮親和性、反親和性、及/或共區域性約束和策略的情況下,分派各工作負載。一適應性模型化子系統可根據每個各別工作負載所分派的運算叢集之經識別的運算資源與資料集,來動態地定義(例如建立、設定、或修改)用於各工作負載的超參數。
各種模組、系統及子系統在本文中描述為實施功能及/或執行各種動作。在許多範例中,模組、系統、及子系統可被分割成為子模組、子系統、甚或作為子系統之子部份。模組、系統及子系統可在硬體中被實施,或是作為處理器可執行指令儲存於例如非暫時性電腦可讀媒體。一些範例可實作成為一電腦程式產品,該產品包括其上儲存有指令的非暫時性電腦及/或機器可讀媒體,該等指令可用以程式化一電腦(或另一電子裝置)以執行本文所描述之程序。
可參考圖式進一步理解本揭露內容之範例。可輕易瞭解的是,如本文一般性描述及繪示於圖式中的所揭範例之組件,可被配置及設計成各式各樣不同的形態。因此,本揭露內容之系統及方法範例之以下詳細說明並不意欲限制本揭露內容所主張之範疇,而僅為本揭露內容之可能範例的代表。另外,除非另有指定,否則一方法之要素並不必然需要以任何特定次序執行或甚至序列式地執行,亦不需要僅執行一次。在一些情況下,習知特徵、結構或操作並未示出或詳細描述。
圖1繪示一工作負載編排系統150之示例方塊圖100,其用以在異質運算叢集130之間編排機器學習工作負載。一應用程式服務105(諸如人工智慧應用程式或其他機器學習應用程式)可與工作負載編排系統150通訊以供分散式執行。該工作負載編排系統150包括一探索子系統152、一適應性模型化子系統154、一置放子系統156、以及一清單子系統158。
探索子系統152識別或者剖繪(profile)各運算叢集A、B、C及Z(131、132、133及139)中之個別運算資源,且該等運算叢集係部分之該異質運算叢集130。異質運算叢集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可將如清單子系統158中所定義之應用程式服務105的工作負載與運算叢集131至139匹配,其係藉由將每個各別工作負載之資源需求匹配每個各別運算叢集131至139之經識別的運算資源來進行。
在一些範例中,置放子系統156實施資源感知工作負載排程,其中資源需求包含對應於運算叢集131至139之經識別運算資源(例如,CPU資源、GPU資源、UTC、依電性記憶體資源、網路頻寬、網路潛時特性、持久儲存器資源或類似者)的量度(metrics)。在其他範例中,置放系統156另外實施模型感知工作負載排程,其中工作負載對運算叢集131至139之分配係進一步基於工作負載之共區域性、反親和性及/或親和性約束及策略。
在一些範例中,置放子系統156可基於可用運算資源來放鬆或忽略區域性約束。如本文所述,所致之碎片化可透過遷移和重組來解決。 亦即,雖然置放子系統156可實施資源感知及模型感知工作負載分派,但有時可基於該可用運算資源之極限來放鬆甚或忽略模型感知約束。在部分或完全執行以滿足親和性及/或共區域性約束之後,工作負載編排系統150可將工作負載自一運算叢集131至139遷移至另一運算叢集131至139。該工作負載編排系統150可實施一檢查點方法,其允許機器學習模型的復原以避免例如從頭開始訓練。
一適應性模型化子系統154係根據每個工作負載所分派之運算叢集131至139之經識別運算資源來設定、調整、或者定義每個工作負載之超參數。運算叢集A 131所分派到的工作負載之超參數可不同於運算叢集B 132所分派到的工作負載之超參數,因為運算叢集A及B(分別為131及132)之運算資源不同。例如,相較於運算叢集B-Z(132-139)所分派到的工作負載,不同的批次大小、遍歷次數、學習速率及/或其他超參數可指派給運算叢集A 131所分派到的工作負載。該系統可藉由下述而降低落後者問題:動態地修改被分派給各種異質運算叢集131至139之工作負載的超參數,以使工作負載的執行同步化或更密切地同步化。
圖2A繪示經由工作負載編排系統200之人工智慧應用程式204叢集管理的具體範例,該編排系統包含一清單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可至少部分基於網路通訊成本評估來將工作負載分派給在就地部署運算裝置212之網路中的運算裝置,且該網路通訊成本評估係與分派工作負載給分散式運算裝置相關聯,而該分散式運算裝置具有增進之GPU資源及/或其他加速器資源的計算效益。
在一些範例中,工作負載編排系統200可實現搶佔策略以施行資源共享(例如共享檔案系統216),該搶佔策略係用於就地部署運算裝置212之網路中的運算裝置之運算資源。可設定搶佔策略以避免使用任何一個運算裝置之全容量及/或減輕隊頭阻塞問題。在一些範例中,若較高優先級工作在較低優先級工作正在執行時到達訊息佇列208,則系統200可釋放就地部署運算裝置212之網路中之運算裝置的運算資源以集中於該較高優先級工作。舉例而言,當執行較高優先級工作時,可暫時中止較低優先級工作。
圖2B繪示圖2A之人工智慧排程器206之示例子系統230至238的方塊圖。以上在圖2A的情境中描述了清單202、叢集管理器210、就地部署運算裝置212的網路、以及登錄器214。在所示範例中,該人工智慧排程器206包括一工作服務子系統230、一資源管理器子系統232、一人工智慧或機器學習模型調整器子系統234、一置放引擎子系統236及一剖繪器引擎子系統238。各種子系統230至238可為本文中(例如結合圖1)描述之探索、適應性模型化及置放子系統的一部分。
圖3繪示在一電腦系統實施之一示例工作負載編排系統300的方塊圖。如圖所示,一工作負載編排系統300可包括一處理器330、記憶體340、及經由一通訊匯流排320連接至一電腦可讀儲存媒體370的一網路介面350。處理器330可執行或者處理儲存於電腦可讀儲存媒體370中之指令。儲存在電腦可讀儲存媒體370中之指令包括用以實施本文所述子系統的操作模組380-386。
例如,探索子系統模組380可探索多個運算叢集中之每個運算叢集的運算資源。至少一些運算叢集可具有不同的運算資源。舉例而言,不同運算叢集之間的運算資源在量值上可相差至少1.5倍(例如2、10、100、1000倍等)並被視為異質運算叢集。一種適應性模型化子系統模組382可至少部分地基於每個各別工作負載所分派的運算叢集之運算資源,來使超參數與每個工作負載相關聯,該工作負載係與一應用程式(諸如人工智慧或其他機器學習應用程式)相關聯。
一置放子系統模組384可將每個工作負載分派給一運算叢集,該運算叢集具有與每個各別工作負載之資源需求相對應的運算資源。清單子系統模組386可識別一應用程式之預定義工作負載的資源需求。可替代地,該清單子系統386可將一應用程式(諸如一機器學習應用程式)分成多個工作負載,其每個工作負載具有對應於運算叢集之運算資源的資源需求。
可從所示具體範例修改子系統及模組之特定配置。因此,各式各樣的運算系統、電子設備、電腦可執行指令、網路組態及類似者中之任一者可適於以實施本文中所描述之概念。
圖4繪示將一應用程式(諸如人工智慧應用程式)之工作負載分配給異質運算叢集之方法的流程圖400,其係基於經探索之個別運算叢集之運算資源、及經估算之工作負載資源需求來分配。在405處,系統可識別具有異質運算資源之運算叢集之網路中的每個運算叢集之可用運算資源。該系統可識別一應用程式之預定義工作負載的資源需求。替代性地,在410處,該系統可將一應用程式(諸如機器學習應用程式)分成多個工作負載,其每個工作負載具有對應於運算叢集之運算資源的資源需求。
在415處,該系統可將每個工作負載分派給該等運算叢集中之一者。例如,每個工作負載可基於下述兩者之間的匹配而被分派給該等運算叢集中之一者:每個工作負載之資源需求;及每個工作負載要被分派之每個各別運算叢集的可用運算資源。在420處,該系統可根據每個各別運算叢集之經識別運算資源及該資料集來動態地定義用於每個工作負載之超參數。
本揭示內容之具體範例係說明如上並示於諸圖中。然而,應瞭解,可對上文詳述之特定組態及組件進行許多調整及修改。在一些情況下,習知特徵、結構及/或操作並未示出或詳細描述。此外,所描述之特徵、結構、或操作可用任何適當方式組合。亦應瞭解,如本文一般性描述及搭配圖式描述之該等範例的組件可被配置及設計成各式各樣不同的形態。因此,該等範例之所有可行排列組合均被涵蓋。此外,應瞭解,可在不逸脫其基礎原理下,對上述範例之細節進行改變。
在上面之說明中,為令揭示簡明,有時各種特徵會群集於單一範例、圖形、或其說明中。然而,不應將本揭示內容之方法解釋為反映以下意圖:現存或未來存在之任何請求項需要比在該請求項明確陳述者更多的特徵。實情為,應瞭解本發明態樣在於少於前文所揭任何單一範例之所有特徵的組合。申請專利範圍在此明確併入[實施方式]中,其中每個請求項自身作為單獨範例。本揭示內容包括該等獨立請求項與其附屬請求項之所有排列組合。
100:方塊圖
105:應用程式服務
130:異質運算叢集
131:運算叢集A
132:運算叢集B
133:運算叢集C
139:運算叢集Z
150,200,300:工作負載編排系統
152:探索子系統
154:適應性模型化子系統
156:置放子系統
158:清單子系統
201,204:人工智慧應用程式
202:清單
206:人工智慧排程器
208:訊息佇列
210:叢集管理器
212:就地部署運算裝置
214:登錄器
216:共享檔案系統
230:工作服務子系統
232:資源管理器子系統
234:人工智慧或機器學習模型調整器子系統
236:置放引擎子系統
238:剖繪器引擎子系統
320:通訊匯流排
330:處理器
340:記憶體
350:網路介面
370:電腦可讀儲存媒體
380:探索子系統模組
382:適應性模型化子系統模組
384:置放子系統模組
386:清單子系統模組
400:流程圖
405,410,415,420:方塊
本文所撰寫之揭示內容係描述非限制性及非窮盡性的示例性範例。並參照下述圖式所描繪之某些此等例示性範例。
圖1繪示一工作負載編排系統的一示例方塊圖,其用以在異質運算叢集之間編排機器學習工作負載。
圖2A繪示一人工智慧應用程式之叢集管理的具體範例,其係經由在一就地部署運算裝置的異質網路中的工作負載編排系統進行。
圖2B繪示圖2A之人工智慧排程器之示例子系統的方塊圖。
圖3繪示在一電腦系統實施之示例工作負載編排系統的方塊圖。
圖4繪示將機器學習應用程式之工作負載分配至異質運算叢集之方法的流程圖,其係基於經開發之資源及經評估之資源需求進行。
100:方塊圖
105:應用程式服務
130:異質運算叢集
131:運算叢集A
132:運算叢集B
133:運算叢集C
139:運算叢集Z
150:工作負載編排系統
152:探索子系統
154:適應性模型化子系統
156:置放子系統
158:清單子系統
Claims (15)
- 一種工作負載編排系統,其包含:一探索子系統,其用以識別多個運算叢集之每個運算叢集的運算資源,其中該等運算叢集具有異質運算資源;一清單子系統,其用以識別針對多個工作負載之每個工作負載的資源需求,該等工作負載係與一應用程式及資料集相關聯;一置放子系統,其用以基於下列(i)與(ii)之匹配來將每個工作負載分派給該等運算叢集中之一者:(i)每個各別工作負載之該等經識別之資源需求,及(ii)每個運算叢集之該等經識別之運算資源;以及一適應性模型化子系統,其用以根據分派有每個各別工作負載之該運算叢集之該等經識別之運算資源與該資料集,來定義每個工作負載之超參數。
- 如請求項1之系統,其中該清單子系統係用以識別該等工作負載中之兩者的一共區域性約束和策略,並且其中該置放子系統將該等具有該共區域性約束之兩個工作負載分派給相同的運算叢集。
- 如請求項1之系統,其中該清單子系統係用以識別該等工作負載中之兩者的一親和性約束,且其中該置放子系統將該等具有該親和性約束之兩個工作負載分派給相同的運算叢集。
- 如請求項1之系統,其中由該探索子系統所識別之每個運算叢集之該等運算資源包含下列至少一者:中央處理單元(CPU)資源、圖形處理單元(GPU)資源、依電性記憶體資源、網路頻寬、及持久儲存器資源。
- 如請求項1之系統,其中由該清單子系統所識別之每個工作負 載的該等資源需求包含下列至少一者:一反親和性約束、一區域性約束、通信間接費用需求、中央處理單元(CPU)需求、圖形處理單元(GPU)需求、依電性記憶體需求、網路頻寬需求、及持久儲存器需求。
- 如請求項1之系統,其中由該探索子系統所識別之該等運算資源包含總運算資源及可用運算資源,且其中該置放子系統係基於該等可用運算資源來分派該等工作負載。
- 如請求項1之系統,其中由該適應性模型化子系統所界定之該等超參數包含下列至少一者:批次大小、遍歷數、學習速率。
- 如請求項1之系統,其中該應用程式包含下列之一者的至少一部分:一機器學習應用程式及一人工智慧應用程式。
- 如請求項1之系統,其中該清單子系統係基於該等多個運算叢集中每個運算叢集的該等經識別之運算資源而將該應用程式分為該等多個工作負載。
- 一種將一應用程式之工作負載分配給異質運算叢集之方法,其包含下列步驟:識別具有異質運算資源之多個運算叢集中每個運算叢集的可用運算資源;至少部分地基於至少一些該等運算叢集的該等經識別之運算資源來將一應用程式分為多個工作負載,其每個工作負載具有資源需求;基於下列(i)與(ii)之匹配將每個工作負載分派給該等運算叢集中之一者:(i)每個各別工作負載之該等資源需求,及(ii)每個運算叢集之該等運算資源;以及根據一相關聯之資料集及分派有每個各別工作負載的該運算叢集之該等經識別之運算資源來定義用於每個工作負載之超參數,使得該等工作負載 中之至少兩者具有不同的超參數。
- 如請求項10之方法,其中每個運算叢集之該等運算資源及每個工作負載之該等資源需求係依據下列至少一者來定義:中央處理單元(CPU)資源、圖形處理單元(GPU)資源、依電性記憶體資源、網路通訊能力、以及持久儲存器資源。
- 如請求項10之方法,其中由該適應性模型化子系統所界定之該等超參數包含下列至少一者:批次大小、遍歷數、學習速率。
- 如請求項10之方法,其進一步包含下列步驟:識別該等運算叢集中之一者的可用運算資源變化;以及修改一工作負載之一超參數,該工作負載係經分派給已識別該可用運算資源變化之該運算叢集。
- 一種非暫時性電腦可讀媒體,其上儲存有指令,該等指令在由一運算裝置之一處理器執行時致使該運算裝置進行下列動作:探索多個運算叢集之每個運算叢集的運算資源,其中該等運算叢集中之至少兩者具有量值相差至少兩倍的運算資源;將一機器學習應用程式分成多個工作負載,其每個工作負載具有與該等運算叢集中之至少一者相符的資源需求;將每個工作負載分派給一運算叢集,該運算叢集具有對應於每個各別工作負載之該等資源需求的運算資源;以及至少部分地基於下述以將超參數與每個工作負載相關聯:分派有每個各別工作負載之該運算叢集之該等運算資源;及與每個各別工作負載相關聯之一資料集。
- 如請求項14之非暫時性電腦可讀媒體,其中該機器學習應用程式為一人工智慧應用程式的一部分。
Applications Claiming Priority (2)
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 |
WOPCT/US19/68121 | 2019-12-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202127249A TW202127249A (zh) | 2021-07-16 |
TWI763156B true TWI763156B (zh) | 2022-05-01 |
Family
ID=76477763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109141875A TWI763156B (zh) | 2019-12-20 | 2020-11-27 | 異質叢集中之機器學習工作負載編排技術 |
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 |
US11886969B2 (en) | 2020-07-09 | 2024-01-30 | International Business Machines Corporation | Dynamic network bandwidth in distributed deep learning training |
US11977986B2 (en) * | 2020-07-09 | 2024-05-07 | International Business Machines Corporation | Dynamic computation rates for distributed deep learning |
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 (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150379072A1 (en) * | 2014-06-30 | 2015-12-31 | Amazon Technologies, Inc. | Input processing for machine learning |
TW201826122A (zh) * | 2016-12-31 | 2018-07-16 | 美商英特爾股份有限公司 | 用於異質計算之系統,方法,及設備 |
TW201915724A (zh) * | 2017-09-14 | 2019-04-16 | 南韓商三星電子股份有限公司 | 異構計算環境的設備及系統 |
US20190378238A1 (en) * | 2017-04-09 | 2019-12-12 | Intel Corporation | Compute cluster preemption within a general-purpose graphics processing unit |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060117317A1 (en) * | 2004-11-12 | 2006-06-01 | International Business Machines Corporation | On-demand utility services utilizing yield management |
US9286044B2 (en) * | 2014-06-27 | 2016-03-15 | International Business Machines Corporation | Hybrid parallelization strategies for machine learning programs on top of MapReduce |
CN104243617B (zh) * | 2014-10-14 | 2017-10-27 | 中国科学院信息工程研究所 | 一种异构集群中面向混合负载的任务调度方法及*** |
CN104317658B (zh) * | 2014-10-17 | 2018-06-12 | 华中科技大学 | 一种基于MapReduce的负载自适应任务调度方法 |
US9626295B2 (en) * | 2015-07-23 | 2017-04-18 | 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 |
CN105159769B (zh) * | 2015-09-11 | 2018-06-29 | 国电南瑞科技股份有限公司 | 一种适用于计算能力异构集群的分布式作业调度方法 |
US10373284B2 (en) * | 2016-12-12 | 2019-08-06 | Amazon Technologies, Inc. | Capacity reservation for virtualized graphics processing |
CN107018184B (zh) * | 2017-03-28 | 2019-08-30 | 华中科技大学 | 分布式深度神经网络集群分组同步优化方法及*** |
US10447806B1 (en) * | 2017-06-09 | 2019-10-15 | Nutanix, Inc. | Workload scheduling across heterogeneous resource environments |
CN107766148B (zh) * | 2017-08-31 | 2021-02-19 | 北京百度网讯科技有限公司 | 一种异构集群及任务处理方法和装置 |
CN108062246B (zh) * | 2018-01-25 | 2019-06-14 | 北京百度网讯科技有限公司 | 用于深度学习框架的资源调度方法和装置 |
CN108304250A (zh) * | 2018-03-05 | 2018-07-20 | 北京百度网讯科技有限公司 | 用于确定运行机器学习任务的节点的方法和装置 |
US20190317825A1 (en) * | 2018-04-16 | 2019-10-17 | Kazuhm, Inc. | System for managing deployment of distributed computing resources |
CN109271015B (zh) * | 2018-10-10 | 2020-07-24 | 杭州电子科技大学 | 一种降低大规模分布式机器学习***能耗的方法 |
US11423254B2 (en) * | 2019-03-28 | 2022-08-23 | Intel Corporation | Technologies for distributing iterative computations in heterogeneous computing environments |
CN110471758A (zh) * | 2019-07-02 | 2019-11-19 | 中国电力科学研究院有限公司 | 一种网络分析应用多用户并发作业调度***及方法 |
CN110489223B (zh) * | 2019-08-26 | 2022-03-29 | 北京邮电大学 | 一种异构集群中任务调度方法、装置及电子设备 |
CN110532078A (zh) * | 2019-08-29 | 2019-12-03 | 中国科学院软件研究所 | 一种边缘计算调度优化方法及*** |
-
2019
- 2019-12-20 CN CN201980103157.8A patent/CN114787830A/zh active Pending
- 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
-
2020
- 2020-11-27 TW TW109141875A patent/TWI763156B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150379072A1 (en) * | 2014-06-30 | 2015-12-31 | Amazon Technologies, Inc. | Input processing for machine learning |
TW201826122A (zh) * | 2016-12-31 | 2018-07-16 | 美商英特爾股份有限公司 | 用於異質計算之系統,方法,及設備 |
US20190378238A1 (en) * | 2017-04-09 | 2019-12-12 | Intel Corporation | Compute cluster preemption within a general-purpose graphics processing unit |
TW201915724A (zh) * | 2017-09-14 | 2019-04-16 | 南韓商三星電子股份有限公司 | 異構計算環境的設備及系統 |
Also Published As
Publication number | Publication date |
---|---|
CN114787830A (zh) | 2022-07-22 |
TW202127249A (zh) | 2021-07-16 |
WO2021126272A1 (en) | 2021-06-24 |
US20230012487A1 (en) | 2023-01-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI763156B (zh) | 異質叢集中之機器學習工作負載編排技術 | |
US20190065280A1 (en) | Hybrid virtual machine configuration management | |
US6366945B1 (en) | Flexible dynamic partitioning of resources in a cluster computing environment | |
EP2728473B1 (en) | Systems and methods for instruction entity allocation and scheduling on multi-processors | |
Pawar et al. | Priority based dynamic resource allocation in cloud computing | |
US8234652B2 (en) | Performing setup operations for receiving different amounts of data while processors are performing message passing interface tasks | |
US6345287B1 (en) | Gang scheduling for resource allocation in a cluster computing environment | |
Wang et al. | Workflow as a service in the cloud: architecture and scheduling algorithms | |
Sun et al. | Towards distributed machine learning in shared clusters: A dynamically-partitioned approach | |
US20200174844A1 (en) | System and method for resource partitioning in distributed computing | |
US20090063885A1 (en) | System and Computer Program Product for Modifying an Operation of One or More Processors Executing Message Passing Interface Tasks | |
CN109783225B (zh) | 一种多租户大数据平台的租户优先级管理方法及*** | |
DE112012000946T5 (de) | Versehsagbares Rechnen in virtualisierten verteilten Computersystemen basierend auf der Partitionierung von Rechenleistung und Kommunikationsleistung | |
CN105718316A (zh) | 一种作业调度的方法及装置 | |
US10936377B2 (en) | Distributed database system and resource management method for distributed database system | |
US20230145437A1 (en) | Execution prediction for compute clusters with multiple cores | |
CN114625500A (zh) | 云环境下拓扑感知的微服务应用调度的方法及应用 | |
CN107566443A (zh) | 一种分布式资源调度方法 | |
US20230037293A1 (en) | Systems and methods of hybrid centralized distributive scheduling on shared physical hosts | |
WO2020108337A1 (zh) | 一种cpu资源调度方法及电子设备 | |
US20210390405A1 (en) | Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof | |
CN114860417B (zh) | 多核神经网络处理器及用于该处理器多任务分配调度方法 | |
Amar et al. | An on-line algorithm for fair-share node allocations in a cluster | |
CN107529696B (zh) | 一种存储资源访问控制方法及装置 | |
US11392415B2 (en) | Electronic devices and methods for 5G and B5G multi-core load balancing |