图书介绍

多核与GPU编程 工具、方法及实践pdf电子书版本下载

多核与GPU编程  工具、方法及实践
  • (阿联酋)杰拉西莫斯·巴拉斯(GerassimosBarlas)著;张云泉,贾海鹏,李士刚等译 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111557685
  • 出版时间:2017
  • 标注页数:536页
  • 文件大小:53MB
  • 文件页数:551页
  • 主题词:计算机图形学

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
下载压缩包 [复制下载地址] 温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页

下载说明

多核与GPU编程 工具、方法及实践PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 概述 1

1.1多核计算机时代 1

1.2并行计算机的分类 3

1.3现代计算机概览 4

1.3.1 Cell BE处理器 5

1.3.2 NVIDIA Kepler 6

1.3.3 AMD APU 9

1.3.4从多核到众核:Tilera TILE-Gx8072 和Intel Xeon Phi 10

1.4性能指标 12

1.5并行程序性能的预测与测量 16

1.5.1 Amdahl定律 18

1.5.2 Gustafson-Barsis定律 20

第2章 多核和并行程序设计 23

2.1引言 23

2.2 PCAM方法学 24

2.3分解模式 26

2.3.1任务并行 27

2.3.2分而治之分解 28

2.3.3几何分解 30

2.3.4递归数据分解 32

2.3.5流水线分解 35

2.3.6基于事件的合作分解 39

2.4程序结构模式 39

2.4.1单程序多数据 40

2.4.2多程序多数据 40

2.4.3主/从 41

2.4.4 map-reduce 41

2.4.5 fork/join 42

2.4.6循环并行 44

2.5匹配分解模式和程序结构模式 44

第3章 共享内存编程:线程 46

3.1引言 46

3.2线程 48

3.2.1线程的定义 48

3.2.2线程的作用 49

3.2.3线程的生成和初始化 49

3.2.4在线程间共享数据 55

3.3设计考虑 57

3.4信号量 58

3.5经典问题中的信号量 62

3.5.1生产者-消费者 63

3.5.2终止处理 66

3.5.3理发师问题:引入公平性 75

3.5.4读者-写者问题 80

3.6 monitor 84

3.6.1设计方法1: monitor内部的关键区 87

3.6.2设计方法2: monitor控制关键区的入口 87

3.7经典问题中的monitor 91

3.7.1重新考虑生产者-消费者问题 91

3.7.2重新考虑读者-写者问题 95

3.8动态线程管理与静态线程管理 102

3.8.1 Qt线程池 102

3.8.2线程池的创建和管理 103

3.9调试多线程应用 111

3.10高层次结构:无须显式利用线程的多线程编程 115

3.10.1并发map 116

3.10.2 map-reduce 118

3.10.3并发过滤 120

3.10.4 filter-reduce 121

3.10.5案例研究:多线程存储 122

3.10.6案例研究:多线程图像匹配 131

第4章 共享内存编程:OpenMP 140

4.1引言 140

4.2第一个OpenMP程序 141

4.3变量作用域 144

4.3.1定积分OpenMP版本V.0:人工划分 146

4.3.2定积分OpenMP版本V.1:无竞争条件的人工划分 147

4.3.3定积分OpenMP V.2:基于锁的隐式划分 148

4.3.4定积分OpenMP V.3:基于归约的隐式划分 150

4.3.5变量作用域总结 151

4.4循环级并行 152

4.4.1数据依赖 154

4.4.2嵌套循环 162

4.4.3调度 162

4.5任务并行 166

4.5.1 sections指令 166

4.5.2 task指令 171

4.6同步结构 177

4.7正确性与优化问题 183

4.7.1线程安全 183

4.7.2假共享 187

4.8案例研究:OpenMP中的排序算法 192

4.8.1自下而上归并排序算法的OpenMP实现 192

4.8.2自上而下归并排序算法的OpenMP实现 195

4.8.3性能评估 200

第5章 分布式内存编程 203

5.1通信进程 203

5.2 MPI 204

5.3核心概念 205

5.4你的第一个MPI程序 206

5.5程序体系结构 208

5.5.1 SPMD 208

5.5.2 MPMD 209

5.6点对点通信 210

5.7可选的点对点通信模式 214

5.8非阻塞通信 216

5.9点对点通信小结 220

5.10错误报告与处理 220

5.11集合通信简介 222

5.11.1分发 226

5.11.2收集 231

5.11.3归约 233

5.11.4多对多收集 237

5.11.5多对多分发 240

5.11.6多对多归约 245

5.11.7全局同步 245

5.12通信对象 245

5.12.1派生数据类型 246

5.12.2打包/解包 253

5.13节点管理:通信器和组 254

5.13.1创建组 255

5.13.2建立内部通信器 257

5.14单边通信 259

5.14.1 RMA通信函数 261

5.14.2 RMA同步函数 262

5.15 I/O注意事项 270

5.16 MPI多进程和多线程混合编程 276

5.17时序和性能测量 279

5.18调试和分析MPI程序 279

5.19 Boost.MPI库 283

5.19.1阻塞和非阻塞通信 285

5.19.2数据序列化 289

5.19.3集合通信 292

5.20案例研究:有限扩散聚合模型 295

5.21案例研究:暴力加密破解 300

5.21.1版本1:“基本型”MPI 300

5.21.2版本2: MPI与OpenMP的结合 305

5.22案例研究:主/从式并行模型的MPI实现 308

5.22.1简单主/从式设置 309

5.22.2多线程主/从式设置 316

第6章 GPU编程 333

6.1 GPU编程简介 333

6.2 CUDA编程模型:线程、线程块、线程网格 335

6.3 CUDA执行模型:流多处理器和warp 340

6.4 CUDA程序编译过程 344

6.5构建CUDA项目 347

6.6内存层次结构 349

6.6.1本地内存/寄存器 355

6.6.2共享内存 356

6.6.3常量内存 363

6.6.4 texture和surface内存 368

6.7优化技术 369

6.7.1线程组织设计 369

6.7.2 kernel结构 378

6.7.3共享内存访问 382

6.7.4全局内存访问 388

6.7.5 page-locked与zero-copy内存 392

6.7.6 统一内存 394

6.7.7异步执行和流 397

6.8动态并行 403

6.9 CUDA程序的调试 407

6.10 CUDA程序剖析 410

6.11 CUDA和MPI 412

6.12案例研究 417

6.12.1分形集合计算 417

6.12.2块加密算法 426

第7章 Thrust模板库 452

7.1引言 452

7.2使用Thrust的第一步 453

7.3 Thrust数据类型 456

7.4 Thrust算法 459

7.4.1变换算法 460

7.4.2排序与查询 463

7.4.3归约 468

7.4.4 scan/前缀和 471

7.4.5数据管理与处理 472

7.5花式迭代器 475

7.6交换设备后端 480

7.7案例研究 481

7.7.1蒙特卡洛积分 481

7.7.2 DNA序列比对 485

第8章 负载均衡 493

8.1引言 493

8.2动态负载均衡:Linda的遗赠 494

8.3静态负载均衡:可分负载理论方法 495

8.3.1建模开销 496

8.3.2通信设置 502

8.3.3分析 503

8.3.4总结:简短的文献综述 510

8.4 DLTlib:分割工作负载的库 513

8.5案例研究 516

8.5.1 Mandelbrot集“电影”的混合计算:动态负载均衡案例研究 516

8.5.2分布式块加密:静态负载均衡案例研究 526

精品推荐