多核应用编程实战
作者:(美)戈夫 著,郭晴霞 译
出版时间:2013
《多核应用编程实战》是一本全面实用的多核应用编程指南,旨在介绍如何编写功能正确、性能优越且适合扩展为在多个CPU核心的系统运行的应用程序。《多核应用编程实战》面向多种操作系统和处理器类型引用程序示例,内容涵盖类UNIX操作系统(Linux、OracleSolaris、OSX)和Windows系统上多核应用的编写方法、多核的硬件实现对应用程序的性能影响、编写并行应用程序时要避免的潜在问题,以及如何编写可扩展至大量并行线程的应用程序。《多核应用编程实战》适合所有C程序员学习参考
第1章 硬件、进程和线程
1.1 计算机的内部结构
1.2 多核处理器的缘起
1.2.1 在单芯片上支持多线程
1.2.2 通过处理器核心流水线作业提高指令发出率
1.2.3 使用缓存保存最近使用的数据
1.2.4 用虚拟内存存储数据
1.2.5 从虚拟地址转换到物理地址
1.3 多处理器系统的特征
1.4 源代码到汇编语言的转换
1.4.1 32位与64位代码的性能
1.4.2 确保内存操作的正确顺序
1.4.3 进程和线程的差异
1.5 小结
第2章 高性能编码
2.1 定义性能
2.2 了解算法复杂度
2.2.1 算法复杂度的示例
2.2.2 算法复杂度的重要性
2.2.3 谨慎运用算法复杂度
2.3 结构如何影响性能
2.3.1 在源代码和生成结构上权衡性能和便利性
2.3.2 利用库结构化应用程序
2.3.3 数据结构对性能的影响
2.4 编译器的作用
2.4.1 两种编译器优化
2.4.2 选择合适的编译器选项
2.4.3 如何用跨文件优化提高性能
2.4.4 使用配置文件反馈
2.4.5 潜在的指针别名会如何抑制编译器优化
2.5 通过分析确定占用时间的地方
2.6 怎样避免手动优化
2.7 从设计角度看性能
2.8 小结
第3章 识别并行机会
3.1 使用多进程提高系统工作效率
3.2 多用户使用一个系统
3.3 通过整合提高机器工作效率
3.3.1 用容器隔离共享一个系统的应用程序
3.3.2 使用虚拟机监控程序托管多个操作系统
3.4 采用并行机制提高单个任务的性能
3.4.1 理解并行应用程序
3.4.2 并行如何影响算法的选择
3.4.3 Amdahl定律
3.4.4 确定最大实际线程数
3.4.5 同步成本怎样降低扩展性
3.5 并行模式
3.5.1 使用SIMD指令的数据并行
3.5.2 通过进程或线程实现并行化