用于向应用分配处理资源的方法、设备和计算机程序产品技术

技术编号:21003916 阅读:19 留言:0更新日期:2019-04-30 21:29
本公开的实施例涉及用于向应用分配处理资源的方法和设备。该方法包括接收来自应用的用于执行任务的请求。该方法还包括基于请求确定应用的特性。该方法可以确定已存储的与应用相关联的历史数据。此外,该方法还可以基于应用的特性和历史数据,自动地选择适于应用的处理资源以便向应用分配。

Methods, equipment and computer program products for allocating processing resources to applications

【技术实现步骤摘要】
用于向应用分配处理资源的方法、设备和计算机程序产品
本公开的实施例总体涉及用于应用的处理资源的分配,具体涉及用于基于历史数据自动地向应用分配处理资源的方法、设备和计算机程序产品。
技术介绍
现今图形处理单元(GPU)和现场可编程门阵列(FPGA)等处理资源已广泛用于加速如机器学习、深度学习、加密等的许多应用。应用可以通过GPU或FPGA得到加速,因此用户会想要使用GPU和/或FPGA来运行他们的应用。通常,需要在机器上本地地安装有GPU和FPGA卡,以便允许用户手动地选择使用GPU或FPGA来运行应用。另一方面,现今的许多数据中心或云服务提供商部署不同的处理资源以便用户运行他们的应用。诸如OpenCL的跨硬件平台编程语言进一步使得相同应用能够运行在不同的处理资源上,例如,运行在GPU和FPGA两者上。
技术实现思路
本公开的实施例提供了用于向应用分配处理资源的方法和设备。在本公开的第一方面,提供了一种用于向应用分配处理资源的方法。该方法包括接收来自应用的用于执行任务的请求。该方法还包括基于请求确定应用的特性。该方法可以确定已存储的与应用相关联的历史数据。此外,该方法还可以基于应用的特性和历史数据,自动地选择适于应用的处理资源以便向应用分配。在本公开的第二方面,提供了一种电子设备。该电子设备包括至少一个处理单元和至少一个存储器。至少一个存储器被耦合到至少一个处理单元并且存储由至少一个处理单元执行的指令。该指令当由至少一个处理单元执行时,使得电子设备:接收来自应用的用于执行任务的请求;基于请求确定应用的特性;确定已存储的与应用相关联的历史数据;以及基于应用的特性和历史数据,自动地选择适于应用的处理资源以便向应用分配。在本公开的第三方面,提供了计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令。机器可执行指令在被执行时使得机器执行根据本公开的第一方面所描述的方法的任意步骤。提供
技术实现思路
部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。
技术实现思路
部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。附图说明通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中在本公开示例性实施例中,相同的参考标号通常代表相同部件。图1示出了根据本公开的一个实施例的用于向应用分配处理资源的架构的示意图;图2示出了根据本公开的一个实施例的用于向应用分配处理资源的另一架构的示意图;图3示出了应用的示例启动过程的流程图;图4示出了根据本公开的一个实施例的用于向应用分配处理资源的方法的流程图;图5示出了根据本公开的一个实施例的控制器的示例结构的示意图;图6示出了在样本系统上实施本公开的方法的性能结果的示意图;以及图7示出了可以用来实施本公开的实施例的示例设备的示意性框图。具体实施方式下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。为了描述方便起见,下文将主要以GPU和FPGA作为处理资源的示例来描述本专利技术的实施例。但是应该理解,本文所述的处理资源还包括例如通用图形处理单元(GPGPU)和中央处理单元(CPU)的其它专用或通用的处理资源,不论是目前已知的还是将来开发的。此外,为了描述方便起见,下文将主要以OpenCL作为跨硬件平台编程语言的示例来描述本专利技术的实施例。但是应该理解,本公开的实施例还可以适用于其它跨硬件平台编程语言,不论是目前已知的还是将来开发的。传统上,用户自己基于应用类型、云服务价格、和他们所具有的加速器库来选择在何种类型的处理资源上运行他们的应用。在应用被部署之后,处理资源被静态地映射至用户应用。例如,8个FPGA设备被静态地分配给用户的第一应用,而另外4个GPU设备被静态地分配给用户的第二应用。在现今的数据中心和云中,这种处理资源分配是手动且静态地进行的。然而,由于在现今的数据中心和云环境中处理资源是共享的且应用是动态变化的,所以这样的手动或静态分配方法难以实现优化资源利用。由于与通用CPU架构相比,GPU和FPGA提供非常好的性能和功率效率,所以GPU和FPGA被广泛用于现今的数据中心和云中。在传统上,GPU和FPGA具有不同类型的编程语言和编程模型,因此应用仅可以针对GPU和FPGA之一来设计并且在GPU和FPGA之一上运行。现今,例如OpenCL的跨硬件平台编程语言成为普及的编程语言和编程模型。OpenCL编程语言是一种开放源,并且是硬件无关的。通过OpenCL编程语言,GPU和FPGA两者都可以通过相同的应用程序接口(API)标准来编程。通常开发者将加速器源代码开发为OpenCL内核代码,而OpenCL内核代码可以被编译成分别特定于GPU和FPGA的OpenCL内核二进制码。应用使用相同的API标准来与GPU或FPGA交互。然而,即使使用相同的OpenCL编程模型,OpenCL内核二进制码针对GPU和FPGA仍然是不同的且非兼容的。这意味着用于GPU的OpenCL内核二进制码不能在FPGA上运行,反之亦然。即使用户将相同的OpenCL内核代码编译两次,以得到分别用于GPU和FPGA的两组二进制码,用户仍然必须手动地且静态地选择GPU或FPGA设备来运行应用。此外,应用可以通过GPU或FPGA得到加速,因此用户会想要使用GPU和/或FPGA来运行他们的应用。现在大多数大的数据中心和云向它们的用户提供GPU和FPGA设备两者,从而允许用户使用GPU或FPGA运行应用。在很多情况下,在GPU和FPGA两者都可用时,事实上难以在GPU和FPGA之间做出选择。这是因为GPU和FPGA向应用以及应用运行的系统提供不同种类的优势。例如,对于图像处理任务来说,GPU的性能好于FPGA;而对于压缩/解压缩任务来说,FPGA的性能好于GPU。另外,FPGA的功率效率高于GPU。在用户选择GPU设备时数据中心和云向用户收取更多的费用,因为GPU设备的售价更高且耗能更多。对于用户和数据中心或云来说,静态设备分配方法难以实现高性能和高效率。在运行应用时整体优化目标可以是不同的,诸如越快越好、成本越低越好、功耗越低越好、资源效率越高越好、以及以上目标的交叉。针对应用的静态GPU/FPGA资源分配很难满足该要求。尤其是在处于如公共云的共享且动态变化的环境中时,不可能由用户或现今的数据中心和云基于传统的GPU/FPGA设备分配方法来灵活地实现这些目标,以及在这些目标之间变化。本公开的实施例构建了具有例如GPU和FPGA设备的不同类型处理资源的统一资源池本文档来自技高网
...

