一种云中心硬件加速计算力的分配方法、系统和云中心与流程

文档序号:15981117发布日期:2018-11-17 00:20阅读:164来源:国知局

本发明涉及数据处理技术领域,特别涉及一种云中心硬件加速计算力的分配方法、系统和云中心。

背景技术

近年来,随着云计算和虚拟技术的推广普及,涌现出很多优秀的云计算应用服务平台,其聚合了大量的物理硬件资源,并采用虚拟化技术将物理硬件设备的硬件资源进行抽象,实现异构网络计算资源的统一的分配、调度和管理,从而达到充分利用软硬件资源、提高利用率的目的,在一定程度上解决了资源超配问题。

目前,随着互联网的迅速发展,从pc互联网、移动互联网来到物联网时代,万物互联的时代已经到来,设备接入的规模、大数据的规模、互联网应用的规模正在指数级增长,服务端需要处理的业务也处于指数级增长。

但是,云中心所使用处理器为通用处理器,而利用处理能力已经到达瓶颈的通用处理器处理大量的业务,会降低服务端处理业务时的计算能力,从而导致服务端的业务加速能力差。



技术实现要素:

本发明实施例提供了一种云中心硬件加速计算力的分配方法、系统和云中心,能够提高云中心业务加速能力。

第一方面,预先设置至少两个现场可编程门阵列fpga加速卡;

记录每一个所述fpga加速卡的硬件计算力;

接收至少一个外部客户端发送的fpga硬件资源申请;

针对每一个所述外部客户端,根据所述fpga硬件资源申请中的预估计算力和每一个所述硬件计算力,为所述fpga硬件资源申请分配云中心硬件加速计算力;

确定至少一个最优fpga加速卡,其中,每一个所述最优fpga加速卡的硬件计算力之和等于所述云中心硬件加速计算力;

利用每一个所述最优fpga加速卡为所述硬件资源申请对应的业务加速。

优选地,在所述预先设置至少两个fpga加速卡之后,进一步包括:

记录每一个所述fpga加速卡的运行状态;

所述根据所述fpga硬件资源申请中的预估计算力和每一个所述硬件计算力,为所述fpga硬件资源申请分配云中心硬件加速计算力,包括:

s0:根据每一个所述运行状态,确定是否存在至少两个所述运行状态为空闲的空闲fpga加速卡,如果是,执行s1,否则,执行s4;

s1:确定每一个所述空闲fpga加速卡的所述硬件计算力中,是否存在至少一个大于等于所述预估计算力的指定计算力,如果是,执行s2,否则,执行s3;

s2:确定所述指定计算力为云中心硬件加速计算力;

s3:确定每一个所述空闲fpga加速卡的所述硬件计算力中,是否存在至少两个所述硬件计算力之和大于等于所述预估计算力的所述指定计算力,如果是,执行s2,否则,执行s4;

s4:取消本次业务加速。

优选地,在所述否则之后,在所述取消本次业务加速之前,进一步包括:

d0:确定是否存在至少一个待定请求,其中,所述待定请求对应的业务的加速次数小于所述fpga硬件资源申请对应的业务的加速次数,如果是,执行d1,否则,执行所述取消本次业务加速;

d1:确定每一个所述待定请求中是否存在至少一个代替换请求,其中,所述代替换请求的硬件计算力小于所述预估计算力,如果是,执行d2,否则,执行所述取消本次业务加速;

d2:释放所述代替换请求对应的代替换fpga加速卡的加速资源,确定所述代替换fpga加速卡的所述硬件计算力为所述指定计算力,执行s2。

优选地,在所述预先设置至少两个fpga加速卡之后,进一步包括:

记录每一个所述fpga加速卡的硬件位置;

在所述如果是,在所述是否存在至少一个大于等于所述预估计算力的指定计算力之前,进一步包括:

根据每一个所述硬件位置,从至少两个所述空闲fpga加速卡中,确定出至少两个与所述fpga硬件资源申请中的业务位置相对最近的最近fpga加速卡;

确定每一个所述最近fpga加速卡中,执行所述是否存在至少一个大于等于所述预估计算力的指定计算力;

