亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

簡(jiǎn)單對(duì)象存取協(xié)議的并行通信系統(tǒng)及其實(shí)現(xiàn)方法

文檔序號(hào):7685203閱讀:299來(lái)源:國(guó)知局
專利名稱:簡(jiǎn)單對(duì)象存取協(xié)議的并行通信系統(tǒng)及其實(shí)現(xiàn)方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)計(jì)算技術(shù)和并行通信技術(shù),特別是涉及一種面向基于INTERNET或INTRANET的多機(jī)群網(wǎng)格上的并行計(jì)算所需的并行SOAP(簡(jiǎn)單對(duì)象存取協(xié)議)通信系統(tǒng)和實(shí)現(xiàn)方法的技術(shù)。

背景技術(shù)
網(wǎng)格技術(shù)以其良好的自治性、自相似性、異構(gòu)性、管理的多樣性、強(qiáng)大的并行I/O能力和非常高的性能價(jià)格比等特性成為構(gòu)建高性能計(jì)算和存儲(chǔ)裝置的有效手段。多機(jī)群網(wǎng)格是通過(guò)多個(gè)網(wǎng)絡(luò)來(lái)構(gòu)成大規(guī)模機(jī)群網(wǎng)格。隨著機(jī)群節(jié)點(diǎn)數(shù)目和網(wǎng)絡(luò)數(shù)目的增加,通信將成為瓶頸,因而大規(guī)模機(jī)群的峰值通信問(wèn)題的研究成為一個(gè)焦點(diǎn)。在傳統(tǒng)的并行計(jì)算領(lǐng)域,有兩個(gè)重要的通信協(xié)議(環(huán)境)PVM和MPI(包括MPICH),它們有效地支持了并行計(jì)算環(huán)境。隨著計(jì)算的網(wǎng)絡(luò)化、隨著計(jì)算環(huán)境的無(wú)邊界化,計(jì)算環(huán)境的安全問(wèn)題日益突出,致使網(wǎng)絡(luò)管理方面增加了許多安全手段,如防火墻、認(rèn)證機(jī)制等。這為基于普通INTERNET(或INTRANET)的多機(jī)群網(wǎng)格的實(shí)施帶來(lái)了障礙。傳統(tǒng)的并行通信協(xié)議雖然有較高的并行支持度和性能,但卻被眾多的安全防護(hù)機(jī)制所困擾。SOAP(簡(jiǎn)單對(duì)象存取協(xié)議)是Web服務(wù)中基于XML的簡(jiǎn)單對(duì)象傳輸協(xié)議,其具有平臺(tái)無(wú)關(guān)的特性、互操作性強(qiáng)的特性以及穿透防火墻的能力,其可以很好地解決異構(gòu)平臺(tái)的互操作問(wèn)題。為了利用SOAP協(xié)議來(lái)構(gòu)建多機(jī)群網(wǎng)格的通信技術(shù),實(shí)現(xiàn)多機(jī)群間的并行通信任務(wù),SOAP的這些特性值得我們?nèi)パ芯科湓诙鄼C(jī)群網(wǎng)格的并行計(jì)算中的通信問(wèn)題?;赟OAP的并行環(huán)境通信機(jī)制的研究具有其現(xiàn)實(shí)意義。然而,SOAP不是為并行計(jì)算而提出的,面對(duì)并行計(jì)算,其有許多弱點(diǎn),如性能低下和無(wú)法有效地支持集合通訊(并行一對(duì)多、多對(duì)多通信)問(wèn)題。SOAP的基于XML的特殊表示方式致使其編碼后的信息量極大增長(zhǎng),又由于其借助HTTP協(xié)議進(jìn)行傳輸,所以SOAP的通信性能比較低下。國(guó)內(nèi)外有很多針對(duì)SOAP性能的研究,并且研究結(jié)果認(rèn)為基于XML的SOAP協(xié)議與基于二進(jìn)制的協(xié)議相比在性能上有很大差距。文獻(xiàn)[都認(rèn)為數(shù)據(jù)和實(shí)際應(yīng)用數(shù)據(jù)間的映像是影響SOAP性能的關(guān)鍵因素。一些技術(shù)通過(guò)優(yōu)化序列化和反序列化的機(jī)制來(lái)提高SOAP平臺(tái)的總體性能。另外一些運(yùn)用動(dòng)態(tài)提前綁定的數(shù)據(jù)模型映射機(jī)制。這些研究都不完全適合于多機(jī)群網(wǎng)格環(huán)境下的并行計(jì)算通信的需要。因?yàn)椴⑿杏?jì)算的多對(duì)多的峰值通信問(wèn)題具有特殊性,而且它們也沒(méi)有考慮通信資源(網(wǎng)卡)、存儲(chǔ)資源(內(nèi)存)和計(jì)算資源(CPU)的性能匹配問(wèn)題,所以不能很好地利用網(wǎng)格資源;同時(shí),它們都沒(méi)有考慮并行計(jì)算所必需的組通信問(wèn)題,不能完全適合于多機(jī)群網(wǎng)格的并行計(jì)算。


