Scheduling of Distributed Applications on the Computing Continuum: A Survey

The demand for distributed applications has significantly increased over the past decade, with improvements in machine learning techniques fueling this growth. These applications predominantly utilize Cloud data centers for high-performance computing and Fog and Edge devices for low-latency communication for small-size machine learning model training and inference. The challenge of executing applications with different requirements on heterogeneous devices requires effective methods for solving NP-hard resource allocation and application scheduling problems. The state-of-the-art techniques primarily investigate conflicting objectives, such as the completion time, energy consumption, and economic cost of application execution on the Cloud, Fog, and Edge computing infrastructure. Therefore, in this work, we review these research works considering their objectives, methods, and evaluation tools. Based on the review, we provide a discussion on the scheduling methods in the Computing Continuum.


I. INTRODUCTION
Distributed processing applications [1] encompass gathering, storing, and analyzing massive amounts of data, gradually overwhelming centralized Cloud data centers.On the other hand, Fog and Edge computing technologies extend the Cloud with computation, storage, and network services in the proximity of the Internet of Things (IoT) devices [2].Consequently, media, healthcare, and manufacturing companies, to name a few, can move their latency-sensitive applications from the Cloud data centers to utilize the Fog and Edge devices near data producers and consumers.
As alternatives to the Cloud, infrastructures such as Exoscale Edge [3], Google Distributed Cloud [4], along with local services provisioned by mobile devices [5], consolidate the Fog and Edge with computing and data management services.The unification of Cloud, Fog, and Edge infrastructures (aka.Computing Continuum) aims to provide a seamless aggregation of distributed resources of all kinds to support the emerging dataflow processing applications [6].
Over the past few years, academia and industry investigated the challenges in distributed application execution and scheduling on the Computing Continuum [7].This work reviews the state-of-the-art methods for scheduling distributed applications on the Computing Continuum provisioned by different resource providers.
Most scheduling and placement methods prioritize minimizing application completion times, which is paramount in meeting users' service level agreement requirements.Fast completion times are a fundamental objective that the methods address to ensure user satisfaction.Additionally, the timely delivery of services remains a central concern for application scheduling.Moreover, energy efficiency is a critical factor that resource allocation and scheduling methods must consider.To underscore the magnitude of this issue, Google, for instance, approximately consumes 15.5 TW h of electricity annually, with a significant portion being attributed to its data centers 1 .In addition, economic cost represents another critical parameter that resource providers prioritize for optimizing infrastructure maintenance expenses, ultimately benefiting their consumers.Hence, after reviewing the research works, we categorize them based on the non-functional objectives, such as the completion time, energy consumption, and economic cost.
The rest of the paper is structured as follows.We survey the literature mainly addressing completion time in Section II.Section III describes the application scheduling and resource allocation methods with the main objective of minimizing energy consumption.Section IV categorizes the cost-optimizing methods, followed by the discussion in Section V and the conclusion in Section VI.

II. COMPLETION TIME
In this section, we begin by discussing the most prominent methods in the literature, exploring the time of the application execution.Samani et al. [8] proposed a multilayer resource partitioning method to minimize resource wastage by utilizing the total capacity of heterogeneous Fog devices.This method places each service on a Fog device in each partition by minimizing the completion time of an application.Moreover, this method aims to maximize deadline satisfaction in the Fog with a high arrival rate of requests.Skarlat et al. [9] explored the Fog service placement problem and modeled it as an integer programming model by optimizing the IoT application's completion time on Fog and Cloud resources.Therefore, in this method, an orchestrator allocates the resources of the Fog data centers to users' applications and proactively collects periodic updates to satisfy the QoS metrics, such as the deadline for the application's completion and processing times.
Veith et al. [10] proposed a scheduling strategy called response time rate with region patterns, which uses a greedy strategy to identify the resources that minimize the service completion time on the Cloud and Fog.This method decomposes the application based on dataflow patterns such as a fork or a join and distributes it to the Cloud and Fog computing infrastructures.
Veith et al. [11] applied reinforcement learning and the Monte-Carlo tree search algorithm to reschedule application operators during runtime.This method formulates the operator assignment problem as a Markov decision process to minimize the application's completion time.Afterward, the learning algorithm determines the reconfiguration of the resource allocation to the operators.
Xia et al. [12] proposed four combined scheduling heuristics, such as Fog devices and application components ordering, optimizing the weighted average completion time for a large set of heterogeneous applications constrained by a group of non-functional parameters, including processing and storage capabilities.
Souza et al. [13] applied Min-Max heuristics to optimize the service completion time.Best-fit with the queue method performs service atomization to represent parallel and sequential service execution strategies.It analyzes the service request and the expected availability time for Fog devices.The BQ method minimizes the service's transmission and processing times while maximizing the priority of the Edge devices for the microservices waiting in a processing queue.
Sun et al. [14] investigated a two-level scheduling model categorizing Fog devices in clusters based on their locations.Afterward, the scheduling method decides on the appropriate Fog cluster and the proper device within the given cluster.The weighted multi-objective optimization method reduces the service completion time and maximizes the reliability of application execution.
Elgamal et al. [15] proposed an algorithm to partition operations of an IoT application on Edge and Cloud devices to minimize operations' completion times.This method includes data processing, queuing, and the tradeoff between processing and transmission when placing operators on heterogeneous devices.
Khare et al. [16] presented an optimization-based scheduling method to minimize the application's completion time.This method decomposes an application graph into several linear paths from the application's source to the sink.Afterward, it applies an execution-time prediction model for co-located linear dependencies to minimize the completion times of all paths in the application's graph.
Ravindra et al. [17] proposed an open-source orchestration platform for application execution on the Cloud, Fog, and Edge devices.This platform supports streams, micro-batches, and various data processing frameworks like Apache Edgent, Storm, and Spark.The modeled orchestrator supports the migration of application components if the resource reaches an over-utilized state by executing a high workload of operators and application components.
Renart et al. [18] extended a data analytics software framework called R-Pulsar to solve the placement problem of IoT operators on the Edge and Cloud devices.This method reduces data transfer rate, completion time, and economic cost (based on AWS and Microsoft pricing models).It divides the IoT application graph into paths consisting of sequences of operators.Afterward, the longest path defines the completion time, including data transmission times between operators over the path.