确定每一个所述最近fpga加速卡中,执行所述是否存在至少两个所述硬件计算力之和大于等于所述预估计算力的所述指定计算力。

优选地,在所述利用每一个所述最优fpga加速卡为所述硬件资源申请对应的业务加速之后,进一步包括:

当至少一个所述最优fpga加速卡出现异常时,从每一个所述最近fpga加速卡中,分配至少一个最佳fpga加速卡;

利用每一个所述最佳fpga加速卡,替换出现异常的所述最优fpga加速卡,其中,每一个所述最佳fpga加速卡的所述硬件计算力之和等于所述预估计算力,且分别对应的所述硬件位置与所述业务位置相对最近。

利用每一个所述最佳fpga加速卡和每一个未出现异常的所述最优fpga加速卡为所述业务加速。

优选地,在所述接收至少一个外部客户端发送的fpga硬件资源申请之后,进一步包括:

设置与所述fpga硬件资源申请相对应的冷却时长;

在所述利用每一个所述最优fpga加速卡为所述硬件资源申请对应的业务加速之后,进一步包括:

等待所述冷却时长,在所述冷却时长后释放每一个所述最优fpga加速卡。

优选地,在所述预先设置至少两个现场可编程门阵列fpga加速卡之后,进一步包括:

设置至少一个fpga硬件加速程序;

分别确定每一个所述fpga硬件加速程序的程序标识;

所述利用每一个所述最优fpga加速卡为所述硬件资源申请对应的业务加速,包括:

根据所述fpga硬件资源申请中的业务加速标识,从每一个所述程序标识中,确定与业务加速标识相同的指定程序标识;

将所述指定程序标识对应的所述fpga硬件加速程序,加载到每一个所述最优fpga加速卡中;

利用加载后的所述最优fpga加速卡,为所述硬件资源申请对应的业务加速。

第二方面,本发明实施例提供了一种云中心,包括:

fpga资源管理模块,用于预先设置至少两个现场可编程门阵列fpga加速卡;

fpga标注模块,用于记录每一个所述fpga资源管理模块设置的所述fpga加速卡的硬件计算力;

通信模块,用于接收至少一个外部客户端发送的fpga硬件资源申请;

fpga资源动态分配模块,用于针对每一个所述外部客户端,根据所述通信模块接收的所述fpga硬件资源申请中预估计算力和每一个所述fpga标注模块记录的所述硬件计算力,为所述fpga硬件资源申请分配云中心硬件加速计算力;确定至少一个最优fpga加速卡,其中,每一个所述最优fpga加速卡的硬件计算力之和等于所述云中心硬件加速计算力;

fpga加速模块,用于利用每一个所述fpga资源动态分配模块确定的所述最优fpga加速卡为所述硬件资源申请对应的业务加速。

优选地,所述fpga标注模块,进一步用于记录每一个所述fpga加速卡的运行状态;

所述fpga资源动态分配模块,用于执行:

s0:根据每一个所述运行状态,确定是否存在至少两个所述运行状态为空闲的空闲fpga加速卡,如果是,执行s1,否则,执行s4;

s1:确定每一个所述空闲fpga加速卡的所述硬件计算力中,是否存在至少一个大于等于所述预估计算力的指定计算力,如果是,执行s2,否则,执行s3;

s2:确定所述指定计算力为云中心硬件加速计算力;

s3:确定每一个所述空闲fpga加速卡的所述硬件计算力中,是否存在至少两个所述硬件计算力之和大于等于所述预估计算力的所述指定计算力,如果是,执行s2,否则,执行s4;

s4:取消本次业务加速。

第三方面,本发明实施例提供了一种云中心硬件加速计算力的分配系统,其特征在于,包括:第二方面所述的云中心,以及至少一个客户端;

所述客户端,用于在接收到用户发送的fpga硬件资源申请时,将所述fpga硬件资源申请发送给所述云中心。

