基于mpi的奇偶排序_并行程序设计(第2版)pdf
并行程序設計(第2版) 內(nèi)容簡介
本書系統(tǒng)介紹并行程序設計原理及應用。除介紹常用的一些算法范例,包括分治、流水、同步計算、主從及工作池,還介紹了一些常用的經(jīng)典數(shù)值和非數(shù)值算法,如排序、矩陣相乘、線性方程組求解、圖像處理中的預處理和相應的變換、搜索和優(yōu)化等。第2版新增了機群計算等使用機群的內(nèi)容,對如何打造專用和通用的機群以及設置相應的程序設計環(huán)境做了較為詳盡的介紹。章后包含大量習題,其中現(xiàn)實生活習題非常實用,既可增強學習興趣,又可提高并行程序設計技巧。
本書可作為高等院校計算機專業(yè)高年級本科生或研究生的教材,對從事高性能計算的科技工作者也是一本很有價值的參考書。
并行程序設計(第2版) 目錄
前言
作者簡介
第一部分 基本技術
第1章 并行計算機 2
1.1 對計算速度的需求 2
1.2 提高計算速度的潛力 4
1.2.1 加速系數(shù) 4
1.2.2 什么是最大的加速比 5
1.2.3 消息傳遞計算 9
1.3 并行計算機的類型 9
1.3.1 共享存儲器多處理機系統(tǒng) 10
1.3.2 消息傳遞多計算機 11
1.3.3 分布式共享存儲器 17
1.3.4 MIMD和SIMD的分類 17
1.4 機群計算 18
1.4.1 以互聯(lián)計算機作為計算平臺 18
1.4.2 機群的配置 23
1.4.3 打造“Beowulf風格”的專用機群 26
1.5 小結 27
推薦讀物 27
參考文獻 28
習題 30
第2章 消息傳遞計算 31
2.1 消息傳遞程序設計基礎 31
2.1.1 編程的選擇 31
2.1.2 進程的創(chuàng)建 31
2.1.3 消息傳遞例程 33
2.2 使用計算機機群 37
2.2.1 軟件工具 37
2.2.2 MPI 37
2.2.3 偽代碼構造 44
2.3 并行程序的評估 45
2.3.1 并行執(zhí)行時間方程式 45
2.3.2 時間復雜性 48
2.3.3 對漸近分析的評注 50
2.3.4 廣播/集中的通信時間 50
2.4 用經(jīng)驗方法進行并行程序的調(diào)試和評估 51
2.4.1 低層調(diào)試 52
2.4.2 可視化工具 52
2.4.3 調(diào)試策略 53
2.4.4 評估程序 53
2.4.5 對優(yōu)化并行代碼的評注 55
2.5 小結 55
推薦讀物 55
參考文獻 56
習題 57
第3章 易并行計算 59
3.1 理想的并行計算 59
3.2 易并行計算舉例 60
3.2.1 圖像的幾何轉換 60
3.2.2 曼德勃羅特集 64
3.2.3 蒙特卡羅法 69
3.3 小結 73
推薦讀物 73
參考文獻 73
習題 74
第4章 劃分和分治策略 79
4.1 劃分 79
4.1.1 劃分策略 79
4.1.2 分治 82
4.1.3 M路分治 86
4.2 分治技術舉例 87
4.2.1 使用桶排序法排序 87
4.2.2 數(shù)值積分 91
4.2.3 N體問題 93
4.3 小結 96
推薦讀物 97
參考文獻 97
習題 98
第5章 流水線計算 104
5.1 流水線技術 104
5.2 流水線應用的計算平臺 107
5.3 流水線程序舉例 107
5.3.1 數(shù)字相加 108
5.3.2 數(shù)的排序 110
5.3.3 生成質(zhì)數(shù) 112
5.3.4 線性方程組求解—特殊個例 114
5.4 小結 117
推薦讀物 117
參考文獻 117
習題 117
第6章 同步計算 122
6.1 同步 122
6.1.1 障柵 122
6.1.2 計數(shù)器實現(xiàn) 123
6.1.3 樹實現(xiàn) 124
6.1.4 蝶形障柵 125
6.1.5 局部同步 126
6.1.6 死鎖 126
6.2 同步計算 127
6.2.1 數(shù)據(jù)并行計算 127
6.2.2 同步迭代 129
6.3 同步迭代程序舉例 130
6.3.1 用迭代法解線性方程組 130
6.3.2 熱分布問題 135
6.3.3 細胞自動機 142
6.4 部分同步方法 143
6.5 小結 144
推薦讀物 144
參考文獻 144
習題 145
第7章 負載平衡與終止檢測 151
7.1 負載平衡 151
7.2 動態(tài)負載平衡 152
7.2.1 集中式動態(tài)負載平衡 152
7.2.2 分散式動態(tài)負載平衡 153
7.2.3 使用線形結構的負載平衡 155
7.3 分布式終止檢測算法 157
7.3.1 終止條件 157
7.3.2 使用確認消息實現(xiàn)終止 158
7.3.3 環(huán)形終止算法 158
7.3.4 固定能量分布式終止算法 160
7.4 程序舉例 160
7.4.1 最短路徑問題 160
7.4.2 圖的表示 161
7.4.3 圖的搜索 162
7.5 小結 166
推薦讀物 166
參考文獻 167
習題 168
第8章 共享存儲器程序設計 172
8.1 共享存儲器多處理機 172
8.2 說明并行性的構造 173
8.2.1 創(chuàng)建并發(fā)進程 173
8.2.2 線程 175
8.3 共享數(shù)據(jù) 178
8.3.1 創(chuàng)建共享數(shù)據(jù) 179
8.3.2 訪問共享數(shù)據(jù) 179
8.4 并行程序設計語言和構造 185
8.4.1 并行語言 185
8.4.2 并行語言構造 186
8.4.3 相關性分析 187
8.5 OpenMP 189
8.6 性能問題 193
8.6.1 共享數(shù)據(jù)的訪問 193
8.6.2 共享存儲器的同步 195
8.6.3 順序一致性 196
8.7 程序舉例 199
8.7.1 使用UNIX進程的舉例 199
8.7.2 使用Pthread的舉例 201
8.7.3 使用Java的舉例 203
8.8 小結 204
推薦讀物 205
參考文獻 205
習題 206
第9章 分布式共享存儲器系統(tǒng)及其程序設計 211
9.1 分布式共享存儲器 211
9.2 分布式共享存儲器的實現(xiàn) 212
9.2.1 軟件DSM系統(tǒng) 212
9.2.2 DSM系統(tǒng)的硬件實現(xiàn) 213
9.2.3 對共享數(shù)據(jù)的管理 214
9.2.4 基于頁面系統(tǒng)的多閱讀器/單寫入器策略 214
9.3 在DSM系統(tǒng)中實現(xiàn)一致性存儲器 214
9.4 分布式共享存儲器的程序設計原語 216
9.4.1 進程的創(chuàng)建 216
9.4.2 共享數(shù)據(jù)的創(chuàng)建 216
9.4.3 共享數(shù)據(jù)的訪問 217
9.4.4 同步訪問 217
9.4.5 改進性能的要點 217
9.5 分布式共享存儲器的程序設計 219
9.6 實現(xiàn)一個簡易的DSM系統(tǒng) 219
9.6.1 使用類和方法作為用戶接口 220
9.6.2 基本的共享變量實現(xiàn) 220
9.6.3 數(shù)據(jù)組的重疊 222
9.7 小結 224
推薦讀物 224
參考文獻 224
習題 225
第二部分 算法和應用
第10章 排序算法 230
10.1 概述 230
10.1.1 排序 230
10.1.2 可能的加速比 230
10.2 比較和交換排序算法 231
10.2.1 比較和交換 231
10.2.2 冒泡排序與奇偶互換排序 233
10.2.3 歸并排序 236
10.2.4 快速排序 237
10.2.5 奇偶歸并排序 239
10.2.6 雙調(diào)諧歸并排序 240
10.3 在專用網(wǎng)絡上排序 243
10.3.1 二維排序 243
10.3.2 在超立方體上進行快速排序 244
10.4 其他排序算法 247
10.4.1 秩排序 248
10.4.2 計數(shù)排序 249
10.4.3 基數(shù)排序 250
10.4.4 采樣排序 252
10.4.5 在機群上實現(xiàn)排序算法 253
10.5 小結 253
推薦讀物 254
參考文獻 254
習題 255
第11章 數(shù)值算法 258
11.1 矩陣回顧 258
11.1.1 矩陣相加 258
11.1.2 矩陣相乘 258
11.1.3 矩陣-向量相乘 259
11.1.4 矩陣與線性方程組的關系 259
11.2 矩陣乘法的實現(xiàn) 259
11.2.1 算法 259
11.2.2 直接實現(xiàn) 260
11.2.3 遞歸實現(xiàn) 262
11.2.4 網(wǎng)格實現(xiàn) 263
11.2.5 其他矩陣相乘方法 266
11.3 求解線性方程組 266
11.3.1 線性方程組 266
11.3.2 高斯消去法 266
11.3.3 并行實現(xiàn) 267
11.4 迭代方法 269
11.4.1 雅可比迭代 269
11.4.2 快速收斂方法 272
11.5 小結 274
推薦讀物 275
參考文獻 275
習題 276
第12章 圖像處理 279
12.1 低層圖像處理 279
12.2 點處理 280
12.3 直方圖 281
12.4 平滑、銳化和噪聲消減 281
12.4.1 平均值 281
12.4.2 中值 283
12.4.3 加權掩碼 284
12.5 邊緣檢測 285
12.5.1 梯度和幅度 285
12.5.2 邊緣檢測掩碼 286
12.6 霍夫變換 288
12.7 向頻域的變換 290
12.7.1 傅里葉級數(shù) 291
12.7.2 傅里葉變換 291
12.7.3 圖像處理中的傅里葉變換 292
12.7.4 離散傅里葉變換算法的并行化 294
12.7.5 快速傅里葉變換 296
12.8 小結 300
推薦讀物 300
參考文獻 300
習題 302
第13章 搜索和優(yōu)化 305
13.1 應用和技術 305
13.2 分支限界搜索 306
13.2.1 順序分支限界 306
13.2.2 并行分支限界 307
13.3 遺傳算法 308
13.3.1 進化算法和遺傳算法 308
13.3.2 順序遺傳算法 310
13.3.3 初始種群 310
13.3.4 選擇過程 312
13.3.5 后代的生成 312
13.3.6 變異 314
13.3.7 終止條件 314
13.3.8 并行遺傳算法 314
13.4 連續(xù)求精 317
13.5 爬山法(hill climbing) 318
13.5.1 銀行業(yè)務應用問題 319
13.5.2 爬山法在金融業(yè)務中的應用 320
13.5.3 并行化 321
13.6 小結 321
推薦讀物 321
參考文獻 322
習題 323
附錄A 基本的MPI例程 329
附錄B 基本的Pthread例程 335
附錄C OpenMP命令、庫函數(shù)以及
環(huán)境變量 339
索引 347
總結
以上是生活随笔為你收集整理的基于mpi的奇偶排序_并行程序设计(第2版)pdf的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: π是无理数证明定积分_证明圆周率是无理数
- 下一篇: 为什么那么多人黑baby.在节目里的表现