当前位置: 首页 > 专利查询>苹果公司专利>正文

针对异构设备类型的对等分布式计算系统技术方案

技术编号:21176289 阅读:24 留言:0更新日期:2019-05-22 12:04
本公开描述了用于提供包括不同类型的设备的分布式计算网络的框架(或者技术或方法)和系统。该框架允许对等设备在整个网络中传输作为作业或数据的概念性单位的信息“包”(例如,消息)。该框架允许用于执行一项或多项作业的可移植代码可在对等设备之间传输。设备可以向其他设备传输描述计算的可移植代码,而接收设备可随之将此类代码编译成与该特定设备的架构兼容的可执行形式。编译后的代码可执行用以执行一项或多项计算的函数,以履行作为分布式计算协议一部分的作业请求。

A Peer-to-Peer Distributed Computing System for Heterogeneous Device Types

This disclosure describes a framework (or technology or method) and system for providing a distributed computing network comprising different types of devices. The framework allows peer-to-peer devices to transmit information \packages\ (e.g., messages) as conceptual units of jobs or data throughout the network. The framework allows portable code for performing one or more jobs to be transmitted between peer devices. The device can transmit portable code describing computation to other devices, and the receiving device can then compile such code into an executable form compatible with the architecture of the particular device. The compiled code can execute functions to perform one or more computations to fulfill job requests as part of the distributed computing protocol.