【技术保护点】
1.一种用于向应用分配处理资源的方法,包括:接收来自应用的用于执行任务的请求;基于所述请求确定所述应用的特性;确定已存储的与所述应用相关联的历史数据;以及基于所述应用的特性和所述历史数据,自动地选择适于所述应用的处理资源以便向所述应用分配。

【技术特征摘要】
1.一种用于向应用分配处理资源的方法,包括:接收来自应用的用于执行任务的请求;基于所述请求确定所述应用的特性;确定已存储的与所述应用相关联的历史数据;以及基于所述应用的特性和所述历史数据,自动地选择适于所述应用的处理资源以便向所述应用分配。2.根据权利要求1所述的方法,其中自动地选择所述处理资源包括:基于所述历史数据确定是否存储有已被确定为适于所述应用的代码;响应于找到所述代码,基于所述代码确定适于所述应用的资源类型;以及基于所述资源类型选择所述处理资源。3.根据权利要求1所述的方法,其中所述处理资源是第一资源类型,所述方法还包括:响应于从所述应用接收到特定于第二资源类型的第一代码,将所述第一代码转换为第二代码,所述第二代码适用于所述第一资源类型;以及将所述第二代码发送给所述处理资源以便执行。4.根据权利要求1所述的方法,还包括:响应于从所述应用接收到第三代码,确定所述第三代码能够由所述处理资源执行;以及响应于确定所述第三代码能够由所述处理资源执行,与所述应用的特性和所述处理资源相关联地存储所述第三代码以作为历史数据。5.根据权利要求4所述的方法,其中存储所述第三代码包括:响应于确定所述第三代码包括通用源代码,基于所述通用源代码生成适用于不同类型的处理资源的多组代码;以及存储所述多组代码。6.根据权利要求1所述的方法,其中自动地选择所述处理资源包括:确定可用处理资源各自的性能;以及进一步基于所述可用处理资源各自的性能来自动地选择所述处理资源。7.根据权利要求1所述的方法,其中所述应用和所述处理资源彼此远程地定位。8.一种电子设备,包括:至少一个处理单元;至少一个存储器,所述至少一个存储器被耦合到所述至少一个处理单元并且存储由所述至少一个处理单元执行的指令,所述指令当由所述至少一个处理单元执行时,使得所述电子设备:接收来自应用的用于执行任务的请求;...

【专利技术属性】
技术研发人员:陈飞彭麟王鲲
申请(专利权)人:伊姆西IP控股有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1