發(fā)明內(nèi)容
針對(duì)上述現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種具有良好的可擴(kuò)展性、高效性、良好地支持多機(jī)群網(wǎng)格上的并行計(jì)算所需的并行SOAP通信系統(tǒng)及其方法。
為了解決上述技術(shù)問(wèn)題,本發(fā)明所提供的一種并行SOAP通信系統(tǒng),即基于INTERNET或INTRANET的多機(jī)群網(wǎng)格上的并行SOAP通信系統(tǒng),其特征在于,包括配置在多機(jī)群網(wǎng)格的每個(gè)計(jì)算節(jié)點(diǎn)上的動(dòng)態(tài)緩沖池(DBP,Dynamic BufferPool)、動(dòng)態(tài)緩沖池環(huán)(DBPR,Dynamic Buffer Pool Ring);多機(jī)群網(wǎng)格中所有計(jì)算節(jié)點(diǎn)上的所述通信部件(DBP、DBPR)構(gòu)成并行SOAP通信系統(tǒng),每個(gè)計(jì)算節(jié)點(diǎn)上的動(dòng)態(tài)緩沖池、動(dòng)態(tài)緩沖池環(huán)與多機(jī)群網(wǎng)格上的其他計(jì)算節(jié)點(diǎn)的動(dòng)態(tài)緩沖池、動(dòng)態(tài)緩沖池環(huán)相互連接,所有部件協(xié)同工作完成并行通信過(guò)程; 所述的多機(jī)群網(wǎng)格(Multi-cluster Grid-MCG)為一個(gè)四元組MCG(Ma,CCS,NG,R);其中Ma為MCG主控制器;CSS={CC1,CC2,...CCc}為計(jì)算機(jī)機(jī)群的集的集合;NG={N1,N2,...Ng}為連接各個(gè)機(jī)群網(wǎng)絡(luò)的集合;R為連接規(guī)則;所述計(jì)算機(jī)機(jī)群是一個(gè)二元組CC(Ma,CS,NC),其中Ma為CC主控制器;CS={C1,C2,...Cp}為CC的所有計(jì)算節(jié)點(diǎn)的集合,每個(gè)計(jì)算節(jié)點(diǎn)是一臺(tái)獨(dú)立的計(jì)算機(jī),其有自己獨(dú)立的CPU、內(nèi)存、磁盤和通信適配器;NC為連接該機(jī)群的互聯(lián)網(wǎng)絡(luò); 所述的動(dòng)態(tài)緩沖池是計(jì)算節(jié)點(diǎn)Ci上的11元組DBP(m,RM,wr,SM,ws,Rmtoken,Smtoken,state,next,Curin,Curout),各元部件描述如下 (1)m為當(dāng)前時(shí)段與Ci通信的MCG其它計(jì)算節(jié)點(diǎn)的個(gè)數(shù),即對(duì)于Ci有2m個(gè)并發(fā)數(shù)據(jù)流; (2)RM為m×wr矩陣、是接收m個(gè)輸入并發(fā)數(shù)據(jù)流的緩沖池,稱接收緩沖矩陣;其矩陣元素為下述三種形式①為一個(gè)大小為|B|的緩沖塊構(gòu)成;②為空;③為k個(gè)大小為|B|的緩沖塊構(gòu)成,k被稱為密度因子,其為大于0的整數(shù);RM的矩陣元素被稱為超矩陣元素;wr是矩陣RM的列數(shù); (3)SM為m×ws矩陣,其矩陣元素亦為超矩陣元素,ws是矩陣SM的列數(shù),稱SM為發(fā)送緩沖矩陣; 對(duì)RM的第j(1≤j≤m,j≠i)行用來(lái)緩沖來(lái)自計(jì)算節(jié)點(diǎn)Cj的并發(fā)數(shù)據(jù)流;對(duì)SM的第j(1≤j≤m,j≠i)行用來(lái)緩沖Ci發(fā)往計(jì)算節(jié)點(diǎn)Cj的并發(fā)數(shù)據(jù)流;RM和SM的列是通信操作基本單位,它們的每個(gè)列中的緩沖塊被在一個(gè)時(shí)間段內(nèi)發(fā)送或接收; (4)Rmtoken細(xì)化為結(jié)構(gòu)Rmtoken(rece,decopr)、是RM的操作令牌、Rmtoken.rece指向RM當(dāng)前輸入列,供RECE進(jìn)程寫入RM使用;Rmtoken.decopr指向RM當(dāng)前輸出列、供DECOPR進(jìn)程讀取RM使用; (5)Smtoken細(xì)化為結(jié)構(gòu)Smtoken(send,copr),是SM的操作令牌、Smtoken.send指向SM當(dāng)前輸出列、供SEND進(jìn)程讀取SM發(fā)送數(shù)據(jù)使用;Smtoken.copr指向SM當(dāng)前輸入列,供COPR進(jìn)程寫入SM使用; (6)state為DBP的狀態(tài),其包括“膨脹”,“收縮”,“空殼”;next為指向DBP類型的指針,用于構(gòu)建DBPR; (7)Curin表示當(dāng)前已經(jīng)進(jìn)入DBP的數(shù)據(jù)塊(緩沖塊)數(shù)目,Curout表示從DBP已經(jīng)輸出的數(shù)據(jù)塊(緩沖塊)數(shù)目; 所述的DBPR是計(jì)算節(jié)點(diǎn)Ci上的一個(gè)五元組DBPR(m,DBPS,n,Curi<rece,decopr>,Curo<send,copr>),其中m為當(dāng)前時(shí)段與Ci通信的MCG其它計(jì)算節(jié)點(diǎn)的個(gè)數(shù);DBPS為DBP的集合,所有DBP構(gòu)成一個(gè)單向鏈表環(huán);n是DBP的個(gè)數(shù);Curi.rece是指向RECE進(jìn)程當(dāng)前操作的DBP,Curi.decopr是指向DECOPR進(jìn)程當(dāng)前操作的DBP,Curo.send是指向SEND進(jìn)程當(dāng)前操作的DBP,Curo.copr是指向COPR進(jìn)程當(dāng)前操作的DBP。
進(jìn)一步的,在所述DBP中,RM和SM的每一行對(duì)應(yīng)Ci外部的一個(gè)計(jì)算節(jié)點(diǎn)Cj(1≤j≤m,j≠i)的輸入、輸出并發(fā)數(shù)據(jù)流,用來(lái)實(shí)現(xiàn)Ci、Cj間的雙向通信過(guò)程;由于每個(gè)并發(fā)數(shù)據(jù)流必須經(jīng)過(guò)DBP,所以必須對(duì)并發(fā)數(shù)據(jù)流切分成大小為|B|的數(shù)據(jù)流塊,為了保證信息的正確性,每個(gè)數(shù)據(jù)流塊被切分的時(shí)候,便分配一個(gè)序號(hào),表示其在數(shù)據(jù)流中的位置;設(shè)DSij為一個(gè)數(shù)據(jù)流,那么DSij(sno)為其第sno個(gè)數(shù)據(jù)流塊;由COPR來(lái)切分編號(hào),然后發(fā)送;由DECOPR按序號(hào)恢復(fù)成數(shù)據(jù)流,然后傳給本地計(jì)算程序; 進(jìn)一步的,所述動(dòng)態(tài)緩沖池中的并發(fā)數(shù)據(jù)流是在MCG的峰值通信的各個(gè)階段,每一對(duì)節(jié)點(diǎn)Ci、Cj間會(huì)有兩個(gè)單向的數(shù)據(jù)流DSij和DSji;對(duì)Ci而言,DSij為輸出數(shù)據(jù)流,DSji為輸入數(shù)據(jù)流;對(duì)Cj而言,恰好相反;如果MCG有p個(gè)計(jì)算節(jié)點(diǎn),那么其在完全圖通信階段,具有p(p+1)/2個(gè)數(shù)據(jù)流;由于所有數(shù)據(jù)流并發(fā)存在,所以稱它們?yōu)椴l(fā)數(shù)據(jù)流;每個(gè)并發(fā)數(shù)據(jù)流對(duì)應(yīng)一個(gè)密度因子k,表示該數(shù)據(jù)流希望單位時(shí)間內(nèi)傳輸?shù)臄?shù)據(jù)塊(緩沖塊)的數(shù)目,且k≥0;當(dāng)k=0時(shí),表示該數(shù)據(jù)流已經(jīng)關(guān)閉;每個(gè)并發(fā)數(shù)據(jù)流可以被切分成若干個(gè)大小為|B|的單元,以便適合緩沖通信機(jī)制。
進(jìn)一步的,所述DBPR的大小取決于緩沖區(qū)庫(kù)的大小NB和DBP的大小N;它們應(yīng)該滿足式n×N≤NB;當(dāng)不滿足時(shí),將借助于磁盤存儲(chǔ)DBP。
進(jìn)一步的,所述動(dòng)態(tài)緩沖池環(huán)中的緩沖區(qū)庫(kù)是計(jì)算節(jié)點(diǎn)Ci上的所有緩沖塊構(gòu)成的集合為緩沖區(qū)庫(kù),其大小為NB個(gè)緩沖區(qū)塊。
進(jìn)一步的,所述動(dòng)態(tài)緩沖池的狀態(tài)state“膨脹”、“收縮”、“空殼”;所謂“膨脹”態(tài)就是該DBP中的Curin小于N,此時(shí)該DBP的緩沖塊數(shù)還能增加,該DBP能輸入和輸出數(shù)據(jù)塊;所謂“收縮”態(tài)就是該DBP的Curin等于N且Curout小于Curin,處于該狀態(tài)的DBP只能輸出數(shù)據(jù)不能輸入數(shù)據(jù);所謂“空殼”態(tài)就是該DBP的Curout已經(jīng)等于N,所有的數(shù)據(jù)已經(jīng)離開DBP并且所有緩沖塊已經(jīng)釋放,只留下DBP空結(jié)構(gòu),處于空狀態(tài)的DBP能被刪除;每從DBP輸出一個(gè)數(shù)據(jù)塊,該數(shù)據(jù)塊對(duì)應(yīng)的緩沖塊被釋放到緩沖區(qū)庫(kù);在實(shí)現(xiàn)過(guò)程中,運(yùn)用一定控制機(jī)制,避免DBP的矩陣變得狹長(zhǎng); 進(jìn)出DBP的數(shù)據(jù)流塊是以列為單位進(jìn)行的,在某時(shí)間段ts,m個(gè)數(shù)據(jù)流在DBP的RM(或SM)中的同一列號(hào)數(shù)據(jù)被作為一次操作單位,整體被發(fā)送或接收;為了體現(xiàn)這種同步機(jī)制,引進(jìn)一個(gè)時(shí)間段序列t1,t2...tt...假設(shè)DBPR已經(jīng)被初始化。
進(jìn)一步的,所述動(dòng)態(tài)緩沖池中的緩沖塊|B|為計(jì)算節(jié)點(diǎn)內(nèi)存單元,其用來(lái)緩沖通信數(shù)據(jù),是所述“接收”、“解壓”、“壓縮”和“發(fā)送”四個(gè)操作對(duì)數(shù)據(jù)處理的基本單位;其大小能根據(jù)計(jì)算節(jié)點(diǎn)的物理情況來(lái)定義,用|B|表示。
本發(fā)明所提供的一種并行SOAP通信系統(tǒng)中計(jì)算DBP大小的方法,其特征在于,設(shè) 1)vp為扣除CPU的其它計(jì)算任務(wù)后的空閑能力所提供; 2)每個(gè)DBP中的每個(gè)緩沖塊的大小均為|B|; 3)對(duì)目前的主流的微型計(jì)算機(jī)而言,根據(jù)實(shí)際測(cè)試數(shù)據(jù)可知,都有vc<<vp成立,即處理速度遠(yuǎn)遠(yuǎn)大于通信速度。假設(shè)本文的描述的MCG中的所有計(jì)算節(jié)點(diǎn),這一事實(shí)均成立; 4)為了描述簡(jiǎn)便,假設(shè)發(fā)送速度和接收速度相同,壓縮速度和解壓的速度相同; 5)設(shè)每個(gè)并發(fā)數(shù)據(jù)流的密度因子均為1; 在MCG的一個(gè)計(jì)算節(jié)點(diǎn)Ci內(nèi),希望調(diào)整m、wr、ws的值,使通信(發(fā)送、接收)吞吐量和處理(壓縮、解壓)吞吐量在某一階段內(nèi)保持均衡,即滿足公式|B|×m×(wr+ws)×vc=|B|×vp;其中,vc為通信速度,即單位時(shí)間內(nèi)計(jì)算節(jié)點(diǎn)Ci的網(wǎng)絡(luò)適配器的發(fā)送和接收緩沖塊的個(gè)數(shù);vp為處理速度,即單位時(shí)間內(nèi)CPU壓縮或解壓的緩沖塊的個(gè)數(shù);m是DBP的矩陣的行的個(gè)數(shù),一般變化頻率不大;wr、ws的值可以根據(jù)并行通信的各個(gè)階段的通信量來(lái)動(dòng)態(tài)調(diào)整,所以DBP的動(dòng)態(tài)性主要體現(xiàn)在wr、ws的變化上;所述公式的左端是期望的通信吞吐量,右端是處理吞吐量。顯然要想達(dá)到平衡,必須通過(guò)緩沖池的方法來(lái)平衡處理速度和通信速度。為壓縮和解壓操作安排m×(wr+ws)個(gè)緩沖塊構(gòu)成的緩沖池。通過(guò)所述公式,可以計(jì)算出wr+ws的值,用N=m×(wr+ws)表示DBP的標(biāo)準(zhǔn)大小,表示每個(gè)DBP中有N個(gè)大小為|B|的緩沖塊。
本發(fā)明所提供的一種并行SOAP通信系統(tǒng)的并發(fā)通信方法,即針對(duì)DBP和DBPR的四個(gè)并發(fā)過(guò)程,其特征表現(xiàn)為Ci上的并發(fā)通信過(guò)程為{“接收(RECE)”、“解壓DECOPR”、“壓縮COPR”、“發(fā)送SEND”}四個(gè)操作的并發(fā)執(zhí)行過(guò)程;即一個(gè)計(jì)算節(jié)點(diǎn)Ci上的并發(fā)發(fā)送過(guò)程包括并發(fā)執(zhí)行的“壓縮”、“發(fā)送”的兩個(gè)過(guò)程;其上的并發(fā)接收過(guò)程包括并發(fā)執(zhí)行的“接收”、“解壓”過(guò)程;“并發(fā)發(fā)送過(guò)程”和“并行接收過(guò)程”是兩個(gè)互逆的過(guò)程;其中“接收”、“發(fā)送”由網(wǎng)絡(luò)適配器執(zhí)行,“壓縮”、“解壓”由CPU來(lái)執(zhí)行;所述的四個(gè)并發(fā)進(jìn)程,能獨(dú)立的并發(fā)執(zhí)行,它們通過(guò)動(dòng)態(tài)緩沖池來(lái)協(xié)同并行執(zhí)行。
進(jìn)一步的,所述“接收(RECE)”過(guò)程 (1)獲取當(dāng)前時(shí)間段ts;并重復(fù)做(2)(3)(4)工作,直到ts時(shí)間段結(jié)束為止 (2)從網(wǎng)絡(luò)上接收來(lái)自其它計(jì)算節(jié)點(diǎn)的數(shù)據(jù)流塊DSB, (3)根據(jù)DBPR.curi.rece獲取DBPR上當(dāng)前輸入DBP; (3.1)如果DBP.state=“膨脹”,則 {根據(jù)DBP.Rmtoken.rece獲取DBP的RM的當(dāng)前輸入列號(hào);確定數(shù)據(jù)流塊DSB所對(duì)應(yīng)的RM的行號(hào)line;根據(jù)該數(shù)據(jù)流的密度因子k確定超元素RM[line,DBP.Rmtoken.rece]類型和大??;向緩沖區(qū)庫(kù)申請(qǐng)一個(gè)緩沖塊B,并把DSB寫入B;如果超元素RM[line,DBP.Rmtoken.rece]中的緩沖塊數(shù)小于k,則將B加入該超元素;DBP.Curin++;如果DBP.Curin<N,則DBP.state=“膨脹”,否則DBP.state=“收縮”;} (3.2)如果DBP.state=“收縮”,則 {創(chuàng)建一個(gè)新DBP,并加入DBPR;執(zhí)行過(guò)程同(3.1)步;} (4)如果ts時(shí)間段到時(shí),則 {DBP.Rmtoken.rece所指向的RM列已經(jīng)完成; DBP.Rmtoken.rece++;注指向下一列 如果DBP.Rmtoken.decopr=NULL,則置 DBP.Rmtoken.decopr=DBP.Rmtoken.rece-1;}。
進(jìn)一步的,所述“解壓DECOPR”過(guò)程 (1)獲取當(dāng)前時(shí)間段ts;并重復(fù)做(2)~(7)工作 (2)根據(jù)DBPR.Curi.decopr獲取DBPR上當(dāng)前輸入DBP; (3)如果DBP.Rmtoken.decopr=NULL,則轉(zhuǎn)向(1); 注沒(méi)有輸入數(shù)據(jù)等待; (4)獲取DBP的RM的第DBP.Rmtoken.decopr列RMC; 對(duì)向量RMC的每一超元素做 {讀取超元素上的緩沖塊的數(shù)據(jù)流塊,并執(zhí)行解壓解碼操作;釋放該超元素上的所有緩沖塊,并統(tǒng)計(jì)釋放的緩沖塊數(shù)bn;DBP.Curout=DBP.Curout+bn; } (5)如果DBP.Curout<N,則 {DBP.Rmtoken.decopr++;轉(zhuǎn)向(4);注處理下一列} (6)如果DBP.Curout=N,則 {置DBP.state=“空殼”;置DBPR.Curi.decopr為DBPR上的下一個(gè)DBP;} 注處理下一個(gè)DBP (7)刪除DBPR上的所有“空殼”狀態(tài)的DBP;轉(zhuǎn)向(2)。
進(jìn)一步的,所述“壓縮COPR”過(guò)程 (1)如果計(jì)算進(jìn)程有要發(fā)送的數(shù)據(jù),則重復(fù)做(2)(3)工作,直到計(jì)算進(jìn)程的要發(fā)送的數(shù)據(jù)被發(fā)送完畢; (2)從計(jì)算進(jìn)程獲取通信數(shù)據(jù),并對(duì)其壓縮,添加路由信息RI,形成數(shù)據(jù)流塊DSB; (3)根據(jù)DBPR.curo.copr獲取DBPR上COPR進(jìn)程的當(dāng)前操作DBP; [3.1]如果DBP.state=“膨脹”,則 {根據(jù)DBP.Smtoken.copr獲取DBP的SM的當(dāng)前輸入列號(hào);根據(jù)路由信息RI確定數(shù)據(jù)流塊DSB所對(duì)應(yīng)的SM的行號(hào)line(數(shù)據(jù)流號(hào));根據(jù)該數(shù)據(jù)流的密度因子k確定超元素SM[line,DBP.Smtoken.copr]類型和大??;向緩沖區(qū)庫(kù)申請(qǐng)一個(gè)緩沖塊B,并把DSB寫入B;如果超元素SM[line,DBP.Smtoken.copr]中的緩沖塊數(shù)小于k,則將B加入該超元素;DBP.Curin++;如果DBP.Curin<N,則DBP.state=“膨脹”,否則DBP.state=“收縮”;} [3.2]如果DBP.state=“收縮”,則 {創(chuàng)建一個(gè)新DBP,并加入DBPR; 執(zhí)行過(guò)程同[3.1]步;}。
進(jìn)一步的,所述“發(fā)送SEND”過(guò)程 (1)獲取當(dāng)前時(shí)間段ts;并重復(fù)做(2)~(7)工作; (2)根據(jù)DBPR.Curo.send獲取DBPR上SEND進(jìn)程當(dāng)前操作的DBP; (3)如果DBP.Smtoken.send=NULL,則轉(zhuǎn)向(1); 注沒(méi)有要發(fā)送的數(shù)據(jù); (4)獲取DBP的SM的第DBP.Smtoken.send列RMC; 對(duì)超元素向量RMC的每一超元素做 {讀取超元素上的緩沖塊的數(shù)據(jù)流塊,并發(fā)送到該數(shù)據(jù)流所對(duì)應(yīng)的計(jì)算節(jié)點(diǎn);釋放該超元素上的所有緩沖塊,統(tǒng)計(jì)該超元素所釋放的緩沖塊數(shù)bn;置DBP.Curout=DBP.Curout+bn;} (5)如果DBP.Curout<N,則 {DBP.Smtoken.send++;轉(zhuǎn)向(4);注處理下一列} (6)如果DBP.Curout=N,則 {置DBP.state=“空殼”;置DBPR.Curo.send為DBPR上的下一個(gè)DBP;}注處理下一個(gè)DBP (7)刪除DBPR上的所有“空殼”狀態(tài)的DBP;轉(zhuǎn)向(2)。
本發(fā)明提供的并行SOAP通信系統(tǒng)及其方法,SPCDBP利用計(jì)算節(jié)點(diǎn)的內(nèi)存構(gòu)建動(dòng)態(tài)緩沖模型,來(lái)適應(yīng)各類計(jì)算資源的速度差異,同時(shí)利用這些差異,使通信設(shè)備和計(jì)算設(shè)備并行運(yùn)行。本發(fā)明提供的并行SOAP通信系統(tǒng)及其方法通過(guò)壓縮編碼機(jī)制和動(dòng)態(tài)緩沖結(jié)構(gòu),其性能得到很大的改善,使其能夠支持并行計(jì)算,從模型操作的過(guò)程來(lái)看,可以得出如下有益特點(diǎn) 1)SOAP協(xié)議的低效性可以通過(guò)壓縮通信技術(shù)來(lái)減少通信信息量,而對(duì)于并行計(jì)算的數(shù)據(jù)而言,這種壓縮比可達(dá)很高,可以壓縮90%以上; 2)通過(guò)動(dòng)態(tài)緩沖機(jī)制,使編碼操作(COPR、DECOPR)與通信操作(SEND、RECE)真正的并行起來(lái),流水機(jī)制使得解壓縮的時(shí)間可以被忽略,尤其是在計(jì)算節(jié)點(diǎn)性能較高時(shí); 3)緩沖池的矩陣的每一行對(duì)應(yīng)一個(gè)并發(fā)數(shù)據(jù)流,m行便對(duì)應(yīng)m個(gè)并發(fā)數(shù)據(jù)流,這和并行計(jì)算的多對(duì)多通信有效地對(duì)應(yīng)起來(lái);另外并發(fā)數(shù)據(jù)流機(jī)制隱蔽了多對(duì)多通信的細(xì)節(jié),簡(jiǎn)化了應(yīng)用任務(wù)的編寫; 4)緩沖池矩陣的超元素表示以及密度因子的提出,更能適合不同并發(fā)數(shù)據(jù)流的實(shí)際需要。如果一個(gè)并發(fā)數(shù)據(jù)流的密度因子k較大,則說(shuō)明該數(shù)據(jù)流需要較大的網(wǎng)絡(luò)通信資源,在一個(gè)發(fā)送時(shí)間段內(nèi)其要發(fā)送k個(gè)數(shù)據(jù)塊。如果緩沖池矩陣的某一行呈稀疏向量(空值較多),則說(shuō)明該行對(duì)應(yīng)的并發(fā)數(shù)據(jù)流對(duì)網(wǎng)絡(luò)資源的需求較少。當(dāng)k=0時(shí),意味著該并發(fā)數(shù)據(jù)流已經(jīng)結(jié)束。因此,k的值的大小可以控制數(shù)據(jù)流的流量(例如,利用反向流壓控制技術(shù)),更能適合并行通信過(guò)程。k的值可以在各個(gè)通信階段間動(dòng)態(tài)調(diào)整。
5)采用超元素技術(shù),可以在接收緩沖矩陣和發(fā)送緩沖矩陣之間動(dòng)態(tài)使用緩沖塊,這樣可以根據(jù)通信數(shù)據(jù)的實(shí)際來(lái)劃分RM和SM,不會(huì)浪費(fèi)內(nèi)存資源。
6)劃分大小穩(wěn)定的緩沖塊,使緩沖池、并發(fā)數(shù)據(jù)流有一個(gè)統(tǒng)一的度量標(biāo)準(zhǔn)。
7)采用“空殼”技術(shù),避免了復(fù)雜的操作算法,在DBP變成“空殼”前,它的所有矩陣的形式未變,算法不會(huì)抖動(dòng);另一方面,“空殼”的含義是完成任務(wù)的緩沖塊已經(jīng)被釋放到緩沖區(qū)庫(kù)。
8)本模型的4個(gè)進(jìn)程有各自的緩沖池操作指針,且指針的值的變化按統(tǒng)一順序變化(按矩陣下標(biāo)由小到大次序),顯然,不會(huì)產(chǎn)生死鎖。
9)如果一個(gè)并發(fā)數(shù)據(jù)流的優(yōu)先級(jí)較高,需要快速傳輸,可以提高其密度因子k的值來(lái)實(shí)施。
10)在一個(gè)DBP中同時(shí)并存RM和SM,它們的初始列數(shù)都是0;然后它們自然增加,增加的最大值是使DBP具有的總緩沖塊數(shù)小于N。RM和SM的大小由通信過(guò)程的自然情況而定。



