Edge time sharing across clusters through dynamic task migration

By managing tasks within the edge computing framework through a dynamic task migration mechanism, low-priority tasks can be canceled and migrated to other devices, thus solving the problems of task resource allocation and response time in edge computing and improving resource utilization and response speed.

CN116601607BActive Publication Date: 2026-07-31INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
INTERNATIONAL BUSINESS MACHINE CORPORATION
Filing Date
2022-01-05
Publication Date
2026-07-31

AI Technical Summary

Technical Problem

In edge computing frameworks, how to effectively manage and optimize resource allocation and response time among multiple tasks, especially under conditions of different priorities and limited resources, to ensure the rapid execution of high-priority tasks while minimizing the performance impact on low-priority tasks.

Method used

Through a dynamic task migration mechanism, low-priority tasks are canceled and migrated from a designated edge device cluster to other edge devices to run high-priority tasks, ensuring that high-priority tasks are processed first in the edge device cluster.

Benefits of technology

It improves the resource utilization of the edge computing platform, reduces response time, enhances user experience, and enables reasonable scheduling and priority handling of different tasks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116601607B_ABST
    Figure CN116601607B_ABST
Patent Text Reader

Abstract

This disclosure provides edge device task management. When a first task, comprising a first plurality of subtasks, is running on a first edge device cluster, upon receiving a request to run a higher-priority subtask among a second plurality of subtasks corresponding to a second task, it is determined whether a subtask cancellation and migration plan exists. In response to determining that a subtask cancellation and migration plan does exist, based on the subtask cancellation and migration plan, a lower-priority subtask among the first plurality of subtasks is cancelled from a designated edge device in the first edge device cluster. Based on the subtask cancellation and migration plan, the lower-priority subtask is migrated to another edge device for execution. The higher-priority subtask among the second plurality of subtasks is sent to a designated edge device in the first edge device cluster for execution.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure generally relates to edge computing, and more specifically to time sharing across edge device clusters using dynamic task migration based on task attributes. Background Technology

[0002] Edge computing is a distributed computing framework that brings applications closer to data sources, such as IoT devices and local edge servers. This proximity to the data at its source can deliver benefits such as increased response time and increased bandwidth availability. Summary of the Invention

[0003] According to one illustrative embodiment, a computer-implemented method for edge device task management is provided. When a first task, comprising a first plurality of subtasks, is running on a first edge device cluster in an edge computing framework, upon receiving a request to run a higher-priority subtask among a second plurality of subtasks corresponding to a second task, it is determined whether a subtask cancellation and migration plan exists for the edge computing framework. In response to determining that a subtask cancellation and migration plan does exist for the edge computing framework, based on the subtask cancellation and migration plan, a lower-priority subtask among the first plurality of subtasks is cancelled from a designated edge device of the first edge device cluster designated to run the higher-priority subtask among the second plurality of subtasks. Based on the subtask cancellation and migration plan, the lower-priority subtask among the first plurality of subtasks cancelled from the designated edge device of the first edge device cluster is migrated to another edge device not included in the first edge device cluster for execution. The higher-priority subtask among the second plurality of subtasks is sent to a designated edge device of the first edge device cluster for execution. According to other illustrative embodiments, a computer system and computer program product for edge device task management are provided. Attached Figure Description

[0004] Figure 1 It is a graphical representation of a data processing system network that can implement the illustrative embodiments;

[0005] Figure 2 This is a diagram of a data processing system that can implement the illustrative embodiments;

[0006] Figure 3 This is a diagram illustrating a cloud computing environment in which illustrative embodiments can be implemented;

[0007] Figure 4 This is a diagram illustrating an example of an abstraction layer of a cloud computing environment according to an illustrative embodiment;

[0008] Figure 5 This is a diagram illustrating an example of a task management system according to an illustrative embodiment;

[0009] Figure 6 This is a diagram illustrating an example of a first task having subtasks according to an illustrative embodiment;

[0010] Figure 7 This is a diagram illustrating an example of selecting an edge device cluster for a first task processing according to an illustrative embodiment;

[0011] Figure 8 This is a diagram illustrating an example of the processing of passing subtask results and task status according to an illustrative embodiment;

[0012] Figure 9 This is a diagram illustrating an example of a second task having subtasks according to an illustrative embodiment;

[0013] Figure 10 This is a diagram illustrating an example of an edge device attribute table according to an illustrative embodiment;

[0014] Figure 11 This is a diagram illustrating an example of a subtask allocation process according to an illustrative embodiment;

[0015] Figure 12 This is a diagram illustrating an example of a process for sending subtasks to an edge device according to an illustrative embodiment;

[0016] Figure 13 This is a diagram illustrating an example of a suspension planning process according to an illustrative embodiment;

[0017] Figure 14 This is a diagram illustrating an example of a cancellation and migration plan process according to an illustrative embodiment; and

[0018] Figures 15A-15B This is a flowchart illustrating a process for migrating edge time sharing across a cluster via dynamic task migration, according to an illustrative embodiment. Detailed Implementation

[0019] This invention can be a system, method, and / or computer program product with any possible level of technical detail integration. The computer program product may include one or more computer-readable storage media having computer-readable program instructions thereon for causing a processor to execute aspects of the invention.

[0020] Computer-readable storage media can be tangible means for retaining and storing instructions for use by an instruction execution device. Computer-readable storage media can be, for example, but not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital universal disk (DVD), memory sticks, floppy disks, mechanical encoding devices such as punch cards or protrusions in grooves having instructions recorded thereon, and any suitable combination of the foregoing. As used herein, computer-readable storage media should not be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses passing through fiber optic cables), or electrical signals transmitted through wires.

[0021] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a suitable computing / processing device via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network), or to an external computer or external storage device. The network may include copper cables, optical fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to a computer-readable storage medium within the suitable computing / processing device.

[0022] Computer-readable program instructions used to perform the operations of this invention may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, integrated circuit configuration data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​(such as Smalltalk, C++, etc.) and procedural programming languages ​​(such as the "C" programming language or similar programming languages). The computer-readable program instructions may be executed entirely on a user's computer, partially on a user's computer, as a standalone software package, partially on a user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network (including a local area network (LAN) or a wide area network (WAN)) or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs) may execute computer-readable program instructions by utilizing state information from the computer-readable program instructions to personalize the electronic circuitry in order to perform aspects of this invention.

[0023] The present invention will now be described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.

[0024] These computer-readable program instructions may be provided to a processor of a computer or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / actions specified in one or more blocks of a flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner, such that the computer-readable storage medium storing the instructions includes an article of manufacture containing instructions that implement aspects of the functions / actions specified in one or more blocks of a flowchart and / or block diagram.

[0025] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device to produce computer-implemented processing, such that the instructions that execute on the computer, other programmable apparatus, or other device perform the functions / actions specified in one or more blocks of a flowchart and / or block diagram.

[0026] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. Each block in a flowchart or block diagram may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions marked in the blocks may occur in a different order than those marked in the figures. For example, two blocks shown consecutively may actually be completed as a single step, executed simultaneously, substantially simultaneously, or with partial or complete temporal overlap, or the blocks may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented using a dedicated hardware-based system that performs the specified function or action or executes a combination of dedicated hardware and computer instructions.

