並行計算機體系結構
平行計算演算法
並行程式設計
平行計算效能評估
計算密集型需求(compute-intensive)
資料密集型需求(data-intensive)
網路密集型需求(net-intensive)
(1)系統互聯
在多處理機、多計算機或分布式系統中,不同組成部分(cpu/儲存模組、i/o裝置、網路介面等)都要通過網際網路絡彼此連線起來。
(2)靜態網際網路絡
(3)動態網際網路絡
(4)標準網際網路絡
simd(signal-instruction multiple-data)單指令資料流
mimd(multiple-instruction multiple - data)多指令多資料流
mimd包括
(1)pvp(parallel vector processor)並行向量處理機
(2)smp(symmetric multiprocessor)對稱多處理機
(3)mpp(massively parallel processor)大規模並行處理機
(4)cow(cluster of workstations)工作站機群
(5)dsm(distributed shared memory)分布式共享儲存多處理機
平行計算發展歷史出現了不同型別的並行機,包括向量機、simd計算機和mimd計算機。目前向量機和simd已經退出歷史舞台,mimd型別的並行機佔據主導地位。包括對稱多處理機、大規模並行處理機以及機群系統。
注:simd(signal-instruction multiple-data)單指令資料流
mimd(multiple-instruction multiple - data)多指令多資料流
本章從以下幾個部分介紹:
共享儲存多處理機系統;
分布式儲存多計算機系統;
機群系統;
共享儲存的對稱多處理機smp(symmetric multiprocessor)結構在現今的並行伺服器中幾乎普遍採用。
結構特性
(1)對稱性:系統中任何處理器可訪問任何儲存單元和i/o裝置;
(2)單位址空間
(3)快取記憶體及其一致性:多級快取記憶體可支援資料區域性性,而其一致性可由硬體來增強。
(4)低通訊延遲
問題:
(1)欠可靠:匯流排,儲存器或os失效都會造成系統崩潰
(2)可觀的延遲
(3)慢速增加的頻寬
(4)不可擴放性
分布式儲存的大規模並行處理機mpp(massively parallel processor)。由多個處理器組成的大型計算機系統。
機群(cluster)主要指兩種型別:一是構築高階大規模並行處理系統mpp機群;二是有lan互連而成的工作站機群cow。
機器級演算法級
程式級
本篇主要研究如何設計並行演算法
並行演算法的設計基礎
並行演算法的一般設計策略:三種並行化法、全新法、借用法
並行演算法的基本設計技術
並行演算法的一般設計過程
任何並行演算法的設計都是基於一種特定的平行計算模型,而平行計算模型是從各種具體並行機中抽象出來的。平行計算模型一般可以分為抽象計算模型和實用計算模型。
(1)基本概念
同步演算法:演算法的諸程序的執行必須相互等待的一類並行演算法
非同步演算法:演算法的諸程序的執行不必互相等待的一類並行演算法
分布演算法:是指由通訊鏈路連線的多個場點或節點,協同完成問題求解的一類並行演算法
(2)並行演算法的複雜性度量
分析並行演算法時,通常要分析如下幾個指標。
執行時間包括計算時間和同步時間
處理器數求解給定問題所用的處理器數目
平行計算的成本並行演算法執行時間與其所需的處理器數乘積
總運算量並行演算法所完成的總的運算元量
(3)同步
同步(synchronization)是在時間上強使各執行程序在某一點必須互相等待。
(4)通訊
通訊(communication)是在空間上對個併發執行的程序施行資料交換。
所謂計算模型實際上就是硬體和軟體之間的一種橋梁,使用它能夠設計分析演算法,在其上高階語言能被有效地編譯且能夠用硬體來實現。
在序列計算時馮 諾依曼機就是理想的序列計算模型,但是在平行計算時,還沒有乙個類似於馮諾依曼機的真正通用平行計算模型。目前流行的計算模型要麼過於簡單,抽象(pram);要麼過於專用(如網際網路模型和vlsi模型)
(1)pram模型(parallel random access machine)並行隨機取存器。也稱之為共享儲存的simd模型。
(2)非同步pram模型
(3)bsp模型(bulk synchronous parallel)
(4)logp模型
對bsp和logp的對比:
bsp把所有的計算和通訊視為乙個整體行為而不是乙個單獨的程序和通訊的個體行為。採用各程序延遲通訊的辦法,將諸訊息組合成乙個盡可能大的通訊實體施行選路傳輸,這就是所謂的整體大同步。簡化了演算法的設計和分析,但是犧牲了執行時間,因為延遲通訊意味著所有程序均必須等待最慢者。改進方法就是採用自己同步,慢的放到乙個子集,快的放到乙個子集。就變成了logp
設計並行演算法一般有三章策略
(1)檢測和開拓現有序列演算法中的固有並行性而直接將其並行化
(2)從問題描述本身出發,根據問題的固有屬性從頭開始設計乙個全新的並行演算法,通常演算法最高效
(3)借用已有的並行演算法使之可求解新的一類問題
科學和工程問題中的數值計算問題,依據其數值分析數學原理而產生了很多廣泛使用的序列演算法,在設計這類問題時大都採用序列演算法直接並行化的辦法,這樣如演算法的穩定性、收斂性等複雜問題均無需考慮
對於有些演算法恐難直接進行並行化,此時從問題描述出發尋求新的途徑設計新的並行演算法。
所謂借用法是指借用已知的某類問題求解演算法來求解另一類問題。
本章介紹一些基本的設計技術可供參考使用。大思路就是將一原始問題分成若干個部分,然後各部分由相應的處理器同時執行。
最基本的設計技術:均勻劃分技術、方根劃分、對數劃分、功能劃分技術。
流水線技術是並行處理最基本的技術之一。
任務劃分partitioning
通訊分析communication
任務組合agglomeration
平行計算起源與基本概念
1.平行計算硬體出現 2002年以前,晶元上的電晶體整合密度指數上公升,效能保持1.5倍增長,但是漸漸的隨著電晶體密度 上公升,空氣散熱已經無法解決散熱問題,晶元製造商提出與其製造單塊計算效能更快的晶元 不如在單塊晶元上面整合更多的計算核心,由此出現多個cpu的晶元 多核。上圖為典型的計算機系統硬體...
Dos基本概念學習
dos基本概念 2010年12月30日 星期二 04 58 p.m.早期的計算機系統通常由 處理器 cpu 記憶體 外部裝置等部件組成,使用者往往獨佔了計算機的所有資源.例如計算機通過印表機列印時,其它裝置都在等待,這樣計算機的使用效率很低,使用者等待的時間很長.隨著計算機的不斷發展,尤其是計算機各...
JWT基本概念學習
json web token 縮寫 jwt 是目前最流行的跨域認證解決方案。jwt 是為了在網路應用環境間傳遞宣告而執行的一種基於json的開放標準 rfc 7519 該token被設計為緊湊且安全的,特別適用於分布式站點的單點登入 sso 場景。jwt的宣告一般被用來在身份提供者和服務提供者間傳遞...