11#include "CombBLAS/CombBLAS.h"
44 printf(
"ERROR: The MPI library does not have MPI_THREAD_SERIALIZED support\n");
58 printf(
"Usage (random): ./mpipspgemm <GridRows> <GridCols> <Layers> <Type> <Scale> <EDGEFACTOR> \n");
59 printf(
"Usage (input): ./mpipspgemm <GridRows> <GridCols> <Layers> <Type=input> <matA> \n");
60 printf(
"Example: ./RestrictionOp 4 4 2 ER 19 16 \n");
61 printf(
"Example: ./RestrictionOp 4 4 2 Input matA.mtx\n");
62 printf(
"Type ER: Erdos-Renyi\n");
63 printf(
"Type SSCA: R-MAT with SSCA benchmark parameters\n");
64 printf(
"Type G500: R-MAT with Graph500 benchmark parameters\n");
83 SpParHelper::Print(
"This version of the Combinatorial BLAS only works on a square logical processor grid\n");
91 SpParHelper::Print(
"The product of <GridRows> <GridCols> <Replicas> does not match the number of processes\n");
103 if(
string(
argv[4]) ==
string(
"input"))
143 printf(
"The initiator parameter - %s - is not recognized.\n",
argv[5]);
160 if(myrank == 0)
cout <<
"Computing restriction matrix \n";
179 printf(
"\n Processor Grid (row x col x layers x threads): %dx%dx%dx%d \n",
CMG.GridRows,
CMG.GridCols,
CMG.GridLayers,
nthreads);
180 printf(
" prow pcol layer thread comm_bcast comm_scatter comp_summa comp_merge comp_scatter comp_result other total\n");
212 cout <<
"----------------------------\n";
218 cout <<
"----------------------------\n";
int main(int argc, char *argv[])
static void Print(const std::string &s)
void SplitMat(CCGrid &CMG, SpDCCols< IT, NT > *localmat, SpDCCols< IT, NT > &splitmat, bool rowsplit=false)
SpDCCols< IT, NT > * multiply(SpDCCols< IT, NT > &splitA, SpDCCols< IT, NT > &splitB, CCGrid &CMG, bool isBT, bool threaded)
void RestrictionOp(CCGrid &CMG, SpDCCols< IT, NT > *localmat, SpDCCols< IT, NT > *&R, SpDCCols< IT, NT > *&RT)