2018-01-26

## 并發(fā)的驅(qū)動力

并發(fā)編程復興的主要驅(qū)動力來自于“多核危機”。

## 并發(fā)與并行

并發(fā)程序含有多個邏輯上的獨立執(zhí)行塊,它們可以獨立地并行執(zhí)行,也可以串行執(zhí)行。


并發(fā)是同一時間應對(dealing with)多件事情的能力;

并行是同一時間動手做(doing)多件事情的能力。





并發(fā)程序的執(zhí)行通常是不確定的,它會隨著事件時序的改變而給出不同的結(jié)果。對于真正的并發(fā)程序,不確定性是其與生俱來且伴隨始終的屬性。與之相反,并行程序可能是確定。


傳統(tǒng)的“線程與鎖”模型并沒有顯式支持并行。

##單核CPU級別的并行

單核在位級和指令級兩個層次上都能夠并行地使用這些晶體管資源。

##? 單核CPU級別的并行 位級(bit-level)并行

對于兩個32位數(shù)的加法,8位計算機必須進行多次8位計算,而32位計算機可以一步完成,即并行地處理32位數(shù)的4字節(jié)。

## 單核CPU級別的并行 指令級(instruction-level)并行

現(xiàn)代CPU的并行度很高,盡管處理器內(nèi)部的并行度很高,但是經(jīng)過精心設計,從外部看上去所有處理都像是串行的。


## 單核CPU級別的并行 數(shù)據(jù)級(data)并行


數(shù)據(jù)級并行(也稱為“單指令多數(shù)據(jù)”,SIMD)架構(gòu),可以并行地在大量數(shù)據(jù)上施加同一操作。



##多核CPU級別的并行 共享內(nèi)存的多處理器

每個處理器都能訪問整個內(nèi)存,處理器之間的通信主要通過內(nèi)存進行

圖片發(fā)自簡書App


##多核CPU級別的并行 分布式內(nèi)存的多處理器

對于分布式內(nèi)存的多處理器系統(tǒng),每個處理器都有自己的內(nèi)存,處理器之間的通信主要通過網(wǎng)絡進行

圖片發(fā)自簡書App

通過內(nèi)存通信比通過網(wǎng)絡通信更簡單更快速,所以用共享內(nèi)存編程往往更容易。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容