0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

高性能计算关键组件核心知识

架构师技术联盟 来源:架构师技术联盟 2023-04-18 10:04 次阅读

a1c4eb6c-dd79-11ed-bfe3-dac502259ad0.png

高性能计算(缩写HPC)指通常使用很多处理器(作为单个机器的一部分)或者某一集群中组织的几台计算机(作为单个计 算资源操作)的计算系统和环境。有许多类型的HPC系统,其范围从标准计算机的大型集群,到高度专用的硬件

本文参考自“高性能计算知识汇总”及“OpenMP编译原理及实现”,高性能计算应用特征剖析、超级计算机研究报告、深度报告:GPU研究框架、《高性能计算和超算专题》。

大多数基于集群的HPC系统使用高性能网络互连,比如那些来自InfiniBand或Myrinet的网络互连。基本的网络拓扑和组织可以使用一个简单的总线拓扑,在性能很高的环境中,网状网络系统在主机之间提供较短的潜伏期,所以可改善总体网络性能和传输速率。

高性能计算硬件结构和总体结构

高性能计算拓扑结构,从硬件结构上,高性能计算系统包含计算节点、IO节点、登录节点、管理节点、高速网络、存储系统等组成。

a1fb8a8c-dd79-11ed-bfe3-dac502259ad0.png

高性能计算集群性能指标

FLOPS是指每秒浮点运算次数,Flops用作计算机计算能力的评价系数。根据硬件配置和参数可以计算出高性能计算集群的理论性能。

1) CPU理论性能计算方法(以Intel CPU为例)

单精度:主频*(向量位宽/32)*2 双精度:主频*(向量位宽/64)*2 2代表乘积指令

2) GPU理论性能计算方法(以NVIDIA GPU为例)

单精度:指令吞吐率*运算单元数量*频率

3) MIC理论性能计算方法(以Intel MIC为例)

单精度:主频*(向量位宽/32)*2 双精度:主频*(向量位宽/64)*2 2代表乘积指令 通过利用测试程序对系统进行整体计算能力进行评价。

Linapck测试:采用主元高斯消去法求解双精度稠密线性代数方程组,结果按每秒浮点运算次数(flops)表示。

HPL:针对大规模并行计算系统的测试,其名称为HighPerformanceLinpack(HPL),是第一个标准的公开版本并行Linpack测试软件包。用于TOP500与国内TOP100排名依据。

同构计算节点

同构计算节点是指集群中每个计算节点完全有CPU计算资源组成,目前,在一个计算节点上可以支持单路、双路、四路、八路等CPU计算节点。

异构计算节点

异构计算技术从80年代中期产生,由于它能经济有效地获取高性能计算能力、可扩展性好、计算资源利用率高、发展潜力巨大,目前已成为并行/分布计算领域中的研究热点之一。异构计算的目的一般是加速和节能。目前,主流的异构计算有:CPU+GPU,CPU+MIC,CPU+FPGA

常见的并行文件系统

PVFS:Clemson大学的并行虚拟文件系统(PVFS) 项目用来为运行Linux操作系统的PC群集创建一个开放源码的并行文件系统。PVFS已被广泛地用作临时存储的高性能的大型文件系统和并行I/O研究的基础架构。作为一个并行文件系统,PVFS将数据存储到多个群集节点的已有的文件系统中,多个客户端可以同时访问这些数据。

Lustre,一种平行分布式文件系统,通常用于大型计算机集群和超级电脑。Lustre是源自Linux和Cluster的混成词。于2003年发布Lustre 1.0。采用GNU GPLv2开源码授权。

集群管理系统的主要功能

目前,几大主流服务器厂商都提供了自己的集群管理系统,如浪潮的Cluster Engine,曙光的Gridview,HP的Serviceguard,IBM Platform Cluster Manager等等。集群管理系统主要提供一项的功能:

1)监控模块:监控集群中的节点、网络、文件、电源等资源的运行状态。动态信息、实况信息、历史信息、节点监控。可以监控整个集群的运行状态及各个参数。

2)用户管理模块:管理系统的用户组以及用户,可以对用户组以及用户进行查看,添加,删除和编辑等操作。

