一种基于LBM的处理器节点分配计算方法、存储介质及终端设备与流程

文档序号:18564993发布日期:2019-08-30 23:58阅读:322来源:国知局
一种基于LBM的处理器节点分配计算方法、存储介质及终端设备与流程

本发明涉及一种处理器内部计算资源分配计算方法,尤其涉及一种基于lbm的处理器模型规模和计算资源的节点分配计算方法、存储介质及终端设备。



背景技术:

多核处理器从结构上可分为同构多核处理器和异构众核处理器。异构众核处理器内部包含主核和从核,主核进行通用的控制通信操作,从核进行密集的运算操作。由于异构众核处理器中的从核逻辑更简单,在相同工艺下,可集成的核心更多,可更好地提升计算性能。异构众核处理器中主核和从核的功能不同,从核计算性能、核组内从核间通信性能、跨核组从核间通信性能各不相同。用户需要计算的模型规模,以及可提供给用户的计算资源(以核组为单位)也各不相同。

目前更多的是根据应用模型规模和计算资源凭借设计者经验将模型中的节点分配到各个从核计算资源中再辅助以测试,可能会找到一种比较优化的资源分配方式,但是该方式需要很丰富的设计经验,并且也不一定能够找到比较优化的分配方案,为了测试各备选方案的性能,需要实现各备选方案,测试筛选成本非常高。

所以,如何在某个确定应用模型规模和计算资源的前提下,将模型中的节点分配到各个从核中,让各个从核负载比较均衡,计算和通信能够尽量并行,从而达到最快的运算速度是一个很难的问题。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种基于lbm的处理器节点分配计算方法、存储介质以及终端设备,解决了现有技术lbm在异构众核处理器26010上负载平衡困难的问题。

本发明的目的是通过以下技术方案来实现的:一种基于lbm的处理器节点分配计算方法,所述节点分配计算方法包括以下内容:

输入应用模型规模和可用计算资源数量;

通过区域分割方式遍历查找到最优的资源分配方式。

所述在输入应用模型规模和可用计算资源数量之前还需要测试计算出模型的几个基本速度值大小;所述几个基本速度值包括每个节点的平均计算速度calv,每个节点信息向从核外传递的通信速度coreoutcomv,每个节点信息向从核内传递的通信速度coreincomv和每个节点信息进行核组间的通信速度grpcomv。

测试计算出模型的几个基本速度值大小包括以下内容:

将n个节点信息以及其周围的节点信息预存到一个从核的缓存中;

计算n个节点与周围节点的交互作用,并更新这n个节点的信息,得到一个时间值,用该时间值除以n,得到每个节点的平均计算时间,即计算速度为calv;

统计一个从核将缓存内的n个节点信息传递到主存中的时间值,并用该时间值除以n,得到每个节点信息向从核外传递的通信速度coreoutcomv;

统计一个从核从主存中读取n个节点信息到缓存中的时间值,并用该时间值除以n,得到每个节点信息向从核内传递的通信速度coreincomv;

统计一个主核向其他主核传递n个节点信息的时间值,并用该时间值除以n,得到每个节点信息进行核组间的通信速度grpcomv。

为方便分割模型在三维空间内每个从核负责节点区域设置为长方体或者正方体形状,同核组内所有从核的节点区域组成的核组区域设置为长方体或正方体形状。

所述通过区域分割方式遍历查找到最优的资源分配方式包括以下内容:

遍历每个从核负责不同节点数量和区域的情况,在此基础上调用遍历核组的组合情况;

在从核负责节点的分布确定的情况下,遍历每个核组的分布情况;

根据从核负责的节点分布,核组内从核的分布,得到某个资源组合情况;

根据从核的计算速度calv、核组内从核间的通信速度coreoutcomv和coreincomv、以及跨核组从核间的通信速度grpcomv计算得到按照该种资源组合进行一次迭代需要耗费的总时间;

重复上述步骤统计出所有资源组合情况需要耗费的总时间,得到耗时最小的最优资源分配方式。

