並行處理檢視原始碼討論檢視歷史
並行處理 |
並行處理(Parallel Processing)是計算機系統中能同時執行兩個或多個處理的一種計算方法。並行處理可同時工作於同一程序的不同方面。並行處理的主要目的是節省大型和複雜問題的解決時間。為使用並行處理,首先需要對程序進行並行化處理,也就是說將工作各部分分配到不同處理進程(線程)中。並行處理由於存在相互關聯的問題,因此不能自動實現。另外,並行也不能保證加速。從理論上講,在 n 個並行處理的執行速度可能會是在單一處理機上執行的速度的 n 倍。
簡介
只有部分應用程序在滿足以下條件的情況下可利用並行處理:具有充足的能充分利用多處理機的應用程序; 並行化目標應用程序或用戶需進行新的編碼來利用並行程序。傳統上,多處理機專為「並行計算機」所設計,沿着這樣的思路,當前 Linux 支持 SMP 奔騰系統,在該系統中多處理機共享單個計算機中的單個存儲器和總線接口。每個運行 Linux 的機器組都有可能通過網絡互相連接形成並行處理群。第三種選擇是使用 Linux 系統作為「主機」,提供專門的相關並行處理機(attached parallel processor)。第四種新選擇是寄存器內 SIMD 並行,應用於多媒體擴展(MMX)。
評價
網絡互連:將計算機子系統互連在一起或構造多處理機或多計算機時可使用靜態或動態拓撲結構的網絡。靜態網絡由點一點直接相連而成,這種連接方式在程序執行過程中不會改變,常用來實現集中式系統的子系統之間或分布式系統的多個計算結點之間的固定連接。動態網絡是用開關通道實現的,它可動態地改變結構,使之與用戶程序中的通信要求匹配。動態網絡包括總線、交叉開關和多級網絡,常用於共享存儲型多處理機中。在網絡上的消息傳遞主要通過尋徑來實現。常見的尋徑方式有存儲轉發尋徑和蟲蝕尋徑等。在存儲轉發網絡中以長度固定的包作為信息流的基本單位,每個結點有一個包緩衝區,包從源結點經過一系列中間結點到達目的結點。存儲轉發網絡的時延與源和目的之間的距離(段數)成正比。而在新型的計算機系統中採用蟲蝕尋徑,把包進一步分成一些固定長度的片,與結點相連的硬件尋徑器中有片緩衝區。消息從源傳送到目的結點要經過一系列尋徑器。同一個包中所有的片以流水方式順序傳送,不同的包可交替地傳送,但不同包的片不能交叉,以免被送到錯誤的目的地。蟲蝕尋徑的時延幾乎與源和目的之間的距離無關。在尋徑中產生的死鎖問題可以由虛擬通道來解決。虛擬通道是兩個結點間的邏輯鏈,它由源結點的片緩衝區、結點間的物理通道以及接收結點的片緩衝區組成。物理通道由所有的虛擬通道分時地共享。虛擬通道雖然可以避免死鎖,但可能會使每個請求可用的有效通道頻寬降低。因此,在確定虛擬通道數目時,需要對網絡吞吐量和通信時延折衷考慮。 [1]