一种FPGA云平台的加速卡分配方法、系统及相关组件转让专利

申请号 : CN201910785360.X

文献号 : CN110519090A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 宿栋栋王彦伟刘伟

申请人 : 苏州浪潮智能科技有限公司

摘要 :

本申请公开了一种FPGA云平台的加速卡分配方法,所述方法包括确定FPGA云平台对应的加速卡和路由器,并构建加速卡和路由器的多叉树模型;查询多叉树模型上每一父节点下的加速卡最小数据传输速率和加速卡数量;当接收到目标终端的资源请求信息时,根据资源请求信息确定目标加速卡数量和目标数据传输速率;通过遍历多叉树模型确定目标父节点,并将目标父节点下的加速卡分配给目标终端。本申请能够在保证数据传输速率的前提下,提高分配FPGA加速卡的效率。本申请还公开了一种FPGA云平台的加速卡分配系统、一种存储介质及一种电子设备,具有以上有益效果。

权利要求 :

1.一种FPGA云平台的加速卡分配方法,其特征在于,包括:确定FPGA云平台对应的加速卡和路由器,并构建所述加速卡和所述路由器的多叉树模型;

查询所述多叉树模型上每一父节点下的加速卡最小数据传输速率和加速卡数量;

当接收到目标终端的资源请求信息时,根据所述资源请求信息确定目标加速卡数量和目标数据传输速率;

通过遍历所述多叉树模型确定目标父节点,并将所述目标父节点下的加速卡分配给所述目标终端;其中,所述目标父节点下的加速卡最小数据传输速率大于或等于所述目标数据传输速率,目标父节点下的加速卡数量大于或等于所述目标加速卡数量。

2.根据权利要求1所述加速卡分配方法,其特征在于,构建所述加速卡和所述路由器的多叉树模型包括:根据所述路由器和所述加速卡在树型网络拓扑中的物理位置执行IP编址操作,并通过无类别域间路由的方式对所述路由器和所述加速卡进行子网划分操作,得到多叉树模型。

3.根据权利要求1所述加速卡分配方法,其特征在于,当所述目标父节点的数量为1时,将所述目标父节点下的加速卡分配给所述目标终端包括:根据加速卡维护成本确定所述目标父节点下的加速卡的优先级;其中,所述加速卡维护成本与所述优先级负相关;

将优先级前N位的加速卡设置为目标加速卡;其中,N为所述目标加速卡数量;

将所述目标加速卡分配给所述目标终端。

4.根据权利要求1所述加速卡分配方法,其特征在于,当所述目标父节点的数量大于1时,将所述目标父节点下的加速卡分配给所述目标终端包括:将每一所述目标父节点下的所有加速卡设置为加速卡集合;

根据加速卡维护成本确定所述加速卡集合中的加速卡的优先级;其中,所述加速卡维护成本与所述优先级负相关;

将每一所述加速卡集合中优先级前N位的加速卡设置为待选加速卡组;其中,N为所述目标加速卡数量;

将加速卡组维护成本最低的待选加速卡组设置为目标加速卡组;

将所述目标加速卡组对应的加速卡分配给所述目标终端。

5.根据权利要求3或4所述加速卡分配方法,其特征在于,还包括:根据加速卡的持续工作时长计算所述加速卡维护成本;其中,所述持续工作时长与所述加速卡维护成本正相关。

6.根据权利要求4所述加速卡分配方法,其特征在于,还包括:将所述待选加速卡组中所有加速卡的加速卡维护成本的和作为所述加速卡组维护成本。

7.根据权利要求1所述加速卡分配方法,其特征在于,在将所述目标父节点下的加速卡分配给所述目标终端之后,还包括:将分配给所述目标终端的加速卡标记为已分配加速卡;

根据所述已分配加速卡的数量和数据传输速率更新所述多叉树模型。

8.一种FPGA云平台的加速卡分配系统,其特征在于,包括:多叉树模型构建模块,用于确定FPGA云平台对应的加速卡和路由器,并构建所述加速卡和所述路由器的多叉树模型;

