并行處理(Parallel Processing)是計算機系統(tǒng)中能同時執(zhí)行兩個或多個處理的一種計算方法。并行處理可同時工作于同一程序的不同方面。并行處理的主要目的是節(jié)省大型和復雜問題的解決時間。為使用并行處理,首先需要對程序進行并行化處理,也就是說將工作各部分分配到不同處理進程(線程)中。并行處理由于存在相互關聯(lián)的問題,因此不能自動實現(xiàn)。另外,并行也不能保證加速。從理論上講,在 n 個并行處理的執(zhí)行速度可能會是在單一處理機上執(zhí)行的速度的 n 倍。
在并行處理技術中所使用的算法主要遵循三種策略:1.分而治之法:也就是把多個任務分解到多個處理器或多個計算機中,然后再按照一定的拓撲結構來進行求解。2.重新排序法:分別采用靜態(tài)或動態(tài)的指令詞度方式。3.顯式/隱式并行性結合:顯式指的是并行語言通過編譯形成并行程序,隱式指的是串行語言通過編譯形成并行程序,顯式/隱式并行性結合的關鍵就在于并行編譯,而并行編譯涉及到語句、程序段、進程以及各級程序的并行性。
并行處理所需要提供的典型硬件環(huán)境有:單處理機上的單個區(qū);多處理機(SMP)中的單個區(qū);多區(qū)配置一個處理機(MPP)中的各區(qū) ;多處理機(SMP 群)中的各區(qū);邏輯數(shù)據(jù)庫區(qū)(在 AIX 第1版的 DB2 并行版 - DB2 PE 中也稱之為多邏輯代碼或 MLN)并行計算機具有代表性的應用領域有:天氣預報建摸、VLSI電路的計算機輔助設計、大型數(shù)據(jù)庫管理、人工智能、犯罪控制和國防戰(zhàn)略研究等,而且它的應用范圍還在不斷地擴大。并行處理技術主要是以算法為核心,并行語言為描述,軟硬件作為實現(xiàn)工具的相互聯(lián)系而又相互制約的一種結構技術。
利用計算機語言進行并行性描述的時候主要有三種方案:1.語言擴展方案:也就是利用各種語言的庫函數(shù)來進行并行性功能的擴展。2.編譯制導法:也稱為智能編譯,它是隱式并行策略的體現(xiàn),主要是由并行編譯系統(tǒng)進行程序表示、控制流的分析、相關分析、優(yōu)化分析和并行化劃分,由相關分析得到方法庫管理方案,由優(yōu)化分析得到知識庫管理方案,由并行化劃分得到程序重構,從而形成并行程序。3.新的語言結構法:這是顯式并行策略的體現(xiàn)。也就是建立一種全新的并行語言的體系,而這種并行語言通過編譯就能直接形成并行程序。
利用計算機語言進行并行性描述的時候主要有三種方案:1.語言擴展方案:也就是利用各種語言的庫函數(shù)來進行并行性功能的擴展。2.編譯制導法:也稱為智能編譯,它是隱式并行策略的體現(xiàn),主要是由并行編譯系統(tǒng)進行程序表示、控制流的分析、相關分析、優(yōu)化分析和并行化劃分,由相關分析得到方法庫管理方案,由優(yōu)化分析得到知識庫管理方案,由并行化劃分得到程序重構,從而形成并行程序。3.新的語言結構法:這是顯式并行策略的體現(xiàn)。也就是建立一種全新的并行語言的體系,而這種并行語言通過編譯就能直接形成并行程序。
只有部分應用程序在滿足以下條件的情況下可利用并行處理:具有充足的能充分利用多處理機的應用程序; 并行化目標應用程序或用戶需進行新的編碼來利用并行程序。傳統(tǒng)上,多處理機專為“并行計算機”所設計,沿著這樣的思路,當前 Linux 支持 SMP 奔騰系統(tǒng),在該系統(tǒng)中多處理機共享單個計算機中的單個存儲器和總線接口。每個運行 Linux 的機器組都有可能通過網(wǎng)絡互相連接形成并行處理群。第三種選擇是使用 Linux 系統(tǒng)作為“主機”,提供專門的相關并行處理機(attached parallel processor)。第四種新選擇是寄存器內(nèi) SIMD 并行,應用于多媒體擴展(MMX)