23多核并行编程 - windows程序设计

23多核并行编程 - windows程序设计

ID:9927430

大小:3.45 MB

页数:120页

时间:2018-05-15

23多核并行编程 - windows程序设计_第1页
23多核并行编程 - windows程序设计_第2页
23多核并行编程 - windows程序设计_第3页
23多核并行编程 - windows程序设计_第4页
23多核并行编程 - windows程序设计_第5页
资源描述:

《23多核并行编程 - windows程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第23章多核并行编程本章先介绍超线程和多核处理器技术,再给出并行编程的基本概念和内容,重点讨论基于多核CPU的并行计算的若干具体编程方法,包括通用的OpenMP和微软公司的PPL、TPL和PLINQ。23.1超线程与多核处理器Intel公司的超线程(Hyper-Threading,HT)技术将一个物理处理器核模拟成两个逻辑核,可并行执行两个线程,从而能有效提高处理器的运行效率。一直以来,处理器芯片厂商都是通过不断提高主频来提高处理器的性能(例如Intel于2004年12月12日推出的Pentium4HT570J处理器的主频就达

2、到了3.8GHz)。但是随着单个芯片上集成的晶体管数越来越多(如Intel于2007年11月11日推出的Core2ExtremeQX9650处理器包含8.2亿个晶体管),传统处理器体系结构技术面临瓶颈,很难单纯通过提高主频来提升性能。而且在主频的提高同时,带来的功耗猛增和散热困难等问题非常严重,这些也是直接促使单核转向多核的深层次原因。从应用需求来看,日益复杂的多媒体、科学计算、虚拟化等多个应用领域都呼唤更为强大的计算能力。在这样的背景下,各主流处理器厂商将产品战略从提高芯片的时钟频率转向多线程和多内核方面。总之,不能永远靠加

3、快频率的方法来提高处理器的性能,频率高到一定程度以后,必然要转向多核(multi-core)技术,这是由芯片的先天性质所决定的。23.1.1SMT与超线程SMT(SimultaneousMultiThreading,同时多线程)使用硬件多线程来改善超标量CPU的整体性能,它允许执行多个(如2~16个或更多)独立的线程来更好地利用现代处理器架构所提供的资源。超线程是Intel公司研发的一种在一个实体处理器核中提供两个逻辑线程的技术,是SMT技术的特例。1.超标量与流水线超标量(superscalar)CPU架构,使用单颗核心来实

4、现一种被称为指令集并行120(instruction-levelparallelism)的并行运算形式,它能够在相同的时钟频率下增加CPU的吞吐量。超标量处理器,通过同时分派多条指令给处理器上的冗余功能单元,可以在一个时钟周期内执行一条以上的指令。每个功能单元(functionalunit)不是单独的CPU核,而是在单个CPU内的一个执行资源,例如一个ALU(ArithmeticLogicUnit,算术逻辑单元)、一个位移器(bitshifter)或一个乘法器(multiplier)。在典型情况下,超标量CPU同时也是流水线的

5、,它们是两种不同的性能增强技术。非流水线的超标量CPU或流水线的非超标量CPU在理论上也是可能的。流水线(pipeline,管道/管线),是一个串连在一起的数据处理元素的集合,其中的一个元素的输出是下一个元素的输入。流水线中的元素常常以并行或时间片方式执行,在这种情况下,在元素之间常常插入一些数量的缓冲存储器。指令流水线(instructionpipelines)是与计算机相关的流水线(其他流水线有图形流水线和软件流水线等)中的一种,它被用于处理器中,允许在同一时钟周期(circuitry)内重叠执行多个指令。时钟周期通常分割

6、成阶段,包括指令解码、算术和寄存器读取阶段,其中每个阶段每次处理一条指令,参见图23-1。图23-1简单的超标量流水线图23-2超线程通过每次读取和分派两个指令,在每个指令周期可以完成最多两个指令2.超线程Intel的超线程(HT,Hyper-Threading,早期曾叫Super-Threading)技术利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器核都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高的CPU的运行效率。参见图23-2。120采用超线程及时可在同一时间里,应

7、用程序可以使用芯片的不同部分。虽然单线程芯片每秒钟能够处理成千上万条指令,但是在任一时刻只能够对一条指令进行操作。而超线程技术可以使芯片同时进行多线程处理,使芯片性能得到提升。Intel表示,超线程技术让(P4)处理器在只增加5%的芯片面积的情况下,就可以换来15%~30%的效能提升。但实际上,在某些程序或未对多线程编译的程序而言,超线程反而会降低效能。除此之外,超线程CPU技术也需要主板芯片组和操作系统的配合,才能充分发挥超线程的效能。Intel公司的i865PE和i875P及更新的芯片组。微软公司的WindowsXP、Wi

8、ndowsVista和Windows7等操作系统都能较好地支持Intel的超线程CPU。2002年2月Intel公司在其推出的代号为Prestonia的130nm新款至强(Xeon)处理器中首次采用超线程技术。Intel在其2003年5月21日推出的代号为Northwood的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。