[0027] Now refer to the attached diagram, and see in detail... Figure 1-5 A diagram is provided illustrating a data processing environment in which illustrative embodiments can be implemented. It should be understood that... Figure 1-5 This is merely an example and is not intended to assert or imply any limitation regarding the environment in which different embodiments may be implemented. Many modifications can be made to the depicted environment.

[0028] Figure 1 A graphical representation of a data processing system network in which illustrative embodiments can be implemented is shown. Network data processing system 100 is a network of computers, data processing systems, and other devices in which illustrative embodiments can be implemented. Network data processing system 100 includes network 102, which is a medium for providing communication links between computers, data processing systems, and other devices connected together within network data processing system 100. Network 102 may include connections such as, for example, wired communication links, wireless communication links, fiber optic cables, etc.

[0029] In the depicted example, servers 104 and 106, along with storage device 108 and edge device 110, are connected to network 102. Servers 104 and 106 are server computers with high-speed connections to network 102. Furthermore, servers 104 and 106 are application programming interface servers that provide task management services to edge device 110. For example, servers 104 and 106 can manage the execution of tasks by edge device 110 using dynamic task migration across the edge device cluster based on attributes including subtasks of the task. The task can be any type of task that can be executed by edge device 110. Edge device 110 represents multiple different types of edge devices in an edge computing framework and may include, for example, network computers, network devices, smart devices, etc. Moreover, it should be noted that servers 104 and 106 may each represent multiple computing nodes in one or more cloud environments.

[0030] Clients 112, 114, and 116 are also connected to network 102. Clients 112, 114, and 116 are clients of servers 104 and 106. In this example, clients 112, 114, and 116 are shown as desktop computers or personal computers with a wired communication link to network 102. However, it should be noted that clients 112, 114, and 116 are merely examples and could represent other types of data processing systems with wired or wireless communication links to network 102, such as, for example, laptop computers, handheld computers, mobile phones, gaming devices, etc. Users of clients 112, 114, and 116 can use clients 112, 114, and 116 to request different types of tasks to be performed by servers 104 and 106.

[0031] Storage device 108 is a network storage device capable of storing any type of data in structured or unstructured formats. Furthermore, storage device 108 can represent multiple network storage devices comprising a set of data repositories. Further, storage device 108 can store identifiers and network addresses of multiple servers, identifiers and network addresses of multiple edge devices, edge device cluster metadata, task identifiers, task attributes, etc. Additionally, storage device 108 can store other types of data, such as authentication or credential data, which may include, for example, usernames, passwords, and biometric data associated with system administrators and users.

[0032] Furthermore, it should be noted that the network data processing system 100 may include any number of additional servers, edge devices, clients, storage devices, and other devices not shown. Program code located in the network data processing system 100 may be stored on a computer-readable storage medium and downloaded to a computer or other data processing device for use. For example, program code may be stored on a computer-readable storage medium on server 104 and downloaded via network 102 to edge device 110 for use on edge device 110.

[0033] In the illustrated example, the network data processing system 100 can be implemented as many different types of communication networks, such as, for example, the Internet, intranet, wide area network, metropolitan area network, local area network, telecommunications network, or any combination thereof. Figure 1 This is intended only as an example and not as an architectural limitation for different illustrative embodiments.

[0034] As used herein, when referring to a project, "multiple" means one or more projects. For example, "multiple different types of communication networks" refers to one or more different types of communication networks. Similarly, when referring to a project, "a group" means one or more projects.

[0035] Furthermore, when used with a list of items, the term "at least one" means that different combinations of one or more of the listed items can be used, and only one item from each of the listed items may be required. In other words, "at least one" means that any combination of items and multiple items from the list can be used, but not all items from the list. Items can be specific objects, things, or categories.

[0036] For example, but not limited to, "at least one of project A, project B, or project C" can include project A, project A and project B, or project B. The example could also include project A, project B, and project C, or project B and project C. Of course, any combination of these projects can exist. In some illustrative examples, "at least one" can be, for example, but not limited to, two projects A; one project B; and ten projects C; four projects B and seven projects C; or other suitable combinations.

[0037] See now Figure 2 A diagram depicts a data processing system according to an illustrative embodiment. The data processing system 200 is a computer (such as...) Figure 1In the example of server 104, computer-readable program code or instructions implementing the task management process of the illustrative embodiment can be located in the computer. In this example, data processing system 200 includes a communication architecture 202 that provides communication between processor unit 204, memory 206, persistent storage device 208, communication unit 210, input / output (I / O) unit 212, and display 214.

[0038] Processor unit 204 is used to execute instructions for software applications and programs that can be loaded into memory 206. Processor unit 204 may be one or more hardware processor devices or may be a multi-core processor, depending on the specific implementation.

[0039] Memory 206 and persistent storage device 208 are examples of storage device 216. As used herein, a computer-readable storage device or computer-readable storage medium is any hardware capable of storing information such as, for example, but not limited to, data, computer-readable program code in functional form, and / or other suitable information on a transient or persistent basis. Furthermore, a computer-readable storage device or computer-readable storage medium does not include propagation media such as transient signals. In these examples, memory 206 may be, for example, random access memory, or any other suitable volatile or non-volatile storage device, such as flash memory. Persistent storage device 208 can take various forms depending on the specific implementation. For example, persistent storage device 208 may comprise one or more means. For example, persistent storage device 208 may be a disk drive, a solid-state drive, a rewritable optical disk, a rewritable magnetic tape, or some combination thereof. The medium used by persistent storage device 208 may be removable. For example, a removable hard disk drive may be used for persistent storage device 208.

[0040] In this example, communication unit 210 is connected via a network (e.g., Figure 1 Network 102) provides communication with other computers, data processing systems, and devices. Communication unit 210 can provide communication using both physical and wireless communication links. The physical communication link can utilize, for example, wired, cable, universal serial bus, or any other physical technology to establish a physical communication link for data processing system 200. The wireless communication link can utilize, for example, shortwave, high frequency, ultra-high frequency, microwave, Wi-Fi, etc. The technology, Global System for Mobile Communications (GSM), Code Division Multiple Access (CDMA), second generation (2G), third generation (3G), fourth generation (4G), 4G Long Term Evolution (LTE), LTE Advanced, fifth generation (5G), or any other wireless communication technology or standard, is used to establish a wireless communication link for the data processing system 200.

[0041] Input / output unit 212 allows data input and output to other devices that can be connected to data processing system 200. For example, input / output unit 212 can provide connectivity for user input via keypad, keyboard, mouse, microphone, and / or some other suitable input device. Display 214 provides a mechanism for displaying information to the user and may include touchscreen capability that allows the user to make on-screen selections, for example, through a user interface or input data.

[0042] Instructions for operating systems, applications, and / or programs may reside in storage device 216, which communicates with processor unit 204 via communication architecture 202. In this illustrative example, the instructions are functional forms on persistent storage device 208. These instructions may be loaded into memory 206 for execution by processor unit 204. Processes in different embodiments may be executed by processor unit 204 using computer-implemented instructions, which may reside in memory (such as memory 206). These program instructions are referred to as program code that can be read and executed by a processor in processor unit 204, computer-usable program code, or computer-readable program code. In different implementations, program instructions may be implemented on different physical computer-readable storage devices, such as memory 206 or persistent storage device 208.

