TWI786564B - 任務調度方法和裝置、儲存媒體及計算機設備 - Google Patents

任務調度方法和裝置、儲存媒體及計算機設備 Download PDF

Info

Publication number
TWI786564B
TWI786564B TW110108474A TW110108474A TWI786564B TW I786564 B TWI786564 B TW I786564B TW 110108474 A TW110108474 A TW 110108474A TW 110108474 A TW110108474 A TW 110108474A TW I786564 B TWI786564 B TW I786564B
Authority
TW
Taiwan
Prior art keywords
task
subtasks
subtask
processor
node
Prior art date
Application number
TW110108474A
Other languages
English (en)
Other versions
TW202134870A (zh
Inventor
葉志晟
陳遜
吳保東
孫鵬
顏深根
Original Assignee
大陸商上海商湯智能科技有限公司
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
Priority claimed from CN202010165543.4A external-priority patent/CN113391886A/zh
Priority claimed from CN202010165763.7A external-priority patent/CN113391914A/zh
Application filed by 大陸商上海商湯智能科技有限公司 filed Critical 大陸商上海商湯智能科技有限公司
Publication of TW202134870A publication Critical patent/TW202134870A/zh
Application granted granted Critical
Publication of TWI786564B publication Critical patent/TWI786564B/zh

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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]
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本公開實施例提供一種任務調度方法和裝置,根據該方法,可以獲取任務的資訊,所述任務的資訊包括所述任務的任務類型和資源需求資訊的至少一者;根據所述任務的資訊,分別為所述任務包括的多個子任務分配目標節點。

Description

