注册 登录 进入教材巡展
#
  • #

出版时间:2024-01

出版社:中国铁道出版社

以下为《并行计算与程序设计(第二版)》的配套数字资源,这些资源在您购买图书后将免费附送给您:
  • 中国铁道出版社
  • 9787113307080
  • 2版
  • 519573
  • 48256918-3
  • 16开
  • 2024-01
  • 软件工程及相关专业
  • 本科
作者简介
刘其成,男,博士研究生,烟台大学计算机与控制工程学院教授,硕士生导师。专业方向为计算机应用。主授课程:软件设计与体系结构、Java面向对象程序设计、并行计算技术等。主编《软件设计与体系结构》、《软件体系结构与设计实用教程》、《并行计算与程序设计》、《Java程序设计基础》等多本教材。主持山东省自然科学基金、山东省教育厅科技计划项目。作为主要成员参与国家自然科学基金、山东省科技发展计划、山东省本科教学改革研究重点项目。发表学术论文几十篇,其中多篇被SCI/EI收录。获山东高等学校优秀科研成果奖三等奖。
查看全部
内容简介
本书是“普通高等院校‘十四五’计算类专业系列教材”之一,对并行计算的理论知识和并行程序设计方法进行了系统的论述,包括并行计算基本概念、并行计算机基础、并行计算模型、并行算法设计基础、并行计算性能评测、OpenMP多线程并行程序设计、MPI消息传递并行程序设计、Java多线程并行程序设计、Python并行程序设计、大数据分布式计算等内容。

本书集作者多年的教学经验编写而成,在论述并行计算理论知识的基础上,特别注重并行程序设计的实践方法及实用性。书中含有大量精心设计并调试通过的程序实例,以方便读者参考。
本书适合作为普通高等院校计算机科学与技术专业、软件工程专业以及计算机类相关专业本科生和研究生的教材,也可作为社会培训教材或软件开发人员的参考书。
目录
第1章  概述 1

1.1  实例 1

1.1.1  求和 1

1.1.2  泡茶问题 2

1.1.3  图书馆新书上架 2

1.1.4  天气预报 3

1.1.5  HPCC计划 3

1.1.6  教务管理系统 3

1.1.7  地球物理石油勘探数据处理系统 4

1.2  并行计算基础知识 5

1.2.1  并行计算的重要性 5

1.2.2  并行计算的定义、并行计算机系统及软件 6

1.2.3  并行计算的应用分类 6

1.2.4  并行设计的方法 7

1.2.5  应用系统的并行性 8

1.2.6  并行计算的研究内容 8

1.3  并行程序设计策略和模型 9

1.3.1  并行程序设计策略 9

1.3.2  并行程序设计模型 9

1.4  相关概念 10

1.4.1  顺序、并发与并行 10

1.4.2  进程和线程 11

1.4.3  一些基本概念 12

习题 13

第2章  并行计算机基础 14

2.1  并行计算机体系结构 14

2.1.1  结点 15

2.1.2  互联网络 15

2.1.3  并行计算机访存模型 19

2.2  并行计算机的分类 20

2.2.1  并行计算机的控制结构 20

2.2.2  地址空间 21

2.2.3  并行计算机系统结构模型 21

2.3  多核技术 28

2.3.1  多核芯片 28

2.3.2  片上多核处理器体系结构 28

2.3.3  超线程技术 29

2.3.4  基于多核的软件开发 30

2.3.5  虚拟化技术 30

2.4  GPU技术 30

2.4.1  简介 30

2.4.2  GPU与并行计算 31

习题 32

第3章  并行计算模型 33

3.1  并行计算模型概述 33

3.1.1  串行计算模型与并行计算模型 33

3.1.2  并行计算模型与并行算法 33

3.1.3  并行计算模型与并行系统中其他模型的关系 34

3.2  PRAM模型 34

3.2.1  基本PRAM模型 34

3.2.2  实例 35

3.3  BSP模型 36

3.3.1  BSP模型原理 36

3.3.2  实例 37

3.4  LogP模型 38

3.4.1  LogP模型原理 38

3.4.2  实例 38

3.5  并行计算模型比较 39

3.5.1  PRAM模型和LogP模型的比较 39

3.5.2  BSP模型和LogP模型的比较 39

习题 40

第4章  并行算法设计基础 41

4.1  并行算法设计方法 41

4.1.1  基本方法 41

4.1.2  实例 42

4.2  并行算法设计过程 44