[0043] Program code 218 is functionally located on a selectively removable computer-readable medium 220 and can be loaded into or transferred to a data processing system 200 for execution by a processor unit 204. Program code 218 and computer-readable medium 220 form a computer program product 222. In one example, computer-readable medium 220 may be a computer-readable storage medium 224 or a computer-readable signal medium 226.

[0044] In these exemplary examples, computer-readable storage medium 224 is a physical or tangible storage device for storing program code 218, rather than a medium for disseminating or transmitting program code 218. Computer-readable storage medium 224 may include, for example, an optical disc or disk, which is inserted into or placed into a drive or other device that is part of permanent storage device 208 for transfer to a storage device (such as a hard disk drive) that is part of permanent storage device 208. Computer-readable storage medium 224 may also take the form of a permanent storage device, such as a hard disk drive, thumb drive, or flash memory connected to data processing system 200.

[0045] Alternatively, program code 218 can be transmitted to data processing system 200 using computer-readable signal medium 226. Computer-readable signal medium 226 can be, for example, a propagated data signal containing program code 218. For example, computer-readable signal medium 226 can be an electromagnetic signal, an optical signal, or any other suitable type of signal. These signals can be transmitted via a communication link, such as a wireless communication link, fiber optic cable, coaxial cable, wire, or any other suitable type of communication link.

[0046] Furthermore, as used herein, "computer-readable medium 220" can be singular or plural. For example, program code 218 may be located in computer-readable medium 220 as a single storage device or system. In another example, program code 218 may be located in computer-readable medium 220 distributed across multiple data processing systems. In other words, some instructions in program code 218 may be located in one data processing system, while other instructions in program code 218 may be located in one or more other data processing systems. For example, a portion of program code 218 may be located in computer-readable medium 220 in a server computer, while another portion of program code 218 may be located in computer-readable medium 220 located in a group of client computers.

[0047] The different components shown for data processing system 200 do not imply an architectural limitation on how different embodiments can be implemented. In some illustrative examples, one or more components may be incorporated into or otherwise formed part of another component. For example, in some exemplary examples, memory 206 or a portion thereof may be incorporated into processor unit 204. Different illustrative embodiments may be implemented in data processing systems that include components other than or in lieu of those shown for data processing system 200. Figure 2 Other components shown may differ from the illustrative example shown. Different embodiments can be implemented using any hardware device or system capable of running program code 218.

[0048] In another example, a bus system can be used to implement communication architecture 202 and may include one or more buses, such as a system bus or an input / output bus. Of course, any suitable type of architecture that provides data transfer between different components or devices attached to the bus system can be used to implement the bus system.

[0049] It should be understood that while this disclosure includes a detailed description of cloud computing, implementations of the teachings cited herein are not limited to cloud computing environments. Rather, illustrative embodiments can be implemented in conjunction with any other type of computing environment now known or developed hereafter. Cloud computing is a service delivery model designed to enable convenient, on-demand network access to a shared pool of configurable computing resources, such as networks, network bandwidth, servers, processing, memory, storage devices, applications, virtual machines, and services, which can be rapidly provisioned and released with minimal management effort or interaction with service providers. This cloud model may include at least five features, at least three service models, and at least four deployment models.

[0050] These features can include, for example, on-demand self-service, broad network access, resource pooling, rapid elasticity, and measurement services. On-demand self-service allows cloud consumers to unilaterally and automatically provision computing power, such as server time and network storage, on demand, without requiring human interaction with the service provider. Broad network access provides the ability to be available through the network and accessed via standard mechanisms that facilitate the use of heterogeneous thin client or thick client platforms, such as mobile phones, laptops, and personal digital assistants. Resource pooling allows a provider's computing resources to be pooled to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically allocated and reallocated as needed. There is a sense of location independence because consumers typically do not have control or knowledge of the exact location of the resources provided, but may be able to specify the location at a higher level of abstraction, such as country, state, or data center. Rapid elasticity provides the ability to be rapidly and elastically provisioned (in some cases automatically) to scale down quickly and expand rapidly. For consumers, the available provisioning capacity often appears unrestricted and can be purchased in any quantity at any time. Measuring services allow cloud systems to automatically control and optimize resource usage by leveraging metering capabilities at a level of abstraction appropriate to the service type, such as storage, processing, bandwidth, and active user accounts. Resource usage can be monitored, controlled, and reported, providing transparency to both service providers and consumers.

[0051] Service models can include, for example, Software as a Service (SaaS), Platform as a Service (PaaS), and Infrastructure as a Service (IaaS). SaaS provides consumers with the ability to use applications running on a provider's cloud infrastructure. Applications can be accessed from different client devices via thin client interfaces such as web browsers (e.g., web-based email). Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, storage, or even individual application capabilities, with possible exceptions of limited user-specific application configuration settings. Platform as a Service provides consumers with the ability to deploy consumer-created or acquired applications built using programming languages ​​and tools supported by the provider onto cloud infrastructure. Consumers do not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but have control over the deployed applications and, possibly, the application hosting environment configuration. Infrastructure as a Service provides consumers with the ability to provision processing, storage, networking, and other basic computing resources that enable consumers to deploy and run arbitrary software, including operating systems and applications. Consumers do not manage or control the underlying cloud infrastructure, but have control over the operating system, storage, deployed applications, and potentially limited control over selected networking components (such as host firewalls).

[0052] Deployment models can include, for example, private clouds, community clouds, public clouds, and hybrid clouds. A private cloud is cloud infrastructure operated solely by an organization. Private clouds can be managed by the organization or a third party and can exist on-site or off-site. A community cloud is cloud infrastructure shared by several organizations and supports a specific community that shares issues such as missions, security requirements, policies, and compliance considerations. Community clouds can be managed by the organization or a third party and can exist on-site or off-site. A public cloud is cloud infrastructure available to the public or a large industry group and is owned by an organization that sells cloud services. A hybrid cloud is a cloud infrastructure consisting of two or more clouds (such as, for example, private clouds, community clouds, and public clouds) that remain a single entity but are bound together by standardization or proprietary technologies that enable data and application portability (such as, for example, cloud bursting for load balancing between clouds).

[0053] Cloud computing environments are service-oriented, focusing on statelessness, loose coupling, modularity, and semantic interoperability. At the heart of cloud computing is the infrastructure comprising a network of interconnected nodes.

[0054] See now Figure 3The illustration depicts a cloud computing environment that can implement an illustrative embodiment. In this illustrative example, the cloud computing environment 300 includes a group of one or more cloud computing nodes 310 to which local computing devices used by cloud consumers can communicate, such as, for example, personal digital assistants or smartphones 320A, desktop computers 320B, laptop computers 320C, and / or automotive computer systems 320N. Figure 1 Servers 104 and 106 are included. Local computing devices 320A-320N may include, for example... Figure 1 Edge devices 110 and clients 112-116 in the middle.