在本发明实施例中,通过预先设置至少两个fpga加速卡,以及记录每一个fpga加速卡的硬件计算力,即可在接收到外部客户端发送的fpga硬件资源申请时,为fpga硬件资源申请分配云中心硬件加速计算力,以使利用云中心硬件加速计算力对应的每一个最优fpga加速卡为业务加速,而利用功耗低、实施并行处理能力强、动态可擦洗的最优fpga加速卡中加载待启动fpga硬件加速程序,即可提升云中心处理业务时的计算能力,进而实现提高云中心的业务加速能力的目的。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例提供的一种云中心硬件加速计算力的分配方法的流程图;

图2是本发明一实施例提供的一种云中心的结构示意图;

图3是本发明一实施例提供的一种云中心硬件加速计算力的分配系统的结构示意图;

图4是本发明一实施例提供的另一种云中心硬件加速计算力的分配系统的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供了一种业务加速方法,应用于服务端,包括:

步骤101:预先设置至少两个现场可编程门阵列fpga加速卡;

步骤102:记录每一个所述fpga加速卡的硬件计算力;

步骤103:接收至少一个外部客户端发送的fpga硬件资源申请;

步骤104:针对每一个所述外部客户端,根据所述fpga硬件资源申请中的预估计算力和每一个所述硬件计算力,为所述fpga硬件资源申请分配云中心硬件加速计算力;

步骤105:确定至少一个最优fpga加速卡,其中,每一个所述最优fpga加速卡的硬件计算力之和等于所述云中心硬件加速计算力;

步骤106:利用每一个所述最优fpga加速卡为所述硬件资源申请对应的业务加速。

在本发明实施例中,通过预先设置至少两个fpga加速卡,以及记录每一个fpga加速卡的硬件计算力,即可在接收到外部客户端发送的fpga硬件资源申请时,为fpga硬件资源申请分配云中心硬件加速计算力,以使利用云中心硬件加速计算力对应的每一个最优fpga加速卡为业务加速,而利用功耗低、实施并行处理能力强、动态可擦洗的最优fpga加速卡中加载待启动fpga硬件加速程序,即可提升云中心处理业务时的计算能力,进而实现提高云中心的业务加速能力的目的。

在本发明一实施例中,在所述预先设置至少两个fpga加速卡之后,进一步包括:

记录每一个所述fpga加速卡的运行状态;

所述根据所述fpga硬件资源申请中的预估计算力和每一个所述硬件计算力,为所述fpga硬件资源申请分配云中心硬件加速计算力,包括:

s0:根据每一个所述运行状态,确定是否存在至少两个所述运行状态为空闲的空闲fpga加速卡,如果是,执行s1,否则,执行s4;

s1:确定每一个所述空闲fpga加速卡的所述硬件计算力中,是否存在至少一个大于等于所述预估计算力的指定计算力,如果是,执行s2,否则,执行s3;

s2:确定所述指定计算力为云中心硬件加速计算力;

s3:确定每一个所述空闲fpga加速卡的所述硬件计算力中,是否存在至少两个所述硬件计算力之和大于等于所述预估计算力的所述指定计算力,如果是,执行s2,否则,执行s4;

s4:取消本次业务加速。

在本发明实施例中,在为fpga硬件资源申请分配云中心硬件加速计算力之前,需要每一个fpga加速卡的运行状态,以使根据运行状态为空闲的fpga加速卡对应的硬件计算力,为fpga硬件资源申请分配云中心硬件加速计算力,而分配的云中心硬件加速计算力,可以是由至少一个最优的fpga加速卡的硬件计算力所组成。综上可见,通过利用fpga功耗低、实时并行处理能力强、动态可擦洗的特点,与实际情况相结合,实现了应用业务硬件加速,提升了客户的业务运营效率,进而提高云中心的资源利用率。

在本发明一实施例中,在所述否则之后,在所述取消本次业务加速之前,进一步包括:

d0:确定是否存在至少一个待定请求,其中,所述待定请求对应的业务的加速次数小于所述fpga硬件资源申请对应的业务的加速次数,如果是,执行d1,否则,执行所述取消本次业务加速;

d1:确定每一个所述待定请求中是否存在至少一个代替换请求,其中,所述代替换请求的硬件计算力小于所述预估计算力,如果是,执行d2,否则,执行所述取消本次业务加速;

d2:释放所述代替换请求对应的代替换fpga加速卡的加速资源,确定所述代替换fpga加速卡的所述硬件计算力为所述指定计算力,执行s2。

