一种并行计算资源分配方法及装置与流程

文档序号:12132529阅读:485来源:国知局
一种并行计算资源分配方法及装置与流程

本发明涉及集群资源管理及并行计算领域,特别是涉及一种并行计算资源分配方法及装置。



背景技术:

近年来,并行计算集群越来越多的应用于语音识别、图像识别、自然语言理解等人工智能相关领域,使得所述领域的任务处理能力显著提升,尤其是所述领域中的深度学习任务的处理能力大大得到提升;而随着数据处理量的增加,单个资源往往无法承载复杂的计算任务,这样就需要并行计算集群中越来越多的资源执行相应任务,以满足实际应用需求,如使用多个GPU(Graphic Processing Unit,GPU)组成一个GPU集群执行海量数据的深度学习任务中的计算需求,这就需要对集群资源进行高效的分配,以充分发挥其并行计算的能力。

现有的并行计算集群资源分配方法一般是将集群中资源作为CPU、内存、硬盘之外的一种附属资源进行简单分配,集群节点进行资源分配时,一般采用互斥、独占的方式对集群中资源进行分配,即,当集群节点中空闲资源满足任务要求,则进行分配,已分配的资源将一直独占资源直到任务完成后将资源释放,然而,这种资源分配方法会造成任务等待时间较长,集群并行处理能力下降以及资源利用率较低等问题。



技术实现要素:

为克服上述现有技术存在的不足,本发明之目的在于提供一种并行计算资源分配方法及装置,以提高集群资源的利用率。

为达上述目的,本发明提出一种并行计算资源分配方法,包括如下步骤:

步骤一,接收当前资源分配请求,获取该当前资源分配请求的资源总数;

步骤二,获取并行计算集群中各集群节点包含的资源相关信息;

步骤三,根据各集群节点的资源相关信息,计算各个集群节点的资源分配代价;

步骤四,根据各集群节点的资源分配代价及该资源总数对该当前资源分配请求对应的请求任务进行资源分配。

进一步地,步骤三进一步包括:

根据各集群节点的资源相关信息计算各个集群节点资源分配时产生的跃迁代价,所述跃迁代价为每次拆分集群节点中资源组时发生能级跃迁而产生的代价;

根据各集群节点的资源相关信息计算各个集群节点中已分配资源释放后各集群节点的剩余代价;

根据各集群节点的跃迁代价及剩余代价计算各集群节点分配资源时的资源分配代价。

进一步地,所述跃迁代价通过如下步骤获得:

计算出各集群节点资源分配时拆分资源组产生的拆分代价;

根据拆分资源组的拆分代价计算各集群节点资源分配时的跃迁代价。

进一步地,所述拆分代价通过当前集群节点中剩余资源数及资源组包含的资源数计算获得,或直接设定获得。

进一步地,所述剩余代价通过集群节点中剩余资源数获得。

进一步地,所述资源相关信息包括当前集群节点中各个资源组包含的资源数、当前集群节点中所有资源总数、使用资源总数及剩余资源总数。

进一步地,所述资源相关信息通过各集群节点发送的心跳信号获得。

进一步地,于步骤四中,选择资源分配代价最小的集群节点分配相应该资源总数的资源给该请求任务。

为达到上述目的,本发明还提供一种并行计算资源分配装置,包括:

资源分配请求接收模块,用于接收当前资源分配请求,获取当前资源分配请求的资源总数;

资源信息获取模块,用于获取并行计算集群中各个集群节点包含的资源相关信息;

资源分配代价计算模块,根据各集群节点的资源相关信息,计算各集群节点的资源分配代价;

资源分配模块,根据各个集群节点的资源分配代价及该当前资源分配请求的资源总数对该当前资源分配请求对应的请求任务进行资源分配。

进一步地,所述资源分配代价计算模块包括:

跃迁代价计算单元,用于根据各集群节点的资源相关信息计算各集群节点资源分配时产生的跃迁代价,所述跃迁代价为每次拆分集群节点中资源组时发生能级跃迁而产生的代价;

剩余代价计算单元,用于根据各集群节点的资源相关信息计算各集群节点中已分配资源释放后各集群节点的剩余代价;

分配代价计算单元,根据各集群节点的跃迁代价及剩余代价计算各集群节点分配资源时的资源分配代价。