[0055] Cloud computing nodes 310 can communicate with each other and can be physically or virtually grouped into one or more networks, such as private clouds, community clouds, public clouds, or hybrid clouds or combinations thereof as described above. This allows cloud computing environment 300 to provide infrastructure, platform, and / or software as a service without requiring cloud consumers to maintain resources on local computing devices (such as local computing devices 320A-320N). It should be understood that the types of local computing devices 320A-320N are intended to be illustrative only, and cloud computing nodes 310 and cloud computing environment 300 can communicate with any type of computerized device via any type of network and / or network-addressable connection, for example, using a web browser.

[0056] See now Figure 4 This illustrates a diagram of an illustrative abstract model layer according to an illustrative embodiment. The set of functional abstract layers shown in this illustrative example can be derived from a cloud computing environment (such as...). Figure 3 The cloud computing environment (300) provided in the system. It should be understood beforehand that... Figure 4 The components, layers, and functions shown are intended to be illustrative only, and embodiments of the invention are not limited thereto. As described, the following layers and corresponding functions are provided.

[0057] The abstraction layer 400 of the cloud computing environment includes a hardware and software layer 402, a virtualization layer 404, a management layer 406, and a workload layer 408. The hardware and software layer 402 includes the hardware and software components of the cloud computing environment. Hardware components may include, for example, a host 410, servers 412 and 414 based on a RISC (Reduced Instruction Set Computer) architecture, blade servers 416, storage devices 418, and network and networking components 420. In some illustrative embodiments, software components may include, for example, web application server software 422 and database software 424.

[0058] The virtualization layer 404 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual server 426; virtual storage 428; virtual network 430, including virtual private network; virtual application and operating system 432; and virtual client 434.

[0059] In one example, management layer 406 can provide the functions described below. Resource provisioning 436 provides dynamic procurement of computing resources and other resources used to perform tasks within the cloud computing environment. Metering and pricing 438 provides cost tracking as resources are utilized within the cloud computing environment and bills or invoices for the consumption of these resources. In one example, these resources may include application software licenses. Security provides authentication for cloud consumers and tasks, as well as protection for data and other resources. User portal 440 provides access to the cloud computing environment for consumers and system administrators. Service level management 442 provides cloud resource allocation and management to ensure that required service levels are met. Service level agreement (SLA) planning and fulfillment 444 provides pre-scheduling and procurement of cloud resources based on anticipated future needs according to the SLA.

[0060] Workload layer 408 provides examples of functions that can leverage a cloud computing environment. Example workloads and functions that may be provided by workload layer 408 may include mapping and navigation 446, software development and lifecycle management 448, virtual classroom education delivery 450, data analytics and processing 452, transaction processing 454, and edge device task management 456.

[0061] The increasing number of IoT devices at the network edge is generating massive amounts of data that need to be computed in data centers, pushing network bandwidth requirements to their limits. Despite improvements in network technology, data centers cannot guarantee acceptable transmission rates and response times, which can be critical requirements for many applications. Furthermore, the continuous consumption of data from the cloud by IoT devices at the edge is forcing entities such as enterprises, companies, organizations, institutions, and agencies to build content delivery networks to distribute data and service provision by leveraging physical proximity to end users.