在本发明实施例中,当不存在至少两个运行状态为空闲的空闲fpga加速卡,或空闲fpga加速卡的硬件计算力低于预估计算力时,则需要根据业务的加速次数和硬件计算力,确定业务的权重,进而确定是否释放正在加速的待定请求对应的代替换fpga加速卡的加速资源,当且仅当在待定请求对应的业务权重较低时,释放加速资源,以使利用被释放的代替换fpga加速卡为fpga硬件资源申请对应的业务加速,进而实现提升云中心处理业务时的计算能力,进而实现提高云中心的业务加速能力的目的。

在本发明一实施例中,在所述预先设置至少两个fpga加速卡之后,进一步包括:

记录每一个所述fpga加速卡的硬件位置;

在所述如果是,在所述是否存在至少一个大于等于所述预估计算力的指定计算力之前,进一步包括:

根据每一个所述硬件位置,从至少两个所述空闲fpga加速卡中,确定出至少两个与所述fpga硬件资源申请中的业务位置相对最近的最近fpga加速卡;

确定每一个所述最近fpga加速卡中,执行所述是否存在至少一个大于等于所述预估计算力的指定计算力;

确定每一个所述最近fpga加速卡中,执行所述是否存在至少两个所述硬件计算力之和大于等于所述预估计算力的所述指定计算力。

在本发明实施例中,通过记录每一个fpga加速卡的硬件位置,便于在确定出至少两个空闲fpga加速卡后,从空闲fpga加速卡确定出与业务需求中的业务位置相对最近的最近fpga加速卡,进而根据最近fpga加速卡确定最优fpga加速卡。而确定与业务位置相对最近的最近fpga加速卡,不仅可以提高服务端的业务加速能力,进而提高服务端的运营效率,还可以优化服务端的资源配置,避免在为fpga硬件资源申请对应的业务加速时,耗费过多的资源。

在本发明一实施例中,在所述利用每一个所述最优fpga加速卡为所述硬件资源申请对应的业务加速之后,进一步包括:

当至少一个所述最优fpga加速卡出现异常时,从每一个所述最近fpga加速卡中,分配至少一个最佳fpga加速卡;

利用每一个所述最佳fpga加速卡,替换出现异常的所述最优fpga加速卡,其中,每一个所述最佳fpga加速卡的所述硬件计算力之和等于所述预估计算力,且分别对应的所述硬件位置与所述业务位置相对最近。

利用每一个所述最佳fpga加速卡和每一个未出现异常的所述最优fpga加速卡为所述业务加速。

在本发明实施例中,当最优fpga加速卡出现异常时,则需要计算迁移,因此需要进行fpga硬件调度,重新为fpga硬件资源申请分配最佳fpga加速卡,以使通过最佳fpga加速卡和未出现异常的最优fpga加速卡为业务加速,进而实现提高云中心的业务加速能力的目的。

在本发明一实施例中,在所述接收至少一个外部客户端发送的fpga硬件资源申请之后,进一步包括:

设置与所述fpga硬件资源申请相对应的冷却时长;

在所述利用每一个所述最优fpga加速卡为所述硬件资源申请对应的业务加速之后,进一步包括:

等待所述冷却时长,在所述冷却时长后释放每一个所述最优fpga加速卡。

在本发明实施例中,当fpga硬件资源申请对应的业务加速完毕后,需要等待与fpga硬件资源申请对应的冷却时长后,再释放部分fpga硬件资源,可以避免周期性瞬间业务量激增或下降的波动,带来的资源切换导致的资源消耗。

在本发明一实施例中,在所述预先设置至少两个现场可编程门阵列fpga加速卡之后,进一步包括:

设置至少一个fpga硬件加速程序;

分别确定每一个所述fpga硬件加速程序的程序标识;

所述利用每一个所述最优fpga加速卡为所述硬件资源申请对应的业务加速,包括:

根据所述fpga硬件资源申请中的业务加速标识,从每一个所述程序标识中,确定与业务加速标识相同的指定程序标识;

将所述指定程序标识对应的所述fpga硬件加速程序,加载到每一个所述最优fpga加速卡中;

