并行處理的工作原理


由: 喬納森·斯特里克蘭

計算能力都歸結為處理器。
美聯社照片/杰伊·拉普雷特如果 計算機 是人類,那么它的 中央處理單元 (中央處理器)將是它的大腦。中央處理器是一個 微處理器 -- 芯片上的計算引擎。雖然現代 微處理器 很小,它們也很強大。他們每秒可以解釋數百萬條指令。即便如此,仍有一些計算問題非常復雜,以至于強大的微處理器需要數年才能解決。
計算機科學家使用不同的方法來解決這個問題。一種潛在的方法是推動更強大的微處理器。通常這意味著找到適合更多的方法 晶體管 在微處理器芯片上。計算機工程師已經在構建只有幾十個晶體管的微處理器 納米 寬。納米有多小?它是十億分之一米。紅細胞的直徑為2,500納米 - 現代晶體管的寬度只是該尺寸的一小部分。
構建更強大的微處理器需要密集而昂貴的生產過程。即使有更強大的微處理器,一些計算問題也需要數年才能解決。部分由于這些因素,計算機科學家有時會使用不同的方法: 并行處理.
通常,并行處理意味著至少兩個微處理器處理整個任務的一部分。這個概念非常簡單:計算機科學家使用專門為該任務設計的特殊軟件將復雜問題劃分為多個組成部分。然后,他或她將每個組件部件分配給專用處理器。每個處理器都解決其整體計算問題的一部分。該軟件重新組合數據以得出原始復雜問題的最終結論。
這是一種高科技的說法,如果可以分擔負載,則更容易完成工作。您可以將負載分配給位于同一臺計算機中的不同處理器,也可以將多臺計算機聯網并在所有計算機之間分配負載。有幾種方法可以實現相同的目標。
并行處理有哪些不同的方法?在下一節中找出答案。
并行處理方法
要理解并行處理,我們需要查看四種基本的編程模型。計算機科學家根據兩個因素定義這些模型:數量 指令流 和數量 數據流 計算機處理。指令流是 算法.算法只是旨在解決特定問題的一系列步驟。數據流是從計算機內存中提取的信息,用作算法的輸入值。處理器將數據流中的值插入到指令流中的算法中。然后,它啟動操作以獲取結果。
單指令,單數據 (西斯德) 計算機 有一個處理器一次使用一個數據源處理一種算法。計算機按順序處理和處理每個任務,因此有時人們使用”順序“來描述 SISD 計算機。它們無法自行執行并行處理。
多指令,單數據 (誤檢失誤) 計算機具有多個處理器。每個處理器使用不同的算法,但使用相同的共享輸入數據。MISD計算機可以同時使用幾種不同的操作來分析同一組數據。操作數取決于處理器數。MISD計算機的實際例子并不多,部分原因是MISD計算機可以計算的問題不常見且專業。
單指令,多數據 (單程) 計算機具有多個遵循同一組指令的處理器,但每個處理器在這些指令中輸入不同的數據。SIMD 計算機通過相同的算法運行不同的數據。這對于基于相同條件分析大塊數據非常有用。許多復雜的計算問題不適合這個模型。
多指令,多數據 (MIMD) 計算機具有多個處理器,每個處理器都能夠獨立于其他處理器接受自己的指令流。每個處理器還從單獨的數據流中提取數據。MIMD 計算機可以同時執行多個不同的進程。MIMD 計算機比 SIMD 或 MISD 計算機更靈活,但創建使這些計算機工作的復雜算法更加困難。 單個程序,多個數據 (SPMD) 系統是 MIMD 的子集。SPMD 計算機的結構類似于 MIMD,但它在所有處理器上運行相同的指令集。
在這四種計算機中,SIMD 和 MIMD 計算機是并行處理系統中最常見的型號。雖然SISD計算機無法自行執行并行處理,但可以將其中的幾個計算機聯網成一個 簇.每臺計算機的 CPU 都可以充當較大并行系統中的處理器。這些計算機一起充當一臺超級計算機。此技術有自己的名稱: 網格計算.像 MIMD 計算機一樣,一個 網格計算 使用正確的軟件,系統可以非常靈活。
并行處理系統如何解決計算問題?在下一節中找出答案。
意見分歧
有人說網格計算和并行處理是兩個不同的學科。其他人則在 高性能計算.一些人同意并行處理和網格計算是相似的,并且朝著 收斂,但目前仍然是不同的技術。
并行處理計算
單獨地,每個處理器的工作方式與任何其他處理器相同 微處理器.處理器按照 匯編語言.根據這些指令,處理器對從中提取的數據執行數學運算 電腦內存.處理器還可以將數據移動到不同的內存位置。
在順序系統中,如果數據值因處理器操作而更改,則不是問題。加工商可以將新價值納入未來的流程并繼續前進。在并行系統中,值的更改可能會出現問題。如果多個處理器處理相同的數據,但數據的值隨時間變化,則沖突的值可能會導致系統搖搖欲墜或崩潰。為了防止這種情況,許多并行處理系統使用某種形式的 消息 處理器之間。
處理器依靠軟件來發送和接收消息。該軟件允許處理器將信息傳達給其他處理器。通過交換消息,處理器可以調整數據值并保持彼此同步。這很重要,因為一旦所有處理器完成其任務,CPU 必須將所有單獨的解決方案重新組合成原始計算問題的整體解決方案。把它想象成一個拼圖——如果所有處理器保持同步,拼圖的各個部分就會無縫地組合在一起。如果處理器不同步,拼圖的各個部分可能根本不適合在一起。
有兩個主要因素會影響系統性能: 延遲 和 帶寬.延遲是指處理器將結果傳輸回系統所需的時間。如果處理器運行算法所花費的時間少于將結果信息傳輸回整個系統的時間,那就不好了。在這種情況下,順序 計算機 系統會更合適。帶寬是指處理器在特定時間內可以傳輸多少數據。一個好的并行處理系統將同時具有低延遲和高帶寬。
有時,并行處理并不比順序計算快。如果計算機的 CPU 重新組裝所有單獨的并行處理器解決方案需要很長時間,則順序計算機可能是更好的選擇。隨著計算機科學家改進并行處理技術和程序員編寫有效的軟件,這可能不再是問題。
要了解有關并行處理的更多信息,請點擊下一頁上的鏈接。
你在接待我嗎?
消息交換系統有時稱為 消息傳遞接口 (MPI).一個好的 MPI 只向需要知道共享數據價值的處理器發送消息。另一種方法是向系統中的每個處理器發送消息,這可能會降低系統性能。
責任編輯:David
【免責聲明】
1、本文內容、數據、圖表等來源于網絡引用或其他公開資料,版權歸屬原作者、原發表出處。若版權所有方對本文的引用持有異議,請聯系拍明芯城(marketing@iczoom.com),本方將及時處理。
2、本文的引用僅供讀者交流學習使用,不涉及商業目的。
3、本文內容僅代表作者觀點,拍明芯城不對內容的準確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨立判斷做出的,請讀者明確相關結果。
4、如需轉載本方擁有版權的文章,請聯系拍明芯城(marketing@iczoom.com)注明“轉載原因”。未經允許私自轉載拍明芯城將保留追究其法律責任的權利。
拍明芯城擁有對此聲明的最終解釋權。