本發(fā)明一般涉及基于計(jì)算機(jī)處理的分布式計(jì)算領(lǐng)域,具體涉及一種基于.net平臺(tái)的map-reduce分布式計(jì)算的模型方法。
背景技術(shù):
近半個(gè)世紀(jì)以來,信息量的爆炸性增長促使科學(xué)計(jì)算進(jìn)入多核并行時(shí)代。在并行計(jì)算模型方面,viliant提出了bsp模型,將計(jì)算劃分為一個(gè)一個(gè)的超步,以硬件實(shí)現(xiàn)障礙同步的方式控制粗粒度級,但超級步的長度必須適應(yīng)任意的h-relation,且全局障礙同步需要特殊硬件的支持。后來leslieg在bsp模型的基礎(chǔ)上提出了multi-bsp模型,假設(shè)多個(gè)bsp模型中處理單元可通過點(diǎn)對點(diǎn)通信,有利于bsp模型的移植和分析,對于處理核和緩存的抽象僅局限于bsp模型的處理單元。arge,l提出了pem模型,以此分析幾種通用基礎(chǔ)并行算法的i/o復(fù)雜度,但并沒有考慮緩存分層結(jié)構(gòu)。然而單機(jī)的多核并行計(jì)算模型并不利于計(jì)算量的拓展,分布式計(jì)算更適合于超大規(guī)模的科學(xué)計(jì)算。
在分布式計(jì)算方面,google提出了mapreduce模型,將計(jì)算問題抽象為map和reduce兩個(gè)階段的操作,但由于未能擺脫對系統(tǒng)軟硬件環(huán)境的依賴,很多學(xué)者在此模型基礎(chǔ)上進(jìn)行優(yōu)化創(chuàng)新。如douglas等人在開源搜索引擎系統(tǒng)nuth上創(chuàng)立的hadoop并行計(jì)算框架,依賴hdfs將一個(gè)任務(wù)分解成映射與合并兩種方式,通過映射進(jìn)行簡化,從而產(chǎn)生部分歸并結(jié)果,然后對同類結(jié)果進(jìn)行歸并計(jì)算。也有人嘗試設(shè)計(jì)更多并行計(jì)算框架,具有代表性的有spark,以scala語言實(shí)現(xiàn),不再需要讀寫hdfs,同時(shí)在某些工作負(fù)載方面表現(xiàn)的更加優(yōu)越。此外,leslielamport提出的lamport算法以及paxos算法[8]也為分布式計(jì)算做出了貢獻(xiàn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對目前優(yōu)秀的分布式計(jì)算模型匱乏的情況,為.net平臺(tái)下的分布式計(jì)算架構(gòu)設(shè)計(jì)了一種一種基于.net平臺(tái)的map-reduce分布式計(jì)算的模型方法——netrmr,封裝了系統(tǒng)容錯(cuò)和負(fù)載平衡的模塊支撐,簡化分布式計(jì)算環(huán)境下并行編程的復(fù)雜性。
一種基于.net平臺(tái)的map-reduce分布式計(jì)算的模型方法具體技術(shù)方案如下:
(a)通過map-reduce接口輸入數(shù)據(jù);
(b)將數(shù)據(jù)提交到managerconsole;
(c)solutionarray將數(shù)據(jù)分派至regloader,regloader啟動(dòng)worker進(jìn)行計(jì)算,由reducer負(fù)責(zé)回收;
(d)獲得數(shù)據(jù)的regloader主動(dòng)注冊形成machinelist。
上述方案中,步驟(c)包括以下步驟:
(c-1)solutionarray將數(shù)據(jù)分派至各個(gè)regloader中,由regloader對數(shù)據(jù)進(jìn)行分配處理;
(c-2)各個(gè)regloader啟動(dòng)若干個(gè)worker進(jìn)行計(jì)算;
(c-3)reducer負(fù)責(zé)整理、歸納、回收由worker計(jì)算后產(chǎn)生的結(jié)果。
與現(xiàn)有技術(shù)相比,本發(fā)明具有如下優(yōu)點(diǎn)和技術(shù)效果:
本發(fā)明封裝了系統(tǒng)容錯(cuò)和負(fù)載平衡的模塊支撐,簡化分布式計(jì)算環(huán)境下并行編程的復(fù)雜性,使得該模型具有較廣泛的適用性。
附圖說明
圖1為實(shí)施方式中一種基于.net平臺(tái)的map-reduce分布式計(jì)算的模型方法流程圖。
具體實(shí)施方式
以下結(jié)合附圖對本發(fā)明的實(shí)施方式作進(jìn)一步說明,但本發(fā)明的實(shí)施不限于此。
一種基于.net平臺(tái)的map-reduce分布式計(jì)算的模型方法,如圖1所示,主要包括以下步驟:
(a)通過map-reduce接口輸入數(shù)據(jù);
(b)將數(shù)據(jù)提交到managerconsole;
(c)solutionarray將數(shù)據(jù)分派至regloader,regloader啟動(dòng)worker進(jìn)行計(jì)算,由reducer負(fù)責(zé)回收;其具體步驟為:
(c-1)solutionarray將數(shù)據(jù)分派至各個(gè)regloader中,由regloader對數(shù)據(jù)進(jìn)行分配處理。
(c-2)各個(gè)regloader啟動(dòng)若干個(gè)worker進(jìn)行計(jì)算;
(c-3)reducer負(fù)責(zé)整理、歸納、回收由worker計(jì)算后產(chǎn)生的結(jié)果;
(d)獲得數(shù)據(jù)的regloader主動(dòng)注冊形成machinelist。