• 并行编程原理与程序设计
  • 并行编程原理与程序设计
  • 并行编程原理与程序设计
  • 并行编程原理与程序设计
21年品牌 40万+商家 超1.5亿件商品

并行编程原理与程序设计

批量上传,套装书可能不全,下单前咨询在线客服! 正版书 !!!

133.14 4.9折 269 全新

库存7件

四川成都
认证卖家担保交易快速发货售后保障

作者何兵寿,宋鹏,刘颖

出版社科学出版社

ISBN9787030694829

出版时间2024-01

装帧精装

开本16开

定价269元

货号29305932

上书时间2024-10-20

百叶图书

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
导语摘要
本书主要介绍目前最常用的几种并行程序设计思路与方法,主要内容包括并行计算基础、OpenMP并行程序设计简介、MPI并行程序设计、CUDA并行程序设计及求解声波方程的并行程序五个部分。其中OpenMP对应共享内存的CPU并行编程,MPI对应消息传递的CPU并行编程,CUDA对应GPU编程。因此,通过对本书的学习,可以掌握目前最常用的几种并行编程方法。

作者简介



目录
前言

篇 并行计算基础

章 并行计算机硬件基础 3

1.1 并行计算 3

1.1.1 并行计算的概念 3

1.1.2 并行计算与计算科学 3

1.1.3 当代科学与工程问题的计算需求 4

1.2 并行计算机硬件简介 4

1.2.1 并行计算机的发展历史 4

1.2.2 并行计算机的分类 8

1.2.3 并行计算机的体系结构 9

1.3 当代并行计算机系统简介 14

1.3.1 共享存储多处理机系统 15

1.3.2 分布存储多处理机系统 15

1.3.3 集群系统 17

1.4 并行计算机的一些基本性能指标 24

1.4.1 CPU和存储器的某些性能指标 24

1.4.2 通信开销 25

1.4.3 机器的成本、价格与性价比 26

第2章 并行程序设计基础 28

2.1 并行算法的基础知识 28

2.1.1 并行算法领域的一些基本概念 28

2.1.2 并行程序开发策略与并行算法的描述方法 30

2.1.3 并行算法中的同步与通信 31

2.2 并行程序设计模型 32

2.2.1 计算π的样本程序 32

2.2.2 数据并行模型 33

2.2.3 消息传递模型 34

2.2.4 共享变量模型 36

2.3 并行程序设计方法 38

2.3.1 PCAM并行程序设计思路 38

2.3.2 并行编程语言 41

第二篇 OpenMP并行程序设计简介

第3章 OpenMP介绍 55

3.1 什么是OpenMP 55

3.2 共享内存式并行计算 55

3.3 OpenMP的发展历程 56

3.4 Windows平台下OpenMP环境搭建 56

第4章 OpenMP指令结构 59

4.1 编译指导语句的一般形式 59

4.2 主要指令 60

4.3 主要子句 61

4.4 常用库函数 62

第5章 OpenMP常用指令的用法 63

5.1 数据管理 63

5.1.1 Private子句 63

5.1.2 Firstprivate/Lastprivate子句 64

5.1.3 Shared子句 65

5.1.4 Default子句 66

5.1.5 Threadprivate子句 67

5.1.6 Copyin、copyprivate子句 68

5.1.7 Reduction子句 69

5.2 并行控制 70

5.2.1 Parallel指令 70

5.2.2 For指令 75

5.2.3 Schedule子句 76

5.2.4 Sections指令 80

5.2.5 Single指令 82

5.3 同步管理 82

5.3.1 Critical指令 83

5.3.2 Atomic指令 84

5.3.3 Barrier指令 85

5.3.4 Ordered指令 86

5.3.5 Master指令 86

5.3.6 Flush指令 87

5.4 常用库函数 87

5.4.1 运行时库函数 87

5.4.2 锁管理 88

5.4.3 环境变量 90

第6章 OpenMP实例 91

6.1 循环实例 91

6.2 并行程序的优化 93

6.2.1 临界区实现 93

6.2.2 原子操作实现 95

6.2.3 归约实现 95

6.3 快速排序并行算法 96

第三篇 MPI并行程序设计

第7章 MPI编程基础 103

7.1 MPI简介 103

