CN110764904B - 一种基于fpga芯片的资源调度方法及系统 - Google Patents
一种基于fpga芯片的资源调度方法及系统 Download PDFInfo
- Publication number
- CN110764904B CN110764904B CN201910899469.6A CN201910899469A CN110764904B CN 110764904 B CN110764904 B CN 110764904B CN 201910899469 A CN201910899469 A CN 201910899469A CN 110764904 B CN110764904 B CN 110764904B
- Authority
- CN
- China
- Prior art keywords
- resource
- fpg
- server
- information
- chip
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于FPGA芯片的资源调度方法及系统,方法具体包括如下步骤:获取不同服务器上的FPGA芯片状态信息;获取任务信息;对比所述不同服务器上的FPGA芯片状态信息并筛选出执行服务器;将任务信息发送至所述执行服务器,使其执行任务。本发明是基于FPGA芯片并通过在服务器中安装的FPGA感知模块、资源监控模块和任务执行模块,实现了同时从多个服务器中通过对比筛选出执行服务器,并选取最佳执行FPGA的芯片的目的,由此有效增大了数据处理量、提高了数据处理效率、提高了能效比。
Description
技术领域
本发明属于计算机应用技术领域,特别涉及一种基于FPGA芯片的资源调度方法及其系统。
背景技术
FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列),是在PAL、GAL等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA器件属于专用集成电路中的一种半定制电路,是可编程的逻辑列阵,能够有效的解决原有的器件门电路数较少的问题。FPGA的基本结构包括可编程输入输出单元,可配置逻辑块,数字时钟管理模块,嵌入式系统,布线资源,内嵌专用硬核,底层内嵌功能单元。FPGA嵌入式系统由微处理模块、FPGA部分以及外设EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)等设备组成,其中微处理模块是系统主控部分,主要负责管理FPGA系统正常运行、下发控制命令以及接收FPGA系统的运行结果返回。
近年来,FPGA以其现场可编程特性、开发周期短、高集成度、低成本等优势,以及可重构的特性使得它被广泛应用于数字系统的设计与实现上。
针对不同的调度策略与不同的调度需求,需要采用不同的资源调度方式。现有的FPGA使用方式存在以下缺点:1、依赖对开发环境,即,不同服务器上的开发环境均需要从0开始安装和设置;2、使用方式为手动选择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的芯片的目的,由此有效增大了数据处理量、提高了数据处理效率、提高了能效比。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了基于FPGA芯片的资源调度方法的流程示意图;
图2示出了基于FPGA芯片的资源调度系统示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地说明,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
FPGA利用小型查找表(16&TImes;1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部电可擦可编程只读存储器加载编程数据来实现的,存储在电可擦可编程只读存储器中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能。
如图1所示,示出了一种基于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和/或CPU和/或内存等,待选择到任务需求的资源大小与服务器剩余的空间大小最为接近的服务器,便将任务调度到该服务器上。
筛选执行服务器的步骤为:粗筛和精筛;
所述粗筛为:资源管理模块按照调度请求信息,判断哪些服务器满足需求,满足的条件为服务器的可使用空间大于或等于照调度请求信息所要占用的空间,然后将满足需求的服务器加入可用列表;
所述精筛为:资源管理模块给可用列表中的服务器得分进行计算,选出最优服务器。
其中,所述得分由下列公式计算得到:
Final Score Node=(weight-1*strategic Function-1)+(weight-2*strategic
Function-2)+…+(weight-n*strategic Function-n)
其中,weight-1是第1个关键资源的权重;weight-2是第2个关键资源的权重;weight-n是第n个关键资源的权重;strategic Function-1为设置的第1个策略函数;strategic Function-2为设置的第2个策略函数;strategic Function-n为设置的第n个策略函数。
设置的策略为负载均衡,负载均衡是将流量负载分摊到不同的服务模块,保证服务器的可用,保证响应足够快,给用户良好的体验。在得分计算过程中利用率较低的服务器得分就越多。最终根据得分公式计算出列表中所有服务器的得分,并将任务分配到得分最高的服务器上。当出现最高得分相同的情况,则将任务随机分配到得分最高的一台服务器上。
示例性的,本技术方案中的策略函数即为服务器中的剩余资源信息大小与任务信息所占资源的大小差的绝对值的倒数。
示例性的,执行任务之前在系统内预设好任务信息,示例性的第一个任务信息需要占用3张FPGA。
系统内的服务器第一服务器、第二服务器和第三服务器的资源大小分别为:2张FPGA;4张FPGA;8张FPGA;定义服务器中的关键资源为FPGA。
在进行执行服务器筛选的时候,资源管理模块遍历系统内的所有服务器,确认哪些服务器的资源大于或者等于任务信息所要占用资源的大小,根据上述服务器信息和任务信息的资源信息,第一服务器的资源信息小于任务信息所要占用资源的大小,第二服务器的资源大小等于任务信息的所要求的资源大小,第三服务器的资源大小等于任务信息的所要求的资源大小,因此第一服务器不能被列入可用列表内,第二服务器和第三服务器被列入可用列表内,在列出可用服务器列表之后,资源管理模块给可用列表中的服务器得分进行计算,选出执行度最佳的执行服务器。具体的:得分由下列公式计算得到:
Final Score Node=(weight-1*strategic Function-1)+(weight-2*strategic
Function-2)+…+(weight-n*strategic Function-n)
其中,weight-1是第1个关键资源的权重;weight-2是第2个关键资源的权重;weight-n是第n个关键资源的权重;strategic Function-1为设置的第1个策略函数;strategic Function-2为设置的第2个策略函数;strategic Function-n为设置的第n个策略函数。
具体的,本技术方案中,资源的决定因素便为FPGA,;策略函数具体为每个服务器中每个决定因素的资源大小与任务信息资源中决定因素的资源大小的差的绝对值;每个服务器的得分便为:权重与策略函数的乘积。
第二服务器的得分为:Final Score Node=1*1/(4-3)=1;
第三服务器的得分为:Final Score Node=1*1/(8-3)=1/5;
第二服务器的得分高于第三服务器,因此,资源管理模块将会选择第二服务器作为执行服务器。
通过对各个服务器的粗筛和精筛,能够同时监控FPGA的使用情况,根据其使用情况筛选出最佳执行服务器,有利于提高工作效率和精确度。
步骤三:所述资源管理模块将任务信息发送至所述执行服务器,所述执行服务器执行所述任务信息。
具体的,所述资源管理模块在筛选出执行服务器之后将会把任务命令调度至所述执行服务器的任务执行模块,然后将所述执行服务器内的处理资源分配给任务信息,任务执行模块执行任务,直至任务结束。
示例性的,系统中资源管理模块将第一个任务信息调度至第二服务中,第二服务器中的FPGA的电可擦可编程只读存储器在FPGA系统上电后,调度电可擦可编程只读存储器中的FPGA业务程序,电可擦可编程只读存储器运行FPGA的可执行代码,将任务命令逐步执行,直至任务结束。
步骤四:资源管理模块接收FPGA芯片状态变化信息并更新FPGA芯片状态信息。
具体的,任务信息执行完成后,所述资源监控模块监测FPGA芯片状态变化信息并将FPGA芯片状态标记为空闲,然后传递至资源管理模块,所述资源管理模块接收所述资源监控模块发送的FPGA芯片资源信息;所述资源管理模块根据所接收到的FPGA芯片资源信息更新信息模块中的FPGA芯片资源信息。
示例性地,第一个任务执行完成后,第二服务器上的FPGA感知模块感知到该FPGA芯片状态由被占用变为空闲后,将FPGA状态上报给第二资源监控模块,第二资源监控模块将第二服务器中的FPGA芯片的状态进行修改标记为空闲状态,并转发至系统中的资源管理模块,资源管理模块接收到信息之后,对第二服务器的状态进行修改,以便于下次任务的执行。
更进一步的,在第一个任务在执行的过程中,因为第一个任务所占用的资源信息大小为3张FPGA,并未全部占用第二服务器的所有资源,第二服务器还剩余1张FPGA;当系统接收到第二任务信息时,示例性的第二任务信息需要占用1张FPGA,系统会重复步骤二对执行服务器进行筛选,通过筛选计算得出第二服务器的得分仍然最高,匹配度最高,依然被选择作为执行服务器,当第二服务器被调度执行第二个任务时,此时第二服务器的剩余资源为0张FPGA,当第一个任务执行完成之后,第二服务器中的第二资源监控模块将第二服务器中的FPGA芯片的状态进行修改标记并转发至系统中的资源管理模块,资源管理模块接收到信息之后,对第二服务器的FPGA芯片资源信息进行修改,第二服务器的资源状态信息变成3张FPGA,然后状态信息更新在信息模块。
当然,本申请的资源调度方法不仅仅适用于FPGA芯片处理信息,还适用于服务期内有多种处理单元的情况下进行资源调度。
示例性的,执行任务之前在系统内预设好任务信息,示例性的第一个任务信息需要占用3张FPGA,16个CPU,32G内存的资源。
系统内的服务器第一服务器、第二服务器和第三服务器的资源大小分别为:2张FPGA,8个CPU,16G内存;4张FPGA,32个CPU,64G内存;8张FPGA,64个CPU,64G内存;定义服务器中的关键资源为FPGA,CPU,和内存,且他们的权重分别为0.8、0.1和0.1。
在进行执行服务器筛选的时候,资源管理模块遍历系统内的所有服务器,确认哪些服务器的资源大于或者等于任务信息所要占用资源的大小,根据上述服务器信息和任务信息的资源信息,第一服务器的资源信息小于任务信息所要占用资源的大小,第二服务器的资源大小等于任务信息的所要求的资源大小,第三服务器的资源大小等于任务信息的所要求的资源大小,因此第一服务器不能被列入可用列表内,第二服务器和第三服务器被列入可用列表内,在列出可用服务器列表之后,资源管理模块给可用列表中的服务器得分进行计算,选出执行度最佳的执行服务器。具体的:得分由下列公式计算得到:
Final Score Node=(weight-1*strategic Function-1)+(weight-2*strategic
Function-2)+…+(weight-n*strategic Function-n)
其中,weight-1是第1个关键资源的权重;weight-2是第2个关键资源的权重;weight-n是第n个关键资源的权重;strategic Function-1为设置的第1个策略函数;strategic Function-2为设置的第2个策略函数;strategic Function-n为设置的第n个策略函数。
具体的,本技术方案中,资源的决定因素有3个,分别为:FPGA,CPU,和内存,其权重分别为:0.8、0.1和0.1;策略函数具体为每个服务器中每个决定因素的资源大小与任务信息资源中决定因素的资源大小的差的绝对值倒数;每个服务器的得分便为:权重与策略函数的乘积。
更进一步的,第一服务器因FPGA资源不足被过滤掉;第二服务器得分为:FinalScore Node=0.8*1/(4-3)+0.1*1/(32-16)+0.1*1/(64-32)=0.809;
第三服务器的得分为:Final Score Node=0.8*1/(8-3)+0.1*1/(64-16)+0.1*1/(64-32)=0.165;
第二服务器的得分大于第三服务器,因此,资源管理模块将会选择第二服务器作为执行服务器。
通过对各个服务器的粗筛和精筛,能够同时监控FPGA的使用情况,根据其使用情况筛选出最佳执行服务器,有利于提高工作效率和精确度。
步骤三:所述资源管理模块将任务信息发送至所述执行服务器,所述执行服务器执行所述任务信息。
具体的,所述资源管理模块在筛选出执行服务器之后将会把任务命令调度至所述执行服务器的任务执行模块,然后将所述执行服务器内的处理资源分配给任务信息,任务执行模块执行任务,直至任务结束。
示例性的,系统中器资源管理模块将第一个任务信息调度至第二服务中,第二服务器中的FPGA的电可擦可编程只读存储器在FPGA系统上电后,调度电可擦可编程只读存储器中的FPGA业务程序,电可擦可编程只读存储器运行FPGA的可执行代码,将任务命令逐步执行,直至任务结束。
步骤四:任务信息执行完成后,所述资源监控模块接收FPGA芯片状态变化信息并将FPGA芯片状态标记为空闲,然后传递至资源管理模块,所述资源管理模块修改FPGA芯片资源信息。
具体的,任务执行完成后,系统中执行任务的FPGA感知模块感知到该FPGA芯片状态由被占用变为空闲后,将FPGA状态上报给资源监控模块;所述资源监控模块将该服务器中的FPGA芯片的状态进行修改标记为空闲状态,并转发至资源管理模块进行FPGA芯片资源信息的修改。
示例性地,第一个任务执行完成后,第二服务器上的FPGA感知模块感知到该FPGA芯片状态由被占用变为空闲后,将FPGA状态上报给第二资源监控模块,第二资源监控模块将第二服务器中的FPGA芯片的状态进行修改标记为空闲状态,并转发至系统中的资源管理模块,资源管理模块接收到信息之后,对第二服务器的状态进行修改,以便于下次任务的执行。
更进一步的,在第一个任务在执行的过程中,因为第一个任务所占用的资源信息大小为3张FPGA,16个CPU,32G内存,并未全部占用第二服务器的所有资源,第二服务器还剩余1张FPGA,16个CPU,32G内存;当系统接收到第二任务信息时,示例性的第二任务信息需要占用1张FPGA,16个CPU,32G内存,系统会重复步骤二对执行服务器进行筛选,通过筛选计算得出第二服务器的得分仍然最高,匹配度最高,依然被选择作为执行服务器,当第二服务器被调度执行第二个任务时,此时第二服务器的剩余资源为0张FPGA,0个CPU,0G内存,当第一个任务执行完成之后,第二服务器中的第二资源监控模块将第二服务器中的FPGA芯片的状态进行修改标记并转发至系统中的资源管理模块,资源管理模块接收到信息之后,对第二服务器的FPGA芯片资源信息进行修改,第二服务器的资源状态信息变成3张FPGA,16个CPU,32G内存,然后状态信息更新在信息模块。
为实现上述方法,本发明还提供了一种基于FPGA芯片的资源调度系统,如图2所示,所述系统包括:资源管理模块和至少一台FPGA服务器;
每一个所述服务器包括信息模块、FPGA感知模块、资源监控模块和任务执行模块;
所述信息模块,用于存储服务器中的资源信息;
系统中资源信息示例性的包括FPGA,CPU,内存等;
所述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的资源,然后资源管理模块将执行服务器的剩余资源重新修改成未执行任务时的资源大小。
尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (7)
1.一种基于FPG A芯片的资源调度方法,其特征在于:包括如下步骤:
获取不同服务器上的FPG A芯片状态信息;
获取任务信息;
对比所述不同服务器上的FPG A芯片状态信息并筛选出执行服务器;
将所述任务信息发送至所述执行服务器,使所述执行服务器根据所述任务信息执行任务;
所述对比所述不同服务器上的FPG A芯片状态信息并筛选出执行服务器包括:
基于所述任务信息与所述FPG A芯片状态信息,对比不同服务器上的资源信息,筛选出一组服务器,并将该组服务器加入至可用列表;
所述对比不同服务器上的资源信息,筛选出一组服务器,并将该组服务器加入至可用列表的筛选条件为服务器的可使用空间大于或等于照调度请求信息所要占用的空间;
对可用列表中的每个服务器进行打分;
打分公式为:
Final Score Node=(weight-1*strategic Function-1)+(weight-2*strategicFunction-2)+…+(weight-n*strategic Function-n)
其中,weight-1是第1个关键资源的权重;weight-2是第2个关键资源的权重;weight-n是第n个关键资源的权重;strategic Function-1为设置的第1个策略函数;strategicFunction-2为设置的第2个策略函数;strategic Function-n为设置的第n个策略函数;
所述策略函数为服务器中的剩余资源信息大小与任务信息所占资源的大小差的绝对值的倒数;
基于可用列表中每个服务器的打分结果,筛选出执行服务器;
所述FPG A芯片状态信息包括占用、异常和空闲中的一种或多种。
2.根据权利要求1所述的基于FPG A芯片的资源调度方法,其特征在于:所述获取不同服务器上的FPG A芯片状态信息包括:
不同服务器上的FPG A感知模块监测当前服务器上的FPG A芯片状态,并生成当前服务器上的FPG A芯片状态信息,并将所述FPG A芯片状态信息发送至当前服务器上的资源监控模块;
所述资源监控模块将所述FPG A芯片状态信息发送至资源管理模块;
所述资源管理模块接收所述资源监控模块发送的所述FPG A芯片状态信息。
3.根据权利要求1所述的基于FPG A芯片的资源调度方法,其特征在于:所述资源调度方法还包括:
任务执行模块执行完任务信息后,资源监控模块接收FPG A芯片状态信息的变化并标记所述FPG A芯片状态信息,并将标记之后的所述FPG A芯片状态信息发送至资源管理模块。
4.根据权利要求3所述的基于FPG A芯片的资源调度方法,其特征在于:所述资源调度方法还包括:
基于标记之后的所述FPG A芯片状态信息,所述资源管理模块更改所述执行服务器的资源信息。
5.一种基于FPG A芯片的资源调度系统,其特征在于:所述系统包括:资源管理模块和至少一台FPG A服务器;
所述资源管理模块,用于接收FPG A的状态信息,所述FPG A芯片状态信息包括占用、异常和空闲中的一种或多种;根据FPG A状态结合任务信息从所述至少一台FPG A服务器中筛选出执行服务器,并将任务信息调度至执行服务器;
每一个所述FPG A服务器包括FPG A感知模块、资源监控模块和任务执行模块;
所述FPG A感知模块,用于感知FPG A状态信息,并将所述FPG A状态信息发送至资源监控模块;
所述资源监控模块,用于接收FPG A感知模块发送的FPG A芯片状态消息,并上报给资源管理模块;
所述任务执行模块,用于基于任务信息,执行任务;
所述资源管理模块还用于,基于所述任务信息与所述FPG A芯片状态信息,对比不同服务器上的资源信息,筛选出一组服务器,并将该组服务器加入至可用列表;
所述对比不同服务器上的资源信息,筛选出一组服务器,并将该组服务器加入至可用列表的筛选条件为服务器的可使用空间大于或等于照调度请求信息所要占用的空间;
对可用列表中的每个服务器进行打分;
打分公式为:
Final Score Node=(weight-1*strategic Function-1)+(weight-2*strategicFunction-2)+…+(weight-n*strategic Function-n);
其中,weight-1是第1个关键资源的权重;weight-2是第2个关键资源的权重;weight-n是第n个关键资源的权重;strategic Function-1为设置的第1个策略函数;strategicFunction-2为设置的第2个策略函数;strategic Function-n为设置的第n个策略函数;
所述策略函数为服务器中的剩余资源信息大小与任务信息所占资源的大小差的绝对值的倒数;
基于可用列表中每个服务器的打分结果,筛选出执行服务器。
6.根据权利要求5所述的基于FPG A芯片的资源调度系统,其特征在于:
所述资源监控模块还用于标记所述FPG A状态信息,并将所标记的FPG A状态信息传递给所述资源管理模块。
7.根据权利要求5所述的基于FPG A芯片的资源调度系统,其特征在于:
所述资源管理模块还用于修改所述执行服务器的资源信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910899469.6A CN110764904B (zh) | 2019-09-23 | 2019-09-23 | 一种基于fpga芯片的资源调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910899469.6A CN110764904B (zh) | 2019-09-23 | 2019-09-23 | 一种基于fpga芯片的资源调度方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110764904A CN110764904A (zh) | 2020-02-07 |
CN110764904B true CN110764904B (zh) | 2022-10-28 |
Family
ID=69329734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910899469.6A Active CN110764904B (zh) | 2019-09-23 | 2019-09-23 | 一种基于fpga芯片的资源调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110764904B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309482B (zh) * | 2020-02-20 | 2023-08-15 | 浙江亿邦通信科技有限公司 | 基于哈希算法的区块链任务分配系统、装置及可存储介质 |
CN113535386B (zh) * | 2021-06-23 | 2022-09-02 | 河北中兴冀能电力发展有限公司 | 一种应用于电力仪器设备的板间多运算芯片资源监控系统 |
CN116483013B (zh) * | 2023-06-19 | 2023-09-05 | 成都实时技术股份有限公司 | 一种基于多通道采集器的高速信号采集系统及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103780646A (zh) * | 2012-10-22 | 2014-05-07 | 中国长城计算机深圳股份有限公司 | 一种云资源的调度方法及系统 |
CN105357251A (zh) * | 2015-09-24 | 2016-02-24 | 浪潮集团有限公司 | 一种资源池的管理系统及管理方法 |
CN105357199A (zh) * | 2015-11-09 | 2016-02-24 | 南京邮电大学 | 一种云计算认知资源管理系统及方法 |
CN107807853A (zh) * | 2017-10-16 | 2018-03-16 | 北京航空航天大学 | 一种基于机器实时负载和任务状态机的节点筛选方法及装置 |
US10360064B1 (en) * | 2013-08-19 | 2019-07-23 | Amazon Technologies, Inc. | Task scheduling, execution and monitoring |
-
2019
- 2019-09-23 CN CN201910899469.6A patent/CN110764904B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103780646A (zh) * | 2012-10-22 | 2014-05-07 | 中国长城计算机深圳股份有限公司 | 一种云资源的调度方法及系统 |
US10360064B1 (en) * | 2013-08-19 | 2019-07-23 | Amazon Technologies, Inc. | Task scheduling, execution and monitoring |
CN105357251A (zh) * | 2015-09-24 | 2016-02-24 | 浪潮集团有限公司 | 一种资源池的管理系统及管理方法 |
CN105357199A (zh) * | 2015-11-09 | 2016-02-24 | 南京邮电大学 | 一种云计算认知资源管理系统及方法 |
CN107807853A (zh) * | 2017-10-16 | 2018-03-16 | 北京航空航天大学 | 一种基于机器实时负载和任务状态机的节点筛选方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110764904A (zh) | 2020-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110764904B (zh) | 一种基于fpga芯片的资源调度方法及系统 | |
CN107968802B (zh) | 一种资源调度的方法、装置和过滤式调度器 | |
CN112269641B (zh) | 一种调度方法、装置、电子设备及存储介质 | |
CN102255926B (zh) | MapReduce系统中的任务分配方法、系统及装置 | |
CN106033373A (zh) | 一种云计算平台中虚拟机资源调度方法和调度系统 | |
CN111464659A (zh) | 节点的调度、节点的预选处理方法、装置、设备及介质 | |
CN109062739B (zh) | 调度服务器、负载均衡方法、系统和可读存储介质 | |
CN110750331B (zh) | 一种针对教育桌面云应用的容器集群调度方法及平台 | |
CN113382077B (zh) | 微服务调度方法、装置、计算机设备和存储介质 | |
CN112910937A (zh) | 容器集群中的对象调度方法、装置、服务器和容器集群 | |
CN112181613A (zh) | 异构资源分布式计算平台批量任务调度方法及存储介质 | |
CN107577425A (zh) | 一种数据迁移方法及装置 | |
CN111443720A (zh) | 一种机器人调度方法及装置 | |
CN1954295A (zh) | 用于控制分布式处理环境中作业执行的计算机系统、方法及程序 | |
CN108123987A (zh) | 从云计算系统中确定主调度器的方法及装置 | |
CN112395269A (zh) | MySQL高可用组的搭建方法及装置 | |
CN114968601A (zh) | 一种按比例预留资源的ai训练作业的调度方法和调度系统 | |
CN110912967A (zh) | 一种服务节点调度方法、装置、设备及存储介质 | |
CN110231981B (zh) | 服务调用方法及装置 | |
US20240036926A1 (en) | Resource Allocation Method, Electronic Device and Storage Medium | |
CN117234733A (zh) | 一种分布式系统任务分配方法、系统、存储介质及设备 | |
CN109298949B (zh) | 一种分布式文件系统的资源调度系统 | |
CN111209098A (zh) | 一种智能渲染调度方法、服务器、管理节点及存储介质 | |
CN114844791B (zh) | 基于大数据的云服务自动管理分配方法、系统及存储介质 | |
CN116339989A (zh) | 一种混部服务器、混部服务器的资源管理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210506 Address after: 0106, 1st floor, No.26, shangdixinxi Road, Haidian District, Beijing Applicant after: Beijing Zhongke yunnao Intelligent Technology Co.,Ltd. Applicant after: HEFEI ZHONGKE LEINAO INTELLIGENT TECHNOLOGY Co.,Ltd. Address before: 230088 1102-b236, 11th floor, Zhongxin building, 2688 Chuangxin Avenue, high tech Zone, Hefei City, Anhui Province Applicant before: HEFEI ZHONGKE LEINAO INTELLIGENT TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |