CN116601607A - 通过动态任务迁移跨集群进行边缘时间共享 - Google Patents

通过动态任务迁移跨集群进行边缘时间共享 Download PDF

Info

Publication number
CN116601607A
CN116601607A CN202280008096.9A CN202280008096A CN116601607A CN 116601607 A CN116601607 A CN 116601607A CN 202280008096 A CN202280008096 A CN 202280008096A CN 116601607 A CN116601607 A CN 116601607A
Authority
CN
China
Prior art keywords
edge device
task
edge
subtask
subtasks
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.)
Pending
Application number
CN202280008096.9A
Other languages
English (en)
Inventor
王越
刘昕鹏
吴卫
李峥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN116601607A publication Critical patent/CN116601607A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了边缘设备任务管理。当在包括第一多个子任务的第一任务在第一边缘设备集群上运行时,当接收到运行与第二任务相对应的第二多个子任务中的较高优先级子任务的请求时,确定子任务取消和迁移计划是否存在。响应于确定子任务取消和迁移计划确实存在,基于子任务取消和迁移计划,从第一边缘设备集群的指定边缘设备中取消第一多个子任务中的较低优先级子任务。基于子任务取消和迁移计划,将较低优先级子任务迁移到另一边缘设备以供运行。将第二多个子任务中的较高优先级子任务发送给第一边缘设备集群的指定边缘设备以供运行。

Description