利用加载后的所述最优fpga加速卡,为所述硬件资源申请对应的业务加速。

在本发明实施例中,在设置fpga硬件加速程序之后,需要对每一个fpga硬件加速程序进行标识,以使在接收到fpga硬件资源申请时,根据fpga硬件资源申请中的业务加速标识和程序标识,查找标识相同的指定程序标识,以使通过指定程序标识对应的fpga硬件加速程序为业务加速,进而通过提升服务端处理业务时的计算能力,实现提高服务端的业务加速能力的目的。

如图2所示,本发明实施例提供了一种云中心,包括:

fpga资源管理模块201,用于预先设置至少两个现场可编程门阵列fpga加速卡;

fpga标注模块202,用于记录每一个所述fpga资源管理模块201设置的所述fpga加速卡的硬件计算力;

通信模块203,用于接收至少一个外部客户端发送的fpga硬件资源申请;

fpga资源动态分配模块204,用于针对每一个所述外部客户端,根据所述通信模块203接收的所述fpga硬件资源申请中预估计算力和每一个所述fpga标注模块202记录的所述硬件计算力,为所述fpga硬件资源申请分配云中心硬件加速计算力;确定至少一个最优fpga加速卡,其中,每一个所述最优fpga加速卡的硬件计算力之和等于所述云中心硬件加速计算力;

fpga加速模块205,用于利用每一个所述fpga资源动态分配模块204确定的所述最优fpga加速卡为所述硬件资源申请对应的业务加速。

在本发明实施例中,通过fpga资源管理模块预先设置至少两个fpga加速卡,以及通过fpga标注模块记录每一个fpga加速卡的硬件计算力,fpga资源动态分配模块即可在通信模块接收到外部客户端发送的fpga硬件资源申请时,为fpga硬件资源申请分配云中心硬件加速计算力,以使fpga加速模块利用云中心硬件加速计算力对应的每一个最优fpga加速卡为业务加速,而利用功耗低、实施并行处理能力强、动态可擦洗的最优fpga加速卡中加载待启动fpga硬件加速程序,即可提升云中心处理业务时的计算能力,进而实现提高云中心的业务加速能力的目的。

在本发明一实施例中,所述fpga标注模块,进一步用于记录每一个所述fpga加速卡的运行状态;

所述fpga资源动态分配模块,用于执行:

s0:根据每一个所述运行状态,确定是否存在至少两个所述运行状态为空闲的空闲fpga加速卡,如果是,执行s1,否则,执行s4;

s1:确定每一个所述空闲fpga加速卡的所述硬件计算力中,是否存在至少一个大于等于所述预估计算力的指定计算力,如果是,执行s2,否则,执行s3;

s2:确定所述指定计算力为云中心硬件加速计算力;

s3:确定每一个所述空闲fpga加速卡的所述硬件计算力中,是否存在至少两个所述硬件计算力之和大于等于所述预估计算力的所述指定计算力,如果是,执行s2,否则,执行s4;

s4:取消本次业务加速。

如图3所示,本发明实施例提供了一种云中心硬件加速计算力的分配系统,包括:上述任一所述的云中心301,以及至少一个客户端302;

所述客户端302,用于在接收到用户发送的fpga硬件资源申请时,将所述fpga硬件资源申请发送给所述云中心301。

在本发明实施例中,云中心通过预先设置至少两个fpga加速卡,以及记录每一个fpga加速卡的硬件计算力,即可在接收到客户端发送的fpga硬件资源申请时,为fpga硬件资源申请分配云中心硬件加速计算力,以使利用云中心硬件加速计算力对应的每一个最优fpga加速卡为业务加速,而利用功耗低、实施并行处理能力强、动态可擦洗的最优fpga加速卡中加载待启动fpga硬件加速程序,即可提升云中心处理业务时的计算能力,进而实现提高云中心的业务加速能力的目的。

为了更加清晰的说明本发明的技术方案及优点,下面以客户端a、客户端b和客户端c、云中心为例,对本发明实施例提供了一种业务加速系统进行详细描述,如图4所示,包括:

客户端a401、客户端b402和客户端c403分别与云中心相连。