[0062] Edge computing leverages Internet of Things (IoT) devices (such as smart devices (e.g., smartphones, smart TVs, smartwatches, smart glasses, smart vehicles, smart appliances, smart sensors, etc.), mobile phones, network gateways, and other devices to move computing from the data center to the edge of the network, performing tasks and providing services on behalf of the cloud. By moving tasks and services to the edge, better response times and bandwidth availability can be provided.

[0063] With the development and spread of cloud computing, the Internet of Things, and business models, edge computing has emerged as a new technology providing greater computing power. Assisted by AI-powered edge controllers, edge computing is now widely used in many industries involving the specialized programming and control of edge devices. An increasing number of different types of tasks or workloads will run on these edge devices. Considering cost factors, some edge devices are expensive and have limited functionality, and can be shared between different tasks. Edge device time sharing improves resource utilization and reduces costs. Time sharing involves distributing computing resources across multiple tasks.

[0064] Various tasks can run concurrently (i.e., simultaneously) on a single edge computing framework comprising multiple edge devices. Furthermore, collaboration, interaction, or conflict can exist between these different types of tasks (e.g., task preemption on the same edge device). Moreover, the priority and resource consumption of each task can differ. The edge computing platform needs to ensure that important tasks are appropriately prioritized and run smoothly, while rationally scheduling resources and improving the utilization of the edge computing platform. While giving higher priority to complete important tasks, under limited resource conditions, the illustrative embodiment allows for the rational scheduling and use of edge devices to ensure that lower-priority tasks continue to run, thereby minimizing the potential impact on task performance. In other words, the illustrative embodiment allows edge devices to share time across an edge device cluster via dynamic task migration.

[0065] Therefore, the illustrative embodiments enhance edge layer capabilities by providing dynamic task migration based on attributes corresponding to the respective tasks, such as priority and tags. Furthermore, the illustrative embodiments enhance the efficiency of the entire edge layer through a novel dynamic task migration process. Additionally, the illustrative embodiments enable faster response times for task execution on edge devices, thereby improving the user experience.

[0066] Therefore, illustrative embodiments provide one or more technical solutions to overcome the technical problems of migrating tasks across edge device clusters. Thus, these one or more technical solutions improve task performance and reduce response time by utilizing dynamic task migration based on task attributes, thereby providing technical effectiveness and practical application in the field of edge computing.

[0067] See now Figure 5 The diagram illustrates an example of a task management system according to an illustrative embodiment. The task management system 500 can be deployed on a network of data processing systems (such as...) Figure 1 Network data processing system 100) or cloud computing environment (such as Figure 3 The task management system 500 is implemented in a cloud computing environment (300). It is a system of hardware and software components used for time-sharing across edge device clusters using dynamic task migration based on task attributes.

[0068] In this example, the task management system 500 includes a cloud layer 502, an edge layer 504, and an edge device 506. The cloud layer 502 can be, for example... Figure 3 The cloud computing environment 300 in the cloud layer 502 includes a data storage repository 508, an application programming interface server 510, and an edge controller 512. The data storage repository 508 can be, for example... Figure 1 The storage device 108 includes, for example, edge device task management data. The application programming interface server 510 can be, for example... Figure 1 Server 104 in Figure 2 Data processing system 200, or Figure 3 The cloud computing node 310 is a cloud computing node in the edge computing framework. The application programming interface (API) server 510 receives user requests for task execution from client devices via the network. The API server 510 interacts with and manages the edge devices 506 to execute the requested tasks. The edge controller 512 is responsible for connecting to all network gateways and edge devices 506 within the edge computing framework. Furthermore, the edge controller 512 collects and organizes data from the edge devices 506, sends data to the API server 510, and receives instructions from the API server 510 to execute across all edge devices 506 or a cluster of edge devices 506.

[0069] Edge layer 504 is responsible for local connectivity to devices. Additionally, edge layer 504 manages data collection and connectivity with application programming interface server 510. Edge layer 504 also handles interrupts and stores and forwards data. Edge layer 504 includes a synchronization service 514, a metadata store 516, and an edge agent 518. Synchronization service 514 is responsible for synchronizing data to application programming interface server 510. Metadata store 516 contains metadata defining the different clusters of edge devices included in edge device 506. Metadata store 516 can retrieve edge device cluster metadata from data store 508. Edge agent 518 communicates with edge device 506 using cluster definer 520, task sender 522, and task result receiver 524. Cluster definer 520 uses information in metadata store 516 to define different edge device clusters. Cluster definer 520 also refines the edge device clusters in response to task migration between edge devices. Task sender 522 assigns tasks based on corresponding task attributes (such as priority and tags) and sends tasks to the appropriate edge devices. Furthermore, the task sender 522 cancels and migrates tasks on the edge device based on a task cancellation and migration plan, or resumes tasks on the edge device based on a task suspension plan. The task result receiver 524 receives the task status and the results of running the task on the edge device 506.

[0070] Edge device 506 can be, for example Figure 1 Edge device 110 can include edge devices of any type and combination. In this example, edge device 506 includes edge device "A" 526, edge device "B" 528, edge device "C" 530, edge device "D" 532, and edge device "E" 534. However, it should be noted that edge device 506 can include any number of edge devices. Furthermore, edge device A 526, edge device B 528, edge device C 530, edge device D 532, and edge device E 534 each include agent 536, agent 538, agent 540, agent 542, and agent 544, respectively. Agents 536-544 provide communication between edge devices 506. Additionally, edge device A 526, edge device B 528, edge device C 530, edge device D 532, and edge device E 534 each include container 546, container 548, container 550, container 552, and container 554, respectively. Containers 546-554 execute tasks sent to the corresponding edge device 506.

[0071] See now Figure 6 The diagram depicts an example of a first task having subtasks according to an illustrative embodiment. The first task 600 with subtasks can be configured in a task management system (such as, for example, ...). Figure 5 It is implemented in the task management system (500).

[0072] In this example, the first task with subtask 600 is task_1 602, which consists of subtask_1_1 604, subtask_1_2 606, and subtask_1_3 608. However, it should be noted that task_1 602 is merely an example and not intended to limit the illustrative embodiment. In other words, task_1 602 can include any number of subtasks.

[0073] Task definition 610 of task_1 602 shows subtask identifiers with corresponding next subtask identifiers. In this example, subtask_1_1 has a corresponding next subtask of subtask_1_2, and subtask_1_2 has a corresponding next subtask of subtask_1_3. Subtask attributes 612 of task_1 602 show subtask identifiers with corresponding tags and priorities. In this example, subtask_1_1 has corresponding tag_1 and priority_3, subtask_1_2 has corresponding tag_2, tag_4, and priority_2, and subtask_1_3 has corresponding tag_3 and priority_3. The tags indicate on which specific edge device the corresponding subtask will run. For example, tag_1 can indicate that the corresponding subtask should run on edge device A, tag_2 can indicate that the corresponding subtask should run on edge device B, tag_3 can indicate that the corresponding subtask should run on edge device C, tag_4 can indicate that the corresponding subtask should run on edge device D, and tag_5 can indicate that the corresponding subtask should run on edge device E. Priority indicates the relative importance of running a specific subtask. For example, higher priority subtasks take precedence over lower priority subtasks.

[0074] See now Figure 7 The diagram illustrates an example of selecting an edge device cluster for a first task process according to an illustrative embodiment. The edge device cluster 700 selected for the first task processing can be implemented in a task management system, for example... Figure 5 The task management system 500.

[0075] In this example, the edge agent 702 (such as...) Figure 5 The edge agent 518 in the cluster utilizes cluster definers (such as...) Figure 5 The cluster definer 520 in the code defines cluster_1, which consists of edge devices 704 used for task_1 706. Edge devices 704 include edge device A, edge device B, and edge device C, such as, for example... Figure 5 Edge devices A 526, B 528, and C 530 are included. Task_1706 includes subtask_1_1, subtask_1_2, and subtask_1_3, such as, for example, task_1 602 including... Figure 6 The subtasks are subtask_1_1 (604), subtask_1_2 (606), and subtask_1_3 (608). The edge agent 702 utilizes a task sender (such as, for example, ...). Figure 5The task sender 522 in the middle) is based on subtask attributes (e.g., Figure 6 The corresponding tags included in the subtask attribute 612) and the cluster metadata from the cluster definer are sent to edge device A, edge device B and edge device C respectively, and subtask_1_1, subtask_1_2 and subtask_1_3 respectively.

[0076] Edge device attribute table 708 includes edge device identifier 710, tag 712, CPU utilization 714, current subtask 716, current subtask status 718, and current task 720. Edge device attribute table 708 shows the attributes of edge device 704 before task_1 706 is sent to edge device 704. Edge device cluster table 722 includes task identifier 724, cluster identifier 726, subtask identifier 728, edge device identifier 730, and coordinator agent 732. Edge device cluster table 722 shows that edge device 704 (i.e., edge devices A, B, and C) is selected as cluster_1 for task_1 706, which consists of subtask_1_1, subtask_1_2, and subtask_1_3. Edge device cluster table 722 also shows that an agent on edge device A (e.g., agent 536 on edge device A 526) is designated as the coordinator agent for cluster_1. The coordinator agent controls network traffic between edge devices 704 of cluster_1 based on cluster metadata (e.g., task results and task status).

[0077] See now Figure 8 The illustration depicts a diagram according to an illustrative embodiment, showing an example of a process for transmitting subtask results and task status. The process 800 for transmitting subtask results and task status can be implemented in a task management system (such as, for example, ...). Figure 5 It is implemented in the task management system (500).

[0078] In this example, the process 800 for passing subtask results and task status utilizes a subtask result passing table 802 and a task status table 804. The subtask result passing table 802 includes an edge device identifier 806, a subtask identifier 808, a task identifier 810, a cluster identifier 812, a next subtask identifier 814, a next edge device identifier 816, and is a coordinator 818. The subtask result passing table 802 instructs the coordinator agent on edge device A to receive the result of each subtask and, based on cluster metadata, send the result of the corresponding subtask to the next subtask (i.e., the next agent on the next edge device). The task status table 804 includes an edge device identifier 820, a subtask identifier 822, a subtask status 824, a cluster identifier 826, a task identifier 828, and a task status 830. The task status table 804 represents the current status of task_1 running on cluster_1, which consists of edge devices A, B, and C. Furthermore, the task status table 804 indicates the current status of each subtask of task_1 on its corresponding edge device. For example, subtask_1_1 completes its execution on edge device A, subtask_1_2 runs on edge device B, and subtask_1_3 is suspended on edge device C.

[0079] See now Figure 9 The diagram depicts an example of a second task having subtasks according to an illustrative embodiment. The second task having subtasks 900 can be managed by a task management system (such as, for example, ...). Figure 5 It is implemented in the task management system (500).

[0080] In this example, the second task 900 with subtasks is task_2 902, which consists of subtask_2_1 904 and subtask_2_2 906. However, it should be noted that task_2 902 is intended as an example only and not as a limitation on the illustrative embodiment. In other words, task_2 902 can include any number of subtasks.

