- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
--(完美WORD文档DOC格式,可在线免费浏览全文和下载)值得下载!
换一个角度思考:并行计算
一、前言
工作中,我们总是希望我们自己工作得更有效率,用更少的时间解决更多的问题。在计算机里,这就是并行计算的基本初衷。全世界第一台计算机ENIAC中就已经出现了并行计算的概念。它有20个累加器,可以并发执行多个加减运算,可谓开并行计算的先河。在随后的上世纪五六十年代,由于晶体管和集成电器的发明,出现了了更多更快的计算机。IBM是这一时期的主角,同期计算机编程语言的出现,由软件完成处理并行计算的思想进一步深化。但这一时期的计算还是大型机时代,没有几个平民能用得起这些昂贵的大家伙。计算机和软件技术还锁在研究院和大学校园里。
七十年代,随着微电子技术的发展,出现了微型处理器(CPU)。接着,1974年,全世界第一台个人电脑:牛郎星顺利出炉。紧随其后,看到市场前景的苹果和IBM推波助澜,计算机开始进入个人时代。个人计算机同时又催生了软件业的高速发展,软件又带动CPU不断升级换代。这为并行计算摆脱高端路线,进入平民化时代打下了基础。
庞大的ENIAC,运算速度只相当于现在的一只计算器。
全世界第一款微型处理器:Intel 4004,4位字长,2300个晶体管
全世界第一台个人计算机(PC):牛郎星。使用Intel8080处理器,配4K内存。
二、为什么需要并行计算?
在个人计算机诞生后的几十年里,程序员们编写了大量的应用软件,这些软件决大部分了采用串行计算方法。所谓串行,是指软件在PC上执行,在进入CPU前被分解为一个个指令,指令在CPU中一条条顺序执行。任一时间内,CPU只能够运行一条指令。这种方式很符合我们对现实世界的思考习惯。至于软件的运行速度,则依赖硬件的处理能力,尤其CPU的处理速度。这种思维方式到了2005年遇到了挑战。在那一年,受限于制造CPU的半导体材料限制,左右CPU发展的摩尔定律开始失效了。但芯片业很快找到了一个变通的办法:在一块芯片中植入多个处理核心,通过多核的共同运算,提高运行速度。不幸的是,采用串行方法编写的软件面临着一个尷尬的局面:如果仍采用串行编程方式,运行速度将停滞不前。这样,原来需要CPU完成的提速工作,被迫需要软件自已来完成。 在另一个领域:互联网,由于网络数据极速膨胀,数据量已经远远超过一台或者几台大型计算机的处理能力,需要更大数量的计算机协同完成。面对这些问题,主要的解决方案就是:并行计算。
串行计算示例
全球第一款双核处理器:IBM Power4(64位,2001年诞生),主要用于IBM服务器和苹果的Macintosh上。当年的Mac机由于运算速度太快了,被禁止销往中国、朝鲜等“敌对国家”。
AMD第一款双核处理器:Opteron(皓龙
AMD第一款针对桌面的双核处理器:Athlon(速龙)。同样是64位,只比服务器版本晚1个月面市。
Intel是顶极芯片制造商中最晚推出的双核处理器:Intel PentiumD,2005年5月26日发布。
三、并行计算介绍
核心提示:程序=数据+算法,并行计算程序=线程+分片+算法。
3.1 概述
并行计算目前还是一门发展中的学科。并行计算是相对串行计算而言的,并行计算可以分为时间上的并行计算和空间上的并行计算。
时间上的并行计算就是流水线技术,即采用指令预取技术,将每个指令分成多步,各步间叠加操作,当前指令完成前,后一指令准备就绪,缩小指令执行的时钟周期。典型的以时间换空间。流水线技术由处理器(CPU)提供,不属于我们讨论的范畴。
空间上的并行计算是指由多个处理单元(不仅是CPU)执行的计算,是以空间换时间。空间上的并行计算分为两类:单指令多数据流(SIMD)和多指令多数据流(MIMD)。
SIMD是流水技术的扩展,可以在一个时钟周期处理多个指令,我们目前使用的PC大多属于此列,例如AMD 3DNOW 和Intel MMX。因为是硬件提供的技术,也不属于我们讨论的内容。
MIMD大致又分为五类:工作站集群(COW)、对称多处理机(SMP)、大规模并行处理机(MPP)、分布共享存储处理机(DSM)、并行向量机(PVP)。 是我们讨论的重点。
在这一章节,我们将从程序员和算法的角度,着重讨论空间上的并行计算。空间并行计算技术包括数据并行计算和任务并行计算。数据并行计算是指将一个大的数据分解为多个小的数据,分散到多个处理单元执行。任务并行是将大的任务分解为小的任务,分散到多个处理单元执行,任务并行同时还要避免任务重复执行,协调数据的上下文关系,避免冲突发生。任务并行计算与实际应用需求紧密相关。所以,任务并行计算要比数据并行计算复杂得多。并行计算与串行计算的最大不同在于,并行计算不仅要考虑计算本身,还要考虑并行处理模型、网络通信、计算协作诸多问题。
3.2 主要的并行计算体系类型
3.2.1 工作站集群(COW Clust
文档评论(0)