图书信息
图书目录

并行编程实践




本书介绍并行程序设计方法及相关编程工具与实践,分5篇共14章。第一篇“并行程序设计基础”含两章,包括并行计算机系统与结构模型、并行程序设计简介;第二篇“SIMD指令级并行编程”含两章,包括SIMD基本概念和x86处理器上的并行指令编程方法和示例、ARM结构上的NEON向量指令编程与示例;第三篇“多核并行计算”含4章,包括Pthread多线程编程、OpenMP编程、GPU上的CUDA编程、寒武纪MLU编程基础;第四篇“多机并行计算”含4章,包括MPI并行计算及示例、Hadoop编程方法及示例、Spark编程和示例、TensorFlow多机异构计算的编程方法和示例;第五篇给出了并行算法实现示例。

本书涉及范围广,覆盖了单核、多核和多机环境下的并行编程方法,读者可根据自己的计算问题和计算平台特性,选择合适的并行编程方法和工具,结合各章给出的性能调优思路有效地实现并行编程。本书可作为高等学校计算机及相关专业本科高年级学生和研究生的教材,也可供从事并行程序设计及其实现的科技人员参考阅读。



作者:
陈国良 主编

定价:
75.00 元

出版时间:
2023-11-13

ISBN:
978-7-04-060141-1

物料号:
60141-00

读者对象:
高等教育

一级分类:
计算机/教育技术类

二级分类:
计算机科学与技术专业课程

重点项目:
暂无

版面字数:
700千字

开本:
特殊

装帧形式:
平装

页数:
暂无

