SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Downloaden Sie, um offline zu lesen
GraphBLAS: A linear algebraic approach
for high-performance graph algorithms
Gábor Szárnyas
szarnyas@mit.bme.hu
WHAT MAKES GRAPH PROCESSING DIFFICULT?
the “curse of connectedness”
contemporary computer architectures are good at
processing linear and hierarchical data structures,
such as Lists, Stacks, or Trees
a massive amount of random data access is required,
CPU has frequent cache misses, and implementing
parallelism is difficult
B. Shao, Y. Li, H. Wang, H. Xia (Microsoft Research),
Trinity Graph Engine and its Applications,
IEEE Data Engineering Bulleting 2017
connectedness
computer
architectures
caching and
parallelization
Graph processing in linear algebra
ADJACENCY MATRIX
𝐀       
 0 1 0 1 0 0 0
 0 0 0 0 1 0 1
 0 0 0 0 0 1 0
 1 0 1 0 0 0 0
 0 0 0 0 0 1 0
 0 0 1 0 0 0 0
 0 0 1 1 1 0 0
𝐀 𝑖𝑗 = ൝
1 if (𝑣𝑖, 𝑣𝑗) ∈ 𝐸
0 if (𝑣𝑖, 𝑣𝑗) ∉ 𝐸



 

ADJACENCY MATRIX
𝐀       
 0 1 0 1 0 0 0
 0 0 0 0 1 0 1
 0 0 0 0 0 1 0
 1 0 1 0 0 0 0
 0 0 0 0 0 1 0
 0 0 1 0 0 0 0
 0 0 1 1 1 0 0
𝐀 𝑖𝑗 = ൝
1 if (𝑣𝑖, 𝑣𝑗) ∈ 𝐸
0 if (𝑣𝑖, 𝑣𝑗) ∉ 𝐸


 

 
source
target
Most cells are zero:
sparse matrix
ADJACENCY MATRIX
𝐀       
 1 1
 1 1
 1
 1 1
 1
 1
 1 1 1
𝐀 𝑖𝑗 = ൝
1 if (𝑣𝑖, 𝑣𝑗) ∈ 𝐸
0 if (𝑣𝑖, 𝑣𝑗) ∉ 𝐸


 

 
source
target
Most cells are zero:
sparse matrix
GRAPH TRAVERSAL WITH MATRIX MULTIPLICATION
      
𝐯 1
𝐀
 1 1
 1 1
 1
 1 1
 1
 1
 1 1 1
one-hop: 𝐯𝐀
1 1 1
      
 


Use vector/matrix operations to express graph algorithms:
𝐯𝐀 𝑘
means 𝑘 hops in the graph


GRAPH TRAVERSAL WITH MATRIX MULTIPLICATION
      
𝐯 1
𝐀
 1 1
 1 1
 1
 1 1
 1
 1
 1 1 1
one-hop: 𝐯𝐀
1 1 1
      
𝐀
 1 1
 1 1
 1
 1 1
 1
 1
 1 1 1
1 1 2
      
two-hop: 𝐯𝐀 𝟐
 
 

Use vector/matrix operations to express graph algorithms:
𝐯𝐀 𝑘
means 𝑘 hops in the graph
BOOKS ON LINEAR ALGEBRA FOR GRAPH PROCESSING
 1974: Aho-Hopcroft-Ullman book
o The Design and Analysis of Computer Algorithms
 1990: Cormen-Leiserson-Rivest book
o Introduction to Algorithms
 2011: GALLA book (ed. Kepner and Gilbert)
o Graph Algorithms in the Language of Linear Algebra
A lot of literature but few practical implementations
and particularly few easy-to-use libraries.
THE GRAPHBLAS STANDARD
BLAS GraphBLAS
Hardware architecture Hardware architecture
Numerical applications Graph analytical apps
LAGraphLINPACK/LAPACK
Separation of concernsSeparation of concerns
Goal: separate the concerns of the hardware/library/application designers.
 1979: BLAS Basic Linear Algebra Subprograms (dense)
 2001: Sparse BLAS an extension to BLAS (insufficient for graphs, little uptake)
 2013: GraphBLAS standard building blocks for graph algorithms in LA
Semiring-based graph computations
MATRIX MULTIPLICATION
Definition:
𝐂 = 𝐀𝐁
𝐂 𝑖, 𝑗 = Σ
𝑘
𝐀 𝑖, 𝑘 ⋅ 𝐁 𝑘, 𝑗
Example:
𝐂 2,3 = 𝐀 2,1 ⋅ 𝐁 1,3 +
𝐀 2,2 ⋅ 𝐁 2,3
= 2 ⋅ 5 + 3 ⋅ 4 = 22
22
𝐀
2 3
𝐁
5
4
𝐂 = 𝐀 ⋅ 𝐁
10 + 12 = 22
3 · 4 = 12
2 · 5 = 10
MATRIX MULTIPLICATION ON SEMIRINGS
 Using the conventional semiring
𝐂 = 𝐀𝐁
𝐂 𝑖, 𝑗 = Σ
𝑘
𝐀 𝑖, 𝑘 ⋅ 𝐁 𝑘, 𝑗
 Use arbitrary semirings that override the ⨁ addition and
⨂ multiplication operators. Generalized formula (simplified)
𝐂 = 𝐀 ⨁.⨂ 𝐁
𝐂 𝑖, 𝑗 = ⊕
𝑘
𝐀 𝑖, 𝑘 ⨂𝐁 𝑘, 𝑗
GRAPHBLAS SEMIRINGS
The 𝐷,⊕,⊗, 0 algebraic structure is a GraphBLAS semiring if
 𝐷,⊕, 0 is a commutative monoid over domain 𝐷 with an
addition operator ⊕ and identity 0, where ∀𝑎, 𝑏, 𝑐 ∈ 𝐷:
o Commutative 𝑎 ⊕ 𝑏 = 𝑏 ⊕ 𝑎
o Associative 𝑎 ⊕ 𝑏 ⊕ 𝑐 = 𝑎 ⊕ 𝑏 ⊕ 𝑐
o Identity 𝑎 ⊕ 0 = 𝑎
 The multiplication operator is a closed binary operator
⊗: 𝐷 × 𝐷 → 𝐷.
This is less strict than the standard mathematical definition which
requires that ⊗ is a monoid and distributes over ⊕.
COMMON SEMIRINGS
semiring domain ⨁ ⨂ 0
integer arithmetic 𝑎 ∈ ℕ + ⋅ 0
real arithmetic 𝑎 ∈ ℝ + ⋅ 0
lor-land 𝑎 ∈ F, T ⋁ ⋀ F
Galois field 𝑎 ∈ 0,1 xor ⋀ 0
power set 𝑎 ⊂ ℤ ∪ ∩ ∅
Notation: 𝐀 ⊕.⊗ 𝐁 is a matrix multiplication using addition ⊕ and
multiplication ⊗, e.g. 𝐀 ∨.∧ 𝐁. The default is 𝐀 + . ⋅ 𝐁
MATRIX MULTIPLICATION SEMANTICS
Semantics: number of paths



 

semiring domain ⨁ ⨂ 0
integer arithmetic 𝑎 ∈ ℕ + ⋅ 0
      
𝐯 0 0 0 1 0 1 0
𝐀       
 1 1
 1 1
 1
 1 1
 1
 1
 1 1 1
1 2
1·1=1
1+1=2
1·1=1
𝐯 ⊕.⊗ 𝐀
MATRIX MULTIPLICATION SEMANTICS
semiring domain ⨁ ⨂ 0
lor-land 𝑎 ∈ F, T ∨ ∧ F



 

Semantics: reachability
      
𝐯 F F F T F T F
𝐀       
 T T
 T T
 T
 T T
 T
 T
 T T T
T T
T∧T=T
T∧T=T
T∨T=T 𝐯 ∨.∧ 𝐀Identity element: F
MATRIX MULTIPLICATION SEMANTICS
semiring domain ⨁ ⨂ 0
min-plus 𝑎 ∈ ℝ ∪ ∞ min + ∞
Semantics: shortest path
.2
.4
.5
.6



 
 .5
      
𝐯 ∞ ∞ ∞ .5 ∞ .6 ∞
𝐀       
 1 1
 1 1
 1
 .2 .4
 1
 .5
 1 1 1
.7 .9
min(0.9,1.1)=0.9 𝐯 min . + 𝐀
0.5+0.4=0.9
0.6+0.5=1.1
Graph algorithms in GraphBLAS
Single-source shortest path
SSSP – SINGLE-SOURCE SHORTEST PATHS
 Problem:
