【定價】¥22.00
【作者】張林波 遲學斌 莫則堯 李若
【叢 書 名】 高等學校信息與計算科學專業系列教材
【出 版 社】清華大學出版社
【書 號】 7302127603
【出版日期】2006 年7月
【開 本】 140×203
【頁 碼】 487
【版 次】1-1
【所屬分類】 計算機 > 計算機科學理論與基礎知識 > 並行計算
教材 > 研究生/本科/專科教材 > 工學 > 計算機
教材 > 計算機教材 > 本科/研究生 > 計算機專業 > 計算機基礎課程 > 算法與數學基礎
內容簡介
本書是並行計算,特別是分散式並行計算環境和訊息傳遞並行編程的入門教材,目的是促進並行計算技術在我國的套用。書中介紹了並行計算的基礎知識、Linux/UNIX的基本使用、基於Linux機群的並行計算平台的建立、並行算法的設計和MPI訊息傳遞並行編程的基本概念與方法。書中還提供了一批典型科學計算問題的並行算法與程式設計實例,介紹了一些當前國際上流行的科學計算軟體工具及平台。本書力求從簡單入手,循序漸進,讀者在逐步學習使用的過程中學會利用並行計算解決自己學習和工作中的問題。本書側重介紹高性能計算的實用技術,可作為信息技術與計算專業的基礎課教材,也可作為其他理工科非計算機專業的並行計算課程教材。此外,本書還可作為有關Linux機群建造、MPI訊息傳遞並行算法設計與編程及常用高性能科學計算軟體的參考書使用。
目錄介紹
第1部分 基礎知識1第1章 預備知識3
1.1 並行計算的主要研究目標和內容3
1.1.1 什麼是並行計算4
1.1.2 並行計算的主要研究目標和內容4
1.1.3 推動並行計算發展的主要動力6
1.2 並行計算機發展歷史9
1.2.1 套用需求的推動作用9
1.2.2 20世紀70年代10
1.2.3 20世紀80年代早期10
1.2.4 20世紀80年代中期10
1.2.5 20世紀80年代後期11
1.2.6 20世紀90年代早期12
1.2.7 20世紀90年代中後期13
1.2.8 2000年到當前17
1.3 並行計算機體系結構20
1.3.1 結點21
1.3.2 並行計算機網際網路拓撲結構22
1.3.3 多級存儲體系結構33
1.3.4 訪存模型40
1.3.5 並行計算機分類41
1.4 作業系統與並行編程環境46
1.4.1 進程、進程間通信與執行緒47
1.4.2 並行編程環境51
1.5 並行算法56
1.5.1 並行算法的分類56
1.5.2 並行算法的發展階段57
習題59
第2章 Linux作業系統與程式開發環境60
2.1 Linux安裝與使用入門60
2.1.1 Linux系統的安裝60
2.1.2 基本使用與管理64
2.2 Linux基本命令和概念74
2.2.1 一些基本命令74
2.2.2 shell94
2.2.3 文本檔案處理122
2.3 程式開發環境131
2.3.1 第一個程式 (C程式)131
2.3.2 FORTRAN程式的開發141
2.3.3 軟體開發146
第3章 訊息傳遞編程接口MPI164
3.1 MPICH安裝與程式編譯、運行、調試165
3.1.1 單機環境下MPICH的安裝165
3.1.2 機群環境下MPICH的安裝171
3.2 MPI編程177
3.2.1 MPI編程的基本概念177
3.2.2 程式基本結構179
3.2.3 MPI的原始數據類型181
3.2.4 點對點通信函式與通信模式181
3.2.5 聚合通信與同步187
3.2.6 自定義數據類型189
3.2.7 進程組與通信器194
3.2.8 進程拓撲結構195
3.2.9 檔案輸入輸出196
3.3 MPI程式主要結構203
習題207
第4章 程式性能評價與最佳化210
4.1 並行程式執行時間210
4.2 並行加速比與效率211
4.3 並行程式性能評價方法212
4.3.1 浮點峰值性能與實際浮點性能212
4.3.2 數值效率和並行效率213
4.4 可擴展分析216
4.5 程式性能最佳化217
4.5.1 串列程式性能最佳化217
4.5.2 並行程式性能最佳化223
習題225
第2部分 並行算法設計與實現實例229
第5章 自適應數值積分231
5.1 梯形積分公式231
5.2 局部二分自適應區間加密232
5.3 串列程式235
5.4 基於簡單區域分解的並行算法239
5.5 基於主從模式的並行算法243
5.5.1 基於非阻塞通信的並行程式249
5.5.2 基於散發/收集通信的並行程式252
5.6 基於動態負載調度的並行算法256
習題259
第6章 矩陣並行計算261
6.1 並行矩陣乘法263
6.1.1 串列矩陣乘法263
6.1.2 行列劃分算法263
6.1.3 行行劃分算法264
6.1.4 列列劃分算法265
6.1.5 列行劃分算法266
6.1.6 Cannon算法267
6.2 線性代數方程組並行求解方法268
6.2.1 分散式系統的並行LU分解算法269
6.2.2 三角方程組的並行解法271
6.3 對稱正定線性方程組的並行解法273
6.3.1 cholesky分解列格式的並行計算273
6.3.2 雙曲變換Cholesky分解275
6.3.3 修正的雙曲變換Cholesky分解277
6.4 三對角方程組的並行解法279
6.5 經典疊代算法的並行化282
6.5.1 Jacobi疊代法282
6.5.2 Causs-Seidel疊代法283
6.6 異步並行疊代法284
6.6.1 異步並行疊代法基礎284
6.6.2 線性疊代的一般收斂性結果285
6.7 代數特徵值問題的並行求解286
6.7.1 對稱三對角矩陣特徵值問題287
6.7.2 householder變換289
6.7.3 化對稱矩陣為三對角矩陣289
習題290
第7章 FFT算法與套用291
7.1 一維串列FFT 算法292
7.2 二維串列FFT算法297
7.3 並行FFT算法298
7.4 FFT套用示例305
7.4.1 多項式相乘305
7.4.2 循環矩陣方程組的求解306
第8章 二維Poisson方程308
8.1 並行算法設計310
8.2 MPI並行程式設計312
8.3 並行效率分析317
8.4 MPI並行程式的改進319
習題323
第9章 二維熱傳導方程325
9.1 空間離散與區域劃分325
9.2 時間離散:顯式格式326
9.3 時間離散:隱式/半隱式格式331
9.4 時間離散:ADI方法332
9.5 分塊流水線方法334
9.5.1 模型問題334
9.5.2 模型問題的並行效率分析337
9.5.3 二維熱傳導方程的分塊流水線算法程式實例340
習題351
第3部分 附 錄353
附錄A 並行程式開發工具與高性能程式庫355
A.1 BLAS355
A.1.1 Level 1 BLAS357
A.1.2 Level 2 BLAS357
A.1.3 Level 3 BLAS359
A.2 lapack360
A.2.1 LAPACK軟體包組成361
A.2.2 LAPACK程式文檔364
A.2.3 LAPACK參數設計364
A.2.4 LAPACK使用示例367
A.3 ScaLAPACK376
A.3.1 ScaLAPACK體系結構377
A.3.2 ScaLAPACK程式介紹380
A.3.3 ScaLAPACK安裝384
A.3.4 ScaLAPACK編程指南388
A.4 FFTW392
A.4.1 復型變換393
A.4.2 實型變換396
A.4.3 並行FFTW397
A.4.4 FFTW計算實例397
A.5 PETSc400
A.5.1 PETSc的系統結構401
A.5.2 PETSc的基本特色402
A.5.3 PETSc的基本功能404
A.5.4 PETSc計算實例406
A.5.5 PETSc小結419
附錄B MPI參考手冊421
B.1 MPI函式、變數速查表421
B.2 MPI預定義的變數及類型426
B.2.1 C語言MPI原始數據類型426
B.2.2 FORTRAN 77 語言MPI原始數據類型427
B.2.3 預定義的通信器與進程組428
B.2.4 用於歸約函式的預定義的二目運算428
B.2.5 C變數類型及預定義函式429
B.2.6 空對象430
B.2.7 MPI常量430
B.2.8 進程拓撲結構431
B.2.9 通信狀態信息431
B.2.10 錯誤碼432
B.2.11 MPI-2用於檔案輸入輸出的常量與類型432
B.3 初始化、退出與錯誤處理函式434
B.4 點對點通信函式436
B.4.1 阻塞型通信函式436
B.4.2 非阻塞型通信函式438
B.4.3 持久通信函式442
B.5 數據類型與打包函數444
B.6 同步與聚合通信函式448
B.7 進程組與通信器操作453
B.7.1 進程組操作453
B.7.2 域內通信器操作455
B.7.3 進程拓撲結構457
B.7.4 域間通信器操作462
B.8 時間函式462
B.9 MPI-2檔案輸入輸出函式463
參考文獻475
MPI函式、變數索引479
名詞索引483