任務調度方法和裝置、儲存媒體及計算機設備
本公開涉及分散式系統技術領域,尤其涉及分散式系統中的任務調度。
目前,越來越多的任務開始使用分散式系統進行資源的分配計算,其中,許多任務往往包括多個子任務,各個子任務的內容以及所需的資源可能完全相同也可能不同。傳統的分散式系統中的任務調度方式一般以子任務為單位進行資源節點的分配,對叢集的資源利用率和任務的執行效率都比較低。
本公開提供一種任務調度方案。
根據本公開實施例的第一方面,提供一種任務調度方法,所述方法包括:獲取任務的資訊,所述任務的資訊包括所述任務的任務類型和資源需求資訊的至少一者;根據所述任務的資訊,分別 為所述任務包括的多個子任務分配目標節點。
在一些實施例中,所述任務的資源需求資訊為所述任務包括的多個子任務的資源需求資訊;所述方法還包括:在分散式系統中的當前可用資源滿足所述任務的多個子任務的資源需求資訊對應的總資源的情況下,分別為所述任務的多個子任務分配對應的目標節點。
在一些實施例中,所述方法還包括:基於所述多個子任務的資源需求資訊,為所述任務的多個子任務確定目標節點;所述在分散式系統中的當前可用資源滿足所述任務的多個子任務的資源需求資訊對應的總資源的情況下,分別為所述任務的多個子任務分配對應的目標節點,包括:在成功為所述多個子任務中的每個子任務確定對應的目標節點的情況下,分別為所述任務的多個子任務分配對應的目標節點。
在一些實施例中,基於所述分散式系統的當前資源狀態資訊和所述多個子任務的資源需求資訊,按照特定順序依次確定多個子任務對應的目標節點。
在一個可選例子中,所述多個子任務的資源需求資訊包括所述多個子任務中每個子任務的資源需求資訊,其中,所述資源需求資訊可以包括所需的資源類型和每種類型的資源數量,或者進一步包括其他資訊。
在一個可選例子中,所述分散式系統的當前資源狀態資訊可以包括所述分散式系統中多個節點的當前狀態資訊,其中,當 前狀態資訊用於指示資源是否可用、可用資源的類型和數量、負載情況、拓撲連接資訊中的至少一種,或者進一步包括其他資訊。
在一些實施例中,在每次確定為一個子任務分配的目標節點之後,更新分散式系統的當前資源狀態資訊,並基於更新後的當前資源狀態資訊確定下一個子任務對應的目標節點。
在一些實施例中,在未能成功為所述多個子任務中的至少一個子任務確定對應的目標節點的情況下,確定所述分散式系統的當前可用資源不滿足所述多個子任務中每個子任務所需求的資源。
在一些實施例中,所述多個子任務的目標節點的依次確定的順序是按照子任務的優先級、子任務之間的依賴關係中的至少一項得到的。
在一些實施例中,所述基於所述分散式系統的當前資源狀態資訊和所述多個子任務的資源需求資訊,為所述多個子任務確定目標節點,包括:基於所述分散式系統的當前資源狀態資訊和所述多個子任務的資源需求資訊,確定所述多個子任務中每個子任務的預選節點集合;從多個子任務中每個子任務的預選節點集合中選擇所述每個子任務的目標節點。
其中,不同子任務的預選節點集合可以相同或不同。在一些例子中,多個子任務可以具有相同的預選節點集合。
在一些實施例中,所述基於所述分散式系統的當前資源狀態資訊和所述多個子任務的資源需求資訊,確定所述多個子任 務中每個子任務的預選節點集合,包括:基於所述分散式系統的當前資源狀態資訊和每個子任務的資源需求資訊,確定所述每個子任務的預選節點集合。
多個子任務的預選節點集合的確定可以是獨立的,相互之間不存在依賴關係,例如,可以並行執行或者以任意先後順序執行。例如,多個子任務的預選節點集合是基於相同的分散式系統的當前資源狀態資訊確定的,也就是說,分散式系統的當前資源狀態資訊在預選過程中不進行更新。例如,每個子任務的預選節點集合的確定只跟自己的資源需求資訊有關係,而與其他子任務的資源需求資訊無關。
在一些實施例中,所述確定所述多個子任務中每個子任務的預選節點集合,包括:按照特定順序依次確定所述多個子任務中每個子任務的預選節點集合。
在一個例子中,所述多個子任務中第一子任務的預選節點集合中的預選節點是從所述多個子任務中第二子任務的預選節點集合選取的,其中,所述第二子任務的順序位於所述第一子任務之前。
在另一個例子中,基於所述多個子任務的資源需求資訊,確定所述多個子任務中每個子任務的預選節點集合。
在一些實施例中,所述從所述多個子任務中每個子任務的預選節點集合中選擇所述每個子任務的目標節點,包括:按照特定順序依次從所述多個子任務中每個子任務的預選節點中選擇所 述每個子任務的目標節點。
在一個可選例子中,優先選擇所述多個子任務中第二子任務的目標節點作為所述多個子任務中第一子任務的目標節點,其中,所述第二子任務的順序位於所述第一子任務之前。
在一些實施例中,所述從所述多個子任務中每個子任務的預選節點集合中選擇所述每個子任務的目標節點,包括:基於所述分散式系統的當前資源狀態資訊,從所述多個子任務中第一子任務的預選節點集合中確定所述第一子任務的目標節點;基於所述第一子任務的資源需求資訊,更新所述分散式系統的當前資源狀態資訊,並基於所述分散式系統的更新後的當前資源狀態資訊,從所述多個子任務中第二子任務的預選節點集合中確定所述第二子任務的目標節點。
在一個可選例子中,基於第一子任務的預選節點集合中每個預選節點的當前狀態資訊,從所述第一子任務的預選節點集合中確定所述第一子任務的目標節點,並基於所述第一子任務的所需資源資訊,更新所述第一子任務的目標節點的當前狀態資訊。
在一些實施例中,所述從所述多個子任務中每個子任務的預選節點集合中選擇所述每個子任務的目標節點,包括:根據所述任務的任務類型,確定每個子任務的預選節點集合中包含的預選節點的分值;基於每個子任務的預選節點集合中包含的預選節點的分值,從所述每個子任務的預選節點集合中選擇所述每個子任務的目標節點。
在一個可選例子中,基於所述任務的任務類型,確定所述預選節點集合中每個預選節點的分值確定策略。
在一些實施例中,根據所述任務的資訊,分別為所述任務包括的多個子任務分配目標節點,包括:確定所述任務的任務類型;基於所述任務的任務類型,分別為所述任務的多個子任務分配對應的目標節點。
在一些實施例中,所述任務的任務類型為計算密集型或通信密集型。
在一些實施例中,所述分別為所述任務的多個子任務分配對應的目標節點,包括:將所述任務的多個子任務劃分為至少一個分組,其中,每個分組包括所述多個子任務中的至少一個子任務;分別為所述至少一個分組中每個分組分配對應的目標節點,其中,同一分組中的各個子任務分配到同一目標節點。
在一些實施例中,所述將所述任務的多個子任務劃分為至少一個分組,包括:根據所述任務的任務類型,將所述任務的多個子任務劃分為至少一個分組。
在一些實施例中,所述將所述任務的多個子任務劃分為至少一個分組,包括:在所述任務的任務類型為通信密集型的情況下,根據所述任務的多個子任務的資源需求資訊,確定所述多個子任務所需的總節點數量,並根據所述總節點數量,將所述任務的多個子任務劃分為至少一個分組。
在一些實施例中,所述將所述任務的多個子任務劃分為 至少一個分組,包括:在所述任務的任務類型為計算密集型的情況下,將所述多個子任務中的每個子任務作為一個分組。
在一些實施例中,分別為所述至少一個分組中每個分組分配對應的目標節點,包括:分別為所述至少一個分組中每個分組確定預選節點集合,並依次從所述至少一個分組中每個分組的預選節點集合中選取所述分組的目標節點。
在一些實施例中,所述基於所述任務的任務類型,分別為所述任務的多個子任務分配對應的目標節點,包括:基於所述任務的任務類型,為所述任務的多個子任務確定目標節點;在為所述任務的多個子任務均成功確定對應的目標節點的情況下,為所述任務包括的多個子任務分配目標節點。
在一些實施例中,所述方法還包括:在為所述子任務中的至少一個子任務確定對應的目標節點不成功的情況下,對所述任務的多個子任務均進行延遲分配。
在一些實施例中,所述方法還包括:在分散式系統中的當前可用資源不滿足所述任務的多個子任務的資源需求資訊對應的總資源的情況下,對所述任務包括的多個子任務均進行延遲分配。
在一些實施例中,所述方法還包括:在分別為所述任務的多個子任務分配對應的目標節點之後,對所述任務的多個子任務進行同步調度。
在一些實施例中,所述方法應用於任務編排系統。
根據本公開實施例的第二方面,提供一種任務調度裝置, 所述裝置包括:獲取模組,用於獲取任務的資訊,所述任務的資訊包括所述任務的任務類型和資源需求資訊的至少一者;第一分配模組,用於根據所述任務的資訊,分別為所述任務包括的多個子任務分配目標節點。
根據本公開實施例的第三方面,提供一種計算機可讀儲存媒體,其上儲存有計算機程式,該程式被處理器執行時實現任一實施例所述的方法。
根據本公開實施例的第四方面,提供一種計算機設備,包括記憶體、處理器及儲存在記憶體上並可在處理器上運行的計算機程式,所述處理器執行所述程式時實現任一實施例所述的方法。
本公開實施例中,可以獲取任務的資訊,所述任務的資訊包括所述任務的任務類型和資源請求資訊的至少一者,其中所述任務的資源請求資訊為所述任務包括的多個子任務的資源需求資訊。可以根據任務類型或者任務的資源需求資訊來進行目標節點的分配。例如,在分散式系統中的當前可用資源滿足所述任務的多個子任務的資源需求資訊對應的總資源的情況下,分別為所述任務的多個子任務分配對應的目標節點。以這種方式,能夠獲取到整個任務的資源需求情況,實現了以整個任務為粒度進行資源分配,提高了叢集的資源利用率。
應當理解的是,以上的一般描述和後文的細節描述僅是示例性和解釋性的,而非限制本公開。
201:獲取任務的資訊,所述任務的資訊包括所述任務的任務類型和資源需求資訊的至少一者
202:根據所述任務的資訊,分別為所述任務的多個子任務分配目標節點
701:獲取模組
702:第一分配模組
801:處理器
802:隨機存取記憶體
803:網路介面
804:非揮發性記憶體
圖1是本公開實施例的分散式系統的示意圖。
圖2是本公開實施例的任務調度方法流程圖。
圖3A是本公開實施例的模擬分配節點過程中資源變化的示意圖。
圖3B是本公開實施例的模擬分配節點過程的流程圖。
圖4是傳統的任務調度過程的示意圖。
圖5是本公開實施例的任務調度過程的示意圖。
圖6是本公開實施例的調度邏輯的示意圖。
圖7是本公開實施例的任務調度裝置的結構示意圖。
圖8是本公開實施例裝置的計算機設備的結構示意圖。
這裡將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數位表示相同或相似的要素。以下示例性實施例中所描述的實施方式並不代表與本公開相一致的所有實施方式。相反,它們僅是與如所附申請專利範圍中所詳述的、本公開的一些方面相一致的裝置和方法的例子。
在本公開使用的術語是僅僅出於描述特定實施例的目的,而非旨在限制本公開。在本公開和所附申請專利範圍中所使用的 單數形式的“一種”、“所述”和“該”也旨在包括多數形式,除非上下文清楚地表示其他含義。還應當理解,本文中使用的術語“和/或”是指並包含一個或多個相關聯的列出項目的任何或所有可能組合。另外,本文中術語“至少一種”表示多種中的任意一種或多種中的至少兩種的任意組合。
應當理解,儘管在本公開可能採用術語第一、第二、第三等來描述各種資訊,但這些資訊不應限於這些術語。這些術語僅用來將同一類型的資訊彼此區分開。例如,在不脫離本公開範圍的情況下,第一資訊也可以被稱為第二資訊,類似地,第二資訊也可以被稱為第一資訊。取決於語境,如在此所使用的詞語“如果”可以被解釋成為“在......時”或“當......時”或“響應於確定”。
目前,越來越多的任務開始使用分散式系統進行處理,這樣的任務稱為分散式任務。這些分散式任務中包含對GPU(Graphics Processing Unit,圖形處理器)、DSP(Digital Signal Processor,數位數位訊號處理器)、FPGA(Field Programmable Gate Array,現場可編程門陣列)等高性能的處理資源有著迫切需求的任務,例如,深度學習任務。如圖1所示,是一些實施例的分散式系統,該分散式系統包括一個或多個叢集,每個叢集包括一台或多台伺服器,每台伺服器可以視為一個節點(圖中的各個黑點所示),每個節點都包括CPU(Central Processing Unit,中央處理器)、GPU、隨機存取記憶體、磁碟、網路介面等資源中的至少一者。在將子任務分配到節點之後,可以通過該節點上的資源來執行子任務,每個 節點可以執行一個或多個子任務。同一叢集內的各個節點執行的子任務可以相同,也可以不同。在分散式系統中,無論是任務本身,亦或是任務對資源的需求,都與傳統任務截然不同,因此,需要對分散式系統中的任務調度方式進行相應的調整,從而提高分散式系統中叢集資源使用的合理性,進而提高任務的運行性能和叢集的資源利用率。
在為分散式系統中的任務分配資源時,不同的分配方式可能對任務的執行效率產生影響。例如,在一些情況下,一個任務中的多個子任務之間需要進行頻繁的通信,因此,該任務中的多個子任務適合分配到通信代價較小的節點上;在另一些情況下,一個任務中的多個子任務在執行過程中會產生比較大的計算量,因此,該任務中的多個子任務適合分配到計算資源較多的節點上。
而且,在當前分散式系統中的任務大多具有如下的特徵:一個任務往往包括多個子任務,各個子任務的內容以及所需的資源可能完全相同也可能不同,子任務之間可能需要進行頻繁的通信。此外,在一些情況下,一個任務中的多個子任務需要一起被調度執行,否則任務並不能正常執行;在另一些情況下,各個子任務的執行順序會對整個任務的執行情況造成一定的影響,例如,從(slave)子任務需要在其從屬的主(master)子任務執行完成之後才能執行。
目前有一些調度器(例如,kube-batch)根據以下方式對分散式系統中的任務進行批調度:調度器按次序嘗試對一個任務 中的各個子任務一個一個進行調度,並在該任務的每一個子任務的調度嘗試完成後判斷整個任務是否已經符合用戶預期的可以運行的狀態。這種調度策略稱為gang scheduling(組調度)。
然而,目前的gang scheduling實現方式,本質上是以子任務為粒度進行調度,調度器未獲取到整個任務的資源需求情況,導致為子任務分配的節點可能不是最佳選擇,使得任務運行效率和對叢集的資源利用率都比較低。因此在叢集資源緊張或者任務類型複雜時,會產生大量的調度失敗現象。
基於此,本公開實施例提供了一種任務調度方法。如圖2所示,所述方法可包括步驟201和202。
步驟201:獲取任務的資訊,所述任務的資訊包括所述任務的任務類型和資源需求資訊的至少一者。
步驟202:根據所述任務的資訊,分別為所述任務的多個子任務分配目標節點。
本公開實施例中的方法可以由任意電子設備執行,例如終端設備或雲伺服器等,在一些實施例中,該方法可以由處理器或調度器執行,其中,可選地,所述處理器或調度器可以運行在諸如Kubernetes等雲平臺上,具體可以設置在容器編排引擎上,但本公開實施例不限於此。在步驟201中,可以獲取一個或多個任務的資訊。
所述任務包括的多個子任務可以是所述任務的所有子任務,也可以是所述任務中的部分子任務,例如資源需求量較大的子 任務、或者優先級較高的子任務、或者是相互之間具有依賴關係的子任務、對資源需求類型或數量較為接近的子任務,等等。其中,相互之間具有依賴關係的子任務是指相互具有依賴或主從關係的多個子任務,如子任務A的執行只有在子任務B執行完成後才能開始,再例如,具有相同類型或具有至少一個特定類型的多個子任務,等等。所述任務可以是神經網路的訓練任務、推斷任務,也可以是其他類型的深度學習任務等。在一些可選實施例下,同一任務中的各個子任務可以由分散式系統中的同一叢集中的相同或者不同節點來執行。在分散式系統包括多個叢集的情況下,同一任務的各個子任務可以由相同或不同叢集的節點執行。可選地,可以先將任務分配到某個叢集,然後,再從該叢集中確定用於所述任務的多個子任務的目標節點。這樣,通過將任務的多個子任務分配到相同的叢集上執行,有利於縮減通信開銷,提高任務執行效率。
所述任務的資訊可以是基於用戶輸入或設置得到的,或者是基於對任務的分析得到的,等等。所述任務的資訊可以包括任務的任務類型和/或資源需求資訊。其中,所述任務的資源需求資訊具體為所述任務包括的多個子任務的資源需求資訊。在一些實施例中,除了任務類型和資源需求資訊以外,所述任務的資訊還可以包括所述任務的優先級資訊、所述任務包括的多個子任務的優先級資訊、子任務之間的依賴資訊、用戶提供資訊、歷史資訊、計算量資訊、通信量資訊等一種或多種。
其中,所述子任務的資源需求資訊可以包括執行該子任 務所需的資源類型和/或資源數量,所述資源類型可以包括但不限於CPU、GPU、DSP、FPGA、隨機存取記憶體、磁碟、網路介面等資源中的至少一者。
所述任務的優先級資訊可以包括但不限於所述任務等待被調度的時長和/或所述任務中的所述多個子任務所需的總資源。等待被調度的時長是指調度器接收到一個任務的時刻,到該任務被調度的時刻之間的時長,可以將等待被調度的時長較長的任務以及所需的總資源較多的任務的優先級設置得較高,從而避免一個任務長期處於等待調度的狀態。
所述任務包括的多個子任務的優先級資訊用於確定所述任務包括的多個子任務的優先級。在一些實施例中,在一個調度週期或資源分配流程中,可以至少基於各個子任務的優先級資訊來進行子任務的調度。
所述子任務之間的依賴資訊用於確定所述任務包括的多個子任務之間的依賴或主從關係,如果子任務B只有在子任務A執行完成後才能開始執行,則子任務B依賴於子任務A,或者子任務A為主任務,子任務B為子任務A的從任務。
所述用戶提供資訊用於確定所述任務的多個子任務的計算量與通信量。
所述歷史資訊可以包括歷史調度資訊和/或歷史執行情況等。可以根據所述歷史資訊來確定歷史調度過程中所述任務的任務類型。
除了以上資訊之外,根據實際的應用場景,所述任務的資訊還可包括其他資訊,此處不再贅述。
在一些實施例中,在步驟202中,根據所述任務的資訊,分別為所述任務包括的多個子任務分配目標節點,包括:在分散式系統中的當前可用資源滿足所述任務的多個子任務的資源需求資訊對應的總資源的情況下,分別為所述任務的多個子任務分配對應的目標節點。所述任務的多個子任務的資源需求資訊對應的總資源可以指所述任務的多個子任務所需的總資源,可選地,在多個子任務為任務的所有子任務的情況下,該總資源也是所述任務所需的總資源。可選地,如果分散式系統的當前可用資源滿足所述多個子任務或所述任務所需的總資源,則表明分散式系統中的當前可用資源足以支持多個子任務的運行。可選地,如果分散式系統的當前可用資源不滿足多個子任務或任務所需的總資源,則表明分散式系統中的當前可用資源最多僅支持多個子任務中的一部分任務的運行,而無法支持所有子任務的運行。
在本公開實施例中,只有在分散式系統中的當前可用資源滿足所述任務的多個子任務所需的總資源的情況下,才分別為所述任務的多個子任務分配對應的目標節點。這樣,可以以任務作為資源分配的單位,並對任務包含的多個子任務一起進行節點的分配,從而避免在分散式系統中的當前可用資源不夠的情況下,任務中的部分子任務無法被成功分配資源,導致該任務中僅部分子任務佔用了分散式系統中的整個資源的情況,有利於改善資源的 合理利用。
在一些實施例中,可以基於分散式系統的當前資源狀態資訊和多個子任務的資源需求資訊,為多個子任務分配目標節點。其中,可以為每個子任務分配能夠滿足其資源需求的目標節點,不同子任務的目標節點可以相同或者不同。
在一些實施例中,可以基於所述分散式系統的當前資源狀態資訊和所述多個子任務的資源需求資訊,為所述多個子任務確定目標節點,在成功為所述多個子任務中的每個子任務確定對應的目標節點的情況下,分別為所述任務的多個子任務分配對應的目標節點。上述為所述多個子任務確定目標節點的過程為模擬分配過程,模擬分配是一種虛擬的資源分配過程,並非實際執行的資源分配過程,所述模擬分配過程用於通過計算確定多個子任務當前是否可以分配到分散式系統中的節點。通過為所述任務的多個子任務進行節點的模擬分配,從而可以確定分散式系統當前是否滿足該多個子任務所需資源。
其中,分散式系統的當前資源狀態資訊用於表徵分散式系統中當前可用的資源,可以包括分散式系統的當前可用資源的數量、類型和分佈中的至少一者,或者,可以包括分散式系統中多個節點的當前狀態,例如是否可用或是否有可用資源、可用資源的類型和數量等等。多個子任務的資源需求資訊可以包括多個子任務中每個子任務的資源需求資訊,例如所需的資源類型、某種資源類型的資源數量中的至少一種,例如所需的GPU、DSP、CPU等 一種或多種,本公開實施例不限於此。
在一些實施例中,可以基於多個子任務的資源需求資訊和分散式系統的當前資源狀態資訊,確定分散式系統中是否存在滿足多個子任務需求的目標節點,或者,按照特定順序依次確定多個子任務中每個子任務的目標節點。例如,如果多個子任務中的每個子任務都能在分散式系統中找到滿足其需求的目標節點,則可以確定分散式系統的當前可用資源滿足多個子任務所需的總資源。再例如,如果多個子任務中的至少一個子任務在分散式系統中找不到滿足其需求的目標節點,則可以確定分散式系統的當前可用資源不滿足多個子任務所需的總資源。
與傳統單個子任務的節點確定不同的是,在本公開實施例中,多個子任務的目標節點是按照特定順序依次確定的,並且後面的子任務的目標節點的確定可能會受到為前面的子任務確定的目標節點的影響。在一些實施例中,在每次為其中一個子任務確定了對應的目標節點之後,更新分散式系統的當前資源狀態資訊,例如更新確定的該目標節點的當前狀態資訊,然後基於更新後的當前資源狀態資訊確定下一個子任務對應的目標節點,從而避免出現資源衝突問題。
應當說明的是,這裡所說的更新所述當前資源狀態資訊,是用於以上模擬分配或者目標節點的確定過程,是虛擬的而非真實的更新,可以指在執行完一次子任務的節點模擬分配或目標節點的確定之後,分散式系統中當前可用資源的虛擬變化情況,由於 還尚未進行子任務的實際分配,所以分散式系統中的當前可用資源實際並未發生變化。例如,在確定一個子任務的目標節點之後,可以認為將該目標節點虛擬地分配給該子任務,將目標節點上與該子任務所需求的資源對應的部分資源與該子任務虛擬地綁定,這樣,該被虛擬地綁定的資源就不能再被分配給其他子任務。
上述特定順序可以指預設順序。或者,在一些例子中,所述特定順序可以根據所述多個子任務的優先級來確定,例如,先為優先級較高的子任務確定對應的目標節點,再為優先級較低的子任務確定對應的目標節點,其中,該優先級可以基於子任務類型、子任務與其他子任務之間的依賴關係等一種或多種因素確定,例如,對於存在依賴或主從關係的兩個子任務,主(master)子任務的優先級高於從(slave)子任務的優先級,但本公開實施例不限於此。或者,在另一些例子中,所述特定順序可以根據所述子任務的依賴或主從關係來確定。由於從子任務在缺少主子任務的情況下無法開始運行,因此,通過優先為主子任務分配對應的目標節點,有利於提高整個任務的運行效率。或者,所述特定順序也可以基於其他因素確定,本公開實施例對此不做限定。
在一些實施例中,在分散式系統中存在滿足所述多個子任務中的每個子任務所需資源的目標節點的情況下,則確定分散式系統中的當前可用資源滿足所述任務的多個子任務的資源需求資訊對應的總資源;否則,確定分散式系統中的當前可用資源不滿足所述任務的多個子任務的資源需求資訊對應的總資源。
如圖3A和3B所示的例子,假設一個任務包括優先級由高到低的子任務1、子任務2和子任務3,可以先根據分散式系統的當前可用資源資訊和子任務1的資源需求資訊,為子任務1模擬分配節點,得到子任務1的目標節點,然後更新分散式系統中的當前資源狀態資訊;再根據更新後的分散式系統的當前可用資源資訊和子任務2的資源需求資訊,為子任務2模擬分配節點,得到子任務2的目標節點,然後更新分散式系統中的當前資源狀態資訊;再根據再次更新後的分散式系統的當前可用資源資訊和子任務3的資源需求資訊,為子任務3模擬分配節點,得到子任務3的目標節點。
如果為子任務1、子任務2和子任務3模擬分配節點均成功,則確定所述分散式系統的當前可用資源滿足所述多個子任務中每個子任務的需求,即滿足多個子任務所需的總資源。如果為子任務1、子任務2或者子任務3模擬分配節點失敗,例如,分散式系統中找不到滿足其所需資源的目標節點,則確定所述分散式系統的當前可用資源不滿足所述多個子任務所需的總資源。
在基於所述模擬分配確定所述分散式系統的當前可用資源滿足所述多個子任務中每個子任務所需求的資源的情況下,可以將在所述模擬分配中確定的每個子任務對應的目標節點分配給所述每個子任務。
在一些實施例中,可以基於分散式系統中各個節點的當前狀態資訊,對各個子任務進行目標節點的確定,例如,基於各個 節點的當前狀態資訊,對各個節點進行排序或打分,並按照特定順序依次為多個子任務分配排序或打分較高的節點。
在一些實施例中,為所述任務的多個子任務確定目標節點時,可以通過預選和優選兩個過程來確定多個子任務分別對應的目標節點。
其中,在預選過程中,基於多個子任務的資源需求資訊,分別為多個子任務中的每個子任務初步選取分散式系統中能夠滿足其需求的至少一個預選節點,或者剔除分散式系統中不能滿足其需求的節點。例如,可以基於所述分散式系統中的多個節點的當前狀態資訊和所述多個子任務的資源需求資訊,確定所述多個子任務中每個子任務的預選節點集合,其中,每個子任務的預選節點集合包括至少一個預選節點。不同的子任務的預選節點集合中可能包括相同或不同的節點。
在優選過程中,從每個子任務的預選節點集合中選擇所述每個子任務的目標節點。例如,可以從子任務的預選節點集合中選出一個最適合的節點作為該子任務的目標節點。在一些可選例子中,可以根據子任務的預選節點集合中包括的各個預選節點的當前狀態資訊,例如當前負載情況、可用資源類型、可用資源數量、可用資源分佈和節點內部之間的拓撲連接關係、與其他節點之間的拓撲連接關係中的至少一者,來確定目標節點。所述可用資源類型包括但不限於以下至少任一:通信介面、磁碟儲存空間、隨機存取記憶體、CPU、GPU等。所述可用資源數量可以是CPU數量、 磁碟剩餘容量、隨機存取記憶體剩餘容量等。所述可用資源分佈也稱為資源碎片情況,即當前可用資源的分佈位置,例如,磁碟剩餘容量分佈在多少個磁碟上。分散式系統中各個節點的拓撲結構例如可以是總線型拓撲、星形拓撲、環形拓撲、樹形拓撲等。
在一些實施例中,在預選過程中,可以基於所述分散式系統的當前資源狀態資訊和每個子任務的資源需求資訊,確定所述每個子任務的預選節點集合,即,所述任務的多個子任務中的每個子任務的預選過程可以互不干擾,每個子任務的預選節點集合的選取僅與該子任務的資源需求資訊有關,而不依賴於其他子任務的資源需求資訊。相應地,多個子任務的預選節點集合的確定可以並行執行或者以任意先後順序執行。這樣,可以快速地進行預選節點的確定,從而提高模擬分配的整體效率。
例如,假設任務包括優先級由高到低的子任務1、子任務2和子任務3,則在預選過程中,可以並行地執行以下操作:根據子任務1的資源需求資訊與分散式系統的當前資源狀態資訊確定子任務1的預選節點集合,根據子任務2的資源需求資訊與分散式系統的當前資源狀態資訊確定子任務2的預選節點集合,並根據子任務3的資源需求資訊與分散式系統的當前資源狀態資訊確定子任務3的預選節點集合,假設得到子任務1對應的預選節點集合包括{節點1,節點2,節點3},子任務2對應的預選節點集合包括{節點2,節點5,節點6,節點7},子任務3對應的預選節點集合包括{節點6和節點7}。
在一些實施例中,在預選過程中,可以按照特定順序,依次選擇多個子任務的預選節點集合。在一個可選的例子中,基於前面子任務的預選節點集合來確定後面子任務的預選節點集合。例如,後面子任務的預選節點是從前面子任務的預選節點集合中選擇的,其中,該前面子任務的數量可以為一個或兩個以上,例如,該前面子任務可以是該後面子任務之前的所有子任務,該前面子任務和後面子任務可以相鄰或者間隔至少一個子任務,但本公開實施例不限於此。
在一些實施例中,也可以綜合考慮多個子任務的資源需求資訊,來進行多子任務的預選節點集合的確定,例如,為所述多個子任務選擇共用的預選節點集合,其中,該共用的預選節點集合中包含的預選節點能夠滿足多個子任務中至少兩個子任務的資源需求。
在一些實施例中,在優選過程中,可以並行地確定多個子任務的目標節點,或者結合多個子任務的候選節點集合,來綜合確定多個子任務的目標節點。例如,對多個子任務中至少一部分子任務的候選節點集合求交來確定該至少一部分子任務的目標節點,但本公開實施例不限於此。
在一些實施例中,可以按照特定順序,例如基於多個子任務的優先級,依次從所述多個子任務的預選節點集合中確定所述多個子任務對應的目標節點。其中,在一個可選例子中,每確定一個子任務對應的目標節點,更新該目標節點的當前狀態資訊。例 如,基於該子任務對應的資源需求資訊,更新該目標節點的當前狀態資訊。這樣,在進行後續子任務的目標節點的確定過程中,該目標節點上與該子任務所需求的資源對應的部分將不可用,從而能夠保證多個子任務的順利執行。在另一個可選例子中,基於前面子任務選擇的目標節點,來選擇後面子任務的目標節點。例如,後面的子任務優先選擇前面子任務的目標節點作為自己的目標節點,除非該後面的子任務的候選節點集合中不包含該目標節點或者該目標節點的其他關鍵因素不滿足後面子節點的需求,但本公開實施例不限於此。
在同步地為多個子任務進行資源分配的情況下,上述預選和優選過程可以是一種模擬分配過程。在非同步地為多個子任務進行資源分配的情況下,上述預選和優選過程也可以是真實的節點分配過程。同理,上述過程中涉及的更新當前資源狀態資訊,也可以指在執行完一次子任務的節點分配之後,由於分散式系統中的當前可用資源發生變化而執行的真實的更新過程。
在本公開實施例中,可以基於一定策略從預選節點集合中選取目標節點。例如,基於分散式系統的當前資源狀態資訊或各個預選節點的當前狀態資訊和多個子任務的資源需求資訊進行目標節點的選取。在一些實施例中,可以確定每個子任務的預選節點集合中包含的預選節點的分值,例如,基於子任務的預選節點集合中各個預選節點的當前狀態資訊和該子任務的資源需求資訊,確定各個預選節點的分值,並基於每個子任務的預選節點集合中包 含的預選節點的分值,從所述每個子任務的預選節點集合中選擇所述每個子任務的目標節點。例如,可以從預選節點集合中包括的至少一個預選節點中選取分數最高的預選節點作為目標節點。或者,基於分數和其他因素共同進行目標節點的選取。
接著前面的例子,以基於任務優先級依次確定多個子任務的目標節點為例,首先可以確定子任務1的預選節點集合中各個預選節點的分值,假設節點1,節點2和節點3的分值分別為80,90和70,則確定節點2為子任務1的目標節點,並對節點2的當前狀態資訊進行更新。然後,確定子任務2的預選節點集合中各個預選節點的分值,其中,節點2的分值是基於節點2的更新後的當前狀態資訊確定的,假設節點2,節點5,節點6和節點7的分值分別為60,80,75和70,則確定節點5為子任務2的目標節點,並對節點5的當前狀態資訊進行更新。最後,確定子任務3的預選節點集合中各個預選節點的分值,假設節點6和節點7的分值分別為70和60,則確定節點6為子任務3的目標節點。
在一些實施例中,可以基於步驟201中獲取的任務的資訊來確定任務的任務類型,並基於任務的任務類型,為多個子任務進行目標節點的分配。其中,對於任務的任務類型可以基於實際情況進行劃分。對於神經網路等深度學習模型的訓練、推理等深度學習任務而言,可選地,可以將任務分成通信密集型任務和計算密集型任務兩類。其中,通信密集型任務是指任務處理過程中各個子任務之間的通信比較頻繁的任務,計算密集型任務是指任務處理過 程中計算量比較大的任務。
具體地,可以基於任務的多個子任務的整體情況來確定任務的任務類型。作為一個可選例子,可以基於所述任務的多個子任務的計算量與通信量,確定任務的任務類型。例如,在計算量大於預設的計算量閾值的情況下,認為該任務是計算密集型任務;再例如,在通信量大於預設的通信量閾值的情況下,認為該任務是通信密集型任務。再例如,如果計算量和通信量均超過對應的預設閾值,則可以將其確定為通信密集型任務。作為另一個可選例子,還可以根據歷史調度經驗確定任務類型。對於某種特定的任務,如果調度器在歷史調度過程中將該任務確定為計算密集型任務,則確定該任務為計算密集型任務;如果調度器在歷史調度過程中將該任務確定為通信密集型任務,則確定該任務為通信密集型任務。可選地,也可以基於對所述任務的至少一次歷史執行情況,來確定所述任務的任務類型,例如,如果在最近一次或多次歷史執行過程中,所述任務的計算所佔用的時間或計算資源較多,則將該任務確定為計算密集型任務;再例如,如果在最近一次或多次歷史執行過程中,所述任務的通信所佔用的時間或通信資源較多,則將該任務確定為通信密集型任務。或者,還可以基於其他方式確定任務的任務類型。或者,基於用戶提供資訊,例如,用戶提供的任務類型資訊,或者用戶提供的任務的計算量和/或通信量資訊,等等,來確定任務的任務類型。本公開實施例對確定任務類型的具體實現不做限定。
在本公開實施例中,可以基於任務類型確定多個子任務的目標節點,以使得任務整體能夠更高效地執行。例如,對於通信密集型任務,可以將該任務中的多個子任務儘量分配到數量較少的目標節點上,從而減少通信開銷;在例如,對於計算密集型任務,則可選地只需要目標節點上的資源能夠滿足所述任務的多個子任務的需求即可,或者優先選擇計算性能較好的節點,或者優先利用節點的碎片資源,或者盡力在保證計算資源符合用戶需求的前提下優化通信開銷,等等。
在一些可選例子中,可以根據所述任務的任務類型,進行以上預選和/或優選過程。
在一些實施例中,基於任務的任務類型,進行以上預選過程,例如,對於通信密集型任務,可以將可用資源類型和/或可用資源數量較少等明顯不可能滿足多個子任務中較多子任務需求的節點剔除,再例如,預選節點集合包含的節點數量控制在一定範圍之內,其中,可以優先選擇資源類型較多和/或數量較多的節點,或者資源類型與多個子任務的整體需求資源比較吻合的節點作為預選節點。在一些可選例子中,也可以為通信密集型任務的多個子任務中的部分或所有子任務確定一個預選節點集合,而非為每個子任務確定單獨的預選節點集合,但本公開實施例不限於此。
在另一些實施例中,基於任務類型,進行以上優選過程。例如,基於任務類型,確定選擇目標節點的策略。例如,在確定一個子任務的目標節點的過程中,優先選擇為其前面的子任務確定 的目標節點。例如,任務包括子任務1和子任務2,子任務1的目標節點包括節點1和節點2,則可以優選為子任務2選擇節點1和節點2作為其目標節點。在一些可選例子中,可以根據子任務的預選節點集合中包含的每個節點的當前狀態資訊和任務的任務類型,確定該子任務的預選節點集合中包含的每個預選節點的分值。在另一些實施例中,還可以根據其他方式來確定子任務的預選節點集合中包含的每個預選節點的分值,此處不再贅述。
在一個例子中,對於通信密集型任務,由於期望盡可能減少目標節點的數量從而減少子任務間的通信代價,因此,對於通信密集型任務的子任務,資源分佈集中的節點的分值一般高於資源分佈分散的節點。例如,一個子任務的預選節點1的可用磁碟容量分佈在兩個磁碟上,而預選節點2的可用磁碟容量分佈在一個磁碟上,因此,該子任務的預選節點2比預選節點1的分值高。在另一個例子中,對於計算密集型任務,計算能力較強的節點的分值一般高於計算能力較弱的節點的分值。例如,一個子任務的預選節點1的處理器包括1個處理器核心,該子任務的預選節點2的處理器包括2個處理器核心,則該子任務的預選節點2比預選節點1的分值高。
以上流程以子任務為資源分配對象為例進行說明。在一些實施例中,還可以將所述任務的多個子任務劃分為至少一個分組,其中,每個分組包括所述多個子任務中的至少一個子任務;分別為所述任務的至少一個分組中每個分組分配對應的目標節點, 其中,同一分組中的各個子任務分配到同一目標節點。
分組的數量可以與任務所需的節點數量相同,即,在需要將任務的多個子任務分配到N個目標節點的情況下,就將該任務的多個子任務劃分為N個分組。其中,每個分組中的子任務的數量可以相同,也可以不同。例如,將多個子任務隨機分配,或者將優先級相近的子任務劃分到一個分組,或者將具有或不具有依賴關係的子任務劃分到一個分組,或者,將資源需求數量差別較大的子任務劃分到一個分組,或者將需求資源類型相同的子任務劃分到一個分組,等等,本公開實施例對具體的分組方式不做限定。這樣,以分組為單位進行目標節點的確定,能夠在不明顯影響任務執行效率的前提下提高資源分配過程的效率。
在一些實施例中,可以根據所述任務的任務類型將所述任務的多個子任務劃分為至少一個分組。例如,對於通信密集型任務,可以將所述任務的多個子任務分配到數量最少的目標節點上,從而減少子任務間的通信代價,例如,將多個子任務中的所有子任務劃分到同一個分組,以使得所有子任務在同一目標節點上執行。在一些可選例子中,可以根據所述任務的多個子任務的資源需求資訊,確定所述任務的多個子任務所需的總節點數量;根據所述總節點數量,將所述任務的多個子任務劃分為至少一個分組。再例如,對於計算密集型任務,可以將所述任務的多個子任務中的每個子任務作為一個分組,也就是說,以子任務為單位進行目標節點的確定。
例如,假設一個任務包括4個子任務,每個子任務需要一個GPU,分散式系統中每個節點的可用GPU數量為2個,則至少需要2個節點來執行所述任務中的4個子任務。因此,若該任務為通信密集型任務,可以將這4個子任務平均分為2組,其中,分組可以是隨機進行的,或者也可以是根據子任務的資源需求資訊進行的,等等。若該任務為計算密集型任務,可以將這4個子任務劃分為4個分組,每個子任務作為一個分組。
在分組的情況下,可選地,以上針對子任務的目標節點的確定也可以適用於對分組的目標節點的確定,下面將進行詳細介紹。
例如,在一些實施例中,在所述任務的至少一個分組中的每個分組均存在對應的目標節點的情況下,確定分散式系統中的當前可用資源滿足所述任務的多個子任務所需的總資源。在另一些實施例中,在所述任務的至少一個分組不存在對應的目標節點的情況下,確定分散式系統中的當前可用資源不滿足所述任務的多個子任務所需的總資源。
再例如,可以基於所述分散式系統的當前資源狀態資訊和所述至少一個分組中每個分組的資源需求資訊,按照特定順序依次為所述至少一個分組中的每個分組進行目標節點的確定。分組的資源需求資訊可以基於分組中包括的至少一個子任務的資源需求資訊來確定,例如,分組所需求的資源可以為分組中包括的所有子任務所需求的同一類型資源的總和。其中,所述特定順序可選 地可以根據所述多個分組的優先級和依賴關係中的至少一項或其他因素來確定。分組的優先級可以基於分組中包括的兩個以上子任務的優先級來確定,例如,將分組的優先級確定為兩個以上子任務的最高優先級,或者將分組的優先級確定為兩個以上子任務的平均優先級,等等。分組之間的依賴關係可以基於不同分組包括的子任務之間的依賴關係確定,例如,假設分組1中的1個子任務依賴於分組2中的1個子任務,則確定分組1依賴於分組2,等等,本公開實施例不限於此。
在一些實施例中,還可以基於所述分散式系統的當前資源狀態資訊和每個分組的資源需求資訊,確定所述每個分組的預選節點集合,並按照一定次序依次從每個分組的預選節點集合中確定所述分組的目標節點。
在本公開實施例中,首先對整個任務進行目標節點的確定,例如執行以上預選和優選操作,最終得到整個任務對應的目標節點的資訊,然後再將任務分拆到子任務級別做一次綁定,即以子任務為單位進行目標節點的綁定。
在一些實施例中,在分散式系統中的當前可用資源不滿足所述任務的多個子任務所需的總資源的情況下,或者在為所述多個子任務中至少一個子任務確定對應的目標節點不成功的情況下,可以對所述任務包括的多個子任務均進行延遲分配。所述延遲分配,可以是在下一個分配週期對所述任務包括的多個子任務進行分配。在下一個分配週期,仍然是在分散式系統中的當前可用資 源滿足所述任務的多個子任務所需的總資源的情況下,才分別為所述任務的多個子任務分配對應的目標節點。如果在下一個分配週期,分散式系統中的當前可用資源仍不滿足所述任務的多個子任務所需的總資源,則繼續進行延遲分配。
在一些實施例中,每確定當前子任務或分組對應的目標節點之後,可以進行當前子任務或分組與對應的目標節點的虛擬分配,或者進行當前子任務或當前分組與對應的目標節點上的資源的虛擬綁定。而在確定分散式系統中的當前可用資源不滿足所述任務的多個子任務所需的總資源的情況下,例如,為某個子任務找不到對應的目標節點的情況下,可以將上述虛擬分配或虛擬綁定視為失效,從而使得其對應的目標節點和其上資源可以分配給其他任務。
在一些實施例中,在分別為所述任務的多個子任務分配對應的目標節點之後,可以對所述任務的多個子任務進行同步調度。
應當說明的是,在本公開實施例中,分配是指將子任務分發到對應的目標節點,調度是指在將子任務分發到對應的目標節點之後,由對應的目標節點執行子任務。
如圖4所示,在傳統的調度方式中,為了實現gang scheduling,調度器會按次序處理任務中的多個子任務,並當一個子任務可以被調度時即刻將該子任務實際分配(並非指本公開實施例所述的模擬分配)到對應的目標節點,並佔用目標節點上的資 源對該子任務進行調度。對一個任務來說,該任務中的每個子任務在分配時的當前可用資源是動態變化,逐漸變少的,這種調度方式稱為task by task的調度方式。而且,在進行子任務的調度時,並沒有將同一個任務中的多個子任務的調度情況與資源需求進行統籌考慮,導致每次分配都是獨立的行為。而在實際情況中,同一個任務中的多個子任務之間往往存在一些關聯,例如,一些待調度任務往往伴隨著大量的通信需求,如果一個任務的某些子任務被分配到通信開銷很大的多個節點上,將會顯著影響整個任務的運行效率。
本公開實施例中則是以任務為粒度進行子任務分配和調度。如圖5所示,首先仍然按照優先級獲取所有任務,對於每一個任務,統籌考慮整個任務,只有在分散式系統中的當前可用資源滿足任務的多個子任務所需的總資源的情況下,才分別為所述任務的多個子任務分配對應的目標節點,然後對所述多個子任務進行同步調度,即以任務為單位進行資源分配和調度。
區別於之前按照子任務的需求做task by task的調度方式,本公開實施例在為任務選擇節點時統籌考慮了整個任務,通過將整個任務作為調度的最小單位,能夠更好地利用任務內各個子任務的相互關係與需求情況,為整個任務從叢集中選擇出更加合適的調度節點,從而提高任務的運行效率和叢集的資源利用效率。
如圖6所示,是本公開一些實施例的調度邏輯的示意圖。為了降低調度複雜度,對於各個待調度任務可做如下假設: (1)每一個任務擁有多個子任務;(2)每個子任務在資源需求上是同質的,即對資源的需求相同;(3)每個用戶提交的任務,在提交時指定了每個子任務對資源的需求量,並在整個任務處理過程中子任務的數目和各個子任務的資源需求量保持不變。
首先進行預選過程,剔除不能滿足用戶的任務的節點。具體來說包括以下步驟:
(1)對任務的每個子任務,可以基於所述分散式系統的當前資源狀態資訊和各個子任務的資源需求資訊,分別確定該子任務的預選節點集合,該子任務的預選節點集合之外的節點必然是無法支持該子任務在其上運行的。在這裡,任務可稱為job,子任務可稱為task。不同子任務的預選節點集合可能相同,也可能不同。
在一些可選例子中,可以從前面子任務的預選節點集合中,確定後面子任務的預選節點,其中子任務的順序可選地可以基於子任務的優先級確定。例如,假設分散式系統中包括節點1至節點5,一個任務包括子任務1、子任務2和子任務3,則可以先為子任務1確定預選節點,假設為節點1,節點2和節點3;然後,從節點1,節點2和節點3中確定子任務2的預選節點,假設為節點2和節點3;再從節點2和節點3中確定子任務3的預選節點,假設為節點3。通過這種確定預選節點集合的方式,對於有一定量 的通信需求的任務,尤其是通信密集型任務來說,能夠提高確定預選節點集合的效率,進而提高任務分配效率。
(2)對預選節點集合中每個預選節點進行驗證,確定該預選節點上的總資源是否滿足分配到該預選節點上的所有子任務的總資源需求。若是,則進行優選過程,否則,重新進行預選過程。
其中,該步驟是可選的,預選節點的驗證可以提高整個任務分配的可靠性。在進行預選過程之前,還可以先進行節點集合分割,即,對各個節點進行分組,分組的依據可以是節點所屬的叢集,即,將不同叢集上的節點劃分為不同的分組。通過進行節點集合分割,可以使不同的任務僅被分配到特定分組的節點上。
然後,進行優選過程,選擇出最適合用戶的任務的目標節點。具體來說,可以包括以下步驟:
(1)通過用戶任務中的用戶提供資訊與調度器的歷史經驗,獲取任務在訓練過程中的計算量與通信量,並根據計算量與通信量判斷用戶的任務是計算密集型還是通信密集型。
在一些可選例子中,任務類型的確定也可以在以上預選過程中或預選過程之前執行,並基於任務類型進行子任務的預選節點集合的確定。
在一些可選例子中,基於任務類型,進行優選過程中多個子任務目標節點的確定。如果是通信密集型任務,把該任務置放(即分配)到最少數量的物理節點(即目標節點)上,具體分配到的物理節點的數量由節點的可用資源與任務所需的資源共同決定, 如果不能滿足這種置放約束則對任務中的多個子任務均延遲分配。如果是計算密集型任務,則放寬這種置放約束,即使無法滿足最少物理節點,只要可以選擇出資源足夠的節點滿足任務需求就進行分配,否則就延遲分配。
(2)對叢集節點按照空余資源進行從大到小打分排序,得到預選節點集合到任務的映射的分值,其中,預選節點的分值可以根據分散式系統的叢集中的節點負載和節點資源碎片情況來確定。節點負載是指叢集中的各個節點當前時刻的當前可用資源總量和資源使用量。資源碎片情況是指節點上的資源分佈。
(3)對所有上一步選出的節點,從高分到低分依次將任務的task進行置放,直到不能置放或任務的全部task都被置放。
(4)任務狀態檢查。如果任務還有空餘task沒有置放,說明叢集資源不夠,分配失敗。則釋放任務所佔用的資源,延遲分配。如果job沒有空餘task,並且任務類型是通信密集型,則判斷是否滿足最少節點要求。滿足則分配成功,不滿足則分配失敗並且釋放資源,延遲分配。
本公開實施例的方法可以應用於任務編排系統或雲平臺,所述任務編排系統可基於Kubernetes等平臺實現。
本領域技術人員可以理解,在具體實施方式的上述方法中,各步驟的撰寫順序並不意味著嚴格的執行順序而對實施過程構成任何限定,各步驟的具體執行順序應當以其功能和可能的內在邏輯確定。
如圖7所示,本公開實施例還提供一種任務調度裝置,所述裝置包括:獲取模組701,用於獲取任務的資訊,所述任務的資訊包括所述任務的任務類型和資源需求資訊的至少一者;第一分配模組702,用於根據所述任務的資訊,分別為所述任務包括的多個子任務分配目標節點。
在一些實施例中,所述任務的資源需求資訊為所述任務包括的多個子任務的資源需求資訊;該第一分配模組702還在分散式系統中的當前可用資源滿足所述任務的多個子任務的資源需求資訊對應的總資源的情況下,分別為所述任務的多個子任務分配對應的目標節點。
在一些實施例中,所述裝置還包括:第一確定模組,用於基於所述分散式系統的當前資源狀態資訊和所述多個子任務的資源需求資訊,為所述多個子任務確定目標節點;所述第一分配模組用於:在成功為所述多個子任務中的每個子任務確定對應的目標節點的情況下,分別為所述任務的多個子任務分配對應的目標節點。
在一些實施例中,所述裝置還包括:第一確定模組,用於基於所述分散式系統的當前資源狀態資訊和所述多個子任務的資源需求資訊,為所述多個子任務確定目標節點;所述第一分配模組用於:在成功為所述多個子任務中的每個子任務確定對應的目標節點的情況下,分別為所述任務的多個子任務分配對應的目標節 點。
在一些實施例中,所述第一確定模組用於:基於所述分散式系統的當前資源狀態資訊和所述多個子任務的資源需求資訊,按照特定順序依次確定多個子任務對應的目標節點。
在一個可選例子中,所述多個子任務的資源需求資訊包括所述多個子任務中每個子任務的資源需求資訊,其中,所述資源需求資訊可以包括所需的資源類型和每種類型的資源數量,或者進一步包括其他資訊。
在一個可選例子中,所述分散式系統的當前資源狀態資訊可以包括所述分散式系統中多個節點的當前狀態資訊,其中,當前狀態資訊用於指示資源是否可用、可用資源的類型和數量、負載情況、拓撲連接資訊中的至少一種,或者進一步包括其他資訊。
在一些實施例中,所述裝置還包括:更新模組,用於在每次確定為一個子任務分配的目標節點之後,更新分散式系統的當前資源狀態資訊,並基於更新後的當前資源狀態資訊確定下一個子任務對應的目標節點。
在一些實施例中,所述多個子任務的目標節點的依次確定的順序是按照子任務的優先級、子任務之間的依賴關係中的至少一項得到的。
在一些實施例中,所述第一確定模組包括:第一確定單元,用於基於所述分散式系統的當前資源狀態資訊和所述多個子任務的資源需求資訊,依次為所述多個子任務確定目標節點;更新單 元,用於在每確定一個子任務的目標節點後,基於所述一個子任務的資源需求資訊,更新所述分散式系統的當前資源狀態資訊。
在一些實施例中,所述裝置還包括:第二確定模組,用於在未能成功為所述多個子任務中的至少一個子任務確定對應的目標節點的情況下,確定所述分散式系統的當前可用資源不滿足所述多個子任務中每個子任務所需求的資源。
在一些實施例中,所述第一確定單元包括:確定子單元,用於基於所述分散式系統的當前資源狀態資訊和所述多個子任務的資源需求資訊,確定所述多個子任務中每個子任務的預選節點集合;選擇子單元,用於從所述多個子任務中每個子任務的預選節點集合中選擇所述每個子任務的目標節點。
其中,不同子任務的預選節點集合可以相同或不同。在一些例子中,多個子任務可以具有相同的預選節點集合。
在一些實施例中,所述確定子單元用於:基於所述分散式系統的當前資源狀態資訊和每個子任務的資源需求資訊,確定所述每個子任務的預選節點集合。
多個子任務的預選節點集合的確定可以是獨立的,相互之間不存在依賴關係,例如,可以並行執行或者以任意先後順序執行。例如,多個子任務的預選節點集合是基於相同的分散式系統的當前資源狀態資訊確定的,也就是說,分散式系統的當前資源狀態資訊在預選過程中不進行更新。例如,每個子任務的預選節點集合的確定只跟自己的資源需求資訊有關係,而與其他子任務的資源 需求資訊無關。
在一些實施例中,所述確定子單元用於:按照特定順序依次確定所述多個子任務中每個子任務的預選節點集合,其中,所述多個子任務中第一子任務的預選節點集合中的預選節點是從所述多個子任務中第二子任務的預選節點集合選取的,其中,所述第二子任務的順序位於所述第一子任務之前。
在一些實施例中,按照特定順序依次從所述多個子任務中每個子任務的預選節點中選擇所述每個子任務的目標節點,其中,優先選擇所述多個子任務中第二子任務的目標節點作為所述多個子任務中第一子任務的目標節點,其中,所述第二子任務的順序位於所述第一子任務之前。
在一些實施例中,所述選擇子單元用於:基於所述分散式系統的當前資源狀態資訊,從所述多個子任務中第一子任務的預選節點集合中確定所述第一子任務的目標節點;基於所述第一子任務的資源需求資訊,更新所述分散式系統的當前資源狀態資訊,並基於所述分散式系統的更新後的當前資源狀態資訊,從所述多個子任務中第二子任務的預選節點集合中確定所述第二子任務的目標節點。
在一個可選例子中,基於第一子任務的預選節點集合中每個預選節點的當前狀態資訊,從所述第一子任務的預選節點集合中確定所述第一子任務的目標節點,並基於所述第一子任務的所需資源資訊,更新所述第一子任務的目標節點的當前狀態資訊。
在一些實施例中,所述選擇子單元用於:根據所述任務的任務類型,確定每個子任務的預選節點集合中包含的預選節點的分值;基於每個子任務的預選節點集合中包含的預選節點的分值,從所述每個子任務的預選節點集合中選擇所述每個子任務的目標節點。
在一個可選例子中,基於所述任務的任務類型,確定所述預選節點集合中每個預選節點的分值確定策略。
在一些實施例中,所述裝置還包括:第三確定模組,用於確定所述任務的任務類型;其中,所述多個子任務對應的目標節點是基於所述任務的任務類型確定的。
在一些實施例中,所述第一分配模組包括:分組單元,用於將所述任務的多個子任務劃分為至少一個分組,其中,每個分組包括所述多個子任務中的至少一個子任務;分配單元,用於分別為所述至少一個分組中每個分組分配對應的目標節點,其中,同一分組中的各個子任務分配到同一目標節點。
在一些實施例中,所述分組單元用於:根據所述任務的任務類型,將所述任務的多個子任務劃分為至少一個分組。
在一些實施例中,所述任務的任務類型為計算密集型或通信密集型。
在一些實施例中,所述分組單元用於:在所述任務的任務類型為通信密集型的情況下,根據所述任務的多個子任務的資源需求資訊,確定所述多個子任務所需的總節點數量,並根據所述總 節點數量,將所述任務的多個子任務劃分為至少一個分組。
在一些實施例中,在所述任務的任務類型為計算密集型的情況下,將所述多個子任務中的每個子任務作為一個分組。
在一些實施例中,分別為所述至少一個分組中每個分組確定預選節點集合,並依次從所述至少一個分組中每個分組的預選節點集合中選取所述分組的目標節點。
在一些實施例中,所述第一分配模組還基於所述任務的任務類型,為所述任務的多個子任務確定目標節點;在為所述任務的多個子任務均成功確定對應的目標節點的情況下,為所述任務包括的多個子任務分配目標節點。
在一些實施例中,所述裝置還包括:延遲模組,用於在為所述子任務中的至少一個子任務確定對應的目標節點不成功的情況下,對所述任務的多個子任務均進行延遲分配。
在一些實施例中,所述延遲模組在分散式系統中的當前可用資源不滿足所述任務的多個子任務的資源需求資訊對應的總資源的情況下,對所述任務包括的多個子任務均進行延遲分配。
在一些實施例中,所述裝置還包括:調度模組,用於在分別為所述任務的多個子任務分配對應的目標節點之後,對所述任務的多個子任務進行同步調度。
在一些實施例中,所述裝置應用於任務編排系統。
在一些實施例中,本公開實施例提供的裝置具有的功能或包含的模組可以用於執行上文方法實施例描述的方法,其具體 實現可以參照上文方法實施例的描述,為了簡潔,這裡不再贅述。
以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的模組可以是或者也可以不是物理上分開的,作為模組顯示的部件可以是或者也可以不是物理模組,即可以位於一個地方,或者也可以分佈到多個網路模組上。可以根據實際的需要選擇其中的部分或者全部模組來實現本說明書方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。
本說明書裝置的實施例可以應用在計算機設備上,例如伺服器或終端設備。裝置實施例可以通過軟體實現,也可以通過硬體或者軟硬體結合的方式實現。以軟體實現為例,作為一個邏輯意義上的裝置,是通過其所在文件處理的處理器將非揮發性記憶體中對應的計算機程式指令讀取到隨機存取記憶體中,再從隨機存取記憶體中讀取到處理器中運行形成的。從硬體層面而言,如圖8所示,為本說明書裝置所在計算機設備的一種硬體結構圖,除了圖8所示的處理器801、隨機存取記憶體802、網路介面803、以及非揮發性記憶體804之外,實施例中裝置所在的伺服器或電子設備,通常根據該計算機設備的實際功能,還可以包括其他硬體,對此不再贅述。
相應地,本公開實施例還提供一種計算機儲存媒體,其上儲存有計算機程式,該程式被處理器執行時實現任一實施例所述的方法。
相應地,本公開實施例還提供一種計算機設備,包括記憶體、處理器及儲存在記憶體上並可在處理器上運行的計算機程式,所述處理器執行所述程式時實現任一實施例所述的方法。
本公開可採用在一個或多個其中包含有程式代碼的儲存媒體(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的計算機程式產品的形式。計算機可用儲存媒體包括永久性和非永久性、可移動和非可移動媒體,可以由任何方法或技術來實現資訊儲存。資訊可以是計算機可讀命令、數據結構、程式的模組或其他數據。計算機的儲存媒體的例子包括但不限於:相變隨機存取記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可擦除可編程唯讀記憶體(EEPROM)、快閃記憶體或其他隨機存取記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁碟儲存或其他磁性儲存設備或任何其他非傳輸媒體,可用於儲存可以被計算設備訪問的資訊。
本領域技術人員在考慮說明書及實踐這裡公開的說明書後,將容易想到本公開的其它實施方案。本公開旨在涵蓋本公開的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本公開的一般性原理並包括本公開未公開的本技術領域中的公知常識或慣用技術手段。說明書和實施例僅被視為示例性的,本公開的真正範圍和精神由下面的申請專利範圍指出。
應當理解的是,本公開並不局限於上面已經描述並在附圖中示出的精確結構,並且可以在不脫離其範圍進行各種修改和改變。本公開的範圍僅由所附的權利要求來限制。
以上所述僅為本公開的較佳實施例而已,並不用以限制本公開,凡在本公開的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本公開保護的範圍之內。
201:獲取任務的資訊,所述任務的資訊包括所述任務的任務類型和資源需求資訊的至少一者
202:根據所述任務的資訊,分別為所述任務的多個子任務分配目標節點

Claims (21)

  1. 一種任務調度方法,所述方法應用於計算機設備,所述計算機設備包括處理器與儲存器,所述方法包括:由所述處理器獲取任務的資訊,所述任務包括多個子任務,所述資訊包括所述任務的任務類型和資源需求資訊的至少一者,所述任務的資源需求資訊為所述任務包括的所述多個子任務的資源需求資訊;在分散式系統中的當前可用資源滿足所述多個子任務的所述資源需求資訊對應的總資源的情況下,由所述處理器分別為所述多個子任務分配對應的目標節點。
  2. 如請求項1所述的任務調度方法,更包括:由所述處理器基於所述分散式系統的當前資源狀態資訊和所述多個子任務的所述資源需求資訊,為所述多個子任務確定目標節點;所述在分散式系統中的當前可用資源滿足所述多個子任務的所述資源需求資訊對應的總資源的情況下,由所述處理器分別為所述多個子任務分配對應的目標節點,包括:在成功為所述多個子任務中的每個子任務確定對應的目標節點的情況下,由所述處理器分別為所述多個子任務分配對應的目標節點。
  3. 如請求項2所述的任務調度方法,其中,所述由所述處理器基於所述分散式系統的當前資源狀態資訊和所述多個子 任務的所述資源需求資訊,為所述多個子任務確定目標節點,包括:由所述處理器基於所述分散式系統的所述當前資源狀態資訊和所述多個子任務的所述資源需求資訊,依次為所述多個子任務確定目標節點;在每確定一個子任務的目標節點後,由所述處理器基於所述一個子任務的資源需求資訊,更新所述分散式系統的所述當前資源狀態資訊。
  4. 如請求項2或3所述的任務調度方法,其中,在未能成功為所述多個子任務中的至少一個子任務確定對應的目標節點的情況下,由所述處理器確定所述分散式系統的所述當前可用資源不滿足所述多個子任務中每個子任務所需求的資源。
  5. 如請求項2至3中任一項所述的任務調度方法,其中,所述由所述處理器基於所述分散式系統的當前資源狀態資訊和所述多個子任務的所述資源需求資訊,為所述多個子任務確定目標節點,包括:由所述處理器基於所述分散式系統的所述當前資源狀態資訊和所述多個子任務的所述資源需求資訊,確定所述多個子任務中每個子任務的預選節點集合;由所述處理器從所述每個子任務的所述預選節點集合中選擇所述每個子任務的目標節點。
  6. 如請求項5所述的任務調度方法,其中,所述由所述處理器確定所述多個子任務中每個子任務的預選節點集合,包括:由所述處理器按照特定順序依次確定所述每個子任務的所述預選節點集合,其中,所述多個子任務中第一子任務的所述預選節點集合中的預選節點是從所述多個子任務中第二子任務的所述預選節點集合選取的,其中,所述第二子任務的順序位於所述第一子任務之前。
  7. 如請求項5所述的任務調度方法,其中,所述由所述處理器從所述每個子任務的所述預選節點集合中選擇所述每個子任務的目標節點,包括:由所述處理器按照特定順序依次從所述每個子任務的所述預選節點集合中選擇所述每個子任務的目標節點,其中,優先選擇所述多個子任務中第二子任務的目標節點作為所述多個子任務中第一子任務的目標節點,其中,所述第二子任務的順序位於所述第一子任務之前。
  8. 如請求項5所述的任務調度方法,其中,所述由所述處理器從所述每個子任務的所述預選節點集合中選擇所述每個子任務的目標節點,包括:由所述處理器根據所述任務的所述任務類型,確定所述每個子任務的所述預選節點集合中包含的預選節點的分值;由所述處理器基於所述每個子任務的所述預選節點集合中包 含的預選節點的分值,從所述每個子任務的所述預選節點集合中選擇所述每個子任務的目標節點。
  9. 如請求項2或3所述的任務調度方法,其中,所述多個子任務依次進行目標節點的確定的順序是基於子任務的優先級、子任務之間的依賴關係中的至少一項確定的。
  10. 如請求項1至3任意一項所述的任務調度方法,更包括:確定所述任務的所述任務類型;由所述處理器基於所述任務的所述任務類型,分別為所述多個子任務分配對應的目標節點。
  11. 如請求項1至3任意一項所述的任務調度方法,其中,所述由所述處理器分別為所述多個子任務分配對應的目標節點,包括:由所述處理器將所述多個子任務劃分為至少一個分組,其中,每個分組包括所述多個子任務中的至少一個子任務;由所述處理器分別為所述至少一個分組中每個分組分配對應的目標節點,其中,同一分組中的各個子任務分配到同一目標節點。
  12. 如請求項11所述的任務調度方法,其中,所述由所述處理器將所述多個子任務劃分為至少一個分組,包括:由所述處理器根據所述任務的所述任務類型,將所述多個子任務劃分為至少一個分組。
  13. 如請求項10所述的任務調度方法,其中,所述任務的所述任務類型為計算密集型或通信密集型。
  14. 如請求項11所述的任務調度方法,其中,所述由所述處理器將所述多個子任務劃分為至少一個分組,包括:在所述任務的所述任務類型為通信密集型的情況下,由所述處理器根據所述多個子任務的所述資源需求資訊,確定所述多個子任務所需的總節點數量,並根據所述總節點數量,將所述多個子任務劃分為至少一個分組;和/或在所述任務的所述任務類型為計算密集型的情況下,由所述處理器將所述多個子任務中的每個子任務作為一個分組。
  15. 如請求項10所述的任務調度方法,其中,所述由所述處理器基於所述任務的所述任務類型,分別為所述多個子任務分配對應的目標節點,包括:由所述處理器基於所述任務的所述任務類型,為所述多個子任務確定目標節點;在為所述多個子任務均成功確定對應的目標節點的情況下,由所述處理器為所述多個子任務分配目標節點。
  16. 如請求項15所述的任務調度方法,更包括:在為所述子任務中的至少一個子任務確定對應的目標節點不成功的情況下,由所述處理器對所述多個子任務均進行延遲分配。
  17. 如請求項1至3任意一項所述的任務調度方法,更包括:在所述分散式系統中的所述當前可用資源不滿足所述多個子任務的所述資源需求資訊對應的所述總資源的情況下,由所述處理器對所述多個子任務均進行延遲分配。
  18. 如請求項1至3任意一項所述的任務調度方法,更包括:在分別為所述多個子任務分配對應的目標節點之後,由所述處理器對所述多個子任務進行同步調度。
  19. 一種任務調度裝置,包括:獲取模組,用於獲取任務的資訊,所述任務包括多個子任務,所述資訊包括所述任務的任務類型和資源需求資訊的至少一者,所述任務的資源需求資訊為所述任務包括的所述多個子任務的資源需求資訊;第一分配模組,用於在分散式系統中的當前可用資源滿足所述多個子任務的所述資源需求資訊對應的總資源的情況下,分別為所述多個子任務分配對應的目標節點。
  20. 一種計算機可讀儲存媒體,其上儲存有計算機程式,該程式被處理器執行時實現請求項1至18任意一項所述的任務調度方法。
  21. 一種計算機設備,包括記憶體、處理器及儲存在所述記憶體上並可在所述處理器上運行的計算機程式,所述處 理器執行所述程式時實現請求項1至18任意一項所述的任務調度方法。
TW110108474A 2020-03-11 2021-03-10 任務調度方法和裝置、儲存媒體及計算機設備 TWI786564B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN202010165543.4A CN113391886A (zh) 2020-03-11 2020-03-11 任务调度方法和装置
CN202010165763.7 2020-03-11
CN202010165763.7A CN113391914A (zh) 2020-03-11 2020-03-11 任务调度方法和装置
CN202010165543.4 2020-03-11

Publications (2)

Publication Number Publication Date
TW202134870A TW202134870A (zh) 2021-09-16
TWI786564B true TWI786564B (zh) 2022-12-11

Family

ID=77671227

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110108474A TWI786564B (zh) 2020-03-11 2021-03-10 任務調度方法和裝置、儲存媒體及計算機設備

Country Status (4)

Country Link
JP (1) JP2022539955A (zh)
KR (1) KR20220002547A (zh)
TW (1) TWI786564B (zh)
WO (1) WO2021180092A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113961328B (zh) * 2021-10-26 2022-07-19 深圳大学 一种任务处理方法、装置、存储介质及电子设备
CN114020434A (zh) * 2021-11-09 2022-02-08 中国建设银行股份有限公司 一种任务处理方法、装置、电子设备及存储介质
CN114546623B (zh) * 2022-03-01 2022-12-27 淮安市第二人民医院 一种基于大数据***的任务调度方法和***
WO2024069843A1 (ja) * 2022-09-29 2024-04-04 楽天モバイル株式会社 マイクロサービスの分散デプロイメント制御
CN115658271B (zh) * 2022-11-01 2023-07-21 中科雨辰科技有限公司 一种基于目标任务列表获取目标任务对象的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201317910A (zh) * 2011-10-08 2013-05-01 Broadcom Corp 用於與社交網路系統交互的裝置電路、用於分配在社交網路圈中之資源的方法及用於對社交裝置進行控制的方法
TWI493481B (zh) * 2011-10-08 2015-07-21 美國博通公司 一種用於表現社交網路圈資源的裝置與方法
CN106502791A (zh) * 2016-10-14 2017-03-15 浪潮电子信息产业股份有限公司 一种任务分配方法及装置
CN110187960A (zh) * 2019-04-23 2019-08-30 广东省智能制造研究所 一种分布式资源调度方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104253850A (zh) * 2014-01-07 2014-12-31 深圳市华傲数据技术有限公司 一种任务分布式调度方法和***
US10439890B2 (en) * 2016-10-19 2019-10-08 Tata Consultancy Services Limited Optimal deployment of fog computations in IoT environments
CN107135257A (zh) * 2017-04-28 2017-09-05 东方网力科技股份有限公司 一种节点集群中任务分配的方法、节点和***
CN107291545B (zh) * 2017-08-07 2019-12-10 星环信息科技(上海)有限公司 计算集群中多用户的任务调度方法及设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201317910A (zh) * 2011-10-08 2013-05-01 Broadcom Corp 用於與社交網路系統交互的裝置電路、用於分配在社交網路圈中之資源的方法及用於對社交裝置進行控制的方法
TWI493481B (zh) * 2011-10-08 2015-07-21 美國博通公司 一種用於表現社交網路圈資源的裝置與方法
CN106502791A (zh) * 2016-10-14 2017-03-15 浪潮电子信息产业股份有限公司 一种任务分配方法及装置
CN110187960A (zh) * 2019-04-23 2019-08-30 广东省智能制造研究所 一种分布式资源调度方法及装置

Also Published As

Publication number Publication date
WO2021180092A1 (zh) 2021-09-16
KR20220002547A (ko) 2022-01-06
JP2022539955A (ja) 2022-09-14
TW202134870A (zh) 2021-09-16

Similar Documents

Publication Publication Date Title
TWI786564B (zh) 任務調度方法和裝置、儲存媒體及計算機設備
Polo et al. Performance-driven task co-scheduling for mapreduce environments
CN103593242B (zh) 基于Yarn框架的资源共享控制***
US9092266B2 (en) Scalable scheduling for distributed data processing
US8234652B2 (en) Performing setup operations for receiving different amounts of data while processors are performing message passing interface tasks
US8108876B2 (en) Modifying an operation of one or more processors executing message passing interface tasks
US20170024251A1 (en) Scheduling method and apparatus for distributed computing system
CN112416585B (zh) 面向深度学习的gpu资源管理与智能化调度方法
US20090064165A1 (en) Method for Hardware Based Dynamic Load Balancing of Message Passing Interface Tasks
CN111381950A (zh) 一种面向边缘计算环境基于多副本的任务调度方法和***
CN112052068A (zh) 一种Kubernetes容器平台CPU绑核的方法与装置
WO2024120205A1 (zh) 一种应用性能优化方法、装置、电子设备及存储介质
CN113342477A (zh) 一种容器组部署方法、装置、设备及存储介质
CN114356543A (zh) 一种基于Kubernetes的多租户机器学习任务资源调度方法
CN113391914A (zh) 任务调度方法和装置
CN111459684A (zh) 面向多处理器架构的云计算资源融合调度管理方法、***及介质
CN114386560A (zh) 数据处理方法和设备
Ungureanu et al. Kubernetes cluster optimization using hybrid shared-state scheduling framework
Shah et al. Dynamic multilevel hybrid scheduling algorithms for grid computing
US20210390405A1 (en) Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof
Pastorelli et al. Practical size-based scheduling for MapReduce workloads
CN116157778A (zh) 共享物理主机上混合集中分布式调度的***和方法
CN112948113A (zh) 一种集群资源管理调度方法、装置、设备及可读存储介质
Nzanywayingoma et al. Task scheduling and virtual resource optimising in Hadoop YARN-based cloud computing environment
Thai et al. Algorithms for optimising heterogeneous Cloud virtual machine clusters