[转]《英特尔多核/多线程技术》

Technorati 标签: , ,

原文地址:http://software.intel.com/zh-cn/articles/32067/

  提示:相关章节的电子版请到原文地址页下载,本文只是提供一个目录。

为了使大学生或软件开发人员在面对多核体系结构,以及需要多线程编程时有一本好的参考手册,同时为高等学校计算机专业的师生进行多核多线程程序教学时提供一本有价值的参考书,英特尔软件学院联合大学教师编纂了这本《英特尔多核/多线程技术》。以下是该书的提纲供您参考,我们将陆续提供此书各个章节的下载。

第一章 多核技术导论. 8

1.1 微处理器发展史. 8

1.1.1 计算机与微处理器. 8

1.1.2 4位、8位与16位微处理器. 9

1.1.3 32-bit Micro-Processor 10

1.2 并行计算机 13

1.2.1 并行处理思想与弗林(Flynn)分类 13

1.2.2 超级计算机 13

1.3 片上多核处理器架构. 14

1.3.1 多核芯片. 14

1.3.2 片上多核处理器体系结构. 15

1.3.3 典型多核芯片架构. 16

1.4 操作系统对多核处理器的支持方法. 19

1.4.1 调度与中断. 19

1.4.2 输入输出system 21

1.4.3 存储管理与文件系统. 22

1.4.4 典型支持多核的操作系统. 22

第二章 多线程编程方法综述. 25

2.1 线程的基本概念. 25

2.1.1线程与进程的区别. 26

2.1.2用户级线程、核心级线程和硬件线程. 27

2.1.3线程的生命周期. 27

2.2 线程的同步. 28

2.2.1竞争条件. 29

2.2.2临界区. 29

2.2.3信号量. 30

2.2.4锁. 30

2.2.5条件变量. 32

2.2.6线程的本地存储. 33

2.2.7介绍TLS的特性和使用方法. 33

2.3 多线程编程模型. 36

2.3.1流水线编程模型. 36

2.3.2工作组编程模型. 37

2.3.3客户/服务器方式. 38

2.4多线程编程的原则及要点. 39

第三章 Unix/Linux多线程编程. 45

3.1 POSIX的一些基本知识. 45

3.2 POSIX线程库. 46

3.2.1 创建线程. 47

3.2.2 分离(Detach)和接合(Join)线程. 48

3.2.3 退出和取消线程. 48

3.2.4 用户级线程与内核级线程. 50

3.2.5 线程的属性. 51

3.2.6 线程安全函数. 55

3.2.7 线程特定数据. 56

3.2.8 一个POSIX多线程实例. 59

3.3 线程通信. 60

3.3.1互斥量. 60

3.3.2 条件变量 65

3.3.3 信号(Signal)处理. 67

3.3.4 读写锁(read-write lock). 70

3.3.5 信号量(Semaphore). 73

第四章 Windows多线程编程. 78

4 .1 Windows操作系统的一些基本知识. 78

4.2 Win32 API的线程库. 79

4.2.1创建线程的基本问题. 79

4.2.2创建线程的API. 80

4.2.3操作线程的API 82

4.2.4一个简单的Windows多线程程序. 87

4.3 线程间通信. 88

4.3.1 互锁函数. 88

4.3.2 临界段. 91

4.3.3 使用内核对象的线程间通信. 94

4.3.4 事件. 96

4.3.5 互斥量. 99

4.3.6 信号量. 102

4.4 调度优先级. 103

4.5 线程池. 106

第五章 OpenMP多线程编程及性能优化. 108

5.1 OpenMP编程简介

5.1.1 OpenMP多线程编程发展概况. 108

5.1.2 OpenMP多线程编程基础. 109

5.1.3 编写OpenMP程序的准备工作. 112

5.2 OpenMP多线程应用程序编程技术. 114

5.2.1 循环并行化. 114

5.2.2 并行区域编程. 124

5.2.3 线程同步. 130

5.3 OpenMP多线程应用程序性能分析

5.3.1 影响性能的主要因素. 142

5.3.2 OpenMP程序性能分析实例. 143

第六章 多线程程序设计中的常见问题及解决途径. 150

6.1 线程过多:. 150

6.2 数据竞争、死锁和活锁:. 152

6.2.1数据竞争. 152

6.2.2死锁和活锁. 155

6.3 竞争激烈的锁:. 157

6.3.1 优先级倒置. 157

6.3.2 锁竞争激烈的解决方法. 161

6.4 非阻塞算法:. 162

6.4.1 ABA问题. 169

6.4.2 cache线乒乓现象. 169

6.4.3存储空间回收问题. 170

6.4.4一些建议. 170

6.5 线程安全函数和库:. 170

6.6 存储问题:. 175

6.7 Cache相关问题:. 180

6.8避免IA-32上的流水线停顿:. 186

6.9面向高性能的数据组织:. 186

第七章英特尔多核处理器上的性能调优方法. 188

7.1 体系结构无关的性能调优方法:. 188

7.1.1消除循环不变量:. 190

7.1.2 减少过程调用:. 191

7.1.3消除不必要的内存存取:. 192

7.2 阻碍优化的因素:. 192

7.2.1 编译优化选项:. 192

7.2.2 变量别名:. 193

7.2.3 函数调用的边际效应:. 193

7.3 体系结构无关优化的小结:. 195

7.4 深入理解英特尔多核处理器体系结构:. 195

7.4.1 英特尔多核处理器微体系结构的显著特性:. 197

7.5 英特尔多核处理器微体系结构对代码优化的支持:. 198

第八章 多线程程序性能分析方法综述. 201

8.1 性能调优周期. 201

8.1.1 搜集性能数据. 203

8.1.2 分析数据并定位性能瓶颈. 203

8.1.3 Amdahl定律

8.1.4 解决性能瓶颈. 206

8.1.5 实现优化措施. 208

8.1.6 测试. 208

8.2 使用英特尔® VTune进行性能分析. 208

8.2.1 性能分析器功能与使用方法. 209

8.2.2 性能分析器实验. 215

8.3 MKL数学核心函数库. 218

8.3.1 MKL数学核心函数库功能与特性. 219

8.3.2 MKL数学核心函数库性能. 220

8.3.3 MKL数学核心函数库实验. 222

8.4 Thread Checker线程检查器. 223

8.4.1 线程检查器功能与使用. 223

8.4.2 线程检查器实验. 226

8.5 Thread Profiler线程档案器. 232

8.5.1 线程档案器功能与使用. 232

8.5.2 线程档案器实验

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值