2#include "CombBLAS/CombBLAS.h"
19template <
typename PARMAT>
71 cout <<
"Usage: ./md <rmat|er|input> <scale|filename>" <<
endl;
72 cout <<
"Example: mpirun -np 4 ./md rmat 20" <<
endl;
73 cout <<
"Example: mpirun -np 4 ./md er 20" <<
endl;
74 cout <<
"Example: mpirun -np 4 ./md input a.mtx" <<
endl;
83 if(
string(
argv[1]) ==
string(
"input"))
100 else if(
string(
argv[1]) ==
string(
"rmat"))
104 double initiator[4] = {.57, .19, .19, .05};
113 else if(
string(
argv[1]) ==
string(
"er"))
117 double initiator[4] = {.25, .25, .25, .25};
156 while(
x.getnnz() > 0)
211 while(
fringe.getnnz() > 0 )
263 int myrank =
sources.getcommgrid()->GetRank();
272 if(myrank==i &&
j<
sources.getlocnnz())
308 for(
int64_t i=0; i<
A.getnrow(); i++)
312 enodes.SetElement(s, i+1);
333 int nnz =
reach.getnnz();
338 cout << i <<
" .................. " << nnz <<
" :: " <<
time2 <<
" + " <<
time3 <<
endl;
FullyDistSpVec< int64_t, int64_t > getReach(int64_t source, PSpMat_Int64 &A, FullyDistVec< int64_t, int64_t > &enodes)
SpParMat< int64_t, bool, SpDCCols< int64_t, bool > > PSpMat_Bool
FullyDistSpVec< int64_t, int64_t > getReachesSPMM(FullyDistSpVec< int64_t, int64_t > &sources, PSpMat_Int64 &A, FullyDistVec< int64_t, int64_t > &enodes)
FullyDistSpVec< int64_t, int64_t > getReachesSPMV(FullyDistSpVec< int64_t, int64_t > &sources, PSpMat_Int64 &A, FullyDistVec< int64_t, int64_t > &enodes)
SpParMat< int64_t, int64_t, SpDCCols< int64_t, int64_t > > PSpMat_Int64
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()