python 系統(tǒng)和內存架構
在設計程序或并發(fā)系統(tǒng)時,需要考慮不同的系統(tǒng)和內存架構樣式。這是非常必要的,因為一個系統(tǒng)和內存樣式可能適合于一個任務,但可能容易出錯其他任務。
支持并發(fā)的計算機系統(tǒng)體系結構
michael flynn于1972年對分類不同風格的計算機系統(tǒng)架構進行了分類。該分類法定義了以下四種不同的樣式
- 單指令流,單數據流(sisd)
- 單指令流,多數據流(simd)
- 多指令流,單數據流(misd)
- 多指令流,多數據流(mimd)。
單指令流,單數據流(sisd)
顧名思義,這種類型的系統(tǒng)將具有一個順序輸入數據流和一個單個處理單元來執(zhí)行數據流。它們就像具有并行計算架構的單處理器系統(tǒng)。以下是sisd的架構
sisd的優(yōu)點
sisd架構的優(yōu)點如下 -
- 它需要更少的電力。
- 多核之間沒有復雜通信協(xié)議的問題。
sisd的缺點
sisd架構的缺點如下 -
- sisd架構的速度與單核處理器一樣有限。
- 它不適合大型應用。
單指令流,多數據流(simd)
顧名思義,這種類型的系統(tǒng)將具有多個輸入數據流和多個處理單元,這些處理單元可以在任何給定時間作用于單個指令。它們就像具有并行計算架構的多處理器系統(tǒng)。以下是simd的架構
simd的最佳示例是顯卡。這些卡有數百個獨立的處理單元。如果我們談論sisd和simd之間的計算差異,那么對于添加數組 [ 5,15,20 ] 和 [ 15,25,10 ], sisd架構必須執(zhí)行三種不同的添加操作。 另一方面,使用simd架構,我們可以在單個添加操作中添加。
simd的優(yōu)點
simd架構的優(yōu)點如下
- 可以僅使用一個指令來執(zhí)行對多個元素的相同操作。
- 通過增加處理器的核心數量可以增加系統(tǒng)的吞吐量。
- 處理速度高于sisd架構。
simd的缺點
simd架構的缺點如下
- 處理器的核心數量之間存在復雜的通信。
- 成本高于sisd架構。
多指令單數據(misd)流
具有misd流的系統(tǒng)具有多個處理單元,其通過在同一數據集上執(zhí)行不同的指令來執(zhí)行不同的操作。以下是misd的架構
misd架構的代表尚未商業(yè)化。
多指令多數據(mimd)流
在使用mimd架構的系統(tǒng)中,多處理器系統(tǒng)中的每個處理器可以在不同的數據集并行上獨立地執(zhí)行不同的指令集。它與simd架構相反,在simd架構中,對多個數據集執(zhí)行單個操作。以下是mimd的架構
普通的多處理器使用mimd架構。這些架構主要用于許多應用領域,如計算機輔助設計/計算機輔助制造,仿真,建模,通信開關等。
支持并發(fā)的內存架構
在使用并發(fā)和并行等概念的同時,總是需要加速程序。計算機設計者發(fā)現(xiàn)的一個解決方案是創(chuàng)建共享存儲器多計算機,即具有單個物理地址空間的計算機,其由處理器所具有的所有核訪問。在這種情況下,可以有許多不同風格的架構,但以下是三種重要的架構風格
uma(統(tǒng)一內存訪問)
在此模型中,所有處理器均勻地共享物理內存。所有處理器對所有存儲器字具有相同的訪問時間。每個處理器可以具有專用高速緩沖存儲器 外圍設備遵循一系列規(guī)則。
當所有處理器對所有外圍設備具有相同的訪問權限時,該系統(tǒng)稱為 對稱多處理器 。當只有一個或幾個處理器可以訪問外圍設備時,該系統(tǒng)稱為非對稱多處理器 。
非均勻內存訪問(numa)
在numa多處理器模型中,訪問時間隨存儲器字的位置而變化。這里,共享存儲器物理地分布在所有處理器中,稱為本地存儲器。所有本地存儲器的集合形成全局地址空間,可由所有處理器訪問。
僅緩存內存架構(coma)
coma模型是numa模型的專用版本。這里,所有分布式主存儲器都被轉換為高速緩沖存儲器。