Developing SPMD applications with load balancing

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.

[1]  William L. George Dynamic Load Balancing for Data-Parallel MPI Programs , 1999 .

[2]  Mark A. Franklin,et al.  A General Matrix Iterative Model for Dynamic Load Balancing , 1996, Parallel Comput..

[3]  C. Ribeiro,et al.  Essays and Surveys in Metaheuristics , 2002, Operations Research/Computer Science Interfaces Series.

[4]  Emilio L. Zapata,et al.  Fast Hough Transform on Multiprocessors: A Branch and Bound Approach , 1997, J. Parallel Distributed Comput..

[5]  Forum Mpi MPI: A Message-Passing Interface , 1994 .

[6]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[7]  Celso C. Ribeiro,et al.  Performance evaluation of a parallel tabu search task scheduling algorithm , 2000, Parallel Comput..

[8]  Wolfgang Pree,et al.  Design Patterns for Object-Oriented Software Development , 1994, Proceedings of the (19th) International Conference on Software Engineering.

[9]  Masakazu Furuichi,et al.  A multi-level load balancing scheme for OR-parallel exhaustive search programs on the multi-PSI , 1990, PPOPP '90.

[10]  Celso C. Ribeiro,et al.  Exploring Load Balancing in Parallel Processing of Recursive Queries , 1997, Euro-Par.

[11]  Grady Booch,et al.  Object-oriented analysis and design with applications (2nd ed.) , 1993 .

[12]  Anthony P. Reeves,et al.  Strategies for Dynamic Load Balancing on Highly Parallel Computers , 1993, IEEE Trans. Parallel Distributed Syst..

[13]  Srinivasan Parthasarathy,et al.  Customized Dynamic Load Balancing for a Network of Workstations , 1997, J. Parallel Distributed Comput..

[14]  Grady Booch,et al.  Object-Oriented Analysis and Design with Applications , 1990 .

[15]  Edward D. Lazowska,et al.  Adaptive load sharing in homogeneous distributed systems , 1986, IEEE Transactions on Software Engineering.

[16]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[17]  Albert Y. Zomaya Parallel and Distributed Computing Handbook , 1995 .

[18]  Celso C. Ribeiro,et al.  Parallel tabu search message-passing synchronous strategies for task scheduling under precedence constraints , 1996, J. Heuristics.

[19]  Wolfgang Pree,et al.  Framework Patterns , 1996 .

[20]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[21]  Ian T. Foster,et al.  The Anatomy of the Grid: Enabling Scalable Virtual Organizations , 2001, Int. J. High Perform. Comput. Appl..

[22]  A. J. M. van Gasteren,et al.  Derivation of a Termination Detection Algorithm for Distributed Computations , 1983, Inf. Process. Lett..

[23]  Thomas L. Casavant,et al.  A Taxonomy of Scheduling in General-Purpose Distributed Computing Systems , 1988, IEEE Trans. Software Eng..

[24]  Michele Colajanni,et al.  DAME: an environment for preserving the efficiency of data-parallel computations on distributed systems , 1997, IEEE Concurrency.

[25]  George Karypis,et al.  Introduction to Parallel Computing , 1994 .

[26]  Heung-Kyu Lee,et al.  A prediction-based adaptive location policy for distributed load balancing , 1996, J. Syst. Archit..

[27]  Sanjay Ranka,et al.  Runtime Support for Parallelization of Data-Parallel Applications on Adaptive, Nonuniform Computational Environments , 1997, J. Parallel Distributed Comput..

[28]  Jon B. Weissman Prophet: automated scheduling of SPMD programs in workstation networks , 1999 .

[29]  Celso C. Ribeiro,et al.  Strategies for the Parallel Implementation of Metaheuristics , 2002 .

[30]  Celso C. Ribeiro,et al.  A tool for SPMD application development with support for load balancing , 1999, PARCO.

[31]  Alexandre Plastino,et al.  Exploring load balancing in a scientific SPMD parallel application , 2002, Proceedings. International Conference on Parallel Processing Workshop.

[32]  Silvia A. Crivelli,et al.  The PMESC Programming Library for Distributed-Memory MIMD Computers , 1999, J. Parallel Distributed Comput..

[33]  Salvatore Orlando,et al.  Scheduling Data-Parallel Computations on Heterogeneous and Time-Shared Environments , 1998, Euro-Par.

[34]  John H. Holland,et al.  Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control, and Artificial Intelligence , 1992 .

[35]  Thomas Decker,et al.  Virtual Data Space - A Universal Load Balancing Scheme , 1997, IRREGULAR.

[36]  M. J. Quinn,et al.  Parallel Computing: Theory and Practice , 1994 .

[37]  M. J. Quinn,et al.  Parallel computing (2nd ed.): theory and practice , 1994 .

[38]  Cyril Fonlupt,et al.  Data-Parallel Load Balancing Strategies , 1998, Parallel Comput..