o From a given start node 𝑠, find the shortest paths to every other
(reachable) node in the graph
 Bellman-Ford algorithm:
o Relaxes all edges in each step
o Guaranteed to find the shortest paths using at most 𝑛 − 1 steps
 Observation:
o The relaxation step can be captured using a VM multiplication
SSSP – ALGEBRAIC BELLMAN-FORD
.2
.4



 
 .5
      
𝐝 0 ∞ ∞ ∞ ∞ ∞ ∞
𝐀       
 0 .3 ∞ .8 ∞ ∞ ∞
 ∞ 0 ∞ ∞ .1 ∞ .7
 ∞ ∞ 0 ∞ ∞ .5 ∞
 .2 ∞ .4 0 ∞ ∞ ∞
 ∞ ∞ ∞ ∞ 0 .1 ∞
 ∞ ∞ .5 ∞ ∞ 0 ∞
 ∞ ∞ .1 .5 .9 ∞ 0
.3
.8
.8
.7 .1
.5
.1
.1
.5
𝐝 min.+ 𝐀
𝐀 𝑖𝑗 = ൞
0 if 𝑖 = 𝑗
𝑤 𝑒𝑖𝑗 if 𝑒𝑖𝑗 ∈ 𝐸
∞ if 𝑒𝑖𝑗 ∉ 𝐸
𝐝 = ∞ ∞ … ∞
𝐝 𝑠 = 0
We use the min-plus semiring with identity ∞.
SSSP – ALGEBRAIC BELLMAN-FORD
.2
.4



 
 .5
      
𝐝 0 ∞ ∞ ∞ ∞ ∞ ∞
.3
.8
.8
.7 .1
.5
.1
.1
.5
𝐝 min.+ 𝐀
semiring set ⨁ ⨂ 0
min-plus 𝑎 ∈ ℝ ∪ ∞ min + ∞ 𝐀       
 0 .3 .8
 0 .1 .7
 0 .5
 .2 .4 0
 0 .1
 .5 0
 .1 .5 .9 0
SSSP – ALGEBRAIC BELLMAN-FORD
.2
.4



 
 .5
      
𝐝 0 ∞ ∞ ∞ ∞ ∞ ∞
𝐀       
 0 .3 .8
 0 .1 .7
 0 .5
 .2 .4 0
 0 .1
 .5 0
 .1 .5 .9 0
0 .3 .8
.3
.8
.8
.7 .1
.5
.1
.1
.5
𝐝 min.+ 𝐀
semiring set ⨁ ⨂ 0
min-plus 𝑎 ∈ ℝ ∪ ∞ min + ∞
SSSP – ALGEBRAIC BELLMAN-FORD
.2
.4



 
 .5
      
𝐝 0 .3 ∞ .8 ∞ ∞ ∞
𝐀       
 0 .3 .8
 0 .1 .7
 0 .5
 .2 .4 0
 0 .1
 .5 0
 .1 .5 .9 0
0 .3 1.2 .8 .4 1
.3
.8
.8
.7 .1
.5
.1
.1
.5
semiring set ⨁ ⨂ 0
min-plus 𝑎 ∈ ℝ ∪ ∞ min + ∞
𝐝 min.+ 𝐀
SSSP – ALGEBRAIC BELLMAN-FORD
.2
.4



 
 .5
      
𝐝 0 .3 1.2 .8 .4 ∞ 1
𝐀       
 0 .3 .8
 0 .1 .7
 0 .5
 .2 .4 0
 0 .1
 .5 0
 .1 .5 .9 0
0 .3 1.1.8 .4 .5 1
.3
.8
.8
.7 .1
.5
.1
.1
.5
𝐝 min.+ 𝐀
semiring set ⨁ ⨂ 0
min-plus 𝑎 ∈ ℝ ∪ ∞ min + ∞
SSSP – ALGEBRAIC BELLMAN-FORD
.2
.4



 

      
𝐝 0 .3 1.1.8 .4 .5 1
𝐀       
 0 .3 .8
 0 .1 .7
 0 .5
 .2 .4 0
 0 .1
 .5 0
 .1 .5 .9 0
0 .3 1 .8 .4 .5 1
.5
.5
.3
.8
.8
.7 .1
.5
.1
.1
semiring set ⨁ ⨂ 0
min-plus 𝑎 ∈ ℝ ∪ ∞ min + ∞
𝐝 min.+ 𝐀
SSSP – ALGEBRAIC BELLMAN-FORD
.2
.4



 

      
𝐝 0 .3 1 .8 .4 .5 1
𝐀       
 0 .3 .8
 0 .1 .7
 0 .5
 .2 .4 0
 0 .1
 .5 0
 .1 .5 .9 0
.5
.5
.3
.8
.8
.7 .1
.5
.1
.1
semiring set ⨁ ⨂ 0
min-plus 𝑎 ∈ ℝ ∪ ∞ min + ∞
0 .3 1 .8 .4 .5 1
𝐝 min.+ 𝐀
SSSP – ALGEBRAIC BELLMAN-FORD ALGO.
Input: adjacency matrix 𝐀, source node 𝑠, #nodes 𝑛
𝐀 𝑖𝑗 = ൞
0 if 𝑖 = 𝑗
𝑤 𝑒𝑖𝑗 if 𝑒𝑖𝑗 ∈ 𝐸
∞ if 𝑒𝑖𝑗 ∉ 𝐸
Output: distance vector 𝐝 ∈ ℝ ∪ ∞ 𝑛
1. 𝐝 = ∞ ∞ … ∞
2. 𝐝 𝑠 = 0
3. for 𝑘 = 1 to 𝑛 − 1 *terminate earlier if we reach a fixed point
4. 𝐝 = 𝐝 min.+ 𝐀
Optimization: switch between 𝐝 min.+ 𝐀 and 𝐀⊤ min.+ 𝐝 (push/pull).
Graph algorithms in GraphBLAS
Node-wise triangle count
NODE-WISE TRIANGLE COUNT
Triangle – Def 1: a set of three mutually adjacent nodes.
Def 2: a three-length closed path.
Usages:
 Global clustering coefficient
 Local clustering coefficient
 Finding communities
𝑣



 

2
8
4
6
6
2
2
GraphChallenge.org: Raising the Bar on Graph Analytic Performance, HPEC 2018
TC: NAÏVE APPROACH



 

2
8
4
6
6
2
2
𝐀       
 1 1
 1 1 1 1
 1 1 1
 1 1 1 1 1
 1 1 1
 1 1 1
 1 1 1 1
𝐀       
 1 1
 1 1 1 1
 1 1 1
 1 1 1 1 1
 1 1 1
 1 1 1
 1 1 1 1
𝐀       
1 1
1 1 1 1
1 1 1
1 1 1 1 1
1 1 1
1 1 1
1 1 1 1
2 1 1 1 1 1 2
1 4 2 2 1 2 2
1 2 3 2 2 1 1
1 2 2 5 3 1 2
1 1 2 3 3 1
1 2 1 1 3 3
2 2 1 2 1 3 4
2 6 4 7 4 3 4
6 6 6 11 8 5 9
4 6 4 8 4 7 9
7 11 8 8 5 10 12
4 8 4 5 2 8 9
3 5 7 10 8 2 4
4 9 9 12 9 4 6
𝐭𝐫𝐢 = diag−1 𝐀 ⊕.⊗ 𝐀 ⊕.⊗ 𝐀
2
6
4
8
2
2
6
𝐭𝐫𝐢
TC: OPTIMIZATION
Observation: Matrix 𝐀 ⊕.⊗ 𝐀 ⊕.⊗ 𝐀 is no longer sparse.
Optimization: Use element-wise multiplication ⊗ to close
wedges into triangles:
𝐓𝐑𝐈 = 𝐀 ⊕.⊗ 𝐀 ⊗ 𝐀
Then, perform a row-wise summation to get the number of
triangles in each row:
𝐭𝐫𝐢 = ⊕ 𝑗 𝐓𝐑𝐈 : , 𝑗
TC: ELEMENT-WISE MULTIPLICATION
𝐀       
 1 1
 1 1 1 1
 1 1 1
 1 1 1 1 1
 1 1 1
 1 1 1
 1 1 1 1
𝐀       
 1 1
 1 1 1 1
 1 1 1
 1 1 1 1 1
 1 1 1
 1 1 1
 1 1 1 1
