29#include "CombBLAS/CombBLAS.h"
67template <
typename PARMAT>
125 for(
int i=0; i<
ITERS; ++i)
139 while(
fringe.getnnz() > 0)
210 for(
int i=0; i<
ITERS; ++i)
224 while(
fringe.getnnz() > 0)
302 for(
int i=0; i<
ITERS; ++i)
316 while(
fringe.getnnz() > 0)
377 printf(
"ERROR: The MPI library does not have MPI_THREAD_SERIALIZED support\n");
387 cout <<
"Usage: ./SpMSpVBench <-input|-rmat|-er> <scale|filename> " <<
endl;
388 cout <<
" optional parameters:" <<
endl;
389 cout <<
" -source \"source of BFS\" (default: 0) " <<
endl;
390 cout <<
" -iter \"number of BFS iterations\" (default: 1)" <<
endl;
391 cout <<
"Example with a user supplied matrix:" <<
endl;
392 cout <<
" mpirun -np 4 ./SpMSpVBench -input a.mtx -source 2" <<
endl;
393 cout <<
"Example with a user supplied matrix (pre-permute the input matrix for load balance):" <<
endl;
394 cout <<
" mpirun -np 4 ./SpMSpVBench -input a.mtx -permute" <<
endl;
395 cout <<
"Example with RMAT matrix: mpirun -np 4 ./SpMSpVBench -rmat 18" <<
endl;
396 cout <<
"Example with an Erdos-Renyi matrix: mpirun -np 4 ./SpMSpVBench -er 18" <<
endl;
420 bool scramble =
false;
423 bool randpermute =
false;
428 for (
int i = 1; i <
argc; i++)
432 if(myrank == 0)
cout <<
"Randomly permute the matrix " <<
endl;
443 if(myrank == 0)
cout <<
"Number of iterations: " <<
ITERS <<
endl;
449 if(
string(
argv[1]) ==
string(
"-input"))
477 else if(
string(
argv[1]) ==
string(
"-rmat"))
481 double initiator[4] = {.57, .19, .19, .05};
495 else if(
string(
argv[1]) ==
string(
"-er"))
499 double initiator[4] = {.25, .25, .25, .25};
void BFS_DCSC(PSpMat_s32p64 Aeff1, int64_t source, FullyDistVec< int64_t, int64_t > degrees)
SpParMat< int64_t, bool, SpDCCols< int64_t, bool > > PSpMat_Bool
double cblas_transvectime
double cblas_localspmvtime
double cblas_allgathertime
double cblas_alltoalltime
SpParMat< int64_t, bool, SpCCols< int64_t, bool > > Par_CSC_Bool
SpParMat< int64_t, int, SpDCCols< int32_t, int > > PSpMat_s32p64_Int
SpParMat< int64_t, bool, SpDCCols< int32_t, bool > > PSpMat_s32p64
void BFS_CSC_Split(PSpMat_s32p64 Aeff, int64_t source, FullyDistVec< int64_t, int64_t > degrees)
SpParMat< int64_t, int64_t, SpDCCols< int64_t, int64_t > > PSpMat_Int64
void BFS_CSC(PSpMat_s32p64 Aeff, int64_t source, FullyDistVec< int64_t, int64_t > degrees)
double cblas_mergeconttime
SelectMaxSRing< bool, int32_t > SR
void GenGraph500Data(double initiator[4], int log_numverts, int edgefactor, bool scramble=false, bool packed=false)
static void Print(const std::string &s)
void Symmetricize(PARMAT &A)
Dcsc< IU, typename promote_trait< NU1, NU2 >::T_promote > EWiseMult(const Dcsc< IU, NU1 > &A, const Dcsc< IU, NU2 > *B, bool exclude)
static void axpy(bool a, const T_promote &x, T_promote &y)
static T_promote add(const T_promote &arg1, const T_promote &arg2)
static T_promote multiply(const bool &arg1, const T_promote &arg2)
static bool returnedSAID()