本教材共分四章,各章主要内容如下:
第1章简单回顾从流水线、超标量到并行计算对计算能力的提升,详细介绍了多线程技术以及目前多核处理器的架构和多核程序的设计方法。多核程序开发流程为初学者进行多核程序的设计与实现提供了一种有效的方法和思路。
第2章系统地介绍了Windows线程库。详细阐述了利用Windows多线程API创建线程、管理线程以及实现线程同步的方法。
第3章介绍了OpenMP编程模型的编程方法。包括OpenMP编译环境的搭建,OpenMP编译指导的使用,以及运行时库函数的功能等内容。
第4章首先介绍了衡量并行程序性能的指标,然后介绍如何利用Intel Parallel Studio的工具测量程序得到其性能指标,以及找到程序瓶颈并改进程序的方法。
第1章多核程序设计基础1
11计算能力的演进1
12并行计算2
121并行计算思想2
122并行计算机的分类3
13多线程技术3
131线程概念回顾3
132传统多线程5
133同时多线程(SMT)5
14多核处理器的架构与多核程序设计6
15多核程序开发流程7
151多核程序设计9
152编程模型与实现21
153性能调优23
本章小结24
习题25
第2章Windows API多线程编程模型26
导引项目: 生产者消费者问题26
21Windows线程库介绍27
22Windows API的基本使用28
221内核对象28
222线程管理28
223简单的例子31
23Windows API的线程同步34
231临界区35
232事件39
233信号量42
24线程池45
25生产者消费者问题的实现46
本章小结50
习题51
项目训练:Windows API多线程编程53
模块一:基础模块55
模块二:临界区模块58
模块三:事件模块59
模块四:信号量模块61
第3章OpenMP多线程编程模型66
导引项目:基于OpenMP的圆周率计算66
31OpenMP编程简介68
311OpenMP编程基础68
312编译环境的搭建69
32OpenMP的基本用法72
321线程的创建72
322针对for循环的并行化74
33数据竞争77
331数据的共享与私有化78
332有效的数据规约81
333线程同步82
34线程的调度优化87
341static调度策略88
342dynamic调度策略88
343guided调度策略89
344runtime调度策略90
345对比分析90
35其他常用编译指导子句90
351sections与section子句90
352single子句92
353master子句93
36OpenMP的常用库函数94
37OpenMP多线程程序的性能分析95
371OpenMP并行化的开销96
372负载均衡97
373线程同步开销99
38基于OpenMP的PI计算项目的实现100
39求有限区间内素数个数的项目实现102
本章小结105
习题105
项目训练:OpenMP多线程编程109
模块一:基础模块110
模块二:数值积分计算Pi值112
模块三:Monte Carlo计算Pi值113
目录第4章多核程序性能调优115
导引项目:基于Intel Parallel Studio工具的质数个数查找调优115
41并行化程序性能指标116
411加速比和效率117
412Amdahl定律117
413粒度118
414负载平衡118
42Intel Parallel Studio工具119
421Intel Parallel Studio概述119
422Intel Parallel Composer126
423Intel Parallel Inspector130
424Intel Parallel Amplifier136
43性能优化方法146
431性能优化定义146
432不同级别的性能优化147
433性能优化循环148
434并行应用性能优化方法148
435常用优化方法148
44多线程程序开发方法学149
441程序开发及优化周期150
442程序开发优化周期软件工具使用151
443案例分析151
45基于Intel Parallel Studio工具的质数个数查找调优项目的实现159
本章小结163
习题164
项目训练:多线程编程综合实践项目164
附录学习知识要点及能力要点166
本教材以多核程序开发流程为主线,按照问题描述、分解模式确定、选择多核编程模型进行多核程序设计、多核程序性能调优的思路,并配合大量的样例,帮助初学者掌握多核编程的基本思想和基本方法。