Turkish Journal of Computer and Mathematics Education Vol.12 No.1S (2021), 257-265 Research Article 257 Particle Swarm Optimization for Load Balancing in Distributed Computing Systems A Survey Vidya S. Handur 1 , Santosh L. Deshpande 2 , Prakash R. Marakumbi 3 1 KLE Technological University, India 2 Visveswaraya Technological University, India 3 Tontadarya College of Engineering, India vidya_handur@kletech.ac.in 1 , sld@vtu.ac.in 2 , pmarakumbi@gmail.com 3 Article History: Received: 10 November 2020; Revised: 12 January 2021; Accepted: 27 January 2021; Published online: 05 April 2021 Abstract: Development of technology like Cloud Computing and its widespread usage has given rise to exponential increase in the volume of traffic. With this increase in huge traffic the resources in the network would either be insufficient to handle the traffic or the situation may cause some of the resources to be over utilized or underutilized. This condition leads to reduced performance of the system. To improve the performance of the system the traffic requires to be regulated such that all the resources are utilized conferring to their capacity which is known as load balancing. Load balancing has been one of the concerns in the distributed computing systems where the computing nodes do not have a global view of the network. There have been constant efforts to provide an efficient solution for load balancing through the approaches like game theory, fuzzy logic, heuristics and metaheuristics. Even though various solutions exist for balancing the load, the issue is challenging as there does not exist one best fit solution. The paper aims at the study of how Particle Swarm Optimization approach is used to achieve an optimal solution for load balancing in distributed computing system. Keywords: Distributed computing system, Load balancing, Particle Swarm Optimization, Swarm Intelligence 1. Introduction Distributed system is a group of autonomous computing nodes that are geographically apart connected to form a network. The distributed systems can be homogeneous or heterogeneous systems. The nodes communicate and coordinate their actions through message passing to achieve sharing of resources, fault tolerance, openness, scalability and transparency [22]. Following are the characteristics of distributed systems: Lack of global control unit: In distributed computing system, it is difficult to implement a global control unit due to large scale, dynamic and heterogeneous computing nodes. Sharing of Resources: To execute a task, the computational nodes share their local resources like disk storage, computational capacity, data and web objects with each other in the system. Openness and unreliability: The distributed computing systems are open and the structure of the network and nodes are unreliable causing the unauthenticated users to enter into the system. Due to the autonomy of the computing nodes, a few or more nodes may fail to function independently. Therefore fault tolerance and reliability are significant in distributed computing systems. Heterogeneity: Some of the nodes in the distributed computing systems are heterogeneous with differences in their network components, speed, and storage. For example in social network systems due to differences in speed and bandwidth of the node the responsiveness of the nodes may be different. Therefore there is a need for maximizing the resource utilization. Fault Tolerance: If there is a failure of any component in the distributed computing system it continues its operation by delegating the task to another node. The advantages of such systems are high performance, low latency, extensibility and availability at low cost. Some of the applications of distributed systems are Cloud, Grid, WWW, automated banking systems etc. Over the years, there has been a rapid growth in the technology and increase in volume of data generation which is significant factor to the underutilization or overutilization of computing nodes. This aspect of overutilization or underutilization is due to the load imbalance on the computing nodes that deteriorates the overall system performance. To enhance the performance of distributed systems, it is important to keep the system load equal on each node in homogeneous distributed system. However in a number of applications involving heterogeneity, the computing nodes are equipped with different amounts of processing powers, so that a given task may complete more quickly on one node than another. Therefore allocating tasks proportional to the node’s capacity in heterogeneous distributed system is essential. The assignment of task to a computing node is known as load