TWI533211B - 用於任務排程之電腦系統,方法及電腦可讀取記錄媒體 - Google Patents
用於任務排程之電腦系統,方法及電腦可讀取記錄媒體 Download PDFInfo
- Publication number
- TWI533211B TWI533211B TW102141466A TW102141466A TWI533211B TW I533211 B TWI533211 B TW I533211B TW 102141466 A TW102141466 A TW 102141466A TW 102141466 A TW102141466 A TW 102141466A TW I533211 B TWI533211 B TW I533211B
- Authority
- TW
- Taiwan
- Prior art keywords
- task
- tasks
- group
- computer system
- computing devices
- Prior art date
Links
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/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- 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
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/483—Multiproc
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
本發明是有關於一種電腦系統的任務排程方法,且特別是有關於一種異質多核心之電腦系統的任務排程方法及其電腦可讀取記錄媒體。
近年來,半導體的物理極限導致單核處理器之設計成本及時間大幅增加,手機、平板及個人電腦等電腦系統的處理器不再追求更高的時脈處理速度,而是往多核心處理器(multi-core processor)的方向發展。
一般而言,多核心處理器可分為同質多核心處理器(Homogeneous multi-core processor)及異質多核心處理器(Heterogeneous multi-core processor)。因現今有各式各樣不同的應用程式,有些應用程式需要高時脈的運算,有些則需要大量的平行運算,故具有不同類型核心的異質多核心處理器相較於具有相同類型核心的同質多核心處理器在處理多種不同類型的應用程式上更具優勢。
因此,因應異質多核心處理器於硬體上的發展,定
義不同類型核心之應用程式介面的開放計算語言(OpenCL,Open Computing Language)也更受到重視。
然而,目前OpenCL程式開發者針對不同的多核心處理器須分別進行開發。舉例來說,針對不同的多核心處理器須分別開發不同的排程器,造成排程器的可攜性(Portability)較低。再者,現行排程器針對異質多核心亦無法針對多個運算裝置的運算資源做有效的運用,導致運算資源的浪費。
因此,本發明提供一種電腦系統及其排程方法與電腦可讀取記錄媒體,藉以適用於各種不同的異質多核心之電腦系統,並能有效地使用多種不同類型的運算裝置。
本發明之一態樣係關於一種電腦系統。電腦系統包含複數個運算裝置及處理單元。處理單元包含裝置監控模組、任務分類模組及任務排程模組。處理單元耦接於運算裝置。裝置監控模組監控運算裝置以得到負載資料,任務分類模組將複數個任務中相關聯之任務分類為第一群體,及任務中獨立之任務分類為第二群體,並找出第一群體中相關聯之任務的關鍵路徑。任務排程模組根據關鍵路徑及負載資料設定第一群體之第一處理排程,並根據第一處理排程及負載資料設定第二群體的一第二處理排程。
在一實施方式中,任務分類模組根據任務是否使用相同的記憶體位置以分類任務。其中,當任務之一部份讀
取或寫入相同的記憶體位置時,任務之所述部份將分類成第一群體。
在另一實施方式中,任務分類模組更將第一群體內的任務分成具處理順序之複數個層級,並設定起始任務於層級之第一者中。
在又一實施方式中,任務分類模組由起始任務開始,依序層級地於下一層級之至少一個立即後繼任務中,根據選擇參數選擇關鍵立即後繼任務直到層級之最後一者,藉此找出關鍵路徑。
在一實施方式中,選擇參數係選自於由立即後繼任務於運算裝置對應之整體運算時間、立即後繼任務之後繼任務的數量及立即後繼任務於運算裝置的複數個運算時間及其任意組合所組成。
在另一實施方式中,任務排程模組更由層級之第一者開始排程至最後一者,於每一層級中,先分配對應之關鍵任務其中一者,後分配每一層級其餘的任務。
在次一實施方式中,任務排程模組將根據第一處理排程及負載資料設定運算裝置之多個閒置時段,並分配第二群體之任務於閒置時段中。
在又一實施方式中,任務排程模組更用以計算第二群體之個別任務所需之複數個運算時間長度,任務排程模組將其中一個閒置時段與運算時間長度比較以搜尋一目標任務,使目標任務之運算時間長度小於其中一個閒置時段,且為小於其中一個閒置時段的運算時間長度之中最接
近該閒置時段者。
在一實施方式中,複數個運算裝置係選自於由中央處理器、圖像處理器或雲端處理器及其任意組合所組成。
在另一實施方式中,電腦系統更包含任務指派模組,用以根據第一處理排程及第二處理排程指派任務至運算裝置。
本發明另一態樣係關於一種電腦系統之排程方法,包含:監測多個運算裝置以得到負載資料;分類複數個任務中相關聯之任務及獨立之任務分別為第一群體及第二群體;設定第一群體之關鍵路徑;根據關鍵路徑及負載資料,設定第一群體的一第一處理排程;根據第一群體之第一處理排程及負載資料,設定第二群體的第二處理排程。
在一實施方式中,分類任務為第一群體及第二群體的步驟中更包含:根據任務是否使用相同的記憶體位置以分類任務;其中,當任務之一部份讀取或寫入相同的記憶體位置時,分類任務之所述部份為第一群體。
在另一實施方式中,分類任務為第一群體及第二群體的步驟更包含:分類第一群體之任務至具處理順序之複數個層級;以及設定起始任務於層級之第一者中。
在次一實施方式中,設定第一群體的第一處理排程的步驟更包含:始於起始任務,依序層級地於下一層級之複數個立即後繼任務中,根據選擇參數選擇關鍵立即後繼任務直到層級之最後一者,藉此找出關鍵路徑。
在又一實施方式中,選擇參數係選自於立即後繼任
務於運算裝置其中一者所對應之整體運算時間、立即後繼任務之後繼任務的數量及執行立即後繼任務於運算裝置的複數個時間及其任意組合所組成。
在一實施方式中,設定第一群體的第一處理排程的步驟更包含:由層級之第一者開始排程至最後一者,並於每一層級中,先分配對應之關鍵任務其中一者於同一運算裝置,後分配每一層級其餘的任務。
在另一實施方式中,設定第二群體的第二處理排程的步驟更包含:根據該第一處理排程及該負載資料設定該些運算裝置之複數個閒置時間;以及分配第二群體之任務於閒置時段中。
在次一實施方式中,排程第二群體之任務於閒置時段中的步驟更包含:計算第二群體之個別任務所需之複數個運算時間長度;以及比較其中一個閒置時段與運算時間長度以搜尋目標任務;其中,目標任務之運算時間長度小於其中一個閒置時段且為小於其中一個閒置時段的運算時間長度之中最接近閒置時段者。
在又一實施方式中,排程方法更包含:根據第一處理排程及第二處理排程指派任務至運算裝置。
本發明次一態樣係有關於一種電腦可讀取記錄媒體,儲存電腦程式,用以執行一種電腦系統之排程方法,其中電腦系統之排程方法包含:監測複數個運算裝置以得到負載資料;分類複數個任務中相關聯之任務及獨立之任務分別為第一群體及第二群體;設定第一群體之關鍵路
徑;根據關鍵路徑及負載資料,設定第一群體的第一處理排程;根據第一群體之第一處理排程及負載資料,設定第二群體的第二處理排程。
由以上實施方式可知,採用本發明實施方式所示之電腦系統及其排程方法,可有效地使用多個運算裝置的運算資源,藉以大幅增加處理效能。此外,本發明實施方式所示之電腦系統及其排程方法亦適用於不同的多核心電腦系統,不需因不同的運算裝置組成改變排程方法,藉以使本發明之可攜性增加。
為讓本揭示內容能更明顯易懂,所附符號之說明如
下:
100‧‧‧電腦系統
102‧‧‧處理單元
104‧‧‧任務分類模組
106‧‧‧任務排程模組
108‧‧‧任務指派模組
110‧‧‧裝置監控模組
112a~112c‧‧‧運算裝置
PGM‧‧‧程式
200a‧‧‧任務群體
200b‧‧‧任務群體
200c‧‧‧任務群體
202a~202f‧‧‧記憶體位置
204a~204l‧‧‧任務
300‧‧‧相關聯任務群體
Lv1~Lv5‧‧‧層級
310、320、322、324、330、332、340、350‧‧‧任務
400‧‧‧相關聯任務群體
410、412、420、422、424、430、432、440、450‧‧‧任務
500a‧‧‧相關聯任務群體
500b‧‧‧獨立任務群體
510、520、522、530、540、550、560、562、564‧‧‧任務
570、572、574、576、580、582、584、586、588、590、592、594‧‧‧時間區間
S602、S604、S606、S608、S610、S612、S614‧‧‧步驟
為讓本案能更明顯易懂,所附圖式之說明如下:第1圖為依照本發明一實施方式的一種電腦系統之示意圖;第2A圖為依照本發明一實施方式的一種相關聯任務群體的示意圖;第2B圖為依照本發明一實施方式的另一種相關聯任務群體的示意圖;第2C圖為依照本發明一實施方式的一種獨立任務群體的示意圖;第3圖為依照本發明一實施方式的一種相關聯任務群體之所有任務的示意圖;第4圖為依照本發明一實施方式的另一種相關聯任務群體之所有任務的示意圖;
第5A圖為依照本發明一實施方式的一種相關聯任務群體和獨立任務群體的示意圖;第5B圖為依照本發明一實施方式的一種相關聯任務群體和獨立任務群體的排程圖;以及第6圖為依照本發明一實施方式的一種排程方法的流程圖。
本發明將在本說明書中利用隨附圖示的參考更充分地陳述,其中隨附圖示繪有本發明的實施方式。然而本發明以許多不同形式實現而不應受限於本說明書陳述之實施方式。這些實施方式的提出令本說明書詳盡且完整,而將充分表達本發明範圍予本發明所屬技術領域之通常知識者。本文中相同的參考編號意指相同的元件。
請參照第1圖,第1圖為依照本發明一實施方式的一種電腦系統100之示意圖。電腦系統100包含處理單元102及運算裝置112a~112c。處理單元102更包含任務分類模組104、任務排程模組106、任務指派模組108以及裝置監控模組110。
處理單元102耦接於運算裝置112a~112c,更詳細地來說,處理單元102之任務指派模組108和裝置監控模組110分別耦接於運算裝置112a~112c。於處理單元102內,任務分類模組104耦接於任務排程模組106。任務排程模組106耦接於裝置監控模組110及任務指派模組108。
裝置監控模組110監控運算裝置112a~112c以得
到運算裝置112a~112c的負載資料,並輸出負載資料至任務排程模組106。
在一些實施方式中,每一運算裝置112a~112c可為一中央處理器、一圖像處理器或一雲端處理器。
在一些實施方式中,運算裝置之數目不限於3個。
首先,任務分類模組104接收程式PGM,並將程式PGM分成複數個任務。接著,任務分類模組104將程式PGM之任務中相關聯的任務分類為相關聯任務群體,並將程式PGM之任務中獨立之任務分類為獨立任務群體。更進一步來說,判斷任務為有彼此相關聯或各自獨立係根據任務間是否讀取/寫入相同的記憶體位置。若多個任務之間涉及到讀取/寫入同一個記憶體區段/磁區/位址,則判斷多個任務為相互關聯並屬於同一個相關聯任務群體;反之,若任務之間所涉及的記憶體區段/磁區/位址各自不同,則判斷任務各自獨立且屬於各自的獨立任務群體。
電腦系統100中彼此相關的一系列任務可為一個相關聯任務群體,另一方面,電腦系統100可同時存在多個不同系列的任務,分為多個不同的相關聯任務群體。
在一些實施方式中,相關任務群體亦稱為有狀態群體(stateful group),獨立任務群體亦稱為無狀態群體(stateless group)。
為進一步說明相關聯任務群體和獨立任務群體,請一併參照第2A~2C圖,第2A~2B圖為依照本發明一實施方式的兩種相關聯任務群體的示意圖。
如第2A圖所示,任務群體200a包含四個任務204a~204d,分別讀取/寫入相同的記憶體位置202a,則稱任務群體200a為相關聯任務群體。
如第2B圖所示,任務群體200b包含四個任務204e~204h,分別讀取/寫入相同的記憶體位置202b,也稱任務群體200b為相關聯任務群體。相較於第2A圖之任務群體200a,任務群體200b具運算上之順序,即任務204e運算完後,才會運算任務204f,同理,接續地運算任務204g及任務204h。
另一方面,第2C圖為依照本發明一實施方式的一種獨立任務群體的示意圖,如第2C圖所示,任務群體200c包含四個任務204i~204l,分別讀取/寫入不同的記憶體位置202c~202f,則稱四個任務204i~204l為獨立任務群體。
再者,任務分類模組104更用以找出相關聯任務群體的關鍵路徑,關鍵路徑係具有最長的處理時間之任務序列,並能決定所有任務的整體運算時間。為了更清楚說明,請一併參照第3圖,第3圖係依照本發明一實施方式的一種相關聯任務群體300之所有任務的示意圖。相關聯任務群體300包含任務310、320、322、324、330、332、340、350。
首先,任務分類模組104根據任務的先後順序將任務310、320、322、324、330、332、340、350分成五個層級Lv1~Lv5,其中,因任務320、322、324、330、332、
340、350所屬的層級Lv2~Lv5於順序上在層級Lv1之後,故稱任務320、322、324、330、332、340、350為任務310之後繼任務,另一方面,因任務320、322、324所屬的層級Lv2在層級Lv1之下一者,故稱任務320、322、324為任務310之立即後繼任務。
因層級Lv1只包含任務310,故任務分類模組104會先設定任務310為一起始任務。任務分類模組104由起始任務(任務310)開始,依序層級地找出關鍵路徑。任務分類模組104係根據一選擇參數於立即後繼任務320、322、324中選擇一關鍵立即後繼任務。在本實施方式中,選擇參數為每一立即後繼任務分別於運算裝置112a~112c上之運算時間,在此,因任務320於每一裝置上均具較長的運算時間(包含搬取記憶體內容之時間,舉例來說,當任務310分配至運算裝置112a,而任務320分配至運算裝置112b時,將把運算裝置112a所儲存的內容搬至運算裝置112b以供任務320使用),故選擇任務320作為關鍵立即後繼任務。接著,由任務320出發,依序於層級Lv3~Lv5選擇任務330、340、350,因而使任務310、320、330、340、350為相關聯任務群體300的關鍵路徑。接著,任務分類模組104將傳送關鍵路徑至任務排程模組106。
在本發明一些實施方式中,選擇參數可為每一立即後繼任務於該些運算裝置其中一者所對應之一整體運算時間。舉例來說,若任務310、320於運算裝置112a、任務322於運算裝置112b及任務324於運算裝置112c之任務分
配相較於其他任務分配有最短的整體運算時間,且任務320於運算裝置112a上有最長的運算時間時,任務320則被選為關鍵立即後繼任務。
在本發明一些實施方式中,選擇參數可為立即後繼任務之後繼任務的數量。為更清楚說明,請參照第4圖,第4圖為依照本發明一實施方式的另一種相關聯任務群體400之所有任務的示意圖,相關聯任務群體400包含任務410、412、420、422、424、430、432、440、450,任務分類模組104將任務410、412、420、422、424、430、432、440、450分為5層Lv1~Lv5。
相較於第3圖之相關聯任務群體300,第4圖之相關聯任務群體400於層級Lv1有兩個任務,而任務分類模組104亦可根據選擇參數來設定初始任務。因本實施方式之選擇參數為立即後繼任務之後繼任務的數量,故欲根據選擇參數設定選擇層級Lv1之任務410、412其中一者為初始任務時,根據層級Lv1之任務410、412之後繼任務的數量來設定初始任務。因此,如圖所示,任務410之後繼任務的數量為4,而任務412之後繼任務的數量為6,故設定具較多後繼任務的任務412為初始任務。
接著,任務412於層級Lv2之立即後繼任務為任務422、424,任務422之後繼任務的數量為3,任務424之後繼任務的數量為1,故選擇任務422作為關鍵立即後繼任務。隨後,於層級Lv3~Lv5分別選擇任務430、440、450作為關鍵立即後繼任務,藉以找出關鍵路徑並傳送關鍵路
徑至任務排程模組106。
任務排程模組106用以根據關鍵路徑及負載資料設定相關聯任務群體之第一處理排程,並根據第一處理排程及負載資料設定獨立任務群體之第二處理排程。為進一步說明,請一併參照第5A~5B圖。第5A圖為依照本發明一實施方式的一種相關聯任務群體和獨立任務群體的示意圖;第5B圖為依照本發明一實施方式的一種相關聯任務群體和獨立任務群體的排程圖。
如第5A圖所示,相關聯任務群體500a包含任務510、520、522、530、540、550,獨立任務群體500b包含任務560、562、564。相關聯任務群體500a之關鍵路徑為510、520、530、540、550,而運算裝置112a~112c分別為中央處理器、圖像處理器及雲端處理器
於本實施方式中,相關聯任務群體500a包含需大量平行處理之任務510、520、530、540、550以及需高時脈運算之任務522,獨立任務群體500b包含需高時脈運算的任務560、562、564。
為清楚說明任務排程模組106如何設定排程,請一併參照第5B圖。如第5B圖所示,根據負載資料之內容,時間區間590已為其他程式或其他用戶所使用,故任務排程模組106於分配任務時,不會將任一任務分配至時間區間590。
首先,任務排程模組106先從相關聯任務群體500a開始排程。在相關聯任務群體500a之所有任務中,先排程
第一層級之任務510,任務510涉及大量的平行運算,導致任務排程模組106計算任務510在圖像處理器112b上的運算時間小於在中央處理器112a上的運算時間,且雲端處理器於當下無法使用。因此,任務排程模組106將分配任務510至運算裝置112b之時間區間580。
於下一層級中,任務排程模組106先排程關鍵路徑上的任務520,因任務520亦涉及大量的平行運算,故任務排程模組106將任務520分配至相同的圖像處理器112b以得到最短的運算時間,使得任務520將於時間區間582中作運算。接著,任務排程模組106進一步比較同層級剩餘之任務522於中央處理器112a及雲端處理器112c之運算時間(包含記憶體內容搬移之時間),因任務522寫入記憶體之資料搬移至中央處理器112a之速度較搬移至雲端處理器112c快,導致任務522於中央處理器112a之運算時間較短,故分配任務522至中央處理器112a之時間區間572。而後續涉及大量平行運算之任務530、540、550則分別分配至相同的圖像處理器112b以得到較短的處理時間584、586、588,藉此得到相關聯任務群體500a的第一處理排程。
任務排程模組106分配完相關聯任務群體500a後,任務排程模組106將先計算並排序獨立任務群體500b之個別任務564、562、560於中央處理裝置112a、圖像處理器112b及雲端處理器112c的運算時間。於本實施方式中,於每一運算裝置112a~112c的運算時間之排序均為任務564、任務562、任務560(由長至短)。
隨後,任務排程模組106根據第一處理排程(包含時間區間572、580、582、584、586、588)及負載資料(包含時間區間590)分配獨立任務群體500b之任務560、562、564。
更進一步來說,任務排程模組106根據第一處理排程及負載資料設定運算裝置112a~112c之複數個閒置時段,並將其中一個閒置時段與任務560、562、564的運算時間長度比較以搜尋目標任務,其中,目標任務之運算時間長度小於其中一個閒置時段,且為小於其中一個閒置時段的運算時間長度中最接近閒置時段者。
於本實施方式中,任務排程模組106將先指定中央處理器112a之任務522前的第一閒置時段570,閒置時段570均小於任務560、562、564於中央處理裝置112a之運算時間,故放棄第一閒置時段。
接著,指定中央處理器112a中任務522後之第二閒置時段,因閒置時段僅大於任務560於中央處理器112a之運算時間,故分配任務560至中央處理器112a。
隨後,指定雲端處理器112c於時間區間590之後的第三閒置時段,因第三閒置時段大於任務562、564於雲端處理器112c之總運算時間,故依序運算時間之長短,先後分配任務564、562至第三閒置時段中使任務564、562分別佔據了時間區間592、594,藉以得到第二處理排程(包含時間區間576、592、594)。
最後,任務指派模組108將根據第一處理排程及第
二處理排程指派任務至運算裝置112a~112c,藉以執行程式PGM。
在上述所有實施方式中,處理單元102可為中央處理器、控制元件(control unit)、微處理器(micro processor)或其他可執行指令之硬體元件。
處理單元102之各模組104、106、108、110可實作為程式碼,並將此些程式碼儲存於儲存元件中。於是,處理單元讀取並執行儲存元件中之此些程式碼後,提供各模組相應之功能。在一些實施方式中,儲存元件可為唯讀記憶體、快閃記憶體、軟碟、硬碟、光碟、隨身碟、磁帶、可由網路存取之資料庫或其他類型之儲存元件。
為更詳盡說明本發明之排程流程,請一併參照第6圖,第6圖為依照本發明一實施方式之排程方法的流程圖。當一程式進入電腦系統100時,處理單元102之任務分類模組104先分析程式,藉以將程式包含之任務分類成相關聯任務群體及獨立任務群體(S602)。接著任務分類模組104在相關聯任務群體中找出關鍵路徑,並將關鍵路徑傳送至任務排程模組106,同時,裝置監控模組110監控運算裝置112a~112c以產生負載資訊至任務排程模組106(S604)。隨後,任務排程模組106將選擇相關聯任務群體之其中一者,並根據關鍵路徑及負載資訊依序層級分配任務,於每一層級中,先分配關鍵路徑上的任務,後分配相同層級剩餘之任務(S606),接著,檢查是否有其他相關聯任務群體(S608),若有,回到步驟S606以排程其他相關聯任務群體,
若無,則產生相關聯任務群體之第一處理排程(S610),任務排程模組106將根據第一處理排程找出各運算裝置上的閒置時段,並將獨立任務群體之任務分配至閒置時段中以產生第二處理排程(S612)。最後,任務指派模組108將根據第一處理排程及第二處理排程指派任務至運算裝置112a~112c中(S614),藉以執行該程式。
在一些實施方式中,第6圖所示之排程方法可實作為一電腦程式產品(如應用程式),並儲存於一電腦可讀取記錄媒體中,而使電腦讀取此記錄媒體後執行排程方法。電腦可讀取記錄媒體可為唯讀記憶體、快閃記憶體、軟碟、硬碟、光碟、隨身碟、磁帶、可由網路存取之資料庫或熟悉此技藝者可輕易思及具有相同功能之電腦可讀取記錄媒體。
功效根據前述實施方式可知,應用本案之電腦系統及其排程方法,不僅能有效地使用複數個運算裝置的運算資源,藉以大幅增加處理效能,更能將排程方法適用於不同核心組成的多核心電腦系統。
雖然本發明已以實施方式揭露如上,然其並非用以限定本發明,任何熟習此技藝者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
S602‧‧‧步驟
S604‧‧‧步驟
S606‧‧‧步驟
S608‧‧‧步驟
S610‧‧‧步驟
S612‧‧‧步驟
S614‧‧‧步驟
Claims (20)
- 一種電腦系統,包含:複數個運算裝置;以及一處理單元,係耦接於該些運算裝置,該處理單元更包含:一裝置監控模組,用以監控該些運算裝置以得到一負載資料;一任務分類模組,用以將複數個任務中相關聯之任務分類為一第一群體,及該些任務中獨立之任務分類為一第二群體,並找出該第一群體中該些相關聯之任務的一關鍵路徑;一任務排程模組,用以根據該關鍵路徑及該負載資料設定該第一群體之一第一處理排程,並根據該第一處理排程設定該第二群體的一第二處理排程。
- 如申請專利範圍第1項所述之電腦系統,其中該任務分類模組根據該些任務是否使用相同的記憶體位置來分類該些任務是否相關聯;其中,當該些任務之一部份讀取或寫入相同的記憶體位置時,該些任務之該部份將分類成該第一群體。
- 如申請專利範圍第1項所述之電腦系統,其中該任務分類模組更將該第一群體內的任務分成具處理順序之複數個層級,並設定一起始任務於該些層級之第一者中。
- 如申請專利範圍第3項所述之電腦系統,其中該任務分類模組由該起始任務開始,依序層級地於下一層級之至少一個立即後繼任務中,根據一選擇參數選擇一關鍵立即後繼任務直到該些層級之最後一者,藉此找出該關鍵路徑。
- 如申請專利範圍第4項所述之電腦系統,其中該選擇參數係選自於由該立即後繼任務於該些運算裝置其中一者所對應之一整體運算時間、該立即後繼任務之後繼任務的一數量及該立即後繼任務於該些運算裝置的複數個運算時間及其任意組合所組成。
- 如申請專利範圍第3項所述之電腦系統,其中該任務排程模組更由該些層級之第一者開始排程至最後一者,於每一層級中,先分配該關鍵路徑對應之的任務,後分配該每一層級其餘的任務。
- 如申請專利範圍第1項所述之電腦系統,其中該任務排程模組根據該第一處理排程及該負載資料設定該些運算裝置之複數個閒置時段,並分配該第二群體之任務於該些閒置時段中。
- 如申請專利範圍第7項所述之電腦系統,其中該任 務排程模組更用以計算該第二群體之個別任務所需之複數個運算時間長度,該任務排程模組將其中一個閒置時段與該些運算時間長度比較以搜尋一目標任務,使該目標任務之該運算時間長度小於該其中一個閒置時段且為小於該其中一個閒置時段的該些運算時間長度之中最接近該閒置時段者。
- 如申請專利範圍第1項所述之電腦系統,其中該些運算裝置係選自於由一中央處理器、一圖像處理器或一雲端處理器及其任意組合所組成。
- 如申請專利範圍第1項所述之電腦系統,其中該電腦系統更包含一任務指派模組,用以根據該第一處理排程及該第二處理排程指派任務至該些運算裝置。
- 一種電腦系統之排程方法,包含:監測複數個運算裝置以得到一負載資料;分類複數個任務中相關聯之任務及獨立之任務分別為一第一群體及一第二群體;設定該第一群體之一關鍵路徑;根據該關鍵路徑及該負載資料,設定該第一群體的一第一處理排程;根據該第一群體之該第一處理排程及該負載資料,設定該第二群體的一第二處理排程。
- 根據申請專利範圍第11項所述之排程方法,其中分類該些任務為該第一群體及該第二群體的步驟中更包含:根據該些任務是否使用相同的記憶體位置以分類該些任務;其中,當該些任務之一部份讀取或寫入相同的記憶體位置時,分類該些任務之該部份為該第一群體。
- 根據申請專利範圍第11項所述之排程方法,其中分類該些任務為該第一群體及該第二群體的步驟更包含:分類該第一群體之任務至具處理順序之複數個層級;以及設定一起始任務於該些層級之第一者中。
- 根據申請專利範圍第13項所述之排程方法,其中設定該第一群體之一關鍵路徑的步驟更包含:始於該起始任務,依序層級地於下一層級之至少一個立即後繼任務中,根據一選擇參數選擇一關鍵立即後繼任務直到該些層級之最後一者,藉此找出該關鍵路徑。
- 根據申請專利範圍第14項所述之排程方法,其中該選擇參數係選自於由該立即後繼任務於該些運算裝置其中一者所對應之一整體運算時間、該立即後繼任務之後繼任務的一數量及該立即後繼任務於該些運算裝置的複數個 運算時間及其任意組合所組成。
- 根據申請專利範圍第13項所述之排程方法,其中設定該第一群體的一第一處理排程的步驟更包含:由該些層級之第一者開始排程至最後一者,並於每一層級中,先分配該關鍵路徑對應之的任務,後分配該每一層級其餘的任務。
- 根據申請專利範圍第11項所述之排程方法,其中設定該第二群體的一第二處理排程的步驟包含:根據該第一處理排程及該負載資料設定該些運算裝置之複數個閒置時段;以及分配該第二群體之任務於該些閒置時段中。
- 根據申請專利範圍第17項所述之排程方法,其中排程該第二群體之任務於該些閒置時段中的步驟更包含:計算該第二群體之個別任務所需之複數個運算時間長度;以及比較其中一個閒置時段與該些運算時間長度以搜尋一目標任務;其中,該目標任務之該運算時間長度小於該其中一個閒置時段且為小於該其中一個閒置時段的該些運算時間長度之中最接近該閒置時段者。
- 根據申請專利範圍第11項所述之排程方法,其中該排程方法更包含:根據該第一處理排程及該第二處理排程指派任務至該些運算裝置。
- 一種電腦可讀取記錄媒體,儲存一電腦程式,用以執行一種電腦系統之排程方法,其中該電腦系統之排程方法包含:監測複數個運算裝置以得到一負載資料;分類複數個任務中相關聯之任務及獨立之任務分別為一第一群體及一第二群體;設定該第一群體之一關鍵路徑;根據該關鍵路徑及該負載資料,設定該第一群體的一第一處理排程;根據該第一群體之該第一處理排程及該負載資料,設定該第二群體的一第二處理排程。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102141466A TWI533211B (zh) | 2013-11-14 | 2013-11-14 | 用於任務排程之電腦系統,方法及電腦可讀取記錄媒體 |
CN201310594022.0A CN104636202A (zh) | 2013-11-14 | 2013-11-21 | 计算机系统及其排程方法 |
US14/200,029 US20150135186A1 (en) | 2013-11-14 | 2014-03-07 | Computer system, method and computer-readable storage medium for tasks scheduling |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102141466A TWI533211B (zh) | 2013-11-14 | 2013-11-14 | 用於任務排程之電腦系統,方法及電腦可讀取記錄媒體 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201519091A TW201519091A (zh) | 2015-05-16 |
TWI533211B true TWI533211B (zh) | 2016-05-11 |
Family
ID=53044983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102141466A TWI533211B (zh) | 2013-11-14 | 2013-11-14 | 用於任務排程之電腦系統,方法及電腦可讀取記錄媒體 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20150135186A1 (zh) |
CN (1) | CN104636202A (zh) |
TW (1) | TWI533211B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013010159A1 (en) * | 2011-07-14 | 2013-01-17 | Siemens Corporation | Reducing the scan cycle time of control applications through multi-core execution of user programs |
CN105279598A (zh) * | 2015-05-18 | 2016-01-27 | 哈尔滨理工大学 | 基于动态关键路径法的兄弟工序成组综合调度方法 |
GB2555929B (en) * | 2016-03-07 | 2018-11-28 | Imagination Tech Ltd | Task assembly |
GB2543866B (en) | 2016-03-07 | 2017-11-01 | Imagination Tech Ltd | Task assembly for SIMD processing |
CN107391162A (zh) * | 2016-05-17 | 2017-11-24 | 环旭电子股份有限公司 | 手持式装置及更新排程的产生方法 |
US10204060B2 (en) * | 2016-09-13 | 2019-02-12 | International Business Machines Corporation | Determining memory access categories to use to assign tasks to processor cores to execute |
US10169248B2 (en) | 2016-09-13 | 2019-01-01 | International Business Machines Corporation | Determining cores to assign to cache hostile tasks |
CN106502798B (zh) * | 2016-11-15 | 2017-09-22 | 合肥工业大学 | 一种适用于移动医疗的任务调度系统及方法 |
US11531912B2 (en) * | 2019-04-12 | 2022-12-20 | Samsung Electronics Co., Ltd. | Electronic apparatus and server for refining artificial intelligence model, and method of refining artificial intelligence model |
KR20200120469A (ko) * | 2019-04-12 | 2020-10-21 | 삼성전자주식회사 | 인공지능 모델을 갱신하는 전자 장치, 서버 및 그 동작 방법 |
CN110187958B (zh) * | 2019-06-04 | 2020-05-05 | 上海燧原智能科技有限公司 | 一种任务处理方法、装置、系统、设备及存储介质 |
CN110428453B (zh) * | 2019-07-30 | 2020-12-15 | 深圳云天励飞技术有限公司 | 数据处理方法、装置、数据处理设备及存储介质 |
CN111737095A (zh) * | 2020-08-05 | 2020-10-02 | 北京必示科技有限公司 | 批处理任务时间监控方法、装置、电子设备及存储介质 |
CN113656166A (zh) * | 2021-09-02 | 2021-11-16 | 上海联影医疗科技股份有限公司 | 一种任务处理系统及其计算资源分配方法 |
CN116703016B (zh) * | 2023-04-28 | 2023-12-26 | 北京大数据先进技术研究院 | 一种运输任务路径的存储、使用方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2723652B1 (fr) * | 1994-08-11 | 1996-09-13 | Cegelec | Procede pour ordonnancer des taches successives |
US7243351B2 (en) * | 2002-12-17 | 2007-07-10 | International Business Machines Corporation | System and method for task scheduling based upon the classification value and probability |
CN101908003B (zh) * | 2009-06-05 | 2014-10-22 | Sap股份公司 | 并行化查询的多核调度 |
JP2011059777A (ja) * | 2009-09-07 | 2011-03-24 | Toshiba Corp | タスクスケジューリング方法及びマルチコアシステム |
US9047129B2 (en) * | 2012-07-23 | 2015-06-02 | Adobe Systems Incorporated | Systems and methods for load balancing of time-based tasks in a distributed computing system |
-
2013
- 2013-11-14 TW TW102141466A patent/TWI533211B/zh active
- 2013-11-21 CN CN201310594022.0A patent/CN104636202A/zh active Pending
-
2014
- 2014-03-07 US US14/200,029 patent/US20150135186A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20150135186A1 (en) | 2015-05-14 |
CN104636202A (zh) | 2015-05-20 |
TW201519091A (zh) | 2015-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI533211B (zh) | 用於任務排程之電腦系統,方法及電腦可讀取記錄媒體 | |
US9430353B2 (en) | Analysis and visualization of concurrent thread execution on processor cores | |
US20230091261A1 (en) | Orchestration and scheduling of services | |
Ananthanarayanan et al. | {GRASS}: Trimming stragglers in approximation analytics | |
US9417935B2 (en) | Many-core process scheduling to maximize cache usage | |
US8799880B2 (en) | Parallelization of PLC programs for operation in multi-processor environments | |
US10108458B2 (en) | System and method for scheduling jobs in distributed datacenters | |
US11163677B2 (en) | Dynamically allocated thread-local storage | |
US11113093B2 (en) | Interference-aware scheduling service for virtual GPU enabled systems | |
US20120110047A1 (en) | Reducing the Response Time of Flexible Highly Data Parallel Tasks | |
US11144433B2 (en) | Analysis and visualization of application concurrency and processor resource utilization | |
Maruf et al. | Extending resources for avoiding overloads of mixed‐criticality tasks in cyber‐physical systems | |
US11693708B2 (en) | Techniques for increasing the isolation of workloads within a multiprocessor instance | |
Liu et al. | High-responsive scheduling with MapReduce performance prediction on hadoop YARN | |
Naik et al. | A review of adaptive approaches to MapReduce scheduling in heterogeneous environments | |
Yan et al. | Heterogeneous cores for mapreduce processing: Opportunity or challenge? | |
KR101869325B1 (ko) | 이종 멀티코어 환경에서의 코어 배정 장치 | |
Wang et al. | Millipedes: Distributed and set-based sub-task scheduler of computing engines running on yarn cluster | |
CN108241508B (zh) | 处理OpenCL内核的方法及用于该方法的计算设备 | |
Zhang et al. | Performance variations in resource scaling for mapreduce applications on private and public clouds | |
Al Na'mneh et al. | A new genetic-based algorithm for scheduling static tasks in homogeneous parallel systems | |
Kaufmann et al. | The {HCl} Scheduler: Going all-in on Heterogeneity | |
KR102530348B1 (ko) | Gpgpu의 스레드 블록 스케줄링 방법 및 장치 | |
Qiao et al. | An online workflow scheduling algorithm considering license limitation in heterogeneous environment | |
US20240126460A1 (en) | Enabling persistent memory for serverless applications |