2 1 1 1 1 1 2
1 4 2 2 1 2 2
1 2 3 2 2 1 1
1 2 2 5 3 1 2
1 1 2 3 3 1
1 2 1 1 3 3
2 2 1 2 1 3 4
1 1
1 2 1 2
2 1 1
1 2 2 1 2
1 1
1 1
2 1 2 1
𝐓𝐑𝐈 = 𝐀 ⊕.⊗ 𝐀 ⊗ 𝐀
𝐭𝐫𝐢 = ⊕ 𝑗 𝐓𝐑𝐈 : , 𝑗
𝐀 ⊕.⊗ 𝐀 is still very dense.
2
6
4
8
2
2
6



 

2
8
4
6
6
2
2
𝐭𝐫𝐢
⊕ 𝑗 ⋯
𝐓𝐑𝐈
⊗ 𝐀
TC: ELEMENT-WISE MULTIPLICATION
𝐀       
 1 1
 1 1 1 1
 1 1 1
 1 1 1 1 1
 1 1 1
 1 1 1
 1 1 1 1
𝐀       
 1 1
 1 1 1 1
 1 1 1
 1 1 1 1 1
 1 1 1
 1 1 1
 1 1 1 1
𝐓𝐑𝐈 𝐀 = 𝐀 ⊕.⊗ 𝐀
𝐭𝐫𝐢 = ⊕ 𝑗 𝐓𝐑𝐈 : , 𝑗
2
6
4
8
2
2
6



 

2
8
4
6
6
2
2
𝐭𝐫𝐢
⊕ 𝑗 ⋯
1 1
1 2 1 2
2 1 1
1 2 2 1 2
1 1
1 1
2 1 2 1
Masking limits where the
operation is computed.
Here, we use 𝐀 as a mask
for 𝐀 ⊕.⊗ 𝐀.
TC: ALGORITHM
Input: adjacency matrix 𝐀
Output: vector 𝐭𝐫𝐢
Workspace: matrix 𝐓𝐑𝐈
1. 𝐓𝐑𝐈 𝐀 = 𝐀 ⊕.⊗ 𝐀 compute the triangle count matrix
2. 𝐭𝐫𝐢 = ⊕ 𝑗 𝐓𝐑𝐈 : , 𝑗 compute the triangle count vector
Optimization: use 𝐋, the lower triangular part of 𝐀 to avoid duplicates.
𝐓𝐑𝐈 𝐀 = 𝐀 ⊕.⊗ 𝐋
Worst-case optimal joins: There are deep theoretical connections between masked matrix multiplication and
relational joins. It has been proven in 2013 that for the triangle query, binary joins always provide suboptimal
runtime, which gave rise to new research on the family of worst-case optimal multi-way joins algorithms.
Graph algorithms in GraphBLAS
Other algorithms
GRAPH ALGORITHMS IN GRAPHBLAS
problem category algorithm
canonical
complexity Θ
LA-based
complexity Θ
breadth-first search 𝑚 𝑚
single-source shortest paths
Dijkstra 𝑚 + 𝑛 log 𝑛 𝑛2
Bellman-Ford 𝑚𝑛 𝑚𝑛
all-pairs shortest paths Floyd-Warshall 𝑛3 𝑛3
minimum spanning tree
Prim 𝑚 + 𝑛 log 𝑛 𝑛2
Borůvka 𝑚 log 𝑛 𝑚 log 𝑛
maximum flow Edmonds-Karp 𝑚2 𝑛 𝑚2 𝑛
maximal independent set
greedy 𝑚 + 𝑛 log 𝑛 𝑚𝑛 + 𝑛2
Luby 𝑚 + 𝑛 log 𝑛 𝑚 log 𝑛
Based on the table in J. Kepner:
Analytic Theory of Power Law Graphs,
SIAM Workshop for HPC on Large Graphs, 2008
Notation: 𝑛 = 𝑉 , 𝑚 = |𝐸|. The complexity cells contain asymptotic bounds.
Takeaway: The majority of common graph algorithms can be expressed efficiently in LA.
See also L. Dhulipala, G.E. Blelloch, J. Shun:
Theoretically Efficient Parallel Graph Algorithms
Can Be Fast and Scalable, SPAA 2018
API and implementations
GRAPHBLAS C API
 “A crucial piece of the GraphBLAS effort is to translate the
mathematical specification to an API that
o is faithful to the mathematics as much as possible, and
o enables efficient implementations on modern hardware.”
mxm(Matrix *C, Matrix M, BinaryOp accum, Semiring op, Matrix A, Matrix B, Descriptor desc)
𝐂 ¬𝐌 ⊙= ⊕.⊗ 𝐀⊤
, 𝐁⊤
A. Buluç et al.: Design of the GraphBLAS C API, GABB@IPDPS 2017
SUITESPARSE:GRAPHBLAS
 Authored by Prof. Tim Davis at Texas A&M University,
based on his SuiteSparse library (used in MATLAB).
 Additional extension operations for efficiency.
 Sophisticated load balancer for multi-threaded execution.
 CPU-based, single machine implementation.
 Powers the RedisGraph graph database.
T.A. Davis: Algorithm 1000: SuiteSparse:GraphBLAS:
graph algorithms in the language of sparse linear
algebra, ACM TOMS, 2019
T.A. Davis: SuiteSparse:GraphBLAS: graph
algorithms via sparse matrix operations
on semirings, Sparse Days 2017
R. Lipman, T.A. Davis: Graph Algebra – Graph operations
in the language of linear algebra, RedisConf 2018
R. Lipman: RedisGraph
internals, RedisConf 2019
PYTHON WRAPPERS
Two libraries, both offer:
 Concise GraphBLAS operations
 Wrapping SuiteSparse:GrB
 Jupyter support
Difference: pygraphblas is more
Pythonic, grblas strives to stay
close to the C API.
michelp/pygraphblas
jim22k/grblas
Benchmark results
SUITESPARSE:GRAPHBLAS / LDBC GRAPHALYTICS
Twitter
50M nodes,
2B edges
Results from late 2019,
new version is even faster
graph500-26
33M nodes,
1.1B edges
d-8.8-zf
168M nodes,
413M edges
d-8.6-fb
6M nodes,
422M edges
Ubuntu Server, 512 GB RAM,
64 CPU cores, 128 threads
THE GAP BENCHMARK SUITE
S. Beamer, K. Asanovic, D. Patterson:
The GAP Benchmark Suite, arXiv, 2017
 Part of the Berkeley Graph Algorithm Platform project
 Algorithms:
o BFS, SSSP, PageRank, connected components
o betweenness centrality, triangle count
 Very efficient baseline implementation in C++
 Comparing executions of implementations that were
carefully optimized and fine-tuned by research groups
 Ongoing benchmark effort, paper to be submitted in Q2
gap.cs.berkeley.edu/benchmark.html
Further reading and summary
RESOURCES
List of GraphBLAS-related books, papers, presentations, posters, and software
szarnyasg/graphblas-pointers
Library of GraphBLAS algorithms
GraphBLAS/LAGraph
Extended version of this talk: 200+ slides
 Theoretical foundations
 BFS variants, PageRank
 clustering coefficient, 𝑘-truss and triangle count variants
 Community detection using label propagation
 Luby’s maximal independent set algorithm
 computing connected components on an overlay graph
 connections to relational algebra
SUMMARY
 Linear algebra is a powerful abstraction
o Good expressive power
o Concise formulation of most graph algorithms
o Very good performance
o Still lots of ongoing research
 Trade-offs:
o Learning curve (theory and GraphBLAS API)
o Some algorithms are difficult to formulate in linear algebra
o Only a few GraphBLAS implementations (yet)
 Overall: a very promising programming model for graph
algorithms suited to the age of heterogeneous hardware
ACKNOWLEDGEMENTS
 Tim Davis and Tim Mattson for helpful discussions,
members of GraphBLAS mailing list for their detailed
feedback.
 The LDBC Graphalytics task force for creating the
benchmark and assisting in the measurements.
 Master’s students at BME for developing GraphBLAS-based
algorithms: Bálint Hegyi, Márton Elekes, Petra Várhegyi,
Lehel Boér

Weitere ähnliche Inhalte

Was ist angesagt?

Numerical differentiation integration
Numerical differentiation integrationNumerical differentiation integration
Numerical differentiation integrationTarun Gehlot
 
Question 5 Math 1
Question 5 Math 1Question 5 Math 1
Question 5 Math 1M.T.H Group
 
Question 4 Math 1
Question 4 Math 1Question 4 Math 1
Question 4 Math 1M.T.H Group
 
Hermite integrators and Riordan arrays
Hermite integrators and Riordan arraysHermite integrators and Riordan arrays
Hermite integrators and Riordan arraysKeigo Nitadori
 
