Presentation is loading. Please wait.

Presentation is loading. Please wait.

高性能计算和高性能计算机 赵崇山 2007-08-10.

Similar presentations


Presentation on theme: "高性能计算和高性能计算机 赵崇山 2007-08-10."— Presentation transcript:

1 高性能计算和高性能计算机 赵崇山

2 目 录 并行计算概要 高性能计算机体系结构 并行编程简介 高性能计算机群 并行计算的应用模式

3 计算是认识世界的主要手段 数值 模拟 不可能进行实验 实验危险 实验困难 实验有争议 实验昂贵 应用物理 工程 环境科学 生物学
新材料设计 辐射传输 宇宙演化 不可能进行实验 工程 多物理尺度的问题 流体力学(CFD) 结构力学(CAE) 环境科学 全球气候 污染输运 实验危险 实验困难 数值 模拟 生物学 药物设计 基因学 公共安全与管理 燃烧 现象 城市交通模拟 实验有争议 实验昂贵

4 并行计算的功能 降低单个问题求解的时间 增加问题求解规模、提高问题求解精度 (多机同时执行多个串行程序)容错、更高的可用性、提高吞吐率

5 并行计算的应用需求

6 并行化的主要方法:分而治之 根据问题的求解过程,把任务分成若干子任务(任务级并行或功能并行)
根据处理数据的方式,形成多个相对独立的数据区,由不同的处理器分别处理(数据并行)

7 如何实现并行计算? 分而治之!

8 目 录 并行计算概要 高性能计算机体系结构 并行编程简介 高性能计算机群 并行计算的应用模式

9 定义:并行计算机 由众多部件组成,具有运算速度快、存储容量大、可靠性高的特性。 也称为:超级计算机、高端计算机、高性能计算机
目前任何高性能计算机和并行计算都离不开使用并行技术,所以高性能计算机肯定是并行计算机。

10 衡量并行计算机的标准 TOP500排名标准依据Linpack软件实际测试值所表现出来的浮点计算能力

11 超级计算机总装机量排名

12 并行计算机系统结构 Flynn分类: 结构模型: 访存模型: SISD, SIMD, MIMD, MISD
PVP, SMP, MPP, DSM, COW 访存模型: UMA, NUMA, COMA, CC-NUMA, NORMA

13 Flynn分类 Flynn分类 超级计算机肯定是属于MIMD。MIMD从结构上和访存方式上,又可以分为:
SISD(Single-Instruction Single-Data) SIMD(Single-Instruction Multi-Data) MISD(Multi-Instruction Single-Data) MIMD(Multi-Instruction Multi-Data) 超级计算机肯定是属于MIMD。MIMD从结构上和访存方式上,又可以分为: 结构模型:PVP, SMP, MPP, DSM, CLUSTER 访存模型:UMA, NUMA, COMA, CC-NUMA, NORMA

14 并行计算机体系结构分类 分布共享存储系统(DSM) 大规模并行计算机系统(MPP) 机群系统(Cluster)
通过硬件来实现内存统一编址的超级计算机 SGI Altix 4000系列和Origin 3000系列 大规模并行计算机系统(MPP) 采用专用定制的网络连接或结构的超级计算机 Cray “红色风暴” ,IBM SP4 ,IBM “蓝色基因” 机群系统(Cluster) 通过定制/标准网络连接的超级计算机 曙光TC4000系列,联想深腾6800

15 体系结构模型分类

16 对称多处理机系统(SMP) SMP 对称式共享存储:任意处理器可直接访问任意内存地址,且访问延迟、带宽、机率都是等价的; 系统是对称的;
处理器: 一般少于64个; 处理器不能太多, 总线和交叉开关的一旦作成难于扩展; 例子:SUN Enterprise, 曙光1号,IBM RS6000,HP SuperDome

17 分布共享存储系统(DSM) DSM: 分布共享存储: 内存模块物理上局部于各个处理器内部,但逻辑上(用户)是共享存储的; 这种结构也称为基于Cache目录的非一致内存访问(CC-NUMA)结构;局部与远程内存访问的延迟和带宽不一致,3-10倍高性能并行程序设计注意 与SMP的主要区别:DSM在物理上有分布在各个节点的局部内存从而形成一个共享的存储器 处理器: 可扩展性比较好 代表: SGI Origin 3000, Altix 4700 , Cray T3D

