Integration of Load Balancing into a Parallel Evolutionary Algorithm

Generally evolutionary algorithms designed for parallel environments improve their execution time. However, if the algorithm has different individual evaluation costs, or if it is executed under multiprogramming or in heterogeneous platforms, performance can be adversely affected. This paper presents the integration of a load balancing scheme designed in order to improve the execution time of a parallel evolutionary algorithm. This scheme dynamically balances the load by transferring data from overloaded nodes to underloaded nodes. Data migration is relatively simple, both because the application data is represented as a list of individuals, and because each individual is evaluated independently. The balance mechanism is integrated by means of a single call, contrary to other works where the application code and the balance service are mixed. This proposal can be extended and integrated into any application with similar data representation and management. It is shown how under certain system conditions, the approach offers good performance.