TWI748135B - 用於多處理器的任務排程的方法及系統 - Google Patents
用於多處理器的任務排程的方法及系統 Download PDFInfo
- Publication number
- TWI748135B TWI748135B TW107139031A TW107139031A TWI748135B TW I748135 B TWI748135 B TW I748135B TW 107139031 A TW107139031 A TW 107139031A TW 107139031 A TW107139031 A TW 107139031A TW I748135 B TWI748135 B TW I748135B
- Authority
- TW
- Taiwan
- Prior art keywords
- cluster
- processor
- scheduling
- capacity
- target
- 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
-
- 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
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/161—Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Power Sources (AREA)
Abstract
一多處理器系統包括排列在複數個群集中的複數個處理器,不同的群集具有不同的功率與性能特性。該系統包括排程任務到該等處理器的任務排程器,該任務排程器回應於排程事件觸發的檢測,用於基於該等群集中最高容量群集中所有處理器的至少各自的工作頻率以及負載,在能量優化的第一目標以及負載均衡的第二目標之間識別一排程目標。根據所識別的該排程目標,該任務排程器將給定任務排程到在該等群集的該等處理器中選擇的處理器。
Description
本發明實施例涉及控制與優化多處理器計算系統的性能與功率。
許多現代計算系統實現動態電壓以及頻率縮放(dynamic voltage and frequency scaling,DVFS),其是一種在運行時自動調整處理器頻率與電壓的技術。處理器的工作頻率以及電壓的增加可以提高計算性能,但也會增加功率消耗。在一些系統中,DVFS可以與任務排程協調,使得當在處理器上放置任務或從處理器移除任務時,調整處理器的工作頻率。當能量感知排程器排程任務時,排程器將功耗考慮在內。
能量感知排程(Energy-aware scheduling,EAS)是用於計算系統來優化任務放置決定的功率消耗的任務排程技術。執行能量感知排程的排程器通常將任務放置在複數個處理器的一子集上並保持系統中的其他處理器空閒來節省功率。然而,將任務聚集在少量的處理器上與負載均衡(load balancing)相反,負載均衡將工作量分散在複數個處理器之間來提升性能。
因此,需要一種計算系統來管理關於任務排程的性能與功率消耗之間的折衷。
本發明提供了一種多處理器系統中任務排程的方法,以權衡任務排程的性能與功率消耗。
在一個實施例中,提供了一種系統。該系統包括排列在複數個群集中的複數個處理器,不同的群集具有不同的功率以及性能特性。該系統包括排程任務到該等處理器的任務排程器。該任務排程器回應於排程事件觸發的檢測,用於基於該等群集中最高容量群集中所有處理器的至少相應的工作頻率以及負載,在能量優化的第一目標以及負載均衡的第二目標之間識別一排程目標。根據所識別的該排程目標,該任務排程器用於排程給定任務到在該等群集的該等處理器中選擇的處理器。
在另一實施例中,提供了一種多處理器系統中任務排程的方法。該方法包括:檢測由任務排程器觸發的排程事件,該任務排程器將任務排程到排列在複數個群集中的處理器,不同的群集具有不同的功率以及性能特;基於該等群集中最高容量群集中所有處理器至少相應的工作頻率以及負載,在能量優化的第一目標與負載均衡的第二目標之間識別一排程目標;以及根據所識別的該排程目標,排程給定任務到在該等群集的該等處理器中選擇的處理器。
本發明基於最高容量群集中與非最高容量集群中處理器所消耗的容量作為切換條件,將能量感知排程與容量感知排程相結合,有效地平衡了任務排程的性能與功耗。
在結合附體閱讀以下對具體實施例的描述後,本發明的其他方面及特徵對本領域習知技術者將是顯而易見的。
110:多處理器系統
111:電源
112:時鐘電路
120:記憶體
130:網路介面
150:功率表
160:排程器
170:控制器
180:效能監視器
410~430、510~540:曲線
210~250、610~630:步驟
本發明以示例而非限制的方式示出,在附圖中,相同的附圖標記表示相似的元件。需要注意的是,本發明中對“一個”實施例的不同引用不一定指相同的實施例,以及這種引用意味著至少一個。此外,當結合實施例描述特定特徵、結構或者特性的時,認為無論是否明確描述,結合其他實施例實現這種特徵、結構或者特性都在本領域技術人員的知識範圍內。
第1圖示出了根據一個實施例的多處理器系統。
第2圖示出了根據一個實施例的用於確定排程目標的切換策略(switch policy)的整體流程圖。
第3A圖示出了根據一個實施例的在切換策略中定義的第一切換條件。
第3B圖示出了根據一個實施例的在切換策略中定義的第二切換條件。
第4圖示出了根據一個實施例的轉折點頻率的示例。
第5圖示出了根據一個實施例的由處理器執行不同指令而改變的轉折點頻率。
第6圖示出了根據一個實施例的用於在多處理器系統中任務排程的方法的流程圖。
在下文的描述中,給出了許多具體細節。然而,應當理解,本發明的實施例可以不需要這些具體的細節來實施。在其他實施例中,沒有具體示出公知的電路、結構以及技術以避免混淆本發明的描述。然而本領域習知技術者將能夠理解,可以不需要這些特定細節來實施本發明。根據所包括的描述,本領域技術人員將能夠實施適當的功能而不需要過度實驗。
本發明的實施例提供了一種用於多處理器系統的運行機制,以在備選排程目標中確定任務排程目標。例如,一個排程目標可以是最小化能量消
耗,以及另一排程目標可以是平衡複數個處理器之間的工作量。在一個實施例中,系統使用能量感知排程作為目標是優化能量消耗的預設排程。系統被提供定義兩個切換條件的切換策略。當兩個切換策略的任一個被檢測到或評估為真時,系統從能量感知排程切換到容量感知排程(capacity-aware scheduling),目的是為了平衡工作量。當沒有切換條件被檢測到或評估為真時,系統使用能量感知排程用於任務排程。
在一個實施例中,不同群集(cluster)中的處理器具有不同的功率以及性能特性,而相同群集中的處理器具有相同的功率以及性能特性。在一個實施例中,切換策略可以將第一切換條件定義為“當最高容量群集中所有處理器所消耗的容量的總和超過總容量閾值時”,以及將第二切換條件定義為“當其他群集中至少一個處理器所消耗的容量超過容量閾值時”。在一個實施例中,不同群集具有不同的容量閾值,容量閾值的定義將在後文詳細描述。
在一些系統中,“處理器”可以是中央處理單元(CPU)、數位訊號處理器(DSP)、多媒體處理器、影像處理單元(GPU)、向量處理器或其他通用或專用處理電路。在一些系統中,處理器可以與“核心”或“處理器核心”相同,而在一些其他系統中,處理器可以包括複數個核心。能夠理解的是,此處描述的切換策略能夠適用於在複數個群集中排列的任何類型的處理器。
第1圖示出了根據一個實施例的多處理器系統110的示例。多處理器系統110包括設置在兩個或複數個群集中(例如,群集(0)、群集(1)......群集(M))的兩個或複數個類型的處理器,其中M可以是任何正整數。雖然群集(0)以及群集(1)的每一個中示出了兩個處理器,但是每一群集可以包括多於兩個處理器且不同群集可以包括不同數量的處理器。在一個實施例中,多核處理器系統110是片上系統(system-on-a-chip,SOC)。
在一個實施例中,相同群集中的處理器具有相同的處理器類型,
以及不同群集中的處理器具有不同的處理器類型。不同處理器類型的處理器具有不同的硬體特性,其可以由它們的容量(例如,藉由每秒百萬指令(million instructions per second,MIPS)測量)與/或能量效率(例如,藉由功率消耗測量)來測量。不同處理器類型的處理器共用相同的指令集架構(instruction set architecture,ISA),即,它們可以執行相同的程式以及軟體應用程式。在一個實施例中,不同處理器類型的處理器可以具有不同的微架構來遞送不同的計算性能以及不同的功率效率。
在第1圖的實施例中,每一群集都可以存取記憶體120。記憶體120可以包括片上以及片外記憶體設備,如動態隨機存取記憶體(DRAM)、靜態RAM(SRAM)、閃速記憶體以及其他揮發性或非揮發性記憶體設備。每一群集接收來自電源111的功率以及來自時鐘電路112的時鐘信號。在一個實施例中,多處理器系統110耦合到網路介面130來連接到網路(例如,個人局域網、局域網、廣域網等)。能夠理解的是,第1圖的實施例為了說明性目的而簡化,其還可以包括額外的硬體元件。
在一個實施例中,多處理器系統110包括控制器170來控制多處理器系統110的功率以及性能以滿足系統性能需求以及功率預算。控制器170可以藉由確定要開啟(即,啟動)處理器的數量以及藉由控制所啟動的處理器的操作點(例如,頻率以及電壓)來動態地管理功率以及性能。
在一個實施例中,多處理器系統110包括一組性能監視器180(例如,感測器與計數器)來監測在運行時每一處理器的功率消耗以及性能(例如,處理器時間、利用率、工作頻率(operating frequency)、電壓、溫度等)。根據性能監視器180的輸出,控制器170可以基於性能監視器180的輸出調整每一處理器的電壓以及工作頻率。在一個實施例中,控制器170可以進一步基於由處理器執行的指令的類型來調整每一處理器的電壓以及工作頻率。如下文結合第5
圖所描述的,功率表150可以記錄每一處理器(或處理器類型)的功率與性能之間的關係。在一個實施例中,功率表150可以包括每一處理器的性能指數與功率指數,其指示處理器每一操作點的功率-性能關係。功率表150可以由控制器170使用來選擇啟動哪些處理器以及選擇所啟動處理器的最節能操作點。控制器170然後配置電源111(例如,穩壓器)以及時鐘電路112來向每一啟動的處理器提供所選擇的操作點。
在一個實施例中,多處理器系統110還包括排程器160(也稱為任務排程器),其在複數個處理器之間分配以及排程任務。排程器160負責每當有新任務、喚醒任務或者其他還未排程的任務等待被排程時的任務放置。排程器160確定將任務放置在哪一處理器上。排程器160也負責負載均衡操作。在一些實施例中,負載均衡操作是用於平衡多處理器系統110中所有處理器或所啟動處理器的工作量的週期性操作。
在一個實施例中,排程器160基於性能監視器180的輸出保持追蹤每一處理器的負載(即,利用率)。排程器160將處理器(或複數個處理器)所消耗的容量與容量閾值進行比較來確定是否應該啟用切換策略(即,是否切換任務排程的目標)。相對於處理器的負載以及工作頻率定義處理器所消耗的容量。處理器的負載指示在給定時間週期內由處理器執行的工作量(例如,60%負載指示60%的處理器週期被用於執行工作)。處理器所消耗的容量可以藉由將處理器的工作頻率乘以處理器的負載來計算。因此,在較高頻率運作的處理器相比於在較低頻率運作的處理器,相同負載的情況下具有更高的消耗容量。
在一個實施例中,可以在處理器系統110中的處理器的預定工作頻率將處理器的容量閾值設置為80%容量。如果在容量比較時處理器沒有以預定頻率操作,可將它的負載標準化到預定頻率,例如,在1GHz的90%負載被標準化到2GHz的45%負載。在一些實施例中,容量閾值可以由整數、分數或
另一資料表示來表示,容量閾值藉由將處理器的預定工作頻率乘以處理器的預定負載來計算。因此,容量比較不僅基於處理器的負載,還基於比較時處理器的工作頻率。
排程器160根據容量比較的結果確定應用哪一排程目標。然後,排程器160相應地排程等待任務(例如,新分配的任務、從睡眠或空閒喚醒的任務、排隊等待的任務等)。根據排程目標,排程器160也可以週期性地確定是否執行或跳過負載均衡操作。例如,當觸發排程器160來執行負載均衡操作時,如果當時的排程目標是優化能量消耗,排程器160可以跳過負載均衡操作。
雖然排程器160示出為處理器之外的模組,在一個實施例中,排程器160包括由處理器執行的軟體元件。在一些實施例中,排程器160是由一或複數個處理器執行的作業系統(operating system,OS)內核(kernel)的一部分。
第2圖示出了根據本發明一個實施例的由諸如多處理器系統110之類的系統使用的切換策略的整體流程圖200。在步驟210,系統檢測排程事件觸發,其可以是排程任務或負載均衡操作的請求。在步驟220,系統將複數個處理器的所消耗的容量與它們各自的容量閾值進行比較。系統可以從性能監視器(例如,第1圖的性能監視器180)接收每一處理器的負載資訊以及工作頻率。在步驟230中,該比較結果用於確定第一切換條件(最高容量群集中所有處理器所消耗的容量的總和是否超過最高容量群集的總容量閾值)是否為真或者第二切換條件(任何其他群集中任何處理器所消耗的容量是否超過該群集的該處理器的容量閾值)是否為真。如果第一切換條件或第二切換條件為真(其包括第一切換條件以及第二切換條件兩者都為真的情況),在步驟240,系統切換到容量感知排程用於任務排程。如果沒有條件為真,在步驟250,系統使用能量感知排程用於任務排程。當檢測到另一排程事件觸發時,重複步驟210-250的操作。
第3A圖示出了根據一個實施例的第2圖的步驟230所提到的第
一切換條件的圖式300。這一示例示出了三個群集,每一群集具有兩個CPU。群集(2)是最高容量的群集。每一CPU的容量由對應矩形條的高度所表示。該容量可以藉由MIPS或其他性能測量指標來測量。CPU所消耗的容量由填充到對應矩形條中圖案所表示。對於不是最高容量群集的群集(例如,群集(0)或群集(1)),相同群集中的處理器具有相同的容量閾值(例如,TH0或TH1),以及不同群集中處理器具有不同的容量閾值。對於最高容量群集,將最高容量群集中所有處理器所消耗容量的總和與總容量閾值(TH2)進行比較。
當最高容量群集中所有處理器所消耗容量的總和超過總容量閾值時,排程目標從預設能量優化(即,能量感知排程)切換到負載均衡(即,容量感知排程)。在一個實施例中,當前排程器接收到負載均衡操作的請求或檢測到觸發時,檢查處理器所消耗的容量。在第3A圖中,當最高容量群集的所消耗容量的總和大於總容量閾值時(TH2),根據負載均衡目標,排程器可以嘗試將工作量從CUP_4以及CPU_5轉移到其他處理器(如果兩個處理器之一上的工作量可以被分割與遷移)。如果有等待被放置的任務,排程器將根據負載均衡目標放置該任務。
第3B圖示出了根據一個實施例的在第2圖步驟230所提到的第二切換條件的圖式350。這一示例示出了與第3A圖相同的三個群集。圖式350示出了群集(1)中CPU_2的負載超過了它的容量閾值(TH_1)。當不在最高容量群集中的任何處理器所消耗的容量超過了它的容量閾值時,排程目標從預設能量優化(即,能量感知排程)切換到負載均衡(即,容量感知排程)。在一個實施例中,當排程器接收到負載均衡操作的請求或觸發時,檢查處理器的負載。如第3B圖所示,如果不在最高容量群集中的任何處理器的負載超過了它的容量閾值,根據負載均衡目標,排程器可以嘗試將工作量從CPU_2轉移到其他處理器(如果CPU_2上的工作量可以被分割以及遷移)。如果有等待被放置的任務,排程器將
根據負載均衡目標放置該任務。
當排程器160檢測或接收排程事件觸發時,可以並行或以任何順序評估第一切換條件以及第二切換條件。當第一切換條件以及第二切換條件都未被評估為真時,排程器160根據能量感知目標來排程任務以優化能量消耗(即,來減少或最小化功率消耗)。
如第3A圖以及第3B圖的示例所示,群集彼此間的容量閾值不同。每一群集的容量閾值可以被設置為一值,該值藉由將群集的預定負載水準乘以預定頻率計算所得。在一個實施例中,當群集不是最高容量群集時,預定頻率是轉折點頻率。該轉折點頻率可以是群集的甜蜜點(sweet-point)頻率或最大工作頻率。群集的轉折點頻率(即,群集中任何處理器)可以根據處理器的功率以及性能曲線確定。
第4圖示出了根據一個實施例的轉折點頻率的示例的圖式400。縱軸是功率消耗(也稱為能量消耗)以及橫軸是頻率。圖式400包括三條曲線410、420以及430,分別表示群集(0)、群集(1)以及群集(2)中處理器的功率-頻率特性。需要注意的是,因為在處理器運作的頻率直接與處理器的性能成比例,處理器的功率-頻率特性也稱為功率-性能特性。群集中處理器的操作點被定義在對應的曲線上(例如,群集(0)的曲線410)。佔據相鄰頻率區域的曲線也稱為相鄰曲線(例如,曲線410以及420是相鄰曲線,以及曲線420與430是相鄰曲線)。圖式400示出了曲線410與曲線420相交,以及曲線420不與曲線430相交。交叉頻率點f(0)也稱為甜蜜頻率點,甜蜜頻率點f(0)表示群集(0)的能量高效工作頻率範圍的上邊界以及群集(1)的能量高效工作頻率範圍的下邊界。這些邊界不是工作頻率的嚴格限制,例如群集(0)也超過f(0)操作,以及群集(1)也低於f(0)操作。邊界僅僅指示群集是否在對該群集能量高效的頻率範圍內操作。每一甜蜜點頻率與兩個群集有關,例如f(0)與群集(0)以及群集(1)有關。對於低於f(0)
的頻率,群集(0)中每一處理器的能量效率大於群集(1)中每一處理器的能量效率。對於大於f(0)的頻率,群集(0)中每一處理器的能量效率低於群集(1)中每一處理器的能量效率。對於群集(0),它的轉折點頻率是甜蜜點頻率f(0)。因此,甜蜜點頻率f(0)是大於群集(0)的能量效率以及低於群集(1)能量效率的工作頻率。
圖式400進一步示出了曲線不與彼此相交的情況。這一情況中,群集(1)的轉折點頻率是其在曲線420上的最大工作頻率,即f(1)。因為群集(2)是最高容量群集以及佔據圖式400中最高的頻率區域,它的轉折點頻率是其在曲線430上的最大工作頻率,即f(2)。
雖然第4圖中僅示出了三個群集,能夠理解的是,上述提到的特性可以擴展到任何數目的群集。此外,不同的群集可以表現出由不同曲線表示的不同特性。一些相鄰曲線可以彼此相交,一些相鄰曲線可以沒有交叉點但具有重疊的頻率區域,以及一些相鄰曲線可以完全不具有重疊的頻率區域。這些曲線以及曲線上的操作點,可以由測試結果以及實驗確定。
返回參考第3A圖以及第3B圖,在一個實施例中,當處理器在其轉折點頻率操作時,評估切換策略的第一切換條件以及第二切換條件。例如,在第3B圖中,如果CPU_2在其轉折點頻率(例如,f(1))操作並且其負載超過了負載閾值,那麼第二切換條件評估為真並且排程切換到容量感知排程。注意到的是,不同群集的負載閾值可以具有相同值或不同值。在一個實施例中,為了比較的目的,每一處理器的負載以及該處理器的負載閾值可以標準化到跨群集的公共頻率,例如,公共頻率可以是最高容量群集的最大工作頻率(例如第4圖示例中的f(2))。
在一個實施例中,當處理器執行不同類型的指令時,每一處理器的功率-頻率曲線可以變化。第5圖示出了根據一個實施例的兩個處理器P1以及P2(其在不同的群集中)的功率-頻率曲線。在這一示例中,實線曲線510以及520
分別表示當每一處理器執行第一應用時P1以及P2的功率-頻率曲線。虛線曲線530以及540分別表示當每一處理器執行第二應用時P1以及P2的功率-頻率曲線。曲線510-540上的圓圈表示操作點。對於P1,曲線510上的每一操作點以及曲線530上對應的操作點具有相同的電壓以及頻率,例如曲線510以及530上最左操作點具有相同的電壓以及頻率,曲線510以及530上第二最左操作點具有相同的電壓以及頻率。等等。這同樣適用於P2的曲線520以及540上的操作點。第5圖示出了當相同處理器執行不同應用時,功率-頻率曲線可以是不同的(例如,垂直與/或水準移動、斜率與/或形狀的不同等)。曲線上相同操作點的位置(相同處理器的實線曲線與虛線曲線之間)對於不同應用可能是不同的。
在第5圖的示例中,在由P1以及P2執行的兩個應用之間(例如,由實線曲線表示的第一應用,以及由虛線曲線表示的第二應用)可能有不同的特性。例如,第一應用可以包括40%的整數指令、10%的浮點數指令以及50%的記憶體存取指令。第二應用可以包括30%的整數指令、40%的浮點指令以及30%的記憶體存取指令。指令的不同配置可能對處理器的功率以及性能有不同的影響。在一種情形中,當處理器執行引起較高功率的應用時,可能會降低處理器的容量閾值或者負載閾值。因此,在一個實施例中,複數個處理器系統110(第1圖)根據由處理器執行的不同指令配置,可以動態地調整處理器的容量閾值與/或負載閾值來提高運行時的能量效率與性能。對於最高容量的群集,可以根據由最高容量群集中處理器執行的指令類型的組合調整群集的總容量閾值。
第6圖示出了根據一個實施例的用於多處理器系統中任務排程的方法600的流程圖。方法600可以由第1圖的多處理器系統110來執行。
方法600開始於步驟610,當系統檢測到由任務排程器觸發的排程事件時,該任務排程器將任務排程到佈置在複數個群集中的處理器,不同的群集具有不同的功耗以及性能特性。在步驟620,基於多群集的最高容量群集中
所有處理器的至少相應的工作頻率以及負載,系統識別能量優化的第一目標以及負載均衡的第二目標之間的排程目標。在步驟630,系統根據所識別的排程目標,系統排程給定的任務到從多群集的複數個處理器中所選擇的處理器。
第2圖以及第6圖的流程圖的操作已經參考第1圖的示例性實施例進行描述。然而,能夠理解的是,第2圖以及第6圖的流程圖的操作可以由不同於第1圖的實施例之外的本發明的實施例來執行,以及第1圖的實施例可以執行不同於參考流程圖所討論的操作。雖然第2圖以及第6圖的流程圖示出了由本發明某些實施例執行的操作的特定順序,能夠理解的是,這一順序是示例性的(例如,可選實施例可以以不同的循序執行操作、組合某些操作、重疊某些操作等)。
雖然本發明已經以複數個實施例的方式進行描述,本領域技術人員將認識到,本發明不限於所描述的實施例,以及可以在所附申請專利範圍的精神與範圍內對它進行修改與替換。因此,這些描述被視為說明性的而非限制性的。
210~250:步驟
Claims (12)
- 一種用於任務排程的處理器的系統,包括設置在複數個群集中的複數個處理器,不同的群集具有不同的功率以及性能特性;一任務排程器,排程任務到該等處理器,其中該任務排程器回應於排程事件觸發的檢測,用於:在能量優化的一第一目標與負載均衡的一第二目標之間識別一排程目標;以及根據所識別的該排程目標,將該等任務排程到在該等群集中的一個或多個處理器,其中,該任務排程器還用於當第一條件或第二條件均不為真時從該第二目標切換到該第一目標,其中當該最高容量群集中所有處理器所消耗的容量的總和超過該最高容量群集的總容量閾值時,該第一條件為真,並且當不同於該最高容量群集的任何給定群集中任一處理器所消耗的容量超過該給定群集中該相應處理器的容量閾值時,該第二條件為真,其中給定處理器所消耗的容量是基於該給定處理器的工作頻率以及負載計算。
- 如申請專利範圍第1項所述之用於任務排程的處理器的系統,其中該任務排程器進一步用於:當該第一條件和該第二條件中至少一個為真時,從該第一目標切換到該第二目標。
- 如申請專利範圍第1項所述之用於任務排程的處理器的系統,其中根據由該高容量群集中該等處理器執行的指令類型的組合,該最高容量群集的該總容量閾值被調整。
- 如申請專利範圍第1項所述之用於任務排程的處理器的系統,該任務排程器進一步用於:當不同於該最高容量群集的給定群集中處理器的負載超過一負載閾值以及該處理器在該給定群集的一甜蜜點頻率操作時,識別該第二目標作為該排程目標,以及該甜蜜點頻率是大於給定群集的能量效率以及低於該等群集中另一群集的能量效率的工作頻率。
- 如申請專利範圍第1項所述之用於任務排程的處理器的系統,其中該任務排程器進一步用於:當不同於該最高容量群集的給定群集的處理器的負載超過一負載閾值並且該處理器在該給定群集的最大頻率操作時,識別該第二目標作為該排程目標,以及其中該給定群集的功率-頻率曲線與該最高容量群集的對應的曲線沒有交叉點。
- 如申請專利範圍第1項所述之用於任務排程的處理器的系統,其中該任務排程器進一步用於:當該第一目標被識別為該排程目標時,跳過週期性負載均衡操作。
- 一種多處理器系統中任務排程的方法,包括檢測由任務排程器觸發的一排程事件,該任務排程器將任務排程到設置在複數個群集中的處理器,不同的群集具有不同的功率以及性能特;在能量優化的第一目標與負載均衡的第二目標之間識別一排程目標;以及根據所識別的該排程目標,排程給定任務到在該等群集中的一個或多個處理器,其中,識別該排程目標進一步包括:當第一條件或第二條件均不為真時從該第二目標切換到該第一目標,其中當該最高容量群集中所有處理器所消耗的容量的總和超過該最高容量群集的總 容量閾值時,該第一條件為真,並且當不同於該最高容量群集的任何給定群集中任一處理器所消耗的容量超過該給定群集中該相應處理器的容量閾值時,該第二條件為真,其中給定處理器所消耗的容量是基於該給定處理器的工作頻率以及負載計算。
- 如申請專利範圍第7項所述之多處理器系統中任務排程的方法,其中識別該排程目標進一步包括:當該第一條件和該第二條件中至少一個為真時,從該第一目標切換到該第二目標。
- 如申請專利範圍第8項所述之多處理器系統中任務排程的方法,其中根據由該最高容量群集中該等處理器執行的指令類型的組合,該最高容量群集的該總容量閾值被調整。
- 如申請專利範圍第7項所述之多處理器系統中任務排程的方法,其中識別該排程目標進一步包括:當不同於該最高容量群集的給定群集中處理器的負載超過負載閾值並且該處理器在該給定群集的甜蜜點頻率操作時,識別該第二目標作為該排程目標,以及該甜蜜點頻率是大於給定群集的能量效率以及低於該等群集中另一群集的能量效率的工作頻率。
- 如申請專利範圍第7項所述之多處理器系統中任務排程的方法,其中識別該排程目標進一步包括:當不同於該最高容量群集的給定群集中處理器的一負載超過負載閾值並且該處理器在該給定群集的最大頻率操作時,識別該第二目標作為該排程目標,以及其中該給定群集的功率-頻率曲線與該最高容量群集的對應曲線沒有交叉點。
- 如申請專利範圍第7項所述之多處理器系統中任務排程的方 法,包括:當該第一目標識別為該排程目標時,跳過週期性負載均衡操作。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762580502P | 2017-11-02 | 2017-11-02 | |
US62/580,502 | 2017-11-02 | ||
US16/168,407 US11138037B2 (en) | 2017-11-02 | 2018-10-23 | Switch policy for hybrid scheduling in multi-processor systems |
US16/168,407 | 2018-10-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201923564A TW201923564A (zh) | 2019-06-16 |
TWI748135B true TWI748135B (zh) | 2021-12-01 |
Family
ID=66243872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107139031A TWI748135B (zh) | 2017-11-02 | 2018-11-02 | 用於多處理器的任務排程的方法及系統 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11138037B2 (zh) |
CN (1) | CN111090505B (zh) |
TW (1) | TWI748135B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3096482B1 (fr) * | 2019-06-21 | 2022-10-14 | Orange | Procédé pour contrôler l’admission d’au moins une tâche temps réel à être exécutée |
DE102019119852A1 (de) * | 2019-07-23 | 2021-01-28 | Man Truck & Bus Se | Erzeugen nicht-semantischer Referenzdaten zur Positionsbestimmung eines Kraftfahrzeugs |
CN111858241B (zh) * | 2020-07-10 | 2022-06-10 | 浪潮电子信息产业股份有限公司 | 一种fpga云平台的监控方法、装置、设备及存储介质 |
US11630694B2 (en) * | 2021-01-13 | 2023-04-18 | Qualcomm Incorporated | Core voltage regulator energy-aware task scheduling |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130212417A1 (en) * | 2008-02-11 | 2013-08-15 | Nvidia Corporation | Power management with dynamic frequency adjustments |
US20160139964A1 (en) * | 2014-11-17 | 2016-05-19 | Mediatek Inc. | Energy Efficient Multi-Cluster System and Its Operations |
US9372524B2 (en) * | 2011-12-15 | 2016-06-21 | Intel Corporation | Dynamically modifying a power/performance tradeoff based on processor utilization |
US9641431B1 (en) * | 2012-04-18 | 2017-05-02 | Google Inc. | System and methods for utilization-based balancing of traffic to an information retrieval system |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8584122B2 (en) * | 2006-03-31 | 2013-11-12 | Ebay Inc. | Batch scheduling |
US20080005591A1 (en) * | 2006-06-28 | 2008-01-03 | Trautman Mark A | Method, system, and apparatus for dynamic thermal management |
US20090106571A1 (en) * | 2007-10-21 | 2009-04-23 | Anthony Low | Systems and Methods to Adaptively Load Balance User Sessions to Reduce Energy Consumption |
US8266393B2 (en) * | 2008-06-04 | 2012-09-11 | Microsoft Corporation | Coordination among multiple memory controllers |
US8631411B1 (en) | 2009-07-21 | 2014-01-14 | The Research Foundation For The State University Of New York | Energy aware processing load distribution system and method |
US8381004B2 (en) * | 2010-05-26 | 2013-02-19 | International Business Machines Corporation | Optimizing energy consumption and application performance in a multi-core multi-threaded processor system |
US9268611B2 (en) | 2010-09-25 | 2016-02-23 | Intel Corporation | Application scheduling in heterogeneous multiprocessor computing platform based on a ratio of predicted performance of processor cores |
WO2012093498A1 (en) * | 2011-01-07 | 2012-07-12 | Nec Corporation | Energy-efficient resource management system and method for heterogeneous multicore processors |
US9026814B2 (en) | 2011-06-17 | 2015-05-05 | Microsoft Technology Licensing, Llc | Power and load management based on contextual information |
JP5765423B2 (ja) * | 2011-07-27 | 2015-08-19 | 富士通株式会社 | マルチコアプロセッサシステム、およびスケジューリング方法 |
EP2847674A4 (en) | 2012-05-09 | 2016-01-27 | Intel Corp | PLANNING TASKS AMONG PROCESSORS C URS |
US9021493B2 (en) * | 2012-09-14 | 2015-04-28 | International Business Machines Corporation | Management of resources within a computing environment |
US9037889B2 (en) * | 2012-09-28 | 2015-05-19 | Intel Corporation | Apparatus and method for determining the number of execution cores to keep active in a processor |
KR102237373B1 (ko) * | 2014-07-02 | 2021-04-07 | 삼성전자 주식회사 | 전자 장치의 태스크 스케줄링 방법 및 이를 사용하는 전자 장치 |
US10031573B2 (en) | 2014-11-17 | 2018-07-24 | Mediatek, Inc. | Energy efficiency strategy for interrupt handling in a multi-cluster system |
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 |
CN105700959B (zh) * | 2016-01-13 | 2019-02-26 | 南京邮电大学 | 一种面向多核平台的多线程划分及静态均衡调度方法 |
US10044640B1 (en) * | 2016-04-26 | 2018-08-07 | EMC IP Holding Company LLC | Distributed resource scheduling layer utilizable with resource abstraction frameworks |
US10609130B2 (en) * | 2017-04-28 | 2020-03-31 | Microsoft Technology Licensing, Llc | Cluster resource management in distributed computing systems |
-
2018
- 2018-10-23 US US16/168,407 patent/US11138037B2/en active Active
- 2018-11-02 TW TW107139031A patent/TWI748135B/zh active
-
2019
- 2019-10-14 CN CN201910973607.0A patent/CN111090505B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130212417A1 (en) * | 2008-02-11 | 2013-08-15 | Nvidia Corporation | Power management with dynamic frequency adjustments |
US9372524B2 (en) * | 2011-12-15 | 2016-06-21 | Intel Corporation | Dynamically modifying a power/performance tradeoff based on processor utilization |
US9641431B1 (en) * | 2012-04-18 | 2017-05-02 | Google Inc. | System and methods for utilization-based balancing of traffic to an information retrieval system |
US20160139964A1 (en) * | 2014-11-17 | 2016-05-19 | Mediatek Inc. | Energy Efficient Multi-Cluster System and Its Operations |
Non-Patent Citations (3)
Title |
---|
very highly overmoded waveguides 1964, |
Virtual Network Mapping - An Optimization Problem, published 2012-09-14 |
Virtual Network Mapping - An Optimization Problem, published 2012-09-14;very highly overmoded waveguides 1964, * |
Also Published As
Publication number | Publication date |
---|---|
US20190129752A1 (en) | 2019-05-02 |
CN111090505B (zh) | 2024-01-26 |
TW201923564A (zh) | 2019-06-16 |
US11138037B2 (en) | 2021-10-05 |
CN111090505A (zh) | 2020-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI748135B (zh) | 用於多處理器的任務排程的方法及系統 | |
US8443209B2 (en) | Throttling computational units according to performance sensitivity | |
US8447994B2 (en) | Altering performance of computational units heterogeneously according to performance sensitivity | |
US9904346B2 (en) | Methods and apparatus to improve turbo performance for events handling | |
CN106170742B (zh) | 多处理器片上系统中的能效感知热管理的方法和系统 | |
TWI464570B (zh) | 用於平衡具有多核心之計算裝置的效能與電力節省的方法、電腦可讀儲存媒體與多邏輯處理器系統 | |
US8645728B2 (en) | Methods and apparatuses for controlling thread contention | |
US7487371B2 (en) | Data path controller with integrated power management to manage power consumption of a computing device and its components | |
CN100561461C (zh) | 用于经由资源分配和限制的异构芯片多处理器的装置和方法 | |
JP5564564B2 (ja) | 計算ユニットの性能を性能感度に従い不均等に変化させる方法及び装置 | |
US20140089699A1 (en) | Power management system and method for a processor | |
US20090320031A1 (en) | Power state-aware thread scheduling mechanism | |
US20130328890A1 (en) | GPU with Dynamic Performance Adjustment | |
JP2015165434A (ja) | マルチコアプロセッサにおける電力消費の管理 | |
US20110022356A1 (en) | Determining performance sensitivities of computational units | |
WO2013101189A1 (en) | Multi-level cpu high current protection | |
US20230004185A1 (en) | System and method for controllilng electrical current supply in a multi-processor core system via instruction per cycle reduction | |
TWI662477B (zh) | 以工作量可調性爲基礎的處理器效能狀態控制之技術 | |
EP4439235A1 (en) | Apparatus and method for workload, power, and performance-aware dynamic core frequency ramp rate | |
US20240329722A1 (en) | Apparatus and method to control temperature ramp rates including temperature spike detection and control | |
US20240330048A1 (en) | Apparatus and method for dynamic core management | |
US20240330234A1 (en) | Apparatus and Method for Temperature-Constrained Frequency Control and Scheduling |