Load Balancing with Neural Network

—This paper discusses a proposed load balance technique based on artificial neural network. It distributes workload equally across all the nodes by using back propagation learning algorithm to train feed forward Artificial Neural Network (ANN). The proposed technique is simple and it can work efficiently when effective training sets are used. ANN predicts the demand and thus allocates resources according to that demand. Thus, it always maintains the active servers according to current demand, which results in low energy consumption than the conservative approach of over-provisioning. Furthermore, high utilization of server results in more power consumption, server running at higher utilization can process more workload with similar power usage. Finally the existing load balancing techniques in cloud computing are discussed and compared with the proposed technique based on various parameters like performance, scalability, associated overhead... etc. In addition energy consumption and carbon emission perspective are also considered to satisfy green computing.


I. INTRODUCTION
Cloud computing can help business shift their focus to developing good business applications that will bring true business value [1].Cloud computing can mainly provide four different service like: virtual server storage (Infrastructure as a service or IaaS) such as Amazon Web Services, software solution provider over the internet (Software as a Service or SaaS), software and product development tools (Platform as a Service or PaaS) such as Google Apps and Communication as a service or CaaS) [2] [3]].Clouds are deployed on physical infrastructure where Cloud middleware is implemented for delivering service to customers.Such an infrastructure and middleware differ in their services, administrative domain and access to users.Therefore, the Cloud deployments are classified mainly into three types: Public Cloud, Private Cloud and Hybrid Cloud.Due to the exponential growth of cloud computing, it has been widely adopted by the industry and there is a rapid expansion in data-centers.This expansion has caused the dramatic increase in energy use and its impact on the environment in terms of carbon footprints.The link between energy consumption and carbon emission has given rise to an energy management issue which is to improve energy-efficiency in cloud computing to achieve Green computing [4].This paper proposed a new algorithm to achieve Green computing in load balancing.The algorithm uses artificial neural network to solve load balancing in cloud, its performance is discussed and compared with the existing load balancing techniques.
To deliver technical and economic advantage, cloud computing must be deployed, as well as implemented, successfully.Deployment supersedes implementation, because merely utilizing the services of a cloud vendor does not by itself differentiate an organization from its competitors.Competitors likewise can implement cloud services, imitating resulting IT efficiencies.Successful deployment denotes the realization of unique or valuable organizational benefits that are a source of differentiation and competitive advantage.ITrelated success is described through three categories of derived benefit: strategic, economic, and technological.Strategic refers to an organization's renewed focus on its core business activities that can accompany a move to cloud computing when its IT functions, whole or in part, are hosted and/or managed by a cloud vendor.Economic refers to an organization's ability to tap the cloud vendor's expertise and technological resources to reduce in-house IT expenses.Technological refers to an organization's access to state-ofthe-art technology and skilled personnel, eliminating the risk and cost of in-house technological obsolescence.Deployment is defined in terms of the strategic, economic and technological benefits realized through cloud computing, setting the organization apart from its competitors.Optimizing the strategic, economic, and technological benefits derived from cloud computing is a function of an organization's ability to use its own IT-related resources and capabilities to leverage the resources of the vendor.Since cloud computing is generally characterized as an IT service (with the vendor providing and maintaining the software and hardware infrastructure), the ability of the client organization to integrate and utilize the vendor's services determines the extent IT benefits are likely to be achieved.Organizationspecific capabilities related to implementation, integration, and utilization of cloud services play a key role in deployment performance [3].Organization-Specific capabilities that can be a source of competitive advantages are [3]: IT resources giving the organization functionality, flexibility, and scalability.
 Managerial.Human IT resources resulting from training, experience, and insight.
 Relational.Ability to develop positive associations with IT providers characterized by trust.www.ijacsa.thesai.orgII.GREEN COMPUTING "Green" has become a popular term for describing things that are good for the environment, generally healthful and, more recently, economically sensible."Going Green" implies reducing your energy use and pollution footprint.The technology community, specifically computer users, have popularized the term "Green Computing," which is the reduction of the pollution and energy footprint of computers.Green Computing, or Green IT, is the practice of implementing policies and procedures that improve the efficiency of computing resources in such a way as to reduce the energy consumption and environmental impact of their utilization.As High Performance Computing (HPC) is becoming popular in commercial and consumer IT applications, it needs the ability to gain rapid and scalable access to high end computing capabilities.This computing infrastructure is provided by cloud computing by making use of datacenters.It helps the HPC users in an on-demand and payable access to their applications and data, anywhere from a cloud [4][5] [6].Cloud computing data-centers have been enabled by high-speed computer networks that allow applications to run more efficiently on these remote, broadband computer networks, compared to local personal computers.These data-centers cost less for application hosting and operation than individual application software licenses running on clusters of on-site computer clusters [11].However, the explosion of cloud computing networks and the growing demand drastically increases the energy consumption of data-centers, which has become a critical issue and a major concern for both industry and society [8].This increase in energy consumption not only increases energy cost but also increases carbon-emission.High energy cost results in reducing cloud providers' profit margin and high carbon emission is not good for the environment [7].Hence, energyefficient solutions that can address the high energy consumption, both from the perspective of the cloud provider and the environment are required.This is a dire need of cloud computing to achieve Green computing.

