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