查询模块,用于查询所述多叉树模型上每一父节点下的加速卡最小数据传输速率和加速卡数量;

目标信息确定模块,用于当接收到目标终端的资源请求信息时,根据所述资源请求信息确定目标加速卡数量和目标数据传输速率;

分配模块,用于通过遍历所述多叉树模型确定目标父节点,并将所述目标父节点下的加速卡分配给所述目标终端;其中,所述目标父节点下的加速卡最小数据传输速率大于或等于所述目标数据传输速率,目标父节点下的加速卡数量大于或等于所述目标加速卡数量。

9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1至7任一项所述FPGA云平台的加速卡分配方法的步骤。

10.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上权利要求1至7任一项所述FPGA云平台的加速卡分配方法的步骤。

说明书 :

一种FPGA云平台的加速卡分配方法、系统及相关组件

技术领域

[0001] 本申请涉及云计算技术领域,特别涉及一种FPGA云平台的加速卡分配方法、系统、一种存储介质及一种电子设备。

背景技术

[0002] 随着FPGA的发展,CPU逐渐将一些计算量大和复杂的工作分流到FPGA,实现FPGA和CPU协同工作。而FPGA云平台作为一种以FPGA为协处理器的异构计算平台,充分利用FPGA的并行和流水等设计手段,能够提高计算性能、能效比和计算实时性,实现对应用的硬件加速处理;另一方面,它可以通过云服务方式为用户提供高附加值的服务,提升了客户的业务整合和处理速度。
[0003] 当前的FPGA云服务商采用的是单机单卡和单机多卡的绑定模式,这种方式导致不同的FPGA芯片之间整合难度加大,对服务器加速卡要求过高。而基于FPGA加速卡网口的网络通信功能,FPGA云平台的不同加速卡可以实现不同加速卡之间的数据传输和处理,从而提升了FPGA云平台的处理效率,实现了FPGA云平台中加速卡和服务器之间的解耦。但是,在FPGA加速卡计算效率已知的情况下,FPGA云平台的处理效率受限于板卡数据的传输速率。
[0004] 因此,如何在保证数据传输速率的前提下,提高分配FPGA加速卡的效率是本领域技术人员目前需要解决的技术问题。

发明内容

