登入帳戶  | 訂單查詢  | 購物車/收銀台(0) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書

『簡體書』并行程序设计:概念与实践

書城自編碼: 3521051
分類:簡體書→大陸圖書→教材研究生/本科/专科教材
作者: [德]贝蒂尔·施密特[Bertil,Schmidt]乔治·冈
國際書號(ISBN): 9787111656661
出版社: 机械工业出版社
出版日期: 2020-06-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:HK$ 157.1

我要買

 

** 我創建的書架 **
未登入.


新書推薦:
美丽与哀愁:第一次世界大战个人史
《 美丽与哀愁:第一次世界大战个人史 》

售價:HK$ 143.4
国家豁免法的域外借鉴与实践建议
《 国家豁免法的域外借鉴与实践建议 》

售價:HK$ 188.2
大单元教学设计20讲
《 大单元教学设计20讲 》

售價:HK$ 76.2
儿童自我关怀练习册:做自己最好的朋友
《 儿童自我关怀练习册:做自己最好的朋友 》

售價:HK$ 69.4
高敏感女性的力量(意大利心理学家FSP博士重磅力作。高敏感是优势,更是力量)
《 高敏感女性的力量(意大利心理学家FSP博士重磅力作。高敏感是优势,更是力量) 》

售價:HK$ 62.7
元好问与他的时代(中华学术译丛)
《 元好问与他的时代(中华学术译丛) 》

售價:HK$ 87.4
汽车传感器结构·原理·检测·维修
《 汽车传感器结构·原理·检测·维修 》

售價:HK$ 109.8
怪谈百物语:不能开的门(“日本文学史上的奇迹”宫部美雪重要代表作!日本妖怪物语集大成之作,系列累销突破200万册!)
《 怪谈百物语:不能开的门(“日本文学史上的奇迹”宫部美雪重要代表作!日本妖怪物语集大成之作,系列累销突破200万册!) 》

售價:HK$ 65.0

 