进一步地,所述跃迁代价计算单元首先计算出各集群节点资源分配时拆分资源组产生的拆分代价,再根据拆分资源组的拆分代价计算各集群节点资源分配时的跃迁代价。

进一步地,所述拆分代价通过当前集群节点中剩余资源数及资源组包含的资源数计算获得,或直接设定获得。

进一步地,所述剩余代价通过集群节点中剩余资源数获得。

与现有技术相比,本发明一种并行计算资源分配方法及装置通过在进行资源分配之前根据各个集群节点中包含的资源相关信息,计算各个集群节点分配相应数量资源时的分配代价,从而保证了每次请求资源时,选择产生碎片较少的集群节点进行资源分配,有效地提高了整个集群资源的利用率。

附图说明

图1为本发明第一实施例一种并行计算资源分配方法的步骤流程图;

图2为本发明第一实施例中步骤103的细部流程图

图3为本发明具体实施例中拆分集群节点中资源组时产生的能级跃迁示意图;

图4为本发明第二实施例一种并行计算资源分配装置的结构示意图

图5为本发明第二实施例中资源分配代价计算模块的细部结构图。

具体实施方式

以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。

图1为本发明第一实施例一种并行计算资源分配方法的步骤流程图。如图1所示,本发明一种并行计算资源分配方法,包括如下步骤:

步骤101,接收当前资源分配请求,获取当前资源分配请求的资源总数。

所述当前资源分配请求的资源总数一般为执行新任务时需要的资源数;所述资源是指每个集群节点在执行任务时,分配资源时的最小资源单位,例如并行计算集群节点中使用多个GPU进行并行计算,则单个GPU即为集群节点执行任务时,分配的最小资源单位。本发明中,并行计算时,集群中包含多个集群节点,每个集群节点包含一或多个资源组,每个资源组中包含固定数量的资源。

步骤102,获取并行计算集群中各个集群节点包含的资源相关信息。所述资源相关信息包括当前集群节点中各个资源组包含的资源数、当前集群节点中所有资源总数、使用资源总数及剩余资源总数在本发明实施例中,资源相关信息可通过各集群节点发送的心跳信号获得,也就是说,各集群节点会定时向分配装置发送心跳信号,以证明自己仍活跃于集群中,所述心跳信号包括各集群节点自身的ID号以及对应的资源相关信息,但不以此为限。

步骤103,根据各集群节点的资源相关信息,计算各个集群节点的资源分配代价。

在本发明中,资源分配代价由两部分组成:各个集群节点资源分配时,拆分资源组产生的能级跃迁代价和各个集群节点中已分配资源被释放后的剩余代价。图2为本发明第一实施例中步骤103的细部流程图。如图2所示,步骤203进一步包括如下步骤:

步骤S1,根据各集群节点的资源相关信息计算各个集群节点资源分配时产生的跃迁代价。所述跃迁代价指每次拆分集群节点中资源组时发生的能级跃迁而产生的代价。受限于硬件,分配集群节点中资源时,如果需要拆分资源组,花费的代价往往较高,即拆分代价较高;如果不需要拆分资源组分配资源,花费的代价往往较低,并且远远低于拆分资源组时花费的拆分代价,可以忽略不计,因此,跃迁代价的计算过程如下:

1)首先计算集群节点中资源分配时拆分资源组产生的拆分代价

拆分代价只有在拆分集群节点中资源组时才会产生,拆分代价与当前集群节点中剩余资源数及资源组包含的资源数相关,其可通过当前集群节点中剩余资源数及资源组包含的资源数计算获得,本发明具体实施例中,具体计算公式如下式(1):

其中,k表示拆分集群节点中资源组时产生的拆分代价;R表示当前集群节点中剩余资源数,g为集群节点中资源组包含的资源数,j为拆分代价调节参数,取值为大于等于1的整数,具体取值可根据应用需求或实验结果确定,其作用为保证k的取值为0或1,即当拆分资源组时,取值为1,不拆分资源组时,取值为0;

需要说明的,上述式(1)仅为示例性计算方法,当然,也可以不采用上式给出的拆分代价计算方法,直接设定集群节点在分配资源时,每次拆分资源组的拆分代价,如直接设定每次拆分资源组时的拆分代价为1,不拆分资源组时,拆分代价为0,本发明不以此为限。

2)根据拆分资源组的拆分代价计算各集群节点资源分配时的跃迁代价