所述遍历每个核组的分布情况包括提前排除不符合要求的组合情况的步骤,以减少得到最优资源分配方式的运行计算时间。

所述提前排除不符合要求的组合情况的步骤包括判断从核负责节点数是否不达标判断是否需要提前剔除,判断核组负责区域在某个维度上的节点数是否超标判断出是否需要提前剔除,以及判断核组负责区域占用的核组资源是否超过系统提供的核组资源判断是否需要提前剔除。

所述节点分配计算方法还包括在判断出所述最优资源分配方式不满足要求时重复所述输入系统的模型规模和计算资源数量步骤和所述遍历查找到最优的资源分配方式步骤,直到得到满足要求的最优资源分配方式。

一种存储介质,其上存储有至少一个计算机可执行指令,所述计算机可执行指令运行时执行所述的一种基于lbm的处理器节点分配计算方法的步骤。

一种终端设备,包括至少一个存储器和至少一个处理器,所述存储器上存储有至少一个可在所述处理器上运行的计算机可执行指令,所述处理器运行计算机可执行指令时执行所述的一种基于lbm的处理器节点分配计算方法的步骤。

本发明的有益效果是:一种基于lbm的处理器节点分配计算方法、存储介质以及终端设备,可以针对一个应用模型,在指定计算资源的情况下,快速、准确地找到一种资源分配方式,让处理器的应用性能达到最大;也可以指定不同的可用计算资源,用户可以在计算资源与性能之间取得一个平衡。

附图说明

图1为lbm的d3q19网格模型图;

图2为本发明的方法流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在本发明的描述中,需要说明的是,术语“上”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。

离散格子玻尔兹曼方法(lbm)是计算流体力学中一个重要方法,有算法简单、能够处理复杂边界条件、并行性高等优点。lbm有d2q9,d3q13,d3q15,d3q19等网格模型,不同的模型对应于不同的计算复杂度和模拟精确度。d3q19网格模型计算复杂度最高,精确度也最高。

如图1所示,以d3q19模型为例,在三维几何空间内,某节点作为中心节点,周围18个节点与之发生碰撞能量交换。假设中心节点在三维坐标系(x,y,z)中坐标为(0,0,0),则18个周围节点坐标分别为(0,0,1),(0,1,1),(0,1,0),(0,1,-1),(0,0,-1),(0,-1,-1),(0,-1,0),(0,-1,1),(1,0,0),(1,0,1),(1,1,0),(1,0,-1),(1,-1,0),(-1,0,0),(-1,0,1),(-1,1,0),(-1,0,-1),(-1,-1,0)。

在d3q19网格模型中,中心节点与周围18个节点存在碰撞作用。中心节点包含19个矢量,分别是保持不动的势能和向其他18个节点方向的势能。在一次迭代周期内,根据中心节点与周围18个节点的势能和方向,计算出周围18个节点对中心节点的作用力,并更新中心节点的势能。依次计算出模型内所有节点与周围18个节点的作用情况并更新节点势能信息。

在模拟分析过程中,为了进行精确的计算模拟,模型规模需要足够大,迭代次数需要足够多,致使计算耗时非常长,以至于有的计算时间长达数月。模拟的精确性和模拟时间的冲突严重制约了lbm相关的应用。提升计算性能成为解决模拟精确性和模拟时间冲突的重要手段。

为了提升计算性能,可从两方面着手:提升cpu工作频率和提高并行度。集成电路发展到pentium4时代,随着工作频率的提升,功耗急剧增加,扇热问题也越来越严重。通过提升工作频率来提升cpu性能已经走不通,转而进行多核并行处理提升计算性能。

多核处理器从结构上可分为同构多核处理器和异构众核处理器。异构众核处理器内部包含主核和从核,主核进行通用的控制通信操作,从核进行密集的运算操作。由于异构众核处理器中的从核逻辑更简单,在相同工艺下,可集成的核心更多,可更好地提升计算性能。国产申威26010众核处理器是一款高性能异构众核处理器,包含4个核组,每个核组包含1个主核和64个从核。

