高性能计算机技术交流_第1页
高性能计算机技术交流_第2页
高性能计算机技术交流_第3页
高性能计算机技术交流_第4页
高性能计算机技术交流_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高性能计算和高性能计算机赵崇山2007-08-10目录并行计算概要高性能计算机体系结构并行编程简介高性能计算机群并行计算的应用模式环境科学全球气候污染输运公共安全与管理燃烧现象城市交通模拟工程多物理尺度的问题流体力学(CFD)结构力学(CAE)生物学药物设计基因学实验有争议应用物理新材料设计辐射传输宇宙演化数值模拟实验危险实验困难实验昂贵不可能进行实验计算是认识世界的主要手段并行计算的功能降低单个问题求解的时间增加问题求解规模、提高问题求解精度(多机同时执行多个串行程序)容错、更高的可用性、提高吞吐率并行计算的应用需求并行化的主要方法:分而治之根据问题的求解过程,把任务分成若干子任务(任务级并行或功能并行)根据处理数据的方式,形成多个相对独立的数据区,由不同的处理器分别处理(数据并行)如何实现并行计算?分而治之!目录并行计算概要高性能计算机体系结构并行编程简介高性能计算机群并行计算的应用模式由众多部件组成,具有运算速度快、存储容量大、可靠性高的特性。也称为:超级计算机、高端计算机、高性能计算机目前任何高性能计算机和并行计算都离不开使用并行技术,所以高性能计算机肯定是并行计算机。定义:并行计算机衡量并行计算机的标准TOP500排名标准依据Linpack软件实际测试值所表现出来的浮点计算能力超级计算机总装机量排名并行计算机系统结构Flynn分类:SISD,SIMD,MIMD,MISD结构模型:PVP,SMP,MPP,DSM,COW访存模型:UMA,NUMA,COMA,CC-NUMA,NORMAFlynn分类Flynn(1972)提出指令流、数据流和多倍性概念,把不同的计算机分为四大类:SISD(Single-InstructionSingle-Data)SIMD(Single-InstructionMulti-Data)MISD(Multi-InstructionSingle-Data)MIMD(Multi-InstructionMulti-Data)超级计算机肯定是属于MIMD。MIMD从结构上和访存方式上,又可以分为:结构模型:PVP,SMP,MPP,DSM,CLUSTER访存模型:UMA,NUMA,COMA,CC-NUMA,NORMAFlynn分类并行计算机体系结构分类分布共享存储系统(DSM)通过硬件来实现内存统一编址的超级计算机SGIAltix4000系列和Origin3000系列大规模并行计算机系统(MPP)采用专用定制的网络连接或结构的超级计算机Cray“红色风暴”,IBMSP4,IBM“蓝色基因”机群系统(Cluster)通过定制/标准网络连接的超级计算机曙光TC4000系列,联想深腾6800体系结构模型分类SMP对称式共享存储:任意处理器可直接访问任意内存地址,且访问延迟、带宽、机率都是等价的;系统是对称的;处理器:一般少于64个;处理器不能太多,总线和交叉开关的一旦作成难于扩展;例子:SUNEnterprise,曙光1号,IBMRS6000,HPSuperDome对称多处理机系统(SMP)分布共享存储系统(DSM)DSM:分布共享存储:内存模块物理上局部于各个处理器内部,但逻辑上(用户)是共享存储的;这种结构也称为基于Cache目录的非一致内存访问(CC-NUMA)结构;局部与远程内存访问的延迟和带宽不一致,3-10倍

高性能并行程序设计注意与SMP的主要区别:DSM在物理上有分布在各个节点的局部内存从而形成一个共享的存储器处理器:可扩展性比较好代表:SGIOrigin3000,Altix4700,CrayT3D大规模并行计算机系统(MPP)MPP物理和逻辑上均是分布内存能扩展至成百上千个处理器(微处理器或向量处理器)采用高通信带宽和低延迟的互联网络(专门设计和定制的)一种异步的MIMD机器;程序系由多个进程组成,每个都有其私有地址空间,进程间采用传递消息相互作用;代表:

曙光1000,神威机系列,CRAYT3E,ASCIRed(3072),IBMSP4,CRAYRedStorm,IBMBlueGeneCluster每个节点都是一个完整的计算机各个节点通过高性能网络相互连接网络接口和I/O总线松耦合连接每个节点有完整的操作系统曙光2000、3000、4000,ASCIBlueMountain机群系统(Cluster)UMA:NORMA:NUMA:访存模型分类NORMA:UMA:NUMA:多处理机(共享存储)