Convergence methods for approximated reciprocal and reciprocal-square-root
Convergence methods for approximated reciprocal and reciprocal-square-rootConvergence methods for approximated reciprocal and reciprocal-square-root
Convergence methods for approximated reciprocal and reciprocal-square-rootKeigo Nitadori
 
ゲーム理論NEXT 期待効用理論第6回 -3つの公理と期待効用定理-
ゲーム理論NEXT 期待効用理論第6回 -3つの公理と期待効用定理-ゲーム理論NEXT 期待効用理論第6回 -3つの公理と期待効用定理-
ゲーム理論NEXT 期待効用理論第6回 -3つの公理と期待効用定理-ssusere0a682
 
線形回帰モデル
線形回帰モデル線形回帰モデル
線形回帰モデル貴之 八木
 
Common derivatives integrals
Common derivatives integralsCommon derivatives integrals
Common derivatives integralsolziich
 
Alegebra Powers Substitution
Alegebra Powers SubstitutionAlegebra Powers Substitution
Alegebra Powers SubstitutionPassy World
 
A block-step version of KS regularization
A block-step version of KS regularizationA block-step version of KS regularization
A block-step version of KS regularizationKeigo Nitadori
 
Exponentials integrals
Exponentials integralsExponentials integrals
Exponentials integralsTarun Gehlot
 
Newton's Backward Interpolation Formula with Example
Newton's Backward Interpolation Formula with ExampleNewton's Backward Interpolation Formula with Example
Newton's Backward Interpolation Formula with ExampleMuhammadUsmanIkram2
 
Local linear approximation
Local linear approximationLocal linear approximation
Local linear approximationTarun Gehlot
 

Was ist angesagt? (20)

Fuzzy logic
Fuzzy logicFuzzy logic
Fuzzy logic
 
Numerical differentiation integration
Numerical differentiation integrationNumerical differentiation integration
Numerical differentiation integration
 
Question 5 Math 1
Question 5 Math 1Question 5 Math 1
Question 5 Math 1
 
Question 4 Math 1
Question 4 Math 1Question 4 Math 1
Question 4 Math 1
 
Hermite integrators and Riordan arrays
Hermite integrators and Riordan arraysHermite integrators and Riordan arrays
Hermite integrators and Riordan arrays
 
Convergence methods for approximated reciprocal and reciprocal-square-root
Convergence methods for approximated reciprocal and reciprocal-square-rootConvergence methods for approximated reciprocal and reciprocal-square-root
Convergence methods for approximated reciprocal and reciprocal-square-root
 
Kruskal Algorithm
Kruskal AlgorithmKruskal Algorithm
Kruskal Algorithm
 
ゲーム理論NEXT 期待効用理論第6回 -3つの公理と期待効用定理-
ゲーム理論NEXT 期待効用理論第6回 -3つの公理と期待効用定理-ゲーム理論NEXT 期待効用理論第6回 -3つの公理と期待効用定理-
ゲーム理論NEXT 期待効用理論第6回 -3つの公理と期待効用定理-
 
線形回帰モデル
線形回帰モデル線形回帰モデル
線形回帰モデル
 
Common derivatives integrals
Common derivatives integralsCommon derivatives integrals
Common derivatives integrals
 
計算材料学
計算材料学計算材料学
計算材料学
 
Alegebra Powers Substitution
Alegebra Powers SubstitutionAlegebra Powers Substitution
Alegebra Powers Substitution
 
A block-step version of KS regularization
A block-step version of KS regularizationA block-step version of KS regularization
A block-step version of KS regularization
 
Exponentials integrals
Exponentials integralsExponentials integrals
Exponentials integrals
 
Ch 5 integration
Ch 5 integration  Ch 5 integration
Ch 5 integration
 
Newton's Backward Interpolation Formula with Example
Newton's Backward Interpolation Formula with ExampleNewton's Backward Interpolation Formula with Example
Newton's Backward Interpolation Formula with Example
 
Solution 2 i ph o 38
Solution 2 i ph o 38Solution 2 i ph o 38
Solution 2 i ph o 38
 
Local linear approximation
Local linear approximationLocal linear approximation
Local linear approximation
 
Poisson distribution jen
Poisson distribution jenPoisson distribution jen
Poisson distribution jen
 
properties of exponents
properties of exponentsproperties of exponents
properties of exponents
 

Ähnlich wie GraphBLAS: A linear algebraic approach for high-performance graph queries

Introduction to PyTorch
Introduction to PyTorchIntroduction to PyTorch
Introduction to PyTorchJun Young Park
 
"Incremental Lossless Graph Summarization", KDD 2020
"Incremental Lossless Graph Summarization", KDD 2020"Incremental Lossless Graph Summarization", KDD 2020
"Incremental Lossless Graph Summarization", KDD 2020지훈 고
 
Symbolic Regression on Network Properties
Symbolic Regression on Network PropertiesSymbolic Regression on Network Properties
Symbolic Regression on Network PropertiesMarcus Märtens
 
Introduction to MatLab programming
Introduction to MatLab programmingIntroduction to MatLab programming
Introduction to MatLab programmingDamian T. Gordon
 
MODULE_05-Matrix Decomposition.pptx
MODULE_05-Matrix Decomposition.pptxMODULE_05-Matrix Decomposition.pptx
MODULE_05-Matrix Decomposition.pptxAlokSingh205089
 
A Signal Processing Approach To Fair Surface Design
A Signal Processing Approach To Fair Surface DesignA Signal Processing Approach To Fair Surface Design
A Signal Processing Approach To Fair Surface DesignBasel Abu-sinni
 
Signal flow graph
Signal flow graphSignal flow graph
Signal flow graphjani parth
 
Unit-1 Basic Concept of Algorithm.pptx
Unit-1 Basic Concept of Algorithm.pptxUnit-1 Basic Concept of Algorithm.pptx
Unit-1 Basic Concept of Algorithm.pptxssuser01e301
 
Elliptic Curve Cryptography
Elliptic Curve CryptographyElliptic Curve Cryptography
Elliptic Curve CryptographyJorgeVillamarin5
 
Matlab lecture 7 – regula falsi or false position method@taj
Matlab lecture 7 – regula falsi or false position method@tajMatlab lecture 7 – regula falsi or false position method@taj
Matlab lecture 7 – regula falsi or false position method@tajTajim Md. Niamat Ullah Akhund
 
CVPR2016 Fitting Surface Models to Data 抜粋
CVPR2016 Fitting Surface Models to Data 抜粋CVPR2016 Fitting Surface Models to Data 抜粋
CVPR2016 Fitting Surface Models to Data 抜粋sumisumith
 
Direct solution of sparse network equations by optimally ordered triangular f...
Direct solution of sparse network equations by optimally ordered triangular f...Direct solution of sparse network equations by optimally ordered triangular f...
Direct solution of sparse network equations by optimally ordered triangular f...Dimas Ruliandi
 
5.3 Graphs of Polynomial Functions
5.3 Graphs of Polynomial Functions5.3 Graphs of Polynomial Functions
5.3 Graphs of Polynomial Functionssmiller5
 
Generalized Laplace - Mellin Integral Transformation
Generalized Laplace - Mellin Integral TransformationGeneralized Laplace - Mellin Integral Transformation
Generalized Laplace - Mellin Integral TransformationIJERA Editor
 
Machine learning introduction lecture notes
Machine learning introduction lecture notesMachine learning introduction lecture notes
Machine learning introduction lecture notesUmeshJagga1
 
Deep Feed Forward Neural Networks and Regularization
Deep Feed Forward Neural Networks and RegularizationDeep Feed Forward Neural Networks and Regularization
Deep Feed Forward Neural Networks and RegularizationYan Xu
 
Mathematical Understanding in Traffic Flow Modelling
Mathematical Understanding in Traffic Flow ModellingMathematical Understanding in Traffic Flow Modelling
Mathematical Understanding in Traffic Flow ModellingNikhil Chandra Sarkar
 

Ähnlich wie GraphBLAS: A linear algebraic approach for high-performance graph queries (20)

Introduction to PyTorch
Introduction to PyTorchIntroduction to PyTorch
Introduction to PyTorch
 
Learn Matlab
Learn MatlabLearn Matlab
Learn Matlab
 
"Incremental Lossless Graph Summarization", KDD 2020
"Incremental Lossless Graph Summarization", KDD 2020"Incremental Lossless Graph Summarization", KDD 2020
"Incremental Lossless Graph Summarization", KDD 2020
 
Symbolic Regression on Network Properties
Symbolic Regression on Network PropertiesSymbolic Regression on Network Properties
Symbolic Regression on Network Properties
 
