微软HPC解决方案概述与实作51CTO博客 - 超凡娱乐

微软HPC解决方案概述与实作51CTO博客

2019-03-06 09:56:58 | 作者: 依秋 | 标签: 节点,核算,群集 | 浏览: 1003

HPC解决方案是微软产品历史长河中的一个砂砾,国内很少有人提及,因而老王预备把这个砂砾擦擦,为咱们出现出来


开端之前咱们无妨先来看下HPC的概念,前面咱们花了将近50篇左右的文章,讲了微软高可用性群集,除了高可用群集,微软事实上还有负载均衡群集和高功用群集技能,负载均衡技能无非是ARR,NLB,DNS轮询,这些咱们都常用的技能,而微软的高功用群集技能,就连专门做微软itpro的人也很少知道,因而本文咱们就来从一个入门的视点,争夺让不明白HPC的微软ITpro能够看懂,也能够让懂HPC但不了解微软产品的人看懂。


首要咱们先来看下高功用群集与其它几种群集的不同


高可用群集:群集一切节点,来保持一个运用的继续运作,假如其时运用地点节点失利,主动毛病搬运至其它节点

负载均衡群集:群集一切节点来平衡一个运用的拜访恳求,运用每个节点的呼应,以进步运用效能,一起支撑毛病搬运

分布式群集:群集一切节点来共同完结一件事,一件事能够被涣散成若干小事由不同节点处理,终究汇总成果

高功用群集:群集一切节点来共同完结一件事,一般以核算为主,归纳群集的功用来到达快速完结核算意图


分布式群集与高功用群集进一步讨论


这两种群集模型,某些程度上存在必定类似度,但某些程度又不太相同


例如,一个分布式群集的节点,能够是server,pc,hpc,能够是跨机房,跨地区,跨国,能够是windows,linux,unix,能够分布式核算里边再包括多个群集,多个节点,基本上分布式群集最大的一个特色,就是对供给核算的节点没有更多的要求,只需能够供给核算才能就行,是松耦合化的,不会和某一种OS,某一种硬件绑定


高功用群集在这一点上则与分布式群集不同,高功用群集着重的是高功用,因而,假如这个群集里边各个节点来自不同国家,必定无法完结高功用的意图,因而,一个高功用群集的各个节点,必定是经过高速网络很快的衔接在一组的效劳器,不或许是涣散在不同国家的,一起高功用群集一般不会由PC,一般server参与,最少会由相对功用高一些的server,或专门为高功用核算规划的server来组成,一个高功用群集的节点一般是规范化的,或许定制化硬件。


分布式核算一般会把一个作业分红多个小作业,然后交由各个节点,高功用核算一般是并行作业


分布式核算愈加适用于在核算寻觅形式的东西,剖析核算,相加核算

高功用核算群集更多的会被运用于数学,工业,科研范畴等,需求在短时刻内处理多维度的核算


高功用核算是否就是云核算?


从运作形状来讲,老王把云核算分为两个视点来看

关于终究用户,个人用户,或企业运用云核算的部分而言,云核算就是一种新的IT消费模型,它自助化,主动化,只需付钱就能够运用,布置方便,弹性收费,不需求花费其它前置费用和时刻

关于云供给商或企业供给云核算的部分来说,云核算就是一种新的IT办理模型,将本来涣散的架构开端会集化,经过软件界说+资源池,就能够履行大部分存储,网络作业,一起运用云后能够做一些主动化的保护操作,减轻IT保护时刻,别的云核算将本钱办理,SLA引进,有助于IT部分进一步表现本身价值


因而咱们能够看到从运作形状上来讲,云核算愈加像是一种企业信息化的挑选,企业挑选云核算来辅佐现有数据中心,提高资源恳求功率


高功用核算与云核算有一点十分抵触的是,云核算首要是要求供给弹性,要快速布置,快速响运用户的恳求,乃至要依据程序的功用做布置,因而后台会引进虚拟化,多租户等技能,高功用核算一般不会是虚拟化,都会是由实体的物理机承当,以取得最好的功用。


