14. Sections: Subsets of a Chare Array/Group
Charm++ supports defining and communicating with subsets of a chare
array or group. This entity is called a chare array section or a group section (section
Section elements are addressed via a section proxy.
Charm++ also supports sections which are a subset of elements of
multiple chare arrays/groups of the same type (see 14.5
Multicast operations, a broadcast to all members of a section, are directly
supported by the section proxy. For array sections, multicast operations by default
use optimized spanning trees via the CkMulticast library in Charm++ .
For group sections, multicast operations by default use an unoptimized
To optimize messaging, group sections need to be manually delegated to CkMulticast
Reductions are also supported for both arrays and group sections via the CkMulticast library.
Array and group sections work in mostly the same way.
Check examples/charm++/groupsection for a group section example and
examples/charm++/arraysection for an array section example.