49#ifndef __STDC_CONSTANT_MACROS
50#define __STDC_CONSTANT_MACROS
52#ifndef __STDC_LIMIT_MACROS
53#define __STDC_LIMIT_MACROS
75#include "CombBLAS/CombBLAS.h"
89 const uint64_t b[] = {0x2ULL, 0xCULL, 0xF0ULL, 0xFF00ULL, 0xFFFF0000ULL, 0xFFFFFFFF00000000ULL};
90 const unsigned int S[] = {1, 2, 4, 8, 16, 32};
94 for (i = 5; i >= 0; i--)
113template <
typename PARMAT>
131 return (
y == -1 ) ?
x: -1;
164 cout <<
"Usage: ./dobfs <Scale>" <<
endl;
165 cout <<
"Example: ./dobfs 25" <<
endl;
191 SpParHelper::Print(
"Using fast vertex permutations; skipping edge permutations (like v2.1)\n");
194 double initiator[4] = {.57, .19, .19, .05};
291 degrees.PrintInfo(
"Degrees array");
308 for(
int i=0; i<
ITERS; ++i)
313 for(
int i=0; i<
ITERS; ++i)
319 for(
int i=0; i<
ITERS; ++i)
346 for(
int i=0; i<
ITERS; ++i)
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;
522 for(
int i=0; i<
nprocs; ++i)
534 cout <<
"-------------------------------" <<
endl;
545 cout <<
"-------------------------------" <<
endl;
556 cout <<
"-------------------------------" <<
endl;
567 cout <<
"-------------------------------" <<
endl;
582 os <<
"--------------------------" <<
endl;
596 os <<
"--------------------------" <<
endl;
599 os <<
"Min time: " <<
TIMES[0] <<
" seconds" <<
endl;
608 os <<
"Mean time: " <<
mean <<
" seconds" <<
endl;
610 os <<
"--------------------------" <<
endl;
double cblas_transvectime
double cblas_localspmvtime
double cblas_allgathertime
double cblas_alltoalltime
unsigned int highestbitset(uint64_t v)
double bottomup_allgather
double cblas_ewisemulttime
bool from_string(T &t, const string &s, ios_base &(*f)(ios_base &))
double cblas_mergeconttime
SpParMat< int64_t, int, SpDCCols< int32_t, int > > PSpMat_s32p64_Int
SpParMat< int64_t, bool, SpDCCols< int64_t, bool > > PSpMat_Bool
SpParMat< int64_t, bool, SpDCCols< int32_t, bool > > PSpMat_s32p64
void GenGraph500Data(double initiator[4], int log_numverts, int edgefactor, bool scramble=false, bool packed=false)
Iterate over (sparse) columns of the sparse matrix.
static std::vector< size_t > find_order(const std::vector< T > &values)
static void Print(const std::string &s)
SpDCCols< int, bool >::SpColIter * CalcSubStarts(SpParMat< IT, bool, UDER > &A, FullyDistSpVec< IT, VT > &x, BitMapCarousel< IT, VT > &done)
void BottomUpStep(SpParMat< IT, bool, UDER > &A, FullyDistSpVec< IT, VT > &x, BitMapFringe< int64_t, int64_t > &bm_fringe, FullyDistVec< IT, VT > &parents, BitMapCarousel< IT, VT > &done, SpDCCols< int, bool >::SpColIter *starts)
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