26010众核处理器超算平台的计算资源以核组为单位,各核组中的主核一般用于核组间通信、从核任务分配和从核数据收集,不参与算法运算,算法的高密度计算在从核上进行。

各从核阵列中的从核如果不进行数据交互,不访问主存,只使用缓存中的代码和数据,则可独立并行运行,运行度达到最大。如果核组内的从核间进行数据交互,比较方便快捷的是使用dma读写共享主存的方式。由于每个核组只有一个存控,核组内的64个从核发起的dma为串行执行,而各核组的存控和主存独立并行工作。所以,程序进行核组内从核间的通信时间为64倍一个从核进行核组内从核间数据通信的时间。

如果某从核与其他核组内的从核进行数据交互,比较方便快捷的是使用mpi异步通信的方式。由于各核组间交互通过无阻塞交叉ib交换机,即任意两核组之间的通信不受第三方核组通信的影响。所以程序进行跨核组从核间的通信时间为一个核组进行跨核组通信的时间。

如图2所示,一种基于lbm的申威26010众核处理器超算平台的节点分配计算方法,所述节点分配计算方法包括以下内容:

s1、输入应用模型规模和可用计算资源数量;

s2、通过区域分割方式遍历查找到最优的资源分配方式。

进一步地,一般模型为长方体,设置在三个维度上的长度分别为modx、mody、modz,模型中有modx*mody*modz个节点,在以次迭代计算中,需要计算出模型中每个节点与周围18个节点的相互作用;对于在模型边缘的节点,按照溢出回绕的方式与模型中相对位置的节点相互作用。

设置一共有maxgrp个核组资源可用,每个核组内有64个从核,共有64*maxgrp个从核计算资源,可能会使用部分或者全部的计算资源;

进一步地,为了进行合理的资源配置,在输入应用模型规模和可用计算资源数量之前还需要测试计算出模型的几个基本速度值大小;所述几个基本速度值包括每个节点的平均计算速度calv,每个节点信息向从核外传递的通信速度coreoutcomv,每个节点信息向从核内传递的通信速度coreincomv和每个节点信息进行核组间的通信速度grpcomv。

测试计算出模型的几个基本速度值大小包括以下内容:

a1、将n个节点信息以及其周围的节点信息预存到一个从核的缓存中;

a2、计算n个节点与周围节点的交互作用,并更新这n个节点的信息,得到一个时间值,用该时间值除以n,得到每个节点的平均计算时间,即计算速度为calv;

a3、统计一个从核通过dma方式将缓存内的n个节点信息传递到主存中的时间值,并用该时间值除以n,得到每个节点信息向从核外传递的通信速度coreoutcomv;

a4、统计一个从核通过dma方式从主存中读取n个节点信息到缓存中的时间值,并用该时间值除以n,得到每个节点信息向从核内传递的通信速度coreincomv;

a5、统计一个主核通过异步mpi方式向其他主核传递n个节点信息的时间值,并用该时间值除以n,得到每个节点信息进行核组间的通信速度grpcomv。

从核计算可并行进行,一次迭代的计算时间为一个从核计算的时间;核组内从核间通信在核组内串行,核组间并行,一次迭代的核组内从核间通信时间为64倍单从核该类型通信时间;跨核组从核间通信为并行操作,一次迭代的跨核组从核间通信时间为单核组该类型通信时间。

为方便分割模型在三维空间内每个从核负责节点区域设置为长方体或者正方体形状,同核组内所有从核的节点区域组成的核组区域设置为长方体或正方体形状。

进一步地,具体确定节点区域形状包括,假设每个从核负责n个节点,缓存中存储了这n个节点的信息,从核依次计算这n个节点中每个节点与它周围18个节点的相互作用,这n个节点所在区域为n。

