Live Webcast 15th Annual Charm++ Workshop

Supporting Dynamic Parallel Object Arrays
ACM Java Grande/ISCOPE Conference (JGI) 2001
Publication Type: Paper
Repository URL:
We present efficient support schemes 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. More 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 proved to be extremely useful, for example, in implementing flexible load balancing strategies and for exploiting workstation clusters adaptively.
O. Lawlor and L. V. Kale, "Supporting Dynamic Parallel Object Arrays", Proceedings of ACM 2001 Java Grande/ISCOPE Conference, Stanford, CA, pp. 21-29. June 2001.
Research Areas