图书导航
作者:英特尔软件学院教材编写组
字数:318
页数:318
版次:
定价:49.5
ISBN:978-7-313-06870-5
出版日期:2011/01
1 多核技术导论
1.1 微处理器发展史
1.1.1 计算机与微处理器
1.1.2 4位、8位与16位微处理器
1.1.3 32位微处理器
1.2 并行计算机
1.2.1 并行处理思想与弗林(Flynn)分类
1.2.2 超级计算机
1.3 片上多核处理器架构
1.3.1 多核芯片
1.3.2 片上多核处理器体系结构
1.3.3 典型多核芯片架构
1.4 操作系统对多核处理器的支持方法
1.4.1 调度与中断
1.4.2 输入输出系统
1.4.3 存储管理与文件系统
1.4.4 典型支持多核的操作系统
2 多线程并行程序性能分析方法综述
2.1 性能调优周期
2.1.1 搜集性能数据
2.1.2 分析数据并定位性能瓶颈
2.1.3 加速比性能定律
2.1.4 解决性能瓶颈
2.1.5 实现优化措施
2.1.6 测试
2.2 使用Intel Tune进行性能分析
2.2.1 性能分析器功能与使用方法
2.2.2 性能分析器实验
2.3 MKL数学核心函数库
2.3.1 MKI。数学核心函数库功能与特性
2.3.2 MKL数学核心函数库性能
2.3.3 MKL数学核心函数库实验
2.4 Thread Checker线程检查器
2.4.1 线程检查器功能与使用
2.4.2 线程检查器实验
2.5 Thread Profiler线程档案器
2.5.1 线程档案器功能与使用
2.5.2 线程档案器实验
3 Intel多核处理器上的性能调优方法
3.1 体系结构无关的性能调优方法
3.1.1 消除循环不变量
3.1.2 减少过程调用
3.1.3 消除不必要的内存存取
3.2 阻碍优化的因素
3.2.1 编译优化选项
3.2.2 变量别名
3.2.3 函数调用的边际效应
3.3 体系结构无关优化的小结
3.4 深入理解Intel多核处理器体系结构
3.4.1 Intel多核处理器微体系结构的显著特性
3.5 Intel多核处理器体系结构相关的优化
3.5.1 Intel多核处理器微体系结构中对代码优化的支持
4 多线程编程方法综述
4.1 线程的基本概念
4.1.1 线程与进程的区别
4.1.2 用户级线程、核心级线程和硬件线程
4.1.3 线程的生命周期
4.2 线程的同步
4.2.1 竞争条件
4.2.2 临界区
4.2.3 信号量
4.2.4 锁
4.2.5 条件变量
4.2.6 线程的本地存储
4.2.7 介绍TLS的特性和使用方法
4.3 多线程编程模型
4.3.1 流水线
4.3.2 工作组
4.3.3 客户/服务器方式
4.4 多线程编程的原则及要点
4.4.1 静态负载平衡
4.4.2 动态负载平衡
4.4.3 负载平衡的难题
4.4.4 串行化方面的难题
5 多线程程序设计中的常见问题及解决途径
5.1 线程过多
5.2 数据竞争、死锁和活锁
5.2.1 数据竞争
5.2.2 死锁和活锁
5.3 竞争激烈的锁
5.3.1 优先级倒置
5.3.2 锁竞争激烈的解决方法
5.4 非阻塞算法
5.4.1 比较并交换
5.4.2 原子变量类
5.4.3 非阻塞算法的介绍
5.4.4 ABA问题
5.4.5 cache线乒乓现象
5.4.6 存储空间回收问题
5.4.7 一些建议
5.5 线程安全函数和库
5.5.1 理解可重入与线程安全
5.5.2 函数可重入化
5.5.3 函数线程安全化
5.6 存储问题
5.6.1 带宽
5.6.2 cache的利用
5.6.3 存储竞争
5.7 Cache相关问题
5.7.1 伪共享
5.7.2 存储一致性
5.7.3 当前IA-32体系结构
5.7.4 Itanium体系结构
5.7.5 高级语言
5.8 避免IA-32上的流水线停顿
5.9 面向高性能的数据组织
6 Unix/Linux多线程编程
6.1 POSIX的一些基本知识
6.2 POSIX线程库
6.2.1 创建线程
6.2.2 分离和接合线程
6.2.3 退出和取消线程
6.2.4 用户级线程和内核级线程
6.2.5 线程的属性
6.2.6 线程安全函数
6.2.7 线程特定数据