云中心404,用于预先设置至少两个fpga加速卡,并记录每一个fpga加速卡的硬件位置、计算力和运行状态。

具体地,通过设置fpga加速卡,即可在利用功耗低、实时并行处理能力强、动态可擦洗的fpga加速卡,为加速需求对应的业务加速,进而提升服务端处理业务时的计算能力,实现提高服务端的业务加速能力的目的,而记录fpga加速卡的基础信息,即硬件位置、计算力和运行状态,可以使得根据基础信息,为用户发送的加速需求确定最佳的fpga加速卡。

举例来说,云中心设置fpga加速卡z、fpga加速卡x、fpga加速卡c和fpga加速卡v;

fpga加速卡z的硬件位置为济南市、硬件计算力为3000,运行状态为空闲;

fpga加速卡x的硬件位置为长沙市、硬件计算力为5000,运行状态为空闲;

fpga加速卡c的硬件位置为北京市、硬件计算力为4400,运行状态为空闲;

fpga加速卡v的硬件位置为淄博市、硬件计算力为2100,运行状态为空闲。

云中心404,用于设置至少一个fpga硬件加速程序,并分别确定每一个fpga硬件加速程序的程序标识。

具体地,通过设置fpga硬件加速程序,可以使得在接收到客户端的加速需求时,将fpga硬件加速程序加载到fpga加速卡中,再利用加载后的fpga加速卡为业务加速。

举例来说,云中心设置fpga硬件加速程序q、fpga硬件加速程序w和fpga硬件加速程序e;

确定fpga硬件加速程序q的程序标识为q、确定fpga硬件加速程序w的程序标识为w,确定fpga硬件加速程序e的程序标识为e。

客户端b402,用于在接收到用户发送的fpga硬件资源申请时,将fpga硬件资源申请发送给云中心。

具体地,用户如需业务加速,需要向客户端发送fpga硬件资源申请,以使客户端将fpga硬件资源申请发送给云中心,通过云中心为业务加速。

举例来说,客户端b接收用户发送的fpga硬件资源申请,其中,fpga硬件资源申请中的业务位置为济南市、预估计算力为5000和业务加速标识为q。

云中心404,用于接收客户端b402发送的fpga硬件资源申请。

具体地,云中心在接收到客户端b发送的fpga硬件资源申请后,即可为fpga硬件资源申请对应的业务分配fpga硬件资源。

云中心404,用于设置与fpga硬件资源申请对应的冷却时长。

具体地,设置冷却时长,可以使得在为业务加速完毕后,等待冷却时长后再释放部分fpga硬件资源,防止周期性瞬间业务量激增或下降的波动带来的资源切换带来的资源消耗。

举例来说,冷却时长为10min。

云中心404,用于执行:

a0:根据每一个运行状态,确定是否存在至少两个所述运行状态为空闲的空闲fpga加速卡,如果是,执行a1,否则,执行a4;

具体地,云中心在为fpga硬件资源申请对应的业务分配fpga硬件资源时,需要先根据每一个fpga加速卡的运行状态,确定至少两个空闲的空闲fpga加速卡,进而从空闲fpga加速卡中,确定出最佳fpga加速卡。

举例来说,根据fpga加速卡z、fpga加速卡x、fpga加速卡c和fpga加速卡v的运行状态,确定fpga加速卡z、fpga加速卡x、fpga加速卡c和fpga加速卡v均为空闲fpga加速卡。

a1:根据每一个硬件位置,从至少两个空闲fpga加速卡中,确定出至少两个与fpga硬件资源申请中的业务位置相对最近的最近fpga加速卡。

具体地,在确定出空闲fpga加速卡后,需要再根据各个空闲fpga加速卡的硬件位置,确定与fpga硬件资源申请中的业务位置相对最近的最近fpga加速卡,以使在为fpga硬件资源申请对应的业务加速的同时,降低云中心在加速的过程中的资源损耗。

举例来说,根据硬件位置为济南市、长沙市、为北京市和淄博市,确定与业务位置为济南市相对最近的fpga加速卡z和fpga加速卡v为最近fpga加速卡。