18 大规模并行计算机系统(MPP) MPP 物理和逻辑上均是分布内存 能扩展至成百上千个处理器(微处理器或向量处理器)
采用高通信带宽和低延迟的互联网络 (专门设计和定制的) 一种异步的MIMD机器;程序系由多个进程组成,每个都有其私有地址空间,进程间采用传递消息相互作用; 代表: 曙光1000 ,神威机系列,CRAY T3E, ASCI Red(3072), IBM SP4, CRAY RedStorm,IBM Blue Gene

19 机群系统(Cluster) Cluster 每个节点都是一个完整的计算机 各个节点通过高性能网络相互连接 网络接口和I/O总线松耦合连接
每个节点有完整的操作系统 曙光2000、 3000、4000, ASCI Blue Mountain

20 访存模型分类 UMA: NORMA: NUMA:

21 多处理机和多计算机 多处理机 (共享存储) 多计算机 (分布式存储) 多处理机(单地址空间共享存储器)
UMA: Uniform Memory Access NUMA: Nonuniform Memory Access 多计算机(多地址空间非共享存储器) NORMA: No-Remote Memory Access 多处理机 (共享存储) 多计算机 (分布式存储) UMA: NORMA: NUMA:

22 访存模型和体系结构对应 UMA: NUMA: NORMA:

23 目 录 并行计算概要 高性能计算机体系结构 并行编程简介 高性能计算机群 并行计算的应用模式

24 并行程序开发环境 共享存储模型(Shared Memory) 消息传递模型(Message Passing)
HPF(High Performance Fortran)

25 共享存储模型 特点: OpenMP: 一个并行程序由多个共享内存的并行任务组成,数据的交换通过隐含地使用共享数据来完成。
一般仅需指定可以并行执行的循环,而不需考虑计算与数据如何划分,以及如何进行任务间通信,编译器会自动完成上述功能。 OpenMP: 目前流行的共享内存模型开发标准是OpenMP。 OpenMP定义了一套编译指导语句,用于指定程序的并行性、数据的共享/私有等信息。其目标是为SMP系统提供可移植、可扩展的开发接口。 OpenMP由OpenMP Architecture Review Board于1997年推出,现在已发展到2.0版。OpenMP支持的编程语言包括Fortran、C和C++。 OpenMP得到了工业界的广泛支持,有大量的商业编译器和其他开发工具支持OpenMP的开发,如IBM、HP、Sun、SGI、Intel等硬件厂商均有支持OpenMP的编译器产品,另外还有一些第三方厂商的OpenMP编译器。

26 消息传递模型 特点: 现在广泛使用的消息传递模型有两个:PVM和MPI 一个并行程序由多个并行任务组成
每个并行任务拥有自己的数据并对其进行计算操作 任务之间数据的交换是通过显式的消息传递语句来完成的 现在广泛使用的消息传递模型有两个:PVM和MPI PVM即Parallel Virtual Machine(并行虚拟机) MPI即Message Passing Interface(消息传递界面) 几乎所有的高性能计算系统都支持PVM和MPI

27 HPF HPF(High Performance Fortran)的思想与OpenMP类似,都是通过定义编译指导语句来帮助编译器生成并行代码。 HPF的目标系统与OpenMP不同,它支持DMP系统。因此,除了指定并行性的编译指导语句外,HPF还指定数据划分的编译指导语句。 HPF与消息传递模型的不同之处则在于:HPF通过编译器来生成通信语句,不需要程序员手工编写。 HPF得到了工业界的广泛支持,如IBM、HP、Sun都有HPF编译器。第三方产品则有PGI的PGHPF、APR的Forge xHPF等。其不足是对于某些问题无法得到与手工编写的消息传递程序相同的性能。

28 并行编程标准 数据并行语言标准 线程库标准(Thread Library) 编译制导(Compiler Directives)
数据并行编程 数据并行语言标准 Fortran90, HPF(1992), Fortran95/2001:显式数据分布描述,并行DO循环. 线程库标准(Thread Library) – Win32 API. – POSIX threads线程模型. 编译制导(Compiler Directives) – OpenMP : portable shared memory parallelism 消息传递库标准(Message Passing Libraries) – MPI : Message Passing Interface – PVM : Parallel Virtual Machine 共享变量编程 消息传递编程