在考察一个节点a时,与它周围的某个节点b的计算可分为节点b在区域n范围内和在区域n范围外两种情况;第一种情况,节点b在节点a所在区域n范围内,则从核可以直接获取这两个节点的信息,计算他们之间的作用力,再更新这两个节点的信息。第二种情况,节点b不在节点a所在区域n范围内,则需要通过通信,将b的信息传递到该从核中,从核计算这两个节点之间的作用力,更新a节点的信息。同样b所属的从核也要通过通信获取a节点的信息,再计算这两个节点之间的作用力,更新b节点的信息。如果a和b在一个核组范围内,则进行核组内从核间通信,如果a和b跨核组,则进行更慢的跨核组从核间通信。

显而易见的节点a和节点b都在区域n范围内,计算速度最快;进一步地推广,从核负责的n个节点的周围节点应该尽量都在区域n范围内,即区域n的体积固定的情况下,表面积应该尽量小,这样与外部通信的量最少。

根据几何理论,相同体积情况下,球的表面积最小,但多个球形无法很好的分割长方体的模型,会有许多边缘节点无法被分割到某个从核负责的球形区域内,为了在表面积小和便于分割模型之间取得平衡,将从核负责节点区域n设置为一个长方体或者正方体形状,其区域表面积比较小,且能够方便分割模型。

在核组内通信和跨核组通信之间,跨核组通信速度更慢,同理,同核组内的64个从核的节点区域组成的核组区域m也应该设置为一个长方体或者正方体形状,其区域表面积比较小,且能够方便分割模型。

区域表面积,也就是通信量应该包括区域的内表面积和是外表面积。如一个从核或一个核组负责的区域n,在三个维度上分别为x,y,z,其应该将n的内表面积的节点信息传递给其他从核或核组,传递量为2*(x*y+y*z+z*x)。而从核或核组应该从其他从核或核组获取的节点信息数量为外表面积个节点信息,传递量为2*((x+2)*(y+2)+(y+2)*(z+2)+(z+2)*(x+2))。

如果模型在某个维度上由一个从核独占,则从核区域表面积统计中,垂直于该维度的两个表面不纳入统计,即没有该维度上的核组内从核间的通信。同理,如果模型在某个维度上由一个核组独占,则核组区域表面积统计中,垂直于该维度的两个表面不纳入统计,即没有该维度上的跨核组从核间通信。

从核计算为从核独立运行。同核组从核间通信为从核发起dma操作,由dma控制器进行数据搬运,从核检查确认dma操作完成。其中从核进行的操作时间非常短,可忽略不计。跨核组主核间通信为主核发起的异步mpi通信。所以这三个操作可并行执行,一次迭代的总运行时间为三个操作运行时间的最大值。

步骤s2通过区域分割方式遍历查找到最优的资源分配方式包括以下内容:

s21、遍历每个从核负责不同节点数量和区域的情况,在此基础上调用遍历核组的组合情况;

s22、在从核负责节点的分布确定的情况下,遍历每个核组的分布情况;

进一步地,遍历从核负责区域作为外循环,在从核负责的某个区域基础上遍历核组内64个从核的组合情况作为内循环,从而得到一个核组负责区域的组合情况;在此组合情况下在三维上进行核组区域叠加,得到一个核组集区域,让该核组集区域刚好能够覆盖模型区域;在核组区域确定的情况下,核组集区域也唯一确定,资源分配方式也就确定,即可计算找到最小耗时时间。

s23、根据从核负责的节点分布,核组内从核的分布,得到某个资源组合情况;

s24、根据从核的计算速度calv、核组内从核间的通信速度coreoutcomv和coreincomv、以及跨核组从核间的通信速度grpcomv计算得到按照该种资源组合进行一次迭代需要耗费的总时间;

s25、重复上述步骤统计出所有资源组合情况需要耗费的总时间,得到耗时最小的最优资源分配方式。

所述通过区域分割方式遍历查找到最优的资源分配方式还包括提前排除不符合要求的组合情况的步骤,以减少得到最优资源分配方式的运行计算时间。

