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;
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.
94template <typename RETT, typename NU1, typename NU2, typename BINOP>
96{
97 public:
99
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
RETT operator()(const NU1 &a, const NU2 &b, bool aIsNull, bool bIsNull)
Definition CombBLAS.h:102
EWiseExtToPlainAdapter(BINOP op)
Definition CombBLAS.h:100
double mcl_localspgemmtime
Definition MCL.cpp:59
double mcl_multiwaymergetime
Definition MCL.cpp:60
double mcl_prunecolumntime
Definition MCL.cpp:62
double mcl_Bbcasttime
Definition MCL.cpp:58
double cblas_transvectime
Definition DirOptBFS.cpp:60
double cblas_localspmvtime
Definition DirOptBFS.cpp:61
double mcl_kselecttime
Definition MCL.cpp:61
int cblas_splits
Definition DirOptBFS.cpp:72
double cblas_allgathertime
Definition DirOptBFS.cpp:58
double cblas_alltoalltime
Definition DirOptBFS.cpp:57
double mcl_Abcasttime
Definition MCL.cpp:57
double cblas_mergeconttime
Definition DirOptBFS.cpp:59