a2:确定每一个最近fpga加速卡中,是否存在至少一个大于等于预估计算力的指定计算力,如果是,执行a3,否则,执行a4。

具体地,在确定与fpga硬件资源申请中的业务位置相对最近的最近fpga加速卡后,需要确定各个最近fpga加速卡的硬件计算力,以使根据计算力,确定最优fpga加速卡。

举例来说,将fpga加速卡z的计算力为3000与fpga硬件资源申请对应预估计算力为5000进行比对,确定fpga加速卡z的计算力小于预估计算力;

将fpga加速卡v的计算力为2100与预估计算力为5000进行比对,确定fpga加速卡v的计算力小于预估计算力。

a3:确定指定计算力为云中心硬件加速计算力。

具体地,当存在大于等于预估计算力的指定计算力时,即可确定指定计算力为云中心硬件加速计算力,进而确定云中心硬件加速计算力对应的每一个fpga加速卡为最优fpga加速卡,即可利用最优fpga加速卡为业务加速。

a4:确定每一个最近fpga加速卡中,是否存在至少两个硬件计算力之和大于等于预估计算力的指定计算力,如果是,执行a3,否则,执行a5。

具体地,当确定不存在至少一个大于等于预估计算力的指定计算力时,则需要重新确定fpga硬件资源,以使利用多个fpga加速卡的硬件计算力为业务加速。

举例来说,确定fpga加速卡z和fpga加速卡v的计算力之和为5100;

将计算力5100与预估计算力5000比对,确定fpga加速卡z和fpga加速卡v的计算力之和,大于预估计算力,因此确定fpga加速卡z和fpga加速卡v为最优fpga加速卡。

a5:确定是否存在至少一个待定请求,其中,待定请求对应的业务的加速次数小于fpga硬件资源申请对应的业务的加速次数,如果是,执行a6,否则,执行a8。

具体地,当不存在至少两个空闲的空闲fpga加速卡或不存在至少两个计算力之和大于预估计算力的匹配加速卡时,则需要确定fpga硬件资源申请对应的业务的权重,即确定fpga硬件资源申请对应的加速次数,以使根据权重重新分配fpga硬件资源。

a6:确定每一个待定请求中是否存在至少一个代替换请求,其中,代替换请求的硬件计算力小于预估计算力,如果是,执行a7,否则,执行a8。

具体地,当确定待定请求对应的加速次数小于,fpga硬件资源申请对应业加速次数时,还需要对比计算力,以使将各个待定请求中计算力小的代替换请求对应的代替换fpga加速卡分配给fpga硬件资源申请对应的业务。

a7:释放代替换请求对应的代替换fpga加速卡的加速资源,确定代替换fpga加速卡的硬件计算力为指定计算力,执行a3。

具体地,当根据计算力和加速次数,确定fpga硬件资源申请对应的业务的权重较高时,即需要释放权重较低的代替换fpga加速卡,以使利用代替换fpga加速卡为业务加速。

a8:取消本次业务加速。

具体地,当确定fpga硬件资源申请对应的业务权重较低时,则取消本次加速。

云中心404,用于根据fpga硬件资源申请中的业务加速标识,从每一个程序标识中,确定与业务加速标识相同的指定程序标识,并确定指定程序标识对应的pga硬件加速程序为待启动fpga硬件加速程序,将待启动fpga硬件加速程序加载到每一个最优fpga加速卡中,利用每一个被加载的最优fpga加速卡,为fpga硬件资源申请对应的业务加速。

具体地,在确定fpga硬件资源申请对应的fpga硬件加速程序时,需要从记录的每一个程序标识中,确定与fpga硬件资源申请中的业务加速标识相同的指定程序标识,以使利用指定程序标识对应的待启动fpga硬件加速程序和最优fpga加速卡为业务加速。

举例来说,业务加速标识为q,在程序标识为q、程序标识为w和程序标识为e中,fpga硬件加速程序q的程序标识与业务加速标识相同,因此确定fpga硬件加速程序q为待启动fpga硬件加速程序;

将fpga硬件加速程序q加载到最优fpga加速卡中,利用加载后的最优fpga加速卡为fpga硬件资源申请对应的业务加速。

