1.一種面向大數(shù)據(jù)的并行系統(tǒng)優(yōu)化方法,其特征在于,所述面向大數(shù)據(jù)的并行系統(tǒng)優(yōu)化方法包括以下步驟:
步驟一:將數(shù)據(jù)密集型算式進(jìn)行抽象化處理;
步驟二:將步驟一抽象化處理后的數(shù)據(jù)密集型算式生成算式語(yǔ)義樹(shù);
步驟三:將步驟二生成的語(yǔ)義樹(shù)進(jìn)行化簡(jiǎn)并生成算式依賴(lài)圖;
步驟四:將步驟三生成的算式依賴(lài)圖進(jìn)行分層并生成任務(wù)序列;
步驟五:根據(jù)步驟四生成的任務(wù)序列在并行系統(tǒng)中生成任務(wù)依賴(lài)關(guān)系,執(zhí)行后得到數(shù)據(jù)密集型算式的計(jì)算結(jié)果。
2.根據(jù)權(quán)利要求1所述的一種面向大數(shù)據(jù)的并行系統(tǒng)優(yōu)化方法,其特征在于,所述步驟一中將數(shù)據(jù)密集型算式進(jìn)行抽象化處理具體為:
將數(shù)據(jù)密集型算式中的子運(yùn)算分定義為簡(jiǎn)單計(jì)算和聚集計(jì)算兩種,每一個(gè)聚集運(yùn)算要用一輪MapReduce完成,將數(shù)據(jù)密集型算式進(jìn)行函數(shù)式抽象;所述簡(jiǎn)單計(jì)算為四則運(yùn)算、乘方和開(kāi)方,聚集計(jì)算為統(tǒng)計(jì)運(yùn)算,MapReduce為編程模型。
3.根據(jù)權(quán)利要求1或2所述的一種面向大數(shù)據(jù)的并行系統(tǒng)優(yōu)化方法,其特征在于,所述步驟二中將步驟一抽象化處理后的數(shù)據(jù)密集型算式生成算式語(yǔ)義樹(shù)具體過(guò)程為:
提取數(shù)據(jù)密集型算式中的變量,并確定子算式,將子算式中的運(yùn)算符作為父節(jié)點(diǎn),對(duì)應(yīng)該運(yùn)算符的計(jì)算變量作為子節(jié)點(diǎn),生成算式語(yǔ)義樹(shù),所述語(yǔ)義樹(shù)從葉子節(jié)點(diǎn)到根節(jié)點(diǎn)每一條路徑上只有一個(gè)聚集運(yùn)算。
4.根據(jù)權(quán)利要求3所述的一種面向大數(shù)據(jù)的并行系統(tǒng)優(yōu)化方法,其特征在于,所述步驟三中將步驟二生成的語(yǔ)義樹(shù)進(jìn)行化簡(jiǎn)并生成算式依賴(lài)圖的具體過(guò)程為:
將語(yǔ)義樹(shù)中所有對(duì)應(yīng)相同變量的結(jié)點(diǎn)合并為同一結(jié)點(diǎn),對(duì)相同變量進(jìn)行相同計(jì)算的結(jié)點(diǎn)合并為同一結(jié)點(diǎn)。
5.根據(jù)權(quán)利要求1、2或4所述的一種面向大數(shù)據(jù)的并行系統(tǒng)優(yōu)化方法,其特征在于,所述步驟四中將步驟三生成的算式依賴(lài)圖進(jìn)行分層并生成任務(wù)序列的具體過(guò)程為:
根據(jù)算式依賴(lài)圖中變量與運(yùn)算符的距離進(jìn)行分層,以任意變量作為初始節(jié)點(diǎn),以任意變量到運(yùn)算符經(jīng)過(guò)的節(jié)點(diǎn)數(shù)作為運(yùn)算符所在的層數(shù),當(dāng)變量與運(yùn)算符之間有多條路徑時(shí),以經(jīng)過(guò)節(jié)點(diǎn)數(shù)多的路徑為準(zhǔn),其中每個(gè)運(yùn)算符為一個(gè)節(jié)點(diǎn);
提取每一層相同變量的聚集運(yùn)算,按照初始節(jié)點(diǎn)到終結(jié)節(jié)點(diǎn)的順序生成任務(wù)序列;每一層中不同變量的聚集運(yùn)算并行放入一輪MapReduce中執(zhí)行;每一層中相同變量的聚集運(yùn)算串行放入一輪MapReduce中執(zhí)行。