分散式計算課程補充筆記 part 1
▶ 高效能運算機發展歷程
真空管電子計算機,向量機(Vector Machine),並行向量處理機(Parallel Vector Processors,PVP),分散式並行機(Parallel Processors,PP),對稱多處理機(Symmetric Multiprocessors,SMP),分散式共享並行機(Distributed Share Memory,DSM),大規模並行機(Massively Parallel Processors, MPP),大規模加速並行機(Massively Parallel Processors with Accelerators, MPPA)
▶ 計算機體系架構
● 指令集架構 (Instruction Set Architecture, ISA):主要指處理器所支援的機器語言、資料型別、字長、記憶體與暫存器型別等,例子:x86, alpha, MIPS, RISC-V
● 微架構 (Micro-architecture, µarch):主要指 ISA 的一種具體的處理器實現,比如處理器核數、快取大小、流水線長度等,例子:Intel Xeon E5 處理器
● 系統架構 (System Architecture):主要指與處理器不直接相關的其他部分,比如訪存、I/O、網路、軟體等
■ Harvard 架構:將指令 (即程式) 與資料儲存在不同的記憶體中。
■ Princeton 架構:將指令 (即程式) 與資料共同儲存在記憶體。僅具有單一的線性記憶體,指令與資料僅在使用時才隱式區分;總效能往往受限於記憶體的讀寫匯流排所能提供的延遲和頻寬。
● 提高處理器效能的其他重要手段
■ 簡化指令 (Simplified Instruction):複雜指令集計算機 (Complex Instruction Set Computer, CISC);精簡指令集計算機 (Reduced Instruction Set Computer, RISC);
■ 指令級並行 (Instruction Level Parallelism, ILP):超標量 (superscalar):同時譯碼多個指令;流水線 (pipeline):多個指令流水執行 (流水線寬度、深度);亂序執行 (out-of-order execution):設法改變指令執行順序。
■ 資料級並行 (Data Level Parallelism, DLP):向量化 (vectorization):單指令多資料 (如:乘加指令)。
● 福林分類。從兩個正交的維度:指令流(Intruction Stream)和資料流(Data Stream),其中每個維度有 Single 和 Multiple 兩種可能選擇。產生SISD,SIMD,MISD,MIMD
● UMA ( Uniform Memory Access) :一致記憶體訪問架構
● ccNUMA (cache-coherent Nonuniform Memory Access) :快取一致性的非一致記憶體訪問架構
● 叢集 (cluster):計算節點 (compute node) 之間通過高速網路互聯,計算節點內部可以是任意型別的單核或共享記憶體架構
▶ 阿姆達爾定律:記 α ∈ [0,1] 是某任務無法並行處理部分所佔的比例. 假設該任務的工作量固定,則對任意 n 個處理器,相比於 1 個處理器,能夠取得的加速比滿足:S(n) < 1/α▶ 古斯塔夫定律:記 α ∈ [0,1] 是某任務無法並行處理部分所佔的比例. 假設該任務的工作量可以隨著處理器個數縮放,從而保持處理時間固定. 則對任意 n 個處理器,相比於 1 個處理器,能夠取得的加速比 S ′ (n) 不存在上界
▶ 孫-倪定律 (Sun-Ni’s Law):記 α ∈ [0,1] 是某任務無法並行處理部分所佔的比例. 假設該任務的可並行部分隨著處理器個數 n 按照因子 G(n) 縮放,則對任意 n,相比於 1 個處理器,能夠取得的加速比 S ∗ (n) 滿足
● 孫-倪定律的應用