專利名稱:面向眾核環(huán)境的分治映射/歸約并行編程模型的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬計(jì)算機(jī)軟件應(yīng)用領(lǐng)域,具體涉及一種面向眾核環(huán)境的分治映射/歸約并行編程模型。本發(fā)明映射/歸約模型可應(yīng)用在眾核計(jì)算系統(tǒng)中處理大規(guī)模數(shù)據(jù)。
背景技術(shù):
隨著多核和眾核技術(shù)的不斷普及和持續(xù)發(fā)展,計(jì)算機(jī)的處理能力得以繼續(xù)遵循摩爾定律以每十八個(gè)月一倍的速度增長(zhǎng)。目前四核乃至八核處理器已成為商用服務(wù)器配置的主流,逾期具有一百個(gè)以上核的處理器也將在數(shù)年內(nèi)誕生。飛速增長(zhǎng)的計(jì)算能力為實(shí)現(xiàn)對(duì)海量數(shù)據(jù)的快速處理提供了契機(jī)。海量數(shù)據(jù)是指數(shù)據(jù)量超過萬(wàn)億字節(jié)數(shù)量級(jí)以上的數(shù)據(jù)集合,對(duì)于它們的分析處理已經(jīng)成為當(dāng)今商業(yè)行為和科學(xué)計(jì)算的重要組成部分。例如,在世界搜索類服務(wù)領(lǐng)域具有領(lǐng)導(dǎo)地位的谷歌(Google)公司的崛起正是憑借其對(duì)海量數(shù)據(jù)的高速搜索能力,而生物基因?qū)W的研究也依賴于對(duì)海量基因片段的比對(duì)和分析。目前對(duì)于海量數(shù)據(jù)的處理還只能通過大規(guī)模的分布式系統(tǒng)來完成, 但是眾核計(jì)算環(huán)境提供的巨大計(jì)算潛力已經(jīng)引起了人們的極大關(guān)注,并嘗試使用眾核計(jì)算環(huán)境來處理海量數(shù)據(jù)。針對(duì)海量數(shù)據(jù)的應(yīng)用由于其除了業(yè)務(wù)邏輯本身外還需要考慮執(zhí)行效率、并行安全性、系統(tǒng)可靠性等多方面問題,因此具有較高的復(fù)雜度。當(dāng)前業(yè)界的大型系統(tǒng)主要采用基于并行編程模型的方式來簡(jiǎn)化和規(guī)范并行程序的開發(fā)。并行編程模型通過高效可靠的運(yùn)行時(shí)環(huán)境向應(yīng)用程序員提供一套簡(jiǎn)單的編程接口,使他們僅關(guān)注于業(yè)務(wù)邏輯本身而不再需要考慮其他由于海量數(shù)據(jù)和高并行性執(zhí)行帶來的問題。其中由谷歌(Google)公司于2004年在國(guó)際操作系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)大會(huì)(OSDI)上首次提出的映射/規(guī)約(MapReduce)并行編程模型(以下簡(jiǎn)稱“映射/規(guī)約模型”),因其簡(jiǎn)單合理的編程接口被業(yè)界廣泛接受和采用。該模型針對(duì)大規(guī)模分布式集群環(huán)境設(shè)計(jì),能夠使用上萬(wàn)計(jì)算節(jié)點(diǎn)同時(shí)對(duì)百萬(wàn)億字節(jié)規(guī)模的海量數(shù)據(jù)進(jìn)行高效的并行處理。僅谷歌公司在過去5年中,每日都有超過10萬(wàn)個(gè)基于映射/規(guī)約模型的任務(wù)運(yùn)行在分布于世界各地的超大規(guī)模數(shù)據(jù)中心的集群上,對(duì)2億億字節(jié)以上的海量數(shù)據(jù)進(jìn)行處理。其他不同領(lǐng)域的企業(yè),如雅虎(Yahoo !),百度(Baidu),易趣(ekiy) 和沃爾瑪(Walmart)等均使用基于映射/規(guī)約并行編程模型的系統(tǒng)來處理日常業(yè)務(wù)中的海量數(shù)據(jù)。映射/規(guī)約模型主要由“映射(Map)”和“規(guī)約(Reduce)”兩個(gè)階段構(gòu)成,“映射” 階段根據(jù)輸入數(shù)據(jù)產(chǎn)生一系列的中間鍵值對(duì),“規(guī)約”階段則把具有相同鍵的所有中間鍵值對(duì)規(guī)約到一起(如圖1所示)。映射/規(guī)約模型的運(yùn)行時(shí)環(huán)境使用分布式文件系統(tǒng)做為持久存儲(chǔ)層,實(shí)現(xiàn)海量數(shù)據(jù)的讀寫和存儲(chǔ)。運(yùn)行時(shí)環(huán)境由一個(gè)控制節(jié)點(diǎn)和大量計(jì)算節(jié)點(diǎn)構(gòu)成, 控制節(jié)點(diǎn)負(fù)責(zé)任務(wù)的分發(fā)和監(jiān)控,計(jì)算節(jié)點(diǎn)負(fù)責(zé)任務(wù)的實(shí)際計(jì)算?!坝成洹彪A段產(chǎn)生的中間數(shù)據(jù)存儲(chǔ)于分布式文件系統(tǒng),并通過網(wǎng)絡(luò)傳遞給“規(guī)約”階段。這樣的設(shè)計(jì)能夠在充份發(fā)掘數(shù)據(jù)處理中的并行性發(fā)揮計(jì)算節(jié)點(diǎn)的計(jì)算能力的同時(shí),又能夠有效的解決大規(guī)模分布式系統(tǒng)運(yùn)行中存在的可靠性問題。
隨著眾核處理能力的飛速增長(zhǎng),采用眾核平臺(tái)來進(jìn)行海量數(shù)據(jù)處理成為可能。眾核平臺(tái)因其不需要依賴硬盤存儲(chǔ)和網(wǎng)絡(luò)傳輸中間數(shù)據(jù),相比同計(jì)算能力下的集群具有更高的執(zhí)行效率。因此并行編程模型被移植到眾核環(huán)境下來支持針對(duì)大量數(shù)據(jù)的應(yīng)用,比如斯坦福大學(xué)將映射/規(guī)約模型移植到了共享內(nèi)存體系結(jié)構(gòu)下。但是這些實(shí)現(xiàn)都遵循原有針對(duì)大型分布式環(huán)境設(shè)計(jì)的并行編程模型的設(shè)計(jì),尚存在如下不足不能充分發(fā)揮眾核平臺(tái)特性。在編程模型和運(yùn)行時(shí)設(shè)計(jì)兩方面都限制了綜合平臺(tái)在海量數(shù)據(jù)處理應(yīng)用方面的能力。
發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有技術(shù)的不足,主要解決如何有效利用眾核環(huán)境中計(jì)算資源來高效處理海量數(shù)據(jù)。眾核環(huán)境相對(duì)于大規(guī)模集群環(huán)境存在計(jì)算資源固定且相對(duì)有限的問題,但同時(shí)也具有數(shù)據(jù)交換迅捷和計(jì)算單元協(xié)同好的優(yōu)勢(shì)。而目前的映射/規(guī)約模型在眾核上的設(shè)計(jì)和實(shí)現(xiàn)并沒有考慮到上述差異,仍然直接對(duì)整個(gè)海量數(shù)據(jù)集進(jìn)行處理。當(dāng)需要處理的數(shù)據(jù)規(guī)模超出系統(tǒng)資源限制時(shí),該模型會(huì)導(dǎo)致緩存和主存耗盡,以及處理器單元閑置等問題,極大的影響了處理效率。為解決上述問題,本發(fā)明提供了一種面向眾核環(huán)境的分治映射/歸約并行編程模型,其特征在于,其包括分治映射/規(guī)約并行編程模型,主存復(fù)用,眾核調(diào)度和流水線執(zhí)行技術(shù),其中分治映射/規(guī)約并行編程模型對(duì)海量數(shù)據(jù)進(jìn)行分塊處理,主存復(fù)用、眾核調(diào)度和流水線執(zhí)行技術(shù)優(yōu)化眾核環(huán)境的資源使用。所述的分治映射/規(guī)約模型有效限制每次數(shù)據(jù)處理的規(guī)模,所述的三項(xiàng)優(yōu)化技術(shù)充份利用模型和平臺(tái)特性。本發(fā)明中,分治映射/規(guī)約模型的最大特點(diǎn)在于采用多次循環(huán)執(zhí)行映射/規(guī)約操作,并且每次操作只處理海量數(shù)據(jù)中的一部分。在每一組映射/規(guī)約階段前依據(jù)當(dāng)前眾核系統(tǒng)資源狀況劃分?jǐn)?shù)據(jù),并在完成映射/規(guī)約操作后在主存中保存生成的“部分結(jié)果”。當(dāng)完成對(duì)全部海量數(shù)據(jù)的處理后,再通過額外的“最終規(guī)約”階段將前面循環(huán)產(chǎn)生的所有“部分結(jié)果”規(guī)約成“最終結(jié)果”。該模型能夠有效的避免由于單次映射/規(guī)約的數(shù)據(jù)量過大而引起的緩存和主存顛簸問題。在執(zhí)行映射/規(guī)約操作時(shí),絕大部分的主存被用來存儲(chǔ)輸入數(shù)據(jù)和臨時(shí)中間數(shù)據(jù)。主存復(fù)用技術(shù)利用分治映射/規(guī)約模型中每組映射/規(guī)約操作的“部分結(jié)果”都被獨(dú)立保存這一特點(diǎn),使用同一主存空間來存儲(chǔ)循環(huán)中每組映射/規(guī)約操作所需的輸入數(shù)據(jù)和臨時(shí)中間數(shù)據(jù)。該技術(shù)解決了對(duì)主存空間的消耗隨輸入數(shù)據(jù)的增加而線性增加的問題,避免主存耗盡引發(fā)昂貴的主存與外存交換開銷;同時(shí)也解決了大量主存空間被不再使用的輸入數(shù)據(jù)和臨時(shí)中間數(shù)據(jù)占用的問題,有效提高了主存利用率。眾核調(diào)度技術(shù)針對(duì)眾核體系結(jié)構(gòu)中同一處理器上的多個(gè)核共享緩存的特征,將單次映射/規(guī)約操作涉及的計(jì)算任務(wù)調(diào)度到屬于同一處理器的多個(gè)核上,避免跨處理器的緩存訪問。由于處理器內(nèi)部的核間共享緩存訪問速度遠(yuǎn)遠(yuǎn)快于跨處理器的緩存訪問速度,眾核調(diào)度技術(shù)能夠極大的提高緩存命中率從而提升映射/規(guī)約操作的數(shù)據(jù)訪問速度。映射/規(guī)約模型的每個(gè)階段具有強(qiáng)依賴關(guān)系,比如最終結(jié)果必須等待規(guī)約階段的所有并行操作全部完成,這樣必然導(dǎo)致系統(tǒng)中處理單元的閑置。流水線執(zhí)行技術(shù)利用分治映射/規(guī)約模型循環(huán)執(zhí)行映射/規(guī)約過程中,前一組的“規(guī)約”操作與后一組的“映射”操作不存在強(qiáng)依賴關(guān)系的特征,讓較早完成“規(guī)約”操作的處理單元提前開始后一次的“映射” 操作。該技術(shù)能夠避免處理單元閑置提高處理單元利用率。本發(fā)明的有益效果是,有效提高眾核環(huán)境下海量數(shù)據(jù)處理能力,利用眾核體系結(jié)構(gòu)特征,復(fù)用主存減少使用量、優(yōu)化緩存訪問提高命中率、避免處理單元閑置提高執(zhí)行效率。本發(fā)明提出的分治映射/規(guī)約模型和三項(xiàng)優(yōu)化技術(shù)對(duì)應(yīng)用程序員透明,無需改動(dòng)程序源代碼。輸入與輸出也完全與映射/規(guī)約模型一致。為了便于理解,以下將通過具體的附圖和實(shí)施例對(duì)本發(fā)明的進(jìn)行詳細(xì)地描述。需要特別指出的是,具體實(shí)例和附圖僅是為了說明,顯然本領(lǐng)域的普通技術(shù)人員可以根據(jù)本文說明,在本發(fā)明的范圍內(nèi)對(duì)本發(fā)明做出各種各樣的修正和改變,這些修正和改變也納入本發(fā)明的范圍內(nèi)。
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)一步說明。圖1為現(xiàn)有技術(shù)映射/規(guī)約模型示意圖。圖2為本發(fā)明的分治映射/規(guī)約模型示意圖。圖3為本發(fā)明的主存復(fù)用技術(shù)示意圖。圖4為本發(fā)明的眾核調(diào)度技術(shù)示意圖。圖5為本發(fā)明的流水線執(zhí)行技術(shù)示意圖。
具體實(shí)施例方式實(shí)施例1示例性的分治映射/規(guī)約模型的執(zhí)行流程如圖2所示,相對(duì)于映射/規(guī)約模型,分治模型采用循環(huán)執(zhí)行“映射/規(guī)約”階段,而每次映射/規(guī)約階段的操作相當(dāng)于原來映射/ 規(guī)約模型下的一次完整操作,所不同的僅僅是輸入只是整個(gè)海量數(shù)據(jù)集的一部分。因此模型的運(yùn)行時(shí)系統(tǒng)首先依據(jù)當(dāng)前系統(tǒng)資源狀況在粗粒度上劃分海量數(shù)據(jù)集作為循環(huán)執(zhí)行“映射/規(guī)約”的輸入,而每次的“映射/規(guī)約”階段再將輸入的部分?jǐn)?shù)據(jù)進(jìn)行細(xì)粒度的劃分,分發(fā)給“映射”階段的每個(gè)執(zhí)行單元。一次映射/規(guī)約操作產(chǎn)生的“部分結(jié)果”被保存在主存中等待進(jìn)一步的處理。當(dāng)整個(gè)海量數(shù)據(jù)集完成映射/規(guī)約操作,“最終規(guī)約”階段再將所有的“部分結(jié)果”規(guī)約成為“最終結(jié)果”。該階段的操作以及輸出數(shù)據(jù)與“規(guī)約”階段完全一致, 所不同的僅僅是輸入數(shù)據(jù)是經(jīng)過映射/規(guī)約處理的“部分結(jié)果”而非映射產(chǎn)生的中間數(shù)據(jù)。 最后的合并操作與映射/規(guī)約模型中的合并操作相同。圖3描述了主存復(fù)用技術(shù)。該技術(shù)使用固定的主存空間來存儲(chǔ)輸入數(shù)據(jù)和中間數(shù)據(jù),每次執(zhí)行“映射/規(guī)約”階段的操作都復(fù)用該主存空間。空間大小由運(yùn)行時(shí)系統(tǒng)依據(jù)當(dāng)前系統(tǒng)資源狀況配置,并根據(jù)空間的大小來劃分每次“映射/規(guī)約”操作的輸入數(shù)據(jù)大小。 主存空間在開始第一次“映射/規(guī)約”操作前分配,在最后一次“映射/規(guī)約”操作后釋放。示例性的眾核調(diào)度技術(shù)如圖4所示運(yùn)行時(shí)系統(tǒng)的任務(wù)調(diào)度器將所有的處理單元分組,屬于同一個(gè)處理器的核被分在一個(gè)組。調(diào)度器以組為單位進(jìn)行調(diào)度,將一個(gè)“映射/ 規(guī)約”任務(wù)調(diào)度給屬于一個(gè)組的核來處理。在“映射/規(guī)約”循環(huán)處理過程中,各組間無需跨處理器數(shù)據(jù)傳遞并獨(dú)占緩存。處理器間可以并行執(zhí)行“映射/規(guī)約”任務(wù)。
5
示例性的流水線執(zhí)行技術(shù)如圖5所示圖的左列描述了“映射/規(guī)約”階段正常執(zhí)行下的處理器使用情況。由于原映射/規(guī)約模型存在依賴關(guān)系,后一階段的執(zhí)行必須等待前一階段的執(zhí)行全部結(jié)束,因此執(zhí)行過程中存在處理器閑置(圖中黑色部分)。流水線執(zhí)行技術(shù)利用前一次“規(guī)約”操作和后一次“映射”操作間的不存在依賴關(guān)系的特點(diǎn),消除“規(guī)約”階段的處理器閑置現(xiàn)象,從而縮短整個(gè)過程的執(zhí)行時(shí)間時(shí)間。
權(quán)利要求
1.面向眾核環(huán)境的分治映射/歸約并行編程模型,其特征在于,其包括分治映射/規(guī)約并行編程模型,主存復(fù)用,眾核調(diào)度和流水線執(zhí)行技術(shù),其中分治映射/規(guī)約并行編程模型對(duì)海量數(shù)據(jù)進(jìn)行分塊處理,主存復(fù)用、眾核調(diào)度和流水線執(zhí)行技術(shù)優(yōu)化眾核環(huán)境的資源使用。
2.按權(quán)利要求1所述的面向眾核環(huán)境的分治映射/歸約并行編程模型,其特征在于,所述的分治映射/規(guī)約模型限制每次數(shù)據(jù)處理的規(guī)模,所述的主存復(fù)用、眾核調(diào)度和流水線執(zhí)行技術(shù)利用模型和平臺(tái)特性。
3.按權(quán)利要求1所述的面向眾核環(huán)境的分治映射/歸約并行編程模型,其特征在于,所述的分治映射/規(guī)約模型采用多次循環(huán)執(zhí)行映射/規(guī)約操作,每次操作只處理海量數(shù)據(jù)中的一部分。
4.按權(quán)利要求1所述的面向眾核環(huán)境的分治映射/歸約并行編程模型,其特征在于, 所述的分治映射/規(guī)約模型在每一組映射/規(guī)約階段前依據(jù)當(dāng)前眾核系統(tǒng)資源狀況劃分?jǐn)?shù)據(jù),并在完成映射/規(guī)約操作后在主存中保存生成的“部分結(jié)果”;當(dāng)完成對(duì)全部海量數(shù)據(jù)的處理后,再通過額外的“最終規(guī)約”階段將前面循環(huán)產(chǎn)生的所有“部分結(jié)果”規(guī)約成“最終結(jié)果”
5.按權(quán)利要求1所述的面向眾核環(huán)境的分治映射/歸約并行編程模型,其特征在于,所述的主存復(fù)用技術(shù)使用同一主存空間存儲(chǔ)循環(huán)中每組映射/規(guī)約操作所需的輸入數(shù)據(jù)和臨時(shí)中間數(shù)據(jù)。
6.按權(quán)利要求1所述的面向眾核環(huán)境的分治映射/歸約并行編程模型,其特征在于,所述的眾核調(diào)度技術(shù)將單次映射/規(guī)約操作涉及的計(jì)算任務(wù)調(diào)度到屬于同一處理器的多個(gè)核上。
7.按權(quán)利要求1所述的面向眾核環(huán)境的分治映射/歸約并行編程模型,其特征在于,所述的流水線執(zhí)行技術(shù)將較早完成“規(guī)約”操作的處理單元提前開始后一次的“映射”操作。
全文摘要
本發(fā)明屬計(jì)算機(jī)軟件應(yīng)用領(lǐng)域,具體涉及一種面向眾核環(huán)境的分治映射/歸約并行編程模型。其包括分治映射/規(guī)約并行編程模型,主存復(fù)用,眾核調(diào)度和流水線執(zhí)行技術(shù),其中分治映射/規(guī)約并行編程模型對(duì)海量數(shù)據(jù)進(jìn)行分塊處理,主存復(fù)用、眾核調(diào)度和流水線執(zhí)行技術(shù)優(yōu)化眾核環(huán)境的資源使用。本發(fā)明能有效提高眾核環(huán)境下海量數(shù)據(jù)處理能力,利用眾核體系結(jié)構(gòu)特征,復(fù)用主存減少使用量、優(yōu)化緩存訪問提高命中率、避免處理單元閑置提高執(zhí)行效率。本發(fā)明對(duì)應(yīng)用程序員透明,無需改動(dòng)程序源代碼。輸入與輸出也完全與映射/規(guī)約模型一致??蓱?yīng)用在眾核計(jì)算系統(tǒng)中處理大規(guī)模數(shù)據(jù)。
文檔編號(hào)G06F9/50GK102193830SQ20101012499
公開日2011年9月21日 申請(qǐng)日期2010年3月12日 優(yōu)先權(quán)日2010年3月12日
發(fā)明者臧斌宇, 陳榕, 陳海波 申請(qǐng)人:復(fù)旦大學(xué)