A masked dimension sum schedule is a communication schedule for summing, under the control of mask, the elements of a distributed array along one of its dimensions, yielding a reduced array with rank one less than the source.
A masked dimension sum schedule is described by a collective object with local components of class SumDimMsk. The public interface of the SumDimMsk class is
class DAD ; template<class T> class SumDimMsk { public : SumDimMsk(const DAD* res, const DAD* src, const int dim, const DAD* msk) ; void execute(T* resDat, T* srcDat, int* mskDat) ; private : ... } ;