A. Features of Clouds enabling Green computing
The key driver technology for energy efficient Clouds is "Virtualization," which allows significant improvement in energy efficiency of Cloud providers by leveraging the economies of scale associated with large number of organizations sharing the same infrastructure.Virtualization is the process of presenting a logical grouping or subset of computing resources so that they can be accessed in ways that give benefits over the original configuration.By consolidation of underutilized servers in the form of multiple virtual machines sharing same physical server at higher utilization, companies can gain high savings in the form of space, management, and energy.According to reference [9], there are following four key factors that have enabled the Cloud computing to lower energy usage and carbon emissions from ICT.
 Dynamic Provisioning: In traditional setting there are two reasons for over-provisioning: first, it is very difficult to predict the demand at a time and second, to guarantee availability of services and to maintain certain level of service quality to end users.Cloud providers monitor and predict the demand and thus allocate resources according to demand.Those applications that require less number of resources can be consolidated on the same server.Thus, datacenters always maintain the active servers according to current demand, which results in low energy consumption than the conservative approach of over-provisioning.
 Multi-tenancy: The smaller fluctuation in demand results in better prediction and results in greater energy savings.Using multi-tenancy approach, Cloud computing infrastructure reduces overall energy usage and associated carbon emissions.The SaaS providers serve multiple companies on same infrastructure and software.This approach is obviously more energy efficient than multiple copies of software installed on different infrastructure.
 Server Utilization: High utilization of server results in more power consumption, server running at higher utilization can process more workload with similar power usage.Using virtualization technologies, multiple applications can be hosted and executed on the same server in isolation, thus lead to utilization levels up to 70%.
 Datacenter Efficiency: The Cloud datacenters are quite different from traditional hosting facilities.A cloud datacenter could comprise of many hundreds or thousands of networked computers with their corresponding storage and networking subsystems, power distribution and conditioning equipment, and cooling infrastructures.A data center hosts computational power, storage and applications required to support an enterprise business.A data center is central to modern IT infrastructure, as all enterprise content is sourced from or passes through it.There are two major and complementary methods [8] to build a green data center: first, utilize green elements in the design and building process of a data center.Second, Greenify the process of running and operating a data center in everyday usage.

B. Green Load Balancing
Load balancing can be one such energy-saving solution in cloud computing environment.Thus load balancing is required to achieve Green computing in clouds which can be done with the help of the following two factors [6]:  Reducing Energy Consumption -Load balancing helps in avoiding overheating by balancing the workload across all the nodes of a cloud, hence reducing the amount of energy consumed.
 Reducing Carbon Emission -Energy consumption and carbon emission go hand in hand.The more the energy consumed, higher is the carbon footprint.As the energy consumption is reduced with the help of Load balancing, so is the carbon emission helping in achieving Green computing.
In addition, the existing load balancing techniques in clouds, consider various parameters like: www.ijacsa.thesai.org 1) Throughput is used to calculate the no. of tasks whose execution has been completed.It should be high to improve the performance of the system.
2) Overhead Associated determines the amount of overhead involved while implementing a load-balancing algorithm.It is composed of overhead due to movement of tasks, inter-processor and inter-process communication.This should be minimized so that a load balancing technique can work efficiently [3].
3) Fault Tolerance is the ability of an algorithm to perform uni-form load balancing in spite of arbitrary node or link failure.The load balancing should be a good faulttolerant technique.
4) Migration time is the time to migrate the jobs or resources from one node to other.It should be minimized in order to enhance the performance of the system.5) Response Time is the amount of time taken to respond by a particular load balancing algorithm in a distributed system.This parameter should be minimized.
6) Resource Utilization is used to check the utilization of re-sources.It should be optimized for an efficient load balancing.
7) Scalability is the ability of an algorithm to perform load balancing for a system with any finite number of nodes.This metric should be improved.
8) Performance is used to check the efficiency of the system.This has to be improved at a reasonable cost, e.g., reduce task response time while keeping acceptable delays.