最新
印次时间:
2023年01月
  • 目录
    • 前辅文
      • 第一篇 并行程序设计基础
        • 第1章 并行计算机系统与结构模型
          • 1.1 典型并行计算机系统简介
            • 1.1.1 阵列处理机
              • 1.1.2 向量处理机
                • 1.1.3 共享存储多处理机
                  • 1.1.4 分布存储多计算机
                    • 1.1.5 分布共享存储多处理机
                    • 1.2 当代并行计算机体系结构
                      • 1.2.1 并行计算机体系结构模型
                        • 1.2.2 并行计算机存储结构模型
                          • 1.2.3 分布式高速缓存与主存体系结构
                          • 1.3 小结
                            • 习题
                            • 第2章 并行程序设计简介
                              • 2.1 并行程序开发方法
                                • 2.1.1 并行层次与代码粒度
                                  • 2.1.2 并行程序开发策略
                                    • 2.1.3 并行编程模式
                                      • 2.1.4 PCAM设计方法学
                                      • 2.2 并行程序设计模型
                                        • 2.2.1 计算π样本程序
                                          • 2.2.2 数据并行模型
                                            • 2.2.3 消息传递模型
                                              • 2.2.4 共享变量模型
                                              • 2.3 并行编程语言和环境概述
                                                • 2.3.1 早期并行编程语言
                                                  • 2.3.2 近代并行编程语言与环境
                                                    • 2.3.3 并行说明性语言环境
                                                    • 2.4 循环程序并行化的一般方法
                                                      • 2.4.1 数据相关分析
                                                        • 2.4.2 数据划分与处理器指派
                                                          • 2.4.3 循环重构
                                                          • 2.5 小结
                                                            • 习题
                                                          • 第二篇 SIMD指令级并行编程
                                                            • 第3章 SIMD并行编程
                                                              • 3.1 SIMD指令
                                                                • 3.1.1 工作原理
                                                                  • 3.1.2 SIMD程序性能分析
                                                                    • 3.1.3 典型的SIMD指令集
                                                                    • 3.2 SIMD编程方法
                                                                      • 3.2.1 基于SIMD库函数的编程
                                                                        • 3.2.2 编译器自动向量化
                                                                          • 3.2.3 编译制导、内置函数与汇编方法
                                                                          • 3.3 x86内置函数的SIMD编程
                                                                            • 3.3.1 编程基础
                                                                              • 3.3.2 内置函数
                                                                              • 3.4 编程实践
                                                                                • 3.4.1 实例一 加法运算
                                                                                  • 3.4.2 实例二 计算向量点积
                                                                                    • 3.4.3 实例三 32位图像转置
                                                                                      • 3.4.4 实例四 24位图像转灰度图
                                                                                      • 3.5 小结
                                                                                        • 习题
                                                                                        • 第4章 ARM平台SIMD编程
                                                                                          • 4.1 ARM NEON指令集概述
                                                                                            • 4.1.1 向量数据
                                                                                              • 4.1.2 向量操作
                                                                                              • 4.2 常用NEON操作
                                                                                                • 4.2.1 算术逻辑及数据类型转换
                                                                                                  • 4.2.2 访存及其他操作
                                                                                                  • 4.3 实例 矩阵向量乘法
                                                                                                    • 4.3.1 矩阵乘法的NEON优化
                                                                                                      • 4.3.2 性能测试
                                                                                                        • 4.3.3 matrix_mul_vector.c完整代码
                                                                                                        • 4.4 实例 RGB彩色图像转灰度
                                                                                                          • 4.4.1 灰度转换及其NEON优化
                                                                                                            • 4.4.2 性能测试
                                                                                                              • 4.4.3 rgb_to_gray.c完整代码
                                                                                                              • 4.5 小结
                                                                                                                • 习题
                                                                                                              • 第三篇 多核并行计算
                                                                                                                • 第5章 Pthread多线程编程
                                                                                                                  • 5.1 线程与Pthread概述
                                                                                                                    • 5.1.1 进程与线程
                                                                                                                      • 5.1.2 什么是Pthread
                                                                                                                      • 5.2 多线程编程
                                                                                                                        • 5.2.1 线程管理
                                                                                                                          • 5.2.2 互斥量
                                                                                                                            • 5.2.3 条件变量
                                                                                                                            • 5.3 实例 矩阵乘法
                                                                                                                              • 5.4 小结
                                                                                                                                • 习题
                                                                                                                                • 第6章 OpenMP编程
                                                                                                                                  • 6.1 OpenMP基本概念
                                                                                                                                    • 6.1.1 执行模式
                                                                                                                                      • 6.1.2 OpenMP编程要素
                                                                                                                                      • 6.2 OpenMP编程
                                                                                                                                        • 6.2.1 并行域管理
                                                                                                                                          • 6.2.2 任务分担
                                                                                                                                            • 6.2.3 同步
                                                                                                                                              • 6.2.4 数据环境控制
                                                                                                                                              • 6.3 OpenMP编程示例(GNU/GCC)
                                                                                                                                                • 6.3.1 初始串行程序
                                                                                                                                                  • 6.3.2 热点分析
                                                                                                                                                    • 6.3.3 增量并行化
                                                                                                                                                      • 6.3.4 功能调试
                                                                                                                                                      • 6.4 OpenMP编程示例(Intel PSX)
                                                                                                                                                        • 6.4.1 Windows平台
                                                                                                                                                          • 6.4.2 Linux平台
                                                                                                                                                          • 6.5 小结
                                                                                                                                                            • 习题
                                                                                                                                                            • 第7章 GPU上的CUDA编程
                                                                                                                                                              • 7.1 GPU概述
                                                                                                                                                                • 7.1.1 CPU与GPU
                                                                                                                                                                  • 7.1.2 CPU+GPU异构计算架构
                                                                                                                                                                    • 7.1.3 GPU编程方法
                                                                                                                                                                    • 7.2 GPU硬件架构及软件体系
                                                                                                                                                                      • 7.2.1 基本结构
                                                                                                                                                                        • 7.2.2 GPU存储体系
                                                                                                                                                                          • 7.2.3 CUDA在GPU中的硬件映射
                                                                                                                                                                            • 7.2.4 CUDA软件体系
                                                                                                                                                                            • 7.3 CUDA C编程
                                                                                                                                                                              • 7.3.1 CUDA编程模型
                                                                                                                                                                                • 7.3.2 CUDA的异构执行
                                                                                                                                                                                  • 7.3.3 CUDA C语言拓展
                                                                                                                                                                                    • 7.3.4 CUDA线程组织
                                                                                                                                                                                    • 7.4 CUDA并行编程实例
                                                                                                                                                                                      • 7.4.1 向量加法实例
                                                                                                                                                                                        • 7.4.2 矩阵乘法实例
                                                                                                                                                                                          • 7.4.3 归约
                                                                                                                                                                                          • 7.5 小结
                                                                                                                                                                                            • 习题
                                                                                                                                                                                            • 第8章 寒武纪MLU编程基础
                                                                                                                                                                                              • 8.1 寒武纪人工智能开发平台
                                                                                                                                                                                                • 8.1.1 Neuware软件栈
                                                                                                                                                                                                  • 8.1.2 应用开发模式
                                                                                                                                                                                                    • 8.1.3 开发环境搭建
                                                                                                                                                                                                    • 8.2 MLU智能计算系统
                                                                                                                                                                                                      • 8.2.1 硬件架构层级
                                                                                                                                                                                                        • 8.2.2 计算模型与存储模型
                                                                                                                                                                                                        • 8.3 编程模型
                                                                                                                                                                                                          • 8.3.1 异构编程模型
                                                                                                                                                                                                            • 8.3.2 MLU编程——BANG语言及其数据类型
                                                                                                                                                                                                              • 8.3.3 MLU编程——BANG语言内置函数及地址空间
                                                                                                                                                                                                                • 8.3.4 主机端编程
                                                                                                                                                                                                                  • 8.3.5 并行编程模型
                                                                                                                                                                                                                    • 8.3.6 性能调优示例
                                                                                                                                                                                                                    • 8.4 CNML机器学习库
                                                                                                                                                                                                                      • 8.4.1 基本编程要素
                                                                                                                                                                                                                        • 8.4.2 CNML编程
                                                                                                                                                                                                                        • 8.5 定制的机器学习框架
                                                                                                                                                                                                                          • 8.5.1 框架移植
                                                                                                                                                                                                                            • 8.5.2 TensorFlow编程
                                                                                                                                                                                                                            • 8.6 小结
                                                                                                                                                                                                                              • 习题
                                                                                                                                                                                                                            • 第四篇 多机并行计算
                                                                                                                                                                                                                              • 第9章 MPI编程
                                                                                                                                                                                                                                • 9.1 MPI概述
                                                                                                                                                                                                                                  • 9.1.1 MPI标准及其历史
                                                                                                                                                                                                                                    • 9.1.2 MPI语言绑定及其实现
                                                                                                                                                                                                                                    • 9.2 MPI编程要素
                                                                                                                                                                                                                                      • 9.2.1 最基本的MPI
                                                                                                                                                                                                                                        • 9.2.2 MPI消息
                                                                                                                                                                                                                                          • 9.2.3 点对点通信
                                                                                                                                                                                                                                            • 9.2.4 群集通信
                                                                                                                                                                                                                                            • 9.3 MPI编程示例
                                                                                                                                                                                                                                              • 9.3.1 示例1 计算π
                                                                                                                                                                                                                                                • 9.3.2 示例2 矩阵乘法
                                                                                                                                                                                                                                                • 9.4 小结
                                                                                                                                                                                                                                                  • 习题
                                                                                                                                                                                                                                                  • 第10章 Hadoop编程
                                                                                                                                                                                                                                                    • 10.1 Hadoop简介
                                                                                                                                                                                                                                                      • 10.1.1 Hadoop生态
                                                                                                                                                                                                                                                        • 10.1.2 工业界中的Hadoop
                                                                                                                                                                                                                                                        • 10.2 Hadoop分布式文件系统(HDFS)
                                                                                                                                                                                                                                                          • 10.2.1 HDFS概述
                                                                                                                                                                                                                                                            • 10.2.2 HDFS基本架构
                                                                                                                                                                                                                                                              • 10.2.3 HDFS的工作流程
                                                                                                                                                                                                                                                              • 10.3 MapReduce分布式编程框架
                                                                                                                                                                                                                                                                • 10.3.1 Hadoop MapReduce基本架构
                                                                                                                                                                                                                                                                  • 10.3.2 Hadoop MapReduce作业生命周期
                                                                                                                                                                                                                                                                    • 10.3.3 Hadoop MapReduce示例——WordCount
                                                                                                                                                                                                                                                                    • 10.4 集群资源管理器YARN
                                                                                                                                                                                                                                                                      • 10.4.1 Hadoop YARN概述
                                                                                                                                                                                                                                                                        • 10.4.2 Hadoop YARN基本架构
                                                                                                                                                                                                                                                                          • 10.4.3 YARN的工作流程
                                                                                                                                                                                                                                                                          • 10.5 Hadoop环境搭建
                                                                                                                                                                                                                                                                            • 10.5.1 单机模式和伪分布式环境
                                                                                                                                                                                                                                                                              • 10.5.2 分布式环境
                                                                                                                                                                                                                                                                              • 10.6 Hadoop应用示例——基于最小生成树的分布式聚类算法
                                                                                                                                                                                                                                                                                • 10.6.1 问题描述
                                                                                                                                                                                                                                                                                  • 10.6.2 最小生成树算法
                                                                                                                                                                                                                                                                                    • 10.6.3 基于最小生成树的分布式聚类算法
                                                                                                                                                                                                                                                                                    • 10.7 Hadoop性能调优
                                                                                                                                                                                                                                                                                      • 10.7.1 Hadoop参数配置
                                                                                                                                                                                                                                                                                        • 10.7.2 MapReduce任务的优化
                                                                                                                                                                                                                                                                                          • 10.7.3 集群监控工具
                                                                                                                                                                                                                                                                                          • 10.8 小结
                                                                                                                                                                                                                                                                                            • 习题
                                                                                                                                                                                                                                                                                            • 第11章 Spark编程
                                                                                                                                                                                                                                                                                              • 11.1 Spark简介
                                                                                                                                                                                                                                                                                                • 11.1.1 Spark与Hadoop比较
                                                                                                                                                                                                                                                                                                  • 11.1.2 Spark并行计算原理
                                                                                                                                                                                                                                                                                                  • 11.2 与Spark交互
                                                                                                                                                                                                                                                                                                    • 11.2.1 Spark Shell
                                                                                                                                                                                                                                                                                                      • 11.2.2 PySpark
                                                                                                                                                                                                                                                                                                        • 11.2.3 示例程序
                                                                                                                                                                                                                                                                                                        • 11.3 Spark开发环境
                                                                                                                                                                                                                                                                                                          • 11.3.1 使用IntelliJ软件编译源码
                                                                                                                                                                                                                                                                                                            • 11.3.2 使用Shell环境编译源码
                                                                                                                                                                                                                                                                                                              • 11.3.3 Spark编程示例
                                                                                                                                                                                                                                                                                                              • 11.4 Spark弹性分布式数据集
                                                                                                                                                                                                                                                                                                                • 11.4.1 RDD概述
                                                                                                                                                                                                                                                                                                                  • 11.4.2 RDD技术实现
                                                                                                                                                                                                                                                                                                                    • 11.4.3 RDD分区与依赖
                                                                                                                                                                                                                                                                                                                      • 11.4.4 RDD操作集合
                                                                                                                                                                                                                                                                                                                      • 11.5 Spark编程实践
                                                                                                                                                                                                                                                                                                                        • 11.5.1 Spark Streaming
                                                                                                                                                                                                                                                                                                                          • 11.5.2 Spark SQL
                                                                                                                                                                                                                                                                                                                          • 11.6 小结
                                                                                                                                                                                                                                                                                                                            • 习题
                                                                                                                                                                                                                                                                                                                            • 第12章 TensorFlow多机异构计算
                                                                                                                                                                                                                                                                                                                              • 12.1 TensorFlow简介
                                                                                                                                                                                                                                                                                                                                • 12.1.1 深度学习和TensorFlow概述
                                                                                                                                                                                                                                                                                                                                  • 12.1.2 TensorFlow安装
                                                                                                                                                                                                                                                                                                                                    • 12.1.3 计算图模型
                                                                                                                                                                                                                                                                                                                                    • 12.2 TensorFlow中的并行计算原理
                                                                                                                                                                                                                                                                                                                                      • 12.2.1 分布式结构
                                                                                                                                                                                                                                                                                                                                        • 12.2.2 并行计算模式
                                                                                                                                                                                                                                                                                                                                        • 12.3 TensorFlow程序开发入门
                                                                                                                                                                                                                                                                                                                                          • 12.3.1 TensorFlow程序基础
                                                                                                                                                                                                                                                                                                                                            • 12.3.2 常用损失函数
                                                                                                                                                                                                                                                                                                                                              • 12.3.3 并行计算编程
                                                                                                                                                                                                                                                                                                                                              • 12.4 TensorFlow并行计算实践
                                                                                                                                                                                                                                                                                                                                                • 12.4.1 多层感知机实现MNIST分类
                                                                                                                                                                                                                                                                                                                                                  • 12.4.2 卷积神经网络实现MNIST手写识别
                                                                                                                                                                                                                                                                                                                                                    • 12.4.3 LSTM时间序列预测
                                                                                                                                                                                                                                                                                                                                                      • 12.4.4 自定义神经网络模型和分布式学习
                                                                                                                                                                                                                                                                                                                                                      • 12.5 小结
                                                                                                                                                                                                                                                                                                                                                        • 习题
                                                                                                                                                                                                                                                                                                                                                      • 第五篇 并行算法实现示例
                                                                                                                                                                                                                                                                                                                                                        • 第13章 数值计算的并行编程实现
                                                                                                                                                                                                                                                                                                                                                          • 13.1 矩阵运算
                                                                                                                                                                                                                                                                                                                                                            • 13.1.1 矩阵Cannon乘法
                                                                                                                                                                                                                                                                                                                                                              • 13.1.2 矩阵LU分解
                                                                                                                                                                                                                                                                                                                                                                • 13.1.3 矩阵求逆
                                                                                                                                                                                                                                                                                                                                                                • 13.2 线性方程组求解
                                                                                                                                                                                                                                                                                                                                                                  • 13.2.1 高斯消元法
                                                                                                                                                                                                                                                                                                                                                                    • 13.2.2 雅可比迭代法
                                                                                                                                                                                                                                                                                                                                                                    • 13.3 矩阵特征值计算
                                                                                                                                                                                                                                                                                                                                                                      • 13.3.1 求解矩阵最大特征值的乘幂法及其串行算法
                                                                                                                                                                                                                                                                                                                                                                        • 13.3.2 乘幂法并行算法
                                                                                                                                                                                                                                                                                                                                                                        • 13.4 快速傅里叶变换
                                                                                                                                                                                                                                                                                                                                                                          • 13.4.1 串行FFT迭代算法
                                                                                                                                                                                                                                                                                                                                                                            • 13.4.2 并行FFT算法
                                                                                                                                                                                                                                                                                                                                                                            • 13.5 小结
                                                                                                                                                                                                                                                                                                                                                                            • 第14章 非数值计算的并行编程实现
                                                                                                                                                                                                                                                                                                                                                                              • 14.1 排序
                                                                                                                                                                                                                                                                                                                                                                                • 14.1.1 快速排序
                                                                                                                                                                                                                                                                                                                                                                                  • 14.1.2 并行正则采样排序
                                                                                                                                                                                                                                                                                                                                                                                  • 14.2 串匹配
                                                                                                                                                                                                                                                                                                                                                                                    • 14.2.1 KMP串匹配及其串行算法
                                                                                                                                                                                                                                                                                                                                                                                      • 14.2.2 KMP串匹配的并行算法…561
                                                                                                                                                                                                                                                                                                                                                                                      • 14.3 图论
                                                                                                                                                                                                                                                                                                                                                                                        • 14.3.1 连通分量
                                                                                                                                                                                                                                                                                                                                                                                          • 14.3.2 最小生成树
                                                                                                                                                                                                                                                                                                                                                                                          • 14.4 组合优化
                                                                                                                                                                                                                                                                                                                                                                                            • 14.4.1 八皇后问题及其串行算法
                                                                                                                                                                                                                                                                                                                                                                                              • 14.4.2 八皇后问题的并行算法
                                                                                                                                                                                                                                                                                                                                                                                              • 14.5 计算几何
                                                                                                                                                                                                                                                                                                                                                                                                • 14.5.1 包含问题及其串行算法
                                                                                                                                                                                                                                                                                                                                                                                                  • 14.5.2 包含问题并行算法
                                                                                                                                                                                                                                                                                                                                                                                                  • 14.6 小结
                                                                                                                                                                                                                                                                                                                                                                                                • 参考文献
                                                                                                                                                                                                                                                                                                                                                                                                1