內容簡介:
本书由德国约翰内斯·古腾堡大学并行和分布式架构团队撰写,对并行编程的高级主题进行了深入讨论,除了涵盖基础概念外,还讲授了共享内存和分布式内存体系结构的实用编程技巧。作者提供了一套进行自动代码评估的开源系统,可方便地访问并行计算资源,这也使得本书特别适合于课堂教学。
目錄
译者序
前言
致谢
第1章 绪论1
1.1 一个有趣的例子及其分析2
1.2 并行计算基础10
1.2.1 分布式内存系统10
1.2.2 共享内存系统11
1.2.3 并行程序设计需考虑的因素13
1.3 HPC动态和排名15
1.4 附加练习17
第2章 理论背景19
2.1 PRAM20
2.1.1 PRAM变体21
2.1.2 PRAM上的并行前缀计算22
2.1.3 PRAM上稀疏数组的压缩算法24
2.2 网络拓扑25
2.3 Amdahl定律和Gustafson定律29
2.4 Foster的并行算法设计方法学34
2.5 附加练习37
参考文献40
第3章 现代体系结构41
3.1 存储层次42
3.1.1 冯·诺依曼瓶颈42
3.1.2 高速缓冲存储器43
3.1.3 缓存算法44
3.1.4 优化缓存访问45
3.1.5 高速缓存一致性48
3.1.6 虚假共享50
3.1.7 并发多线程技术和预取技术50
3.1.8 展望51
3.2 并行性的层次51
3.2.1 Flynn分类法51
3.2.2 SIMD概念53
3.2.3 通用微处理器上的向量化54
3.2.4 结构体数组和数组结构体57
3.2.5 展望63
3.3 附加练习63
参考文献67
第4章 C++多线程编程68
4.1 多线程编程简介69
4.1.1 多线程编程和多进程编程的区别69
4.1.2 派生和并入线程69
4.1.3 我们的第一个多线程程序71
4.2 处理返回值73
4.2.1 传统方法74
4.2.2 使用promise和future的现代方法75
4.2.3 异步方式80
4.3 基于静态分发的调度机制82
4.3.1 串行程序83
4.3.2 线程的区块分发87
4.3.3 线程的循环分发90
4.3.4 虚假共享91
4.3.5 线程的块循环分发93
4.4 处理负载不平衡95
4.4.1 静态调度99
4.4.2 动态块循环分发101
4.5 用条件变量通知线程104
4.5.1 为一个睡觉的学生建模105
4.5.2 使用条件变量107
4.5.3 使用future和promise单发同步108
4.6 隐式可数集合上的并行化110
4.6.1 隐式可数集合111
4.6.2 线程池用例112
4.6.3 一个简单线程池的实现114
4.7 附加练习119
参考文献121
第5章 高级C++11多线程编程122
5.1 无锁编程122
5.1.1 原子计数123
5.1.2 非基本原子数据类型124
5.1.3 利用比较交换以原子方式并行化最大值归约126
5.1.4 任意原子操作129
5.1.5 ABA问题132
5.2 工作共享线程池133
5.2.1 工作共享线程池的用例133
5.2.2 工作共享的实现135
5.3 并行图搜索137
5.3.1 二元背包问题138
5.3.2 串行实现139
5.3.3 并行实现144
5.4 展望146
5.5 附加练习148
参考文献149
第6章 OpenMP150
6.1 OpenMP简介151
6.1.1 OpenMP简史151
6.1.2 基础151
6.2 parallel for制导语句153
6.2.1 向量加法154
6.2.2 变量共享和私有化157
6.2.3 矩阵向量乘法160
6.3 基本的并行归约162
6.3.1 最近邻分类162
6.3.2 手写数字数据集MNIST163
6.3.3 完全配对距离计算的理论视角164
6.3.4 完全配对计算的实现165
6.3.5 并行标签预测168
6.3.6 性能评测169
6.4 不平衡循环调度171
6.4.1 对称性引起的负载失衡172
6.4.2 内积计算实现173
6.4.3 性能评测174
6.5 高级归约175
6.5.1 MNIST数据集上的SOFTMAX回归分类器175
6.5.2 定制归约操作符183
6.5.3 OpenMP高级归约187
6.6 任务并行189
6.6.1 树遍历190
6.6.2 循环中生成任务193
6.7 SIMD向量化193
6.7.1 数据依赖195
6.7.2 向量化感知函数196
6.8 展望196
6.9 附加练习197
参考文献202
第7章 统一计算设备架构203
7.1 CUDA简介204
7.2 支持CUDA的GPU硬件架构206
7.2.1 主机与设备之间的互连206
7.2.2 显存和峰值宽度207
7.2.3 计算资源的组织207
7.3 内存访问模式211
7.3.1 均值名人脸的计算212
7.3.2 计算中心化的数据矩阵218
7.3.3 计算协方差矩阵221
7.3.4 计算特征脸229
7.4 内存层次结构232
7.4.1 问题简介233
7.4.2 串行DTW的线性内存算法237
7.4.3 线性内存DTW的一个初始CUDA移植243
7.4.4 共享内存中的波前松弛248
7.4.5 并发调度和bank冲突253
7.4.6 纹理内存和常量内存254
7.5 优化准则257
7.6 附加练习258
参考文献259
第8章 高级CUDA编程261
8.1 warp内联函数和原子操作261
8.1.1 分段并行归约262
8.1.2 全局并行归约265
8.1.3 任意原子操作267
8.1.4 展望269
8.2 利用多块GPU和流269
8.2.1 牛顿迭代269
8.2.2 利用多块GPU272
8.2.3 通信和计算交叉274
8.2.4 多块GPU上的流式计算278
8.3 展望280
8.3.1 统一内存280
8.3.2 动态并行性281
8.3.3 协作组281
8.3.4 张量核心281
8.3.5 GPU集群上的分布式计算282
8.4 附加练习282
参考文献284
第9章 MPI286
9.1 MPI简介286
9.2 基本概念288
9.3 点到点通信289
9.4 非阻塞通信292
9
內容試閱
并行无处不在!如今,任意一款现代CPU都至少包含2个核心,一些CPU甚至配置了超过50个处理单元。对于有多个CPU的更大的系统,比如多个服务器节点、计算机集群、超级计算机等,它们甚至能够获得更高的并行度。因此,对于科学家、工程师、程序员来说,必须具备在这类系统上直接高效编写程序的能力。本书的主题是全面介绍并行编程领域的知识,以满足上述需求。本书针对共享内存和分布式内存体系结构讲解了实用的并行编程方法,包括C++11线程API、OpenMP、CUDA、MPI、UPC++,以及必不可少的理论背景。本书还提供大量的编程实例,它们基于C++编程语言针对多线程特性的扩展版本C++11和C++14。
本书以“并行编程”或者“高性能计算”两门课程的学生为目标读者。在计算机科学专业或计算机工程专业,很多大学都为高年级本科生或者研究生开设了这两门课程。此外,本书还适合用作其他学科学生在辅修计算机科学时的教材,或者用作相关领域专业人员的参考资料,譬如研究科学家、数据分析师或研发工程师等。理解本书内容需要有编写CC++串行代码的经验,并具备基本的数学知识。
高性能计算和自然科学之间历来有良好的共生关系,我们将基于真实应用讲述并行概念。这些应用包括:基本线性代数例程、机器学习算法,以及物理模拟和计算机科学领域中的传统算法。编写正确而高效的代码是每一位程序员的关键技能,因此我们关注算法的真正实现和性能评估。尽管如此,我们还是深入讨论了算法的理论特性。每章都有一组附加的编程练习,可在本书配套的Web框架中完成这些练习。自动代码评估系统(System for Automated Code Evaluation,SAUCE)为提交解答方案和后续的课堂讲解提供了一个基于Web的测试环境。仅需的前提条件是一个与HTML5兼容的Web浏览器,以支持嵌入课堂教学的交互编程练习。SAUCE已经以docker镜像发布,可在下列网站下载:
https:parallelprogrammingbook.org
该网站汇集了本书相关的在线资源,比如安装指南、勘误表、附加材料(如课件、针对教师精选的部分练习答案)等。
如果你是一名学生或者专业人士,目标是学习编程技术,那么我们建议你首先阅读前3章,从并行编程基础、理论模型、硬件体系结构开始。然后,你就可以深入学习C++11多线程、OpenMP、CUDA或MPI中的任意一章。这些都是介绍性章节,内容几乎自成体系。关于高级C++11多线程、高级CUDA和UPC++的内容依赖前导章节中的技术,所以不能独立阅读。
如果你是一名教师,我们推荐一套包含14讲的授课体系,大体上覆盖了介绍性章节中提到的全部应用程序。你可以从第1章开始,第1讲讨论基础知识,包括利用超立方体并行求和的算法及其分析、基本度量标准(如加速比、并行效率、开销等)以及对排名指标的讨论等。第2讲应该包括PRAM、网络拓扑、强弱可扩展性等。如果将来想详细讨论CUDA,或者重点强调CPU的硬件体系结构,可以在PRAM上分配更多时间。可以用2~3讲的时间讲解C++11线程API、CUDA、MPI方面的基础知识。OpenMP相关内容可以分配1~2讲的时间。剩余时间可以选择讨论多线程、CUDA或者基于PGAS的UPC++语言等高级章节的相关内容。
另外一种可选的方法是,把本书内容分成两门课程,重点放在课堂上的“结对编程”。第一门课可以从基于CPU的并行编程技术开始,涵盖从前3章中选定的主题。这样,C++11多线程、OpenMP、MPI就能够讲解得足够细致。第二门课将侧重于高级并行方法,包括CUDA感知的MPI或基于PGAS的UPC++等技术相结合的扩展CUDA编程。
希望本书陪伴你度过快乐时光。充满活力,探索代码!最后,我们将非常高兴能收到你的任何反馈,以便帮助我们尽可能完善本书相关内容。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 大陸用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.