Scheduling Independent Parallel Jobs in Cloud Computing: A Survey - Abdolhosseini, Samaneh; Kheirabadi, Mohammad Taghi (Journal of Telecommunication, Electronic and Computer Engineering (JTEC), 2019)
The impressive and rapid development of the internet and wireless networks leads to growing of users in the last decade. Therefore, the limited resources of these systems are now more evident than in the past. Cloud computing is the latest technology to handle the limitation of resources for users. Type of jobs play the main role in the design of scheduling algorithms. A job can be run simultaneously by multi-processor called parallel job, while the job can run by a single processor called serial job. In addition, based on dependency of jobs to each other, the jobs can be divided into dependent and independent jobs. Scheduling the independent parallel jobs is one of important challenges in cloud computing. Hence, in this paper, we classified the existing algorithms of scheduling independent parallel jobs into two main categories including Non-Layer and Two-Layer. This division is performed based on the number of jobs running on a processor simultaneously. Furthermore, the existing scheduling algorithms belong to each categories are divided into two subcategories based on their solving techniques including heuristic and metaheuristic. Then, the algorithms belong to each category are described in detail. After that, these algorithms are compared to each other based on their different attributes. Our analysis show that the existing Two-Layer scheduling algorithms focus on cost parameter to increase the performance of scheduling algorithms by reducing the waste time of CPU through simultaneous assigning more than one job to each physical machine, while Non-Layer scheduling algorithms didn't pay attention to this issue and only employ techniques to manage the scheduling queue in order to improve the different parameters such as cost, energy, load balancing and deadline.