圖1是本發(fā)明實(shí)施例動(dòng)態(tài)緩沖池的結(jié)構(gòu)框圖; 圖2是本發(fā)明實(shí)施例的DBP的狀態(tài)轉(zhuǎn)換圖; 圖3是本發(fā)明實(shí)施例SOAP未壓縮、串行壓縮和SPCDBP模型通信對(duì)比曲線圖; 圖4是本發(fā)明實(shí)施例TCP未壓縮、SOAP串行壓縮和SPCDBP模型通信對(duì)比曲線圖。

具體實(shí)施例方式 以下結(jié)合

對(duì)本發(fā)明的實(shí)施例作進(jìn)一步詳細(xì)描述,但本實(shí)施例并不用于限制本發(fā)明,凡是采用本發(fā)明的相似結(jié)構(gòu)、方法及其相似變化,均應(yīng)列入本發(fā)明的保護(hù)范圍。
為了對(duì)本發(fā)明的實(shí)施例的一種并行SOAP通信系統(tǒng)及其方法作進(jìn)一步詳細(xì)描述,本說(shuō)明書作如下設(shè)定 設(shè)定1(計(jì)算機(jī)機(jī)群)是一個(gè)二元組CC(Ma,CS,NC),其中Ma為CC主控制器;CS={C1,C2,...Cp}為CC的所有計(jì)算節(jié)點(diǎn)的集合,每個(gè)計(jì)算節(jié)點(diǎn)是一臺(tái)獨(dú)立的計(jì)算機(jī),其有自己獨(dú)立的CPU、內(nèi)存、磁盤和通信適配器;NC為該機(jī)群的互聯(lián)網(wǎng)絡(luò)。
設(shè)定2(多機(jī)群網(wǎng)格)一個(gè)多機(jī)群網(wǎng)格(Multi-cluster Grid-MCG)為一個(gè)四元組MCG(Ma,CCS,NG,R);其中Ma為MCG主控制器;CSS={CC1,CC2,...CCc}為計(jì)算機(jī)機(jī)群的集的集合;NG={N1,N2,...Ng}為連接各個(gè)機(jī)群網(wǎng)絡(luò)的集合;R為連接規(guī)則。
在MCG中,所有計(jì)算節(jié)點(diǎn)在并行計(jì)算過(guò)程中會(huì)產(chǎn)生峰值通信,除了研究有效的通信模型來(lái)提高M(jìn)CG資源的利用率外,還要考慮協(xié)議的特點(diǎn)來(lái)進(jìn)行優(yōu)化。面對(duì)SOAP協(xié)議通信效率低下問(wèn)題,一個(gè)解決的有效途徑是對(duì)被傳輸?shù)男畔⑦M(jìn)行壓縮。通過(guò)研究得知,對(duì)大多數(shù)并行計(jì)算信息,其壓縮后的信息基本可以達(dá)到原信息的5%~10%左右。然而,壓縮會(huì)占用CPU資源,并且SOAP所提供的壓縮通信模式中“壓縮”、“傳輸”兩個(gè)操作是串行的。由于兩個(gè)操作的串行執(zhí)行,壓縮的優(yōu)勢(shì)不能完全發(fā)揮出來(lái),CPU和網(wǎng)卡的能力被交替地浪費(fèi)。況且隨著微處理器處理能力按摩爾定律的飛速發(fā)展,CPU的能力將遠(yuǎn)遠(yuǎn)大于網(wǎng)卡的通信能力。因此,可以利用CPU過(guò)剩的能力,對(duì)數(shù)據(jù)壓縮工作獨(dú)立處理、預(yù)先準(zhǔn)備,采用CPU、網(wǎng)卡并行流水機(jī)制,來(lái)提高“壓縮”、“發(fā)送”操作的并行性。
設(shè)定3(并發(fā)發(fā)送過(guò)程、并發(fā)接收過(guò)程)一個(gè)計(jì)算節(jié)點(diǎn)Ci上的并發(fā)發(fā)送過(guò)程包括并發(fā)執(zhí)行的“壓縮”、“發(fā)送”的兩個(gè)過(guò)程;其上的并發(fā)接收過(guò)程包括并發(fā)執(zhí)行的“接收”、“解壓”過(guò)程?!安l(fā)發(fā)送過(guò)程”和“并行接收過(guò)程”是兩個(gè)互逆的過(guò)程。所以,Ci上的并發(fā)通信過(guò)程為{“接收(RECE)”、“解壓DECOPR”、“壓縮COPR”、“發(fā)送SEND”}四個(gè)操作的并發(fā)執(zhí)行過(guò)程。其中“接收”、“發(fā)送”由網(wǎng)絡(luò)適配器執(zhí)行,“壓縮”、“解壓”由CPU來(lái)執(zhí)行。
設(shè)定4(緩沖塊)一個(gè)緩沖塊B為計(jì)算節(jié)點(diǎn)內(nèi)存單元,其用來(lái)緩沖通信數(shù)據(jù),是“接收”、“解壓”、“壓縮”和“發(fā)送”四個(gè)操作對(duì)數(shù)據(jù)處理的基本單位;其大小可以根據(jù)計(jì)算節(jié)點(diǎn)的物理情況來(lái)定義,用|B|表示。
設(shè)定5(通信峰值問(wèn)題)所謂通信峰值問(wèn)題就是在并行計(jì)算過(guò)程中,周期性的出現(xiàn)MCG節(jié)點(diǎn)間大規(guī)模多對(duì)多的、完全圖通信問(wèn)題。
設(shè)定6(完全圖通信)設(shè)一個(gè)計(jì)算環(huán)境CE具有p個(gè)計(jì)算節(jié)點(diǎn)。所謂完全圖通信就是在某一通信階段,CE中每個(gè)計(jì)算節(jié)點(diǎn)都要向其它p-1個(gè)計(jì)算節(jié)點(diǎn)發(fā)送數(shù)據(jù),同時(shí)又要從其p-1個(gè)節(jié)點(diǎn)接收數(shù)據(jù),在CE的任意兩點(diǎn)間都有一個(gè)邏輯信道,所有邏輯信道構(gòu)成一個(gè)有p個(gè)節(jié)點(diǎn)的完全圖。
設(shè)定7(并發(fā)數(shù)據(jù)流)在MCG的峰值通信的各個(gè)階段,每一對(duì)節(jié)點(diǎn)Ci、Cj間會(huì)有兩個(gè)單向的數(shù)據(jù)流DSij和DSji;對(duì)Ci而言,DSij為輸出數(shù)據(jù)流,DSji為輸入數(shù)據(jù)流;對(duì)Cj而言,恰好相反。如果MCG有p個(gè)計(jì)算節(jié)點(diǎn),那么其在完全圖通信階段,具有p(p+1)/2個(gè)數(shù)據(jù)流。由于所有數(shù)據(jù)流并發(fā)存在,所以稱它們?yōu)椴l(fā)數(shù)據(jù)流。
每個(gè)并發(fā)數(shù)據(jù)流對(duì)應(yīng)一個(gè)密度因子k,表示該數(shù)據(jù)流希望單位時(shí)間內(nèi)傳輸?shù)臄?shù)據(jù)塊(緩沖塊)的數(shù)目,且k≥0;當(dāng)k=0時(shí),表示該數(shù)據(jù)流已經(jīng)關(guān)閉。有關(guān)密度因子的使用參見定義8。
每個(gè)并發(fā)數(shù)據(jù)流可以被切分成若干個(gè)大小為|B|的單元,以便適合緩沖通信機(jī)制。
設(shè)定8(動(dòng)態(tài)緩沖池)計(jì)算節(jié)點(diǎn)Ci上的動(dòng)態(tài)緩沖池為DBP(m,RM,wr,SM,ws,Rmtoken,Smtoken,state,next,Curin,Curout),各部件描述如下 (1)m為當(dāng)前時(shí)段與Ci通信的MCG其它計(jì)算節(jié)點(diǎn)的個(gè)數(shù),即對(duì)于Ci有2m個(gè)并發(fā)數(shù)據(jù)流。
(2)RM為m×wr矩陣、是接收m個(gè)輸入并發(fā)數(shù)據(jù)流的緩沖池,稱接收緩沖矩陣;其矩陣元素為下述三種形式①為一個(gè)大小為|B|的緩沖塊構(gòu)成;②為空;③為k個(gè)大小為|B|的緩沖塊構(gòu)成,k被稱為密度因子,其為大于0的整數(shù);RM的矩陣元素被稱為超矩陣元素;wr是矩陣RM的列數(shù)。
(3)SM為m×ws矩陣,其矩陣元素亦為超矩陣元素,ws是矩陣SM的列數(shù),稱SM為發(fā)送緩沖矩陣。
對(duì)RM的第j(1≤j≤m,j≠i)行用來(lái)緩沖來(lái)自計(jì)算節(jié)點(diǎn)Cj的并發(fā)數(shù)據(jù)流;對(duì)SM的第j(1≤j≤m,j≠i)行用來(lái)緩沖Ci發(fā)往計(jì)算節(jié)點(diǎn)Cj的并發(fā)數(shù)據(jù)流;RM和SM的列是通信操作基本單位,它們的每個(gè)列中的緩沖塊被在一個(gè)時(shí)間段內(nèi)發(fā)送或接收。
(4)Rmtoken細(xì)化為結(jié)構(gòu)Rmtoken(rece,decopr)、是RM的操作令牌、Rmtoken.rece指向RM當(dāng)前輸入列,供RECE進(jìn)程寫入RM使用;Rmtoken.decopr指向RM當(dāng)前輸出列、供DECOPR進(jìn)程讀取RM使用。
(5)Smtoken細(xì)化為結(jié)構(gòu)Smtoken(send,copr),是SM的操作令牌、Smtoken.send指向SM當(dāng)前輸出列、供SEND進(jìn)程讀取SM發(fā)送數(shù)據(jù)使用;Smtoken.copr指向SM當(dāng)前輸入列,供COPR進(jìn)程寫入SM使用。
(6)state為DBP的狀態(tài),其包括{“膨脹”,“收縮”,“空殼”},具體描述參見3.4節(jié);next為指向DBP類型的指針,用于構(gòu)建DBPR(參見定義11); (7)Curin表示當(dāng)前已經(jīng)進(jìn)入DBP的數(shù)據(jù)塊(緩沖塊)數(shù)目,Curout表示從DBP已經(jīng)輸出的數(shù)據(jù)塊(緩沖塊)數(shù)目。
在DBP中,RM和SM的每一行對(duì)應(yīng)Ci外部的一個(gè)計(jì)算節(jié)點(diǎn)Cj(1≤j≤m,j≠i)的輸入、輸出并發(fā)數(shù)據(jù)流,用來(lái)實(shí)現(xiàn)Ci、Cj間的雙向通信過(guò)程。由于每個(gè)并發(fā)數(shù)據(jù)流必須經(jīng)過(guò)DBP,所以必須對(duì)并發(fā)數(shù)據(jù)流切分成大小為|B|的數(shù)據(jù)流塊,為了保證信息的正確性,每個(gè)數(shù)據(jù)流塊被切分的時(shí)候,便分配一個(gè)序號(hào),表示其在數(shù)據(jù)流中的位置。設(shè)DSij為一個(gè)數(shù)據(jù)流,那么DSij(sno)為其第sno個(gè)數(shù)據(jù)流塊。由COPR來(lái)切分編號(hào),然后發(fā)送;由DECOPR按序號(hào)恢復(fù)成數(shù)據(jù)流,然后傳給本地計(jì)算程序。DBP的結(jié)構(gòu)如圖1所示,外部計(jì)算節(jié)點(diǎn)裝置經(jīng)過(guò)“接收(RECE)”模塊,再分別經(jīng)過(guò)RM模塊的m(多)個(gè)并發(fā)數(shù)據(jù)流單元,再經(jīng)“解壓DECOPR”模塊連接本地計(jì)算裝置,本地計(jì)算裝置經(jīng)“壓縮COPR”模塊,再分別經(jīng)過(guò)SM模塊的m(多)個(gè)并發(fā)數(shù)據(jù)流單元,再經(jīng)“發(fā)送SEND”模塊連接外部計(jì)算節(jié)點(diǎn)裝置,其中SM、RM模塊中的并發(fā)數(shù)據(jù)流單元包括r個(gè)超矩陣元素,每個(gè)超矩陣元素由k個(gè)緩沖塊構(gòu)成;DBP的工作流程數(shù)據(jù)流由外部計(jì)算節(jié)點(diǎn)通過(guò)“接收(RECE)”進(jìn)入RM,“解壓DECOPR”從RM取出數(shù)據(jù)送給本地計(jì)算進(jìn)程;本地計(jì)算進(jìn)程計(jì)算出結(jié)果后,通過(guò)“壓縮COPR”編碼壓縮形成數(shù)據(jù)流塊并送至SM,“發(fā)送SEND”進(jìn)程從SM取出數(shù)據(jù)流快并發(fā)往外部計(jì)算節(jié)點(diǎn)。
本發(fā)明實(shí)施例中DBP的配置策略, 設(shè)定9(通信速度、處理速度)計(jì)算節(jié)點(diǎn)Ci的網(wǎng)絡(luò)適配器的處理速度定義為單位時(shí)間內(nèi)發(fā)送和接收緩沖塊的個(gè)數(shù),簡(jiǎn)稱通信速度,記為vc;Ci的CPU的處理速度定義為單位時(shí)間內(nèi)CPU壓縮或解壓的緩沖塊的個(gè)數(shù),簡(jiǎn)稱處理速度,記為vp。
為了描述方便做如下假設(shè) (1)vp為扣除CPU的其它計(jì)算任務(wù)后的空閑能力所提供; (2)每個(gè)DBP中的每個(gè)緩沖塊的大小均為|B|; (3)對(duì)目前的主流的微型計(jì)算機(jī)而言,根據(jù)實(shí)際測(cè)試數(shù)據(jù)可知,都有vc<<vp成立,即處理速度遠(yuǎn)遠(yuǎn)大于通信速度。假設(shè)本文的描述的MCG中的所有計(jì)算節(jié)點(diǎn),這一事實(shí)均成立。
(4)為了描述簡(jiǎn)便,假設(shè)發(fā)送速度和接收速度相同,壓縮速度和解壓的速度相同。
下面提供一個(gè)計(jì)算DBP大小的方法。為了計(jì)算簡(jiǎn)便,設(shè)每個(gè)并發(fā)數(shù)據(jù)流的密度因子均為1。在MCG的一個(gè)計(jì)算節(jié)點(diǎn)Ci內(nèi),希望調(diào)整m、wr、ws的值,使通信(發(fā)送、接收)吞吐量和處理(壓縮、解壓)吞吐量在某一階段內(nèi)保持均衡,即滿足式(1) |B|×m×(wr+ws)×vc=|B|×vp.........(1) (1)式的左端是期望的通信吞吐量,右端是處理吞吐量。顯然要想達(dá)到平衡,必須通過(guò)緩沖池的方法來(lái)平衡處理速度和通信速度。為壓縮和解壓操作安排m×(wr+ws)個(gè)緩沖塊構(gòu)成的緩沖池。m是DBP的矩陣的行的個(gè)數(shù),一般變化頻率不大;wr、ws的值可以根據(jù)并行通信的各個(gè)階段的通信量來(lái)動(dòng)態(tài)調(diào)整,所以DBP的動(dòng)態(tài)性主要體現(xiàn)在wr、ws的變化上。通過(guò)(1)式,可以計(jì)算出wr+ws的值,用N=m×(wr+ws)表示DBP的標(biāo)準(zhǔn)大小,表示每個(gè)DBP中有N個(gè)大小為|B|的緩沖塊。
本發(fā)明實(shí)施例中關(guān)于DBPR; 由于單個(gè)DBP很難滿足峰值通信的需要,為了適應(yīng)每個(gè)時(shí)刻動(dòng)態(tài)變化的并發(fā)數(shù)據(jù)流,需要多個(gè)DBP,所以引進(jìn)DBPR的結(jié)構(gòu)。
設(shè)定10(緩沖區(qū)庫(kù))計(jì)算節(jié)點(diǎn)Ci上的所有緩沖塊構(gòu)成的集合為緩沖區(qū)庫(kù),其大小為NB個(gè)緩沖區(qū)塊。
設(shè)定11(DBPR)計(jì)算節(jié)點(diǎn)Ci上的DBPR為DBPR(m,DBPS,n,Curi(rece,decopr),Curo(send,copr)),其中m為當(dāng)前時(shí)段與Ci通信的MCG其它計(jì)算節(jié)點(diǎn)的個(gè)數(shù);DBPS為DBP的集合,所有DBP構(gòu)成一個(gè)單向鏈表環(huán);n是DBP的個(gè)數(shù);Curi.rece是指向RECE進(jìn)程當(dāng)前操作的DBP,Curi.decopr是指向DECOPR進(jìn)程當(dāng)前操作的DBP,Curo.send是指向SEND進(jìn)程當(dāng)前操作的DBP,Curo.copr是指向COPR進(jìn)程當(dāng)前操作的DBP。
DBPR的大小取決于緩沖區(qū)庫(kù)的大小NB和DBP的大小N。它們應(yīng)該滿足式(2) n×N≤NB....................(2) 當(dāng)不滿足(2)時(shí),將借助于磁盤存儲(chǔ)DBP。
MCG的每個(gè)計(jì)算節(jié)點(diǎn)內(nèi)部,都包含一個(gè)DBPR。
本發(fā)明實(shí)施例中DBP的過(guò)程描述; DBP有“膨脹”,“收縮”,“空殼”三個(gè)狀態(tài);所謂“膨脹”態(tài)就是該DBP中的Curin小于N,此時(shí)該DBP的緩沖塊數(shù)還可以增加,該DBP可以輸入和輸出數(shù)據(jù)塊;所謂“收縮”態(tài)就是該DBP的Curin等于N且Curout小于Curin,處于該狀態(tài)的DBP只能輸出數(shù)據(jù)不能輸入數(shù)據(jù);所謂“空殼”態(tài)就是該DBP的Curout已經(jīng)等于N,所有的數(shù)據(jù)已經(jīng)離開DBP并且所有緩沖塊已經(jīng)釋放,只留下DBP空結(jié)構(gòu),處于空狀態(tài)的DBP可以被刪除。每從DBP輸出一個(gè)數(shù)據(jù)塊,該數(shù)據(jù)塊對(duì)應(yīng)的緩沖塊被釋放到緩沖區(qū)庫(kù)。DBP的狀態(tài)轉(zhuǎn)換過(guò)程如圖2所示(在實(shí)現(xiàn)過(guò)程中,運(yùn)用一定控制機(jī)制,避免DBP的矩陣變得狹長(zhǎng))。
進(jìn)出DBP的數(shù)據(jù)流塊是以列為單位進(jìn)行的,在某時(shí)間段ts,m個(gè)數(shù)據(jù)流在DBP的RM(或SM)中的同一列號(hào)數(shù)據(jù)被作為一次操作單位,整體被發(fā)送或接收。為了體現(xiàn)這種同步機(jī)制,引進(jìn)一個(gè)時(shí)間段序列t1,t2...tt...假設(shè)DBPR已經(jīng)被初始化。
如圖1所示,SPCDBP的進(jìn)程SEND、RECE、COPR和DECOP是獨(dú)立的四個(gè)進(jìn)程,可以獨(dú)立的并發(fā)執(zhí)行,它們通過(guò)動(dòng)態(tài)緩沖池來(lái)協(xié)同并行執(zhí)行。其并行特性體現(xiàn)如下(1)SEND和RECE是兩個(gè)與網(wǎng)絡(luò)適配器相關(guān)的通信進(jìn)程,它的執(zhí)行和網(wǎng)絡(luò)適配器的工作狀態(tài)和緩沖池的狀態(tài)有關(guān),而與并行計(jì)算進(jìn)程、DECOP、COPR無(wú)關(guān);(2)DECOP和COPR是與計(jì)算進(jìn)程的數(shù)據(jù)量以及動(dòng)態(tài)緩沖池狀態(tài)相關(guān)聯(lián)的進(jìn)程。四個(gè)進(jìn)程的工作過(guò)程如下 過(guò)程1(RECE進(jìn)程) (1)獲取當(dāng)前時(shí)間段ts;并重復(fù)做(2)(3)(4)工作,直到ts時(shí)間段結(jié)束為止 (2)從網(wǎng)絡(luò)上接收來(lái)自其它計(jì)算節(jié)點(diǎn)的數(shù)據(jù)流塊DSB, (3)根據(jù)DBPR.curi.rece獲取DBPR上當(dāng)前輸入DBP;(3.1)如果DBP.state=“膨脹”,則 {根據(jù)DBP.Rmtoken.rece獲取DBP的RM的當(dāng)前輸入列號(hào);確定數(shù)據(jù)流塊DSB所對(duì)應(yīng)的RM的行號(hào)line;根據(jù)該數(shù)據(jù)流的密度因子k確定超元素RM[line,DBP.Rmtoken.rece]類型和大??;向緩沖區(qū)庫(kù)申請(qǐng)一個(gè)緩沖塊B,并把DSB寫入B;如果超元素RM[line,DBP.Rmtoken.rece]中的緩沖塊數(shù)小于k,則將B加入該超元素;DBP.Curin++;如果DBP.Curin<N,則DBP.state=“膨脹”,否則DBP.state=“收縮”;} (3.2)如果DBP.state=“收縮”,則 {創(chuàng)建一個(gè)新DBP,并加入DBPR;執(zhí)行過(guò)程同(3.1)步;} (4)如果ts時(shí)間段到時(shí),則 {DBP.Rmtoken.rece所指向的RM列已經(jīng)完成; DBP.Rmtoken.rece++;//指向下一列 如果DBP.Rmtoken.decopr=NULL,則置 DBP.Rmtoken.decopr=DBP.Rmtoken.rece-1;} 過(guò)程2(DECOPR進(jìn)程) (1)獲取當(dāng)前時(shí)間段ts;并重復(fù)做(2)~(7)工作 (2)根據(jù)DBPR.Curi.decopr獲取DBPR上當(dāng)前輸入DBP; (3)如果DBP.Rmtoken.decopr=NULL,則轉(zhuǎn)向(1); //沒(méi)有輸入數(shù)據(jù)等待; (4)獲取DBP的RM的第DBP.Rmtoken.decopr列RMC; 對(duì)向量RMC的每一超元素做 {讀取超元素上的緩沖塊的數(shù)據(jù)流塊,并執(zhí)行解壓解碼操作;釋放該超元素上的所有緩沖塊,并統(tǒng)計(jì)釋放的緩沖塊數(shù)bn;DBP.Curout=DBP.Curout+bn; } (5)如果DBP.Curout<N,則 {DBP.Rmtoken.decopr++;轉(zhuǎn)向(4);//處理下一列} (6)如果DBP.Curout=N,則 {置DBP.state=“空殼”;置DBPR.Curi.decopr為DBPR上的下一個(gè)DBP;}//處理下一個(gè)DBP (7)刪除DBPR上的所有“空殼”狀態(tài)的DBP;轉(zhuǎn)向(2); 過(guò)程3(COPR進(jìn)程) (1)如果計(jì)算進(jìn)程有要發(fā)送的數(shù)據(jù),則重復(fù)做(2)(3)工作,直到計(jì)算進(jìn)程的要發(fā)送的數(shù)據(jù)被發(fā)送完畢; (2)從計(jì)算進(jìn)程獲取通信數(shù)據(jù),并對(duì)其壓縮,添加路由信息RI,形成數(shù)據(jù)流塊DSB; (3)根據(jù)DBPR.curo.copr獲取DBPR上COPR進(jìn)程的當(dāng)前操作DBP; (3.1)如果DBP.state=“膨脹”,則 {根據(jù)DBP.Smtoken.copr獲取DBP的SM的當(dāng)前輸入列號(hào);根據(jù)路由信息RI確定數(shù)據(jù)流塊DSB所對(duì)應(yīng)的SM的行號(hào)line(數(shù)據(jù)流號(hào));根據(jù)該數(shù)據(jù)流的密度因子k確定超元素SM[line,DBP.Smtoken.copr]類型和大?。幌蚓彌_區(qū)庫(kù)申請(qǐng)一個(gè)緩沖塊B,并把DSB寫入B;如果超元素SM[line,DBP.Smtoken.copr]中的緩沖塊數(shù)小于k,則將B加入該超元素;DBP.Curin++;如果DBP.Curin<N,則DBP.state=“膨脹”,否則DBP.state=“收縮”;} (3.2)如果DBP.state=“收縮”,則 {創(chuàng)建一個(gè)新DBP,并加入DBPR; 執(zhí)行過(guò)程同(3.1)步;} 過(guò)程4(SEND進(jìn)程) (1)獲取當(dāng)前時(shí)間段ts;并重復(fù)做(2)~(7)工作 (2)根據(jù)DBPR.Curo.send獲取DBPR上SEND進(jìn)程當(dāng)前操作的DBP; (3)如果DBP.Smtoken.send=NULL,則轉(zhuǎn)向(1); //沒(méi)有要發(fā)送的數(shù)據(jù); (4)獲取DBP的SM的第DBP.Smtoken.send列RMC; 對(duì)超元素向量RMC的每一超元素做 {讀取超元素上的緩沖塊的數(shù)據(jù)流塊,并發(fā)送到該數(shù)據(jù)流所對(duì)應(yīng)的計(jì)算節(jié)點(diǎn);釋放該超元素上的所有緩沖塊,統(tǒng)計(jì)該超元素所釋放的緩沖塊數(shù)bn;置DBP.Curout=DBP.Curout+bn;} (5)如果DBP.Curout<N,則 {DBP.Smtoken.send++;轉(zhuǎn)向(4);//處理下一列} (6)如果DBP.Curout=N,則 {置DBP.state=“空殼”;置DBPR.Curo.send為DBPR上的下一個(gè)DBP;}//處理下一個(gè)DBP (7)刪除DBPR上的所有“空殼”狀態(tài)的DBP;轉(zhuǎn)向(2); 本發(fā)明實(shí)施例中具體試驗(yàn)說(shuō)明 用8臺(tái)微型計(jì)算機(jī)和1臺(tái)100M交換機(jī)構(gòu)建一個(gè)MCG并行環(huán)境,更多計(jì)算節(jié)點(diǎn)的并行通訊過(guò)程都是通過(guò)分組通信而得的。利用JAXM和JDK1.4.2作為開發(fā)工具。JAXM作為JWSDP的一個(gè)組成部分,是一個(gè)輕便的、執(zhí)行XML消息交換的AP,它使服務(wù)能夠利用SOAP消息協(xié)議來(lái)完成相互間的交互。取|B|=10kB,緩沖區(qū)庫(kù)容量為10MB。實(shí)驗(yàn)對(duì)SPCDBP模型的有效性進(jìn)行了驗(yàn)證。主要有4個(gè)試驗(yàn) 試驗(yàn)1.對(duì)比未壓縮、JAXM提供的壓縮機(jī)制(串行壓縮)和SPCDBP模型之間的性能。實(shí)驗(yàn)結(jié)果如圖3所示,圖中橫軸1、2、3、4、5分別對(duì)應(yīng)被傳輸?shù)臄?shù)據(jù)規(guī)模為10MB、20MB、40MB、60MB、80MB的情形。由結(jié)果可知,SPCDBP模型較JAXM提供的串行壓縮的性能有明顯地提高;隨著通信數(shù)據(jù)量的增加,這種優(yōu)勢(shì)越來(lái)越明顯;而且,如果SOAP不壓縮傳輸,其性能很難適合并行計(jì)算。
試驗(yàn)2.對(duì)比TCP協(xié)議、串行壓縮和SPCDBP模型的性能。實(shí)驗(yàn)結(jié)果如圖4所示,圖中橫軸1、2、3、4、5分別對(duì)應(yīng)被傳輸?shù)臄?shù)據(jù)規(guī)模為10MB、20MB、40MB、60MB、80MB的情形。由結(jié)果可知,SPCDBP模型和TCP有相近的數(shù)量級(jí)的通信效率,并且SPCDBP模型較串行壓縮的效率提高近一倍以上;而且隨著數(shù)據(jù)量的增加,SPCDBP模型的效率越來(lái)越接近TCP。
試驗(yàn)3.測(cè)試密度因子對(duì)偏斜并發(fā)數(shù)據(jù)流的調(diào)整功能。計(jì)算節(jié)點(diǎn)C0發(fā)送數(shù)據(jù)到其它8個(gè)計(jì)算節(jié)點(diǎn),試驗(yàn)分五次進(jìn)行,每次計(jì)算最大通信節(jié)點(diǎn)(C0發(fā)往8個(gè)節(jié)點(diǎn)中數(shù)據(jù)量最大的節(jié)點(diǎn))和最小通信節(jié)點(diǎn)間的數(shù)據(jù)量差值,即最大偏移量。然后通過(guò)調(diào)整發(fā)往最大通信節(jié)點(diǎn)的數(shù)據(jù)流的密度因子,來(lái)均衡使用通信適配器的資源,達(dá)到均衡通信的目的。實(shí)驗(yàn)結(jié)果如表1所示,8個(gè)并發(fā)數(shù)據(jù)流的最大偏斜量分別為1MB、20MB、40MB、60MB、80MB。由結(jié)果可知,最大數(shù)據(jù)偏移量和密度因子的關(guān)系成近線性關(guān)系;SPCDBP模型可以通過(guò)設(shè)定密度因子k的值來(lái)調(diào)整通信偏斜,即通過(guò)增加大數(shù)據(jù)流的密度因子的值來(lái)適應(yīng)大數(shù)據(jù)量的均衡通信;密度因子的引入可以有效地調(diào)節(jié)并行峰值通信階段中的通信數(shù)據(jù)量的不均衡問(wèn)題,適合多機(jī)群網(wǎng)格中異構(gòu)資源能力(計(jì)算節(jié)點(diǎn)的通信差異、計(jì)算能力差異)的合理應(yīng)用。
表1.密度因子對(duì)偏斜并發(fā)數(shù)據(jù)流的調(diào)整 試驗(yàn)4.給定10M數(shù)據(jù),運(yùn)用點(diǎn)到點(diǎn)的通信,測(cè)試了|B|值為2.5KB、5KB、10kB、15KB、20KB的響應(yīng)時(shí)間,測(cè)試結(jié)果發(fā)現(xiàn)當(dāng)|B|=10KB時(shí),響應(yīng)時(shí)間最佳,試驗(yàn)結(jié)果如圖2所示。當(dāng)數(shù)據(jù)量超過(guò)緩沖區(qū)庫(kù)容量(本實(shí)驗(yàn)為10MB)時(shí),由于用到硬盤緩存,其性能出現(xiàn)下降趨勢(shì),有關(guān)優(yōu)化問(wèn)題正在研究。
表2.|B|值的試驗(yàn)結(jié)果 總之,SPCDBP模型為運(yùn)用SOAP進(jìn)行并行計(jì)算提供了一個(gè)可行的技術(shù)途徑。同時(shí)這種結(jié)構(gòu)也可適合基于其它二進(jìn)制通信協(xié)議的應(yīng)用。
權(quán)利要求
1.一種并行SOAP通信系統(tǒng),即基于INTERNET或INTRANET的多機(jī)群網(wǎng)格上的并行SOAP通信系統(tǒng),其特征在于,包括配置在多機(jī)群網(wǎng)格的每個(gè)計(jì)算節(jié)點(diǎn)上的動(dòng)態(tài)緩沖池(DBP)、動(dòng)態(tài)緩沖池環(huán)(DBPR);每個(gè)計(jì)算節(jié)點(diǎn)上的動(dòng)態(tài)緩沖池、動(dòng)態(tài)緩沖池環(huán)與多機(jī)群網(wǎng)格上的其他計(jì)算節(jié)點(diǎn)的動(dòng)態(tài)緩沖池、動(dòng)態(tài)緩沖池環(huán)相互連接,協(xié)同工作完成并行通信過(guò)程;
所述的多機(jī)群網(wǎng)格為一個(gè)四元組MCG(Ma,CCS,NG,R);其中Ma為MCG主控制器;CSS={CC1,CC2,...CCc}為計(jì)算機(jī)機(jī)群的集的集合;NG={N1,N2,...Ng}為連接各個(gè)機(jī)群網(wǎng)絡(luò)的集合;R為連接規(guī)則;
所述計(jì)算機(jī)機(jī)群是一個(gè)二元組CC(Ma,CS,NC),其中Ma為CC主控制器;CS={C1,C2,...Cp}為CC的所有計(jì)算節(jié)點(diǎn)的集合,每個(gè)計(jì)算節(jié)點(diǎn)是一臺(tái)獨(dú)立的計(jì)算機(jī),其有自己獨(dú)立的CPU、內(nèi)存、磁盤和通信適配器;NC為連接該機(jī)群的互聯(lián)網(wǎng)絡(luò);
所述的動(dòng)態(tài)緩沖池是計(jì)算節(jié)點(diǎn)Ci上的11元組DBP(m,RM,wr,SM,ws,Rmtoken,Smtoken,state,next,Curin,Curout),各元部件描述如下
(1)m為當(dāng)前時(shí)段與Ci通信的MCG其它計(jì)算節(jié)點(diǎn)的個(gè)數(shù),即Ci有2m個(gè)并發(fā)數(shù)據(jù)流;
(2)RM為m×wr矩陣、是接收m個(gè)輸入并發(fā)數(shù)據(jù)流的緩沖池,稱接收緩沖矩陣;其矩陣元素為下述三種形式①為一個(gè)大小為|B|的緩沖塊構(gòu)成;②為空;③為k個(gè)大小為|B|的緩沖塊構(gòu)成,k被稱為密度因子,其為大于0的整數(shù);RM的矩陣元素被稱為超矩陣元素;wr是矩陣RM的列數(shù);
(3)SM為m×ws矩陣,其矩陣元素亦為超矩陣元素,ws是矩陣SM的列數(shù),稱SM為發(fā)送緩沖矩陣;
(4)Rmtoken細(xì)化為結(jié)構(gòu)Rmtoken(rece,decopr)、是RM的操作令牌、Rmtoken.rece指向RM當(dāng)前輸入列,供RECE進(jìn)程寫入RM使用;Rmtoken.decopr指向RM當(dāng)前輸出列、供DECOPR進(jìn)程讀取RM使用;
(5)Smtoken細(xì)化為結(jié)構(gòu)Smtoken(send,copr),是SM的操作令牌、Smtoken.send指向SM當(dāng)前輸出列、供SEND進(jìn)程讀取SM發(fā)送數(shù)據(jù)使用;Smtoken.copr指向SM當(dāng)前輸入列,供COPR進(jìn)程寫入SM使用;
(6)state為動(dòng)態(tài)緩沖池的狀態(tài),其包括“膨脹”,“收縮”,“空殼”;next為指向DBP類型的指針,用于構(gòu)建動(dòng)態(tài)緩沖池環(huán);
(7)Curin表示當(dāng)前已經(jīng)進(jìn)入動(dòng)態(tài)緩沖池的數(shù)據(jù)塊(緩沖塊)數(shù)目,Curout表示從動(dòng)態(tài)緩沖池已經(jīng)輸出的數(shù)據(jù)塊(緩沖塊)數(shù)目;
所述的動(dòng)態(tài)緩沖池環(huán)是計(jì)算節(jié)點(diǎn)Ci上的一個(gè)五元組DBPR(m,DBPS,n,Curi<rece,decopr>,Curo<send,copr>),其中m為當(dāng)前時(shí)段與Ci通信的MCG其它計(jì)算節(jié)點(diǎn)的個(gè)數(shù);DBPS為動(dòng)態(tài)緩沖池的集合,所有動(dòng)態(tài)緩沖池構(gòu)成一個(gè)單向鏈表環(huán);n是動(dòng)態(tài)緩沖池的個(gè)數(shù);Curi.rece是指向RECE進(jìn)程當(dāng)前操作的動(dòng)態(tài)緩沖池,Curi.decopr是指向DECOPR進(jìn)程當(dāng)前操作的動(dòng)態(tài)緩沖池,Curo.send是指向SEND進(jìn)程當(dāng)前操作的動(dòng)態(tài)緩沖池,Curo.copr是指向COPR進(jìn)程當(dāng)前操作的動(dòng)態(tài)緩沖池。
2.根據(jù)權(quán)利要求1所述的并行SOAP通信系統(tǒng),其特征在于,在所述動(dòng)態(tài)緩沖池中,RM和SM的每一行對(duì)應(yīng)Ci外部的一個(gè)計(jì)算節(jié)點(diǎn)Cj(1≤j≤m,j≠i)的輸入、輸出并發(fā)數(shù)據(jù)流,用來(lái)實(shí)現(xiàn)Ci、Cj間的雙向通信過(guò)程;對(duì)并發(fā)數(shù)據(jù)流切分成大小為|B|的數(shù)據(jù)流塊,每個(gè)數(shù)據(jù)流塊被切分時(shí)應(yīng)分配一個(gè)表示其在數(shù)據(jù)流中位置的序號(hào);由COPR來(lái)切分編號(hào),然后發(fā)送;由DECOPR按序號(hào)恢復(fù)成數(shù)據(jù)流,然后傳給本地計(jì)算程序。
3.根據(jù)權(quán)利要求1所述的并行SOAP通信系統(tǒng),其特征在于,所述動(dòng)態(tài)緩沖池中的并發(fā)數(shù)據(jù)流是在MCG的峰值通信的各個(gè)階段,每一對(duì)節(jié)點(diǎn)Ci、Cj間會(huì)有兩個(gè)單向的數(shù)據(jù)流DSij和DSji;對(duì)Ci而言,DSij為輸出數(shù)據(jù)流,DSji為輸入數(shù)據(jù)流;對(duì)Cj而言,恰好相反;如果MCG有p個(gè)計(jì)算節(jié)點(diǎn),那么其在完全圖通信階段,具有p(p+1)/2個(gè)數(shù)據(jù)流;由于所有數(shù)據(jù)流并發(fā)存在,所以稱它們?yōu)椴l(fā)數(shù)據(jù)流;每個(gè)并發(fā)數(shù)據(jù)流對(duì)應(yīng)一個(gè)密度因子k,表示該數(shù)據(jù)流希望單位時(shí)間內(nèi)傳輸?shù)臄?shù)據(jù)塊(緩沖塊)的數(shù)目,且k≥0;當(dāng)k=0時(shí),表示該數(shù)據(jù)流已經(jīng)關(guān)閉;每個(gè)并發(fā)數(shù)據(jù)流能被切分成若干個(gè)大小為|B|的單元,以便適合緩沖通信機(jī)制。
4.根據(jù)權(quán)利要求1所述的并行SOAP通信系統(tǒng),其特征在于,所述動(dòng)態(tài)緩沖池環(huán)的大小取決于緩沖區(qū)庫(kù)的大小NB和動(dòng)態(tài)緩沖池的大小N;它們應(yīng)該滿足式n×N≤NB;當(dāng)不滿足時(shí),將借助于磁盤存儲(chǔ)動(dòng)態(tài)緩沖池。
5.根據(jù)權(quán)利要求4所述的并行SOAP通信系統(tǒng),其特征在于,所述動(dòng)態(tài)緩沖池環(huán)中的緩沖區(qū)庫(kù)是計(jì)算節(jié)點(diǎn)Ci上的所有緩沖塊構(gòu)成的集合為緩沖區(qū)庫(kù),其大小為NB個(gè)緩沖區(qū)塊。
6.根據(jù)權(quán)利要求1所述的并行SOAP通信系統(tǒng),其特征在于,所述動(dòng)態(tài)緩沖池的狀態(tài)state“膨脹”、“收縮”、“空殼”;所謂“膨脹”態(tài)就是該DBP中的Curin小于N,此時(shí)該DBP的緩沖塊數(shù)還能增加,該動(dòng)態(tài)緩沖池能輸入和輸出數(shù)據(jù)塊;所謂“收縮”態(tài)就是該DBP的Curin等于N且Curout小于Curin,處于該狀態(tài)的動(dòng)態(tài)緩沖池只能輸出數(shù)據(jù)不能輸入數(shù)據(jù);所謂“空殼”態(tài)就是該動(dòng)態(tài)緩沖池的Curout已經(jīng)等于N,所有的數(shù)據(jù)已經(jīng)離開動(dòng)態(tài)緩沖池并且所有緩沖塊已經(jīng)釋放,只留下動(dòng)態(tài)緩沖池空結(jié)構(gòu),處于空狀態(tài)的動(dòng)態(tài)緩沖池能被刪除;每從動(dòng)態(tài)緩沖池輸出一個(gè)數(shù)據(jù)塊,該數(shù)據(jù)塊對(duì)應(yīng)的緩沖塊被釋放到緩沖區(qū)庫(kù);在實(shí)現(xiàn)過(guò)程中,運(yùn)用一定控制機(jī)制,避免動(dòng)態(tài)緩沖池的矩陣變得狹長(zhǎng);
進(jìn)出動(dòng)態(tài)緩沖池的數(shù)據(jù)流塊是以列為單位進(jìn)行的,在某時(shí)間段ts,m個(gè)數(shù)據(jù)流在DBP的RM(或SM)中的同一列號(hào)數(shù)據(jù)被作為一次操作單位,整體被發(fā)送或接收;為了體現(xiàn)這種同步機(jī)制,引進(jìn)一個(gè)時(shí)間段序列t1,t2...tt...假設(shè)DBPR已經(jīng)被初始化;
7.根據(jù)權(quán)利要求1所述的并行SOAP通信系統(tǒng),其特征在于,所述動(dòng)態(tài)緩沖池中的緩沖塊|B|為計(jì)算節(jié)點(diǎn)內(nèi)存單元,其用來(lái)緩沖通信數(shù)據(jù),是所述“接收”、“解壓”、“壓縮”和“發(fā)送”四個(gè)操作對(duì)數(shù)據(jù)處理的基本單位;其大小能根據(jù)計(jì)算節(jié)點(diǎn)的物理情況來(lái)定義,用|B|表示。
8.一種權(quán)利要求1所述的并行SOAP通信系統(tǒng)中動(dòng)態(tài)緩沖池大小的計(jì)算方法,其特征在于,設(shè)
1)vp為扣除CPU的其它計(jì)算任務(wù)后的空閑能力所提供;
2)每個(gè)動(dòng)態(tài)緩沖池中的每個(gè)緩沖塊的大小均為|B|;
3)對(duì)目前的主流的微型計(jì)算機(jī)而言,根據(jù)實(shí)際測(cè)試數(shù)據(jù)可知,都有vc<<vp成立,即處理速度遠(yuǎn)遠(yuǎn)大于通信速度。假設(shè)本文的描述的MCG中的所有計(jì)算節(jié)點(diǎn),這一事實(shí)均成立;
4)為了描述簡(jiǎn)便,假設(shè)發(fā)送速度和接收速度相同,壓縮速度和解壓的速度相同;
5)設(shè)每個(gè)并發(fā)數(shù)據(jù)流的密度因子均為1;
在MCG的一個(gè)計(jì)算節(jié)點(diǎn)Ci內(nèi),調(diào)整m、wr、ws的值,使通信(發(fā)送、接收)吞吐量和處理(壓縮、解壓)吞吐量保持均衡,即滿足公式|B|×m×(wr+ws)×vc=|B|×vp;其中,vc為通信速度,即單位時(shí)間內(nèi)計(jì)算節(jié)點(diǎn)Ci的網(wǎng)絡(luò)適配器的發(fā)送和接收緩沖塊的個(gè)數(shù);vp為處理速度,即單位時(shí)間內(nèi)CPU壓縮或解壓的緩沖塊的個(gè)數(shù);m是動(dòng)態(tài)緩沖池的矩陣的行的個(gè)數(shù);wr、ws的值能根據(jù)并行通信的各個(gè)階段的通信量來(lái)動(dòng)態(tài)調(diào)整,所以動(dòng)態(tài)緩沖池的動(dòng)態(tài)性主要體現(xiàn)在wr、ws的變化上;所述公式的左端是期望的通信吞吐量,右端是處理吞吐量;為壓縮和解壓操作安排m×(wr+ws)個(gè)緩沖塊構(gòu)成的緩沖池;通過(guò)所述公式,能計(jì)算出wr+ws的值,用N=m×(wr+ws)表示DBP的標(biāo)準(zhǔn)大小,表示每個(gè)動(dòng)態(tài)緩沖池中有N個(gè)大小為|B|的緩沖塊。
9.一種權(quán)利要求1所述的并行SOAP通信系統(tǒng)的并發(fā)通信方法,即針對(duì)DBP和DBPR的四個(gè)并發(fā)過(guò)程,其特征表現(xiàn)為Ci上的并發(fā)通信過(guò)程為{“接收(RECE)”、“解壓DECOPR”、“壓縮COPR”、“發(fā)送SEND”}四個(gè)操作的并發(fā)執(zhí)行過(guò)程;即一個(gè)計(jì)算節(jié)點(diǎn)Ci上的并發(fā)發(fā)送過(guò)程包括并發(fā)執(zhí)行的“壓縮”、“發(fā)送”的兩個(gè)過(guò)程;其上的并發(fā)接收過(guò)程包括并發(fā)執(zhí)行的“接收”、“解壓”過(guò)程;“并發(fā)發(fā)送過(guò)程”和“并行接收過(guò)程”是兩個(gè)互逆的過(guò)程;其中“接收”、“發(fā)送”由網(wǎng)絡(luò)適配器執(zhí)行,“壓縮”、“解壓”由CPU來(lái)執(zhí)行;所述的四個(gè)并發(fā)進(jìn)程,能獨(dú)立的并發(fā)執(zhí)行,它們通過(guò)動(dòng)態(tài)緩沖池來(lái)協(xié)同并行執(zhí)行。
10.根據(jù)權(quán)利要求9所述的并行SOAP通信系統(tǒng)的并發(fā)通信方法,其特征在于,所述“接收(RECE)”過(guò)程為
(1)獲取當(dāng)前時(shí)間段ts;并重復(fù)做(2)(3)(4)工作,直到ts時(shí)間段結(jié)束為止
(2)從網(wǎng)絡(luò)上接收來(lái)自其它計(jì)算節(jié)點(diǎn)的數(shù)據(jù)流塊DSB,
(3)根據(jù)DBPR.curi.rece獲取DBPR上當(dāng)前輸入DBP;
(3.1)如果DBP.state=“膨脹”,則
{根據(jù)DBP.Rmtoken.rece獲取DBP的RM的當(dāng)前輸入列號(hào);確定數(shù)據(jù)流塊DSB所對(duì)應(yīng)的RM的行號(hào)line;根據(jù)該數(shù)據(jù)流的密度因子k確定超元素RM[line,DBP.Rmtoken.rece]類型和大小;向緩沖區(qū)庫(kù)申請(qǐng)一個(gè)緩沖塊B,并把DSB寫入B;如果超元素RM[line,DBP.Rmtoken.rece]中的緩沖塊數(shù)小于k,則將B加入該超元素;DBP.Curin++如果DBP.Curin<N,則DBP.state=“膨脹”,否則DBP.state=“收縮”;}
(3.2)如果DBP.state=“收縮”,則
{創(chuàng)建一個(gè)新DBP,并加入DBPR;執(zhí)行過(guò)程同(3.1)步;}
(4)如果ts時(shí)間段到時(shí),則
{DBP.Rmtoken.rece所指向的RM列已經(jīng)完成;
DBP.Rmtoken.rece++;
如果DBP.Rmtoken.decopr=NULL,則置
DBP.Rmtoken.decopr=DBP.Rmtoken.rece-1;}。
11.根據(jù)權(quán)利要求9所述的并行SOAP通信系統(tǒng)的并發(fā)通信方法,其特征在于,所述“解壓DECOPR”過(guò)程為
(1)獲取當(dāng)前時(shí)間段ts;并重復(fù)做(2)~(7)工作
(2)根據(jù)DBPR.Curi.decopr獲取DBPR上當(dāng)前輸入DBP;
(3)如果DBP.Rmtoken.decopr=NULL,則轉(zhuǎn)向(1);
(4)獲取DBP的RM的第DBP.Rmtoken.decopr列RMC;
對(duì)向量RMC的每一超元素做
{讀取超元素上的緩沖塊的數(shù)據(jù)流塊,并執(zhí)行解壓解碼操作;釋放該超元素上的所有緩沖塊,并統(tǒng)計(jì)釋放的緩沖塊數(shù)bn;DBP.Curout=DBP.Curout+bn;
}
(5)如果DBP.Curout<N,則
{DBP.Rmtoken.decopr++;轉(zhuǎn)向(4)};
(6)如果DBP.Curout=N,則
{置DBP.state=“空殼”;置DBPR.Curi.decopr為DBPR上的下一個(gè)DBP;};
(7)刪除DBPR上的所有“空殼”狀態(tài)的DBP;轉(zhuǎn)向(2).
12.根據(jù)權(quán)利要求9所述的并行SOAP通信系統(tǒng)的并發(fā)通信方法,其特征在于,所述“壓縮COPR”過(guò)程為
(1)如果計(jì)算進(jìn)程有要發(fā)送的數(shù)據(jù),則重復(fù)做(2)(3)工作,直到計(jì)算進(jìn)程的要發(fā)送的數(shù)據(jù)被發(fā)送完畢;
(2)從計(jì)算進(jìn)程獲取通信數(shù)據(jù),并對(duì)其壓縮,添加路由信息RI,形成數(shù)據(jù)流塊DSB;
(3)根據(jù)DBPR.curo.copr獲取DBPR上COPR進(jìn)程的當(dāng)前操作DBP;
[3.1]如果DBP.state=“膨脹”,則
{根據(jù)DBP.Smtoken.copr獲取DBP的SM的當(dāng)前輸入列號(hào);根據(jù)路由信息RI確定數(shù)據(jù)流塊DSB所對(duì)應(yīng)的SM的行號(hào)line(數(shù)據(jù)流號(hào));根據(jù)該數(shù)據(jù)流的密度因子k確定超元素SM[line,DBP.Smtoken.copr]類型和大小;向緩沖區(qū)庫(kù)申請(qǐng)一個(gè)緩沖塊B,并把DSB寫入B;如果超元素SM[line,DBP.Smtoken.copr]中的緩沖塊數(shù)小于k,則將B加入該超元素;DBP.Curin++;如果DBP.Curin<N,則DBP.state=“膨脹”,否則DBP.state=“收縮”;}
[3.2]如果DBP.state=“收縮”,則
{創(chuàng)建一個(gè)新DBP,并加入DBPR;
執(zhí)行過(guò)程同[3.1]步;}。
13.根據(jù)權(quán)利要求9所述的并行SOAP通信系統(tǒng)的并發(fā)通信方法,其特征在于,所述“發(fā)送SEND”過(guò)程為
(1)獲取當(dāng)前時(shí)間段ts;并重復(fù)做(2)~(7)工作;
(2)根據(jù)DBPR.Curo.send獲取DBPR上SEND進(jìn)程當(dāng)前操作的DBP;
(3)如果DBP.Smtoken.send=NULL,則轉(zhuǎn)向(1);
(4)獲取DBP的SM的第DBP.Smtoken.send列RMC;
對(duì)超元素向量RMC的每一超元素做
{讀取超元素上的緩沖塊的數(shù)據(jù)流塊,并發(fā)送到該數(shù)據(jù)流所對(duì)應(yīng)的計(jì)算節(jié)點(diǎn);釋放該超元素上的所有緩沖塊,統(tǒng)計(jì)該超元素所釋放的緩沖塊數(shù)bn;置DBP.Curout=DBP.Curout+bn;}
(5)如果DBP.Curout<N,則
{DBP.Smtoken.send++;轉(zhuǎn)向(4)};
(6)如果DBP.Curout=N,則
{置DBP.state=“空殼”;置DBPR.Curo.send為DBPR上的下一個(gè)DBP;};(7)刪除DBPR上的所有“空殼”狀態(tài)的DBP;轉(zhuǎn)向(2)。
全文摘要
一種并行SOAP通信系統(tǒng)及其方法,涉及網(wǎng)絡(luò)計(jì)算技術(shù)領(lǐng)域;所要解決的是多機(jī)群網(wǎng)格的并行計(jì)算的技術(shù)問(wèn)題;該系統(tǒng)通過(guò)多個(gè)普通計(jì)算機(jī)機(jī)群構(gòu)建多機(jī)群網(wǎng)格,并對(duì)多機(jī)群網(wǎng)格中的每個(gè)計(jì)算節(jié)點(diǎn)配置一個(gè)面向SOAP并行通信結(jié)構(gòu),所有計(jì)算節(jié)點(diǎn)上的并行通信結(jié)構(gòu)構(gòu)成SOAP并行通信系統(tǒng)。利用并發(fā)數(shù)據(jù)流、動(dòng)態(tài)緩沖池技術(shù)、壓縮編碼技術(shù)和并行流水機(jī)制,使用內(nèi)存儲(chǔ)器實(shí)現(xiàn)通信資源和計(jì)算資源的并行運(yùn)行。運(yùn)用緩沖塊構(gòu)建并發(fā)數(shù)據(jù)流,利用并發(fā)數(shù)據(jù)流實(shí)現(xiàn)并行計(jì)算所需要的多對(duì)多通信,運(yùn)用超矩陣元素和密度因子來(lái)組織并發(fā)數(shù)據(jù)流并實(shí)現(xiàn)并發(fā)數(shù)據(jù)流的流量調(diào)節(jié),實(shí)現(xiàn)并行SOAP通信系統(tǒng)。本發(fā)明具有良好的可擴(kuò)展性、高效性、能支持多機(jī)群網(wǎng)格上的并行計(jì)算的特點(diǎn)。
文檔編號(hào)H04L29/08GK101217564SQ200810032680
公開日2008年7月9日 申請(qǐng)日期2008年1月16日 優(yōu)先權(quán)日2008年1月16日
發(fā)明者陳慶奎, 那麗春 申請(qǐng)人:上海理工大學(xué)
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1