CN109614230B - 资源虚拟化方法、装置和电子设备 - Google Patents
资源虚拟化方法、装置和电子设备 Download PDFInfo
- Publication number
- CN109614230B CN109614230B CN201811471285.1A CN201811471285A CN109614230B CN 109614230 B CN109614230 B CN 109614230B CN 201811471285 A CN201811471285 A CN 201811471285A CN 109614230 B CN109614230 B CN 109614230B
- Authority
- CN
- China
- Prior art keywords
- pointer
- parameter
- target object
- electronic device
- parameters
- 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/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本公开提供了一种资源虚拟化方法,应用于第一电子设备,所述第一电子设备包括至少一个处理单元,所述方法包括获得所述第二电子设备请求使用所述处理单元的请求数据,解析所述请求数据,得到请求执行的函数以及所述函数的参数,其中,所述参数包括指针类型的指针参数,所述指针参数指向目标对象在所述第二电子设备中的存储位置,在所述指针参数所指向的目标对象的对象类型为特定对象类型的情况下,将所述指针参数的值映射为在所述第一电子设备中所述目标对象的存储位置,所述处理单元基于所述映射后的指针参数执行所述函数,获得结果数据并返回所述第二电子设备。本公开还提供了一种资源虚拟化装置、一种电子设备以及一种计算机可读存储介质。
Description
技术领域
本公开涉及一种资源虚拟化方法、装置和电子设备。
背景技术
NVIDIA的CUDA技术使得图形处理器可以分担中央处理器的负担,代替中央处理器完成部分运算工作。然而,CUDA仅仅能够用于NVIDIA的产品,无法实现跨平台支持。于是,OpenCL应运而生,能够跨平台地支持多厂家的设备。但是,本发明人发现,在现有技术中,限于当前OpenCL的设计,无法对硬件进行远程虚拟,例如用于实现设备的池化管理。
发明内容
本公开的一个方面提供了一种资源虚拟化方法,应用于第一电子设备,所述第一电子设备包括至少一个处理单元,所述方法包括获得所述第二电子设备请求使用所述处理单元的请求数据,解析所述请求数据,得到请求执行的函数以及所述函数的参数,其中,所述参数包括指针类型的指针参数,所述指针参数指向目标对象在所述第二电子设备中的存储位置,在所述指针参数所指向的目标对象的对象类型为特定对象类型的情况下,将所述指针参数的值映射为在所述第一电子设备中所述目标对象的存储位置,所述处理单元基于所述映射后的指针参数执行所述函数,获得结果数据并返回所述第二电子设备。
可选地,所述处理单元支持开放运算语言,所述特定对象类型包括开放运算语言运行时对象类型,所述开放运算语言运行时对象类型包括图像类型或者缓冲区类型。
可选地,所述在所述指针参数所指向的目标对象的对象类型为特定对象类型的情况下,将所述指针参数的值映射为在所述第一电子设备中所述目标对象的存储位置包括,检查传入的各个参数是否为指针参数,在传入的参数为指针参数的情况下,调用获得参数信息函数,获得所述指针参数所指向的目标对象的对象类型,在所述目标对象的对象类型为特定对象类型的情况下,将所述指针参数的值映射为在所述第一电子设备中所述目标对象的存储位置。
可选地,所述在所述指针参数所指向的目标对象的对象类型为特定对象类型的情况下,将所述指针参数的值映射为在所述第一电子设备中所述目标对象的存储位置包括,检查传入的各个参数是否为指针参数,在传入的参数为指针参数的情况下,调用获得参数信息函数,获得所述指针参数所指向的目标对象的对象类型是否为特定对象类型的布尔值,在所述布尔值为预设值的情况下,将所述指针参数的值映射为在所述第一电子设备中所述目标对象的存储位置。
可选地,所述将所述指针参数的值映射为在所述第一电子设备中所述目标对象的存储位置包括,基于所述指针参数的值,向所述第二电子设备请求获得所述目标对象的特征信息,基于返回的特征信息确定所述目标对象在所述第一电子设备中的存储位置,将所述指针参数的值替换为所述目标对象在所述第一电子设备中的存储位置。
本公开的另一个方面提供了一种资源虚拟化装置,包括获得模块、解析模块、映射模块以及反馈模块。获得模块,用于获得所述第二电子设备请求使用处理单元的请求数据。解析模块,用于解析所述请求数据,得到请求执行的函数以及所述函数的参数,其中,所述参数包括指针类型的指针参数,所述指针参数指向目标对象在所述第二电子设备中的存储位置。映射模块,用于在所述指针参数所指向的目标对象的对象类型为特定对象类型的情况下,将所述指针参数的值映射为在所述第一电子设备中所述目标对象的存储位置。反馈模块,用于所述处理单元基于所述映射后的指针参数执行所述函数,获得结果数据并返回所述第二电子设备。
可选地,所述映射模块包括检查子模块、获得子模块以及第一映射子模块。检查子模块,用于检查传入的各个参数是否为指针参数。获得子模块,用于在传入的参数为指针参数的情况下,调用获得参数信息函数,获得所述指针参数所指向的目标对象的对象类型。第一映射子模块,用于在所述目标对象的对象类型为特定对象类型的情况下,将所述指针参数的值映射为在所述第一电子设备中所述目标对象的存储位置。
可选地,所述映射模块包括检查子模块、确定子模块以及第二映射子模块。检查子模块,用于检查传入的各个参数是否为指针参数。确定子模块,用于在传入的参数为指针参数的情况下,调用获得参数信息函数,获得所述指针参数所指向的目标对象的对象类型是否为特定对象类型的布尔值。第二映射子模块,用于在所述布尔值为预设值的情况下,将所述指针参数的值映射为在所述第一电子设备中所述目标对象的存储位置。
可选地,所述映射模块包括请求单元、确定单元以及替换单元。请求单元,用于基于所述指针参数的值,向所述第二电子设备请求获得所述目标对象的特征信息。确定单元,用于基于返回的特征信息确定所述目标对象在所述第一电子设备中的存储位置。替换单元,用于将所述指针参数的值替换为所述目标对象在所述第一电子设备中的存储位置。
本公开的另一个方面提供了一种电子设备,包括处理器以及存储器。所述存储器上存储有计算机程序,所述计算机程序被处理器执行时使得处理器执行如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开实施例的资源虚拟化方法的应用场景的示意图;
图2示意性示出了根据本公开实施例的资源虚拟化方法的流程图;
图3A~图3C示意性示出了根据本公开实施例的在所述指针参数满足条件的情况下映射所述指针参数的流程图;
图4示意性示出了根据本公开实施例的资源虚拟化装置的框图;
图5A~图5C示意性示出了根据本公开实施例的映射模块的框图;以及
图6示意性示出了根据本公开实施例的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
本公开的实施例提供了一种资源虚拟化方法,应用于第一电子设备,所述第一电子设备包括至少一个处理单元,所述方法包括获得所述第二电子设备请求使用所述处理单元的请求数据,解析所述请求数据,得到请求执行的函数以及所述函数的参数,其中,所述参数包括指针类型的指针参数,所述指针参数指向目标对象在所述第二电子设备中的存储位置,在所述指针参数所指向的目标对象的对象类型为特定对象类型的情况下,将所述指针参数的值映射为在所述第一电子设备中所述目标对象的存储位置,所述处理单元基于所述映射后的指针参数执行所述函数,获得结果数据并返回所述第二电子设备。
图1示意性示出了根据本公开实施例的资源虚拟化方法的应用场景的示意图。需要注意的是,图1所示仅为可以应用本公开实施例的场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
分布式架构有利于对计算、存储资源进行高效地管理。如图1所示,该分布式系统100可以包括多个节点110以及网络120。网络120用以在多个节点110之间提供通信链路的介质。网络120可以包括各种连接类型,例如有线、无线通信链路等等。节点110例如可以是专用的计算或存储设备,或者多个用户的终端设备等。分布式系统100可以通过本公开实施例的方法实现资源虚拟化方法。
例如,第二电子设备请求使用该分布式系统中的节点(以下称为第一电子设备)的计算资源,可以向第一电子设备发出请求。然而,在一些特定场景下,某些处理单元并不能直接向第二电子设备提供服务。例如,在使用开放运算语言(OpenCL)的框架时,显卡等OpenCL设备在远程调用时会发生错误。本发明人发现,该错误通常是由于OpenCL的跨平台设计导致很多数据以结构体指针的形式被调用,而在不同设备间传递指针的值将导致指针指向未知的数据。本公开实施例提供的资源虚拟化方法可以用于解决上述问题。
图2示意性示出了根据本公开实施例的资源虚拟化方法的流程图。
如图2所示,该方法包括操作S210~S240。
在操作S210,获得所述第二电子设备请求使用所述处理单元的请求数据。
根据本公开实施例,该处理单元可以是支持开放运算语言(OpenCL)的设备,简称OpenCL设备,例如OpenCL显卡等,显卡上设置有图形处理器GPU,在特定任务上表现出优秀的处理能力。
根据本公开实施例,该请求数据是第二电子设备通过将指令转换为字符串的形式传输到第一电子设备的。这样,实现了远程设备的调用与处理逻辑的解耦,应用程序无需考虑远程调用的问题,实现了远程设备在本地的虚拟化。
在操作S220,解析所述请求数据,得到请求执行的函数以及所述函数的参数,其中,所述参数包括指针类型的指针参数,其中,所述指针参数指向目标对象在所述第二电子设备中的存储位置。根据本公开实施例,在接收到字符串的情况下,需要将其解析为可执行的指令。在解析过程中,遇到函数以及传入函数的参数时,需要特别处理。
在操作S230,在所述指针参数所指向的目标对象的对象类型为特定对象类型的情况下,将所述指针参数的值映射为在所述第一电子设备中所述目标对象的存储位置。
下面结合图3A~图3C对操作S230进行说明。
图3A示意性示出了根据本公开实施例的在所述指针参数满足条件的情况下映射所述指针参数的流程图。
如图3A所示,该方法包括操作S310~S330。
在操作S310,检查传入的各个参数是否为指针参数。例如可以通过指针的标识符“*”来检查参数是否为指针参数,当然,在不同的计算机语言中可以有不同的实现方式。
在操作S320,在传入的参数为指针参数的情况下,调用获得参数信息函数,获得所述指针参数所指向的目标对象的对象类型。该获得参数信息函数例如可以是OpenCL中提供的clGetKernelArgInfo函数,其中,在该参数现有的返回值的基础上,经重新开发,增加了返回传入Kernel函数的各个参数所指向的目标对象的对象类型的返回值(例如可以命名为CL_KERNEL_ARG_OBJECT_TYPE)。于是,通过调用该函数,可以得到各个参数对应的对象的类型,例如BUFFER、PIPE、IMAGE1D、IMAGE2D、SAMPLER等。
在操作S330,在所述目标对象的对象类型为特定对象类型的情况下,将所述指针参数的值映射为在所述第一电子设备中所述目标对象的存储位置。在获得对象类型后,可以判断该对象类型是否为特定对象类型,例如开放运算语言运行时对象的类型(OpenCLRuntime类型),例如包括图像类型或者缓冲区类型等。在属于特定对象类型的情况下,执行指针参数的值的映射。
图3B示意性示出了根据本公开另一实施例的在所述指针参数满足条件的情况下映射所述指针参数的流程图。
如图3B所示,该方法包括操作S310、S340和S350。
在操作S310,检查传入的各个参数是否为指针参数。该操作与前述实施例相同,此处不再赘述。
在操作S340,在传入的参数为指针参数的情况下,调用获得参数信息函数,获得所述指针参数所指向的目标对象的对象类型是否为特定对象类型的布尔值。该获得参数信息函数例如可以是OpenCL中提供的clGetKernelArgInfo函数,其中,在该参数现有的返回值的基础上,经重新开发,增加了返回传入Kernel函数的各个参数所指向的目标对象的对象类型是否是特定对象类型的布尔值的返回值(例如可以命名为CL_KERNEL_ARG_IS_RUNTIME_OBJECT)。于是,通过调用该函数,可以得到各个参数对应的对象是否为特定对象类型,例如开放运算语言运行时对象的类型(OpenCL Runtime类型)。
在操作S350,在所述布尔值为预设值的情况下,将所述指针参数的值映射为在所述第一电子设备中所述目标对象的存储位置。
下面结合图3C对映射过程进行介绍。图3C示意性示出了根据本公开实施例的映射所述指针参数的流程图。
如图3C所示,该方法包括操作S360~S380。
在操作S360,基于所述指针参数的值,向所述第二电子设备请求获得所述目标对象的特征信息。根据本公开实施例,第一电子设备在确定传入的某个参数为指针参数后,向第二电子设备发送消息,该消息包含该指针参数的值,用于请求获得该指针参数的值所指向的目标对象的特征信息,例如目标对象的名称或目标对象的创建时间等描述信息。第二电子设备在接收到该消息后,基于指针参数的值在存储空间中查找指向的目标对象,确定目标对象的特征信息,该并将该目标对象的特征信息回第一电子设备。
在操作S370,基于返回的特征信息确定所述目标对象在所述第一电子设备中的存储位置。根据本公开实施例,第一电子设备接收到该特征信息后,可以根据该特征信息查找该目标对象在本地的存储位置,即在第一电子设备中的存储位置。
在操作S380,将所述指针参数的值替换为所述目标对象在所述第一电子设备中的存储位置。
返回参考图2。在操作S240,所述处理单元基于所述映射后的指针参数执行所述函数,获得结果数据并返回所述第二电子设备。在转换了指针参数的值的情况下,第一电子设备可以通过该处理单元执行解析后的指令,并将结果返回第二电子设备。
该方法通过确定目标对象是否为特定对象类型,实现了指针参数的值在不同设备间的映射,进而使得第二电子设备能够调用第一电子设备中的处理单元,实现该处理单元在第二电子设备中的虚拟化。
基于同一发明构思,本公开还提供了一种资源虚拟化装置,下面参照图4以及图5A~图5C对本公开实施例的资源虚拟化装置进行说明。
图4示意性示出了根据本公开实施例的资源虚拟化装置400的框图。
如图4所示,该资源虚拟化装置400包括获得模块410、解析模块420、映射模块430以及反馈模块440。该资源虚拟化装置400可以执行上文描述的各种方法。
获得模块410,例如执行参考上文图2描述的操作S210,用于获得所述第二电子设备请求使用处理单元的请求数据。
解析模块420,例如执行参考上文图2描述的操作S220,用于解析所述请求数据,得到请求执行的函数以及所述函数的参数,其中,所述参数包括指针类型的指针参数,所述指针参数指向目标对象在所述第二电子设备中的存储位置。
映射模块430,例如执行参考上文图2描述的操作S230,用于在所述指针参数所指向的目标对象的对象类型为特定对象类型的情况下,将所述指针参数的值映射为在所述第一电子设备中所述目标对象的存储位置。
反馈模块440,例如执行参考上文图2描述的操作S240,用于所述处理单元基于所述映射后的指针参数执行所述函数,获得结果数据并返回所述第二电子设备。
图5A示意性示出了根据本公开实施例的映射模块430的框图。
如图5A所示,该映射模块430包括检查子模块510、获得子模块520以及第一映射子模块530。
检查子模块510,例如执行参考上文图3A描述的操作S310,用于检查传入的各个参数是否为指针参数。
获得子模块520,例如执行参考上文图3A描述的操作S320,用于在传入的参数为指针参数的情况下,调用获得参数信息函数,获得所述指针参数所指向的目标对象的对象类型。
第一映射子模块530,例如执行参考上文图3A描述的操作S330,用于在所述目标对象的对象类型为特定对象类型的情况下,将所述指针参数的值映射为在所述第一电子设备中所述目标对象的存储位置。
图5B示意性示出了根据本公开另一实施例的映射模块430的框图。
如图5B所示,该映射模块430包括检查子模块510、确定子模块540以及第二映射子模块550。
检查子模块510,例如执行参考上文图3B描述的操作S310,用于检查传入的各个参数是否为指针参数。
确定子模块540,例如执行参考上文图3B描述的操作S340,用于在传入的参数为指针参数的情况下,调用获得参数信息函数,获得所述指针参数所指向的目标对象的对象类型是否为特定对象类型的布尔值。
第二映射子模块550,例如执行参考上文图3B描述的操作S350,用于在所述布尔值为预设值的情况下,将所述指针参数的值映射为在所述第一电子设备中所述目标对象的存储位置。
图5C示意性示出了根据本公开实施例的映射模块430的框图。
如图5C所示,该映射模块430包括请求单元560、确定单元570以及替换单元580。应当了解的是,该请求单元560、确定单元570以及替换单元580可以设置于如上文所述的第一映射子模块530或第二映射子模块550中。
请求单元560,例如执行参考上文图3C描述的操作S360,用于基于所述指针参数的值,向所述第二电子设备请求获得所述目标对象的特征信息。
确定单元570,例如执行参考上文图3C描述的操作S370,用于基于返回的特征信息确定所述目标对象在所述第一电子设备中的存储位置。
替换单元580,例如执行参考上文图3C描述的操作S380,用于将所述指针参数的值替换为所述目标对象在所述第一电子设备中的存储位置。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,获得模块410、解析模块420、映射模块430、反馈模块440、检查子模块510、获得子模块520、第一映射子模块530、确定子模块540、第二映射子模块550、请求单元560、确定单元570以及替换单元580中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获得模块410、解析模块420、映射模块430、反馈模块440、检查子模块510、获得子模块520、第一映射子模块530、确定子模块540、第二映射子模块550、请求单元560、确定单元570以及替换单元580中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获得模块410、解析模块420、映射模块430、反馈模块440、检查子模块510、获得子模块520、第一映射子模块530、确定子模块540、第二映射子模块550、请求单元560、确定单元570以及替换单元580中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图6示意性示出了根据本公开实施例的电子设备600的框图。图6示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600包括处理器610和计算机可读存储介质620。该电子设备600可以执行根据本公开实施例的方法。
具体地,处理器610例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器610还可以包括用于缓存用途的板载存储器。处理器610可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质620,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;等等。
计算机可读存储介质620可以包括计算机程序621,该计算机程序621可以包括代码/计算机可执行指令,其在由处理器610执行时使得处理器610执行根据本公开实施例的方法或其任何变形。
计算机程序621可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序621中的代码可以包括一个或多个程序模块,例如包括621A、模块621B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器610执行时,使得处理器610可以执行根据本公开实施例的方法或其任何变形。
根据本发明的实施例,获得模块410、解析模块420、映射模块430、反馈模块440、检查子模块510、获得子模块520、第一映射子模块530、确定子模块540、第二映射子模块550、请求单元560、确定单元570以及替换单元580中的至少一个可以实现为参考图6描述的计算机程序模块,其在被处理器610执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (10)
1.一种资源虚拟化方法,应用于第一电子设备,所述第一电子设备包括至少一个处理单元,所述方法包括:
获得第二电子设备请求使用所述处理单元的请求数据;
解析所述请求数据,得到请求执行的函数以及所述函数的参数,其中,所述参数包括指针类型的指针参数,其中,所述指针参数指向目标对象在所述第二电子设备中的存储位置;
在所述指针参数所指向的目标对象的对象类型为特定对象类型的情况下,将所述指针参数的值映射为在所述第一电子设备中所述目标对象的存储位置;
所述处理单元基于所述映射后的指针参数执行所述函数,获得结果数据并返回所述第二电子设备。
2.根据权利要求1所述的方法,其中,所述处理单元支持开放运算语言,所述特定对象类型包括开放运算语言运行时对象类型,所述开放运算语言运行时对象类型包括图像类型或者缓冲区类型。
3.根据权利要求1所述的方法,其中,所述在所述指针参数所指向的目标对象的对象类型为特定对象类型的情况下,将所述指针参数的值映射为在所述第一电子设备中所述目标对象的存储位置包括:
检查传入的各个参数是否为指针参数;
在传入的参数为指针参数的情况下,调用获得参数信息函数,获得所述指针参数所指向的目标对象的对象类型;
在所述目标对象的对象类型为特定对象类型的情况下,将所述指针参数的值映射为在所述第一电子设备中所述目标对象的存储位置。
4.根据权利要求1所述的方法,其中,所述在所述指针参数所指向的目标对象的对象类型为特定对象类型的情况下,将所述指针参数的值映射为在所述第一电子设备中所述目标对象的存储位置包括:
检查传入的各个参数是否为指针参数;
在传入的参数为指针参数的情况下,调用获得参数信息函数,获得所述指针参数所指向的目标对象的对象类型是否为特定对象类型的布尔值;
在所述布尔值为预设值的情况下,将所述指针参数的值映射为在所述第一电子设备中所述目标对象的存储位置。
5.根据权利要求1所述的方法,其中,所述将所述指针参数的值映射为在所述第一电子设备中所述目标对象的存储位置包括:
基于所述指针参数的值,向所述第二电子设备请求获得所述目标对象的特征信息;
基于返回的特征信息确定所述目标对象在所述第一电子设备中的存储位置;
将所述指针参数的值替换为所述目标对象在所述第一电子设备中的存储位置。
6.一种计算资源共享装置,包括:
获得模块,用于获得第二电子设备请求使用处理单元的请求数据;
解析模块,用于解析所述请求数据,得到请求执行的函数以及所述函数的参数,其中,所述参数包括指针类型的指针参数,所述指针参数指向目标对象在所述第二电子设备中的存储位置;
映射模块,用于在所述指针参数所指向的目标对象的对象类型为特定对象类型的情况下,将所述指针参数的值映射为在第一电子设备中所述目标对象的存储位置;
反馈模块,用于所述处理单元基于所述映射后的指针参数执行所述函数,获得结果数据并返回所述第二电子设备。
7.根据权利要求6所述的装置,其中,所述映射模块包括:
检查子模块,用于检查传入的各个参数是否为指针参数;
获得子模块,用于在传入的参数为指针参数的情况下,调用获得参数信息函数,获得所述指针参数所指向的目标对象的对象类型;
第一映射子模块,用于在所述目标对象的对象类型为特定对象类型的情况下,将所述指针参数的值映射为在所述第一电子设备中所述目标对象的存储位置。
8.根据权利要求6所述的装置,其中,所述映射模块包括:
检查子模块,用于检查传入的各个参数是否为指针参数;
确定子模块,用于在传入的参数为指针参数的情况下,调用获得参数信息函数,获得所述指针参数所指向的目标对象的对象类型是否为特定对象类型的布尔值;
第二映射子模块,用于在所述布尔值为预设值的情况下,将所述指针参数的值映射为在所述第一电子设备中所述目标对象的存储位置。
9.一种电子设备,包括:
处理器;以及
存储器,其上存储有计算机程序,所述计算机程序被处理器执行时,使得处理器:
获得第二电子设备请求使用处理单元的请求数据;
解析所述请求数据,得到请求执行的函数以及所述函数的参数,其中,所述参数包括指针类型的指针参数,所述指针参数指向目标对象在所述第二电子设备中的存储位置;
在所述指针参数所指向的目标对象的对象类型为特定对象类型的情况下,将所述指针参数的值映射为在第一电子设备中所述目标对象的存储位置;
所述处理单元基于所述映射后的指针参数执行所述函数,获得结果数据并返回所述第二电子设备。
10.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,使得处理器:
获得第二电子设备请求使用处理单元的请求数据;
解析所述请求数据,得到请求执行的函数以及所述函数的参数,其中,所述参数包括指针类型的指针参数,所述指针参数指向目标对象在所述第二电子设备中的存储位置;
在所述指针参数所指向的目标对象的对象类型为特定对象类型的情况下,将所述指针参数的值映射为在第一电子设备中所述目标对象的存储位置;
所述处理单元基于所述映射后的指针参数执行所述函数,获得结果数据并返回所述第二电子设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811471285.1A CN109614230B (zh) | 2018-12-03 | 2018-12-03 | 资源虚拟化方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811471285.1A CN109614230B (zh) | 2018-12-03 | 2018-12-03 | 资源虚拟化方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109614230A CN109614230A (zh) | 2019-04-12 |
CN109614230B true CN109614230B (zh) | 2021-08-17 |
Family
ID=66006944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811471285.1A Active CN109614230B (zh) | 2018-12-03 | 2018-12-03 | 资源虚拟化方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109614230B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114595065A (zh) * | 2022-03-15 | 2022-06-07 | 北京有竹居网络技术有限公司 | 数据获取方法、装置、存储介质以及电子设备 |
CN117349483B (zh) * | 2023-12-05 | 2024-04-09 | 杭州行芯科技有限公司 | 一种寄生参数的查找方法、装置、电子设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8856491B2 (en) * | 2012-05-23 | 2014-10-07 | International Business Machines Corporation | Garbage collection implemented in hardware |
CN103064657B (zh) * | 2012-12-26 | 2016-09-28 | 深圳中微电科技有限公司 | 单个处理器上实现多应用并行处理的方法及装置 |
US20160048376A1 (en) * | 2014-08-12 | 2016-02-18 | Advanced Micro Devices, Inc. | Portable binary image format (pbif) for pre-compiled kernels |
CN106991057B (zh) * | 2017-04-11 | 2020-09-11 | 深信服科技股份有限公司 | 一种共享显卡虚拟化中内存的调用方法及虚拟化平台 |
CN107273331A (zh) * | 2017-06-30 | 2017-10-20 | 山东超越数控电子有限公司 | 一种基于cpu+gpu+fpga架构的异构计算系统和方法 |
-
2018
- 2018-12-03 CN CN201811471285.1A patent/CN109614230B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109614230A (zh) | 2019-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111221521B (zh) | 日志代码的生成方法、装置、计算机系统和可读存储介质 | |
US10691439B2 (en) | Method and apparatus for facilitating a software update process over a network | |
US8510751B2 (en) | Optimizing workflow engines | |
US20220171862A1 (en) | Automatic detection of an incomplete static analysis security assessment | |
CN107451062B (zh) | 一种用户界面遍历测试方法、装置、服务器、存储介质 | |
US20190258534A1 (en) | Message oriented middleware with integrated rules engine | |
US11036522B2 (en) | Remote component loader | |
CN109614230B (zh) | 资源虚拟化方法、装置和电子设备 | |
CN112328301B (zh) | 维护运行环境一致性的方法、装置、存储介质及电子设备 | |
CN111966396A (zh) | 数据处理方法及装置、计算机系统和计算机可读存储介质 | |
US20140280367A1 (en) | Silo-aware databases | |
CN111611086A (zh) | 信息处理方法、装置、电子设备和介质 | |
US11071151B2 (en) | Methods and apparatuses for connecting a wireless access point through an application in a user equipment | |
CN109976905B (zh) | 内存管理方法、装置和电子设备 | |
US10901698B2 (en) | Command tool development using a description file | |
CN112506781B (zh) | 测试监控方法、装置、电子设备、存储介质及程序产品 | |
US9959097B2 (en) | SVN interface system for heterogeneous development environments | |
CN113094084A (zh) | 版本构建方法、版本构建装置、电子设备及可读存储介质 | |
US11163622B1 (en) | Web application implementing a shared set of identifiers for handling links to web application plugins | |
CN112988604A (zh) | 对象测试方法、测试系统、电子设备及可读存储介质 | |
CN113392311A (zh) | 字段搜索方法、字段搜索装置、电子设备及存储介质 | |
CN112363987A (zh) | 文件压缩方法及装置、文件加载方法及装置和电子设备 | |
US20200278861A1 (en) | Refining a software system using live documentation mapping | |
US9923985B2 (en) | Facilitating an efficient exchange of streaming data constructs between origin and target systems while making remote procedure calls | |
CN113282391B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |