点此搜书

多核异构并行计算OpenMP4.5 C/C++篇
  • 作 者:雷洪编著
  • 出 版 社:北京:冶金工业出版社
  • 出版年份:2018
  • ISBN:9787502476571
  • 标注页数:239 页
  • PDF页数:251 页
  • 请阅读订购服务说明与试读!

文档类型

价格(积分)

购买连接

试读

PDF格式

9

立即购买

点击试读

订购服务说明

1、本站所有的书默认都是PDF格式,该格式图书只能阅读和打印,不能再次编辑。

2、除分上下册或者多册的情况下,一般PDF页数一定要大于标注页数才建议下单购买。【本资源251 ≥239页】

图书下载及付费说明

1、所有的电子图书为PDF格式,支持电脑、手机、平板等各类电子设备阅读;可以任意拷贝文件到不同的阅读设备里进行阅读。

2、电子图书在提交订单后一般半小时内处理完成,最晚48小时内处理完成。(非工作日购买会延迟)

3、所有的电子图书都是原书直接扫描方式制作而成。

1 并行计算概论 1

1.1 并行计算机的种类 2

1.1.1 多核CPU 2

1.1.2 GPU 2

1.1.3 CPU与存储器的连接方式 3

1.1.4 数据的通信方式 4

1.1.5 常见的并行计算硬件系统 5

1.1.6 指令和数据之间的工作方式 5

1.2 并行计算 5

1.2.1 并行计算、高性能计算与超级计算 5

1.2.2 并行处理技术 6

1.3 高性能并行计算特征 7

1.4 并行编程模式 7

1.4.1 共享内存模式 8

1.4.2 消息传递模式 8

1.4.3 数据并行模式 9

1.4.4 异构计算 10

1.5 OpenMP和MPI的特点 13

1.6 并行计算中常用概念 14

1.6.1 并发、并行和并行计算 14

1.6.2 程序、线程、进程和超线程 15

1.6.3 单核编程和多核编程 16

1.6.4 线程绑定 17

1.6.5 多线程编程和多进程编程 17

1.6.6 并行算法评价 18

1.7 OpenMP多核编程 20

1.7.1 OpenMP历史 20

1.7.2 OpenMP特点 21

1.8 Linux系统 22

1.9 常用编译器与OpenMP 22

1.9.1 Windows环境下Visual Studio 2008命令行界面的编译和执行 23

1.9.2 Windows环境下Visual Studio 2008菜单界面的编译和执行 24

1.9.3 Windows环境下MinGW-W64的安装 25

1.9.4 Linux环境下Intel C/C+++编译器icc的安装 26

1.9.5 在Windows系统下远程操作服务器端Linux环境下的编译器 26

1.9.6 Windows和Linux环境下常用命令和系统资源检查 27

1.10 小结 27

练习题 28

2 OpenMP编程简介 30

2.1 编译指导语句 30

2.2 并行执行模式 31

2.2.1 编译指导语句格式 31

2.2.2 主要指令 32

2.2.3 主要子句 33

2.2.4 指令的作用域 34

2.2.5 指令和子句的配套使用 35

2.3 头文件 36

2.4 常用库函数 37

2.5 最简单的并行程序 37

2.6 小结 42

练习题 42

3 数据环境 43

3.1 子句private、子句shared和子句default 43

3.2 子句firstprivate和子句lastprivate 49

3.3 指令threadprivate 52

3.4 子句copyin和子句copyprivate 58

3.5 子句reduction 62

3.6 数据竞争 67

3.7 伪共享 69

3.8 小结 71

练习题 72

4 并行控制 73

4.1 指令parallel 73

4.2 设定线程数量 76

4.3 默认模式 77

4.4 静态模式 77

4.5 动态模式 78

4.6 嵌套模式与num_threads子句 80

4.7 条件并行子句if 84

4.8 动态设置并行循环的线程数量 86

4.9 小结 86

练习题 86

5 并行构造 87

5.1 负载平衡 88

5.1.1 静态负载平衡 89

5.1.2 动态负载平衡 89

5.2 依赖关系 90

5.2.1 循环依赖 90

5.2.2 内存依赖 95

5.2.3 任务依赖 96

5.3 指令for 98

5.3.1 单重循环 100

5.3.2 嵌套循环 102

5.3.3 循环工作量的划分与调度 104

5.3.4 子句collapse 112

5.4 指令sections 115

5.5 指令single 117

5.6 合并的并行工作共享结构 119

5.7 小结 119

练习题 119

6 线程同步 120

6.1 互斥锁机制 121

6.2 事件同步机制 121

6.3 指令barrier 121

6.4 指令nowait 124

6.5 指令master 125

6.6 指令critieal 128

6.7 指令atomic 129

6.8 指令ordered 132

6.9 指令flush 135

6.10 小结 139

练习题 139

7 运行环境 140

7.1 环境变量 140

7.1.1 OMP_DYNAMIC 141

7.1.2 OMP_SCHEDULE 141

7.1.3 OMP_NUM_THREADS 141

7.1.4 OMP_NESTED 141

7.1.5 OMP_STACKSIZE 142

7.1.6 OMP_WAIT_POLICY 142

7.1.7 OMP_PROC_BIND 142

7.1.8 环境变量的设置方法 142

7.1.9 段错误和环境变量的应用 143

7.2 库函数 144

7.2.1 运行环境操作函数 144

7.2.2 OpenMP时间函数 146

7.2.3 热点分析 148

7.2.4 锁函数 151

7.3 小结 156

练习题 156

8 任务 157

8.1 任务简介 157

8.1.1 任务结构 158

8.1.2 任务类别 159

8.2 任务的创建 163

8.2.1 指令parallel和子句single 164

8.2.2 指令for 166

8.2.3 指令sections 168

8.2.4 包含任务 169

8.2.5 递归 171

8.3 任务调度原则 174

8.3.1 栅障barrier 176

8.3.2 指令taskwait 176

8.3.3 指令taskgroup 177

8.3.4 指令taskyield 179

8.3.5 子句if 180

8.4 任务的执行和完成 181

8.5 任务的数据环境 181

8.5.1 共享变量和私有变量 182

8.5.2 任务与对栈数据的引用 184

8.5.3 全局变量 187

8.6 任务依赖子句depend 188

8.7 指令taskloop 191

8.8 小规模任务 193

8.8.1 子句final 193

8.8.2 子句mergeable 194

8.9 子句priority 195

8.10 小结 195

练习题 195

9 向量化SIMD 196

9.1 SIMD的发展 196

9.2 代码风格 198

9.3 循环的串行向量化指令simd 199

9.3.1 子句aligned 204

9.3.2 子句safelen 204

9.3.3 子句simdlen 205

9.3.4 子句linear 205

9.4 循环的并行向量化指令for simd 207

9.5 函数的向量化指令declare simd 207

9.5.1 子句inbranch和notinbranch 208

9.5.2 子句uniform 210

9.6 小结 212

练习题 212

10 异构计算 213

10.1 目标设备查询 213

10.2 控制权的移交指令target 215

10.2.1 子句device 216

10.2.2 子句map 216

10.2.3 子句defaultmap 218

10.2.4 子句if 220

10.2.5 指令target data 221

10.2.6 指令target enter data和target exit data 224

10.2.7 指令target update 225

10.2.8 指令declare target 227

10.3 线程组群指令teams 228

10.4 工作共享指令distribute 230

10.5 异步执行和依赖性 232

10.6 OpenMP并行执行模式比较 234

10.7 小结 237

练习题 237

参考文献 238

购买PDF格式(9分)
返回顶部