平行計算起源與基本概念

2021-07-24 22:49:11 字數 1534 閱讀 7107

1.平行計算硬體出現

2023年以前,晶元上的電晶體整合密度指數上公升,效能保持1.5倍增長,但是漸漸的隨著電晶體密度

上公升,空氣散熱已經無法解決散熱問題,晶元製造商提出與其製造單塊計算效能更快的晶元

不如在單塊晶元上面整合更多的計算核心,由此出現多個cpu的晶元---多核。

上圖為典型的計算機系統硬體結構圖,主要看cpu(central processing unit)部分,由pc(程式計數器),暫存器檔案,alu(計算邏輯單元),匯流排結構組成(bus inte***ce)組成,多核即可看成是有多個cpu通過系統匯流排(system bus)與i/o橋相連。該圖會在以後的部落格中用來說明imid,smid,mimd的區別。

2.序列程式轉化為並行程式的方法

主要包括兩種:任務並行和資料並行

任務並行:不同的cpu可能執行不同的任務,處理相同的資料

資料並行:每個核心執行相同的命令,處理不一樣的資料

舉乙個例子:有20份卷子,乙份卷子有5道題,現在由5個老師來批改

方案一:每個老師批改其中一道題,每個老師都要改20份卷子

方案二:每個老師分4份卷子,老師負責改完自己拿到的卷子的全部題目

把老師看成cpu,卷子作為要處理的資料,則方案一為任務並行,方案二為資料並行。

3.平行計算系統與程式設計

並行系統分為:共享記憶體系統和分布式記憶體系統

共享記憶體系統中每個cpu都能對記憶體進行修改,主要限制是記憶體不足

分布式記憶體系統中每個核有自己的記憶體,主要限制是網路通訊慢

程式設計:訊息傳遞介面(mpi 是c的擴充套件介面),posix執行緒(pthreads 是c的擴充套件介面)和openmp。

其中mpi適合於分布式記憶體系統,posix執行緒與openmp適合共享記憶體系統。

4.併發,並行,分布式的區別

併發:同一時間有多個程式同時執行

並行:同乙個程式由多個任務緊密協作完成

分布式:乙個程式需要與其他程式協作完成

三個概念並不是相對的關係,是三個有交集的概念,分布式是並行的一種形式,而並行機器的事務是併發的。

5,mpi,openmpi與pthread的區別

mpi適用於分布式記憶體程式設計(基本單元->程序)

openmpi與pthread適用於共享記憶體程式設計(基本單元->執行緒)

openmpi編寫更加方便,但是難以實現底層執行緒的通訊。

pthread變成相對繁雜,但是實現底層執行緒通訊更為方便。

R與平行計算

本文在creative commons許可證下發布 什麼是平行計算?平行計算,準確地說應該包括高效能計算機和並行軟體兩個方面。不過,近年來隨著個人pc機,廉價機群,以及各種加速卡 nvidia gpu,intel xeon phi,fpga 的快速發展,現在個人電腦已經完全可以和過去的高效能計算機相...

平行計算基本概念學習以及知識體系的建立

並行計算機體系結構 平行計算演算法 並行程式設計 平行計算效能評估 計算密集型需求 compute intensive 資料密集型需求 data intensive 網路密集型需求 net intensive 1 系統互聯 在多處理機 多計算機或分布式系統中,不同組成部分 cpu 儲存模組 i o裝...

密碼學的起源與基本概念

一 一些古老的加密方法 1.隱寫術 將秘密的訊息隱藏在其他訊息中 最常見的是 墨水 傳送者用洋蔥或牛奶在紙上書寫秘密訊息,接收者在紙的背面稍稍加熱,看到密文。2.希臘的波利比阿的方格12 3451 abcd e2fg hijk3 lmno p4qr stu5 vwxy z明文ap ple密文 113...