1第一讲高性能计算概述主讲:董小社xsdong@mail.xjtu.edu.cn82663951西一楼4132教材:{《高性能集群计算结构与系统》,郑纬民等译,电子工业出版社参考书:{[1]《HighPerformanceClusterComputingArchitectureandSystems》,RajkumarBuyya.{[2]《可扩展并行计算:技术,结构与编程》,Hwang著/陆鑫达等译31.1介绍博士生:体会解决问题的方法和思路研究生:了解实现技术现状和方法FTP:202.117.15.199:21;hpc4前言推动计算机技术发展的基础:微电子技术:•最关键的因素,是物质基础芯片的集成度和处理速度日新月异计算机系统结构:•极其重要的因素•最合理地利用新器件、新设备,通过合理的新方法,最大限度地发挥出它们的内在潜力,设计和构成综合性能指标最佳的计算机系统•需要硬件、软件、语言、计算机结构、通信技术和高效的应用技术等多方面的发展变革•根据P.H.Enslow的统计,同一时期计算机系统性能比器件性能提高的速度快得多5678前言推动计算机技术发展的基础:并行处理技术:高性能计算机构建主要方法时间和空间上的并行技术开发{流水线技术:使得功能部件得到充分利用{超标量和多处理机技术:使得各部件并行工作超标量、多核、流水、超流水处理器芯片技术的进步:{已使今天的处理器的性能达到单片10亿次以上,不久的未来单芯片有可能达到Tflops级高性能计算机系统结构{经历了阵列机、向量机、SMP、MPP、Cluster等,今天的单机系统性能已经达到1Pflops以上。910MultiplecoresdelivermoreperformanceperwattC1C1C4C4C2C2C3C3SmallSmallcorecoreBigcoreBigcoreCacheCacheCacheCache11223344112211111122334411223344PowerPowerPerformancePerformancePower=Power=¼¼Performance=1/2Performance=1/2ManycoreismoreManycoreismorepowerefficientpowerefficientPower~areaPower~areaSinglethreadSinglethreadperformance~area**.5performance~area**.51112131415前言应用是计算技术发展的牵引动力:从计算机诞生那一天起,人类对计算机性能的需求就一直是永无止境的应用领域需要计算机解决的问题越来越复杂,规模越来越大。像中长期高精度天气预报、环境监测和灾害预报、人类社会仿真、虚拟核试验、生物基因破译、新医药研制、海量信息处理等都需要极高性能的计算机。今天的计算机的性能远不能满足应用的要求,它所能解决的问题仍然只是人们期待解决的问题的很小一个子集。16ComputationalTechnologiesComputationalTechnologiesENIACENIACCrayCray--22CrayX/MPCrayX/MP(Vector)(Vector)CrayT90CrayT90SGIOrigin2KSGIOrigin2K(Scalable)(Scalable)Multi-DisciplinaryAnalysisandOptimizationMulti-scale(SpaceandTime)CDC7600CDC7600SGIOrigin3KSGIOrigin3KIBMSP3/4IBMSP3/4LinuxLinuxNetworXNetworXIAIA--3232AnalyticalModelsRigid-BodyDynamics19501975198619962000DefenseRDT&EProblemComplexityDefenseRDT&EProblemComplexityFiringTables~Fin-StabilizedProjectiles22--DD33--DD11--DD33--DDCoupledCoupledMulti-ComponentProjectiles/MissilesHPCCapabilityHPCCapabilityProgressionofHPCSimulationsImpactofAdvancesinComputationalResources17PetaflopUsageModels18前言计算机网络技术发展是高性能计算技术创新的机遇:促进了计算机系统结构发展集群/机群,网络计算,虚拟现实等人类社会正向信息化社会发展,促生了新的应用模式各行各业对信息的依赖程度越来越高随着应用的性质和范围的变化,大众而不仅是少数科学家也将成为高性能计算能力的使用者,以帮助他们发现、获取、处理和使用有用的信息融入社会的高性能计算能力将发掘出无数我们今天还无法想象的应用,改变了计算机应用模式,改变人类社会生活的模式和形态基于服务的SOC,SOA,Grid,WebService,P2P等创新性研究思考:如何低成本获得更高性能、可靠性等;如何更好满足未来应用需求,基于新技术实现未来新应用模式;等为什么总是别人提出新概念?网格计算技术试图解决的问题19如何获得更强的计算能力?途经1:增加处理器和其他运算部件的运算速度缺点:受到光速、热力学定律、处理器制造所需的大量资金的限制。途经2:将多个处理器连接起来,使用它们合在一起的计算能力。{这是目前一个可行又价格合理的解决办法。20改善性能的三个途径3个途径可以改善性能:更努力的工作更有创造力的工作获得帮助对应的计算机术语表达使用更快的硬件优化解决计算任务的算法和技术使用多计算机来解决特定任务21构建高性能计算系统的3个途径•计算资源变得便宜,且很丰富:•可以增加低成本的高速CPU和大容量Memory•基于互联网络将计算节点互连成机群很容易•三类高性能计算系统:•高端系统:如BlueGeneL,EarthSimulator•可以实现最高性能,但价格昂贵•集群系统:如Downing,许多Top500系统•低价格,但持续性能低•网格计算:如USNSF的TeraGrid,CNGrid,ChinaGrid•利用广域计算资源,但需要高成本的高速互连,且具有高延迟缺点22计算和网络系统中的主要资源•如何利用目前已有资源和技术构建高性能计算系统?•好消息:要尽量利用,很好利用就是好方法•CPUcycles:对很多应用来说CPU能力已经过剩•Memorybandwidth:改善很快•Memorycapacity:变得很大,且便宜•IObandwidth:改善很快•Diskcapacity:巨大,且便宜•ClusterandInternetbandwidth:很丰富•坏消息:要尽量避免;能解决就会有创新•CPUcyclesperWatt:降低,即功耗越来越大•Cachecapacity:总是受到限制•各级的数据访问延迟改进明显滞后•利用好消息,避免坏消息,是研究时刻关注并牢记的要点23计算的两个时代1.串行计算时代串行时代计算系统部件发展所需的技术已经成熟。2.并行计算时代并行计算技术还需要完善,没有成熟到可以作为成熟产品的程度。1)以前并行计算机是专家贵族的应用平台2)集群技术使得高性能计算大众化集群/机群计算技术成熟了?没有!24计算时代的变化1.每一个计算时代都从体系结构开始发展,接着是系统软件、应用程序,最后随着PSE(问题解决环境)的发展达到顶峰2.计算系统的每一个部件都经历三个发展阶段:R&D(研究和发展)阶段、商业化阶段、成熟产品阶段。25计算的两个时代26为什么要使用多处理机系统?1.高速处理:并行计算机根据让其同时动作的原理,可以将一个任务划分成多个子任务分别在多个处理器或计算机上同时处理,以提高运算速度,突破单机系统性能的极限2.高可靠性:如容错计算机系统根据让其同时动作的原理,得到高可靠性,既是某个处理机节点故障,整个系统也可继续降级使用,可靠性降级或者性能降级3.资源共享和协同工作:如企业管理数据库系统根据多个处理器或计算机共用存储器、大容量辅助外存储器和输入/输出设备的原理,对于多个用户来说,可以更高效率的利用资源,减少成本,多用户可以共享资源和数据等27容忍错误:1、容忍硬件故障,保证服务连续性2、容忍处理错误,保证结果正确性,同时保证服务连续性可用性?可靠性?可靠性是可用性的基础可靠性:服务的可靠性,结果的可靠性等多模容余的硬件容错,可用性昀高成本、性能和可靠性折中28为什么要使用并行计算机?(续)并行计算机是为了将单一任务高速处理的系统,是解决单处理器速度瓶颈的最好方法,也具有高可靠性和资源共享的特性{需要高可靠机制:使用多个处理器或计算机,可以防止由于系统中的某个处理器故障而使系统整个崩溃的情况{可以达到资源共享:多个用户共享资源可以处理多个任务,从而可以高效地使用计算资源,这也是并行计算机的一个优点基于集群的并行计算机的性价比相对于小型机高很多只是以高可靠性为目的系统,叫做多重化系统,一般不属于并行计算机的范畴,如容错计算机系统只是以资源共享和协同工作为主要目的的系统,应该属于分布式系统,如企业管理数据库系统•为了解决实际问题,灵活利用现有体系结构或物理环境的有利条件或技术发展趋势,可创新性提出研究方向。•博士生应该敏感的关心各领域、各方向的基础方法等加以创新利用,随时关心、总结计算机领域软硬件基础条件变化和趋势,开创性确定新研究领域。•发现新型应用模式是研究创新和创业的关键。29计算机系统的并行性发展在计算机发展史中,采用并行性措施来使计算机逐步由低性能向高性能,计算机系统结构由低级向高级发展1.1960年以前,运算与输入/输出间操作的并行。2.1960年至1970年,指令操作级的流水线单处理机系统。3.1970年至1980年,大型和巨型的阵列计算机、向量计算机、联想处理机等多种并行处理系统结构。4.1980年至1990年,精简指令系统处理器(RISC)、多微处理器组成的多处理器计算机、数据流计算机和智能计算机等。5.1990年以来,计算机发展进入了第五代,机器最主要的特点是可以进行大规模并行处理(MPP),单片多处理器、多处理机、多计算机系统是目前MPP计算机研究和开发的热点。6.目前,并行工作站机群已经进入并行计算和分布式计算技术发展的主流。30计算机系统的并行性发展并行工作站机群(NOW)/集群(COW)已经是并行计算和分布式计算技术发展的主流{由工业化生产的高性能低价格PC或工作站组成的多处理机系统,具有处理能力强、可靠性高、可维护性和可用性好、易开发和开发周期短、灵活性大、性能价格比比大型机高出数倍至十几倍等任何时候,简单低成本的解决方案都是昀好的解决方案,利用低成本的商品化部件;没有条件创造条件。31并行性的等级1.从执行程序的角度,并行性等级从底到高:{指令内部的并行:一条指令内部各个微操作之间的并行{如指令的解释执行流水线处理等{指令之间的并行:多条指令的并行执行{如超标量处理、超长指令处理等{任务或进程之间的并行:多个任务或进程的并行执行如并行计算等{作业或程序之间的并行多个作业或多道程序的并行执行{如企业管理系统(MIS)、分布式处理等指令内部的并行则主要取决于硬件和组成的设计指令之间的并行主要是要解决和处理好指令之间存在的相互关联任务或进程的并行主要涉及并行算法,既如何进行任务分解•作业或程序间的并行关键在于如何将有限的硬件、软件资源有效地同时分配给正在用于解题的多个程序32并行性的等级2.从信息加工的各个步骤和阶段来看{存储器操作并行:可以采取单体多字、多体单字和多体多字方式在一个存储器周期内访问多个字{高位交叉和低位交叉并行存储系统采用按内容方式在一个存储器周期内全并行方式实现对存储器中大量字的高速并行比较、