C,enter of,C,omputational,C,hemistry,情况介绍,分子反应动力学国家重点实验室,交叉分子束动力学课题组,理论与计算化学国际合作中心,研究员2人,其中一位为中国科学院院士,高级访问学者1人,博士后研究人员6人,,博士研究生18人,硕士研究生4人,与多个国际学术团队有很好的合作,与纽约大学化学系张增辉教授合作建立理论与,计算化学国际合作研究中心,主要研究工作,实验方面:,交叉分子束对光解,碰撞反应,立体化学动力学的研究,激光诱导荧光方法对光解,立体化学动力学的研究,飞秒激光对超快动力学过程的研究,理论方面:,准经典轨线方法对反应动态学的研究,量子力学方法对反应动态学的研究,复杂体系势能面的构造,拟和,量子化学及其他方法对分子结构,物质特性,化学反应过程的研究,1997-2001年,发表文章84篇,其中英文66篇,HPC Server,并行计算机与并行计算,为什么要建造并行计算机,并行计算机的类型,什么是并行计算,并行进程的特性及并行模型的分类,工作站集群(,COW),的基本结构,中国科学院十五计划中关于并行计算部分,为什么要建造并行计算机,什么是超级计算环境,超级计算(,Supercomputing),,从技术的意义上说,是为了在问题的求解上具有更快的速度、更高的精度、更大的规模、更好的性能价格比而采用的非主流计算的设施和方式。
计算速度的要求,问题:科学和工程问题的数值模拟与仿真,计算密集,数据密集,网络密集,三种混合,要求:在合理的时限内完成计算任务,秒级制造业,分钟级短时天气预报(当天),小时级中期天气预报(310日),尽可能快长期天气预报(气候),可计算湍流模拟,问题的规模,计算机的规模:,TOP10(2001,年7月),IBM Builds Worlds Fastest,Supercomputer to Simulate,Nuclear Testing for U.S.Energy,Department,以动物的食物链为例,打破高性能计算的壁垒,2100,2100,2100,2100,2100,2100,2100,2100,2100,单处理器,共享存储,局域并行机群,广域并行机群,GFLOPS,并行计算机分类,Flynn,分类法,SISD(,单指令流单数据流)系统,SIMD(,单指令流多数据流)系统,MISD(,多指令流单数据流)系统,MIMD(,多指令流多数据流)系统,五种物理机模型:实际的机器体系结构,PVP (Parallel Vector Processor,并行向量机),SMP (Symmetric Multiprocessor,对称多处理机),MPP (Massively Parallel Processor,大规模并行处理机),COW(Cluster of Workstation,工作站机群),DSM (Distributed Shared Memory,分布共享存储多处理机),几种我们常见的并行计算机,CPU,CPU,CPU,总线或交叉开关,SM,(,a)SMP,物理上单一地址空间,CPU,CPU,CPU,定制网络,LM,LM,LM,虚拟分布共享存储(,DSM),(,b)DSM,逻辑上单一地址空间,P/C,P/C,P/C,定制/标准网络,LM,LM,LM,(,c)Cluster/COW,物理/逻辑上多地址空间,SMP,MPP,MPP,WAN,LM,DSM,SM,(,d)Grid(Cluster of Clusters),什么是并行计算,并行进程的表述,及并行模型的分类,什么是并行计算,进程 1,发送信息,进程 2,接收信息,传统的,串行计算,,,分为“指令”,和“数据”两个部分,并在程序,执行时“独立地申请和占有”内,存空间,且所有计算均局限于,该内存空间。
并行计算,将,进程相对独立的,分配于不同的节点上,由,各自独立的操作系统调度,,享有独立的,CPU,和内存资源,(内存可以共享);进程间,相互信息交换通过消息传递,;,进程 1,进程 2,并行算法的表述,在并行算法的表述中,所有描述串行算法的语句及进程均可调用,,而只是为了表达并行性而引入几条所谓的并行语句,当几个算法步要并行执行时,我们可以写作,Do,step i,to,j,in parallel,step,i,step,i,+1,step j,或者是:当几个处理器同时执行相同的操作时,我们可以写作,for all,i,parallel do,.,.,.,end for,例如,n=2*k,个数的求和,输入:,n=2*k,个数存入数组,A,中,输出:,S=sigma(A(i),begin,(1)for i,=,1 to 4 parallel do,B(i),A(i),end for,(2)for h,=,1 to logn=2 do,for i=1 to n/2*h=1 parallel do,B(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 2,h=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.则运算任务分摊给前两个,处理器,硬件结构抽象模型(自然模型),共享存储,的模型和语言(适于,PVP,SMP,DSM),X3H5,Pthread,OpenMP,消息传递,的模型和语言(适于,MPP,Cluster,COW),MPI(,Fortran,C,Gamess,Vasp,),PVM(,Fortran,C,),数据并行,的模型和语言(适于在,MPP/Cluster,上实现,SPMD,应用),Fortran 90,HPF(High Performance Fortran),并行模型的分类,基于程序构造的模型,CSP,Linda(,Fortran,C,Gaussian,),Global (,Molpro,,Columbus,),基于问题描述的模型,GAMMA,UNITY,基于并行计算理论的模型,PRAM,BSP,LogP,Yale,大学,Nicholas Carriero,和,David Gelernter,于1986年基于分散数据结构和共享存储系统的并行计算模型.,Linda,模型定义了一个功能强大的逻辑存储器(,TS),和在其上的一组核心操作(,in,out,read,eval),它们能够方便地嵌入到不同的语言(如,C,Fortran),中而构成相应的并行语言(,C-Linda,和,Fortran-Linda,等),该模型同时还支持动态程序设计和两种不同的编程风格(,Master/Slaver,和,Divide-and-Conquer),为用户开发不同类型 的应用程序提供了灵活的手段.,Linda,模型,(进程从,TS,中提取任务或数据进行计算,并将结果或生成的新任务放入,TS,中.并行执行,的进程之间通过,TS,进行间接的通信和同步.,TS,是一个可被多个进程共享的、能同时存放,数据和任务的数据箱),TS,共享数据箱,进程 2,进程 4,进程 3,进程 1,Linda,模型的应用,Linda in Gaussian,HF:SP Opt Freq,MP2:Sp Opt Freq,DFT:SP Opt Freq,可以将串行代码改编为并行代码,支持,C,和,Fortran,语言,MPI,已经成为一种标准,应用越来越广泛。
而最流行的,MPI,工具集当属,mpichwww-unix.mcs.anl.gov/mpi/mpich,,是目前高效率的超大规模并行计算(1000个处理器)最可信赖的平台在当前所有的消息传递软件中,最重要最流行的是,MPI,它能运行在所有的并行平台上,包括,SMP,和,PVP.,二者已经在,Windows NT,和,Windows 95,这样的非,Unix,平台上实现.程序设计语言支持,C,Fortran,和,Java.,在国产的三大并行机系列神威、银河和曙光上都实现了对,MPI,和支持.,MPI,(Message Passing Interface),MPI,模型,目标:是提供一个实际可用的、可移植的、高效的和灵活的消息传递,接口标准.,MPI,以语言独立的形式来定义这个接口库,并提供了与,C、,Fortran,和,Java,语言的绑定.这个定义不包含任何专用于某个特别的,制造商、操作系统或硬件的特性.由于这个原因,MPI,在并行计算界,被广泛地接受.,MPI,并行程序设计平台由,标准消息传递函数及相关辅助函数,构成,多个进程通过调用这些函数(类似调用子程序),进行通信;,一个程序同时启动多份,形成多个独立的进程,,在不同的处理机上运行,拥有独立的内存空间,,进程间通信通过调用,MPI,函数来实现;每个进程,开始执行时,将获得一个唯一的序号(,rank)。
例如启动,P,个进程,序号依次为0,1,,P-1;,MPI,并行进程的实现,消息传递是相对于进程间通信方式而言的,与具体并行机存储模式无关,,任何支持进程间通信的并行机,均可支持消息传递并行程序设计;几乎,有共享和分布存储并行计算环境均支持进程间的消息传递通信;,进程0发送一个整数给进程1;进程1将该数加1,传递给进程2;进程2再将,该数加1,再传递给进程3;依次类推,最后,进程,N-1,将该数传递给进程0,,由进程1负责广播该数给所有进程,并打印输出进程 1,传递信息,进程 3,传递信息,进程 2,传递信息,进程 0,传递信息,在商品化的并行机上,MPI,的环境一般是由系统管理人员事先设置好的,用户不需要变动它.而在用户自已配置的,NOW(,工作站机群)上运行,MPI,程序则需要设置以下配置文件:(1)由于加载程序到结点上运行需要调用了,Unix,系统的,rsh,命令,所以需要在每个结点上设置.,rhosts,文件,以使,rsh,能正确执行;(2)由于,NOW,环境的异构性,需要在启动时指定运行结点的体系结构;若未指定,是指使用与启动并行程序的结点具有相同体系结构的结点.在启动并行程序的机器里,具有相同体系结构的几台机器的名字存放在一个名为$,MPICH/util/machines/machines.,的文件中,一台机器的名字占有文件的一行,其中$,MPICH,是一个环境变量,指明,MPICH,软件安装后所在的目录.并行程序加载运行时是按照文件中机器名字的先后顺序依次加载的.,商业机中的,MPI,程序用以下并行,C,编译器,mpcc,来编译:,执行下列命令将可执行程序,myprog,加载到,n,个节点上:,mpcc myprog.c o myprog,mpirun myprog np n,MPI,进程是重型的单线进程.它们拥有不同的地址空间.因此,一个进程不能直接访问另一个进程地址空间中的变量.进程间的通信用消息传递来实现.,MPI,的编译与运行,工作站集群(,COW),的基本结构,COW,简介,工作站机群(,Cluster of Workstation),是,将一群工作站用某种结构的网络互联起来,充分利用各工作站的资源,统一调度、协调处理,以实现高效并行计算。
通信原语库以及并行程序设计环境工具:,MPI、PVM、linda,互联网络:,LAN(,Myricom Myrinet/Gigabite/Ethernet,),节点:,高档微机,对称多处理机,SMP,操作系统:,Unix、Linux、NT、,改进和修改的操作系统,通信协议:,TCP/IP、,特定的协议,基本实现原理,1,网络文件系统,NFS(Unix、Linux)、,网络驱动器(,Windows),MFS(Mosix kernel).,2,网络信息服务,NIS(Unix、Linux)、NIS+(Solaris)、,域(,NT),3,并。