Introduction to MatLab programming
Introduction to MatLab programmingIntroduction to MatLab programming
Introduction to MatLab programming
 
MODULE_05-Matrix Decomposition.pptx
MODULE_05-Matrix Decomposition.pptxMODULE_05-Matrix Decomposition.pptx
MODULE_05-Matrix Decomposition.pptx
 
A Signal Processing Approach To Fair Surface Design
A Signal Processing Approach To Fair Surface DesignA Signal Processing Approach To Fair Surface Design
A Signal Processing Approach To Fair Surface Design
 
Signal flow graph
Signal flow graphSignal flow graph
Signal flow graph
 
Unit-1 Basic Concept of Algorithm.pptx
Unit-1 Basic Concept of Algorithm.pptxUnit-1 Basic Concept of Algorithm.pptx
Unit-1 Basic Concept of Algorithm.pptx
 
Elliptic Curve Cryptography
Elliptic Curve CryptographyElliptic Curve Cryptography
Elliptic Curve Cryptography
 
Matlab lecture 7 – regula falsi or false position method@taj
Matlab lecture 7 – regula falsi or false position method@tajMatlab lecture 7 – regula falsi or false position method@taj
Matlab lecture 7 – regula falsi or false position method@taj
 
CVPR2016 Fitting Surface Models to Data 抜粋
CVPR2016 Fitting Surface Models to Data 抜粋CVPR2016 Fitting Surface Models to Data 抜粋
CVPR2016 Fitting Surface Models to Data 抜粋
 
Direct solution of sparse network equations by optimally ordered triangular f...
Direct solution of sparse network equations by optimally ordered triangular f...Direct solution of sparse network equations by optimally ordered triangular f...
Direct solution of sparse network equations by optimally ordered triangular f...
 
Romberg
RombergRomberg
Romberg
 
5.3 Graphs of Polynomial Functions
5.3 Graphs of Polynomial Functions5.3 Graphs of Polynomial Functions
5.3 Graphs of Polynomial Functions
 
Generalized Laplace - Mellin Integral Transformation
Generalized Laplace - Mellin Integral TransformationGeneralized Laplace - Mellin Integral Transformation
Generalized Laplace - Mellin Integral Transformation
 
Matlab1
Matlab1Matlab1
Matlab1
 
Machine learning introduction lecture notes
Machine learning introduction lecture notesMachine learning introduction lecture notes
Machine learning introduction lecture notes
 
Deep Feed Forward Neural Networks and Regularization
Deep Feed Forward Neural Networks and RegularizationDeep Feed Forward Neural Networks and Regularization
Deep Feed Forward Neural Networks and Regularization
 
Mathematical Understanding in Traffic Flow Modelling
Mathematical Understanding in Traffic Flow ModellingMathematical Understanding in Traffic Flow Modelling
Mathematical Understanding in Traffic Flow Modelling
 

Mehr von Gábor Szárnyas

What Makes Graph Queries Difficult?
What Makes Graph Queries Difficult?What Makes Graph Queries Difficult?
What Makes Graph Queries Difficult?Gábor Szárnyas
 
Mapping Graph Queries to PostgreSQL
Mapping Graph Queries to PostgreSQLMapping Graph Queries to PostgreSQL
Mapping Graph Queries to PostgreSQLGábor Szárnyas
 
An early look at the LDBC Social Network Benchmark's Business Intelligence wo...
An early look at the LDBC Social Network Benchmark's Business Intelligence wo...An early look at the LDBC Social Network Benchmark's Business Intelligence wo...
An early look at the LDBC Social Network Benchmark's Business Intelligence wo...Gábor Szárnyas
 
Incremental View Maintenance for openCypher Queries
Incremental View Maintenance for openCypher QueriesIncremental View Maintenance for openCypher Queries
Incremental View Maintenance for openCypher QueriesGábor Szárnyas
 
Writing a Cypher Engine in Clojure
Writing a Cypher Engine in ClojureWriting a Cypher Engine in Clojure
Writing a Cypher Engine in ClojureGábor Szárnyas
 
Learning Timed Automata with Cypher
Learning Timed Automata with CypherLearning Timed Automata with Cypher
Learning Timed Automata with CypherGábor Szárnyas
 
Időzített automatatanulás Cypherrel
Időzített automatatanulás CypherrelIdőzített automatatanulás Cypherrel
Időzített automatatanulás CypherrelGábor Szárnyas
 
Compiling openCypher graph queries with Spark Catalyst
Compiling openCypher graph queries with Spark CatalystCompiling openCypher graph queries with Spark Catalyst
Compiling openCypher graph queries with Spark CatalystGábor Szárnyas
 
Towards the Characterization of Realistic Models: Evaluation of Multidiscipli...
Towards the Characterization of Realistic Models: Evaluation of Multidiscipli...Towards the Characterization of Realistic Models: Evaluation of Multidiscipli...
Towards the Characterization of Realistic Models: Evaluation of Multidiscipli...Gábor Szárnyas
 
Sharded Joins for Scalable Incremental Graph Queries
Sharded Joins for Scalable Incremental Graph QueriesSharded Joins for Scalable Incremental Graph Queries
Sharded Joins for Scalable Incremental Graph QueriesGábor Szárnyas
 
Towards a Macrobenchmark Framework for Performance Analysis of Java Applications
Towards a Macrobenchmark Framework for Performance Analysis of Java ApplicationsTowards a Macrobenchmark Framework for Performance Analysis of Java Applications
Towards a Macrobenchmark Framework for Performance Analysis of Java ApplicationsGábor Szárnyas
 
IncQuery-D: Distributed Incremental Graph Queries
IncQuery-D: Distributed Incremental Graph QueriesIncQuery-D: Distributed Incremental Graph Queries
IncQuery-D: Distributed Incremental Graph QueriesGábor Szárnyas
 
IncQuery-D: Incremental Queries in the Cloud
IncQuery-D: Incremental Queries in the CloudIncQuery-D: Incremental Queries in the Cloud
IncQuery-D: Incremental Queries in the CloudGábor Szárnyas
 

Mehr von Gábor Szárnyas (14)

What Makes Graph Queries Difficult?
What Makes Graph Queries Difficult?What Makes Graph Queries Difficult?
What Makes Graph Queries Difficult?
 
Mapping Graph Queries to PostgreSQL
Mapping Graph Queries to PostgreSQLMapping Graph Queries to PostgreSQL
Mapping Graph Queries to PostgreSQL
 
An early look at the LDBC Social Network Benchmark's Business Intelligence wo...
An early look at the LDBC Social Network Benchmark's Business Intelligence wo...An early look at the LDBC Social Network Benchmark's Business Intelligence wo...
An early look at the LDBC Social Network Benchmark's Business Intelligence wo...
 
Incremental View Maintenance for openCypher Queries
Incremental View Maintenance for openCypher QueriesIncremental View Maintenance for openCypher Queries
Incremental View Maintenance for openCypher Queries
 
Writing a Cypher Engine in Clojure
Writing a Cypher Engine in ClojureWriting a Cypher Engine in Clojure
Writing a Cypher Engine in Clojure
 
Learning Timed Automata with Cypher
Learning Timed Automata with CypherLearning Timed Automata with Cypher
Learning Timed Automata with Cypher
 
Időzített automatatanulás Cypherrel
Időzített automatatanulás CypherrelIdőzített automatatanulás Cypherrel
Időzített automatatanulás Cypherrel
 
Parsing process
Parsing processParsing process
Parsing process
 
Compiling openCypher graph queries with Spark Catalyst
Compiling openCypher graph queries with Spark CatalystCompiling openCypher graph queries with Spark Catalyst
Compiling openCypher graph queries with Spark Catalyst
 
Towards the Characterization of Realistic Models: Evaluation of Multidiscipli...
Towards the Characterization of Realistic Models: Evaluation of Multidiscipli...Towards the Characterization of Realistic Models: Evaluation of Multidiscipli...
Towards the Characterization of Realistic Models: Evaluation of Multidiscipli...
 
Sharded Joins for Scalable Incremental Graph Queries
Sharded Joins for Scalable Incremental Graph QueriesSharded Joins for Scalable Incremental Graph Queries
Sharded Joins for Scalable Incremental Graph Queries
 
Towards a Macrobenchmark Framework for Performance Analysis of Java Applications
Towards a Macrobenchmark Framework for Performance Analysis of Java ApplicationsTowards a Macrobenchmark Framework for Performance Analysis of Java Applications
Towards a Macrobenchmark Framework for Performance Analysis of Java Applications
 
