CN108885562A - 具有将来任务和能力预测的模块化电子设备 - Google Patents
具有将来任务和能力预测的模块化电子设备 Download PDFInfo
- Publication number
- CN108885562A CN108885562A CN201680078983.8A CN201680078983A CN108885562A CN 108885562 A CN108885562 A CN 108885562A CN 201680078983 A CN201680078983 A CN 201680078983A CN 108885562 A CN108885562 A CN 108885562A
- Authority
- CN
- China
- Prior art keywords
- electronic equipment
- future
- modular electronic
- computing resource
- resource set
- 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.)
- Granted
Links
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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/029—Location-based management or tracking services
-
- 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/503—Resource availability
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开提供了能够预测模块组合和相关联的计算资源的将来可用性和/或能够预测将来任务的模块化电子设备。基于这样的预测,模块或模块化电子设备可以选择调度或延迟某些任务,改变资源协商行为/策略,或者从各种不同的资源提供者当中进行选择。作为一个示例,本公开的模块化电子设备可以:识别要执行的一个或多个计算任务;预测将在一个或多个将来时间段分别对模块化电子设备可用的一个或多个将来的计算资源集合;以及至少部分地基于将在所述一个或多个将来时间段分别可用的所述一个或多个将来的计算资源集合的预测来确定执行所述一个或多个计算任务的排程。
Description
技术领域
本公开总体上涉及模块化电子设备以及模块和模块化电子设备的自组织(adhoc)组合。更具体地,本公开涉及模块化电子设备,其能够基于对会变得可用的将来能力的预测和/或基于对将要执行的将来任务的预测来调度任务操作。
背景技术
诸如模块化电子设备的模块化系统可以具有多个不同的模块化电子组件,其可以被称为“模块”。模块可以是可移除的、可替换的和/或可互换的。通常,模块化设备或系统的不同模块能够执行不同的功能,包括专用功能和/或一个或多个通用功能。
作为示例,专用模块可以使用一个或多个特定资源来执行一个或多个特定功能。专用模块的示例包括相机模块、电池模块或被配置为执行特定任务的其他模块。因此,在一些示例中,特定功能可以包括捕获图像、供电或者使用特殊硬件执行特定功能(例如,执行密码功能、图形处理功能等)。
其他模块可以具有使用它们的通用资源——诸如存储器和处理器——来执行通用功能的能力。例如,模块可以具有与外部模块或设备通信的能力(例如,通过硬连线连接或使用无线连接)。通用功能的示例包括执行处理任务、将数据存储在存储器中、或利用通信带宽。
模块可以与其他模块或设备组合。在一些示例中,这样的组合可以例如通过将模块彼此附接或附接到公共结构来利用物理组合。例如,来自模块化电话的处理模块可以与接口模块(例如,HDMI或USB)可移除地物理组合以提供视频回放功能。在其他示例中,模块的组合可以包括物理上不连接的设备,例如通过一个或多个无线通信链路可通信地连接的模块。
发明内容
本公开的实施例的各方面和优点将部分地在下面的描述中阐述,或者可以从该描述中学习,或者可以通过实践实施例而了解。
本公开的一个示例方面涉及用于基于对将来能力的预测来调度任务执行的计算机实现的方法。该方法包括:由包括至少一个电子模块的模块化电子设备识别要执行的一个或多个计算任务。该方法包括:由所述模块化电子设备预测将在一个或多个将来时间段分别对所述模块化电子设备可用的一个或多个将来的计算资源集合。该方法包括:由所述模块化电子设备至少部分地基于对将在所述一个或多个将来时间段分别可用的所述一个或多个将来的计算资源集合的所述预测来确定执行所述一个或多个计算任务的排程。
本公开的另一示例方面涉及一种模块化电子设备。模块化电子设备包括至少一个处理器和至少一个电子模块。模块化电子设备:识别要执行的一个或多个计算任务;预测将在一个或多个将来时间段分别对所述模块化电子设备可用的一个或多个将来的计算资源集合;以及至少部分地基于对将在所述一个或多个将来时间段分别可用的所述一个或多个将来的计算资源集合的所述预测来确定执行所述一个或多个计算任务的排程。
本公开的另一示例方面涉及至少一个存储指令的非暂时性计算机可读介质,所述指令在由至少一个处理器执行时使得所述至少一个处理器识别要执行的一个或多个计算任务。指令的执行使得所述至少一个处理器预测将在一个或多个将来时间段分别对所述模块化电子设备可用的一个或多个将来的计算资源集合。所述一个或多个将来的计算资源集合中的至少一个是由通过自组织无线网络可访问的一个或多个模块化电子设备的一个或多个电子模块提供的。指令的执行使得所述至少一个处理器至少部分地基于将在所述一个或多个将来时间段分别可用的所述一个或多个将来的计算资源集合的所述预测来确定执行所述一个或多个计算任务的排程。
本公开的其他方面涉及各种系统、装置、非暂时性计算机可读介质、用户接口和电子设备。
参照以下描述和所附权利要求书,本公开的各个实施例的这些和其他特征、方面和优点将变得更好理解。并入本说明书并构成本说明书的一部分的附图示出了本公开的示例实施例,并且与说明书一起用于解释相关原理。
附图说明
在说明书中阐述了针对本领域普通技术人员的对实施例的详细讨论,其参考了附图,在附图中:
图1描绘了根据本公开的示例实施例的模块和设备的示例自组织组合的框图。
图2描绘了根据本公开的示例实施例的示例模块化电子设备的框图。
图3描绘了根据本公开的示例实施例的示例模块的框图。
图4描绘了根据本公开的示例实施例的与示例智能电话通信的示例模块的框图。
图5描绘了根据本公开的示例实施例的通过网状网络连接到其他模块的示例模块的框图。
图6描绘了根据本公开的示例实施例的与特定用户相关联的示例模块和网状网络的框图。
图7描绘了根据本公开的示例实施例的执行任务分解和分配的中央服务器或本地协调器的框图。
图8描绘了根据本公开的示例实施例的用于基于将来能力的预测来调度任务执行的示例方法的流程图。
图9描绘了根据本公开的示例实施例的用于预测一个或多个将来的计算资源集合的示例方法的流程图。
图10描绘了根据本公开的示例实施例的用于基于对将来能力和相关联的预期成本的预测来调度任务执行的示例方法的流程图。
图11描绘了根据本公开的示例实施例的用于基于将来能力的预测来调度任务执行的示例方法的流程图。
具体实施方式
大体上,本公开涉及模块化电子设备和相关联的操作方法。具体而言,本公开涉及可适用于感测彼此、连接和共享功能的模块和其他设备的自组织组合。模块可能适合发现彼此的存在和可用性,并且例如通告他们自己的可用性、能力和价格。模块可适用于协商其他模块的资源的使用,识别适合当前模块网络环境的任务,并使用不同模块的资源指派任务以完成任务。
更具体地,本公开涉及能够预测模块组合和相关联的计算资源的将来可用性和/或能够预测将来将被请求执行的任务的电子模块或模块化电子设备。基于这样的预测,模块或模块化电子设备可以选择调度或延迟某些任务,改变资源协商行为/策略,和/或从各种不同的资源提供者当中进行选择。作为一个示例,本公开的模块化电子设备可以识别要执行的一个或多个计算任务;预测将在一个或多个将来时间段分别对模块化电子设备可用的一个或多个将来的计算资源集合;以及,至少部分地基于将在所述一个或多个将来时间段分别可用的所述一个或多个将来的计算资源集合的预测来确定执行所述一个或多个计算任务的排程。
因此,模块化电子设备可以使用将来的计算资源集合的预测来更有效率地调度计算任务的执行。计算任务可以是当前请求的计算任务,或者可以是模块化电子设备预测将要被请求的将来计算任务。示例计算任务可以包括处理任务(例如,加密任务)、通信任务(例如,通信传递)、存储任务(例如,专用的安全存储任务)、数据收集任务(例如,诸如温度传感器、生物识别传感器等的传感器的操作)或要由模块或设备执行的其他任务、操作或动作。
除了一个或多个将来的计算资源集合之外,模块化电子设备还可以确定在当前时间段期间模块化电子设备可用的当前计算资源集合。基于当前资源集合与一个或多个将来资源集合的比较,模块化电子设备可以确定是否在当前时间段期间用当前计算资源集合执行特定计算任务或者调度特定计算任务以在将来时间段中的一个将来时间段中由将来计算资源集合中的一个执行。
作为一个示例,模块化电子设备可以预测特定任务将被请求在将来时间段中的至少一个中执行。模块化电子设备可以选择使用当前资源来预先执行将来任务,或者可以等待使用将来的计算资源集合中的一个来执行任务。
在这样的场景的一个示例中,模块化电子设备可以确定当前计算资源集合能够执行将来任务,以及将来的计算资源集合中的至少一个无法执行第一计算任务。作为响应,模块化电子设备可以使得当前计算资源集合在当前时间段期间执行将来计算任务。因此,如果将来的计算资源集合无法执行预测的将来任务,则模块化电子设备可以使用当前可用的计算资源来执行或协商将来任务的执行,该当前可用的计算资源能够执行该任务。
这样,在适合的资源可用时,可以预先执行被预测将在该适合的计算资源不可用的将来时间段期间被请求的将来任务。例如,如果模块化电子设备的用户通常在上午8点请求下载电子报纸,但是用户的日历数据指示用户将在上午8点乘飞机出行,则模块化电子设备可以在广域网通信资源可用时预先下载电子报纸。因此,在一些实施方式中,可以通过识别用户请求的或者以其他方式由设备执行的任务的模式来预测将来的任务。
在一些实施方式中,关于将来资源可用性的预测可以进一步用于指导对从中协商和接收资源的模块或设备的选择。作为一个示例,使用来自特定模块或设备的资源的模块化电子设备可以预测这样的特定模块即将变得不可用。模块化电子设备可以改变其通信以使用被预测将维持更长时间可用的来自一个或多个其他模块的资源。例如,如果模块化电子设备预测服务器连接将很快失去,则该模块化电子设备可以停止从服务器设备接收数据,并且可以开始与具有所需资源的本地设备进行通信。在另一个示例中,模块化电子设备可以预测模块网络的模块即将变得不可用,并且可以基于该预测来在替选模块(例如,基于云的模块)上调度小任务(tasklet)。
根据本公开的另一方面,模块化电子设备还可以预测分别与被预测为分别在一个或多个将来时间段对模块化电子设备可用的一个或多个将来的计算资源集合对特定计算任务的执行相关联的一个或多个预期成本。特别是,如上所述,模块可以协商其他设备/模块的资源的使用。该协商可以导致商定的成本或其他交换来补偿这样的资源的使用。因此,除了预测将来的计算资源集合之外,模块化电子设备可以进一步预测与使用这样的将来资源相关联的相应成本。在一些实施方式中,模块化电子设备可以基于来自这样的资源提供模块或设备的通告的先前协商和/或先前观察来预测成本。
模块化电子设备可至少部分地基于分别与一个或多个将来的计算资源集合相关联的一个或多个预期成本来确定执行一个或多个计算任务的排程。例如,模块化电子设备可以确定使执行计算任务的预期成本最小化的排程。排程还可以符合分别与计算任务相关联的一个或多个截止日期(如果有的话)。
作为基于预期成本来调度任务的替选和/或补充,模块化电子设备可以基于与预测的将来计算资源集合相关联的预期成本来进一步执行对于资源的协商(例如,作为资源请求者或资源提供者)。例如,模块化电子设备可以向当前可用模块或设备提供特定价格以执行特定任务,其中,特定价格是与被预测在将来可用的设备的资源相关联的预期成本和这样的资源在将来实际可用(例如,在将来并且在与特定任务相关的截止日期之前)的确定的概率的函数。也可以使用其他协商方案,这些方案充分利用对将来资源可用性的预测和/或将来资源成本的预测来协助设定协商限制或其他值。
根据本公开的另外的方面,模块化电子设备可以分析各种类型的数据以预测将来的计算资源集合。作为一个示例,本公开的模块化电子设备可以接收与模块化电子设备和/或设备的用户相关联的位置数据。模块化电子设备可以至少部分地基于位置数据来预测目的地,并且可以确定与目的地相关联的第一计算资源集合。
作为示例,位置数据可以包括全球定位系统数据、描述一个或多个将来约见位置的日历数据、描述将来位置的电子邮件或消息收发数据、描述用户搜索到的一个或多个位置的地图绘制数据和/或其他形式的位置数据和/或用户数据。因此,在一些实施方式中,可以分析诸如位置数据和/或用户数据的用户信息,以使得能够预测将来的计算资源。在一些实施方式中,可向用户提供允许用户选择是否以及何时在此描述的系统、程序或特征可以启用收集这样的用户信息(例如,位置数据或其他用户信息)的控件。然而,如果用户不启用收集和使用这样的用户信息,则用户可能不会收到如本文所述的与其相关联的益处。另外,某些数据在其被存储或使用之前可以通过一种或多种方式被处理,使得删除个人可识别信息。因此,用户可以控制收集关于用户的什么信息、如何使用该信息以及向用户提供什么信息。
作为用于预测将来资源可用性的一个示例技术,模块化电子设备可以基于上述位置数据来确定其正在朝特定目的地移动。例如,可以分析从包括在模块化电子设备内的GPS传感器导出的位置数据以预测目的地。但是,该设备可以确定它目前缺乏下载目的地地图的能力。作为响应,该设备可以与高带宽模块适时地形成网络,该高带宽模块当前可用于下载地图并将其发送到所述设备。因此,模块化电子设备可以参与自组织网络创建,以形成增加用于执行当前或将来任务的资源可用性的有利连接。
作为另一示例,模块化电子设备可以识别由描述模块化电子设备和/或模块化电子设备的用户的历史位置的位置数据展现的一个或多个位置模式。基于这样的位置模式,模块化电子设备可以预测将分别在一个或多个将来时间段对模块化电子设备可用的一个或多个将来的计算资源集合。例如,位置数据可以展现出位置模式,该位置模式指示用户在每个工作日上午9点左右前往特定工作场所位置。基于这样的示例位置模式,模块化电子设备可以预测具有各种计算资源的桌面工作计算机(例如,更高功率的图形处理单元)将在每个工作日的上午9点左右对模块化电子设备可用。
作为用于预测将来资源可用性的又一示例技术,模块化电子设备可以访问描述在各个位置处的可用计算资源的地图。模块化电子设备可以使用该地图和一个或多个预测的将来位置来确定预期可用于模块化电子设备的一个或多个将来的计算资源集合。
更具体地,根据本公开的另一方面,当随着时间观察到不同设备和相关联资源/能力的通告时,可以构建描述在各个位置处的可用计算资源的地图。在一些实施方式中,每个特定模块化电子设备基于其自己的观察来构建并存储其自己的地图。替选地或附加地,可以使用由许多不同的计算设备报告回来并且然后聚合的观察来在中心位置处(例如,在服务器计算设备处)构建和/或存储地图。然后,给定的模块化电子设备可以与服务器计算设备进行通信以访问资源地图。在一些实施方式中,资源地图可以包括时间维度,其针对各个位置中的每一个指示随时间推移而改变的资源可用性(例如,对照一周中的每一天的日内时间)。
因此,本公开提供了能够预测模块组合和相关联的计算资源的将来可用性和/或能够预测将来要执行的任务的电子模块或模块化电子设备。基于这样的预测,模块或模块化电子设备可以选择排程或延迟某些任务,更改协商行为/策略,或者从各种不同的资源提供者当中进行选择。
此外,在此描述为由模块化电子设备执行的示例技术或操作可以附加地和/或替选地由与模块化电子设备通信的服务器计算设备执行。例如,在一些实施方式中,服务器计算设备可以预测特定模块化电子设备的将来资源可用性和/或将来任务请求,并且然后将这样的预测传送给特定模块化电子设备。另外,尽管参考模块化电子设备讨论了本文描述的示例技术或操作,但是这样的技术和操作同样适用于标准的非模块化计算设备。例如,在一些实施方式中,非模块化计算设备(例如,膝上型计算机或传统智能电话)可以通过自组织网络预测计算资源(例如,由模块化和/或非模块化设备提供的资源)的将来可用性,并且可以基于这样的预测来调度任务执行。
现在参考附图,将更详细地讨论本公开的示例实施例。
示例设备和系统
图1描绘了根据本公开的示例实施例的,包括参与在无线网络106上的设备的自组织组合的模块化电子设备102的示例系统100的框图。示例模块化电子设备102包括可以可移除地耦合到模块化电子设备102的一个或多个电子模块。模块化电子设备100的每个模块可以包括并提供基于其本身相应的随载组件的特定的能力集合,包括处理、存储器存储等。为了解释的目的,在图1中图示出单个代表性示例电子模块104。然而,模块化电子设备102可以具有任何数目的电子模块。特别地,随着模块被换入和换出设备102时,模块化电子设备102中包括的电子模块的数目可以随时间推移而改变。
根据本公开的多个方面,模块化电子设备100能够参与(例如,通过模块104)可以感测彼此、连接和共享功能的模块和其他设备的自组织组合。例如,模块的自组织组合可以包括多个模块,所述多个模块均物理耦合到设备102。作为对于物理耦合的模块的替选或附加,模块和其他设备的组合可以包括一个或多个附加设备(例如,设备108和110),其通过一个或多个无线网络106通信地耦合到模块化电子设备102。通过网络可访问的附加设备可以包括其他模块化设备(例如,设备108)和/或非模块化设备(例如,设备110)。非模块化设备110可以包括智能电话、平板计算机、膝上型计算机、台式计算机、智能电器、嵌入式计算设备、或其他计算设备。设备可以是用户控制的、自主的或其某种组合。
无线网络106可以是一个网络(例如,Wi-Fi网络)或网络的组合(例如,局域Wi-Fi网络、设备特定个域网、微微网、模块到模块网状网络等的组合)。特别地,模块能够使用诸如RF通信、近场通信、蓝牙、Wi-Fi、其他无线通信协议或其某种组合的无线通信接口与其他模块通信。因此,模块可以逻辑地组合来执行任务,而无需模块之间的物理连接。模块化电子设备100可以进一步能够通过广域网112(例如,互联网)与一个或多个物理远程设备114(例如,服务器计算设备)进行通信。
附加计算设备可以随时间推移进入和离开自组织组合。此外,不同的模块可以由环境中的不同实体拥有。例如,模块可以是属于同一用户或不同用户的多个设备的一部分。例如,在会议室中,视频会议系统可以向房间内的用户提供其模块。
在一个特定示例中,模块化电子设备102的用户可以访问咖啡店。附加设备(例如,设备108和110)也可以位于咖啡店中。例如,附加设备可以包括其他客户的智能手机、其他客户的膝上型计算机、交易处理设备(例如,“收银机”)或位于咖啡店内或以其他方式在参与通信的范围内的任何其他计算设备。因此,随着顾客进入和离开咖啡店,他们相应的设备可以加入和离开通过网络106可用的设备的自组织组合。同样,随着模块化电子设备102的用户离开咖啡店并访问其他位置(例如,交通站(transit station)),模块化电子设备102可以暴露于分别位于这样的其他位置(例如,交通站)的设备的许多不同的自组织组合。如将在下面进一步讨论的,在一些实施方式中,可以使用所有这些设备及其关联资源的观察来构建和维护资源地图,该资源地图提供很可能在不同位置(例如,咖啡店和交通站)处可用的资源的描述。
根据本公开的方面,设备100的每个模块可以基于其在不同设备环境中的连接来提供或启用不同的功能。类似地,如果其他模块化电子设备(例如,模块化设备108)通过网络可通信地连接,则这样的设备的模块可以各自提供或启用它们相应的功能。同样,非模块化设备也可以提供或启用不同的功能。
作为一个示例,模块化设备102的模块104可以在连接到设备102时执行特定的任务。例如,示例模块104可以基于其特定的硬件和/或软件来提供处理功能、存储器存储功能或其他特定功能。
此外,每个模块可以从模块化设备102移除并在不同的环境中连接以执行不同的任务。例如,如果模块104连接到不同的设备,则模块104可以执行特定的任务,或者模块104可以是可以创建自组织的更高级别的功能的连接的模块网络中的模块。
可以以各种方式来定义要由模块或模块网络执行的任务。在某些实例下,用户可以指示特定的任务。例如,用户可以指定使用模块和其他连接的模块/设备的可用能力执行的特定任务。在一些情况下,模块104或模块化设备102可以向用户输出(例如,显示)其和其他连接模块可用的能力。
在一个示例中,模块化设备102的模块104可以是蜂窝通信模块。蜂窝通信模块可以用于向可以不具有这样的能力的不同设备(例如,设备110)提供蜂窝通信能力。在另一个示例中,如果模块化设备102具有低电池容量,则其可以将功率密集型任务卸载到另一设备(例如,设备110)。
在又一些示例中,本地或远程服务器(例如,设备114)可以以模块化的方式向设备提供其功能。例如,具有高处理能力的服务器可被模块104或模块化设备102访问和使用,以执行处理器密集型任务。
为了启用上述自组织组合,可以使模块能够:发现彼此的存在和可用性;通告其自己的可用性、能力和价格;协商其他模块的资源的使用;识别可以适用于包含某些模块的当前环境的任务;和/或划分任务以使得任务的各部分可以由不同模块执行以完成任务。将在下面例如参考图3和7进一步讨论用于执行这些功能的特定示例组件。
另外,如下面将进一步讨论的,本公开的模块和模块化设备能够有能力预测模块组合和相关联的计算资源的将来可用性和/或能够预测将来需要执行的任务。例如,模块104可以预测随着时间推移将对模块104或设备102可用的计算设备和关联资源的不同集合。基于这样的预测,模块104或模块化电子设备102可以选择调度或延迟某些任务,更改资源协商行为/策略,或从各种不同的资源提供者当中进行选择。
图2描绘了根据本公开的示例实施例的示例模块化电子设备200的框图。示例模块化电子设备包括机架202和多个电子模块。出于解释的目的,图2中示出了两个代表性示例电子模块250和260。但是,模块化电子设备可以具有任何数目的电子模块。具体而言,模块化电子设备中包括的电子模块的数目可随着模块换进和换出机架202而随时间推移改变。
具体参考图2,机架202可以包括机架控制器202、一个或多个数据连接接口228、以及一个或多个锁扣机构220。在一些实施方式中,机架202可以包括具有模块250和260可移除地容纳在其中的多个槽或“凹室”。机架202可以用作内骨架或主干以向模块化电子设备202提供结构和形状。例如,机架202可以包括前底板和后底板,其间定位了机架的电子组件。
机架控制器204可以包括一个或多个处理器206和存储器208。机架控制器202的处理器206可以是任何合适的处理设备(例如,微处理器;微控制器;ASIC;FPGA等),并且可以是一个处理器或操作地连接的多个处理器。
存储器208可以包括诸如RAM、ROM、闪存、EEPROM、EPROM、硬盘驱动器等的任何数目的非暂态存储介质。存储器208可以存储处理器可执行指令210。处理器206执行存储在存储器208中的指令210可以使得机架控制器204执行与本公开一致的操作(例如,提供在电子模块250和260之间的交互的系统级管理)。
机架202还可以包括至少一个数据连接接口218,其将多个电子模块通信地耦合到机架控制器204。作为一个示例,机架204可以在多个槽或凹室的每个中包括至少一个数据连接接口218。至少一个数据连接接口218可以经由在接口218和对应模块之间的一个或多个电、磁(例如,感应)或光学耦合来提供在机架控制器204与电子模块之间的双向通信(例如,使用电子模块的互补数据连接接口)。作为一个示例,每个凹室的数据连接接口218可以包括插脚、引脚或触点等的多个互补对,以形成多个串行数据连接或其他形式的数据连接。在其他实施方式中,机架202的至少一个数据连接接口218可以执行与一个或多个电子模块的无线通信(例如,根据诸如蓝牙的短距离无线通信协议)。
机架202还可以包括一个或多个锁扣机构220,其用于将电子模块选择性地保持在它们相应的凹室内。在一些实施方式中,机架202在多个凹室中的每一个内包括至少一个锁扣机构220。作为一个示例,每个凹室内的锁扣机构220可以包括包含在机架中的电永久磁体。在激活时,电永磁体产生磁场,其用于将电子模块磁性保持在凹室内。
作为另一个示例,在一些实施方式中,每个凹室可以包括与凹室的壁或表面相关联的固定保持构件,并且每个电子模块可以包括至少部分地容纳在相关联的模块壳体内的释放构件,其被配置成可释放地接合保持构件。在一些实施方式中,保持构件可对应于从凹室的地板或底表面向外延伸的凸起或唇部,并且释放构件可对应于至少部分地容纳在模块壳体内的可致动钩。在其它实施方式中,保持/释放构件的相应位置和构造可以颠倒,其中保持构件与电子模块相关联,并且释放构件和机电致动器与凹室相关联。
在一些实施方式中,机架202还包括在机架的一侧上的一个或多个按钮。例如,按钮可以与通常在移动计算设备上看到的音量控制按钮相同或相似。在又一些实施方式中,机架202可以包括开关,该开关具有可由用户暂时从机架拉出的至少一个组件。一旦被用户释放,可拉动组件可以缩回。开关可以实现从机架202选择性地释放模块。
示例电子模块250可以包括一个或多个处理器251和存储器252。模块250的处理器251可以是任何合适的处理设备(例如,微处理器;微控制器;ASIC;FPGA等),并且可以是一个处理器或可操作地连接的多个处理器。存储器252可以包括诸如RAM、ROM、闪存、EEPROM、EPROM、硬盘驱动器等的任何数目的非暂时性存储介质。存储器252可以存储处理器可执行指令253。处理器251执行存储在存储器252中的指令253可以使得模块250执行与本公开一致的操作。
在其他实施方式中,模块250不包括处理器251。例如,模块250可以简单地包括存储在存储器252中的指令253。连接到机架202的另一不同模块可以包括处理器,其可以加载来自存储器252的指令253并且执行指令253。因此,模块化设备200可以包括协作操作以用作单个设备和/或执行期望的操作的多个模块。
在一些实施方式中,存储器252还存储资源地图254。更具体地,根据本公开的另一方面,随着电子模块250随着时间推移观察到不同设备和相关联资源/能力的通告,可以构建资源地图254,其描述在各个位置处的可用计算资源。在所示出的示例中,特定模块250基于其自己的观察来构建并存储其自己的地图254。在一些实施方式中,资源地图254可以包括时间维度,其针对各个位置中的每一个指示随时间推移而改变的资源的可用性(例如,对照一周中的每一天中的日内时间)。
替选地或补充地,可以使用由许多不同的计算设备报告回来并且然后聚合的观察来在中心位置(例如,在服务器计算设备处)建立和/或存储类似的资源地图。在这样的实施方式中,电子模块250可以与服务器计算设备通信以访问资源地图,而不是维护其自己的特定资源地图254。
电子模块250可以进一步包括资源协商器255、资源/任务预测器256和任务调度器257。电子模块250可以实现资源协商器255,以协商电子模块250对于其他模块或设备资源的使用和/或协商其他模块或设备对模块250的资源的使用。电子模块250可以实现资源/任务预测器256,以预测模块和/或设备组合和相关联的计算资源的将来可用性。电子模块250可以实现任务调度器257,以调度一个或多个计算任务以由模块250或电子模块250与之通信连接或将与之通信连接的其他设备/模块执行。
资源/任务预测器256可以分析各种类型的数据以预测将对电子模块250可用的将来计算资源集合。作为一个示例,资源/任务预测器256可以接收或以其他方式获得与模块化电子设备200和/或设备200的用户相关联的位置数据。资源/任务预测器256可以至少部分地基于位置数据来预测目的地,并且可以确定与目的地相关联的第一计算资源集合(例如,通过查询资源地图254)。
作为示例,位置数据可以包括全球定位系统数据、描述一个或多个将来约见位置的日历数据、描述将来位置的电子邮件或消息传送数据、描述用户已搜索的一个或多个位置的地图绘制数据、和/或其他形式的位置数据和/或用户数据。因此,在一些实施方式中,可以分析诸如位置数据和/或用户数据的用户信息以使得能够预测将来的计算资源。在一些实施方式中,可向用户提供允许用户选择关于是否以及何时在此描述的系统、程序或特征可以启用收集这样的用户信息(例如,位置数据或其他用户信息)的控件。然而,如果用户不启用对这样的用户信息的收集和使用,则用户可能不会收到如本文所述的与其相关联的益处。另外,某些数据在其被存储或用之前可以通过一种或多种方式进行处理,使得删除个人可识别信息。因此,用户可以控制收集关于用户的什么信息、如何使用该信息以及向用户提供什么信息。
在一些实施方式中,资源/任务预测器256可以通过识别由描述电子模块250和/或电子模块250的用户的历史位置的位置数据展现的一个或多个位置模式来预测将来的资源可用性。基于这样的位置模式,资源/任务预测器256可以预测将在一个或多个将来时间段分别可用于电子模块250的一个或多个将来的计算资源集合。
在一些实施方式中,资源/任务预测器256可以通过访问资源地图254来预测将来的资源可用性。资源/任务预测器256可以使用资源地图254和一个或多个预测的将来位置来确定预期将对模块250可用的一个或多个将来的计算资源集合。
在一些实施方式中,电子模块250还可以实现资源/任务预测器256以预测将来将被请求执行的任务。例如,资源/任务预测器256可以通过识别过去由用户请求的或者以其他方式由电子模块250执行的任务的模式来预测将来的任务。
在一些实施方式中,资源协商器255可以实现感测协议,其使得模块250和其他模块/设备能够发现彼此的存在和可用性并且通告他们自己相应的可用性、能力和价格。协商会导致商定的成本或其他交换来补偿其他模块/设备资源的使用。
在一些实施方式中,任务调度器257可以基于由资源/任务预测器256进行的关于将来资源可用性和/或将来任务请求的一个或多个预测来调度任务。例如,任务调度器257可以充分利用由资源/任务预测器256进行的关于将来资源可用性和/或将来任务请求的一个或多个预测,以确定实现在指定时间段内的所有任务的执行的排程。
作为另一示例,资源协商器255和/或任务调度器257可以使用关于由资源/任务预测器256做出的关于将来资源可用性的预测,以指导从中协商和接收资源的模块或设备的选择。例如,资源/任务预测器256可以预测电子模块250正从其接收资源的特定模块即将变得不可用。任务调度器257可以重新指派任务以使用被预测将保持更长时间可用的来自一个或多个其他模块的资源。资源协商器255然后可以协商这样的重新指派。
根据本公开的另一方面,资源/任务预测器256还可以预测分别与被一个或多个将来的计算资源集合执行特定计算任务相关联的一个或多个预期成本,该一个或多个将来的计算资源集合被预测为在一个或多个将来时间段分别可用于模块250。资源/任务预测器256可以基于先前的协商和/或来自这样的资源提供模块或设备的通告的先前观察来预测成本。在一些实施方式中,资源地图254还可以包括成本信息,无论先前是观察还是预测。
在一些实施方式中,资源协商器255可基于资源/任务预测器256所做出的关于将来资源可用性的预测来参与对来自其他模块/设备的资源的协商。特别地,资源协商器255可基于与预测的将来的计算资源集合相关联的预期成本来执行资源的协商(例如,作为资源请求者或资源提供者)。
作为一个示例,资源协商器255可以向当前可用的模块或设备提供特定价格以执行特定任务,其中,特定价格是与被预测为在将来可用的设备的资源相关联的预期成本和这样的资源事实上将在将来(例如,在将来和在与特定任务相关的截止日期之前)可用的确定的概率的函数。也可以使用其他协商方案,所述其他方案充分利用对将来资源可用性的预测和/或将来资源成本的预测来协助设定协商限制、出价或其他值。
类似地,任务调度器257可以至少部分地基于由资源/任务预测器256预测的一个或多个预期成本来确定执行一个或多个计算任务的排程。例如,任务调度器257可以确定最小化执行计算任务的预期成本的排程。
因此,任务调度器257可以使用将来的计算资源集合的预测来更有效率地调度计算任务的执行。计算任务可以是当前被请求的计算任务,或者可以是资源/任务预测器256已经预测将被请求的将来计算任务。
资源协商器255、资源/任务预测器256、和任务调度器257中的每一个都包括用于提供期望的功能的计算机逻辑。因此,可以在控制通用处理器的硬件、专用电路、固件和/或软件中实现资源协商器255、资源/任务预测器256和任务调度器257中的每一个。在一个实施例中,资源协商器255、资源/任务预测器256和任务调度器257中的每一个都是存储在存储设备上、加载到存储器中并由处理器执行的程序代码文件,或者可以从计算机程序产品(例如计算机可执行指令,其存储在诸如RAM、硬盘或光学或磁性介质的有形计算机可读存储介质中)提供。资源协商器255、资源/任务预测器256和任务调度器257可以各自对应于一个或多个不同的程序、文件、电路或指令集。类似地,两个或更多个资源协商器255、资源/任务预测器256和任务调度器257可以被组合成单个程序、文件、电路或指令集。
在一些实施方式中,资源协商器255、资源/任务预测器256和任务调度器257中的一个或多个被包括在电子模块250的感测单元内。例如,在电子模块250的感测单元内可以包括资源协商器255,或反之亦然。在一些实施方式中,资源/协商器255、资源/任务预测器256和任务调度器257中的一个或多个被包括在电子模块250的任务管理器或小任务管理器内。例如,资源/任务预测器256和/或者任务调度器257可以被包括在电子模块250的小任务管理器内,或反之亦然。
电子模块250可以进一步包括数据连接接口258和锁扣机构259。在一些实施方式中,数据连接接口258与上述数据连接接口218相同、相似或互补。例如,数据连接接口258可以包括被设计为与数据连接接口218处的互补连接匹配的多个插脚、引脚或其他电连接。在一些实施方式中,锁扣机构259与上面讨论的锁扣机构220相同、类似或互补。
示例电子模块260可以包括与电子模块250相同的许多组件:诸如存储指令264的存储器262;数据连接接口267;以及,锁扣机构269。
此外,电子模块260可以包括与包括在模块250中的组件不同的组件。这可以使得模块260能够提供和给予与由模块250提供的服务或功能不同的服务或功能。例如,电子模块260可以包括提供各种资源266的任何数目的组件。例如,资源266可以是诸如处理能力、存储能力或通信带宽的通用资源,或者可以是专用资源,包括例如专业硬件,诸如相机、图形处理单元、血压计、指纹扫描仪、手电筒、扬声器等。
作为一个示例资源,模块260包括网络接口270。网络接口270可以包括适合于通过一个或多个网络通信的任何组件或配置,所述一个或多个网络包括例如一个或多个端口、发射器、无线卡、控制器、物理层组件或用于根据任何当前已知或将来开发的通信协议或技术进行通信的其他项目。因此,作为一个示例,模块260可以协商以向模块250提供其网络接口270的使用,以通过一个或多个网络与其他模块或设备进行通信。
此外,仅作为一个示例提供图2中图示出的模块化电子设备200。本公开的模块化电子设备可以具有与图2的模块化电子设备200不同或作为其替选的许多设计。例如,某些模块化电子设备可以不具有机架202,而是仅由彼此物理耦合的模块组成。
根据本公开的另一方面,为了使得能够由不同模块以及本地或远程设备或服务器向彼此置配(provision)功能,模块可以包括向其他设备/模块通告其存在和能力的功能。模块还可以检测其他可用的模块及其相关联功能。在一些实施方式中,模块可以包括用于这样的通信的一个或多个感测单元。
具体地,图3描绘了根据本公开的示例实施例的示例电子模块302的框图。电子模块302包括在模块302上运行的虚拟机304,其可以例如评估模块的能力。虚拟机304还可以协调在模块302和其他模块/设备之间的通信和使用能力。例如,虚拟机304可以确定任务所需的能力是否在该模块上不可用,并且确定如何获得或执行那些能力,例如通过与其他模块、服务器设备等连接并且获得所需的资源。
在一些实施方式中,模块302通过用处理器执行存储在存储器中的指令来实现虚拟机。在本公开的其他实施方式中,模块可以在不使用虚拟机的情况下执行上述功能。
在图3的示例模块302中,虚拟机304包括线程管理器306以管理虚拟机304的操作。线程管理器306可以监督和分配不同的线程。例如,线程可以包含要由模块执行的任务。线程管理器306可以与硬件抽象层308对接。硬件抽象层308可以包括感测单元310。
线程管理器306和感测单元310中的每一个都包括用于提供期望功能的计算机逻辑。因此,可以用控制通用处理器的硬件、专用电路、固件和/或软件来实现线程管理器306和感测单元310中的每一个。在一个实施例中,线程管理器306和感测单元310中的每一个是存储在存储设备上、加载到存储器中并由处理器执行的程序代码文件,或者可以从计算机程序产品(例如计算机可执行指令,其存储在有形的计算机可读存储介质中,例如RAM、硬盘或光学或磁介质)提供。
根据本公开的一个方面,感测单元310可以被配置为监视和确定模块302的当前状态和能力。感测单元310还可以被配置为与在虚拟机304外部的其他对应的感测单元通信(例如,感测单元350),该感测单元包括例如其他模块或设备中的感测单元。例如,感测单元(例如,单元310和350)可以是设置在旨在使用所描述的特征的各个模块上的小组件。
感测单元310可以通告模块302的能力。感测单元310可以通过各种可用的通信模态与虚拟机304外部的其他感测单元(例如,单元350)通信。例如,感测单元310可以使用近场通信(NFC)、蓝牙或其他短距离无线协议来进行这样的通信。
在一些实例下,在感测单元310是模块302的一部分(模块302本身是包括其他模块的模块化设备的一部分)的情况下,感测单元310可以使用所述设备内的进程间通信(IPC)与其他感测单元进行通信(例如,通过一个或多个数据连接接口)。在其他实例下,感测单元310可以通过广域网(例如,互联网)与远程感测单元(例如,远程服务器处的感测单元)通信。在一些情况下,感测单元310可以利用一个或多个物理连接(诸如例如,通过端口(例如,USB)、有线网络接口、专有接口的连接)来与其他感测单元通信。
感测单元310能够识别与相同或相似类型的模块相对应的其他感测单元。在一些示例中,类似的模块可以确定模块之间的连接是安全的。
根据本公开的另一方面,模块可以通告其存在和能力。具体地,在图3所示的示例模块302中,感测单元350可以通告或描述模块302的功能。在一些实施方式中,模块302的感测单元310可以广播列出模块的一个或多个能力的信息。例如,这样的广播可以是周期性的,或者由某些条件触发。在其他实施方式中,感测单元310可以仅通告模块302的存在,并且可以接收并响应于对于描述模块302的能力的请求。
在一个示例简单协议中,模块302可以通告其通用功能。例如,所通告的信息可以包括可用处理能力、存储器/存储能力、通信带宽或关于模块302的其他信息。
在其他示例中,专用模块可以通告特定或专用功能。例如,专用功能可以包括捕获具有一定质量的图像的能力、有效率实现诸如傅立叶变换或密码功能的数学函数的能力、或其他专用功能。
在一些示例协议中,模块还可以通告关于其能力的附加细节。例如,模块302可以的在距离、协议或速度方面来通告该模块能够具有的其通信能力。作为示例,通告可以指示以下信息:“蓝牙,高达20米,速率为X kbps”;“蜂窝式,能够长距离,速率为Y mbps”;等等。
在一些示例协议中,模块可以类似地更详细地描述其处理功能。例如,通告可以包含关于模块在一段时间内处理标准任务的能力的信息。例如,模块可以在持久和/或非持久存储、可用存储量、存储速度等方面描述存储器功能。模块还可以描述其他功能,诸如电力可用性、访客模式和/或用户授权、安全和/或隐私设置等。
在一些情况下,模块302能够执行某些软件操作,并且模块302可以通告这些软件操作。例如,模块302能够具有其对视频流进行代码转换、基于输入数据来渲染3D动画的能力等并且通告其能力。
在一些实施方式中,模块302可以选择性地实现可能对其他模块感兴趣的用例特定软件应用的发现。例如,如果模块302检测到来自第二模块的针对特定应用的通告的请求,则作为响应,模块302可以开始通告其提供该应用的功能的能力。
根据本公开的另一方面,模块302可以通告其可用性和价格。例如,模块302还可以在可用时间或持续时间和/或可用能力单位方面来通告其可用性。可以标准化能力单位。模块302可以进一步通告利用其能力的价格。在一些示例中,模块302可针对不同类型的任务收取不同的价格,例如,对于可中断和不可中断的任务有不同价格。账户可以与各种模块或设备相关联。将对这样的账户进行评估价格或其他成本,以作为资源使用或其他任务执行的交换。
在一些实施方式中,模块302可以基于连接的模块和任务的变化环境来动态地更新其公布的可用性和价格。例如,可以完成现有任务并发起新任务,从而创建对于模块网络中的模块302的能力的不同的需求。在另一个示例中,可以将一个或多个模块带入模块网络或从模块网络移除(例如,基于通信范围),从而改变资源的可用性并且可能改变所提供的能力的价格。在另一个示例中,模块302可以基于其他模块对模块资源的利用来周期性地广播不同的可用性/价格。
根据本公开的另一方面,模块302可以接受要执行的任务。具体而言,模块302可以接收来自其他模块的对于利用其能力的多个请求。请求可以包括参数,诸如需要模块302的能力的持续时间、任务是否可中断、请求者正在提供的价格、服务质量要求以及其他参数。基于传入的请求和本地信息,模块302可以接受一个或多个请求。可以以特定顺序或并行方式接受所述请求。模块302可以具有一个或多个预算(例如,计算预算、功率预算、存储器预算等),并且可以拒绝超过一个或多个这样的预算的请求。
在一个示例中,模块302是视频会议硬件的一部分,并且包括多核图形处理单元(“GPU”)。模块302可以具有关于对视频会议硬件的预约或需求的本地信息。基于该信息,模块302可以在特定时间(例如,在没有排程视频会议时)通告其能力的可用性。
此外,模块302能够并行地执行多个传入任务(例如,使用多核GPU的不同子集核心)。在这个示例中,模块302可以接受使用整个GPU的单个请求或共同利用GPU的请求的组合。此外,模块302可以预测将来需求(例如,基于历史使用)并且基于这样的预测的将来需求来预留其资源。
模块302可以使用感测协议通过其感测单元执行与请求者的协商。例如,模块302可以使其本身在离散的时间块可用,并许可请求者进行预约。此外,协商可以许可请求者指定任务是否是非优先的(例如,后台处理任务)。在这个示例中,模块302可以向请求者提供较低的价格(例如,对应于放松的性能要求)。
在一些实施方式中,模块302能够一次只服务一个请求者。在这样的实施方式中,模块302可以例如基于所提供的价格、持续时间或与该请求相关联的其他参数来选择传入请求中的一个。
因此,模块302能够(例如,通过感测单元310)发现其他模块或设备的存在和可用性,并且能够通告其自身的可用性、能力和价格。模块302可以协商使用其他模块的资源,识别适合当前模块网络环境的任务,并且使用不同模块的资源来指派任务以完成任务。现在将更详细地讨论上述原理和功能的特定示例。
示例使用场景
在第一示例场景中,模块可以通过智能电话连接到服务器。作为一个示例,图4描绘了与智能电话404通信的模块402的框图,智能电话404进而与服务器406通信。智能电话404本质上可以是或者可以不是模块化的。作为示例计算设备提供智能手机404。可以用其他计算设备来代替智能手机404(例如,膝上型计算机或另一个模块)。
在图4所示的示例中,模块402仅能够进行短距离无线通信。因此,在所示示例中,因为智能电话404是模块402的通信范围内的唯一设备,所以模块402可以能够仅与智能电话404通信。
模块402的感测单元或其他组件可以发现由智能电话404或通过智能电话404提供的一个或多个能力。一些能力可以由智能电话404直接提供。例如,可以从电话的另一物理连接的模块访问能力。作为另一个示例,可以通过可通信地连接到智能手机404的服务器406提供一些资源或能力。服务器406可以是远程服务器或本地服务器。智能手机404(例如,智能手机404的感测单元)可以将关于这些资源的信息中继到模块402或其他设备。
在一些实施方式中,模块402可以检测智能手机404提供的可用资源,并选择要执行的任务。在一些实施方式中,模块402的感测单元或其他组件可以将需求(例如,针对诸如处理器的特定资源)传送给智能电话404,并请求智能电话404获得这样的能力(例如,通过服务器406)。电话404可以进而将这样的请求中继到服务器406,并且如果资源可用,则将可用性中继给模块402。这样的通信可以通过模块402和服务器406之间的多跳进行。
在第二示例场景中,模块可以连接到网状网络中的其他模块并通过智能电话连接到服务器。作为一个示例,图5示出了类似于图4的模块402的模块502。图5的模块502另外能够与一个或多个其他模块504、506和508进行通信。例如,模块502-508可以通过网状网络进行通信,如图所示。网状网络的其他模块504-508可以各自提供能力(例如,资源),并且可以向模块502(包括例如向服务器510)或和从其中继请求。模块502可以例如基于如上所述的感测协议来从可用资源中进行选择。
在第三示例场景中,模块和网状网络可以与特定用户相关联。作为一个示例,图6示出了与“用户1服务器”606通信的智能电话604。例如,电话604可以是包括与名为“用户1”的用户相关联的模块602的网状网络的一部分。此外,网状网络可以包括作为与用户1相关联的一个或多个设备的一部分的其他模块(例如,模块608和610)。示出了与用户1服务器606相关联的网状网络,其具有以实线彼此连接并且连接至用户1服务器606的模块。
类似地,第二网状网络可以与名为“用户2”的用户相关联,其包括用户2服务器656和与用户2相关联的模块(例如,模块652和654以及用实线连接到用户2服务器656的其他模块)。该网状网络的模块可以发现并使用来自网状网络的其他模块或服务器的资源来执行任务。
网状网络的模块还可以与不同网状网络的模块或能够可用的其他模块进行通信。例如,该其他模块可以位于所述模块的特定通信范围内。在图6中,网状网络的特定模块已经与通信范围内的其他模块(例如,模块670和672以及以虚线示出的其他模块)通信。所述其他模块可以是它们自己的网状网络的一部分。多个用户网状网络可以相互通信以形成更大的网状网络。
在该示例中,与服务器“用户3服务器”686相关联的名为“用户3”的第三用户可以进入通信范围(例如,与作为用户3服务器686的设备一起)。用户3服务器686可以与其他模块和网状网络通信并连接到其他模块和网状网络。用户3服务器686可以接收关于在网状网络上可用的资源的信息。用户3服务器686可以从网状网络请求资源。
例如,用户3服务器686可以向模块672请求资源。如果所请求的模块672的资源已经被例如所示的用户2模块654使用,则一个或多个涉及的设备的感测协议可以启用协商。例如,用户3服务器686可以提供比用户2模块654最初协商的价格更高的、用户模块672的资源的使用的价格。作为协商的结果,用户2模块654可以放弃模块672的资源,或者模块672的资源可以接受来自用户3服务器686的请求。因此,在上面的示例中,可能会竞争在网状网络内通告的资源,并且感测协议可以实现用于最佳资源分配的协商。
根据本公开的另一方面,在一些实施方式中,中央服务器或本地协调器可以执行任务分解和分配。作为一个示例,图7示出了在通信设备704、706和708之间通过服务器702的任务分解和分配的示例。在图7中,服务器/买方702可以是具有在给定时间执行的一个或多个任务的模块或其他设备(例如,模块化设备或非模块化设备)。在其他实施方式中,服务器/买方702可以是非服务器模块或其他设备。服务器/买方702可以是通信网络(例如,自组织网状网络)的一部分,并且能够与诸如设备704和706的一个或多个设备进行通信。设备/卖方704-706可以是能够与服务器/买方702和彼此通信的模块或其他设备。
服务器/买方702可以具有它需要完成的一个或多个任务。这样的任务能够需要在服务器702内可能不可用的资源。在一些实施方式中,服务器/买方702的感测单元可以广播对范围内的其他设备可以接收的特定资源的请求。服务器/买方702的感测单元可以从其他设备接收关于在网状网络中可用的不同资源的信息。
例如,简单的感测协议可以使得每个设备/卖方704和706能够在其可用通信带宽B(例如,到其他设备)、计算能力C和存储能力S来通告其各自的能力。感测协议可以指定以标准单位来描述BCS功能。在一个示例中,计算能力的标准单位可以是百万条指令每秒(“MIPS”)。
在图7所示的示例中,第一设备/卖方704通告其具有10个带宽单位、2个计算单位和500个存储能力单位。第二设备/卖方706通告其没有存储能力,但具有50个带宽和3个计算能力单位。此外,感测协议可以使得每个设备/卖方能够通告其他参数,诸如利用资源的价格以及资源可用性的时间(或时间范围)。例如,设备/卖方的感测单元可以传输或广播包含这样的信息的元组{B,C,S;价格;时间}。例如,基于对每个设备/卖方的利用,传输的信息可以周期性地改变。更高级的感测协议可以许可设备/卖方例如在完成特定任务、开始新任务等之后基于对将来任务需求的预测来指定将来价格和可用性单位。
服务器/买方可以包括“小任务管理器”750。小任务管理器750可以将任务划分或分区为一个或多个“小任务”。小任务可以是任务的小的、明确定义的工作单元。例如,小任务可以指定要对某些数据执行的数学运算(或一组运算)。在另一个示例中,小任务可以是将一定量的数据传送给远程服务器。在又一个示例中,小任务可以是存储一定量的数据。
小任务可以指定针对特定时间量和/或通信要求(例如,带宽或物理距离)的资源需求。例如,基于小任务的优先级或重要性,小任务可以是可中断的或不可中断的。
小任务可以要求限定的资源集合。可以在带宽、计算和存储(B,C,S)和/或小任务所需的其他参数方面来限定每个小任务的资源需求。在图7中,不同所示大小的小任务可以指示执行这些小任务所需的不同资源量。
在一些实施方式中,服务器/买方702的小任务管理器750可以基于由服务器/买方702的感测单元接收的关于可用资源(例如,来自每个设备/卖方704和706)的信息来执行任务的分解。例如,小任务管理器750可以生成与可用设备/卖方的能力匹配并且有效率地聚合能力的小任务。
小任务管理器750可以识别能够执行小任务并在其中选择的多个资源。例如,两个不同的设备/卖方可以提供类似的计算和带宽能力。但是,两个设备中的一个可以支持低功耗通信协议。在这个示例中,小任务管理器750可以将小任务指派给支持低功率通信协议的设备。
在一些示例中,小任务管理器750可以独立于由感测单元接收的信息来执行任务分解。在一些示例中,可以在关于资源的信息(例如,来自设备/卖方704和706)可用之前生成小任务。
如图7所示,可以实现感测协议以许可对服务器/买方702和每个设备/卖方704和706之间的资源的价格协商。基于该协商,可以将小任务指派给特定设备/卖方。在某些情况下,可以从多个设备获取小任务所需的资源。以这种方式,服务器/买方702可以通过分别利用来自设备/卖方704和706的资源来完成任务。
在图7中所示的示例中,新设备/买方708可以加入网状网络。网状网络中的设备可以中继由设备提供并且对新设备/买方708可用的能力(例如,资源)。新设备/买方708可以参与与设备/卖方的价格协商。例如,在图7中,新设备/买方参与与第一设备/卖方704的价格协商,并且与服务器/买方702竞争第一设备/卖方704的一些资源。作为响应,第一设备/卖方704可以完成服务器/买方702的小任务,并且例如如果新设备/买方708提供的价格高于服务器/买方702提供的价格,则切换到执行新设备/买方708的小任务。
尽管服务器/买方702和设备/卖方704被示出为不同的实体,但将理解的是,任何设备或模块可以在不同时间或同时作为买方或卖方。例如,具有过量计算能力和无通信能力的设备可以提供计算资源,同时消耗来自不同设备的带宽能力。
在一些实施方式中,设备/卖方可以以先进先出方式来接受传入资源请求。在这些实施方式中,可能没有协商。
在其他实施方式中,可能不存在中央“小任务管理器”。例如,任务可以是标准操作并且可以指定预定义的小任务。在这样的示例中,可以利用在不同模块之间的分布式协调来完成任务。
在一些实施方式中,小任务管理器750包括用来提供期望的功能的计算机逻辑。因此,可以用控制通用处理器的硬件、专用电路、固件和/或软件来实现小任务管理器750。在一个实施例中,小任务管理器750包括存储在存储设备上、加载到存储器中并由处理器执行的程序代码文件,或者可以从计算机程序产品(例如计算机可执行指令,其存储在有形的计算机可读存储介质,诸如RAM、硬盘或光学或磁介质)提供。
示例方法
图8描绘了根据本公开的示例实施例的,用于基于将来能力的预测来调度任务执行的示例方法800的流程图。尽管将参考示例模块化电子设备来讨论方法800,但是也可以由非模块化设备执行示例方法800。
在802处,模块化电子设备识别要执行的一个或多个计算任务。例如,计算任务可以是处理任务、存储任务、通信任务等。模块化电子设备可以包括一个或多个模块。
在一些实施方式中,在802处识别要执行的一个或多个计算任务可以包括:至少预测将在将来被请求执行的第一计算任务。
在804,模块化电子设备预测将在一个或多个将来时间段分别可用的一个或多个将来的计算资源集合。例如,在一些实施方式中,模块化电子设备可以执行图9的示例方法900以预测一个或多个将来的计算资源集合。
在806处,模块化电子设备至少部分地基于对一个或多个将来的计算资源集合的预测来确定执行一个或多个计算任务的排程。排程可以符合与计算任务相关联的任何截止日期或其他约束。
作为一个示例,在一些实施方式中,在806处确定排程可以包括:确定是在当前时间段期间用当前计算资源集合来执行一个或多个计算任务中的第一计算任务,还是调度第一计算任务以供在将来时间段中的一个将来时间段中由将来的计算资源集合中的一个执行。
例如,在一些实施方式中,确定是在当前时间段期间用当前计算资源集合来执行一个或多个计算任务中的第一计算任务,还是调度第一计算任务以供在将来时间段中的一个将来时间段中由将来的计算资源集合中的一个执行可以包括:确定当前的计算资源集合能够执行第一计算任务,并且确定至少一个将来的计算资源集合无法执行第一计算任务。作为响应,模块化电子设备可以使得在当前时间段期间由当前计算资源集合执行第一计算任务。
图9描绘了根据本公开的示例实施例的,用于预测一个或多个将来的计算资源集合的示例方法900的流程图。尽管将参考示例模块化电子设备来讨论方法900,但是可以由非模块化设备作为替代来执行示例方法900。
在902处,模块化电子设备接收与模块化电子设备和/或模块化电子设备的用户相关联的位置数据。例如,在902处接收位置数据可以包括接收以下中的至少一个:全球定位系统数据、描述一个或多个将来约见位置的日历数据以及描述用户已经搜索的一个或多个位置的地图绘制数据。
在904处,模块化电子设备基于位置数据来预测一个或多个目的地。作为一个示例,在一些实施方式中,在904处预测一个或多个目的地可以包括:识别由位置数据展现的一个或多个位置模式,并且由模块化电子设备至少部分地基于所识别的一个或多个位置模式来预测将在一个或多个将来时间段分别对模块化电子设备可用的一个或多个将来的计算资源集合。
在906处,模块化电子设备确定分别与一个或多个预测目的地相关联的一个或多个计算资源集合。作为一个示例,在一些实施方式中,在906处确定计算资源集合可以包括:访问描述各个位置处的可用计算资源的地图,并且至少部分地基于对于在904处预测的一个或多个位置所描述的资源来确定一个或多个将来的计算资源集合。预测的资源可以在自组织网络上获得和/或由其他模块化电子设备的其他模块提供。
图10描绘了根据本公开的示例实施例的,用于基于对将来能力和相关联预期成本的预测来调度任务执行的示例方法1000的流程图。尽管将参照示例模块化电子设备讨论方法1000,但可以由非模块化设备作为替代来执行示例方法1000。
在1002处,模块化电子设备识别要执行的一个或多个计算任务。例如,计算任务可以是处理任务、存储任务、通信任务等。模块化电子设备可以包括一个或多个模块。
在一些实施方式中,在1002处识别要执行的一个或多个计算任务可以包括:至少预测将在将来请求执行的第一计算任务。
在1004处,模块化电子设备预测将在一个或多个将来时间段分别可用的一个或多个将来的计算资源集合。例如,在一些实施方式中,模块化电子设备可以执行图9的示例方法900以预测一个或多个将来的计算资源集合。
在1006处,模块化电子设备预测由一个或多个将来的计算资源集合中的每一个来执行一个或多个计算任务中的每一个的预期成本。例如,预测成本可以基于先前的协商、先前观察到的通告或其他历史定价数据。
在1008处,模块化电子设备基于预测的成本来确定执行一个或多个计算任务的排程。例如,在1008处,模块化电子设备可以确定使总预期成本最小化的、执行一个或多个计算任务的排程。
图11描绘了根据本公开的示例实施例的,用于基于将来能力的预测来调度任务执行的示例方法1100的流程图。尽管将参照示例模块化电子设备讨论方法1100,但可以由非模块化设备作为替代来执行示例方法1100。
在1102处,模块化电子设备识别要执行的一个或多个计算任务。例如,计算任务可以是处理任务、存储任务、通信任务等。模块化电子设备可以包括一个或多个模块。
在一些实施方式中,在1102处识别要执行的一个或多个计算任务可以包括:至少预测将在将来被请求执行的第一计算任务。
在1104处,模块化电子设备确定在当前时间段期间可用的当前计算资源集合。在1106处,模块化电子设备预测当前计算资源集合的可用性将如何随时间推移改变。例如,模块化电子设备可以分析资源可用性中的历史模式以预测随时间推移的变化。作为另一示例,模块化电子设备可以执行图9的示例方法900,以预测将对模块化电子设备可用的一个或多个将来的计算资源集合。
在1108处,模块化电子设备基于随着时间推移的资源可用性的预测来选择特定设备和/或模块来提供资源以执行任务。
例如,在一些实施方式中,在1108处选择特定设备和/或模块以提供资源可以包括:由模块化电子设备确定是在当前时间段期间使用当前计算资源集合来执行一个或多个计算任务中的第一计算任务,还是调度第一计算任务以供一个或多个将来的计算资源集合在一个或多个将来时间段中执行。
在方法1100的一个示例中,在1104处使用来自特定模块或设备的资源的模块化电子设备可以在1106处预测这样的特定模块即将变得不可用。作为响应,在1108处,模块化电子设备可以改变其通信以使用被预测将保持更长时间可用的来自一个或多个其他模块的资源。例如,如果模块化电子设备预测服务器连接将很快失去,则模块化电子设备可以停止从服务器设备接收数据,并且可以开始与具有所需资源的本地设备通信。
在方法1100的另一个示例中,模块化电子设备可以在1106处预测模块网络的模块即将变得不可用,并且可以在1108处基于该预测来在替选模块(例如,基于云的模块)上调度小任务。
附加公开
本文讨论的技术参考服务器、数据库、软件应用和其他基于计算机的系统,以及所采取行动和向这样的系统发送和从这样的系统发送的信息。基于计算机的系统的固有灵活性允许组件间的任务和功能的各种可能的配置、组合和划分。例如,可以使用单个设备或组件或组合工作的多个设备或组件来实现这里讨论的过程。数据库和应用程序可以在单个系统上实现或者跨多个系统上分布。分布式组件可以按顺序或并行操作。
尽管已经关于本主题的各个具体示例实施例详细描述了本主题,但是通过解释而不是限制本公开来提供每个示例。本领域技术人员在获得对上述内容的理解后可以容易地产生对这些实施例的改变、变型和等同物。因此,本主题公开并不排除包含对本领域普通技术人员显而易见的对本主题的这样的修改、变化和/或添加。例如,作为一个实施例的一部分示出或描述的特征可以用于另一个实施例以产生又一个实施例。因此,本公开意在涵盖这样的变化、变型和等同物。
具体地,尽管图8-11分别描绘了出于说明和讨论的目的以特定顺序执行的步骤,但是本公开的方法不限于该特别示出的顺序或布置。可以在不偏离本公开的范围的情况下以各种方式省略、重新排列、组合和/或适配方法800-1100的各个步骤。
Claims (20)
1.一种基于对将来能力的预测来调度任务执行的计算机实现的方法,所述方法包括:
由包括至少一个电子模块的模块化电子设备识别要执行的一个或多个计算任务;
由所述模块化电子设备预测将在一个或多个将来时间段分别对所述模块化电子设备可用的一个或多个将来的计算资源集合;以及
由所述模块化电子设备至少部分地基于对将在所述一个或多个将来时间段分别可用的所述一个或多个将来的计算资源集合的所述预测来确定执行所述一个或多个计算任务的排程。
2.根据权利要求1所述的计算机实现的方法,其中,由所述模块化电子设备识别要执行的所述一个或多个计算任务包括:由所述模块化电子设备预测将在所述将来时间段中的至少一个将来时间段中被请求执行的至少第一计算任务。
3.根据权利要求1或2所述的计算机实现的方法,其中,所述方法进一步包括:
由所述模块化电子设备确定在当前时间段期间对所述模块化电子设备可用的当前计算资源集合;
其中,由所述模块化电子设备确定执行所述一个或多个计算任务的所述排程包括:由所述模块化电子设备确定是在所述当前时间段期间以所述当前计算资源集合执行所述一个或多个计算任务中的第一计算任务,还是调度所述第一计算任务以在所述将来时间段中的一个将来时间段中由所述将来的计算资源集合中的一个执行。
4.根据权利要求3所述的计算机实现的方法,其中:
由所述模块化电子设备识别要执行的所述一个或多个计算任务包括:由所述模块化电子设备预测将在所述将来时间段中的至少一个将来时间段中被请求执行的所述第一计算任务;以及
由所述模块化电子设备确定是在所述当前时间段期间以所述当前计算资源集合执行所述第一计算任务,还是调度所述第一计算任务以在所述将来时间段中的一个将来时间段中由所述将来的计算资源集合中的一个执行包括:
由所述模块化电子设备确定所述当前计算资源集合能够执行所述第一计算任务;
由所述模块化电子设备确定所述将来的计算资源集合中的至少一个无法执行所述第一计算任务;以及
响应于确定所述当前计算资源集合能够执行所述第一计算任务并且所述将来的计算资源集合中的至少一个无法执行所述第一计算任务,由所述模块化电子设备使得在所述当前时间段期间由所述当前计算资源集合执行所述第一计算任务。
5.根据任一前述权利要求所述的计算机实现的方法,其中,所述方法进一步包括:
由所述模块化电子设备预测分别与将在所述一个或多个将来时间段分别可用的所述一个或多个将来的计算资源集合执行所述一个或多个计算任务中的第一计算任务相关联的一个或多个预期成本;
其中,由所述模块化电子设备确定执行所述一个或多个计算任务的所述排程包括:由所述模块化电子设备至少部分地基于分别与所述一个或多个将来的计算资源集合和所述一个或多个将来时间段相关联的所述一个或多个预期成本来确定执行所述一个或多个计算任务的所述排程。
6.根据任一前述权利要求所述的计算机实现的方法,其中,由所述模块化电子设备预测将在所述一个或多个将来时间段分别对所述模块化电子设备可用的所述一个或多个将来的计算资源集合包括:
由所述模块化电子设备接收与所述模块化电子设备相关联的位置数据;
由所述模块化电子设备至少部分地基于所述位置数据来预测目的地;以及
由所述模块化电子设备确定与所述目的地相关联的第一计算资源集合。
7.根据权利要求6所述的计算机实现的方法,其中,由所述模块化电子设备接收与所述模块化电子设备相关联的位置数据包括:由所述模块化电子设备接收以下中的至少一个:全球定位系统数据、描述一个或多个将来约见位置的日历数据以及描述用户已经搜索过的一个或多个位置的地图绘制数据。
8.根据权利要求1至5中的任一项所述的计算机实现的方法,其中,由所述模块化电子设备预测将在所述一个或多个将来时间段分别对所述模块化电子设备可用的所述一个或多个将来的计算资源集合包括:
由所述模块化电子设备识别由位置数据展现的一个或多个位置模式,所述位置数据描述所述模块化电子设备和所述模块化电子设备的用户中的至少一个的历史位置;以及
至少部分地基于所识别的一个或多个位置模式,由所述模块化电子设备预测将在所述一个或多个将来时间段分别对所述模块化电子设备可用的所述一个或多个将来的计算资源集合。
9.根据权利要求1至5中的任一项所述的计算机实现的方法,其中,由所述模块化电子设备预测将在所述一个或多个将来时间段分别对所述模块化电子设备可用的所述一个或多个将来的计算资源集合包括:
由所述模块化电子设备访问描述各个位置处的可用计算资源的地图;
由所述模块化电子设备预测所述模块化电子设备的一个或多个将来位置;以及
由所述模块化电子设备至少部分地基于由所访问的地图针对所述一个或多个将来位置所描述的资源来确定所述一个或多个将来的计算资源集合。
10.根据任一前述权利要求所述的计算机实现的方法,其中,由所述模块化电子设备预测将在所述一个或多个将来时间段分别对所述模块化电子设备可用的所述一个或多个将来的计算资源集合包括:由所述模块化电子设备预测将在所述一个或多个将来时间段通过自组织无线网络分别对所述模块化电子设备可用的所述一个或多个将来的计算资源集合。
11.根据任一前述权利要求所述的计算机实现的方法,其中,由所述模块化电子设备预测将在一个或多个将来时间段分别对所述模块化电子设备可用的所述一个或多个将来的计算资源集合包括:由所述模块化电子设备预测由其他电子模块提供并且将在一个或多个将来时间段分别对所述模块化电子设备可用的所述一个或多个将来的计算资源集合。
12.一种模块化电子设备,包括:
至少一个处理器;以及
至少一个电子模块;
其中,所述模块化电子设备:
识别要执行的一个或多个计算任务;
预测将在一个或多个将来时间段分别对所述模块化电子设备可用的一个或多个将来的计算资源集合;以及
至少部分地基于对将在所述一个或多个将来时间段分别可用的所述一个或多个将来的计算资源集合的所述预测来确定执行所述一个或多个计算任务的排程。
13.根据权利要求12所述的模块化电子设备,其中,所述模块化电子设备进一步:
确定在当前时间段期间对所述模块化电子设备可用的当前计算资源集合;以及
其中,为了确定执行所述一个或多个计算任务的排程,所述模块化电子设备确定是在所述当前时间段期间用所述当前计算资源集合执行所述一个或多个计算任务中的第一计算任务,还是调度所述第一计算任务以在所述将来时间段中的一个将来时间段中由所述将来的计算资源集合中的一个执行。
14.根据权利要求12或13所述的模块化电子设备,其中:
为了识别要执行的所述一个或多个计算任务,所述模块化电子设备预测将在所述将来时间段中的至少一个将来时间段中被请求执行的所述第一计算任务;以及
为了确定是在所述当前时间段期间以所述当前计算资源集合来执行所述第一计算任务,还是调度所述第一计算任务以在所述将来时间段中的一个将来时间段中由所述将来的计算资源集合中的一个执行,所述模块化电子设备:
确定所述当前计算资源集合能够执行所述第一计算任务;
确定所述将来的计算资源集合中的至少一个无法执行所述第一计算任务;以及
响应于确定所述当前计算资源集合能够执行所述第一计算任务并且所述将来的计算资源集合中的至少一个无法执行所述第一计算任务,使得在所述当前时间段期间由所述当前计算资源集合执行所述第一计算任务。
15.根据权利要求12、13或14所述的模块化电子设备,其中,所述模块化电子设备进一步:
预测一个或多个预期成本,所述一个或多个预期成本分别与将在所述一个或多个将来时间段分别可用的所述一个或多个将来的计算资源集合执行所述一个或多个计算任务中的第一计算任务相关联;
其中,为了确定执行所述一个或多个计算任务的所述排程,所述模块化电子设备至少部分地基于分别与所述一个或多个将来的计算资源集合和所述一个或多个将来的时间段相关联的所述一个或多个预期成本来确定执行所述一个或多个计算任务的所述排程。
16.根据权利要求12至15中的任一项所述的模块化电子设备,其中,为了预测将在所述一个或多个将来时间段分别对所述模块化电子设备可用的所述一个或多个将来的计算资源集合,所述模块化电子设备:
接收与所述模块化电子设备相关联的位置数据;
至少部分地基于所述位置数据来预测目的地;以及
确定与所述目的地相关联的第一计算资源集合。
17.至少一个存储指令的非暂时性计算机可读介质,所述指令在由至少一个处理器执行时使得所述至少一个处理器:
识别要执行的一个或多个计算任务;
预测将在一个或多个将来时间段分别对所述模块化电子设备可用的一个或多个将来的计算资源集合,其中,所述一个或多个将来的计算资源集合中的至少一个是由通过自组织无线网络可访问的一个或多个模块化电子设备的一个或多个电子模块提供的;以及
至少部分地基于将在所述一个或多个将来时间段分别可用的所述一个或多个将来的计算资源集合的所述预测来确定执行所述一个或多个计算任务的排程。
18.根据权利要求17所述的至少一个非暂时性计算机可读介质,其中,使得所述至少一个处理器确定执行所述一个或多个计算任务的所述排程的指令使得所述至少一个处理器:
预测分别与将在所述一个或多个将来时间段分别可用的所述一个或多个将来的计算资源集合执行所述一个或多个计算任务中的第一计算任务相关联的一个或多个预期成本;以及
至少部分地基于分别与所述一个或多个将来的计算资源集合和所述一个或多个将来时间段相关联的所述一个或多个预期成本,确定执行所述一个或多个计算任务的所述排程。
19.根据权利要求17或18所述的至少一个非暂时性计算机可读介质,其中,使得所述至少一个处理器预测所述一个或多个将来的计算资源集合的指令使得所述至少一个处理器:
接收与所述模块化电子设备相关联的位置数据;
至少部分地基于所述位置数据来预测目的地;以及
确定与所述目的地相关联的第一计算资源集合。
20.根据权利要求19所述的至少一个非暂时性计算机可读介质,其中,使得所述至少一个处理器至少部分地基于所述位置数据来预测所述目的地的指令使得所述至少一个处理器:
识别由与所述模块化电子设备相关联的所述位置数据展现的一个或多个位置模式;以及
至少部分地基于所述识别的一个或多个位置模式来预测所述目的地。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/130,174 US10282233B2 (en) | 2016-04-15 | 2016-04-15 | Modular electronic devices with prediction of future tasks and capabilities |
US15/130,174 | 2016-04-15 | ||
PCT/US2016/062667 WO2017180188A1 (en) | 2016-04-15 | 2016-11-18 | Modular electronic devices with prediction of future tasks and capabilities |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108885562A true CN108885562A (zh) | 2018-11-23 |
CN108885562B CN108885562B (zh) | 2020-07-10 |
Family
ID=57543168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680078983.8A Active CN108885562B (zh) | 2016-04-15 | 2016-11-18 | 具有将来任务和能力预测的模块化电子设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10282233B2 (zh) |
EP (1) | EP3380938B1 (zh) |
CN (1) | CN108885562B (zh) |
WO (1) | WO2017180188A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114816690A (zh) * | 2021-01-29 | 2022-07-29 | 中移(苏州)软件技术有限公司 | 一种任务分配方法、装置、设备及存储介质 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201621627D0 (en) * | 2016-12-19 | 2017-02-01 | Palantir Technologies Inc | Task allocation |
US10541939B2 (en) * | 2017-08-15 | 2020-01-21 | Google Llc | Systems and methods for provision of a guaranteed batch |
US10915351B2 (en) * | 2018-08-30 | 2021-02-09 | International Business Machines Corporation | Cellular hypervisor |
US11301819B2 (en) * | 2018-09-07 | 2022-04-12 | International Business Machines Corporation | Opportunistic multi-party reminders based on sensory data |
US11172341B2 (en) | 2019-12-13 | 2021-11-09 | Toyota Motor Engineering & Manufacturing North America, Inc. | Mobility-aware assignment of computational sub-tasks in a vehicular cloud |
US11605298B2 (en) | 2020-01-29 | 2023-03-14 | Toyota Motor Engineering & Manufacturing North America, Inc. | Pedestrian navigation based on vehicular collaborative computing |
US11485377B2 (en) | 2020-02-06 | 2022-11-01 | Toyota Motor Engineering & Manufacturing North America, Inc. | Vehicular cooperative perception for identifying a connected vehicle to aid a pedestrian |
US11477134B1 (en) * | 2020-03-31 | 2022-10-18 | United Services Automobile Association (Usaa) | Computer resource-based API transaction method and system |
CN113658351B (zh) * | 2021-08-10 | 2023-04-28 | 北京全路通信信号研究设计院集团有限公司 | 一种产品生产的方法、装置、电子设备及存储介质 |
WO2023104305A1 (en) | 2021-12-08 | 2023-06-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Single to multiple device resource negotiation |
CN114237886A (zh) * | 2021-12-15 | 2022-03-25 | 平安证券股份有限公司 | 任务处理方法、装置、计算机设备和存储介质 |
JP2024031016A (ja) * | 2022-08-25 | 2024-03-07 | トヨタ自動車株式会社 | システム、サーバー、移動体、及び方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5809325A (en) * | 1994-08-19 | 1998-09-15 | Intel Corporation | Circuit and method for scheduling instructions by predicting future availability of resources required for execution |
US20090106730A1 (en) * | 2007-10-23 | 2009-04-23 | Microsoft Corporation | Predictive cost based scheduling in a distributed software build |
CN103733194A (zh) * | 2011-01-27 | 2014-04-16 | 康姆普特奈科斯特有限公司 | 动态组织云计算资源以便于发现 |
US8843933B1 (en) * | 2011-05-25 | 2014-09-23 | Vmware, Inc. | System and method for managing a virtualized computing environment |
US20150081877A1 (en) * | 2013-09-17 | 2015-03-19 | Bank Of America Corporation | Prediction and distribution of resource demand |
CN104516784A (zh) * | 2014-07-11 | 2015-04-15 | 中国科学院计算技术研究所 | 一种预测任务资源等待时间的方法及系统 |
Family Cites Families (86)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5418812A (en) | 1992-06-26 | 1995-05-23 | Symbol Technologies, Inc. | Radio network initialization method and apparatus |
US6282561B1 (en) | 1995-12-07 | 2001-08-28 | Microsoft Corporation | Method and system for resource management with independent real-time applications on a common set of machines |
US6907243B1 (en) | 1999-06-09 | 2005-06-14 | Cisco Technology, Inc. | Method and system for dynamic soft handoff resource allocation in a wireless network |
US6771595B1 (en) | 1999-08-31 | 2004-08-03 | Intel Corporation | Apparatus and method for dynamic resource allocation in a network environment |
US6975613B1 (en) | 1999-12-06 | 2005-12-13 | Telefonaktiebolaget L M Ericsson (Publ) | System and method for scheduling communication sessions in an ad-hoc network |
US7043225B1 (en) | 2000-02-25 | 2006-05-09 | Cisco Technology, Inc. | Method and system for brokering bandwidth in a wireless communications network |
US6785889B1 (en) | 2000-06-15 | 2004-08-31 | Aurema, Inc. | System and method for scheduling bandwidth resources using a Kalman estimator with active feedback |
US7630721B2 (en) | 2000-06-27 | 2009-12-08 | Ortiz & Associates Consulting, Llc | Systems, methods and apparatuses for brokering data between wireless devices and data rendering devices |
US6968323B1 (en) | 2000-10-05 | 2005-11-22 | International Business Machines Corporation | Dynamic allocation and pricing of resources of web server farm |
US7340759B1 (en) | 2000-11-10 | 2008-03-04 | Scientific-Atlanta, Inc. | Systems and methods for adaptive pricing in a digital broadband delivery system |
US7072650B2 (en) | 2000-11-13 | 2006-07-04 | Meshnetworks, Inc. | Ad hoc peer-to-peer mobile radio access system interfaced to the PSTN and cellular networks |
GB0101989D0 (en) | 2001-01-25 | 2001-03-14 | Best Quote Direct Ltd | Improvements relating to information systems |
US7009939B2 (en) | 2001-05-21 | 2006-03-07 | Lucent Technologies Inc. | Adaptive resource management in a communication system |
GB2376320A (en) | 2001-06-08 | 2002-12-11 | Hewlett Packard Co | An electronic interface device having a mechanical connector and circuits for receiving, transmitting, decoding and mapping the I/O signals |
US7463890B2 (en) | 2002-07-24 | 2008-12-09 | Herz Frederick S M | Method and apparatus for establishing ad hoc communications pathways between source and destination nodes in a communications network |
US7184759B2 (en) | 2001-07-26 | 2007-02-27 | Kyocera Wireless Corp. | Modular software components for wireless communication devices |
US7257632B2 (en) | 2001-07-30 | 2007-08-14 | Fujitsu Limited | Method and apparatus for a bandwidth broker in a packet network |
US8024395B1 (en) | 2001-09-04 | 2011-09-20 | Gary Odom | Distributed processing multiple tier task allocation |
US7058387B2 (en) | 2001-11-01 | 2006-06-06 | Intel Corporation | System and method for providing cost of quality of service levels in a wireless communication device |
FI20012594A0 (fi) | 2001-12-31 | 2001-12-31 | Nokia Corp | Parannettu menetelmä asiakaskohtaisen tuotteen valmistamiseksi ja asiakaskohtainen tuote |
ES2244849T3 (es) | 2002-04-15 | 2005-12-16 | France Telecom | Procedimiento y sistema de asignacion de un recurso en tiempo real entre varias entidades. |
US7616961B2 (en) | 2002-04-29 | 2009-11-10 | Harris Corporation | Allocating channels in a mobile ad hoc network |
US20030217129A1 (en) | 2002-05-15 | 2003-11-20 | Lucent Technologies Inc. | Self-organizing intelligent network architecture and methodology |
US8886701B1 (en) | 2002-07-15 | 2014-11-11 | Hewlett-Packard Development Company, L.P. | Network based software agent to allow dynamic resource access |
US20040111308A1 (en) | 2002-12-09 | 2004-06-10 | Brighthaul Ltd. | Dynamic resource allocation platform and method for time related resources |
US7961702B2 (en) | 2002-12-17 | 2011-06-14 | University Of Maryland | Distributed bandwidth allocation and transmission coordination method for quality of service provision in wireless ad hoc networks |
US7149539B2 (en) | 2003-02-24 | 2006-12-12 | Autocell Laboratories, Inc | Program for self-adjusting power at a wireless station to reduce inter-channel interference |
US7720968B2 (en) | 2003-04-30 | 2010-05-18 | International Business Machines Corporation | Method and system of configuring elements of a distributed computing system for optimized value |
US7489656B2 (en) | 2004-03-23 | 2009-02-10 | Microsoft Corporation | Bandwidth allocation |
CA2571654A1 (en) | 2004-06-22 | 2005-12-29 | British Telecommunications Public Limited Company | Wireless ad hoc network |
US20060007955A1 (en) | 2004-07-06 | 2006-01-12 | Kotzin Michael D | Communication network capacity allocation method |
US7590589B2 (en) | 2004-09-10 | 2009-09-15 | Hoffberg Steven M | Game theoretic prioritization scheme for mobile ad hoc networks permitting hierarchal deference |
US20060168571A1 (en) | 2005-01-27 | 2006-07-27 | International Business Machines Corporation | System and method for optimized task scheduling in a heterogeneous data processing system |
US7689681B1 (en) | 2005-02-14 | 2010-03-30 | David Scott L | System and method for facilitating controlled compensable use of a remotely accessible network device |
US8156500B2 (en) | 2005-07-01 | 2012-04-10 | Microsoft Corporation | Real-time self tuning of planned actions in a distributed environment |
US8027684B2 (en) | 2005-08-22 | 2011-09-27 | Infosys Technologies, Ltd. | System for performing a task in a communication network and methods thereof |
JP5109250B2 (ja) | 2005-11-08 | 2012-12-26 | 横河電機株式会社 | 分散システム |
US20070179829A1 (en) | 2006-01-27 | 2007-08-02 | Sbc Knowledge Ventures, L.P. | Method and apparatus for workflow scheduling and forecasting |
US20070294692A1 (en) | 2006-06-16 | 2007-12-20 | Microsoft Corporation | Task Assignment Among Multiple Devices |
US20090271324A1 (en) | 2006-08-11 | 2009-10-29 | Evapt, Inc. | Systems and methods for metered software as a service |
US20080040481A1 (en) | 2006-08-11 | 2008-02-14 | Motorola, Inc. | Method and system for compensation in ad hoc networks |
US8380880B2 (en) | 2007-02-02 | 2013-02-19 | The Mathworks, Inc. | Scalable architecture |
US8185909B2 (en) | 2007-03-06 | 2012-05-22 | Sap Ag | Predictive database resource utilization and load balancing using neural network model |
US8520535B2 (en) | 2007-05-31 | 2013-08-27 | International Business Machines Corporation | Optimization process and system for a heterogeneous ad hoc Network |
US10419360B2 (en) | 2007-05-31 | 2019-09-17 | International Business Machines Corporation | Market-driven variable price offerings for bandwidth-sharing ad hoc networks |
US8320414B2 (en) | 2007-05-31 | 2012-11-27 | International Business Machines Corporation | Formation and rearrangement of lender devices that perform multiplexing functions |
US8249984B2 (en) | 2007-05-31 | 2012-08-21 | International Business Machines Corporation | System and method for fair-sharing in bandwidth sharing ad-hoc networks |
US8620784B2 (en) | 2007-05-31 | 2013-12-31 | International Business Machines Corporation | Formation and rearrangement of ad hoc networks |
US10623998B2 (en) | 2007-05-31 | 2020-04-14 | International Business Machines Corporation | Price offerings for bandwidth-sharing ad hoc networks |
US9229781B2 (en) | 2007-06-12 | 2016-01-05 | Broadcom Corporation | System and method for allocating spare system resources |
US20090025004A1 (en) | 2007-07-16 | 2009-01-22 | Microsoft Corporation | Scheduling by Growing and Shrinking Resource Allocation |
EP2073463A1 (en) | 2007-12-21 | 2009-06-24 | Nokia Siemens Networks S.p.A. | Method and device for setting QoS parameters for predictive scheduling in wireless communication systems |
EP2241092A4 (en) | 2008-01-10 | 2014-01-15 | Aria Entpr Inc | CUSTOMIZABLE MODULAR MULTIFUNCTION COMMUNICATION DEVICE |
US8854966B2 (en) | 2008-01-10 | 2014-10-07 | Apple Inc. | Apparatus and methods for network resource allocation |
US8276143B2 (en) | 2008-03-10 | 2012-09-25 | Oracle America, Inc. | Dynamic scheduling of application tasks in a distributed task based system |
US8424007B1 (en) | 2008-09-30 | 2013-04-16 | Symantec Corporation | Prioritizing tasks from virtual machines |
AU2010213340A1 (en) | 2009-02-10 | 2011-09-22 | Matter Ip Pty Ltd | Resource supply management system and method |
US20100251259A1 (en) | 2009-03-31 | 2010-09-30 | Howard Kevin D | System And Method For Recruitment And Management Of Processors For High Performance Parallel Processing Using Multiple Distributed Networked Heterogeneous Computing Elements |
US8244559B2 (en) | 2009-06-26 | 2012-08-14 | Microsoft Corporation | Cloud computing resource broker |
US8694968B2 (en) | 2009-12-30 | 2014-04-08 | Foneclay, Inc. | System for creating personalized and customized mobile devices |
US20110320233A1 (en) | 2010-05-30 | 2011-12-29 | Sonian, Inc. | Method and system for arbitraging computing resources in a cloud computing environment |
US8355670B2 (en) | 2010-06-22 | 2013-01-15 | At&T Mobility Ii Llc | Near field communication adapters |
US9329908B2 (en) | 2010-09-29 | 2016-05-03 | International Business Machines Corporation | Proactive identification of hotspots in a cloud computing environment |
US8782211B1 (en) | 2010-12-21 | 2014-07-15 | Juniper Networks, Inc. | Dynamically scheduling tasks to manage system load |
US8453152B2 (en) | 2011-02-01 | 2013-05-28 | International Business Machines Corporation | Workflow control of reservations and regular jobs using a flexible job scheduler |
US8730994B2 (en) | 2011-05-27 | 2014-05-20 | International Business Machines Corporation | Fair discount for network resource allocation |
US9075659B2 (en) | 2011-06-16 | 2015-07-07 | Kodak Alaris Inc. | Task allocation in a computer network |
US9424096B2 (en) | 2011-06-16 | 2016-08-23 | Kodak Alaris Inc. | Task allocation in a computer network |
US9015708B2 (en) | 2011-07-28 | 2015-04-21 | International Business Machines Corporation | System for improving the performance of high performance computing applications on cloud using integrated load balancing |
US9158590B2 (en) | 2011-08-08 | 2015-10-13 | International Business Machines Corporation | Dynamically acquiring computing resources in a networked computing environment |
US8391934B1 (en) | 2011-12-29 | 2013-03-05 | Elwha Llc | Customized hardware selection for a mobile phone |
US20150206228A1 (en) | 2012-06-08 | 2015-07-23 | Google Inc. | Peer-To-Peer Resource Leasing |
DE102012105463A1 (de) | 2012-06-22 | 2013-12-24 | Endress + Hauser Gmbh + Co. Kg | Kopplungssystem zum Einsatz in der Automatisierungstechnik |
US9148473B1 (en) | 2012-08-27 | 2015-09-29 | Amazon Technologies, Inc. | Dynamic resource expansion of mobile devices |
US20140067496A1 (en) | 2012-08-31 | 2014-03-06 | International Business Machines Corporation | Providing real-time trading of virtual infrastructure resources |
CN103686865B (zh) | 2012-09-26 | 2018-11-09 | 索尼公司 | 网络资源使用的决策装置和方法 |
US9031531B2 (en) | 2012-11-20 | 2015-05-12 | At&T Intellectual Property I, L.P. | Distributed computing task costing with a mobile device |
US9195499B2 (en) * | 2012-11-27 | 2015-11-24 | International Business Machines Corporation | Batch jobs using positional scheduling policies of mobile devices |
US9003039B2 (en) | 2012-11-29 | 2015-04-07 | Thales Canada Inc. | Method and apparatus of resource allocation or resource release |
US20140184764A1 (en) | 2012-12-31 | 2014-07-03 | Marc R. Amling | Reprogrammable Video Imaging System with Modular Architecture |
US9270539B2 (en) | 2013-01-04 | 2016-02-23 | International Business Machines Corporation | Predicting resource provisioning times in a computing environment |
US9038195B2 (en) | 2013-03-15 | 2015-05-19 | Google Technology Holdings LLC | Accessing a cloud-based service using a communication device linked to another communication device via a peer-to-peer ad hoc communication link |
US9942907B2 (en) | 2013-04-10 | 2018-04-10 | International Business Machines Corporation | Resource sharing among multiple service providers in a wireless network cloud |
US9602423B2 (en) | 2013-06-28 | 2017-03-21 | Pepperdata, Inc. | Systems, methods, and devices for dynamic resource monitoring and allocation in a cluster system |
US20150074635A1 (en) | 2013-08-16 | 2015-03-12 | Vito Margiotta | Systems and Methods for Building Custom Mobile Device Applications Using a Mobile Devlce |
US10031785B2 (en) * | 2015-04-10 | 2018-07-24 | International Business Machines Corporation | Predictive computing resource allocation for distributed environments |
-
2016
- 2016-04-15 US US15/130,174 patent/US10282233B2/en active Active
- 2016-11-18 CN CN201680078983.8A patent/CN108885562B/zh active Active
- 2016-11-18 WO PCT/US2016/062667 patent/WO2017180188A1/en active Application Filing
- 2016-11-18 EP EP16810150.9A patent/EP3380938B1/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5809325A (en) * | 1994-08-19 | 1998-09-15 | Intel Corporation | Circuit and method for scheduling instructions by predicting future availability of resources required for execution |
US20090106730A1 (en) * | 2007-10-23 | 2009-04-23 | Microsoft Corporation | Predictive cost based scheduling in a distributed software build |
CN103733194A (zh) * | 2011-01-27 | 2014-04-16 | 康姆普特奈科斯特有限公司 | 动态组织云计算资源以便于发现 |
US8843933B1 (en) * | 2011-05-25 | 2014-09-23 | Vmware, Inc. | System and method for managing a virtualized computing environment |
US20150081877A1 (en) * | 2013-09-17 | 2015-03-19 | Bank Of America Corporation | Prediction and distribution of resource demand |
CN104516784A (zh) * | 2014-07-11 | 2015-04-15 | 中国科学院计算技术研究所 | 一种预测任务资源等待时间的方法及系统 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114816690A (zh) * | 2021-01-29 | 2022-07-29 | 中移(苏州)软件技术有限公司 | 一种任务分配方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2017180188A1 (en) | 2017-10-19 |
US20170300364A1 (en) | 2017-10-19 |
EP3380938A1 (en) | 2018-10-03 |
CN108885562B (zh) | 2020-07-10 |
EP3380938B1 (en) | 2019-06-19 |
US10282233B2 (en) | 2019-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108885562A (zh) | 具有将来任务和能力预测的模块化电子设备 | |
CN108770369A (zh) | 具有场境任务管理和执行的模块化电子设备 | |
US20240340034A1 (en) | Packet tracking energy harvesting device for location and condition state monitoring | |
Chen et al. | Exploiting massive D2D collaboration for energy-efficient mobile edge computing | |
CN105359095B (zh) | 用于使用虚拟化代理和上下文信息的资源虚拟化的方法和装置 | |
CN103377091B (zh) | 用于资源共享池中的作业的高效执行的方法和系统 | |
US20200333151A1 (en) | Charge Sharing and Smart Charging Infrastructure Integration for Electric Vehicles | |
CN110431574A (zh) | 用于基于可共享网络的最佳的车辆车队规模制定、搭乘共享和实时调度的数据驱动系统 | |
CN109155789A (zh) | 服务层中的请求处理 | |
CN106464737B (zh) | 信使网络服务装置及方法 | |
CN110189154A (zh) | 信息系统、信息处理方法和记录介质 | |
CN110521188A (zh) | 网络服务层中的分布式事务管理 | |
CN111526193B (zh) | 基于雾计算和区块链平台的分布式气象站系统及工作方法 | |
Tran-Dang et al. | A survey on matching theory for distributed computation offloading in iot-fog-cloud systems: Perspectives and open issues | |
Hao et al. | iTaskOffloading: Intelligent task offloading for a cloud-edge collaborative system | |
CN109949126A (zh) | 车位共享方法、设备和存储介质 | |
Rahul et al. | Fog computing architecture, application and resource allocation: a review | |
Wang et al. | Reinforcement contract design for vehicular-edge computing scheduling and energy trading via deep Q-network with hybrid action space | |
Niyato et al. | Optimal service auction for wireless powered internet of things (IoT) device | |
Venkatesan et al. | Design of a smart gateway solution based on the exploration of specific challenges in IoT | |
CN111224824B (zh) | 一种边缘自治模型构建方法 | |
WO2019111411A1 (ja) | 協調分散システム、協調分散管理装置、協調分散方法、及びプログラム | |
Florence et al. | A study of remotely booking slot for vehicle using Internet of Things | |
TWI679601B (zh) | 移動電源的租借管理設備及方法 | |
JP2021536606A (ja) | フォグベースのデータ処理を有効にするためのデータサンプルテンプレート(Data Sample Template:DST)管理 |
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 |