TW202125274A - 資源調度方法及裝置、電子設備和電腦可讀儲存介質 - Google Patents
資源調度方法及裝置、電子設備和電腦可讀儲存介質 Download PDFInfo
- Publication number
- TW202125274A TW202125274A TW109120254A TW109120254A TW202125274A TW 202125274 A TW202125274 A TW 202125274A TW 109120254 A TW109120254 A TW 109120254A TW 109120254 A TW109120254 A TW 109120254A TW 202125274 A TW202125274 A TW 202125274A
- Authority
- TW
- Taiwan
- Prior art keywords
- resource
- task
- node
- scheduling
- score
- 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/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/48—Program initiating; Program switching, e.g. by interrupt
-
- 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]
-
- 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/5038—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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/5061—Partitioning or combining of resources
- G06F9/5077—Logical 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)
- Mathematical Physics (AREA)
- Mobile Radio Communication Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公開涉及一種資源調度方法及裝置、電子設備和電腦可讀儲存介質,所述方法包括:至少部分的根據目標任務的資源需求量、多個資源節點中每個資源節點的第一資源的當前資源剩餘量以及第二資源的可用資源總量,確定各資源節點的第一調度分數;至少部分的根據各資源節點的所述第一調度分數,確定目標資源節點。
Description
本公開涉及電腦技術領域,尤其涉及一種資源調度方法及裝置、電子設備和儲存介質。
隨著應用規模快速增長,對處理資源的調度的重要性越來越高,良好的調度可支持系統穩定高效運行。在相關技術中,在資源調度時,容易產生資源碎片,導致資源利用率較低。
本公開提出了一種資源調度方法及裝置、電子設備和儲存介質。
根據本公開的第一方面,提供了一種資源調度方法,包括:至少部分的根據目標任務的資源需求量、多個資源節點中每個資源節點的第一資源的當前資源剩餘量以及第二資源的可用資源總量,確定所述每個資源節點針對所述目標任務的第一調度分數,其中,所述第一資源包括深度學習資源,所述第二資源包括通用資源;至少部分的根據所述多個資源節點中每個資源節點的所述第一調度分數,在所述多個資源節點中確定用於處理所述目標任務的目標資源節點。
根據本公開的實施例的資源調度方法,可在調度處理資源時綜合考慮第一資源的當前資源剩餘量和第二資源的可用資源總量,確定第一調度分數,有利於減少資源碎片,提高資源利用率。
在一種可能的實現方式中,所述目標任務的資源需求量包括第一資源需求量和第二資源需求量;所述至少部分的根據所述目標任務的資源需求量、多個資源節點中每個資源節點的第一資源的當前資源剩餘量以及第二資源的可用資源總量,確定所述每個資源節點針對所述目標任務的第一調度分數,包括:根據所述目標任務的所述第一資源需求量和所述第一資源的所述當前資源剩餘量,得到第一分數;根據所述目標任務的所述第二資源需求量以及所述第二資源的所述可用資源總量,確定第二分數;基於所述第一分數和所述第二分數進行加權求和,得到所述第一調度分數。
透過這種方式,可綜合考慮第一資源剩餘量以及第二資源總量,來確定各資源節點的第一調度分數,可將目標任務的各任務單元集中分配到同一資源節點進行處理,減少碎片資源,提高資源利用效率,減少後續任務的等待時間。
在一種可能的實現方式中,所述方法還包括:根據所述多個資源節點中每個資源節點分配的任務類型以及所述目標任務的類型,確定所述每個資源節點的第二調度分數;所述至少部分的根據所述多個資源節點中每個資源節點的所述第一調度分數,在所述多個資源節點中確定用於處理所述目標任務的目標資源節點,包括:基於每個資源節點的所述第一調度分數和所述第二調度分數,確定所述每個資源節點的總調度分數;基於所述多個資源節點中每個資源節點的所述總調度分數,確定所述目標資源節點。
在一種可能的實現方式中,第一節點的第二調度分數高於第二節點的第二調度分數,其中,所述第一節點是所述多個資源節點中分配的任務類型與所述目標任務的類型相同的節點,所述第二節點是所述多個資源節點中分配的任務類型與所述目標任務的類型不同的節點。
在一種可能的實現方式中,所述方法還包括:至少部分的根據多個任務中每個任務的優先級和所述多個任務中每個任務包括的多個任務單元的平均資源需求量,對所述多個任務進行排序,獲得第一任務佇列(task queue),其中,所述多個任務包括所述目標任務;基於所述目標任務在所述第一任務佇列中的排序,對所述目標任務進行調度。
透過這種方式,可透過任務單元平均資源需求量作為排序依據,充分利用處理資源,提高資源利用率,減少資源的浪費。
在一種可能的實現方式中,所述至少部分的根據多個任務中每個任務的優先級和所述多個任務中每個任務包括的多個任務單元的平均資源需求量,對所述多個任務進行排序,獲得第一任務佇列,包括:根據所述多個任務中每個任務的優先級,確定所述多個任務的初始排序;在所述初始排序中存在至少兩個任務的優先級相同的情況下,根據所述至少兩個任務各自的平均資源需求量,確定所述至少兩個任務的目標排序。
在一種可能的實現方式中,所述至少部分的根據多個任務中每個任務的優先級和所述多個任務中每個任務包括的多個任務單元的平均資源需求量,對所述多個任務進行排序,獲得第一任務佇列,包括:至少部分的根據所述多個任務中每個任務的優先級、所述多個任務中每個任務包括的多個任務單元的平均資源需求量以及所述多個任務中每個任務的建立時間戳,對所述多個任務進行排序,獲得所述第一任務佇列。
根據本公開的第二方面,提供了一種資源調度裝置,包括:第一確定模組,用於至少部分的根據目標任務的資源需求量、多個資源節點中每個資源節點的第一資源的當前資源剩餘量以及第二資源的可用資源總量,確定所述每個資源節點針對所述目標任務的第一調度分數,其中,所述第一資源包括深度學習資源,所述第二資源包括通用資源;第二確定模組,用於至少部分的根據所述多個資源節點中每個資源節點的所述第一調度分數,在所述多個資源節點中確定用於處理所述目標任務的目標資源節點。
根據本公開的第三方面,提供了一種電子設備,包括:處理器;用於儲存所述處理器可執行指令的儲存器;其中,所述處理器被配置為:執行上述第一方面的資源調度方法。
根據本公開的第四方面,提供了一種電腦可讀儲存介質,其上儲存有電腦程式指令,所述電腦程式指令被處理器執行時,促使所述處理器實現上述第一方面的資源調度方法。
根據本公開的第五方面,提供了一種電腦程式產品,包括電腦可讀代碼,當電腦可讀代碼在設備上運行時,促使所述設備中的處理器執行用於實現上述第一方面的資源調度方法的指令。
應當理解的是,以上的一般描述和後文的細節描述僅是示例性和解釋性的,而非限制本公開。
根據下面參考附圖對示例性實施例的詳細說明,本公開的其它特徵及方面將變得清楚。
以下將參考附圖詳細說明本公開的各種示例性實施例、特徵和方面。附圖中相同的附圖標記表示功能相同或相似的元件。儘管在附圖中示出了實施例的各種方面,但是除非特別指出,不必按比例繪製附圖。
在這裡專用的詞「示例性」意為「用作例子、實施例或說明性」。這裡作為「示例性」所說明的任何實施例不必解釋為優於或好於其它實施例。
本文中術語「和/或」,僅僅是一種描述關聯對象的關聯關係,表示可以存在三種關係,例如,A和/或B,可以表示:單獨存在A,同時存在A和B,單獨存在B這三種情況。另外,本文中術語「至少一種」表示多種中的任意一種或多種中的至少兩種的任意組合,例如,包括A、B、C中的至少一種,可以表示包括從A、B和C構成的集合中選擇的任意一個或多個元素。
另外,為了更好的說明本公開,在下文的具體實施方式中給出了眾多的具體細節。本領域技術人員應當理解,沒有某些具體細節,本公開同樣可以實施。在一些實例中,對於本領域技術人員熟知的方法、手段、元件和電路未作詳細描述,以便於凸顯本公開的主旨。
圖1示出根據本公開實施例的資源調度方法的流程圖,如圖1所示,所述方法包括以下步驟。
在步驟S11中,至少部分的根據目標任務的資源需求量、多個資源節點中每個資源節點的第一資源的當前資源剩餘量以及第二資源的可用資源總量,確定所述每個資源節點針對所述目標任務的第一調度分數,其中,所述第一資源包括深度學習資源,所述第二資源包括通用資源。
在步驟S12中,至少部分的根據所述多個資源節點中每個資源節點的第一調度分數,在所述多個資源節點中確定用於處理所述目標任務的目標資源節點。
根據本公開的實施例的資源調度方法,可在調度資源時綜合考慮第一資源的當前資源剩餘量和第二資源的可用資源總量,確定第一調度分數,有利於減少資源碎片,提高資源利用率。
在一種可能的實現方式中,所述資源調度方法可以由終端設備或其它處理設備執行,其中,終端設備可以為用戶設備(User Equipment,UE)、移動設備、用戶終端、終端、蜂窩電話、無線電話、個人數位處理(Personal Digital Assistant,PDA)、手持設備、計算設備、車載設備、可穿戴設備等。其它處理設備可為台式機、伺服器或雲端伺服器等。在一些可能的實現方式中,該資源調度方法可以透過處理器調用儲存器中儲存的電腦可讀指令的方式來實現。
在一種可能的實現方式中,所述資源調度方法可用於伺服器中,用於在接收到任務處理請求時,為待處理的任務調度資源,並利用該資源來處理任務。
在一種可能的實現方式中,所述伺服器中可包括多個資源節點,每個資源節點均可用於處理所述任務,所述資源節點可包括第一資源和第二資源。在示例中,所述第一資源可以是深度學習資源(例如,圖形處理器(Graphics Processing Unit, GPU)資源、TPU(Tensor Processing Unit)資源、可程式化邏輯電(Field Programmable Gate Array, FPGA)等),第二資源可以是通用資源(例如,中央處理器(Central Processing Unit, CPU)資源和/或內存資源)。本公開對處理資源的類型不做限制。例如,當資源節點是物理機時,該資源節點包括物理機的所有資源。又例如,當資源節點是虛擬機時,透過特定的軟體和/或硬體CPU虛擬化技術,虛擬機的一個或多個虛擬CPU可以複用物理CPU,而對於GPU,可以將物理GPU的相關設備訊息直接透傳(passthrough)給虛擬機,供虛擬機使用。又例如,當資源節點是虛擬機時,可以透過GPU虛擬化技術,虛擬機的一個或多個虛擬GPU複用物理GPU,本公開實施例不限於此。
在一種可能的實現方式中,在所述伺服器的任務佇列中,可存在多個任務,可為任務佇列中的任務進行排序,以確定任務處理的順序,提高任務處理的效率。
在一種可能的實現方式中,所述任務可具有各自的優先級。例如,某個任務的優先級為高,另一任務的優先級為中,則優先級高的任務可被優先處理。在相關技術中,如果兩個或多個任務的優先級相同,可按照任務的建立時間(例如,任務建立的時間戳)來對優先級相同的任務進行排序。例如,建立時間較早的任務排在建立時間較晚的任務之前。但這種排序方式靈活性較差,且容易產生資源碎片。例如,資源節點A與資源節點B分別有8塊空閒GPU資源,現有任務T1與任務T2,其中任務T1與任務T2的優先級相同,但任務T1的建立時間早於任務T2,T1包括兩個任務單元,每個任務單元請求1塊GPU資源,而任務T2包含一個任務單元,請求7塊GPU資源。按照上述任務排序方式,可將任務T1排在任務T2之前,優先為任務T1調度處理資源。可能會將任務T1的兩個任務單元分配至同一個資源節點(例如資源節點A)進行處理,該資源節點此時剩餘6塊GPU資源,不足以處理任務T2的任務單元,因此,任務T2的任務單元可被分配至另一資源節點(例如資源節點B)進行處理。按照上述調度方式,資源節點B將會剩餘1塊空閒的GPU資源,若後續任務請求GPU的數量較大(例如,任務單元的資源需求量大於1塊GPU資源),則該碎片GPU資源(即,資源節點B的1塊空閒的GPU資源)可能造成資源的浪費。在一些示例中,1塊空閒的GPU資源可以是指1塊空閒的GPU。
在一種可能的實現方式中,還可按照任務單元平均資源需求量來排序,所述方法還包括:至少部分的根據多個任務中每個任務的優先級和多個任務中每個任務包括的多個任務單元的平均資源需求量,對多個任務進行排序,獲得第一任務佇列,其中,所述多個任務包括所述目標任務;基於所述目標任務在所述第一任務佇列中的排序,對所述目標任務進行調度。
在一種可能的實現方式中,如果兩個或多個任務的優先級相同,還可根據任務單元平均資源需求量來排序。至少部分的根據多個任務中每個任務的優先級和多個任務中每個任務包括的多個任務單元的平均資源需求量,對多個任務進行排序,獲得第一任務佇列,包括:根據多個任務中每個任務的優先級,確定多個任務的初始排序;在所述初始排序中存在至少兩個任務的優先級相同的情況下,根據所述至少兩個任務各自的平均資源需求量,確定所述至少兩個任務的目標排序。
在一種可能的實現方式中,可首先按照優先級對多個任務進行排序,獲得初始排序,即,優先級較高的任務排在優先級較低的任務之前。在所述初始排序中,可能存在至少兩個優先級相同的任務。例如,優先級為高的任務有兩個,優先級為中的任務有三個,優先級為低的任務有五個等,初始排序中可不區分優先級相同的任務的先後順序。
在一種可能的實現方式中,如果初始排序中存在至少兩個優先級相同的任務,可透過任務單元平均資源需求量對優先級相同的至少兩個任務進行排序,確定所述至少兩個任務的目標排序,例如,可將任務單元平均資源需求量較大的任務排在任務單元平均資源需求量較小的任務之前。
在示例中,資源節點A與資源節點B分別有8塊空閒GPU資源,現有任務T1與任務T2,其中任務T1與任務T2的優先級相同,T1包括兩個任務單元,每個任務單元請求1塊GPU資源,則任務T1的任務單元平均資源需求量為1塊GPU資源,而任務T2包含一個任務單元,請求7塊GPU資源,則任務T2的任務單元平均資源需求量為7塊GPU資源,可將任務T2排在任務T1之前,優先為任務T2調度處理資源。例如,可以將任務T2的一個任務單元分配至資源節點A進行處理,該資源節點此時剩餘1塊GPU資源,然後可以將任務T1的一個任務單元分配至資源節點A進行處理,可以將任務T2的另一個任務單元分配至另一資源節點(例如資源節點B)進行處理。按照上述調度方式,資源節點A無剩餘的GPU資源,不會產生碎片GPU資源,提高了資源利用率,減少了資源的浪費。
在一種可能的實現方式中,如果初始排序中存在至少兩個任務的優先級相同且任務單元平均資源需求量相同,可按照任務的建立時間來進行排序。至少部分的根據多個任務中每個任務的優先級和多個任務中每個任務包括的多個任務單元的平均資源需求量,對多個任務進行排序,獲得第一任務佇列,包括:至少部分的根據多個任務中每個任務的優先級、多個任務中每個任務包括的多個任務單元的平均資源需求量以及多個任務中每個任務的建立時間戳,對多個任務進行排序,獲得第一任務佇列。
在一種可能的實現方式中,在所述初始排序中,可能存在至少兩個優先級相同且任務單元平均資源需求量相同的任務。例如,優先級為高的任務有兩個,優先級為中的任務有三個,優先級為低的任務有五個等,其中,優先級為高的兩個任務(例如,任務T3和任務T4)的任務單元平均資源需求量也相同。在示例中,可透過這兩個任務的建立時間來確定兩個任務的順序。例如,任務T3的建立時間早於任務T4,則可根據任務T3和任務T4各自的時間戳,將任務T3排在任務T4之前。
在一種可能的實現方式中,可基於所述目標任務在所述第一任務佇列中的排序,對所述目標任務進行調度。例如,可在目標任務之前的任務處理完成後,為所述目標任務調度資源節點,以處理目標任務。
透過這種方式,將任務單元平均資源需求量引入排序依據,充分利用處理資源,提高資源利用率,減少資源的浪費。
在一種可能的實現方式中,在為任務排序後,可調度處理資源依次處理第一任務佇列中的任務。例如,可調度資源節點來處理當前任務,如,目標任務。
在一個例子中,可針對目標任務,計算各資源節點的分數,並使用分數最高的資源節點來處理目標任務。在示例中,可根據任務單元的資源需求量與各資源節點的資源總量來計算各資源節點的分數,例如,可根據任務單元的資源需求量與各資源節點的資源總量之間的比值來確定各資源節點的分數。這種計算方式可使資源總量較小的資源節點的分數較高,即,優先調度資源總量較小的資源節點來處理目標任務的各任務單元,從而使資源總量較大的資源節點被用於後續其他任務中,在後續其他任務中,如果出現資源需求量較大的任務,則可使用資源總量較大的資源節點來處理,減少資源需求量較大的任務的等待時間。但該調度方法僅考慮資源節點的資源總量(通常為固定值),可能存在資源總量較大的資源節點在資源剩餘量較少的情況下,依然優先調度資源總量較小的空閒資源節點,造成資源總量較大的資源節點中的少量剩餘資源浪費。
此外,上述調度方式還可能出現均勻占用多個資源節點,導致後續任務等待時間過長的情況。例如,伺服器中包括8個節點,每個節點包括8塊GPU資源。目標任務有8個任務單元,每個任務單元的資源需求量均為一塊GPU資源。則在確定各節點的分數時,每個節點的分數均相等,則可能將8個任務單元均勻分配至8個資源節點中,每個資源節點均被占用1塊GPU。如果後續任務中的某個任務單元的資源需求量為8塊GPU,則各資源節點均無法處理該任務,只能等待目標任務的任務單元處理完成後才可處理該任務,導致該任務等待時間過長。
在一些例子中,某些特定的任務(例如深度學習的任務或神經網路訓練任務等)需求的資源類型為GPU資源等深度學習資源(即,第一資源),而另一些任務可透過CPU資源和/或內存資源等通用資源(即,第二資源)來處理,還可能存在第一資源和第二資源共同處理的任務。隨著神經網路技術的發展,這種特定任務對於GPU資源的需求越來越大,需要對GPU資源的調度進行優化,以提高GPU資源利用率。
在一種可能的實現方式中,可根據目標任務的第一資源需求量和第二資源需求量、多個資源節點中每個資源節點的第一資源的當前資源剩餘量以及第二資源的可用資源總量,分別確定所述每個資源節點針對所述目標任務的第一調度分數。即,綜合考慮第一資源剩餘量以及第二資源的可用資源總量,來確定各資源節點的第一調度分數。
在一種可能的實現方式中,步驟S11可包括:根據所述目標任務的第一資源需求量和所述第一資源的當前資源剩餘量,得到第一分數;根據所述目標任務的第二資源需求量以及所述第二資源的可用資源總量,確定第二分數;基於第一分數和第二分數,得到所述第一調度分數。
在一種可能的實現方式中,可根據所述目標任務的第一資源需求量和所述第一資源的當前資源剩餘量,得到各資源節點的第一分數,例如,可透過目標任務的第一資源需求量和各資源節點的第一資源的當前資源剩餘量之比,獲得所述各資源節點的第一分數。
在一種可能的實現方式中,可根據所述目標任務的第二資源需求量以及所述第二資源的可用資源總量,確定各資源節點的第二分數,例如,可透過目標任務的第二資源需求量和各資源節點的第二資源的可用資源總量之比,獲得所述各資源節點的第二分數。如果資源節點具有多種第二資源(例如CPU和內存),則可使用各種第二資源需求量和各種第二資源的可用資源總量之比的平均值確定所述各資源節點的第二分數。
在一種可能的實現方式中,可以基於第一分數和第二分數的加權求和,得到第一調度分數,例如根據以下公式(1)確定第一調度分數:
其中,為第i(i為正整數)個資源節點的第一調度分數,為第一資源需求量,為第i個資源節點的第一資源剩餘量,為對CPU資源的需求量,為第i個資源節點的CPU可用資源總量,為內存需求量,為第i個資源節點的可用內存總量,為目標任務的權值,即第二權值。
β為可調參數,可以根據實際需求進行設置,其數值在某個具體應用場景中可以固定不變或者動態可變。在一些示例中,可根據任務的類型來確定第一權值β,例如,針對神經網路訓練任務,第一權值β可取較大的值。針對無需GPU資源的任務,第一權值可取較小的值。本公開對第一權值β的取值不做限制。
在另一些實施例中,可以基於第一分數和第二分數的加權平均值或算數平均值,得到第一調度分數,等等,本公開實施例對第一調度分數的具體實現不做限定。
在示例中,可根據第一調度分數來為目標任務調度資源節點。例如,伺服器中包括8個資源節點,每個資源節點包括8塊GPU資源。目標任務有8個任務單元,每個任務單元的資源需求量均為一塊GPU資源。由於計算第一調度分數時,考慮了第一資源需求量與第一資源剩餘量的比值,則在第一個任務單元被分配到某個資源節點後,該資源節點的第一資源剩餘量減少,從而使得該資源節點的第一調度分數增大,後續的任務單元可被優先分配到該資源節點,有利於各任務單元被儘量分配到同一個資源節點中,減少各任務單元被分配到多個資源節點中,占用多個資源節點的情況。
透過這種方式,可綜合考慮第一資源剩餘量以及第二資源的可用資源總量,來確定各資源節點的第一調度分數,可將目標任務的各任務單元儘量分配到同一資源節點進行處理,減少碎片資源,提高資源利用效率,減少後續任務的等待時間。
在一種可能的實現方式中,針對同一個任務,可能出現至少兩個資源節點的第一調度分數相同的情況。在該情況下,可根據第二調度分數,將任務分配到已處理相同類型任務的資源節點中進行處理,以減少碎片資源。
在一些實施例中,可以透過多個調度策略分別確定資源節點的調度分數,然後將資源節點的多個調度策略對應的調度分數進行綜合考量,得到該資源節點的總調度分數,並基於該總調度分數確定目標節點。
在一種可能的實現方式中,所述方法還包括:根據所述多個資源節點中每個資源節點分配的任務類型以及所述目標任務的類型,確定所述每個資源節點的第二調度分數。
在一些實施例中,基於資源節點的第一調度分數和第二調度分數,得到該資源節點的總調度分數。例如,基於第一調度分數和第二調度分數的加權求和,得到總調度分數,或者,基於第一調度分數和第二調度分數的加權平均值,得到總調度分數,等等,但本公開實施例對此不做限定。
在示例中,可將目標任務的各任務單元集中於正在處理與目標任務類型相同的任務的資源節點中,例如,目標任務為深度學習類型的任務,如果有兩個資源節點的第一調度分數相同,則可將目標任務的任務單元分配到正在處理深度學習任務的資源節點中。
在一種可能的實現方式中,可根據所述目標任務需求的資源類型,確定所述目標任務的目標類型,並在所述至少兩個資源節點中,將正在處理的任務的類型為所述目標類型的資源節點確定為所述目標節點。
在示例中,目標任務為深度學習類型的任務,深度學習類型的任務主要需求GPU資源,可根據任務需求的資源類型來確定目標任務以及各資源節點中正在處理的任務的類型。例如,資源節點A中正在處理的任務占用了2塊GPU資源,資源節點B空閒,可認為資源節點A中正在處理的任務與目標任務類型相同。或者,資源節點A中正在處理的任務占用了2塊GPU資源,資源節點B中正在執行的任務占用了CPU資源,而並未占用GPU資源,可認為資源節點A中正在處理的任務與目標任務類型相同。第一節點的第二調度分數高於第二節點的第二調度分數,其中,所述第一節點是所述多個資源節點中分配的任務類型與所述目標任務的類型相同的節點,所述第二節點是所述多個資源節點中分配的任務類型與所述目標任務的類型不同的節點。即,可使資源節點A獲得較高的第二調度分數。
在一種可能的實現方式中,步驟S12可包括:基於每個資源節點的第一調度分數和所述第二調度分數,確定所述每個資源節點的總調度分數;基於所述多個資源節點中每個資源節點的總調度分數,確定所述目標資源節點。例如,第二調度分數也可具有針對自身的計算策略的第二權值,可將第一調度分數與第二調度分數進行加權求和,獲得總調度分數,並根據總調度分數選擇資源節點。
在示例中,在計算總調度分數時,還可使用除以上描述的計算策略以外的其他計算策略,並可對各計算策略得到的分數進行加權求和,獲得總調度分數,例如,基於第一調度分數和第二調度分數得到第三調度分數,並基於第三調度分數和基於其他至少一個計算策略得到的至少一個第四調度分數,得到總調度分數。進一步地,可使用總調度分數最高的資源節點處理目標任務,即,作為目標資源節點。本公開對計算策略不做限制。
圖2示出根據本公開實施例的選擇目標節點的示意圖。如圖2所示,任務1和任務2均為深度學習類型的任務,資源需求量均為一塊GPU資源。資源節點A包括6塊GPU資源,資源節點B包括3塊GPU資源,但資源節點A中正在執行的任務已占用了3塊GPU資源,在確定資源節點A和資源節點B的第一調度分數時,由於GPU資源的資源剩餘量一致,則資源節點A的第一調度分數與資源節點B的第一調度分數可能相同。
在示例中,資源節點A中正在處理的任務占用了3塊GPU資源,可認為資源節點A中正在處理的任務與任務1的類型相同,可使資源節點A獲得較高的第二調度分數。在與第一調度分數相加後,資源節點A的總調度分數較高,從而,可以調度資源節點A來處理任務1。進一步地,資源節點A的資源剩餘量為2塊GPU資源,資源剩餘量小於資源節點B,因此,仍可調度資源節點A來處理任務2。使得任務1和任務2集中在資源節點A中進行處理,避免目標任務占用的資源節點過於分散,占用過多的資源節點,產生碎片資源,造成資源浪費。
根據本公開的實施例的資源調度方法,可透過任務單元平均資源需求量作為排序依據,充分利用處理資源,提高資源利用率,減少資源的浪費。並可綜合考慮第一資源剩餘量以及第二資源的可用資源總量,來確定各資源節點的第一調度分數,可將目標任務的各任務單元儘量分配到同一資源節點進行處理,減少碎片資源,提高資源利用效率,減少後續任務的等待時間。進一步地,可根據確定目標任務的資源類型以及各資源節點正在處理的任務的資源類型,儘量將任務集中在同一個資源節點中進行處理,避免占用過多的資源節點,產生碎片資源,造成資源浪費。
圖3示出根據本公開實施例的資源調度方法的應用示意圖,如圖3所示,在伺服器的任務佇列中,可存在多個任務(例如M個,M為正整數),可為任務佇列中的任務進行排序,例如,可根據任務優先級和任務單元平均資源需求量來排序,即,首先按照任務優先級來排序,如果序列中存在至少兩個任務的優先級相同,可將任務單元平均資源需求量較大的任務排在任務單元平均資源需求量較小的任務之前。
在一種可能的實現方式中,針對任務i,可使用多個計算策略來計算各資源節點的第一調度分數。例如,可首先使用公式(1)來計算各資源節點(例如,共N個資源節點,N為正整數)在各計算策略中的第一調度分數。
在一種可能的實現方式中,如果有至少兩個資源節點的第一調度分數相同,可根據第二調度分數,將任務分配到已處理相同類型任務的資源節點中進行處理,以減少碎片資源。例如,可採用其他計算策略,例如,如果任務i為深度學習類型的任務,請求的資源為GPU資源。資源節點A中正在處理的任務占用了2塊GPU資源,資源節點B空閒,可認為資源節點A中正在處理的任務與目標任務類型相同,可使資源節點A獲得更高的第二調度分數。如果資源節點A的第一調度資源分數與資源節點B的第一調度分數相同,則與各自第二調度分數相加後得到各自的總調度分數,資源節點A獲得的總調度分數較高,可使用資源節點A處理目標任務。即,將任務儘量集中在同一個資源節點中處理,減少碎片資源。
在一種可能的實現方式中,還可使用多個計算策略,例如,K個計算策略,並對各計算策略獲得的調度分數進行加權求和,可獲得各資源節點的總調度分數。並可將總調度分數最高的資源節點確定為目標資源節點(例如,資源節點j, j為整數,且j≤N)。
在一種可能的實現方式中,本公開的資源調度方法可用於伺服器中,可調度各資源節點來處理伺服器中的各個任務。例如,可用於人工智慧教學平台的伺服器中,可用於調度資源節點來處理各人工智慧教學任務或實驗任務。又例如,可用於監控系統的伺服器中,可用於調度各資源節點來處理人臉識別或人臉聚類等任務。本公開對調度方法的應用場景不做限制。
可以理解,本公開提及的上述各個方法實施例,在不違背原理邏輯的情況下,均可以彼此相互結合形成結合後的實施例,限於篇幅,本公開不再贅述。
此外,本公開還提供了資源調度裝置、電子設備、電腦可讀儲存介質、程式,上述均可用來實現本公開提供的任一種資源調度方法,相應技術方案和描述和參見方法部分的相應記載,不再贅述。
本領域技術人員可以理解,在具體實施方式的上述方法中,各步驟的撰寫順序並不意味著嚴格的執行順序而對實施過程構成任何限定,各步驟的具體執行順序應當以其功能和可能的內在邏輯確定。
圖4示出根據本公開實施例的資源調度裝置的方塊圖,如圖4所示,所述裝置包括:第一確定模組41和第二確定模組42。
第一確定模組41,用於至少部分的根據目標任務的資源需求量、多個資源節點中每個資源節點的第一資源的當前資源剩餘量以及第二資源的可用資源總量,確定所述每個資源節點針對所述目標任務的第一調度分數,其中,所述第一資源包括深度學習資源,所述第二資源包括通用資源。
第二確定模組42,用於至少部分的根據所述多個資源節點中每個資源節點的所述第一調度分數,在所述多個資源節點中確定用於處理所述目標任務的目標資源節點。
在一種可能的實現方式中,所述目標任務的資源需求量包括第一資源需求量和第二資源需求量;所述第一確定模組進一步用於:根據所述目標任務的第一資源需求量和所述第一資源的當前資源剩餘量,得到第一分數;根據所述目標任務的第二資源需求量以及所述第二資源的可用資源總量,確定第二分數;對所述第一分數和所述第二分數進行加權求和,得到所述第一調度分數。
在一種可能的實現方式中,所述裝置還包括:第三確定模組,用於根據所述多個資源節點中每個資源節點分配的任務類型以及所述目標任務的類型,確定所述每個資源節點的第二調度分數;所述第二確定模組進一步用於:基於每個資源節點的第一調度分數和所述第二調度分數,確定所述每個資源節點的總調度分數;基於所述多個資源節點中每個資源節點的總調度分數,確定所述目標資源節點。
在一種可能的實現方式中,第一節點的第二調度分數高於第二節點的第二調度分數,其中,所述第一節點是所述多個資源節點中分配的任務類型與所述目標任務的類型相同的節點,所述第二節點是所述多個資源節點中分配的任務類型與所述目標任務的類型不同的節點。
在一種可能的實現方式中,所述裝置還包括:第一獲得模組,用於至少部分的根據多個任務中每個任務的優先級和所述多個任務中每個任務包括的多個任務單元的平均資源需求量,對所述多個任務進行排序,獲得第一任務佇列,其中,所述多個任務包括所述目標任務;調度模組,用於基於所述目標任務在所述第一任務佇列中的排序,對所述目標任務進行調度。
在一種可能的實現方式中,所述第一獲得模組進一步用於:根據所述多個任務中每個任務的優先級,確定所述多個任務的初始排序;在所述初始排序中存在至少兩個任務的優先級相同的情況下,根據所述至少兩個任務各自的平均資源需求量,確定所述至少兩個任務的目標排序。
在一種可能的實現方式中,所述第一獲得模組進一步用於:至少部分的根據所述多個任務中每個任務的優先級、所述多個任務中每個任務包括的多個任務單元的平均資源需求量以及所述多個任務中每個任務的建立時間戳,對所述多個任務進行排序,獲得第一任務佇列。
在一些實施例中,本公開實施例提供的裝置具有的功能或包含的模組可以用於執行上文方法實施例描述的方法,其具體實現可以參照上文方法實施例的描述,為了簡潔,這裡不再贅述。
本公開實施例還提出一種電腦可讀儲存介質,其上儲存有電腦程式指令,所述電腦程式指令被處理器執行時,促使所述處理器實現上述資源調度的方法。電腦可讀儲存介質可以是非易失性電腦可讀儲存介質。
本公開實施例還提出一種電子設備,包括:處理器;用於儲存處理器可執行指令的儲存器;其中,所述處理器被配置為執行上述資源調度的方法。
電子設備可以被提供為終端、伺服器或其它形態的設備。
圖5是根據一示例性實施例示出的一種電子設備500的方塊圖。例如,電子設備500可以是移動電話,電腦,數位廣播終端,消息收發設備,遊戲控制台,平板設備,醫療設備,健身設備,個人數位助理等終端。
參照圖5,電子設備500可以包括以下一個或多個組件:處理組件502,儲存器504,電源組件506,多媒體組件508,音訊組件510,輸入/輸出(I/ O)的介面512,傳感器組件514,以及通訊組件516。
處理組件502通常控制電子設備500的整體操作,諸如與顯示,電話呼叫,資料通訊,相機操作和記錄操作相關聯的操作。處理組件502可以包括一個或多個處理器520來執行指令,以完成上述的方法的全部或部分步驟。此外,處理組件502可以包括一個或多個模組,便於處理組件502和其他組件之間的交互。例如,處理組件502可以包括多媒體模組,以方便多媒體組件508和處理組件502之間的交互。
儲存器504被配置為儲存各種類型的資料以支持在電子設備500的操作。這些資料的示例包括用於在電子設備500上操作的任何應用程式或方法的指令,連絡人資料,電話簿資料,消息,圖片,視訊等。儲存器504可以由任何類型的易失性或非易失性儲存設備或者它們的組合實現,如靜態隨機存取記憶體(SRAM),電子可抹除可程式唯讀記憶體(EEPROM),可抹拭可程式唯讀記憶體(EPROM),可程式唯讀記憶體(PROM),唯讀記憶體(ROM),磁儲存器,快閃儲存器,磁碟或光盤。
電源組件506為電子設備500的各種組件提供電力。電源組件506可以包括電源管理系統,一個或多個電源,及其他與為電子設備500生成、管理和分配電力相關聯的組件。
多媒體組件508包括在所述電子設備500和用戶之間的提供一個輸出介面的螢幕。在一些實施例中,螢幕可以包括液晶顯示器(LCD)和觸控面板(TP)。如果螢幕包括觸控面板,螢幕可以被實現為觸控螢幕,以接收來自用戶的輸入訊號。觸控面板包括一個或多個觸控傳感器以感測觸控、滑動和觸控面板上的手勢。所述觸控傳感器可以不僅感測觸控或滑動動作的邊界,而且還檢測與所述觸控或滑動操作相關的持續時間和壓力。在一些實施例中,多媒體組件508包括一個前置攝像頭和/或後置攝像頭。當電子設備500處於操作模式,如拍攝模式或視訊模式時,前置攝像頭和/或後置攝像頭可以接收外部的多媒體資料。每個前置攝像頭和後置攝像頭可以是一個固定的光學透鏡系統或具有焦距和光學變焦能力。
音訊組件510被配置為輸出和/或輸入音訊訊號。例如,音訊組件510包括一個麥克風(MIC),當電子設備500處於操作模式,如呼叫模式、記錄模式和語音識別模式時,麥克風被配置為接收外部音訊訊號。所接收的音訊訊號可以被進一步儲存在儲存器504或經由通訊組件516發送。在一些實施例中,音訊組件510還包括一個揚聲器,用於輸出音訊訊號。
I/ O介面512為處理組件502和外圍介面模組之間提供介面,上述外圍介面模組可以是鍵盤,點擊輪,按鈕等。這些按鈕可包括但不限於:主頁按鈕、音量按鈕、啟動按鈕和鎖定按鈕。
傳感器組件514包括一個或多個傳感器,用於為電子設備500提供各個方面的狀態評估。例如,傳感器組件514可以檢測到電子設備500的打開/關閉狀態,組件的相對定位,例如所述組件為電子設備500的顯示器和小鍵盤,傳感器組件514還可以檢測電子設備500或電子設備500一個組件的位置改變,用戶與電子設備500接觸的存在或不存在,電子設備500方位或加速/減速和電子設備500的溫度變化。傳感器組件514可以包括接近傳感器,被配置用來在沒有任何的物理接觸時檢測附近物體的存在。傳感器組件514還可以包括光傳感器,如CMOS或CCD圖像傳感器,用於在成像應用中使用。在一些實施例中,該傳感器組件514還可以包括加速度傳感器,陀螺儀傳感器,磁傳感器,壓力傳感器或溫度傳感器。
通訊組件516被配置為便於電子設備500和其他設備之間有線或無線方式的通訊。電子設備500可以接入基於通訊標準的無線網路,如Wi-Fi,2G,3G,4G或5G,或它們的組合。在一個示例性實施例中,通訊組件516經由廣播信道接收來自外部廣播管理系統的廣播訊號或廣播相關訊息。在一個示例性實施例中,所述通訊組件516還包括近場通訊(NFC)模組,以促進短程通訊。例如,在NFC模組可基於射頻識別(RFID)技術,紅外資料協會(Infrared Data Association,IrDA)技術,超寬頻(UWB)技術,藍牙(BT)技術和其他技術來實現。
在示例性實施例中,電子設備500可以被一個或多個應用專用集成電路(ASIC)、數位訊號處理器(DSP)、數位訊號處理設備(DSPD)、可編程邏輯裝置(PLD)、現場可編程邏輯閘陣列(FPGA)、控制器、微控制器、微處理器或其他電子元件實現,用於執行上述方法。
在示例性實施例中,還提供了一種非易失性電腦可讀儲存介質,例如包括電腦程式指令的儲存器504,上述電腦程式指令可由電子設備500的處理器520執行以完成上述方法。
本公開實施例還提供了一種電腦程式產品,包括電腦可讀代碼,當電腦可讀代碼在設備上運行時,設備中的處理器執行用於實現如上任一實施例提供的方法的指令。
該電腦程式產品可以具體透過硬體、軟體或其結合的方式實現。在一個可選實施例中,所述電腦程式產品具體體現為電腦儲存介質,在另一個可選實施例中,電腦程式產品具體體現為軟體產品,例如軟體開發包(Software Development Kit,SDK)等等。
圖6是根據一示例性實施例示出的一種電子設備600的方塊圖。例如,電子設備600可以被提供為一伺服器。參照圖6,電子設備600包括處理組件622,其進一步包括一個或多個處理器,以及由儲存器632所代表的儲存器資源,用於儲存可由處理組件622的執行的指令,例如應用程式。儲存器632中儲存的應用程式可以包括一個或一個以上的每一個對應於一組指令的模組。此外,處理組件622被配置為執行指令,以實現上述資源調度的方法。
電子設備600還可以包括一個電源組件626被配置為執行電子設備600的電源管理,一個有線或無線網路介面650被配置為將電子設備600連接到網路,和一個輸入輸出(I/O)介面658。電子設備600可以操作基於儲存在儲存器632的操作系統,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM或類似。
在示例性實施例中,還提供了一種非易失性電腦可讀儲存介質,例如包括電腦程式指令的儲存器632,上述電腦程式指令可由電子設備600的處理組件622執行以完成上述方法。
本公開可以是系統、方法和/或電腦程式產品。電腦程式產品可以包括電腦可讀儲存介質,其上載有用於使處理器實現本公開的各個方面的電腦可讀程式指令。
電腦可讀儲存介質可以是可以保持和儲存由指令執行設備使用的指令的有形設備。電腦可讀儲存介質例如可以是,但不限於電儲存設備、磁儲存設備、光儲存設備、電磁儲存設備、半導體儲存設備或者上述的任意合適的組合。電腦可讀儲存介質的更具體的例子(非窮舉的列表)包括:可攜式電腦盤、硬盤、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可抹拭可程式唯讀記憶體(EPROM或閃存)、靜態隨機存取記憶體(SRAM)、光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)、記憶棒、軟盤、機械編碼設備、例如其上儲存有指令的打孔卡或凹槽內凸起結構、以及上述的任意合適的組合。這裡所使用的電腦可讀儲存介質不被解釋為瞬時訊號本身,諸如無線電波或者其他自由傳播的電磁波、透過波導或其他傳輸媒介傳播的電磁波(例如,透過光纖電纜的光脈衝)、或者透過電線傳輸的電訊號。
這裡所描述的電腦可讀程式指令可以從電腦可讀儲存介質下載到各個計算/處理設備,或者透過網路、例如網路(Internet)、區域網路、廣域網路和/或無線網下載到外部電腦或外部儲存設備。網路可以包括銅傳輸電纜、光纖傳輸、無線傳輸、路由器、防火墻、交換機、網關電腦和/或邊緣伺服器。每個計算/處理設備中的網路適配卡或者網路介面從網路接收電腦可讀程式指令,並轉發該電腦可讀程式指令,以供儲存在各個計算/處理設備中的電腦可讀儲存介質中。
用於執行本公開操作的電腦程式指令可以是組合指令、指令集架構(ISA)指令、機器指令、機器相關指令、微代碼、韌體指令、狀態設置資料、或者以一種或多種編程語言的任意組合編寫的源代碼或目標代碼,所述編程語言包括面向對象的編程語言—諸如Smalltalk、C++等,以及常規的過程式編程語言—諸如“C”語言或類似的編程語言。電腦可讀程式指令可以完全地在用戶電腦上執行、部分地在用戶電腦上執行、作為一個獨立的軟體包執行、部分在用戶電腦上部分在遠程電腦上執行、或者完全在遠程電腦或伺服器上執行。在涉及遠程電腦的情形中,遠程電腦可以透過任意種類的網路—包括區域網路(LAN)或廣域網路(WAN)—連接到用戶電腦,或者,可以連接到外部電腦(例如利用因特網服務提供商來透過網路(Internet)連接)。在一些實施例中,透過利用電腦可讀程式指令的狀態訊息來個性化定制電子電路,例如可編程邏輯電路、場可編程邏輯閘陣列(FPGA)或可編程邏輯陣列(PLA),該電子電路可以執行電腦可讀程式指令,從而實現本公開的各個方面。
這裡參照根據本公開實施例的方法、裝置(系統)和電腦程式產品的流程圖和/或方塊圖描述了本公開的各個方面。應當理解,流程圖和/或方塊圖的每個方框以及流程圖和/或方塊圖中各方框的組合,都可以由電腦可讀程式指令實現。
這些電腦可讀程式指令可以提供給通用電腦、專用電腦或其它可編程資料處理裝置的處理器,從而生產出一種機器,使得這些指令在透過電腦或其它可編程資料處理裝置的處理器執行時,產生了實現流程圖和/或方塊圖中的一個或多個方框中規定的功能/動作的裝置。也可以把這些電腦可讀程式指令儲存在電腦可讀儲存介質中,這些指令使得電腦、可編程資料處理裝置和/或其他設備以特定方式工作,從而,儲存有指令的電腦可讀介質則包括一個製造品,其包括實現流程圖和/或方塊圖中的一個或多個方框中規定的功能/動作的各個方面的指令。
也可以把電腦可讀程式指令加載到電腦、其它可編程資料處理裝置、或其它設備上,使得在電腦、其它可編程資料處理裝置或其它設備上執行一系列操作步驟,以產生電腦實現的過程,從而使得在電腦、其它可編程資料處理裝置、或其它設備上執行的指令實現流程圖和/或方塊圖中的一個或多個方框中規定的功能/動作。
附圖中的流程圖和方塊圖顯示了根據本公開的多個實施例的系統、方法和電腦程式產品的可能實現的體系架構、功能和操作。在這點上,流程圖或方塊圖中的每個方框可以代表一個模組、程式段或指令的一部分,所述模組、程式段或指令的一部分包含一個或多個用於實現規定的邏輯功能的可執行指令。在有些作為替換的實現中,方框中所標注的功能也可以以不同於附圖中所標注的順序發生。例如,兩個連續的方框實際上可以基本並行地執行,它們有時也可以按相反的順序執行,這依所涉及的功能而定。也要注意的是,方塊圖和/或流程圖中的每個方框、以及方塊圖和/或流程圖中的方框的組合,可以用執行規定的功能或動作的專用的基於硬體的系統來實現,或者可以用專用硬體與電腦指令的組合來實現。
以上已經描述了本公開的各實施例,上述說明是示例性的,並非窮盡性的,並且也不限於所披露的各實施例。在不偏離所說明的各實施例的範圍和精神的情況下,對於本技術領域的普通技術人員來說許多修改和變更都是顯而易見的。本文中所用術語的選擇,旨在最好地解釋各實施例的原理、實際應用或對市場中技術的技術改進,或者使本技術領域的其它普通技術人員能理解本文披露的各實施例。
S11、S12:步驟
41:第一確定模組
42:第二確定模組
500:電子設備
502:處理組件
504:儲存器
506:電源組件
508:多媒體組件
510:音訊組件
512:輸入/輸出介面
514:傳感器組件
516:通訊組件
520:處理器
600:電子設備
622:處理組件
626:電源組件
632:儲存器
650:網路介面
658:輸入輸出介面
此處的附圖被併入說明書中並構成本說明書的一部分,這些附圖示出了符合本公開的實施例,並與說明書一起用於說明本公開的技術方案。
圖1示出根據本公開實施例的資源調度方法的流程圖。
圖2示出根據本公開實施例的選擇目標節點的示意圖。
圖3示出根據本公開實施例的資源調度方法的應用示意圖。
圖4示出根據本公開實施例的資源調度裝置的方塊圖。
圖5示出根據本公開實施例的電子裝置的方塊圖。
圖6示出根據本公開另一實施例的電子裝置的方塊圖。
S11、S12:步驟
Claims (10)
- 一種用於資源調度的方法,包括: 至少部分的根據目標任務的資源需求量、多個資源節點中每個資源節點的第一資源的當前資源剩餘量以及第二資源的可用資源總量,確定所述每個資源節點針對所述目標任務的第一調度分數,其中,所述第一資源包括深度學習資源,所述第二資源包括通用資源;以及 至少部分的根據所述多個資源節點中每個資源節點的所述第一調度分數,在所述多個資源節點中確定用於處理所述目標任務的目標資源節點。
- 如請求項1所述的方法,所述目標任務的資源需求量包括第一資源需求量和第二資源需求量,其中 所述至少部分的根據所述目標任務的資源需求量、所述多個資源節點中每個資源節點的第一資源的當前資源剩餘量以及第二資源的可用資源總量,確定所述每個資源節點針對所述目標任務的第一調度分數,包括: 根據所述目標任務的所述第一資源需求量和所述第一資源的所述當前資源剩餘量,得到第一分數; 根據所述目標任務的所述第二資源需求量以及所述第二資源的所述可用資源總量,確定第二分數;以及 基於所述第一分數和所述第二分數進行加權求和,得到所述第一調度分數。
- 如請求項1或2所述的方法,所述方法更包括: 根據所述多個資源節點中每個資源節點分配的任務類型以及所述目標任務的類型,確定所述每個資源節點的第二調度分數; 所述至少部分的根據所述多個資源節點中每個資源節點的所述第一調度分數,在所述多個資源節點中確定用於處理所述目標任務的目標資源節點,包括: 基於每個資源節點的所述第一調度分數和所述第二調度分數,確定所述每個資源節點的總調度分數;以及 基於所述多個資源節點中每個資源節點的所述總調度分數,確定所述目標資源節點。
- 如請求項3所述的方法,其特徵在於,第一節點的第二調度分數高於第二節點的第二調度分數,其中,所述第一節點是所述多個資源節點中分配的任務類型與所述目標任務的類型相同的節點,所述第二節點是所述多個資源節點中分配的任務類型與所述目標任務的類型不同的節點。
- 如請求項1所述的方法,所述方法更包括: 至少部分的根據多個任務中每個任務的優先級和所述多個任務中每個任務包括的多個任務單元的平均資源需求量,對所述多個任務進行排序,獲得第一任務佇列,其中,所述多個任務包括所述目標任務;以及 基於所述目標任務在所述第一任務佇列中的排序,對所述目標任務進行調度。
- 如請求項5所述的方法,所述至少部分的根據多個任務中每個任務的優先級和所述多個任務中每個任務包括的多個任務單元的平均資源需求量,對所述多個任務進行排序,獲得第一任務佇列,包括: 根據所述多個任務中每個任務的優先級,確定所述多個任務的初始排序; 在所述初始排序中存在至少兩個任務的優先級相同的情況下,根據所述至少兩個任務各自的平均資源需求量,確定所述至少兩個任務的目標排序。
- 根據請求項5或6所述的方法,所述至少部分的根據多個任務中每個任務的優先級和所述多個任務中每個任務包括的多個任務單元的平均資源需求量,對所述多個任務進行排序,獲得第一任務佇列,包括: 至少部分的根據所述多個任務中每個任務的優先級、所述多個任務中每個任務包括的多個任務單元的平均資源需求量以及所述多個任務中每個任務的建立時間戳,對所述多個任務進行排序,獲得所述第一任務佇列。
- 一種用於資源調度的裝置,包括: 第一確定模組,用於至少部分的根據目標任務的資源需求量、多個資源節點中每個資源節點的第一資源的當前資源剩餘量以及第二資源的可用資源總量,確定所述每個資源節點針對所述目標任務的第一調度分數,其中,所述第一資源包括深度學習資源,所述第二資源包括通用資源; 第二確定模組,用於至少部分的根據所述多個資源節點中每個資源節點的所述第一調度分數,在所述多個資源節點中確定用於處理所述目標任務的目標資源節點。
- 一種電子設備,包括: 處理器; 用於儲存所述處理器可執行指令的儲存器; 其中,所述處理器被配置為:執行請求項1至7中任意一項所述的方法。
- 一種電腦可讀儲存介質,其上儲存有電腦程式指令,其特徵在於,所述電腦程式指令被處理器執行時,使得所述處理器實現請求項1至7中任意一項所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911357908.7A CN113032112A (zh) | 2019-12-25 | 2019-12-25 | 资源调度方法及装置、电子设备和存储介质 |
CN201911357908.7 | 2019-12-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202125274A true TW202125274A (zh) | 2021-07-01 |
Family
ID=76458238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109120254A TW202125274A (zh) | 2019-12-25 | 2020-06-16 | 資源調度方法及裝置、電子設備和電腦可讀儲存介質 |
Country Status (5)
Country | Link |
---|---|
JP (1) | JP2022518127A (zh) |
KR (1) | KR20210094639A (zh) |
CN (1) | CN113032112A (zh) |
TW (1) | TW202125274A (zh) |
WO (1) | WO2021128737A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114756347B (zh) * | 2022-04-19 | 2024-06-11 | 中国联合网络通信集团有限公司 | 基于集群的服务器资源调度方法、装置、云平台及介质 |
CN114995997A (zh) * | 2022-04-24 | 2022-09-02 | 阿里巴巴(中国)有限公司 | 任务处理方法 |
CN115242662B (zh) * | 2022-09-22 | 2023-02-17 | 音信云(武汉)信息技术有限公司 | 基于云计算的数据资源分配方法及装置 |
CN115686799B (zh) * | 2022-12-29 | 2023-04-07 | 中国华能集团清洁能源技术研究院有限公司 | 一种大数据平台中的任务调度方法、装置、设备及介质 |
CN116501478A (zh) * | 2023-06-28 | 2023-07-28 | 中国电信股份有限公司 | 任务分配方法、装置、设备、介质及数字孪生系统 |
CN117176672A (zh) * | 2023-08-30 | 2023-12-05 | 中移互联网有限公司 | 消息队列资源确定方法、装置及资源智能调度系统 |
CN117714452A (zh) * | 2023-12-14 | 2024-03-15 | 摩尔线程智能科技(北京)有限责任公司 | 一种流量负载均衡方法、系统及装置 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002007364A (ja) * | 2000-06-22 | 2002-01-11 | Fujitsu Ltd | 並列計算機システムのジョブスケジューリングを行うスケジューリング装置 |
JP5722247B2 (ja) * | 2012-02-10 | 2015-05-20 | 株式会社野村総合研究所 | 仮想サーバ管理システム |
US9104491B2 (en) * | 2012-02-21 | 2015-08-11 | Disney Enterprises, Inc. | Batch scheduler management of speculative and non-speculative tasks based on conditions of tasks and compute resources |
CN106354729B (zh) * | 2015-07-16 | 2020-01-07 | 阿里巴巴集团控股有限公司 | 一种图数据处理方法、装置和系统 |
JP6339978B2 (ja) * | 2015-07-17 | 2018-06-06 | 日本電信電話株式会社 | リソース割当管理装置およびリソース割当管理方法 |
CN107168777B (zh) * | 2016-03-07 | 2021-04-30 | 阿里巴巴集团控股有限公司 | 分布式系统中资源的调度方法以及装置 |
CN105791447B (zh) * | 2016-05-20 | 2019-03-01 | 北京邮电大学 | 一种面向视频服务的云资源调度方法及装置 |
US10963309B2 (en) * | 2016-09-16 | 2021-03-30 | Advanced Micro Devices, Inc. | Network interface controller-based scheduling of processing tasks in a distributed computing system |
JP6969268B2 (ja) * | 2017-10-11 | 2021-11-24 | 日本電信電話株式会社 | 計算機およびcpuコア割当方法 |
US20190332420A1 (en) * | 2018-04-27 | 2019-10-31 | Advanced Micro Devices, Inc. | Feedback guided split workgroup dispatch for gpus |
CN109743751B (zh) * | 2018-06-26 | 2021-08-03 | 国网江苏省电力有限公司南京供电分公司 | 无线接入网的资源分配方法及装置 |
CN109582452B (zh) * | 2018-11-27 | 2021-03-02 | 北京邮电大学 | 一种容器调度方法、调度装置及电子设备 |
CN109857551B (zh) * | 2019-01-09 | 2023-12-19 | 平安科技(深圳)有限公司 | 基于云计算的服务资源的调度方法及装置、电子设备 |
CN110221915B (zh) * | 2019-05-21 | 2020-11-10 | 新华三大数据技术有限公司 | 节点调度方法和装置 |
CN110191500B (zh) * | 2019-05-25 | 2021-03-23 | 西安电子科技大学 | 支持资源碎片消减的自组织网络时频资源调度方法 |
CN110413391B (zh) * | 2019-07-24 | 2022-02-25 | 上海交通大学 | 基于容器集群的深度学习任务服务质量保证方法和系统 |
-
2019
- 2019-12-25 CN CN201911357908.7A patent/CN113032112A/zh active Pending
-
2020
- 2020-06-03 KR KR1020217020244A patent/KR20210094639A/ko not_active Application Discontinuation
- 2020-06-03 JP JP2021538194A patent/JP2022518127A/ja active Pending
- 2020-06-03 WO PCT/CN2020/094181 patent/WO2021128737A1/zh active Application Filing
- 2020-06-16 TW TW109120254A patent/TW202125274A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
CN113032112A (zh) | 2021-06-25 |
KR20210094639A (ko) | 2021-07-29 |
WO2021128737A1 (zh) | 2021-07-01 |
JP2022518127A (ja) | 2022-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021128737A1 (zh) | 资源调度方法及装置、电子设备和存储介质 | |
EP3452954B1 (en) | Dynamic classifier selection based on class skew | |
WO2019174595A1 (zh) | 资源配置方法、装置、终端及存储介质 | |
US10628215B2 (en) | Multi-threaded processing of user interfaces for an application | |
US10725972B2 (en) | Continuous and concurrent device experience in a multi-device ecosystem | |
WO2021259100A1 (zh) | 分享方法、装置和电子设备 | |
TW202030638A (zh) | 面部識別方法及裝置、電子設備和儲存介質 | |
WO2015035870A1 (zh) | 多cpu调度方法及装置 | |
TW202113752A (zh) | 神經網路訓練及圖像生成方法、電子設備、儲存媒體 | |
CN115237613B (zh) | 一种多方安全计算任务调度方法、装置和可读存储介质 | |
WO2023185647A1 (zh) | 媒体内容的显示方法、装置、设备、存储介质和程序产品 | |
WO2023185671A1 (zh) | 风格图像生成方法、装置、设备及介质 | |
US20220245401A1 (en) | Method and apparatus for training model | |
CN114595785A (zh) | 模型训练方法、装置、电子设备及存储介质 | |
WO2020029527A1 (zh) | 显示界面切换方法、装置及电子设备 | |
WO2023237102A1 (zh) | 一种连麦展示方法、装置、电子设备、计算机可读介质 | |
WO2024037068A1 (zh) | 任务调度方法、电子设备及计算机可读存储介质 | |
CN115098262B (zh) | 一种多神经网络任务处理方法及装置 | |
WO2022110939A1 (zh) | 一种设备推荐方法及电子设备 | |
CN108984294B (zh) | 资源调度方法、装置及存储介质 | |
EP3128424A1 (en) | Electronic device and storage medium | |
WO2023024894A1 (zh) | 一种多设备同步播放方法及装置 | |
CN116028005B (zh) | 音频会话获取方法、装置、设备和存储介质 | |
CN115086232B (zh) | 任务处理及数据流生成方法和装置 | |
CN117149362B (zh) | 进程管控方法及相关装置 |