所述提前排除不符合要求的组合情况的步骤包括判断从核负责节点数是否不达标判断是否需要提前剔除,判断核组负责区域在某个维度上的节点数是否超标判断出是否需要提前剔除,以及判断核组负责区域占用的核组资源是否超过系统提供的核组资源判断是否需要提前剔除。即需要提前剔除从核负责节点数过少(达不到处理最低要求的情况),从而计算资源不够用的情况;提前剔除核组负责区域在某个维度上的节点数过多,造成负责不均衡,耗时增大的情况;以及剔除占用核组数超过计算资源的情况。

进一步地,在内循环遍历出核组负责区域的情况下,根据核组区域的三个维度尺寸提前排除一些组合情况;具体为,若核组负责区域在某个维度上的节点数比模型在该维度上的节点数多,且多的数量大于或者等于该维度上的核组内的从核数,则表示该维度上每个从核至少可少计算一个节点就能够覆盖模型全部;在本组合情况的基础上,每个从核在该维度上减少1个节点的组合情况也可以覆盖整个模型,明显本组合情况比减少1个节点的组合情况的计算时间和通信时间都更多,所以排除本组合这种核组在该维度上节点数超标过多的情况。

具体为:

a、函数traversalcore就是遍历从核负责区域的组合情况,如从{1,1,a}开始,依次为{1,1,a+1},{1,1,a+2}...{1,1,modz},{1,2,b},{1,2,b+1}...{1,2,modz}......{2,1,n}......{2,1,modz}......{modx,mody,modz},根据应用规模和计算资源,每个从核至少要负责minnodepercore个节点,则a为minnodepercore/(1*1),向上取整,即从核负责区域在x和y轴上均为1个节点的情况下,z轴至少要a个点,否则计算资源不够。后面的的b和n按照同样方式计算得到,这样可以减少遍历次数;

b、在上面traversalcore函数的一种从核负责区域情况下,如为{corex,corey,corez},调用traversalgrp函数,内层再循环遍历核组负责区域的组合情况。由于要让核组负责区域也是长方体或正方体,则64个从核也需要按照长方体或正方体的方式排布,有28种排布情况,见数组corecombination。遍历这28种情况时,剔除两种情况,以减少遍历次数:其一,核组负责区域在某个维度上的节点数比模型在该维度上的节点数多,多的数量大于等于该维度上核组内的从核数。其二,将要占用的核组数量超过提供的核组资源数量;

c、对于traversalcore函数遍历的一种组合情况,外循环确定了每个从核负责的区域,内循环确定了每个核组负责的区域,就可以得到一种计算资源分配情况。对于该情况,调用caltotaltime函数,使用预先测试得到的4个速度量,可以计算出该资源分配情况下一次迭代计算的总耗时;

d、对每种资源分配方式的耗时进行计算,就可以找到耗时最短的资源分配方式。

核组负责区域确定时,核组集区域的组合情况就唯一确定,占用的核组资源也就相应的确定,通过判断这种方式占用的核组资源是否超过系统提供的核组资源,如果超过,就排除这种组合情况。

所述节点分配计算方法还包括在判断出所述最优资源分配方式不满足要求时重复所述输入系统的模型规模和计算资源数量步骤和所述遍历查找到最优的资源分配方式步骤,直到得到满足要求的最优资源分配方式。

进一步地,判断最优资源分配方式是否满足要求为最优资源分配方式的耗时是否达到用户的要求,该要求针对不同用户会存在不用要求。

一种存储介质,其上存储有至少一个计算机可执行指令,所述计算机可执行指令运行时执行所述的一种基于lbm的申威26010众核处理器超算平台的节点分配计算方法的步骤。

一种终端设备,包括至少一个存储器和至少一个处理器,所述存储器上存储有至少一个可在所述处理器上运行的计算机可执行指令,所述处理器运行计算机可执行指令时执行所述的一种基于lbm的申威26010众核处理器超算平台的节点分配计算方法的步骤。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1