[0005] 本申请的目的是提供一种FPGA云平台的加速卡分配方法、系统、一种存储介质及一种电子设备,能够在保证数据传输速率的前提下,提高分配FPGA加速卡的效率。
[0006] 为解决上述技术问题,本申请提供一种FPGA云平台的加速卡分配方法,该加速卡分配方法包括:
[0007] 确定FPGA云平台对应的加速卡和路由器,并构建所述加速卡和所述路由器的多叉树模型;
[0008] 查询所述多叉树模型上每一父节点下的加速卡最小数据传输速率和加速卡数量;
[0009] 当接收到目标终端的资源请求信息时,根据所述资源请求信息确定目标加速卡数量和目标数据传输速率;
[0010] 通过遍历所述多叉树模型确定目标父节点,并将所述目标父节点下的加速卡分配给所述目标终端;其中,所述目标父节点下的加速卡最小数据传输速率大于或等于所述目标数据传输速率,目标父节点下的加速卡数量大于或等于所述目标加速卡数量。
[0011] 可选的,构建所述加速卡和所述路由器的多叉树模型包括:
[0012] 根据所述路由器和所述加速卡在树型网络拓扑中的物理位置执行IP编址操作,并通过无类别域间路由的方式对所述路由器和所述加速卡进行子网划分操作,得到多叉树模型。
[0013] 可选的,当所述目标父节点的数量为1时,将所述目标父节点下的加速卡分配给所述目标终端包括:
[0014] 根据加速卡维护成本确定所述目标父节点下的加速卡的优先级;其中,所述加速卡维护成本与所述优先级负相关;
[0015] 将优先级前N位的加速卡设置为目标加速卡;其中,N为所述目标加速卡数量;
[0016] 将所述目标加速卡分配给所述目标终端。
[0017] 可选的,当所述目标父节点的数量大于1时,将所述目标父节点下的加速卡分配给所述目标终端包括:
[0018] 将每一所述目标父节点下的所有加速卡设置为加速卡集合;
[0019] 根据加速卡维护成本确定所述加速卡集合中的加速卡的优先级;其中,所述加速卡维护成本与所述优先级负相关;
[0020] 将每一所述加速卡集合中优先级前N位的加速卡设置为待选加速卡组;其中,N为所述目标加速卡数量;
[0021] 将加速卡组维护成本最低的待选加速卡组设置为目标加速卡组;
[0022] 将所述目标加速卡组对应的加速卡分配给所述目标终端。
[0023] 可选的,还包括:
[0024] 根据加速卡的持续工作时长计算所述加速卡维护成本;其中,所述持续工作时长与所述加速卡维护成本正相关。
[0025] 可选的,还包括:
[0026] 将所述待选加速卡组中所有加速卡的加速卡维护成本的和作为所述加速卡组维护成本。
[0027] 可选的,在将所述目标父节点下的加速卡分配给所述目标终端之后,还包括:
[0028] 将分配给所述目标终端的加速卡标记为已分配加速卡;
[0029] 根据所述已分配加速卡的数量和数据传输速率更新所述多叉树模型。
[0030] 本申请还提供了一种FPGA云平台的加速卡分配系统,该加速卡分配系统包括:
[0031] 多叉树模型构建模块,用于确定FPGA云平台对应的加速卡和路由器,并构建所述加速卡和所述路由器的多叉树模型;
[0032] 查询模块,用于查询所述多叉树模型上每一父节点下的加速卡最小数据传输速率和加速卡数量;
[0033] 目标信息确定模块,用于当接收到目标终端的资源请求信息时,根据所述资源请求信息确定目标加速卡数量和目标数据传输速率;
[0034] 分配模块,用于通过遍历所述多叉树模型确定目标父节点,并将所述目标父节点下的加速卡分配给所述目标终端;其中,所述目标父节点下的加速卡最小数据传输速率大于或等于所述目标数据传输速率,目标父节点下的加速卡数量大于或等于所述目标加速卡数量。
[0035] 本申请还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述FPGA云平台的加速卡分配方法执行的步骤。
[0036] 本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述FPGA云平台的加速卡分配方法执行的步骤。
[0037] 本申请提供了一种FPGA云平台的加速卡分配方法,包括:确定FPGA云平台对应的加速卡和路由器,并构建所述加速卡和所述路由器的多叉树模型;查询所述多叉树模型上每一父节点下的加速卡最小数据传输速率和加速卡数量;当接收到目标终端的资源请求信息时,根据所述资源请求信息确定目标加速卡数量和目标数据传输速率;通过遍历所述多叉树模型确定目标父节点,并将所述目标父节点下的加速卡分配给所述目标终端;其中,所述目标父节点下的加速卡最小数据传输速率大于或等于所述目标数据传输速率,目标父节点下的加速卡数量大于或等于所述目标加速卡数量。
[0038] 本申请首先根据FPGA云平台对应的加速卡和路由器构建多叉树模型,并统计每一父节点下的加速卡最小数据传输速率和加速卡数量。当接收到资源请求信息时,根据支援请求信息查询多叉树模型中符合该资源请求信息的目标父节点,并将目标父节点所包括的加速卡分配给目标终端。由于目标父节点的加速卡最小传输速率大于或等于目标数据传输速率,目标父节点下的加速卡数量大于或等于所述目标加速卡数量,因此目标父节点能够符合用户需求,能够在保证数据传输速率的前提下提高分配FPGA加速卡的效率。本申请同时还提供了一种FPGA云平台的加速卡分配系统、一种存储介质和一种电子设备,具有上述有益效果,在此不再赘述。

附图说明