29 并行编程标准归类 所有并行编程标准可分为以下三类: 三者可混合使用: 数据并行 共享编程 消息传递
HPF, Fortran90 用于SMP, DSM 共享编程 OpenMP 消息传递 MPI, PVM 用于所有并行计算机 三者可混合使用: 如对以SMP为节点的Cluster来说, 可以在节点间进行消息传递,在节点内进行共享变量编程.

30 消息传递并行程序设计 消息传递并行程序设计 并行计算粒度大,特别适合于大规模可扩展并行算法
指用户必须通过显式地发送和接收消息来实现处理机间的数据交换。 在这种并行编程中,每个并行进程均有自己独立的地址空间,相互之间访问不能直接进行,必须通过显式的消息传递来实现。 这种编程方式是大规模并行处理机(MPP)和机群(Cluster)采用的主要编程方式。 并行计算粒度大,特别适合于大规模可扩展并行算法 由于消息传递程序设计要求用户很好地分解问题,组织不同进程间的数据交换,并行计算粒度大,特别适合于大规模可扩展并行算法. 消息传递是当前并行计算领域的一个非常重要的并行程序设计方式

31 什么是MPI? Massage Passing Interface:是消息传递函数库的标准规范,由MPI论坛开发,支持Fortran和C

32 为什么要用MPI? 高可移植性 MPI已在IBM PC机上、MS Windows上、所有主要的Unix工作站上和所有主流的并行机上得到实现。使用MPI作消息传递的C或Fortran并行程序可不加改变地运行在IBM PC、MS Windows、Unix工作站、以及各种并行机上。

33 并行库 基本思想是:用户不需要自己编写通用的并行算法代码,而由程序库提供并行算法,并对用户透明。用户只需要根据自己的需求,调用相应的库函数,就可以编写出并行程序。 由于库函数的编写者一般经验丰富,而且库函数会采取较为优化的算法,并采用优化编译,使得库函数的执行效率很高。对于大量使用通用计算算法的用户来说,使用并行库是一种高效的开发模式。 并行库的缺点是无法帮助那些需要自己书写非通用并行算法的用户。

34 常用并行库 目前的并行库很多,包括PBLAS(Parallel Basic Linear Algebra Subroutines),以及建立在其基础上的LAPACK和ScaLAPACK,提供了一些线性代数问题的并行求解算法,如求特征值、最小二乘问题等。LAPACK是为SMP系统优化的,ScaLAPACK是为DMP系统优化的。大多数高性能计算系统都提供在本系统上优化的PBLAS、LAPACK、ScaLAPACK。 另一个著名的并行库是PETSc。PETSc是一套基于MPI的数据结构和库函数,用于解决基于偏微分方程的典型科学计算问题。 MATLAB是很常用的科学计算软件。很多公司和研究机构也在进行并行化MATLAB的工作,如RTExpress。

35 开发工具 调试工具 性能分析与预测 资源管理和负载平衡系统

36 调试工具 IBM的pdb(命令行方式)、pedb(Xwindow图形界面)、HP的DDE(XWindow图形界面)和LaDebug(用于Alpha系统)、Sun的Prism等 Etnus公司的TotalView是最著名的第三方并行调试器。它提供对C、C++、Fortran程序的图形化符号调试,可以调试MPI、PVM、HPF、OpenMP程序,支持SGI、Sun、HP、IBM等几乎所有的高性能厂商的产品,还提供对Linux的支持。 Intel公司的 Thread Analyzer是一个支持OpenMP的程序正确性检测工具,用于自动发现程序中的常见错误。它目前仅支持IA32和IA64上的Linux

37 性能分析与预测 程序性能分析(profiling)可以帮助用户找到程序中最费时的部分,从而集中精力进行改进和优化,是改进程序性能的有效手段
传统的性能分析工具一般仅提供子程序级的性能分析 但对于高性能程序来说,对于循环程序的性能分析是必不可少的。现有的大部分高性能计算系统中大都具有能够进行循环级性能分析的性能分析器,有些还提供了友好的用户界面,如Intel的VTune、AMD的CodeAnalyst、IBM的Xprofiler等。 一些第三方厂商也提供性能分析工具,比如Pallas的Vampir,它支持从Linux PC到IBM、HP、Sun、SGI等几乎所有的高性能厂商的产品。

