# A Discrete Prey-Predator Algorithm for Cloud Task Scheduling
###### Abstract  
Cloud computing is considered a key Internet technology. Cloud providers offer services through the Internet, such as infrastructure, platforms, and software. The scheduling process of cloud providers' tasks concerns allocating clients' tasks to providers' resources. Several mechanisms have been developed for task scheduling in cloud computing. Still, these mechanisms need to be optimized for execution time and makespan. This paper presents a new task-scheduling mechanism based on Discrete Prey-Predator to optimize the task-scheduling process in the cloud environment. The proposed Discrete Prey-Predator mechanism assigns each scheduling solution survival values. The proposed mechanism denotes the prey's maximum surviving value and the predator's minimum surviving value. The proposed Discrete Prey-Predator mechanism aims to minimize the execution time of tasks in cloud computing. This paper makes a significant contribution to the field of cloud task scheduling by introducing a new mechanism based on the Discrete Prey-Predator algorithm. The Discrete Prey-Predator mechanism presents distinct advantages, including optimized task execution, as the mechanism is purpose-built to optimize task execution times in cloud computing, improving overall system efficiency and resource utilization. Moreover, the proposed mechanism introduces a survival-value-based approach, as the mechanism introduces a unique approach for assigning survival values to scheduling solutions, differentiating between the prey's maximum surviving value and the predator's minimum surviving value. This improvement enhances decision-making precision in task allocation. To evaluate the proposed mechanism, simulations using the CloudSim simulator were conducted. The experiment phase considered different scenarios for testing the proposed mechanism in different states. The simulation results revealed that the proposed Discrete Prey-Predator mechanism has shorter execution times than the firefly algorithm. The average of the five execution times of the Discrete Prey-Predator mechanism was 270.97 s, while the average of the five execution times of the firefly algorithm was 315.10 s.  
cloud computing; job scheduling; optimization; Prey-Predator algorithm 2020  
environment. Several cloud-task-scheduling mechanisms have been developed to allocate tasks to resources to reduce their execution time. Several nature-inspired metaheuristics, such as particle swarm optimization, ant colony optimization, and the firefly algorithm, have been employed as optimization techniques for the cloud-task-scheduling problem [7; 8; 9; 10]. These methods can find satisfactory solutions but only sometimes optimal ones. When scheduling tasks, allocating tasks to available and appropriate resources should consider various factors, such as cost, minimum completion time, task execution time, deadline, and load balancing [11; 12; 13]. In cloud computing, resources can be shared through virtualization. These resources are represented as virtual machines (VMs), each encompassing several computational resources with limited capacities, such as processing power, memory size, network, and bandwidth [4; 14]. Tasks in the cloud are represented as a collection of individual atomic tasks submitted by cloud users [15]. Each task has specific requirements, such as the required processing length in millions of instructions (MI). A cloud provider may receive a set of tasks with varying requirements that need to be scheduled for execution in a timely manner while effectively utilizing all available and ready resources [16; 17]. The scheduling problem can be formulated as finding the optimal solution to allocate tasks T = {T1, T2, T3,..., Tn} to suitable virtual machines VM = {VM1, VM2,..., VMn} while considering the requirements of the tasks and the capacities of the resources [11; 18]. Several mechanisms have been developed for task scheduling in cloud computing. Still, these mechanisms need to be optimized in terms of execution time and makespan.