龚道永 宋长明 刘沙 漆锋滨
摘 要:针对超级计算机系统中网络引导时间开销大的问题,提出网络引导分布算法是影响网络引导性能的主要因素之一,是优化网络引导性能的主要方向的观点。首先,分析了影响大规模网络引导性能的主要因素;其次,结合一种典型超级计算机系统,分析了超节点循环分布算法(SCDA)和插件循环分布算法(BCDA)的網络引导数据流拓扑结构;最后,量化分析了这两种算法对各个网络路径段的压力和可获得的网络性能,发现BCDA性能是SCDA性能的1~20倍。通过理论分析和模型推导发现,在计算节点和引导服务器之间使用更细粒度的映射算法可以在引导部分资源时使用尽量多的引导服务器,减少对局部网络资源的过早竞争,提升网络引导性能。
关键词:超级计算机;插件板;超节点;网络引导开销;全路径最小带宽;网络引导分布算法
中图分类号: TP338.6并行计算机
文献标志码:A
Abstract: Since the network booting time overhead is high in supercomputer system, the idea that the network boot distribution algorithm is one of the main factors affecting the network boot performance and the main direction of optimizing network boot performance was proposed. Firstly, the main factors affecting large-scale network boot performance were analyzed. Secondly, combined with a typical supercomputer system, the network boot data flow topologies of Supernode Cyclic Distribution Algorithm (SCDA) and Board Cyclic Distribution Algorithm (BCDA) were analyzed. Finally, the pressure of above two algorithms on each network path branch and the available network performance were quantitatively analyzed. It can be seen that the bandwidth performance of BCDA is 1—20 times of that of SCDA. Theoretical analysis and model deduction show that the finer-grained mapping algorithm between compute nodes and boot servers can make as many boot servers as possible be used while boot some resources, reducing the premature competition for partial network resources and improving network boot performance.
Key words: supercomputer; board; supernode; network boot overhead; full path minimum bandwidth; network boot distribution algorithm
0 引言
当前,超级计算机的应用日趋广泛,在国民经济中发挥着越来越重要的作用[1]。超级计算机系统在使用前需要将操作系统、系统服务、配置参数等软件环境加载到CPU上启动运行后才能使用,主要部署方法有硬盘加载、光驱加载、USB加载、网络加载等。超级计算机的主机基本都是无盘环境,配置了具有较高性能的内部网络,因此网络引导正成为大规模系统必不可少的一种管理技术[2]。在网络引导方法中,Red Hat开发的KickStart技术[3]可以实现全自动化的无人值守安装部署,预启动执行环境(Preboot eXecution Environment, PXE)技术[4]可以实现网络启动,再加上普通文件传输协议(Trivial File Transfer Protocol, TFTP)[5]、动态配置协议(Dynamic Host Configuration Protocol, DHCP)[6]、网络文件系统(Network File System, NFS)[7]等软件技术,就可以实现快捷的大规模部署。人们日益关注网络引导协议与开销的研究[8-10],研究还发现,网络引导开销随系统规模的增大而增加[11],对相同的系统来说,不同网络引导算法的开销可能相差数十倍,网络引导分布算法在大规模系统网络引导中扮演着日益重要的地位[12]。
超算系统中引导服务器的数量(N)远小于需网络引导的计算节点个数(M,即N 1 引导网络拓扑结构 1.1 网络加载均衡性分析 超级计算机计算节点网络引导过程中,每个计算节点都根据网络分布算法,通过网络从对应引导服务器上远程加载操作系统及其软件环境(若干个文件)。批量计算资源网络引导加载时,不同计算节点的网络引导路径是不同的,此时引导最慢的计算节点就是该次批量引导的性能瓶颈。为均衡系统中各个部分的引导性能,通常会为一定拓扑的计算系统配置相同个数的引导服务器,结合常用的引导模式,来尽量均衡并优化网络引导的性能,从而实现各个计算单元引导能力的均衡化,避免产生短板效应。 1.2 影响网络加载性能的主要因素 系统网络引导的开销主要取决于以下5个主要因素:1)网络引导所使用网络路径的物理带宽。批量资源引导时,不同网络路径段可能有不同的资源来竞争和分配网络带宽,经过算法分配后,在各个网络路径段的最小均分带宽才是批量引导的带宽。2)批量引导的资源数量。批量引导资源越多,越容易产生网络拥堵和带宽竞争现象,单点分配的带宽也就越低。3)批量引导资源的拓扑关系。大规模系统往往采用层次化网络结构,资源的网络连接存在一定的拓扑结构,引导同一网络拓扑内的批量资源,其必然产生该网络拓扑内的带宽竞争。4)批量引导的网络分布算法。通过网络引导的分布式算法可以控制网络引导批量计算资源时在各个网络路径上的竞争与分配关系,均衡不同网络路径上的平均带宽分配,减小木桶效应中长板与短板的剪刀差,优化批量资源引导的开销。5)网络引导的文件大小。在带宽固定的情况下,引导时间与文件大小成正比关系。当系统设计组装完成后,前3个因素就已经全部确定,最后只能通过优化文件大小和调整网络引导的软件分布算法优化性能。本文主要研究前4个因素。 1.3 某国产超算系统的网络引导结构 某国产超算系统网络引导物理连接关系拓扑结构如图1所示。 系统由若干个计算机仓组成,每个机仓包含4个超节点,每个超节点由32个插件和1个超节点交换机(SwitchSuperNode)组成,每个插件包含8个CPU(缩写为C)和1个插件内交换机(SwitchBoard)。假设系统中引导服务器个数为NBootServ,插件板(Board,下文缩写为bd)个数为NBoard,超节点个数为NSuperNode。每台外围级联以太交换机连接多个兼职的引导服务器,每个级联交换机连接20台引导服务器,级联交换机上的剩余端口用于其他网络服务,如此,每个引导服务器在级联交换机的上行端口上可分配的理论带宽与下行网络的带宽完全匹配。 CPU的网络引导过程,从计算节点到引导服务器上,要经历5个不同的网络,其带宽和功能如下:N1(千兆网),计算节点到插件内交换芯片的千兆网络;N2(千兆网),插件内Switch到超节点以太交换机的千兆网络;N3(双万兆网),超节点以太交换机到系统核心交换机的双万兆聚合网络;N4(双万兆网),系统核心交换机到外围级联交换机的双万兆聚合网络;N5(千兆网),引导服务器到外围级联交换机的千兆网络。 系统中每个超节点对应1台引导服务器。系统超节点个数与引导服务器的个数相同,即平均每个超节点1台。每20台引导服务器通过1台外围级联交换机聚合连接到核心交换机,共8台级联交换机。每个外围级联交换机的下行端口带宽为1000(本文所述带宽单位均为Mb/s,下同),上行端口聚合后带宽为20×1000。同一个超节点内同时引导的计算节点越多,其每个插件(CPU)在上行端口上分配到的理论带宽就越低。 同时引导连续的批量资源时,任何一种算法下每个CPU的引导都要经过从N1到N5的所有路径,因此每个CPU的实际理论带宽是各段路径上理论带宽的最小值,比较最小带宽才有意义。因此每个CPU实际能分配到的理论带宽为BW全路径最小带宽=min(BWN1,BWN2,BWN3,BWN4,BWN5) 。本文最大推导了系统扩展到160个超节点时的情况。 2 两种网络引导分布算法 基于所分析目标系统的结构化特征,本文重点分析超节点循环分布算法(Supernode Cyclic Distribution Algorithm, SCDA)和插件循环分布算法(Board Cyclic Distribution Algorithm, BCDA),它们都是块分布算法,其区别在于块大小分别是超节点和插件。 2.1 超节点循环分布算法 超节点循环分布算法,是指计算系统以超节点为单位循环分布对应各引导服务器。SCDA计算节点与引导服务器逻辑映射关系如图2所示。超节点与引導服务器的对应关系为:SuperNode0→BootServ0,SuperNode1→BootServ1,…,SuperNoden-1→BootServn-1。 此时计算系统以超节点为单位循环对应1台引导服务器,一个超节点内的所有计算资源都对应一台引导服务器。当NSuperNode≤NBootServ时,每个超节点可确保使用一台独立的引导服务器;当NSuperNode>NBootServ时,则存在1台引导服务器服务多个超节点的情况。在大批量资源网络引导时,引导最慢的资源成为瓶颈,为均衡系统中各个部分的引导性能,通常为每个超节点配置相同数量的引导服务器。超节点循环分布就相当于块大小为32的插件块循环分布模式。 超节点循环分布算法下,每个CPU独占一条N1路径,每个插件的资源竞争一条N2路径,每个超节点内的资源竞争一条N3路径,每20个连续的超节点竞争一条N4路径,每个超节点内的资源竞争一条N5路径。同时引导不同规模的连续计算资源时,每个CPU在对应各网络路径上所能分配到的理论带宽及全路径最小理论带宽如表1所示。 引导单个CPU时不存在竞争关系,全路径最小理论带宽为BW=1000;引导一个超节点内的N(N≥1)个插件时,单CPU获得的全路径最小理论带宽为BW=1000/(8×N),此时对N1、N2的竞争已经达到最大化;引导一个完整超节点时,本次引导对本超节点对应的N1、N2、N3的竞争已经达到最大化,对应N5的竞争也达到了最大化,每个CPU获得的全路径最小理论带宽为BW=1000/256;引导超过一个完整超节点的连续计算资源,不同超节点的引导服务器不同,一个完整超节点对应一组N1、N2、N3、N5路径,已经达到最大化竞争且与其他超节点无关。多超节点引导时,超节点之间不存在对同一组N1、N2、N3、N5的竞争,只存在对公共N4路径的竞争,因此多超节点批量引导获得的全路径最小理论带宽等同于引导一个完整超节点的带宽,即BW全路径最小带宽=1000/256。 2.2 插件循环分布算法 插件循环分布模式下,计算系统以插件为单位循环对应1台引导服务器,BCDA计算节点与引导服务器逻辑映射关系如图3所示。 当Nboard≤NBootServ时,每个插件可确保独占一台引导服务器;当Nboard>NBootServ时,存在1台引导服务器为多个插件提供引导服务的情况。考虑到系统中插件板个数很多,为每个插件配备独立的引导服务器,代价过高,所以普遍情况是多个插件对应1个引导服务器。 插件循环分布算法下,每个CPU独占一条N1路径,每个插件竞争一条N2路径,每个超节点内的所有插件竞争一条N3路径,但均分到32个引导服务器上(即32条N4路径),每5个连续超节点均分到所有的160台引导服务器(即平均竞争8条N4路径);对应同一台引导服务器的来源于不同超节点的32个插件则竞争一个N5路径。 使用插件循环分布算法时,同时引导不同规模的连续计算资源,每个CPU在对应各网络路径上所能分配到的理论带宽及全路径最小理论带宽如表2所示。 引导单个CPU时,不存在竞争关系,CPU获得的全路径最小理论带宽为BW=1000;引导一个超节点内连续的N(N≤20)个插件时,每个CPU获得的全路径最小带宽为BW=1000/8,此时N2、N5路径成为瓶颈;引导超节点内连续的N个计算插件(20 3 网络引导开销分析 3.1 两种算法下的网络引导开销 超级计算机的映像文件通常都有定制化特征,占用空间较小。以某国产超算系统为例,经过定制优化和压缩后,待网络引导的文件大小约为50MB(文中计算引导开销都是这个大小为基础进行计算),针对最大扩展到160个超节点,使用160台引导服务器的情况,可计算出两种不同引导算法下几种典型连续批量资源的引导开销,如表3所示。超节点循环分布算法时,引导一个超节点内的部分资源时,引导开销与资源规模成正比,完整超节点时引导开销已经最大化,从满超节点到整机规模,引导加载开销一直维持在最大开销。插件循环分布算法时,1~20个插件时,加载开销相同,21个插件~1.25个机仓时,开销微幅增加,大于1.25个机仓时,开销与批量引导的资源规模成正比关系。 3.2 两种算法下的网络引导带宽 根据表1~2,进一步研究两种循环分布算法下网络引导的理论带宽,可以推导出在不同批量引导规模下,两种算法在N1、N2、N3、N4、N5等各个网络路径段的理论带宽、各自全路径的最小理论带宽以及最小带宽对比数据。 在超节点循环分布算法下,N1路径的带宽始终为1000,N2路径上带宽始终为125,N3路径的带宽随插件个数的增加而降低,从1个到32个插件时,带宽从2500逐步降低到78.13,大于32个插件时维持在78.13;N4路径的带宽规律与N3类似,从1个插件到5个机仓时,带宽从2500逐步降低到3.91,大于5机仓时维持在3.91,在1~32个插件时与N3的带宽相同;N5路径在1~32个插件时的带宽是相同规模下N3带宽的1/20,即1~32插件时带宽为125~3.91,大于5个机仓时,带宽维持在3.91。可见N5始终是网络引导加载的性能瓶颈。规模大于5个连续满机仓时,N4性能与N5性能相同,网络竞争都达到最大化,成为性能瓶颈。该算法下,提升N4、N5尤其是N5的带宽(即引导服务器的上网带宽)是降低开销、提升带宽的有效方法,具体可通过多网卡捆绑、升级万兆网卡等手段实现。 插件循环分布算法下,N1路径的带宽始终为1000,N2路径上带宽始终为125,N3路径的带宽随插件个数的增加而降低,从1个到32个插件时,带宽从2500逐步降低到78.13,大于32个插件时维持在78.13;N4路径的带宽在1~20个插件时与N3相同,从2500逐步降低到125,从21个插件到1.25个机仓时,带宽均为125,从2.5个机仓到整机,带宽从62.5逐步降低到3.91;N5路径在1个插件到1.25个机仓,带宽均为125,从2.5机仓到整机,带宽和相同规模下N4的带宽相同,即從62.5逐步降低到3.91。可见:1~20个插件时,N2、N5同时成为性能瓶颈;21插件~1.25机仓时,N3成为瓶颈,且与其他路径的差异并不大;大于2.5机仓时,N4、N5同时成为瓶颈,且引导带宽随批量引导资源规模的增大而降低,至整机规模时带宽最低。该算法下,系统将批量引导产生的网络数据流量均衡到了各个网络路径段上,减少了不同资源同时引导产生的网络竞争冲突。 4 网络引导加载的性能优化方法 大规模系统映像网络引导性能是影响系统软环境部署性能的关键一环,快速引导对用户环境构建十分重要。研究影响网络引导开销的主要因素可以发现,在网络引导映像文件大小固定的前提下,网络物理带宽、各段网络带宽的均衡性、网络引导分布式算法等是决定批量资源网络引导性能的关键因素。 1)网络物理带宽。网络引导所用网络路径的物理带宽是影响网络开销的决定性因素,提高物理带宽的主要方法有:①配置高带宽交换机,以提高网络通路的物理带宽;②增加网络引导服务器的数量、配置高带宽网卡等,以提升引导服务的上网带宽。该方法需要较高的成本。 2)各段网络带宽的均衡性。引导批量资源所经过的各网络路径段的性能匹配十分关键,因为实际有效带宽是全路径各网络段的最小带宽,因此必须高度重视各段网络性能的匹配性设计,避免产生网络性能瓶颈,提升容易产生性能瓶颈的网络段最低带宽,降低全路径带宽设计中的木桶效应,才能最大化系统投入的产出。该方法成本较低。 3)批量资源网络引导的分布算法。在多层次网络中,可通过网络引导分布式算法控制批量资源引导时网络数据包在各网络路径段的数据流量,优化对各段网络的使用,均衡在各个网络路径段的流量负载和带宽分配,减少局部网络竞争,减小木桶效应中长板与短板的剪刀差,从而降低批量资源引导的开销。该方法不增加系统的成本,只通过改变对网络资源的使用方法来实现。 总体来说,网络引导服务器的数量十分有限,而所有计算资源的网络引导最终都要通过引导服务器的网卡来提供服务,虽然可以通过算法将局部引导的网络流量分布到尽可能多的引导服务器上,但在批量引导大规模资源时,引导服务器的负载仍然成为焦点,成为制约网络引导性能的最大瓶颈,对某国产超算系统在上述两种算法的分析也说明了这一点。这也正说明了全路径网络性能均衡设计的重要性,否则,再高的网络局部性能也难以发挥应有的作用。 5 结语 本文详细分析了一种确定网络结构大规模系统的网络引导算法,研究了影响网络引导性能的主要因素,对两种算法进行了量化对比分析,并对优化网络引导性能的主要方法进行了总结。在设计引导分布算法时,在计算节点和引导服务器之间使用更细粒度的映射算法,可以在引导部分资源时使用尽量多的引导服务器,减少对局部网络资源的过早竞争,提升网络引导性能。虽然不同网络结构下的批量网络引导性能可能会呈现出不同的规律,但都可以进行相应的量化分析研究。对于确定网络结构的系统来说,可以通过合理的网络算法设计、全路径网络带宽均衡配置等方法来优化网络引导性能,以实现经济与性能的综合平衡。事实上,对可变网络结构的系统,也可通过类似方法,分析推算出对应网络结构下的理论带宽和网络竞争情况,这无论对系统网络设计还是网络应用优化都具有一定的指导意义。本文并未对可变网络拓扑结构的系统进行深入研究,也没有对其他引导网络架构的系统进行深入分析,这也是下一步的研究方向。 参考文献 (References) [1] 刘沙,龚道永.超级计算机低功耗技术研究[J].高性能计算技术,2014,227(2):60-67.(LIU S, GONG D Y. Research of lowpower techniques for HPC [J]. Journal of High Performance Computing Technology, 2014, 227(3): 60-67.) [2] 毛樟根,雷鸣.一种MPP系统开工的设计与实现[J].高性能计算技术,2011,210(3):30-34.(MAO Z G, LEI M. A kind of design and practice of MPP system management [J]. Journal of High Performance Computing Technology, 2011, 210(3): 30-34.) [3] Red Hat Company. The Red Hat kickstart installation method [EB/OL]. [2018-10-20]. http://fedoraproject.org/wiki/Anaconda/Kickstart. [4] Intel Corporation. Preboot Execution Environment (PXE) specification version 2.1 [EB/OL]. [2018-10-20]. http://www.pix.net/software/pxeboot/archive/pxespec.pdf. [5] RFC 1350. The TFTP protocol (revision 2) [S/OL]. [2018-10-20]. http://www.rfc-editor.org/info/rfc1350. [6] RFC 2131. Dynamic host configuration protocol [S/OL]. [2018-10-20]. http://www.rfc-editor.org/info/rfc2131. [7] RFC 3530. Network File System (NFS) version 4 protocol [S/OL].[2018-10-20]. http://www.rfc-editor.org/info/rfc3530. [8] 刘青昆,阴元友,郑晓薇,等.基于KickStart 的Linux 网络安装新模型[J].計算机工程,2008,34( 21):103-105.(LIU Q K, YIN Y Y, ZHENG X W, et al. New model to Linux network installation based on Kickstart [J]. Computer Engineering, 2008, 34(21): 103-105.) [9] 顾梦非,徐炜民.一个基于Linux 的集群部署方案[J].计算机应用与软件,2008,25(1):102-104.(GU M F, XU W M. A deployment system for clusters based on Linux [J]. Computer Applications and Software, 2008, 25(1): 102-104.) [10] 李怀刚,邱建新.网络安装Linux 的技术原理分析及实现[J].计算机应用与软件,2006,23(9):109-111.(LI H G, QIU J X. The realization and principle of Linuxs install through network [J]. Computer Applications and Software, 2006, 23(9): 109-111.) [11] 王春耕,付金辉,朱建涛.大规模集群系统中基于Image的系统安装[J].高性能计算技术,2007,187(4):44-48.(WANG C G, FU J H, ZHU J T. Installation of operating system based on image in large scale cluster system [J]. Journal of High Performance Computing Technology, 2007, 187(4): 44-48.) [12] 周虎廷,罗茂盛,周达民.集群计算机系统部署分析与研究[J].高性能计算技术,2013,223(4):56-59.(ZHOU H T, LUO M S, ZHOU D M. Analysis and research of the deployment of cluster computer system [J]. Journal of High Performance Computing Technology, 2013, 223(4): 56-59.) [13] HENDRIKS E A, MINNICH R G, CHOI S, et al. Pink: a 1024-node single-system image Linux cluster [C]// Proceedings of the 2004 International Conference on High Performance Computing and Grid in Asia Pacific Region. Piscataway, NJ: IEEE, 2004: 454-461. [14] NGUYEN T L, LEBRE A. Virtual machine boot time model [C]// Proceedings of the 25th Euromicro International Conference on Parallel, Distributed and Network-based Processing. Piscataway, NJ: IEEE, 2017: 430-437. [15] 董小社,孫发龙,李纪云,等.基于映像的集群部署系统设计与实现[J].计算机工程,2005,31(24):132-134.(DONG X S, SUN F L, LI J Y, et al. Design and implementation of image based cluster deployment system [J]. Computer Engineering, 2005, 31(24): 132-134.)