近些年来,也有些公司提出将高功用核算和云核算调集,首要仍是公有云厂商提出的概念,能够从iaas或paas层对接本地高功用核算群集,将公有云作为高功用核算的一部分,可是一些高功用核算用户仍是会对此持有置疑情绪,首要的核算仍是会在本地跑,什么场景下适用于公有云呢,或许是要做一些模拟核算的时分,本地高功用群集排队已满,这时分能够暂时把作业提交到公有云,最好是不发生数据,仅看成果,这类核算能够适用于公有云。


高功用群集名词与常见功用


高功用核算(Highperformance computing,缩写HPC)  最早咱们说到高功用核算一般是指某台高功用主机,经过分片等技能将作业提交到这台主机进行核算,跟着信息技能不断发展,高功用核算逐步也面向企业,现在的的高功用核算一般是指某一群会集安排的几台核算机(作为单个核算资源操作)的核算体系和环境,更多的是经过高功用群集软件+效劳器完结高功用核算作用


高功用核算效劳器架构挑选


SMP(Symmetrical Multi-Processing),是指在一个核算机上汇集了一组处理器(多CPU),各CPU之间同享内存子体系以及总线结构,SMP效劳器的首要特征是同享,体系中一切资源(CPU、内存、I/O等)都是同享的。也正是因为这种特征,导致了SMP效劳器的首要问题,那就是它的扩展才能十分有限。关于SMP效劳器而言,每一个同享的环节都或许形成SMP效劳器扩展时的瓶颈,而最受约束的则是内存。因为每个CPU有必要经过相同的内存总线拜访相同的内存资源,因而跟着CPU数量的增加,内存拜访抵触将敏捷增加,终究会形成CPU资源的糟蹋,使 CPU功用的有效性大大下降


NUMA(Non-Uniform Memory Access),因为SMP在扩展才能上的约束,人们开端探求怎么进行有效地扩展然后构建大型体系的技能,NUMA就是这种尽力下的成果之一,运用NUMA技能,能够把几十个CPU(乃至上百个CPU)组合在一个效劳器内,NUMA效劳器的基本特征是具有多个CPU模块,每个CPU模块由多个CPU(如4个)组成,而且具有独立的本地内存、I/O槽口等。因为其节点之间能够经过互联模块(如称为Crossbar Switch)进行衔接和信息交互,因而每个CPU能够拜访整个体系的内存(这是NUMA体系与MPP体系的重要不同)。明显,拜访本地内存的速度将远远高于拜访远地内存(体系内其它节点的内存)的速度,但NUMA技能相同有必定缺点,因为拜访远地内存的延时远远超越本地内存,因而当CPU数量增加时,体系功用无法线性增加。如HP公司发布Superdome效劳器时,曾发布了它与HP其它UNIX效劳器的相对功用值,成果发现,64路CPU的Superdome (NUMA结构)的相对功用值是20,而8路N4000(同享的SMP结构)的相对功用值是6.3。从这个成果能够看到,8倍数量的CPU换来的仅仅3倍功用的提高。


MPP(Massive Parallel Processing) 由多个SMP效劳器经过必定的节点互联网络进行衔接,协同作业,完结相同的使命,从用户的视点来看是一个效劳器体系。其基本特征是由多个SMP效劳器(每个SMP效劳器称节点)经过节点互联网络衔接而成,每个节点只拜访自己的本地资源(内存、存储等),是一种完全无同享(Share Nothing)结构,因而扩展才能最好,理论上其扩展无约束,现在的技能可完结512个节点互联,数千个CPU。现在业界对节点互联网络暂无规范,如 NCR的Bynet,IBM的SPSwitch,它们都选用了不同的内部完结机制。但节点互联网仅供MPP效劳器内部运用,对用户而言是通明的。

在MPP体系中,每个SMP节点也能够运转自己的操作体系、数据库等。但和NUMA不同的是,它不存在异地内存拜访的问题。换言之,每个节点内的CPU不能拜访另一个节点的内存。节点之间的信息交互是经过节点互联网络完结的,这个进程一般称为数据重分配(Data Redistribution)。

