A scatter schedule is a communication schedule for scattering values from one distributed array (the source array) into elements of another another (the destination array) in an arbitrary way. The target set of elements is defined by a vector of subscript arrays, with an optional mask array. A scatter schedule is described by a collective object with local components of class Scatter. The public interface of the Scatter class is
class DAD ; class Scatter { public : Scatter(const DAD* src, const DAD* dst, const int len, const DAD* subs [], const int* subsDat [], const DAD* msk, const int* mskDat) ; void execute(void* srcDat, void* dstDat) ; private : ... } ;