23多核并行编程.doc

  1. 1、本文档共119页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
23多核并行编程

第23章 多核并行编程 本章先介绍超线程和多核处理器技术,再给出并行编程的基本概念和内容,重点讨论基于多核CPU的并行计算的若干具体编程方法,包括通用的OpenMP和微软公司的PPL、TPL和PLINQ。 23.1 超线程与多核处理器 Intel公司的超线程(Hyper-Threading,HT)技术将一个物理处理器核模拟成两个逻辑核,可并行执行两个线程,从而能有效提高处理器的运行效率。 一直以来,处理器芯片厂商都是通过不断提高主频来提高处理器的性能(例如Intel于 2004年12月12日推出的Pentium 4 HT 570J处理器的主频就达到了3.8GHz)。但是随着单个芯片上集成的晶体管数越来越多(如Intel于2007年11月11日推出的Core 2 Extreme QX9650处理器包含8.2亿个晶体管),传统处理器体系结构技术面临瓶颈,很难单纯通过提高主频来提升性能。而且在主频的提高同时,带来的功耗猛增和散热困难等问题非常严重,这些也是直接促使单核转向多核的深层次原因。从应用需求来看,日益复杂的多媒体、科学计算、虚拟化等多个应用领域都呼唤更为强大的计算能力。在这样的背景下,各主流处理器厂商将产品战略从提高芯片的时钟频率转向多线程和多内核方面。 总之,不能永远靠加快频率的方法来提高处理器的性能,频率高到一定程度以后,必然要转向多核(multi-core)技术,这是由芯片的先天性质所决定的。 23.1.1 SMT与超线程 SMT(Simultaneous MultiThreading,同时多线程)使用硬件多线程来改善超标量CPU的整体性能,它允许执行多个(如2~16个或更多)独立的线程来更好地利用现代处理器架构所提供的资源。超线程是Intel公司研发的一种在一个实体处理器核中提供两个逻辑线程的技术,是SMT技术的特例。 1.超标量与流水线 超标量(superscalar)CPU架构,使用单颗核心来实现一种被称为指令级并行(instruction-level parallelism)的并行运算形式,它能够在相同的时钟频率下增加CPU的吞吐量。超标量处理器,通过同时分派多条指令给处理器上的冗余功能单元,可以在一个时钟周期内执行一条以上的指令。每个功能单元(functional unit)不是单独的CPU核,而是在单个CPU内的一个执行资源,例如一个ALU(Arithmetic Logic Unit,算术逻辑单元)、一个位移器(bit shifter)或一个乘法器(multiplier)。 在典型情况下,超标量CPU同时也是流水线的,它们是两种不同的性能增强技术。非流水线的超标量CPU或流水线的非超标量CPU在理论上也是可能的。 流水线(pipeline,管道/管线),是一个串连在一起的数据处理元素的集合,其中的一个元素的输出是下一个元素的输入。流水线中的元素常常以并行或时间片方式执行,在这种情况下,在元素之间常常插入一些数量的缓冲存储器。 指令流水线(instruction pipelines)是与计算机相关的流水线(其他流水线有图形流水线和软件流水线等)中的一种,它被用于处理器中,允许在同一时钟周期(circuitry)内重叠执行多个指令。时钟周期通常分割成阶段,包括指令解码、算术和寄存器读取阶段,其中每个阶段每次处理一条指令,参见图23-1。 图23-1 简单的超标量流水线 图23-2 超线程 通过每次读取和分派两个指令,在每个指令周期可以完成最多两个指令 2.超线程 Intel的超线程(HT,Hyper-Threading,早期曾叫Super-Threading)技术利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器核都能使用线程级并行计算,进而兼容多线程操作系统和软件,减少了CPU的闲置时间,提高的CPU的运行效率。参见图23-2。 采用超线程及时可在同一时间里,应用程序可以使用芯片的不同部分。虽然单线程芯片每秒钟能够处理成千上万条指令,但是在任一时刻只能够对一条指令进行操作。而超线程技术可以使芯片同时进行多线程处理,使芯片性能得到提升。 Intel表示,超线程技术让(P4)处理器在只增加5%的芯片面积的情况下,就可以换来15%~30%的效能提升。但实际上,在某些程序或未对多线程编译的程序而言,超线程反而会降低效能。除此之外,超线程CPU技术也需要主板芯片组和操作系统的配合,才能充分发挥超线程的效能。Intel公司的i865PE和i875P及更新的芯片组,微软公司的Windows XP、Windows Vista和Windows 7/8/10等操作系统都能较好地支持Intel的超线程CPU。 2002年2月Intel公司在其推出的代号为Prestonia的130nm新款至强

文档评论(0)

youbika + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档