A dot product schedule is a communication schedule for computing the dot product of two distributed arrays (the source arrays). A dot product schedule is described by a collective object with local components of class DotProduct. The public interface of the DotProduct class is
class DAD ; template<class S, class T, class U> class DotProduct { public : DotProduct(const DAD* src1, const DAD* src2) ; void execute(S* res, T* src1Dat, U* src2Dat) ; private : ... } ;