專利名稱:基于Web動(dòng)態(tài)參與的分布式并行計(jì)算平臺(tái)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種利用網(wǎng)絡(luò)閑置計(jì)算資源、基于Web動(dòng)態(tài)參與的分布式并行計(jì)算平臺(tái)系統(tǒng),屬于分布式高性能計(jì)算技術(shù)領(lǐng)域。
背景技術(shù):
隨著社會(huì)生產(chǎn)生活的發(fā)展,各個(gè)領(lǐng)域?qū)Ω咝阅苡?jì)算的需求越來越迫切。計(jì)算機(jī)模擬已成為與理論和實(shí)驗(yàn)并列的第三種科學(xué)技術(shù)研究手段,是高性能計(jì)算的最主要應(yīng)用方向。社會(huì)、經(jīng)濟(jì)、金融、生態(tài)等越來越多的復(fù)雜巨系統(tǒng)成為需要定量分析、模擬的對(duì)象,為科學(xué)決策提供依據(jù)。另一方面隨著信息技術(shù)的發(fā)展,出現(xiàn)越來越多的海量信息和數(shù)據(jù)的處理,這也必然需要高性能計(jì)算。高性能計(jì)算已不能局限在少數(shù)幾個(gè)數(shù)據(jù)中心,而需要大量走進(jìn)實(shí)驗(yàn)室,企業(yè),和學(xué)校,成為許多科學(xué)研究的基礎(chǔ)條件。但高性能計(jì)算系統(tǒng)的價(jià)格和維護(hù)費(fèi)用都十分可觀,編程和使用難度也很大,令許多潛在用戶望而卻步。海量信息和數(shù)據(jù),一般可以分成許多小的相互獨(dú)立的子集,分別進(jìn)行處理。大多數(shù)復(fù)雜系統(tǒng)模擬對(duì)象也具有離散特性。這些復(fù)雜系統(tǒng),包括社會(huì)、經(jīng)濟(jì)和生態(tài)系統(tǒng)中的Agent主體,相互之間的作用都有局部性,從而也可以分解成相對(duì)獨(dú)立的子模擬計(jì)算任務(wù)。由此可見,多數(shù)高性能計(jì)算任務(wù)可分解成相對(duì)獨(dú)立的子任務(wù),并行計(jì)算成為提高計(jì)算性能必然的選擇。中國專利申請(qǐng)200810224328.6從硬件上構(gòu)建專用的并行計(jì)算系統(tǒng),結(jié)合相應(yīng)的算法,充分利用任務(wù)離散特性,使計(jì)算的效率最大化。其他如美國專利US5432718等也是設(shè)計(jì)專門的硬件來完成某特定類別系統(tǒng)的模擬仿真處理。針對(duì)任務(wù)特性設(shè)計(jì)開發(fā)專用的高性能計(jì)算機(jī),可以使效率最大化,降低硬件成本。但研發(fā)投入大,技術(shù)要求高,周期長。由于技術(shù)及成本投入等因素,分布式并行計(jì)算成為一種更為廣泛而實(shí)用的解決方案。中國專利申請(qǐng)200810239104.2,200810217439.4等為解決各自領(lǐng)域高性能計(jì)算問題,利用專用的機(jī)群或服務(wù)器,構(gòu)建分布式并行計(jì)算平臺(tái)。硬件投入成本仍然很高。對(duì)許多科研項(xiàng)目和人員來說還是過于昂貴。因高性能計(jì)算資源的限制,一些研究和模擬實(shí)驗(yàn)只能大幅簡化,從而影響效果。甚至有些研究計(jì)劃不得不擱置或放棄。許多海量信息和數(shù)據(jù)也未能充分挖掘和利用。與此同時(shí),可以看到有大量的計(jì)算資源處于閑置或半閑置狀態(tài)。各種用途的服務(wù)器,利用率不一定很高。個(gè)人計(jì)算機(jī)通常從事輕松的交互型辦公任務(wù),CPU利用率一般小于5%。普通計(jì)算機(jī)計(jì)算性能不高,但數(shù)量龐大。這些閑置計(jì)算能力的總量是驚人的。而互聯(lián)網(wǎng)上的閑置計(jì)算資源就更多了。能否有效的利用這些分散的閑置計(jì)算資源,以用于高性能計(jì)算? NASA的SETIOhome項(xiàng)目,就是利用互聯(lián)網(wǎng)上閑置計(jì)算資源來進(jìn)行尋找外星智能的計(jì)算。還有BONIC等其他一些類似的項(xiàng)目和嘗試。其中有些取得比較好的效果。但這些方法都需要在計(jì)算節(jié)點(diǎn)安裝軟件,進(jìn)行配置。在惡意軟件橫行的網(wǎng)絡(luò)環(huán)境下,安裝額外軟件是不受歡迎的。操作配置上復(fù)雜,或者安全上的顧慮,會(huì)讓很多的人不愿貢獻(xiàn)其計(jì)算資源參與計(jì)算。限制了可以利用的閑置計(jì)算資源的范圍。所以,參與的便利性和安全性是成功構(gòu)建分布式大規(guī)模并行計(jì)算平臺(tái)的關(guān)鍵因素。而這正是現(xiàn)有各種技術(shù)和方法的共同弱點(diǎn)。
發(fā)明內(nèi)容
發(fā)明目的:針對(duì)現(xiàn)有技術(shù)中存在的問題,本發(fā)明提供一種便利快捷的利用網(wǎng)絡(luò)閑置計(jì)算資源,基于Web動(dòng)態(tài)參與的分布式并行計(jì)算平臺(tái)系統(tǒng)。使得網(wǎng)絡(luò)閑置計(jì)算資源,不需安裝部署任何軟件,也不需額外配置,經(jīng)由Web瀏覽器訪問指定頁面即可參與計(jì)算,成為計(jì)算節(jié)點(diǎn)。計(jì)算過程中,這些計(jì)算節(jié)點(diǎn)仍可進(jìn)行輕量級(jí)的如日常辦公的工作,并且可以隨時(shí)動(dòng)態(tài)參與和退出。技術(shù)方案:一種基于Web動(dòng)態(tài)參與的分布式并行計(jì)算平臺(tái)系統(tǒng),包括計(jì)算任務(wù)管理主機(jī)和計(jì)算節(jié)點(diǎn);所述計(jì)算任務(wù)管理主機(jī)包括計(jì)算任務(wù)分解單元、計(jì)算任務(wù)派發(fā)單元、Web服務(wù)器單元、計(jì)算結(jié)果收集單元和計(jì)算結(jié)果匯總處理單元;計(jì)算節(jié)點(diǎn)包含Web瀏覽器和嵌入在Web瀏覽器網(wǎng)頁中運(yùn)行的Java Applet節(jié)點(diǎn)程序;
計(jì)算任務(wù)分解單元,接受用戶提交的計(jì)算任務(wù),并對(duì)這些計(jì)算任務(wù)進(jìn)行初始化,將計(jì)算任務(wù)按粒度分解成多個(gè)子計(jì)算任務(wù),將子計(jì)算任務(wù)封裝成計(jì)算任務(wù)包對(duì)象;海量數(shù)據(jù)處理高性能計(jì)算中,把待處理數(shù)據(jù)根據(jù)一定規(guī)則分解成相對(duì)獨(dú)立的子集,每個(gè)子集對(duì)應(yīng)一個(gè)計(jì)算任務(wù)包。復(fù)雜系統(tǒng)模擬中,把系統(tǒng)按相互作用的局部性劃分成子區(qū)域,每個(gè)子區(qū)域及其作用鄰域的狀態(tài)對(duì)應(yīng)一個(gè)計(jì)算任務(wù)包。Web服務(wù)器單元,通過URL地址提供Web訪問服務(wù);當(dāng)計(jì)算節(jié)點(diǎn)通過Web瀏覽器訪問該URL地址時(shí),Web瀏覽器返回一個(gè)任務(wù)計(jì)算網(wǎng)頁,內(nèi)嵌Java Applet計(jì)算節(jié)點(diǎn)程序;
計(jì)算任務(wù)派發(fā)單元,提供RMI遠(yuǎn)程調(diào)用服務(wù),公開一個(gè)派發(fā)計(jì)算任務(wù)包的調(diào)用接口 ;當(dāng)有調(diào)用請(qǐng)求時(shí),把所述計(jì)算任務(wù)分解單元所封裝的計(jì)算任務(wù)包對(duì)象派發(fā)給請(qǐng)求者;
計(jì)算結(jié)果收集單元,通過RMI遠(yuǎn)程調(diào)用服務(wù),公開一個(gè)收集計(jì)算任務(wù)包的計(jì)算結(jié)果的調(diào)用接口 ;調(diào)用請(qǐng)求者通過該RMI遠(yuǎn)程調(diào)用接口返回計(jì)算任務(wù)包的計(jì)算結(jié)果;
計(jì)算結(jié)果匯總處理單元,當(dāng)所有計(jì)算任務(wù)包的計(jì)算完成后,對(duì)其計(jì)算結(jié)果進(jìn)行匯總處理,把計(jì)算結(jié)果輸出給用戶;
計(jì)算節(jié)點(diǎn)的Web瀏覽器,是任何支持Java的Web瀏覽器;任何網(wǎng)絡(luò)閑置計(jì)算資源,都可以通過支持Java的Web瀏覽器隨時(shí)動(dòng)態(tài)的參與到計(jì)算中,成為計(jì)算節(jié)點(diǎn);
計(jì)算節(jié)點(diǎn)的Java Applet節(jié)點(diǎn)程序,即所述訪問Web服務(wù)器單元返回任務(wù)計(jì)算網(wǎng)頁中內(nèi)嵌的Java Applet節(jié)點(diǎn)程序,通過RMI遠(yuǎn)程調(diào)用服務(wù)向計(jì)算任務(wù)派發(fā)單元請(qǐng)求獲取計(jì)算任務(wù)包對(duì)象;啟動(dòng)計(jì)算任務(wù)包對(duì)象的計(jì)算處理;計(jì)算完成后,把計(jì)算結(jié)果對(duì)象通過RMI遠(yuǎn)程調(diào)用服務(wù)發(fā)送給計(jì)算結(jié)果收集單元。所述計(jì)算任務(wù)包對(duì)象,既包括所計(jì)算任務(wù)所需的信息和數(shù)據(jù),也包括處理所述信息和數(shù)據(jù)的程序邏輯,是一個(gè)完整的Java對(duì)象。所述計(jì)算任務(wù)包對(duì)象,是一個(gè)可以序列化的Java對(duì)象。所述計(jì)算任務(wù)包對(duì)象的派發(fā),是指把計(jì)算任務(wù)包Java對(duì)象序列化,經(jīng)RMI遠(yuǎn)程調(diào)用協(xié)議從計(jì)算任務(wù)派發(fā)單元傳送給計(jì)算節(jié)點(diǎn)Java Applet程序單元,在計(jì)算節(jié)點(diǎn)上再反序列化為Java對(duì)象。所述的計(jì)算任務(wù)派發(fā)單元,計(jì)算結(jié)果收集單元,Web服務(wù)器單元在同一計(jì)算機(jī)中。這一點(diǎn)需要特別注意。嵌入在網(wǎng)頁中運(yùn)行的Java Applet節(jié)點(diǎn)程序,訪問資源時(shí)有一定的安全限制,不能建立任意的網(wǎng)絡(luò)連接。但可以訪問該網(wǎng)頁來源主機(jī)的網(wǎng)絡(luò)資源,如建立與源主機(jī)網(wǎng)絡(luò)連接,調(diào)用源主機(jī)上的RMI服務(wù)等。所述計(jì)算任務(wù)派發(fā)單元,把計(jì)算任務(wù)包對(duì)象派發(fā)給計(jì)算節(jié)點(diǎn)后,開始計(jì)時(shí);如因計(jì)算節(jié)點(diǎn)失效或計(jì)算失敗等原因,超過預(yù)定最大時(shí)間沒有返回計(jì)算結(jié)果,則自動(dòng)將該計(jì)算任務(wù)包對(duì)象派發(fā)給別的計(jì)算節(jié)點(diǎn)。所述計(jì)算任務(wù)派發(fā)單元,在要求嚴(yán)格的情況下,可將每個(gè)計(jì)算任務(wù)包對(duì)象發(fā)給兩或多個(gè)計(jì)算節(jié)點(diǎn)計(jì)算,將返回的計(jì)算結(jié)果進(jìn)行比較驗(yàn)證,從而增加容錯(cuò)性。網(wǎng)絡(luò)中任何一臺(tái)閑置或半閑置計(jì)算機(jī),不管何種軟硬件平臺(tái),都可以通過支持JAVA的瀏覽器經(jīng)網(wǎng)絡(luò)加入到計(jì)算平臺(tái),成為一個(gè)計(jì)算節(jié)點(diǎn)。本架構(gòu)中,既允許局域網(wǎng)中的計(jì)算機(jī)參與進(jìn)來,也允許廣域網(wǎng)Internet上的計(jì)算機(jī)成為計(jì)算節(jié)點(diǎn)。這樣可以最大范圍的利用閑置計(jì)算資源。網(wǎng)絡(luò)計(jì)算節(jié)點(diǎn)通過Web瀏覽器參與計(jì)算的同時(shí),仍可進(jìn)行日常辦公上網(wǎng)等工作。因?yàn)椴僮飨到y(tǒng)會(huì)自動(dòng)進(jìn)行進(jìn)程負(fù)載管理,所以對(duì)用戶使用體驗(yàn)沒有明顯影響。任何計(jì)算節(jié)點(diǎn),可以在計(jì)算過程中動(dòng)態(tài)通過Web瀏覽器加入,獲取對(duì)計(jì)算任務(wù)包進(jìn)行計(jì)算。任何計(jì)算節(jié)點(diǎn),可以隨時(shí)退出計(jì)算,即使有計(jì)算任務(wù)包正在處理中。因?yàn)闆]有返回結(jié)果的情況下,計(jì)算任務(wù)派發(fā)單元會(huì)將計(jì)算任務(wù)包對(duì)象重新派發(fā)給別的計(jì)算節(jié)點(diǎn)。有益效果:本發(fā)明提供的基于Web動(dòng)態(tài)參與的分布式并行計(jì)算平臺(tái)系統(tǒng),具有如下優(yōu)點(diǎn):
1、利用網(wǎng)絡(luò)閑置計(jì)算資源構(gòu)建高性能分布式并行計(jì)算平臺(tái)系統(tǒng),不需要額外的投入和成本,成本低廉。2、網(wǎng)絡(luò)閑置計(jì)算參與到分布式計(jì)算中來,不需要任何安裝部署和配置。所以不會(huì)帶來安全顧慮,也沒有技能要求。3、因基于Java技術(shù),具有跨平臺(tái)特性,對(duì)計(jì)算節(jié)點(diǎn)計(jì)算機(jī)的軟硬件平臺(tái)沒有要求。任何軟硬件平臺(tái)的計(jì)算機(jī)都可以通過支持JAVA的瀏覽器,隨時(shí)加入到計(jì)算平臺(tái),成為一個(gè)計(jì)算節(jié)點(diǎn)。4、局域網(wǎng),或者Internet上的閑置計(jì)算資源都可以參與計(jì)算,成為計(jì)算節(jié)點(diǎn)。這樣可以最大范圍的利用閑置計(jì)算資源。5、計(jì)算節(jié)點(diǎn)可以隨時(shí)參與或者退出分布式并行計(jì)算,不影響計(jì)算總體進(jìn)行和結(jié)果的正確性。6、網(wǎng)絡(luò)計(jì)算節(jié)點(diǎn)參與計(jì)算同時(shí),仍可進(jìn)行日常辦公上網(wǎng)等工作,沒有明顯影響。便利性得到最大化,使更多的閑置計(jì)算資源愿意參與到計(jì)算中來。
圖1為本發(fā)明實(shí)施例的網(wǎng)絡(luò)拓?fù)涫疽? 圖2為本發(fā)明實(shí)施例的結(jié)構(gòu)示意;
圖3為本發(fā)明實(shí)施例的運(yùn)行時(shí)序圖。
具體實(shí)施例方式下面結(jié)合具體實(shí)施例,進(jìn)一步闡明本發(fā)明,應(yīng)理解這些實(shí)施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領(lǐng)域技術(shù)人員對(duì)本發(fā)明的各種等價(jià)形式的修改均落于本申請(qǐng)所附權(quán)利要求所限定的范圍。如圖1所示,基于Web動(dòng)態(tài)參與的分布式并行計(jì)算平臺(tái)系統(tǒng)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)總體上是一個(gè)星型架構(gòu),包括計(jì)算任務(wù)管理主機(jī),以及眾多的網(wǎng)絡(luò)閑置計(jì)算資源通過Web瀏覽器參與計(jì)算構(gòu)成的計(jì)算節(jié)點(diǎn)。任何閑置計(jì)算資源,包括任何空閑服務(wù)器,筆記本,個(gè)人計(jì)算機(jī)等,都可以經(jīng)由支持Java的Web瀏覽器隨時(shí)參與到計(jì)算平臺(tái)系統(tǒng),成為計(jì)算節(jié)點(diǎn)。這些閑置計(jì)算資源,不限數(shù)量,不限平臺(tái),都可以經(jīng)由網(wǎng)絡(luò)參與計(jì)算。所述的網(wǎng)絡(luò),既可以是局域網(wǎng),也可以是互聯(lián)網(wǎng)。如圖2所示,基于Web動(dòng)態(tài)參與的分布式并行計(jì)算平臺(tái)系統(tǒng)包括計(jì)算任務(wù)管理主機(jī)和計(jì)算節(jié)點(diǎn),在此實(shí)施例中,計(jì)算任務(wù)管理主機(jī)包含計(jì)算任務(wù)分解單元,計(jì)算任務(wù)派發(fā)單元,計(jì)算結(jié)果收集單元,Web服務(wù)器單元,計(jì)算結(jié)果匯總處理單元;計(jì)算節(jié)點(diǎn)包含Web瀏覽器單元和嵌入在Web瀏覽器網(wǎng)頁中運(yùn)行的Java Applet節(jié)點(diǎn)程序。注意在必要情況下,計(jì)算任務(wù)分解單元及計(jì)算結(jié)果匯總處理單元物理上可從計(jì)算任務(wù)管理主機(jī)分離到獨(dú)立的計(jì)算機(jī)上完成,以提高處理性能。計(jì)算任務(wù)分解單元接受用戶提交發(fā)布的計(jì)算任務(wù),進(jìn)行初始化處理,并對(duì)計(jì)算任務(wù)進(jìn)行分解。這是重要的步驟,分布式并行計(jì)算的前提是對(duì)計(jì)算任務(wù)進(jìn)行分解。海量數(shù)據(jù)處理的高性能計(jì)算中,由于數(shù)據(jù)相互間一般較少耦合,可以較容易的把待處理數(shù)據(jù)根據(jù)一定規(guī)則分解成相對(duì)獨(dú)立的子集,每個(gè)子集的數(shù)據(jù)用于構(gòu)建一個(gè)計(jì)算任務(wù)包Java對(duì)象(計(jì)算任務(wù)包對(duì)象)。復(fù)雜系統(tǒng)模擬的高性能計(jì)算中,復(fù)雜系統(tǒng)內(nèi)部相互作用一般具有局部性。從物理世界中的粒子,物體的相互作用,到社會(huì)、經(jīng)濟(jì)和生態(tài)系統(tǒng)中的Ag e n t主體相互作用,從某種意義上都隨距離的增大而迅速減弱。根據(jù)這種作用的局部性,可以把系統(tǒng)按一定規(guī)則劃分為相互耦合較弱的子區(qū)域。因鄰域內(nèi)個(gè)體相互作用,各子區(qū)域的鄰域狀態(tài),也要和子區(qū)域內(nèi)的狀態(tài)一起封裝到計(jì)算任務(wù)包中。計(jì)算任務(wù)派發(fā)單元,通過RMI遠(yuǎn)程調(diào)用服務(wù)接受請(qǐng)求,派發(fā)計(jì)算任務(wù)包對(duì)象。而計(jì)算結(jié)果收集單元通過RMI遠(yuǎn)程調(diào)用服務(wù)接受請(qǐng)求,收集計(jì)算任務(wù)包的計(jì)算結(jié)果。其中計(jì)算任務(wù)包和計(jì)算結(jié)果,都是封裝成Java對(duì)象,序列化后經(jīng)RMI遠(yuǎn)程調(diào)用服務(wù)在網(wǎng)絡(luò)中傳輸。接收端計(jì)算節(jié)點(diǎn)收取后再反序列化為Java對(duì)象。其中計(jì)算任務(wù)包包含計(jì)算的代碼邏輯,而計(jì)算結(jié)果對(duì)象僅僅是對(duì)計(jì)算結(jié)果數(shù)據(jù)的封裝。Web服務(wù)器單元,可以是任何一種Web服務(wù)器;注意雖然本發(fā)明提供的分布式并行計(jì)算平臺(tái)系統(tǒng)是基于Java技術(shù)的,但對(duì)Web服務(wù)器是否支持Java技術(shù)沒有要求。Web服務(wù)器只需支持HTML網(wǎng)頁,這是所有Web服務(wù)器具備的基礎(chǔ)功能。計(jì)算結(jié)果匯總處理單元,在所有計(jì)算任務(wù)包計(jì)算完成后,對(duì)計(jì)算結(jié)果收集單元收集的計(jì)算結(jié)果進(jìn)行匯總處理。因?yàn)橛?jì)算任務(wù)包計(jì)算的都是子計(jì)算任務(wù),還需把這些結(jié)果綜合匯總起來,形成整體的結(jié)果。然后以屏幕顯示和文件報(bào)表輸出的形式,把計(jì)算結(jié)果反饋給用戶。Web瀏覽器,是任何支持Java的瀏覽器。訪問指定的網(wǎng)址后,返回的頁面中包含有一個(gè)Java Applet節(jié)點(diǎn)程序。這個(gè)Java Applet節(jié)點(diǎn)程序循環(huán)的進(jìn)行三個(gè)任務(wù):通過RMI遠(yuǎn)程調(diào)用服務(wù)獲取計(jì)算任務(wù)包;執(zhí)行計(jì)算任務(wù)包;通過RMI遠(yuǎn)程調(diào)用服務(wù)返回計(jì)算結(jié)果。如此循環(huán),直到所有計(jì)算任務(wù)包計(jì)算完成。如果沒有新的計(jì)算任務(wù)包,Java Applet節(jié)點(diǎn)程序休眠預(yù)設(shè)時(shí)間后,然后再去查詢是否有計(jì)算任務(wù)包。此外,如圖3所示,基于Web動(dòng)態(tài)參與的分布式并行計(jì)算平臺(tái)系統(tǒng)的動(dòng)態(tài)運(yùn)行過程。該過程包括以下步驟:
51、計(jì)算任務(wù)分解單元,接受用戶提交的計(jì)算任務(wù),對(duì)計(jì)算任務(wù)初始化,并對(duì)計(jì)算任務(wù)進(jìn)行分割,劃分成許多獨(dú)立的子計(jì)算任務(wù),封裝成計(jì)算任務(wù)包對(duì)象;
52、計(jì)算任務(wù)派發(fā)單元,把計(jì)算任務(wù)分解單元分解生成的計(jì)算任務(wù)包對(duì)象,通過RMI遠(yuǎn)程調(diào)用接口監(jiān)聽,提供派發(fā)服務(wù);
53、網(wǎng)絡(luò)閑置計(jì)算資源,通過瀏覽器訪問Web服務(wù)器單元的服務(wù)網(wǎng)址,獲取包含有計(jì)算節(jié)點(diǎn)Java Applet節(jié)點(diǎn)程序的網(wǎng)頁;
54、瀏覽器執(zhí)行網(wǎng)頁,并啟動(dòng)其中的JavaApplet節(jié)點(diǎn)程序;
55、JavaApplet計(jì)點(diǎn)程序啟動(dòng)后,自動(dòng)通過RMI遠(yuǎn)程調(diào)用服務(wù)向計(jì)算任務(wù)派發(fā)單元請(qǐng)求計(jì)算任務(wù)包對(duì)象;
56、計(jì)算任務(wù)派發(fā)單元派發(fā)計(jì)算任務(wù)包對(duì)象給JavaApplet節(jié)點(diǎn)程序,如果當(dāng)前沒有計(jì)算任務(wù),則返回一個(gè)空的任務(wù)對(duì)象;
57、JavaApplet節(jié)點(diǎn)程序,得到計(jì)算任務(wù)包對(duì)象后,判斷是否為空的任務(wù)對(duì)象,如果是空的任務(wù)對(duì)象,表明當(dāng)前沒有計(jì)算任務(wù),進(jìn)入休眠,特定時(shí)間后繼續(xù)S5步驟。如果計(jì)算任務(wù)包不為空,則調(diào)用該計(jì)算任務(wù)包對(duì)象的執(zhí)行方法,執(zhí)行計(jì)算;
58、計(jì)算任務(wù)包計(jì)算完成后,把計(jì)算結(jié)果封裝成Java對(duì)象返回給JavaApplet計(jì)算節(jié)點(diǎn)程序;
59、JavaApplet節(jié)點(diǎn)程序把計(jì)算結(jié)果對(duì)象序列化后,調(diào)用計(jì)算任務(wù)收集單元的RMI遠(yuǎn)程調(diào)用接口,把計(jì)算結(jié)果對(duì)象發(fā)送給計(jì)算任務(wù)收集單元。然后Java Applet節(jié)點(diǎn)程序重復(fù)S5步驟,繼續(xù)請(qǐng)求計(jì)算任務(wù);
510、所有計(jì)算任務(wù)包計(jì)算完成后,計(jì)算結(jié)果匯總處理單元對(duì)計(jì)算結(jié)果進(jìn)行匯總處理,形成最終的整體結(jié)果;
511、計(jì)算結(jié)果匯總處理單元把計(jì)算結(jié)果以屏幕顯示或文件報(bào)表輸出的形式反饋給用戶,任務(wù)結(jié)束。任務(wù)超時(shí)處理。計(jì)算任務(wù)派發(fā)單元將計(jì)算任務(wù)包派發(fā)給計(jì)算節(jié)點(diǎn)時(shí),記錄下分發(fā)時(shí)間。如超過預(yù)定時(shí)間沒返回結(jié)果,將該計(jì)算任務(wù)包重新派發(fā)給別的節(jié)點(diǎn)。因此計(jì)算節(jié)點(diǎn)的失效或臨時(shí)退出,并不會(huì)影響總體結(jié)果的正確性。所以本發(fā)明提供的分布式并行計(jì)算平臺(tái)系統(tǒng)具有較強(qiáng)的靈活性和容錯(cuò)性。本發(fā)明提供的基于Web動(dòng)態(tài)參與的分布式并行計(jì)算平臺(tái)系統(tǒng),架構(gòu)簡潔,流程清晰,易于理解和實(shí)現(xiàn)。這樣,采用本發(fā)明提供的計(jì)算平臺(tái)來進(jìn)行高性能計(jì)算時(shí),可將主要精力放在問題本身,而不需在平臺(tái)本身花太多時(shí)間。本發(fā)明的分布式并行平臺(tái)系統(tǒng)將問題相關(guān)部分和無關(guān)部分,在架構(gòu)上做了清晰的分離。只有少數(shù)幾個(gè)特定于要解決問題的部分,需要針對(duì)不同問題更新其實(shí)現(xiàn)。大部分是問題無關(guān)部分,作為基礎(chǔ)架構(gòu)可以在不同的問題情景下直接的重用。
權(quán)利要求
1.一種基于Web動(dòng)態(tài)參與的分布式并行計(jì)算平臺(tái)系統(tǒng),其特征在于:包括計(jì)算任務(wù)管理主機(jī)和計(jì)算節(jié)點(diǎn);所述計(jì)算任務(wù)管理主機(jī)包括計(jì)算任務(wù)分解單元、計(jì)算任務(wù)派發(fā)單元、Web服務(wù)器單元、計(jì)算結(jié)果收集單元和計(jì)算結(jié)果匯總處理單元;計(jì)算節(jié)點(diǎn)包含Web瀏覽器和嵌入在Web瀏覽器網(wǎng)頁中運(yùn)行的Java Applet節(jié)點(diǎn)程序; 計(jì)算任務(wù)分解單元,接受用戶提交的計(jì)算任務(wù),并對(duì)所述計(jì)算任務(wù)進(jìn)行初始化,將計(jì)算任務(wù)按粒度分解成多個(gè)子計(jì)算任務(wù),將每個(gè)子計(jì)算任務(wù)封裝成計(jì)算任務(wù)包對(duì)象; Web服務(wù)器單元,通過URL地址提供Web訪問服務(wù);當(dāng)計(jì)算節(jié)點(diǎn)通過Web瀏覽器訪問所述URL地址時(shí),返回一個(gè)的任務(wù)計(jì)算網(wǎng)頁,內(nèi)嵌Java Applet節(jié)點(diǎn)程序; 計(jì)算任務(wù)派發(fā)單元,提供RMI遠(yuǎn)程調(diào)用服務(wù),公開一個(gè)派發(fā)計(jì)算任務(wù)包的調(diào)用接口 ;當(dāng)有計(jì)算節(jié)點(diǎn)調(diào)用請(qǐng)求時(shí),通過RMI遠(yuǎn)程調(diào)用服務(wù)把所述計(jì)算任務(wù)分解單元封裝的計(jì)算任務(wù)包對(duì)象派發(fā)給計(jì)算節(jié)點(diǎn)的Java Applet節(jié)點(diǎn)程序;如果當(dāng)前沒有計(jì)算任務(wù),則返回一個(gè)空的任務(wù)對(duì)象; 計(jì)算結(jié)果收集單元,通過RMI遠(yuǎn)程調(diào)用服務(wù),公開一個(gè)收集計(jì)算任務(wù)包的計(jì)算結(jié)果的調(diào)用接口 ;調(diào)用請(qǐng)求者通過所述RMI遠(yuǎn)程調(diào)用接口返回計(jì)算任務(wù)結(jié)果; 計(jì)算結(jié)果匯總處理單元,當(dāng)所有計(jì)算任務(wù)包的計(jì)算完成后,對(duì)其計(jì)算結(jié)果進(jìn)行匯總處理,并把計(jì)算結(jié)果輸出給用戶; Web瀏覽器,是支持Java的Web瀏覽器;網(wǎng)絡(luò)閑置計(jì)算資源通過Web瀏覽器隨時(shí)動(dòng)態(tài)的參與到計(jì)算中 ,成為計(jì)算節(jié)點(diǎn); Java Applet節(jié)點(diǎn)程序,即所述訪問Web服務(wù)器單元返回任務(wù)計(jì)算網(wǎng)頁中內(nèi)嵌的JavaApplet節(jié)點(diǎn)程序,通過RMI遠(yuǎn)程調(diào)用服務(wù)向計(jì)算任務(wù)派發(fā)單元請(qǐng)求獲取計(jì)算任務(wù)包對(duì)象;得到計(jì)算任務(wù)包對(duì)象后,判斷是否為空的任務(wù)對(duì)象,如果是空的任務(wù)對(duì)象,表明當(dāng)前沒有計(jì)算任務(wù),進(jìn)入休眠,預(yù)定時(shí)間后繼續(xù)通過RMI遠(yuǎn)程調(diào)用服務(wù)向計(jì)算任務(wù)派發(fā)單元請(qǐng)求計(jì)算任務(wù)包對(duì)象;如果計(jì)算任務(wù)包不為空,則啟動(dòng)計(jì)算任務(wù)包對(duì)象的計(jì)算處理,計(jì)算完成后,把計(jì)算結(jié)果對(duì)象通過RMI遠(yuǎn)程調(diào)用服務(wù)發(fā)送給計(jì)算結(jié)果收集單元。
2.如權(quán)利要求1所述的基于Web動(dòng)態(tài)參與的分布式并行計(jì)算平臺(tái)系統(tǒng),其特征在于:所述的計(jì)算任務(wù)派發(fā)單元、計(jì)算結(jié)果收集單元和Web服務(wù)器單元在同一計(jì)算機(jī)中。
3.如權(quán)利要求1所述的基于Web動(dòng)態(tài)參與的分布式并行計(jì)算平臺(tái)系統(tǒng),其特征在于:所述計(jì)算任務(wù)包對(duì)象,既包括所計(jì)算任務(wù)包所需的信息和數(shù)據(jù),也包括處理這些信息和數(shù)據(jù)的程序邏輯;所述計(jì)算任務(wù)包對(duì)象是一個(gè)序列化的Java對(duì)象。
4.如權(quán)利要求1所述的基于Web動(dòng)態(tài)參與的分布式并行計(jì)算平臺(tái)系統(tǒng),其特征在于:所述計(jì)算任務(wù)包對(duì)象的派發(fā),是指把計(jì)算任務(wù)包對(duì)象序列化,經(jīng)RMI遠(yuǎn)程調(diào)用服務(wù)從計(jì)算任務(wù)派發(fā)單元傳送給計(jì)算節(jié)點(diǎn)的Java Applet節(jié)點(diǎn)程序,在計(jì)算節(jié)點(diǎn)上再反序列化為Java對(duì)象。
5.如權(quán)利要求1所述的基于Web動(dòng)態(tài)參與的分布式并行計(jì)算平臺(tái)系統(tǒng),其特征在于:如計(jì)算節(jié)點(diǎn)因失效或計(jì)算失敗的原因,超過預(yù)定最大時(shí)間沒有返回計(jì)算結(jié)果,所述計(jì)算任務(wù)派發(fā)單元自動(dòng)將該計(jì)算任務(wù)包對(duì)象重新派發(fā)給別的計(jì)算節(jié)點(diǎn)。
6.如權(quán)利要求1所述的基于Web動(dòng)態(tài)參與的分布式并行計(jì)算平臺(tái)系統(tǒng),其特征在于:所述計(jì)算任務(wù)派發(fā)單元,可將每個(gè)計(jì)算任務(wù)包對(duì)象發(fā)給兩或多個(gè)計(jì)算節(jié)點(diǎn)計(jì)算,將計(jì)算節(jié)點(diǎn)返回的計(jì)算結(jié)果進(jìn)行比較驗(yàn)證。
7.如權(quán)利要求1所述的基于Web動(dòng)態(tài)參與的分布式并行計(jì)算平臺(tái)系統(tǒng),其特征在于:網(wǎng)絡(luò)中任何一臺(tái)閑置或半閑置計(jì)算機(jī),不管何種軟硬件平臺(tái),都可以通過支持JAVA的Web瀏覽器經(jīng)網(wǎng)絡(luò)加入到計(jì)算平臺(tái)系統(tǒng),成為一個(gè)計(jì)算節(jié)點(diǎn)。
8.如權(quán)利要求1所述的基于Web動(dòng)態(tài)參與的分布式并行計(jì)算平臺(tái)系統(tǒng),其特征在于:計(jì)算節(jié)點(diǎn)通過Web瀏覽器參與計(jì)算的同時(shí),仍可進(jìn)行日常辦公上網(wǎng)工作。
9.如權(quán)利要求1所述的基于Web動(dòng)態(tài)參與的分布式并行計(jì)算平臺(tái)系統(tǒng),其特征在于:任何計(jì)算節(jié)點(diǎn),可以在計(jì)算過程中動(dòng)態(tài)通過Web瀏覽器加入,獲取計(jì)算任務(wù)包對(duì)象進(jìn)行計(jì)算;也可以隨時(shí)退出計(jì)算,計(jì) 算任務(wù)派發(fā)單元會(huì)將計(jì)算任務(wù)包重新派發(fā)給別的計(jì)算節(jié)點(diǎn)。
全文摘要
本發(fā)明公開一種基于Web動(dòng)態(tài)參與的分布式并行計(jì)算平臺(tái)系統(tǒng),包括計(jì)算任務(wù)管理主機(jī)和計(jì)算節(jié)點(diǎn);所述計(jì)算任務(wù)管理主機(jī)包括計(jì)算任務(wù)分解單元、計(jì)算任務(wù)派發(fā)單元、Web服務(wù)器單元、計(jì)算結(jié)果收集單元和計(jì)算結(jié)果匯總處理單元;計(jì)算節(jié)點(diǎn)包含Web瀏覽器和嵌入在Web瀏覽器網(wǎng)頁中運(yùn)行的JavaApplet節(jié)點(diǎn)程序;計(jì)算任務(wù)分解單元把計(jì)算任務(wù)分解,并封裝為計(jì)算任務(wù)包。任何網(wǎng)絡(luò)閑置計(jì)算機(jī)通過瀏覽器訪問Web服務(wù)器單元的服務(wù)網(wǎng)址,獲取含有JavaApplet節(jié)點(diǎn)程序的網(wǎng)頁,成為計(jì)算節(jié)點(diǎn)。節(jié)點(diǎn)程序通過RMI遠(yuǎn)程調(diào)用從計(jì)算任務(wù)派發(fā)單元獲取計(jì)算任務(wù)包及把計(jì)算結(jié)果發(fā)送給計(jì)算結(jié)果收集單元。本發(fā)明利用網(wǎng)絡(luò)閑置計(jì)算資源進(jìn)行高性能計(jì)算,成本低廉,實(shí)施靈活方便。
文檔編號(hào)H04L29/08GK103164287SQ20131009664
公開日2013年6月19日 申請(qǐng)日期2013年3月22日 優(yōu)先權(quán)日2013年3月22日
發(fā)明者劉聰, 徐立中, 李臣明, 高紅民, 王逢洲 申請(qǐng)人:河海大學(xué)