编辑推荐
暂无
内容简介
本教材按照多核程序开发流程的六个步骤:项目描述、可并行性分析、确定分解模式、设计并行算法、选取编程模型和程序优化展开,包括四章内容:第1章简单回顾从流水线、超标量到并行计算对计算能力的提升,详细介绍了多线程技术以及目前多核处理器的架构和多核程序的设计方法。多核程序开发流程为初学者进行多核程序的设计与实现提供了一种有效的方法和思路。第2章系统地介绍了Windows线程库。详细阐述了利用Windows多线程API创建线程、管理线程以及实现线程同步的方法。第3章介绍了OpenMP编程模型的编程方法。包括OpenMP编译环境的搭建,OpenMP编译指导的使用,以及运行时库函数的功能等内容。第4章首先介绍了衡量并行程序性能的指标,然后介绍如何利用Intel ParallelStudio的工具测量程序得到其性能指标,以及找到程序瓶颈并改进程序的方法。为了便于教师授课,我们提供了每章的电子课件,这些电子课件也融合了我们多核多线程技术课程讲授的教学方法和手段。
作者简介
暂无
目录
第1章多核程序设计基础 ;
1.1计算能力的演进 ;
1.2并行计算 ;
1.2.1并行计算思想 ;
1.2.2并行计算机的分类 ;
1.3多线程技术 ;
1.3.1线程概念回顾 ;
1.3.2传统多线程 ;
1.3.3同时多线程(SMT) ;
1.4多核处理器的架构与多核程序设计 ;
1.5多核程序开发流程 ;
1.5.1多核程序设计 ;
1.5.2编程模型与实现 ;
1.5.3性能调优 ;
本章小结 ;
习题 ;
第2章Windows API多线程编程模型 ;
导引项目: 生产者—消费者问题 ;
2.1Windows线程库介绍 ;
2.2Windows API的基本使用 ;
2.2.1内核对象 ;
2.2.2线程管理 ;
2.2.3简单的例子 ;
2.3Windows API的线程同步 ;
2.3.1临界区 ;
2.3.2事件 ;
2.3.3信号量 ;
2.4线程池 ;
2.5生产者—消费者问题的实现 ;
本章小结 ;
习题 ;
项目训练:Windows API多线程编程 ;
模块一:基础模块 ;
模块二:临界区模块 ;
模块三:事件模块 ;
模块四:信号量模块 ;
第3章OpenMP多线程编程模型 ;
目录导引项目:基于OpenMP的圆周率计算 ;
3.1OpenMP编程简介 ;
3.1.1OpenMP编程基础 ;
3.1.2编译环境的搭建 ;
3.2OpenMP的基本用法 ;
3.2.1线程的创建 ;
3.2.2针对for循环的并行化 ;
3.3数据竞争 ;
3.3.1数据的共享与私有化 ;
3.3.2有效的数据规约 ;
3.3.3线程同步 ;
3.4线程的调度优化 ;
3.4.1static调度策略 ;
3.4.2dynamic调度策略 ;
3.4.3guided调度策略 ;
3.4.4runtime调度策略 ;
3.4.5对比分析 ;
3.5其他常用编译指导子句 ;
3.5.1sections与section子句 ;
3.5.2single子句 ;
3.5.3master子句 ;
3.6OpenMP的常用库函数 ;
3.7OpenMP多线程程序的性能分析 ;
3.7.1OpenMP并行化的开销 ;
3.7.2负载均衡 ;
3.7.3线程同步开销 ;
3.8基于OpenMP的PI计算项目的实现 ;
3.9求有限区间内素数个数的项目实现 ;
本章小结 ;
习题 ;
项目训练:OpenMP多线程编程 ;
模块一:基础模块 ;
模块二:数值积分计算Pi值 ;
模块三:Monte Carlo计算Pi值 ;
第4章多核程序性能调优 ;
导引项目:基于Intel Parallel Studio工具的质数个数查找调优 ;
4.1并行化程序性能指标 ;
4.1.1加速比和效率 ;
4.1.2Amdahl定律 ;
4.1.3粒度 ;
4.1.4负载平衡 ;
4.2Intel Parallel Studio工具 ;
4.2.1Intel Parallel Studio概述 ;
4.2.2Intel Parallel Composer ;
4.2.3Intel Parallel Inspector ;
4.2.4Intel Parallel Amplifier ;
4.3性能优化方法 ;
4.3.1性能优化定义 ;
4.3.2不同级别的性能优化 ;
4.3.3性能优化循环 ;
4.3.4并行应用性能优化方法 ;
4.3.5常用优化方法 ;
4.4多线程程序开发方法学 ;
4.4.1程序开发及优化周期 ;
4.4.2程序开发优化周期软件工具使用 ;
4.4.3案例分析 ;
4.5基于Intel Parallel Studio工具的质数 ;
个数查找调优项目的实现 ;
本章小结 ;
习题 ;
项目训练:多线程编程综合实践项目 ;
附录1教学设计与实施方法 ;
附录2英特尔认证介绍
前沿
计算机从诞生开始,人们就没有停止过对其性能提升的要求。而计算机的性能是通过CPU的性能来衡量的。以往CPU厂商主要通过提高时钟频率的方法保证CPU性能的提升,但仅仅提高单核芯片的速度会产生过多热量且无法带来相应的性能改善,即便是没有热量问题,其性价比也令人难以接受。因此通过持续地提高单核的时钟频率提升计算性能的方法不是行之有效、长期的策略。人们在实际应用中发现要让CPU发挥更大的效率,应该在一定时间内让CPU完成更多的任务,因此并行化成为提高CPU性能的新思路。目前无论是台式机、笔记本电脑、服务器还是嵌入式应用平台和移动平台都采用多核处理器。多核处理器将两个甚至更多的独立执行核嵌入到同一个处理器内部,通过在多个执行内核之间划分任务,多核处理器可在特定的时钟周期内执行更多任务。多核已经成为处理器架构的主体,由此对操作系统、应用软件提出更多的要求。原有的串行化编程模式在多核平台上不再适用,取而代之的是一种并行化编程模式。本教材以多核程序开发流程为主线,按照问题描述、分解模式确定、选择多核编程模型进行多核程序设计、多核程序性能调优的思路,并配合大量的样例,帮助初学者掌握多核编程的基本思想和基本方法。全书由滕英岩、高志君、李宁宁共同负责编写,其中滕英岩编写第1章,高志君编写第2、3章,李宁宁、张盈谦编写第4章。全书由滕英岩、高志君统稿,秦品乐、刘洋提供修改意见。编者希望本教材能够帮助编程人员和计算机相关专业的学生在多核时代到来之际,系统学习多核技术,以适应多核时代对编程人员的要求。由于编者水平有限,错误或不妥之处在所难免,我们诚挚希望同行专家和读者提出宝贵意见和建议!反馈意见请发送至:gaozhijun@neusoft.edu.cn
多核多线程技术 pdf下载声明
本pdf资料下载仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版