[0039] 为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0040] 图1为本申请实施例所提供的一种FPGA云平台的加速卡分配方法的流程图;
[0041] 图2为本申请实施例所提供的另一种FPGA云平台的加速卡分配方法的流程图;
[0042] 图3为FPGA云平台网络拓扑结构示意图;
[0043] 图4为FPGA云平台的多叉树结构示意图;
[0044] 图5为本申请实施例所提供的一种FPGA云平台的加速卡分配系统的结构示意图。

具体实施方式

[0045] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0046] 下面请参见图1,图1为本申请实施例所提供的一种FPGA云平台的加速卡分配方法的流程图。
[0047] 具体步骤可以包括:
[0048] S101:确定FPGA云平台对应的加速卡和路由器,并构建所述加速卡和所述路由器的多叉树模型;
[0049] 其中,FPGA(Field-Programmable Gate Array)即现场可编程门阵列,FPGA云平台作为一种以FPGA为协处理器的异构计算平台,充分利用FPGA的并行和流水等设计手段,能够提高计算性能、能效比和计算实时性,实现对应用的硬件加速处理;另一方面,FPGA云平台可以为云服务方式为用户提供高附加值的服务,提升了客户的业务整合和处理速度。FPGA云平台可以对应多个加速卡和路由器,此处提的到加速卡具体指FPGA加速卡。在确定FPGA云平台对应的加速卡和路由器的基础上,本实施例可以构建关于加速卡与路由器的基于树型网络拓扑的多叉树模型。
[0050] 作为一种可行的实施方式,本实施例可以根据所述路由器和所述加速卡在树型网络拓扑中的物理位置执行IP编址操作,并通过无类别域间路由的方式对所述路由器和所述加速卡进行子网划分操作,得到多叉树模型。多叉树模型的每一父节点可以为加速卡或路由器,当路由器作为父节点时,该父节点下可以包括任意数量个路由器或加速卡。
[0051] S102:查询所述多叉树模型上每一父节点下的加速卡最小数据传输速率和加速卡数量;
[0052] 其中,本步骤的目的在于确定多叉树模型上每一父节点下的加速卡最下的加速卡最小数据传输速率和加速卡数量,同一父节点下可以包括任意数量张加速卡,每一张加速卡的数据传输速率可以不相同。此处提到的加速卡最小数据传输速率指该父节点下所有加速卡中数据传输速率最小的加速卡的数据传输速率,此处提到的加速卡数量为父节点下的所有加速卡的数量。举例说明上述操作,例如节点A为节点B和节点C的父节点,节点B为节点D和节点E的父节点,节点A和节点B为路由器,节点C为数据传输速率为6M/s的加速卡,节点D为数据传输速率为3M/s的加速卡,节点E为数据传输速率为9M/s的加速卡,节点A对应的加速卡最小数据传输速率为3M/s、加速卡数量为3;节点B对应的加速卡最小数据传输速率为6M/s、加速卡数量为2;节点C对应的加速卡最小数据传输速率为3M/s、加速卡数量为1。
[0053] S103:当接收到目标终端的资源请求信息时,根据所述资源请求信息确定目标加速卡数量和目标数据传输速率;
[0054] 其中,目标终端的资源请求信息为目标终端关于请求FPGA云平台分配加速卡的请求信息,可以通过解析资源请求信息确定目标终端需要的加速卡数量和加速卡传输速率,即目标加速卡数量和目标数据传输速率。需要说明的是,此处提到的目标数据传输速率指每一张加速卡的数据传输速率。
[0055] S104:通过遍历所述多叉树模型确定目标父节点,并将所述目标父节点下的加速卡分配给所述目标终端;
[0056] 其中,本实施例建立在已经确定目标加速卡数量和目标数据传输速率的基础上,通过历遍多叉树模型确定符合要求的目标父节点,该目标父节点下的加速卡最小数据传输速率大于或等于所述目标数据传输速率,目标父节点下的加速卡数量大于或等于所述目标加速卡数量。在确定目标父节点的基础上,本实施例可以将目标父节点下的加速卡分配给目标终端。作为一种可行的实施方式,目标父节点下的加速卡数量可以大于目标加速卡数量,因此可以将目标父节点下目标加速卡数量张的加速卡分配给目标终端。
[0057] 本实施例首先根据FPGA云平台对应的加速卡和路由器构建多叉树模型,并统计每一父节点下的加速卡最小数据传输速率和加速卡数量。当接收到资源请求信息时,根据支援请求信息查询多叉树模型中符合该资源请求信息的目标父节点,并将目标父节点所包括的加速卡分配给目标终端。由于目标父节点的加速卡最小传输速率大于或等于目标数据传输速率,目标父节点下的加速卡数量大于或等于所述目标加速卡数量,因此目标父节点能够符合用户需求,能够在保证数据传输速率的前提下提高分配FPGA加速卡的效率。
[0058] 下面请参见图2,图2为本申请实施例所提供的另一种FPGA云平台的加速卡分配方法的流程图。
[0059] S201:确定FPGA云平台对应的加速卡和路由器;
[0060] S202:根据所述路由器和所述加速卡在树型网络拓扑中的物理位置执行IP编址操作,并通过无类别域间路由的方式对所述路由器和所述加速卡进行子网划分操作,得到多叉树模型。
[0061] S203:查询所述多叉树模型上每一父节点下的加速卡最小数据传输速率和加速卡数量;
[0062] 举例说明S202的相关操作,假设树型网络拓扑中共有i个直接连接加速卡的路由器,由于每个路由器的连接数量和划分可划分的子网网段有限,因此,i个路由器又挂载在j个路由器下。依次类推,假设最终的根节点为1个主路由器(IP地址标记为a.b.c.d/num,其中a,b,c,d均为大于0小于256的正整数,1
[0063] S204:当接收到目标终端的资源请求信息时,根据所述资源请求信息确定目标加速卡数量和目标数据传输速率;
[0064] S205:通过遍历所述多叉树模型确定目标父节点,并将所述目标父节点下的加速卡分配给所述目标终端;
[0065] 其中,本实施例提供了多叉树模型,并从多叉树模型选出一个基于不小于用户传输速率要求的不小于用户需求数量的加速卡。在此基础上,为实现对加速卡的统一管理,本实施例将云平台树型网络拓扑中的加速卡按照树型网络拓扑中实际物理连接相近的所有加速卡,为其依次进行IP编址;在此基础上,将云平台中的树型网络拓扑抽象为多叉树,多叉树每一级父节点的IP地址为路由器的地址,该节点的权值为[当前父节点下的加速卡最小速率,当前父节点下加速卡数量]。然后对该多叉树进行按层遍历,从而确定出不小于加速卡数量的父节点集合。根据树型网络拓扑中的构建相应的多叉树模型,每个父节点的权值为[父节点下加速卡的最小速率,父节点下的加速卡数量]。由于该多叉树是按照云平台树型网络拓扑中IP地址的32位地址从上往下的顺序搭建的,因此可在按层遍历算法的基础上查找符合不小于用户购买数量的拥有最小加速卡数量的路由节点及其IP地址。
[0066] S206:将分配给所述目标终端的加速卡标记为已分配加速卡;
[0067] S207:根据所述已分配加速卡的数量和数据传输速率更新所述多叉树模型。
[0068] 其中,本实施例在向目标终端分配加速卡后,更新多叉树模型,避免出现加速卡重复分配的错误。本实施例中FPGA云平台将加速卡和路由器按照在树型网络拓扑中的物理位置进行初始化IP编址。树型网络拓扑中每个路由器节点可能为路由器或者加速卡,因此,采用CIDR(无类别域间路由)进行子网划分,子网内节点的IP地址设置为连续。
[0069] 综上可知本申请提出了一种基于改进的多叉树按层深层遍历方法,具体过程如下:
[0070] 步骤11、以根节点的第num位IP地址按照32位IP地址划分法开始构建根节点及其子网下的所有节点。
[0071] 步骤12、对于依次搭建相应的多叉树。并按照权值的定义,从根节点开始按,每个父节点的权值需记录为[当前父节点下加速卡的最小传输速率,当前父节点下加速卡数量]。
[0072] 步骤13、建树完成后,从根节点按层开始遍历。当遍历到的父节点(第i个路由器)的权值满足ni≥num1&&ri≥r,及其所有的孩子节点权值均满足snmi
[0073] 步骤14、执行步骤3直到当前IP地址层的所有节点的权值均小于用户的数量要求num1。
[0074] 步骤15、返回满足用户的加速卡集合res。
[0075] 上述方法的输入值可以包括:每个节点的IP地址,对应的权值。用户所需的加速卡数量num1,用户对板卡的速率要求r。主路由所对应的的根节点的子网地址(a.b.c.d/num,其中a,b,c,d均为大于0且小于256的正整数,1
[0076] 在加速卡分配之前需要进行相应的日常维护,当连续工作时间越长维护成本越高。因此,为保证云平台的利益,本申请实施例在多叉树按层遍历结果的基础上可以通过改进的排序算法为其分配维护成本最低的方案。为减轻云平台的运营成本,还可以针对每个加速卡的持续工作时间,计算出每个加速卡集合中的维护成本。作为对于图1对应实施例的补充说明,本实施例还可以存在根据维护成本分配加速卡的操作。具体过程如下:
[0077] 当S104确定的目标父节点的数量为1时,将所述目标父节点下的加速卡分配给所述目标终端的过程可以包括以下步骤:
[0078] 步骤21:根据加速卡维护成本确定所述目标父节点下的加速卡的优先级;其中,所述加速卡维护成本与所述优先级负相关;
[0079] 步骤22:将优先级前N位的加速卡设置为目标加速卡;其中,N为所述目标加速卡数量;
[0080] 步骤23:将所述目标加速卡分配给所述目标终端。
[0081] 当S104确定的目标父节点的数量大于1时,将所述目标父节点下的加速卡分配给所述目标终端的过程可以包括以下步骤:
[0082] 步骤31:将每一所述目标父节点下的所有加速卡设置为加速卡集合;
[0083] 步骤32:根据加速卡维护成本确定所述加速卡集合中的加速卡的优先级;其中,所述加速卡维护成本与所述优先级负相关;
[0084] 步骤33:将每一所述加速卡集合中优先级前N位的加速卡设置为待选加速卡组;其中,N为所述目标加速卡数量;
[0085] 步骤34:将加速卡组维护成本最低的待选加速卡组设置为目标加速卡组;
[0086] 步骤35:将所述目标加速卡组对应的加速卡分配给所述目标终端。
[0087] 具体的,计算加速卡维护成本的操作可以为根据加速卡的持续工作时长计算所述加速卡维护成本;其中,所述持续工作时长与所述加速卡维护成本正相关。
[0088] 具体的,可以将所述待选加速卡组中所有加速卡的加速卡维护成本的和作为所述加速卡组维护成本。
[0089] 由于云平台中加速卡的持续工作时间越长,相应的维护成本越大。因此,在满足用户需求的同时需要尽可能最小化云平台的维护成本。当满足用户数量和速率要求的加速卡集合res得到后,由于用户在云平台使用时的传输速率考虑到加速卡之间的传输速率,不同路由下的加速卡传输速率无法确定。因此满足用户需求的加速卡集合需要在同一个路由下的加速卡中选取。在此基础上,需要将每个集合中每个子集中加速按照维护成本值进行从小到大的排序。综上可知本申请提出了一种获得维护成本最低的子集中符合用户数量的板卡集合方法,具体过程如下:
[0090] 步骤41、将经过算法1中得到的满足用户需求的加速卡集合res中的所有子集(假设为k)取出;
[0091] 步骤42、在每个加速卡子集中,将每个子集中的加速卡按照阈值中的每个加速卡的维护成本,按照从小到大的顺序排序;
[0092] 步骤43、从每个子集中按照维护成本从小到大的方式挑选出num1张加速卡。并记录该子集挑选出的num1张加速卡的维护成本之和。
[0093] 步骤44、对每个子集挑选出的num1加速卡维护成本之和从小到大排序,从中选出维护成本最低的子集中num1张加速卡。将相应的num1张加速卡的IP地址信息填入加速卡集合resFinal中;
[0094] 步骤45、返回resFinal。
[0095] 上述方法的输入值可以包括:符合用户需求的加速卡集合res中每个子集的加速卡阈值信息(阈值信息格式为[每个加速卡的维护成本,IP地址])、用户需求的加速卡数量k。
[0096] 上述方法的输出值可以为:满足用户需求的num1张加速卡的集合resFinal下面通过在实际应用中的实施例说明上述实施例描述的流程。
[0097] 在云平台加速卡计算效率已定的情况下,为满足用户对云平台的传输速率的需求,同时减少网络I/O时间。本实施例在云平台树型网络拓扑的基础上提出了一种改进的多叉树按层遍历算法,从而得到满足用户所需的多个结果子集构成的结果集合;然后,为最小化由于加速卡持续工作导致的加速卡维护成本,提出了一种基于改进的排序算法,从上述一种改进的多叉树按层遍历算法得到的某个结果子集中挑选出维护成本最低的符合用户需求数量的加速卡。最后,通过以上两种算法,在实现FPGA云平台加速卡资源分配的基础上,实现了云平台和用户合作共赢。
[0098] 为详细描述本发明所提出的一种FPGA云平台加速卡资源分配合作优化方法,本发明通过以下实例进行描述。本发明假设一种FPGA云平台的主路由器和其他路由器及加速卡等对应的子网拓扑,请参见图3图3为FPGA云平台网络拓扑结构示意图,假设用户购买的加速卡数量为2,所需加速卡传输速率为3M/S。本实施例根据CIDR子网划分和树型网络拓扑对其进行IP编址后,得到相应的多叉树结构,请参见图4,图4为FPGA云平台的多叉树结构示意图。按照算法对其进行按层遍历,依次遍历到第二层时可知2号节点和4号节点下的加速卡构成的子集可以满足用户的需求。因此,相应的结果集合res为{{(192.32.65.21、5M/S、1),(192.32.65.22、3M/S、1)},{(192.32.65.29、4M/S、1)、(192.32.65.30、6M/S、1)、(192.32.65.31、11M/S、1)}}。
[0099] 为最小化用户的维护成本,由于维护成本与持续工作时间成正比。因此,按照持续工作时间对结果集合res中的子集进行排序。满足用户需求的2张加速卡所组成的集合resFinal为{(192.32.65.29),(192.32.65.30)}。由图3可知,对应的实际加速卡编号为4号和5号。因此,云平台最终为用户分配的加速卡为4号加速卡和5号加速卡。
[0100] 在本实施例中,为满足用户对云平台的传输速率的需求,在云平台树型网络拓扑的基础上提出了一种改进的多叉树按层遍历算法,从而得到满足用户所需的多个结果子集构成的结果集合;然后,为最小化由于加速卡持续工作导致的加速卡维护成本,提出了一种基于改进的排序算法,从上述一种改进的多叉树按层遍历算法得到的某个结果子集中挑选出维护成本最低的符合用户需求数量的加速卡。最后,通过以上两种算法,在实现FPGA云平台加速卡资源分配的基础上,实现了云平台和用户合作共赢。
[0101] 请参见图5,图5为本申请实施例所提供的一种FPGA云平台的加速卡分配系统的结构示意图;
[0102] 该系统可以包括:
[0103] 多叉树模型构建模块100,用于确定FPGA云平台对应的加速卡和路由器,并构建所述加速卡和所述路由器的多叉树模型;
[0104] 查询模块200,用于查询所述多叉树模型上每一父节点下的加速卡最小数据传输速率和加速卡数量;
[0105] 目标信息确定模块300,用于当接收到目标终端的资源请求信息时,根据所述资源请求信息确定目标加速卡数量和目标数据传输速率;
[0106] 分配模块400,用于通过遍历所述多叉树模型确定目标父节点,并将所述目标父节点下的加速卡分配给所述目标终端;其中,所述目标父节点下的加速卡最小数据传输速率大于或等于所述目标数据传输速率,目标父节点下的加速卡数量大于或等于所述目标加速卡数量。
[0107] 本实施例首先根据FPGA云平台对应的加速卡和路由器构建多叉树模型,并统计每一父节点下的加速卡最小数据传输速率和加速卡数量。当接收到资源请求信息时,根据支援请求信息查询多叉树模型中符合该资源请求信息的目标父节点,并将目标父节点所包括的加速卡分配给目标终端。由于目标父节点的加速卡最小传输速率大于或等于目标数据传输速率,目标父节点下的加速卡数量大于或等于所述目标加速卡数量,因此目标父节点能够符合用户需求,能够在保证数据传输速率的前提下提高分配FPGA加速卡的效率。
[0108] 进一步的,多叉树模型构建模块100具体用于根据所述路由器和所述加速卡在树型网络拓扑中的物理位置执行IP编址操作,并通过无类别域间路由的方式对所述路由器和所述加速卡进行子网划分操作,得到多叉树模型。
[0109] 进一步的,当所述目标父节点的数量为1时,分配模块400包括:
[0110] 第一优先级确定单元,用于根据加速卡维护成本确定所述目标父节点下的加速卡的优先级;其中,所述加速卡维护成本与所述优先级负相关;
[0111] 目标加速卡设置单元,用于将优先级前N位的加速卡设置为目标加速卡;其中,N为所述目标加速卡数量;
[0112] 第一加速卡分配单元,用于将所述目标加速卡分配给所述目标终端。
[0113] 进一步的,当所述目标父节点的数量大于1时,分配模块400包括:
[0114] 加速卡集合确定单元,用于将每一所述目标父节点下的所有加速卡设置为加速卡集合;
[0115] 第二优先级确定单元,用于根据加速卡维护成本确定所述加速卡集合中的加速卡的优先级;其中,所述加速卡维护成本与所述优先级负相关;
[0116] 待选卡组确定单元,用于将每一所述加速卡集合中优先级前N位的加速卡设置为待选加速卡组;其中,N为所述目标加速卡数量;
[0117] 目标加速卡设置单元,用于将加速卡组维护成本最低的待选加速卡组设置为目标加速卡组;
[0118] 第一加速卡分配单元,用于将所述目标加速卡组对应的加速卡分配给所述目标终端。
[0119] 进一步的,还包括:
[0120] 第一成本计算模块,用于根据加速卡的持续工作时长计算所述加速卡维护成本;其中,所述持续工作时长与所述加速卡维护成本正相关。
[0121] 进一步的,还包括:
[0122] 第二成本计算模块,用于将所述待选加速卡组中所有加速卡的加速卡维护成本的和作为所述加速卡组维护成本。
[0123] 进一步的,还包括:
[0124] 标记模块,用于在将所述目标父节点下的加速卡分配给所述目标终端之后,将分配给所述目标终端的加速卡标记为已分配加速卡;
[0125] 模型更新模块,用于根据所述已分配加速卡的数量和数据传输速率更新所述多叉树模型。
[0126] 本实施例在加速卡计算速度和效率已定情况下,为满足用户对云平台的传输速率的需求,解决加速卡之间和加速卡与用户之间的传输速率受限的实际情况,本发明在云平台树型网络拓扑的基础上提出了一种改进的多叉树按层遍历算法,从而得到满足用户所需的多个结果子集构成的结果集合;然后,为最小化由于加速卡持续工作导致的加速卡维护成本,提出了一种基于改进的排序算法,从上述一种改进的多叉树按层遍历算法得到的某个结果子集中挑选出维护成本最低的符合用户需求数量的加速卡。最后,通过以上两种算法,在实现FPGA云平台加速卡资源分配的基础上,实现了云平台和用户合作共赢。
[0127] 由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
[0128] 本申请还提供了一种存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0129] 本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
[0130] 说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
[0131] 还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。