Scheduling Jobs on Cloud Computing using Firefly Algorithm

Cloud computing is a new technology, instead of all computer hardware and software that used on desktop, or somewhere within company's network, it's presented as a service by cloud service providers and accessed via the Internet. Exactly where hardware and software are located and how everything works does not matter. In cloud computing there are many jobs that requires to be executed on the available resources to achieve best minimal execution time. Several optimization methods are available for cloud job scheduling. However, the job scheduling process is still need to be optimized. This paper proposes a new job scheduling mechanism using Firefly Algorithm to minimize the execution time of jobs. The proposed mechanism based on information of jobs and resources such as length of job speed of resource and identifiers. The scheduling function in the proposed job scheduling mechanism firstly creates a set of jobs and resources to generate the population by assigning the jobs to resources randomly and evaluates the population using a fitness value which represents the execution time of jobs. Secondly the function used iterations to regenerate populations based on firefly behavior to produce the best job schedule that gives the minimum execution time of jobs. Several scenarios are implemented using Java Language and CloudSim simulator. Different settings have been considered in the evaluation and experimentation phase to examine the proposed mechanism in different workloads. The first phase of the evaluation process describes how the proposed mechanism can be used to minimize the execution time of jobs. The second phase of the evaluation process compares the proposed mechanism with First Come First Serves (FCFS) algorithm. The results revealed that the proposed mechanism minimizes the execution time significantly. Furthermore, the proposed mechanism outperformed the FCFS algorithm.