第1章 並行計算機體繫結構
1.1 並行計算
1.2 計算機體繫結構分類方法
1.2.1 弗林分類
1.2.2 SIMD繫統結構
l.2.3 MIMD繫統結構
1.3 共享存儲器繫統
1.3.1 共享存儲器繫統結構
1.3.2 高速緩存一致性
1.3.3 共享存儲器編程模式
1.4 消息傳遞繫統
1.4.1 消息傳遞繫統結構
1.4.2 互聯網絡
1.4.3 交換機制
1.4.4 消息傳遞繫統編程模式
1.5 本章小結
習題
第2章 多核構架
2.1 多核技術
2.2 多核芯片
2.3 多核中的並行性
2.4 多核處理器的Cache結構
2.5 本章小結
習題
第3章 並行模式與並行編程語言
3.1 進程與線程
3.2 通信
3.2.1 同步與互斥
3.2.2 聚集
3.3 並行編程風範
3.4 並行編程模型與並行語言
3.6 共享存儲器編程
3.6.1 ANSI x3H5共享存儲器模型
3.6.2 POSIX線程模型
3.6.3 OpenMP標準
3.7 消息傳遞編程
3.7.1 PVM並行編程
3.7.2 MPI並行編程
3.8 數據並行編程
3.9 性能分析
3.9.1 加速比
3.9.2 Amdahl定律
3.10 本章小結
習題
第4章 MPI並行程序設計
4.1 MPI基本編程
4.2 點對點通信
4.2.1 阻塞通信
4.2.2 非阻塞通信
4.3 MPI預定義數據類型
4.4 通信模式
4.4.1 標準通信模式
4.4.2 緩存通信模式
4.4.3 同步通信模式
4.4.4 就緒通信模式
4.5 集合通信
4.5.1 組通信的消息通信功能
4.5.2 廣播
4.5.3 收集
4.5.4 散發
4.5.5 組收集
4.5.6 全互換
4.5.7 同步
4.5.8 歸約
4.5.9 組歸約
4.5.10 掃描
4.5.1l 用戶自定義歸約操作
4.6 對等模式和主從模式
4.7 非阻塞通信
4.7.1 非阻塞發送和接收
4.7.2 非阻塞通信的完成
4.7.3 非阻塞通信對像
4.7.4 消息到達的檢查
4.8 重復非阻塞通信
4.9 進程組的管理
4.10 通信組的管理
4.1 l虛擬進程拓撲
4.11.1 笛卡爾拓撲
4.11.2 圖拓撲
4.12 本章小結
習題
第5章 POSIX並行程序設計
5.1 進程、線程和Pthreads
5.2 創建線程
5.3 線程同步
5.3.1 臨界區
5.3.2 互斥鎖
5.3.3 條件變量
5.3.4 信號量
5.3.5 路障
5.3.6 讀寫鎖
5.4 生產者消費者問題
5.4.1 使用條件變量解決生產者消費者問題
5.4.2 使用信號量解決生產者消費者問題
5.5 POSIX線程優先級
5.6 多進程編程
5.6.1 在進程之間共享內存
5.6.2 在進程之間共享信號量
5.6.3 消息隊列
5.6.4 管道
5.7 本章小結
習題
第6章 OpenMP並行程序設計
6.1 OpenMP編程基礎
6.2 並行域
6.2 .1 parallel
6.2.2 for指令
6.2.3 循環依賴
6.2.4 sections結構
6.2.5 simd結構
6.2.6 single結構
6.3 數據處理環境
6.3.1 private子句
6.3.2 firstprivate子句
6.3.3 lastprivate子句
6.3.4 threadprivate指令
6.3.5 shared子句
6.3.6 reduction子句
6.3.7 if子句
6.3.8 copyin子句
6.3.9 copyprivate子句
6.3.10 default子句
6.4 線程同步
6.4.1 critical指令
6.4.2 atomic指令
6.4.3 barrier指令
6.4.4 nowait子句
6.4.5 master指令
6.4.6 ordered指令
6.4.7 flush指令
6.4.8 互斥鎖函數
6.5 任務調度
6.5.1 static調度
6.5.2 dynamic分配
6.5.3 guided調度
6.5.4 auto調度
6.5.5 runtime調度
6.6 本章小結
習題
第7章 JaVa並行程序設計
7.l線程
7.1.1 創建線程
7.1.2 線程優先級
7.1.3 線程的狀態
7.I.4 Daemon線程
7.1.5 中斷
7.1.6 線程池
7.2 線程間通信
7.2.1 volatile和synchronized關鍵字
7.2.2 wait、notify和notifyAll方法
7.2.3 管道機制
7.3 Java線程同步
7.3.1 鎖
7.3.2 讀寫鎖
7.3.3 CountDownLatch類
7.3.4 路障
7.3.5 條件變量
7.3.6 信號量
7.4 Fork/Join
7.5 本章小結
習題
第8章 Windows多線程並行程序設計
8.1 創建線程
8.2 Windows線程同步
8.2.1 臨界區
8.2.2 互斥鎖
8.2.3 輕量級讀寫鎖
8.2.4 信號量
8.2.5 條件變量
8.2.6 事件
8.3 管道機制
8.4 變量的原子更新
8.5 線程優先級
8.6 本章小結
習題
參考文獻
附錄A MPI函數調用
附錄B OpenMP指令和庫函數
附錄C POSIX線程庫函數
附錄D Java多線程常用方法
附錄E Windows多線程常用方法