15#include "CombBLAS/CombBLAS.h"
17#include "CombBLAS/mtSpGEMM.h"
24template <
typename IT,
typename NT>
44 for(
int i = 0; i < stages; ++i)
46 double bcast_beg = MPI_Wtime();
49 if(i == Aself) ARecv = &SplitA;
53 for(
int j=0; j< SpDCCols<IT,NT>::esscount; ++j)
54 ess[j] = ARecvSizes[j][i];
61 if(i == Bself) BRecv = &SplitB;
65 for(
int j=0; j< SpDCCols<IT,NT>::esscount; ++j)
67 ess[j] = BRecvSizes[j][i];
74 double summa_beg = MPI_Wtime();
static void deallocate2D(T **array, I m)
static T ** allocate2D(I1 m, I2 n)
static void GetSetSizes(const SpMat< IT, NT, DER > &Matrix, IT **&sizes, MPI_Comm &comm1d)
static void BCastMatrix(MPI_Comm &comm1d, SpMat< IT, NT, DER > &Matrix, const std::vector< IT > &essentials, int root)
SpTuples< IT, NTO > * LocalSpGEMM(const SpDCCols< IT, NT1 > &A, const SpDCCols< IT, NT2 > &B, bool clearA, bool clearB)
SpTuples< IU, NUO > * MultiplyReturnTuples(const SpMat< IU, NU1, DER1 > &A, const SpMat< IU, NU2, DER2 > &B, bool isAT, bool isBT, bool clearA=false, bool clearB=false)
void SUMMALayer(SpDCCols< IT, NT > &SplitA, SpDCCols< IT, NT > &SplitB, std::vector< SpTuples< IT, NT > * > &C, CCGrid &CMG, bool isBT, bool threaded)