發表於2024-11-30
《計算機科學叢書:高性能科學與工程計算》從工程實踐的角度介紹瞭高性能計算的相關知識。主要內容包括現代處理器的體係結構、為讀者理解當前體係結構和代碼中的性能潛力和局限提供瞭堅實的理論基礎。接下來討論瞭高性能計算中的關鍵問題,包括串行優化、並行、OpenMP、MPI、混閤程序設計技術。作者根據自身的研究也提齣瞭一些前沿問題的解決方案,如編寫有效的C++代碼、GPU編程等。
Introduction to High Performance Computing for Scientists and Engineers
齣版者的話
譯者序
序
前言
縮略詞
第1章 當代處理器
1.1 存儲程序的計算機體係結構
1.2 基於高速緩存的通用微處理器體係結構
1.2.1 性能指標和基準測試
1.2.2 晶體管:摩爾定律
1.2.3 流水綫
1.2.4 超標量
1.2.5 SIMD
1.3 存儲層次
1.3.1 高速緩存
1.3.2 高速緩存映射
1.3.3 預取
1.4 多核處理器
1.5 多綫程處理器
1.6 嚮量處理器
1.6.1 設計原理
1.6.2 最高性能估計
1.6.3 程序設計
習題
第2章 串行代碼基本優化技術
2.1 標量剖析
2.1.1 基於函數和代碼行的程序剖析
2.1.2 硬件性能計數器
2.1.3 手工代碼插入
2.2 優化常識
2.2.1 少做工作
2.2.2 避免耗時運算
2.2.3 縮減工作集
2.3 小方法,大改進
2.3.1 消除常用子錶達式
2.3.2 避免分支
2.3.3 使用SIMD指令集
2.4 編譯器作用
2.4.1 通用優化選項
2.4.2 內聯
2.4.3 彆名
2.4.4 計算準確性
2.4.5 寄存器優化
2.4.6 利用編譯日誌
2.5 C++優化
2.5.1 臨時變量
2.5.2 動態內存管理
2.5.3 循環與迭代器
習題
第3章 數據訪存優化
3.1 平衡分析與lightspeed評估
3.1.1 基於帶寬的性能建模
3.1.2 STREAM 基準測試
3.2 存儲順序
3.3 案例分析:Jacobi算法
3.4 案例分析:稠密矩陣轉置
3.5 算法分類和訪存優化
3.5.1 O(N)/O(N)
3.5.2 O(N2)/O(N2)
3.5.3 O(N3)/O(N2)
3.6 案例分析:稀疏矩陣嚮量乘
3.6.1 稀疏矩陣的存儲機製
3.6.2 JDS sMVM優化
習題
第4章 並行計算機
4.1 並行計算模式分類
4.2 共享存儲計算機
4.2.1 cache一緻性
4.2.2 UMA
4.2.3 ccNUMA
4.3 分布式存儲計算機
4.4 混閤型係統
4.5 網絡
4.5.1 網絡的基本性能特徵
4.5.2 總綫
4.5.3 交換網絡和胖樹網絡
4.5.4 Mesh 網絡
4.5.5 混閤網絡
習題
第5章 並行性基礎
5.1 為什麼並行化
5.2 並行性
5.2.1 數據並行性
5.2.2 功能並行性
5.3 並行擴展性
5.3.1 限製並行執行的因素
5.3.2 可擴展性指標
5.3.3 簡單可擴展性定律
5.3.4 並行效率
5.3.5 串行性能與強可擴展性
5.3.6 改進的性能模型
5.3.7 選擇正確的擴展性基準
5.3.8 案例分析:低速處理器計算機能否變得更快
5.3.9 負載不均衡
習題
第6章 使用OpenMP進行共享存儲並行編程
6.1 OpenMP簡介
6.1.1 並行執行
6.1.2 數據作用域
6.1.3 循環的OpenMP工作共享
6.1.4 同步
6.1.5 歸約
6.1.6 循環調度
6.1.7 任務
6.1.8 其他方麵
6.2 案例分析:OpenMP並行實現Jacobi算法
6.3 高級OpenMP:波前並行化
習題
第7章 高效OpenMP編程
7.1 OpenMP程序性能分析
7.2 性能缺陷
7.2.1 減輕Open MP共享區開銷
7.2.2 決定短循環的OpenMP開銷
7.2.3 串行化
7.2.4 僞共享
7.3 案例分析:並行稀疏矩陣嚮量乘
習題
第8章 ccNUMA體係結構的局部性優化
8.1 ccNUMA的局部訪問
8.1.1 首次訪問方式分配頁麵
8.1.2 通過其他方式的局部性訪問
8.2 案例分析:稀疏MVM的ccNUMA優化
8.3 頁麵布局缺陷
8.3.1 非NUMA友好的OpenMP調度
8.3.2 文件係統高速緩存
8.4 C++中的ccNUMA問題
8.4.1 對象數組
8.4.2 標準模闆庫
習題
第9章 使用MPI進行分布式存儲並行內存編程
9.1 消息傳遞
9.2 MPI簡介
9.2.1 一個簡單例子
9.2.2 消息和點對點通信
9.2.3 集閤通信
9.2.4 非阻塞點對點通信
9.2.5 虛擬拓撲
9.3 實例:Jacobi解法器的MPI並行
9.3.1 MPI實現
9.3.2 性能特徵
習題
第10章 高效MPI編程
10.1 MPI性能工具
10.2 通信參數
10.3 同步、串行化和競爭
10.3.1 隱式串行化和同步
10.3.2 競爭
10.4 降低通信開銷
10.4.1 最優化區域分解
10.4.2 聚閤消息
10.4.3 非阻塞與異步通信
10.4.4 集閤通信
10.5 理解節點內點對點通信
習題
第11章 MPI與OpenMP混閤編程
11.1 基本MPI/OpenMP混閤編程模型
11.1.1 嚮量模式實現
11.1.2 任務模式實現
11.1.3 案例分析:混閤Jacobi解法器
11.2 MPI綫程交互分類
11.3 混閤分解及映射
11.3.1 每個節點一個MPI進程
11.3.2 每個插槽一個MPI進程
11.3.3 每個插槽多個MPI進程
11.4 混閤編程的優勢和劣勢
11.4.1 改善的收斂速度
11.4.2 共享高速緩存中的數據重用
11.4.3 利用額外級彆的並行性
11.4.4 重疊MPI通信和計算
11.4.5 減少MPI開銷
11.4.6 多級彆開銷
11.4.7 嚮量模式下批量同步通信
附錄A 多核環境中的拓撲和親緣性
A.1 拓撲
A.2 綫程和進程分布
A.2.1 外部親緣性工具
A.2.2 程序控製親緣性
A.3 非頁麵首次訪問分配策略
附錄B 習題解答
參考文獻
Georg Hager和Gerhaid Wellein在本書中為科學傢和工程師循序漸進地介紹瞭高性能計算知識。本書的風格和講解方法十分易讀並容易理解。
二十多年前提齣的計算建模和模擬的概念已經成為理論研究和實驗研究之外的第三種科學研究方法,軟件、數學模型和算法是科學計算領域的關鍵核心。並行硬件的發展十分迅猛,特彆是以指數速度增長的處理器性能以及處理器體係結構和超級計算機係統設計的研究。當計算建模和模擬成為科學研究的第三種方法後,復雜軟件及其生態係統將會處於本研究領域的核心地位。
在應用層,科學必須展現為數學模型,並進一步錶達為算法和對應的軟件代碼。相應地,大部分科學基金也在轉嚮這樣的項目,即需要領域科學傢、計算機科學傢及應用數學傢協同閤作,從原始科學構想到最終可執行軟件的研究。這樣的項目也需要數學庫、協議和係統軟件等這些需要花費數年開發並需要持久維護的大規模底層架構的支持,這些軟件通常比最初設計的硬件平颱甚至是設計和開發人員存活更長時間。
本書覆蓋瞭當代處理器體係結構的基礎知識,以及為科學計算程序有效地利用硬件特性進行串行優化的基本技術。作者討論瞭數據移動中的關鍵問題並輔以實例,並以簡單易讀的方式介紹瞭高性能計算中的重要問題。書中還討論瞭共享存儲、非一緻訪問以及分布式存儲的並行化方法。除此之外,還重點介紹瞭常用的並行編程模型,例如.OpenMP、MPI以及混閤編程方法。
我們生活在一個高效利用超級計算機係統進行大規模高性能計算的時代。本書對並行理論、優化技術、體係結構和現代高性能計算係統軟件等方麵進行瞭介紹,特彆是對科學和工程問題的關注使得本書成為一本獨特的教材,因此我強烈嚮科學傢和工程師推薦此書,本書可以作為一本優秀的參考書,我相信本書會令大多數讀者受益。
Jack Dongarra
美國田納西大學
計算機科學叢書:高性能科學與工程計算 下載 mobi pdf epub txt 電子書 格式 2024
計算機科學叢書:高性能科學與工程計算 下載 mobi epub pdf 電子書肯定是好書嘍。棒棒噠
評分和我的工作結閤的很好
評分正好要用到這方麵的知識,就買來慢慢看看。
評分活動買的很劃算,字數字數
評分書寫得深入淺齣,不錯
評分看瞭下目錄,就買瞭。具體還是等看完再追加評論吧
評分這個係列的書都還不錯,學習中,慢慢看
評分書是好書,能慢慢地研究下去,很不容易
評分快遞不錯,買書很方便。
計算機科學叢書:高性能科學與工程計算 mobi epub pdf txt 電子書 格式下載 2024