注册 登录 进入教材巡展
#

出版时间:2023-09

出版社:高等教育出版社

以下为《并行编程实践》的配套数字资源,这些资源在您购买图书后将免费附送给您:
  • 高等教育出版社
  • 9787040601411
  • 1版
  • 498448
  • 44259645-8
  • 平装
  • 特殊
  • 2023-09
  • 700
  • 580
  • 计算机科学与技术
  • 本科 研究生及以上
内容简介

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

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

目录

 前辅文
 第一篇 并行程序设计基础
  第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 小结
 参考文献

Baidu
map