多计算机(分布式存储)多处理机和多计算机多处理机(单地址空间共享存储器)

UMA:UniformMemoryAccessNUMA:NonuniformMemoryAccess多计算机(多地址空间非共享存储器)

NORMA:No-RemoteMemoryAccessUMA:NUMA:NORMA:访存模型和体系结构对应目录并行计算概要高性能计算机体系结构并行编程简介高性能计算机群并行计算的应用模式并行程序开发环境共享存储模型(SharedMemory)消息传递模型(MessagePassing)HPF(HighPerformanceFortran)共享存储模型特点:一个并行程序由多个共享内存的并行任务组成,数据的交换通过隐含地使用共享数据来完成。一般仅需指定可以并行执行的循环,而不需考虑计算与数据如何划分,以及如何进行任务间通信,编译器会自动完成上述功能。OpenMP:目前流行的共享内存模型开发标准是OpenMP。OpenMP定义了一套编译指导语句,用于指定程序的并行性、数据的共享/私有等信息。其目标是为SMP系统提供可移植、可扩展的开发接口。OpenMP由OpenMPArchitectureReviewBoard于1997年推出,现在已发展到2.0版。OpenMP支持的编程语言包括Fortran、C和C++。OpenMP得到了工业界的广泛支持,有大量的商业编译器和其他开发工具支持OpenMP的开发,如IBM、HP、Sun、SGI、Intel等硬件厂商均有支持OpenMP的编译器产品,另外还有一些第三方厂商的OpenMP编译器。消息传递模型特点:一个并行程序由多个并行任务组成每个并行任务拥有自己的数据并对其进行计算操作任务之间数据的交换是通过显式的消息传递语句来完成的现在广泛使用的消息传递模型有两个:PVM和MPIPVM即ParallelVirtualMachine(并行虚拟机)MPI即MessagePassingInterface(消息传递界面)几乎所有的高性能计算系统都支持PVM和MPI

HPFHPF(HighPerformanceFortran)的思想与OpenMP类似,都是通过定义编译指导语句来帮助编译器生成并行代码。HPF的目标系统与OpenMP不同,它支持DMP系统。因此,除了指定并行性的编译指导语句外,HPF还指定数据划分的编译指导语句。HPF与消息传递模型的不同之处则在于:HPF通过编译器来生成通信语句,不需要程序员手工编写。HPF得到了工业界的广泛支持,如IBM、HP、Sun都有HPF编译器。第三方产品则有PGI的PGHPF、APR的ForgexHPF等。其不足是对于某些问题无法得到与手工编写的消息传递程序相同的性能。并行编程标准数据并行语言标准Fortran90,HPF(1992),Fortran95/2001:显式数据分布描述,并行DO循环.线程库标准(ThreadLibrary)–Win32API.–POSIXthreads线程模型.编译制导(CompilerDirectives)–

OpenMP:portablesharedmemoryparallelism消息传递库标准(MessagePassingLibraries)–

MPI

:MessagePassingInterface–