可是MPP效劳器需求一种杂乱的机制来调度和平衡各个节点的负载和并行处理进程。现在一些依据MPP技能的效劳器往往经过体系级软件(如数据库)来屏蔽这种杂乱性。举例来说,NCR的Teradata就是依据MPP技能的一个联系数据库软件,依据此数据库来开发运用时,不论后台效劳器由多少个节点组成,开发人员所面临的都是同一个数据库体系,而不需求考虑怎么调度其间某几个节点的负载


一般情况下SMP和NUMA是曩昔人们完结高功用核算的挑选,完结高功用核算的一个要害规范,是能够让作业程序在多个节点并行履行,以取得最快的核算成果,现在咱们更多的是挑选经过MPP架构或一般效劳器组成的群集,以完结高功用核算,针关于并行,从本来独自的硬件层面,延伸到软件层面,经过并行程序和高功用群集体系的结合,以到达高功用核算。



高功用核算群集常见目标


GFLOPS 就是 Giga Floating-point Operations Per Second,即每秒10亿次的浮点运管用


一个 MFLOPS (megaFLOPS) 等于每秒1百万 (=10^6) 次的浮点运算

一个 GFLOPS (gigaFLOPS) 等于每秒10亿 (=10^9) 次的浮点运算

一个 TFLOPS (teraFLOPS) 等于每秒1万亿 (=10^12) 次的浮点运算

一个 PFLOPS (petaFLOPS) 等于每秒1千万亿 (=10^15) 次的浮点运算


Linpack理论峰值核算 = CPU主频 X CPU每个时钟周期履行浮点核算的次数 X 体系中CPU中心数 


是否支撑GPU高功用核算,在浮点运算、并行核算等部分核算方面,GPU能够供给数十倍乃至于上百倍于CPU的功用


高功用核算常见人物


办理节点:担任整个高功用群集的监控,资源分组,资源调度,作业调度,授权操控,体系推送(一般会在头节点装置DHCP,WDS等PXE布置组件,当进行大规模布置的时分,直接pxe引导布置其它核算节点,或结合BMC完结唤醒布置)

核算节点:用于运转作业,这种类型的节点一般不能成为不同类型的节点(即更改人物)

用户拜访节点:作为高功用群集对外的进口,用户登录到这个节点提交作业,一般会有Web,console,api,脚本等接口

存储节点:存储高功用群集发生的数据,或存储高功用群集需求的数据,一般会映射这个节点的NFS,SMB至其它核算节点上

数据库节点:高功用核算群集一般会有一套数据库体系,用于寄存群集作业调度,陈述,确诊等数据,一般会直接运用头节点,或布置长途数据库节点


整个架构中最要害的是办理节点,数据库节点,实践环境中一般会把高功用与高可用结合,针关于办理节点和数据库节点完结高可用。

假如是核算节点坏了,一般情况下办理节点会把它标记为失利,下次分发核算使命扫除该节点,抱负情况下核算节点应该是无状况的,坏了直接新加,核算所需数据来自存储节点。

用户拜访节点,假如完结了门户拜访,能够建立多台,结合负载均衡群集完结高可用


高功用核算常见术语


作业:高功用群集终究会供给给用户门户,操控台,或接口,以供用户向高功用核算群集供给恳求,作业就是你期望让高功用群集履行的核算使命,一般一个作业里边能够包括多个使命,能够规划作业里边不同使命之间的优先次序与关联性

行列:成功提交的作业,会提交到HPC群集头节点,再由头节点依据调度器规矩,调度到适宜的资源分组履行作业,假如其时高功用群集一切资源正在运用,或许有优先级更高的核算正在进行,则新提交的作业将被排队进入行列,直到有核算资源开释

资源分组:经过办理节点能够针关于其时群集内一切的核算节点进行资源分组,将资源由效劳器,转化为核算才能,转化后依照分组核算才能,对运用方进行交给,用户运用时能够挑选,要将作业放到什么样核算才能的资源分组履行,假如该资源分组正忙,则用户作业也会进入行列。


MPI是什么


MPI并不是一种新的开发言语,它是一个界说了能够被C、C++和Fortran程序调用的函数库。这些函数库里边首要触及的是两个进程之间通讯的函数,选用分布式内存模型,MPI是一种音讯传递编程模型,驻留在不同节点上的进程能够经过网络传递音讯彼此通讯,完结进程之间的信息沟通。


