本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體而言,涉及一種調(diào)度方法。
背景技術(shù):
隨著云計算的普及和廣泛應(yīng)用,越來越多的數(shù)據(jù)集中化、計算集中化管理,使hpc集群、仿真計算集群、圖形工作站集群、渲染農(nóng)場集群、docker集群以及大數(shù)據(jù)(hadoop、spark)集群的規(guī)模越來越大,應(yīng)用范圍越來越廣泛。同時,這些數(shù)據(jù)中心和計算中心的能耗問題也越來越凸顯,并已成為最主要的成本之一,而且還在持續(xù)上升中。目前,現(xiàn)有技術(shù)主要是針對計算節(jié)點的單個cpu負載情況來進行降頻做法,最主要是對空閑的cpu進行降頻處理,但是卻無法實現(xiàn)整個集群的節(jié)能降耗。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例的目的在于提供一種調(diào)度方法,以解決上述問題。
為了實現(xiàn)上述目的,本發(fā)明實施例采用的技術(shù)方案如下:
本發(fā)明實施例提供了一種調(diào)度方法,應(yīng)用于包括多個計算節(jié)點的集群中,該方法包括:獲取待處理任務(wù);采用預(yù)設(shè)調(diào)度策略集中的一個或多個策略,將所述待處理任務(wù)在所述集群的各個計算節(jié)點中進行調(diào)度,或根據(jù)所述待處理任務(wù)對所述集群中的計算節(jié)點的cpu或gpu進行調(diào)度,以降低所述集群的能耗,其中,所述預(yù)設(shè)調(diào)度策略集包括節(jié)點級集中式調(diào)度策略、cpu級集中式調(diào)度策略、作業(yè)分級策略、熱點均衡調(diào)度策略、能耗優(yōu)先調(diào)度策略、動態(tài)調(diào)頻策略、動態(tài)遷移策略。
作為一種實施方式,所述節(jié)點級集中式調(diào)度策略包括:將所述待處理任務(wù)優(yōu)先調(diào)度到所述集群中滿足所述待處理任務(wù)的運行要求且已處于計算過程中的計算節(jié)點進行處理。
作為一種實施方式,所述計算節(jié)點為多核計算節(jié)點,所述cpu級集中式調(diào)度策略包括:若所述待處理任務(wù)在所述計算節(jié)點的其中一個內(nèi)核進行處理,采用cpu綁定技術(shù)將所述待處理任務(wù)與處理所述待處理任務(wù)的內(nèi)核進行綁定,以避免所述待處理任務(wù)在所述計算節(jié)點的多個內(nèi)核間切換。
作為一種實施方式,所述作業(yè)分級策略包括:將所述待處理任務(wù)進行分級,根據(jù)所述待處理任務(wù)的級別調(diào)整所述待處理任務(wù)所使用的cpu或gpu的頻率。
作為一種實施方式,所述將所述待處理任務(wù)進行分級,根據(jù)所述待處理任務(wù)的級別調(diào)整所述待處理任務(wù)所使用的cpu或gpu的頻率,包括:若所述待處理任務(wù)為第一級別,則所述待處理任務(wù)使用cpu或gpu的第一頻率來計算;若所述待處理任務(wù)為第二級別,則所述待處理任務(wù)使用cpu或gpu的第二頻率來計算,其中,所述第一頻率大于所述第二頻率。
作為一種實施方式,所述熱點均衡調(diào)度策略包括:根據(jù)所述集群當(dāng)前的散熱分布情況,對所述待處理任務(wù)進行調(diào)度。
作為一種實施方式,所述根據(jù)所述集群當(dāng)前的散熱分布情況,對所述待處理任務(wù)進行調(diào)度,包括:將所述待處理任務(wù)優(yōu)先調(diào)度到所述集群中cpu或gpu的溫度小于第一閾值的計算節(jié)點上進行處理。
作為一種實施方式,所述能耗優(yōu)先調(diào)度策略包括:將所述待處理任務(wù)調(diào)度優(yōu)先調(diào)度到所述集群中當(dāng)前能耗小于第二閾值的計算節(jié)點上進行處理。
作為一種實施方式,所述動態(tài)調(diào)頻策略包括:在所述待處理任務(wù)處理過程中,實時對所述待處理任務(wù)進行特征圖譜分析;若所述待處理任務(wù)為非計算集中型任務(wù),則對所述待處理任務(wù)所使用的cpu或gpu進行降頻處理;若所述待處理任務(wù)為計算集中型任務(wù),則對所述待處理任務(wù)所使用的cpu或gpu進行升頻率處理。
作為一種實施方式,所述待處理任務(wù)的類型通過建立機器學(xué)習(xí)模型獲得。
作為一種實施方式,所述動態(tài)遷移策略包括:分析所述集群中正在處理的所有待處理任務(wù),若所述集群中正在處理的所有待處理任務(wù)離散分布在不同的計算節(jié)點進行處理,將所述待處理任務(wù)進行遷移,以使所述待處理任務(wù)集中在一個或多個計算節(jié)點上處理,并將所述集群中未處理所述待處理任務(wù)的計算節(jié)點休眠,當(dāng)所述集群中計算資源不足以處理新增待處理任務(wù)時,自動喚醒休眠的計算節(jié)點以處理新增待處理任務(wù)。
與現(xiàn)有技術(shù)相比,本發(fā)明實施例提供的一種調(diào)度方法,通過獲取待處理任務(wù),并采用預(yù)設(shè)調(diào)度策略集中的一個或多個策略,將所述待處理任務(wù)在所述集群的各個計算節(jié)點中進行調(diào)度,或根據(jù)所述待處理任務(wù)對所述集群中的計算節(jié)點的cpu或gpu進行調(diào)度,以降低所述集群的能耗,其中,所述預(yù)設(shè)調(diào)度策略集包括節(jié)點級集中式調(diào)度策略、cpu級集中式調(diào)度策略、作業(yè)分級策略、熱點均衡調(diào)度策略、能耗優(yōu)先調(diào)度策略、動態(tài)調(diào)頻策略、動態(tài)遷移策略,本方案能夠根據(jù)待處理任務(wù),實時動態(tài)調(diào)度集群中計算節(jié)點或計算節(jié)點的cpu或gpu,從而最大化減少整個集群的能耗,實現(xiàn)整個集群節(jié)能的目的。
為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附附圖,作詳細說明如下。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實施例,因此不應(yīng)被看作是對范圍的限定,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
圖1是本發(fā)明實施例提供的計算集群的示意圖。
圖2是本發(fā)明實施例提供的調(diào)度服務(wù)器的結(jié)構(gòu)框圖。
圖3是本發(fā)明實施例提供的一種調(diào)度方法的流程圖。
圖4是本發(fā)明實施例提供的一種節(jié)點級集中式調(diào)度策略及cpu級集中式調(diào)度策略的原理示意圖。
圖5是本發(fā)明實施例提供的一種熱點均衡調(diào)度策略的原理示意圖。
圖6是本發(fā)明實施例提供的一種調(diào)度方法的部分流程圖。
圖7是本發(fā)明實施例提供的一種動態(tài)調(diào)頻策略的原理示意圖。
圖8是本發(fā)明實施例提供的一種動態(tài)遷移策略的原理示意圖。
圖9是本發(fā)明實施例提供的一種調(diào)度裝置的結(jié)構(gòu)框圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。通常在此處附圖中描述和示出的本發(fā)明實施例的組件可以以各種不同的配置來布置和設(shè)計。因此,以下對在附圖中提供的本發(fā)明的實施例的詳細描述并非旨在限制要求保護的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實施例?;诒景l(fā)明的實施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
應(yīng)注意到:相似的標(biāo)號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步定義和解釋。同時,在本發(fā)明的描述中,術(shù)語“第一”、“第二”等僅用于區(qū)分描述,而不能理解為指示或暗示相對重要性。
如圖1所示,是本發(fā)明較佳實施例提供的計算集群的示意圖。該計算集群中可以包括一個或多個調(diào)度服務(wù)器100(圖中僅示出1個)及多個計算節(jié)點,所述調(diào)度服務(wù)器100通過網(wǎng)絡(luò)與集群中的多個計算節(jié)點(圖1所示210至240)進行通信連接,以進行數(shù)據(jù)通信或交互。當(dāng)調(diào)度服務(wù)器100獲取到待處理任務(wù)時,將待處理任務(wù)根據(jù)調(diào)度策略分配到所述計算節(jié)點(圖1所示210至240)中的其中一個進行處理。所述調(diào)度服務(wù)器100及所述計算節(jié)點(圖1所示210至240)可以是網(wǎng)絡(luò)服務(wù)器、數(shù)據(jù)庫服務(wù)器等、個人電腦(personalcomputer,pc)、平板電腦、智能手機等。
如圖2所示,是本發(fā)明實施例提供的一種調(diào)度服務(wù)器100的方框示意圖。所述調(diào)度服務(wù)器100包括存儲器110,一個或多個(圖中僅示出一個)處理器120,以及調(diào)度裝置500。
所述存儲器110與處理器120之間直接或間接地電性連接,以實現(xiàn)數(shù)據(jù)的傳輸或交互。例如,這些元件相互之間可通過一條或多條通訊總線或信號線實現(xiàn)電性連接。所述調(diào)度裝置500包括至少一個可以軟件或固件(firmware)的形式存儲于所述存儲器110中或固化在所述調(diào)度服務(wù)器100的操作系統(tǒng)(operatingsystem,os)中的軟件功能模塊。所述處理器120用于執(zhí)行存儲器110中存儲的可執(zhí)行模塊,例如所述調(diào)度裝置500中包括的軟件功能模塊或計算機程序。
其中,存儲器110可以是,但不限于,隨機存取存儲器(randomaccessmemory,ram),只讀存儲器(readonlymemory,rom),可編程只讀存儲器(programmableread-onlymemory,prom),可擦除只讀存儲器(erasableprogrammableread-onlymemory,eprom),電可擦除只讀存儲器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存儲器110用于存儲程序,所述處理器120在接收到執(zhí)行指令后,執(zhí)行所述程序,前述本發(fā)明實施例任一實施例揭示的流過程定義的服務(wù)器所執(zhí)行的方法可以應(yīng)用于處理器中,或者由處理器實現(xiàn)。
處理器120可能是一種集成電路芯片,具有信號的處理能力。上述的處理器可以是通用處理器,包括中央處理器(centralprocessingunit,簡稱cpu)、網(wǎng)絡(luò)處理器(networkprocessor,簡稱np)等;還可以是數(shù)字信號處理器(dsp)、專用集成電路(asic)、現(xiàn)成可編程門陣列(fpga)、圖形處理器(graphicprocessingunit,gpu)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件??梢詫崿F(xiàn)或者執(zhí)行本發(fā)明實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。
可以理解,圖2所示的結(jié)構(gòu)僅為示意,調(diào)度服務(wù)器100還可包括比圖2中所示更多或者更少的組件,或者具有與圖2所示不同的配置。圖2中所示的各組件可以采用硬件、軟件或其組合實現(xiàn)。
圖3示出了本發(fā)明實施例提供的一種調(diào)度方法的流程圖,請參閱圖3,本實施例描述的是調(diào)度服務(wù)器的處理流程,所述方法包括:
步驟s310,獲取待處理任務(wù)。
其中,所述待處理任務(wù)可以是hpc集群、仿真計算集群、圖形工作站集群、渲染農(nóng)場集群、docker集群以及大數(shù)據(jù)(hadoop、spark)集群的中需要處理的任務(wù),可以是一個任務(wù)也可以是一批任務(wù),根據(jù)需求進行設(shè)置。
步驟s320,采用預(yù)設(shè)調(diào)度策略集中的一個或多個策略,將所述待處理任務(wù)在所述集群的各個計算節(jié)點中進行調(diào)度,或根據(jù)所述待處理任務(wù)對所述集群中的計算節(jié)點的cpu或gpu進行調(diào)度,以降低所述集群的能耗,其中,所述預(yù)設(shè)調(diào)度策略集包括節(jié)點級集中式調(diào)度策略、cpu級集中式調(diào)度策略、作業(yè)分級策略、熱點均衡調(diào)度策略、能耗優(yōu)先調(diào)度策略、動態(tài)調(diào)頻策略、動態(tài)遷移策略。
作為一種實施方式,可以根據(jù)用戶命令來選擇采用預(yù)設(shè)調(diào)度策略集中的哪一個策略或采用哪些策略的組合。作為另一種所述方式,也可以設(shè)置默認配置,該默認配置中可以預(yù)設(shè)設(shè)置好對于某類待處理任務(wù)采用某個具體的調(diào)度策略或某幾個調(diào)度策略的組合。當(dāng)用戶沒有進行選擇時,則根據(jù)默認配置來決定對待處理任務(wù)采用的調(diào)度策略。作為另一種所述方式,也可以根據(jù)待處理任務(wù)的類型來決定采用預(yù)設(shè)調(diào)度策略集中的哪一個策略或采用哪些策略的組合。當(dāng)然,并不局限于上述方式。
作為一種實施方式,所述節(jié)點級集中式調(diào)度策略包括:將所述待處理任務(wù)優(yōu)先調(diào)度到所述集群中滿足所述待處理任務(wù)的運行要求且已處于計算過程中的計算節(jié)點進行處理。
請參閱圖4,該集群中包括了四個計算節(jié)點,分別為:計算節(jié)點a、計算節(jié)點b、計算節(jié)點b、計算節(jié)點d。每個計算節(jié)點均包括8個內(nèi)核。若此時,計算節(jié)點a的其中4個內(nèi)核已使用100%的計算頻率在處理計算任務(wù)1,計算節(jié)點a的剩余4個內(nèi)核及計算節(jié)點b的8個內(nèi)核已使用80%的計算頻率在處理計算任務(wù)2。計算節(jié)點c的其中4個內(nèi)核已使用100%的計算頻率在處理計算任務(wù)3,計算節(jié)點c的剩余4個內(nèi)核及計算節(jié)點d的8個內(nèi)核此時空閑。
可見此處,計算節(jié)點a、b、c均屬于已處于計算過程中的計算節(jié)點,若此時待處理任務(wù)只需要使用內(nèi)核20%的計算頻率,則此時采用節(jié)點級集中式調(diào)度策略,將待處理任務(wù)集中調(diào)度到計算節(jié)點a,b,c上,使得計算資源的使用得以集中化,從而使沒有參與的計算資源能更有效的進入節(jié)能模式。
作為一種實施方式,所述計算節(jié)點為多核計算節(jié)點,所述cpu級集中式調(diào)度策略包括:若所述待處理任務(wù)在所述計算節(jié)點的其中一個內(nèi)核進行處理,采用cpu綁定技術(shù)將所述待處理任務(wù)與處理所述待處理任務(wù)的內(nèi)核進行綁定,以避免所述待處理任務(wù)在所述計算節(jié)點的多個內(nèi)核間切換。
請參閱圖4,緊接上例進行說明,通過上述節(jié)點級集中式調(diào)度策略,此時,計算任務(wù)1,2,3及待處理任務(wù)被集中調(diào)度在計算節(jié)點a,b,c上,此時,若此時待處理任務(wù)被調(diào)度到計算節(jié)點b中的其中4個內(nèi)核(如圖4中所示計算節(jié)點b的上面4個內(nèi)核cpucore)上進行處理,可以將該待處理任務(wù)與處理所述待處理任務(wù)的內(nèi)核(如圖4中所示計算節(jié)點b的上面4個內(nèi)核cpucore)進行綁定,以避免所述待處理任務(wù)切換到該計算節(jié)點b的其它內(nèi)核(如圖4中所示計算節(jié)點b的下面4個內(nèi)核cpucore)上進行處理。并且,進一步的,對于計算節(jié)點c而言,沒有被使用的cpu,可以使其cpu頻率降到最低,從而大大降低能耗。對于計算節(jié)點d而言,由于其整體閑置,則進一步使其進入休眠模式。
通過上述實例可見,將節(jié)點級集中式調(diào)度策略及cpu級集中式調(diào)度策略聯(lián)合使用,并可以進一步的結(jié)合動態(tài)調(diào)頻策略使用,則能夠進一步的提高其節(jié)能效果。
作為一種實施方式,所述作業(yè)分級策略包括:將所述待處理任務(wù)進行分級,根據(jù)所述待處理任務(wù)的級別調(diào)整所述待處理任務(wù)所使用的cpu或gpu的頻率。
進一步的,作為一種實施方式,若所述待處理任務(wù)為第一級別,則所述待處理任務(wù)使用cpu或gpu的第一頻率來計算;若所述待處理任務(wù)為第二級別,則所述待處理任務(wù)使用cpu或gpu的第二頻率來計算,其中,所述第一頻率大于所述第二頻率。
作為一種實施方式,對于重要并需要緊急完成的待處理任務(wù)任務(wù),可以定義高運行級別(第一級別),而對于不緊急只要保證完成的作業(yè)定義低運行級別(第二級別)。
請繼續(xù)參閱圖4,將計算任務(wù)1定義了高優(yōu)先級,計算任務(wù)2為低優(yōu)先級。當(dāng)計算任務(wù)1被調(diào)度并在在計算節(jié)點a上時,其使用的cpu以100%的頻率全力參與計算,保證計算任務(wù)1高效運行。而計算任務(wù)2被調(diào)度在計算節(jié)點a和b上,其使用的cpu以80%的頻率參與計算,在計算的同時能夠?qū)崿F(xiàn)能耗的減少。
作為一種實施方式,所述能耗優(yōu)先調(diào)度策略包括:將所述待處理任務(wù)調(diào)度優(yōu)先調(diào)度到所述集群中當(dāng)前能耗小于第二閾值的計算節(jié)點上進行處理。通過這種方式,能夠降低計算任務(wù)在計算的過程中使用的能耗。
作為一種實施方式,所述熱點均衡調(diào)度策略包括:根據(jù)所述集群當(dāng)前的散熱分布情況,對所述待處理任務(wù)進行調(diào)度。
進一步的,作為一種實施方式,所述根據(jù)所述集群當(dāng)前的散熱分布情況,對所述待處理任務(wù)進行調(diào)度,包括:將所述待處理任務(wù)優(yōu)先調(diào)度到所述集群中cpu或gpu的溫度小于第一閾值的計算節(jié)點上進行處理。
第一閾值的設(shè)置可以根據(jù)需要進行設(shè)置。
請參閱圖5,圖5示出了整個集群中計算節(jié)點整體散熱分布的示意圖。圖5中示出了多個計算節(jié)點,分別為1a02、1a01、1a00、1a13、1a12、1a07、1a08、1a09、1a10、1a11,該圖中用不同色度(黑白灰)來體現(xiàn)不同的散熱程度,當(dāng)整個集群中計算節(jié)點的計算任務(wù)到達一定程度時,可以應(yīng)用熱點均衡調(diào)度策略,根據(jù)當(dāng)前集群整體散熱分布的情況來進行調(diào)度的,例如,可以生成一張如圖5所示的散熱分布圖,根據(jù)該散熱分布圖,將待處理任務(wù)優(yōu)先調(diào)度到cpu溫度低的計算節(jié)點(如圖5中所示的色度為白色的計算節(jié)點)上來運行,從而有效的避免了區(qū)域熱點的產(chǎn)生和熱力的不均衡分布,從而降低了整個集群的降溫耗能。
請參閱圖6,作為一種實施方式,所述動態(tài)調(diào)頻策略包括:
步驟s410,在所述待處理任務(wù)處理過程中,實時對所述待處理任務(wù)進行特征圖譜分析。
步驟s420,若所述待處理任務(wù)為非計算集中型任務(wù),則對所述待處理任務(wù)所使用的cpu或gpu進行降頻處理。
其中,非計算集中型任務(wù)是指該待處理任務(wù)在運行過程中的絕大部分時間并不是使用cpu或gpu來進行計算而是進行其他的操作,例如io操作等。
步驟s430,若所述待處理任務(wù)為計算集中型任務(wù),則對所述待處理任務(wù)所使用的cpu或gpu進行升頻率處理。
其中,計算集中型任務(wù)是指該待處理任務(wù)在運行過程中的絕大部分時間是使用cpu或gpu來進行計算。
請參閱圖7,計算任務(wù)1(待處理任務(wù))的運行在計算集群中的計算節(jié)點a和b上,在整個運行的過程中,通過動態(tài)調(diào)頻策略來實時優(yōu)化計算資源的能耗。如圖8所示,對計算任務(wù)1(待處理任務(wù))進行實時的特征分析,其在t1階段運行過程中主要以cpu資源的使用為主,cpu100%頻率參與計算,當(dāng)運行到t2階段時,計算任務(wù)1(待處理任務(wù))的運行過程不太需要cpu資源,轉(zhuǎn)而進行大量的io等操作,此時,通過動態(tài)調(diào)整策略,將計算任務(wù)1(待處理任務(wù))所使用的cpu進行動態(tài)調(diào)頻,以cpu20%頻率參與計算,從而減少能耗。當(dāng)運行到t3階段時,根據(jù)計算任務(wù)1(待處理任務(wù))的特征需要,又以100%頻率進行計算。
在上述實例中,通過實時對所述待處理任務(wù)進行特征圖譜分析來確定待處理任務(wù)的的類型,作為另一種實施方式,所述待處理任務(wù)的類型可以通過建立機器學(xué)習(xí)模型獲得。進一步的,根據(jù)待處理任務(wù)的運行過程和集群整體能耗情況等相關(guān)運行數(shù)據(jù)的分析和計算,建立機器學(xué)習(xí)模型,從而不斷迭代優(yōu)化任務(wù)分級策略。
作為一種實施方式,所述動態(tài)遷移策略包括:分析所述集群中正在處理的所有待處理任務(wù),若所述集群中正在處理的所有待處理任務(wù)離散分布在不同的計算節(jié)點進行處理,將所述待處理任務(wù)進行遷移,以使所述待處理任務(wù)集中在一個或多個計算節(jié)點上處理,并將所述集群中未處理所述待處理任務(wù)的計算節(jié)點休眠,當(dāng)所述集群中計算資源不足以處理新增待處理任務(wù)時,自動喚醒休眠的計算節(jié)點以處理新增待處理任務(wù)。
請參閱圖8,如圖8中的上半部分所示,計算任務(wù)1運行在計算集群中的計算節(jié)點a的其中4個內(nèi)核中和計算節(jié)點b的其中2個內(nèi)核中,計算任務(wù)2運行在計算節(jié)點c的其中2個內(nèi)核中,此時,該集群中正在處理的待處理任務(wù)1和2離散分布在計算節(jié)點a,b,c上處理,通過動態(tài)遷移策略,將離散分布的待處理任務(wù)采用計算任務(wù)進行遷移,從而使計算任務(wù)1和計算任務(wù)2完全遷移到計算節(jié)點a上,計算節(jié)點b和c空閑出來(如圖9中的下半部分所示),例如可以將運行于計算節(jié)點b及計算節(jié)點c上的待處理任務(wù)打上斷點,當(dāng)將運行于計算節(jié)點b及計算節(jié)點c上的待處理任務(wù)遷移到計算節(jié)點a后從該斷點開始重新運行。并且,可以進一步的通過動態(tài)調(diào)頻策略,對計算節(jié)點b和c進行降頻或休眠操作,從而降低整個集群中參與計算的cpu數(shù)和節(jié)點數(shù),從而減少能耗。
對整個集群的計算任務(wù)進行實時的監(jiān)控,對于離散分布的計算任務(wù)采用集中式調(diào)度策略的思路進行動態(tài)遷移,能夠?qū)崿F(xiàn)計算任務(wù)的運行集中化調(diào)整,從而使沒有參與的計算資源能更有效的進入節(jié)能模式。
由上述實施方式可以看出,多個調(diào)度策略配合使用,其節(jié)能降耗的效果將更加。例如,可以將節(jié)點級集中式調(diào)度策略及cpu級集中式調(diào)度策略配合使用,也可以將節(jié)點級集中式調(diào)度策略及動態(tài)調(diào)頻策略配合使用,當(dāng)然也可以將節(jié)點級集中式調(diào)度策略、cpu級集中式調(diào)度策略、及動態(tài)調(diào)頻策略配合使用,還可以將動態(tài)調(diào)頻策略及動態(tài)遷移策略配合使用,此處不再贅述,但是,上述策略的所有組合方式均屬于本方案保護的范圍。
本發(fā)明實施例提供的一種調(diào)度方法,通過獲取待處理任務(wù),并采用預(yù)設(shè)調(diào)度策略集中的一個或多個策略,將所述待處理任務(wù)在所述集群的各個計算節(jié)點中進行調(diào)度,或根據(jù)所述待處理任務(wù)對所述集群中的計算節(jié)點的cpu或gpu進行調(diào)度,以降低所述集群的能耗,其中,所述預(yù)設(shè)調(diào)度策略集包括節(jié)點級集中式調(diào)度策略、cpu級集中式調(diào)度策略、作業(yè)分級策略、熱點均衡調(diào)度策略、能耗優(yōu)先調(diào)度策略、動態(tài)調(diào)頻策略、動態(tài)遷移策略,本方案能夠根據(jù)待處理任務(wù),實時動態(tài)調(diào)度集群中計算節(jié)點或計算節(jié)點的cpu或gpu,從而最大化減少整個集群的能耗,實現(xiàn)整個集群節(jié)能的目的。
并且,本方案能夠?qū)崿F(xiàn)在待處理任務(wù)的計算過程中既保證運行效率,同時保證待處理任務(wù)盡量避免離散分布或熱源集中,從而最大化降頻和休眠的范圍和效果,降低整體能耗,最大化節(jié)能效果。
進一步的,本方案基于集群中所有計算節(jié)點的能耗值和cpu/gpu溫度來統(tǒng)一調(diào)度計算任務(wù)的。對于給定計算量的任務(wù),優(yōu)先分配到單位能耗最低的計算節(jié)點上運行,從而節(jié)約任務(wù)計算中使用的能源。在相同條件下,本方案將計算任務(wù)分配到當(dāng)前cpu/gpu溫度最低的計算節(jié)點上執(zhí)行,避免機房的熱點形成,從而降低機房空調(diào)的能耗。
再者,本方案在待處理任務(wù)的計算過程當(dāng)中進行調(diào)度,從而最大化節(jié)能效果。很多計算集群的計算任務(wù)往往需要運行在上百個計算節(jié)點,使用上千個cpu。然而,通常會發(fā)現(xiàn),當(dāng)計算集群中的很多小計算任務(wù)完成并釋放計算資源后,計算資源的使用非常離散,通過對這類大計算任務(wù)的遷移和調(diào)整,從而可以將大量的計算節(jié)點完全釋放出來,從而最大化降頻和休眠的范圍和效果。
請參閱圖9,是本發(fā)明實施例提供的調(diào)度裝置500的功能模塊示意圖。所述調(diào)度裝置500運行于調(diào)度服務(wù)器100。所述調(diào)度裝置500包括獲取模塊510,及調(diào)度模塊520。
獲取模塊510,用于獲取待處理任務(wù)。
調(diào)度模塊520,用于采用預(yù)設(shè)調(diào)度策略集中的一個或多個策略,將所述待處理任務(wù)在所述集群的各個計算節(jié)點中進行調(diào)度,或根據(jù)所述待處理任務(wù)對所述集群中的計算節(jié)點的cpu或gpu進行調(diào)度,以降低所述集群的能耗,其中,所述預(yù)設(shè)調(diào)度策略集包括節(jié)點級集中式調(diào)度策略、cpu級集中式調(diào)度策略、作業(yè)分級策略、熱點均衡調(diào)度策略、能耗優(yōu)先調(diào)度策略、動態(tài)調(diào)頻策略、動態(tài)遷移策略。
作為一種實施方式,所述節(jié)點級集中式調(diào)度策略包括:將所述待處理任務(wù)優(yōu)先調(diào)度到所述集群中滿足所述待處理任務(wù)的運行要求且已處于計算過程中的計算節(jié)點進行處理。
作為一種實施方式,所述計算節(jié)點為多核計算節(jié)點,所述cpu級集中式調(diào)度策略包括:若所述待處理任務(wù)在所述計算節(jié)點的其中一個內(nèi)核進行處理,采用cpu綁定技術(shù)將所述待處理任務(wù)與處理所述待處理任務(wù)的內(nèi)核進行綁定,以避免所述待處理任務(wù)在所述計算節(jié)點的多個內(nèi)核間切換。
作為一種實施方式,所述作業(yè)分級策略包括:將所述待處理任務(wù)進行分級,根據(jù)所述待處理任務(wù)的級別調(diào)整所述待處理任務(wù)所使用的cpu或gpu的頻率。
作為一種實施方式,所述將所述待處理任務(wù)進行分級,根據(jù)所述待處理任務(wù)的級別調(diào)整所述待處理任務(wù)所使用的cpu或gpu的頻率,包括:若所述待處理任務(wù)為第一級別,則所述待處理任務(wù)使用cpu或gpu的第一頻率來計算;若所述待處理任務(wù)為第二級別,則所述待處理任務(wù)使用cpu或gpu的第二頻率來計算,其中,所述第一頻率大于所述第二頻率。
作為一種實施方式,所述熱點均衡調(diào)度策略包括:根據(jù)所述集群當(dāng)前的散熱分布情況,對所述待處理任務(wù)進行調(diào)度。
作為一種實施方式,所述根據(jù)所述集群當(dāng)前的散熱分布情況,對所述待處理任務(wù)進行調(diào)度,包括:將所述待處理任務(wù)優(yōu)先調(diào)度到所述集群中cpu或gpu的溫度小于第一閾值的計算節(jié)點上進行處理。
作為一種實施方式,所述能耗優(yōu)先調(diào)度策略包括:將所述待處理任務(wù)調(diào)度優(yōu)先調(diào)度到所述集群中當(dāng)前能耗小于第二閾值的計算節(jié)點上進行處理。
作為一種實施方式,所述動態(tài)調(diào)頻策略包括:在所述待處理任務(wù)處理過程中,實時對所述待處理任務(wù)進行特征圖譜分析;若所述待處理任務(wù)為非計算集中型任務(wù),則對所述待處理任務(wù)所使用的cpu或gpu進行降頻處理;若所述待處理任務(wù)為計算集中型任務(wù),則對所述待處理任務(wù)所使用的cpu或gpu進行升頻率處理。
作為一種實施方式,所述待處理任務(wù)的類型通過建立機器學(xué)習(xí)模型獲得。
作為一種實施方式,所述動態(tài)遷移策略包括:分析所述集群中正在處理的所有待處理任務(wù),若所述集群中正在處理的所有待處理任務(wù)離散分布在不同的計算節(jié)點進行處理,將所述待處理任務(wù)進行遷移,以使所述待處理任務(wù)集中在一個或多個計算節(jié)點上處理,并將所述集群中未處理所述待處理任務(wù)的計算節(jié)點休眠,當(dāng)所述集群中計算資源不足以處理新增待處理任務(wù)時,自動喚醒休眠的計算節(jié)點以處理新增待處理任務(wù)。
以上各模塊可以是由軟件代碼實現(xiàn),此時,上述的各模塊可存儲于調(diào)度服務(wù)器100的存儲器110內(nèi)。以上各模塊同樣可以由硬件例如集成電路芯片實現(xiàn)。
需要說明的是,本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
本發(fā)明實施例所提供的調(diào)度裝置,其實現(xiàn)原理及產(chǎn)生的技術(shù)效果和前述方法實施例相同,為簡要描述,裝置實施例部分未提及之處,可參考前述方法實施例中相應(yīng)內(nèi)容。
在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的裝置和方法,也可以通過其它的方式實現(xiàn)。以上所描述的裝置實施例僅僅是示意性的,例如,附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的裝置、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)方式中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
另外,在本發(fā)明各個實施例中的各功能模塊可以集成在一起形成一個獨立的部分,也可以是各個模塊單獨存在,也可以兩個或兩個以上模塊集成形成一個獨立的部分。
所述功能如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。應(yīng)注意到:相似的標(biāo)號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進行進一步定義和解釋。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以權(quán)利要求的保護范圍為準(zhǔn)。