30#include "CombBLAS/CombBLAS.h"
59 const uint64_t b[] = {0x2ULL, 0xCULL, 0xF0ULL, 0xFF00ULL, 0xFFFF0000ULL, 0xFFFFFFFF00000000ULL};
60 const unsigned int S[] = {1, 2, 4, 8, 16, 32};
64 for (i = 5; i >= 0; i--)
76bool from_string(
T & t,
const string& s, std::ios_base& (*
f)(std::ios_base&))
83template <
typename PARMAT>
97struct prunediscovered:
public std::binary_function<int64_t, int64_t, int64_t >
101 return (
y == -1 ) ?
x: -1;
129 cout <<
"Usage: ./tdbfs <Force,Input> <Scale Forced | Input Name> {FastGen}" <<
endl;
130 cout <<
"Example: ./tdbfs Force 25 FastGen" <<
endl;
151 bool scramble =
false;
153 if(
string(
argv[1]) ==
string(
"Input"))
155 A.ReadDistribute(
string(
argv[2]), 0);
180 else if(
string(
argv[1]) ==
string(
"Binary"))
187 outs <<
"Reading " <<
argv[2] <<
" with " << n <<
" vertices and " << m <<
" edges" <<
endl;
250 if(
string(
argv[1]) ==
string(
"Force"))
257 if(
argc > 3 &&
string(
argv[3]) ==
string(
"FastGen"))
259 SpParHelper::Print(
"Using fast vertex permutations; skipping edge permutations (like v2.1)\n");
270 double initiator[4] = {.57, .19, .19, .05};
383 degrees.PrintInfo(
"Degrees array");
398 for(
int i=0; i<
ITERS; ++i)
403 for(
int i=0; i<
ITERS; ++i)
408 for(
int i=0; i<
ITERS; ++i)
424 for(
int i=0; i<
ITERS; ++i)
437 while(
fringe.getnnz() > 0)
458 outnew <<
"Number of edges traversed: " << nedges <<
endl;
460 outnew <<
"MTEPS: " <<
static_cast<double>(nedges) / (
t2-
t1) / 1000000.0 <<
endl;
464 MTEPS[i] =
static_cast<double>(nedges) / (
t2-
t1) / 1000000.0;
472 os <<
"Per iteration communication times: " <<
endl;
477 os <<
"Per iteration computation times: " <<
endl;
482 os <<
"--------------------------" <<
endl;
496 os <<
"--------------------------" <<
endl;
499 os <<
"Min time: " <<
TIMES[0] <<
" seconds" <<
endl;
508 os <<
"Mean time: " <<
mean <<
" seconds" <<
endl;
510 os <<
"--------------------------" <<
endl;
SelectMaxSRing< bool, int64_t > SR
SpParMat< int64_t, int, SpDCCols< int32_t, int > > PSpMat_s32p64_Int
double cblas_transvectime
double cblas_localspmvtime
double cblas_allgathertime
double cblas_alltoalltime
unsigned int highestbitset(uint64_t v)
double cblas_mergeconttime
bool from_string(T &t, const string &s, std::ios_base &(*f)(std::ios_base &))
SpParMat< int64_t, bool, SpDCCols< int64_t, bool > > PSpMat_Bool
SpParMat< int64_t, bool, SpDCCols< int32_t, bool > > PSpMat_s32p64
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 PermEdges(DistEdgeList< IT > &DEL)
void RenameVertices(DistEdgeList< IU > &DEL)
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)
unsigned __int64 uint64_t
int64_t operator()(int64_t x, const int64_t &y) const