Tags:Fuzzy Logic, MPICH Cluster, Raspberry Pi and Weight-based Load Balancing
Abstract:
Dynamic load balancing is a key methodology that is used to speed up computing clusters nowadays. The work sharing and the work stealing are two opposite algorithms with various implementations based on predefined metrics like performance, response time, fault tolerance, resource utilization, and scalability. For the heterogeneous soft-/hardware in the Raspberry Pi MPICH cluster, weight-based load balancing is the most efficient approach since different parameters such as the type of CPU and OS, RAM, workload, microSD card capacity, power consumption, and OS release date can be taken into consideration. These parameters are described numerically and linguistically, and hence the fuzzy logic is employed to estimate the performance weights of the cluster nodes. Then, this information is used to distribute the workload among the cluster nodes to minimize the execution time. In this project, fuzzification, formation of fuzzy rules, fuzzy inference, and defuzzification are applied to find the performance weights. The defuzzification is based on the multiplication operation. In the cluster with two Raspberry Pi 4B boards with 2 GB RAM and Raspberry Pi 64-bit OS with desktop and one Raspberry Pi 3B board with 1 GB RAM and Raspberry Pi 32-bit OS Lite, recommended performance weights are (5, 5, 1), respectively. The Python program for the prime numbers finding algorithm implements the proposed weight-based load balancing approach that is approximately five times faster than the basic algorithm with equal loading for the maximum integer number 300000.
Weight-Based Load Balancing in Raspberry Pi MPICH Heterogeneous Cluster with Fuzzy Estimation of Node Computational Performance