科技
类型
8.4
豆瓣评分
可以朗读
语音朗读
465千字
字数
2017-07-01
发行日期
展开全部
主编推荐语
这本书帮你了解并行编程中涉及的问题,以及提供如何正确解决这些问题的方法。
内容简介
本书首先以霍金提出的两个理论物理限制为引子,解释了多核并行计算兴起的原因,并从硬件的角度阐述并行编程的难题。
接着,本书以常见的计数器为例,探讨其不同的实现方法及适用场景。在这些实现方法中,除了介绍常见的锁以外,本书还重点介绍了RCU的使用及其原理,以及实现RCU的基础:内存屏障。
最后,本书还介绍了并行软件的验证,以及并行实时计算等内容。本书适合于对并行编程有兴趣的大学生、研究生,以及需要对项目进行深度性能优化的软硬件工程师,特别值得一提的是,本书对操作系统内核工程师也很有价值。
目录
- 版权信息
- 内容简介
- 声明
- 读者服务
- 作者序
- 推荐语
- 推荐序
- 译者序1
- 译者序2
- 第1章 如何使用本书
- 1.1 路线图
- 1.2 小问题
- 1.3 除本书之外的选择
- 1.4 示例源代码
- 1.5 这本书属于谁
- 第2章 简介
- 2.1 导致并行编程困难的历史原因
- 2.2 并行编程的目标
- 2.3 并行编程的替代方案
- 2.4 是什么使并行编程变得复杂
- 2.5 本章的讨论
- 第3章 硬件和它的习惯
- 3.1 概述
- 3.2 开销
- 3.3 硬件的免费午餐
- 3.4 对软件设计的启示
- 第4章 办事的家伙
- 4.1 脚本语言
- 4.2 POSIX多进程
- 4.3 原子操作
- 4.4 Linux内核中类似POSIX的操作
- 4.5 如何选择趁手的工具
- 第5章 计数
- 5.1 为什么并发计数不可小看
- 5.2 统计计数器
- 5.3 近似上限计数器
- 5.4 精确上限计数
- 5.5 特殊场合的并行计数
- 5.6 关于并行计数的讨论
- 第6章 对分割和同步的设计
- 6.1 分割练习
- 6.2 设计准则
- 6.3 同步粒度
- 6.4 并行快速路径
- 6.5 分割之外
- 6.6 分割、并行化与优化
- 第7章 锁
- 7.1 努力活着
- 7.2 锁的类型
- 7.3 锁在实现中的问题
- 7.4 基于锁的存在保证
- 7.5 锁:是英雄还是恶棍
- 7.6 总结
- 第8章 数据所有权
- 8.1 多进程
- 8.2 部分数据所有权和pthread线程库
- 8.3 函数输送
- 8.4 指派线程
- 8.5 私有化
- 8.6 数据所有权的其他用途
- 第9章 延后处理
- 9.1 引用计数
- 9.2 顺序锁
- 9.3 读-复制-修改(RCU)
- 9.4 如何选择
- 9.5 更新端怎么办
- 第10章 数据结构
- 10.1 从例子入手
- 10.2 可分割的数据结构
- 10.3 读侧重的数据结构
- 10.4 不可分割的数据结构
- 10.5 其他数据结构
- 10.6 微优化
- 10.7 总结
- 第11章 验证
- 11.1 简介
- 11.2 跟踪
- 11.3 断言
- 11.4 静态分析
- 11.5 代码走查
- 11.6 几率及海森堡BUG
- 11.7 性能评估
- 11.8 总结
- 第12章 形式验证
- 12.1 通用目的的状态空间搜索
- 12.2 特定目的的状态空间搜索
- 12.3 公理方法
- 12.4 SAT求解器
- 12.5 总结
- 第13章 综合应用
- 13.1 计数难题
- 13.2 使用RCU拯救并行软件性能
- 13.3 散列难题
- 第14章 高级同步
- 14.1 避免锁
- 14.2 内存屏障
- 14.3 非阻塞同步
- 第15章 并行实时计算
- 15.1 什么是实时计算
- 15.2 谁需要实时计算
- 15.3 谁需要并行实时计算
- 15.4 实现并行实时系统
- 15.5 实时VS.快速:如何选择
- 第16章 易于使用
- 16.1 简单是什么
- 16.2 API设计的Rusty准则
- 16.3 修整Mandelbrot集合
- 第17章 未来的冲突
- 17.1 曾经的CPU技术不代表未来
- 17.2 事务内存
- 17.3 硬件事务内存
- 17.4 并行函数式编程
- 附录A 重要问题
- A.1 “After”的含义是什么
- A.2 “并发”和“并行”之间的差异是什么
- A.3 现在是什么时间
- 附录B 同步原语
- B.1 组织和初始化
- B.2 线程创建、销毁及控制
- B.3 锁
- B.4 每线程变量
- B.5 性能
- 附录C 为什么需要内存屏障
- C.1 缓存结构
- C.2 缓存一致性协议
- C.3 存储导致不必要的停顿
- C.4 存储序列导致不必要的停顿
- C.5 读和写内存屏障
- C.6 内存屏障示例
- C.7 特定的内存屏障指令
- C.8 内存屏障是永恒的吗
- C.9 对硬件设计者的建议
- 附录D 小问题答案
- D.1 如何使用本书
- D.2 简介
- D.3 硬件和它的习惯
- D.4 办事的家伙
- D.5 计数
- D.6 对分割和同步的设计
- D.7 锁
- D.8 数据所有权
- D.9 延迟处理
- D.10 数据结构
- D.11 验证
- D.12 形式验证
- D.13 综合应用
- D.14 高级同步
- D.15 并行实时计算
- D.16 易于使用
- D.17 未来的冲突
- D.18 重要问题
- D.19 同步原语
- D.20 为什么需要内存屏障
- 附录E 术语
- 附录F 感谢
- F.1 评审者
- F.2 硬件提供者
- F.3 原始出处
- F.4 图表作者
- F.5 其他帮助
展开全部
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。