


Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,11/7/2009,,‹#›,,C,enter of,,C,omputational,C,hemistry,情况介绍,分子反应动力学国家重点实验室,交叉分子束动力学课题组,理论与计算化学国际合作中心,,,研究员2人,其中一位为中国科学院院士,高级访问学者1人,博士后研究人员6人,,博士研究生18人,硕士研究生4人,与多个国际学术团队有很好的合作,与纽约大学化学系张增辉教授合作建立理论与,计算化学国际合作研究中心,主要研究工作,实验方面:,,,交叉分子束对光解,碰撞反应,立体化学动力学的研究,激光诱导荧光方法对光解,立体化学动力学的研究,飞秒激光对超快动力学过程的研究,理论方面:,,,准经典轨线方法对反应动态学的研究,量子力学方法对反应动态学的研究,复杂体系势能面的构造,拟和,量子化学及其他方法对分子结构,物质特性,化学反应过程的研究,1997-2001年,发表文章84篇,其中英文66篇,HPC Server,并行计算机与并行计算,为什么要建造并行计算机,并行计算机的类型,什么是并行计算,并行进程的特性及并行模型的分类,工作站集群(,COW),的基本结构,中国科学院十五计划中关于并行计算部分,为什么要建造并行计算机,什么是超级计算环境,,超级计算(,Supercomputing),,从技术的意义上说,是为了在问题的求解上具有更快的速度、更高的精度、更大的规模、更好的性能价格比而采用的非主流计算的设施和方式。
计算速度的要求,问题: 科学和工程问题的数值模拟与仿真,计算密集,数据密集,网络密集,三种混合,要求:在合理的时限内完成计算任务,秒级 制造业,分钟级 短时天气预报(当天),小时级 中期天气预报(3~10日),尽可能快 长期天气预报(气候),可计算 湍流模拟,,问题的规模,,,计算机的规模:,TOP10 (2001,年7月),IBM Builds World's 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,工具集当属,mpich〔http://www-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,并行开发环境及编译器,MPI、PVM ,Linda, HPF,,GNU GCC/G77,,…,4,数学库,,Free Scalapack...,5,通信软件,,Free Myricom GM,6,作业管理,,GNU Open PBS,7,系统管理,,GNU SCMS,8,监控管理,,GNU OSCAR,9,负载均衡,,Mosix,,,Ø,,软件配置,:,操作系统,:每一个节点都装有多用户,多任务的,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,中国科学院十五计划中,关于并行计算部分,中国科学院网络信息中心高性能计算研究室,现有计算设备,:,-Power Challenge XL,并行对称多处理系统,,,,,,-日立,SR2201,超级计算并行机系统,,,,,,-曙光2000-,II,超级服务器,,详细配置可以查询:,,预备引进,:,,-联想,i,Cluster1800,高性能机群服务器(已由数学研究院引进,正在试运行),,-超过2万亿次的超级计算机(预计2004年9月到位),目前正在征求意见,建立用户资料库,1.,什么任务适合在超级计算环境内运行,?,一般来说,计算量极大而使,PC,不能满足要求或者根本不能计算的任务是适合在,超级计算环境中运行的。
比如,,,(1)需要分布式并行处理的科学计算任务,包括:由于对计算资源要求过大而,使现在的硬件条件无法满足要求的计算任务,通过将串行源代码改编为并行源,代码来进行计算,或者有通行的并行计算程序(商业或非商业);,(2)虽然可以计算但是时间过长的问题等2.,超级计算环境可以提供怎样的支持,?,现行的超级计算环境是基于,Linux,或,Unix,操作系统的,所以对于商业程序,应该是,支持这两种操作系统的;而对于自编的源代码,可以在超级计算机上编译通过产生,可执行文件如果希望把串行的代码改编为并行,可以得到超级计算中心技术人员,的帮助我们所的使用,量子化学和化学动力学涉及的相关课题,生物分子、药物分子的设计、模拟及结构特性,基元化学反应的量子化学研究,材料科学和表面科学,物理有机化学及催化过程的研究,催化反应动力学及其表征,,量子动力学研究分子的动态过程,,PEMFC,内流体流动与传递现象研究,,流场理论计算及多维物理场耦合计算,,谢谢!,内容总结,情况介绍博士研究生18人,硕士研究生4人与多个国际学术团队有很好的合作,与纽约大学化学系张增辉教授合作建立理论与问题: 科学和工程问题的数值模拟与仿真。
秒级 制造业分钟级 短时天气预报(当天)小时级 中期天气预报(3~10日)可计算 湍流模拟GFLOPS而只是为了表达并行性而引入几条所谓的并行语句例如 n=2**k个数的求和输入: n=2**k个数存入数组A中若有2**2=4个处理器,则在1(h)级可能的并行运算数目为4/2**1=2.则运算任务分摊给前两个硬件结构抽象模型(自然模型)数据和任务的数据箱)-可以将串行代码改编为并行代码任何支持进程间通信的并行机,均可支持消息传递并行程序设计由进程1负责广播该数给所有进程,并打印输出流场理论计算及多维物理场耦合计算。