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