COMBINATORIAL_BLAS 1.6
 
Loading...
Searching...
No Matches
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
9Combinatorial 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
11If 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
14NOTICE. 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
76extern int cblas_splits;
77extern double cblas_alltoalltime;
78extern double cblas_allgathertime;
79extern double cblas_localspmvtime;
80extern double cblas_mergeconttime;
81extern double cblas_transvectime;
82
83
84extern double mcl_Abcasttime;
85extern double mcl_Bbcasttime;
86extern double mcl_localspgemmtime;
87extern double mcl_multiwaymergetime;
88extern double mcl_kselecttime;
89extern double mcl_prunecolumntime;
90extern double mcl_symbolictime;
91
92
93extern double mcl3d_conversiontime;
94extern double mcl3d_symbolictime;
95extern double mcl3d_Abcasttime;
96extern double mcl3d_Bbcasttime;
97extern double mcl3d_SUMMAtime;
98extern double mcl3d_localspgemmtime;
99extern double mcl3d_SUMMAmergetime;
100extern double mcl3d_reductiontime;
101extern double mcl3d_3dmergetime;
102extern double mcl3d_kselecttime;
103
104// An adapter function that allows using extended-callback EWiseApply with plain-old binary functions that don't want the extra parameters.
105template <typename RETT, typename NU1, typename NU2, typename BINOP>
107{
108 public:
109 BINOP plain_binary_op;
110
112
113 RETT operator()(const NU1& a, const NU2& b, bool aIsNull, bool bIsNull)
114 {
115 return plain_binary_op(a, b);
116 }
117};
118
119#include "SpDefs.h"
120#include "BitMap.h"
121#include "SpTuples.h"
122#include "SpDCCols.h"
123#include "SpCCols.h"
124#include "SpParMat.h"
125#include "SpParMat3D.h"
126#include "FullyDistVec.h"
127#include "FullyDistSpVec.h"
128#include "VecIterator.h"
129#include "PreAllocatedSPA.h"
130#include "ParFriends.h"
131#include "BlockSpGEMM.h"
132#include "BFSFriends.h"
133#include "DistEdgeList.h"
134#include "Semirings.h"
135#include "Operations.h"
136#include "MPIOp.h"
137#include "MPIType.h"
138
139#endif
RETT operator()(const NU1 &a, const NU2 &b, bool aIsNull, bool bIsNull)
Definition CombBLAS.h:113
EWiseExtToPlainAdapter(BINOP op)
Definition CombBLAS.h:111
double mcl_localspgemmtime
Definition MCL.cpp:60
double mcl_symbolictime
Definition MCL.cpp:57
double mcl_multiwaymergetime
Definition MCL.cpp:61
double mcl_prunecolumntime
Definition MCL.cpp:63
double mcl3d_symbolictime
Definition MCL.cpp:67
double mcl_Bbcasttime
Definition MCL.cpp:59
double mcl3d_SUMMAmergetime
Definition MCL.cpp:72
double mcl3d_Bbcasttime
Definition MCL.cpp:69
double cblas_transvectime
Definition DirOptBFS.cpp:60
double cblas_localspmvtime
Definition DirOptBFS.cpp:61
double mcl_kselecttime
Definition MCL.cpp:62
int cblas_splits
Definition BcastTest.cpp:26
double cblas_allgathertime
Definition DirOptBFS.cpp:58
double cblas_alltoalltime
Definition DirOptBFS.cpp:57
double mcl3d_reductiontime
Definition MCL.cpp:73
double mcl3d_kselecttime
Definition MCL.cpp:75
double mcl3d_conversiontime
Definition MCL.cpp:66
double mcl_Abcasttime
Definition MCL.cpp:58
double mcl3d_Abcasttime
Definition MCL.cpp:68
double mcl3d_localspgemmtime
Definition MCL.cpp:71
double mcl3d_3dmergetime
Definition MCL.cpp:74
double cblas_mergeconttime
Definition DirOptBFS.cpp:59
double mcl3d_SUMMAtime
Definition MCL.cpp:70