《并行計算與程序設計(普通高等院校十二五規劃 教材)》對并行計算的理論知識和并行程序設計方法 進行了系統的介紹,包括并行計算基本概念、并行計 算機基礎、并行計算模型、并行計算性能評測、并行 算法設計基礎、OpenMP多線程并行程序設計、MPI消 息傳遞并行程序設計、Windows線程庫并行程序設計 、Java多線程并行程序設計等內容。
本書集作者多年的教學經驗編寫而成,語言通俗 易懂,內容安排合理,講解深入淺出。本書在介紹并 行計算理論知識的基礎上,特別注重并行程序設計的 實踐方法及實用性。書中含有大量精心設計并調試通 過的程序實例,方便讀者參考。
本書適合作為普通高等院校計算機科學與技術專 業、軟件工程專業以及信息類相關專業本科生和研究 生的教材,也可作為社會培訓教材或軟件開發人員的 參考用書。
第1章 概述
1.1 實例
1.1.1 求和
1.1.2 泡茶問題
1.1.3 圖書館新書上架
1.1.4 天氣預報
1.1.5 美國HPCC計劃
1.1.6 教務管理系統
1.1.7 地球物理石油勘探數據處理系統
1.2 并行計算基礎知識
1.2.1 并行計算的重要性
1.2.2 并行計算的定義、并行計算機系統及軟件
1.2.3 并行計算的應用分類
1.2.4 并行設計的方法
1.2.5 應用系統的并行性
1.2.6 并行計算的研究內容
1.3 并行程序設計策略和模型
1.3.1 并行程序設計策略
1.3.2 并行程序設計模型
1.4 相關概念
1.4.1 順序、并發與并行
1.4.2 進程和線程
1.4.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 超線程技術
2.3.4 基于多核的軟件開發
2.3.5 虛擬化技術
2.4 GPU技術
2.4.1 簡介
2.4.2 GPU與并行計算
第3章 并行計算模型
3.1 并行計算模型概述
3.1.1 串行計算模型與并行計算模型
3.1.2 并行計算模型與并行算法
3.1.3 并行計算模型與并行系統中其他模型的關系
3.2 PRAM模型
3.2.1 基本PRAM模型
3.2.2 實例
3.3 BSP模型
3.3.1 BSP模型原理
3.3.2 實例
3.4 LogP模型
3.4.1 LogP模型原理
3.4.2 實例
3.5 并行計算模型比較
3.5.1 PRAM模型和LogP模型的比較
3.5.2 BSP模型和Logp模型的比較
第4章 并行計算性能評測
4.1 基本概念
4.1.1 運行時間
4.1.2 問題規模
4.1.3 額外開銷函數
4.2 并行系統的性能分析
4.2.1 加速比
4.2.2 效率
4.2.3 開銷
4.2.4 粒度和數據映射對性能的影響
4.2.5 實例
4.3 并行系統的可擴展性度量
4.3.1 可擴展性
4.3.2 度量指標
4.3.3 實例
第5章 并行算法設計基礎
5.1 并行算法設計方法
5.1.1 基本方法
5.1.2 實例
5.2 并行算法設計過程
5.2.1 PCAM設計方法學
5.2.2 劃分
5.2.3 通信
5.2.4 組合
5.2.5 映射
5.3 并行算法設計技術
第6章 OpenMP多線程并行程序設計
6.1 OpenMP編程基礎
6.1.1 OpenMP多線程編程模型
6.1.2 OpenMP程序結構
6.1.3 使用Microsoft Visual Studio.NET編寫OpenMP程序.
6.2 編譯指導語句
6.2.1 并行域結構一一parallel指令
6.2.2 共享任務結構
6.2.3 同步結構
6.2.4 數據處理子句
6.3 運行時庫函數
6.3.1 基本函數
6.3.2 運行時庫函數的互斥鎖支持
6.4 環境變量
6.5 實例
6.5.1 求和
6.5.2 數值積分
6.6 OpenMF多線程程序性能分析
6.6.1 并行額外開銷
6.6.2 線程同步帶來的開銷
6.6.3 負載均衡
6.6.4 OpenMP中的任務調度
第7章 MPI消息傳遞并行程序設計
7.1 MPI消息傳遞接口
7.1.1 簡介
7.1.2 MPI程序特點
7.2 典型MPI實現MPICH
7.2.1 簡介
7.2.2 MPICH的安裝和配置
7.3 MPI編程基礎
7.3.1 簡單的MPI程序示例
7.3.2 MPI程序的四個基本函數
7.3.3 統計時間
7.3.4 錯誤管理
7.4 MPI的點對點通信
7.4.1 點對點通信的例子
7.4.2 MPI_SEND0函數
7.4.3 MPI_RECVO函數
7.4.4 消息管理七要素
7.4.5 非阻塞通信
7.5 MPI群集通信
7.5.1 一對多群集通信函數
7.5.2 多對一群集通信函數
7.5.3 多對多群集通信函數
7.5.4 同步函數
7.6 實例
7.6.1 求和
7.6.2 數值積分
第8章 WindOWS線程庫并行程序設計
8.1 Windows線程庫
8.2 Win32 API多線程程序設計
8.2.1 Win32 API線程操作基本函數
8.2.2 Win32 API線程間通信函數
8.3 MFC線程庫
8.3.1 MFC線程操作基本函數
8.3.2 MFC同步類
8.4. .NET。Framework線程庫
8.4.1 .NET線程基本操作
8.4.2 .NET線程同步
8.5 實例
8.5.1 求和
8.5.2 數值積分
第9章 Java多線程并行程序設計
9.1 線程
9.1.1 基本概念
9.1.2 線程的狀態與生命周期
9.1.3 線程調度與優先級
9.2 Runnable接口與Thread類
9.2.1 Runnable接口
9.2.2 Thread類
9.3 多線程的實現
9.3.1 創建Thread類的子類
9.3.2 實現Runnable接口
9.3.3 兩種方法的比較
9.4 線程的同步與死鎖
9.4.1 線程同步
9.4.2 線程死鎖
9.5 實例
9.5.1 求和
9.5.2 數值積分
參考文獻