简略来说,MPI是一种能够用于不同节点进程之间传递音讯的编程模型,透过MPI咱们能够完结进程等级的跨节点通讯,进而完结并行核算


一个MPI运用程序的履行如下

  1. MPI初始化

  2. 由办理节点将音讯分发给核算节点并行履行

  3. 核算节点履行完结后经过通讯将成果回来给运用程序


除了MPI,还有其它完结并行核算的办法,例如OpenMP,OpenMP经过在节点间同享变量,已到达并行核算作用,以线程作为并行核算粒度,选用同享内存模型


当咱们要将作业提交到高功用群集时,尽管群集具有完结高功用核算的才能,可是假如咱们提交的作业不是并行的,仍然不能完结高功用核算作用,因而也需求考虑怎么让作业并行履行。


经过上面的介绍老王简略为咱们介绍了下高功用核算的一些术语,以及实践运作的形状,我并没有一味介绍高功用核算概念,而是经过比照,举例的方法使咱们更便于了解,构建自己脑中的模型


下面咱们将专心于微软关于HPC的解决方案,微软进入HPC范畴大概是在2003的时分,那时微软第一次推出windows computer cluster server解决方案,进入高功用核算范畴,整个解决方案其时有两部分 ,Windows Server 2003 Compute Cluster Edition和Microsoft Compute Cluster Pack,一个体系版别和一个组件包,事实上中心的高功用核算功用,例如资源分区,作业调度,都是在cluster pack中,Computer Cluster edition仅是一个经过优化的操作体系版别,到了2008年代也是如此,2008年代改叫HPC server和hpc pack。从2012开端,微软现已不再发行hpc server体系版别,hpc pack能够直接在规范版,数据中心版OS运转,最终发行computer cluster版别原因其时的OS还不能和硬件很好的感知,例如RDMA,ODX等功用,2012开端这些都现已完美的内嵌在Server版别中。


最新的hpc pack版别是 hpc pack 2016 ,经过hpc pack能够协助咱们装备hpc解决方案所需求的人物,供给办理hpc群集的东西


微软HPC解决方案的人物如下,以最新hpc 2016为例


头节点:担任整个高功用群集的监控,资源分组,资源调度,作业调度,体系推送(hpc pack将主动为头点装置dhcp,wds)

核算节点:用于运转作业,这种类型的节点一般不能成为不同类型的节点(即更改人物)

署理节点:Windows Communication Foundation(WCF)署理节点用于将WCF调用从面向效劳的体系结构(SOA)客户端路由到在群会集的节点上运转的SOA效劳,这种类型的节点能够在不从头布置的情况下将人物更改为核算节点

作业站节点和非保管效劳器节点 :作业站节点和非保管效劳器节点是安排中的核算机,它们也能够运转作业,但它们不是专用的群集资源。他们能够安排在特定时刻运转作业,也能够按需供给。这种类型的节点不能更改人物

Microsoft Azure Paas节点: 假如您有Microsoft Azure订阅,则能够依据需求增加Azure节点,以便在需求时增加群集容量。与核算节点,作业站节点和非保管效劳器节点相同,Azure节点也能够运转作业。增加Azure节点时,还能够在Azure布置中装备固定或可变数量的署理节点,以便完结本地头节点和Azure节点之间的通讯。

Microsoft Azure IaaS节点:假如您具有Microsoft Azure订阅,则能够依据需求增加Microsoft Azure IaaS节点,以便在需求时增加群集容量


hpc pack 2012 - 2016重要功用更新


1.HPC Pack 2016支撑核算节点作业组布置

2.HPC Pack 2012 R2 Update 2支撑Azure linux核算节点布置

3.HPC Pack 2012 R2 Update 3支撑本地linux核算节点布置

4.HPC Pack 2012 R2 Update 3 支撑Windows核算节点的GPU

5.HPC Pack 2012 R2 Update 3 中Linux节点的办理和调度体会类似于咱们现已支撑的Windows节点,能够看到Linux节点的热图,运用特定于Linux节点的cmdlet创立作业,监督作业,使命和节点状况等,Linux节点开端支撑便当的东西clusrun


hpc pack头节点布置要求


