異構(gòu)環(huán)境中并行計(jì)算調(diào)度方法
【專利摘要】本發(fā)明涉及并行計(jì)算領(lǐng)域,公開了一種異構(gòu)環(huán)境中并行計(jì)算調(diào)度方法,該方法通過建構(gòu)多種內(nèi)存不同的JVM任務(wù)槽以及空閑任務(wù)槽數(shù)組,將并行計(jì)算作業(yè)中的任務(wù)分為I/O密集型和CPU密集型,并把上述任務(wù)指定到合適的任務(wù)槽進(jìn)行計(jì)算,達(dá)到優(yōu)化異構(gòu)環(huán)境中并行計(jì)算效率的目的。本發(fā)明的優(yōu)點(diǎn)在于,實(shí)現(xiàn)了動(dòng)態(tài)地確定任務(wù)所需要的內(nèi)存大小和類型,提高了異構(gòu)集群的資源利用率,減少了并行計(jì)算作業(yè)的總體運(yùn)行時(shí)間,避免了任務(wù)運(yùn)行過程中內(nèi)存溢出的情況。
【專利說明】異構(gòu)環(huán)境中并行計(jì)算調(diào)度方法【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及并行計(jì)算領(lǐng)域,特別涉及一種異構(gòu)環(huán)境中并行計(jì)算調(diào)度方法。
【背景技術(shù)】
[0002]隨著以社交網(wǎng)站SNS、基于位置的服務(wù)LBS為代表的新型信息發(fā)布方式的不斷出現(xiàn),以及云計(jì)算、物聯(lián)網(wǎng)和移動(dòng)計(jì)算等技術(shù)的興起,數(shù)據(jù)正在以前所未有的速度不斷地增長和累積,我們已經(jīng)步入大數(shù)據(jù)時(shí)代。據(jù)統(tǒng)計(jì),百度公司每天要處理的數(shù)據(jù)達(dá)到10~100PB,紐約證券交易所每天產(chǎn)生約ITB的交易數(shù)據(jù)。在大數(shù)據(jù)時(shí)代,單機(jī)無法滿足數(shù)據(jù)處理的性能和時(shí)間要求,比如數(shù)據(jù)挖掘、構(gòu)建倒排索引等算法,因此產(chǎn)生了多機(jī)并行處理技術(shù)。大數(shù)據(jù)分析技術(shù)是對大數(shù)據(jù)的產(chǎn)生、存儲(chǔ)、挖掘和展現(xiàn)的全生命周期進(jìn)行綜合分析處理的過程。一般的,大數(shù)據(jù)需滿足4個(gè)特點(diǎn):1)規(guī)模性(Volume),2)多樣性(Variety),3)高速性(Velocity),4)價(jià)值(Value)。
[0003]傳統(tǒng)并行計(jì)算編程框架包括兩類:數(shù)據(jù)并行模型和消息傳遞模型。數(shù)據(jù)并行模型級(jí)別較高,編程相對簡單,是當(dāng)前流行的趨勢。大數(shù)據(jù)的應(yīng)用類型有很多,主要的處理模式可以分為流處理(Stream Processing)和批處理(Batch Processing)兩種。在本發(fā)明中,我們針對批處理的數(shù)據(jù)并行模型進(jìn)行了優(yōu)化。
【發(fā)明內(nèi)容】
[0004]本發(fā)明針對現(xiàn)有批處理的數(shù)據(jù)并行模型的資源利用率低的缺點(diǎn),提供了一種新型的異構(gòu)環(huán)境中并行計(jì)算調(diào)度方法。
[0005]為實(shí)現(xiàn)上述目的,本發(fā)明可采取下述技術(shù)方案:
[0006]異構(gòu)環(huán)境中并行計(jì)算調(diào)度方法,`包括以下具體步驟:
[0007]I)在異構(gòu)集群上構(gòu)建多個(gè)JVM任務(wù)槽,所述多個(gè)JVM任務(wù)槽分別由不同或者相同大小的內(nèi)存空間組成,所述異構(gòu)集群包括主節(jié)點(diǎn)以及從節(jié)點(diǎn),JVM任務(wù)槽位于從節(jié)點(diǎn)上;
[0008]2)主節(jié)點(diǎn)對所有從節(jié)點(diǎn)的I/O利用率和CPU利用率進(jìn)行監(jiān)控,并構(gòu)建空閑任務(wù)槽數(shù)組Q1以及Q2,所述空閑任務(wù)槽數(shù)組Q1以及Q2分別由一個(gè)或者多個(gè)JVM任務(wù)槽組成;
[0009]3)搭建于異構(gòu)集群上的分布式文件系統(tǒng)接收用戶上載的待處理的輸入數(shù)據(jù),并將輸入數(shù)據(jù)以數(shù)據(jù)塊的形式存儲(chǔ)在異構(gòu)集群的節(jié)點(diǎn)上;分布式文件系統(tǒng)接收用戶提交的并行計(jì)算作業(yè);
[0010]4)對并行計(jì)算作業(yè)進(jìn)行預(yù)測試,在預(yù)測試過程中計(jì)算并行計(jì)算作業(yè)中每個(gè)任務(wù)在運(yùn)行時(shí)所需要的內(nèi)存空間大??;
[0011]5)根據(jù)預(yù)測試在運(yùn)行時(shí)輸出的數(shù)據(jù)大小和運(yùn)行時(shí)間,將并行計(jì)算作業(yè)中的任務(wù)分為I/o密集型和CPU密集型;
[0012]6)建立調(diào)度隊(duì)列,將并行計(jì)算作業(yè)的任務(wù)加入調(diào)度隊(duì)列,依次運(yùn)行調(diào)度隊(duì)列中的任務(wù),如果任務(wù)為I/o密集型,則執(zhí)行步驟7);如果任務(wù)為CPU密集型,則執(zhí)行步驟8);
[0013]7)在空閑任務(wù)槽數(shù)組Q1中選擇一個(gè)JVM任務(wù)槽,在該選定的JVM任務(wù)槽內(nèi)運(yùn)行任務(wù),如果任務(wù)運(yùn)行成功,則執(zhí)行步驟9);否則重復(fù)執(zhí)行步驟7);
[0014]8)在空閑任務(wù)槽數(shù)組Q2中選擇一個(gè)JVM任務(wù)槽,在該選定的JVM任務(wù)槽內(nèi)運(yùn)行任務(wù),如果任務(wù)運(yùn)行成功,則執(zhí)行步驟9);否則重復(fù)執(zhí)行步驟8);
[0015]9)等待調(diào)度隊(duì)列中的任務(wù)均運(yùn)行結(jié)束,導(dǎo)出運(yùn)行結(jié)果。
[0016]作為優(yōu)選,步驟I)中,JVM任務(wù)槽至多可以分配的內(nèi)存空間大小
【權(quán)利要求】
1.一種異構(gòu)環(huán)境中并行計(jì)算調(diào)度方法,其特征在于,包括以下具體步驟: 1)在異構(gòu)集群上構(gòu)建多個(gè)JVM任務(wù)槽,所述多個(gè)JVM任務(wù)槽分別由不同或者相同大小的內(nèi)存空間組成,所述異構(gòu)集群包括主節(jié)點(diǎn)以及從節(jié)點(diǎn),JVM任務(wù)槽位于從節(jié)點(diǎn)上; 2)主節(jié)點(diǎn)對所有從節(jié)點(diǎn)的I/O利用率和CPU利用率進(jìn)行監(jiān)控,并構(gòu)建空閑任務(wù)槽數(shù)組Q1以及Q2,所述空閑任務(wù)槽數(shù)組Q1以及Q2分別由一個(gè)或者多個(gè)JVM任務(wù)槽組成; 3)搭建于異構(gòu)集群上的分布式文件系統(tǒng)接收用戶上載的待處理的輸入數(shù)據(jù),并將輸入數(shù)據(jù)以數(shù)據(jù)塊的形式存儲(chǔ)在異構(gòu)集群的節(jié)點(diǎn)上;分布式文件系統(tǒng)接收用戶提交的并行計(jì)算作業(yè); 4)對并行計(jì)算作業(yè)進(jìn)行預(yù)測試,在預(yù)測試過程中計(jì)算并行計(jì)算作業(yè)中每個(gè)任務(wù)在運(yùn)行時(shí)所需要的內(nèi)存空間大?。? 5)根據(jù)預(yù)測試在運(yùn)行時(shí)輸出的數(shù)據(jù)大小和運(yùn)行時(shí)間,將并行計(jì)算作業(yè)中的任務(wù)分為I/O密集型和CPU密集型; 6)建立調(diào)度隊(duì)列,將并行計(jì)算作業(yè)的任務(wù)加入調(diào)度隊(duì)列,依次運(yùn)行調(diào)度隊(duì)列中的任務(wù),如果任務(wù)為I/O密集型,則執(zhí)行步驟7);如果任務(wù)為CPU密集型,則執(zhí)行步驟8); 7)在空閑任務(wù)槽數(shù)組Q1中選擇一個(gè)JVM任務(wù)槽,在該選定的JVM任務(wù)槽內(nèi)運(yùn)行任務(wù),如果任務(wù)運(yùn)行成功,則執(zhí)行步驟 9);否則重復(fù)執(zhí)行步驟7); 8)在空閑任務(wù)槽數(shù)組Q2中選擇一個(gè)JVM任務(wù)槽,在該選定的JVM任務(wù)槽內(nèi)運(yùn)行任務(wù),如果任務(wù)運(yùn)行成功,則執(zhí)行步驟9);否則重復(fù)執(zhí)行步驟8); 9)等待調(diào)度隊(duì)列中的任務(wù)均運(yùn)行結(jié)束,導(dǎo)出運(yùn)行結(jié)果。
2.根據(jù)權(quán)利要求1所述的異構(gòu)環(huán)境中并行計(jì)算調(diào)度方法,其特征在于,步驟I)中,JVM任務(wù)槽至多可以分配的內(nèi)存空間大小乂狀=128 X ΡΠΠμΒ,其中,從節(jié)點(diǎn)的
NSiotX 128」處理器數(shù)目為η,從節(jié)點(diǎn)總內(nèi)存為Mstave,從節(jié)點(diǎn)上所構(gòu)建的任務(wù)槽的個(gè)數(shù)為Nsl(rt。
3.根據(jù)權(quán)利要求2所述的異構(gòu)環(huán)境中并行計(jì)算調(diào)度方法,其特征在于, Nslot = 2n,實(shí)際分配得到的JVM任務(wù)槽的內(nèi)存空間大小為128MB的整數(shù)倍。
4.根據(jù)權(quán)利要求1所述的異構(gòu)環(huán)境中并行計(jì)算調(diào)度方法,其特征在于,步驟2)還包括以下具體步驟:將空閑任務(wù)槽數(shù)組Q1以任務(wù)槽的內(nèi)存空間大小為關(guān)鍵字由小到大進(jìn)行第一次排序,以任務(wù)槽所在從節(jié)點(diǎn)的I/O利用率為關(guān)鍵字由小到大進(jìn)行第二次排序;將空閑任務(wù)槽數(shù)組Q2以任務(wù)槽的內(nèi)存空間大小為關(guān)鍵字由小到大進(jìn)行第一次排序,以任務(wù)槽所在從節(jié)點(diǎn)的CPU利用率為關(guān)鍵字由小到大進(jìn)行第二次排序。
5.根據(jù)權(quán)利要求1所述的異構(gòu)環(huán)境中并行計(jì)算調(diào)度方法,其特征在于,步驟3)中,不同的數(shù)據(jù)塊作為不同的任務(wù)運(yùn)行,數(shù)據(jù)塊冗余地存儲(chǔ)在異構(gòu)集群的節(jié)點(diǎn)上。
6.根據(jù)權(quán)利要求1所述的異構(gòu)環(huán)境中并行計(jì)算調(diào)度方法,其特征在于,步驟4)的預(yù)測試步驟具體包括:依據(jù)任務(wù)對內(nèi)存的需求是否與輸入數(shù)據(jù)的大小相關(guān)聯(lián),將任務(wù)區(qū)分為與輸入數(shù)據(jù)的大小無關(guān)的任務(wù)以及與輸入數(shù)據(jù)的大小成比例關(guān)系的任務(wù),與輸入數(shù)據(jù)的大小成比例關(guān)系的任務(wù)所需要的最小內(nèi)存空間大小Mta處=Mtest X,,其中,Mtest為預(yù)測
^Cest.試時(shí)測試程序運(yùn)行所需內(nèi)存需求,sbl。。,為輸入數(shù)據(jù)的數(shù)據(jù)塊大小,Stest為預(yù)測試時(shí)測試程序輸入的數(shù)據(jù)大小。
7.根據(jù)權(quán)利要求2所述的異構(gòu)環(huán)境中并行計(jì)算調(diào)度方法,其特征在于,步驟5)還包括以下具體步驟:將滿足條件~> DIORI的任務(wù)劃分為I/O密集型;否則為CPU密集型;其中,TID表示步驟4)預(yù)測試時(shí)測試程序輸入的數(shù)據(jù)大小,TOD表示測試程序輸出數(shù)據(jù)的大小,TCT表示測試程序的運(yùn)行時(shí)間,DIOR表示硬盤讀寫最大速率。
8.根據(jù)權(quán)利要求1所述的異構(gòu)環(huán)境中并行計(jì)算調(diào)度方法,其特征在于,步驟6)中,使用FIFO方式運(yùn)行調(diào)度隊(duì)列中的任務(wù)。
9.根據(jù)權(quán)利要求2所述的異構(gòu)環(huán)境中并行計(jì)算調(diào)度方法,其特征在于,步驟7)還包括:在任務(wù)所在從節(jié)點(diǎn)中選擇JVM任務(wù)槽,如果選擇失敗,則使用內(nèi)存最佳適應(yīng)分配算法和I/O利用率最小值分配算法在空閑任務(wù)槽數(shù)組Q1內(nèi)選擇JVM任務(wù)槽;當(dāng)任務(wù)的運(yùn)行次數(shù)超過3次,則不再運(yùn)行該任務(wù);步驟8)還包括:在任務(wù)所在從節(jié)點(diǎn)中選擇JVM任務(wù)槽,如果選擇失敗,則使用內(nèi)存最佳適應(yīng)分配算法和CPU利用率最小值分配算法在空閑任務(wù)槽數(shù)組Q2內(nèi)選擇JVM任務(wù)槽;當(dāng)任務(wù)的運(yùn)行次 數(shù)超過3次,則不再運(yùn)行該任務(wù)。
【文檔編號(hào)】G06F9/50GK103500123SQ201310477055
【公開日】2014年1月8日 申請日期:2013年10月12日 優(yōu)先權(quán)日:2013年10月12日
【發(fā)明者】吳朝暉, 何延彰, 姜曉紅, 黃鵬, 毛宇 申請人:浙江大學(xué)