Developing SPMD applications with load balancing

  • Authors:
  • A. Plastino;C. C. Ribeiro;N. Rodriguez

  • Affiliations:
  • Department of Computer Science, Universidade Federal Fluminense, Niterói 24210-240, Brazil;Department of Computer Science, Catholic University of Rio de Janeiro, Rio de Janeiro 22453-900, Brazil;Department of Computer Science, Catholic University of Rio de Janeiro, Rio de Janeiro 22453-900, Brazil

  • Venue:
  • Parallel Computing
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

The central contribution of this work is SAMBA (Single Application, Multiple Load Balancing), a framework for the development of parallel SPMD (single program, multiple data) applications with load balancing. This framework models the structure and the characteristics common to different SPMD applications and supports their development. SAMBA also contains a library of load balancing algorithms. This environment allows the developer to focus on the specific problem at hand. Special emphasis is given to the identification of appropriate load balancing strategies for each application. Three different case studies were used to validate the functionality of the framework: matrix multiplication, numerical integration, and a genetic algorithm. These applications illustrate its ease of use and the relevance of load balancing. Their choice was oriented by the different load imbalance factors they present and by their different task creation mechanisms. The computational experiments reported for these case studies made possible the validation of SAMBA and the comparison, without additional reprogramming costs, of different load balancing strategies for each of them. The numerical results and the elapsed times measurements show the importance of using an appropriate load balancing algorithm and the associated reductions that can be achieved in the elapsed times. They also illustrate that the most suitable load balancing strategy may vary with the type of application and with the number of available processors. Besides the support to the development of SPMD applications, the facilities offered by SAMBA in terms of load balancing play also an important role in terms of the development of efficient parallel implementations.