CN109976912A - 一种基于fpga的分布式计算的实现方法及系统 - Google Patents
一种基于fpga的分布式计算的实现方法及系统 Download PDFInfo
- Publication number
- CN109976912A CN109976912A CN201910237273.0A CN201910237273A CN109976912A CN 109976912 A CN109976912 A CN 109976912A CN 201910237273 A CN201910237273 A CN 201910237273A CN 109976912 A CN109976912 A CN 109976912A
- Authority
- CN
- China
- Prior art keywords
- task
- fpga
- resource
- module
- server
- 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.)
- Pending
Links
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/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
-
- 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
Abstract
本发明公开了一种基于FPGA的分布式计算的实现系统,包括多个终端、一个传输网络、一个FPGA计算池和一个服务器,终端上安装有浏览器或客户端程序,完成功能包括:通过浏览器或客户端接受终端提出的计算任务请求、通过传输网络向服务器提交计算任务请求、通过传输网络获得服务器返回的计算任务结果、将计算结果通过浏览器或客户端返回给用户;传输网络在终端与服务器之间建立网络连接,将传输终端发出的计算任务请求传递给服务器,以及将服务器返回的计算任务结果传递给终端;服务器通过网络连接FPGA计算池;FPGA计算池由多个FPGA计算机柜组成,每个机柜之间通过光纤进行连接。
Description
技术领域
本发明涉及分布式计算领域,具体是一种基于FPGA的分布式计算的实现方法及系统。
背景技术
分布式计算(Distributed computing)是一种把需要进行大量计算的工程数据分割成小块,由多台计算机分别计算,在上传运算结果后,将结果统一合并得出数据结论的科学。一些计算量庞大的项目,如生物医药方面的基因分析,蛋白结构分析等,由一台电脑计算是不可能完成的,一般方法是采用超级计算机或者通过互联网互联的成千上万的闲置计算机,采用分布式计算方法将计算任务分割到各个较小的计算单元内,然后再将计算结果统一合并得到最终的结果。
FPGA(Field Programmable Gate Array),即现场可编程门阵列,是指一切通过软件手段更改、配置器件内部连接结构和逻辑单元,完成既定设计功能的数字集成电路,被称之为可编程的“万能芯片”;FPGA不仅具有运行速率高、软件可编程等优点,而且因其具有并行计算的特点,一次可执行多条运行指令,从而比传统的CPU、DSP等串行计算处理器效率更高。
随着日益增加的庞大计算量需求和FPGA芯片技术的大力发展,利用FPGA作为计算加速器,辅助CPU、GPU等芯片完成庞大的计算任务已经成为计算加速的首选,本发明提出了一种基于FPGA构建的具有开放式特点的分布式系统及其实现方法。
发明内容
本发明的目的在于提供一种基于FPGA的分布式计算的实现方法及系统,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种基于FPGA的分布式计算的实现系统,包括多个终端、一个传输网络、一个FPGA计算池和一个服务器,终端上安装有浏览器或客户端程序,完成功能包括:通过浏览器或客户端接受终端提出的计算任务请求、通过传输网络向服务器提交计算任务请求、通过传输网络获得服务器返回的计算任务结果、将计算结果通过浏览器或客户端返回给用户;传输网络在终端与服务器之间建立网络连接,将传输终端发出的计算任务请求传递给服务器,以及将服务器返回的计算任务结果传递给终端;服务器通过网络连接FPGA计算池;FPGA计算池由多个FPGA计算机柜组成,每个机柜之间通过光纤进行连接。
作为本发明进一步的方案:每个FPGA计算机柜包括若干完全相同的FPGA计算板卡,每块板卡的作用是执行服务器传递过来的一个计算子任务;每块计算板卡均固定在背板的总线插槽上,背板的主要作用是为所在计算机柜内所有计算板卡提供数据交换功能,使得在本地机柜内的任意两块计算板卡能够直接进行数据交换。
作为本发明进一步的方案:每个FPGA计算板卡由一块交换芯片、一块通用处理器和若干完全相同的FPGA芯片组成;处理器和每块FPGA芯片的输入输出管脚都与交换芯片连接,从而同一板卡上任意两块FPGA芯片之间的数据交换均通过交换芯片完成。
作为本发明进一步的方案:服务器包括交互模块、任务管理模块、资源监控模块、资源管理模块和显示模块,交互模块与任务管理模块、资源管理模块和资源管理模块连接,其中资源管理模块用于与FPGA计算池连接;所述任务管理模块、资源管理模块和资源管理模块均连接显示模块。
一种基于FPGA的分布式计算的实现方法,具体步骤如下:
步骤S801:资源监控模块全局搜索FPGA计算资源:服务器中的资源监控模块对FPGA分布式计算资源系统中的FPGA计算资源进行全局搜索;
步骤S802:资源监控模块进行FPGA计算资源信息注册:资源监控模块对搜索结果进行注册,注册信息包括静态资源描述信息和动态资源描述信息,详细记录FPGA分布式计算资源系统中所采用的FPGA芯片、FPGA最高运行时钟频率、FPGA最大片外存储能力和FPGA接口最大通信能力,以及FPGA计算机柜、FPGA计算板卡或FPGA芯片的工作状态、运行状态等信息;
步骤S803:交互模块发布静态资源描述信息:服务器通过交互模块发布FPGA计算资源的静态资源描述信息,这些信息将作为用户在制定计算任务部署方案时的参考信息,用以评估FPGA分布式计算资源系统中可用FPGA计算资源的计算能力能否满足计算任务需求;
步骤S804:用户进行任务可行性评估:判断资源系统能否满足任务需求:服务器106通过交互模块发布FPGA分布式计算资源系统的静态资源描述信息;用户可通过终端以浏览器方式向服务器的交互模块发起访问,访问的内容包括FPGA计算资源的全部静态资源描述信息;
步骤S805:用户进行任务模块划分:用户将任务划分成具有一定连接关系的多个独立的功能模块,任务模块划分参照部分静态资源描述信息,其目的是确保每一个功能模块的处理需求、存储需求和通信需求均小于FPGA分布式计算资源系统中FPGA的最大处理能力、最大片外存储能力和接口最大通信带宽;
步骤S806:用户通过终端向服务器提交任务:用户通过终端向服务器提交任务,同时提交各个任务功能模块的资源需求描述信息,该信息以文件形式记录各个功能模块的硬件资源需求信息;终端通过传输网络将任务提交至服务器内的交互模块;
步骤S807:服务器制定详细的任务部署计划;
步骤S808:服务器判断任务部署计划是否制定成功:资源管理模块判断任务部署计划是否制定成功,若成功,继续执行步骤S809;否则,交互模块向终端返回任务部署失败结果,并结束任务;
步骤S809:服务器执行任务部署:服务器执行任务部署,具体工作是将任务序列模块的各个可执行文件映射到实际的FPGA芯片上,同时预定义全部任务的初始化参数;
步骤S810:运行任务:服务器通过FPGA配置接口将各个任务的可执行文件下载到目标FPGA芯片中,并建立好任务的输入输出接口,进行初始化参数配置,开始运行任务;
步骤S811:计算资源返回任务结果给服务器:计算资源运行任务后,根据预定义的输出接口返回任务结果给服务器的任务管理模块;
步骤S812:服务器返回结果给终端:任务管理模块通过交互模块将任务结果返回至终端;
步骤S813:卸载任务:服务器卸载任务,具体操作是包括:卸载任务管理模块中的任务序列和资源管理模块中的资源序列和擦除目标FPGA芯片中的可执行文件;
步骤S814:更新FPGA计算信息:一旦服务器卸载上一次任务以后,资源监控模块504立即更新FPGA计算资源信息。
作为本发明进一步的方案:所述步骤S801中提到全局搜索的具体方法是:资源监控模块502向FPGA分布式计算资源系统发送监控信号,FPGA分布式计算资源系统104中各个FPGA计算机柜、FPGA计算板卡以及FPGA芯片分别向监控模块返回应答信号,该应答信号能够描述出每一个FPGA计算机柜、FPGA计算板卡或FPGA芯片各自的工作状态、运行状态等信息。
作为本发明再进一步的方案:所述步骤S804中,用户根据上述静态资源描述信息和实际的计算任务需求对计算任务的可行性进行评估,确定FPGA分布式计算资源系统104是否能够满足计算任务需求;任务可行性评估的执行步骤如下:
步骤S1001,用户获取FPGA芯片型号和FPGA最高运行时钟频率;
步骤S1002,用户判断FPGA芯片型号,满足继续下一步判断,不满足则不可行直接终止;
步骤S1003,用户判断FPGA最高运行时钟频率能否满足实际的计算任务需求,若也满足,说明计算任务具备可行性,继续执行下一个大步骤;
作为本发明再进一步的方案:所述步骤S807中,服务器制定任务部署计划实现方法如下:
首先,交互模块将终端提交的计算任务请求发送至任务管理模块,任务管理模块将所有任务功能模块组成任务序列;其中,一个任务对应于一个任务序列,一个任务功能模块对应于一个任务序列模块;每一个任务序列模块都有一个硬件资源需求文件详细记录该任务序列模块的硬件资源需求信息。同时,资源管理模块将步骤S802中注册的全部可用计算资源组成资源序列,一个FPGA芯片对应于一个资源序列模块。每一个资源序列模块也都有一个硬件资源描述文件记录该FPGA资源的硬件描述信息;
然后,任务管理模块依次取出任务序列中的任务序列模块,将资源序列模块的硬件描述信息依次与任务序列模块的硬件需求信息进行一一匹配,并将全部的匹配结果组成任务部署计划。
作为本发明再进一步的方案:所述步骤S808中,服务器判断任务部署计划的具体方法如下:
步骤S1201,比较资源序列模块数目与任务序列模块数目的大小,若前者大,说明资源足够容纳下全部任务,可继续往下执行步骤;反之,说明资源不足以容纳全部任务,匹配过程失败;
步骤S1202,当说明资源足够容纳下全部任务,依次读取任务中待匹配的任务序列模块的硬件资源需求信息;
步骤S1203,读取资源系列中未分配的资源序列模块的硬件资源描述信息,即资源管理模块分别读出资源序列模块的计算资源描述信息和任务序列模块的计算资源需求信息,并对两种信息进行一一匹配;
步骤S1204,判断FPGA芯片型号是否一致,一致进入下一步,不一致则匹配过程失败;
步骤S1205,判断是否满足最高运行时钟频率,满足进入下一步,不满足则匹配过程失败;
步骤S1206,判断是否满足最大片外储存能力,满足进入下一步,不满足则匹配过程失败;
步骤S1207,判断是否满足最大通信能力,满足进入下一步,不满足则匹配过程失败;
步骤S1208,判断是否与上一资源序列模块处于同一个FPGA计算机柜,是进入下一步,不是则匹配过程失败;
步骤S1209中将当前资源序列模块分配给当前任务序列模块;
步骤S1210中分别从资源序列和任务序列中去除当前资源序列模块和任务序列模块;反之,若有任何一项条件不能满足,则匹配失败;
步骤S1211中,判断当前任务序列模块数目是否等于零,若等于零,表明全部任务序列模块都已匹配成功,匹配过程结束;反之,则继续执行直至全部任务序列模块都匹配成功或任意一个任务序列匹配失败。
与现有技术相比,本发明的有益效果是:
本发明采用由FPGA计算板卡构成的计算机柜,形成一个巨大的计算资源池,使得服务器对资源池进行管理调度更加有效率,同时本发明高效体现在从用户端的计算任务请求,到服务器对任务进行切割,再到根据计算任务调用FPGA计算资源池的计算资源进行分布式计算,最后将计算结果统一汇总并反馈,实现资源的合理分配和利用。
附图说明
图1所示是本发明提供的基于FPGA的分布式计算的实现系统的拓扑结构图;
图2所示是本发明提供的FPGA计算机柜的结构示意图;
图3所示是本发明提供的FPGA计算板卡的结构示意图;
图4所示是本发明提供的FPGA程序结构示意图;
图5所示是本发明提供的服务器的功能结构示意图;
图6所示是本发明提供的资源监控模块的监控内容示意图;
图7所示是本发明提供的FPGA芯片ID编号的示意图;
图8所示是本发明提供的一种基于FPGA的分布式计算的实现方法的流程图;
图9所示是本发明提供的一种基于FPGA的分布式计算的实现方法中步骤1-步骤3的详细序列图;
图10所示是本发明提供的一种基于FPGA的分布式计算的实现方法中任务可行性评估的执行示意图;
图11所示是本发明提供的一种基于FPGA的分布式计算的实现方法中步骤7-步骤8的详细序列图;
图12所示是本发明提供的资源序列模块与任务序列模块的匹配过程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,基于FPGA的分布式计算系统,包括多个终端102、一个传输网络103、一个FPGA计算池104和一个服务器106。其中:
用户101是针对某种应用需求,向服务器106提出特定计算任务请求的人。用户101可以通过安装在终端102上的浏览器或客户端程序向服务器106提交计算任务请求,再通过终端102上的浏览器或客户端获得服务器106返回的计算任务结果。
终端102是一台具有网络连接功能的台式计算机、笔记本电脑或平板电脑。终端102上安装有浏览器或客户端程序,完成功能包括:通过浏览器或客户端接受终端102提出的计算任务请求、通过传输网络103向服务器106提交计算任务请求、通过传输网络103获得服务器106返回的计算任务结果、将计算结果通过浏览器或客户端返回给用户。
传输网络103可以是本地局域网,也可以是广域互联网。传输网络103在终端102与服务器106之间建立网络连接,将传输终端102发出的计算任务请求传递给服务器106,以及将服务器106返回的计算任务结果传递给终端102。
服务器106是一台高性能的服务器,负责统一管理和分配FPGA计算池104中的计算资源。服务器106实时监控FPGA计算池104中的所有计算资源,根据终端102提交的计算任务请求,自动生成特定的计算资源分配算法,根据该算法将计算任务所包含的若干子任务(一个子任务为一块FPGA芯片上运行的程序)加载到计算池中若干适合的FPGA芯片上。然后,再进一步对这些加载程序进行适当的参数配置,即可启动这些程序运行,共同执行终端102提交的计算任务请求。当计算任务完成后,服务器106就将计算结果从FPGA计算池104中取出,然后通过传输网络103返回给终端102。
FPGA计算池104由多个FPGA计算机柜105组成,每个机柜之间通过光纤进行连接。如图2所示,一个FPGA计算机柜105包括若干完全相同的FPGA计算板卡202-1~202-m,每块板卡的作用是执行服务器106传递过来的一个计算子任务。每块计算板卡均固定在背板201的总线插槽上,背板的主要作用是为所在计算机柜内所有计算板卡提供数据交换功能,使得在本地机柜内的任意两块计算板卡能够直接进行数据交换。本发明并不特别规定各计算板卡与交换模块之间的总线标准,但为了使系统中有限的计算资源能够尽量满足多种应用需求,有效支持资源的动态部署,应该采用一种简单、灵活、高速的总线标准。目前较为合适的是RapidIO标准。RapidIO是一种使用高速差分串行总线、基于包交换方式进行数据传输的商用总线标准。每对差分线最高传输速率可达3.125Gbps,每个RapidIO接口最多支持16对差分线,从而获得高达50Gbps的传输速率,如果需要,还可以通过增加RapdiIO接口数量的方式进一步提高板卡之间的数据交换速率。
如图3所示,一个FPGA计算板卡202由一块交换芯片301、一块通用处理器(CPU)和若干完全相同的FPGA芯片302-1~302-n组成。CPU和每块FPGA芯片的输入输出管脚都与交换芯片301连接,从而同一板卡上任意两块FPGA芯片之间的数据交换均通过交换芯片301完成。本发明并不特别规定交换芯片与FPGA芯片之间的具体接口标准,但同样为了基于满足多种计算任务需求,有效支持的资源动态部署的目标出发,可以考虑采用RapidIO标准。CPU的作用是将从主控板接收到的FPGA程序动态加载到本地某个指定FPGA上,从而能够动态的重新配置FPGA功能,以完成不同的计算任务。目前各主要厂商生产的FPGA都具备动态加载接口,能够接受CPU的动态配置,例如Xilinx公司的FPGA芯片支持SelectMAP等多种动态加载接口。
如图4所示,一个FPGA程序包括算法模块S401、接口驱动模块和时钟模块三个部分。其中:算法模块S401是计算任务的算法实体,是由用户101设计实现并通过终端102向服务器106提交的;接口驱动模块S403是与FPGA芯片的外部输入输出接口紧密联系的,其作用是将从外部输入接口到达的数据发送给算法模块S401,同时将算法模块S401产生的数据通过外部输出接口向外输出。当FPGA计算池中所有FPGA芯片都采用同样的外部输入输出接口标准(例如RapidIO),则接口驱动模块的设计就变得非常简单,同时是高度可复用的。FPGA内部的时钟模块的作用是根据本地算法模块S401的需要,从输入时钟源中产生不同频率、特性的输出时钟,提供给算法模块S401,由于加载到不同FPGA上的算法模块实现的功能都各不相同,因此不同的时钟模块也各不相同,其具体实现需要由用户101通过终端102提交给服务器106。
如图5所示,服务器106共包括五个模块,分别为:交互模块501、任务管理模块503、资源监控模块502、资源管理模块504和显示模块505,各模块作用如下:
交互模块501负责服务器106与终端102之间的信息交互,该模块完成的具体工作包括:
■获取并发布资源监控模块502维护的静态资源描述信息,并以Web主页的形式在服务器106上发布;
■从传输网络103获得终端102的计算任务请求,并将其发送给任务管理模块503;
■接收任务管理模块503提交的计算任务结果,并将结果通过传输网络103返回给终端102。
静态资源描述信息是对FPGA计算池104中计算资源的类型和固有能力的描述。静态资源描述信息不会随着FPGA计算池中任何计算资源运行状态的改变而改变,因此静态资源描述信息可以预先定义在配置文件中。配置文件由资源监控模块负责管理,由交互模块以网页的形式发布在服务器106上,用户101通过浏览网页即可获得FPGA计算池的静态资源描述信息,根据这些信息进行任务可行性评估和任务模块划分。
表1所示为静态资源描述信息示例。静态资源描述信息共包括4类:FPGA计算池104采用的FPGA芯片型号、FPGA最高运行时钟频率、FPGA最大片外存储能力和FPGA外部通信接口的最高传输速率。由于根据本发明,所有计算机柜、计算板卡、背板、FPGA芯片均完全相同,因此各类静态资源信息就仅有唯一的数值,静态资源信息的简化可以大大增加计算资源部署的灵活性,也使用户101进行业务开发的工作得到简化。
表1
任务管理模块503负责根据用户提交的计算任务请求执行任务对象的创建、管理和销毁。任务对象包含任务对象描述信息。
描述信息中详细记录任务对象需要的硬件资源信息,这些信息将被任务开发者在制定任务部署方案时加以利用以保证该任务被部署到合适的FPGA计算资源中去执行,描述信息以文件形式存储在任务管理模块503中。如图5所示,任务管理模块503接收交互模块501的计算任务请求,并为计算任务请求中的每一个计算任务模块创建一个任务对象。在FPGA计算资源的分配过程中,任务管理模块503和资源监控模块502将分别指定计算任务需要的FPGA计算资源和FPGA分布式计算资源系统104中可用的FPGA计算资源。
资源监控模块502负责对FPGA计算池104进行实时监控,将监控得到的动态资源描述信息提交给显示模块和资源管理模块。具体的实时监控对象包括:FPGA计算机柜105、FPGA计算板卡202和FPGA芯片302。资源监控模块502采用主动方式进行监控,即资源监控模块502每隔固定时间向FPGA计算池104中的各个监控对象发送监控信号,接收到监控信号的监控对象立即向资源监控模块502返回监控结果,资源监控模块502根据监控结果更新动态资源描述信息,同时将这些描述信息发送至显示模块505进行实时显示。
如图6,资源监控模块502的实时监控结果具体内容包括:
■内容S601:FPGA计算池104中每个FPGA计算机柜105的运行状态:“正常”或者“异常”;
■内容S602:FPGA计算池104中每个FPGA计算机柜105的已用带宽,单位为字节/秒;
■内容S603:FPGA计算池104中每个FPGA计算板卡202的运行状态:“正常”或者“异常”;
■内容S604:FPGA计算池104中每个FPGA计算板卡202的已用带宽,单位为字节/秒;
■内容S605:FPGA计算池104中每块FPGA芯片302的工作状态:“工作”或者“空闲”;
■内容S606:FPGA计算池104中每块FPGA芯片302的运行状态:“正常”或者“异常”。
与动态监控结果所对应的动态资源描述信息如表2所示。
表2
如表2所示,FPGA计算池中每个计算机柜、板卡、芯片都有一个全局唯一的标识符,具体格式如图7所示。其中,计算机柜的标识符为一个16位数字编号,编号范围从0x0000到0xFFFF,因此一个计算池中最多可以有216=65536个计算机柜;计算板卡的标识符为一个16位数字,其中高8位为该板块所在计算机柜的标识符,低8位为该板卡在该计算机柜内的编号,范围从0x00到0xFF,因此在一个计算机柜内最多可以有28=256个计算板卡;FPGA芯片的标识符为一个32位数字,其中高24位为该芯片所在计算板卡的标识符,低8位为该芯片在该板块上的编号,范围从0x00到0xFF,因此一个板卡上最多有256块FPGA芯片。除此以外,用户还可以根据实际需要,对标识符进行适当修改和扩充。例如,当有多个计算池时,可以采用一个8位数字对每个计算池给予唯一的标识。
资源管理模块504负责根据终端102的计算任务请求动态地分配FPGA分布式计算资源系统104中的计算资源。如前面所述,资源监控模块502记录了FPGA分布式计算资源104中的可用FPGA硬件资源,而任务管理模块503记录了计算任务需要的FPGA硬件资源。资源管理模块504动态分配FPGA计算资源的过程,也就是将FPGA分布式计算资源系统中104中可用FPGA硬件资源与计算任务需要的FPGA硬件资源进行匹配,匹配的基本原则是尽可能地将同一个任务分配到同一个FPGA计算板卡202或是同一个FPGA计算机柜105中去。如果一个计算任务的FPGA计算资源需求超过了一个FPGA计算机柜105的能力范围,那么将其视作任务失败,即一个计算任务不能被分配到多个FPGA计算机柜105中去执行。资源管理模块504为一个计算任务分配FPGA计算资源主要基于可用FPGA计算资源的一些特性或属性,如表1和表2所述的FPGA芯片型号、FPGA最高运行时钟频率、FPGA最大片外存储能力、FPGA接口最大通信能力、FPGA计算机柜105的运行状态或是网络流量等等。
资源监控模块502定时地向FPGA分布式计算资源系统104发送监控信号,一旦监测到有FPGA计算机柜105、FPGA计算板卡202或FPGA计算芯片302返回应答信号时,立即对上述三种监控对象的动态资源描述信息进行注册,并发送至显示模块505实时显示。
显示模块206实时显示三方面信息,分别是:资源监控模块502中FPGA计算资源的运行状态、工作状态和流量监控结果,任务管理模块503的计算任务运行状态,以及资源管理模块504的计算资源分配结果。
如图8-12所示,本发明提供的一种基于FPGA的分布式计算的实现方法,所述方法包括以下步骤:
步骤S801:资源监控模块502全局搜索FPGA计算资源:服务器106中的资源监控模块502对FPGA分布式计算资源系统104中的FPGA计算资源进行全局搜索;
全局搜索的具体方法是:资源监控模块502向FPGA分布式计算资源系统104发送监控信号,FPGA分布式计算资源系统104中各个FPGA计算机柜105、FPGA计算板卡202以及FPGA芯片分别向监控模块204返回应答信号,该应答信号能够描述出每一个FPGA计算机柜105、FPGA计算板卡202或FPGA芯片各自的工作状态、运行状态等信息;
步骤S802:资源监控模块502进行FPGA计算资源信息注册:资源监控模块502对搜索结果进行注册,注册信息包括表1和表2分别描述的静态资源描述信息和动态资源描述信息,详细记录FPGA分布式计算资源系统104中所采用的FPGA芯片、FPGA最高运行时钟频率、FPGA最大片外存储能力和FPGA接口最大通信能力,以及FPGA计算机柜105、FPGA计算板卡202或FPGA芯片的工作状态、运行状态等信息;
步骤S803:交互模块501发布静态资源描述信息:服务器106通过交互模块501发布FPGA计算资源的静态资源描述信息,这些信息将作为用户101在制定计算任务部署方案时的参考信息,用以评估FPGA分布式计算资源系统104中可用FPGA计算资源的计算能力能否满足计算任务需求;
步骤S804:用户进行任务可行性评估:判断资源系统能否满足任务需求:服务器106通过交互模块201发布FPGA分布式计算资源系统104的静态资源描述信息;用户101可通过终端102以浏览器方式向服务器106的交互模块501发起访问,访问的内容包括表1中所示的FPGA计算资源的全部静态资源描述信息;
本步骤中,用户101根据上述静态资源描述信息和实际的计算任务需求对计算任务的可行性进行评估,确定FPGA分布式计算资源系统104是否能够满足计算任务需求;任务可行性评估的执行步骤如下:
步骤S1001,用户获取FPGA芯片型号和FPGA最高运行时钟频率;
步骤S1002,用户判断FPGA芯片型号,满足继续下一步判断,不满足则不可行直接终止;
步骤S1003,用户判断FPGA最高运行时钟频率能否满足实际的计算任务需求,若也满足,说明计算任务具备可行性,继续执行下一个大步骤;
步骤S805:用户进行任务模块划分:用户101将任务划分成具有一定连接关系的多个独立的功能模块,任务模块划分参照表1所示的部分静态资源描述信息,其目的是确保每一个功能模块的处理需求、存储需求和通信需求均小于FPGA分布式计算资源系统104中FPGA的最大处理能力、最大片外存储能力和接口最大通信带宽;
步骤S806:用户通过终端向服务器提交任务:用户101通过终端102向服务器106提交任务,同时提交各个任务功能模块的资源需求描述信息,该信息以文件形式记录各个功能模块的硬件资源需求信息。终端102通过传输网络103将任务提交至服务器106内的交互模块501;
步骤S807:服务器制定详细的任务部署计划:服务器106制定任务部署计划过程中涉及到服务器106中的三个功能模块,分别是:交互模块501、任务管理模块503和资源管理模块504,实现方法如下说明:
首先,交互模块501将终端102提交的计算任务请求发送至任务管理模块503,任务管理模块503将所有任务功能模块组成任务序列。其中,一个任务对应于一个任务序列,一个任务功能模块对应于一个任务序列模块。每一个任务序列模块都有一个硬件资源需求文件详细记录该任务序列模块的硬件资源需求信息。同时,资源管理模块503将步骤S802中注册的全部可用计算资源组成资源序列,一个FPGA芯片对应于一个资源序列模块。每一个资源序列模块也都有一个硬件资源描述文件记录该FPGA资源的硬件描述信息;
然后,任务管理模块503依次取出任务序列中的任务序列模块,将资源序列模块的硬件描述信息依次与任务序列模块的硬件需求信息进行一一匹配,并将全部的匹配结果组成任务部署计划;
步骤S808:服务器判断任务部署计划是否制定成功:资源管理模块504判断任务部署计划是否制定成功,若成功,继续执行步骤S809;否则,交互模块501向终端102返回任务部署失败结果,并结束任务(如图12);
所述服务器判断任务部署计划的具体方法如下:
步骤S1201,比较资源序列模块数目与任务序列模块数目的大小,若前者大,说明资源足够容纳下全部任务,可继续往下执行步骤;反之,说明资源不足以容纳全部任务,匹配过程失败;
步骤S1202,当说明资源足够容纳下全部任务,依次读取任务中待匹配的任务序列模块的硬件资源需求信息;
步骤S1203,读取资源系列中未分配的资源序列模块的硬件资源描述信息,即资源管理模块504分别读出资源序列模块的计算资源描述信息和任务序列模块的计算资源需求信息,并对两种信息进行一一匹配;
步骤S1204,判断FPGA芯片型号是否一致,一致进入下一步,不一致则匹配过程失败;
步骤S1205,判断是否满足最高运行时钟频率,满足进入下一步,不满足则匹配过程失败;
步骤S1206,判断是否满足最大片外储存能力,满足进入下一步,不满足则匹配过程失败;
步骤S1207,判断是否满足最大通信能力,满足进入下一步,不满足则匹配过程失败;
步骤S1208,判断是否与上一资源序列模块处于同一个FPGA计算机柜,是进入下一步,不是则匹配过程失败;
步骤S1209中将当前资源序列模块分配给当前任务序列模块;
步骤S1210中分别从资源序列和任务序列中去除当前资源序列模块和任务序列模块;反之,若有任何一项条件不能满足,则匹配失败;
步骤S1211中,判断当前任务序列模块数目是否等于零,若等于零,表明全部任务序列模块都已匹配成功,匹配过程结束;反之,则继续执行直至全部任务序列模块都匹配成功或任意一个任务序列匹配失败;
步骤S809:服务器执行任务部署:服务器执行任务部署,具体工作是将任务序列模块的各个可执行文件映射到实际的FPGA芯片上,同时预定义全部任务的初始化参数;
步骤S810:运行任务:服务器106通过FPGA配置接口将各个任务的可执行文件下载到目标FPGA芯片中,并建立好任务的输入输出接口,进行初始化参数配置,开始运行任务;
步骤S811:计算资源返回任务结果给服务器:计算资源运行任务后,根据预定义的输出接口返回任务结果给服务器106的任务管理模块503;
步骤S812:服务器返回结果给终端:任务管理模块503通过交互模块501将任务结果返回至终端;
步骤S813:卸载任务:服务器106卸载任务,具体操作是包括:卸载任务管理模块中的任务序列和资源管理模块中的资源序列和擦除目标FPGA芯片中的可执行文件;
步骤S814:更新FPGA计算信息:一旦服务器106卸载上一次任务以后,资源监控模块504立即更新FPGA计算资源信息。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。
尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于FPGA的分布式计算的实现系统,包括多个终端(102)、一个传输网络(103)、一个FPGA计算池(104)和一个服务器(106),其特征在于,终端(102)上安装有浏览器或客户端程序,完成功能包括:通过浏览器或客户端接受终端(102)提出的计算任务请求、通过传输网络(103)向服务器(106)提交计算任务请求、通过传输网络(103)获得服务器(106)返回的计算任务结果、将计算结果通过浏览器或客户端返回给用户;传输网络(103)在终端(102)与服务器(106)之间建立网络连接,将传输终端(102)发出的计算任务请求传递给服务器(106),以及将服务器(106)返回的计算任务结果传递给终端(102);服务器(106)通过网络连接FPGA计算池(104);FPGA计算池(104)由多个FPGA计算机柜(105)组成,每个机柜之间通过光纤进行连接。
2.根据权利要求1所述的基于FPGA的分布式计算的实现系统,其特征在于,每个FPGA计算机柜(105)包括若干完全相同的FPGA计算板卡,每块板卡的作用是执行服务器(106)传递过来的一个计算子任务;每块计算板卡均固定在背板(201)的总线插槽上,背板的主要作用是为所在计算机柜内所有计算板卡提供数据交换功能,使得在本地机柜内的任意两块计算板卡能够直接进行数据交换。
3.根据权利要求1所述的基于FPGA的分布式计算的实现系统,其特征在于,每个FPGA计算板卡(202)由一块交换芯片(301)、一块通用处理器和若干完全相同的FPGA芯片(302)组成;处理器和每块FPGA芯片的输入输出管脚都与交换芯片(301)连接,从而同一板卡上任意两块FPGA芯片之间的数据交换均通过交换芯片(301)完成。
4.根据权利要求1所述的基于FPGA的分布式计算的实现系统,其特征在于,服务器(106)包括交互模块(501)、任务管理模块(503)、资源监控模块(502)、资源管理模块(504)和显示模块(505),交互模块(501)与任务管理模块(503)、资源管理模块(504)和资源管理模块(504)连接,其中资源管理模块(504)用于与FPGA计算池(104)连接;所述任务管理模块(503)、资源管理模块(504)和资源管理模块(504)均连接显示模块(505)。
5.一种基于FPGA的分布式计算的实现方法,其特征在于,具体步骤如下:
步骤S801:资源监控模块(502)全局搜索FPGA计算资源:服务器(106)中的资源监控模块(502)对FPGA分布式计算资源系统(104)中的FPGA计算资源进行全局搜索;
步骤S802:资源监控模块(502)进行FPGA计算资源信息注册:资源监控模块(502)对搜索结果进行注册,注册信息包括静态资源描述信息和动态资源描述信息,详细记录FPGA分布式计算资源系统(104)中所采用的FPGA芯片、FPGA最高运行时钟频率、FPGA最大片外存储能力和FPGA接口最大通信能力,以及FPGA计算机柜(105)、FPGA计算板卡(202)或FPGA芯片的工作状态、运行状态信息;
步骤S803:交互模块(501)发布静态资源描述信息:服务器(106)通过交互模块(501)发布FPGA计算资源的静态资源描述信息,这些信息将作为用户(101)在制定计算任务部署方案时的参考信息,用以评估FPGA分布式计算资源系统(104)中可用FPGA计算资源的计算能力能否满足计算任务需求;
步骤S804:用户进行任务可行性评估:判断资源系统能否满足任务需求:服务器(106)通过交互模块(201)发布FPGA分布式计算资源系统(104)的静态资源描述信息;用户(101)可通过终端(102)以浏览器方式向服务器(106)的交互模块(501)发起访问,访问的内容包括FPGA计算资源的全部静态资源描述信息;
步骤S805:用户进行任务模块划分:用户(101)将任务划分成具有一定连接关系的多个独立的功能模块,其目的是确保每一个功能模块的处理需求、存储需求和通信需求均小于FPGA分布式计算资源系统(104)中FPGA的最大处理能力、最大片外存储能力和接口最大通信带宽;
步骤S806:用户通过终端向服务器提交任务:用户(101)通过终端(102)向服务器(106)提交任务,同时提交各个任务功能模块的资源需求描述信息,该信息以文件形式记录各个功能模块的硬件资源需求信息;终端(102)通过传输网络(103)将任务提交至服务器(106)内的交互模块(501);
步骤S807:服务器制定详细的任务部署计划;
步骤S808:服务器判断任务部署计划是否制定成功:资源管理模块(504)判断任务部署计划是否制定成功,若成功,继续执行步骤S809;否则,交互模块(501)向终端(102)返回任务部署失败结果,并结束任务;
步骤S809:服务器执行任务部署:服务器执行任务部署,具体工作是将任务序列模块的各个可执行文件映射到实际的FPGA芯片上,同时预定义全部任务的初始化参数;
步骤S810:运行任务:服务器(106)通过FPGA配置接口将各个任务的可执行文件下载到目标FPGA芯片中,并建立好任务的输入输出接口,进行初始化参数配置,开始运行任务;
步骤S811:计算资源返回任务结果给服务器:计算资源运行任务后,根据预定义的输出接口返回任务结果给服务器(106)的任务管理模块(503);
步骤S812:服务器返回结果给终端:任务管理模块(503)通过交互模块(501)将任务结果返回至终端;
步骤S813:卸载任务:服务器(106)卸载任务,具体操作是包括:卸载任务管理模块中的任务序列和资源管理模块中的资源序列和擦除目标FPGA芯片中的可执行文件;
步骤S814:更新FPGA计算信息:一旦服务器(106)卸载上一次任务以后,资源监控模块(504)立即更新FPGA计算资源信息。
6.根据权利要求5所述的基于FPGA的分布式计算的实现方法,其特征在于,所述步骤S801中提到全局搜索的具体方法是:资源监控模块(502)向FPGA分布式计算资源系统(104)发送监控信号,FPGA分布式计算资源系统(104)中各个FPGA计算机柜(105)、FPGA计算板卡(202)以及FPGA芯片分别向监控模块(204)返回应答信号,该应答信号能够描述出每一个FPGA计算机柜(105)、FPGA计算板卡(202)或FPGA芯片各自的工作状态、运行状态等信息。
7.根据权利要求5所述的基于FPGA的分布式计算的实现方法,其特征在于,所述步骤S804中,用户(101)根据上述静态资源描述信息和实际的计算任务需求对计算任务的可行性进行评估,确定FPGA分布式计算资源系统(104)是否能够满足计算任务需求;任务可行性评估的执行步骤如下:
步骤S1001,用户获取FPGA芯片型号和FPGA最高运行时钟频率;
步骤S1002,用户判断FPGA芯片型号,满足继续下一步判断,不满足则不可行直接终止;
步骤S1003,用户判断FPGA最高运行时钟频率能否满足实际的计算任务需求,若也满足,说明计算任务具备可行性,继续执行下一个大步骤。
8.根据权利要求5所述的基于FPGA的分布式计算的实现方法,其特征在于,所述步骤S807中,服务器(106)制定任务部署计划实现方法如下:
首先,交互模块(501)将终端(102)提交的计算任务请求发送至任务管理模块(503),任务管理模块(503)将所有任务功能模块组成任务序列;其中,一个任务对应于一个任务序列,一个任务功能模块对应于一个任务序列模块;每一个任务序列模块都有一个硬件资源需求文件详细记录该任务序列模块的硬件资源需求信息;同时,资源管理模块(503)将步骤S802中注册的全部可用计算资源组成资源序列,一个FPGA芯片对应于一个资源序列模块;每一个资源序列模块也都有一个硬件资源描述文件记录该FPGA资源的硬件描述信息;
然后,任务管理模块(503)依次取出任务序列中的任务序列模块,将资源序列模块的硬件描述信息依次与任务序列模块的硬件需求信息进行一一匹配,并将全部的匹配结果组成任务部署计划。
9.根据权利要求5所述的基于FPGA的分布式计算的实现方法,其特征在于,所述步骤S808中,服务器判断任务部署计划的具体方法如下:
步骤S1201,比较资源序列模块数目与任务序列模块数目的大小,若前者大,说明资源足够容纳下全部任务,可继续往下执行步骤;反之,说明资源不足以容纳全部任务,匹配过程失败;
步骤S1202,当说明资源足够容纳下全部任务,依次读取任务中待匹配的任务序列模块的硬件资源需求信息;
步骤S1203,读取资源系列中未分配的资源序列模块的硬件资源描述信息,即资源管理模块(504)分别读出资源序列模块的计算资源描述信息和任务序列模块的计算资源需求信息,并对两种信息进行一一匹配;
步骤S1204,判断FPGA芯片型号是否一致,一致进入下一步,不一致则匹配过程失败;
步骤S1205,判断是否满足最高运行时钟频率,满足进入下一步,不满足则匹配过程失败;
步骤S1206,判断是否满足最大片外储存能力,满足进入下一步,不满足则匹配过程失败;
步骤S1207,判断是否满足最大通信能力,满足进入下一步,不满足则匹配过程失败;
步骤S1208,判断是否与上一资源序列模块处于同一个FPGA计算机柜,是进入下一步,不是则匹配过程失败;
步骤S1209中将当前资源序列模块分配给当前任务序列模块;
步骤S1210中分别从资源序列和任务序列中去除当前资源序列模块和任务序列模块;反之,若有任何一项条件不能满足,则匹配失败;
步骤S1211中,判断当前任务序列模块数目是否等于零,若等于零,表明全部任务序列模块都已匹配成功,匹配过程结束;反之,则继续执行直至全部任务序列模块都匹配成功或任意一个任务序列匹配失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910237273.0A CN109976912A (zh) | 2019-03-27 | 2019-03-27 | 一种基于fpga的分布式计算的实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910237273.0A CN109976912A (zh) | 2019-03-27 | 2019-03-27 | 一种基于fpga的分布式计算的实现方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109976912A true CN109976912A (zh) | 2019-07-05 |
Family
ID=67080899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910237273.0A Pending CN109976912A (zh) | 2019-03-27 | 2019-03-27 | 一种基于fpga的分布式计算的实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109976912A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111147334A (zh) * | 2019-12-31 | 2020-05-12 | 北京信而泰科技股份有限公司 | 一种网络测试仪 |
CN111625558A (zh) * | 2020-05-07 | 2020-09-04 | 苏州浪潮智能科技有限公司 | 一种服务器架构及其数据库查询方法和存储介质 |
CN112182788A (zh) * | 2020-11-03 | 2021-01-05 | 智慧航海(青岛)科技有限公司 | 基于虚拟仿真试验平台的资源配置方法 |
WO2021035394A1 (zh) * | 2019-08-23 | 2021-03-04 | 深圳鲲云信息科技有限公司 | 分布式人工智能应用数据加速方法、系统及计算机设备 |
WO2021051714A1 (zh) * | 2019-09-21 | 2021-03-25 | 苏州浪潮智能科技有限公司 | 一种fpga云平台加速资源的分配方法与系统 |
WO2023093043A1 (zh) * | 2021-11-26 | 2023-06-01 | 浪潮电子信息产业股份有限公司 | 一种数据处理方法、装置及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023983A (zh) * | 2011-11-24 | 2013-04-03 | 卡巴斯基实验室封闭式股份公司 | 用于分布计算机安全任务的处理的系统及方法 |
CN103888537A (zh) * | 2014-03-27 | 2014-06-25 | 浪潮电子信息产业股份有限公司 | 一种基于web页面的网格计算方法及系统 |
CN104299466A (zh) * | 2014-09-25 | 2015-01-21 | 浪潮(北京)电子信息产业有限公司 | 一种基于云计算平台的远程硬件实验方法及系统 |
US9270750B1 (en) * | 2013-05-31 | 2016-02-23 | Jisto Inc. | Distributed cloud computing platform and content delivery network |
CN108829515A (zh) * | 2018-05-29 | 2018-11-16 | 中国科学院计算技术研究所 | 一种云端平台计算系统及其应用方法 |
-
2019
- 2019-03-27 CN CN201910237273.0A patent/CN109976912A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103023983A (zh) * | 2011-11-24 | 2013-04-03 | 卡巴斯基实验室封闭式股份公司 | 用于分布计算机安全任务的处理的系统及方法 |
US9270750B1 (en) * | 2013-05-31 | 2016-02-23 | Jisto Inc. | Distributed cloud computing platform and content delivery network |
CN103888537A (zh) * | 2014-03-27 | 2014-06-25 | 浪潮电子信息产业股份有限公司 | 一种基于web页面的网格计算方法及系统 |
CN104299466A (zh) * | 2014-09-25 | 2015-01-21 | 浪潮(北京)电子信息产业有限公司 | 一种基于云计算平台的远程硬件实验方法及系统 |
CN108829515A (zh) * | 2018-05-29 | 2018-11-16 | 中国科学院计算技术研究所 | 一种云端平台计算系统及其应用方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021035394A1 (zh) * | 2019-08-23 | 2021-03-04 | 深圳鲲云信息科技有限公司 | 分布式人工智能应用数据加速方法、系统及计算机设备 |
WO2021051714A1 (zh) * | 2019-09-21 | 2021-03-25 | 苏州浪潮智能科技有限公司 | 一种fpga云平台加速资源的分配方法与系统 |
US11789778B2 (en) | 2019-09-21 | 2023-10-17 | Inspur Suzhou Intelligent Technology Co., Ltd. | FPGA cloud platform acceleration resource allocation method, and system |
CN111147334A (zh) * | 2019-12-31 | 2020-05-12 | 北京信而泰科技股份有限公司 | 一种网络测试仪 |
CN111625558A (zh) * | 2020-05-07 | 2020-09-04 | 苏州浪潮智能科技有限公司 | 一种服务器架构及其数据库查询方法和存储介质 |
CN112182788A (zh) * | 2020-11-03 | 2021-01-05 | 智慧航海(青岛)科技有限公司 | 基于虚拟仿真试验平台的资源配置方法 |
CN112182788B (zh) * | 2020-11-03 | 2023-05-02 | 智慧航海(青岛)科技有限公司 | 基于虚拟仿真试验平台的资源配置方法 |
WO2023093043A1 (zh) * | 2021-11-26 | 2023-06-01 | 浪潮电子信息产业股份有限公司 | 一种数据处理方法、装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109976912A (zh) | 一种基于fpga的分布式计算的实现方法及系统 | |
US20200186445A1 (en) | Methods and systems that provision distributed applications that invoke functions provided by a distributed-function-as-a-service feature | |
US7260818B1 (en) | System and method for managing software version upgrades in a networked computer system | |
US7984448B2 (en) | Mechanism to support generic collective communication across a variety of programming models | |
Zajac et al. | Towards a grid management system for HLA-based interactive simulations | |
CN106656630A (zh) | 一种电力营销业务应用系统及其构建方法、平台 | |
JP4464525B2 (ja) | 作業負荷によって管理されるクライアント/サーバ・データ処理システムにおける集中アフィニティ維持装置および方法 | |
CN108985937B (zh) | 一种基于区块链技术的计算资源共享方法及区块链系统 | |
CN104035817A (zh) | 大规模集成电路物理实现的分布式并行计算方法及其系统 | |
CN110990182A (zh) | 事务处理方法、装置、设备及存储介质 | |
CN102103518A (zh) | 一种在虚拟化环境中管理资源的系统及其实现方法 | |
CN109886693B (zh) | 区块链系统的共识实现方法、装置、设备和介质 | |
CN110942387A (zh) | 基于微服务的电票业务功能构建方法和系统 | |
US11429353B1 (en) | Dynamic service provisioning using templatized infrastructure resources | |
CN104754008B (zh) | 网络存储节点、网络存储系统以及用于网络存储节点的装置和方法 | |
WO2022247201A1 (zh) | 一种数据查询方法及装置 | |
CN112104723A (zh) | 一种多集群的数据处理系统及方法 | |
US11762851B2 (en) | Methods and systems that provide a general query interface to multiple management services and applications | |
US20080215729A1 (en) | Method and Apparatus for Cross-Tier Management in Multi-Tier Computing System Architecture | |
CN112486491A (zh) | 页面生成方法、装置、计算机设备及存储介质 | |
CN114650320B (zh) | 任务调度方法、装置、存储介质及电子设备 | |
US20180227241A1 (en) | Dynamically adaptive cloud computing infrastructure | |
CN110912726A (zh) | 服务的提供方法、装置、系统、存储介质及电子装置 | |
US10587725B2 (en) | Enabling a traditional language platform to participate in a Java enterprise computing environment | |
US20070157212A1 (en) | Context key routing for parallel processing in an application serving environment |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190705 |