PVM:ParallelVirtualMachine共享变量编程消息传递编程数据并行编程并行编程标准归类所有并行编程标准可分为以下三类:数据并行HPF,Fortran90用于SMP,DSM共享编程OpenMP用于SMP,DSM消息传递MPI,PVM用于所有并行计算机三者可混合使用:如对以SMP为节点的Cluster来说,可以在节点间进行消息传递,在节点内进行共享变量编程.消息传递并行程序设计消息传递并行程序设计指用户必须通过显式地发送和接收消息来实现处理机间的数据交换。在这种并行编程中,每个并行进程均有自己独立的地址空间,相互之间访问不能直接进行,必须通过显式的消息传递来实现。这种编程方式是大规模并行处理机(MPP)和机群(Cluster)采用的主要编程方式。并行计算粒度大,特别适合于大规模可扩展并行算法由于消息传递程序设计要求用户很好地分解问题,组织不同进程间的数据交换,并行计算粒度大,特别适合于大规模可扩展并行算法.消息传递是当前并行计算领域的一个非常重要的并行程序设计方式什么是MPI?MassagePassingInterface:是消息传递函数库的标准规范,由MPI论坛开发,支持Fortran和C一种新的库描述,不是一种语言。共有上百个函数调用接口,在Fortran和C语言中可以直接对这些函数进行调用MPI是一种标准或规范的代表,而不是特指某一个对它的具体实现MPI是一种消息传递编程模型,并成为这种编程模型的代表和事实上的标准为什么要用MPI?高可移植性MPI已在IBMPC机上、MSWindows上、所有主要的Unix工作站上和所有主流的并行机上得到实现。使用MPI作消息传递的C或Fortran并行程序可不加改变地运行在IBMPC、MSWindows、Unix工作站、以及各种并行机上。并行库基本思想是:用户不需要自己编写通用的并行算法代码,而由程序库提供并行算法,并对用户透明。用户只需要根据自己的需求,调用相应的库函数,就可以编写出并行程序。由于库函数的编写者一般经验丰富,而且库函数会采取较为优化的算法,并采用优化编译,使得库函数的执行效率很高。对于大量使用通用计算算法的用户来说,使用并行库是一种高效的开发模式。并行库的缺点是无法帮助那些需要自己书写非通用并行算法的用户。常用并行库目前的并行库很多,包括PBLAS(ParallelBasicLinearAlgebraSubroutines),以及建立在其基础上的LAPACK和ScaLAPACK,提供了一些线性代数问题的并行求解算法,如求特征值、最小二乘问题等。LAPACK是为SMP系统优化的,ScaLAPACK是为DMP系统优化的。大多数高性能计算系统都提供在本系统上优化的PBLAS、LAPACK、ScaLAPACK。另一个著名的并行库是PETSc。PETSc是一套基于MPI的数据结构和库函数,用于解决基于偏微分方程的典型科学计算问题。MATLAB是很常用的科学计算软件。很多公司和研究机构也在进行并行化MATLAB的工作,如RTExpress。开发工具调试工具性能分析与预测资源管理和负载平衡系统调试工具IBM的pdb(命令行方式)、pedb(Xwindow图形界面)、HP的DDE(XWindow图形界面)和LaDebug(用于Alpha系统)、Sun的Prism等Etnus公司的TotalView是最著名的第三方并行调试器。它提供对C、C++、Fortran程序的图形化符号调试,可以调试MPI、PVM、HPF、OpenMP程序,支持SGI、Sun、HP、IBM等几乎所有的高性能厂商的产品,还提供对Linux的支持。Intel公司的ThreadAnalyzer是一个支持OpenMP的程序正确性检测工具,用于自动发现程序中的常见错误。它目前仅支持IA32和IA64上的Linux性能分析与预测程序性能分析(profiling)可以帮助用户找到程序中最费时的部分,从而集中精力进行改进和优化,是改进程序性能的有效手段传统的性能分析工具一般仅提供子程序级的性能分析但对于高性能程序来说,对于循环程序的性能分析是必不可少的。现有的大部分高性能计算系统中大都具有能够进行循环级性能分析的性能分析器,有些还提供了友好的用户界面,如Intel的VTune、AMD的CodeAnalyst、IBM的Xprofiler等。一些第三方厂商也提供性能分析工具,比如Pallas的Vampir,它支持从LinuxPC到IBM、HP、Sun、SGI等几乎所有的高性能厂商的产品。资源管理和负载均衡系统严格地说负载平衡系统是运行时环境,而不是开发环境负载平衡系统通过了解系统中各个结点的负载状况、计算能力、内存状况等,可以合理地分配任务的执行结点,必要时迁移现有的任务到其他结点,从而达到提高系统吞吐量的作用。对于SMP系统来说,操作系统内置的任务调度器可以完成任务的调度功能对于DMP系统来说,需要专门的软件来进行任务调度,达到负载平衡和单一系统映象(SSI)著名的负载均衡系统Platform公司的LSF(LoadSharingFacility)Veridian的PBS(PortableBatchSystem)开源OpenPBS(Torque)、SGE串行程序自动并行化优点:可以将现有的很多串行代码转换成并行代码并行化分为全自动并行化和交互式并行化两种模式全自动并行化的并行过程不需要人的干预,可以自动发现程序中可并行的部分,生成并行代码;对大多数程序来说,并行化的效果还不理想交互式并行化工具通过给用户提供程序中的有效信息,包括相关性分析结果、程序调用图、性能预测结果等帮助用户进行并行化工作,但是如何更好地结合用户和并行化工具的能力还需要进一步研究。目前产品化的交互式并行化工具主要有APR的Forge,该系统支持Fortran77的并行化,并同时支持SMP系统和DMP系统。发展趋势OpenMP将成为支持SMP系统编程的主要标准,将来的工作在于研究和开发更加有效的OpenMP编译器,以及更加强大友好的开发、调试工具MPI和PVM将仍然是DMP系统的主要标准并行库是很有前途的开发方式和研究方向,随着更多的并行程序库的出现,并行化编程会越来越容易。程序自动并行化技术也能大大缩短并行程序的开发时间,但目前的技术即使对SMP系统也没有达到实用的水平,还需要技术上的突破。网格计算是现在的热门话题,也是将来高性能计算的发展方向之一。为网格计算制定标准,提供所需的开发环境和运行环境将是未来的发展方向。目录并行计算概要高性能计算机体系结构并行编程简介高性能计算机群并行计算的应用模式专用时代