3)网络管理模块:系统中的网络的管理。

4)文件管理:管理节点的文件,可以对文件进行上传、新建、打开、复制、粘贴、重命名、打包、删除和下载等操作。

5)电源管理模块:系统的自动和关闭等。

6)作业提交和管理模块:提交新作业,查看系统中的作业状态,并可以对作业进行执行和删除等操作。还可以查看作业的执行日志。

7)友好的图形交互界面:现在的集群管理系统都提供了图形交互界面,可以更方便的使用和管理集群。

集群作业调度系统

关于目前主流的HPC作业调度系统有:LSF/Slurm/PBS/SGE,他们分别也都有一些衍生版本,所以,有人也将他们称为四大流派。

下表列出了目前主要使用的 HPC作业调度管理系统:PBS/Torque、Slurm、LSF、SGE 和 LoadLeveler使用的常用命令、环境变量和作业规范选项,这些作业调度管理器中的每一个都具有独特的功能,但最常用的功能在表中列出的所有这些环境中都可用。

a20d05f0-dd79-11ed-bfe3-dac502259ad0.png

集群管理系统中最主要的模块为作业调度系统,目前,主流的作业调度系统都是基于PBS的实现。PBS(Portable Batch System)最初由NASA的Ames研究中心开发,主要为了提供一个能满足异构计算网络需要的软件包,用于灵活的批处理,特别是满足高性能计算的需要,如集群系统、超级计算机和大规模并行系统。

PBS的主要特点有:代码开放,免费获取;支持批处理、交互式作业和串行、多种并行作业,如MPI、PVM、HPF、MPL;PBS是功能最为齐全,历史最悠久,支持最广泛的本地集群调度器之一。

a2199b9e-dd79-11ed-bfe3-dac502259ad0.png

PBS的目前包括openPBS, PBS Pro和Torque三个主要分支.其中OpenPBS是最早的PBS系统,目前已经没有太多后续开发, PBS pro是PBS的商业版本,功能最为丰富. Torque是Clustering公司接过了OpenPBS,并给与后续支持的一个开源版本。PBS主要有如下特征:

1)易用性:为所有的资源提供统一的接口,易于配置以满足不同系统的需求, 灵活的作业调度器允许不同系统采用自己的调度策略。

2)移植性:符合POSIX 1003.2标准,可以用于shell和批处理等各种环境。

3)适配性:可以适配与各种管理策略,并提供可扩展的认证和安全模型。支 持广域网上的负载的动态分发和建立在多个物理位置不同的实体上的虚 拟组织。

4)灵活性:支持交互和批处理作业。torque PBS提供对批处理作业和分散的计算节点(Compute nodes)的控制。

2016年Altair基于PBS Pro提供了开源许可版本,其与MRJ于1998年发布的原始开源版本两者合二为一大致就是现在的OpenPBS。与Pro版本比,多了很多限制,但都支持Linux和Windows。

a221af8c-dd79-11ed-bfe3-dac502259ad0.png

Slurm全称为Simple Linux Utility for Resource Management,前期主要由劳伦斯利弗莫尔国家实验室、SchedMD、Linux NetworX、Hewlett-Packard 和 Groupe Bull 负责开发,受到闭源软件Quadrics RMS的启发。 Slurm最新版本为22.05,目前由社区和SchedMD公司共同维护,保持开源和免费,由SchedMD公司提供商业支持,仅支持Linux系统,最大节点数量超过12万。 Slurm拥有容错率高、支持异构资源、高度可扩展等优点,每秒可提交超过1000个任务,且由于是开放框架,高度可配置,拥有超过100种插件,因此适用性相当强。

a2308eda-dd79-11ed-bfe3-dac502259ad0.png

基于LSF(Load Sharing Facility)的调度器主要有Spectrum LSF、PlatformLSF、OpenLava三家。 早期的LSF是由Toronto大学开发的Utopia系统发展而来。
2007年,Platform Computing基于早期老版本的LSF开源了一个简化版Platform Lava。 这个开源项目2011年中止了,被OpenLava接手。2011年,Platform员工David Bigagli基于Platform Lava的派生代码创建了OpenLava 1.0。2014年,一些Platform的员工成立了Teraproc公司,为OpenLava提供开发和商业支持。2016年IBM就LSF版权对Teraproc公司发起诉讼,2018年IBM胜诉,OpenLava被禁用。

a241a8aa-dd79-11ed-bfe3-dac502259ad0.png

2011年,Platform Lava开源项目中止后。2012年1月,IBM收购了Platform Computing。Spectrum LSF就是IBM收购后推出的商用版本,目前更新到10.1.0,同时支持Linux和Windows,最大节点数超过6000,在国内提供商业支持。

Platform LSF是LSF的早期版本,与Spectrum LSF一样属于IBM,目前版本是9.1.3,目测已经停止更新以维护为主。

a24cea76-dd79-11ed-bfe3-dac502259ad0.png

a2589c36-dd79-11ed-bfe3-dac502259ad0.png

在这三个调度器中,仅有Spectrum LSF支持Auto-Scale集群自动伸缩功能,同时该调度器还可通过LSF resourceconnector实现溢出到云,支持云厂商包括AWS、Azure、Google Cloud。

并行编程模型

消息传递接口(Message Passing Interface, MPI),MPI是一种基于消息传递的并行编程技术。MPI程序是基于消息传递的并行程序。消息传递指的是并行执行的各个进程具有自己独立的堆栈和代码段,作为互不相关的多个程序独立执行,进程之间的信息交互完全通过显示地调用通信函数来完成。

1) MPI是一个库,而不是一门语言。

2) MPI是一种标准或规范的代表,而不特指某一个对它的具体实现,迄今为止,所有的并行计算机制造商都提供对MPI的支持,可以在网上免费得到MPI在不同并行计算机上的实现,一个正确的MPI程序可以不加修改地在所有的并行机上运行。

3) MPI是一种消息传递编程模型,并成为这种编程模型的代表。事实上,标准MPI虽然很庞大,但是它的最终目的是服务于进程间通信这一目标。常见MPI类型有以下几类:

1) OpenMPI

OpenMPI是一种高性能消息传递库,它是MPI-2标准的一个开源实现,由一些科研机构和企业一起开发和维护。因此,OpenMPI能够从高性能社区中获得专业技术、工业技术和资源支持,来创建最好的MPI库。OpenMPI提供给系统和软件供应商、程序开发者和研究人员很多便利。易于使用,并运行本身在各种各样的操作系统,网络互连,以及一批/调度系统。

下载地址:http://www.open-mpi.org/

2) Intel MPI

Intel MPI是Intel编译器中支持的MPI版本。


3) MPICH

MPICH是MPI标准的一种最重要的实现,可以免费从网上下载。MPICH的开发与MPI规范的制订是同步进行的,因此MPICH最能反映MPI的变化和发展。MPICH的开发主要是由Argonne National Laboratory和Mississippi State University共同完成的,在这一过程中IBM也做出了自己的贡献,但是MPI规范的标准化工作是由MPI论坛完成的。MPICH是MPI最流行的非专利实现,由Argonne国家实验室和密西西比州立大学联合开发,具有更好的可移植性。相关下载地址:http://www.mpich.org/

a26c161c-dd79-11ed-bfe3-dac502259ad0.png

4) Mvapich