4.2.1  PCAM设计方法学 45

4.2.2  划分 45

4.2.3  通信 47

4.2.4  组合 49

4.2.5  映射 51

4.3  并行算法设计技术 52

4.4  求和问题的并行算法设计 53

习题 54

第5章  并行计算性能评测 55

5.1  基本概念 55

5.1.1  运行时间 55

5.1.2  问题规模 56

5.1.3  额外开销函数 56

5.2  并行系统的性能分析 58

5.2.1  加速比 58

5.2.2  效率 62

5.2.3  开销 63

5.2.4  粒度和数据映射对性能的影响 63

5.2.5  实例 64

5.3  并行系统的可扩展性度量 64

5.3.1  可扩展性 64

5.3.2  度量指标 66

5.3.3  实例 68

习题 69

第6章  OpenMP多线程并行程序设计 70

6.1  OpenMP编程基础 70

6.1.1  OpenMP多线程编程模型 70

6.1.2  OpenMP程序结构 71

6.1.3  使用Microsoft Visual Studio.NET编写OpenMP程序 72

6.2  编译指导语句 73

6.2.1  并行域结构——parallel指令 74

6.2.2  共享任务结构 75

6.2.3  同步结构 82

6.2.4  数据处理子句 87

6.3  运行时库函数 96

6.3.1  基本函数 96

6.3.2  运行时库函数的互斥锁支持 97

6.4  环境变量 99

6.5  实例 99

6.5.1  求和 99

6.5.2  数值积分 103

6.6  OpenMP多线程程序性能分析 108

6.6.1  并行额外开销 108

6.6.2  线程同步带来的开销 110

6.6.3  负载均衡 111

6.6.4  OpenMP中的任务调度 113

习题 119

第7章  MPI消息传递并行程序设计 121

7.1  消息传递接口 121

7.1.1  简介 121

7.1.2  MPI程序特点 121

7.2  典型MPI实现——MPICH 123

7.2.1  简介 123

7.2.2  MPICH的安装和配置 123

7.3  MPI编程基础 127

7.3.1  简单的MPI程序示例 127

7.3.2  MPI程序的4个基本函数 128

7.3.3  统计时间 128

7.3.4  错误管理 128

7.4  MPI的点对点通信 129

7.4.1  点对点通信的例子 129

7.4.2  MPI_Send()函数 130

7.4.3  MPI_Recv()函数 130

7.4.4  消息管理七要素 131

7.4.5  非阻塞通信 133

7.5  MPI群集通信 133

7.5.1  一对多群集通信函数 133

7.5.2  多对一群集通信函数 134

7.5.3  多对多群集通信函数 135

7.5.4  同步函数 136

7.6  实例 137

7.6.1  求和 137

7.6.2  数值积分 138

习题 139

第8章  Java多线程并行程序设计 140

8.1  线程 140

8.1.1  基本概念 140

8.1.2  线程的状态与生命周期 141

8.1.3  线程调度与优先级 142

8.2  Runnable接口与Thread类 142

8.2.1  Runnable接口 142

8.2.2  Thread类 142

8.3  多线程的实现 144

8.3.1  创建Thread类的子类 144

8.3.2  实现Runnable接口 147

8.3.3  两种方法的比较 147

8.4  线程的同步与死锁 150

8.4.1  线程同步 150

8.4.2  线程死锁 156

8.5  实例 156

8.5.1  求和 156

8.5.2  数值积分 159

习题 161

第9章  Python并行程序设计 162

9.1  Python多线程 162

9.2  Python多进程并行程序设计 163

9.2.1  Process类实现并行 163

9.2.2  Python多进程的通信 165

9.2.3  Python多进程的数据共享 167

9.2.4  进程间同步 169

9.2.5  进程池 169

9.2.6  实例 171

9.3  Python GPU并行程序设计 174

9.3.1  概述 174

9.3.2  常用函数 175

9.3.3  神经网络概述 179

9.3.4  实例 181

习题 183

第10章  大数据分布式计算 184

10.1  Hadoop分布式计算平台 184

10.2  MapReduce分布式并行编程模型 185

10.2.1  MapReduce模型简介 185

10.2.2  MapReduce工作流程 186

10.2.3  WordCount分析 188

10.2.4  MapReduce实例 189

10.3  Spark分布式计算框架 193

10.3.1  并行程序设计策略 193

10.3.2  Spark RDD基本操作 195

10.3.3  Spark应用程序实例 196

习题 197

参考文献 198