超性能计算(mpi)详解PPT演示幻灯片_第1页
超性能计算(mpi)详解PPT演示幻灯片_第2页
超性能计算(mpi)详解PPT演示幻灯片_第3页
超性能计算(mpi)详解PPT演示幻灯片_第4页
超性能计算(mpi)详解PPT演示幻灯片_第5页
已阅读5页,还剩154页未读 继续免费阅读

下载本文档

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

文档简介

高性能计算程序设计,1、课程内容、并行计算机和并行算法的基础知识MPI程序设计OpenMP程序设计,目的:理解和掌握基本的高性能程序设计编程技术。 2、参考资料、高性能计算并行编程技术MPI并行程序设计都志辉清华大学出版社并行算法实践阵国良等高等教育出版社并行计算-结构、算法、编程阵国良等高等教育出版社3、第一讲义基础知识2014.9.16,4,4、 高性能计算的定义,高性能计算是同时处理多个任务和指令和数据的方法的同义词,高性能计算的目的是提供比传统计算机更快的计算速度,解决传统计算机无法解决的问题,5,2,高性能计算机是什么? 完成并行处理的计算机系统被称为并行计算机(高性能计算机),是通过网络连接以一定方法组织了多个(数、数十、数千、数万)处理器的特殊计算机(计算机集群)。 连接方式是网络间的互连拓扑、通信协议等规则的组织,由操作系统、中间软件等6,并行计算机例子,7,并行计算机例子,Berkeley于1994年开发的集群式系统,9, 并行计算机示例,国内独立开发的第一套大规模并行计算机系统“曙光1000 ,10,”相关的并行计算机示例,IBM建设的世界最大的并行计算中心用于美国能源部的核试验,计算系统为15台曙光W580服务器每个计算节点配备两个英特尔至强e5- 26302.3 g6ccpu核心CPU和24GDDR3内存。 GPGPU计算系统有7个极光W580I,GPU的双精度浮点峰值达到9.17兆次/秒。 每个GPGPU计算节点配备两个NvidiaK20GPGPU卡。 系统配备一个管理/IO/登录节点,存储空间为2.3TB,部署全局Gridview2.6群集管理系统,允许用户通过IP地址实现Web访问。 系统配备1台机房环境管理节点,引进曙光IMMS机房环境管理系统。 用户可以通过IP地址进行Web访问。 系统配置一组以线速连接的56GbFDRInfiniband网络。 系统共享9个服务器机柜、1个空调机柜和4个航空电源箱,系统峰值功耗约为28kW。12、3、为什么要建设高性能计算机? 一、多数问题串行计算机难以解决核试验,地球物理资料处理、天气预报等二、计算速度要求串行速度提高较慢需要更短时间解决同一问题三、问题规模不断扩大物理现象模拟(一维二维) 长期天气预报更加复杂的科研四,对计算结果准确性的要求不断提高,13、动物食物链,14、15、高性能计算机主要解决两类问题,一是普通串行机不能解决的问题二,普通机能解决但速度慢的问题,16、四,高性能(并行) 计算机的发展历史和发展趋势,20世纪70年代末,向量机的出现提高了超级计算机的计算速度:在提供改进芯片技术、共享存储多处理器系统的20世纪80年代后期,共享存储方式的大规模并行计算机蓬勃发展, 近年来超大规模并联机出现贵族计算机的集群系统具有以下优点:成本低、性能高、周期短、大规模并联、分布式共享内存平民超级计算机、发展历史17、 向量机(芯片级并行计算机) MPP (massivelyparallelprocessors ) (主板级并行计算机) Cluster迅速发展,开发难度逐渐降低,18、 发展趋势:集群式系统成为并行机发展的主流原因: 1、传统向量机和共享存储器计算速度难以突破物理极限2、大型计算机价格高、市场竞争力削弱3、操作困难、缺乏统一标准4、其他多种原因、19、国内超级计算中心、 国家高性能计算中心(北京、合肥、成都、武汉、上海、杭州西安)山东大学高性能计算中心天津高性能计算中心北京应用物理与计算数学研究所-高性能计算中心上海超计算中心中国科学院超计算中心,20, 5、高性能计算(机)的应用,1、理论科学2、实验科学3、计算科学计算流体力学、计算力学、计算分子动力学、计算生物学、计算化学、计算气象学、计算材料学、计算物理学、计算电子学、计算量子力学、21,中长期天气预报。 每增加一天,计算速度必须提高一位数。 情报战争。 重要的是信息的处理速度,例如雷达信息的处理地震预报或石油测量生物信息处理预测22、 6 .并行计算机的分类、指令和数据:SIMD (single-instruction multiple-data )同时使用相同的指令操作不同的数据的MIMD (multiple-instruction multiple-data ), 同时使用多个指令操作不同数据的spmd(single-programmulti-data )同时执行同一程序来操作不同数据的mpmd (multiple-program multiu ple-data )和同时使用多个程序不同的数据存储方式:共享存储器处理单元通过访问共享存储器交换信息,协调各处理器的并行任务的处理。 分布式存储器的各处理单元具有独立的本地存储器,在处理器之间交换消息,协调控制各处理器的执行。 在分布式共享存储器结合之前,两者的特征在于能够提高整个系统的计算能力,提高系统的模块性和可扩展性,有利于快速构建超大型计算系统,24,25,7,并行算法和分类,算法是解决问题的正确描述-某些特定类型的问题并行计算是可同时求解的过程的集合,这些过程相互作用并协调运行,最终得到问题的解决。并行算法可以从不同角度对并行计算过程的精确描述并行算法进行分类:-数值计算并行算法和非数值计算并行算法-同步并行算法和异步并行算法-共享存储并行算法和分布存储并行算法,26 : 所谓数值计算并行算法和非数值计算并行算法,所谓数值计算是基于代数关系运算的计算问题-例如矩阵运算多项式求根、线性代数方程式的求解等-科学和工程中的计算问题,例如计算力学、计算物理、计算化学等一般作为数值计算问题的非数值计算, 基于比较关系的计算问题广泛应用于排序、选择、搜索、匹配等符号处理-符号类信息处理,如数据库区域计算问题、大量数据挖掘、生物信息学等27,同步并行计算和异步并行计算,同步并行计算:参与并行计算的各个过程是同一时刻在这种情况下,先到达该位置的过程,在其他过程到达该位置之前,多数工程计算应采用并行计算方式执行并行程度较低的异步并行计算:各过程独立执行,互不干扰并行程度较高,28, 同步并行计算异步并行计算,29,共享存储并行算法和分布式存储并行算法被应用于不同的设备, 分区计算和分割数据,拓展并行机会通信计算之间的数据共享的任务协作组合合理地组织每个任务,以平衡将性能映射分配任务(方差、共享)分配给不同处理器的任务量8、PCAM并行算法设计过程31、9 MPI简档,并行语言生成方式MPI并行编程,32、1,并行语言生成方式新的并行语言改变了串行语言语法, 设计为支持并行编程不改变串行语言语法,只有串行语言提供并行库,33、当前常用并行编程语言: PVMDPFOpenMPMPI通用特点:通用软件,易受多家制造商的支持消息递送特征:在消息递送模型中,每个过程(其中,一个并行应用或一系列过程)的代码是本地的,并且只能访问私有数据。 通过在程序间传递消息,可以实现数据的共享和程序的同步。 优势:用户可以完全控制并发性开发、数据分布和通信。 缺点:要求程序显式地处理通信问题,例如,消息的传递调用处、数据移动性、数据副本、数据操纵、数据完整性等。 对于大多数科学计算程序来说消息传递模型的真正困难是显式域分解,也就是说将操作相应数据限于指定的处理器,从而在每个处理器中只看到整个分布式数据的一部分。 不能依次将串行代码转换成并行代码进行开发。 分散在程序各处的域分解,要求通过将程序整体从串行到并行的转换来一次实现的共享存储方法能够在已有的串行码中插入并行记述来实现阶段性转换。 这是信息发送的明显缺点. 35,2,MPI并行编程,MPI:MessagePassingInterface,应用了现在最广泛的并行编程工具. 36, 作为程序库而非语言是标准或规范的代表,特别是其具体实现是一种消息传递编程模型,该编程模型的代表和实际标准. MPI是什么? 37、MPI三个主要目的,1高通信性能2好程序移植性3强大功能。 提供、38、和应用程序编程接口。 提高通信效率。 对策包括避免存储器和存储器的重复复制,允许计算和通信的重复等。 可在异构环境中实现。 所提供的接口有助于调用c语言以及Fortran77。 提供可靠的通信接口。 即,用户不需要处理通信失败。 定义的接口不能与现有接口(如PVM )有很大差异,但可以扩展以提高灵活性。在基本通信和系统软件没有大的变化的情况下,可以在许多并行计算机制造商的平台上实现所定义的接口。 接口的含义是独立于语言的。 接口设计必须是线程安全的。 39、3、MPI的发生与发展,40、4、MPI的语言结合,MPI是语言库,必须与特定语言结合,MPI_I:C、FORTRAN77MPI_II:C、fortran90、41、5, 目前MPI的主要实现MPICH :美国Argonne国家实验室http:/www-UNIX.MCS./MPI/mpich :爱丁堡大学并行计算中心FTP :/FTP.epcc.ed.AC.uk/pub/packages/chimp lam (localareamulticomputer ) :俄亥俄州立大学http:/www.MPI./lam/download,42,强通信功能的高位移性和最常见的编译器实现的结合免费,源代码开放,6 10、第一MPI程序、MPI程序的框架结构第一MPI程序并行程序的执行方式MPI程序的惯例44,#includevoidmain(intargc,char * argv ) printf ( int argc,char * argv ) n ); 用串行的c语言,用“helloworld”,46,C MPI,用helloworld!# include MPI.h # include # includevoidmin (int argc,char*argv)intmyid,numprocsnamelen; char processor _ name MPI _ max _ processor _ name ; MPI_Init(/*结束*/、第二部分、第四部分、47、执行结果、48、过程、过程是一个程序,其执行环境(包括存储器、寄存器、程序计数器等)也是独立于操作系统存在的可执行的基本程序单位一般而言,串行应用程序编译的可执行代码分为“指令”和“数据”两部分,在程序运行时是“独立申请占用”的存储器空间,所有计算都限于该存储器空间。 在、49、微机上运行的过程、50、单个过程和多个过程可同时存在于单个单元内的同一操作系统中,其中操作系统负责调度时分共享处理器资源(例如,CPU、存储器、存储器、外围设备等) 进程之间相互独立(内存空间不相交):在操作系统计划中,多个串行应用程序分别独立运行,例如在同一台计算机上运行。51、最基本的消息传递操作:消息发送(send )、消息接收(receive )、流程同步(barrier )、规约(reduction )。 实现消息传递:共享内存和信号量,用户无需介意。 能在过程之间交换信息:例如,数据交换,同步等待,消息是这些交换信息的基本单元,且消息传送是通过在过程之间交换这些信息来实现过程间通信的唯一方法。52、同时执行单机的多个进程、53、进程1、存储器、进程2、并行程序的单机执行方式、进程3、进程4、54、Hello_world程序包含在通过网络连接的不同计算机上的多个进程是独立存在的:进程在不同的计算机上,由各自独立的操作系统进行安排,共享独立的CPU和存储器资源。 进程之间的相互信息交换:消息传递。 实现消息传递:用户不必介意。 消息递送并行程序设计平台,包括:过程0、过程1、过程2、过程3、通过网络消息递送、57、消息递送的并行程序执行模式、58、共享存储和分布式存储、并行功能架构59、消息递送可以为过程间通信方案支持消息递送并行程序设计,无论这种并行功能存储模式如何,都支持过程间通信。 大多数共享和分布式存储的并行计算环境支持进程之间的消息传递通信。 共享存储和分布式存储(接下来)、60、MPI并行程序设计平台由标准消息传递函数和相关的辅助函数组成,通过调用这些函数(调用子例程)来进行通信。 SPMD执行模式:一个程序同时启动多个部分,形成多个独立的进程,在不同的处理器上执行,具有独立的存储器空间,进程间通信通过调用MPI函数来实现。每个进程开始运行时,都会获得唯一的序列号(rank )。 例如,p个过程开始,其顺序为0、1、P-1。 MPI程序并行功

温馨提示

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

评论

0/150

提交评论