云中心404,用于当确定至少一个被加载的最优fpga加速卡出现异常时,从至少一个fpga硬件加速程序中,重新为fpga硬件资源申请分配至少一个对应的最佳fpga加速卡,其中,每一个最佳fpga加速卡的计算力之和大于等于预估计算力,且分别对应的硬件位置与业务位置相对最近。

具体地,当最优fpga加速卡出现异常或出现计算迁移时,则需要重新为fpga硬件资源申请重新分配最佳fpga加速卡,以使利用最佳fpga加速卡为业务加速,实现实时恢复业务的目的。

云中心404,用于在每一个最佳fpga加速卡中加载待启动fpga硬件加速程序,利用每一个被加载的最佳fpga加速卡为业务加速。

具体地,在确定出最佳fpga加速卡后,需要重新加载待启动fpga硬件加速程序到最佳fpga加速卡中,以使利用加载后的最佳fpga加速卡为业务加速。

云中心404,用于当确定最优fpga加速卡或最佳fpga加速卡为业务加速完毕后,等待冷却时长后释放每一个最优fpga加速卡。

具体地,可以有效的解决短周期峰值带来的资源切换损失问题。

本发明各个实施例至少具有如下有益效果:

1、在本发明一实施例中,通过预先设置至少两个fpga加速卡,以及记录每一个fpga加速卡的硬件计算力,即可在接收到外部客户端发送的fpga硬件资源申请时,为fpga硬件资源申请分配云中心硬件加速计算力,以使利用云中心硬件加速计算力对应的每一个最优fpga加速卡为业务加速,而利用功耗低、实施并行处理能力强、动态可擦洗的最优fpga加速卡中加载待启动fpga硬件加速程序,即可提升云中心处理业务时的计算能力,进而实现提高云中心的业务加速能力的目的。

2、在本发明一实施例中,在为fpga硬件资源申请分配云中心硬件加速计算力之前,需要每一个fpga加速卡的运行状态,以使根据运行状态为空闲的fpga加速卡对应的硬件计算力,为fpga硬件资源申请分配云中心硬件加速计算力,而分配的云中心硬件加速计算力,可以是由至少一个最优的fpga加速卡的硬件计算力所组成。综上可见,通过利用fpga功耗低、实时并行处理能力强、动态可擦洗的特点,与实际情况相结合,实现了应用业务硬件加速,提升了客户的业务运营效率,进而提高云中心的资源利用率。

3、在本发明一实施例中,当不存在至少两个运行状态为空闲的空闲fpga加速卡,或空闲fpga加速卡的硬件计算力低于预估计算力时,则需要根据业务的加速次数和硬件计算力,确定业务的权重,进而确定是否释放正在加速的待定请求对应的代替换fpga加速卡的加速资源,当且仅当在待定请求对应的业务权重较低时,释放加速资源,以使利用被释放的代替换fpga加速卡为fpga硬件资源申请对应的业务加速,进而实现提升云中心处理业务时的计算能力,进而实现提高云中心的业务加速能力的目的。

4、在本发明一实施例中,通过记录每一个fpga加速卡的硬件位置,便于在确定出至少两个空闲fpga加速卡后,从空闲fpga加速卡确定出与业务需求中的业务位置相对最近的最近fpga加速卡,进而根据最近fpga加速卡确定最优fpga加速卡。而确定与业务位置相对最近的最近fpga加速卡,不仅可以提高服务端的业务加速能力,进而提高服务端的运营效率,还可以优化服务端的资源配置,避免在为fpga硬件资源申请对应的业务加速时,耗费过多的资源。

5、在本发明一实施例中,当最优fpga加速卡出现异常时,则需要计算迁移,因此需要进行fpga硬件调度,重新为fpga硬件资源申请分配最佳fpga加速卡,以使通过最佳fpga加速卡和未出现异常的最优fpga加速卡为业务加速,进而实现提高云中心的业务加速能力的目的。

6、在本发明一实施例中,当fpga硬件资源申请对应的业务加速完毕后,需要等待与fpga硬件资源申请对应的冷却时长后,再释放部分fpga硬件资源,可以避免周期性瞬间业务量激增或下降的波动,带来的资源切换导致的资源消耗。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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