38 资源管理和负载均衡系统 严格地说负载平衡系统是运行时环境,而不是开发环境 著名的负载均衡系统
负载平衡系统通过了解系统中各个结点的负载状况、计算能力、内存状况等,可以合理地分配任务的执行结点,必要时迁移现有的任务到其他结点,从而达到提高系统吞吐量的作用。 对于SMP系统来说,操作系统内置的任务调度器可以完成任务的调度功能 对于DMP系统来说,需要专门的软件来进行任务调度,达到负载平衡和单一系统映象(SSI) 著名的负载均衡系统 Platform公司的LSF(Load Sharing Facility) Veridian的PBS(Portable Batch System) 开源OpenPBS(Torque)、SGE

39 串行程序自动并行化 优点:可以将现有的很多串行代码转换成并行代码 并行化分为全自动并行化和交互式并行化两种模式
全自动并行化的并行过程不需要人的干预,可以自动发现程序中可并行的部分,生成并行代码;对大多数程序来说,并行化的效果还不理想 交互式并行化工具通过给用户提供程序中的有效信息,包括相关性分析结果、程序调用图、性能预测结果等帮助用户进行并行化工作,但是如何更好地结合用户和并行化工具的能力还需要进一步研究。目前产品化的交互式并行化工具主要有APR的Forge,该系统支持Fortran77的并行化,并同时支持SMP系统和DMP系统。

40 发展趋势 OpenMP将成为支持SMP系统编程的主要标准,将来的工作在于研究和开发更加有效的OpenMP编译器,以及更加强大友好的开发、调试工具 MPI和PVM将仍然是DMP系统的主要标准 并行库是很有前途的开发方式和研究方向,随着更多的并行程序库的出现,并行化编程会越来越容易。 程序自动并行化技术也能大大缩短并行程序的开发时间,但目前的技术即使对SMP系统也没有达到实用的水平,还需要技术上的突破。 网格计算是现在的热门话题,也是将来高性能计算的发展方向之一。为网格计算制定标准,提供所需的开发环境和运行环境将是未来的发展方向。

41 目 录 并行计算概要 高性能计算机体系结构 并行编程简介 高性能计算机群 并行计算的应用模式

42 超级计算机的发展 专用时代 在机群技术出现之前都是,包括大型机,MPP系统,SGI NUMA 系统,SUN大型SMP系统,也包括我国的神威,银河,曙光1000,KJ。 之所以称为“专用”,并不是说它们只能运行某种应用,是指它们的组成部件是专门设计的,它们的CPU板,内存板,I/O板,操作系统,甚至I/O系统,都是不能在其它系统中使用的。由于技术上桌面系统与高端系统的巨大差异,和用户群窄小。 平民化时代 这个时代里两个技术趋势起到重要作用。 商品化趋势使得大量生产的商品部件接近了高性能计算机专有部件 标准化趋势使得这些部件之间能够集成一个系统中,其中X86处理器、以太网、内存部件、Linux都起到决定性作用。 机群系统是高性能计算机的一种,它的技术基础和工业基础都是商品化和标准化。

43 高性能计算机体系结构的变化

44 机群是目前高性能计算机的主流 Architecture Count Share % Cluster 373 74.6 % MPP 107
21.4 % Constellations 20 4 % Total 500 100% TOP500排名(2007年6月)

45 1984年计算机的食物链 Mainframe PC Workstation Mini Computer
Vector Supercomputer Mini Computer Workstation PC

46 1994年计算机的食物链 (hitting wall soon) Mini Computer PC Workstation
Mainframe Vector Supercomputer MPP Workstation PC Mini Computer (hitting wall soon) (future is bleak)

47 现在计算机的食物链

48 什么是机群系统 机群系统(Cluster) 利用标准网络将一台台普通服务器或者PC机连接起来,为使用者提供更高的计算能力和存储能力并为使用者提供单一系统映象的系统。

49 单一系统映象 使用者在使用机群系统的时候感觉上就象使用一个单独的计算机系统一样。 单一系统映象实现方法: 硬件层、操作系统层、软件层

50 机群系统的分类 按节点机的类型 按应用领域 高性能计算机群 信息服务机群
SMP Cluster:节点机为SMP,也成为CLUMPS(Cluster of SMP’s)。 我们通常说的机群就是SMP Cluster。 NUMA Cluster:节点机为NUMA结构的机群系统 PC Cluster:节点机为PC机,通常也成为Beowulf机群(DIY机群) 按应用领域 高性能计算机群 信息服务机群