III. ENERGY CONSUMPTION
A growing body of literature has recently described various methods to curb energy consumption.Kansal et al. [19] proposed a linear regression-based method to reduce the energy consumption of virtual machines.The method considers static and dynamic power consumption of a device's processor, memory, and storage.Therefore, it monitors the resource utilization of virtual machines with the help of a virtualization monitoring tool, retrains the regression-based model, and estimates the energy consumption.
Al Faruque et al. [20] proposed a decentralized optimization-based scheme in which distributed controllers provide the energy management service in a Fog computing infrastructure.This method manages the energy consumption of residential buildings and all devices, such as sensors and actuators, along with computing and network devices.The control-as-a-service architecture module manages the devices to decrease energy consumption, cost, and time for their product to be available in the market.
Shojafar et al. [21] proposed an energy-adaptive resource scheduler to maximize computational efficiency while maintaining the user's satisfaction.The main goal of this method was to minimize energy consumption while executing the application in the Fog infrastructure.This scheduler consolidates the resources by managing the application execution without reconfiguring virtual machines.
Pooranian et al. [22] designed a penalty-aware heuristic algorithm to minimize processing and transmission energy in the Fog and preserve load balancing among the data centers.
Their penalty-aware algorithm assigns a negative score to a Fog data center consuming more energy and avoids allocating its resources to applications during the subsequent runtime iteration.
You et al. [23] proposed an energy-efficient asynchronous mobile edge computation offloading method.This method solves the optimization-based computation offloading problem to obtain a decision between local processing on a mobile device and offloading the computation to the Edge infrastructure.
Reddy et al. [24] proposed a genetic-based model to minimize the energy consumption of the Fog devices.This model reduces the number of service requests failing to perform their operations while shortening the overall execution time.This method applies a reinforcement learning model to optimize the energy consumption of Fog devices while executing the applications.
Menouer [25] presented a scheduling model based on preference, similar to the Technique for Order Preference by Similarity to Ideal Solution (TOPSIS) [26] that optimizes multiple criteria, including resource utilization and energy consumption.A decision-making algorithm reduces the processing, memory, storage resource utilization, and power consumption of resources, aimed at satisfying the user's and resource provider's requirements while balancing them for executing every application.
Summary.These works optimize either a single constrained objective [19], [22], [21], [23] or bi-objective [25] model and do not focus on minimizing cost along with the energy consumption of an application's execution on the heterogeneous Computing Continuum.

