運(yùn)用Hadoop并行技術(shù)解決多個經(jīng)濟(jì)市場并行模擬問題,計算機(jī)應(yīng)用技術(shù)論文_第1頁
運(yùn)用Hadoop并行技術(shù)解決多個經(jīng)濟(jì)市場并行模擬問題,計算機(jī)應(yīng)用技術(shù)論文_第2頁
運(yùn)用Hadoop并行技術(shù)解決多個經(jīng)濟(jì)市場并行模擬問題,計算機(jī)應(yīng)用技術(shù)論文_第3頁
運(yùn)用Hadoop并行技術(shù)解決多個經(jīng)濟(jì)市場并行模擬問題,計算機(jī)應(yīng)用技術(shù)論文_第4頁
運(yùn)用Hadoop并行技術(shù)解決多個經(jīng)濟(jì)市場并行模擬問題,計算機(jī)應(yīng)用技術(shù)論文_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

運(yùn)用Hadoop并行技術(shù)解決多個經(jīng)濟(jì)市場并行模擬問題,計算機(jī)應(yīng)用技術(shù)論文0引言經(jīng)濟(jì)周期,又稱商業(yè)周期〔businesscycles〕是國家總體經(jīng)濟(jì)活動中反映出的起伏波動,其表現(xiàn)為很多經(jīng)濟(jì)活動同時發(fā)生,包括擴(kuò)張、全面衰退和收縮,以及作為下一個經(jīng)濟(jì)擴(kuò)張周期循環(huán)開場的復(fù)興經(jīng)過[1].對國家經(jīng)濟(jì)形勢周期性變化進(jìn)行分析和預(yù)測一直以來都是各國制定金融策略和應(yīng)對金融危機(jī)的重要根據(jù),對國家政治經(jīng)濟(jì)系統(tǒng)的安全和穩(wěn)定運(yùn)行具有重要意義。對于經(jīng)濟(jì)周期的模擬自20世紀(jì)80年代在全世界范圍內(nèi)已經(jīng)開場,學(xué)者們開展了大量的研究,獲得了宏大的成績。傳統(tǒng)模擬方式方法中,以Swarm模型作為系統(tǒng)的整體模型,利用多主體Agent進(jìn)行模擬仿真[2-3],但不能處理大規(guī)模數(shù)據(jù),假如屢次模擬會消耗損費(fèi)大量的時間,并且占用資源太多。將并行技術(shù)用到經(jīng)濟(jì)模擬系統(tǒng)中,能夠到達(dá)提高模擬系統(tǒng)效率的目的,在一定程度上降低硬件成本。并行計算技術(shù)至今為止已經(jīng)經(jīng)歷了3代模型,第1代主要是以處理器計算為中心的PRAM[4-5]和APRAM[6]等模型;第2代主要是以網(wǎng)絡(luò)通信為中心的BSP[7],NHBL[8]等模型;第3代主要以存儲訪問為中心的UMH[9]和HPM[10]等模型。模型更新主要以減少運(yùn)算經(jīng)過中的通信開銷,避免讀寫及調(diào)度時的沖突為主線,在整體方面提高計算速度和人機(jī)交互的速度[11].通過模型的比照分析,在分布式環(huán)境中,第3代模型固然能協(xié)調(diào)各進(jìn)程的執(zhí)行和節(jié)點(diǎn)之間的數(shù)據(jù)的傳輸,但無法解決系統(tǒng)中進(jìn)程失效以及合并進(jìn)程的中間結(jié)果等問題。使用Hadoop并行技術(shù)能有效解決上述問題。由Apache基金會開發(fā)的Hadoop是一個分布式系統(tǒng)的基礎(chǔ)架構(gòu),實(shí)現(xiàn)了分布式文件系統(tǒng)〔HadoopDistributedFileSystem,HDFS〕,能運(yùn)行MapReduce.MapReduce是Google開發(fā)的一種簡潔抽象的分布式計算模型[12],因其高易用性和可擴(kuò)展性而得到了廣泛應(yīng)用。基于第3代并行計算模型的MapReduce能夠解決系統(tǒng)中部分進(jìn)程失效的問題,能自動檢測到失敗的map和reduce任務(wù),并讓正常的處理機(jī)處理這些失敗的任務(wù)。以上功能都基于其無分享框架實(shí)現(xiàn)[13].本文在研究仿真模擬和并行計算技術(shù)的基礎(chǔ)上提出了運(yùn)用Hadoop并行技術(shù)解決多個經(jīng)濟(jì)市場并行模擬問題,實(shí)現(xiàn)了多市場同時模擬,實(shí)時顯示模擬結(jié)果,提高了系統(tǒng)資源的利用率,縮短了仿真模擬的時間。1并行計算在系統(tǒng)模擬中的應(yīng)用并行計算在系統(tǒng)模擬中的應(yīng)用,主要針對多處理器的并行進(jìn)行算法的改良,將CPU的利用率問題作為考慮的最主要方面,每個線程對應(yīng)一個CPU,多個CPU在處理時的加速比為S〔n〕=單CPU串行處理的最優(yōu)時間/多CPU的并行處理時間,CPU的效率=S〔n〕/CPU數(shù)量,如何提高CPU的效率成為重中之重[14].運(yùn)用多線程同步機(jī)制、調(diào)度算法和通信機(jī)制,進(jìn)行并行計算程序的設(shè)計,構(gòu)造一個多線程的應(yīng)用,主要是對線程的調(diào)用和線程狀態(tài)的轉(zhuǎn)換進(jìn)行研究,在線程同步的經(jīng)過中對線程進(jìn)行監(jiān)視和加鎖,以到達(dá)對線程的同步控制并增加系統(tǒng)的安全性和整體利用率。多個線程之間的通信機(jī)制也對系統(tǒng)整體狀況起到非常關(guān)鍵的作用[15].圖1為Hadoop并行計算體系構(gòu)造,集群系統(tǒng)首先將求解問題分解到多個節(jié)點(diǎn)中,每個節(jié)點(diǎn)都有自個的處理模塊〔MapReduce〕和存儲模塊〔DataNode〕,完成本節(jié)點(diǎn)的計算和存儲任務(wù),然后通過各個節(jié)點(diǎn)之間的通信〔RPC〕,最終完成問題的求解經(jīng)過,得到結(jié)果。節(jié)點(diǎn)間的通信機(jī)制是處理經(jīng)過中一個重要的任務(wù),通信量的大小直接影響系統(tǒng)的性能,為權(quán)衡通信機(jī)制占用的開銷,為通信機(jī)制設(shè)置一個閾值,表示通信次數(shù)和通信量的大小。閾值的設(shè)定要符合系統(tǒng)的現(xiàn)在狀況,閾值偏高會增加節(jié)點(diǎn)間的通信,降低系統(tǒng)的效率,閾值偏低,造成節(jié)點(diǎn)間不能很好地通信。對于一個系統(tǒng)來講,首先保證的是在不影響節(jié)點(diǎn)通信的同時盡可能提高系統(tǒng)的效率,而不是為了提高系統(tǒng)的效率而影響節(jié)點(diǎn)間的通信。2仿真模擬方式方法設(shè)計與實(shí)現(xiàn)在Swarm環(huán)境的支持下,首先模擬一個市場。市場中有多類智能體〔Agent〕,包括消費(fèi)者、生產(chǎn)者、和銀行等,通過為每個個體設(shè)置初始值〔此值能夠是確定的,可以以在一定范圍內(nèi)隨機(jī)選取〕來設(shè)定個體的初始狀態(tài)和初始資本。Agent有一定的自主能力,來決定自個的行為,可以以根據(jù)周圍環(huán)境和本身如今的狀態(tài)進(jìn)行決策,最終通過個體與個體之間的交互影響市場的總體趨勢。由此產(chǎn)生了一個問題:怎樣定義市場的大小?對于較大市場的模擬,能夠得到較好的模擬結(jié)果,但數(shù)據(jù)量的增長和個體復(fù)雜度的提升會對系統(tǒng)造成一定影響;對于較小市場的模擬,得出的結(jié)果和實(shí)際相差較大?,F(xiàn)實(shí)社會中有多個市場,市場之間有一定聯(lián)絡(luò)。用傳統(tǒng)的模擬方式方法對所有市場在單機(jī)中進(jìn)行模擬,然后再匯總計算模擬的結(jié)果,并且每臺計算機(jī)只能處理本地的數(shù)據(jù)。這樣的模擬不僅浪費(fèi)大量的時間,而且得出的模擬結(jié)果并不一定準(zhǔn)確。假如使用多臺處理器進(jìn)行模擬,這樣固然能節(jié)省時間,但是消耗損費(fèi)了大量的資源,工作量也比擬大。本文提出使用Hadoop并行計算技術(shù)解決經(jīng)濟(jì)周期模擬的方式方法,將多個市場看作是一個完好系統(tǒng)進(jìn)行模擬。在Hadoop集群環(huán)境中,每個市場都分配在一個節(jié)點(diǎn)中。實(shí)際上市場之間是存在交互的,本研究主要是為了具體表現(xiàn)出并行方式方法對模擬性能的提高,因而不考慮模擬時市場之間的交互,只將各市場的模擬結(jié)果進(jìn)行實(shí)時整合,將整合結(jié)果展現(xiàn),得出最終的模擬結(jié)果。在使用Hadoop并行計算技術(shù)解決經(jīng)濟(jì)周期模擬問題時,文件系統(tǒng)HDFS將需要模擬的市場環(huán)境和個體屬性存儲到DataNode節(jié)點(diǎn),模擬結(jié)果以塊的形式存儲到節(jié)點(diǎn)中。Hadoop中節(jié)點(diǎn)間數(shù)據(jù)塊是內(nèi)容分享的,節(jié)點(diǎn)的數(shù)據(jù)傳遞到服務(wù)器端進(jìn)行整合,計算出結(jié)果。如此圖2所示,HDFS通過客戶端對整個系統(tǒng)進(jìn)行控制,在每個DataNode節(jié)點(diǎn)中進(jìn)行模擬,存儲在數(shù)據(jù)塊中,以便對和Gini系數(shù)進(jìn)行整合,系數(shù)能夠用多個市場總和來計算,Gini系數(shù)代表收入差距,用多個市場的的平均值計算。本次模擬的經(jīng)濟(jì)市場沒有貨品交換,但對和Gini系數(shù)進(jìn)行了匯總計算。MapReduce中分為Mapper法和Reducer方式方法,使用MapReduce處理經(jīng)濟(jì)模擬仿真數(shù)據(jù)問題時,Map和Reduce的操作并不困難,關(guān)鍵是對于數(shù)據(jù)的組織和傳輸[16].Map是數(shù)據(jù)本地化、并行化的關(guān)鍵,對于包含大量和Gini系數(shù)的大文件來講,怎樣確定仿真數(shù)據(jù)的起點(diǎn)和終點(diǎn)、怎樣將Map階段的數(shù)據(jù)劃分成多個子文件、怎樣協(xié)調(diào)子文件節(jié)點(diǎn)內(nèi)部數(shù)據(jù)分發(fā)和Task調(diào)度的配合成為并行化的難點(diǎn)。通過MapReduce模型與HDFS的配合與協(xié)作,HDFS根據(jù)數(shù)據(jù)塊存儲大文件,分解成多個子文件,每個子文件中存儲一個經(jīng)濟(jì)市場的或Gini系數(shù)。首先獲取系統(tǒng)中每個文件的位置,能夠是本地數(shù)據(jù)、可以以是文件系統(tǒng)中其他節(jié)點(diǎn)的公共數(shù)據(jù),再對數(shù)據(jù)進(jìn)行處理[17].并行計算中數(shù)據(jù)切分傳遞的工作流程如此圖3所示,系統(tǒng)需要將各個市場的模擬結(jié)果進(jìn)行實(shí)時整合,持續(xù)性的將數(shù)據(jù)傳輸?shù)椒?wù)器??紤]到計算機(jī)的運(yùn)行效率,假如數(shù)據(jù)逐條傳輸,將會大大降低系統(tǒng)的運(yùn)行效率,為此系統(tǒng)為數(shù)據(jù)傳輸設(shè)置一個閾值,由于數(shù)據(jù)是實(shí)時寫入到文本文檔中的,當(dāng)文檔中數(shù)據(jù)到達(dá)閾值時,將數(shù)據(jù)一次性通過mmap映射到內(nèi)存,然后計算MapTask的個數(shù),并且根據(jù)mapTask的個數(shù)切分mmap映射的內(nèi)存,分別交給pthread線程處理,得出計算結(jié)果。多主體系統(tǒng)MAS〔Mutil-Agent-System〕是由多類主體共同完成經(jīng)濟(jì)問題的模擬。根據(jù)抽象出的Agent模型,利用Swarm類庫,為每類主體設(shè)定特有的屬性。在二維的市場網(wǎng)絡(luò)中,每個個體周圍有8個鄰居,當(dāng)鄰居的利潤大于自個的收益時,主體便會圖3數(shù)據(jù)切分傳遞流程根據(jù)周圍的鄰居的營銷策略進(jìn)行學(xué)習(xí),通過改變本身的消費(fèi)預(yù)期值、生產(chǎn)預(yù)期值和變異的概率等〔每個生產(chǎn)者能夠有一定的概率變異成高效企業(yè)或者破產(chǎn)〕來改變本身的狀態(tài)。圖4為個體之間的邏輯展示圖。暫時只考慮在二維空間內(nèi)個體之間的關(guān)系,每個個體與周圍8個相鄰的個體進(jìn)行交互學(xué)習(xí)。設(shè)本身的坐標(biāo)為〔0,0〕,相鄰個體的坐標(biāo)從〔-1,-1〕到〔1,1〕,根據(jù)式〔1〕進(jìn)行學(xué)習(xí):式中,P〔0,0〕為學(xué)習(xí)者的消費(fèi)預(yù)期或生產(chǎn)預(yù)期值;P〔i,j〕為周圍相應(yīng)鄰居中大于本身消費(fèi)預(yù)期或生產(chǎn)預(yù)期值的個體;P〔m,n〕為周圍鄰居小于本身值的個體,根據(jù)一定的權(quán)重將高和低的消費(fèi)額相結(jié)合。通過實(shí)驗得出,假如高消費(fèi)和低消費(fèi)占一樣比重,得出的結(jié)果不能保證經(jīng)濟(jì)的穩(wěn)定增長,假如高消費(fèi)比重過高,經(jīng)濟(jì)周期的規(guī)律性遭到影響,此處將高消費(fèi)的比重設(shè)置為0.6,低消費(fèi)的比重設(shè)置為0.4,既避免了本身值不斷增加而使模擬結(jié)果與現(xiàn)實(shí)差距較大,也使市場的緩慢增長,并呈現(xiàn)周期性。圖5為經(jīng)濟(jì)模擬中MapReduce的工作流程,在pthread線程中首先獲得內(nèi)存中的數(shù)據(jù),標(biāo)記數(shù)據(jù)塊來自的市場。對本地的模擬數(shù)據(jù)進(jìn)行保存時,為每個保存的數(shù)據(jù)添加一個時間戳,Mapper方式方法處理key,value格式的數(shù)據(jù),key是value數(shù)據(jù)的時間戳,value是模擬得出的數(shù)據(jù),為或Gini系數(shù)。通過Mapper處理后,輸出以或Gini系數(shù)為組的數(shù)據(jù),在同一時刻有幾組來自不同市場的數(shù)據(jù),他們的key值一樣,即是在同一時刻得出的模擬數(shù)據(jù)。Reducer方式方法處理以時間戳為Key,以或Gini為value值的數(shù)據(jù),在接收Mapper方式方法處理的數(shù)據(jù)時,判定假如是值,則整合策略是將key值一樣的value作和,假如是Gini系數(shù)則取平均數(shù),經(jīng)過Reduce處理后,便將幾個市場的數(shù)據(jù)進(jìn)行整合,得出最終結(jié)果。3并行方式方法與傳統(tǒng)方式方法的比照將Hadoop技術(shù)應(yīng)用到經(jīng)濟(jì)模擬中,無論是資源利用率還是系統(tǒng)的整體效率都有很大的提高。在傳輸數(shù)據(jù)時,傳統(tǒng)的數(shù)據(jù)處理方式方法是將所有數(shù)據(jù)逐條輸入,依次經(jīng)過Mapper和Reducer進(jìn)行處理,最后輸出結(jié)果。使用將數(shù)據(jù)映射到內(nèi)存的方式方法,能夠有效避免map到reduce階段的網(wǎng)絡(luò)IO和磁盤IO的開銷。圖6為在單個處理器上模擬單個市場,當(dāng)模擬出現(xiàn)第1個波谷時所需要的時間為1070s;圖7為使用Hadoop在3個處理器上并行整合3個模擬市場,所用的時間為1180s.假如只用1臺處理器模擬多個市場,所需要的時間是所有模擬時間之和,并且不能整合3個市場的和Gini系數(shù),假如只是單純使用多個處理器進(jìn)行模擬,只能得出每個市場的模擬結(jié)果,并不能將結(jié)果進(jìn)行整合。使用Hadoop并行技術(shù)進(jìn)行模擬固然模擬時間多出110s,但由于是3個市場同時進(jìn)行模擬,比非并行模擬節(jié)省了大量的時間,提高了系統(tǒng)的效率和資源利用率。4結(jié)束語Hadoop作為一種新的并行計算技術(shù),應(yīng)用到經(jīng)圖6單處理器中單個經(jīng)濟(jì)市場模擬圖7并行計算中3個經(jīng)濟(jì)市場并行模擬濟(jì)仿真模擬領(lǐng)域,拓寬了并行技術(shù)的應(yīng)用領(lǐng)域,不僅能有效提高模擬的效率,增加系統(tǒng)的利用率,并且為拓寬經(jīng)濟(jì)模擬的深度和廣度提供了一定的基礎(chǔ)。假如要增加模擬市場的個數(shù),只需要在之前配置好的并行環(huán)境中增加計算節(jié)點(diǎn),將經(jīng)濟(jì)市場分別放置到不同的節(jié)點(diǎn)進(jìn)行運(yùn)算,最后將得出的模擬結(jié)果進(jìn)行整合,得出最終的模擬結(jié)果。本文提出的方式方法未牽涉市場間個體的交互,也沒有考慮到市場的大小對經(jīng)濟(jì)模擬結(jié)果造成的影響。下一步工作中,能夠通過改良數(shù)據(jù)整合方式方法,或改良主體的學(xué)習(xí)策略,以得到更好的并行模擬結(jié)果。以下為參考文獻(xiàn):[1]DieboldFX,RudebuschGD.Measuringbusinesscycles:amodernperspective[R].MassachusettsCambridgeCity:NationalBureauofEconomicRe-search,1994[2]郝水俠,李凡長。構(gòu)建一種多Agent并行計算模型[J].計算機(jī)技術(shù)與發(fā)展,2006,16〔5〕:71-73[3]曹慕昆,馮玉強(qiáng)?;诙郃gent計算機(jī)仿真實(shí)驗平臺Swarm的綜述[J].計算機(jī)應(yīng)用研究,2005,28〔9〕:1-3[4]FortuneS,WyllieJ.Parallelisminrandomaccessmachines[C]∥Proceedings

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論