并行计算实践教程
作者: 罗忠文,吴亮,陈占龙
出版时间:2015年12月
出版社:中国地质大学出版社有限责任公司
- 中国地质大学出版社有限责任公司
- 9787562532880
- 137229
- 2015年12月
- 未分类
- 未分类
- TP301.6
罗忠文、吴亮、陈占龙编著的《并行计算实践教程》作为一本强调实践可行性的并行计算教材,将在介绍高性能并行计算的基本概念及基本理论的基础上,更多地讲解实际操作方法,同时介绍并行计算的若干较新的前沿技术和发展方向。
本书在介绍并行计算时特别强调并行计算的可操作性、可扩展性及实用性。
为了实现可操作性,本书将并行计算理论融入到具体的计算实例中,以培养读者解决实际问题的能力。在论述上也是先讲具体的实践,然后再上升到理论的抽象。
本书将讲解如何基于OpenMP和MPI这两种标准进行具体的并行计算实践。本书还将通过大量具体的实际问题来介绍并行计算的方法。
第1章 引论
1.1 并行机制的原动力
1.1.1 计算能力——从晶体管到FLOPS
1.1.2 内存/磁盘速度
1.1.3 数据通信
1.2 并行计算的应用
1.2.1 工程和设计中的应用
1.2.2 科学应用
1.2.3 商业应用
1.2.4 计算机系统中的应用
1.3 并行机的分类
1.4 本书的结构
第2章 基于MPI的并行程序设计
2.1 基于MPI的“Hello World”
2.1.1 编译和运行MPI程序
2.1.2 为“Hello World”增加通信
2.2 管理者/工人示例
2.3 基于一维分解的二维雅可比(Jacobi)例子
2.4 聚合操作
2.5 并行Monte Carlo计算
2.6 没有MPI的MPI编程
2.6.1 Poisson求解器
2.6.2 非线性偏微分方程的求解
第3章 MPI编程的高级论题
3.1 MPI中的动态进程管理
3.1.1 内部通信机
3.1.2 繁殖新的MPI进程
3.1.3 再论矩阵一向量相乘
3.1.4 更多动态进程管理
3.2 容错
3.3 再论网格交换
3.3.1 阻塞和非阻塞通信
3.3.2 MPI中非邻近数据的通信
3.4 引入通信机的动机
3.5 聚合操作的进一步讨论
3.6 并行I/O
3.6.1 一个简单的例子
3.6.2 一个更复杂的例子
3.7 远程内存访问
3.8 使用C++和Fortran90
3.9 MPI性能测试
3.9.1 mpptest
3.9.2 SKaMPI
3.9.3 高性能LINPACK
3.10 MPI-2现状
第4章 基于OpenMP的共享内存并行计算
4.1 OpenMP概论
4.2 简单的OpenMP程序例子
4.3 OpenMP程序设计
4.3.1 OpenMP的基本运行模型
4.3.2 OpenMP的编译指示语句
4.3.3 OpenMP的库函数
4.3.4 OpenMP并行数据共享机制
4.3.5 OpenMP任务调度和负载均衡子句
4.4 设计正确高效OpenMP程序的基本方法
4.5 OpenMP用于实现矩阵相乘
第5章 基于SIMD模型的图形硬件编程
5.1 统一设备计算模型简介
5.1.1 CPU与GPU的不同之处
5.1.2 编程模型
5.1.3 内存模型
5.1.4 硬件实现与执行模式
5.1.5 应用程序接口
5.2 一个简单的基于CUDA结构的矩阵乘法程序
5.2.1 问题描述
5.2.2 基于CPU的计算方法
5.2.3 基于GPU的简单算法
5.3 基于CUDA结构的矩阵乘法程序的性能提升
5.3.1 计算性能分析
5.3.2 分块矩阵相乘算法
第6章 并行算法设计原理
6.1 预备知识
6.1.1 分解、任务和依赖图
6.1.2 粒度、并发和任务交互
6.1.3 进程和映射
6.1.4 进程和处理器
6.2 分解方法
6.2.1 递归分解
6.2.2 数据分解
6.2.3 探索性分解
6.2.4 猜测性分解
6.2.5 混合分解
6.3 任务和交互的特性
6.3.1 任务的特性
6.3.2 任务间交互的特性
6.4 负载平衡的映射技术
6.4.1 静态映射方法
6.4.2 动态映射方案
6.5 包容交互负荷的方法
6.5.1 最大化数据局部性
6.5.2 最小化争夺和热点
6.5.3 重叠计算和交互
6.5.4 复制数据或计算
6.5.5 使用优化聚合交互运算
6.5.6 与其他交互重叠交互
6.6 并行算法模型
6.6.1 数据一并行模型
6.6.2 任务图模型
6.6.3 212作池模型
6.6.4 主从模型
6.6.5 流水线或生产者一消费者模型
6.6.6 混合模型
第7章 Matlab的并行化
7.1 MatlabMPI/pMatlab介绍
7.1.1 MatlabMPI简介
7.1.2 全局向量语义
7.1.3 pMatlab介绍
7.2 Matlab的并行工具
7.3 Matlab已有工具的并行版本
7.4 MatIab代码的并行化
7.4.1 基于Matlab的任务并行
7.4.2 基于Matlab的数据并行
7.4.3 基于Matlab环境实现类似MPI的并行开发
第8章 网格计算和云计算
8.1 网格技术概述
8.1.1 网格计算简介
8.1.2 网格体系结构
8.1.3 网格计算关键技术
8.2 网格计算编程环境
8.2.1 网格计算平台介绍
8.2.2 Globus环境配置
8.3 云计算技术概述
8.3.1 云计算简介
8.3.2 云计算体系结构
8.3.3 云计算关键技术
8.4 云计算编程环境
8.4.1 Hadoop框架的工作机制
8.4.2 MapReduce分布式并行计算编程模型
附录
主要参考资料