51 机群系统的应用领域 信息服务 基因信息 气象预报 汽车制造 生物物理 石油勘探 数学 船舶制造

52 机群系统的优势 极高的性价比 大型机的主流 良好的可扩展性 更高的可管理性 更低的使用维护成本 更好的可使用性 机群使用越来越广泛
更改的系统鲁棒性 更多的应用支持 机群使用越来越广泛 应用领域越来越多

53 标准机群解决方案 计算节点 I/O节点 管理节点 监控系统 存储系统 SKVM 网络系统 电源系统

54 高性能机群的硬件构成 机柜(含供电电源) 节点机 计算节点,登陆节点, I/O节点,监控节点 互连网络,连接机群的全部或部分节点:
管理网(百兆以太网) 数据网(千兆以太网) 计算网(Myrinet,Infiniband等) 监控网(曙光监控系统网络) KVM网(曙光SKVM系统) 存储网(SAN存储网络) 存储系统:盘阵或SAN存储

55 高性能机群层次架构 应用层 机群操作系统层 系统软件层(OS, 编译器) 硬件层(节点, 网络等)

56 应用层 应用支撑构件层 机群操作系统构件层 机群操作 系统核心层 节点系统层 基础部件层 高密度节点 高速通讯网络 存储 KVM监控网络
电源管理网络 网格使能零部件 基础部件层 节点系统层 机群操作 系统核心层 机群操作系统构件层 应用支撑构件层 应用层 操作系统 编译器 函数库 数据库 多线程工具 性能调试器 性能优化器 TCP/IP 高效TCP/IP VIA、BCL 网格网关 分布式构件平台 组服务 全局资源监控 全局服务监控 HA触发器 实时事件管理 数据公告 配置管理 环境动态部署 机群安全 作业调度 科学计算 商业计算 信息化应用 PVM、MPI、HPF、OpenMP、DSM 负载均衡 高可用系统 文件系统 进程管理系统 全局SHELL 并行调试器、并行化工具 性能优化工具 资源调度管理

57 高性能机群软件系统 操作系统 机群中间件 用户应用软件 Linux Unix Windows 并行通信库 数学库 编译调试环境 管理系统
科学计算类 工程计算类 非数值计算类(数据库,数据挖掘)

58 目 录 并行计算概要 高性能计算机体系结构 并行编程简介 高性能计算机群 并行计算的应用模式

59 并行计算在数学中的应用 密码学和加密技术 计算方法研究(数值求解) 性能优化 统计分析和数据挖掘 并行计算中应用最大的领域之一
和应用结合最紧密的部分 偏微分方程求解、小波分析 性能优化 并行计算最核心的部分 统计分析和数据挖掘

60 集中使用是最佳的应用模式 集中使用、统一管理是高性能计算最主要的应用模式 集中使用对于专业领域的促进 对于推动科研多元化和交叉学科的促进
相对稀缺的软硬件资源 昂贵的人力成本 资源大集中的趋势 集中使用对于专业领域的促进 对于推动科研多元化和交叉学科的促进

61 相对稀缺的资源 硬件计算资源的匮乏 软件资源的稀缺 人力资源的相当匮乏 并行计算机的相对昂贵的价格 持续的维护费用 专业软件的缺乏
昂贵的按处理器数目计算的license 人力资源的相当匮乏 极为缺乏的软件应用人才 经验丰富的主机管理人员

62 资源大集中的趋势 有利于构建规模型的并行计算机 有利于合理分配昂贵的license资源 有利于节省人力资源的投入 有助于提高解决问题的规模
有助于提高解决问题的精度 有助于缩短解决问题的时间 有利于合理分配昂贵的license资源 软件投入已经接近硬件投入 License的价格随规模的扩大而急剧降低 有利于节省人力资源的投入 节省稀缺的有经验的系统管理人员 使得科研人员摆脱维护工作的精力 保证设备可以平稳有效的运行

63 并行计算机能够提供计算资源 并行计算机能够使用的资源大,但获得成本低
庞大的计算资源有助于提高科研竞争能力,克服由于硬件规模有限而造成的竞争力不足 统一的并行计算机可以提供短时间的峰值计算能力 多元化的应用保证了学科交叉的交流平台 挖掘潜在的应用需求

64 谢谢各位领导和老师!


Download ppt "高性能计算和高性能计算机 赵崇山 2007-08-10."

Similar presentations


Ads by Google