通过动态任务迁移跨集群进行边缘时间共享
技术领域
本公开总体上涉及边缘计算,并且更具体地涉及基于任务属性使用动态任务迁移跨边缘设备集群进行时间共享。
背景技术
边缘计算是分布式计算框架,其使应用更接近数据源,诸如例如物联网设备、本地边缘服务器等。与其源处的数据的这种接近可以传递益处,诸如例如增加的响应时间和增加的带宽可用性。
发明内容
根据一个说明性实施例,提供了一种用于边缘设备任务管理的计算机实现的方法。当包括第一多个子任务的第一任务在边缘计算框架中的第一边缘设备集群上运行时,当接收到运行与第二任务相对应的第二多个子任务中的较高优先级子任务的请求时,确定针对边缘计算框架是否存在子任务取消和迁移计划。响应于确定确实存在用于边缘计算框架的子任务取消和迁移计划,基于子任务取消和迁移计划,从指定运行第二多个子任务中的较高优先级子任务的第一边缘设备集群的指定边缘设备中取消第一多个子任务中的较低优先级子任务。基于所述子任务取消和迁移计划,将从所述第一边缘设备集群的所述指定边缘设备取消的所述第一多个子任务中的所述较低优先级子任务迁移到不包括在所述第一边缘设备集群中的另一边缘设备以供运行。将所述第二多个子任务中的较高优先级子任务发送给所述第一边缘设备集群的指定边缘设备以供运行。根据其他说明性实施例,提供了一种用于边缘设备任务管理的计算机系统和计算机程序产品。
附图说明
图1是可以实现说明性实施例的数据处理系统网络的图形表示;
图2是可以实现说明性实施例的数据处理系统的图;
图3是示出了可以实现说明性实施例的云计算环境的图;
图4是示出根据说明性实施例的云计算环境的抽象层的示例的图;
图5是示出根据说明性实施例的任务管理系统的示例的图;
图6是示出根据说明性实施例的具有子任务的第一任务的示例的图;
图7是示出了根据说明性实施例的选择用于第一任务处理的边缘设备集群的示例的示图;
图8是示出了根据说明性实施例的传递子任务结果和任务状态处理的示例的图;
图9是示出了根据说明性实施例的具有子任务的第二任务的示例的图;
图10是示出了根据说明性实施例的边缘设备属性表的示例的图;
图11是示出了根据说明性实施例的子任务分配过程的示例的图;
图12是示出根据说明性实施例的向边缘设备发送子任务的过程的示例的图;
图13是示出根据说明性实施例的挂起计划过程的示例的图;
图14是示出根据说明性实施例的取消和迁移计划过程的示例的图;以及
图15A-15B是示出了根据说明性实施例的用于经由动态任务迁移跨集群的边缘时间共享的过程的流程图。
具体实施方式
本发明可以是任何可能的技术细节集成度的系统、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(一个或多个)。
计算机可读存储介质可为可保留和存储供指令执行装置使用的指令的有形装置。计算机可读存储介质可以是,例如,但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的凹槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如Smalltalk、C++等)和过程程序设计语言(诸如“C”程序设计语言或类似程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的一个或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的一个或多个方框中规定的功能/动作的方面的指令的制造品。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,连续示出的两个方框实际上可以作为一个步骤完成,同时、基本上同时、以部分或完全时间上重叠的方式执行,或者方框有时可以以相反的顺序执行,这取决于所涉及的功能。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
现在参考附图,并且具体参见图1-5,提供了可以实现说明性实施例的数据处理环境的图。应当理解,图1-5仅意味着示例,并且不旨在断言或暗示关于其中可以实现不同实施例的环境的任何限制。可以对所描绘的环境做出许多修改。
图1示出了可以实现说明性实施例的数据处理系统网络的图形表示。网络数据处理系统100是其中可以实施说明性实施例的计算机、数据处理系统和其他设备的网络。网络数据处理系统100包含网络102,网络102是用于提供计算机、数据处理系统和在网络数据处理系统100内连接在一起的其他设备之间的通信链路的介质。网络102可包括连接,诸如例如有线通信链路、无线通信链路、光纤电缆等。
在所描绘的示例中,服务器104和服务器106连同存储装置108和边缘设备110连接到网络102。服务器104和服务器106是与网络102具有高速连接的服务器计算机。此外,服务器104和服务器106是为边缘设备110提供任务管理服务的应用编程接口服务器。例如,服务器104和服务器106可以基于包括任务的子任务的属性使用跨边缘设备集群的动态任务迁移来管理边缘设备110对任务的执行。任务可以是能够由边缘设备110执行的任何类型的任务。边缘设备110表示边缘计算框架中的多个不同类型的边缘设备,并且可包括例如网络计算机、网络设备、智能设备等。而且,应当注意,服务器104和服务器106可各自表示一个或多个云环境中的多个计算节点。
客户端112、客户端114和客户端116也连接到网络102。客户端112、114和116是服务器104和服务器106的客户端。在该示例中,客户端112、114和116被示出为具有到网络102的有线通信链路的台式计算机或个人计算机。然而,应当注意,客户端112、114和116仅是示例,并且可以表示具有到网络102的有线或无线通信链路的其他类型的数据处理系统,诸如例如膝上型计算机、手持式计算机、移动电话、游戏设备等。客户端112、114和116的用户可以使用客户端112、114和116来请求由服务器104和服务器106执行不同类型的任务。
存储装置108是能够以结构化格式或非结构化格式存储任何类型的数据的网络存储设备。此外,存储装置108可以表示包括一组数据储存库的多个网络存储设备。进一步,存储装置108可以存储多个服务器的标识符和网络地址、多个边缘设备的标识符和网络地址、边缘设备集群元数据、任务标识符、任务属性等。此外,存储装置108可以存储其他类型的数据,诸如认证或凭证数据,其可以包括例如与系统管理员和用户相关联的用户名、密码和生物统计数据。
此外,应当注意,网络数据处理系统100可以包括任何数量的附加服务器、边缘设备、客户端、存储设备和未示出的其他设备。位于网络数据处理系统100中的程序代码可以存储在计算机可读存储介质上并且下载到计算机或其他数据处理设备以供使用。例如,程序代码可存储在服务器104上的计算机可读存储介质上,并且通过网络102下载到边缘设备110,以在边缘设备110上使用。
在所描绘的示例中,网络数据处理系统100可以被实现为许多不同类型的通信网络,诸如例如互联网、内联网、广域网、城域网、局域网、电信网络或其任何组合。图1旨在仅作为示例,而不是作为对于不同说明性实施例的架构限制。
如本文所使用的,当参考项目使用时,“多个”是指一个或多个项目。例如,“多个不同类型的通信网络”是一种或多种不同类型的通信网络。类似地,当参考项目使用时,“一组”意味着一个或多个项目。
此外,当与项目列表一起使用时,术语“至少一个”表示可以使用所列出的项目中的一个或多个的不同组合,并且可以仅需要列表中的每个项目中的一个。换言之,“至少一个”意味着可以使用列表中的项目和多个项目的任何组合,但是不需要列表中的所有项目。项目可以是特定对象、事物或类别。
例如,但不限于,“项目A、项目B或项目C中的至少一个”可包括项目A、项目A和项目B、或项目B。该示例还可以包括项目A、项目B、和项目C或者项目B和项目C。当然,可以存在这些项目的任何组合。在一些说明性示例中,“至少一个”可以是,例如但不限于,两个项目A;一个项目B;和十个项目C;四个项目B和七个项目C;或其他合适的组合。
现在参见图2,描绘了根据说明性实施例的数据处理系统的图。数据处理系统200是计算机(诸如图1中的服务器104)的示例,实现说明性实施例的任务管理过程的计算机可读程序代码或指令可以被定位在所述计算机中。在该示例中,数据处理系统200包括通信架构202,其提供处理器单元204、存储器206、永久性存储装置208、通信单元210、输入/输出(I/O)单元212和显示器214之间的通信。
处理器单元204用于执行可以被加载到存储器206中的软件应用程序和程序的指令。处理器单元204可以是一组一个或多个硬件处理器设备或者可以是多核处理器,这取决于特定的实施方式。
存储器206和永久性存储装置208是存储设备216的示例。如本文所使用的,计算机可读存储设备或计算机可读存储介质是能够存储信息的任何硬件,所述信息诸如,例如但不限于:数据、功能形式的计算机可读程序代码、和/或在瞬时基础或持久基础上的其他合适的信息。进一步,计算机可读存储设备或计算机可读存储介质不包括传播介质,诸如瞬态信号。在这些示例中,存储器206可为(例如)随机存取存储器,或任何其他合适的易失性或非易失性存储装置,例如闪存。永久性存储装置208可以采取各种形式,这取决于特定的实施方式。例如,永久性存储装置208可包含一个或多个装置。例如,永久性存储装置208可以是磁盘驱动器、固态驱动器、可重写光盘、可重写磁带或上述的一些组合。由永久性存储装置208使用的介质可以是可移除的。例如,可移动硬盘驱动器可以用于永久性存储装置208。
在此示例中,通信单元210经由网络(例如,图1中的网络102)提供与其他计算机、数据处理系统和装置的通信。通信单元210可通过使用物理和无线通信链路两者提供通信。物理通信链路可以利用例如有线、电缆、通用串行总线、或任何其他物理技术来建立用于数据处理系统200的物理通信链路。无线通信链路可以利用例如短波、高频、超高频、微波、无线保真(Wi-Fi)、技术、全球移动通信系统(GSM)、码分多址(CDMA)、第二代(2G)、第三代(3G)、第四代(4G)、4G长期演进(LTE)、高级LTE、第五代(5G)、或任何其他无线通信技术或标准来建立用于数据处理系统200的无线通信链路。
输入/输出单元212允许与可以连接到数据处理系统200的其他设备进行数据的输入和输出。例如,输入/输出单元212可以通过小键盘、键盘、鼠标、麦克风和/或一些其他合适的输入设备为用户输入提供连接。显示器214提供向用户显示信息的机制,并且可以包括允许用户通过例如用户界面或输入数据进行屏幕上选择的触摸屏能力。
用于操作系统、应用和/或程序的指令可以位于存储设备216中,存储设备216通过通信架构202与处理器单元204通信。在这个说明性的示例中,指令是永久性存储装置208上的功能形式。这些指令可以被加载到存储器206中用于由处理器单元204运行。不同实施例的过程可以由处理器单元204使用计算机实现的指令来执行,所述计算机实现的指令可以位于存储器(诸如存储器206)中。这些程序指令被称为可以由处理器单元204中的处理器读取和运行的程序代码、计算机可用程序代码或计算机可读程序代码。在不同的实施方式中,程序指令可实施在不同的物理计算机可读存储设备上,诸如存储器206或永久性存储装置208。
程序代码218以功能形式位于选择性可移除的计算机可读介质220上,并且可被加载到或转移到数据处理系统200以供处理器单元204运行。程序代码218和计算机可读介质220形成计算机程序产品222。在一个示例中,计算机可读介质220可以是计算机可读存储介质224或计算机可读信号介质226。
在这些示例性示例中,计算机可读存储介质224是用于存储程序代码218的物理或有形存储设备,而不是传播或传输程序代码218的介质。计算机可读存储介质224可以包括,例如,光盘或磁盘,光盘或磁盘被插入或放置到作为永久性存储装置208的一部分的驱动器或其他设备中,用于转移到作为永久性存储装置208的一部分的存储设备(诸如硬盘驱动器)上。计算机可读存储介质224还可以采用永久性存储装置的形式,例如连接到数据处理系统200的硬盘驱动器、拇指驱动器或闪存。
可替代地,可以使用计算机可读信号介质226将程序代码218传输至数据处理系统200。计算机可读信号介质226可以是例如包含程序代码218的传播数据信号。例如,计算机可读信号介质226可以是电磁信号、光信号或任何其他合适类型的信号。这些信号可以通过通信链路传输,例如无线通信链路、光纤电缆、同轴电缆、电线或任何其他合适类型的通信链路。
此外,如本文所使用的,“计算机可读介质220”可以是单数或复数。例如,程序代码218可以以单个存储设备或系统的形式位于计算机可读介质220中。在另一示例中,程序代码218可以位于分布在多个数据处理系统中的计算机可读介质220中。换言之,程序代码218中的一些指令可位于一个数据处理系统中,而程序代码218中的其他指令可位于一个或多个其他数据处理系统中。例如,程序代码218的一部分可以位于服务器计算机中的计算机可读介质220中,而程序代码218的另一部分可以位于位于一组客户端计算机中的计算机可读介质220中。
为数据处理系统200示出的不同组件并不意味着对可以实施不同实施例的方式提供架构限制。在一些说明性示例中,一个或多个组件可以结合在另一个组件中或以其他方式形成另一个组件的一部分。例如,在一些示例性示例中,存储器206或其部分可以结合在处理器单元204中。不同的说明性实施例可以在包括除了或代替为数据处理系统200示出的那些组件的组件的数据处理系统中实现。图2中示出的其他组件可以不同于示出的说明性示例。不同的实施例可以使用能够运行程序代码218的任何硬件设备或系统来实现。
在另一示例中,总线系统可用于实现通信架构202,并且可包括一个或多个总线,诸如系统总线或输入/输出总线。当然,可以使用在附接到总线系统的不同组件或设备之间提供数据传送的任何合适类型的架构来实现总线系统。
应当理解,虽然本公开包括关于云计算的详细描述,但是本文所引用的教导的实现不限于云计算环境。相反,说明性实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。云计算是服务交付的模型,用于使得能够方便地、按需地网络访问可配置计算资源的共享池,所述可配置计算资源诸如例如是网络、网络带宽、服务器、处理、存储器、存储装置、应用、虚拟机和服务,其可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
这些特性可包括例如按需自助服务、广泛网络接入、资源池、快速弹性和测量服务。按需自助服务允许云消费者单方面地按需自动提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者的人类交互。广泛的网络接入提供通过网络可用和通过标准机制访问的能力,该标准机制促进异构瘦客户机平台或厚客户机平台(诸如,例如移动电话、膝上型计算机和个人数字助理)的使用。资源池允许提供者的计算资源被池化以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需要动态地分配和重新分配。存在位置独立性的感觉,因为消费者通常不具有对所提供的资源的确切位置的控制或了解,但可能能够在较高抽象层次上指定位置,例如国家、州或数据中心。快速弹性提供能够被快速和弹性地提供(在一些情况下自动地)以快速缩小和快速释放以快速放大的能力。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。测量的服务允许云系统通过在适合于服务类型的某个抽象级别(诸如例如存储、处理、带宽和活跃用户账户)处利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者提供透明度。
服务模型可包括例如软件即服务(SaaS)、平台即服务(PaaS)和基础设施即服务(IaaS)。软件即服务是提供给消费者使用提供者在云基础设施上运行的应用的能力。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从不同客户端设备访问应用。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。平台即服务是提供给消费者以将消费者创建或获取的使用由提供者支持的编程语言和工具创建的应用部署到云基础结构上的能力。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是对所部署的应用和可能的应用托管环境配置具有控制。基础架构即服务是提供给消费者供应处理、存储、网络和消费者能够部署并运行任意软件的其他基本计算资源的能力,所述任意软件可包括操作系统和应用程序。消费者不管理或控制底层云基础设施,而是具有对操作系统、存储、所部署的应用的控制,以及对所选联网组件(诸如例如主机防火墙)的可能受限的控制。
部署模型可以包括例如私有云、社区云、公共云和混合云。私有云是仅为组织操作的云基础设施。私有云可由组织或第三方管理,并且可存在于场所内或场所外。社区云是由若干组织共享的云基础设施,并且支持共享了诸如任务、安全要求、策略和合规性考虑之类的问题的特定社区。社区云可由组织或第三方管理,并且可存在于场所内或场所外。公共云是公众或大型行业组可用的云基础设施,并且由销售云服务的组织拥有。混合云是由两个或更多个云(诸如例如私有云、社区云和公共云)组成的云基础设施,这些云保持为唯一实体,但通过使数据和应用可移植性的标准化或专有技术(诸如例如云突发以用于云之间的负载平衡)绑定在一起。
云计算环境是面向服务的,集中于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
现在参见图3,描绘了图示可以实现说明性实施例的云计算环境的图。在这个说明性的示例中,云计算环境300包括云消费者使用的本地计算设备可以与其通信的一组一个或多个云计算节点310,本地计算设备诸如例如个人数字助理或智能电话320A、台式计算机320B、膝上型计算机320C和/或汽车计算机系统320N。云计算节点310可以是例如图1中的服务器104和服务器106。本地计算设备320A-320N可以包括例如图1中的边缘设备110和客户端112-116。
云计算节点310可彼此通信并且可被物理地或虚拟地分组成一个或多个网络,诸如上文所述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境300提供基础设施、平台和/或软件作为服务,云消费者无需为其维护本地计算设备(诸如本地计算设备320A-320N)上的资源。应当理解,本地计算设备320A-320N的类型仅旨在是说明性的,并且云计算节点310和云计算环境300可以使用例如网络浏览器通过任何类型的网络和/或网络可寻址连接与任何类型的计算机化设备通信。
现在参见图4,描绘了根据说明性实施例的说明抽象模型层的图。在这个说明性示例中示出的功能抽象层的集合可以由云计算环境(诸如,图3中的云计算环境300)提供。应事先理解,图4中所示的组件、层和功能仅旨在是说明性的,并且本发明的实施例不限于此。如所描述,提供以下层和对应功能。
云计算环境的抽象层400包括硬件和软件层402、虚拟化层404、管理层406和工作负载层408。硬件和软件层402包括云计算环境的硬件和软件组件。硬件组件可包括例如主机410、基于RISC(精简指令集计算机)架构的服务器412、服务器414、刀片服务器416、存储设备418以及网络和联网组件420。在一些说明性实施例中,软件组件可包括例如网络应用服务器软件422和数据库软件424。
虚拟化层404提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器426;虚拟存储428;虚拟网络430,包括虚拟专用网络;虚拟应用和操作系统432;以及虚拟客户端434。
在一个示例中,管理层406可以提供以下描述的功能。资源供应436提供用于在云计算环境内执行任务的计算资源和其他资源的动态采购。计量和定价438在云计算环境内利用资源时提供成本跟踪,并为这些资源的消费开账单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户440为消费者和系统管理员提供对云计算环境的访问。服务水平管理442提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(SLA)规划和履行444提供根据SLA预期未来需求的云计算资源的预安排和采购。
工作负载层408提供可以利用云计算环境的功能的示例。可以由工作负载层408提供的示例工作负载和功能可以包括地图和导航446、软件开发和生命周期管理448、虚拟教室教育交付450、数据分析处理452、事务处理454和边缘设备任务管理456。
在网络边缘处的物联网设备的数量的增加正在产生要在数据中心处计算的大量数据,从而将网络带宽要求推至其极限。尽管改进了网络技术,数据中心不能保证可接受的传输速率和响应时间,这对于许多应用可能是关键的要求。此外,在边缘的物联网设备不断地消费来自云的数据,从而迫使诸如企业、公司、组织、机构、机构等的实体建立内容分发网络,以利用与终端用户的物理接近度来分散数据和服务供应。
边缘计算利用物联网设备(诸如,例如,智能设备(例如,智能电话、智能电视、智能手表、智能眼镜、智能车辆、智能电器、智能传感器等))、移动电话、网络网关和设备等,将计算从数据中心移向网络的边缘,以代表云执行任务并提供服务。通过将任务和服务移动到边缘,可以提供更好的响应时间和带宽可用性。
随着云计算、物联网、商业模式的发展和传播,边缘计算成为下一代提供更大计算能力的新兴技术。在人工智能边缘控制器的辅助下,边缘计算现在已经广泛地应用于许多涉及边缘设备的专用编程和控制的工业中。越来越多的不同类型的任务或工作负载将在这些边缘设备上运行。考虑到成本因素,一些边缘设备昂贵且功能有限,且可在不同任务之间共享。边缘设备时间共享提高了资源利用率,降低了成本。时间共享是在多个任务之间分配计算资源。
各种不同的任务可并发(即,同时)地在包括多个边缘设备的单个边缘计算框架上运行。此外,在这些不同类型的任务之间可以存在协作、交互或冲突(例如,相同边缘设备上的任务抢先)。进一步,每个任务的优先级和资源消耗可以是不同的。边缘计算平台需要确保重要任务被适当地优先化并平滑运行,同时合理地调度资源和提高边缘计算平台的利用率。在给出较高优先级以完成重要任务的同时,在有限的资源条件下,说明性实施例允许边缘设备的合理调度和使用,以确保较低优先级任务继续运行,从而最小化对任务性能的可能影响。换言之,说明性实施例允许边缘设备经由动态任务迁移跨边缘设备集群进行时间共享。
因此,说明性实施例通过基于对应于相应任务的属性(诸如优先级和标记)提供动态任务迁移来增加边缘层能力。此外,说明性实施例通过新颖的动态任务迁移过程来增强整个边缘层的效率。此外,说明性实施例使得边缘设备任务执行的响应时间更快,从而改善用户体验。
因此,说明性实施例提供了克服跨边缘设备集群迁移任务的技术问题的一个或多个技术方案。从而,该一个或多个技术方案通过基于任务属性利用动态任务迁移来提高任务性能和减少响应时间,从而在边缘计算领域提供了技术效果和实际应用。
现在参见图5,描绘了根据一说明性实施例的示出任务管理系统的示例的图。任务管理系统500可以在数据处理系统的网络(诸如图1中的网络数据处理系统100)或云计算环境(诸如图3中的云计算环境300)中实现。任务管理系统500是用于使用基于任务属性的动态任务迁移跨边缘设备集群进行时间共享的硬件和软件组件的系统。
在该示例中,任务管理系统500包括云层502、边缘层504和边缘设备506。云层502可以是例如图3中的云计算环境300。云层502包括数据储存库508、应用编程接口服务器510和边缘控制器512。数据储存库508可以是例如图1中的存储装置108,并且包括例如边缘设备任务管理数据。应用编程接口服务器510可以是例如图1中的服务器104、图2中的数据处理系统200、或者图3中的云计算节点310中的云计算节点。应用编程接口服务器510经由网络从客户端装置接收执行任务的用户请求。应用编程接口服务器510与边缘设备506交互并管理边缘设备506以执行所请求的任务。边缘控制器512负责连接到边缘计算框架中的所有网络网关和边缘设备506。此外,边缘控制器512收集并整理来自边缘设备506的数据,向应用编程接口服务器510发送数据并从应用编程接口服务器510接受指令以跨所有边缘设备506或边缘设备506集群执行。
边缘层504负责本地连接设备。此外,边缘层504管理数据收集以及与应用编程接口服务器510的连接。边缘层504还负责处理中断并且存储和转发数据。边缘层504包括同步服务514、元数据储存库516和边缘代理518。同步服务514负责将数据同步到应用编程接口服务器510。元数据储存库516包含限定包括在边缘设备506中的边缘设备的不同集群的元数据。元数据储存库516可从数据储存库508检索边缘设备集群元数据。边缘代理518使用集群定义器520、任务发送器522和任务结果接收器524与边缘设备506通信。集群定义器520使用元数据储存库516中的信息来定义不同的边缘设备集群。集群定义器520还响应于任务在边缘设备之间的迁移来细化边缘设备的集群。任务发送器522基于相应的任务属性(诸如优先级和标签)分配任务并向相应的边缘设备发送任务。进一步,任务发送器522基于任务取消和迁移计划取消和迁移边缘设备上的任务,或基于任务挂起计划重新调用边缘设备上的任务。任务结果接收器524接收任务状态和在边缘设备506上运行任务的结果。
边缘设备506可以是例如图1中的边缘设备110,并且可包括任何类型和组合的边缘设备。在该示例中,边缘设备506包括边缘设备“A”526、边缘设备“B”528、边缘设备“C”530、边缘设备“D”532和边缘设备“E”534。然而,应注意,边缘设备506可包括任意数量的边缘设备。此外,边缘设备A 526、边缘设备B 528、边缘设备C 530、边缘设备D 532和边缘设备E 534分别包括代理536、代理538、代理540、代理542和代理544。代理536-544提供边缘设备506之间的通信。此外,边缘设备A 526、边缘设备B 528、边缘设备C 530、边缘设备D 532和边缘设备E 534分别包括容器546、容器548、容器550、容器552和容器554。容器546-554运行发送到对应边缘设备506的任务。
现在参见图6,描绘了根据说明性实施例的示出了具有子任务的第一任务的示例的图。具有子任务的第一任务600可以在任务管理系统(诸如,例如,图5中的任务管理系统500)中实现。
在该示例中,具有子任务600的第一任务是由subtask_1_1 604、subtask_1_2 606以及subtask_1_3 608组成的task_1 602。然而,应当注意,task_1 602仅意味着作为示例,而不意味着对说明性实施例的限制。换言之,task_1 602可以包括任意数量的子任务。
task_1 602的任务定义610示出具有对应的下一个子任务标识符的子任务标识符。在本示例中,subtask_1_1具有subtask_1_2的相应的下一子任务,并且subtask_1_2具有subtask_1_3的相应的下一子任务。task_1 602的子任务属性612示出具有对应标签和优先级的子任务标识符。在此示例中,subtask_1_1具有对应的tag_1和priority_3,subtask_1_2具有对应的tag_2、tag_4和priority_2,并且subtask_1_3具有对应的tag_3和priority_3。标签指示对应的子任务将在哪个特定的边缘设备上运行。例如,tag_1可以指示对应的子任务要在边缘设备A上运行,tag_2可以指示对应的子任务要在边缘设备B上运行,tag_3可以指示对应的子任务要在边缘设备C上运行,tag_4可以指示对应的子任务要在边缘设备D上运行,并且tag_5可以指示对应的子任务要在边缘设备E上运行。优先级指示运行特定子任务的相对重要性。例如,较高优先级子任务优先于较低优先级子任务来运行。
现在参见图7,描绘了根据说明性实施例的示出用于第一任务过程的选择边缘设备集群的示例的图。为第一任务处理选择边缘设备集群700可在任务管理系统中实现,例如图5中的任务管理系统500。
在该示例中,边缘代理702(诸如图5中的边缘代理518)利用集群定义器(诸如图5中的集群定义器520)来定义由用于task_1 706的边缘设备704构成的cluster_1。边缘设备704包括边缘设备A、边缘设备B和边缘设备C,诸如,例如图5中的边缘设备A 526、边缘设备B528和边缘设备C 530。task_1706包括subtask_1_1、subtask_1_2和subtask_1_3,诸如,例如,task_1 602包括图6中的subtask_1_1 604、subtask_1_2 606和subtask_1_3 608。边缘代理702利用任务发送器(诸如,例如,图5中的任务发送器522)基于子任务属性(例如,图6中的子任务属性612)中包括的对应标签和来自集群定义器的集群元数据,分别向边缘设备A、边缘设备B和边缘设备C发送subtask_1_1、subtask_1_2和subtask_1_3。
边缘设备属性表708包括边缘设备标识符710、标签712、CPU使用率714、当前子任务716、当前子任务状态718以及当前任务720。边缘设备属性表708示出了在task_1 706被发送到边缘设备704之前的边缘设备704的属性。边缘设备集群表722包括任务标识符724、集群标识符726、子任务标识符728、边缘设备标识符730和协调器代理732。边缘设备集群表722示出了选择边缘设备704(即,边缘设备A、B和C)作为由subtask_1_1、subtask_1_2和subtask_1_3组成的task_1 706的cluster_1。边缘设备集群表722还示出了边缘设备A上的代理(例如,边缘设备A 526上的代理536)被指定为cluster_1的协调器代理。协调器代理基于集群元数据控制cluster_1的边缘设备704之间的网络流量(例如,任务结果和任务状态)。
现在参见图8,描绘了根据说明性实施例的示图,其示出了传递子任务结果和任务状态过程的示例。传递子任务结果和任务状态过程800可以在任务管理系统(诸如,例如,图5中的任务管理系统500)中实现。
在该示例中,传递子任务结果和任务状态过程800利用子任务结果传递表802和任务状态表804。子任务结果传递表802包括边缘设备标识符806、子任务标识符808、任务标识符810、集群标识符812、下一个子任务标识符814、下一个边缘设备标识符816,并且是协调器818。子任务结果传递表802指示边缘设备A上的协调器代理接收每个子任务的结果,并且基于集群元数据将相应子任务的结果发送到下一子任务(即,下一边缘设备上的下一代理)。任务状态表804包括边缘设备标识符820、子任务标识符822、子任务状态824、集群标识符826、任务标识符828和任务状态830。任务状态表804表示在由边缘设备A、B和C构成的cluster_1上运行的task_1的当前状态。此外,任务状态表804指示task_1的每个子任务在相应的边缘设备上的当前状态。例如,subtask_1_1在边缘设备A上完成运行,subtask_1_2在边缘设备B上运行,subtask_1_3在边缘设备C上挂起。
现在参见图9,描绘了根据说明性实施例的示出具有子任务的第二任务的示例的图。具有子任务900的第二任务可以在任务管理系统(诸如,例如,图5中的任务管理系统500)中实现。
在该示例中,具有子任务的第二任务900是由subtask_2_1 904和subtask_2_2906组成的task_2 902。然而,应当注意,task_2 902仅意味着作为示例,而不意味着对说明性实施例的限制。换言之,task_2 902可以包括任意数量的子任务。
task_2 902的任务定义908示出具有对应的下一子任务标识符的子任务标识符。在本示例中,subtask_2_1具有subtask_2_2的相应的下一子任务。task_2902的子任务属性910示出具有对应标签和优先级的子任务标识符。在此示例中,subtask_2_1具有对应的tag_2和priority_1,并且subtask_2_2具有对应的tag_3和priority_3。标签指示对应的子任务将在哪个特定的边缘设备上运行。例如,tag_2指示subtask_2_1将在边缘设备B上运行,且tag_5指示subtask_2_2将在边缘设备E上运行。优先级指示要运行的特定子任务的相对重要性。例如,priority_1指示subtask_2_1是优先于较低优先级子任务运行的高优先级子任务。
现在参见图10,示出了根据说明性实施例的边缘设备属性表的示例的图。边缘设备属性表1000可以在任务管理系统中实现,诸如,例如图5中的任务管理系统500。在该示例中,边缘设备属性表1000包括边缘设备标识符1002、标签1004、CPU使用率1006、当前子任务1008、当前子任务状态1010、以及当前任务1012。边缘设备属性表1000类似于图7中的边缘设备属性表708。然而,边缘设备属性表1000示出了在task_1的子任务1_1、子任务1_2和子任务1_3分别被发送到边缘设备A、B和C之后并且在子任务2_1和2_2被发送到所选择的边缘设备之前的边缘设备A-E的属性。
现在参见图11,描绘了根据说明性实施例的示出子任务分配过程的示例的图。子任务分配过程1100可以在任务管理系统中实现,诸如,例如图5中的任务管理系统500。
在该示例中,边缘代理1102利用集群定义器(例如,图5中的集群定义器520)来定义由用于task_1 1106的边缘设备1104的边缘设备A、D、以及C构成的cluster_1以及由用于task_2 1108的边缘设备1104的边缘设备B和E构成的cluster_2。此外,应当注意,当接收到运行task_2 1108的用户请求时,边缘设备A正在运行task_1 1106的subtask_1_1,subtask_1_2在边缘设备B上挂起,而subtask_1_3在边缘设备C上挂起。由于task_2 1108的subtask_2_1需要基于对应于subtask_2_1的标签和优先级的子任务属性(诸如,例如,图9中的子任务属性910的tag_2和priority_1,)运行在边缘设备1104的边缘设备B上,边缘代理1102的任务发送器(诸如,例如图5中的任务发送器522)基于对应于subtask_1_2的标签和优先级的子任务属性(诸如,例如,图6中的子任务属性612的tag_2、tag_4和priority_2),分配要在边缘设备1104的边缘设备D上运行的task_1 1106的subtask_1_2。进一步,任务发送器基于对应于subtask_2_2的标签和优先级的子任务属性(诸如,例如,图9中的子任务属性910的tag_5和priority_3),分配要在边缘设备1104的边缘设备E上运行的subtask_2_2。
边缘设备集群表1110包括任务标识符1112、集群标识符1114、子任务标识符1116、边缘设备标识符1118以及协调器代理1120。边缘设备集群表1110类似于图7中的边缘设备集群表722,除了边缘设备集群表1110现在包括关于对应于task_2 1108的cluster_2的信息。此外,边缘设备集群表1110指示边缘设备D现在包括在cluster_1中而不是边缘设备B中。边缘设备集群表1110还示出了边缘设备E上的代理(诸如,例如边缘设备E 534上的代理544)被指定为cluster_2的协调器代理。
现在参见图12,描绘了根据说明性实施例的示出向边缘设备发送子任务的过程的示例的图。向边缘设备发送子任务过程1200可以在任务管理系统中实现,诸如,例如图5中的任务管理系统500。
在此示例中,边缘代理1202利用任务发送器(诸如,例如,图5中的任务发送器522)将任务发送到边缘设备1204。在本示例中,任务是由subtask_1_1、subtask_1_2和subtask_1_3组成的task_1 1206以及由subtask_2_1和subtask_2_2组成的task_2 1208。任务发送器利用子任务发送表1210中的信息将相应的子任务发送到边缘设备1204的适当边缘设备。
在该示例中,子任务发送表1210包括边缘设备标识符1212、子任务标识符1214、任务标识符1216、集群标识符1218、下一个子任务标识符1220、下一个边缘设备标识符1222,并且是协调器1224。因为边缘设备1204包括能够运行subtask_1_2的边缘设备D,所以任务发送器将发送要在边缘设备D而不是边缘设备B上运行的subtask_1_2。结果,subtask_1_1将在边缘设备A上运行,subtask_2_1将在边缘设备B上运行,subtask_1_3将在边缘设备C上运行,subtask_1_2将在边缘设备D上运行,并且subtask_2_2将在边缘设备E上运行。
现在参见图13,描绘了根据说明性实施例的示出挂起计划过程的示例的图。挂起计划过程1300可以在任务管理系统中实现,诸如,例如图5中的任务管理系统500。
在该示例中,边缘代理1302利用集群定义器(例如,图5中的集群定义器520)来定义由用于task_1 1306的边缘设备1304的边缘设备A、B和C构成的cluster_1以及由用于task_2 1308的边缘设备1304的边缘设备B和E构成的cluster_2。此外,应当注意,当接收到运行task_2 1308的用户请求时,边缘设备A正在运行task_1 1306的subtask_1_1。由于task_2 1308的subtask_2_1需要基于其tag_2和priority_1属性在边缘设备1304的边缘设备B上运行,并且在该示例中,边缘设备1304不包括能够运行subtask_1_2的边缘设备,当subtask_2_1基于具有较低优先级属性(即,priority_2)完成运行subtask_1_2时,边缘代理1302的任务发送器(诸如,例如,图5中的任务发送器522)为subtask_1_2创建挂起计划(即,挂起计划表1322)以在边缘设备B上运行。
边缘设备集群表1310包括任务标识符1312、集群标识符1314、子任务标识符1316、边缘设备标识符1318以及协调器代理1320。边缘设备集群表1310类似于图11中的边缘设备集群表1110,除了边缘设备集群表1310指示subtask_1_2在边缘设备B上是挂起的,边缘设备B包括在cluster_1和cluster_2两者中。挂起计划表1322包括任务标识符1324、集群标识符1326、子任务标识符1328、边缘设备标识符1330、从属子任务标识符1332以及从属任务标识符1334。
现在参见图14,描绘了根据一说明性实施例的示出取消和迁移计划过程的示例的图。取消和迁移计划过程1400可以在任务管理系统中实现,诸如,例如图5中的任务管理系统500。
在该示例中,边缘代理1402利用集群定义器(例如,图5中的集群定义器520)来定义由用于task_1 1406的边缘设备1404的边缘设备A、D和C构成的集群_1以及由用于task_21408的边缘设备1404的边缘设备B和E构成的集群_2。此外,应当注意,当接收到运行task_21408的用户请求时,边缘设备A正在运行task_1 1406的subtask_1_1。由于task_2 1408的subtask_2_1需要基于其tag_2和priority_1属性在边缘设备1404的边缘设备B上运行,并且边缘设备1304包括边缘设备D,在该示例中,其能够运行subtask_1_2,边缘代理1302的任务发送器(例如,图5中的任务发送器522)为subtask_1_2创建取消和迁移计划(即,取消和迁移计划表1422)以在边缘设备B上取消subtask_1_2,并基于具有较低priority_2属性的subtask_1_2将subtask_1_2迁移到边缘设备D。
边缘设备集群表1410包括任务标识符1412、集群标识符1414、子任务标识符1416、边缘设备标识符1418以及协调器代理1420。边缘设备集群表1410类似于图11中的边缘设备集群表1110。取消和迁移计划表1422包括任务标识符1424、集群标识符1426、子任务标识符1428、取消边缘设备标识符1430和迁移边缘设备标识符1432。
现在参见图15A-15B,示出了根据说明性实施例的用于经由动态任务迁移跨集群进行边缘时间共享的过程的流程图。图15A-15B中所示的过程可以在计算机系统中实现,诸如,例如图1中的网络数据处理系统100、图3中的云计算环境300或图5中的任务管理系统500。
当计算机系统接收包括要运行的第一多个子任务的第一任务时,该过程开始(步骤1502)。响应于接收第一任务,计算机系统从包括在边缘计算框架中的多个边缘设备中选择第一边缘设备集群以基于每个相应子任务的属性来运行第一多个子任务中与第一任务相对应的相应子任务(步骤1504)。然后,计算机系统将第一多个子任务中的每个相应子任务发送到第一边缘设备集群中的对应边缘设备以便运行(步骤1506)。
此后,计算机系统使用包括在第一边缘设备集群的每一个中的代理组件,基于与第一边缘设备集群相对应的集群元数据,将在其对应的边缘设备上运行子任务的结果发送到包括在第一边缘设备集群中的其他边缘设备(步骤1508)。此外,计算机系统将第一任务的状态发送到第一边缘设备集群的指定的协调器代理(步骤1510)。进一步,计算机系统使用第一边缘设备集群的指定的协调器代理,将第一任务的状态与任务结果接收器同步(步骤1512)。
随后,计算机系统在第一任务仍在第一边缘设备集群上运行时接收包括第二多个子任务的第二任务以运行(步骤1514)。响应于接收到第二任务,计算机系统从多个边缘设备中选择第二边缘设备集群以供运行第二多个子任务中对应于第二任务的相应子任务,其包括第一边缘设备集群的指定边缘设备以基于较高优先级子任务的属性运行第二多个子任务中的较高优先级子任务(步骤1516)。
计算机系统确定是否存在子任务取消和迁移计划(步骤1518)。如果计算机系统确定确实存在子任务取消和迁移计划(步骤1518的“是”输出),则计算机系统基于子任务取消和迁移计划,从指定运行第二多个子任务中的较高优先级子任务的第一边缘设备集群的指定边缘设备中取消第一多个子任务中的较低优先级子任务(步骤1520)。然后,计算机系统基于子任务取消和迁移计划将从第一边缘设备集群的指定边缘设备取消的第一多个子任务中的较低优先级子任务迁移到多个边缘设备中的未包括在第一边缘设备集群或第二边缘设备集群中的另一个边缘设备以便运行(步骤1522)。此外,计算机系统将第二多个子任务中的较高优先级子任务发送到第一边缘设备集群的指定边缘设备以供运行(步骤1524)。此后,该过程终止。
再次返回步骤1518,如果计算机系统确定不存在子任务取消和迁移计划,步骤1518没有输出,则计算机系统基于子任务挂起计划,将第一多个子任务中的较低优先级子任务挂起到指定运行第二多个子任务中的较高优先级子任务的第一边缘设备集群的指定边缘设备上(步骤1526)。进一步,计算系统将第二多个子任务中的较高优先级子任务发送到第一边缘设备集群的指定边缘设备以供运行(步骤1528)。随后,当第二多个子任务中的较高优先级子任务在指定边缘设备上完成运行时,计算机系统调用挂起在第一边缘设备集群的指定边缘设备上的第一多个子任务中的较低优先级子任务来运行(步骤1530)。此后,该过程终止。
由此,本发明的说明性实施例提供了一种用于基于子任务的属性使用动态任务迁移跨边缘设备的集群进行时间共享的计算机实现的方法、计算机系统和计算机程序产品。已经出于说明的目的呈现了本发明的各种实施方式的描述,但并不旨在是详尽的或者限于所公开的实施方式。在不脱离所描述的实施例的范围的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。这里使用的术语被选择来最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解这里公开的实施例。

Claims (20)

1.一种用于边缘设备任务管理的计算机实现的方法,所述计算机实现的方法包括:
当包括第一多个子任务的第一任务在边缘计算框架中的第一边缘设备集群上运行时,当接收到运行第二多个子任务中的与第二任务相对应的较高优先级子任务的请求时,确定是否存在用于边缘计算框架的子任务取消和迁移计划;
响应于确定对于所述边缘计算框架确实存在所述子任务取消和迁移计划,基于所述子任务取消和迁移计划,从所述第一边缘设备集群中的被指定运行所述第二多个子任务中的所述较高优先级子任务的指定边缘设备中取消所述第一多个子任务中的较低优先级子任务;
基于所述子任务取消和迁移计划,将从所述第一边缘设备集群的所述指定边缘设备取消的所述第一多个子任务的所述较低优先级子任务迁移到不包括在所述第一边缘设备集群中的另一边缘设备以便运行;以及
将所述第二多个子任务中的较高优先级子任务发送给所述第一边缘设备集群的所述指定边缘设备以供运行。
2.根据权利要求1所述的计算机实现的方法,进一步包括:
响应于确定针对所述边缘计算框架不存在所述子任务取消和迁移计划,基于用于所述边缘计算框架的子任务挂起计划,将所述第一多个子任务的所述较低优先级子任务挂起在被指定为运行所述第二多个子任务的所述较高优先级子任务的所述第一边缘设备集群的所述指定边缘设备上;
将所述第二多个子任务中的较高优先级子任务发送给所述第一边缘设备集群的所述指定边缘设备以供运行;以及
当所述第二多个子任务中的所述较高优先级子任务完成在所述指定边缘设备上运行时,调用挂起在所述第一边缘设备集群的所述指定边缘设备上的所述第一多个子任务中的所述较低优先级子任务来运行。
3.根据权利要求1所述的计算机实现的方法,进一步包括:
接收包括要运行的所述第一多个子任务的所述第一任务;
从包括在所述边缘计算框架中的多个边缘设备中选择所述第一边缘设备集群,以基于每个相应子任务的属性来运行与所述第一任务对应的所述第一多个子任务中的相应子任务;以及
将所述第一多个子任务中的每个相应子任务发送给所述第一边缘设备集群中的对应边缘设备以供运行。
4.根据权利要求1所述的计算机实现的方法,进一步包括:
使用包括在所述第一边缘设备集群的每一个中的代理组件,基于对应于所述第一边缘设备集群的集群元数据,将在其对应的边缘设备上运行子任务的结果发送到包括在所述第一边缘设备集群中的其他边缘设备。
5.根据权利要求1所述的计算机实现的方法,进一步包括:
将所述第一任务的状态发送给所述第一边缘设备集群的指定协调器代理。
6.根据权利要求5所述的计算机实施的方法,进一步包括:
使用所述第一边缘设备集群的所述指定协调器代理与任务结果接收器同步所述第一任务的所述状态。
7.根据权利要求1所述的计算机实现的方法,进一步包括:
接收包括所述第二多个子任务的所述第二任务以在所述第一任务在所述第一边缘设备集群上运行时运行;以及
基于所述较高优先级子任务的属性,从所述边缘计算框架中的多个边缘设备中选择第二边缘设备集群来运行所述第二多个子任务中与所述第二任务相对应的相应子任务,所述第二任务包括所述第一边缘设备集群的所述指定边缘设备来运行所述第二多个子任务中的所述较高优先级子任务,其中运行从所述第一边缘设备集群的所述指定边缘设备迁移的所述第一多个子任务中的所述较低优先级子任务的所述另一边缘设备也不包括在所述第二边缘设备集群中。
8.一种用于边缘设备任务管理的计算机系统,所述计算机系统包括:
总线系统;
一组存储设备,连接至所述总线系统,其中所述一组存储设备存储程序指令;以及
一组处理器,连接至所述总线系统,其中所述一组处理器执行所述程序指令以:
当包括第一多个子任务的第一任务在边缘计算框架中的第一边缘设备集群上运行时,当接收到运行第二多个子任务中的与第二任务相对应的较高优先级子任务的请求时,确定是否存在用于边缘计算框架的子任务取消和迁移计划;
响应于确定对于所述边缘计算框架确实存在所述子任务取消和迁移计划,基于所述子任务取消和迁移计划,从所述第一边缘设备集群中的被指定运行所述第二多个子任务中的所述较高优先级子任务的指定边缘设备中取消所述第一多个子任务中的较低优先级子任务;
基于所述子任务取消和迁移计划,将从所述第一边缘设备集群的所述指定边缘设备取消的所述第一多个子任务的所述较低优先级子任务迁移到不包括在所述第一边缘设备集群中的另一边缘设备以便运行;以及
将所述第二多个子任务中的较高优先级子任务发送给所述第一边缘设备集群的所述指定边缘设备以供运行。
9.根据权利要求8所述的计算机系统,其中所述一组处理器进一步执行所述程序指令以:
响应于确定针对所述边缘计算框架不存在所述子任务取消和迁移计划,基于用于所述边缘计算框架的子任务挂起计划,将所述第一多个子任务的所述较低优先级子任务挂起在被指定为运行所述第二多个子任务的所述较高优先级子任务的所述第一边缘设备集群的所述指定边缘设备上;
将所述第二多个子任务中的较高优先级子任务发送给所述第一边缘设备集群的所述指定边缘设备以供运行;以及
当所述第二多个子任务中的所述较高优先级子任务完成在所述指定边缘设备上运行时,调用挂起在所述第一边缘设备集群的所述指定边缘设备上的所述第一多个子任务中的所述较低优先级子任务来运行。
10.根据权利要求8所述的计算机系统,其中所述一组处理器进一步执行所述程序指令以:
接收包括要运行的所述第一多个子任务的所述第一任务;
从包括在所述边缘计算框架中的多个边缘设备中选择所述第一边缘设备集群,以基于每个相应子任务的属性来运行与所述第一任务对应的所述第一多个子任务中的相应子任务;以及
将所述第一多个子任务中的每个相应子任务发送给所述第一边缘设备集群中的对应边缘设备以供运行。
11.根据权利要求8所述的计算机系统,其中所述一组处理器进一步执行所述程序指令以:
使用包括在所述第一边缘设备集群的每一个中的代理组件,基于对应于所述第一边缘设备集群的集群元数据,将在其对应的边缘设备上运行子任务的结果发送到包括在所述第一边缘设备集群中的其他边缘设备。
12.根据权利要求8所述的计算机系统,其中所述一组处理器进一步执行所述程序指令以:
将所述第一任务的状态发送给所述第一边缘设备集群的指定协调器代理。
13.根据权利要求12所述的计算机系统,其中所述一组处理器进一步执行所述程序指令以:
使用所述第一边缘设备集群的所述指定协调器代理与任务结果接收器同步所述第一任务的所述状态。
14.一种用于边缘设备任务管理的计算机程序产品,所述计算机程序产品包括具有体现在其中的程序指令的计算机可读存储介质,所述程序指令可由计算机系统执行以使所述计算机系统执行包括以下的方法:
当包括第一多个子任务的第一任务在边缘计算框架中的第一边缘设备集群上运行时,当接收到运行第二多个子任务中的与第二任务相对应的较高优先级子任务的请求时,确定是否存在用于边缘计算框架的子任务取消和迁移计划;
响应于确定对于所述边缘计算框架确实存在所述子任务取消和迁移计划,基于所述子任务取消和迁移计划,从所述第一边缘设备集群中的被指定运行所述第二多个子任务中的所述较高优先级子任务的指定边缘设备中取消所述第一多个子任务中的较低优先级子任务;
基于所述子任务取消和迁移计划,将从所述第一边缘设备集群的所述指定边缘设备取消的所述第一多个子任务的所述较低优先级子任务迁移到不包括在所述第一边缘设备集群中的另一边缘设备以便运行;以及
将所述第二多个子任务中的较高优先级子任务发送给所述第一边缘设备集群的所述指定边缘设备以供运行。
15.根据权利要求14所述的计算机程序产品,进一步包括:
响应于确定针对所述边缘计算框架不存在所述子任务取消和迁移计划,基于用于所述边缘计算框架的子任务挂起计划,将所述第一多个子任务的所述较低优先级子任务挂起在被指定为运行所述第二多个子任务的所述较高优先级子任务的所述第一边缘设备集群的所述指定边缘设备上;
将所述第二多个子任务中的较高优先级子任务发送给所述第一边缘设备集群的所述指定边缘设备以供运行;以及
当所述第二多个子任务中的所述较高优先级子任务完成在所述指定边缘设备上运行时,调用挂起在所述第一边缘设备集群的所述指定边缘设备上的所述第一多个子任务中的所述较低优先级子任务来运行。
16.根据权利要求14所述的计算机程序产品,进一步包括:
接收包括要运行的所述第一多个子任务的所述第一任务;
从包括在所述边缘计算框架中的多个边缘设备中选择所述第一边缘设备集群,以基于每个相应子任务的属性来运行与所述第一任务对应的所述第一多个子任务中的相应子任务;以及
将所述第一多个子任务中的每个相应子任务发送给所述第一边缘设备集群中的对应边缘设备以供运行。
17.根据权利要求14所述的计算机程序产品,进一步包括:
使用包括在所述第一边缘设备集群的每一个中的代理组件,基于对应于所述第一边缘设备集群的集群元数据,将在其对应的边缘设备上运行子任务的结果发送到包括在所述第一边缘设备集群中的其他边缘设备。
18.根据权利要求14所述的计算机程序产品,进一步包括:
将所述第一任务的状态发送给所述第一边缘设备集群的指定协调器代理。
19.根据权利要求18所述的计算机程序产品,进一步包括:
使用所述第一边缘设备集群的所述指定协调器代理与任务结果接收器同步所述第一任务的所述状态。
20.根据权利要求14所述的计算机程序产品,进一步包括:
接收包括所述第二多个子任务的所述第二任务以在所述第一任务在所述第一边缘设备集群上运行时运行;以及
基于所述较高优先级子任务的属性,从所述边缘计算框架中的多个边缘设备中选择第二边缘设备集群来运行所述第二多个子任务中与所述第二任务相对应的相应子任务,所述第二任务包括所述第一边缘设备集群的所述指定边缘设备来运行所述第二多个子任务中的所述较高优先级子任务,其中运行从所述第一边缘设备集群的所述指定边缘设备迁移的所述第一多个子任务中的所述较低优先级子任务的所述另一边缘设备也不包括在所述第二边缘设备集群中。
CN202280008096.9A 2021-01-07 2022-01-05 通过动态任务迁移跨集群进行边缘时间共享 Pending CN116601607A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/143,383 US11853810B2 (en) 2021-01-07 2021-01-07 Edge time sharing across clusters via dynamic task migration based on task priority and subtask result sharing
US17/143,383 2021-01-07
PCT/CN2022/070312 WO2022148376A1 (en) 2021-01-07 2022-01-05 Edge time sharing across clusters via dynamic task migration

Publications (1)

Publication Number Publication Date
CN116601607A true CN116601607A (zh) 2023-08-15

Family

ID=82218627

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280008096.9A Pending CN116601607A (zh) 2021-01-07 2022-01-05 通过动态任务迁移跨集群进行边缘时间共享

Country Status (6)

Country Link
US (1) US11853810B2 (zh)
JP (1) JP2024502329A (zh)
CN (1) CN116601607A (zh)
DE (1) DE112022000347T5 (zh)
GB (1) GB2617978A (zh)
WO (1) WO2022148376A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116954930B (zh) * 2023-09-20 2023-11-28 成都拓林思软件有限公司 一种基于边缘计算的操作系统数据处理方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8381212B2 (en) * 2007-10-09 2013-02-19 International Business Machines Corporation Dynamic allocation and partitioning of compute nodes in hierarchical job scheduling
US9405348B2 (en) * 2008-04-21 2016-08-02 Adaptive Computing Enterprises, Inc System and method for managing energy consumption in a compute environment
US10558581B1 (en) * 2013-02-19 2020-02-11 Amazon Technologies, Inc. Systems and techniques for data recovery in a keymapless data storage system
US9247072B2 (en) * 2013-04-30 2016-01-26 Metaswitch Networks Ltd Processing communication status information
IN2013MU02180A (zh) 2013-06-27 2015-06-12 Tata Consultancy Services Ltd
US9513962B2 (en) * 2013-12-03 2016-12-06 International Business Machines Corporation Migrating a running, preempted workload in a grid computing system
US10834226B2 (en) * 2016-07-15 2020-11-10 International Business Machines Corporation Live migration of containers based on geo-location
US10235207B2 (en) * 2016-09-30 2019-03-19 Nimbix, Inc. Method and system for preemptible coprocessing
US10440096B2 (en) 2016-12-28 2019-10-08 Intel IP Corporation Application computation offloading for mobile edge computing
CN107819840B (zh) 2017-10-31 2020-05-26 北京邮电大学 超密集网络架构中分布式移动边缘计算卸载方法
CN108337691A (zh) 2018-01-19 2018-07-27 南京邮电大学 一种移动边缘面向用户移动的服务迁移方法及系统
CN108509276B (zh) 2018-03-30 2021-11-30 南京工业大学 一种边缘计算环境中的视频任务动态迁移方法
EP3657329A1 (en) 2018-11-22 2020-05-27 Siemens Aktiengesellschaft System, devices and method for execution of tasks in an internet-of-things (iot) environment
CN109862592B (zh) 2018-12-06 2020-11-10 北京邮电大学 一种基于多基站协作的移动边缘计算环境下资源管理和调度方法
KR20200084707A (ko) 2019-01-03 2020-07-13 삼성전자주식회사 태스크 분산 처리를 관리하는 마스터 장치, 태스크를 처리하는 태스크 처리 장치, 및 그 동작 방법
WO2020220216A1 (en) * 2019-04-29 2020-11-05 Splunk Inc. Search time estimate in data intake and query system
CN110109745B (zh) 2019-05-15 2023-06-20 华南理工大学 一种针对边缘计算环境的任务协同在线调度方法
CN110928691B (zh) 2019-12-26 2021-07-09 广东工业大学 一种面向交通数据的端边协同计算卸载方法
CN111427681B (zh) 2020-02-19 2023-02-17 上海交通大学 边缘计算中基于资源监控的实时任务匹配调度系统和方法
CN111600648B (zh) 2020-05-25 2022-02-22 中国矿业大学 一种移动边缘计算系统的移动中继位置控制方法

Also Published As

Publication number Publication date
GB2617978A (en) 2023-10-25
WO2022148376A1 (en) 2022-07-14
DE112022000347T5 (de) 2023-10-26
US11853810B2 (en) 2023-12-26
US20220214929A1 (en) 2022-07-07
JP2024502329A (ja) 2024-01-18
GB202311130D0 (en) 2023-09-06

Similar Documents

Publication Publication Date Title
US8756599B2 (en) Task prioritization management in a virtualized environment
Javadpour Improving resources management in network virtualization by utilizing a software-based network
US9733971B2 (en) Placement of virtual machines on preferred physical hosts
US10620928B2 (en) Global cloud applications management
US11245748B1 (en) Proxied nodes in a container orchestration environment for scalable resource allocation
CN116508003A (zh) 通过评估微服务对容器的自动化编排
US20230009930A1 (en) Continuous Liveness and Integrity of Applications During Migration
US11005951B2 (en) Gateway device allowing multiple infrastructural services to access multiple IoT devices
CN115280325A (zh) 联邦学习中的参数共享
CN116648692A (zh) 迁移复杂的传统应用
CN116414518A (zh) Kubernetes上的大数据的数据局部性
US10082933B2 (en) Context sensitive active fields in user interface
JP2023545985A (ja) エッジ・コンピューティング環境におけるタスク・フローの管理
WO2022148376A1 (en) Edge time sharing across clusters via dynamic task migration
US10613887B2 (en) Ordering optimization of host machines in a computing environment based on policies
CN112152988B (zh) 用于异步nbmp请求处理的方法、系统以及计算机设备和介质
CN117859309A (zh) 自动选择在其上执行任务的节点
CN116249967A (zh) 用于功能执行的计算资源的标记驱动调度
US10417055B2 (en) Runtime movement of microprocess components
Sobers Smiles David et al. Introduction to cloud resource management
US11953972B2 (en) Selective privileged container augmentation
US11593004B1 (en) Optimized addition and removal of compute resources in a distributed storage platform by implementing mapping changes in a shared storage subsystem
US11977922B2 (en) Resource reuse for pipeline workloads
CN114868362B (zh) 访问实时上行链路流式传输框架(flus)信宿能力的方法和装置
US11762708B2 (en) Decentralized resource scheduling

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