【技术实现步骤摘要】
【国外来华专利技术】针对异构设备类型的对等分布式计算系统
本公开整体涉及分布式计算系统领域。更具体地讲,本公开涉及用于在具有不同类型设备的网络内提供分布式计算系统的框架。
技术介绍
随着便携式计算设备的数量增长,在各种设备之间进行整合的需求变得越来越重要。例如,用户可以在给定时间访问多种类型的设备(例如,智能电话、膝上型计算机等),相应地,这些设备可以相互通信以提供增强的用户体验。这种增强的用户体验可包括在设备之间共享资源,以增加诸如处理能力、电池使用、网络带宽和存储等的能力。因此,这些设备可形成分布式计算环境的一部分。然而,此类计算环境往往还担负着使设备能够共享资源的某些要求。例如,这些环境往往要求通信连接的连续性,这通常与许多类型的现代计算设备的便携式性质发生冲突。因此,设备之间的通信链路经常被切断,例如,当设备被从某个区域物理移除时(例如,当用户与其携带的便携式设备离开某一地点时)。此外,便携式设备往往依赖于电池,相应地往往受到功率消耗方面的限制。此外,随着专用架构(例如,移动设备专用处理器和操作系统)的数量的增加,情况往往是设备越发无法在分布式环境中进行整合。因此,传统的分布式计算框架往往不适合当前用户设备的环境。
技术实现思路
本公开描述了用于实施分布式计算网络的灵活框架(或者技术或方法)和系统,所述分布式计算网络可以被部署到具有各种类型的设备和配置的环境当中。框架可以被用于各种背景,从而有效率地利用环境(例如,设备生态系统)内的资源。例如,设备可以将某些处理任务分流给可以具有更大能力(诸如处理能力、存储、电源等)的其他设备。例如,用户拿着个人设备(诸如智能电话)处于膝上型计算机或台式计算机附近的情况可能并不少见,其中所述膝上型计算机或台式计算机的任一者可以连接至连续电源(例如,插到电源插座内)。因此,智能电话可将诸如编辑多媒体(例如,照片)的处理任务分流给台式计算机或膝上型计算机,从而使用功能可能更加强大的处理器以及节约电池电量。框架还可以被实施为通过将计算分流给其他设备而将一个或多个设备从环境中去除(例如,从本地无线网络去除)。此外,框架可以被实施为识别重新加入环境的设备,并且可以相应地恢复被暂停的计算。因此,可以按照灵活的方式利用框架,包括具有各种类型的设备和配置的环境。此外,框架可以被配置为适应开发者设想的各种联网环境。在一个实施方案中,描述了一种利用可移植可执行代码(例如,LLVMIR)的框架,可移植代码可以在分布式计算系统内的对等设备之间传输,以执行作业。在一个实施方案中,框架可包括一种执行操作的方法,操作包括使用一级协议通过第一设备上的守护进程接收来自第二设备的第一消息。例如,第一消息可包括可移植代码,可移植代码在被第一设备编译后提供一个或多个函数,从而由分布式计算系统内的第一设备执行计算。操作还可包括使用二级协议接收来自第二设备的第二消息。例如,第二消息可包括第一作业请求,其中第一作业请求包括对一个或多个函数中的执行计算的第一函数的指示,以及对执行第一函数所需的一组输入数据的指示。此外,操作可包括响应于第一设备获取了所需的一组输入数据,执行第一函数以执行计算以履行第一作业请求。因此,框架可以被用于各种背景,从而有效率地共享分布式环境内的资源,如本文进一步所述。附图说明图1A-图1B示出了根据本公开的实施方案的数据节点和作业节点的图形抽象的示例。图2是示出了根据本公开的实施方案的示例性分布式计算系统概要的框图。图3是示出了根据本公开的实施方案的向对等设备提供可移植代码的示例性过程流的框图。图4是示出了根据本公开的实施方案的对等设备的示例性配置的框图。图5是示出了根据本公开的实施方案的对等设备之间的消息传送过程流的图示。图6是示出了根据本公开的实施方案的守护进程级消息的示例性结构的图示。图7是示出了根据本公开的实施方案的worker进程级消息的示例性结构的图示。图8是示出了根据本公开的实施方案的示例性数据容器的图示。图9是示出了根据本公开的实施方案的数据容器内的线性化数据的示例的图示。图10是示出了根据本公开的实施方案的使用一个或两个容器的混合函数的示例的图示。图11是根据本公开的实施方案的响应于获取了所需的一组输入数据而执行过程的方法的流程图。图12是根据本公开的实施方案的分析和编译可移植代码的方法的流程图。图13是示出了可以与本公开的实施方案中的一者或多者一起使用的示例性计算系统的框图。具体实施方式将参考以下论述的细节来描述各种实施方案和方面,并且附图将对各种实施方案进行说明。以下说明书和附图为例示性的,并且不应被理解为限制性的。描述了许多具体细节,以提供对各个实施方案的全面理解。然而,在某些实例中,熟知的或常规的细节并未被描述,以便提供对实施方案的简明论述。在本说明书中提到的“一个实施方案”、“实施方案”或“一些实施方案”是指结合该实施方案所述的特定特征、结构或特性可被包括在至少一个实施方案中。在本说明书中的各个位置出现短语“在一个实施方案中或者在实施方案中”不一定都是指同一个实施方案。在随后的附图中所描绘的过程由包括硬件(例如,电路、专用逻辑部件等等)、软件或这两者的组合的处理逻辑部件来执行。虽然下文按照某些顺序操作来描述该过程,但应当理解,所描述的某些操作可以不同的顺序执行。此外,某些操作也可并行执行而非按顺序执行。本文描述了用于提供包括不同类型的设备的分布式计算网络的框架(或者技术或方法)和系统。如本文进一步所述,框架可允许设备在整个网络中传输作为作业或数据的概念性单位的信息“包”(例如,消息)。例如,作业可包括由设备执行的计算,数据可包括执行作业所需的一组输入。框架提供了使作业得以在一组不同类型的设备当中执行的能力,如本文进一步所述。为了提供这样的能力,在一些实施方案中,该框架允许用于执行一项或多项作业的可移植代码可在对等设备之间传输。例如,一个设备可以将可移植代码传输至另一对等设备,从而允许作业由对等设备执行。之后,接收设备可以将代码编译成与特定接收设备的架构兼容的可执行形式,然后执行履行作业请求所需的一项或多项计算。如本文所参照的,作业可包括由设备执行的计算或计算的指示。例如,设备可以通过执行来自函数、过程、对象等的一条或多条指令而执行计算。因此,在一个实施方案中,作业可包括对执行一条或多条指令以提供一组输出的函数(编译自可移植代码)的标引(例如,指针)。如本文进一步所述,数据可包括执行作业所需的任何形式的信息(或数据)或者可由作业创建为输出的任何信息(或数据)。数据和作业之间关系的表示可以被示为抽象计算图。图1A和图1B示出了根据本公开的实施方案的数据节点和作业节点的图形抽象的示例。如图所示,图解10和图解15可包括两种类型的节点;即数据节点12(被示为圆形节点)和作业节点14(被示为方形节点)。作业节点14可消耗零个或更多个输入数据节点以产生一个或多个输出数据节点12。例如,作业可表示将数据映射到数据(例如,将输入数据映射至输出数据)的函数。图1A示出了一个简单的示例,其中向输入x应用作业F,从而产生了输出y。例如,在数学语境下,其可以被示为y=F(x)。然而,图解可以被表示为有向图,其中数据节点x被输入到作业节点F中,以生成输出数据y。图1B示出了更加复杂的示例。在本文档来自技高网...

