Authors:
Michael Poldner
and
Herbert Kuchen
Affiliation:
University of Münster, Germany
Keyword(s):
Parallel Computing, Algorithmic Skeletons, Branch & Bound, Load Distribution, Termination Detection.
Related
Ontology
Subjects/Areas/Topics:
Distributed and Mobile Software Systems
;
Energy and Economy
;
Load Balancing in Smart Grids
;
Parallel and High Performance Computing
;
Smart Grids
;
Software Engineering
Abstract:
Algorithmic skeletons are predefined components for parallel programming. We will present a skeleton for branch & bound problems for MIMD machines with distributed memory. This skeleton is based on a distributed work pool. We discuss two variants, one with supply-driven work distribution and one with demanddriven work distribution. This approach is compared to a simple branch & bound skeleton with a centralized work pool, which has been used in a previous version of our skeleton library Muesli. Based on experimental results for two example applications, namely the n-puzzle and the traveling salesman problem, we show that the distributed work pool is clearly better and enables good runtimes and in particular scalability. Moreover, we discuss some implementation aspects such as termination detection as well as overlapping computation and communication.