III. THE PROPOCED LOAD BALANCING ALGORITHM
It is proposed that cloud systems have the addition of a device that examines the current performance profiles of all the available cloud resource nodes.The information gathered by this device is fed into ANN load balancing that will be responsible for managing the states of the cloud resource nodes.This architectural framework is presented in figure 1.
The main important feature of the proposed techniques is its simplicity.It's developed and implemented in an easy manner depending on learning and prediction ideas.Artificial neural networks are used in the proposed algorithm because of its simplicity and efficiency to satisfy many metrics stated in section II.Like throughput, fault tolerance, response time and resource utilization.Also it can work efficiently with noise and incomplete information.Back Propagation learning algorithm was used to train ANN such that it can distribute the dynamic workload across multiple nodes to ensure that no single node is overwhelmed, while others are idle or doing little work.It helps in optimal utilization of resources and hence in enhancing the performance of the system.The goal of load balancing is to minimize the resource consumption which will further reduce energy consumption and carbon emission rate that is the dire need of cloud computing.This determines the need of new metrics, energy consumption and carbon emission for energy-efficient load balancing in cloud computing as described in the previous sections.The proposed ANN composed of three layers; the first layer is the input layer which represents the current workload for N nodes.The second layer is the hidden layer, while the third layer is the output layer which represents the balanced workload for N nodes.Each node in the input layer represents either the current server's workload or the current average workload of a cluster of servers and an integer number was assigned to it, as shown in figure 2. While the corresponding node in the output layer represents either server's workload or cluster's average workload after balancing respectively.Therefore the number of neurons in the input and output layers are equal.Load balancing process is done by training neural network on many different and representative examples of balanced and unbalanced cases.Obviously, a substantial reduction in energy consumption can be made by powering down servers when they are not in use.This case satisfies when the output is (0).Furthermore, negative values (-1) is associated to each input and output node when its workload is unknown as shown in figure 4, since incomplete data examples are also considered.figure 5 shows the architecture of one network, while figure 6 shows many nodes in the cloud.

IV. RESULT AND COMPARION
To train ANN, the actual loads are applied at the input layer then the outputs are calculated at the output layer and compared with the desired (balanced) loads, errors are computed and weights are adjusted.The above process is repeated with large set of example until ANN is trained with accepted error rate.Once the network was trained within a tolerable error, the network is tested with different data set.Otherwise, ANN must be retrained with more examples and/ or change training parameters.Thus training is stopped when ANN is learned.Obviously if good examples are used then good learning is forced.The number of hidden layers and the number of neurons in each hidden layer are changed during the training phase so that good performance is derived, as shown in figures 7. The existing load balancing techniques have been compared in Table 1, this comparison is similar to that given in references [4] [6] except that two additional matrices are added.Existing load balancing techniques that have been discussed worked in distributed, cloud, and large scale cloud system environment and mainly focus on reducing associated overhead, service response time and improving performance etc. but none of them have considered the energy consumption and carbon emission factors (i.e.matrices 9 and 10).Therefore, there is a need to develop an energy-efficient load balancing technique that can improve the performance of cloud computing by balancing the workload across all the nodes in the cloud along with maximum resource utilization, in turn reducing energy consumption and carbon emission to an extent which will help to achieve Green computing.The proposed method utilizes green elements in the design and building process of a load balancing (i.e.ANN).ANN predict the demand and thus allocate resources according to demand.Thus, it always maintains the active servers according to www.ijacsa.thesai.orgcurrent demand, which results in low energy consumption than the conservative approach of over-provisioning.High utilization of server results in more power consumption, server running at higher utilization can process more workload with similar power usage.
V. CONCLUSION The existing load balancing techniques have been compared in Table 1, this comparison is similar to that given in references [4] [6] except that two additional matrices are added.Existing load balancing techniques that have been discussed worked in distributed, cloud, and large scale cloud system environment and mainly focus on reducing associated overhead, service response time and improving performance etc. but none of them have considered the energy consumption and carbon emission factors.Therefore, there is a need to develop an energy-efficient load balancing technique that can improve the performance of cloud computing by balancing the workload across all the nodes in the cloud along with maximum resource utilization, in turn reducing energy consumption and carbon emission to an extent which will help to achieve Green computing.The proposed method utilizes green elements in the design and building process of a load balancing (i.e.ANN).ANN predict the demand and thus allocate resources according to demand.Thus, it always maintains the active servers according to current demand, which results in low energy consumption than the conservative approach of over-provisioning.High utilization of server results in more power consumption, server running at higher utilization can process more workload with similar power usage.www.ijacsa.thesai.org

TABLE I .
6. ANN Architecture for more than one Cluster SUMMARIZES THE EXISTING TECHNIQUES AND THE PROPOSED TECHNIQUE OF LOAD BALANCE IN CLOUD.