International Journal of Computer Applications (0975 – 8887) Volume 163 – No 9, April 2017 34 A Simplified Particle Swarm Optimization for Job Scheduling in Cloud Computing Ibrahim Attiya School of Computer and Communication Engineering, University of Science and Technology Beijing, Beijing, China Mathematics Department, Faculty of Science, Zagazig University, Zagazig, Egypt Xiaotong Zhang School of Computer and Communication Engineering, University of Science and Technology Beijing, Beijing, China Beijing Key Laboratory of Knowledge Engineering for Materials Science, Beijing, China ABSTRACT Recent advances in various areas such as networking, information and communication technologies have greatly boosted the potential capabilities of cloud computing and made it become more prevalent in recent years. Cloud computing is a promising computing paradigm that facilitates the delivery of IT infrastructure, platforms, and applications of any kind to consumers as services over the internet. Although cloud computing systems nowadays provide better ways to accomplish the job requests in terms of responsiveness and scalability under various workloads, scheduling of jobs or tasks in cloud environment is still NP- complete and complex in nature due to the dynamicity of resources and on-demand user application requirements. In this paper, a simplified version of particle swarm optimization (PSO) algorithm is proposed to solve the job scheduling problem in cloud computing environment. To evaluate the performance of the proposed approach, this study compares the proposed PSO strategy with genetic algorithm (GA), by having both of them implemented on CloudSim toolkit. The results obtained demonstrate that the presented PSO algorithm can significantly reduce the makespan of job scheduling problem compared with the other metaheuristic algorithm evaluated in this paper. General Terms Computer Networks, Distributed Systems, Cloud Computing. Keywords Cloud computing, job scheduling, makespan, particle swarm optimization, resource allocation. 1. INTRODUCTION Cloud computing is an emerging technology that facilitates the delivery of various services such as infrastructure, servers, storage and applications to consumers over the internet. More specifically, it aims to deliver such services on a pay-per-use basis. Cloud computing can be defined as “a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction” [1]. This definition reflects the essential characteristics of cloud computing environment, for instance, on-demand self-service, accessible through broad networks like the internet, can be quickly as well as easily scaled up or down on demand, draw from unlimited pool of computing resources and involves some sort of metering capability to track usage [2]. Cloud computing has been proposed as a new computing paradigm which can offer practical solutions for solving the limitation of restricted amount of resources and significantly reduce the cost of purchasing, maintaining and managing the physical resources [3, 4]. Specifically, it is the further development of distributed computing, parallel computing and grid computing [5]. Cloud computing has gained its popularity due to its ability to facilitate the provision and use of IT infrastructure, platforms, and applications of any kind in the form of services that are electronically available on the Web. Its services are targeted to the mass, ranging from the end consumers hosting their own documents on the internet to enterprises outsourcing their whole IT infrastructure to external data centers [6]. In other words, cloud computing can serve multiple sectors effectively. Firstly, it provides great business models for small computational science and engineering research groups because these groups often do not have enough human resources and knowledge to deal with the complexity of computational and data infrastructure for their research [7]. Secondly, it offers significant benefit to IT organizations by freeing them from the low-level tasks of setting up and maintaining basic hardware and software infrastructures and thus enabling them to focus on innovation and creating business value for their services [6]. Thirdly, it offers an exciting opportunity for end users by enabling them to utilize a variety of devices, including PCs, laptops, smartphones, and PDAs to access their personal data, programs, storage, and application-development platforms over the internet, via on-demand services offered by cloud providers. Last but not the least, cloud computing enables consumers to take benefit from all of the provided technologies without the need for deep knowledge about or expertise with each one of them [2]. Moreover, the cloud aims to reduce costs and help the consumers concentrate on their core business instead of being impeded by obstacles of IT. Central to any cloud environment is the concept of virtualization. The virtualization technology further makes cloud computing different from the traditional paradigms, and also makes cloud computing more convenient in the commercialization [8]. Virtualization provides a promising approach to separate the hardware and software resources and allows running several independent virtual servers on a single physical device [9]. Hence, all the resources are represented as virtual machine (VM) instances and allocated to cloud service customers based on the pay-as-you-go manner [3]. Each VM is an abstract unit of computing, memory and storage capacities in the cloud. The size of CPU, memory, and other resources in VMs can be configured according to the time- varying demand of consumers [8] and, accordingly the cloud resources are more effectively and efficiently utilized.