Dynamic load balancing with group communication

  • Authors:
  • Shlomi Dolev;Roberto Segala;Alexander Shvartsman

  • Affiliations:
  • Department of Computer Science, Ben-Gurion University, Beer-Sheva, Israel;Dipartamento di Informatica, Università di Verona, Verona, Italy;Department of Computer Science and Engineering, University of Connecticut, Storrs, CT and MIT Computer Science and Artificial Intelligence Laboratory, The Stata Center, Cambridge, MA

  • Venue:
  • Theoretical Computer Science
  • Year:
  • 2006

Quantified Score

Hi-index 5.23

Visualization

Abstract

This work considers the problem of efficiently performing a set of tasks using a network of processors in the setting where the network is subject to dynamic reconfigurations, including partitions and merges. A key challenge for this setting is the implementation of dynamic load balancing that reduces the number of tasks that are performed redundantly because of the reconfigurations. We explore new approaches for load balancing in dynamic networks that can be employed by applications using a group communication service (GCS). The GCS that we consider include a membership service (establishing new groups to reflect dynamic changes) but does not include maintenance of a primary component. For the n-processor, n-task load balancing problem defined in this work, the following specific results are obtained. For the case of fully dynamic changes including fragmentation and merges we show that the termination time of any on-line task assignment algorithm is greater than the termination time of an off-line task assignment algorithm by a factor greater than n/12. We present a load balancing algorithm that guarantees completion of all tasks in all fragments caused by partitions with work O(n + f ċ n) in the presence of f fragmentation failures. We develop an effective scheduling strategy for minimizing the task execution redundancy and we prove that our strategy provides each of the n processors with a schedule of Θ(n1/3) tasks such that at most one task is performed redundantly by any two processors.