Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf ·...
Transcript of Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf ·...
![Page 1: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/1.jpg)
1
Graphs in the Language of Linear Algebra: Applications, Software, and Challenges
John R. Gilbert University of California, Santa Barbara Graph Algorithm Building Blocks May 19, 2014
Support: Intel, Microsoft, DOE Office of Science, NSF
![Page 2: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/2.jpg)
2
Thanks …
Lucas Bang (UCSB), Jon Berry (Sandia), Eric Boman (Sandia), Aydin Buluc (LBL), John Conroy (CCS), Kevin Deweese (UCSB), Erika Duriakova (Dublin), Armando Fox (UCB),
Shoaib Kamil (MIT), Jeremy Kepner (MIT), Tristan Konolige (UCSB), Adam Lugowski (UCSB),
Tim Mattson (Intel), Brad McRae (TNC), Dave Mizell (YarcData), Lenny Oliker (LBL), Carey Priebe (JHU),
Steve Reinhardt (YarcData), Lijie Ren (Google), Eric Robinson (Lincoln), Viral Shah (UIDAI), Veronika Strnadova (UCSB),
Yun Teng (UCSB), Joshua Vogelstein (Duke), Drew Waranis (UCSB), Sam Williams (LBL)
![Page 3: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/3.jpg)
3
Outline
• A few sample applications
• Sparse matrices for graph algorithms
• Software: CombBLAS, KDT, QuadMat
• Challenges, issues, and questions
![Page 4: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/4.jpg)
4
Large-scale genomic mapping and sequencing [Strnadova, Buluc, Chapman, G, Gonzalez, Jegelska, Rokhsar, Oliker 2014]
– Problem: scale to millions of markers times thousands of individuals, with “unknown” rates > 50%
– Tools used or desired: spanning trees, approximate TSP, incremental connected components, spectral and custom clustering, k-nearest neighbors
– Results: using more data gives better genomic maps
![Page 5: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/5.jpg)
5
Alignment and matching of brain scans [Conroy, G, Kratzer, Lyzinski, Priebe, Vogelstein 2014]
– Problem: match functional regions across individuals – Tools: Laplacian eigenvectors, geometric spectral
partitioning, clustering, and more. . .
![Page 6: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/6.jpg)
6
Landscape connectivity modeling [McRae et al.]
• Habitat quality, gene flow, corridor identification, conservation planning
• Targeting larger problems: Yellowstone-to-Yukon corridor
• Tools: Graph contraction, connected components, Laplacian linear systems
Figures courtesy of Brad McRae, NCEAS
![Page 7: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/7.jpg)
7
(B-1/2 A B-1/2) (B1/2 x) = B-1/2 b
– Problem: approximate target graph by sparse subgraph – Ax = b in nearly linear time in theory [ST08, KMP10, KOSZ13] – Tools: spanning trees, subgraph extraction and contraction,
breadth-first search, shortest paths, . . .
Combinatorial acceleration of Laplacian solvers [Boman, Deweese, G 2014]
![Page 8: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/8.jpg)
8
Computers
Continuous physical modeling
Linear algebra
Discrete structure analysis
Graph theory
Computers
The middleware challenge for graph analysis
![Page 9: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/9.jpg)
9
• By analogy to numerical scientific computing. . .
• What should the combinatorial BLAS look like?
The middleware challenge for graph analysis
C = A*B
y = A*x
µ = xT y
Basic Linear Algebra Subroutines (BLAS): Ops/Sec vs. Matrix Size
![Page 10: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/10.jpg)
10
Identification of Primitives
Sparse matrix-matrix multiplication (SpGEMM)
Element-wise operations
×
Matrices over various semirings: (+ . x), (min . +), (or . and), …
Sparse matrix-dense vector multiplication Sparse matrix indexing
×
.*
Sparse array primitives for graph manipulation
![Page 11: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/11.jpg)
11
Examples of semirings in graph algorithms
Real field: (R, +, x) Classical numerical linear algebra
Boolean algebra: ({0 1}, |, &) Graph traversal
Tropical semiring: (R U {∞}, min, +) Shortest paths
(S, select, select) Select subgraph, or contract nodes to form quotient graph
( edge/vertex attributes, vertex data aggregation, edge data processing )
Schema for user-specified computation at vertices and edges
![Page 12: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/12.jpg)
12
Multiple-source breadth-first search
X
1 2
3
4 7
6
5
AT
![Page 13: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/13.jpg)
13
Multiple-source breadth-first search
• Sparse array representation => space efficient • Sparse matrix-matrix multiplication => work efficient
• Three possible levels of parallelism: searches, vertices, edges
X AT ATX
à
1 2
3
4 7
6
5
![Page 14: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/14.jpg)
Graph contraction via sparse triple product
5
6
3
1 2
4
A1
A3 A2
A1
A2 A3
Contract
1 5 2 3 4 6 1
5
2 3 4
6
1 1 0 00 00 0 1 10 00 0 0 01 1
1 1 01 0 10 1 01 11 1
0 0 1
x x =
1 5 2 3 4 6 1 2 3
![Page 15: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/15.jpg)
Subgraph extraction via sparse triple product
5
6
3
1 2
4
Extract 3
12
1 5 2 3 4 6 1
5
2 3 4
6
1 1 1 00 00 0 1 11 00 0 0 01 1
1 1 01 0 11 1 01 11 1
0 0 1
x x =
1 5 2 3 4 6 1 2 3
![Page 16: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/16.jpg)
16
Counting triangles (clustering coefficient)
A
5
6
3
1 2
4
Clustering coefficient:
• Pr (wedge i-j-k makes a triangle with edge i-k)
• 3 * # triangles / # wedges
• 3 * 4 / 19 = 0.63 in example
• may want to compute for each vertex j
![Page 17: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/17.jpg)
17
A
5
6
3
1 2
4
Clustering coefficient:
• Pr (wedge i-j-k makes a triangle with edge i-k)
• 3 * # triangles / # wedges
• 3 * 4 / 19 = 0.63 in example
• may want to compute for each vertex j
Inefficient way to count triangles with matrices: • A = adjacency matrix • # triangles = trace(A3) / 6
• but A3 is likely to be pretty dense
A A3
Counting triangles (clustering coefficient)
![Page 18: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/18.jpg)
18
A
5
6
3
1 2
4
Clustering coefficient:
• Pr (wedge i-j-k makes a triangle with edge i-k)
• 3 * # triangles / # wedges
• 3 * 4 / 19 = 0.63 in example
• may want to compute for each vertex j
Cohen’s algorithm to count triangles:
- Count triangles by lowest-degree vertex.
- Enumerate “low-hinged” wedges.
- Keep wedges that close.
hi hi lo
hi hi lo
hi hi lo
Counting triangles (clustering coefficient)
![Page 19: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/19.jpg)
19
A L U
1 2
1 1 1 2
C
A = L + U (hi->lo + lo->hi) L × U = B (wedge, low hinge) A ∧ B = C (closed wedge) sum(C)/2 = 4 triangles
A
5
6
3
1 2
4 5
6
3
1 2
4
1
1
2
B, C
Counting triangles (clustering coefficient)
![Page 20: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/20.jpg)
20
A few other graph algorithms we’ve implemented in linear algebraic style
• Maximal independent set (KDT/SEJITS) [BDFGKLOW 2013]
• Peer-pressure clustering (SPARQL) [DGLMR 2013]
• Time-dependent shortest paths (CombBLAS) [Ren 2012]
• Gaussian belief propagation (KDT) [LABGRTW 2011]
• Markoff clustering (CombBLAS, KDT) [BG 2011, LABGRTW 2011]
• Betweenness centrality (CombBLAS) [BG 2011]
• Hybrid BFS/bully connected components (CombBLAS) [Konolige, in progress]
• Geometric mesh partitioning (Matlab J) [GMT 1998]
![Page 21: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/21.jpg)
21
Graph algorithms in the language of linear algebra
• Kepner et al. study [2006]: fundamental graph algorithms including min spanning tree, shortest paths, independent set, max flow, clustering, …
• SSCA#2 / centrality [2008]
• Basic breadth-first search / Graph500 [2010]
• Beamer et al. [2013] direction-optimizing breadth-first search, implemented in CombBLAS
![Page 22: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/22.jpg)
• Aimed at graph algorithm designers/programmers who are not expert in mapping algorithms to parallel hardware.
• Flexible templated C++ interface. • Scalable performance from laptop to 100,000-‐processor HPC.
• Open source soIware. • Version 1.4.0 released January 16, 2014.
An extensible distributed-‐memory library offering a small but powerful set of linear algebraic operaNons
specifically targeNng graph analyNcs.
Combinatorial BLAS
hRp://gauss.cs.ucsb.edu/~aydin/CombBLAS
![Page 23: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/23.jpg)
Some Combinatorial BLAS funcNons
Func,on Parameters Returns Math Nota,on
SpGEMM -‐ sparse matrices A and B -‐ unary functors (op)
sparse matrix C = op(A) * op(B)
SpM{Sp}V (Sp: sparse)
-‐ sparse matrix A -‐ sparse/dense vector x
sparse/dense vector
y = A * x
SpEWiseX -‐ sparse matrices or vectors -‐ binary functor and predicate
in place or sparse matrix/vector
C = A .* B
Reduce -‐ sparse matrix A and functors dense vector y = sum(A, op)
SpRef -‐ sparse matrix A -‐ index vectors p and q
sparse matrix B = A(p,q)
SpAsgn -‐ sparse matrices A and B -‐ index vectors p and q
none A(p,q) = B
Scale -‐ sparse matrix A -‐ dense matrix or vector X
none check manual
Apply -‐ any matrix or vector X -‐ unary functor (op)
none op(X)
![Page 24: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/24.jpg)
Combinatorial BLAS: Distributed-‐memory reference implementaNon
CommGrid
DCSC CSC CSB Triples
SpMat SpDistMat DenseDistMat
DistMat
Enforces interface only
Combinatorial BLAS func7ons and operators
DenseDistVec SpDistVec
FullyDistVec ... HAS A
Polymorphism
![Page 25: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/25.jpg)
Matrix/vector distribuNons, interleaved on each other.
5
8
€
x1,1
€
x1,2
€
x1,3
€
x2,1
€
x2,2
€
x2,3
€
x3,1
€
x3,2
€
x3,3
€
A1,1
€
A1,2
€
A1,3
€
A2,1
€
A2,2
€
A2,3
€
A3,1
€
A3,2
€
A3,3
€
n pr€
n pc
2D layout for sparse matrices & vectors
-‐ 2D matrix layout wins over 1D with large core counts and with limited bandwidth/compute -‐ 2D vector layout someNmes important for load balance
Default distribuNon in Combinatorial BLAS. Scalable with increasing number of processes
![Page 26: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/26.jpg)
26
Combinatorial BLAS “users” (Sep 2013)
• IBM (T.J. Watson, Zurich, & Tokyo) • Microsoft • Intel • Cray • Stanford • UC Berkeley • Carnegie-Mellon • Georgia Tech • Ohio State • Columbia • U Minnesota
• King Fahd U • Tokyo Inst of Technology
• Chinese Academy of Sciences
• U Ghent (Belgium)
• Bilkent U (Turkey)
• U Canterbury (New Zealand)
• Purdue • Indiana U • Mississippi State • UC Merced
![Page 27: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/27.jpg)
27
m rows
n columns
subdivide by dimension on power of 2 indices
Blocks store enough matrix elements for meaningful computaNon; denser parts of matrix have more blocks.
QuadMat shared-memory data structure [Lugowski, G]
![Page 28: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/28.jpg)
28
Scale 10 RMAT (887x887, 21304 non-‐nulls)
up to 1024 non-‐nulls per block In order of increasing degree
Blue blocks: uint16_t indices Green blocks: uint8_t indices
QuadMat example: Scale-10 RMAT
![Page 29: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/29.jpg)
29
Pair-List QuadMat SpGEMM algorithm
-‐ Problem: Natural recursive matrix mulNplicaNon is inefficient due to deep tree of sparse matrix addiNons.
-‐ SoluNon: Rearrange into block inner product pair lists.
-‐ A single matrix element can parNcipate in pair lists with different block sizes.
-‐ Symbolic phase followed by computaNonal phase
-‐ MulNthreaded implementaNon in Intel TBB
![Page 30: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/30.jpg)
30
QuadMat compared to Csparse & CombBLAS
![Page 31: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/31.jpg)
• Aimed at domain experts who know their problem well but don’t know how to program a supercomputer
• Easy-‐to-‐use Python interface • Runs on a laptop as well as a cluster with 10,000 processors
• Open source soIware (New BSD license) • V3 release April 2013 (V4 soon)
A general graph library with operaNons based on linear
algebraic primiNves
Knowledge Discovery Toolbox hRp://kdt.sourceforge.net/
![Page 32: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/32.jpg)
Example: • Vertex types: Person, Phone,
Camera, Gene, Pathway • Edge types: PhoneCall, TextMessage,
CoLocaNon, SequenceSimilarity • Edge aRributes: Time, DuraNon
• Calculate centrality just for emails among engineers sent between given start and end Nmes
ARributed semanNc graphs and filters
def onlyEngineers (self): return self.position == Engineer def timedEmail (self, sTime, eTime): return ((self.type == email) and (self.Time > sTime) and (self.Time < eTime)) G.addVFilter(onlyEngineers) G.addEFilter(timedEmail(start, end)) # rank via centrality based on recent email transactions among engineers bc = G.rank(’approxBC’)
![Page 33: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/33.jpg)
KDT$Algorithm$
CombBLAS$Primi4ve$
Filter$(Py)$
Python'
C++'
Semiring$(Py)$KDT$Algorithm$
CombBLAS$Primi4ve$ Filter$(C++)$
Semiring$(C++)$
Standard$KDT$ KDT+SEJITS$
SEJITS$$$$Transla4on$
Filter$(Py)$
Semiring$(Py)$
SEJITS for filter/semiring acceleraNon
Embedded DSL: Python for the whole applicaNon • Introspect, translate Python to equivalent C++ code • Call compiled/opNmized C++ instead of Python
![Page 34: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/34.jpg)
Filtered BFS with SEJITS
!"#$%!"$!%&"!!%#"!!%'"!!%("!!%&)"!!%*#"!!%)'"!!%
&#&% #$)% $+)% &!#'% #!#$%
!"#$%&'
(%)*
"%
+,*-".%/0%!12%3./4"55"5%
,-.% /012./3,-.% 456789:/%
Time (in seconds) for a single BFS iteraNon on scale 25 RMAT (33M verNces, 500M edges) with 10% of elements passing filter. Machine is NERSC’s Hopper.
![Page 35: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/35.jpg)
35
What do we wish we had?
• Laplacian linear solvers and eigensolvers
– Many applications: spectral clustering, ranking, partitioning, multicommodity flow, PDE’s, control theory, ….
• Fusing sequences of operations instead of materializing intermediate results
– Working on some of this, e.g. matrix triple products in QuadMat
• Priority-queue algorithms: depth-first search, Dijkstra’s shortest paths, strongly connected components
– These are hard to do in parallel at all
– But sometimes you want to do them sequentially
![Page 36: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/36.jpg)
36
A few questions for the Graph BLAS Forum
• How (or when) does the API let the user specify the “semiring scalar” objects and operations?
– How general can the objects be?
– What guarantees do the operations have to make?
– Maybe there are different levels of compliance for an implementation, starting with just (double, +, *)
![Page 37: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/37.jpg)
37
A few questions for the Graph BLAS Forum
• How does the API let the user “break out of the BLAS” when they need to?
– In dense numeric BLAS and in sparse Matlab (but not in Sparse BLAS), the user can access the matrix directly, element-by-element, with a performance penalty.
– Graph BLAS needs something like this too, or else it’s only useful to programmers who commit to it 100%.
– “for each edge e incident on vertex v do …”
– “for each endpoint v of edge e do …”
– Add or delete vertex v or edge e.
![Page 38: Graphs in the Language of Linear Algebra: Applications ...gilbert/talks/GilbertGABB19May2014.pdf · 1 Graphs in the Language of Linear Algebra: Applications, Software, and Challenges](https://reader033.fdocuments.us/reader033/viewer/2022042015/5e741553dd0be93ff2718cd2/html5/thumbnails/38.jpg)
38
No, it’s not reasonable to define a universal set of building blocks.
– Huge diversity in matching graph algorithms to hardware platforms.
– No consensus on data structures or linguistic primitives.
– Lots of graph algorithms remain to be discovered.
– Early standardization can inhibit innovation.
Yes, it is reasonable to define a common set of building blocks… … for graphs as linear algebra.
– Representing graphs in the language of linear algebra is a mature field.
– Algorithms, high level interfaces, and implementations vary.
– But the core primitives are well established.
Can we standardize a “Graph BLAS”?