操作体系:Windows Server 2016,Windows Server 2012 R2,头节点有必要参加域

SQL Server:默许情况下hpc pack会直接在头节点本机装置一个sql express,并主动装备数据库,也能够运用长途数据库实例,支撑数据库群集或alwayson

.net framework:要求4.6.1或更高版别,Windows Server 2016自带,Windows Server 2012 R2需独自装置,在HPC pack装置文件DotNetFramework目录有装置包,2012R2装置前还需按次序装置KB2919442,KB2919355补丁

其它必备组件会由hpc pack主动装置


hpc pack 数据库列表


HPCManagement : 群集办理信息

HPCScheduler:作业调度

HPCReporting:群集陈述

HPCDiagnostics:群集确诊

HPCMonitoring:群集监控数据


如需进行数据库优化请参阅链接,适用于hpc pack 2012 2012R2 2016

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/hpc-server-2012-R2-and-2012/hh407109(v=ws.11)



微软HPC群集网络人物如下

企业网络企业安排网络,用于衔接到企业内部根底架构效劳器,如AD,并需求接入用户网络,用户会将作业经过该网络提交至头节点,而且在某些情况下衔接到群会集的其他节点,除非专用网络和运用网络也衔接群集节点,不然一切群集内办理和布置流量都将在企业网络中进行
专用网络承载节点间群集内通讯的专用网络。假如不存在运用网络,则专用网络包括办理,布置和运用程序通讯
运用网络
专用网络,最好具有高带宽和低推迟。此网络一般仅用于群集节点之间的并行音讯传递接口(MPI)运用程序通讯。


详细HPC网络拓扑规划请参阅https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/hpc-server-2012-R2-and-2012/ff919486(v=ws.11)



实作环境介绍


08dc :10.0.0.2 255.0.0.0

hpc-headnode

企业网络10.0.0.9 255.0.0.0 

专用网络18.0.0.1 255.0.0.0


hpc pack 2016下载地址 https://www.microsoft.com/en-us/download/details.aspx?id=56360


