Optimization of Resource Allocation Scheduling in Cloud Computing by Genetic Algorithm 1
Saleha Javed1, Waqas Manzoor2, Nadeem Akhtar3, Dr.Kashif Zafar4 Department of Computer Science, FAST-NU, Lahore, Pakistan; [email protected]
2 Department of Computer Science, FAST-NU, Lahore; [email protected]
3 Department of Computer Science, FAST-NU, Lahore; [email protected]
4 Department of Computer Science, FAST-NU, Lahore; [email protected]
Abstract— This paper provides an optimization technique for computation of resource allocation for the new age technology Cloud Computing. As per National Institute of Standards NITS definition, cloud computing is ondemand e-business model. The proposed solution aims to produce an efficient scheduling scheme for all the jobs ‘j’ given to a cloud at time ‘t’ in such a way that minimum time ‘t’ is taken to perform those ‘j’ jobs. Our paper expands the embedded Quality of Service (QoS) defined in Server Level Agreement (SLA) of the any cloud being used along with our proposed QoS metrics. Our QoS contains 1) Priority of the document set by the user, 2) Time taken to transfer the specific job to a node in the cloud, 3) Length of the job, 4) No of CPUs every VM is using on host and 5) Capacity of VM in MIPS. The algorithm used for optimization in this paper is Genetic Algorithm which is an evolutionary population based evolutionary algorithm. The fitness of each chromosome is the time taken for execution that is calculated using the QoS metrics mentioned earlier against every scheduler generated through GA. The GA initiates from random genes; where every gene is a scheduling scheme; and evolve to the fittest solution in accordance to adaptable time. The algorithm is made robust by implementing dynamic loadbalancing such that even if underlying design and hardware change time to time, with our algorithm it will be handled by varying window sizes. The idea is implemented using CLOUDSIM-3.0 simulator and results are enumerated. The paper also includes a practical comparative analysis of the three resource allocation techniques for cloud computing. Index Terms: Cloud computing, Genetic Algorithm, Service Level Agreement (SLA), Quality of Service (QoS). Job Scheduling.
Cloud computing is surfacing as a new computing model for allowing shared network
based storage space and computer resources. One of its cores is to provide QoS (Quality of Service) guaranteed computing dynamic environments for end-users . Distributed processing, parallel processing and grid computing together emerged as cloud computing. The basic principle of cloud computing is that user data is not stored locally but is stored in the data center of internet hence reflecting the concept of word “cloud”. The enduser neither worries about the storage/computing of his data/tasks nor about the limitations of the system he possess as the cloud will execute the requested job virtually anywhere the required resources are present. Cloud is eradicating the physical dependency between end-users and hardware on which their data is residing. Figure1 shows the generic and basic architecture of the cloud computing. As a targeted problem, the aspect being handled is to improve efficiency over the cloud with respect to resource allocation which can be any tasks requested to the cloud. A generic model of cloud is shown in figure1. Task is any computational request which gives any data as input and requires a certain output after processing. Resource allocation is a fundamental but challenging problem due to the complexity of cloud computing due to which common pitfall is encountered. In could computing, resource allocation is implemented as per an SLA which is a set of quality of services (QoS) and a price agreed between a customer and a service provider. Our proposed solution is an algorithm which aims to schedule tasks on the provided resources in the cloud in the most efficient i.e. minimum and adaptable time. In order to make the algorithm flexible dynamic load-balancing is used such that ‘varying window size’. This will be further explained in implementation section. A node represents a system that is interlinked in the cloud which generates a service request to a service provider at a given rate to be processed by
its resources according to quality of services (QoS). A service provider uses a set of computer resources to support the applications over the cluster subject to an SLA which acts as a hub that has connected different independent systems/nodes in a cloud. Cloud computing is defined in three models: 1) Software as a Service (SaaS), 2) Platform as a Service (PaaS), and 3) Infrastructure as a Service (IaaS) . The paper is organized in four sections which are as follows: Section 1 includes the literature review conducted for this paper. The section is divided in three sub-parts: first part gives brief overview of genetic algorithm, second part explains the three models of cloud computing with respect to type of task they handle and third part contains the comparative analysis of three resource allocation schemes implemented so far in cloud services. In Section II the experimental setup is discussed in detail. Then our proposed solution and its algorithm are given in proceeding Section III. This section also explains the modeling of genetic algorithm on cloud computing. Results of experimentation are discussed in Section IV which is followed by conclusion in last section V.
and reproduce by constructing new solutions out of their components. GA begins with a population of candidate problem solutions. Candidate solutions are evaluated according to their ability to solve problem instances: only the fittest survive and combine with each other to produce the next generation of possible solutions. Thus increasingly powerful solutions emerge in a Darwinian universe. New solutions (chromosomes) are created by applying Genetic Operators on fittest old solutions. Few basic terminologies of GA are:
Gene: a basic unit, which controls a property of an individual i.e. attribute. Chromosome: a string of genes; a possible solution of a problem Population: a collection of individual. Fitness Function: a certain criterion which evaluates each individual. Selection: a procedure for choosing part of population that will continue the process. Crossover: it takes two candidate solutions are divides them, swapping components to produce two new candidates. Mutations: it takes single candidate and randomly changes some gene of it. Stopping Criterion: GA continues until maximum value of fitness is achieved or when it no longer increases. B. Cloud Computing Models
There are several flavors of cloud computing on the basis of cloud computing services and capabilities of the cloud . The leading three which are categorized on abstraction level of service model used by the providers (Figure2) are as follows: Figure 1: Generic Model of Cloud Computing
A. Overview of Genetic Algorithm
A biologically inspired model of intelligence and the principles of biological evolution are applied to find solutions to difficult problems The problems are not solved by reasoning logically about them; rather populations of competing candidate solutions are spawned and then evolved to become better solutions through a process patterned after biological evolution Less worthy candidate solutions tend to die out, while those that show promise of solving a problem survive
SaaS - Software as a Service: Networkhosted application. PaaS - Platform as a Service: Networkhosted software development platform. IaaS - Infrastructure as a Service: Provides hosts customer VMs or provides network storage. Iaas provides users with infrastructure services such as computation and data storage, heavily dependent upon virtualization techniques.
1) Topology (TARA):
Figure 2: Cloud Service Models 
Another criterion on which various models of cloud can be designed and distinguished is the accessibility rights given to user by cloud . In terms of this cloud deployment (ownership & paying models), following are the four types: Private cloud: spawned over exclusively for a single organization. Community cloud: expanded over consumers of shared concerns. Public cloud: open to be used by generic public. Hybrid cloud: combination of two or more infrastructures. C. Resource Allocation Schemes in Cloud Computing
Resource allocation has to be performed on two levels in cloud. First level is when any application is embedded into the cloud and made in UP & START state . This is where the load balancer plays its role by assigning designed tasks which that application can perform to physical systems. This is done in order to balance the computational load of multiple requests across several systems. Second level comes during the RUNNING state where cloud receives multiple requests. Here the cloud assigns all those requests to specific instances of that application which then execute those requests on one application platform which has its instances being executed on several systems. Allocation of resources in cloud is very crucial as it can starve services if the allocation is not managed properly. Furthermore the resources can be categorized into four types: 1) physical, 2) virtual, 3) hardware, and 4) software. For computing all types of requests/jobs and to achieve scalability, Virtual Machines are hired . Following are the schemes which cloud used for SLAs.
One of the several allocation techniques is specifically designed for Infrastructure-as-aService (Iaas) based cloud mentioned in . TARA is an architecture used for optimized resource allocation subjected to Iaas systems which are unaware of host application specifications and requirements. Thus the resources are to be allocated based on ‘What If’’ agenda i.e. independent of application’s specific requirements. TARA uses a prediction mechanism that estimates efficiency of predicted allocation along with GA based algorithm for generating optimized SLA. 2) Linear Scheduling Strategy for Resource Allocation:
This technique is designed subjected to the utilization of resources in cloud to its maximum. As discussed in  its focus is on the tasks given to the cloud at a time and the number of available virtual machines present in the cloud at that same time. It uses scheduling algorithm LSTR: linear scheduling for tasks and resources embedded on cloud. The core of this algorithm is to integrate resource consumption and resource allocation to achieve maximum utilization. This leads to allocating resources to maximum requestors which increase the QoS metrics. Thus the increase in QoS enables to dynamically increase the throughput of the cloud. 3) Dynamic Resource Allocation for Parallel Data Processing:
Since advent of dynamic computing, the whole world of internet is striving to incorporate different algorithms to achieve it. Dynamic Resource Allocation in cloud is subjected to parallel data processing  which has presented a new framework called Nephele. Different virtual machines are dynamically instantiated are terminated during the tasks performing phase. Here, one job can be divided into sub-tasks and thus is executed on multiple VMs in parallel which leads to most efficient throughput. Nephele’s architecture is designed on masterworker framework shown in Figure3. It uses three components:
Virtual Machines: should be started on user’s machine before job submission. Job Manager: the VM on user. It receives the jobs and schedules them.
Task Manager: It receives one or more tasks from the JM at a time, executes them, and after that informs the JM about their completion or possible errors.
Figure 3: Architecture of Nephele on Iaas Cloud
Every scheme discussed above is used by cloud services for resource allocation in order to achieve maximum throughput. Each of them has different technique but same prime focuses. Results showed that TARA reduced the job completion time of these applications by up to 59% when compared to application-independent allocation policies. The results showed by LSTR optimized the SLA which increased the scheduling throughput of cloud up to 20% when compared to prior scheduling schemes. Whereas by implementing dynamic resource allocation for parallel data gave the maximum throughput on overall all the levels of cloud computing. As it performs the job virtually on the requestor’s endmachine and also on other machines linked on cloud virtually (if required). Thus it ensures the job allocation and completion in best optimal time. And this is the reason of choosing Dynamic resource allocation scheme to be selected as target problem for this paper. IV.
applicable on all private, public, community and hybrid clouds. The cloud model being simulated is TARA which has SaaS SLA implemented on it. For conducting the simulation CloudSim-3.0 is used within which library for genetic algorithm JAGA library is used. This cloud simulator is JAVA oriented which architecture shown in Figure4 is explained in . It is used to simulate all cloud models based on any ownership and paying model. The CloudSim simulation layer provides support for modeling and simulation of virtualized Cloud-based data center environments including dedicated management interfaces for VMs, memory, storage, and bandwidth. The fundamental issues, such as provisioning of hosts to VMs, managing application execution, and monitoring dynamic system state, are handled by this layer. The topmost layer User Code that handles basic entities for hosts (number of machines, their specification, and etc), applications (number of tasks and their requirements), VMs, number of users and their application types, and broker scheduling policies. In this study the cloud has been modeled as it is by using the core entities Data Center, Virtual Machines, Broker, Host, Provision and Cloudlet . Here, data center entity manages VM entities where one or more hosts can be allocated to VM as per the VmAllocationPolicy. The VM policy also sets the VM creation, destruction life cycles. Broker entity or class is responsible for commencing terms and conditions between SaaS and Cloud providers based on QoS requirements. Provisioning entity handles the policy of RAM allocation to each VM. And finally, cloudlet entity is the task/job to be performed by that cloud.
Various techniques are these days being developed and embedded to answer the major question of how to achieve maximum throughput in cloud computing  . This question also leads to efficient resource allocation over the cloud  . The objective behind this research was to design an optimization mechanism for job scheduling for the fastest spreading novel technology i.e. Cloud. Researches in this particular domain are already in progress  and showing improving results in terms of efficiency enhancement. Our solution is independent of cloud deployment i.e. it will be
Figure 4: CLOUDSIM 3.0 Layered Architecture
Priority: total 4 types of priority. 22 combinations -> 4 bits required
The resource allocation scheduler is modeled on cloud computing services by defining the entities of cloud as attributes of genetic algorithm. Complete modeling along with our algorithm is shown below. All the attributes are taken of arbitrary sizes for experimentation which are then encoded into binary are well for GA. Our simulator initiates by creating random jobs, VMs and priorities for job. Randomness is ensured in each step and level to incorporate the applicability abstraction of proposed solution. Similarly the cut-points for crossover and number of genes in mutation are also chosen randomly.
Priority Id(2bits) 00 01 10 11
Type None Low Medium High
2) Chromosome Design:
Total size: (6+6+2) = 14 => (14*64) = 896 bits.
3) Algorithm: A. Modeling of our solution on GA Gene Chromosome Population Fitness Function Selection Operation
Jobs, Virtual Machines, Priority A complete Scheduler Scheme 10 Scheduler Schemes Time To Be Taken By All Jobs Formula Roulette Wheel Selection a) Crossover (one cutpoint randomly ) b) Mutation (in case of bad reproduction)
1) Binary Encoding:
Job: total 64 jobs. 26 combinations -> 6 bits required. Job Id(6bits)
3 million MIPS
Up to 64th…
Virtual Machine (VM): VM further contains following specifications:
CPU (Core: single, dual, quad) Latency (delay to reach the virtual machine)
Total 64 machines. 26 combinations -> 6 bits required. VM Id (6bits) 000000 Up to 64th…
CPU Core (Single/dual/quad) Dual
Latency (seconds) 1.23 sec
Step 1: Randomly Initialize 10 chromosomes i.e. parents genes. Step 2: Apply crossover on 10 chromosomes to produce 10 children. Step 3: Calculate fitness value of each (10 parents, 10 children) chromosome: Fitness Function: a. Calculate the Time to Be Taken by each job in all chromosomes. Let’s take a chromosome from the 10 chromosomes generated randomly in the step1. Tentatively formula is: Time Taken = 1 / ((Job Length in MIPS / (CPU Cores on VM x VM MIPS)) + Delay Latency to reach VM ) + Job Priority This will give us time to be taken of all 64 jobs in one chromosome i.e. Job-Id (6 bits)
VM-Id (6 bits)
P-Id (2 bits)
T1 = Time taken of job1
Job-Id (6 bits)
VM-Id (6 bits)
P-Id (2 bits)
T2 = Time taken of job2
b. Now, the job which has the longest time taken is the time to be taken by that complete chromosome. This will be the Fitness value of that chromosome. Step 4: Assign fitness to all the 10 parents. Step 5: Select any 2 parents via putting them on ‘Roulette-Wheel’ probabilistic selection.
Step 6: Apply crossover on those 2 parents to produce children. Step 7: In case of bad reproduction, find the threshold of badness i.e. in a chromosome of 64 genes if 50 or more genes are bad then mutate all the bad genes of that chromosome. Step 8: Continue repeating steps Step 9: Stop if: a. Fitness stops to improve. b. Any chromosome reaches to highest fitness. VI.
As shown in the figures 5, 6 below, the results produced depicted the increasing fitness values of solutions being generated. This proofs that GA is evolving to the optimal resource allocation scheduler for cloud.
Optimization algorithms are these days emerging as most promising solution to every technology present to date. This study was conducted to merge the capabilities of optimization with the future of internet i.e. CLOUD. The results achieved visibly show that the common pitfall of cloud which is encountered in resource allocation scheduling can be efficiently improved by Genetic Algorithm. This paper was subjected to creation of generic solutions but if more specific to architectural dependencies algorithms are designed, it is definite that even more optimal solutions can be generated which will exponentially increase the throughput of cloud computing. REFERENCE 
Lizhewang,JieTao,Kunze, Castellanos, A.C,Kramer, D.,Karl,w, ”High Performance Computing and Communications”,IEEE International Conference HPCC,2008,pp.825-830.
Cloud computing and distributed computing. http://www.cncloudcomputing.com/
Cloud Service Models, Seminar–Cloud Computing and Web Services, Eeva Savolainen, Helsinki, 10.2.1012, UNIVERSITY OF HELSINKI Department of Computer Science.
The NIST Definition of Cloud Computing Recommendations of the National Institute of Standards and Technology Peter Mell Timothy Grance.
Survey on Resource Allocation Strategies in Cloud Computing Ronak Patel#1, Sanjay Patel*2 #1PG Student of Computer Engineering, LDRP-ITR, Gujarat Technological University, Gujarat, India *2Assistant Professor, Department of Computer Engineering, LDRP-ITR, Gujarat, India
V. Vinothina, Dr. R. Shridaran, and Dr. Padmavathi Ganpathi, A survey on resource allocation strategies in cloud computing, International Journal of Advanced Computer Science and Applications, 3(6):97--104, 2012.
Gunho Lee, Niraj Tolia, Parthasarathy Ranganathan, and Randy H. Katz, Topology
Figure 5: Converging Solution A
Figure 6: Converging Solution B
aware resorce allocation for data-intensive workloads, ACM SIGCOMM Computer Communication Review, 41(1):120--124, 2011. 
Abirami S.P. and Shalini Ramanathan, Linear scheduling strategy for resource allocation in cloud environment, International Journal on Cloud Computing: Services and Architecture (IJCCSA), 2(1):9-17, 2012.
Daniel Warneke and Odej Kao, Exploiting dynamic resource allocation for efficient parallel data processing in the cloud, IEEE Transactions On Parallel And Distributed Systems, 2011.
M. Abu Sharkh, M. Jammal, A. Shami, A. Ouda, “Resource Allocation in a Network Based Cloud Computing Environment: Design Challenges”, to appear in IEEE Communications Magazine, November 2013 Issue.
Shin-ichi Kuribayashi, “Optimal Joint Multiple Resource Allocation Method for Cloud Computing Environments”, International Journal of Research and Reviews in Computer Science (IJRRCS) Vol. 2, No. 1, March 2011
Ronak Patel, Sanjay Patel, “Survey on Resource Allocation Strategies in Cloud Computing”, International Journal of Engineering Research & Technology (IJERT), ISSN: 2278-0181 Vol. 2 Issue 2, February- 2013
V.Vinothina, Dr.R.Sridaran, Dr.PadmavathiGanapathi, “Survey on Resource Allocation Strategies in Cloud Computing”, (IJACSA) International Journal of Advanced Computer Science and Applications, Vol. 3, No.6, 2012
“Tasks Scheduling Optimization for the Cloud Computing systems”, Sandeep Tayal, University School of Information Technology, Guru Gobind Singh Indraprastha University, Delhi 10006, India.
CloudSim: a toolkit for modeling and simulation of cloud computing environments and evaluation of resource provisioning algorithms Rodrigo N. Calheiros1, Rajiv Ranjan2, Anton Beloglazov1, C´esar A. F. De Rose3 and Rajkumar Buyya1. Cloud Computing and Distributed Systems
(CLOUDS) Laboratory, Department of Computer Science and Software Engineering, The University of Melbourne, Australia School of Computer Science and ngineering, The University of New South Wales, Sydney, Australia Department of Computer Science, Pontifical Catholic University of Rio Grande do Sul, Porto Alegre, Brazil.