Abstract

Supporting Dynamic Parallel Object Arrays
Orion Lawlor - University of Illinois at Urbana-Champaign
Laxmikant Kale - University of Illinois at Urbana-Champaign
We present efficient support for generalized arrays of parallel data driven
objects. The "array elements" are scattered across a parallel machine. Each
array element is an object that can be thought of as a virtual processor. The
individual elements are addressed by their "index", which can be an arbitrary
object rather than a simple integer. For example, it can be a series of
numbers, supporting multidimensional sparse arrays; a bit vector, supporting
collections of quadtree nodes; or a string. Messages can be sent to any
individual array element from any processor, and the elements can participate
in reductions and broadcasts. Individual elements can be created or deleted
dynamically at any time. Most importantly, the elements can migrate from
processor to processor at any time. The paper discusses support for message
delivery and collective operations in face of such dynamic behavior. The
migration capabilities of array elements have proven extremely useful, for
example, in implementing flexible load balancing strategies and for exploiting
workstation clusters adaptively.