下载完结后在头节点翻开如下,点击新建装置或将新功用增加到现有装置 

  • 支撑资源分组,默许选用节点组方法进行分组,也能够选用资源池方法进行资源分组

  • 支撑群集节点状况,功用,日志监控

  • 支撑作业调度,使命调度,支撑手动操控使命或作业履行

  • 支撑作业组节点作为核算才能

  • 支撑经过API/CMD/Powershell/Console/portal等方法提交作业

  • 支撑履行MPI,MS-MPI是为Windows开发的音讯传递接口(MPI)的Microsoft完结,它答应MPI运用程序在HPC群集上作为使命运转

  • 选用作业模板作为高功用核算群集效劳质量限制,能够在作业模板中限制经过此模板履行的作业优先级,能够运用的处理器,节点组,内存,以及能够运用此作业模板恳求作业的权限,办理员能够经过创立不同的作业模板,结合节点组,用户组来对需求不同质量效劳的用户进行分类

  • 选用节点模板作为增加节点基线,经过装备节点模板,让各新增加的节点契合基线后参加高功用群集,也能够经过在节点模板中封装操作体系 驱动 软件,完结经过头节点PXE批量引导布置核算节点

  • 和微软其它组件整合,运用Exchange效劳器作为邮件告诉,运用SCOM,OMS作为群集监控,运用***S/SSAS/PowerBI装备剖析报表,头节点支撑WSFC布置,数据库支撑Always On或WSFC布置,核算节点支撑Azure Paas或Iaas方法布置,授权能够运用AD或AzureAD,使命作业目录能够是映射到各结算节点的NFS/SMB网盘,背面能够来自于S2D,传统文件效劳器群集或经过2016存储仿制的UNC途径。


  • 微软HPC群集能够提交的作业类型


    MPI作业:能够挑选新建作业或新建单使命作业来创立MPI作业,关于运转MPI运用程序的使命,使命指令有必要以mpiexec最初:因而,并行使命指令有必要选用以下格局:mpiexec [mpi_options] <myapp.exe> [arguments],其间myapp.exe是要运转的运用程序的称号,关于并行使命,Windows HPC Server 2008开端包括依据阿贡国家实验室MPICH2规范的MPI软件包。微软的MPI完结(称为MS-MPI)包括发动程序mpiexec,每个节点的MPI效劳以及用于开发用户运用程序的软件开发东西包(SDK)


    参数扫描作业:

    参数化扫描作业由同一运用程序的多个实例组成,一般是串行运用程序,并行运转,输入由输入文件供给,输出指向输出文件。输入和输出一般是一组索引文件(例如,input1,input2,input3 ...,output1,output2,output3 ...),它们设置为坐落单个共用文件夹或独自的共用文件夹中。使命之间没有沟通或彼此依存联系。这些使命或许并行也或许不会并行运转,详细取决于作业运转时群集上可用的资源。


    使命流程作业


    在使命流作业中,一组不同的使命依照规则的次序运转,一般是因为一个使命取决于另一个使命的成果。作业能够包括许多使命,其间一些是参数化的,一些是串行的,还有一些是并行的。例如,您能够创立一个由MPI和参数化使命组成的使命流作业。您能够经过界说使命之间的依靠联系来断定运转使命的次序。


    下图说明晰使命流作业:

  • 作业一切者或群集办理员撤销该使命。

  • HPC作业方案程序效劳撤销了一项使命,因为它已超越其最大运转时刻。

  • HPC作业方案程序效劳抢占未标记为可从头运转的使命。

  • HPC作业方案程序效劳抢先发动以每个资源为根底发动的子使命(节点预备,节点发布和效劳子使命)。

  • 假如某个作业或使命因为群集毛病而无法发动,则该作业或使命会在标记为失利之前主动重试指定次数。

    Canceling:作业或使命被撤销,整理作业正在进行中

    Canceled:作业已被作业一切者,群集办理员或HPC作业方案程序效劳撤销。例如,HPC作业方案程序效劳能够撤销作业,假如超越其运转时或作业被抢占。作业一切者或群集办理员在开端运转之前已撤销该使命。假如正在运转的使命被撤销,则该使命被标记为失利。



    用户经过客户端提交作业


    HPC pack 2016 客户端装置需求

    操作体系:Windows Server 2016,Windows Server 2012 R2,Windows Server 2012,Windows Server 2008 R2 SP1,Windows 10,Windows 8.1,Windows 8,Windows 7 SP1,支撑参加域客户端或作业组

    .net framework:要求4.6.1或更高版别,Windows Server 2016,Windows 10 自带,其它操作体系需独自装置,在HPC pack装置文件DotNetFramework目录有装置包,win8,2012R2装置前还需按次序装置KB2919442,KB2919355补丁,win7sp1,2008R2sp1不需求装置补丁


    复制装置文件包至客户端,或放在网络途径,敞开装置导游,挑选仅装置客户端实用东西

    2018-04-21_223047.png

    总结:经过本文老王为咱们介绍了高功用核算概念,微软关于高功用核算的解决方案,产品的介绍,概念,群集创立,以及群集常用设置,一遍走下来看,老王认为微软的HPC群集尽管或许在业界并不是功用最好的,可是它也有它的优势,例如和本身产品整合亲近,不需求装置多个功用完结HPC,只需求装置一个hpc pack即可,HPC该有的功用相对齐备,假如不拿手linux指令的朋友,也能够测验下运用微软GUI的方法构建HPC群集,期望能够为感兴趣的朋友带来收成,假如有问题欢迎与老王沟通


    版权声明
    本文来源于网络,版权归原作者所有,其内容与观点不代表超凡娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

    猜您喜欢的文章

    阅读排行

  • 1

    LINUX—rsync(跨渠道)ITeye

    文件,指定,效劳
  • 2

    Chubby翻译ITeye

    一个,效劳,客户端
  • 3

    ubuntu 增加 qqITeye

    运转,假如,装置
  • 4

    Mplayer有声响有图画ITeye

    声响,图画,可是
  • 5

    gcc新手入门ITeye

    文件,编译,程序
  • 6
  • 7

    浅谈https\ssl\数字证书(2)ITeye

    证书,数字证书,客户端
  • 8

    浅谈https\ssl\数字证书 1ITeye

    加密,证书,数字证书
  • 9
  • 10