第1章 动机和历史
1.1 概述
1.2 现代科学方法
1.3 超级计算的进化
1.4 现代并行计算机
1.4.1 CosmicCube并行计算机
1.4.2 商品化的并行计算机
1.4.3 Beowulf系统
1.4.4 先进战略计算计划
1.5 寻找并行性
1.5.1 数据相关图
1.5.2 数据并行性
1.5.3 功能并行性
1.5.4 流水线
1.5.5 计算规模的考虑因素
1.6 数据聚类
1.7 为并行计算机编程
1.7.1 扩展编译器
1.7.2 扩展串行编程语言
1.7.3 增加并行编程层
1.7.4 创造一个并行语言
1.7.5 现状
1.8 本章小结
1.9 主要术语
1.10 参考文献
1.11 练习题
第2章 并行体系结构
2.1 概述
2.2 互连网络
2.2.1 共享介质与开关介质
2.2.2 开关网络的拓扑结构
2.2.3 二维网格形网络
2.2.4 二叉树形网络
2.2.5 超树形网络
2.2.6 蝶形网络
2.2.7 超立方体网络
2.2.8 混洗-交换网络
2.2.9 小结
2.3 阵列处理机
2.3.1 体系结构与数据并行
2.3.2 阵列处理机的性能
2.3.3 处理器互连网络
2.3.4 处理器的启动与阻塞
2.3.5 其他体系结构特点
2.3.6 阵列处理机的缺点
2.4 多处理器
2.4.1 集中式多处理器
2.4.2 分布式多处理器
2.5 多计算机
2.5.1 非对称多计算机
2.5.2 对称多计算机
2.5.3 怎样的模型对商用集群来说是最佳的
2.5.4 集群与工作站网络之间的差异
2.6 弗林分类法
2.6.1 SISD
2.6.2 SIMD
2.6.3 MISD
2.6.4 MIMD
2.7 本章小结
2.8 主要术语
2.9 参考文献
2.10 练习题
第3章 并行算法设计
3.1 概述
3.2 任务/通道模型
3.3 Foster的设计方法论
3.3.1 划分
3.3.2 通信
3.3.3 聚集
3.3.4 映射
3.4 边界值问题
3.4.1 简介
3.4.2 划分
3.4.3 通信
3.4.4 聚集与映射
3.4.5 分析
3.5 找出最大值
3.5.1 简介
3.5.2 划分
3.5.3 通信
3.5.4 聚集与映射
3.5.5 分析
3.6 n-body问题
3.6.1 简介
3.6.2 划分
3.6.3 通信
3.6.4 聚集与映射
3.6.5 分析
3.7 增加数据输入
3.7.1 简介
3.7.2 通信
3.7.3 分析
3.8 本章小结
3.9 主要术语
3.10 参考文献
3.11 练习题
第4章 消息传递编程
第5章 Eratosthenes筛法
第6章 Floyd算法
第7章 性能分析
第8章 矩阵向量乘法
第9章 文档分类
第10章 蒙特卡洛法
第11章 矩阵乘法
第12章 线性方程组求解
第13章 有限差分方法
第14章 排序
第15章 快速傅立叶变换
第16章 组合搜索
第17章 共享存储编程
第18章 融合OpenMP和MPI
附录A Mn函数
附录B 工具函数
附录C 调试MPI程序
附录D 复数回顾
附录E OpenMP函数
参考文献