1 / 41

并行计算机与并行计算

并行计算机与并行计算. 张鑫 理论与计算化学国际合作研究中心 分子反应动力学国家重点实验室. 分子反应动力学国家重点实验室. 交叉分子束动力学课题组. 理论与计算化学国际合作中心. 情况介绍. 研究员2人,其中一位为中国科学院院士,高级访问学者1人,博士后研究人员6人, 博士研究生18人,硕士研究生4人. 与多个国际学术团队有很好的合作,与纽约大学化学系张增辉教授合作建立理论与 计算化学国际合作研究中心. 主要研究工作. 实验方面: 交叉分子束对光解,碰撞反应,立体化学动力学的研究 激光诱导荧光方法对光解,立体化学动力学的研究

jerold
Download Presentation

并行计算机与并行计算

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 并行计算机与并行计算 张鑫 理论与计算化学国际合作研究中心 分子反应动力学国家重点实验室

  2. 分子反应动力学国家重点实验室 交叉分子束动力学课题组 理论与计算化学国际合作中心 情况介绍 研究员2人,其中一位为中国科学院院士,高级访问学者1人,博士后研究人员6人, 博士研究生18人,硕士研究生4人 与多个国际学术团队有很好的合作,与纽约大学化学系张增辉教授合作建立理论与 计算化学国际合作研究中心

  3. 主要研究工作 • 实验方面: • 交叉分子束对光解,碰撞反应,立体化学动力学的研究 • 激光诱导荧光方法对光解,立体化学动力学的研究 • 飞秒激光对超快动力学过程的研究 • 理论方面: • 准经典轨线方法对反应动态学的研究 • 量子力学方法对反应动态学的研究 • 复杂体系势能面的构造,拟和 • 量子化学及其他方法对分子结构,物质特性,化学反应过程的研究 1997-2001年,发表文章84篇,其中英文66篇

  4. HPC Server

  5. 并行计算机与并行计算 • 为什么要建造并行计算机 • 并行计算机的类型 • 什么是并行计算,并行进程的特性及并行模型的分类 • 工作站集群(COW)的基本结构 • 中国科学院十五计划中关于并行计算部分

  6. 为什么要建造并行计算机

  7. 什么是超级计算环境 超级计算(Supercomputing),从技术的意义上说,是为了在问题的求解上具有更快的速度、更高的精度、更大的规模、更好的性能价格比而采用的非主流计算的设施和方式。

  8. 计算速度的要求 • 问题: 科学和工程问题的数值模拟与仿真 • 计算密集 • 数据密集 • 网络密集 • 三种混合 • 要求:在合理的时限内完成计算任务 • 秒级 制造业 • 分钟级 短时天气预报(当天) • 小时级 中期天气预报(3~10日) • 尽可能快 长期天气预报(气候) • 可计算 湍流模拟

  9. 问题的规模

  10. 计算机的规模:TOP10 (2001年7月)

  11. IBM Builds World's Fastest Supercomputer to Simulate Nuclear Testing for U.S. Energy Department

  12. 以动物的食物链为例

  13. 打破高性能计算的壁垒 2100 2100 2100 2100 GFLOPS 2100 2100 2100 2100 2100 单处理器 共享存储 局域并行机群 广域并行机群

  14. 并行计算机分类

  15. Flynn分类法 • SISD(单指令流单数据流)系统 • SIMD(单指令流多数据流)系统 • MISD(多指令流单数据流)系统 • MIMD(多指令流多数据流)系统 • 五种物理机模型: 实际的机器体系结构 • PVP (Parallel Vector Processor, 并行向量机) • SMP (Symmetric Multiprocessor, 对称多处理机) • MPP (Massively Parallel Processor, 大规模并行处理机) • COW (Cluster of Workstation, 工作站机群) • DSM (Distributed Shared Memory, 分布共享存储多处理机)

  16. 虚拟分布共享存储(DSM) … CPU CPU CPU 定制网络 … 总线或交叉开关 … SMP MPP MPP CPU CPU CPU SM … WAN P/C P/C P/C (d) Grid (Cluster of Clusters) (a) SMP, 物理上单一地址空间 定制/标准网络 (b) DSM, 逻辑上单一地址空间 LM DSM LM LM LM LM SM LM LM (c) Cluster/COW, 物理/逻辑上多地址空间 几种我们常见的并行计算机

  17. 什么是并行计算,并行进程的表述 及并行模型的分类

  18. 进程 2 接收信息 进程 1 发送信息 什么是并行计算 进程 1 进程 2 传统的串行计算,分为“指令” 和“数据”两个部分,并在程序 执行时“独立地申请和占有”内 存空间,且所有计算均局限于 该内存空间。 并行计算将进程相对独立的 分配于不同的节点上,由 各自独立的操作系统调度, 享有独立的CPU和内存资源 (内存可以共享);进程间 相互信息交换通过消息传递;

  19. 在并行算法的表述中,所有描述串行算法的语句及进程均可调用,在并行算法的表述中,所有描述串行算法的语句及进程均可调用, 而只是为了表达并行性而引入几条所谓的并行语句 当几个算法步要并行执行时, 我们可以写作 Do step i to j in parallel stepi stepi+1 … step j 或者是: 当几个处理器同时执行相同的操作时,我们可以写作 for all i parallel do . . . end for 并行算法的表述

  20. 例如 n=2**k个数的求和 n=4,k=2,就是4个数的加和 输入: 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) SB(i) end 把每一个A(i)赋给B(i) 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.则运算任务分摊给前两个 处理器

  21. 并行模型的分类 • 硬件结构抽象模型(自然模型) • 共享存储的模型和语言(适于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)

  22. 基于程序构造的模型 • CSP • Linda (Fortran, C, Gaussian) • Global (Molpro,Columbus) • 基于问题描述的模型 • GAMMA • UNITY • 基于并行计算理论的模型 • PRAM • BSP • LogP

  23. Linda模型 Yale 大学Nicholas Carriero 和David Gelernter 于1986年基于分散数据结构和共享存储系统的并行计算模型. Linda模型定义了一个功能强大的逻辑存储器(TS)和在其上的一组核心操作(in, out, read, eval), 它们能够方便地嵌入到不同的语言(如, C, Fortran)中而构成相应的并行语言(C-Linda和Fortran-Linda等) 该模型同时还支持动态程序设计和两种不同的编程风格(Master/Slaver和Divide-and-Conquer),为用户开发不同类型 的应用程序提供了灵活的手段.

  24. TS 共享数据箱 进程 2 进程 4 进程 3 进程 1 (进程从TS中提取任务或数据进行计算, 并将结果或生成的新任务放入TS中. 并行执行 的进程之间通过TS进行间接的通信和同步. TS是一个可被多个进程共享的、能同时存放 数据和任务的数据箱)

  25. Linda模型的应用 -Linda in Gaussian HF: SP Opt Freq MP2: Sp Opt Freq DFT: SP Opt Freq -可以将串行代码改编为并行代码 支持C和Fortran语言

  26. MPI模型 MPI(Message Passing Interface) 在当前所有的消息传递软件中, 最重要最流行的是MPI, 它能运行在所有的并行平台上, 包括SMP和PVP. 二者已经在Windows NT 和Windows 95这样的非Unix平台上实现. 程序设计语言支持C, Fortran和Java.在国产的三大并行机系列神威、银河和曙光上都实现了对MPI和支持. MPI已经成为一种标准,应用越来越广泛。而最流行的MPI工具集当属mpich〔http://www-unix.mcs.anl.gov/mpi/mpich〕,是目前高效率的超大规模并行计算(1000个处理器)最可信赖的平台。 目标: 是提供一个实际可用的、可移植的、高效的和灵活的消息传递 接口标准. MPI以语言独立的形式来定义这个接口库, 并提供了与C、 Fortran和Java语言的绑定. 这个定义不包含任何专用于某个特别的 制造商、操作系统或硬件的特性. 由于这个原因, MPI在并行计算界 被广泛地接受.

  27. MPI并行进程的实现 MPI并行程序设计平台由标准消息传递函数及相关辅助函数构成,多个进程通过调用这些函数(类似调用子程序),进行通信; 一个程序同时启动多份,形成多个独立的进程, 在不同的处理机上运行,拥有独立的内存空间, 进程间通信通过调用MPI函数来实现;每个进程 开始执行时,将获得一个唯一的序号(rank)。 例如启动P个进程,序号依次为0,1,…,P-1;

  28. 消息传递是相对于进程间通信方式而言的,与具体并行机存储模式无关,消息传递是相对于进程间通信方式而言的,与具体并行机存储模式无关, 任何支持进程间通信的并行机,均可支持消息传递并行程序设计;几乎 有共享和分布存储并行计算环境均支持进程间的消息传递通信; 进程 1 传递信息 进程 3 传递信息 进程 2 传递信息 进程 0 传递信息 进程0发送一个整数给进程1;进程1将该数加1,传递给进程2;进程2再将 该数加1,再传递给进程3;依次类推,最后,进程N-1将该数传递给进程0, 由进程1负责广播该数给所有进程,并打印输出。

  29. 在商品化的并行机上, MPI的环境一般是由系统管理人员事先设置好的,用户不需要变动它.而在用户自已配置的NOW(工作站机群)上运行MPI程序则需要设置以下配置文件:(1)由于加载程序到结点上运行需要调用了Unix系统的rsh命令,所以需要在每个结点上设置 .rhosts文件,以使rsh能正确执行;(2) 由于NOW环境的异构性,需要在启动时指定运行结点的体系结构;若未指定,是指使用与启动并行程序的结点具有相同体系结构的结点.在启动并行程序的机器里,具有相同体系结构的几台机器的名字存放在一个名为$MPICH/util/machines/machines.<arch>的文件中,一台机器的名字占有文件的一行,其中$MPICH是一个环境变量,指明MPICH软件安装后所在的目录.并行程序加载运行时是按照文件中机器名字的先后顺序依次加载的. 商业机中的MPI

  30. MPI的编译与运行 程序用以下并行C编译器mpcc来编译: mpcc myprog.c –o myprog 执行下列命令将可执行程序myprog加载到n个节点上: mpirun myprog –np n MPI进程是重型的单线进程. 它们拥有不同的地址空间. 因此, 一个进程不能直接访问另一个进程地址空间中的变量. 进程间的通信用消息传递来实现.

  31. 工作站集群(COW)的基本结构

  32. COW简介 工作站机群(Cluster of Workstation)是将一群工作站用某种结构的网络互联起来,充分利用各工作站的资源,统一调度、协调处理,以实现高效并行计算。 互联网络: LAN(Myricom Myrinet/Gigabite/Ethernet ) 节点: 高档微机,对称多处理机SMP 操作系统: Unix、Linux、NT、改进和修改的操作系统 通信协议: TCP/IP、特定的协议 通信原语库以及并行程序设计环境工具: MPI、PVM、linda

  33. 基本实现原理 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

  34. HPC Server Ø   软件配置: 操作系统:每一个节点都装有多用户,多任务的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,各种自编程序和交流程序

  35. 中国科学院十五计划中 关于并行计算部分

  36. 现有计算设备: -Power Challenge XL 并行对称多处理系统 -日立SR2201超级计算并行机系统 -曙光2000-II超级服务器 中国科学院网络信息中心高性能计算研究室 详细配置可以查询: www.sc.ac.cn

  37. 预备引进: -联想iCluster1800高性能机群服务器(已由数学研究院引进,正在试运行) -超过2万亿次的超级计算机(预计2004年9月到位) 目前正在征求意见,建立用户资料库

  38. 1.什么任务适合在超级计算环境内运行? 一般来说,计算量极大而使PC不能满足要求或者根本不能计算的任务是适合在 超级计算环境中运行的。比如, (1)需要分布式并行处理的科学计算任务,包括:由于对计算资源要求过大而 使现在的硬件条件无法满足要求的计算任务,通过将串行源代码改编为并行源 代码来进行计算,或者有通行的并行计算程序(商业或非商业); (2)虽然可以计算但是时间过长的问题等。 2.超级计算环境可以提供怎样的支持? 现行的超级计算环境是基于Linux或Unix操作系统的,所以对于商业程序,应该是 支持这两种操作系统的;而对于自编的源代码,可以在超级计算机上编译通过产生 可执行文件。如果希望把串行的代码改编为并行,可以得到超级计算中心技术人员 的帮助。

  39. 我们所的使用 量子化学和化学动力学涉及的相关课题 生物分子、药物分子的设计、模拟及结构特性 基元化学反应的量子化学研究 材料科学和表面科学 物理有机化学及催化过程的研究 催化反应动力学及其表征 量子动力学研究分子的动态过程 PEMFC内流体流动与传递现象研究 流场理论计算及多维物理场耦合计算

  40. 谢谢!

More Related