7.1.1 MPI的含义 103

7.1.2 MPI的目标 103

7.1.3 MPI的产生 103

7.1.4 MPI的语言绑定 104

7.1.5 目前MPI的主要实现 104

7.2 一个简单的MPI程序 105

7.2.1 MPI实现的“Hello World!” 105

7.2.2 MPI程序的框架结构 109

7.2.3 MPI程序的一些惯例 109

7.3 6个基本函数组成的MPI子集 109

7.3.1 子集介绍 109

7.3.2 MPI预定义的数据类型 114

7.3.3 MPI数据类型匹配 115

7.3.4 MPI消息 117

7.4 简单的MPI程序示例 118

7.4.1 求二维数据中各元素绝对值的优选值 119

7.4.2 用MPI实现计时功能 121

7.4.3 获取机器名字与MPI版本号 123

7.4.4 是否初始化及错误退出 124

7.4.5 环形消息传递 125

7.4.6 所有进程相互问候 126

7.4.7 任意源和任意标识的使用 128

7.4.8 编写安全的MPI程序 129

第8章 MPI的安装与并行编程环境的设置 132

8.1 Linux环境下的MPICH2安装与设置 132

8.2 Windows环境下MPICH2的安装与设置 133

8.2.1 安装 133

8.2.2 编译运行C+MPI程序 134

8.2.3 编译运行Fortran+MPI程序 138

第9章 对等模式与主从模式的MPI程序设计 141

9.1 对等模式MPI程序设计 141

9.1.1 问题描述——雅可比迭代 141

9.1.2 用MPI程序实现雅可比迭代 142

9.1.3 采用捆绑发送接收实现雅可比迭代 146

9.1.4 引入虚拟进程后雅可比迭代的实现 151

9.2 主从模式MPI程序设计 155

9.2.1 矩阵向量乘 155

9.2.2 主进程打印各从进程的消息 159

0章 MPI的四种通信模式 162

10.1 标准通信模式 162

10.2 缓存通信模式 163

10.3 同步通信模式 165

10.4 就绪通信模式 167

1章 MPI的非阻塞通信 170

11.1 非阻塞通信简介 170

11.1.1 阻塞通信 170

11.1.2 非阻塞通信 171

11.2 非阻塞标准发送与接收 173

11.3 非阻塞通信与其他三种通信模式的结合 174

11.4 非阻塞通信的完成与检测 175

11.4.1 单个非阻塞通信的完成与检测 175

11.4.2 多个非阻塞通信的完成与检测 176

11.5 非阻塞通信对象 178

11.5.1 非阻塞通信的取消 179

11.5.2 非阻塞通信对象的释放 180

11.5.3 消息到达的检查 181

11.5.4 用非阻塞通信来实现雅可比迭代 182

11.6 重复非阻塞通信 185

2章 MPI的组通信调用 190

12.1 组通信概述 190

12.2 组通信的通信功能 191

12.2.1 广播 191

12.2.2 收集 192

12.2.3 散发 196

12.2.4 组收集 199

12.2.5 全互换 201

12.3 组通信的同步功能 204

12.4 组通信的计算功能 205

12.4.1 归约 205

12.4.2 MPI的内置归约算符 206

12.4.3 程序举例 207

12.4.4 组归约 209

12.4.5 归约并散发 211

12.4.6 扫描 212

12.4.7 不同类型归约操作的对比 213

12.4.8 MINLOC和MAXLOC 215

12.4.9 用户自定义的归约操作 216

3章 MPI的派生数据类型 220

13.1 类型图 220

13.2 新数据类型的定义 221

13.2.1 MPI提供的数据类型生成器 221

13.2.2 新类型递交和释放 226

13.2.3 地址函数 227

13.2.4 与数据类型有关的调用 228

13.2.5 下界类型和上界类型 231

13.3 例题 232

13.4 打包与解包 236

4章 MPI的进程组和通信域 239

14.1 简介 239

14.2 进程组和通信域的管理 239

14.2.1 MPI的进程组管理接口 240

14.2.2 通信域的管理 245

14.3 组间通信域 250

5章 MPI扩展 255

15.1 MPI的动态进程管理 255

15.1.1 组间通信域 255

15.1.2 动态进程的创建 257

