並行程式設計:概念與實踐

並行程式設計:概念與實踐

《並行程式設計:概念與實踐》是2020年機械工業出版社出版的圖書,作者是[德] 貝蒂爾·施密特(Bertil Schmidt)。

基本介紹

  • 中文名:並行程式設計:概念與實踐
  • 作者:[德] 貝蒂爾·施密特(Bertil Schmidt)
  • 出版社:機械工業出版社
  • ISBN:9787111656661
內容簡介,圖書目錄,

內容簡介

本書由德國約翰內斯·古騰堡大學並行和分散式架構團隊撰寫,對並行編程的高級主題進行了深入討論,除了涵蓋基礎概念外,還講授了共享記憶體和分散式記憶體體系結構的實用編程技巧。作者提供了一套進行自動代碼評估的開源系統,可方便地訪問並行計算資源,這也使得本書特別適合於課堂教學。

圖書目錄

譯者序
前言
致謝
第1章 緒論 1
11 一個有趣的例子及其分析 2
12 並行計算基礎 10
121 分散式記憶體系統 10
122 共享記憶體系統 11
123 並行程式設計需考慮的因素 13
13 HPC動態和排名 15
14 附加練習 17
第2章 理論背景 19
21 PRAM 20
211 PRAM變體 21
212 PRAM上的並行前綴計算 22
213 PRAM上稀疏數組的壓縮算法 24
22 網路拓撲 25
23 Amdahl定律和Gustafson定律 29
24 Foster的並行算法設計方法學 34
25 附加練習 37
參考文獻 40
第3章 現代體系結構 41
31 存儲層次 42
311 馮·諾依曼瓶頸 42
312 高速緩衝存儲器 43
313 快取算法 44
314 最佳化快取訪問 45
315 高速快取一致性 48
316 虛假共享 50
317 並發多執行緒技術和預取技術 50
318 展望 51
32 並行性的層次 51
321 Flynn分類法 51
322 SIMD概念 53
323 通用微處理器上的向量化 54
324 結構體數組和數組結構體 57
325 展望 63
33 附加練習 63
參考文獻 67
第4章 C++多執行緒編程 68
41 多執行緒編程簡介 69
411 多執行緒編程和多進程編程的區別 69
412 派生和併入執行緒 69
413 我們的第一個多執行緒程式 71
42 處理返回值 73
421 傳統方法 74
422 使用promise和future的現代方法 75
423 異步方式 80
43 基於靜態分發的調度機制 82
431 串列程式 83
432 執行緒的區塊分發 87
433 執行緒的循環分發 90
434 虛假共享 91
435 執行緒的塊循環分發 93
44 處理負載不平衡 95
441 靜態調度 99
442 動態塊循環分發 101
45 用條件變數通知執行緒 104
451 為一個睡覺的學生建模 105
452 使用條件變數 107
453 使用future和promise單發同步 108
46 隱式可數集合上的並行化 110
461 隱式可數集合 111
462 執行緒池用例 112
463 一個簡單執行緒池的實現 114
47 附加練習 119
參考文獻 121
第5章 高級C++11多執行緒編程 122
51 無鎖編程 122
511 原子計數 123
512 非基本原子數據類型 124
513 利用比較交換以原子方式並行化最大值歸約 126
514 任意原子操作 129
515 ABA問題 132
52 工作共享執行緒池 133
521 工作共享執行緒池的用例 133
522 工作共享的實現 135
53 並行圖搜尋 137
531 二元背包問題 138
532 串列實現 139
533 並行實現 144
54 展望 146
55 附加練習 148
參考文獻 149
第6章 OpenMP 150
61 OpenMP簡介 151
611 OpenMP簡史 151
612 基礎 151
62 parallel for制導語句 153
621 向量加法 154
622 變數共享和私有化 157
623 矩陣向量乘法 160
63 基本的並行歸約 162
631 最近鄰分類 162
632 手寫數字數據集MNIST 163
633 完全配對距離計算的理論視角 164
634 完全配對計算的實現 165
635 並行標籤預測 168
636 性能評測 169
64 不平衡循環調度 171
641 對稱性引起的負載失衡 172
642 內積計算實現 173
643 性能評測 174
65 高級歸約 175
651 MNIST數據集上的SOFTMAX回歸分類器 175
652 定製歸約操作符 183
653 OpenMP高級歸約 187
66 任務並行 189
661 樹遍歷 190
662 循環中生成任務 193
67 SIMD向量化 193
671 數據依賴 195
672 向量化感知函式 196
68 展望 196
69 附加練習 197
參考文獻 202
第7章 統一計算設備架構 203
71 CUDA簡介 204
72 支持CUDA的GPU硬體架構 206
721 主機與設備之間的互連 206
722 顯存和峰值寬度 207
723 計算資源的組織 207
73 記憶體訪問模式 211
731 均值名人臉的計算 212
732 計算中心化的數據矩陣 218
733 計算協方差矩陣 221
734 計算特徵臉 229
74 記憶體層次結構 232
741 問題簡介 233
742 串列DTW的線性記憶體算法 237
743 線性記憶體DTW的一個初始CUDA移植 243
744 共享記憶體中的波前鬆弛 248
745 並發調度和bank衝突 253
746 紋理記憶體和常量記憶體 254
75 最佳化準則 257
76 附加練習 258
參考文獻 259
第8章 高級CUDA編程 261
81 warp內聯函式和原子操作 261
811 分段並行歸約 262
812 全局並行歸約 265
813 任意原子操作 267
814 展望 269
82 利用多塊GPU和流 269
821 牛頓疊代 269
822 利用多塊GPU 272
823 通信和計算交叉 274
824 多塊GPU上的流式計算 278
83 展望 280
831 統一記憶體 280
832 動態並行性 281
833 協作組 281
834 張量核心 281
835 GPU集群上的分散式計算 282
84 附加練習 282
參考文獻 284
第9章 MPI 286
91 MPI簡介 286
92 基本概念 288
93 點到點通信 289
94 非阻塞通信 292

相關詞條

熱門詞條

聯絡我們