用于混合系统的分布式功能执行技术方案

技术编号:10493314 阅读:119 留言:0更新日期:2014-10-03 20:18
一种方法,包括:通过包括一个或多个处理器的主机来处理应用;将所述应用的至少部分分布到加速器,以用于执行。所述方法包括:指令所述加速器在所述加速器上创建缓冲器;并且指令所述加速器执行所述应用的部分,其中,所述加速器将数据写入到所述缓冲器。所述方法还包括:在所述应用请求所述缓冲器中的数据之前,指令所述加速器将所述缓冲器中的数据发送到所述主机。所述加速器基于所述主机中的一个或多个运行时间条件在将数据发送到所述主机之前聚合所述缓冲器中的数据。

【技术实现步骤摘要】
【国外来华专利技术】用于混合系统的分布式功能执行的方法、系统及介质
本公开通常涉及分布式功能执行,更具体地说,涉及用于使用OpenCL的混合系统的分布式功能执行。
技术介绍
开放计算语言(OpenCL)是用于编写跨越包括CPU、图形处理单元(GPU)和其它处理器的异构平台而执行的程序的框架。OpenCL包括用于写内核(其作为在OpenCL设备上执行的功能)以及API(其用于定义并且然后控制平台)的语言。OpenCL使用基于任务和基于数据的并行性来提供并行计算。OpenCL被设计为提供用于非图形计算的对图形处理单元的应用访问,并且由此将GPU的能力扩展超出图形。当前的OpenCL运行时间环境不可用于与特定架构(例如IBM的Systemz)一起使用。为了这些架构利用OpenCL,架构必须远程访问分离架构上的OpenCL运行时间。在zEnterprise配置中,Systemz主机可以调用通常被称为加速器的另一设备上的计算密集功能(computation-allyintensivefunction)。为了zOS地址空间或zLinux处理访问OpenCL主机程序中的API,可以使用远程过程调用(RPC)方案。然而,结合OpenCL使用当前可用的RPC方案存在若干缺陷。由于OpenCL被设计为与非分布式系统一起使用,因此OpenCL未被设计为优化各种处理器与系统中的设备所使用的缓冲器之间的数据传输。
技术实现思路
根据本公开的一个实施例,一种用于混合系统上的分布式功能执行的方法,包括:通过包括一个或多个处理器的主机处理应用;将所述应用的至少部分分布到加速器,以用于执行。所述方法包括:指令所述加速器在所述加速器上创建缓冲器;指令所述加速器执行所述应用的部分,其中,所述加速器将数据写入到所述缓冲器。所述方法还包括:在所述应用请求所述缓冲器中的数据之前,指令所述加速器将所述缓冲器中的数据发送到所述主机。所述加速器基于所述主机中的一个或多个运行时间条件在将数据发送到所述主机之前聚合所述缓冲器中的数据。根据本公开的另一实施例,一种包括具有实施有计算机可读程序代码的计算机可读存储介质的计算机程序产品,所述计算机可读程序代码包括被配置为处理主机上的应用的计算机可读程序代码。所述计算机可读程序代码被配置为:将所述应用的至少部分分布到加速器,以用于执行;以及指令所述加速器在所述加速器上创建缓冲器。所述计算机可读程序代码还被配置为:指令所述加速器执行所述应用的部分,其中,所述加速器将数据写入到所述缓冲器,并且在所述应用请求所述缓冲器中的数据之前指令所述加速器将所述缓冲器中的数据发送到所述主机。所述加速器基于所述主机中的一个或多个运行时间条件在将数据发送到所述主机之前聚合所述缓冲器中的数据。根据本公开的又一实施例,一种用于分布式功能执行的系统,所述系统包括:与加速器操作通信的主机。所述系统被配置为执行方法,所述方法包括:通过所述主机处理应用;并且将所述应用的至少部分分布到所述加速器,以用于执行。所述方法还包括:指令所述加速器在所述加速器上创建缓冲器;指令所述加速器执行所述应用的部分,其中,所述加速器将数据写入到所述缓冲器,并且在所述应用请求所述缓冲器中的数据之前指令所述加速器将所述缓冲器中的数据发送到所述主机。所述加速器基于所述主机中的一个或多个运行时间条件在将数据发送到所述主机之前聚合所述缓冲器中的数据。通过本专利技术的技术来实现附加的特征和优点。本专利技术的其它实施例和方面在此详细描述并且被看作所要求的本专利技术的一部分。为了更好地理解具有优点和特征的本专利技术,参照描述和附图。附图说明在说明书的权利要求中特别地指出并且特定地要求被看作本专利技术的主题。从结合附图的以下详细描述,本专利技术的以上和其它特征和优点是显然的,其中:图1是图示OpenCL方法的操作的流程图;图2是图示用于使用OpenCL的分布式功能执行的系统的框图;图3是图示用于混合系统上的分布式功能执行的方法的流程图。具体实施方式现参照图1,示出图示OpenCL方法的操作的流程图。如在块10所示,主机处理用于执行的应用。主机创建作为应用的部分的一个或多个内核,并且将它们分布到一个或多个加速器,如在主机方向下在块12所示。接下来,如在块14所示,主机创建一个或多个缓冲器并且将其写入到加速器。缓冲器可以包括用于执行的内核所需的数据。一旦缓冲器已经被创建并写入在加速器上,通过主机在加速器上排队执行内核,如在块16所示。如在块18所示,内核随后在加速器上执行。内核执行的输出结果写入到加速器上的缓冲器,如在块20所示。最后,加速器上的缓冲器可以通过调用主机读回,如在块22所示。现参照图2,图示用于使用OpenCL的分布式功能执行的混合系统100的框图。混合系统100包括经由通信链路106连接的主机102和加速器104。在示例性实施例中,主机102可以具有Systemz操作系统(例如zOS或zLinux),而加速器104可以具有任何其它类型的操作系统(例如AIX或Linux)。主机102包括数据管理和调度库108,其允许主机102上的OpenCL源调用加速器104上的执行内核124。预处理器120在主机OpenCL源代码的编译期间运行。预处理器120执行静态代码分析,以确定内核与缓冲器数据之间的关系以及它们的对应使用模型。预处理器输出是包含这些关联的表。数据管理和调度库108用于控制OpenCL主机程序和关联加速器内核的操作以及主机与加速器之间的数据移动。在一个实施例中,主机102和加速器104可以使用数据通信或同步库(DaCS)或TCP/IP套接作为传送层,以彼此进行通信。加速器104还包括OpenCL加速器运行时间环境110,其充当用于主机102的代理,并且代表主机102调用OpenCLAPI。OpenCL加速器运行时间环境110响应主机命令,并且将事件通知发送回到主机。加速器104包括可以由OpenCL加速器运行时间环境110利用的本机编译器122。主机102可以包括主机守护进程(daemon)112,并且加速器104可以包括加速器守护进程114,它们用于配置主机102与加速器104之间的通信链路106,并且允许通过包括加速器与主机之间的网络拓扑的主机管理加速器。主机102包括一个或多个主机缓冲器116,并且加速器包括一个或多个加速器缓冲器118。在其它实施例中,DaCS可以由TCP/IP、Infiniband或MPI替代。在加速器代理110经由108从主机接收命令并且使用通信链路106来发送通知的同时,加速器守护进程112和主机守护进程114提供控制路径支持。在示例性实施例中,数据管理和调度库108可以确定哪些加速器缓冲器118将在内核执行之后从加速器104读回到主机102。数据管理和调度库108可以指令OpenCL加速器运行时间环境110在内核执行之后将这些加速器缓冲器118从加速器104推送到主机102。通过有选择地将加速器104上的加速器缓冲器118中的数据推送到主机102、并且在主机缓冲器116中存储数据,数据管理和调度库108通过为主机102提供对主机缓冲器116中的数据的访问,而无需等待主机102从加速器104请求数据,来增加执行速度并且使得等待时间最小化。在特定实例中,主机102可以无需读取本文档来自技高网...
用于混合系统的分布式功能执行

