高性能計算 現代繫統與應用實踐
作 者: (美)托馬斯·斯特林(Thomas Sterling) 等 著 黃智瀕 等 譯
定 價: 149
出?版?社: 機械工業出版社
出版日期: 2020年03月01日
頁 數: 571
裝 幀: 平裝
ISBN: 9787111645795
●譯者序
序言
前言
致謝
章緒論1
1.1高性能計算學科2
1.1.1定義3
1.1.2應用程序3
1.1.3性能和指標3
1.1.4高性能計算繫統4
1.1.5超算問題6
1.1.6應用編程7
1.2超算對科學、社會和安全的影響8
1.2.1促進欺詐檢測和市場數據分析8
1.2.2發現、管理和分配石油和天然氣8
1.2.3加快制造業的創新9
1.2.4個性化醫藥和藥物發現9
1.2.5預測自然災害和了解氣候變化10
1.3超級計算機剖析11
1.4計算機性能13
1.4.1性能13
1.4.2峰值性能13
1.4.3持續性能14
1.4.4可擴展性15
1.4.5性能退化15
1.4.6性能提升17
1.5超級計算機簡史17
1.5.1個階段——利用機械技術的自動計算機18
1.5.2第二個階段——真空管時代的馮·諾依曼架構19
1.5.3第三個階段——指令級並行23
1.5.4第四個階段——向量處理和積分24
1.5.5第五個階段——單指令多數據陣列27
1.5.6第六個階段——順序處理器的通信和超大規模集成電路27
1.5.7第七個階段——多核和千萬億次30
1.5.8新數字時代和超越摩爾定律30
1.6作為學生的指南和工具31
1.7本章小結及成果32
1.8練習33
參考文獻34
第2章HPC架構:繫統和技術35
2.1引言35
2.2HPC架構的關鍵特性36
2.2.1速度36
2.2.2並行性36
2.2.3效率37
2.2.4功率37
2.2.5可靠性38
2.2.6可編程性38
2.3並行架構家族——弗林分類法39
2.4支持技術41
2.4.1技術階段41
2.4.2技術的角色44
2.4.3數字邏輯45
2.4.4存儲技術47
2.5馮·諾依曼順序處理器50
2.6向量和流水線52
2.6.1流水線並行53
2.6.2向量處理55
2.7單指令多數據陣列56
2.7.1單指令多數據架構56
2.7.2阿姆達定律57
2.8多處理器59
2.8.1共享內存多處理器60
2.8.2大規模並行處理器62
2.8.3商品集群繫統62
2.9異構計算機結構63
2.10本章小結及成果64
2.11練習65
參考文獻67
第3章商品集群68
3.1引言68
3.1.1商品集群的定義68
3.1.2集群的動機和理由69
3.1.素70
3.1.4對500強名單的影響70
3.1.5簡史71
3.1.6章節指南73
3.2Beowulf集群項目74
3.3硬件架構76
3.3.1節點76
3.3.2繫統區域網絡77
3.3.3輔助存儲78
3.3.4商業繫統摘要78
3.4編程接口78
3.4.1高性能計算程序設計語言78
3.4.2並行編程模式80
3.5軟件環境80
3.5.1操作繫統80
3.5.2資源管理82
3.5.3調試器83
3.5.4性能分析84
3.5.5可視化85
3.6基本使用方法86
3.6.1登錄86
3.6.2用戶空間和目錄繫統87
3.6.3包的配置和構建92
3.6.4編譯器和編譯93
3.6.5運行應用程序94
3.7本章小結及成果94
3.8練習95
參考文獻95
第4章基準測試程序97
4.1引言97
4.2HPC基準測試程序的關鍵屬性100
4.3標準的HPC社區的基準測試程序101
4.4高度並行計算的Linpack102
4.5HPC挑戰基準測試套件104
4.6高性能共軛梯度106
4.7NAS並行基準測試程序110
4.8Graph500111
4.9小型應用作為基準測試程序115
4.10本章小結及成果116
4.11練習117
參考文獻118
第5章資源管理的基礎119
5.1資源管理119
5.2SLURM的基礎123
5.2.1架構概述123
5.2.2工作負載的組織124
5.2.3SLURM調度125
5.2.4SLURM命令概要127
5.2.5SLURM作業腳本141
5.2.6SLURM速查表146
5.3便攜式批量繫統基礎147
5.3.1PBS概述147
5.3.2PBS架構148
5.3.3PBS命令概要148
5.3.4PBS作業腳本158
5.3.5PBS速查表160
5.4本章小結及成果161
5.5練習162
參考文獻163
第6章對稱多處理器架構164
6.1引言164
6.2架構概覽165
6.3阿姆達定律168
6.4處理器核心的架構171
6.4.1執行流水線172
6.4.2指令級並行173
6.4.3分支預測173
6.4.4直通174
6.4.5保留站174
6.4.6多線程174
6.5存儲層次175
6.5.1數據重用和局部性175
6.5.2存儲層次結構176
6.5.3存儲繫統的性能178
6.6PCI總線180
6.7外部I/O接口184
6.7.1網絡接口控制器184
6.7.2串行不錯技術附件185
6.7.3JTAG187
6.7.4通用串行總線189
6.8本章小結及成果190
6.9練習191
參考文獻192
第7章OpenMP的基礎194
7.1引言194
7.2OpenMP編程模型概覽195
7.2.1線程並行195
7.2.2線程變量197
7.2.3運行時庫與環境變量197
7.3並行線程和循環199
7.3.1並行線程199
7.3.2私有200
7.3.3並行“for”語句200
7.3.4塊206
7.4同步208
7.4.1臨界同步指令208
7.4.2master指令209
7.4.3barrier指令210
7.4.4single指令210
7.5歸納210
7.6本章小結及成果212
7.7練習213
參考文獻214
……
第8章MPI的基礎215
第9章並行算法245
0章庫265
1章操作繫統294
2章可視化308
3章性能監控326
4章調試360
5章加速器架構386
6章OpenACC的基礎412
7章大容量存儲器434
8章文件繫統468
9章MapReduce495
第20章檢查點技術505
第21章下一步和未來發展517
附錄AC語言的基礎532
附錄BLinux的基礎547
內容簡介
高性能計算涉及硬件架構、操作繫統、編程工具和軟件算法等跨學科的知識,學習曲線較長。本書從中提煉出核心知識及技能,為初學者構建了一條易於理解的學習路徑,夯實基礎的同時注重培養實戰能力。書中首先介紹基礎知識,包括執行模型、體繫結構、性能度量、商品集群等;接著講解吞吐量計算、共享內存計算、消息傳遞計算和加速GPU計算,圍繞這些模型的概念、細節及編程實踐展開討論;然後引導讀者構建應用程序,涵蓋並行算法、庫、可視化及性能優化等;很後,考慮真實繫統環境,討論了操作繫統、大容量存儲、文件繫統及MapReduce算法等。書中通過大量示例來說明實際操作方法,這些均可在並行計算機上執行,以幫助讀者更好地理解方法背後的原因。