MVAPICH是VAPI层上InfiniBand的MPI的缩写,它充当着连接消息传递接口(MPI和被称作VAPI的InfiniBand软件接口间的桥梁,也是MPI标准的一种实现。InfiniBand是“无限带宽”的缩写,这是一种新的支持高性能计算系统的网络架构。OSU(Ohio State University)超级计算机中心的科学家彼特于2002年开发出MVAPICH前,InfiniBand和MPI是不兼容的。

同时,MVAPICH2/MVAPICH也可以从Open Fabrics Enterprise Distribution (OFED)套件中获得。最新版本为MVAPICH2 2.2b,下载地址:http://mvapich.cse.ohio-state.edu/

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 高性能
    +关注

    关注

    0

    文章

    147

    浏览量

    20229
  • 网络拓扑
    +关注

    关注

    0

    文章

    93

    浏览量

    11239
  • 单精度
    +关注

    关注

    0

    文章

    8

    浏览量

    2226

原文标题:高性能计算关键组件核心知识

文章出处:【微信号:架构师技术联盟,微信公众号:架构师技术联盟】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    #硬声创作季 计算机组成原理详解:116.测试提高性能

    计算机原理高性能
    Mr_haohao
    发布于 :2022年10月16日 23:05:12

    高性能计算机的发展历史是怎样的?

    高性能计算机的发展史高性能计算机的内容高性能计算机的应用高性能计算机的现状高性能计算机的应用领域高性能
    发表于 09-10 10:42

    HPC高性能计算知识介绍

    HPC高性能计算知识 异构并行计算
    发表于 05-29 17:45

    高性能图像传感器参考设计的核心集成与协作解析

    高性能图像传感器参考设计的核心集成与协作
    发表于 01-11 06:16

    高性能计算软件具有哪些缺陷?

    谈到高性能计算,很多人都会想到那些每秒可以运行百万亿次、千万亿次计算的超级计算机,如最近炒得很火爆的“天河一号”、“曙光6000“等,但很少有人会想到上面跑的软件。其实,硬件只是基础,
    发表于 08-30 06:35

    基于ZU3EG的低功耗高性能嵌入式AI高性能计算模组

    基于ZU3EG的低功耗高性能嵌入式AI高性能计算模组 ![在这里插入图片描述](?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR
    发表于 12-14 08:38

    数据结构预算法核心知识点总结概述

    数据结构预算法核心知识点总结概述最近有看一些大佬的专栏,受益匪浅。深刻的觉察到我们要想成为一个伟大的程序员,或者说小一点,成为一个厉害的程序员,基础知识核心竞争力也是我们不断向上提升个人能力的基石
    发表于 12-21 08:00

    嵌入式开发中会用到哪些核心知识

    、什么是嵌入式、嵌入式系统的技术特征、三次信息化浪潮、嵌入式技术的主要发展方向和主流产品。2、什么人适合学习嵌入式本节主要讲述嵌入式开发中会用到哪些核心知识,需要哪些核心技能,嵌入式开发和Android应用、微信定制开发等纯应用层开发的不同之处,最后分析了哪些人适合学习嵌
    发表于 12-24 07:39

    IIC的核心知识点汇总,绝对实用

    IIC的核心知识点汇总,绝对实用
    发表于 01-24 06:14

    高性能选项和卓越性能基础知识总结

    卓越模式1.1 基础知识高性能选项和卓越性能个人总结为:卓越性能会降低电压,提高功耗,使硬件温度更低,耗电更快,速度更快 一般默认的设置是“平衡...
    发表于 03-02 07:43

    智能网卡简介及其在高性能计算中的作用

    大型计算节点集群才能训练具有大量数据的如此庞大的 DNN。SmartNIC 已成为现代网络基础设施中的关键组件,专门设计用于增强网络性能、减少延迟并提高整体系统效率。SmartNIC是
    发表于 07-28 10:10

    什么是高性能计算

    什么是高性能计算 高性能计算(HighPerformanceComputing)是计算机科学的一个分支,主要是指从体系结构、并行算法和软件
    发表于 05-24 23:29 4275次阅读

    高性能计算发展与应用

    高性能计算发展与应用,感兴趣的可以看看。
    发表于 03-24 17:12 0次下载

    计算高性能计算的区别及联系

    近年来,随着人工智能、AI智药等科技领域的火热,以及阿里云、腾讯云、华为云等互联网大厂在各种场景下的成功应用。高性能计算、云计算这类科技领域的词汇也也逐渐进入人们的日常生活。那么,什么是云计算
    发表于 06-26 14:30 3135次阅读

    什么是HPC(高性能计算)?

    高性能计算 (High Performance Computing,又叫HPC、超级计算) 是指比传统计算机和服务器提供更高马力聚合计算能力
    的头像 发表于 11-01 11:47 2.2w次阅读