COMBINATORIAL_BLAS  1.6
CombBLAS.h
Go to the documentation of this file.
1 /****************************************************************/
2 /* Parallel Combinatorial BLAS Library (for Graph Computations) */
3 /* version 1.6 -------------------------------------------------*/
4 /* date: 04/29/2018 --------------------------------------------*/
5 /* authors: Ariful Azad, Aydin Buluc, John Gilbert------------*/
6 /****************************************************************/
7 /*
8 
9 Combinatorial BLAS, Copyright (c) 2018, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy) and University of California, Santa Barbara. All rights reserved.
10 
11 If you have questions about your rights to use or distribute this software, please contact Berkeley Lab's Innovation & Partnerships Office at IPO@lbl.gov.
12 
13 
14 NOTICE. This Software was developed under funding from the U.S. Department of Energy and the U.S. Government consequently retains certain rights. As such, the U.S. Government has been granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable, worldwide license in the Software to reproduce, distribute copies to the public, prepare derivative works, and perform publicly and display publicly, and to permit other to do so.
15  */
16 
17 
18 #ifndef COMBBLAS_H
19 #define COMBBLAS_H
20 
21 // These macros should be defined before stdint.h is included
22 #ifndef __STDC_CONSTANT_MACROS
23 #define __STDC_CONSTANT_MACROS
24 #endif
25 #ifndef __STDC_LIMIT_MACROS
26 #define __STDC_LIMIT_MACROS
27 #endif
28 #include <stdint.h>
29 
30 #if defined(COMBBLAS_BOOST)
31  #ifdef CRAYCOMP
32  #include <boost/config/compiler/cray.hpp>
33  #endif
34  #include <boost/tr1/memory.hpp>
35  #include <boost/tr1/unordered_map.hpp>
36  #include <boost/tr1/tuple.hpp>
37  #define joker boost // namespace
38 #elif defined(COMBBLAS_TR1)
39  #include <tr1/memory>
40  #include <tr1/unordered_map>
41  #include <tr1/tuple>
42  #include <tr1/type_traits>
43  #define joker std::tr1
44 #elif defined(_MSC_VER) && (_MSC_VER < 1600)
45  #include <memory>
46  #include <unordered_map>
47  #include <tuple>
48  #include <type_traits>
49  #define joker std::tr1
50 #else // C++11
51  #include <memory>
52  #include <unordered_map>
53  #include <tuple>
54  #include <type_traits>
55  #define joker std
56 #endif
57 // for VC2008
58 
59 
60 // Just in case the -fopenmp didn't define _OPENMP by itself
61 #ifdef THREADED
62  #ifndef _OPENMP
63  #define _OPENMP
64  #endif
65 #endif
66 
67 #ifdef _OPENMP
68  #include <omp.h>
69 #endif
70 
71 
72 //#ifdef _MSC_VER
73 //#pragma warning( disable : 4244 ) // conversion from 'int64_t' to 'double', possible loss of data
74 //#endif
75 
76 extern int cblas_splits;
77 extern double cblas_alltoalltime;
78 extern double cblas_allgathertime;
79 extern double cblas_localspmvtime;
80 extern double cblas_mergeconttime;
81 extern double cblas_transvectime;
82 
83 
84 extern double mcl_Abcasttime;
85 extern double mcl_Bbcasttime;
86 extern double mcl_localspgemmtime;
87 extern double mcl_multiwaymergetime;
88 extern double mcl_kselecttime;
89 extern double mcl_prunecolumntime;
90 
91 
92 
93 // An adapter function that allows using extended-callback EWiseApply with plain-old binary functions that don't want the extra parameters.
94 template <typename RETT, typename NU1, typename NU2, typename BINOP>
96 {
97  public:
99 
100  EWiseExtToPlainAdapter(BINOP op): plain_binary_op(op) {}
101 
102  RETT operator()(const NU1& a, const NU2& b, bool aIsNull, bool bIsNull)
103  {
104  return plain_binary_op(a, b);
105  }
106 };
107 
108 #include "SpDefs.h"
109 #include "BitMap.h"
110 #include "SpTuples.h"
111 #include "SpDCCols.h"
112 #include "SpCCols.h"
113 #include "SpParMat.h"
114 #include "FullyDistVec.h"
115 #include "FullyDistSpVec.h"
116 #include "VecIterator.h"
117 #include "PreAllocatedSPA.h"
118 #include "ParFriends.h"
119 #include "BFSFriends.h"
120 #include "DistEdgeList.h"
121 #include "Semirings.h"
122 #include "Operations.h"
123 #include "MPIOp.h"
124 #include "MPIType.h"
125 
126 #endif
double mcl_localspgemmtime
Definition: MCL.cpp:59
double cblas_alltoalltime
Definition: DirOptBFS.cpp:57
double mcl_multiwaymergetime
Definition: MCL.cpp:60
double mcl_Bbcasttime
Definition: MCL.cpp:58
double mcl_prunecolumntime
Definition: MCL.cpp:62
double cblas_mergeconttime
Definition: DirOptBFS.cpp:59
double cblas_localspmvtime
Definition: DirOptBFS.cpp:61
EWiseExtToPlainAdapter(BINOP op)
Definition: CombBLAS.h:100
double mcl_Abcasttime
Definition: MCL.cpp:57
double cblas_allgathertime
Definition: DirOptBFS.cpp:58
int cblas_splits
Definition: DirOptBFS.cpp:72
RETT operator()(const NU1 &a, const NU2 &b, bool aIsNull, bool bIsNull)
Definition: CombBLAS.h:102
double cblas_transvectime
Definition: DirOptBFS.cpp:60
double mcl_kselecttime
Definition: MCL.cpp:61