arbitrarily-sized, possibly-sparse collections of chares that are distributed
across the processors. The entire array has a globally unique identifier of
, and each element has a unique index of type
. A CkArrayIndex
can be a single integer (i.e. a one-dimensional array),
several integers (i.e. a multi-dimensional array), or an arbitrary string of
bytes (e.g. a binary tree index).
Array elements can be dynamically created and destroyed on any PE,
migrated between PEs, and messages for the elements will still arrive
properly. Array elements can be migrated at any time, allowing arrays to be
efficiently load balanced. A chare array (or a subset of array elements) can
receive a broadcast/multicast or contribute to a reduction.
An example program can be found here: examples/charm++/array