IncQuery-D: Distributed Incremental Graph Queries
IncQuery-D: Distributed Incremental Graph QueriesIncQuery-D: Distributed Incremental Graph Queries
IncQuery-D: Distributed Incremental Graph Queries
 
IncQuery-D: Incremental Queries in the Cloud
IncQuery-D: Incremental Queries in the CloudIncQuery-D: Incremental Queries in the Cloud
IncQuery-D: Incremental Queries in the Cloud
 

Kürzlich hochgeladen

Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VDineshKumar4165
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...SUHANI PANDEY
 
Unit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfUnit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfRagavanV2
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapRishantSharmaFr
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdfankushspencer015
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdfKamal Acharya
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringmulugeta48
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueBhangaleSonal
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756dollysharma2066
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...roncy bisnoi
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performancesivaprakash250
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfJiananWang21
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Arindam Chakraborty, Ph.D., P.E. (CA, TX)
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...Call Girls in Nagpur High Profile
 

Kürzlich hochgeladen (20)

Thermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - VThermal Engineering-R & A / C - unit - V
Thermal Engineering-R & A / C - unit - V
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
Unit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfUnit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdf
 
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Netaji Nagar, Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineering
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 
NFPA 5000 2024 standard .
NFPA 5000 2024 standard                                  .NFPA 5000 2024 standard                                  .
NFPA 5000 2024 standard .
 

