《并行计算机与并行计算上课讲义.ppt》由会员分享,可在线阅读,更多相关《并行计算机与并行计算上课讲义.ppt(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Center of Computational Chemistry并行计算机与并行计算Center of Computational ChemistryHPC ServerCenter of Computational Chemistry并行计算机与并行计算并行计算机与并行计算1 1为什么要建造并行计算机为什么要建造并行计算机2 2并行计算机的类型并行计算机的类型3 3什么是并行计算,并行进程的特性什么是并行计算,并行进程的特性及并行模型的分类及并行模型的分类4 4工作站集群工作站集群(COW)COW)的基本结构的基本结构5 5中国科学院十五计划中关于并行计中国科学院十五计划中关于并行计算部分
2、算部分Center of Computational Chemistry为什么要建造并行计算机为什么要建造并行计算机Center of Computational Chemistry什么是超级计算环境超级计算(Supercomputing),从技术的意义上说,是为了在问题的求解上具有更快的速度、更高的精度、更大的规模、更好的性能价格比而采用的非主流计算的设施和方式。Center of Computational Chemistry计算速度的要求计算速度的要求问题:科学和工程问题的数值模拟与仿真计算密集数据密集网络密集三种混合要求:在合理的时限内完成计算任务秒级制造业分钟级短时天气预报(当天)小
3、时级中期天气预报(310日)尽可能快长期天气预报(气候)可计算湍流模拟Center of Computational Chemistry问题的规模Center of Computational Chemistry计算机的规模:TOP10(2001年7月)Center of Computational ChemistryIBM Builds Worlds FastestSupercomputer to Simulate Nuclear Testing for U.S.Energy DepartmentCenter of Computational Chemistry以动物的食物链为例Center
4、 of Computational ChemistryCenter of Computational Chemistry打破高性能计算的壁垒打破高性能计算的壁垒210021002100210021002100210021002100单处理器单处理器共享存储共享存储局域并行机群局域并行机群广域并行机群广域并行机群GFLOPSCenter of Computational Chemistry并行计算机分类并行计算机分类Center of Computational ChemistryFlynnFlynn分类法分类法SISD(单指令流单数据流)系统SIMD(单指令流多数据流)系统MISD(多指令流单
5、数据流)系统MIMD(多指令流多数据流)系统五种物理机模型五种物理机模型:实际的机器体系结构实际的机器体系结构PVP(ParallelVectorProcessor,并行向量机)SMP(SymmetricMultiprocessor,对称多处理机)MPP(MassivelyParallelProcessor,大规模并行处理机)COW(Cluster of Workstation,COW(Cluster of Workstation,工作站机群工作站机群工作站机群工作站机群)DSM(DistributedSharedMemory,分布共享存储多处理机)Center of Computationa
6、l Chemistry几种我们常见的并行计算机几种我们常见的并行计算机CPUCPUCPU总线或交叉开关总线或交叉开关SM(a)SMP,a)SMP,物理上单一地址空间物理上单一地址空间物理上单一地址空间物理上单一地址空间CPUCPUCPU定制网络定制网络LMLMLM虚拟分布共享存储虚拟分布共享存储(DSM)(b)DSM,b)DSM,逻辑上单一地址空间逻辑上单一地址空间逻辑上单一地址空间逻辑上单一地址空间P/CP/CP/C定制定制/标准网络标准网络LMLMLM(c)Cluster/COW,c)Cluster/COW,物理物理物理物理/逻辑上多地址空间逻辑上多地址空间逻辑上多地址空间逻辑上多地址空间
7、SMPMPPMPPWANLMDSMSM(d)Grid(Cluster of Clusters)d)Grid(Cluster of Clusters)d)Grid(Cluster of Clusters)d)Grid(Cluster of Clusters)Center of Computational Chemistry什么是并行计算,并行进程的表述什么是并行计算,并行进程的表述及并行模型的分类及并行模型的分类Center of Computational Chemistry什么是并行计算什么是并行计算进程进程 1 发送信息发送信息进程进程 2 接收信息接收信息传统的串行计算串行计算,分为“指
8、令”和“数据”两个部分,并在程序执行时“独立地申请和占有”内存空间,且所有计算均局限于该内存空间。并行计算并行计算将进程相对独立的分配于不同的节点上,由各自独立的操作系统调度,享有独立的CPU和内存资源(内存可以共享);进程间相互信息交换通过消息传递;进程进程 1 进程进程 2 Center of Computational Chemistry并行算法的表述并行算法的表述在并行算法的表述中,所有描述串行算法的语句及进程均可调用,在并行算法的表述中,所有描述串行算法的语句及进程均可调用,而只是为了表达并行性而引入几条所谓的并行语句而只是为了表达并行性而引入几条所谓的并行语句当几个算法步要并行执行
9、时,当几个算法步要并行执行时,我们可以写作我们可以写作 Do step i to j in parallelstep istep i+1step j或者是:或者是:当几个处理器同时执行相同的操作时,我们可以写作当几个处理器同时执行相同的操作时,我们可以写作for all i parallel do.end forCenter of Computational Chemistry例如例如 n=2*k个数的求和个数的求和输入:输入:n=2*k个数存入数组个数存入数组A中中输出:输出:S=sigma(A(i)begin(1)fori=1to4paralleldoB(i)A(i)endfor(2)fo
10、rh=1tologn=2dofori=1ton/2*h=1paralleldoB(i)B(2i-1)+B(2i)endforendfor(3)SB(i)end把每一个把每一个A(i)赋给赋给B(i)n=4,k=2,就是4个数的加和h=1to2h=1I=1to2(4/2*1)B(1)B(1)+B(2)B(2)B(3)+B(4)h=2I=1to1(4/2*2)B(1)B(1)+B(2)SB(1)若有2*2=4个处理器,则在1(h)级可能的并行运算数目为4/2*1=2.则运算任务分摊给前两个处理器Center of Computational Chemistry硬件结构抽象模型(自然模型)共享存储共
11、享存储共享存储共享存储的模型和语言(适于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上实现上实现上实现上实现SPMD
12、SPMD应用应用应用应用)Fortran 90Fortran 90HPF(High Performance Fortran)HPF(High Performance Fortran)并行模型的分类并行模型的分类Center of Computational Chemistry基于程序构造的模型CSPLinda Linda(Fortran,C,GaussianFortran,C,Gaussian)Global (Global (MolproMolpro,ColumbusColumbus)基于问题描述的模型GAMMAUNITY基于并行计算理论的模型PRAMBSPLogPCenter of Comp
13、utational ChemistryYale Yale 大学大学Nicholas Carriero Nicholas Carriero 和和David Gelernter David Gelernter 于于19861986年基于分散数据结构和共享存储系统的并行计算模型年基于分散数据结构和共享存储系统的并行计算模型.LindaLinda模型定义了一个功能强大的逻辑存储器模型定义了一个功能强大的逻辑存储器(TS)TS)和在其上的一组核心操作和在其上的一组核心操作(in,out,read,eval),in,out,read,eval),它们能它们能够方便地嵌入到不同的语言够方便地嵌入到不同的语言
14、(如如,C,Fortran)C,Fortran)中而构成相中而构成相应的并行语言应的并行语言(C-LindaC-Linda和和Fortran-LindaFortran-Linda等等)该模型同时还支持动态程序设计和两种不同的编该模型同时还支持动态程序设计和两种不同的编程风格程风格(Master/SlaverMaster/Slaver和和Divide-and-Conquer),Divide-and-Conquer),为用户开为用户开发不同类型发不同类型 的应用程序提供了灵活的手段的应用程序提供了灵活的手段.LindaLinda模型模型Center of Computational Chemist
15、ry(进程从TS中提取任务或数据进行计算,并将结果或生成的新任务放入TS中.并行执行的进程之间通过TS进行间接的通信和同步.TS是一个可被多个进程共享的、能同时存放数据和任务的数据箱)TS共享数据箱进程2进程4进程3进程1Center of Computational ChemistryLinda模型的应用Linda in GaussianHF:SP Opt FreqMP2:Sp Opt FreqDFT:SP Opt Freq 可以将串行代码改编为并行代码可以将串行代码改编为并行代码支持支持C和和Fortran语言语言Center of Computational Chemistry MPIM
16、PI已经成为一种标准,应用越来越广泛。而最流行的已经成为一种标准,应用越来越广泛。而最流行的MPIMPI工具集工具集当属当属mpichmpichhttp:/www-unix.mcs.anl.gov/mpi/mpichhttp:/www-unix.mcs.anl.gov/mpi/mpich,是目前是目前高效率的超大规模并行计算(高效率的超大规模并行计算(10001000个处理器)最可信赖的平台。个处理器)最可信赖的平台。在当前所有的消息传递软件中在当前所有的消息传递软件中,最重要最流行的是最重要最流行的是MPI,MPI,它能运行在它能运行在所有的并行平台上所有的并行平台上,包括包括SMPSMP和
17、和PVP.PVP.二者已经在二者已经在Windows NT Windows NT 和和Windows 95Windows 95这样的非这样的非UnixUnix平台上实现平台上实现.程序设计语言支持程序设计语言支持C,C,FortranFortran和和Java.Java.在国产的三大并行机系列神威、银河和曙光上都实在国产的三大并行机系列神威、银河和曙光上都实现了对现了对MPIMPI和支持和支持.MPIMPI(Message Passing Interface)MPIMPI模型模型目标目标:是提供一个实际可用的、可移植的、高效的和灵活的消息传递是提供一个实际可用的、可移植的、高效的和灵活的消息传
18、递接口标准接口标准.MPIMPI以语言独立的形式来定义这个接口库以语言独立的形式来定义这个接口库,并提供了与并提供了与C C、FortranFortran和和JavaJava语言的绑定语言的绑定.这个定义不包含任何专用于某个特别的这个定义不包含任何专用于某个特别的制造商、操作系统或硬件的特性制造商、操作系统或硬件的特性.由于这个原因由于这个原因,MPIMPI在并行计算界在并行计算界被广泛地接受被广泛地接受.Center of Computational ChemistryMPIMPI并行程序设计平台由并行程序设计平台由标准消息传递函数及相关辅助函数标准消息传递函数及相关辅助函数构成,多个进程通
19、过调用这些函数(类似调用子程序),进构成,多个进程通过调用这些函数(类似调用子程序),进行通信;行通信;一个程序同时启动多份,形成多个独立的进程,在不同的处理机上运行,拥有独立的内存空间,进程间通信通过调用MPI函数来实现;每个进程 开始执行时,将获得一个唯一的序号(rank)。例如启动P个进程,序号依次为0,1,P-1;MPI并行进程的实现Center of Computational Chemistry消息传递是相对于进程间通信方式而言的,与具体并行机存储模式无关,任何支持进程间通信的并行机,均可支持消息传递并行程序设计;几乎有共享和分布存储并行计算环境均支持进程间的消息传递通信;进程0发
20、送一个整数给进程1;进程1将该数加1,传递给进程2;进程2再将该数加1,再传递给进程3;依次类推,最后,进程N-1将该数传递给进程0,由进程1负责广播该数给所有进程,并打印输出。进程1传递信息进程3传递信息进程2传递信息进程0传递信息Center of Computational Chemistry在商品化的并行机上,MPI的环境一般是由系统管理人员事先设置好的,用户不需要变动它.而在用户自已配置的NOW(工作站机群)上运行MPI程序则需要设置以下配置文件:(1)由于加载程序到结点上运行需要调用了Unix系统的rsh命令,所以需要在每个结点上设置.rhosts文件,以使rsh能正确执行;(2)
21、由于NOW环境的异构性,需要在启动时指定运行结点的体系结构;若未指定,是指使用与启动并行程序的结点具有相同体系结构的结点.在启动并行程序的机器里,具有相同体系结构的几台机器的名字存放在一个名为$MPICH/util/machines/machines.的文件中,一台机器的名字占有文件的一行,其中$MPICH是一个环境变量,指明MPICH软件安装后所在的目录.并行程序加载运行时是按照文件中机器名字的先后顺序依次加载的.商业机中的MPICenter of Computational Chemistry程序用以下并行C编译器mpcc来编译:执行下列命令将可执行程序myprog加载到n个节点上:mpc
22、c myprog.c o myprogmpirun myprog np n MPI进程是重型的单线进程.它们拥有不同的地址空间.因此,一个进程不能直接访问另一个进程地址空间中的变量.进程间的通信用消息传递来实现.MPI的编译与运行Center of Computational Chemistry工作站集群工作站集群(COW)COW)的基本结构的基本结构Center of Computational Chemistry COW简介简介工工作作站站机机群群(Cluster Cluster of of WorkstationWorkstation)是将将一一群群工工作作站站用用某某种种结结构构的的网
23、网络络互互联联起起来来,充充分分利利用用各各工工作作站站的的资资源源,统统一一调调度度、协协调处理,以实现高效并行计算。调处理,以实现高效并行计算。通信原语库以及并行程序设计环境工具通信原语库以及并行程序设计环境工具:MPIMPI、PVMPVM、lindalinda互联网络:互联网络:LANLAN(Myricom Myrinet/Gigabite/EthernetMyricom Myrinet/Gigabite/Ethernet )节点:节点:高档微机,对称多处理机高档微机,对称多处理机SMPSMP操作系统:操作系统:UnixUnix、LinuxLinux、NTNT、改进和修改的操作系统改进和
24、修改的操作系统通信协议:通信协议:TCP/IPTCP/IP、特定的协议特定的协议Center of Computational Chemistry 基本实现原理基本实现原理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 并行开发环境及编译器并行开发环境及编译器MPIM
25、PI、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 负载均衡负载均衡 MosixMosixCenter of Computational Chemistry 软件配置:操作系统操作系统:每一个节点
26、都装有多用户,多任务的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,各
27、种自编程序和交流程序 HPC ServerCenter of Computational Chemistry中国科学院十五计划中中国科学院十五计划中关于并行计算部分关于并行计算部分Center of Computational Chemistry中国科学院网络信息中心高性能计算研究室现有计算设备现有计算设备:Power Challenge XL 并行对称多处理系统 日立SR2201超级计算并行机系统曙光2000-II超级服务器详细配置可以查询:Center of Computational Chemistry预备引进预备引进:联想iCluster1800高性能机群服务器(已由数学研究院引进,正
28、在试运行)超过2万亿次的超级计算机(预计2004年9月到位)目前正在征求意见,建立用户资料库Center of Computational Chemistry1.什么任务适合在超级计算环境内运行什么任务适合在超级计算环境内运行?一般来说,计算量极大而使PC不能满足要求或者根本不能计算的任务是适合在超级计算环境中运行的。比如,(1)需要分布式并行处理的科学计算任务,包括:由于对计算资源要求过大而使现在的硬件条件无法满足要求的计算任务,通过将串行源代码改编为并行源代码来进行计算,或者有通行的并行计算程序(商业或非商业);(2)虽然可以计算但是时间过长的问题等。2.超级计算环境可以提供怎样的支持超级
29、计算环境可以提供怎样的支持?现行的超级计算环境是基于Linux或Unix操作系统的,所以对于商业程序,应该是支持这两种操作系统的;而对于自编的源代码,可以在超级计算机上编译通过产生可执行文件。如果希望把串行的代码改编为并行,可以得到超级计算中心技术人员的帮助。Center of Computational Chemistry我们所的使用量子化学和化学动力学涉及的相关课题量子化学和化学动力学涉及的相关课题生物分子、药物分子的设计、模拟及结构特性基元化学反应的量子化学研究 材料科学和表面科学物理有机化学及催化过程的研究 催化反应动力学及其表征量子动力学研究分子的动态过程量子动力学研究分子的动态过程PEMFCPEMFC内流体流动与传递现象研究内流体流动与传递现象研究流场理论计算及多维物理场耦合计算流场理论计算及多维物理场耦合计算 Center of Computational Chemistry谢谢!Center of Computational Chemistry此课件下载可自行编辑修改,仅供参考!此课件下载可自行编辑修改,仅供参考!感谢您的支持,我们努力做得更好!谢谢感谢您的支持,我们努力做得更好!谢谢
限制150内