全部課程
發(fā)布時(shí)間: 2023-04-24 14:16:03
并行計(jì)算和分布式計(jì)算都使用并行性來(lái)實(shí)現(xiàn)更高的性能,將大任務(wù)變成小任務(wù)。簡(jiǎn)單來(lái)說(shuō),如果處理單元共享內(nèi)存,則稱為并行計(jì)算,反之則稱為分布式計(jì)算。也有人認(rèn)為,分布式計(jì)算是并行計(jì)算的一個(gè)特例。
但分布式任務(wù)包是相互獨(dú)立的,前一個(gè)任務(wù)包的結(jié)果沒(méi)有返回,或者處理結(jié)果不正確,對(duì)下一個(gè)任務(wù)包的處理沒(méi)有什么影響。因此,分布式需要的實(shí)時(shí)時(shí)間很少,而且允許計(jì)算錯(cuò)誤(因?yàn)槊總€(gè)計(jì)算任務(wù)都交給幾個(gè)參與者來(lái)計(jì)算,將結(jié)果上傳到服務(wù)器后,必須對(duì)結(jié)果進(jìn)行比較,然后驗(yàn)證結(jié)果是否有大的差異。
分布式要處理的問(wèn)題一般是基于“尋找”模式的。所謂的“尋找”,就相當(dāng)于窮舉法!為了嘗試到每一個(gè)可能存在的結(jié)果,一般從0~N( 某一數(shù)值)被一個(gè)一個(gè)的測(cè)試,直到我們找到所要求的結(jié)果。事實(shí)上,為了易于一次性探測(cè)到正確的結(jié)果,我們假設(shè)結(jié)果是以某個(gè)特殊形式開(kāi)始的。在這種類型的搜索里,我們也許幸運(yùn)的一開(kāi)始就找到答案;也許不夠走運(yùn)以至于到最后才找到答案,這都很公平。
這么說(shuō),并行程序并行處理的任務(wù)包之間有很大的聯(lián)系,而且并行計(jì)算的每一個(gè)任務(wù)塊都是必要的,沒(méi)有浪費(fèi)的分割的,就是每個(gè)任務(wù)包都要處理,而且計(jì)算結(jié)果相互影響,就要求每個(gè)的計(jì)算結(jié)果要絕對(duì)正確,而且在時(shí)間上要盡量做到同步,而分布式的很多任務(wù)塊可以根本就不處理,有大量的無(wú)用數(shù)據(jù)塊,所以說(shuō)分布式計(jì)算的速度盡管很快,但是真正的“效率”是低之再低 的,可能一直在尋找,但是永遠(yuǎn)都找不到,也可能一開(kāi)始就找到了;而并行處理不同,它的任務(wù)包個(gè)數(shù)相對(duì)有限,在一個(gè)有限的時(shí)間應(yīng)該是可能完成的。
分布式的編寫(xiě)一般用的是C++(也有用JAVA的,但是都不是主流),基本不用MPI接口。并行計(jì)算用MPI或者OpenMP。
上一篇: 集群計(jì)算是什么意思
下一篇: 藍(lán)屏007b代碼怎么解決