GraphBLAS: A linear algebraic approach for high-performance graph queries

  • 1. GraphBLAS: A linear algebraic approach for high-performance graph algorithms Gábor Szárnyas szarnyas@mit.bme.hu
  • 2. WHAT MAKES GRAPH PROCESSING DIFFICULT? the “curse of connectedness” contemporary computer architectures are good at processing linear and hierarchical data structures, such as Lists, Stacks, or Trees a massive amount of random data access is required, CPU has frequent cache misses, and implementing parallelism is difficult B. Shao, Y. Li, H. Wang, H. Xia (Microsoft Research), Trinity Graph Engine and its Applications, IEEE Data Engineering Bulleting 2017 connectedness computer architectures caching and parallelization
  • 3. Graph processing in linear algebra
  • 4. ADJACENCY MATRIX 𝐀         0 1 0 1 0 0 0  0 0 0 0 1 0 1  0 0 0 0 0 1 0  1 0 1 0 0 0 0  0 0 0 0 0 1 0  0 0 1 0 0 0 0  0 0 1 1 1 0 0 𝐀 𝑖𝑗 = ൝ 1 if (𝑣𝑖, 𝑣𝑗) ∈ 𝐸 0 if (𝑣𝑖, 𝑣𝑗) ∉ 𝐸      
  • 5. ADJACENCY MATRIX 𝐀         0 1 0 1 0 0 0  0 0 0 0 1 0 1  0 0 0 0 0 1 0  1 0 1 0 0 0 0  0 0 0 0 0 1 0  0 0 1 0 0 0 0  0 0 1 1 1 0 0 𝐀 𝑖𝑗 = ൝ 1 if (𝑣𝑖, 𝑣𝑗) ∈ 𝐸 0 if (𝑣𝑖, 𝑣𝑗) ∉ 𝐸        source target Most cells are zero: sparse matrix
  • 6. ADJACENCY MATRIX 𝐀         1 1  1 1  1  1 1  1  1  1 1 1 𝐀 𝑖𝑗 = ൝ 1 if (𝑣𝑖, 𝑣𝑗) ∈ 𝐸 0 if (𝑣𝑖, 𝑣𝑗) ∉ 𝐸        source target Most cells are zero: sparse matrix
  • 7. GRAPH TRAVERSAL WITH MATRIX MULTIPLICATION        𝐯 1 𝐀  1 1  1 1  1  1 1  1  1  1 1 1 one-hop: 𝐯𝐀 1 1 1            Use vector/matrix operations to express graph algorithms: 𝐯𝐀 𝑘 means 𝑘 hops in the graph  
  • 8. GRAPH TRAVERSAL WITH MATRIX MULTIPLICATION        𝐯 1 𝐀  1 1  1 1  1  1 1  1  1  1 1 1 one-hop: 𝐯𝐀 1 1 1        𝐀  1 1  1 1  1  1 1  1  1  1 1 1 1 1 2        two-hop: 𝐯𝐀 𝟐      Use vector/matrix operations to express graph algorithms: 𝐯𝐀 𝑘 means 𝑘 hops in the graph
  • 9. BOOKS ON LINEAR ALGEBRA FOR GRAPH PROCESSING  1974: Aho-Hopcroft-Ullman book o The Design and Analysis of Computer Algorithms  1990: Cormen-Leiserson-Rivest book o Introduction to Algorithms  2011: GALLA book (ed. Kepner and Gilbert) o Graph Algorithms in the Language of Linear Algebra A lot of literature but few practical implementations and particularly few easy-to-use libraries.
  • 10. THE GRAPHBLAS STANDARD BLAS GraphBLAS Hardware architecture Hardware architecture Numerical applications Graph analytical apps LAGraphLINPACK/LAPACK Separation of concernsSeparation of concerns Goal: separate the concerns of the hardware/library/application designers.  1979: BLAS Basic Linear Algebra Subprograms (dense)  2001: Sparse BLAS an extension to BLAS (insufficient for graphs, little uptake)  2013: GraphBLAS standard building blocks for graph algorithms in LA
  • 12. MATRIX MULTIPLICATION Definition: 𝐂 = 𝐀𝐁 𝐂 𝑖, 𝑗 = Σ 𝑘 𝐀 𝑖, 𝑘 ⋅ 𝐁 𝑘, 𝑗 Example: 𝐂 2,3 = 𝐀 2,1 ⋅ 𝐁 1,3 + 𝐀 2,2 ⋅ 𝐁 2,3 = 2 ⋅ 5 + 3 ⋅ 4 = 22 22 𝐀 2 3 𝐁 5 4 𝐂 = 𝐀 ⋅ 𝐁 10 + 12 = 22 3 · 4 = 12 2 · 5 = 10
  • 13. MATRIX MULTIPLICATION ON SEMIRINGS  Using the conventional semiring 𝐂 = 𝐀𝐁 𝐂 𝑖, 𝑗 = Σ 𝑘 𝐀 𝑖, 𝑘 ⋅ 𝐁 𝑘, 𝑗  Use arbitrary semirings that override the ⨁ addition and ⨂ multiplication operators. Generalized formula (simplified) 𝐂 = 𝐀 ⨁.⨂ 𝐁 𝐂 𝑖, 𝑗 = ⊕ 𝑘 𝐀 𝑖, 𝑘 ⨂𝐁 𝑘, 𝑗
  • 14. GRAPHBLAS SEMIRINGS The 𝐷,⊕,⊗, 0 algebraic structure is a GraphBLAS semiring if  𝐷,⊕, 0 is a commutative monoid over domain 𝐷 with an addition operator ⊕ and identity 0, where ∀𝑎, 𝑏, 𝑐 ∈ 𝐷: o Commutative 𝑎 ⊕ 𝑏 = 𝑏 ⊕ 𝑎 o Associative 𝑎 ⊕ 𝑏 ⊕ 𝑐 = 𝑎 ⊕ 𝑏 ⊕ 𝑐 o Identity 𝑎 ⊕ 0 = 𝑎  The multiplication operator is a closed binary operator ⊗: 𝐷 × 𝐷 → 𝐷. This is less strict than the standard mathematical definition which requires that ⊗ is a monoid and distributes over ⊕.
  • 15. COMMON SEMIRINGS semiring domain ⨁ ⨂ 0 integer arithmetic 𝑎 ∈ ℕ + ⋅ 0 real arithmetic 𝑎 ∈ ℝ + ⋅ 0 lor-land 𝑎 ∈ F, T ⋁ ⋀ F Galois field 𝑎 ∈ 0,1 xor ⋀ 0 power set 𝑎 ⊂ ℤ ∪ ∩ ∅ Notation: 𝐀 ⊕.⊗ 𝐁 is a matrix multiplication using addition ⊕ and multiplication ⊗, e.g. 𝐀 ∨.∧ 𝐁. The default is 𝐀 + . ⋅ 𝐁
  • 16. MATRIX MULTIPLICATION SEMANTICS Semantics: number of paths       semiring domain ⨁ ⨂ 0 integer arithmetic 𝑎 ∈ ℕ + ⋅ 0        𝐯 0 0 0 1 0 1 0 𝐀         1 1  1 1  1  1 1  1  1  1 1 1 1 2 1·1=1 1+1=2 1·1=1 𝐯 ⊕.⊗ 𝐀
  • 17. MATRIX MULTIPLICATION SEMANTICS semiring domain ⨁ ⨂ 0 lor-land 𝑎 ∈ F, T ∨ ∧ F       Semantics: reachability        𝐯 F F F T F T F 𝐀         T T  T T  T  T T  T  T  T T T T T T∧T=T T∧T=T T∨T=T 𝐯 ∨.∧ 𝐀Identity element: F
  • 18. MATRIX MULTIPLICATION SEMANTICS semiring domain ⨁ ⨂ 0 min-plus 𝑎 ∈ ℝ ∪ ∞ min + ∞ Semantics: shortest path .2 .4 .5 .6       .5        𝐯 ∞ ∞ ∞ .5 ∞ .6 ∞ 𝐀         1 1  1 1  1  .2 .4  1  .5  1 1 1 .7 .9 min(0.9,1.1)=0.9 𝐯 min . + 𝐀 0.5+0.4=0.9 0.6+0.5=1.1
  • 19. Graph algorithms in GraphBLAS Single-source shortest path
  • 20. SSSP – SINGLE-SOURCE SHORTEST PATHS  Problem: o From a given start node 𝑠, find the shortest paths to every other (reachable) node in the graph  Bellman-Ford algorithm: o Relaxes all edges in each step o Guaranteed to find the shortest paths using at most 𝑛 − 1 steps  Observation: o The relaxation step can be captured using a VM multiplication
  • 21. SSSP – ALGEBRAIC BELLMAN-FORD .2 .4       .5        𝐝 0 ∞ ∞ ∞ ∞ ∞ ∞ 𝐀         0 .3 ∞ .8 ∞ ∞ ∞  ∞ 0 ∞ ∞ .1 ∞ .7  ∞ ∞ 0 ∞ ∞ .5 ∞  .2 ∞ .4 0 ∞ ∞ ∞  ∞ ∞ ∞ ∞ 0 .1 ∞  ∞ ∞ .5 ∞ ∞ 0 ∞  ∞ ∞ .1 .5 .9 ∞ 0 .3 .8 .8 .7 .1 .5 .1 .1 .5 𝐝 min.+ 𝐀 𝐀 𝑖𝑗 = ൞ 0 if 𝑖 = 𝑗 𝑤 𝑒𝑖𝑗 if 𝑒𝑖𝑗 ∈ 𝐸 ∞ if 𝑒𝑖𝑗 ∉ 𝐸 𝐝 = ∞ ∞ … ∞ 𝐝 𝑠 = 0 We use the min-plus semiring with identity ∞.
  • 22. SSSP – ALGEBRAIC BELLMAN-FORD .2 .4       .5        𝐝 0 ∞ ∞ ∞ ∞ ∞ ∞ .3 .8 .8 .7 .1 .5 .1 .1 .5 𝐝 min.+ 𝐀 semiring set ⨁ ⨂ 0 min-plus 𝑎 ∈ ℝ ∪ ∞ min + ∞ 𝐀         0 .3 .8  0 .1 .7  0 .5  .2 .4 0  0 .1  .5 0  .1 .5 .9 0
  • 23. SSSP – ALGEBRAIC BELLMAN-FORD .2 .4       .5        𝐝 0 ∞ ∞ ∞ ∞ ∞ ∞ 𝐀         0 .3 .8  0 .1 .7  0 .5  .2 .4 0  0 .1  .5 0  .1 .5 .9 0 0 .3 .8 .3 .8 .8 .7 .1 .5 .1 .1 .5 𝐝 min.+ 𝐀 semiring set ⨁ ⨂ 0 min-plus 𝑎 ∈ ℝ ∪ ∞ min + ∞
  • 24. SSSP – ALGEBRAIC BELLMAN-FORD .2 .4       .5        𝐝 0 .3 ∞ .8 ∞ ∞ ∞ 𝐀         0 .3 .8  0 .1 .7  0 .5  .2 .4 0  0 .1  .5 0  .1 .5 .9 0 0 .3 1.2 .8 .4 1 .3 .8 .8 .7 .1 .5 .1 .1 .5 semiring set ⨁ ⨂ 0 min-plus 𝑎 ∈ ℝ ∪ ∞ min + ∞ 𝐝 min.+ 𝐀
  • 25. SSSP – ALGEBRAIC BELLMAN-FORD .2 .4       .5        𝐝 0 .3 1.2 .8 .4 ∞ 1 𝐀         0 .3 .8  0 .1 .7  0 .5  .2 .4 0  0 .1  .5 0  .1 .5 .9 0 0 .3 1.1.8 .4 .5 1 .3 .8 .8 .7 .1 .5 .1 .1 .5 𝐝 min.+ 𝐀 semiring set ⨁ ⨂ 0 min-plus 𝑎 ∈ ℝ ∪ ∞ min + ∞
  • 26. SSSP – ALGEBRAIC BELLMAN-FORD .2 .4              𝐝 0 .3 1.1.8 .4 .5 1 𝐀         0 .3 .8  0 .1 .7  0 .5  .2 .4 0  0 .1  .5 0  .1 .5 .9 0 0 .3 1 .8 .4 .5 1 .5 .5 .3 .8 .8 .7 .1 .5 .1 .1 semiring set ⨁ ⨂ 0 min-plus 𝑎 ∈ ℝ ∪ ∞ min + ∞ 𝐝 min.+ 𝐀
  • 27. SSSP – ALGEBRAIC BELLMAN-FORD .2 .4              𝐝 0 .3 1 .8 .4 .5 1 𝐀         0 .3 .8  0 .1 .7  0 .5  .2 .4 0  0 .1  .5 0  .1 .5 .9 0 .5 .5 .3 .8 .8 .7 .1 .5 .1 .1 semiring set ⨁ ⨂ 0 min-plus 𝑎 ∈ ℝ ∪ ∞ min + ∞ 0 .3 1 .8 .4 .5 1 𝐝 min.+ 𝐀
  • 28. SSSP – ALGEBRAIC BELLMAN-FORD ALGO. Input: adjacency matrix 𝐀, source node 𝑠, #nodes 𝑛 𝐀 𝑖𝑗 = ൞ 0 if 𝑖 = 𝑗 𝑤 𝑒𝑖𝑗 if 𝑒𝑖𝑗 ∈ 𝐸 ∞ if 𝑒𝑖𝑗 ∉ 𝐸 Output: distance vector 𝐝 ∈ ℝ ∪ ∞ 𝑛 1. 𝐝 = ∞ ∞ … ∞ 2. 𝐝 𝑠 = 0 3. for 𝑘 = 1 to 𝑛 − 1 *terminate earlier if we reach a fixed point 4. 𝐝 = 𝐝 min.+ 𝐀 Optimization: switch between 𝐝 min.+ 𝐀 and 𝐀⊤ min.+ 𝐝 (push/pull).
  • 29. Graph algorithms in GraphBLAS Node-wise triangle count
  • 30. NODE-WISE TRIANGLE COUNT Triangle – Def 1: a set of three mutually adjacent nodes. Def 2: a three-length closed path. Usages:  Global clustering coefficient  Local clustering coefficient  Finding communities 𝑣       2 8 4 6 6 2 2 GraphChallenge.org: Raising the Bar on Graph Analytic Performance, HPEC 2018
  • 31. TC: NAÏVE APPROACH       2 8 4 6 6 2 2 𝐀         1 1  1 1 1 1  1 1 1  1 1 1 1 1  1 1 1  1 1 1  1 1 1 1 𝐀         1 1  1 1 1 1  1 1 1  1 1 1 1 1  1 1 1  1 1 1  1 1 1 1 𝐀        1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 2 1 4 2 2 1 2 2 1 2 3 2 2 1 1 1 2 2 5 3 1 2 1 1 2 3 3 1 1 2 1 1 3 3 2 2 1 2 1 3 4 2 6 4 7 4 3 4 6 6 6 11 8 5 9 4 6 4 8 4 7 9 7 11 8 8 5 10 12 4 8 4 5 2 8 9 3 5 7 10 8 2 4 4 9 9 12 9 4 6 𝐭𝐫𝐢 = diag−1 𝐀 ⊕.⊗ 𝐀 ⊕.⊗ 𝐀 2 6 4 8 2 2 6 𝐭𝐫𝐢
  • 32. TC: OPTIMIZATION Observation: Matrix 𝐀 ⊕.⊗ 𝐀 ⊕.⊗ 𝐀 is no longer sparse. Optimization: Use element-wise multiplication ⊗ to close wedges into triangles: 𝐓𝐑𝐈 = 𝐀 ⊕.⊗ 𝐀 ⊗ 𝐀 Then, perform a row-wise summation to get the number of triangles in each row: 𝐭𝐫𝐢 = ⊕ 𝑗 𝐓𝐑𝐈 : , 𝑗
  • 33. TC: ELEMENT-WISE MULTIPLICATION 𝐀         1 1  1 1 1 1  1 1 1  1 1 1 1 1  1 1 1  1 1 1  1 1 1 1 𝐀         1 1  1 1 1 1  1 1 1  1 1 1 1 1  1 1 1  1 1 1  1 1 1 1 2 1 1 1 1 1 2 1 4 2 2 1 2 2 1 2 3 2 2 1 1 1 2 2 5 3 1 2 1 1 2 3 3 1 1 2 1 1 3 3 2 2 1 2 1 3 4 1 1 1 2 1 2 2 1 1 1 2 2 1 2 1 1 1 1 2 1 2 1 𝐓𝐑𝐈 = 𝐀 ⊕.⊗ 𝐀 ⊗ 𝐀 𝐭𝐫𝐢 = ⊕ 𝑗 𝐓𝐑𝐈 : , 𝑗 𝐀 ⊕.⊗ 𝐀 is still very dense. 2 6 4 8 2 2 6       2 8 4 6 6 2 2 𝐭𝐫𝐢 ⊕ 𝑗 ⋯ 𝐓𝐑𝐈 ⊗ 𝐀
  • 34. TC: ELEMENT-WISE MULTIPLICATION 𝐀         1 1  1 1 1 1  1 1 1  1 1 1 1 1  1 1 1  1 1 1  1 1 1 1 𝐀         1 1  1 1 1 1  1 1 1  1 1 1 1 1  1 1 1  1 1 1  1 1 1 1 𝐓𝐑𝐈 𝐀 = 𝐀 ⊕.⊗ 𝐀 𝐭𝐫𝐢 = ⊕ 𝑗 𝐓𝐑𝐈 : , 𝑗 2 6 4 8 2 2 6       2 8 4 6 6 2 2 𝐭𝐫𝐢 ⊕ 𝑗 ⋯ 1 1 1 2 1 2 2 1 1 1 2 2 1 2 1 1 1 1 2 1 2 1 Masking limits where the operation is computed. Here, we use 𝐀 as a mask for 𝐀 ⊕.⊗ 𝐀.
  • 35. TC: ALGORITHM Input: adjacency matrix 𝐀 Output: vector 𝐭𝐫𝐢 Workspace: matrix 𝐓𝐑𝐈 1. 𝐓𝐑𝐈 𝐀 = 𝐀 ⊕.⊗ 𝐀 compute the triangle count matrix 2. 𝐭𝐫𝐢 = ⊕ 𝑗 𝐓𝐑𝐈 : , 𝑗 compute the triangle count vector Optimization: use 𝐋, the lower triangular part of 𝐀 to avoid duplicates. 𝐓𝐑𝐈 𝐀 = 𝐀 ⊕.⊗ 𝐋 Worst-case optimal joins: There are deep theoretical connections between masked matrix multiplication and relational joins. It has been proven in 2013 that for the triangle query, binary joins always provide suboptimal runtime, which gave rise to new research on the family of worst-case optimal multi-way joins algorithms.
  • 36. Graph algorithms in GraphBLAS Other algorithms
  • 37. GRAPH ALGORITHMS IN GRAPHBLAS problem category algorithm canonical complexity Θ LA-based complexity Θ breadth-first search 𝑚 𝑚 single-source shortest paths Dijkstra 𝑚 + 𝑛 log 𝑛 𝑛2 Bellman-Ford 𝑚𝑛 𝑚𝑛 all-pairs shortest paths Floyd-Warshall 𝑛3 𝑛3 minimum spanning tree Prim 𝑚 + 𝑛 log 𝑛 𝑛2 Borůvka 𝑚 log 𝑛 𝑚 log 𝑛 maximum flow Edmonds-Karp 𝑚2 𝑛 𝑚2 𝑛 maximal independent set greedy 𝑚 + 𝑛 log 𝑛 𝑚𝑛 + 𝑛2 Luby 𝑚 + 𝑛 log 𝑛 𝑚 log 𝑛 Based on the table in J. Kepner: Analytic Theory of Power Law Graphs, SIAM Workshop for HPC on Large Graphs, 2008 Notation: 𝑛 = 𝑉 , 𝑚 = |𝐸|. The complexity cells contain asymptotic bounds. Takeaway: The majority of common graph algorithms can be expressed efficiently in LA. See also L. Dhulipala, G.E. Blelloch, J. Shun: Theoretically Efficient Parallel Graph Algorithms Can Be Fast and Scalable, SPAA 2018
  • 39. GRAPHBLAS C API  “A crucial piece of the GraphBLAS effort is to translate the mathematical specification to an API that o is faithful to the mathematics as much as possible, and o enables efficient implementations on modern hardware.” mxm(Matrix *C, Matrix M, BinaryOp accum, Semiring op, Matrix A, Matrix B, Descriptor desc) 𝐂 ¬𝐌 ⊙= ⊕.⊗ 𝐀⊤ , 𝐁⊤ A. Buluç et al.: Design of the GraphBLAS C API, GABB@IPDPS 2017
  • 40. SUITESPARSE:GRAPHBLAS  Authored by Prof. Tim Davis at Texas A&M University, based on his SuiteSparse library (used in MATLAB).  Additional extension operations for efficiency.  Sophisticated load balancer for multi-threaded execution.  CPU-based, single machine implementation.  Powers the RedisGraph graph database. T.A. Davis: Algorithm 1000: SuiteSparse:GraphBLAS: graph algorithms in the language of sparse linear algebra, ACM TOMS, 2019 T.A. Davis: SuiteSparse:GraphBLAS: graph algorithms via sparse matrix operations on semirings, Sparse Days 2017 R. Lipman, T.A. Davis: Graph Algebra – Graph operations in the language of linear algebra, RedisConf 2018 R. Lipman: RedisGraph internals, RedisConf 2019
  • 41. PYTHON WRAPPERS Two libraries, both offer:  Concise GraphBLAS operations  Wrapping SuiteSparse:GrB  Jupyter support Difference: pygraphblas is more Pythonic, grblas strives to stay close to the C API. michelp/pygraphblas jim22k/grblas
  • 43. SUITESPARSE:GRAPHBLAS / LDBC GRAPHALYTICS Twitter 50M nodes, 2B edges Results from late 2019, new version is even faster graph500-26 33M nodes, 1.1B edges d-8.8-zf 168M nodes, 413M edges d-8.6-fb 6M nodes, 422M edges Ubuntu Server, 512 GB RAM, 64 CPU cores, 128 threads
  • 44. THE GAP BENCHMARK SUITE S. Beamer, K. Asanovic, D. Patterson: The GAP Benchmark Suite, arXiv, 2017  Part of the Berkeley Graph Algorithm Platform project  Algorithms: o BFS, SSSP, PageRank, connected components o betweenness centrality, triangle count  Very efficient baseline implementation in C++  Comparing executions of implementations that were carefully optimized and fine-tuned by research groups  Ongoing benchmark effort, paper to be submitted in Q2 gap.cs.berkeley.edu/benchmark.html
  • 46. RESOURCES List of GraphBLAS-related books, papers, presentations, posters, and software szarnyasg/graphblas-pointers Library of GraphBLAS algorithms GraphBLAS/LAGraph Extended version of this talk: 200+ slides  Theoretical foundations  BFS variants, PageRank  clustering coefficient, 𝑘-truss and triangle count variants  Community detection using label propagation  Luby’s maximal independent set algorithm  computing connected components on an overlay graph  connections to relational algebra
  • 47. SUMMARY  Linear algebra is a powerful abstraction o Good expressive power o Concise formulation of most graph algorithms o Very good performance o Still lots of ongoing research  Trade-offs: o Learning curve (theory and GraphBLAS API) o Some algorithms are difficult to formulate in linear algebra o Only a few GraphBLAS implementations (yet)  Overall: a very promising programming model for graph algorithms suited to the age of heterogeneous hardware
  • 48. ACKNOWLEDGEMENTS  Tim Davis and Tim Mattson for helpful discussions, members of GraphBLAS mailing list for their detailed feedback.  The LDBC Graphalytics task force for creating the benchmark and assisting in the measurements.  Master’s students at BME for developing GraphBLAS-based algorithms: Bálint Hegyi, Márton Elekes, Petra Várhegyi, Lehel Boér