并行计算、分布式计算、网格计算讲解
生活随笔
收集整理的這篇文章主要介紹了
并行计算、分布式计算、网格计算讲解
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
先說分布式計算和并行計算的異同:
解決對象上:都是大任務化為小任務,這是他們共同之處。
但是分布式的任務包互相之間有獨立性,上一個任務包的結(jié)果未返回或者是結(jié)果處理錯誤,對下一個任務包的處理幾乎沒有什么影響。因此,分布式的實時性要求不高,而且允許存在計算錯誤(因為每個計算任務給好幾個參與者計算,上傳結(jié)果到服務器后要比較結(jié)果,然后對結(jié)果差異大的進行驗證,我個人感覺這樣有助于發(fā)現(xiàn)科學家們真正想要找的)!
分布式要處理的問題一般是基于“尋找”模式的。所謂的“尋找”,就相當于窮舉法!為了嘗試到每一個可能存在的結(jié)果,一般從0~某一數(shù)值被一個一個的測試,直到我們找到所要求的結(jié)果。事實上,為了易于一次性探測到正確的結(jié)果,我們假設結(jié)果是以某個特殊形式開始的。在這種類型的搜索里,我們也許幸運的一開始就找到答案;也許不夠走運以至于到最后才找到答案,這都很公平。
這么說,并行程序并行處理的任務包之間有很大的聯(lián)系,而且并行計算的每一個任務塊都是必要的,沒有浪費的分割的,就是每個任務包都要處理,而且計算結(jié)果相互影響,就要求每個的計算結(jié)果要絕對正確,而且在時間上要盡量做到同步,而分布式的很多任務塊可以根本就不處理,有大量的無用數(shù)據(jù)塊,所以說分布式計算的速度盡管很快,但是真正的“效率”是低之再低的,可能一直在尋找,但是永遠都找不到,也可能一開始就找到了;而并行處理不同,它的任務包個數(shù)相對有限,在一個有限的時間應該是可能完成的。
分布式計算提出了一個讓工作站端能夠在后臺持許工作的方法,而用戶完全不需關(guān)心任何東西。這種實現(xiàn)基于兩個原則,其一是任務連續(xù)分配和空閑優(yōu)先權(quán),其二是寫一個屏幕保護程序。現(xiàn)在的調(diào)度程序已經(jīng)不錯了,而空閑優(yōu)先任務將在人們完全不用關(guān)心任何東西的情況下自動執(zhí)行。利用屏幕保護程序可以利用計算機閑置的時間計算工作任務。
解決對象上:都是大任務化為小任務,這是他們共同之處。
但是分布式的任務包互相之間有獨立性,上一個任務包的結(jié)果未返回或者是結(jié)果處理錯誤,對下一個任務包的處理幾乎沒有什么影響。因此,分布式的實時性要求不高,而且允許存在計算錯誤(因為每個計算任務給好幾個參與者計算,上傳結(jié)果到服務器后要比較結(jié)果,然后對結(jié)果差異大的進行驗證,我個人感覺這樣有助于發(fā)現(xiàn)科學家們真正想要找的)!
分布式要處理的問題一般是基于“尋找”模式的。所謂的“尋找”,就相當于窮舉法!為了嘗試到每一個可能存在的結(jié)果,一般從0~某一數(shù)值被一個一個的測試,直到我們找到所要求的結(jié)果。事實上,為了易于一次性探測到正確的結(jié)果,我們假設結(jié)果是以某個特殊形式開始的。在這種類型的搜索里,我們也許幸運的一開始就找到答案;也許不夠走運以至于到最后才找到答案,這都很公平。
這么說,并行程序并行處理的任務包之間有很大的聯(lián)系,而且并行計算的每一個任務塊都是必要的,沒有浪費的分割的,就是每個任務包都要處理,而且計算結(jié)果相互影響,就要求每個的計算結(jié)果要絕對正確,而且在時間上要盡量做到同步,而分布式的很多任務塊可以根本就不處理,有大量的無用數(shù)據(jù)塊,所以說分布式計算的速度盡管很快,但是真正的“效率”是低之再低的,可能一直在尋找,但是永遠都找不到,也可能一開始就找到了;而并行處理不同,它的任務包個數(shù)相對有限,在一個有限的時間應該是可能完成的。
分布式計算提出了一個讓工作站端能夠在后臺持許工作的方法,而用戶完全不需關(guān)心任何東西。這種實現(xiàn)基于兩個原則,其一是任務連續(xù)分配和空閑優(yōu)先權(quán),其二是寫一個屏幕保護程序。現(xiàn)在的調(diào)度程序已經(jīng)不錯了,而空閑優(yōu)先任務將在人們完全不用關(guān)心任何東西的情況下自動執(zhí)行。利用屏幕保護程序可以利用計算機閑置的時間計算工作任務。
分布式的編寫一般用的是C++(也有用JAVA的,但是都是娛樂性質(zhì)的項目了,不是主流),基本不用MPI接口。并行計算用MPI或者OpenMP。如果把網(wǎng)格計算算做分布式計算(網(wǎng)格計算是分布式計算的一種特例,但是有區(qū)別,區(qū)別僅僅在編程方法和實際應用的范圍上),網(wǎng)格計算使用中間件!而且對聯(lián)網(wǎng)的各臺計算機的操作系統(tǒng)的要求比較特殊。
分布式系統(tǒng)的最主要的特點是整個系統(tǒng)中的各計算機對用戶都是透明的。也就是說,對用戶來說,這種分布式計算機系統(tǒng)就好像只有一個計算機一樣。用戶通過鍵入命令就可以運行程序,但用戶并不知道是哪一個計算機在為他運行程序。是操作系統(tǒng)為用戶選擇一個最合適的計算機來運行其程序,并將運行的結(jié)果傳送到合適的地方。這些都不需要用戶的干預。
再說說網(wǎng)格計算和分布式計算的聯(lián)系和區(qū)別:
| 網(wǎng)格計算是分布式運算的進化型,每個人打開電腦,網(wǎng)格就像電力網(wǎng)一樣,可以用起來,你把CPU能力貢獻出來,那么你可以用全世界的CPU之和。詳細的說,就是:計算機組成的網(wǎng)格類似于輸電網(wǎng):當我們使用電器的時候,從來沒有關(guān)心電力來自哪個發(fā)電廠,以及經(jīng)過了什么電壓變換。我們只是簡單的把電器插入墻壁上的電源插座。然而隱藏在插座后面的則是許多發(fā)電廠和把它們連接在一起的輸電線路。計算機網(wǎng)格模仿了輸電網(wǎng)。當你把一臺電腦接入計算機網(wǎng)格的時候,就相當于尋求使用計算機網(wǎng)格的“計算力”。你不用關(guān)心數(shù)據(jù)是由什么計算機儲存和計算的,正如你并不關(guān)心電源插座后面的故事。網(wǎng)格計算就如同建立計算機的輸電網(wǎng)。一個發(fā)電廠多余的發(fā)電能力可以通過輸電網(wǎng)傳送給遠方的城市用戶,一臺計算機多余的計算能力遠可以通過計算網(wǎng)格,讓遠方的用戶加以利用。 照上面的說法,我個人的理解是,分布式計算是將大任務化分為小任務,各臺參與計算的電腦之間是在物理地域上的分布,一般有服務器作為“中央”,參與計算的電腦不用了解工作原理,僅僅只是就自己感興趣的項目做貢獻而已,注意,是“向別人”無償?shù)淖鲐暙I,不是自己“直接”受益;而網(wǎng)格計算是自己“直接”受益的,她通過一個平臺允許你調(diào)用別人計算機的處理資源,而別人根本就不知道你在用他的資源!這就是說,分布式計算是你和其他人一起組成“一臺”專供某些科研組織使用的超級處理機,網(wǎng)格計算是將所有網(wǎng)內(nèi)其他人的電腦組成一臺專供你自己使用的超級處理機。 分布式計算強調(diào)參與的計算機自愿參與!!!網(wǎng)格計算平臺暗箱操作,不管別人是否愿意,只要聯(lián)入網(wǎng)內(nèi),就要成為另外某人的“處理機”!!! 分布式更偏向于計算任務的分解!將計算任務化整為零,將大家的處理能力化零為整;網(wǎng)格計算更偏向于計算能力的集中!相當于集百家之精華,融你一人之薈粹!! |
總結(jié)
以上是生活随笔為你收集整理的并行计算、分布式计算、网格计算讲解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是云计算,什么是网格计算,他们之间有
- 下一篇: badboy提示当前页面的脚本发生错误