当集群节点中有多个资源组时,在每次拆分资源组进行资源分配时都会造成集群节点能级的跃迁,产生跃迁代价,所述能级跃迁指资源分配时未拆分集群中资源组时,能级未发生改变,当拆分资源组后,能级降低,能级发生跃迁,进而产生跃迁代价。

各集群节点资源分配时的跃迁代价为各个集群节点中所有拆分资源组时产生的拆分代价之和,如图3为本发明具体实施例中拆分集群节点中资源组时产生的能级跃迁示意图,其中,该集群节点共包含8个资源,2个资源组,每个资源组固定包含4个资源,当集群中资源由8降到4或由4降到0时,能级发生跃迁,产生跃迁代价,所述跃迁代价通过如下式(2)计算获得:

其中,TR-a表示集群节点分配资源后从R个资源分配a个资源后的跃迁代价,a表示请求资源数,ki表示集群节点分配资源时的拆分代价,只有在分配第i个资源时,拆分了资源组,ki取值为1,否则,取值为0。

以下通过一具体实例来说明各集群节点跃迁代价的计算过程。假设,请求资源数为2,且并行计算集群中包含两个集群节点node1和node2,每个集群节点的相关信息如下表1所示:

表1

其中,g表示每个集群节点中资源组包含的资源数,a表示请求资源数,Total表示每个集群节点包含的资源总数,Used表示每个集群节点已经被分配的资源数,R1、R2分别表示集群节点在分配资源后剩余资源数;本发明具体实施例中各集群节点的跃迁代价的计算过程如下:

1)计算node1节点的跃迁代价

先计算node1节点分配两个资源后的拆分代价,由于node1节点剩余5个资源可用,每个资源组包含4个资源,当节点分配第1个资源时,并未拆分资源组,当节点分配第2个资源时,需要拆分一个资源组,因此,根据式(1)可计算出拆分代价为1;由于node1节点分配2个资源时共拆分一个资源组;因此,node1节点由5个资源降低到3个资源时的跃迁代价为所有拆分代价之和,即1;

2)计算node2节点的跃迁代价

同样先计算node2节点分配两个资源后的拆分代价,由于node2节点剩余3个资源可用,每个资源组包含4个资源,当节点分配完两个资源后,并未拆分资源组,拆分代价为0;因此node2节点分配2个资源后,由3个资源降低到1个资源的跃迁代价为0。

步骤S2,根据各集群节点的资源相关信息计算各个集群节点中已分配资源释放后各集群节点的剩余代价。

由于实际使用时,保证各个集群节点中资源的完整性,可以将集群节点中资源整体分配给资源消耗较大的更重要的任务,具有较高的价值,因此,在集群节点仅缺少一个资源时,具有的潜在价值较高,因为仅需要释放一个资源就可以保证该集群节点的完整性,在进行资源分配时,直接将整个集群节点中资源分配给资源消耗更大的任务。为此,本发明在计算各个集群节点的资源分配代价时,还考虑了各个集群节点中已分配的资源在释放后集群节点的剩余代价,所述剩余代价指由于集群节点在分配资源时,未考虑集群节点中已分配节点释放后可以保持集群节点的完整性而导致潜在价值受损所产生的代价,具体剩余代价的计算方法如下:

所述集群节点的剩余代价与集群节点中剩余资源数相关,可通过集群节点中剩余资源数获得,当集群节点中剩余资源越多,将剩余资源分配给请求资源的任务时,损失的潜在价值越大,从而使集群节点的剩余代价越大;因此,所述集群节点的剩余代价与集群节点中剩余的资源数成反比,剩余代价可采用如下式(3)计算获得:

其中,LR为集群节点剩余R个资源时的剩余代价,R为集群节点分配资源前的剩余资源数;

步骤S3,根据各集群节点的跃迁代价及剩余代价计算各个集群节点分配资源时的分配代价。

在本发明具体实施例中,所述分配代价为各个集群节点分配资源后的跃迁代价与剩余代价之和,可利用如下式(4)获得:

CR-a=TR-a+LR (4)

其中,CR-a为集群节点中剩余R个资源时分配a个资源后的分配代价。在此需说明的是,式(4)仅为示例性说明,也可以对跃迁代价与剩余代价进行加权处理后计算出分配代价,本发明不以此为限。

