并行计算技术概述2.ppt
《并行计算技术概述2.ppt》由会员分享,可在线阅读,更多相关《并行计算技术概述2.ppt(110页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、并行计算并行计算Parallel computing第一讲第一讲 并行计算技术概述并行计算技术概述1.为什么需要并行计算?为什么需要并行计算?2.并行计算技术的分类并行计算技术的分类3.并行计算的主要技术问题并行计算的主要技术问题4.MPI并行程序设计并行程序设计5.为什么需要大规模数据并行处理?为什么需要大规模数据并行处理?1.1.为什么需要并行计算?为什么需要并行计算?贯穿整个计算机技术发展的核心目标贯穿整个计算机技术发展的核心目标:提高计算性能!提高计算性能!Intel微处理器每秒1千8百亿次浮点运算!近20年性能提高3千多倍巨型机:中国天河一号,2010年底世界TOP500强第1名每秒
2、2千5百多万亿次浮点运算,近20年性能提高3千多倍亿亿千万亿百万亿十万亿万亿千亿百亿十亿亿2011年6月日本“K Computer”以每秒1亿亿次名列第一,几乎是第2-9位的总和,中国天河位列第二亿亿千万亿百万亿十万亿万亿千亿百亿十亿亿2012年11月美国“Titan”以每秒2.7亿亿次名列第一,中国天河位列第八提高计算机性能的主要手段提高计算机性能的主要手段1.提高处理器字长:70-80年代:Intel处理器:71年,4004,4bits;78年,8086,8bits;82年,80286:16bits;85年90s,80386,486,Pentium,P2,P3,P4:32bits05年,P
3、entiumD往后-Corei3,i5,i7:64bits为什么需要并行计算?提高计算机性能的主要手段提高计算机性能的主要手段2.提高集成度摩尔定律:芯片集成度每18个月翻一倍,计算性能提高一倍为什么需要并行计算?为什么需要并行计算?为什么需要并行计算?提高计算机性能的主要手段提高计算机性能的主要手段3.流水线等微体系结构技术实现指令级并行(Instruction-LevelParallelism,ILP)RISC结构5级流水线为什么需要并行计算?为什么需要并行计算?提高计算机性能的主要手段提高计算机性能的主要手段3.流水线等微体系结构技术分支预测,寄存器重命名,超长指令字(VLIW),超标量
4、(Superscalar),乱序执行,CachePentium4(CISC结构)采用了20级复杂流水线为什么需要并行计算?为什么需要并行计算?提高计算机性能的主要手段提高计算机性能的主要手段4.提高处理器频率:1990s-2004:为什么需要并行计算?为什么需要并行计算?所有这些技术极大地提高了微处理器的计算性能,但2004年后处理器的性能不再像人们预期的那样提高单核处理单核处理器性能提器性能提升接近极升接近极限!限!集成度集成度性能性能为什么需要并行计算?为什么需要并行计算?单核处理器性能提升接近极限单核处理器性能提升接近极限1.VLSI集成度不可能无限制提高芯片集成度已进入极小尺度级别,集
5、成度不可能无限制提高1nm(纳米)约头发直径的6万分之一或4个原子长度10-20nm仅有几百个原子的长度为什么需要并行计算?为什么需要并行计算?单核处理器性能提升接近极限单核处理器性能提升接近极限2.处理器的指令级并行度提升接近极限长指令字,流水线,分支预测,寄存器命名,超标量,乱序执行,动态发射,高速缓冲(Cache)高级流水线等各种复杂的微体系结构技术都已得到研究应用,难以进一步挖掘更多的指令级并行性(Instruction-LevelParallism)ILPILP墙墙为什么需要并行计算?为什么需要并行计算?单核处理器性能提升接近极限单核处理器性能提升接近极限3.处理器速度和存储器速度差
6、异越来越大处理器性能每2年翻一倍,而存储器性能每6年翻一倍为了匹配两者间速度差异,处理器需要做越来越大的Cache存储墙存储墙CPUCPU计算速度:计算速度:1ns1ns级别级别主存访问速度:主存访问速度:100ns100ns级别级别为什么需要并行计算?为什么需要并行计算?单核处理器性能提升接近极限单核处理器性能提升接近极限4.功耗和散热大幅增加超过芯片承受能力晶体管密度不断提高,单位面积功耗和散热大幅增加主频提高导致功耗和散热急剧增加功耗P=CV2f,C:时钟跳变时门电路电容,V:电压,f:主频晶体管数越多,电容越大=功耗越大;主频越高=功耗越大功耗墙功耗墙Cite from Edward
7、L.Bosworth,The Power Wall,2010为什么需要并行计算?为什么需要并行计算?单核处理器性能提升接近极限单核处理器性能提升接近极限2005年前,人们预期可以一直提升处理器主频但2004年5月Intel处理器TejasandJayhawk(4GHz)因无法解决散热问题最终放弃,标志着升频技术时代的终结Cite from Edward L.Bosworth,The Power Wall,20102005年前人们预计的主频提升路线图2007年人们大大降低了主频提升预期2005年后Intel转入多核技术为什么需要并行计算?为什么需要并行计算?单处理器向多核并行计算发展成为必然趋势
8、单处理器向多核并行计算发展成为必然趋势多核/众核并行计算2005年Intel全面转入多核计算技术,采用多核/众核构架,简化单处理器的复杂设计,代之以单个芯片上设计多个简化的处理器核,以多核/众核并行计算提升计算性能双核:PentiumD(05),EE(06),Xeon(06)Core2DuoE系列,T系列(06)Corei3,i5(10)4核:Core2QuadQ系列(07)Corei5,i7(08,09,10)6核:Corei7970/980(10)8核:AMDBulldozer(10)典型的双核处理器结构为什么需要并行计算?为什么需要并行计算?单处理器向多核并行计算发展成为必然趋势单处理器
9、向多核并行计算发展成为必然趋势多核/众核并行计算Intel实验芯片SingleCloudChip,SCC:48核Teraflops,80核Cite from Intel website:http:/ Red:1996,第一个达到1TFlops(10万亿次浮点运算)的并行计算系统,使用了10,000颗PentiumPro处理器(200MHz),耗电500kW,外加500kW用于机房散热Teraflops:达到1.01TFlops(3.16GHz)1.81TFlops(5.7GHz)功耗62W!为什么需要并行计算?为什么需要并行计算?单处理器向多核并行计算发展成为必然趋势单处理器向多核并行计算发展
10、成为必然趋势多核/众核并行计算根据摩尔定律,Intel预计其通用的众核并行计算芯片2015年:128核2017年:256核2019年:512核2023年:2024核NVIDIA GPUGraphicProcessingUnit,主要用于图形图像并行处理TeslaM2050/2070:448核S20501UGPU处理系统:4个M2050/2070,1792核为什么需要并行计算?为什么需要并行计算?应用领域计算规模和复杂度大幅提高应用领域计算规模和复杂度大幅提高爆炸性增长的Web规模数据量Google从2004年每天处理100TB数据到2008年每天处理20PB2009年eBays数据仓库,一个有
11、2PB用户数据,另一个6.5PB用户数据包含170TB记录且每天增长150GB个记录;Facebook:2.5PB用户数据,每天增加15TB世界最大电子对撞机每年产生15PB(1千5百万GB)数据2015年落成的世界最大观天望远镜主镜头像素为3.2G,每年将产生6PB天文图像数据;欧洲生物信息研究中心(EBI)基因序列数据库容量已达5PB;中国深圳华大基因研究所成为全世界最大测序中心,每天产生300GB基因序列数据(每年100TB)为什么需要并行计算?为什么需要并行计算?应用领域计算规模和复杂度大幅提高应用领域计算规模和复杂度大幅提高超大的计算量/计算复杂度用SGI工作站进行电影渲染时,每帧一
12、般需要12小时一部2小时的电影渲染需要:2小时x3600秒x24帧x(12小时)/24小时=2040年!特殊场景每帧可能需要60个小时(影片“星舰骑兵”中数千只蜘蛛爬行的场面),用横向4096象素分辨率进行渲染时,如果以每帧60个小时的速度,则1秒的放映量(24帧)需要60天的渲染时间,1分钟则需要100年!世界著名的数字工作室Digital Domain公司用了一年半的时间,使用了300多台SGI超级工作站,50多个特技师一天24小时轮流制作泰坦尼克号中的电脑特技为什么需要并行计算?为什么需要并行计算?解决方案解决方案?并行计算并行计算!SMPSMPClusterCloudMulticore
13、MulticoreManycoreManycore为什么需要并行计算?为什么需要并行计算?并行计算技术的发展趋势和影响并行计算技术的发展趋势和影响越来越多的研究和应用领域将需要使用并行计算技术 并行计算技术将渗透到每个计算应用领域,尤其是涉及到大规模数据和复杂计算的应用领域并行计算技术将对传统计算技术产生革命性的影响并行计算技术将影响传统计算技术的各个层面,与传统计算技术相互结合产生很多新的研究热点和课题:体系结构技术 操作系统、编译技术、数据库等系统软件技术 程序设计技术和方法 软件工程技术 图形图像和多媒体信息处理 人工智能 各种应用软件开发很多传统的串行算法和计算方法都将需要重新研究和设
14、计其并行化算法和计算方法;我系很多研究领域都明确需要基于并行计算技术进行研究为什么需要并行计算?为什么需要并行计算?为什么需要学习并行计算技术?为什么需要学习并行计算技术?软件开发/程序设计人员面临挑战!20-30年里程序设计技术的最大的革命是面向对象技术Therevolutioninmainstreamsoftwaredevelopmentfromstructuredprogrammingtoobject-orientedprogrammingwasthegreatestsuchchangeinthepast20to30years下一个程序设计技术的革命将是并行程序设计 Concurrenc
15、yisthenextmajorrevolutioninhowwewritesoftware今天绝大多数程序员不懂并行设计技术,就像15年前*绝大多数程序员不懂面向对象技术一样 Thevastmajorityofprogrammerstodaydontgrokconcurrency,justasthevastmajorityofprogrammers15yearsagodidntyetgrokobjects*March 2005,Cite from Herb Sutter,The Free Lunch Is Over-A Fundamental Turn Toward Concurrency i
16、n Software Dr.Dobbs Journal,30(3)Ch.1.并行计算技术简介并行计算技术简介1.1.为什么需要并行计算?为什么需要并行计算?2.2.并行计算技术的分类并行计算技术的分类3.3.并行计算的主要技术问题并行计算的主要技术问题4.4.MPIMPI并行程序设计并行程序设计5.5.为什么需要大规模数据并行处理?为什么需要大规模数据并行处理?2.2.并行计算技术的分类并行计算技术的分类 经过多年的发展,出现了不同类型的并行计算技术和系统,同时也存在不同的分类方法按数据和指令处理结构:弗林按数据和指令处理结构:弗林(Flynn)(Flynn)分类分类按并行类型按并行类型按存储
17、访问构架按存储访问构架按系统类型按系统类型按计算特征按计算特征按并行程序设计模型按并行程序设计模型/方法方法并行计算技术的分类并行计算技术的分类按数据和指令处理结构分类:弗林按数据和指令处理结构分类:弗林(Flynn)(Flynn)分类分类 1966年,斯坦福大学教授Flynn提出的经典的计算机结构分类,从最抽象的指令和数据处理结构的角度进行分类SISD:单指令单数据流 传统的单处理器串行处理SIMD:单指令多数据流 向量机,信号处理系统MISD:多指令单数据流 很少使用MIMD:多指令多数据流 最常用,TOP500 基本都属于MIMD类型弗林弗林(Flynn)(Flynn)分类分类SISDS
18、ISDMIMDMIMDSIMDSIMD并行计算技术的分类并行计算技术的分类Cite from Jimmy Lin,What is cloud computing,2008并行计算技术的分类并行计算技术的分类按并行类型分类按并行类型分类位级并行(Bit-LevelParallelism)指令级并行(ILP:Instruction-LevelParallelism)线程级并行(Thread-LevelParallelism)数据级并行:一个大的数据块划分为小块,分别由不同的处理器/线程处理任务级并行:一个大的计算任务划分为子任务分别由不同的处理器/线程来处理按存储访问结构分类按存储访问结构分类A.
19、共享内存(SharedMemory)所有处理器通过总线共享内存多核处理器,SMP也称为UMA结构(UniformMemoryAccess)B.分布共享存储体系结构各个处理器有本地存储器同时再共享一个全局的存储器C.分布式内存(DistributedMemory)各个处理器使用本地独立的存储器B和C也统称为NUMA结构(Non-UniformMemoryAccess)并行计算技术的分类并行计算技术的分类共享存储器总 线共享存储器MMMABC并行计算技术的分类并行计算技术的分类按系统类型分类按系统类型分类多核/众核并行计算系统MC(Multicore/Manycore)或Chip-levelmul
20、tiprocessing,CMP对称多处理系统SMP(SymmetricMultiprocessing)多个相同类型处理器通过总线连接并共享存储器大规模并行处理MPP(MassiveParallelProcessing)专用内联网连接一组处理器形成的一个计算系统集群(Cluster)网络连接的一组普通商用计算机构成的计算系统网格(Grid)用网络连接远距离分布的一组异构计算机构成的计算系统紧密耦合度松散低可扩展性高低能耗高并行计算技术的分类并行计算技术的分类按系统类型分类按系统类型分类l不同系统的特征和对比从MC到Grid,耦合度越来越低,但可扩展性越来越高,系统规模越来越大,而能耗也越来越高
21、MC处理器核通过NOC(片上网络)集成在一个芯片上,通常使用混合式内存访问机制(本地缓存加全局内存),功耗很低SMP使用独立的处理器和共享内存,以总线结构互联,运行一个操作系统,定制成本高,难以扩充,规模较小(2-8处理器)MPP使用独立的处理器及独立的内存、OS,专用的高速内联网络,难以升级和扩充,规模中等(TOP500中有80多个)Cluster使用商品化的刀片或机架服务器,以网络互联为一个物理上紧密的计算系统,可扩展性强,规模可小可大,是目前高性能并行计算最常用的形式(TOP500中有400多个)Grid则为地理上广泛分布的异构计算资源构成的一个极为松散的计算系统,主要用于并行度很低的大
22、规模科学计算任务并行计算技术的分类并行计算技术的分类按计算特征分类按计算特征分类数据密集型并行计算(Data-IntensiveParallelComputing)数据量极大、但计算相对简单的并行处理如:大规模Web信息搜索计算密集型并行计算(Computation-IntensiveParallelComputing)数据量相对不是很大、但计算较为复杂的并行处理如:3-D建模与渲染,气象预报,科学计算数据密集与计算密集混合型并行计算兼具数据密集型和计算密集型特征的并行计算,如3D电影渲染并行计算技术的分类并行计算技术的分类按并行程序设计模型按并行程序设计模型/方法分类方法分类共享内存变量(S
23、haredMemoryVariables)多线程共享存储器变量方式进行并行程序设计,会引起数据不一致性,导致数据和资源访问冲突,需要引入同步控制机制;Pthread,OpenMP:共享内存式多处理并行编程接口消息传递方式(MessagePassing)对于分布式内存结构,为了分发数据和收集计算结果,需要在各个计算节点间进行数据通信,最常用的是消息传递方式;MPI:消息传递并行编程接口标准MapReduce方式Google公司提出的MapReduce并行程序设计模型,是目前最易于使用的并行程序设计方法,广泛使用于搜索引擎等大规模数据并行处理并行计算技术的分类并行计算技术的分类不同类型并行计算技术
24、和系统的发展历史和现状不同类型并行计算技术和系统的发展历史和现状主要发展历史阶段 1975-1985 主要是向量机技术,如Cray1,Cray2。但基于多线程的并行计算也逐步引入。1986-1995 大规模并行处理MPP成为主流并行计算技术,消息传递编程接口MPI得到开发应用。目前TOP500中有84个基于MPP。1995-现在 Cluster和Grid并行计算技术成为主流,但目前Grid的发展已呈下降趋势,目前TOP500中有414个基于Cluster。并行计算技术的分类并行计算技术的分类不同类型并行计算技术和系统的发展历史和现状不同类型并行计算技术和系统的发展历史和现状主要发展历史阶段并行
25、计算技术的分类并行计算技术的分类不同类型并行计算技术和系统的发展历史和现状不同类型并行计算技术和系统的发展历史和现状主要发展趋势SMP作为共享内存式小规模并行计算技术一直活跃60-70年代基于大型机的SMP系统,80年代基于80386/80486的SMP系统,90年代到目前基于多核的个人电脑、服务器大都基于SMP多核/众核并行计算成为重要发展趋势 由于单核处理器性能发展的瓶颈,同时由于多核/众核计算计算自身具有的体积小、功耗低等诸多技术特点和优势,今后多核/众核并行计算会称为必然趋势并行计算软件技术远远落后于硬件发展速度 并行计算硬件技术水平和规模发展迅速,但并行计算软件技术远远跟不上硬件发展
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 并行 计算 技术 概述
限制150内