并行计算机与并行计算优秀PPT.ppt
并行计算机与并行计算你现在浏览的是第一页,共41页情况介绍分子反应动力学国家重点实验室交叉分子束动力学课题组理论与计算化学国际合作中心研究员2人,其中一位为中国科学院院士,高级访问学者1人,博士后研究人员6人,博士研究生18人,硕士研究生4人与多个国际学术团队有很好的合作,与纽约大学化学系张增辉教授合作建立理论与计算化学国际合作研究中心你现在浏览的是第二页,共41页主要研究工作实验方面:实验方面:交叉分子束对光解,碰撞反应,立体化学动力学的研究 激光诱导荧光方法对光解,立体化学动力学的研究 飞秒激光对超快动力学过程的研究理论方面:理论方面:准经典轨线方法对反应动态学的研究 量子力学方法对反应动态学的研究 复杂体系势能面的构造,拟和 量子化学及其他方法对分子结构,物质特性,化学反应过程的研究1997-2001年,发表文章84篇,其中英文66篇你现在浏览的是第三页,共41页HPC Server你现在浏览的是第四页,共41页并行计算机与并行计算并行计算机与并行计算1 1为什么要建造并行计算机为什么要建造并行计算机2 2并行计算机的类型并行计算机的类型3 3什么是并行计算,并行进程的特性什么是并行计算,并行进程的特性及并行模型的分类及并行模型的分类4 4工作站集群工作站集群(COW)COW)的基本结构的基本结构5 5中国科学院十五计划中关于并行计算中国科学院十五计划中关于并行计算部分部分你现在浏览的是第五页,共41页为什么要建造并行计算机为什么要建造并行计算机你现在浏览的是第六页,共41页什么是超级计算环境超级计算(Supercomputing),从技术的意义上说,是为了在问题的求解上具有更快的速度、更高的精度、更大的规模、更好的性能价格比而采用的非主流计算的设施和方式。你现在浏览的是第七页,共41页计算速度的要求计算速度的要求问题:科学和工程问题的数值模拟与仿真计算密集数据密集网络密集三种混合要求:在合理的时限内完成计算任务秒级制造业分钟级短时天气预报(当天)小时级中期天气预报(310日)尽可能快长期天气预报(气候)可计算湍流模拟你现在浏览的是第八页,共41页问题的规模你现在浏览的是第九页,共41页计算机的规模:TOP10(2001年7月)你现在浏览的是第十页,共41页IBM Builds Worlds FastestSupercomputer to Simulate Nuclear Testing for U.S.Energy Department你现在浏览的是第十一页,共41页以动物的食物链为例你现在浏览的是第十二页,共41页你现在浏览的是第十三页,共41页打破高性能计算的壁垒打破高性能计算的壁垒210021002100210021002100210021002100单处理器单处理器共享存储共享存储局域并行机群局域并行机群广域并行机群广域并行机群GFLOPS你现在浏览的是第十四页,共41页并行计算机分类并行计算机分类你现在浏览的是第十五页,共41页FlynnFlynn分类法分类法SISD(单指令流单数据流)系统SIMD(单指令流多数据流)系统MISD(多指令流单数据流)系统MIMD(多指令流多数据流)系统五种物理机模型五种物理机模型:实际的机器体系结构实际的机器体系结构 PVP (Parallel Vector Processor,并行向量机)SMP (Symmetric Multiprocessor,对称多处理机)MPP (Massively Parallel Processor,大规模并行处理机)COW(Cluster of Workstation,COW(Cluster of Workstation,工作站机群工作站机群工作站机群工作站机群)DSM (Distributed Shared Memory,分布共享存储多处理机)你现在浏览的是第十六页,共41页几种我们常见的并行计算机几种我们常见的并行计算机CPUCPUCPU总线或交叉开关总线或交叉开关SM(a)SMP,a)SMP,物理上单一地址空间物理上单一地址空间物理上单一地址空间物理上单一地址空间CPUCPUCPU定制网络定制网络LMLMLM虚拟分布共享存储虚拟分布共享存储(DSM)(b)DSM,b)DSM,逻辑上单一地址空间逻辑上单一地址空间逻辑上单一地址空间逻辑上单一地址空间P/CP/CP/C定制定制/标准网络标准网络LMLMLM(c)Cluster/COW,c)Cluster/COW,物理物理物理物理/逻辑上多地址空间逻辑上多地址空间逻辑上多地址空间逻辑上多地址空间SMPMPPMPPWANLMDSMSM(d)Grid(Cluster of Clusters)d)Grid(Cluster of Clusters)d)Grid(Cluster of Clusters)d)Grid(Cluster of Clusters)你现在浏览的是第十七页,共41页什么是并行计算,并行进程的表述什么是并行计算,并行进程的表述及并行模型的分类及并行模型的分类你现在浏览的是第十八页,共41页什么是并行计算什么是并行计算进程进程 1 发送信息发送信息进程进程 2 接收信息接收信息传统的串行计算串行计算,分为“指令”和“数据”两个部分,并在程序执行时“独立地申请和占有”内存空间,且所有计算均局限于该内存空间。并行计算并行计算将进程相对独立的分配于不同的节点上,由各自独立的操作系统调度,享有独立的CPU和内存资源(内存可以共享);进程间相互信息交换通过消息传递;进程进程 1 进程进程 2 你现在浏览的是第十九页,共41页并行算法的表述并行算法的表述在并行算法的表述中,所有描述串行算法的语句及进程均可调用,在并行算法的表述中,所有描述串行算法的语句及进程均可调用,而只是为了表达并行性而引入几条所谓的并行语句而只是为了表达并行性而引入几条所谓的并行语句当几个算法步要并行执行时,当几个算法步要并行执行时,我们可以写作我们可以写作 Do step i to j in parallelstep istep i+1step j或者是:或者是:当几个处理器同时执行相同的操作时,我们可以写作当几个处理器同时执行相同的操作时,我们可以写作for all i parallel do.end for你现在浏览的是第二十页,共41页例如例如 n=2*k个数的求和个数的求和输入:输入:n=2*k个数存入数组个数存入数组A中中输出:输出:S=sigma(A(i)begin (1)for i=1 to 4 parallel doB(i)A(i)end for (2)for h=1 to logn=2 dofor i=1 to n/2*h=1 parallel doB(i)B(2i-1)+B(2i)end for end for (3)SB(i)end把每一个把每一个A(i)赋给赋给B(i)n=4,k=2,就是4个数的加和h=1 to 2h=1 I=1 to 2(4/2*1)B(1)B(1)+B(2)B(2)B(3)+B(4)h=2 I=1 to 1(4/2*2)B(1)B(1)+B(2)SB(1)若有2*2=4个处理器,则在1(h)级可能的并行运算数目为4/2*1=2.则运算任务分摊给前两个处理器你现在浏览的是第二十一页,共41页硬件结构抽象模型(自然模型)共享存储共享存储共享存储共享存储的模型和语言(适于PVP,SMP,DSM)X3H5,PthreadOpenMP消息传递消息传递消息传递消息传递的模型和语言的模型和语言的模型和语言的模型和语言(适于适于适于适于MPP,Cluster,COW)MPP,Cluster,COW)MPI(MPI(Fortran,C,Gamess,VaspFortran,C,Gamess,Vasp)PVM(PVM(Fortran,CFortran,C)数据并行数据并行数据并行数据并行的模型和语言的模型和语言的模型和语言的模型和语言(适于在适于在适于在适于在MPP/ClusterMPP/Cluster上实现上实现上实现上实现SPMDSPMD应用应用应用应用)Fortran 90Fortran 90HPF(High Performance Fortran)HPF(High Performance Fortran)并行模型的分类并行模型的分类你现在浏览的是第二十二页,共41页基于程序构造的模型CSPLinda Linda(Fortran,C,GaussianFortran,C,Gaussian)Global (Global (MolproMolpro,ColumbusColumbus)基于问题描述的模型GAMMAUNITY基于并行计算理论的模型PRAMBSPLogP你现在浏览的是第二十三页,共41页Yale Yale 大学大学Nicholas Carriero Nicholas Carriero 和和David Gelernter David Gelernter 于于19861986年基于年基于分散数据结构和共享存储系统的并行计算模型分散数据结构和共享存储系统的并行计算模型.LindaLinda模型定义了一个功能强大的逻辑存储器模型定义了一个功能强大的逻辑存储器(TS)TS)和在其和在其上的一组核心操作上的一组核心操作(in,out,read,eval),in,out,read,eval),它们能够方便地嵌它们能够方便地嵌入到不同的语言入到不同的语言(如如,C,Fortran)C,Fortran)中而构成相应的并行语言中而构成相应的并行语言(C-C-LindaLinda和和Fortran-LindaFortran-Linda等等)该模型同时还支持动态程序设计和两种不同的编程风格该模型同时还支持动态程序设计和两种不同的编程风格(Master/SlaverMaster/Slaver和和Divide-and-Conquer),Divide-and-Conquer),为用户开发不同类型为用户开发不同类型 的应用程序提供了灵活的手段的应用程序提供了灵活的手段.LindaLinda模型模型你现在浏览的是第二十四页,共41页(进程从TS中提取任务或数据进行计算,并将结果或生成的新任务放入TS中.并行执行的进程之间通过TS进行间接的通信和同步.TS是一个可被多个进程共享的、能同时存放数据和任务的数据箱)TS共享数据箱进程 2进程 4进程 3进程 1你现在浏览的是第二十五页,共41页Linda模型的应用Linda in GaussianHF:SPOptFreqMP2:SpOptFreqDFT:SPOptFreq可以将串行代码改编为并行代码可以将串行代码改编为并行代码支持支持C和和Fortran语言语言你现在浏览的是第二十六页,共41页 MPIMPI已经成为一种标准,应用越来越广泛。而最流行的已经成为一种标准,应用越来越广泛。而最流行的MPIMPI工具集当属工具集当属mpichmpichhttp:/www-unix.mcs.anl.gov/mpi/mpichhttp:/www-unix.mcs.anl.gov/mpi/mpich,是目前高效率的超大规是目前高效率的超大规模并行计算(模并行计算(10001000个处理器)最可信赖的平台。个处理器)最可信赖的平台。在当前所有的消息传递软件中在当前所有的消息传递软件中,最重要最流行的是最重要最流行的是MPI,MPI,它能运行在所有它能运行在所有的并行平台上的并行平台上,包括包括SMPSMP和和PVP.PVP.二者已经在二者已经在Windows NT Windows NT 和和Windows 95Windows 95这样的非这样的非UnixUnix平台上实现平台上实现.程序设计语言支持程序设计语言支持C,FortranC,Fortran和和Java.Java.在国产在国产的三大并行机系列神威、银河和曙光上都实现了对的三大并行机系列神威、银河和曙光上都实现了对MPIMPI和支持和支持.MPIMPI(Message Passing Interface)MPIMPI模型模型目标目标:是提供一个实际可用的、可移植的、高效的和灵活的消息传递是提供一个实际可用的、可移植的、高效的和灵活的消息传递接口标准接口标准.MPIMPI以语言独立的形式来定义这个接口库以语言独立的形式来定义这个接口库,并提供了与并提供了与C C、FortranFortran和和JavaJava语言的绑定语言的绑定.这个定义不包含任何专用于某个特别的这个定义不包含任何专用于某个特别的制造商、操作系统或硬件的特性制造商、操作系统或硬件的特性.由于这个原因由于这个原因,MPIMPI在并行计算界在并行计算界被广泛地接受被广泛地接受.你现在浏览的是第二十七页,共41页MPIMPI并行程序设计平台由并行程序设计平台由标准消息传递函数及相关辅助函数标准消息传递函数及相关辅助函数构成,构成,多个进程通过调用这些函数(类似调用子程序),进行通信;多个进程通过调用这些函数(类似调用子程序),进行通信;一个程序同时启动多份,形成多个独立的进程,在不同的处理机上运行,拥有独立的内存空间,进程间通信通过调用MPI函数来实现;每个进程 开始执行时,将获得一个唯一的序号(rank)。例如启动P个进程,序号依次为0,1,P-1;MPI并行进程的实现你现在浏览的是第二十八页,共41页消息传递是相对于进程间通信方式而言的,与具体并行机存储模式无关,任何支持进程间通信的并行机,均可支持消息传递并行程序设计;几乎有共享和分布存储并行计算环境均支持进程间的消息传递通信;进程0发送一个整数给进程1;进程1将该数加1,传递给进程2;进程2再将该数加1,再传递给进程3;依次类推,最后,进程N-1将该数传递给进程0,由进程1负责广播该数给所有进程,并打印输出。进程 1传递信息进程 3传递信息进程 2传递信息进程 0传递信息你现在浏览的是第二十九页,共41页在商品化的并行机上,MPI的环境一般是由系统管理人员事先设置好的,用户不需要变动它.而在用户自已配置的NOW(工作站机群)上运行MPI程序则需要设置以下配置文件:(1)由于加载程序到结点上运行需要调用了Unix系统的rsh命令,所以需要在每个结点上设置.rhosts文件,以使rsh能正确执行;(2)由于NOW环境的异构性,需要在启动时指定运行结点的体系结构;若未指定,是指使用与启动并行程序的结点具有相同体系结构的结点.在启动并行程序的机器里,具有相同体系结构的几台机器的名字存放在一个名为$MPICH/util/machines/machines.的文件中,一台机器的名字占有文件的一行,其中$MPICH是一个环境变量,指明MPICH软件安装后所在的目录.并行程序加载运行时是按照文件中机器名字的先后顺序依次加载的.商业机中的MPI你现在浏览的是第三十页,共41页程序用以下并行C编译器mpcc来编译:执行下列命令将可执行程序myprog加载到n个节点上:mpcc myprog.c o myprogmpirun myprog np n MPI进程是重型的单线进程.它们拥有不同的地址空间.因此,一个进程不能直接访问另一个进程地址空间中的变量.进程间的通信用消息传递来实现.MPI的编译与运行你现在浏览的是第三十一页,共41页工作站集群工作站集群(COW)COW)的基本结构的基本结构你现在浏览的是第三十二页,共41页 COW简介简介工工作作站站机机群群(Cluster Cluster of of WorkstationWorkstation)是将将一一群群工工作作站站用用某某种种结结构构的的网网络络互互联联起起来来,充充分分利利用用各各工工作作站站的的资资源源,统统一一调调度度、协协调调处处理理,以以实实现现高高效效并行计算。并行计算。通信原语库以及并行程序设计环境工具通信原语库以及并行程序设计环境工具:MPIMPI、PVMPVM、lindalinda互联网络:互联网络:LANLAN(Myricom Myrinet/Gigabite/EthernetMyricom Myrinet/Gigabite/Ethernet )节点:节点:高档微机,对称多处理机高档微机,对称多处理机SMPSMP操作系统:操作系统:UnixUnix、LinuxLinux、NTNT、改进和修改的操作系统改进和修改的操作系统通信协议:通信协议:TCP/IPTCP/IP、特定的协议特定的协议你现在浏览的是第三十三页,共41页 基本实现原理基本实现原理1 网络文件系统网络文件系统NFS(UnixNFS(Unix、Linux)Linux)、网络驱动器网络驱动器(Windows)Windows),MFS(Mosix kernel).MFS(Mosix kernel).2 网络信息服务网络信息服务NIS(UnixNIS(Unix、Linux)Linux)、NIS+(Solaris)NIS+(Solaris)、域(域(NTNT)3 并行开发环境及编译器并行开发环境及编译器MPIMPI、PVM PVM,Linda,HPF,Linda,HPF,GNU GCC/G77 4 4 数学库数学库 Free Scalapack.Free Scalapack.5 5 通信软件通信软件 Free Myricom GMFree Myricom GM6 6 作业管理作业管理 GNU Open PBSGNU Open PBS7 7 系统管理系统管理 GNU SCMSGNU SCMS8 8 监控管理监控管理 GNU OSCARGNU OSCAR9 9 负载均衡负载均衡 MosixMosix你现在浏览的是第三十四页,共41页软件配置:操作系统操作系统:每一个节点都装有多用户,多任务的RH 7.2 linux(2.4.19)网络文件系统:网络文件系统:NFS,MFS网络信息系统网络信息系统:NIS编译器编译器:GNU C,GNU Fortran 77,Absoft F95 F90 F77,PGI F90 F77 C C+并行开发环境并行开发环境:LINDA,MPI负载均衡负载均衡:Mosix数据并行语言高性能编译器和运行库数据并行语言高性能编译器和运行库:HF77,PGI HPF,Free Scalapack计算软件计算软件:Parallelized Gaussian 98 A.9(with Linda support),Gamess,Molpro,各种自编程序和交流程序 HPC Server你现在浏览的是第三十五页,共41页中国科学院十五计划中中国科学院十五计划中关于并行计算部分关于并行计算部分你现在浏览的是第三十六页,共41页中国科学院网络信息中心高性能计算研究室现有计算设备现有计算设备:Power Challenge XL 并行对称多处理系统 日立SR2201超级计算并行机系统曙光2000-II超级服务器详细配置可以查询:你现在浏览的是第三十七页,共41页预备引进预备引进:联想iCluster1800高性能机群服务器(已由数学研究院引进,正在试运行)超过2万亿次的超级计算机(预计2004年9月到位)目前正在征求意见,建立用户资料库你现在浏览的是第三十八页,共41页1.什么任务适合在超级计算环境内运行什么任务适合在超级计算环境内运行?一般来说,计算量极大而使PC不能满足要求或者根本不能计算的任务是适合在超级计算环境中运行的。比如,(1)需要分布式并行处理的科学计算任务,包括:由于对计算资源要求过大而使现在的硬件条件无法满足要求的计算任务,通过将串行源代码改编为并行源代码来进行计算,或者有通行的并行计算程序(商业或非商业);(2)虽然可以计算但是时间过长的问题等。2.超级计算环境可以提供怎样的支持超级计算环境可以提供怎样的支持?现行的超级计算环境是基于Linux或Unix操作系统的,所以对于商业程序,应该是支持这两种操作系统的;而对于自编的源代码,可以在超级计算机上编译通过产生可执行文件。如果希望把串行的代码改编为并行,可以得到超级计算中心技术人员的帮助。你现在浏览的是第三十九页,共41页我们所的使用量子化学和化学动力学涉及的相关课题量子化学和化学动力学涉及的相关课题生物分子、药物分子的设计、模拟及结构特性基元化学反应的量子化学研究 材料科学和表面科学物理有机化学及催化过程的研究 催化反应动力学及其表征量子动力学研究分子的动态过程量子动力学研究分子的动态过程PEMFCPEMFC内流体流动与传递现象研究内流体流动与传递现象研究流场理论计算及多维物理场耦合计算流场理论计算及多维物理场耦合计算 你现在浏览的是第四十页,共41页谢谢!你现在浏览的是第四十一页,共41页