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