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.
【技术实现步骤摘要】
【国外来华专利技术】针对异构设备类型的对等分布式计算系统
本公开整体涉及分布式计算系统领域。更具体地讲,本公开涉及用于在具有不同类型设备的网络内提供分布式计算系统的框架。
技术介绍
随着便携式计算设备的数量增长,在各种设备之间进行整合的需求变得越来越重要。例如,用户可以在给定时间访问多种类型的设备(例如,智能电话、膝上型计算机等),相应地,这些设备可以相互通信以提供增强的用户体验。这种增强的用户体验可包括在设备之间共享资源,以增加诸如处理能力、电池使用、网络带宽和存储等的能力。因此,这些设备可形成分布式计算环境的一部分。然而,此类计算环境往往还担负着使设备能够共享资源的某些要求。例如,这些环境往往要求通信连接的连续性,这通常与许多类型的现代计算设备的便携式性质发生冲突。因此,设备之间的通信链路经常被切断,例如,当设备被从某个区域物理移除时(例如,当用户与其携带的便携式设备离开某一地点时)。此外,便携式设备往往依赖于电池,相应地往往受到功率消耗方面的限制。此外,随着专用架构(例如,移动设备专用处理器和操作系统)的数量的增加,情况往往是设备越发无法在分布式环境中进行整合。因此,传统的分布式计算框架往往不适合当前用户设备的环境。
技术实现思路
本公开描述了用于实施分布式计算网络的灵活框架(或者技术或方法)和系统,所述分布式计算网络可以被部署到具有各种类型的设备和配置的环境当中。框架可以被用于各种背景,从而有效率地利用环境(例如,设备生态系统)内的资源。例如,设备可以将某些处理任务分流给可以具有更大能力(诸如处理能力、存储、电源等)的其他设备。例如,用户拿着个人设备(诸如智能电话)处于膝 ...
【技术保护点】
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所述的介质,其中检索所述所需的一组输入数据的所述部分包括:使用所述二级协议将第三消息从所述第一设备发送到所述第三设备,所述第三消息包括对第一数据容器的请求,所述请求包括标识所述所需的一组输入数据的所述部分的一个或多个标引,以及使用所述二级协议在所述第一设备处接收来自所述第三设备的第四消息,所述第四消息包括包括所述所需的一组输入数据的所述部分的所述第一...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。