IV. ECONOMIC COST
Recently, considerable ongoing research and effort has been dedicated to the economic cost aspect within the Computing Continuum.Aazam et al. [27] proposed a method to manage the Fog devices as a heterogeneous pool for data processing with unpredictable resource demands.Therefore, the resource provider considers the application requirements, such as the type and price of the service, to reduce the economic cost of service execution in the Fog while encouraging the application providers to use this infrastructure.
Zhao et al. [28] proposed a price-based competition between the heterogeneous Edge and Cloud resources, while this method balances all the providers' profits.Their proposed method maximizes both providers' profit and users' satisfaction.The Edge resources are more profitable when the cost is a user's essential metric.
De Maio and Kimovski [29] investigated a parallel task decomposition method that could potentially improve the Fog's completion time, reliability, and monetary cost of extreme data workflows.They evaluated the Pareto-based method with four use-case workflows from the field of natural sciences through the Spark-enabled mobile Edge offloading Monte-Carlo simulator and extended FogTorchPI [30].Moreover, it categorized the workflow's tasks based on their dependencies and devised the independent tasks' offloading to the Fog infrastructure.
Sharghivand et al. [31] proposed a double-sided matching scheduler for data analytics tasks at the Edge based on the device and application preferences toward lower completion time and cost.This method uses game theory principles to maximize the aggregated users' and devices' utilities.In particular, it improves the application completion time, economic cost, service deadline, and the Edge service violation when a device fails to complete its execution within the deadline.
Nguyen et al. [32] proposed an optimization-based service placement method to balance the tradeoff between total operating cost and service quality.This optimization method aims to minimize the total operating cost for a service provider and maximize the quality of the service in terms of network delay.
Li et al. [33] proposed a Cloud-based video streaming service called CVS2 that enables on-demand transcoding of video streams.CVS2 focuses on the tradeoff between the processing time and cost to encode on-demand video streams with different qualities.This method aims to maintain a robust QoS for viewers and minimize the cost for the video service providers.
Ni et al. [34] proposed a priced-timed Petri net-based strategy for resource allocation in a Fog computing infrastructure.This method represents IoT tasks in the Fog as a priced-timed Petri net ordered by the tasks' completion times and the user's costs of their execution.Priced-timed Petri nets [35] generalize classic Petri nets, incorporating continuous-time clocks, realtime constraints, and computation pricing.A heuristic algorithm allocates IoT applications to Fog devices to minimize the completion time and maximize financial savings for the resource and application providers.
Pham et al. [36] proposed a heuristic algorithm for task scheduling on the Cloud and Fog devices to maximize the aggregated utility of cost and completion time.This method ranks the application's tasks based on the critical path length from every task to the exit task.Moreover, the method assumes that the total cost of executing the application on the Fog devices is lower than the Cloud because the Fog provider does not charge for its local executions.

V. DISCUSSION
We briefly describe the main contributions of the existing works and identify the research directions.We classify them based on their primary objectives for optimization and methodologies.
Table I presents an overview of the prevailing research efforts discussed in the previous sections.The table classifies the research works based on the optimization metrics they use.Furthermore, it presents the factors of processing time, latency, and bandwidth influencing the completion time.
As we observe in Table I, most methods optimize the factors influencing the completion time (41%), network latency, and bandwidth.In addition to these objectives, only a smaller fraction focuses on reducing energy consumption (29.5%) and economic costs (29.5%).We summarize in Figure 1 the percentage of research articles in this survey that address the aforementioned objectives.Therefore, we can conclude that the currently available techniques do not adequately address the energy efficiency issues and economic costs essential for the resource providers.
Table II further summarizes the research works based on the optimization methods and core algorithms used.We can observe that the majority of methods are based on heuristic techniques.However, considering the other optimization algorithms, other works use several possible methods, including graph theory and machine learning.Figure 2 shows that most research works propose linear-, nonlinear-programming, or heuristic-based scheduling methods.
In terms of evaluation tools, Table III reveals that most of the works use either simulation or a real testbed to evaluate the placement and scheduling methods.Only a small fraction implements both testbed infrastructures and simulation.

VI. CONCLUSION
We surveyed the literature's objectives and methodologies related to resource provisioning and scheduling for dataflow processing applications on the Cloud, Fog, and Edge.We categorized the research studies based on their objectives: completion time, energy consumption, and economic cost.The classification shows that most of the research works explored the completion time with a focus on the processing time 46% simulation 42% real testbed 11% simulation and real testbed Fig. 3: Percentages of research articles evaluating their methods by simulation, real testbed, or both tools.
and that energy consumption or user's cost for application execution were less often addressed.We plan to extend this survey by exploring autoscaling methods for large-scale data processing in the Computing Continuum.
Figure 3 depicts the ratio of the research papers evaluating their methods through the simulation or real testbed experiments.

TABLE I :
Classification of the research works according to scheduling optimization metrics.

TABLE II :
Classification of the research works according to optimization methods.
[11] Alexandre da Silva Veith, Marcos Dias de Assunc ¸ao, and Laurent Lefèvre.Monte-Carlo tree search and reinforcement learning for

TABLE III :
Classification of the research works according to evaluation tools.