Computational problem decomposition
The method optimizes computational problem decomposition in edge computing by re-deploying tasks based on idle time and resource capability, addressing inefficiencies and improving performance and resource utilization.
Patent Information
- Application Number
- PCT/EP2024/069727
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-07-11
- Publication Date
- 2026-01-15
AI Technical Summary
Existing methods struggle to efficiently decompose computational problems across heterogeneous and dynamically changing edge computing systems, leading to inefficiencies in resource utilization and increased costs due to idle time and energy consumption.
A method and computing device that decompose computational problems into tasks, which are deployed to network nodes based on performance information, including idle time and resource capability, allowing for re-deployment when threshold conditions are met to minimize idle time and optimize resource usage.
Reduces task waiting time, energy consumption, and overhead, while improving application performance by dynamically re-deploying tasks to better utilize available hardware resources.
Smart Images

Figure EP2024069727_15012026_PF_FP_ABST
Abstract
Description
[0001] COMPUTATIONAL PROBLEM DECOMPOSITION
[0002] TECHNICAL FIELD
[0003] The invention relates to a method for decomposition of one or more computational problems, a computing device for decomposition of one or more computational problems, and corresponding computer program, computer-readable data carrier, and data carrier signal.
[0004] BACKGROUND
[0005] Applications, such as distributed machine learning, graph mining, stream processing may benefit of parallel computation. Parallel computation may be achieved by a decomposition process, i.e., by splitting an application (or computational problem) into functional components (or tasks) that may be distributed across multiple network-connected hosts / nodes.
[0006] Decomposed tasks of an application are often represented as Directed Acyclic Graphs (DAG) which chain tasks together in the form of a dependency tree. Portions of a dependency tree, e.g., one or multiple tasks, may be executed in parallel, which allows the computational problem to scale beyond a single node. Further information on DAG for decomposed tasks can be found in Q. He et al.: "On the Degree of Parallelism in Real-Time Scheduling of DAG Tasks," Design, Automation & Test in Europe Conference & Exhibition (DATE), Antwerp, Belgium, 2023, pp. 1-6, DOI: 10.23919 / DATE56975.2023.10137259. Other methods of decomposing applications comprise partitioning of large datasets as disclosed in P. Sanders and C. Schulz: "KaHIP v3. 00— Karlsruhe High Quality Partitioning— User Guide." arXiv preprint arXiv: 1311.1714, 2013, pp. 1-31, where components of a problem are tightly coupled and require regular synchronization.
[0007] Such parallel decomposition problems have historically dealt with how to scale discrete computation tasks across multiple instances of identical hardware, collocated in a datacenter. With the advent of cloud / edge computing there has arisen the option to trade up-front costs for physical hardware with on-demand costs for dynamically provisioned and virtualized resources. Edge computing is a form of distributed cloud computing which aims to bring computing power, storage, and associated switching and control functions, closer to clients / end users than the more traditional cloud core or “central cloud”, thereby decreasing latency and volume of data transferred across a network. An edge node may typically have limited computing resources and require low energy consumption. Multiple edge nodes may make use of different hardware architectures with differing capabilities and different billing strategies. With multiple simultaneous clients / end users, edge nodes availability and cost may dynamically change. How to decompose an application to benefit of the heterogeneous and dynamically changing of an edge computing system is an ongoing challenge.
[0008] SUMMARY
[0009] It is an object of the invention to provide an improved alternative to the above techniques and prior art. More specifically, it is an object of the invention to provide improved decomposition of one or more applications (or computational problems).
[0010] According to a first aspect of the invention, a method for decomposition of one or more computational problems is provided. The method is performed by a computing device. The one or more computational problems are decomposed into a plurality of tasks. The tasks are deployed to one or more network nodes of a communications system. The method comprises obtaining performance information of the one or more network nodes. The performance information comprises idle time of the plurality of tasks hosted on the one or more network nodes, and resource capability of the one or more network nodes. The method further comprises, upon determining that a threshold condition on the idle time of one or more of the plurality of tasks is fulfilled, determining one or more re-deploying configurations for a subset of the plurality of the tasks, based on the idle time information of the plurality of the tasks, and on the resource capability of the one or more network nodes. The method further comprises redeploying, based on one of the one or more re-deploying configurations, the tasks of the subset associated with the one of the one or more re-deploying configurations.
[0011] According to a second aspect of the invention, a computing device for decomposition of one or more computational problems is provided. The one or more computational problems are decomposed into a plurality of tasks and the tasks are deployed to one or more network nodes of a communications system. The computing device comprises a processor and a memory, the memory having stored thereon instructions executable by the processor, wherein the instructions, when executed by the processor, cause the computing device to obtain performance information of the one or more network nodes. The performance information comprises idle time of the plurality of tasks hosted on the one or more network nodes, and resource capability of the one or more network nodes. The instructions, when executed by the processor, cause the computing device to, upon determining that a threshold condition on the idle time of one or more of the plurality of tasks is fulfilled, determine one or more re-deploying configurations for a subset of the plurality of the tasks, based on the idle time information of the plurality of tasks, and on the resource capability of the one or more network nodes. The instructions, when executed by the processor, cause the computing device to re-deploy, based on one of the one or more re-deploying configurations, the tasks of the subset associated with the one of the one or more re-deploying configurations.
[0012] According to a third aspect of the invention, there is provided a computer program. The computer program comprises instructions which, when run in a processing unit of a computing device, cause the computing device to perform the method according to the first aspect of the invention.
[0013] According to a fourth aspect of the invention, there is provided a computer-readable data carrier. The computer-readable data carrier has stored thereon the computer program according to the third aspect of the invention.
[0014] According to a fifth aspect of the invention, there is provided a data carrier signal carrying the computer program according to a third aspect of the invention.
[0015] In an embodiment of the first, second, and third aspect, the threshold condition on the idle time of the plurality of tasks is fulfilled if the idle time of a task of the plurality of tasks is higher than a first threshold value.
[0016] In an embodiment of the first, second, and third aspect, the threshold condition on the idle time of the plurality of tasks is fulfilled if a first total idle time is higher than a second threshold value, wherein the first total idle time is the sum or average of the idle times of two or more tasks of the plurality of tasks on a same network node of the one or more network nodes.
[0017] In an embodiment of the first, second, and third aspect, the threshold condition on the idle time of the plurality of tasks is fulfilled if a second total idle time is higher than a third threshold value, wherein the second total idle time is the sum or average of the idle times of the tasks on two or more network nodes. In an embodiment of the first and third aspect, re-deploying, based on one of the one or more re-deploying configurations, the tasks of the subset associated with the one of the one or more re-deploying configurations further comprises determining a subset of tasks for each of the one or more re-deploying configurations in such a way that a first or a second total idle is minimized. The first total idle time is the sum or average of the idle times of two or more tasks on a same network node and the second total idle time is the sum of the idle times of tasks on two or more network nodes.
[0018] In an embodiment of the second aspect, the processing circuitry causes the computing device to re-deploy, based on one of the one or more re-deploying configurations, the tasks of the subset associated with the one of the one or more re-deploying configurations by determining a subset of tasks for each of the one or more re-deploying configurations in such a way that a first or a second total idle is minimized. The first total idle time is the sum or average of the idle times of two or more tasks on a same network node and the second total idle time is the sum of the idle times of tasks on two or more network nodes.
[0019] In an embodiment of the first, second, and third aspect, the performance information of the one or more network nodes further comprises information on predicted performance of a task on a network node where the task is not deployed.
[0020] In an embodiment of the first, second, and third aspect, the predicted performance of the task is obtained based on benchmarks of the network node where the task is not deployed.
[0021] In an embodiment of the first and third aspect, determining a subset of tasks for each of the one or more re-deploying configurations, based on the predicted performance further comprises comparing the predicted performance of a task on a network node where the task is not deployed and the performance of the task on the current network node. The method further comprises selecting the task to be part of the subset if the predicted performance is higher than the performance of the task on the current network node.
[0022] In an embodiment of the second aspect, the processing circuitry causes the computing device to determine a subset of tasks for each of the one or more re-deploying configurations, based on the predicted performance by comparing the predicted performance of a task on a network node where the task is not deployed and the performance of the task on the current network node. The processing circuitry further causes the computing device to determine a subset of tasks for each of the one or more re-deploying configurations by selecting the task to be part of the subset if the predicted performance is higher than the performance of the task on the current network node.
[0023] In an embodiment of the first, second, and third aspect, the subset comprises a minimum number of tasks.
[0024] In an embodiment of the first and third aspect, if two or more re-deploying configurations are determined, re-deploying, based on one of the two or more re-deploying configurations, the tasks of the subset associated with the one of the two or more re-deploying configurations comprises selecting the one of the two or more re-deploying configurations based on an overhead value, wherein the overhead value is determined based on one or more of: number of tasks in the subset associated with each re-deploying configuration and time to re-deploy the tasks of the corresponding subset.
[0025] In an embodiment of the second aspect, if two or more re-deploying configurations are determined, the processing circuitry causes the computing device to re-deploy, based on one of the one or more re-deploying configurations, the tasks of the subset associated with the one of the one or more re-deploying configurations by selecting the one of the two or more redeploying configurations based on an overhead value, wherein the overhead value is determined based on one or more of: number of tasks in the subset associated with each redeploying configurations and time to re-deploy the tasks in the corresponding subset.
[0026] Certain embodiments may provide one or more of the following technical advantages:
[0027] - reduced task waiting time and energy saving in distributed applications;
[0028] - reduced overhead of re-decomposition and redeployment,
[0029] - improved use of available hardware; and
[0030] - improved application performance.
[0031] BRIEF DESCRIPTION OF THE DRAWINGS For better understanding of the present disclosure, and to show more readily how the invention may be carried into effect, reference will now be made, by way of example, to the following drawings, in which:
[0032] Figure la shows an example of task distribution in a communications system before applying a method according to embodiments;
[0033] Figure lb shows an example of task distribution in a communications system after applying a method according to embodiments;
[0034] Figure 2 shows a flow chart illustrating a method according to embodiments;
[0035] Figure 3 shows an example of a communications system according to embodiments; and Figure 4 is a block diagram depicting a computing node according to embodiments of the invention.
[0036] DETAILED DESCRIPTION
[0037] Embodiments will be illustrated herein with reference to the accompanying drawings. These embodiments are provided by way of example so that this disclosure will be thorough and complete, and will fully convey the scope of the inventive concept to those skilled in the art.
[0038] An application may be represented as a computational problem or mathematical model working on a set of data. The terms application, computational problem and mathematical model may be used interchangeable. An application may comprise a plurality of functional blocks (also referred to as tasks), i.e., functional units of software that support functionalities of the application. An example of an application may be Finite Element Analysis (FEA) in aerospace design, and examples of functional blocks may be the test of multiple elements at the same time (e.g., heat and mechanical wear).
[0039] The plurality of tasks may be distributed between network nodes of a communications system, such as edge nodes of an edge computing system. Conditions of the communications system, such as network bandwidth or energy efficiency, may change over time, thus making challenging the use of the resources of the network nodes to run the plurality of tasks.
[0040] Moreover, the plurality of tasks may run in parallel. Running tasks in parallel improves resource utilization and speed of execution. However, some of the plurality of tasks may need to wait for other tasks to finish before the computation may continue, thus introducing idle time. The idle time represents the time during which a network node is ready and available but is not performing any task. In other words, considering a multi-core node, a core that has completed one task, needs to wait for other tasks on the other cores to terminate before being available for use again. Ideally, all tasks of an application should complete simultaneously in order to avoid task idling, excessive resource consumption, and potentially unexpected cost.
[0041] The invention disclosed herein makes it possible to improve performance of a decomposition of one or more computational problems in a communications system, wherein the one or more computational problems are decomposed into a plurality of tasks and the tasks are deployed to one or more network nodes of the communications system. The invention is implemented by obtaining performance information of the one or more network nodes, wherein the performance information comprises idle time of the plurality of tasks hosted on the one or more network nodes, and resource capability of the one or more network nodes. Upon determining that a threshold condition on the idle time of the one or more of the plurality of tasks is fulfilled, one or more re-deploying configurations for a subset of the plurality of the tasks are determined, based on the idle time information of the plurality of the tasks, and on the resource capability of the one or more network nodes. One of the one or more re-deploying configurations is used to re-deploy the tasks of the subset associated with the re-deploying configuration.
[0042] An example of communications system wherein the invention may be implemented is shown in Figure la. The communications system comprises a computing device 101 connected to a plurality of network nodes (only two, 103a and 103b, shown in Figure la for simplicity) located at a plurality of locations that may be geo-distributed. The computing device 101 implementing the method may be or be comprised in a router, gateway, an Internet of Things (loT) gateway and any device with computing, storage, and network connectivity to the edge computing system when active. The plurality of network nodes may be edge nodes, e.g., Nodel 103a and Node2 103b in Figure la, of the edge computing system. The edge nodes host the tasks of one or more applications. An edge node is a device adapted to process, analyze, and store data. The edge node is closer to clients and end users than a more traditional cloud core or “central cloud”. One or more edge nodes may communicate with the central cloud through an access network, e.g., if further computing resources are needed because the computing resources in the edge node are not enough. An edge node may be a router, gateway, loT gateway, and any device with computing, storage, and network connectivity, few hops (e.g., one or two hops) away from a client / end user typically connected to a communications network of a network operator. An edge node may also be implemented at the client / end user’s premises such as in a home, a vehicle, a factory site. An edge node may communicate with other edge nodes, with the client / end user, and eventually with the central cloud according to one or more communications technologies such as for example Second Generation (2G), Third Generation (3G), Fourth Generation (4G), Fifth Generation (5G) or any other Third Generation Partnership Project (3GPP) radio access technology, or other communications network technologies including any mixed network systems, such as a wireless system including 3 GPP 4G network devices, 3 GPP 5G network devices, and IEEE 802.11 access points.
[0043] With reference to Figure la, for examples, Nodel 103a may have three cores, Corel, Core2, Core3, 109a-c, and Node2 103b may have two cores, Core4, Core5, 109d-e. Nodel 103a may host three tasks Tl, T2 and T3, and Node2 may host two tasks T4 and T5. Each core may run one task. El 105a, E2 105b, E3 105c, E4 105d, E5 105e are the execution times of the corresponding tasks Tl, T2, T3, T4, T5. Let us suppose that E2 < E4 < E3 < E5 = El.
[0044] In this example scenario, the idle time for each core of Nodel 103a is:
[0045] - Corel 109a: idle time II 107a equal to zero, assuming this task finishes last;
[0046] - Core2 109b: idle time 12 107b equal to the time between the time the first task Tl finishes and the time task T2 finishes; and
[0047] - Core3 109c: idle time 13 107c equal to the time between the time task Tl finishes and the time task T3 finishes.
[0048] Once all tasks (Tl, T2, and T3) are complete, the work on this node Nodel 103a ends. The total idle time on Nodel 103a is equal to the sum of the idle times of the three cores, i.e., Il +12+13.
[0049] The idle time for each core of Node2 103b is:
[0050] - Corel 109d: idle time 14 107d equal to the time between the time the tasks T5 finishes and the time task T4 finishes; and
[0051] - Core2 109e: idle time 15 107e equal to zero, assuming this task finishes last.
[0052] Once all tasks (T4 and T5) are complete, the work on this Node2 103b ends. The total idle time on Node2 103b is equal to the sum of the idle times of the two cores, i.e., 14+15.
[0053] The objective is to place the tasks of an application so that their processing ends as close to simultaneously as possible. In other words, the tasks are re-deployed on the network nodes so that the total idle time is reduced compared to the previous deployment, and Nodel 103a. The invention disclosed herein allows for example to obtain a re-deploying configuration wherein T1 is determined to be migrated from Nodel 103a to Node2 103b and T4 is determined to be migrated from Node2 103b to Nodel 103a as shown in Figure lb. Based on this re-deploying configuration, the new idle times are reduced, since
[0054] - for Nodel 103a, the new total idle time is equal to the sum of the idle times 14 107d2, 12 107b2, and 13 107c2, i.e., I4+I2+I3, wherein 13 107c2 is now zero, since task T3 is the first task to finish, and the other two idle times are reduced, therefore the new idle time on Nodel is lower than before the re-deployment;
[0055] - for Node2 103b, the new total idle time is equal to the sum of the idle times II 107a2 and 15 107e2, i.e., 11+15, wherein II 107a2 and 15 107e2 are equal to zero, and therefore the new idle time on Node2 is lower than before the re-deployment. Moreover, only two migrations need to be performed to obtain the new configuration.
[0056] Figure 2 shows a method 200 for decomposition of one or more computational problems. In one embodiment, the method 200 may be carried out by a computing device 101. A computational problem is an application. A computational problem is decomposed into tasks. The tasks are deployed to one or more network nodes of a communications system. The communications system may be an edge computing system. The one or more network nodes may be edge nodes of the edge computing system. The first deployment may be performed based on a heuristic algorithm. Examples of heuristic algorithms for task assignment to network nodes in distributed systems can be found in V. M. Lo, "Heuristic algorithms for task assignment in distributed systems," in IEEE Transactions on Computers, vol. 37, no. 11, pp. 1384-1397, Nov. 1988, doi: 10.1109 / 12.8704. The tasks deployed to one of the one or more network nodes may run in parallel, such as tasks of a machine learning algorithm. The selection of the tasks that may run in parallel depends on the application. For an FEA model for example, the tasks for a particular compute step may run in parallel. In another example, a developer may indicate which tasks may run in parallel. In machine learning application, parallel programming tools such as NIMBLE (Ghoting, Amol, et al. "NIMBLE: a toolkit for the implementation of parallel data mining and machine learning algorithms on mapreduce." Proceedings of the 17th ACM SIGKDD international conference on Knowledge discovery and data mining, 2011) may be used to parallelize machine learning and data mining computations. Referring to the method in Figure 2, in step 201, the method comprises obtaining 201 performance information of the one or more network nodes. The performance information comprises idle time of one or more tasks running on the corresponding network node. The performance information comprises resource capability of the one or more network nodes, e.g., compute capacity, such as number of cores, clock speed, percentage of total compute capacity used. For example, with reference to Figure la, the obtained performance information may comprise:
[0057] - for Nodel 103a: idle times II 107a, 12 107b, 13 107c for the corresponding tasks Tl, T2, T3, and number of cores equal to three, and
[0058] - for Node2 103b: idle times 14, 15 for the corresponding tasks T4, T5, and number of cores equal to two.
[0059] The performance information may be obtained periodically or triggered by an event, such as when a new network node is added to the communications system. The performance information may be obtained from the corresponding network node or by an entity collecting the information from the network nodes. Tools, such as “time” and “ps” on a Linux node, may be used to obtain execution time and idle time of the network node. The idle time may provide a measure of how inaccurate the task placement is. In other words, the idle time is used as feedback to determine if a re-deployment of the tasks is necessary. Alternatively to the redeployment, the decomposition may be run again. By running the decomposition again, the new tasks may have different size and execution time, and may be deployed to different network nodes. The time period between the re-deployments may be referred to as computation period.
[0060] The method further comprises determining 203 one or more re-deployment configurations for a subset of the tasks, upon determining 204 that a threshold condition on the idle time of one or more tasks is fulfilled. In other words, if a threshold condition on the idle time of the one or more tasks is fulfilled, the determining 203 of the one or more re-deployment configurations is triggered. A re-deployment configuration for a subset of tasks may comprise information on
[0061] - one or more task identifiers of the tasks selected as candidate to be moved from their current location (i.e., the current network node), wherein a tasks identifier may be a human-readable name or an alphanumeric name uniquely identifying the task, and
[0062] - location (i.e., the network node) where the one or more candidate tasks will be moved. The subset of tasks may comprise one or more tasks. The threshold condition on the idle time of the one or more tasks may be that the idle time of one or more of the tasks is higher than a first threshold value. For example, with reference to Figure la, if the idle time 12 107b of the task T2 is higher than a first threshold value, the determining one or more re-deployment configurations is triggered. The task T2 may be a candidate task to be part of the subset of tasks to be re-deployed.
[0063] Alternatively, the threshold condition on the idle time of the one or more tasks may be that a first total idle time is higher than a second threshold value. The first total idle time may be the sum or average of the idle times of two or more of the tasks on a same network node of the one or more network nodes. For example, with reference to Figure la, if the sum of the idle times (11-3, 107a-c) of all tasks (Tl, T2, T3) on Nodel 103a, i.e., I1+I2+I3, is higher than a second threshold value, the determining of the one or more re-deployment configurations is triggered. The tasks Tl, T2 and / or T3 may be candidate tasks part of the subset of tasks to be re-deployed.
[0064] Alternatively, the threshold condition on the idle time of the one or more tasks may be that a second total idle time is higher than a third threshold value. The second total idle time may be the sum or average of the idle times of the tasks on two or more network. For example, with reference to Figure la, if the sum of the idle times on Nodel 103a and Node2 103b, i.e., I1+I2+I3+I4+I5, is higher than a third threshold value, the determining of the one or more redeployment configurations is triggered. The tasks Tl, T2, T3, T4 and / or T5 may be candidate tasks part of the subset of tasks to be re-deployed.
[0065] The first, second, and third threshold value may be a number expressed for example in milliseconds. The first, second, and third threshold value may be associated with a certain tolerance to reduce the frequency of re-deployments.
[0066] The one or more re-deployment configurations for a subset of the tasks are determined 203 based on the idle time information of the tasks deployed to the one or more network nodes and the resource capabilities of the one or more network nodes hosting the tasks. In other words, the tasks selected to be re-deployed, and therefore being part of the subset associated with the re-deployment configuration, and the network nodes that will host the tasks are selected based on the obtained idle time information of the tasks and resource capability of the one or more network nodes. For example, a subset of tasks for each of the one or more re-deployment configurations may be determined so that the total idle time of the tasks on each network node, on a specific network node, on a subset of network nodes, or on all network nodes, is minimized. The re-deployment configurations, i.e., tasks in the subset associated with the redeployment configuration and network nodes where the tasks should be moved, may be obtained by solving an integer linear programming (ILP) problem, or using one of the following methods: branch-and-bound, integer-programming, searching, graph-theory, randomization, genetic algorithms, or evolutionary.
[0067] The method further comprises re-deploying 205, based on one of the one or more re-deploying configurations, the tasks of the subset associated with the one of the one or more re-deploying configurations. Re-deploying means that the one or more tasks comprised in the subset are assigned to the network nodes based on the information in the re-deploying configuration.
[0068] According to an embodiment, the performance information of the one or more network nodes obtained 201 by the computing device 101, may further comprise information on predicted performance, e.g., execution time and / or idle time, of a task on a network node where the task is not deployed. For example, with reference to Figure la, information on predicted performance may be obtained for task T1 on Node2, since task T1 is deployed on Nodel and not on Node2. The information on predicted performance may be obtained as output of a machine learning model, wherein the input comprises a set of benchmarks. Examples of machine learning models are ensemble methods, such as gradient-boosted trees and random forests. The set of benchmarks based on which performance of the network nodes may be evaluated may be provided, e.g., by the application owner. The set of benchmarks would allow the specification of hardware independent characteristics, e.g., user-defined hardware tags, low level instruction mix, arithmetic intensity and thread counts. The set of benchmarks may be stored as source code and compiled on a new (edge) network node when it becomes available in order to provide a measure of absolute performance when the network node is unused, i.e., no tasks which may affect the performance calculation run on the network node. The predicted performance remains unchanged as long as the network node is active.
[0069] The method may further comprise determining 209 a subset of tasks for the one or more redeploying configurations. The tasks in a subset of tasks for a re-deploying configuration may be selected based on the predicted performance by comparing 213 the predicted performance of a task on a network node where the task is not deployed, and the performance of the task on the current network node (i.e., the node where the task is deployed). A task is selected 215 to be part of the subset if the predicted performance is higher than the performance of the task on the current network node. In other words, the selected tasks will be part of the subset associated with the re-deploying configuration.
[0070] If two or more re-deployment configurations are determined, the method may comprise selecting 207 one of the two or more re-deployment configurations. The selection may be based on an overhead value. The overhead value may be determined based on migration cost, e.g., time to move the task of the subset and / or number of tasks in the subset to move. For example, the one of the two or more re-deployment configurations with the lowest time required to move the tasks of the subset and / or minimum number of tasks to move, may be selected. Selecting one of the two or more re-deployment configurations may be based on the maximization of the performance per watt. Alternatively, the selected re-deployment configuration may be the one comprising the network nodes with user-defined requirement tags, such as secured execution environment, Graphics Processing Units (GPUs), etc.
[0071] As stated above, according to an embodiment, a re-deployment configuration may be obtained by solving an ILP problem. For example, a first objective of the ILP algorithm may be assigning a task to a network node such that the idle time on the network node is minimized: x > (l if task i is assigned to node j j lJ1 0 otherwise J
[0072] / . / .
[0073] V jEnodes ViEtasks
[0074] A second objective of the ILP algorithm may be minimizing a redeployment overhead based on a migration cost:
[0075] 2 Z t_depiyij jEnodes ViEtasks wherein t_deptis the redeployment overhead of task i.
[0076] Therefore, a total objective function may be minimizing the idle time while minimizing the redeployment overhead: with the following constraints:
[0077] 1. Each task is assigned to one server xtj = 1 Vi G tasks
[0078] V j Enodes
[0079] 2. The decision variable introduces additional constraints on the decision variables x£j-, i.e., if ytj indicates that task i is to be redeployed away from network node j their corresponding xtj should be 0 indicating the same to avoid conflict. xtj + ytj < 1 Vi,j
[0080] The ILP model may be solved using, for example, Simplex method to obtain the task assignment to the network nodes such that sum of idle time across the network nodes and the re-deployment overhead is minimized. Alternatively, simulated annealing may be applied to obtain the ground state of the following energy function.
[0081] Figure 3 shows an example of system according to embodiments. The system may comprise:
[0082] - a decomposition service function 307 decomposing / breaking down a computational problem / application 305 into tasks / components. The tasks / components may have different data size, and therefore different compute load, and may take different time to run on identical hardware;
[0083] - an orchestration service function 309 performing the redeployment of the tasks based on a redeploying configuration; and
[0084] - edge nodes (N1 103c, N2 103d, n3 103e) where the tasks may be deployed.
[0085] The decomposition service function 307 and the orchestration service function 309 may be functions of the computing device 101 implementing the method 200 for decomposition of one or more computational problems.
[0086] The edge nodes (N1 103c, N2 103d, N3 103e) may host:
[0087] - the tasks; - a metric gathering service function 301c-e collecting information on capabilities of the corresponding edge node, e.g., compute capacity, such as number of cores, clock speed, percentage of total compute capacity used, and transmitting the information to a performance gathering service function 302c-e;
[0088] - a performance gathering service function 302c-e collecting information on performance of the tasks (e.g., idle time) on the corresponding edge node 103c-e and transmitting the information to the decomposition service function / computing device 307 / 101 to determine / improve the deployment of the tasks for a next computation period; and
[0089] - a decomposition proxy service function 303c-e, that may implement the method 200 for decomposition of one or more computational problems, for example
[0090] - when the computing device 101 is not computationally capable of implementing the method 200, for example, if the computing device 101 has low capacity hardware, or
[0091] - when sensitive information in the edge system, such as ownership or location, should not be returned to the computation device 101, for example if a user owning a task does not want (for data security or privacy reasons) to have their costs and expenditure returned to the owner of the decomposition service.
[0092] A first example scenario in which the present invention may be implemented is in relation to a numerical modelling application using Finite Element Analysis (FEA) for weather forecasting systems or material stress models used in the aviation industry. Traditionally, such tools use high-capacity datacenters optimized for continuous use and containing racks of identical hardware, and problem decomposition tasks are optimized for this purpose. Taking advantage of spot pricing and otherwise idle hardware across the distributed edge could reduce costs and time to execution with a more flexible decomposition service.
[0093] A second example scenario in which the present invention may be implemented is in relation to a ML application, such as image recognition, whereby a typical reinforcement learning step relies on breaking down a problem space into smaller components and iteratively performing the same operation on evolving data.
[0094] Figure 4 shows a block diagram illustrating an embodiment of a computing device 101, comprising processing circuitry 401, a computer-readable data carrier, such as the memory 402, and a network interface circuitry 403. The processing circuitry 401 may comprise one or more processors, such as CPUs, microprocessors, application processors, application-specific processors, GPUs, and Digital Signal Processors (DSPs) including image processors, or a combination thereof, and the memory 402 comprises the computer program 404 comprising instructions. When executed by the processor(s), the instructions cause the computing device 101 to become operative in accordance with embodiments of the invention described herein, in particular with reference to Figure 2. More specifically, the computing device 101 becomes operative to obtain 201 performance information of the one or more network nodes. The performance information comprises idle time of the plurality of tasks hosted on the one or more network nodes, and resource capability of the one or more network nodes. The computing device 101 becomes operative to determine 203 one or more re-deploying configurations for a subset of the plurality of the tasks, based on the idle time information of the plurality of the tasks, and on the resource capability of the one or more network nodes, upon determining 204 that a threshold condition on the idle time of one or more of the plurality of tasks is fulfilled. The subset may comprise a minimum number of tasks.
[0095] The computing device 101 becomes operative to re-deploy 205, based on one of the one or more re-deploying configurations, the tasks of the subset associated with the one of the one or more re-deploying configurations. The threshold condition on the idle time of the plurality of tasks may be fulfilled if the idle time of a task of the plurality of tasks is higher than a first threshold value. Alternatively, the threshold condition on the idle time of the plurality of tasks may be fulfilled if a first total idle time is higher than a second threshold, wherein the first total idle time is the sum or average of the idle times of the two or more tasks on a same network node of the one or more network nodes. Alternatively, the threshold condition on the idle time idle time of the plurality of tasks may be fulfilled if a second total idle time is higher than a third threshold, wherein the second total idle time is the sum or average of the idle times of the tasks on two or more network nodes.
[0096] If two or more re-deploying configurations are determined, the computing device 101 may further become operative to re-deploy 205 the tasks of the subset associated with one of the two or more re-deploying configurations, by selecting 207 the one of the two or more redeploying configurations based on an overhead value. The overhead value is determined based on one or more of number of tasks in the subset associated with each re-deploying configurations and time to re-deploy the tasks in the corresponding subset. The computing device 101 may further become operative to re-deploy 205, based on one of the one or more re-deploying configurations, the tasks of the subset associated with the one of the one or more re-deploying configurations by determining 209 a subset of tasks for each of the one or more re-deploying configurations in such a way that a first or a second total idle is minimized. The first total idle time is the sum or average of the idle times of two or more tasks on a same network node and the second total idle time is the sum of the idle times of tasks on two or more network node.
[0097] The performance information obtained by the computing device 101 may further comprise information on predicted performance of a task on a network node where the task is not deployed. The predicted performance of the task may be obtained based on benchmarks of the network node where the task is not deployed. The computing device 101 may further determine 209 a subset of tasks for each of the one or more re-deploying configurations, based on the predicted performance, by comparing 213 the predicted performance of a task on a network node where the task is not deployed and the performance of the task on the current network node. The computing device 101 may further determine 209 a subset of tasks for each of the one or more re-deploying configurations, based on the predicted performance, by selecting 215 the task to be part of the subset if the predicted performance is higher than the performance of the task on the current network node.
[0098] The computer program 404 may be stored in a computer-readable data carrier, such as a memory 702. Alternatively, the computer program 404 may be carried by a data carrier signal, e.g., downloaded to the memory 402 via a network interface circuitry 403. The memory 402 may, e.g., be a Random-Access Memory (RAM), a Read-Only Memory (ROM), a Flash memory, or the like. The computer program 404 may be downloaded to the memory 402 by means of the network interface circuitry 403, as a data carrier signal carrying the computer program 404. The network interface circuitry 403 may comprise one or more of a cellular modem (e.g., GSM, UMTS, LTE, 5G, or higher generation), a WLAN / Wi-Fi modem, a Bluetooth modem, an Ethernet interface, an optical interface, or the like, for exchanging data between the computing device 101 and any network node of the communications system, and the computing device 101 and other computing devices, communications devices, a radioaccess network, and / or the Internet. The processing circuitry 401 may alternatively or additionally comprise one or more Application-Specific Integrated Circuits (ASICs), Field- Programmable Gate Arrays (FPGAs), or the like, which are operative to cause the computing device 101 to become operative in accordance with embodiments of the invention described herein.
[0099] It is to be understood that the structures as illustrated in Figure 4 are merely schematic and that the computing device 101 may include further components which, for the sake of clarity, have not been illustrated, e.g., further interfaces or processors. Also, it is to be understood that the memory, 402, may include further program code for implementing other and / or known functionalities. It is also to be understood that the computing device 101 may be provided as a virtual apparatus. In one embodiment, the computing device 101 may be provided in distributed resources, such as in cloud resources. When provided as virtual apparatus, it will be appreciated that the memory, 402, processing circuitry, 401, and communications circuitry, 403, may be provided as functional elements. The functional elements may be distributed in a logical network and not necessarily be directly physically connected. It is also to be understood that the computing device 101 may be provided as a single-node device, or as a multi-node system.
[0100] The computing device 101 may communicate with the one or more network nodes, through a subscription protocol, such as message queuing telemetry transport (MQTT) protocol, Open Platform Communications Unified Architecture (OPC-UA), Data Distribution Service (DDS), or utilizing any one of a number of transfer protocols, e.g., frame relay, internet protocol (IP), transmission control protocol (TCP), user datagram protocol (UDP), hypertext transfer protocol (HTTP), or by using Remote Procedure Call (RPC) protocols, such as gRPC, or Dynamic Resource Discovery (xDS) protocol. For example, the performance information may be sent to the computing device 101 by the corresponding network node or an entity collecting the performance as a content of a “POST” HTTP message.
Claims
CLAIMS1. A method (200) for decomposition of one or more computational problems, performed by a computing device (101), wherein the one or more computational problems are decomposed into a plurality of tasks and the tasks are deployed to one or more network nodes of a communications system, the method comprising:- obtaining (201) performance information of the one or more network nodes, wherein the performance information comprises- idle time of the plurality of tasks hosted on the one or more network nodes, and- resource capability of the one or more network nodes,- upon determining (204) that a threshold condition on the idle time of one or more of the plurality of tasks is fulfilled, determining (203) one or more re-deploying configurations for a subset of the plurality of the tasks, based on the idle time information of the plurality of the tasks, and on the resource capability of the one or more network nodes; and- re-deploying (205), based on one of the one or more re-deploying configurations, the tasks of the subset associated with the one of the one or more re-deploying configurations.
2. The method according to claim 1, wherein the threshold condition on the idle time of the plurality of tasks is fulfilled if the idle time of a task of the plurality of tasks is higher than a first threshold value.
3. The method according to claim 1, wherein the threshold condition on the idle time of the plurality of tasks is fulfilled if a first total idle time is higher than a second threshold value, wherein the first total idle time is the sum or average of the idle times of two or more tasks of the plurality of tasks on a same network node of the one or more network nodes.
4. The method according to claim 1, wherein the threshold condition on the idle time of the plurality of tasks is fulfilled if a second total idle time is higher than a third threshold value, wherein the second total idle time is the sum or average of the idle times of the tasks on two or more network nodes.
5. The method according to any of claims 1-4, wherein re-deploying (205), based on one of the one or more re-deploying configurations, the tasks of the subset associated with the one of the one or more re-deploying configurations further comprises:- determining (209) a subset of tasks for each of the one or more re-deploying configurations in such a way that a first or a second total idle is minimized, wherein the first total idle time is the sum or average of the idle times of two or more tasks on a same network node and the second total idle time is the sum of the idle times of tasks on two or more network nodes.
6. The method according to any of claims 1-5, wherein the performance information of the one or more network nodes further comprises:- information on predicted performance of a task on a network node where the task is not deployed.
7. The method according to claim 6, wherein the predicted performance of the task is obtained based on benchmarks of the network node where the task is not deployed.
8. The method according to claims 6-7, wherein determining (209) a subset of tasks for each of the one or more re-deploying configurations, based on the predicted performance further comprises- comparing (213) the predicted performance of a task on a network node where the task is not deployed and the performance of the task on the current network node; and- selecting (215) the task to be part of the subset if the predicted performance is higher than the performance of the task on the current network node.
9. The method according to any of claims 1-8, wherein the subset comprises a minimum number of tasks.
10. The method according to any of claims 1-9, wherein if two or more re-deploying configurations are determined, re-deploying (205), based on one of the two or more redeploying configurations, the tasks of the subset associated with the one of the two or more redeploying configurations comprises:- selecting (207) the one of the two or more re-deploying configurations based on an overhead value, wherein the overhead value is determined based on one or more of: number oftasks in the subset associated with each re-deploying configuration and time to re-deploy the tasks of the corresponding subset.
11. A computing device (101) for decomposition of one or more computational problems, wherein the one or more computational problems are decomposed into a plurality of tasks and the tasks are deployed to one or more network nodes of a communications system, the computing device (101) comprising a processor and a memory, the memory having stored thereon instructions executable by the processor, wherein the instructions, when executed by the processor, cause the computing device (101) to:- obtain (201) performance information of the one or more network nodes, wherein the performance information comprises- idle time of the plurality of tasks hosted on the one or more network nodes, and- resource capability of the one or more network nodes,- upon determining (204) that a threshold condition on the idle time of one or more of the plurality of tasks is fulfilled, determine (203) one or more re-deploying configurations for a subset of the plurality of the tasks, based on the idle time information of the plurality of tasks, and on the resource capability of the one or more network nodes; and- re-deploy (205), based on one of the one or more re-deploying configurations, the tasks of the subset associated with the one of the one or more re-deploying configurations.
12. The computing device (101) according to claim 11, wherein the threshold condition on the idle time of the plurality of tasks is fulfilled if the idle time of a task of the plurality of tasks is higher than a first threshold value.
13. The computing device (101) according to claim 11, wherein the threshold condition on the idle time of the plurality of tasks is fulfilled if a first total idle time is higher than a second threshold value, wherein the first total idle time is the sum or average of the idle times of the two or more tasks of the plurality of tasks on a same network node of the one or more network nodes.
14. The computing device (101) according to claim 11, wherein the threshold condition on the idle time of one or more tasks is fulfilled if a second total idle time is higher than a thirdthreshold value, wherein the second total idle time is the sum or average of the idle times of the tasks on two or more network nodes.
15. The computing device (101) according to any of claims 11-14, wherein the processing circuitry causes the computing device (101) to re-deploy (205), based on one of the one or more re-deploying configurations, the tasks of the subset associated with the one of the one or more re-deploying configurations by:- determining (209) a subset of tasks for each of the one or more re-deploying configurations in such a way that a first or a second total idle is minimized, wherein the first total idle time is the sum or average of the idle times of two or more tasks on a same network node and the second total idle time is the sum of the idle times of tasks on two or more network nodes.
16. The computing device (101) according to any of claims 11-15, wherein the performance information of the one or more network nodes further comprises:- information on predicted performance of a task on a network node where the task is not deployed.
17. The computing device (101) according to claim 16, wherein the predicted performance of the task is obtained based on benchmarks of the network node where the task is not deployed.
18. The computing device (101) according to any of claims 16-17, wherein the processing circuitry causes the computing device (101) to determine (209) a subset of tasks for each of the one or more re-deploying configurations, based on the predicted performance by- comparing (213) the predicted performance of a task on a network node where the task is not deployed and the performance of the task on the current network node; and- selecting (215) the task to be part of the subset if the predicted performance is higher than the performance of the task on the current network node.
19. The computing device (101) according to any of claims 11-18, wherein the subset comprises a minimum number of tasks.
20. The computing device (101) according to any of claims 11-19, wherein if two or more re-deploying configurations are determined, the processing circuitry causes the computing device (101) to re-deploy (205), based on one of the one or more re-deploying configurations, the tasks of the subset associated with the one of the one or more re-deploying configurations by:- selecting (207) the one of the two or more re-deploying configurations based on an overhead value, wherein the overhead value is determined based on one or more of: number of tasks in the subset associated with each re-deploying configurations and time to re-deploy the tasks in the corresponding subset.
21. A computer program (404) comprising instructions which, when run in a processing unit of a computing device (101), cause the computing device (101) to perform the method (200) according to any of claims 1 to 10.
22. A computer-readable data carrier (402) having stored thereon the computer program (404) according to claim 21.
23. A data carrier signal carrying the computer program (404) according to claim 21.