如果你希望通过并发编程来充分发挥多核处理器的强大功能,那么本书将为你提供所需的理论知识和实际经验。《并发的艺术》是为数不多的几本介绍如何在多核处理器的共享内存模型中实现算法的书籍之一,它并非仅仅介绍一些理论模型或者分布式内存架构。本书详细分析了各种示例程序,这些内容非常有助于你将串行代码转换为并行代码,此外还介绍了如何避免一些常见的错误。
本书的作者是Intel公司的一位资深工程师,他从事并发编程已经有20多年的时间,本书将帮助你:
- 分析在共享内存模型与在分布式内存模型之间的编程差异。
- 学习如何设计多线程程序,包括对程序的测试和调优。
- 了解如何最有效地使用各种不同的线程化机制,包括Windows线程,POSIX线程,OpenMP以及Intel Threading Building Blocks。
- 掌握如何实现各种并发算法,包括排序,搜索,图以及其他一些使用的计算。
《并发的艺术》还介绍了如何在算法中实现高可伸缩性,使得算法能够充分发挥将来包含更多核处理器的强大功能。对于开发并行代码算法的程序员来说,本书是必不可少的。
译者序
前言
第1章 并行让程序运行得更快
1.1 你可能会想到的一些问题
1.2 采用线程化方法的4个步骤
1.3 并行算法的背景知识
1.4 共享内存编程与分布式内存编程的比较
1.5 本书采用的并发编程方法
第2章 是否采用并发
2.1 并发算法的设计模型
2.2 哪些算法不能并行
第3章 算法正确性证明与性能衡量
3.1 并行算法的验证
3.2 示例:临界区问题
3.3 性能测试(程序的执行情况如何)
3.4 硬件并行性的发展历史
第4章 多线程程序设计中的8条简单原则
4.1 规则1:找出真正独立的运算
4.2 规则2:在尽可能高的层次上实现并发
4.3 规则3:尽早考虑通过增加处理器核的数量来获得可伸缩性
4.4 规则4:尽可能使用线程安全的库
4.5 规则5:使用正确的多线程模型
4.6 规则6:永远不要假设程序会按照某种特定的顺序执行
4.7 规则7:尽可能使用线程局部存储或者与特定数据相关的锁
4.8 规则8:要敢于对代码进行修改以获得更好的并发性
第5章 线程化库
5.1 隐式线程化
5.2 显式线程化
5.3 还剩下哪些内容没有介绍
5.4 特定领域的库
第6章 并行求和与前缀求和
6.1 并行求和
6.2 前缀求和
6.3 选择
6.4 最后的思考
第7章 映射归约
7.1 并发映射运算
7.2 并发归约运算
7.3 映射归约的应用
7.4 将映射归约作为一般性并发
第8章 排序
8.1 冒泡排序
8.2 奇偶换位排序
8.3 希尔排序
8.4 快速排序
8.5 基数排序
第9章 搜索
9.1 未排序的数据序列
9.2 二分搜索
第10章 图算法
10.1 深度优先搜索
10.2 最短路径问题
10.3 最小生成树
第11章 线程化工具
11.1 调试器
11.2 性能工具
11.3 还剩下什么内容没有介绍
11.4 再接再厉
术语表
封面说明
《思维导图:文言文满分学习法》内容简介:本书运用思维导图这种可视化的思维技术,运用图文并茂的形式和严谨的逻辑结构将中学阶段
《中国财政分权、地方政府行为与经济增长》内容简介:本书是国家社科基金重点项目的研究成果,入选“国家哲学社会科学成果文库”。
“Inthisupdatedandexpandededitionofherexcellenttelecommunicationsprim...
《汇编语言:基于linux环境(第3版)》是风靡美国的经典汇编语言畅销书籍的最新版,美国计算机领域著名作者jeffduntemann的力作。
《硬派健身:100卡美食》内容简介:100卡能吃什么?——麻辣小龙虾可以有!水煮肉可以有!奶茶也可以有!科学阐述减肥路上关于吃的
软件设计师教程-全国计算机技术与软件专业技术资格(水平)考试指定用书-(第4版) 本书特色 本书作为中级职称的软考指定教材,具有比较权威的指导意义。本书根据《软...
OpenCL领域公认的权威著作,由OpenCL核心设计人员亲自执笔,不仅全面而深刻地解读了OpenCL规范和编程模型,而且通过大量案例和代
五笔字型1日练成:2007版 本书特色 本书阐述五笔字型输入法的基础知识,字根的分布规律,然后再以大量的实例,讲述五笔字型汉字拆分方法。本书附有86版,98版五...
Buildadjangocontentmanagementsystem,blog,andsocialnetworkingsitewithJamesBennett...
《Python深度强化学习:基于Chainer和OpenAI Gym》内容简介:近年来,机器学习受到了人们的广泛关注。本书面向普通大众,指导读者在
《计算机网络基础与应用(学习指南)》内容简介:为满足读者对计算机网络基础知识与网络系统集成技术学习的需要,注重理论联系实际
《Node.js实战(双色)》通过8个实例讲解了Node.js在实战开发中的应用,涉及Node.js常用框架、非关系型数据库、关系型数据库、运
GetYourMoveOn!InMakingThingsMove:DIYMechanismsforInventors,Hobbyists,andArtists,...
HeadFirstSQLisaboutRDBMS(databases)specificallymySQL(version5.0ornewer)andinclud...
《杭州啊杭州》内容简介:本书收录了丰子恺、巴金、余秋雨等作者的散文集,这25篇文章,篇篇都是难得的美文。其中,丰子恺、夏衍、
《天文学简史(中文版)》内容简介:史前的农夫利用天上的星辰判断季节的更替;古希腊天文学与古巴比伦天文学合流;17世纪,牛顿提
CSSMasteristailor-madeforthewebdesignerwhosreallyseriousabouttakingtheirskillsto...
作者写作本书的灵感以及作者能提供的大量翔实的信息都直接来源于作者在UMTS论坛担任主席内5年的经历。在它最为活跃的阶段,这个国
《超越财富:家族企业的传承与革新》内容简介:无论是欧洲的罗斯柴尔德家族,还是美国的洛克菲勒家族,或者东亚的很多财团,家族企
基于机器的智能人脸识别 本书特色 《基于机器的智能人脸识别》是由高等教育出版社出版的。基于机器的智能人脸识别 目录 Introduction 1.1 Face ...