Loading AI tools
使許多指令得以同時執行的計算模式 来自维基百科,自由的百科全书
平行計算(英語:parallel computing)一般是指許多指令得以同時進行的計算模式。在同時進行的前提下,可以將計算的過程分解成小部份,之後以並行方式來加以解決[1]。
![]() | 此條目可參照英語維基百科相應條目來擴充,此條目在對應語言版為高品質條目。 (2022年6月29日) |
此條目需要補充更多來源。 (2013年6月2日) |
電腦軟件可以被分成數個運算步驟來執行。為了解決某個特定問題,軟件採用某個演算法,以一連串指令執行來完成。傳統上,這些指令都被送至單一的中央處理器,以循序方式執行完成。在這種處理方式下,單一時間中,只有單一指令被執行(processor level: 比較微處理器,CISC, 和RISC,即管線化Pipeline的概念,以及後來在Pipeline基礎上以提高指令處理效率為目的的硬件及軟件發展,比如branch-prediction, 比如forwarding,比如在每個運算單元前的指令堆疊,組譯程式設計師對programm code的順序覆寫)。平行運算採用了多個運算單元,同時執行,以解決問題。
相對於序列計算,平行計算可以劃分成時間平行和空間平行。時間平行即指令流水化,空間平行使用多個處理器執行並行計算,當前研究的主要是空間的平行問題。以程式和演算法設計人員的角度看,平行計算又可分為數據平行和任務平行。數據平行把大的任務化解成若干個相同的子任務,處理起來比任務平行簡單。
空間上的平行導致兩類平行機的產生,按照麥克·弗萊因(Michael Flynn)的說法分為單指令流多數據流(SIMD)和多指令流多數據流(MIMD),而常用的串行機也稱為單指令流單數據流(SISD)。MIMD類的機器又可分為常見的五類:平行向量處理機(PVP)、對稱多處理機(SMP)、大規模平行處理機(MPP)、工作站機群(COW)、分散式共用儲存處理機(DSM)。
平行計算機有以下五種訪存模型:均勻訪存模型(UMA)、非均勻訪存模型(NUMA)、全高速緩衝記憶體訪存模型(COMA)、一致性高速緩衝記憶體非均勻儲存訪問模型(CC-NUMA)和非遠端儲存訪問模型(NORMA)。
不像序列計算機那樣,主流使用馮·諾伊曼的計算模型,平行計算機沒有一個統一的計算模型。不過,人們已經提出了幾種有價值的參考模型:PRAM模型,BSP模型,LogP模型,C^3模型等。
平行計算機是靠網絡將各個處理機或處理器連接起來的,一般來說有以下幾種方式
網絡的基本術語:
此條目需要補充更多來源。 (2017年10月30日) |
平行演算法是一門還沒有發展成熟的學科,雖然人們已經總結出了相當多的經驗,但是遠遠不及串行演算法那樣豐富。平行演算法設計中最常用的的方法是PCAM方法,即劃分,通訊,組合,對映。首先劃分,就是將一個問題平均劃分成若干份,並讓各個處理器去同時執行;通訊階段,就是要分析執行過程中所要交換的數據和任務的協調情況,而組合則是要求將較小的問題組合到一起以提高效能和減少任務開銷,對映則是要將任務分配到每一個處理器上。總之,平行演算法還需要相當多完善的地方。 平行演算法與串行演算法最大的不同之處在於,平行演算法不僅要考慮問題本身,而且還要考慮所使用的平行模型,網絡連接等等。