支持大规模应用部署的虚拟化FPGA集群管理调度系统及方法与流程

文档序号:36883003发布日期:2024-02-02 21:17阅读:28来源:国知局
支持大规模应用部署的虚拟化FPGA集群管理调度系统及方法与流程

本发明涉及一种虚拟化fpga集群管理调度系统及方法,属于云计算、异构计算、高性能计算。


背景技术:

1、随着数据密集型应用的不断发展,fpga(现场可编程门阵列)技术作为一种高性能计算加速器逐渐受到关注。然而,fpga资源的配置和管理往往涉及到低级别的硬件描述语言,这对于许多应用开发人员来说是一项技术难题。同时,传统的静态分配方法难以适应动态变化的工作负载,导致资源利用率低下。因此fpga的复杂性和资源分配问题限制了其广泛应用,云计算环境下的资源调度和管理也成为一个重要问题。

2、目前国内现有的针对fpga集群的资源管理方式大多是通过直通技术来将fpga板卡直接分配给虚拟机,再将虚拟机分配给用户或是通过嵌入式技术将一个mpsoc与一个fpga加速芯片构成“实例”,通过向用户分配实例的方式来实现对fpga集群的管理。这两种方式都存在着资源利用率低、板卡间通信有限的缺点,对于大型应用可能因为其规模大、板卡类型差异以及节点间或实例间信息交互慢而导致部署困难。同时一些已烧录加速算法的fpga板卡又因为安全性和任务调度的问题不能被多用户使用。


技术实现思路

1、本发明要解决的技术问题是:fpga集群的管理方式的资源利用率低下以及应用部署范围有限。

2、为了解决上述技术问题,本发明的技术方案是公开了一种支持大规模应用部署的虚拟化fpga集群管理调度系统,其特征在于,包括平台管理模块、用户管理模块、资源监控模块、资源管理模块、任务管理模块,以及一个fpga板卡互联拓扑结构,其中:

3、平台管理模块与用户管理模块、资源监控模块、资源管理模块和任务调度模块进行交互;

4、用户管理模块用于为用户和角色的权限做出管理;

5、资源监控模块用于对包括fpga板卡以及cpu在内的异构资源进行监控;

6、资源管理模块用于对包括fpga板卡以及cpu在内的异构资源的调度和分配进行管理,用于实现以下功能:

7、资源隔离和虚拟化:基于虚拟化技术将一些fpga板卡分割成数个vfpga区域,同时在其中的部分vfpga区域上烧录算法形成算核,每个vfpga区域被一个虚拟机使用或是多个不同的vfpga区域被同一虚拟机使用,从而支持fpga板卡的高效利用以及大规模的应用部署,使得系统能够直接为用户管理调度整块fpga板卡、vfpga区域以及算核这三种fpga资源,用户能够通过资源管理模块可以申请直接使用三种fpga资源中的前两种资源或是将任务上传到算核中运行来使用三种fpga资源中的第三种资源;

8、资源冲突和争用解决:处理资源冲突和争用情况,以确保公平分配和任务执行顺利;

9、资源调度:为用户在界面提出的用户需求通过调度cpu、fpga、内存、存储和网络资源。

10、镜像部署:在镜像库中保存支持用户的虚拟机镜像,以及支持用户上传fpga的二进制文件以支持fpga编程;

11、算核管理:系统里的所有算核可以被多用户调用,但是只有特定权限的用户和管理员才能重新配置fpga板卡;

12、任务管理模块用于将用户上传的应用任务进行调度和管理;

13、fpga板卡互连拓扑结构用于将不同计算节点间的fpga板卡通过tcp/ip直接通信,从而使得fpga板卡间不需要经过节点上的宿主机就可以进行信息交互,降低了时延以及可让大型应用可部署在不同计算节点上。

14、优选地,所述平台管理模块包括:

15、为用户和管理员提供使用的交互界面;

16、对包括fpga板卡、cpu、内存、存储在内的异构资源的监控ui;

17、用户角色的管理和用户请求的接口。

18、优选地,所述用户管理模块提供以下功能:

19、用户身份验证和认证功能:用于实现用户的创建,密码认证,以及用户密钥管理;

20、用户权限管理功能:用于分配不同级别的权限,从而实现细粒度的权限控制,允许用户访问特定功能或资源;

21、角色与用户组管理功能:用于定义和管理不同角色,每个角色具有不同的权限集合,将用户分配给不同的角色;创建用户组并把用户分配到组中,在组级别上分配权限,简化权限管理。

22、优选地,所述资源监控模块提供以下功能:

23、系统状态监测功能:监测整个fpga集群的总体状态并为调度功能提供状态集合,包括空闲集合、运行集合、就绪集合、故障集合;

24、资源利用率监测功能:用于监控包括fpga板卡以及cpu在内的资源的利用率,包括逻辑资源、存储资源、计算资源,以及跟踪资源使用情况的历史变化;

25、性能指标监控功能:通过fpga板卡中的编写的接口函数来测量和记录fpga操作的性能指标,分析性能数据,识别性能瓶颈和改进机会;

26、可视化界面:为用户提供直观的图形界面,显示资源利用率、性能指标和任务状态,允许用户和管理员通过包括图表、仪表板在内的方式来查看关键信息。

27、优选地,所述任务管理模块提供以下功能:

28、任务优先级管理功能:考虑任务的优先级,确保高优先级任务能够得到适当的资源和执行时间;

29、任务调度策略功能:用户提出任务请求,系统选择适当的任务调度策略,以满足不同任务类型和优先级的需求;

30、任务并行性管理功能:根据任务的并行性需求,将多个任务分配到不同的fpga板卡资源上,以提高系统的吞吐量,确保任务之间的并行执行不会导致资源冲突;

31、任务状态管理功能:跟踪任务的状态,在需要时提供任务状态变更的通知和报告。

32、本发明的另一个技术方案是提供了一种基于上述的支持大规模应用部署的虚拟化fpga集群管理调度系统的针对fpga独占板卡的使用方法,其特征在于,包含以下步骤:

33、步骤一:用户登录平台界面,查看上述系统对所有资源的监控界面,随后向系统提出fpga板卡独占请求;

34、步骤二:系统根据用户请求,通过调度算法为用户选择板卡资源以及创建该用户的资源列表,更新就绪列表;系统在计算节点为用户选择相应的虚拟机镜像文件并创建虚拟机;

35、步骤三:将所需的整块fpga板卡或vfpga区域连接到虚拟机中,更新运行列表,用户在平台界面查看虚拟机状态、板卡状态监控;

36、步骤四:用户在虚拟机上可以调用编程接口,通过虚拟机对板卡进行编程;

37、步骤五:用户使用完板卡后,向系统提出使用结束的请求,系统将板卡与虚拟机直接断开,销毁该用户的资源列表与虚拟机,更新空闲列表。

38、本发明的另一个技术方案是公开了一种基于上述的支持大规模应用部署的虚拟化fpga集群管理调度系统的针对算核资源调用的方法,其特征在于,包含以下步骤:

39、步骤一:用户在系统提出算核调用请求,系统通过请求后用户上传应用,平台分析应用,将其划分成符合算核的多个子任务;

40、步骤二:不同的子任务被添加到不同的任务就绪列表;

41、步骤三:系统依据算核的算核状态集合通过任务调度算法将子任务下发到相应的算核中进行运算并在虚拟机中对该任务和用户进行标识绑定,将运行结果等信息返回给用户;

42、步骤四:在算核中子任务运行结束后依据系统的任务调度策略,接受下一个子任务。

43、本发明提出一种可以支持大规模应用部署以及多用户、多任务调度、高效的fpga集群管理调度方法,其通过以下方面解决了现有技术方案存在的问题:

44、1)本发明针对现有集群中资源利用率低下的问题,提出使用虚拟化技术在虚拟化环境中将fpga板卡分割成多个vfpga区域,同时开发平台的软件堆栈层来对fpga、cpu、内存、存储等异构资源进行管理,将vfpga提供给多个虚拟机使用,实现了fpga资源的高效利用。

45、2)本发明针对现有fpga集群难以部署大规模应用的不足,提出通过fpga板卡互连拓扑结构构建fpga板卡间的tcp/ip通信,使得不在同一计算节点上的板卡可以通过该方式进行信息交互,提高不同计算节点板卡间的通信速率,用户或平台可以部署大型应用的条件。

46、由于采用了上述技术手段,使得本发明所公开的技术方案与现有技术方案存在以下优点:

47、1)多模块的合理分配提供了强大的虚拟化和隔离功能,而与虚拟化技术的协同使用可以将fpga加速器虚拟化并提供给不同的虚拟机,这使得多个用户或任务可以共享同一块fpga,从而提高资源利用效率。

48、2)该方法的自动化部署和管理功能使得集群的部署、配置和扩展变得更加简化和迅速,同时直接的硬件通信可以降低网络延迟,提高网络吞吐量,使该平台适用于需要高性能网络连接的应用场景。

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