您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 超性能计算(mpi)-ppt课件详解
高性能计算程序设计课程内容•并行计算机与并行算法的基础知识•MPI程序设计•OpenMP程序设计目的:了解和掌握基本的高性能程序设计编程技术。参考资料•《高性能计算并行编程技术—MPI并行程序设计》都志辉清华大学出版社•《并行算法实践》阵国良等高等教育出版社•《并行计算---结构、算法、编程》阵国良等高等教育出版社第一讲基础知识2014.9.16一高性能计算的定义高性能计算指同时对多项任务或多条指令或多个数据进行处理的一种方法同意词:并行计算,超级计算高性能计算的目的•提供比传统计算机更快的计算速度•解决传统计算机无法解决的问题二、什么叫高性能计算机?完成并行处理的计算机系统称为并行计算机(高性能计算机),它是将多个(几个、几十个,几千个,上万个)处理器通过网络连结以一定的方式有序地组织起来形成的一种特殊的计算机(计算机集群)。连接方式涉及网络之间的互联拓扑、通信协议等有序组织涉及操作系统、中间软件等并行计算机示例并行计算机示例并行计算机示例Berkeley于1994年开发的集群式系统并行计算机示例国内独立研制的第一套大规模并行机系统曙光1000并行计算机示例IBM建造的世界上最大的并行计算中心,用于美国能源部的核试验计算系统共有15台曙光W580双路服务器,CPU整体峰值性能达到3.312万亿次/秒。每台计算节点配置2颗IntelXEONE5-26302.3G6CCPU六核CPU,24GDDR3内存。GPGPU计算系统共有7台曙光W580I,GPU双精度浮点峰值达到9.17万亿次/秒。每台GPGPU计算节点配置2块NvidiaK20GPGPU卡。系统配备1台管理/IO/登陆节点,存储裸容量为2.3TB,部署曙光Gridview2.6集群管理系统,用户可通过IP地址实现Web访问。系统配置机房环境管理节点1台,部署曙光IMMS机房环境管理系统。用户可通过IP地址实现Web访问。系统配置1套线速互联的56GbFDRInfiniband网络。系统共用9个服务器机柜、1个空调机柜、4个航空电源箱供电,系统峰值功耗约为28kW。三、为什么要建造高性能计算机?一、许多问题串行计算机难以解决核试验,地球物理资料处理,天气预报等二、计算速度的要求串行速度提升缓慢;需要在更短的时间内解决相同的问题;三、问题的规模不断扩大物理现象的仿真模拟(一维二维三维)长期天气预报更为复杂的科学研究四、对计算结果的精确性的要求不断提高动物的食物链高性能计算机主要解决两类问题一、常规串行机不能解决的问题二、常规机器能够解决,但速度很慢的问题四、高性能(并行)计算机的发展历史及趋势•20世纪70年代末,向量机的出现标志着超级计算机的开始计算速度:提高了一个数量级提高计算速度的途径:改进芯片技术,提供共享存储多处理器系统•20世纪80年代后期,共享存储方式的大规模并行计算机蓬勃发展,超大规模并行机出现贵族计算机•近年来,集群式系统由于具有以下优点而得到了快速发展低成本、高性能、短周期,大规模并行,分布式共享内存平民的超级计算机发展历史•向量机(芯片级的并行计算机)•MPP(MassivelyParallelProcessors)(主板级的并行计算机)•Cluster研制难度逐渐降底发展趋势:集群式系统将成为并行机的发展主流原因:1、传统向量机与共享内存计算机的计算速度很难突破物理极限2、大型计算机价格昂贵,削弱了其市场竞争力3、操作困难,缺乏一个统一的标准4、其它诸多原因国内的超级计算中心•国家高性能计算中心(北京,合肥,成都,武汉,上海,杭州,西安)•山东大学高性能计算中心•天津高性能计算中心•北京应用物理与计算数学研究所-高性能计算中心•上海超级计算中心•中国科学院的超级计算中心五、高性能计算(机)的应用1、理论科学2、实验科学3、计算科学计算流体力学、计算力学、计算分子动力学、计算生物学、计算化学、计算气象学、计算材料学、计算物理学、计算电子学、计算量子力学、……中长期天气预报。每增加一天,要求计算速度增加一个数量级。信息战。关键是对信息的处理速度,如雷达信息的处理地震预报预测石油勘测生物信息处理......六、并行计算机的分类指令与数据:•SIMD(Single-InstructionMultiple-Data),同时用相同的指令对不同的数据进行操作•MIMD(Multiple-InstructionMultiple-Data),同时有多条指令对不同的数据进行操作•SPMD(Single-ProgramMultuple-Data),同时执行相同的程序对不同数据操作•MPMD(Multiple-ProgramMultuple-Data),同时有多个程序对不同的数据进行操作存储方式:•共享内存处理单元通过对共享内存的访问来交换信息协调各处理器对并行任务的处理。•分布式内存各个处理单元拥有独立的局部存储器,处理器之间通过消息传递来交换信息,协调和控制各个处理器的执行。•分布式共享内存结合前两者特点,提高了整个系统的计算能力而且可以提高系统的模块性和扩展性,有利于快速构造超大型的计算系统七、并行算法及分类•算法是解题的精确描述---是一组有穷的规则,它规定了解决某一特定类型问题的一系列运算。并行计算是可同时求解的诸进程的集合,这些进程相互作用和协调动作,并最终获得问题的求解。•并行算法就是对并行计算过程的精确描述•并行算法可以从不同的角度分类为:----数值计算并行算法和非数值计算并行算法----同步并行算法和异步并行算法----共享存储并行算法和分布存储并行算法数值计算并行算法和非数值计算并行算法数值计算是指基于代数关系运算的计算问题----如矩阵运算,多项式求根,线性代数方程组的求解等----科学与工程中的计算问题如计算力学,计算物理,计算化学等一般为数值计算问题非数值计算是指基于比较关系的运算问题----诸如排序、选择、搜索、匹配等符号处理----在符号类的信息处理中获得广泛应用,如数据库领域的计算问题,海量数据挖掘,生物信息学等同步并行计算和异步并行计算同步并行计算:参与并行计算的各个进程必须在相同的时刻执行至某一位置,此时较先到达该点的进程必须等待其它进程均已到达该位置才向下执行大多数工程计算所采用并行计算方式并行化程度较低异步并行计算:各进程独立运行,互不干涉并行化程度较高同步并行计算异步并行计算共享存储并行算法和分布存储并行算法适用于不同的机器•划分(Partitioning)划分计算与数据,开拓并行机会•通信(Commutication)计算之间数据共享,任务协调•组合(Agglomeration)合理组织各任务来提高性能•映射(Mapping)分配任务(分布式、共享)分配给不同处理器的任务量应当均衡,不同处理器交互应当最少八、PCAM并行算法设计过程九MPI简介•并行语言的产生方式•MPI并行编程1、并行语言的产生方式•设计全新的并行语言•改变串行语言的语法,使其支持并行编程•不改变串行语言的语法,仅为串行语言提供并行库目前较常用的并行编程语言:PVMDPFOpenMPMPI共同特点:•公用软件,易于得到•多数厂家支持消息传递的特点:在消息传递模型中,一个并行应用由一组进程组成,每个进程的代码是本地的,只能访问私有数据,进程之间通过传递消息实现数据共享和进程同步.优点:用户可以对并行性的开发、数据分布和通信实现完全控制.缺点:(1)要求程序员显式地处理通信问题,如,消息传递调用的位置,数据移动,数据复制,数据操作,数据的一致性等等.(2)对大多数科学计算程序来说,消息传递模型的真正困难还在于显式的域分解,也就是说,将对相应数据的操作限定在指定的处理器上进行,在每个处理器上只能看见整个分布数据的一部分.(3)无法以渐进的方式、通过逐步将串行代码转换成并行代码而开发出来.大量的散布在程序各处的域分解要求整个程序由串行到并行的转换一次性实现,而共享存储方法允许在现有的串行代码中插入并行说明从而实现逐步转换.与之相比,这是消息传递的一个明显的缺点.2、MPI并行编程MPI:MessagePassingInterface当前应用最为广泛的并行编程工具•是一个库而不是一门语言•是一种标准或规范的代表而不特指某一个对它的具体实现•是一种消息传递编程模型,并成为这种编程模型的代表和事实上的标准什么是MPI?MPI的三个主要目的1较高的通信性能;2较好的程序可移植性;3强大的功能。•提供应用程序编程接口。•提高通信效率。措施包括避免存储器到存储器的多次重复拷贝,允许计算和通信的重叠等。•可在异构环境下提供实现。•提供的接口可以方便C语言和Fortran77的调用。•提供可靠的通信接口。即用户不必处理通信失败。•定义的接口和现在已有接口(如PVM)差别不能太大,但是允许扩展以提供更大的灵活性。•定义的接口能在基本的通信和系统软件无重大改变时,在许多并行计算机生产商的平台上实现。接口的语义是独立于语言的。•接口设计应是线程安全的。1992年4月组建了一个制定消息传递接口标准的工作组1992年10月初稿形成,主要定义了点对点通信接口1993年1月第一届MPI会议在Dallas举行1993年2月公布了MPI-1修定版本1993年11月MPI的草稿和概述发表在Supercomputing‘93的会议论文集中1994年5月MPI标准正式发布1994年7月发布了MPI标准的勘误表1997年MPI论坛发布了一个修订的标准,叫做MPI-2,同时,原来的MPI更名为MPI-13、MPI的产生与发展4、MPI的语言绑定MPI不是一门语言,而是一个库,必须和特定的语言绑定才能进行MPI_I:C、FORTRAN77MPI_II:C++、FORTRAN905、目前MPI的主要实现•MPICH:美国的Argonne国家实验室•CHIMP:爱丁堡大学的并行计算中心•LAM(LocalAreaMulticomputer):俄亥俄州立大学•较强的通信功能•较高的可移置性•与最常用的编译器实现的绑定•免费,源代码开放6、MPI的特点十、第一个MPI程序•MPI程序的框架结构•第一个MPI程序•并行程序的运行方式•MPI程序的惯例MPI程序的框架结构头文件包含MPI库相关变量的声明定义与通信有关的变量程序开始调用MPI初始化函数程序结束调用MPI结束函数程序体计算与通信调用MPI其它函数#includestdio.hvoidmain(intargc,char*argv[]){printf(“helloworld!\n”);}用串行的C语言实现“helloworld”第三部分第五部分第一部分用C+MPI实现helloworld!#includempi.h#includestdio.h#includemath.hvoidmain(intargc,char*argv[]){intmyid,numprocsnamelen;charprocessor_name[MPI_MAX_PROCESSOR_NAME];MPI_Init(&argc,&argv);/*程序初始化*/MPI_Comm_rank(MPI_COMM_WORLD,&myid);/*得到当前进程号*/MPI_Comm_size(MPI_COMM_WORLD,&numprocs);/*得到总的进程数*/MPI_Get_processor_name(processor_name,&namelen);/*得到机器名*/printf(“helloworld!Process%dof%don%s\n,myid,numprocs,processor_name);MPI_Finalize();/*结束*/}第二部分第四部分执行结果进程进程是一个程序,同时包含它的执行环境(内存、寄存器、程序计数器等),
本文标题:超性能计算(mpi)-ppt课件详解
链接地址:https://www.777doc.com/doc-4253141 .html