并行计算──结构·算法·编程(第3版)
定价:¥56.00
作者: 陈国良
出版社:高等教育出版社
普通高等教育“十一五”国家级规划教材
- 高等教育出版社
- 9787040337426
- 3版
- 46242562-0
- 异16开
- 570
- 工学
- 计算机类
- 计算机科学与技术
- 本科 研究生及以上
内容简介
本书是并行计算系列丛书之开篇, 它以并行计算为主题, 围绕并行计算机、并行算法和并行程序设计展开讨论, 强调融并行计算机体系结构、数值与非数值并行算法设计以及并行程序设计为一体, 着力构建并行计算“结构—算法—编程—应用”完整的学科体系与系统的课程框架, 在着重讨论并行计算学科基础核心内容的同时, 也力图反映本学科的新近成就和发展趋势。
全书内容按照“并行结构—并行算法—并行编程—并行应用”的整体框架进行规划, 分为四篇。第一篇为并行计算硬件平台: 并行计算机, 包括并行计算与计算机科学、并行计算机结构模型、系统互连与基本通信操作、典型并行计算机系统介绍和并行计算性能评测。第二篇为并行计算理论基础: 并行算法, 分为上篇和下篇, 其中上篇为并行算法设计, 包括并行算法的基础知识与并行计算模型、并行算法基本设计策略、常用设计技术和一般设计过程
目录
目录
前辅文
第一篇 并行计算硬件平台:并行计算机
第一章 并行计算与并行计算机结构模型
1.1 计算与计算机科学
1.1.1 科学发现的第三支柱:计算科学
1.1.2 计算科学与计算机科学
*1.2 单处理机与指令级并行
1.2.1 加快CPU执行速度
1.2.2 减少存储延迟
1.2.3 改善输入和输出以及网络性能
*1.3 多核处理器与线程级并行
1.3.1 单核处理器结构设计
1.3.2 多核处理器结构设计
1.3.3 多核处理器实例
1.4 并行计算机体系结构
1.4.1 并行计算机结构模型
1.4.2 并行计算机访存模型
*1.4.3 并行计算机存储组织
1.5 并行计算概述
1.5.1 关于并行计算
*1.5.2 并行计算研究现状
1.6 小结和导读
习题
第二章 并行计算机系统互连与基本通信操作
2.1 并行计算机互连网络
2.1.1 系统互连
2.1.2 静态互连网络
2.1.3 动态互连网络
2.1.4 标准互连网络
2.2 选路方法与开关技术
2.2.1 选路方法
2.2.2 开关技术
2.3 单一信包一到一传输
2.4 一到多播送
2.4.1 使用SF进行一到多播送
2.4.2 使用CT进行一到多播送
2.5 多到多播送
2.5.1 使用SF进行多到多播送
2.5.2 使用CT进行多到多播送
2.6 小结和导读
习题
第三章 典型并行计算机系统介绍
3.1 共享存储多处理机系统
3.1.1 对称多处理机SMP结构特性
*3.1.2 SGI Challenge系统
3.2 分布存储多计算机系统
3.2.1 大规模并行处理机MPP结构特性
*3.2.2 ASCI Option Red MPP系统
3.3 分布共享存储计算机系统
3.3.1 分布共享存储计算机系统特性
*3.3.2 SGI Origin 2000系统
3.4 机群系统
3.4.1 大规模并行处理系统MPP机群SP
3.4.2 工作站机群COW
*3.4.3 Berkeley的NOW计划
3.5 小结和导读
习题
第四章 并行计算性能评测
4.1 并行计算机的一些基本性能指标
4.1.1 CPU和存储器的某些基本性能指标
4.1.2 通信开销
4.1.3 机器的成本、价格与性能价格比
4.2 加速比性能定律
4.2.1 Amdahl定律
4.2.2 Gustafson定律
4.2.3 Sun和Ni定律
4.2.4 有关加速的讨论
4.3 可扩放性评测标准
4.3.1 并行计算的可扩放性
4.3.2 等效率度量标准
4.3.3 等速度度量标准
4.3.4 平均延迟度量标准
4.3.5 有关可扩放性标准的讨论
*4.4 基准测试程序
4.4.1 基本的测试程序
4.4.2 数学库测试程序
4.4.3 并行测试程序
4.5 小结和导读
习题
第二篇 并行计算理论基础:并行算法(上)——并行算法设计
第五章 并行算法与并行计算模型
*5.1 并行算法的基础知识
5.1.1 并行算法的定义和分类
5.1.2 并行算法的表达
5.1.3 并行算法的复杂性度量
5.1.4 并行算法中的同步与通信
5.2 并行计算模型
5.2.1 PRAM模型
5.2.2 异步PRAM模型
5.2.3 BSP模型
5.2.4 LogP模型
5.2.5 对BSP和LogP的评注
5.2.6 层次存储模型
5.2.7 分层并行计算模型
5.3 小结和导读
习题
第六章 并行算法基本设计策略
6.1 串行算法的直接并行化
6.1.1 设计策略描述
6.1.2 快排序算法的并行化
6.2 从问题描述开始设计并行算法
6.2.1 串匹配算法
*6.2.2 KMP串行串匹配算法
6.2.3 并行串匹配算法的设计思路
6.3 借用已有算法求解新问题
6.3.1 设计策略描述
6.3.2 利用矩阵乘法求所有点对间最短路径
6.4 小结和导读
习题
第七章 并行算法常用设计技术
7.1 划分设计技术
7.1.1 均匀划分技术
7.1.2 方根划分技术
7.1.3 对数划分技术
7.1.4 功能划分技术
7.2 分治设计技术
7.2.1 双调归并网络
7.2.2 凸壳问题
7.3 平衡树设计技术
7.3.1 求取最大值
7.3.2 计算前缀和
7.4 倍增设计技术
7.4.1 表序问题的计算
7.4.2 求森林的根
7.5 流水线设计技术
7.5.1 一维脉动阵列上的DFT计算
7.5.2 一维脉动阵列上的卷积计算
7.6 小结和导读
习题
第八章 并行算法一般设计过程
8.1 PCAM设计方法学
8.2 划分
8.2.1 域分解
8.2.2 功能分解
8.2.3 划分判据
8.3 通信
8.3.1 局部通信
8.3.2 全局通信
8.3.3 非结构化、动态和异步通信
8.3.4 通信判据
8.4 组合
8.4.1 增加粒度
8.4.2 保持灵活性和减少软件工程成本
8.4.3 组合判据
8.5 映射
8.5.1 负载平衡算法
8.5.2 任务调度算法
8.5.3 映射判据
8.6 小结和导读
习题
第二篇 并行计算理论基础:并行算法(下)——并行数值算法
第九章 稠密矩阵运算
9.1 矩阵的划分
9.1.1 带状划分
9.1.2 棋盘划分
9.2 矩阵转置
9.2.1 棋盘划分的矩阵转置
9.2.2 带状划分的矩阵转置
9.3 矩阵向量乘法
9.3.1 带状划分的矩阵向量乘法
9.3.2 棋盘划分的矩阵向量乘法
9.4 矩阵乘法
9.4.1 简单并行分块乘法
9.4.2 Cannon乘法
9.4.3 Fox乘法
9.4.4 DNS乘法
9.5 小结和导读
习题
第十章 线性方程组求解
10.1 三角形方程组的求解
10.1.1 基本术语
10.1.2 上三角方程组的求解
10.2 三对角方程组的求解
10.2.1 三对角方程组直接求解法
10.2.2 三对角方程组奇偶归约求解法
10.3 稠密线性方程组的求解
10.3.1 有回代的高斯消去法
10.3.2 无回代的高斯约旦法
10.3.3 迭代求解的高斯赛德尔法
10.4 稀疏线性方程组的求解
10.4.1 稀疏矩阵的存储方式
10.4.2 雅可比迭代法
10.4.3 高斯赛德尔迭代法
10.4.4 超松弛迭代法
10.4.5 多重网格法
10.4.6 共轭梯度法
10.5 小结和导读
习题
第十一章 快速傅里叶变换
11.1 离散傅氏变换
*11.1.1 预备知识
11.1.2 离散傅里叶变换
11.1.3 离散傅里叶逆变换
11.1.4 离散傅氏变换的蝶式计算
11.2 快速傅氏变换串行算法
*11.2.1 串行FFT迭代算法
11.2.2 串行FFT递归算法
11.3 并行FFT算法
11.3.1 SIMDMC2上FFT算法
11.3.2 SIMDBF上FFT算法
11.3.3 SIMDCC上FFT算法
11.3.4 MIMDDM上FFT算法
11.4 小结和导读
习题
第十二章 数值计算的基本支撑技术
12.1 网格生成
12.1.1 网格生成过程与方法
12.1.2 并行网格生成
*12.1.3 网格生成有关软件和网址
12.2 图的划分
12.2.1 负载平衡与图的划分
12.2.2 图划分算法
12.2.3 多约束图划分问题及算法
12.3 稀疏线性系统求解器
12.3.1 稀疏矩阵的来源和结构
12.3.2 稀疏线性系统直接方法
12.3.3 稀疏线性系统迭代方法
12.3.4 预条件子
*12.3.5 稀疏线性代数库
12.4 算法和软件
12.4.1 算法和软件的可重用
12.4.2 算法和软件的可移植
12.4.3 算法和软件的可扩放
12.5 科学计算可视化
12.5.1 科学计算可视化的基本概念
12.5.2 并行科学计算可视化
12.6 小结和导读
习题
第三篇 并行计算软件支撑:并行编程
第十三章 并行程序设计基础
13.1 并行程序设计概述
13.1.1 串行程序设计与并行程序设计
13.1.2 并行程序设计环境与工具
13.1.3 并行程序设计方法
13.1.4 并行编程风范
13.2 进程和线程
13.2.1 进程和线程的基本概念
13.2.2 进程和线程的并行执行
13.3 同步和通信
13.3.1 同步
13.3.2 通信
13.4 单核多线程与多核多线程
13.4.1 单处理器核上并发程序设计
13.4.2 多执行核上并行程序设计
13.5 影响多线程性能的常见问题
13.5.1 线程过多
13.5.2 数据竞争
13.5.3 死锁
13.5.4 Cache伪共享
13.6 并行程序设计模型
13.6.1 计算π样本程序
13.6.2 隐式并行模型
13.6.3 数据并行模型
13.6.4 消息传递模型
13.6.5 共享变量模型
13.6.6 并行程序设计模型比较
13.7 小结和导读
习题
第十四章 共享存储系统并行编程
14.1 基于共享变量的共享存储并行编程
14.1.1 共享存储并行编程的基本问题
14.1.2 共享存储编程环境
14.2 POSIX线程
14.2.1 POSIX线程模型
14.2.2 使用Pthreads编写计算π的程序实例
14.3 OpenMP并行编程
14.3.1 OpenMP概述
14.3.2 OpenMP编程风格
14.3.3 共享任务结构
14.3.4 OpenMP其他编程要素
14.3.5 OpenMP计算实例
14.4 小结和导读
习题
附录 OpenMP运行库例程
第十五章 分布存储系统并行编程
15.1 基于消息传递的并行编程
15.1.1 SPMD并行程序
15.1.2 MPMD并行程序
15.2 MPI并行编程
15.2.1 MPI概述
15.2.2 最基本的MPI
15.2.3 MPI消息
15.2.4 点对点通信
15.2.5 群集通信
15.2.6 计算π的MPI程序
15.3 基于数据并行的并行编程
15.3.1 数据并行模型的特点
15.3.2 数据并行编程的基本问题
15.4 HPF并行编程
15.4.1 HPF概述
15.4.2 HPF编程简介
15.4.3 数据映射
15.4.4 数据并行结构
15.4.5 HPF语言的过程
15.4.6 高斯消去法的HPF程序
15.5 小结和导读
习题
附录一 MPI函数的C语言说明
附录二 MPI函数的FORTRAN语言说明
第十六章 并行程序设计环境与工具
*16.1 软件工具与环境
16.1.1 编码工具与软件工程工具
16.1.2 集成工具与环境
16.2 并行编译器
16.2.1 编译及其并行化
16.2.2 相关分析
16.2.3 代码优化
16.2.4 代码生成
16.3 并行程序调试
16.3.1 并行程序调试的方法与步骤
16.3.2 并行程序的调试技术
16.4 并行程序性能分析
16.4.1 并行程序的性能预测
16.4.2 并行程序的性能监控
16.4.3 并行程序性能分析工具
16.4.4 并行程序的性能可视化
16.5 图形化并行程序集成开发环境
16.5.1 图形应用开发环境GRADE的组成
16.5.2 GRADE中开发并行程序过程
16.5.3 基于模式的可视化并行编程环境CO2P3S
16.6 小结和导读
习题
附录篇 并行计算发展动力:并行应用
附录A 并行应用相关知识
A.1 应用需求
A.2 应用领域
A.3 应用实例
A.4 应用须知
附录B 应用综合练习:大气模型的并行算法设计
B.1 背景知识
B.2 设计分析
附录C 数值计算软件包和工具
C.1 高性能程序库
C.1.1 BLAS库
C.1.2 LAPACK库
C.1.3 ScaLAPACK库
C.2 软件包和工具
C.2.1 PETSc
C.2.2 FFTW
C.2.3 HPSEPS
C.2.4 Hypre
C.2.5 MUMPS
C.2.6 ParMETIS
C.2.7 Trilions
C.2.8 TAO
C.2.9 SUNDIALS
C.2.10 SLEPC
附录D 应用实例一:机群系统上三维傅里叶变换
D.1 问题背景
D.2 机群系统
D.3 三维傅里叶变换一般并行算法
D.4 改进的三维傅里叶变换并行算法
D.5 应用实例
D.6 编程实现
D.7 实验比较
附录E 应用实例二:多核系统上并行图像特征提取
E.1 问题背景
E.2 多核平台
E.3 图像特征提取的并行算法
E.4 编程实现
E.5 实验比较
附录F 应用实例三:个人高性能计算机上水平井射孔渗流计算
F.1 问题背景
F.2 并行计算方法
F.3 并行编程概述
F.4 KD50I平台
F.5 应用结果
索引
算法索引
表格索引
示范程序索引
专业术语索引
参考文献
前辅文
第一篇 并行计算硬件平台:并行计算机
第一章 并行计算与并行计算机结构模型
1.1 计算与计算机科学
1.1.1 科学发现的第三支柱:计算科学
1.1.2 计算科学与计算机科学
*1.2 单处理机与指令级并行
1.2.1 加快CPU执行速度
1.2.2 减少存储延迟
1.2.3 改善输入和输出以及网络性能
*1.3 多核处理器与线程级并行
1.3.1 单核处理器结构设计
1.3.2 多核处理器结构设计
1.3.3 多核处理器实例
1.4 并行计算机体系结构
1.4.1 并行计算机结构模型
1.4.2 并行计算机访存模型
*1.4.3 并行计算机存储组织
1.5 并行计算概述
1.5.1 关于并行计算
*1.5.2 并行计算研究现状
1.6 小结和导读
习题
第二章 并行计算机系统互连与基本通信操作
2.1 并行计算机互连网络
2.1.1 系统互连
2.1.2 静态互连网络
2.1.3 动态互连网络
2.1.4 标准互连网络
2.2 选路方法与开关技术
2.2.1 选路方法
2.2.2 开关技术
2.3 单一信包一到一传输
2.4 一到多播送
2.4.1 使用SF进行一到多播送
2.4.2 使用CT进行一到多播送
2.5 多到多播送
2.5.1 使用SF进行多到多播送
2.5.2 使用CT进行多到多播送
2.6 小结和导读
习题
第三章 典型并行计算机系统介绍
3.1 共享存储多处理机系统
3.1.1 对称多处理机SMP结构特性
*3.1.2 SGI Challenge系统
3.2 分布存储多计算机系统
3.2.1 大规模并行处理机MPP结构特性
*3.2.2 ASCI Option Red MPP系统
3.3 分布共享存储计算机系统
3.3.1 分布共享存储计算机系统特性
*3.3.2 SGI Origin 2000系统
3.4 机群系统
3.4.1 大规模并行处理系统MPP机群SP
3.4.2 工作站机群COW
*3.4.3 Berkeley的NOW计划
3.5 小结和导读
习题
第四章 并行计算性能评测
4.1 并行计算机的一些基本性能指标
4.1.1 CPU和存储器的某些基本性能指标
4.1.2 通信开销
4.1.3 机器的成本、价格与性能价格比
4.2 加速比性能定律
4.2.1 Amdahl定律
4.2.2 Gustafson定律
4.2.3 Sun和Ni定律
4.2.4 有关加速的讨论
4.3 可扩放性评测标准
4.3.1 并行计算的可扩放性
4.3.2 等效率度量标准
4.3.3 等速度度量标准
4.3.4 平均延迟度量标准
4.3.5 有关可扩放性标准的讨论
*4.4 基准测试程序
4.4.1 基本的测试程序
4.4.2 数学库测试程序
4.4.3 并行测试程序
4.5 小结和导读
习题
第二篇 并行计算理论基础:并行算法(上)——并行算法设计
第五章 并行算法与并行计算模型
*5.1 并行算法的基础知识
5.1.1 并行算法的定义和分类
5.1.2 并行算法的表达
5.1.3 并行算法的复杂性度量
5.1.4 并行算法中的同步与通信
5.2 并行计算模型
5.2.1 PRAM模型
5.2.2 异步PRAM模型
5.2.3 BSP模型
5.2.4 LogP模型
5.2.5 对BSP和LogP的评注
5.2.6 层次存储模型
5.2.7 分层并行计算模型
5.3 小结和导读
习题
第六章 并行算法基本设计策略
6.1 串行算法的直接并行化
6.1.1 设计策略描述
6.1.2 快排序算法的并行化
6.2 从问题描述开始设计并行算法
6.2.1 串匹配算法
*6.2.2 KMP串行串匹配算法
6.2.3 并行串匹配算法的设计思路
6.3 借用已有算法求解新问题
6.3.1 设计策略描述
6.3.2 利用矩阵乘法求所有点对间最短路径
6.4 小结和导读
习题
第七章 并行算法常用设计技术
7.1 划分设计技术
7.1.1 均匀划分技术
7.1.2 方根划分技术
7.1.3 对数划分技术
7.1.4 功能划分技术
7.2 分治设计技术
7.2.1 双调归并网络
7.2.2 凸壳问题
7.3 平衡树设计技术
7.3.1 求取最大值
7.3.2 计算前缀和
7.4 倍增设计技术
7.4.1 表序问题的计算
7.4.2 求森林的根
7.5 流水线设计技术
7.5.1 一维脉动阵列上的DFT计算
7.5.2 一维脉动阵列上的卷积计算
7.6 小结和导读
习题
第八章 并行算法一般设计过程
8.1 PCAM设计方法学
8.2 划分
8.2.1 域分解
8.2.2 功能分解
8.2.3 划分判据
8.3 通信
8.3.1 局部通信
8.3.2 全局通信
8.3.3 非结构化、动态和异步通信
8.3.4 通信判据
8.4 组合
8.4.1 增加粒度
8.4.2 保持灵活性和减少软件工程成本
8.4.3 组合判据
8.5 映射
8.5.1 负载平衡算法
8.5.2 任务调度算法
8.5.3 映射判据
8.6 小结和导读
习题
第二篇 并行计算理论基础:并行算法(下)——并行数值算法
第九章 稠密矩阵运算
9.1 矩阵的划分
9.1.1 带状划分
9.1.2 棋盘划分
9.2 矩阵转置
9.2.1 棋盘划分的矩阵转置
9.2.2 带状划分的矩阵转置
9.3 矩阵向量乘法
9.3.1 带状划分的矩阵向量乘法
9.3.2 棋盘划分的矩阵向量乘法
9.4 矩阵乘法
9.4.1 简单并行分块乘法
9.4.2 Cannon乘法
9.4.3 Fox乘法
9.4.4 DNS乘法
9.5 小结和导读
习题
第十章 线性方程组求解
10.1 三角形方程组的求解
10.1.1 基本术语
10.1.2 上三角方程组的求解
10.2 三对角方程组的求解
10.2.1 三对角方程组直接求解法
10.2.2 三对角方程组奇偶归约求解法
10.3 稠密线性方程组的求解
10.3.1 有回代的高斯消去法
10.3.2 无回代的高斯约旦法
10.3.3 迭代求解的高斯赛德尔法
10.4 稀疏线性方程组的求解
10.4.1 稀疏矩阵的存储方式
10.4.2 雅可比迭代法
10.4.3 高斯赛德尔迭代法
10.4.4 超松弛迭代法
10.4.5 多重网格法
10.4.6 共轭梯度法
10.5 小结和导读
习题
第十一章 快速傅里叶变换
11.1 离散傅氏变换
*11.1.1 预备知识
11.1.2 离散傅里叶变换
11.1.3 离散傅里叶逆变换
11.1.4 离散傅氏变换的蝶式计算
11.2 快速傅氏变换串行算法
*11.2.1 串行FFT迭代算法
11.2.2 串行FFT递归算法
11.3 并行FFT算法
11.3.1 SIMDMC2上FFT算法
11.3.2 SIMDBF上FFT算法
11.3.3 SIMDCC上FFT算法
11.3.4 MIMDDM上FFT算法
11.4 小结和导读
习题
第十二章 数值计算的基本支撑技术
12.1 网格生成
12.1.1 网格生成过程与方法
12.1.2 并行网格生成
*12.1.3 网格生成有关软件和网址
12.2 图的划分
12.2.1 负载平衡与图的划分
12.2.2 图划分算法
12.2.3 多约束图划分问题及算法
12.3 稀疏线性系统求解器
12.3.1 稀疏矩阵的来源和结构
12.3.2 稀疏线性系统直接方法
12.3.3 稀疏线性系统迭代方法
12.3.4 预条件子
*12.3.5 稀疏线性代数库
12.4 算法和软件
12.4.1 算法和软件的可重用
12.4.2 算法和软件的可移植
12.4.3 算法和软件的可扩放
12.5 科学计算可视化
12.5.1 科学计算可视化的基本概念
12.5.2 并行科学计算可视化
12.6 小结和导读
习题
第三篇 并行计算软件支撑:并行编程
第十三章 并行程序设计基础
13.1 并行程序设计概述
13.1.1 串行程序设计与并行程序设计
13.1.2 并行程序设计环境与工具
13.1.3 并行程序设计方法
13.1.4 并行编程风范
13.2 进程和线程
13.2.1 进程和线程的基本概念
13.2.2 进程和线程的并行执行
13.3 同步和通信
13.3.1 同步
13.3.2 通信
13.4 单核多线程与多核多线程
13.4.1 单处理器核上并发程序设计
13.4.2 多执行核上并行程序设计
13.5 影响多线程性能的常见问题
13.5.1 线程过多
13.5.2 数据竞争
13.5.3 死锁
13.5.4 Cache伪共享
13.6 并行程序设计模型
13.6.1 计算π样本程序
13.6.2 隐式并行模型
13.6.3 数据并行模型
13.6.4 消息传递模型
13.6.5 共享变量模型
13.6.6 并行程序设计模型比较
13.7 小结和导读
习题
第十四章 共享存储系统并行编程
14.1 基于共享变量的共享存储并行编程
14.1.1 共享存储并行编程的基本问题
14.1.2 共享存储编程环境
14.2 POSIX线程
14.2.1 POSIX线程模型
14.2.2 使用Pthreads编写计算π的程序实例
14.3 OpenMP并行编程
14.3.1 OpenMP概述
14.3.2 OpenMP编程风格
14.3.3 共享任务结构
14.3.4 OpenMP其他编程要素
14.3.5 OpenMP计算实例
14.4 小结和导读
习题
附录 OpenMP运行库例程
第十五章 分布存储系统并行编程
15.1 基于消息传递的并行编程
15.1.1 SPMD并行程序
15.1.2 MPMD并行程序
15.2 MPI并行编程
15.2.1 MPI概述
15.2.2 最基本的MPI
15.2.3 MPI消息
15.2.4 点对点通信
15.2.5 群集通信
15.2.6 计算π的MPI程序
15.3 基于数据并行的并行编程
15.3.1 数据并行模型的特点
15.3.2 数据并行编程的基本问题
15.4 HPF并行编程
15.4.1 HPF概述
15.4.2 HPF编程简介
15.4.3 数据映射
15.4.4 数据并行结构
15.4.5 HPF语言的过程
15.4.6 高斯消去法的HPF程序
15.5 小结和导读
习题
附录一 MPI函数的C语言说明
附录二 MPI函数的FORTRAN语言说明
第十六章 并行程序设计环境与工具
*16.1 软件工具与环境
16.1.1 编码工具与软件工程工具
16.1.2 集成工具与环境
16.2 并行编译器
16.2.1 编译及其并行化
16.2.2 相关分析
16.2.3 代码优化
16.2.4 代码生成
16.3 并行程序调试
16.3.1 并行程序调试的方法与步骤
16.3.2 并行程序的调试技术
16.4 并行程序性能分析
16.4.1 并行程序的性能预测
16.4.2 并行程序的性能监控
16.4.3 并行程序性能分析工具
16.4.4 并行程序的性能可视化
16.5 图形化并行程序集成开发环境
16.5.1 图形应用开发环境GRADE的组成
16.5.2 GRADE中开发并行程序过程
16.5.3 基于模式的可视化并行编程环境CO2P3S
16.6 小结和导读
习题
附录篇 并行计算发展动力:并行应用
附录A 并行应用相关知识
A.1 应用需求
A.2 应用领域
A.3 应用实例
A.4 应用须知
附录B 应用综合练习:大气模型的并行算法设计
B.1 背景知识
B.2 设计分析
附录C 数值计算软件包和工具
C.1 高性能程序库
C.1.1 BLAS库
C.1.2 LAPACK库
C.1.3 ScaLAPACK库
C.2 软件包和工具
C.2.1 PETSc
C.2.2 FFTW
C.2.3 HPSEPS
C.2.4 Hypre
C.2.5 MUMPS
C.2.6 ParMETIS
C.2.7 Trilions
C.2.8 TAO
C.2.9 SUNDIALS
C.2.10 SLEPC
附录D 应用实例一:机群系统上三维傅里叶变换
D.1 问题背景
D.2 机群系统
D.3 三维傅里叶变换一般并行算法
D.4 改进的三维傅里叶变换并行算法
D.5 应用实例
D.6 编程实现
D.7 实验比较
附录E 应用实例二:多核系统上并行图像特征提取
E.1 问题背景
E.2 多核平台
E.3 图像特征提取的并行算法
E.4 编程实现
E.5 实验比较
附录F 应用实例三:个人高性能计算机上水平井射孔渗流计算
F.1 问题背景
F.2 并行计算方法
F.3 并行编程概述
F.4 KD50I平台
F.5 应用结果
索引
算法索引
表格索引
示范程序索引
专业术语索引
参考文献
前辅文
第一篇 并行计算硬件平台:并行计算机
第一章 并行计算与并行计算机结构模型
1.1 计算与计算机科学
1.1.1 科学发现的第三支柱:计算科学
1.1.2 计算科学与计算机科学
*1.2 单处理机与指令级并行
1.2.1 加快CPU执行速度
1.2.2 减少存储延迟
1.2.3 改善输入和输出以及网络性能
*1.3 多核处理器与线程级并行
1.3.1 单核处理器结构设计
1.3.2 多核处理器结构设计
1.3.3 多核处理器实例
1.4 并行计算机体系结构
1.4.1 并行计算机结构模型
1.4.2 并行计算机访存模型
*1.4.3 并行计算机存储组织
1.5 并行计算概述
1.5.1 关于并行计算
*1.5.2 并行计算研究现状
1.6 小结和导读
习题
第二章 并行计算机系统互连与基本通信操作
2.1 并行计算机互连网络
2.1.1 系统互连
2.1.2 静态互连网络
2.1.3 动态互连网络
2.1.4 标准互连网络
2.2 选路方法与开关技术
2.2.1 选路方法
2.2.2 开关技术
2.3 单一信包一到一传输
2.4 一到多播送
2.4.1 使用SF进行一到多播送
2.4.2 使用CT进行一到多播送
2.5 多到多播送
2.5.1 使用SF进行多到多播送
2.5.2 使用CT进行多到多播送
2.6 小结和导读
习题
第三章 典型并行计算机系统介绍
3.1 共享存储多处理机系统
3.1.1 对称多处理机SMP结构特性
*3.1.2 SGI Challenge系统
3.2 分布存储多计算机系统
3.2.1 大规模并行处理机MPP结构特性
*3.2.2 ASCI Option Red MPP系统
3.3 分布共享存储计算机系统
3.3.1 分布共享存储计算机系统特性
*3.3.2 SGI Origin 2000系统
3.4 机群系统
3.4.1 大规模并行处理系统MPP机群SP
3.4.2 工作站机群COW
*3.4.3 Berkeley的NOW计划
3.5 小结和导读
习题
第四章 并行计算性能评测
4.1 并行计算机的一些基本性能指标
4.1.1 CPU和存储器的某些基本性能指标
4.1.2 通信开销
4.1.3 机器的成本、价格与性能价格比
4.2 加速比性能定律
4.2.1 Amdahl定律
4.2.2 Gustafson定律
4.2.3 Sun和Ni定律
4.2.4 有关加速的讨论
4.3 可扩放性评测标准
4.3.1 并行计算的可扩放性
4.3.2 等效率度量标准
4.3.3 等速度度量标准
4.3.4 平均延迟度量标准
4.3.5 有关可扩放性标准的讨论
*4.4 基准测试程序
4.4.1 基本的测试程序
4.4.2 数学库测试程序
4.4.3 并行测试程序
4.5 小结和导读
习题
第二篇 并行计算理论基础:并行算法(上)——并行算法设计
第五章 并行算法与并行计算模型
*5.1 并行算法的基础知识
5.1.1 并行算法的定义和分类
5.1.2 并行算法的表达
5.1.3 并行算法的复杂性度量
5.1.4 并行算法中的同步与通信
5.2 并行计算模型
5.2.1 PRAM模型
5.2.2 异步PRAM模型
5.2.3 BSP模型
5.2.4 LogP模型
5.2.5 对BSP和LogP的评注
5.2.6 层次存储模型
5.2.7 分层并行计算模型
5.3 小结和导读
习题
第六章 并行算法基本设计策略
6.1 串行算法的直接并行化
6.1.1 设计策略描述
6.1.2 快排序算法的并行化
6.2 从问题描述开始设计并行算法
6.2.1 串匹配算法
*6.2.2 KMP串行串匹配算法
6.2.3 并行串匹配算法的设计思路
6.3 借用已有算法求解新问题
6.3.1 设计策略描述
6.3.2 利用矩阵乘法求所有点对间最短路径
6.4 小结和导读
习题
第七章 并行算法常用设计技术
7.1 划分设计技术
7.1.1 均匀划分技术
7.1.2 方根划分技术
7.1.3 对数划分技术
7.1.4 功能划分技术
7.2 分治设计技术
7.2.1 双调归并网络
7.2.2 凸壳问题
7.3 平衡树设计技术
7.3.1 求取最大值
7.3.2 计算前缀和
7.4 倍增设计技术
7.4.1 表序问题的计算
7.4.2 求森林的根
7.5 流水线设计技术
7.5.1 一维脉动阵列上的DFT计算
7.5.2 一维脉动阵列上的卷积计算
7.6 小结和导读
习题
第八章 并行算法一般设计过程
8.1 PCAM设计方法学
8.2 划分
8.2.1 域分解
8.2.2 功能分解
8.2.3 划分判据
8.3 通信
8.3.1 局部通信
8.3.2 全局通信
8.3.3 非结构化、动态和异步通信
8.3.4 通信判据
8.4 组合
8.4.1 增加粒度
8.4.2 保持灵活性和减少软件工程成本
8.4.3 组合判据
8.5 映射
8.5.1 负载平衡算法
8.5.2 任务调度算法
8.5.3 映射判据
8.6 小结和导读
习题
第二篇 并行计算理论基础:并行算法(下)——并行数值算法
第九章 稠密矩阵运算
9.1 矩阵的划分
9.1.1 带状划分
9.1.2 棋盘划分
9.2 矩阵转置
9.2.1 棋盘划分的矩阵转置
9.2.2 带状划分的矩阵转置
9.3 矩阵向量乘法
9.3.1 带状划分的矩阵向量乘法
9.3.2 棋盘划分的矩阵向量乘法
9.4 矩阵乘法
9.4.1 简单并行分块乘法
9.4.2 Cannon乘法
9.4.3 Fox乘法
9.4.4 DNS乘法
9.5 小结和导读
习题
第十章 线性方程组求解
10.1 三角形方程组的求解
10.1.1 基本术语
10.1.2 上三角方程组的求解
10.2 三对角方程组的求解
10.2.1 三对角方程组直接求解法
10.2.2 三对角方程组奇偶归约求解法
10.3 稠密线性方程组的求解
10.3.1 有回代的高斯消去法
10.3.2 无回代的高斯约旦法
10.3.3 迭代求解的高斯赛德尔法
10.4 稀疏线性方程组的求解
10.4.1 稀疏矩阵的存储方式
10.4.2 雅可比迭代法
10.4.3 高斯赛德尔迭代法
10.4.4 超松弛迭代法
10.4.5 多重网格法
10.4.6 共轭梯度法
10.5 小结和导读
习题
第十一章 快速傅里叶变换
11.1 离散傅氏变换
*11.1.1 预备知识
11.1.2 离散傅里叶变换
11.1.3 离散傅里叶逆变换
11.1.4 离散傅氏变换的蝶式计算
11.2 快速傅氏变换串行算法
*11.2.1 串行FFT迭代算法
11.2.2 串行FFT递归算法
11.3 并行FFT算法
11.3.1 SIMDMC2上FFT算法
11.3.2 SIMDBF上FFT算法
11.3.3 SIMDCC上FFT算法
11.3.4 MIMDDM上FFT算法
11.4 小结和导读
习题
第十二章 数值计算的基本支撑技术
12.1 网格生成
12.1.1 网格生成过程与方法
12.1.2 并行网格生成
*12.1.3 网格生成有关软件和网址
12.2 图的划分
12.2.1 负载平衡与图的划分
12.2.2 图划分算法
12.2.3 多约束图划分问题及算法
12.3 稀疏线性系统求解器
12.3.1 稀疏矩阵的来源和结构
12.3.2 稀疏线性系统直接方法
12.3.3 稀疏线性系统迭代方法
12.3.4 预条件子
*12.3.5 稀疏线性代数库
12.4 算法和软件
12.4.1 算法和软件的可重用
12.4.2 算法和软件的可移植
12.4.3 算法和软件的可扩放
12.5 科学计算可视化
12.5.1 科学计算可视化的基本概念
12.5.2 并行科学计算可视化
12.6 小结和导读
习题
第三篇 并行计算软件支撑:并行编程
第十三章 并行程序设计基础
13.1 并行程序设计概述
13.1.1 串行程序设计与并行程序设计
13.1.2 并行程序设计环境与工具
13.1.3 并行程序设计方法
13.1.4 并行编程风范
13.2 进程和线程
13.2.1 进程和线程的基本概念
13.2.2 进程和线程的并行执行
13.3 同步和通信
13.3.1 同步
13.3.2 通信
13.4 单核多线程与多核多线程
13.4.1 单处理器核上并发程序设计
13.4.2 多执行核上并行程序设计
13.5 影响多线程性能的常见问题
13.5.1 线程过多
13.5.2 数据竞争
13.5.3 死锁
13.5.4 Cache伪共享
13.6 并行程序设计模型
13.6.1 计算π样本程序
13.6.2 隐式并行模型
13.6.3 数据并行模型
13.6.4 消息传递模型
13.6.5 共享变量模型
13.6.6 并行程序设计模型比较
13.7 小结和导读
习题
第十四章 共享存储系统并行编程
14.1 基于共享变量的共享存储并行编程
14.1.1 共享存储并行编程的基本问题
14.1.2 共享存储编程环境
14.2 POSIX线程
14.2.1 POSIX线程模型
14.2.2 使用Pthreads编写计算π的程序实例
14.3 OpenMP并行编程
14.3.1 OpenMP概述
14.3.2 OpenMP编程风格
14.3.3 共享任务结构
14.3.4 OpenMP其他编程要素
14.3.5 OpenMP计算实例
14.4 小结和导读
习题
附录 OpenMP运行库例程
第十五章 分布存储系统并行编程
15.1 基于消息传递的并行编程
15.1.1 SPMD并行程序
15.1.2 MPMD并行程序
15.2 MPI并行编程
15.2.1 MPI概述
15.2.2 最基本的MPI
15.2.3 MPI消息
15.2.4 点对点通信
15.2.5 群集通信
15.2.6 计算π的MPI程序
15.3 基于数据并行的并行编程
15.3.1 数据并行模型的特点
15.3.2 数据并行编程的基本问题
15.4 HPF并行编程
15.4.1 HPF概述
15.4.2 HPF编程简介
15.4.3 数据映射
15.4.4 数据并行结构
15.4.5 HPF语言的过程
15.4.6 高斯消去法的HPF程序
15.5 小结和导读
习题
附录一 MPI函数的C语言说明
附录二 MPI函数的FORTRAN语言说明
第十六章 并行程序设计环境与工具
*16.1 软件工具与环境
16.1.1 编码工具与软件工程工具
16.1.2 集成工具与环境
16.2 并行编译器
16.2.1 编译及其并行化
16.2.2 相关分析
16.2.3 代码优化
16.2.4 代码生成
16.3 并行程序调试
16.3.1 并行程序调试的方法与步骤
16.3.2 并行程序的调试技术
16.4 并行程序性能分析
16.4.1 并行程序的性能预测
16.4.2 并行程序的性能监控
16.4.3 并行程序性能分析工具
16.4.4 并行程序的性能可视化
16.5 图形化并行程序集成开发环境
16.5.1 图形应用开发环境GRADE的组成
16.5.2 GRADE中开发并行程序过程
16.5.3 基于模式的可视化并行编程环境CO2P3S
16.6 小结和导读
习题
附录篇 并行计算发展动力:并行应用
附录A 并行应用相关知识
A.1 应用需求
A.2 应用领域
A.3 应用实例
A.4 应用须知
附录B 应用综合练习:大气模型的并行算法设计
B.1 背景知识
B.2 设计分析
附录C 数值计算软件包和工具
C.1 高性能程序库
C.1.1 BLAS库
C.1.2 LAPACK库
C.1.3 ScaLAPACK库
C.2 软件包和工具
C.2.1 PETSc
C.2.2 FFTW
C.2.3 HPSEPS
C.2.4 Hypre
C.2.5 MUMPS
C.2.6 ParMETIS
C.2.7 Trilions
C.2.8 TAO
C.2.9 SUNDIALS
C.2.10 SLEPC
附录D 应用实例一:机群系统上三维傅里叶变换
D.1 问题背景
D.2 机群系统
D.3 三维傅里叶变换一般并行算法
D.4 改进的三维傅里叶变换并行算法
D.5 应用实例
D.6 编程实现
D.7 实验比较
附录E 应用实例二:多核系统上并行图像特征提取
E.1 问题背景
E.2 多核平台
E.3 图像特征提取的并行算法
E.4 编程实现
E.5 实验比较
附录F 应用实例三:个人高性能计算机上水平井射孔渗流计算
F.1 问题背景
F.2 并行计算方法
F.3 并行编程概述
F.4 KD50I平台
F.5 应用结果
索引
算法索引
表格索引
示范程序索引
专业术语索引
参考文献
前辅文
第一篇 并行计算硬件平台:并行计算机
第一章 并行计算与并行计算机结构模型
1.1 计算与计算机科学
1.1.1 科学发现的第三支柱:计算科学
1.1.2 计算科学与计算机科学
*1.2 单处理机与指令级并行
1.2.1 加快CPU执行速度
1.2.2 减少存储延迟
1.2.3 改善输入和输出以及网络性能
*1.3 多核处理器与线程级并行
1.3.1 单核处理器结构设计
1.3.2 多核处理器结构设计
1.3.3 多核处理器实例
1.4 并行计算机体系结构
1.4.1 并行计算机结构模型
1.4.2 并行计算机访存模型
*1.4.3 并行计算机存储组织
1.5 并行计算概述
1.5.1 关于并行计算
*1.5.2 并行计算研究现状
1.6 小结和导读
习题
第二章 并行计算机系统互连与基本通信操作
2.1 并行计算机互连网络
2.1.1 系统互连
2.1.2 静态互连网络
2.1.3 动态互连网络
2.1.4 标准互连网络
2.2 选路方法与开关技术
2.2.1 选路方法
2.2.2 开关技术
2.3 单一信包一到一传输
2.4 一到多播送
2.4.1 使用SF进行一到多播送
2.4.2 使用CT进行一到多播送
2.5 多到多播送
2.5.1 使用SF进行多到多播送
2.5.2 使用CT进行多到多播送
2.6 小结和导读
习题
第三章 典型并行计算机系统介绍
3.1 共享存储多处理机系统
3.1.1 对称多处理机SMP结构特性
*3.1.2 SGI Challenge系统
3.2 分布存储多计算机系统
3.2.1 大规模并行处理机MPP结构特性
*3.2.2 ASCI Option Red MPP系统
3.3 分布共享存储计算机系统
3.3.1 分布共享存储计算机系统特性
*3.3.2 SGI Origin 2000系统
3.4 机群系统
3.4.1 大规模并行处理系统MPP机群SP
3.4.2 工作站机群COW
*3.4.3 Berkeley的NOW计划
3.5 小结和导读
习题
第四章 并行计算性能评测
4.1 并行计算机的一些基本性能指标
4.1.1 CPU和存储器的某些基本性能指标
4.1.2 通信开销
4.1.3 机器的成本、价格与性能价格比
4.2 加速比性能定律
4.2.1 Amdahl定律
4.2.2 Gustafson定律
4.2.3 Sun和Ni定律
4.2.4 有关加速的讨论
4.3 可扩放性评测标准
4.3.1 并行计算的可扩放性
4.3.2 等效率度量标准
4.3.3 等速度度量标准
4.3.4 平均延迟度量标准
4.3.5 有关可扩放性标准的讨论
*4.4 基准测试程序
4.4.1 基本的测试程序
4.4.2 数学库测试程序
4.4.3 并行测试程序
4.5 小结和导读
习题
第二篇 并行计算理论基础:并行算法(上)——并行算法设计
第五章 并行算法与并行计算模型
*5.1 并行算法的基础知识
5.1.1 并行算法的定义和分类
5.1.2 并行算法的表达
5.1.3 并行算法的复杂性度量
5.1.4 并行算法中的同步与通信
5.2 并行计算模型
5.2.1 PRAM模型
5.2.2 异步PRAM模型
5.2.3 BSP模型
5.2.4 LogP模型
5.2.5 对BSP和LogP的评注
5.2.6 层次存储模型
5.2.7 分层并行计算模型
5.3 小结和导读
习题
第六章 并行算法基本设计策略
6.1 串行算法的直接并行化
6.1.1 设计策略描述
6.1.2 快排序算法的并行化
6.2 从问题描述开始设计并行算法
6.2.1 串匹配算法
*6.2.2 KMP串行串匹配算法
6.2.3 并行串匹配算法的设计思路
6.3 借用已有算法求解新问题
6.3.1 设计策略描述
6.3.2 利用矩阵乘法求所有点对间最短路径
6.4 小结和导读
习题
第七章 并行算法常用设计技术
7.1 划分设计技术
7.1.1 均匀划分技术
7.1.2 方根划分技术
7.1.3 对数划分技术
7.1.4 功能划分技术
7.2 分治设计技术
7.2.1 双调归并网络
7.2.2 凸壳问题
7.3 平衡树设计技术
7.3.1 求取最大值
7.3.2 计算前缀和
7.4 倍增设计技术
7.4.1 表序问题的计算
7.4.2 求森林的根
7.5 流水线设计技术
7.5.1 一维脉动阵列上的DFT计算
7.5.2 一维脉动阵列上的卷积计算
7.6 小结和导读
习题
第八章 并行算法一般设计过程
8.1 PCAM设计方法学
8.2 划分
8.2.1 域分解
8.2.2 功能分解
8.2.3 划分判据
8.3 通信
8.3.1 局部通信
8.3.2 全局通信
8.3.3 非结构化、动态和异步通信
8.3.4 通信判据
8.4 组合
8.4.1 增加粒度
8.4.2 保持灵活性和减少软件工程成本
8.4.3 组合判据
8.5 映射
8.5.1 负载平衡算法
8.5.2 任务调度算法
8.5.3 映射判据
8.6 小结和导读
习题
第二篇 并行计算理论基础:并行算法(下)——并行数值算法
第九章 稠密矩阵运算
9.1 矩阵的划分
9.1.1 带状划分
9.1.2 棋盘划分
9.2 矩阵转置
9.2.1 棋盘划分的矩阵转置
9.2.2 带状划分的矩阵转置
9.3 矩阵向量乘法
9.3.1 带状划分的矩阵向量乘法
9.3.2 棋盘划分的矩阵向量乘法
9.4 矩阵乘法
9.4.1 简单并行分块乘法
9.4.2 Cannon乘法
9.4.3 Fox乘法
9.4.4 DNS乘法
9.5 小结和导读
习题
第十章 线性方程组求解
10.1 三角形方程组的求解
10.1.1 基本术语
10.1.2 上三角方程组的求解
10.2 三对角方程组的求解
10.2.1 三对角方程组直接求解法
10.2.2 三对角方程组奇偶归约求解法
10.3 稠密线性方程组的求解
10.3.1 有回代的高斯消去法
10.3.2 无回代的高斯约旦法
10.3.3 迭代求解的高斯赛德尔法
10.4 稀疏线性方程组的求解
10.4.1 稀疏矩阵的存储方式
10.4.2 雅可比迭代法
10.4.3 高斯赛德尔迭代法
10.4.4 超松弛迭代法
10.4.5 多重网格法
10.4.6 共轭梯度法
10.5 小结和导读
习题
第十一章 快速傅里叶变换
11.1 离散傅氏变换
*11.1.1 预备知识
11.1.2 离散傅里叶变换
11.1.3 离散傅里叶逆变换
11.1.4 离散傅氏变换的蝶式计算
11.2 快速傅氏变换串行算法
*11.2.1 串行FFT迭代算法
11.2.2 串行FFT递归算法
11.3 并行FFT算法
11.3.1 SIMDMC2上FFT算法
11.3.2 SIMDBF上FFT算法
11.3.3 SIMDCC上FFT算法
11.3.4 MIMDDM上FFT算法
11.4 小结和导读
习题
第十二章 数值计算的基本支撑技术
12.1 网格生成
12.1.1 网格生成过程与方法
12.1.2 并行网格生成
*12.1.3 网格生成有关软件和网址
12.2 图的划分
12.2.1 负载平衡与图的划分
12.2.2 图划分算法
12.2.3 多约束图划分问题及算法
12.3 稀疏线性系统求解器
12.3.1 稀疏矩阵的来源和结构
12.3.2 稀疏线性系统直接方法
12.3.3 稀疏线性系统迭代方法
12.3.4 预条件子
*12.3.5 稀疏线性代数库
12.4 算法和软件
12.4.1 算法和软件的可重用
12.4.2 算法和软件的可移植
12.4.3 算法和软件的可扩放
12.5 科学计算可视化
12.5.1 科学计算可视化的基本概念
12.5.2 并行科学计算可视化
12.6 小结和导读
习题
第三篇 并行计算软件支撑:并行编程
第十三章 并行程序设计基础
13.1 并行程序设计概述
13.1.1 串行程序设计与并行程序设计
13.1.2 并行程序设计环境与工具
13.1.3 并行程序设计方法
13.1.4 并行编程风范
13.2 进程和线程
13.2.1 进程和线程的基本概念
13.2.2 进程和线程的并行执行
13.3 同步和通信
13.3.1 同步
13.3.2 通信
13.4 单核多线程与多核多线程
13.4.1 单处理器核上并发程序设计
13.4.2 多执行核上并行程序设计
13.5 影响多线程性能的常见问题
13.5.1 线程过多
13.5.2 数据竞争
13.5.3 死锁
13.5.4 Cache伪共享
13.6 并行程序设计模型
13.6.1 计算π样本程序
13.6.2 隐式并行模型
13.6.3 数据并行模型
13.6.4 消息传递模型
13.6.5 共享变量模型
13.6.6 并行程序设计模型比较
13.7 小结和导读
习题
第十四章 共享存储系统并行编程
14.1 基于共享变量的共享存储并行编程
14.1.1 共享存储并行编程的基本问题
14.1.2 共享存储编程环境
14.2 POSIX线程
14.2.1 POSIX线程模型
14.2.2 使用Pthreads编写计算π的程序实例
14.3 OpenMP并行编程
14.3.1 OpenMP概述
14.3.2 OpenMP编程风格
14.3.3 共享任务结构
14.3.4 OpenMP其他编程要素
14.3.5 OpenMP计算实例
14.4 小结和导读
习题
附录 OpenMP运行库例程
第十五章 分布存储系统并行编程
15.1 基于消息传递的并行编程
15.1.1 SPMD并行程序
15.1.2 MPMD并行程序
15.2 MPI并行编程
15.2.1 MPI概述
15.2.2 最基本的MPI
15.2.3 MPI消息
15.2.4 点对点通信
15.2.5 群集通信
15.2.6 计算π的MPI程序
15.3 基于数据并行的并行编程
15.3.1 数据并行模型的特点
15.3.2 数据并行编程的基本问题
15.4 HPF并行编程
15.4.1 HPF概述
15.4.2 HPF编程简介
15.4.3 数据映射
15.4.4 数据并行结构
15.4.5 HPF语言的过程
15.4.6 高斯消去法的HPF程序
15.5 小结和导读
习题
附录一 MPI函数的C语言说明
附录二 MPI函数的FORTRAN语言说明
第十六章 并行程序设计环境与工具
*16.1 软件工具与环境
16.1.1 编码工具与软件工程工具
16.1.2 集成工具与环境
16.2 并行编译器
16.2.1 编译及其并行化
16.2.2 相关分析
16.2.3 代码优化
16.2.4 代码生成
16.3 并行程序调试
16.3.1 并行程序调试的方法与步骤
16.3.2 并行程序的调试技术
16.4 并行程序性能分析
16.4.1 并行程序的性能预测
16.4.2 并行程序的性能监控
16.4.3 并行程序性能分析工具
16.4.4 并行程序的性能可视化
16.5 图形化并行程序集成开发环境
16.5.1 图形应用开发环境GRADE的组成
16.5.2 GRADE中开发并行程序过程
16.5.3 基于模式的可视化并行编程环境CO2P3S
16.6 小结和导读
习题
附录篇 并行计算发展动力:并行应用
附录A 并行应用相关知识
A.1 应用需求
A.2 应用领域
A.3 应用实例
A.4 应用须知
附录B 应用综合练习:大气模型的并行算法设计
B.1 背景知识
B.2 设计分析
附录C 数值计算软件包和工具
C.1 高性能程序库
C.1.1 BLAS库
C.1.2 LAPACK库
C.1.3 ScaLAPACK库
C.2 软件包和工具
C.2.1 PETSc
C.2.2 FFTW
C.2.3 HPSEPS
C.2.4 Hypre
C.2.5 MUMPS
C.2.6 ParMETIS
C.2.7 Trilions
C.2.8 TAO
C.2.9 SUNDIALS
C.2.10 SLEPC
附录D 应用实例一:机群系统上三维傅里叶变换
D.1 问题背景
D.2 机群系统
D.3 三维傅里叶变换一般并行算法
D.4 改进的三维傅里叶变换并行算法
D.5 应用实例
D.6 编程实现
D.7 实验比较
附录E 应用实例二:多核系统上并行图像特征提取
E.1 问题背景
E.2 多核平台
E.3 图像特征提取的并行算法
E.4 编程实现
E.5 实验比较
附录F 应用实例三:个人高性能计算机上水平井射孔渗流计算
F.1 问题背景
F.2 并行计算方法
F.3 并行编程概述
F.4 KD50I平台
F.5 应用结果
索引
算法索引
表格索引
示范程序索引
专业术语索引
参考文献
