[0081] Task definition 908 of task_2 902 shows the subtask identifier with a corresponding next subtask identifier. In this example, subtask_2_1 has a corresponding next subtask of subtask_2_2. Subtask attributes 910 of task_2 902 show the subtask identifier with a corresponding tag and priority. In this example, subtask_2_1 has a corresponding tag_2 and priority_1, and subtask_2_2 has a corresponding tag_3 and priority_3. The tag indicates which specific edge device the corresponding subtask will run on. For example, tag_2 indicates that subtask_2_1 will run on edge device B, and tag_5 indicates that subtask_2_2 will run on edge device E. The priority indicates the relative importance of the specific subtask to be run. For example, priority_1 indicates that subtask_2_1 is a high-priority subtask that takes precedence over lower-priority subtasks.

[0082] See now Figure 10 A diagram illustrating an example of an edge device attribute table according to an illustrative embodiment is shown. The edge device attribute table 1000 can be implemented in a task management system, such as, for example... Figure 5 The task management system 500 in this example. In this example, the edge device attribute table 1000 includes an edge device identifier 1002, a tag 1004, CPU utilization 1006, current subtask 1008, current subtask status 1010, and current task 1012. The edge device attribute table 1000 is similar to... Figure 7 The edge device attribute table 708 is shown in the table. However, the edge device attribute table 1000 shows the attributes of the edge device AE after subtasks 1_1, 1_2 and 1_3 of task_1 are sent to edge devices A, B and C respectively, and before subtasks 2_1 and 2_2 are sent to the selected edge device.

[0083] See now Figure 11 The diagram illustrates an example of a subtask assignment process according to an illustrative embodiment. The subtask assignment process 1100 can be implemented in a task management system, such as, for example... Figure 5 The task management system 500.

[0084] In this example, edge agent 1102 utilizes a cluster definer (e.g., Figure 5The cluster definer 520 in the document defines cluster_1, consisting of edge devices A, D, and C for edge devices 1104 used for task_1 1106, and cluster_2, consisting of edge devices B and E for edge devices 1104 used for task_2 1108. Furthermore, it should be noted that when a user request to run task_2 1108 is received, edge device A is running subtask_1_1 of task_1 1106, subtask_1_2 is suspended on edge device B, and subtask_1_3 is suspended on edge device C. Since subtask_2_1 of task_2 1108 requires subtask attributes (such as, for example, labels and priorities corresponding to subtask_2_1) based on the label and priority of subtask_2_1, Figure 9 The subtask attributes 910 (tag_2 and priority_1) run on edge device B of edge device 1104, and the task sender of edge agent 1102 (such as, for example) Figure 5 The task sender 522 in the middle) is based on the subtask attributes (such as, for example, labels and priorities corresponding to subtask_1_2) of the subtask_2. Figure 6 The task sender assigns subtask_1_2 of task_1 1106 to be run on edge device D of edge device 1104, based on the subtask attributes 612 (tag_2, tag_4, and priority_2). Further, the task sender assigns subtask_1_2 based on the subtask attributes (such as, for example, tag_2, tag_4, and priority_2) corresponding to subtask_1_2. Figure 9 The subtask attributes 910 (tag_5 and priority_3) are assigned to subtask_2_2 to run on edge device E of edge device 1104.

[0085] Edge device cluster table 1110 includes task identifier 1112, cluster identifier 1114, subtask identifier 1116, edge device identifier 1118, and coordinator agent 1120. Edge device cluster table 1110 is similar to... Figure 7 The edge device cluster table 722, except that edge device cluster table 1110 now includes information about cluster_2 corresponding to task_2 1108. Furthermore, edge device cluster table 1110 indicates that edge device D is now included in cluster_1 instead of edge device B. Edge device cluster table 1110 also shows that an agent on edge device E (such as, for example, agent 544 on edge device E 534) is designated as the coordinator agent for cluster_2.

[0086] See now Figure 12The diagram illustrates an example of a process for sending subtasks to an edge device according to an illustrative embodiment. The process 1200 for sending subtasks to an edge device can be implemented in a task management system, such as, for example... Figure 5 The task management system 500.

