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...