【技术保护点】
一种方法,包括:通过包括一个或多个处理器的主机来处理应用;将所述应用的至少部分分布到加速器,以用于执行;指令所述加速器在所述加速器上创建缓冲器;指令所述加速器执行所述应用的部分,其中,所述加速器将数据写入到所述缓冲器;以及在所述应用请求所述缓冲器中的数据之前,指令所述加速器将所述缓冲器中的数据发送到所述主机;其中,所述加速器基于所述主机中的一个或多个运行时间条件在将数据发送到所述主机之前聚合所述缓冲器中的数据。

【技术特征摘要】
【国外来华专利技术】2012.01.25 US 13/357,6501.一种用于分布式功能执行的方法,包括:通过包括一个或多个处理器的主机来处理应用,其中所述主机包括数据管理和调度库;将所述应用的至少部分分布到加速器,以用于执行,其中所述加速器包括开放计算语言加速器运行时间环境,该开放计算语言加速器运行时间环境充当所述主机的代理;指令所述加速器在所述加速器上创建缓冲器;指令所述加速器执行所述应用的部分,其中,所述加速器将数据写入到所述缓冲器;以及在所述应用请求所述缓冲器中的数据之前,指令所述加速器将所述缓冲器中的至少部分数据发送到所述主机;其中,所述数据管理和调度库指令所述加速器基于所述主机中的一个或多个运行时间条件在将所述至少部分数据发送到所述主机之前聚合所述缓冲器中的所述至少部分数据,其中主机中的该一个或多个运行时间条件包括在缓冲器中的所述至少部分数据是否在该应用执行期间将由所述主机读取。2.如权利要求1所述的方法,其中,所述加速器上的缓冲器包括作为只读、只写或读写的指定。3.如权利要求2所述的方法,其中,如果所述缓冲器指定为只读,则所述加速器不将所述缓冲器中的所述至少部分数据发送到所述主机。4.如权利要求1所述的方法,其中,指令所述加速器将所述缓冲器中的所述至少部分数据发送到所述主机还包括:为所述加速器提供最小传输值;指令所述加速器聚合所述的缓冲器中的所述至少部分数据;以及当所述缓冲器的大小超过所述最小传输值时,指令所述加速器发送所述缓冲器中的所述至少部分数据。5.如权利要求1所述的方法,其中,所述应用的部分包括计算循环,并且其中,指令所述加速器将所述缓冲器中的所述至少部分数据发送到所述主机还包括在完成计算循环时,指令所述加速器将所述缓冲器中的数据发送到所述主机。6.如权利要求1所述的方法,其中,指令所述加速器将所述缓冲器中的数据发送到所述主机还包括:为所述加速器提供传输时段;指令所述加速器聚合所述缓冲器中的数据;以及在所述传输时段期间,指令加速器不多于一次将所述缓冲器中的数据发送到所述主机。7.如权利要求1所述的方法,还包括:将用于执行所述应用的部分的应用数据写入到所述加速器上的所述缓冲器;其中,所述主机聚合从所述主机发送到所述加速器的数据,以隐藏在构成数据的单独传送期间所导致的通信等待时间。8.一种用于分布式功能执行的计算机可读存储介质,该存储介质存储有被配置为执行以下操作的计算机可读程序代码:处理主机上的应用,其中所述主机包括数据管理和调度库;将所述应用的至少部分分布到加速器,以用于执行,其中所述加速器包括开放计算语言加速器运行时间环境,该开放计算语言加速器运行时间环境充当所述主机的代理;指令所述加速器在所述加速器上创建缓冲器;指令所述加速器执行所述应用的部分,其中,所述加速器将数据写入到所述缓冲器;以及在所述应用请求所述缓冲器中的数据之前,指令所述加速器将所述缓冲器中的至少部分数据发送到所述主机;其中,所述数据管理和调度库指令所述加速器基于所述主机中的一个或多个运行时间条件在将所述至少部分数据发送到所述主机之前聚合所述缓冲器中的所述至少部分数据,其中主机中的该一个或多个运行时间条件包括在缓冲器中的所述至少部分数据是否在该应用执行期间将由所述主机读取。9.如权利要求8所述的计算机可读存储介质,其中,所述加速器上的缓冲器包括作为只读、只写或读写的指定。10.如权利要求9所述的计算机可读存储介质,...

【专利技术属性】
技术研发人员:DG查普曼RB克里什纳莫西CJ帕里斯DW施米特BP塞加尔
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

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

1