以下通过一个具体实例来说明分配代价的计算过程:例如当前请求资源数为2的集群节点node1和node2的资源相关信息如下表2所示,表中具体参数含义与表1相同,其中C为每个集群节点分配资源时的分配代价,其它参数含义与表1相同,集群节点node1和node2的分配代价C的计算过程如下所述:

表2

先计算各个集群节点分配资源后的跃迁代价,由于node1和node2节点分配2个资源后并未拆分资源组,因此拆分代价和跃迁代价都为0;

计算node1节点的剩余代价:1-1/7=6/7;

计算node2节点的剩余代价:1-1/2=1/2;

因此,node1节点分配资源的分配代价为0+6/7=6/7,node2节点分配资源的分配代价为0+1/2=1/2。

步骤104,根据各个集群节点的资源分配代价及资源请求总数对该当前资源分配请求对应的请求任务进行资源分配。本发明实施例中,在具体分配时,则选择分配代价最小的集群节点分配相应所请求的资源总数的资源给该请求任务。

由于并行计算集群中每个集群节点会包含一到多个资源组,每个资源组包含固定数量的资源,现有技术的资源分配方法仅采用互斥、独占的方式对集群中资源进行分配,未考虑资源分配时产生的分配代价,而是直接将符合需求的资源分配给需求任务,经常会拆分各集群节点中的资源组分配资源。这样的话,如果一个资源组中剩余资源较少,下次需求任务请求资源时,往往无法满足要求,从而产生资源碎片,并且随着时间的推移产生的碎片会越来越多,当有较大任务需要较多资源时,集群节点中资源碎片无法满足需求,较大任务需要等待已分配资源释放后,才能得到需求数量的资源,因而会造成任务等待时间较长,集群并行处理能力下降,资源利用率较低等问题,本发明在资源分配时,不仅考虑各集群节点分配请求资源数资源后的跃迁代价,同时考虑各个集群节点已分配资源释放后的集群节点的剩余代价,根据各个集群节点的资源分配代价及资源请求总数对请求任务进行资源分配,能够很好地解决现有技术存在的问题。

图4为本发明第二实施例一种并行计算资源分配装置的结构示意图。如图4所示,本发明一种并行计算资源分配装置,包括:资源分配请求接收模块10、资源信息获取模块11、资源分配代价计算模块12以及资源分配模块13。

其中,资源分配请求接收模块10,用于接收当前资源分配请求,获取当前资源分配请求的资源总数。所述当前资源分配请求的资源总数一般为执行新任务时需要的资源数;所述资源指每个集群节点在执行任务时,分配资源时的最小资源单位,如并行计算集群节点中使用多个GPU进行并行计算,则单个GPU即为集群节点执行任务时,分配的最小资源单位。本发明中,并行计算时,集群中包含多个集群节点,每个集群节点包含一或多个资源组,每个资源组中包含固定数量的资源。

资源信息获取模块11,用于获取并行计算集群中各个集群节点包含的资源相关信息。所述资源相关信息包括当前集群节点中各个资源组包含的资源数、当前集群节点中所有资源总数、使用资源总数及剩余资源总数。在本发明具体实施例中,资源相关信息可通过各集群节点发送的心跳信号获得,也就是说,各集群节点会定时向分配装置发送心跳信号,以证明自己仍活跃于集群中,所述心跳信号包括各集群节点自身的ID号以及对应的资源相关信息。

资源分配代价计算模块12,根据各集群节点的资源相关信息,计算各个集群节点的资源分配代价。

在本发明中,资源分配代价由两部分组成:每个集群节点资源分配时,拆分资源组产生的能级跃迁代价和每个集群节点中已分配资源被释放后的剩余代价。图5为本发明第二实施例中资源分配代价计算模块的细部结构图。如图5所示,资源分配代价计算模块12进一步包括:跃迁代价计算单元120、剩余代价计算单元121、分配代价计算单元122。

跃迁代价计算单元120,用于根据各集群节点的资源相关信息计算各个集群节点资源分配时产生的跃迁代价。所述跃迁代价指每次拆分集群节点中资源组时发生的能级跃迁而产生的代价。受限于硬件,分配集群节点中资源时,如果需要拆分资源组,花费的代价往往较高,即拆分代价较高;如果不需要拆分资源组分配资源,花费的代价往往较低,并且远远低于拆分资源组时花费的拆分代价,可以忽略不计,因此,跃迁代价计算单元120的计算过程如下:

1)先计算各集群节点中资源分配时拆分资源组产生的拆分代价

所述拆分代价只有在拆分集群节点中资源组时才会产生,所述拆分代价与当前集群节点中剩余资源数及资源组包含资源数相关,其可通过当前集群节点中剩余资源数及资源组包含的资源数计算获得,本发明具体实施例中,具体计算方法采用下式获得:

其中,k表示拆分集群节点中资源组时产生的拆分代价;R表示当前集群节点中剩余资源数,g为集群节点中资源组包含资源数,j为拆分代价调节参数,为大于等于1的整数,具体取值可根据应用需求或实验结果确定,其作用为保证k的取值为0或1,即当拆分资源组时,取值为1,不拆分资源组时,取值为0;

需要说明的,上式仅为示例性计算方法,当然,也可以不采用上式给出拆分代价计算方法,直接设定集群节点在分配资源时,每次拆分资源组的拆分代价,如直接设定每次拆分资源组时的拆分代价为1,不拆分资源组时,拆分代价为0;本发明不以此为限。

2)根据拆分资源组的拆分代价计算集群节点资源分配时的跃迁代价

当集群节点中有多个资源组时,在每次拆分资源组进行资源分配时都会造成集群节点能级的跃迁,产生跃迁代价,所述能级跃迁指资源分配时未拆分集群中资源组时,能级未发生改变,当拆分资源组后,能级降低,能级发生跃迁,进而产生跃迁代价。

集群节点资源分配时的跃迁代价为各个集群节点中所有拆分资源组时产生的拆分代价之和。所述跃迁代价可采用下式获得:

其中,TR-a表示集群节点分配资源后从R个资源分配a个资源后的跃迁代价,a表示请求资源数,ki表示集群节点分配资源时的拆分代价,只有在分配第i个资源时,拆分了资源组,ki取值为1,否则,取值为0。

剩余代价计算单元121,用于根据各集群节点的资源相关信息计算各个集群节点中已分配资源释放后各集群节点的剩余代价。

由于实际使用时,保证各个集群节点中资源的完整性,可以将集群节点中资源整体分配给资源消耗较大的更重要的任务,具有较高的价值,因此,在集群节点仅缺少一个资源时,具有的潜在价值较高,因为仅需要释放一个资源就可以保证该集群节点的完整性,在进行资源分配时,直接将整个集群节点中资源分配给资源消耗更大的任务。为此,本发明在计算各个集群节点的资源分配代价时,还考虑了各个集群节点中已分配的资源在释放后集群节点的剩余代价,所述剩余代价指由于集群节点在分配资源时,未考虑集群节点中已分配节点释放后可以保持集群节点的完整性而导致潜在价值受损所产生的代价,具体剩余代价的计算过程如下:

所述集群节点的剩余代价与集群节点中剩余资源数相关,可通过集群节点中剩余资源数获得,当集群节点中剩余资源越多,将剩余资源分配给请求资源的任务时,损失的潜在价值越大,从而使集群节点的剩余代价越大;因此,所述集群节点的剩余代价与集群节点中剩余的资源数成反比,所述剩余代价的计算方法如下式所示:

其中,LR为集群节点剩余R个资源时的剩余代价,R为集群节点分配资源前的剩余资源数;

分配代价计算单元122,用于根据各集群节点的跃迁代价及剩余代价计算各个集群节点分配资源时的分配代价。

在本发明实施例中,所述分配代价为各个集群节点分配资源后的跃迁代价与剩余代价之和,可利用下式获得:

CR-a=TR-a+LR

其中,CR-a为集群节点中剩余R个资源时分配a个资源后的分配代价。

资源分配模块13,根据各个集群节点的资源分配代价及资源请求总数对请求任务进行资源分配。本发明实施例中,在具体分配时,则选择分配代价最小的集群节点分配相应资源请求总数的资源给请求任务。

综上所述,本发明一种并行计算资源分配方法及装置通过在进行资源分配之前根据各个集群节点中包含的资源相关信息,计算各个集群节点分配相应数量资源时的分配代价,从而保证了每次请求资源时,选择产生碎片较少的集群节点进行资源分配,有效地提高了整个集群资源的利用率。

任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。

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