[0087] In this example, edge agent 1202 utilizes a task sender (such as, for example, Figure 5 The task sender 522 sends tasks to edge device 1204. In this example, the task is task_1 1206, which consists of subtask_1_1, subtask_1_2, and subtask_1_3, and task_2 1208, which consists of subtask_2_1 and subtask_2_2. The task sender uses the information in the subtask sending table 1210 to send the corresponding subtasks to the appropriate edge devices of edge device 1204.

[0088] In this example, the subtask sending table 1210 includes edge device identifier 1212, subtask identifier 1214, task identifier 1216, cluster identifier 1218, next subtask identifier 1220, next edge device identifier 1222, and is a coordinator 1224. Because edge device 1204 includes edge device D capable of running subtask_1_2, the task sender will send subtask_1_2 to run on edge device D instead of edge device B. As a result, subtask_1_1 will run on edge device A, subtask_2_1 will run on edge device B, subtask_1_3 will run on edge device C, subtask_1_2 will run on edge device D, and subtask_2_2 will run on edge device E.

[0089] See now Figure 13 The diagram illustrates an example of a suspending scheduling process according to an illustrative embodiment. The suspending scheduling process 1300 can be implemented in a task management system, such as, for example... Figure 5 The task management system 500.

[0090] In this example, edge agent 1302 utilizes a cluster definer (e.g., Figure 5The cluster definer 520 in the document defines cluster_1, consisting of edge devices A, B, and C of edge device 1304 for task_1 1306, and cluster_2, consisting of edge devices B and E of edge device 1304 for task_2 1308. Furthermore, it should be noted that when a user request to run task_2 1308 is received, edge device A is running subtask_1_1 of task_1 1306. Since subtask_2_1 of task_2 1308 needs to run on edge device B of edge device 1304 based on its tag_2 and priority_1 attributes, and in this example, edge device 1304 does not include an edge device capable of running subtask_1_2, when subtask_2_1 completes running subtask_1_2 based on a lower priority attribute (i.e., priority_2), the task sender of edge agent 1302 (such as, for example, ...) Figure 5 The task sender (522) creates a suspend schedule (i.e., suspend schedule table 1322) for subtask_1_2 to run on edge device B.

[0091] Edge device cluster table 1310 includes task identifier 1312, cluster identifier 1314, subtask identifier 1316, edge device identifier 1318, and coordinator agent 1320. Edge device cluster table 1310 is similar to... Figure 11 The edge device cluster table 1110, except for edge device cluster table 1310 which indicates that subtask_1_2 is suspended on edge device B, which is included in both cluster_1 and cluster_2. Suspension schedule table 1322 includes task identifier 1324, cluster identifier 1326, subtask identifier 1328, edge device identifier 1330, subordinate subtask identifier 1332, and subordinate task identifier 1334.

[0092] See now Figure 14 The diagram illustrates an example of a cancellation and migration plan process according to an illustrative embodiment. The cancellation and migration plan process 1400 can be implemented in a task management system, such as, for example... Figure 5 The task management system 500.

[0093] In this example, edge agent 1402 utilizes a cluster definer (e.g., Figure 5The cluster definer 520 in the document defines cluster_1 consisting of edge devices A, D, and C of edge device 1404 for task_1 1406 and cluster_2 consisting of edge devices B and E of edge device 1404 for task_2 1408. Furthermore, it should be noted that when a user request to run task_2 1408 is received, edge device A is running subtask_1_1 of task_1 1406. Since subtask_2_1 of task_2 1408 needs to run on edge device B of edge device 1404 based on its tag_2 and priority_1 attributes, and edge device 1304 includes edge device D, which in this example is capable of running subtask_1_2, the task sender of edge agent 1302 (e.g., ...) Figure 5 The task sender (522) creates a cancellation and migration plan (i.e., cancellation and migration plan table 1422) for subtask_1_2 to cancel subtask_1_2 on edge device B and migrate subtask_1_2 to edge device D based on subtask_1_2 with a lower priority_2 attribute.

[0094] Edge device cluster table 1410 includes task identifier 1412, cluster identifier 1414, subtask identifier 1416, edge device identifier 1418, and coordinator agent 1420. Edge device cluster table 1410 is similar to... Figure 11 The edge device cluster table 1110 is in the middle. The cancellation and migration plan table 1422 includes task identifier 1424, cluster identifier 1426, subtask identifier 1428, cancel edge device identifier 1430, and migrate edge device identifier 1432.

[0095] See now Figures 15A-15B The diagram illustrates a flowchart of a process for edge time sharing across a cluster via dynamic task migration, according to an illustrative embodiment. Figures 15A-15B The process shown can be implemented in a computer system, such as, for example Figure 1 Network data processing system 100 Figure 3 In the cloud computing environment 300 or Figure 5 The task management system 500.

[0096] The process begins when the computer system receives a first task comprising a first plurality of subtasks to be run (step 1502). In response to receiving the first task, the computer system selects a first edge device cluster from a plurality of edge devices included in the edge computing framework to run the corresponding subtask among the first plurality of subtasks that corresponds to the first task based on the attributes of each corresponding subtask (step 1504). The computer system then sends each corresponding subtask among the first plurality of subtasks to the corresponding edge device in the first edge device cluster for execution (step 1506).

[0097] Subsequently, the computer system uses the agent component included in each of the first edge device cluster to send the results of running the subtask on its corresponding edge device to other edge devices included in the first edge device cluster, based on the cluster metadata corresponding to the first edge device cluster (step 1508). Furthermore, the computer system sends the status of the first task to the designated coordinator agent of the first edge device cluster (step 1510). Further, the computer system uses the designated coordinator agent of the first edge device cluster to synchronize the status of the first task with the task result receiver (step 1512).

[0098] Subsequently, while the first task is still running on the first edge device cluster, the computer system receives a second task comprising a second plurality of subtasks for execution (step 1514). In response to receiving the second task, the computer system selects a second edge device cluster from the plurality of edge devices for execution of the corresponding subtasks of the second plurality of subtasks corresponding to the second task, which includes designated edge devices of the first edge device cluster to execute higher priority subtasks of the second plurality of subtasks based on the attributes of higher priority subtasks (step 1516).

[0099] The computer system determines whether a subtask cancellation and migration plan exists (step 1518). If the computer system determines that a subtask cancellation and migration plan does exist ("Yes" output in step 1518), the computer system cancels the lower-priority subtask from a designated edge device in a first edge device cluster designated to run the higher-priority subtask among the second plurality of subtasks, based on the subtask cancellation and migration plan (step 1520). Then, the computer system migrates the lower-priority subtask from the designated edge device in the first edge device cluster canceled from the subtask cancellation and migration plan to another edge device in the plurality of edge devices not included in the first or second edge device cluster for execution (step 1522). Furthermore, the computer system sends the higher-priority subtask among the second plurality of subtasks to a designated edge device in the first edge device cluster for execution (step 1524). The process then terminates.

[0100] Returning to step 1518, if the computer system determines that there is no subtask cancellation and migration plan, and step 1518 has no output, then the computer system, based on the subtask suspension plan, suspends the lower-priority subtask among the first plurality of subtasks to a designated edge device in the first edge device cluster designated to run the higher-priority subtask among the second plurality of subtasks (step 1526). Further, the computing system sends the higher-priority subtask among the second plurality of subtasks to the designated edge device in the first edge device cluster for execution (step 1528). Subsequently, when the higher-priority subtask among the second plurality of subtasks completes execution on the designated edge device, the computer system invokes the lower-priority subtask among the first plurality of subtasks suspended on the designated edge device in the first edge device cluster to run (step 1530). After this, the process terminates.

[0101] Therefore, illustrative embodiments of the present invention provide a computer-implemented method, computer system, and computer program product for time sharing across a cluster of edge devices using dynamic task migration based on subtask attributes. Various embodiments of the invention have been described for illustrative purposes but are not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the described embodiments. The terminology used herein has been chosen to best explain the principles of the embodiments, their practical application, or technical improvements to technologies found in the market, or to enable those skilled in the art to understand the embodiments disclosed herein.

Claims

1. A computer-implemented method for task management of edge devices, the computer-implemented method comprising: When a first task, which includes a first plurality of subtasks, is running on a first edge device cluster in an edge computing framework, when a request is received to run a higher priority subtask corresponding to the second task in a second plurality of subtasks, it is determined whether there is a subtask cancellation and migration plan for the edge computing framework. In response to determining that the subtask cancellation and migration plan does exist for the edge computing framework, based on the subtask cancellation and migration plan, the lower priority subtask in the first plurality of subtasks is cancelled from the designated edge device in the first edge device cluster that is designated to run the higher priority subtask in the second plurality of subtasks; Based on the subtask cancellation and migration plan, the lower priority subtasks of the first plurality of subtasks cancelled from the designated edge device of the first edge device cluster are migrated to another edge device not included in the first edge device cluster for operation; Send the higher priority subtask among the second plurality of subtasks to the designated edge device of the first edge device cluster for execution; as well as Among the agent components included in each of the first edge device cluster, the results of running subtasks on their corresponding edge devices are sent to other edge devices included in the first edge device cluster based on the cluster metadata corresponding to the first edge device cluster.

2. The computer-implemented method according to claim 1, further comprising: In response to determining that there is no subtask cancellation and migration plan for the edge computing framework, based on the subtask suspension plan for the edge computing framework, the lower priority subtask of the first plurality of subtasks is suspended on the designated edge device of the first edge device cluster that is designated to run the higher priority subtask of the second plurality of subtasks. Send the higher priority subtask among the second plurality of subtasks to the designated edge device of the first edge device cluster for execution; as well as When the higher-priority subtask in the second plurality of subtasks completes its execution on the designated edge device, the lower-priority subtask in the first plurality of subtasks suspended on the designated edge device of the first edge device cluster is invoked to run.

3. The computer-implemented method according to claim 1, further comprising: Receive the first task, which includes the first plurality of subtasks to be run; The first edge device cluster is selected from a plurality of edge devices included in the edge computing framework to run the corresponding subtasks among the first plurality of subtasks corresponding to the first task based on the attributes of each corresponding subtask; as well as Each of the first plurality of subtasks is sent to the corresponding edge device in the first edge device cluster for execution.

4. The computer-implemented method according to claim 1, further comprising: The status of the first task is sent to a designated coordinator agent of the first edge device cluster, wherein the designated coordinator agent controls the network traffic between edge devices in the first edge device cluster.

5. The computer-implemented method according to claim 4, further comprising: The designated coordinator agent of the first edge device cluster synchronizes the state of the first task with the task result receiver of the edge agent, wherein the edge agent communicates with the cloud computing environment.

6. The computer-implemented method according to claim 1, further comprising: Receive the second task, which includes the second plurality of subtasks, to run while the first task is running on the first edge device cluster; as well as Based on the attributes of the higher-priority subtask, a second edge device cluster is selected from multiple edge devices in the edge computing framework to run the corresponding subtask in the second plurality of subtasks that corresponds to the second task. The second task includes the designated edge device of the first edge device cluster running the higher-priority subtask in the second plurality of subtasks. The other edge device running the lower-priority subtask in the first plurality of subtasks migrated from the designated edge device of the first edge device cluster is not included in the second edge device cluster.

7. A computer system for edge device task management, the computer system comprising: Bus system; A set of storage devices connected to the bus system, wherein the set of storage devices stores program instructions; as well as A group of processors is connected to the bus system, wherein the group of processors executes the program instructions to: When a first task, which includes a first plurality of subtasks, is running on a first edge device cluster in an edge computing framework, when a request is received to run a higher priority subtask corresponding to the second task in a second plurality of subtasks, it is determined whether there is a subtask cancellation and migration plan for the edge computing framework. In response to determining that the subtask cancellation and migration plan does exist for the edge computing framework, based on the subtask cancellation and migration plan, the lower priority subtask in the first plurality of subtasks is cancelled from the designated edge device in the first edge device cluster that is designated to run the higher priority subtask in the second plurality of subtasks; Based on the subtask cancellation and migration plan, the lower priority subtasks of the first plurality of subtasks cancelled from the designated edge device of the first edge device cluster are migrated to another edge device not included in the first edge device cluster for operation; Send the higher priority subtask among the second plurality of subtasks to the designated edge device of the first edge device cluster for execution; Among the agent components included in each of the first edge device cluster, the results of running subtasks on their corresponding edge devices are sent to other edge devices included in the first edge device cluster based on the cluster metadata corresponding to the first edge device cluster.

8. The computer system of claim 7, wherein the set of processors further executes the program instructions to: In response to determining that there is no subtask cancellation and migration plan for the edge computing framework, based on the subtask suspension plan for the edge computing framework, the lower priority subtask of the first plurality of subtasks is suspended on the designated edge device of the first edge device cluster that is designated to run the higher priority subtask of the second plurality of subtasks. Send the higher-priority subtasks from the second plurality of subtasks to the designated edge devices of the first edge device cluster for execution; as well as When the higher-priority subtask in the second plurality of subtasks completes its execution on the designated edge device, the lower-priority subtask in the first plurality of subtasks suspended on the designated edge device of the first edge device cluster is invoked to run.

9. The computer system of claim 7, wherein the set of processors further executes the program instructions to: Receive the first task, which includes the first plurality of subtasks to be run; The first edge device cluster is selected from a plurality of edge devices included in the edge computing framework to run a corresponding subtask among the first plurality of subtasks corresponding to the first task based on the attributes of each corresponding subtask; and Each of the first plurality of subtasks is sent to the corresponding edge device in the first edge device cluster for execution.

10. The computer system of claim 7, wherein the set of processors further executes the program instructions to: The status of the first task is sent to a designated coordinator agent of the first edge device cluster, wherein the designated coordinator agent controls the network traffic between edge devices in the first edge device cluster.

11. The computer system of claim 10, wherein the set of processors further executes the program instructions to: The designated coordinator agent of the first edge device cluster synchronizes the state of the first task with the task result receiver of the edge agent, wherein the edge agent communicates with the cloud computing environment.

12. A computer program product for edge device task management, the computer program product comprising program instructions executable by a computer system to cause the computer system to perform a method comprising: When a first task, which includes a first plurality of subtasks, is running on a first edge device cluster in an edge computing framework, when a request is received to run a higher priority subtask corresponding to the second task in a second plurality of subtasks, it is determined whether there is a subtask cancellation and migration plan for the edge computing framework. In response to determining that the subtask cancellation and migration plan does exist for the edge computing framework, based on the subtask cancellation and migration plan, the lower priority subtask in the first plurality of subtasks is cancelled from the designated edge device in the first edge device cluster that is designated to run the higher priority subtask in the second plurality of subtasks; Based on the subtask cancellation and migration plan, the lower priority subtasks of the first plurality of subtasks cancelled from the designated edge device of the first edge device cluster are migrated to another edge device not included in the first edge device cluster for operation; Send the higher-priority subtasks from the second plurality of subtasks to the designated edge devices of the first edge device cluster for execution; as well as Among the agent components included in each of the first edge device cluster, the results of running subtasks on their corresponding edge devices are sent to other edge devices included in the first edge device cluster based on the cluster metadata corresponding to the first edge device cluster.

13. The computer program product according to claim 12, further comprising: In response to determining that there is no subtask cancellation and migration plan for the edge computing framework, based on the subtask suspension plan for the edge computing framework, the lower priority subtask of the first plurality of subtasks is suspended on the designated edge device of the first edge device cluster that is designated to run the higher priority subtask of the second plurality of subtasks. Send the higher-priority subtasks from the second plurality of subtasks to the designated edge devices of the first edge device cluster for execution; as well as When the higher-priority subtask in the second plurality of subtasks completes its execution on the designated edge device, the lower-priority subtask in the first plurality of subtasks suspended on the designated edge device of the first edge device cluster is invoked to run.

14. The computer program product of claim 12, further comprising: Receive the first task, which includes the first plurality of subtasks to be run; The first edge device cluster is selected from a plurality of edge devices included in the edge computing framework to run the corresponding subtasks among the first plurality of subtasks corresponding to the first task based on the attributes of each corresponding subtask; as well as Each of the first plurality of subtasks is sent to the corresponding edge device in the first edge device cluster for execution.

15. The computer program product of claim 14, further comprising: The status of the first task is sent to a designated coordinator agent of the first edge device cluster, wherein the designated coordinator agent controls the network traffic between edge devices in the first edge device cluster.

16. The computer program product of claim 15, further comprising: The designated coordinator agent of the first edge device cluster synchronizes the state of the first task with the task result receiver of the edge agent, wherein the edge agent communicates with the cloud computing environment.

17. The computer program product of claim 12, further comprising: Receive the second task, which includes the second plurality of subtasks, to run while the first task is running on the first edge device cluster; as well as Based on the attributes of the higher-priority subtask, a second edge device cluster is selected from multiple edge devices in the edge computing framework to run the corresponding subtask in the second plurality of subtasks that corresponds to the second task. The second task includes the designated edge device of the first edge device cluster running the higher-priority subtask in the second plurality of subtasks. The other edge device running the lower-priority subtask in the first plurality of subtasks migrated from the designated edge device of the first edge device cluster is not included in the second edge device cluster.