【技术保护点】
1.一种存储指令的非暂态机器可读介质,所述指令当由计算设备的一个或多个处理器执行时,使得所述计算设备执行包括下述操作的操作:使用一级协议并且由第一设备上的守护进程接收来自第二设备的第一消息,所述第一消息包括可移植代码,所述可移植代码在被编译时提供一个或多个函数以由分布式计算系统内的所述第一设备执行计算;使用二级协议并且由所述守护进程创建的worker接收来自所述第二设备的第二消息,所述第二消息包括第一作业请求,其中所述第一作业请求包括对所述一个或多个函数中的第一函数的指示以及对执行所述第一函数所需的一组输入数据的指示;以及响应于所述第一设备获取了所述所需的一组输入数据,所述第一设备执行所述第一函数以执行所述计算以履行所述第一作业请求。

【技术特征摘要】
【国外来华专利技术】2016.09.23 US 15/274,7481.一种存储指令的非暂态机器可读介质,所述指令当由计算设备的一个或多个处理器执行时,使得所述计算设备执行包括下述操作的操作:使用一级协议并且由第一设备上的守护进程接收来自第二设备的第一消息,所述第一消息包括可移植代码,所述可移植代码在被编译时提供一个或多个函数以由分布式计算系统内的所述第一设备执行计算;使用二级协议并且由所述守护进程创建的worker接收来自所述第二设备的第二消息,所述第二消息包括第一作业请求,其中所述第一作业请求包括对所述一个或多个函数中的第一函数的指示以及对执行所述第一函数所需的一组输入数据的指示;以及响应于所述第一设备获取了所述所需的一组输入数据,所述第一设备执行所述第一函数以执行所述计算以履行所述第一作业请求。2.根据权利要求1所述的介质,所述操作还包括响应于确定所述可移植代码在所述第一设备上执行是安全的而由所述守护进程编译所述可移植代码的至少一部分。3.根据权利要求2所述的介质,其中所述可移植代码是LLVMIR(低级虚拟机中间表示),所述第一设备和所述第二设备是不同类型的设备,并且每者使用不同的操作系统进行操作。4.根据权利要求1所述的介质,所述操作还包括响应于接收到所述第一作业请求,JIT(即时)编译所述可移植代码对应于所述第一函数的部分。5.根据权利要求1所述的介质,其中所述第一消息包括所述一个或多个函数的索引,并且对所述第一作业请求的所述第一函数的所述指示包括所述索引内对应于所述第一函数的值。6.根据权利要求1所述的介质,其中所述第二设备基于所述第一设备的一个或多个特征来选择所述第一设备以执行所述第一作业请求,其中所述一个或多个特征包括所述第一设备的处理能力和当前电源。7.根据权利要求1所述的介质,所述操作还包括:使用所述二级协议在所述第一设备处接收来自第三设备的第三消息,所述第三消息包括第一数据容器,以及将所述数据存储在所述第一设备的数据存储库中。8.根据权利要求7所述的介质,其中获取所述所需的一组输入数据包括:确定所述所需的一组输入数据存储在所述第一设备的所述数据存储库中,以及从所述数据存储库检索所述所需的一组输入数据。9.根据权利要求8所述的介质,其中所述第一作业请求还包括对第二数据容器的标引,以存储来自所述第一函数的输出数据,并且其中所述操作还包括:将来自所执行的第一函数的所述输出数据存储在所述第二数据容器中;以及使用所述二级协议将第四消息发送到第四设备,所述第四消息包括所述第二数据容器。10.根据权利要求1所述的介质,其中获取所述所需的一组输入数据包括:确定所述所需的一组输入数据的至少一部分不存储在所述第一设备的数据存储库中,并且作为响应,从第三设备检索所述所需的一组输入数据的未存储在数据存储库中的所述部分。11.根据权利要求10所述的介质,其中检索所述所需的一组输入数据的所述部分包括:使用所述二级协议将第三消息从所述第一设备发送到所述第三设备,所述第三消息包括对第一数据容器的请求,所述请求包括标识所述所需的一组输入数据的所述部分的一个或多个标引,以及使用所述二级协议在所述第一设备处接收来自所述第三设备的第四消息,所述第四消息包括包括所述所需的一组输入数据的所述部分的所述第一...

【专利技术属性】
技术研发人员:O·M·威廉姆斯
申请(专利权)人:苹果公司
类型:发明
国别省市:美国,US

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

1