在机群技术出现之前都是,包括大型机,MPP系统,SGINUMA系统,SUN大型SMP系统,也包括我国的神威,银河,曙光1000,KJ。

之所以称为“专用”,并不是说它们只能运行某种应用,是指它们的组成部件是专门设计的,它们的CPU板,内存板,I/O板,操作系统,甚至I/O系统,都是不能在其它系统中使用的。由于技术上桌面系统与高端系统的巨大差异,和用户群窄小。平民化时代

这个时代里两个技术趋势起到重要作用。

商品化趋势使得大量生产的商品部件接近了高性能计算机专有部件

标准化趋势使得这些部件之间能够集成一个系统中,其中X86处理器、以太网、内存部件、Linux都起到决定性作用。

机群系统是高性能计算机的一种,它的技术基础和工业基础都是商品化和标准化。超级计算机的发展高性能计算机体系结构的变化ArchitectureCountShare%Cluster37374.6%MPP10721.4%Constellations204%Total500100%TOP500排名(2007年6月)机群是目前高性能计算机的主流MainframeVectorSupercomputerMiniComputerWorkstationPC1984年计算机的食物链MainframeVectorSupercomputerMPPWorkstationPCMiniComputer(hittingwallsoon)(futureisbleak)1994年计算机的食物链现在计算机的食物链机群系统(Cluster)

利用标准网络将一台台普通服务器或者PC机连接起来,为使用者提供更高的计算能力和存储能力并为使用者提供单一系统映象的系统。什么是机群系统单一系统映象使用者在使用机群系统的时候感觉上就象使用一个单独的计算机系统一样。

单一系统映象实现方法:硬件层、操作系统层、软件层按节点机的类型SMPCluster:节点机为SMP,也成为CLUMPS(ClusterofSMP’s)。

我们通常说的机群就是SMPCluster。NUMACluster:节点机为NUMA结构的机群系统PCCluster:节点机为PC机,通常也成为Beowulf机群(DIY机群)按应用领域高性能计算机群信息服务机群机群系统的分类数学基因信息气象预报生物物理石油勘探信息服务汽车制造船舶制造机群系统的应用领域极高的性价比大型机的主流良好的可扩展性更高的可管理性更低的使用维护成本更好的可使用性更改的系统鲁棒性更多的应用支持机群使用越来越广泛应用领域越来越多机群系统的优势监控系统存储系统SKVM网络系统电源系统计算节点I/O节点管理节点标准机群解决方案高性能机群的硬件构成机柜(含供电电源)节点机

计算节点,登陆节点,I/O节点,监控节点互连网络,连接机群的全部或部分节点:管理网(百兆以太网)数据网(千兆以太网)计算网(Myrinet,Infiniband等)监控网(曙光监控系统网络)KVM网(曙光SKVM系统)存储网(SAN存储网络)存储系统:盘阵或SAN存储应用层机群操作系统层系统软件层(OS,编译器)硬件层(节点,网络等)高性能机群层次架构高密度节点高速通讯网络存储KVM监控网络电源管理网络网格使能零部件基础部件层节点系统层机群操作系统核心层

机群操作系统构件层应用支撑构件层应用层操作系统编译器函数库数据库多线程工具性能调试器性能优化器TCP/IP高效TCP/IPVIA、BCL网格网关分布

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论