- ISBN:9787111656661
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:372
- 出版时间:2020-06-01
- 条形码:9787111656661 ; 978-7-111-65666-1
本书特色
针对共享内存和分布式内存体系结构,全面提升并行编程能力涵盖C++11线程API、OpenMP、CUDA、MPI、UPC++等主题,关注算法及其性能提供免费的Web实验工具,提升教学效率Parallel Programming: Concepts and Practice并行程序设计概念与实践[ 德 ] 贝蒂尔·施密特(Bertil Schmidt) [ 西 ] 豪尔赫·冈萨雷斯-多明格斯(Jorge Gonzá lez-Domínguez) [ 德 ] 克里斯蒂安·洪特(Christian Hundt)著[ 德 ] 莫里茨·施拉布(Moritz Schlarb) 张常有 吴长茂 解庆春 译
内容简介
本书由德国约翰内斯·古腾堡大学并行和分布式架构团队撰写,对并行编程的不错主题进行了深入讨论,除了涵盖基础概念外,还讲授了共享内存和分布式内存体系结构的实用编程技巧。作者提供了一套进行自动代码评估的开源系统,可方便地访问并行计算资源,这也使得本书特别适合于课堂教学。
目录
前言
致谢
第1章 绪论 1
11 一个有趣的例子及其分析 2
12 并行计算基础 10
121 分布式内存系统 10
122 共享内存系统 11
123 并行程序设计需考虑的因素 13
13 HPC动态和排名 15
14 附加练习 17
第2章 理论背景 19
21 PRAM 20
211 PRAM变体 21
212 PRAM上的并行前缀计算 22
213 PRAM上稀疏数组的压缩算法 24
22 网络拓扑 25
23 Amdahl定律和Gustafson定律 29
24 Foster的并行算法设计方法学 34
25 附加练习 37
参考文献 40
第3章 现代体系结构 41
31 存储层次 42
311 冯·诺依曼瓶颈 42
312 高速缓冲存储器 43
313 缓存算法 44
314 优化缓存访问 45
315 高速缓存一致性 48
316 虚假共享 50
317 并发多线程技术和预取技术 50
318 展望 51
32 并行性的层次 51
321 Flynn分类法 51
322 SIMD概念 53
323 通用微处理器上的向量化 54
324 结构体数组和数组结构体 57
325 展望 63
33 附加练习 63
参考文献 67
第4章 C++多线程编程 68
41 多线程编程简介 69
411 多线程编程和多进程编程的区别 69
412 派生和并入线程 69
413 我们的**个多线程程序 71
42 处理返回值 73
421 传统方法 74
422 使用promise和future的现代方法 75
423 异步方式 80
43 基于静态分发的调度机制 82
431 串行程序 83
432 线程的区块分发 87
433 线程的循环分发 90
434 虚假共享 91
435 线程的块循环分发 93
44 处理负载不平衡 95
441 静态调度 99
442 动态块循环分发 101
45 用条件变量通知线程 104
451 为一个睡觉的学生建模 105
452 使用条件变量 107
453 使用future和promise单发同步 108
46 隐式可数集合上的并行化 110
461 隐式可数集合 111
462 线程池用例 112
463 一个简单线程池的实现 114
47 附加练习 119
参考文献 121
第5章 高级C++11多线程编程 122
51 无锁编程 122
511 原子计数 123
512 非基本原子数据类型 124
513 利用比较交换以原子方式并行化*大值归约 126
514 任意原子操作 129
515 ABA问题 132
52 工作共享线程池 133
521 工作共享线程池的用例 133
522 工作共享的实现 135
53 并行图搜索 137
531 二元背包问题 138
532 串行实现 139
533 并行实现 144
54 展望 146
55 附加练习 148
参考文献 149
第6章 OpenMP 150
61 OpenMP简介 151
611 OpenMP简史 151
612 基础 151
62 parallel for制导语句 153
621 向量加法 154
622 变量共享和私有化 157
623 矩阵向量乘法 160
63 基本的并行归约 162
631 *近邻分类 162
632 手写数字数据集MNIST 163
633 完全配对距离计算的理论视角 164
634 完全配对计算的实现 165
635 并行标签预测 168
636 性能评测 169
64 不平衡循环调度 171
641 对称性引起的负载失衡 172
642 内积计算实现 173
643 性能评测 174
65 高级归约 175
651 MNIST数据集上的SOFTMAX回归分类器 175
652 定制归约操作符 183
653 OpenMP高级归约 187
66 任务并行 189
661 树遍历 190
662 循环中生成任务 193
67 SIMD向量化 193
671 数据依赖 195
672 向量化感知函数 196
68 展望 196
69 附加练习 197
参考文献 202
第7章 统一计算设备架构 203
71 CUDA简介 204
72 支持CUDA的GPU硬件架构 206
721 主机与设备之间的互连 206
722 显存和峰值宽度 207
723 计算资源的组织 207
73 内存访问模式 211
731 均值名人脸的计算 212
732 计算中心化的数据矩阵 218
733 计算协方差矩阵 221
734 计算特征脸 229
74 内存层次结构 232
741 问题简介 233
742 串行DTW的线性内存算法 237
743 线性内存DTW的一个初始CUDA移植 243
744 共享内存中的波前松弛 248
745 并发调度和bank冲突 253
746 纹理内存和常量内存 254
75 优化准则 257
76 附加练习 258
参考文献 259
第8章 高级CUDA编程 261
81 warp内联函数和原子操作 261
811 分段并行归约 262
812 全局并行归约 265
813 任意原子操作 267
814 展望 269
82 利用多块GPU和流 269
821 牛顿迭代 269
822 利用多块GPU 272
823 通信和计算交叉 274
824 多块GPU上的流式计算 278
83 展望 280
831 统一内存 280
832 动态并行性 281
833 协作组 281
834 张量核心 281
835 GPU集群上的分布式计算 282
84 附加练习 282
参考文献 284
第9章 MPI 286
91 MPI简介 286
92 基本概念 288
93 点到点通信 289
94 非阻塞通信 292
9
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0 -
PREMIERE PRO 2023全面精通:视频剪辑+颜色调整+转场特效+字幕制作+案例实战
¥69.3¥99.0