图书介绍
多核多线程技术PDF|Epub|txt|kindle电子书版本网盘下载
![多核多线程技术](https://www.shukui.net/cover/43/34640710.jpg)
- 英特尔软件学院教材编写组编 著
- 出版社: 上海:上海交通大学出版社
- ISBN:9787313068705
- 出版时间:2011
- 标注页数:265页
- 文件大小:24MB
- 文件页数:279页
- 主题词:微处理器,Intel系列-程序设计-高等学校-教材
PDF下载
下载说明
多核多线程技术PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
1 多核技术导论1
1.1 微处理器发展史1
1.1.1 计算机与微处理器1
1.1.2 4位、8位与16位微处理器2
1.1.3 32位微处理器4
1.2 并行计算机7
1.2.1 并行处理思想与弗林(Flynn)分类7
1.2.2 超级计算机8
1.3 片上多核处理器架构10
1.3.1 多核芯片10
1.3.2 片上多核处理器体系结构11
1.3.3 典型多核芯片架构12
1.4 操作系统对多核处理器的支持方法14
1.4.1 调度与中断14
1.4.2 输入输出系统17
1.4.3 存储管理与文件系统18
1.4.4 典型支持多核的操作系统18
2 多线程并行程序性能分析方法综述21
2.1 性能调优周期21
2.1.1 搜集性能数据23
2.1.2 分析数据并定位性能瓶颈23
2.1.3 加速比性能定律24
2.1.4 解决性能瓶颈27
2.1.5 实现优化措施29
2.1.6 测试29
2.2 使用Intel? VTune进行性能分析29
2.2.1 性能分析器功能与使用方法30
2.2.2 性能分析器实验36
2.3 MKL数学核心函数库39
2.3.1 MKL数学核心函数库功能与特性39
2.3.2 MKL数学核心函数库性能41
2.3.3 MKL数学核心函数库实验42
2.4 Thread Checker线程检查器43
2.4.1 线程检查器功能与使用44
2.4.2 线程检查器实验46
2.5 Thread Profiler线程档案器52
2.5.1 线程档案器功能与使用53
2.5.2 线程档案器实验54
3 Intel多核处理器上的性能调优方法61
3.1 体系结构无关的性能调优方法61
3.1.1 消除循环不变量64
3.1.2 减少过程调用64
3.1.3 消除不必要的内存存取65
3.2 阻碍优化的因素66
3.2.1 编译优化选项66
3.2.2 变量别名67
3.2.3 函数调用的边际效应67
3.3 体系结构无关优化的小结69
3.4 深入理解Intel多核处理器体系结构70
3.4.1 Intel多核处理器微体系结构的显著特性71
3.5 Intel多核处理器体系结构相关的优化73
3.5.1 Intel多核处理器微体系结构中对代码优化的支持73
4 多线程编程方法综述76
4.1 线程的基本概念76
4.1.1 线程与进程的区别77
4.1.2 用户级线程、核心级线程和硬件线程78
4.1.3 线程的生命周期79
4.2 线程的同步79
4.2.1 竞争条件80
4.2.2 临界区80
4.2.3 信号量81
4.2.4 锁81
4.2.5 条件变量83
4.2.6 线程的本地存储84
4.2.7 介绍TLS的特性和使用方法85
4.3 多线程编程模型88
4.3.1 流水线88
4.3.2 工作组89
4.3.3 客户/服务器方式90
4.4 多线程编程的原则及要点90
4.4.1 静态负载平衡91
4.4.2 动态负载平衡91
4.4.3 负载平衡的难题91
4.4.4 串行化方面的难题92
5 多线程程序设计中的常见问题及解决途径97
5.1 线程过多97
5.2 数据竞争、死锁和活锁100
5.2.1 数据竞争100
5.2.2 死锁和活锁103
5.3 竞争激烈的锁105
5.3.1 优先级倒置105
5.3.2 锁竞争激烈的解决方法109
5.4 非阻塞算法111
5.4.1 比较并交换112
5.4.2 原子变量类112
5.4.3 非阻塞算法的介绍113
5.4.4 ABA问题119
5.4.5 cache线乒乓现象120
5.4.6 存储空间回收问题120
5.4.7 一些建议121
5.5 线程安全函数和库121
5.5.1 理解可重入与线程安全121
5.5.2 函数可重入化122
5.5.3 函数线程安全化125
5.6 存储问题127
5.6.1 带宽127
5.6.2 cache的利用128
5.6.3 存储竞争130
5.7 Cache相关问题133
5.7.1 伪共享133
5.7.2 存储一致性134
5.7.3 当前IA-32体系结构135
5.7.4 Itanium体系结构137
5.7.5 高级语言140
5.8 避免IA-32上的流水线停顿140
5.9 面向高性能的数据组织140
6 Unix/Linux多线程编程142
6.1 POSIX的一些基本知识142
6.2 POSIX线程库144
6.2.1 创建线程144
6.2.2 分离和接合线程145
6.2.3 退出和取消线程146
6.2.4 用户级线程和内核级线程147
6.2.5 线程的属性149
6.2.6 线程安全函数153
6.2.7 线程特定数据155
6.2.8 一个POSIX多线程实例158
6.3 线程通信159
6.3.1 互斥量159
6.3.2 条件变量161
6.3.3 信号处理165
6.3.4 读写锁171
6.3.5 信号量174
7 Windows多线程编程180
7.1 Windows操作系统的一些基本知识180
7.2 Win32 API的线程库181
7.2.1 Windows操作系统中对进程概念的定义181
7.2.2 Windows操作系统中对线程概念的定义182
7.2.3 使用Win32线程API182
7.3 线程间通信192
7.3.1 互锁函数193
7.3.2 临界段196
7.3.3 使用内核对象的线程间通信200
7.3.4 事件202
7.3.5 互斥量206
7.3.6 信号量209
7.4 调度优先级211
7.5 线程池214
8 OpenMP多线程编程及性能优化217
8.1 OpenMP编程简介217
8.1.1 OpenMP多线程编程发展概况217
8.1.2 OpenMP多线程编程基础218
8.1.3 编写OpenMP程序的准备工作221
8.2 OpenMP多线程应用程序编程技术224
8.2.1 循环并行化224
8.2.2 并行区域编程236
8.2.3 线程同步242
8.3 OpenMP多线程应用程序性能分析255
8.3.1 影响性能的主要因素256
8.3.2 OpenMP程序性能分析实例258