15.1.3 独立进程间的通信 260

15.1.4 基于socket的通信 263

15.2 MPI的远程存储访问 263

15.2.1 窗口创建与窗口操作 264

15.2.2 窗口同步管理 267

15.3 并行I/O 275

15.3.1 并行文件管理的基本操作 276

15.3.2 显式指定偏移量的并行文件读写 279

15.3.3 多视口的并行文件并行读写 283

15.3.4 共享文件指针读写 291

6章 MPI函数调用原型与简单解释 297

16.1 MPI-1与C语言的接口 297

16.2 MPI-1与Fortran语言的接口 305

16.3 MPI-2与C语言的接口 314

16.4 MPI-2与Fortran语言的接口 324

第四篇 CUDA并行程序设计

7章 GPU简介 339

17.1 NVIDIA GPU发展简介 339

17.2 GPU硬件架构 340

17.2.1 图形显卡概览 340

17.2.2 PCI-E总线 341

17.2.3 显存 342

17.2.4 GPU芯片 343

17.3 基于GPU的程序开发 344

17.3.1 传统GPU开发 344

17.3.2 CUDA开发 344

8章 CUDA安装与编译 346

18.1 CUDA函数库与CUDA C++语言 346

18.1.1 CUDA API和函数库 346

18.1.2 CUDA C++语言 347

18.1.3 CUDA C++拓展限定符语法 348

18.2 CUDA的安装与配置 351

18.2.1 开发环境 351

18.2.2 安装平台 354

18.2.3 CUDA安装与配置 355

18.3 CUDA编译与驱动 357

18.3.1 Emu调试 357

18.3.2 编译相关 358

18.3.3 错误处理 359

18.3.4 计算模式 359

9章 CUDA编程基础 360

19.1 主机与设备 360

19.2 核函数的定义与调用 362

19.3 设备中的空间管理与数据传输 363

19.4 线程结构 365

19.5 硬件映射 370

19.5.1 计算单元 370

19.5.2 Warp 372

19.5.3 执行模型 372

19.6 存储器类型 373

19.6.1 寄存器 374

19.6.2 局部存储器 375

19.6.3 共享存储器 376

19.6.4 全局存储器 377

19.6.5 常数存储器 380

19.6.6 纹理存储器 382

19.7 CUDA通信机制 387

19.7.1 Block内通信与同步机制 387

19.7.2 同步函数 389

19.7.3 Volatile关键字 393

19.7.4 ATOM操作 394

19.7.5 VOTE操作 395

第20章 CUDA程序优化 396

20.1 任务划分 396

20.2 Grid和block维度设计 397

20.3 存储器访问优化 400

20.3.1 全局存储器访问优化 400

20.3.2 共享存储器访问优化 402

20.3.3 使用纹理存储器和常数存储器加速 405

20.4 异步并行执行 405

20.4.1 简单异步函数使用 405

20.4.2 基于流的异步并行 406

第21章 CUDA与多设备集群 409

21.1 CUDA的设备控制 409

21.2 多设备并行 410

21.2.1 CUDA与MPI 411

21.2.2 CUDA与OpenMP 413

第五篇 求解声波方程的并行程序

第22章 声波方程有限差分正演模拟的并行实现 419

22.1 声波方程有限差分模拟算法 419

22.1.1 声波方程及差分格式 419

22.1.2 吸收边界条件 420

22.1.3 震源设置方法 422

22.1.4 二维声波方程正演模拟的实现步骤 423

22.2 声波方程有限差分模拟的串行程序 425

22.3 声波方程有限差分模拟的OpenMP程序 434

22.4 声波方程有限差分模拟的MPI程序 445

22.5 声波方程有限差分模拟的CUDA程序 455

22.6 声波方程有限差分模拟的MPI+CUDA程序 465

参考文献 478

内容摘要
本书主要介绍目前最常用的几种并行程序设计思路与方法,主要内容包括并行计算基础、OpenMP并行程序设计简介、MPI并行程序设计、CUDA并行程序设计及求解声波方程的并行程序五个部分。其中OpenMP对应共享内存的CPU并行编程,MPI对应消息传递的CPU并行编程,CUDA对应GPU编程。因此,通过对本书的学习,可以掌握目前最常用的几种并行编程方法。

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP