+ All Categories
Home > Documents > spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch...

spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch...

Date post: 05-Aug-2020
Category:
Upload: others
View: 8 times
Download: 0 times
Share this document with a friend
369
spcl.inf.ethz.ch @spcl_eth M ACIEJ BESTA, MICHAL PODSTAWSKI, LINUS GRONER, EDGAR SOLOMONIK, TORSTEN HOEFLER To Push or To Pull: On Reducing Communication and Synchronization in Graph Computations
Transcript
Page 1: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

MACIEJ BESTA, MICHAL PODSTAWSKI, LINUS GRONER, EDGAR SOLOMONIK, TORSTEN HOEFLER

To Push or To Pull: On Reducing Communication

and Synchronization in Graph Computations

Page 2: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Page 3: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Page 4: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Used in…

Page 5: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Used in…

Page 6: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Used in…

Running on…

Page 7: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Used in…

Running on…

[1] A. Lumsdaine et al. Challenges in Parallel Graph Processing. Parallel Processing Letters. 2007.

Page 8: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Used in…

Running on…

[1] A. Lumsdaine et al. Challenges in Parallel Graph Processing. Parallel Processing Letters. 2007.

Page 9: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Used in…

Running on…

[1] A. Lumsdaine et al. Challenges in Parallel Graph Processing. Parallel Processing Letters. 2007.

Page 10: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Used in…

Running on…

[1] A. Lumsdaine et al. Challenges in Parallel Graph Processing. Parallel Processing Letters. 2007.

Page 11: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PAGERANK

Page 12: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PAGERANK

Page 13: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PAGERANK

Page 14: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PAGERANK

Page 15: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PAGERANK𝑃 threads are

used

Page 16: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PAGERANK

[1] J. J. Whang et al. Scalable Data-Driven PageRank: Algorithms, System Issues, and Lessons Learned. Euro-Par 2015.

𝑃 threads are

used

Page 17: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PAGERANK

Pushing

[1] J. J. Whang et al. Scalable Data-Driven PageRank: Algorithms, System Issues, and Lessons Learned. Euro-Par 2015.

𝑃 threads are

used

Page 18: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PAGERANK

Pushing

[1] J. J. Whang et al. Scalable Data-Driven PageRank: Algorithms, System Issues, and Lessons Learned. Euro-Par 2015.

𝑃 threads are

used

Page 19: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PAGERANK

Pushing

[1] J. J. Whang et al. Scalable Data-Driven PageRank: Algorithms, System Issues, and Lessons Learned. Euro-Par 2015.

𝑃 threads are

used

Page 20: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PAGERANK

Pushing

[1] J. J. Whang et al. Scalable Data-Driven PageRank: Algorithms, System Issues, and Lessons Learned. Euro-Par 2015.

𝑃 threads are

usedWrite conflicts

Page 21: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PAGERANK

Pulling

[1] J. J. Whang et al. Scalable Data-Driven PageRank: Algorithms, System Issues, and Lessons Learned. Euro-Par 2015.

𝑃 threads are

used

Page 22: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PAGERANK

Pulling

[1] J. J. Whang et al. Scalable Data-Driven PageRank: Algorithms, System Issues, and Lessons Learned. Euro-Par 2015.

𝑃 threads are

used

Page 23: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PAGERANK

Pulling

[1] J. J. Whang et al. Scalable Data-Driven PageRank: Algorithms, System Issues, and Lessons Learned. Euro-Par 2015.

𝑃 threads are

used

Page 24: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

Page 25: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

Page 26: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

Page 27: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

Root r

Page 28: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

Root r

Page 29: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

Root r

Page 30: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

Root r

Page 31: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Page 32: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Page 33: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Page 34: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Page 35: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Page 36: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Page 37: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Page 38: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pushing or pulling

when expanding a

frontier

Page 39: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pushing

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 40: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pushing

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 41: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pushing

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 42: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pushing

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 43: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pushing

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 44: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 45: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pulling

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 46: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pulling

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 47: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pulling

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 48: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pulling

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 49: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pulling

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 50: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pulling

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 51: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pulling

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 52: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pulling

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 53: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pulling

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 54: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pulling

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 55: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pulling

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 56: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pulling

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 57: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pulling

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 58: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pulling

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 59: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pulling

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 60: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pulling

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 61: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pulling

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 62: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pulling

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 63: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pulling

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 64: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BFSTOP-DOWN VS. BOTTOM-UP [1]

BFS frontierRoot r

Pulling

[1] S. Beamer, K. Asanović, and D. Patterson. Direction-optimizing breadth-first search. SC12.

Pushing or pulling

when expanding a

frontier

Page 65: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

RESEARCH QUESTIONS

Page 66: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

RESEARCH QUESTIONS

Can we apply the

push-pull dichotomy

to other graph

algorithms?

Page 67: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

RESEARCH QUESTIONS

What are push-pull

formulations of other

algorithms?Can we apply the

push-pull dichotomy

to other graph

algorithms?

Page 68: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

RESEARCH QUESTIONS

What are push-pull

formulations of other

algorithms?Can we apply the

push-pull dichotomy

to other graph

algorithms? What pushing vs.

pulling really is?

Page 69: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

RESEARCH QUESTIONS

How do they differ in

complexity?

What are push-pull

formulations of other

algorithms?Can we apply the

push-pull dichotomy

to other graph

algorithms? What pushing vs.

pulling really is?

Page 70: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

RESEARCH QUESTIONS

How do they differ in

complexity?

What are push-pull

formulations of other

algorithms?Can we apply the

push-pull dichotomy

to other graph

algorithms? What pushing vs.

pulling really is?

What is performance?

Page 71: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

RESEARCH QUESTIONS

How do they differ in

complexity?

What are push-pull

formulations of other

algorithms?Can we apply the

push-pull dichotomy

to other graph

algorithms? What pushing vs.

pulling really is?

What is performance?

Page 72: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

Vertex importance

(#triangles)

Page 73: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

Vertex importance

(#triangles)

Page 74: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

Vertex importance

(#triangles)

Page 75: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

4

2

Vertex importance

(#triangles)

Page 76: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

4

2

Vertex importance

(#triangles)

Page 77: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

Vertex importance

(#triangles)

Page 78: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

Vertex importance

(#triangles)

Page 79: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

Vertex importance

(#triangles)

}

Page 80: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

Vertex importance

(#triangles)

#vertices

}

Page 81: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

: a write conflict

: a read conflict

: integer

Vertex importance

(#triangles)

#vertices

}

Page 82: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

: a write conflict

: a read conflict

: integer

Vertex importance

(#triangles)

#vertices

}

Page 83: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

: a write conflict

: a read conflict

: integer

Vertex importance

(#triangles)

#vertices

}

Page 84: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

: a write conflict

: a read conflict

: integer

Vertex importance

(#triangles)

#vertices

Set of vertices

}

Page 85: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

: a write conflict

: a read conflict

: integer

Vertex importance

(#triangles)

#vertices

Set of vertices

}

Page 86: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

: a write conflict

: a read conflict

: integer

Vertex importance

(#triangles)

#vertices

Set of vertices

}

Page 87: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

: a write conflict

: a read conflict

: integer

Vertex importance

(#triangles)

#vertices

Set of vertices

𝑣’s neighbors

}

Page 88: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

: a write conflict

: a read conflict

: integer

Vertex importance

(#triangles)

#vertices

Set of vertices

𝑣’s neighbors

}

Page 89: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

: a write conflict

: a read conflict

: integer

Vertex importance

(#triangles)

#vertices

Set of vertices

𝑣’s neighbors

}

Page 90: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

: a write conflict

: a read conflict

: integer

Vertex importance

(#triangles)

#vertices

Set of vertices

𝑣’s neighbors

}

Page 91: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

: a write conflict

: a read conflict

: integer

Vertex importance

(#triangles)

#vertices

Set of vertices

𝑣’s neighbors

}

Page 92: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

: a write conflict

: a read conflict

: integer

Pushing

Vertex importance

(#triangles)

#vertices

Set of vertices

𝑣’s neighbors

}

Page 93: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

: a write conflict

: a read conflict

: integer

Pushing

+1

+1+1

+1

+1Vertex importance

(#triangles)

#vertices

Set of vertices

𝑣’s neighbors

}

Page 94: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

: a write conflict

: a read conflict

: integer

Pushing

+1+1

+1+1

+1

+1

+1+1

Vertex importance

(#triangles)

#vertices

Set of vertices

𝑣’s neighbors

}

Page 95: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

: a write conflict

: a read conflict

: integer

Pushing

+1+1

+1+1

+1

+1

+1+1

Vertex importance

(#triangles)

#vertices

Set of vertices

𝑣’s neighbors

}

Page 96: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

: a write conflict

: a read conflict

: integer

Pushing

Vertex importance

(#triangles)

#vertices

Set of vertices

𝑣’s neighbors

}

Page 97: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

: a write conflict

: a read conflict

: integer

Pushing

Pulling

Vertex importance

(#triangles)

#vertices

Set of vertices

𝑣’s neighbors

}

Page 98: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

: a write conflict

: a read conflict

: integer

Pushing

Pulling

Vertex importance

(#triangles)

#vertices

Set of vertices

𝑣’s neighbors

}

Page 99: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

: a write conflict

: a read conflict

: integer

Pushing

Pulling

Vertex importance

(#triangles)

#vertices

Set of vertices

𝑣’s neighbors

}

Page 100: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

TRIANGLE COUNTING

: a write conflict

: a read conflict

: integer

Pushing

Pulling

Vertex importance

(#triangles)

#vertices

Set of vertices

𝑣’s neighbors

}

Page 101: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BETWEENNESS CENTRALITY

BRANDES [1]

[1] U. Brandes. A faster algorithm for betweenness

centrality. J. of Math. Sociology. 2001.

Page 102: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BETWEENNESS CENTRALITY

BRANDES [1]

[1] U. Brandes. A faster algorithm for betweenness

centrality. J. of Math. Sociology. 2001.

Vertex importance

(#shortest paths)

Page 103: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BETWEENNESS CENTRALITY

BRANDES [1]

[1] U. Brandes. A faster algorithm for betweenness

centrality. J. of Math. Sociology. 2001.

Vertex importance

(#shortest paths)

Page 104: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BETWEENNESS CENTRALITY

BRANDES [1]

[1] U. Brandes. A faster algorithm for betweenness

centrality. J. of Math. Sociology. 2001.

Vertex importance

(#shortest paths)

This poor

one has 0

At least two paths

(this one is relevant)

Page 105: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BETWEENNESS CENTRALITY

BRANDES [1]

[1] U. Brandes. A faster algorithm for betweenness

centrality. J. of Math. Sociology. 2001.

Vertex importance

(#shortest paths)

Page 106: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BETWEENNESS CENTRALITY

BRANDES [1]

[1] U. Brandes. A faster algorithm for betweenness

centrality. J. of Math. Sociology. 2001.

Vertex importance

(#shortest paths)

Page 107: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BETWEENNESS CENTRALITY

BRANDES [1]

[1] U. Brandes. A faster algorithm for betweenness

centrality. J. of Math. Sociology. 2001.

Vertex importance

(#shortest paths)

Page 108: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

1. Forward traversals

BETWEENNESS CENTRALITY

BRANDES [1]

[1] U. Brandes. A faster algorithm for betweenness

centrality. J. of Math. Sociology. 2001.

Vertex importance

(#shortest paths)

Page 109: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

1. Forward traversals

BETWEENNESS CENTRALITY

BRANDES [1]

[1] U. Brandes. A faster algorithm for betweenness

centrality. J. of Math. Sociology. 2001.

Root

Vertex importance

(#shortest paths)

Page 110: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

1. Forward traversals

BETWEENNESS CENTRALITY

BRANDES [1]

[1] U. Brandes. A faster algorithm for betweenness

centrality. J. of Math. Sociology. 2001.

Root

Vertex importance

(#shortest paths)

Page 111: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

1. Forward traversals

BETWEENNESS CENTRALITY

BRANDES [1]

[1] U. Brandes. A faster algorithm for betweenness

centrality. J. of Math. Sociology. 2001.

Vertex importance

(#shortest paths)

Page 112: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

1. Forward traversals

BETWEENNESS CENTRALITY

BRANDES [1] Root

[1] U. Brandes. A faster algorithm for betweenness

centrality. J. of Math. Sociology. 2001.

Vertex importance

(#shortest paths)

Page 113: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

1. Forward traversals

BETWEENNESS CENTRALITY

BRANDES [1] Root

[1] U. Brandes. A faster algorithm for betweenness

centrality. J. of Math. Sociology. 2001.

Vertex importance

(#shortest paths)

Page 114: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

1. Forward traversals

BETWEENNESS CENTRALITY

BRANDES [1]

[1] U. Brandes. A faster algorithm for betweenness

centrality. J. of Math. Sociology. 2001.

Vertex importance

(#shortest paths)

Page 115: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

1. Forward traversals

BETWEENNESS CENTRALITY

BRANDES [1]

[1] U. Brandes. A faster algorithm for betweenness

centrality. J. of Math. Sociology. 2001.

Vertex importance

(#shortest paths)

Compute immediate

predecessors of each

vertex in the shortest

paths from other

vertices.

Compute #shortest

paths between any

two vertices

Page 116: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

1. Forward traversals

BETWEENNESS CENTRALITY

BRANDES [1]

[1] U. Brandes. A faster algorithm for betweenness

centrality. J. of Math. Sociology. 2001.

Vertex importance

(#shortest paths)

Compute immediate

predecessors of each

vertex in the shortest

paths from other

vertices.

Compute #shortest

paths between any

two vertices

Page 117: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

1. Forward traversals

BETWEENNESS CENTRALITY

BRANDES [1]

[1] U. Brandes. A faster algorithm for betweenness

centrality. J. of Math. Sociology. 2001.

Vertex importance

(#shortest paths)

Compute immediate

predecessors of each

vertex in the shortest

paths from other

vertices.

Compute #shortest

paths between any

two vertices

Source

Page 118: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

1. Forward traversals

BETWEENNESS CENTRALITY

BRANDES [1]

[1] U. Brandes. A faster algorithm for betweenness

centrality. J. of Math. Sociology. 2001.

Vertex importance

(#shortest paths)

Compute immediate

predecessors of each

vertex in the shortest

paths from other

vertices.

Compute #shortest

paths between any

two vertices

Source

Destination

Page 119: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

1. Forward traversals

BETWEENNESS CENTRALITY

BRANDES [1]

[1] U. Brandes. A faster algorithm for betweenness

centrality. J. of Math. Sociology. 2001.

Vertex importance

(#shortest paths)

Compute immediate

predecessors of each

vertex in the shortest

paths from other

vertices.

Compute #shortest

paths between any

two vertices

Source

Destination

Page 120: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

1. Forward traversals

BETWEENNESS CENTRALITY

BRANDES [1]

[1] U. Brandes. A faster algorithm for betweenness

centrality. J. of Math. Sociology. 2001.

Vertex importance

(#shortest paths)

Compute immediate

predecessors of each

vertex in the shortest

paths from other

vertices.

Compute #shortest

paths between any

two vertices

Page 121: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

1. Forward traversals

BETWEENNESS CENTRALITY

BRANDES [1]

[1] U. Brandes. A faster algorithm for betweenness

centrality. J. of Math. Sociology. 2001.

Vertex importance

(#shortest paths)

Compute immediate

predecessors of each

vertex in the shortest

paths from other

vertices.

Compute #shortest

paths between any

two vertices

2. Backward traversals

Page 122: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

1. Forward traversals

BETWEENNESS CENTRALITY

BRANDES [1]

[1] U. Brandes. A faster algorithm for betweenness

centrality. J. of Math. Sociology. 2001.

Vertex importance

(#shortest paths)

Compute immediate

predecessors of each

vertex in the shortest

paths from other

vertices.

Compute #shortest

paths between any

two vertices

2. Backward traversals

Accumulate centrality

scores during backward

traversals [1].

Page 123: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

1. Forward traversals

BETWEENNESS CENTRALITY

BRANDES [1]

[1] U. Brandes. A faster algorithm for betweenness

centrality. J. of Math. Sociology. 2001.

Vertex importance

(#shortest paths)

Compute immediate

predecessors of each

vertex in the shortest

paths from other

vertices.

Compute #shortest

paths between any

two vertices

2. Backward traversals

Accumulate centrality

scores during backward

traversals [1].

Page 124: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

1. Forward traversals

BETWEENNESS CENTRALITY

BRANDES [1]

[1] U. Brandes. A faster algorithm for betweenness

centrality. J. of Math. Sociology. 2001.

Vertex importance

(#shortest paths)

Compute immediate

predecessors of each

vertex in the shortest

paths from other

vertices.

Compute #shortest

paths between any

two vertices

2. Backward traversals

Accumulate centrality

scores during backward

traversals [1].

Now they

become roots

Page 125: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

1. Forward traversals

BETWEENNESS CENTRALITY

BRANDES [1]

We can do

pushing or pulling

in both phases

[1] U. Brandes. A faster algorithm for betweenness

centrality. J. of Math. Sociology. 2001.

Vertex importance

(#shortest paths)

Compute immediate

predecessors of each

vertex in the shortest

paths from other

vertices.

Compute #shortest

paths between any

two vertices

2. Backward traversals

Accumulate centrality

scores during backward

traversals [1].

Now they

become roots

Page 126: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Page 127: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Page 128: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Pushing… like

before

Page 129: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Pushing… like

before

Page 130: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Pushing… like

before

Page 131: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Pushing… like

before

Page 132: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Pushing… like

before

Page 133: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Pushing… like

before

Pulling… lower

complexity (more

performance!)

Page 134: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Pushing… like

before

Pulling… lower

complexity (more

performance!)

Page 135: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Pushing… like

before

Pulling… lower

complexity (more

performance!)

Page 136: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Pushing… like

before

Pulling… lower

complexity (more

performance!)

Page 137: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

Page 138: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

Page 139: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

Page 140: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

Page 141: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

Page 142: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care explicitly about

partitioning now

Page 143: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care explicitly about

partitioning now

Page 144: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care explicitly about

partitioning now

Border vertices

Page 145: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care explicitly about

partitioning now

Iterate until converge

(convergence == no

color conflicts)

Border vertices

Page 146: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care explicitly about

partitioning now

Iterate until converge

(convergence == no

color conflicts)

In each iteration:

Border vertices

Page 147: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care explicitly about

partitioning now

Iterate until converge

(convergence == no

color conflicts)

In each iteration:

Color each partition

independently

1

Border vertices

Page 148: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care explicitly about

partitioning now

Iterate until converge

(convergence == no

color conflicts)

In each iteration:

Color each partition

independently

1

Border vertices

Page 149: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care explicitly about

partitioning now

Iterate until converge

(convergence == no

color conflicts)

In each iteration:

Color each partition

independently

1

Border vertices

Page 150: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care explicitly about

partitioning now

Iterate until converge

(convergence == no

color conflicts)

In each iteration:

Color each partition

independently

1

Border vertices

Oh no!

Page 151: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care explicitly about

partitioning now

Iterate until converge

(convergence == no

color conflicts)

In each iteration:

Color each partition

independentlyFix the conflicts

1 2

Border vertices

Oh no!

Page 152: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

Pushing

We care explicitly about

partitioning now

Iterate until converge

(convergence == no

color conflicts)

In each iteration:

Color each partition

independentlyFix the conflicts

1 2

Border vertices

Oh no!

Page 153: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

Pushing

We care explicitly about

partitioning now

Iterate until converge

(convergence == no

color conflicts)

In each iteration:

Color each partition

independentlyFix the conflicts

1 2

Border vertices

Oh no!

Page 154: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care explicitly about

partitioning now

Iterate until converge

(convergence == no

color conflicts)

In each iteration:

Color each partition

independentlyFix the conflicts

1 2

Border vertices

Oh no!

Page 155: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care explicitly about

partitioning now

Iterate until converge

(convergence == no

color conflicts)

In each iteration:

Color each partition

independentlyFix the conflicts

1 2

Border vertices

Page 156: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care explicitly about

partitioning now

Iterate until converge

(convergence == no

color conflicts)

In each iteration:

Color each partition

independentlyFix the conflicts

1 2

Border vertices

Page 157: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care explicitly about

partitioning now

Iterate until converge

(convergence == no

color conflicts)

In each iteration:

Color each partition

independentlyFix the conflicts

1 2

Border vertices

Oh no!

Page 158: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

Pulling

We care explicitly about

partitioning now

Iterate until converge

(convergence == no

color conflicts)

In each iteration:

Color each partition

independentlyFix the conflicts

1 2

Border vertices

Oh no!

Page 159: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

Pulling

We care explicitly about

partitioning now

Iterate until converge

(convergence == no

color conflicts)

In each iteration:

Color each partition

independentlyFix the conflicts

1 2

Border vertices

Oh no!

Page 160: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

Pulling

We care explicitly about

partitioning now

Iterate until converge

(convergence == no

color conflicts)

In each iteration:

Color each partition

independentlyFix the conflicts

1 2

Border vertices

Oh no!

Page 161: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

Pulling

We care explicitly about

partitioning now

Iterate until converge

(convergence == no

color conflicts)

In each iteration:

Color each partition

independentlyFix the conflicts

1 2

Border vertices

Page 162: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

OTHER ALGORITHMS & FORMULATIONS

Page 163: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Triangle CountingBFS

∆-Stepping

OTHER ALGORITHMS & FORMULATIONS

BC (algebraic notation)

Betweenness Centrality (BC)

Graph Coloring

PageRank

Boruvka MST

Page 164: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Triangle CountingBFS

∆-Stepping

OTHER ALGORITHMS & FORMULATIONS

BC (algebraic notation)

Betweenness Centrality (BC)

Graph Coloring

PageRank

Boruvka MST

Check out the paper

Page 165: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

RESEARCH QUESTIONS

How do they differ in

complexity?

What are push-pull

formulations of other

algorithms?Can we apply the

push-pull dichotomy

to other graph

algorithms? What pushing vs.

pulling really is?

What is performance?

Page 166: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

RESEARCH QUESTIONS

How do they differ in

complexity?

What are push-pull

formulations of other

algorithms?Can we apply the

push-pull dichotomy

to other graph

algorithms? What pushing vs.

pulling really is?

What is performance?

Page 167: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

RESEARCH QUESTIONS

How do they differ in

complexity?

What are push-pull

formulations of other

algorithms?Can we apply the

push-pull dichotomy

to other graph

algorithms? What pushing vs.

pulling really is?

What is performance?

Page 168: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

GENERIC DIFFERENCES

Page 169: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

GENERIC DIFFERENCES

What pushing vs.

pulling really is?

Page 170: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

GENERIC DIFFERENCES• Vertices:

• modifies

• : a thread that owns

𝑣 ∈ 𝑉

What pushing vs.

pulling really is?

𝑡[𝑣]𝑡 ↝ 𝑣 ⇔ 𝑡 𝑣

𝑣

Page 171: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

GENERIC DIFFERENCES• Vertices:

• modifies

• : a thread that owns

𝑣 ∈ 𝑉

What pushing vs.

pulling really is?

𝑡[𝑣]𝑡 ↝ 𝑣 ⇔ 𝑡

Algorithm uses pushing ⇔

(∃𝑡 ∃𝑣 ∈ 𝑉: 𝑡 ↝ 𝑣 ∧ 𝑡 ≠ 𝑡[𝑣])

𝑣𝑣

Page 172: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

GENERIC DIFFERENCES• Vertices:

• modifies

• : a thread that owns

𝑣 ∈ 𝑉

What pushing vs.

pulling really is?

𝑡[𝑣]𝑡 ↝ 𝑣 ⇔ 𝑡

Algorithm uses pushing ⇔

(∃𝑡 ∃𝑣 ∈ 𝑉: 𝑡 ↝ 𝑣 ∧ 𝑡 ≠ 𝑡[𝑣])

Algorithm uses pulling ⇔

(∀𝑡 ∀𝑣 ∈ 𝑉: 𝑡 ↝ 𝑣 ⇒ 𝑡 = 𝑡[𝑣])

𝑣𝑣

Page 173: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

GENERIC DIFFERENCES• Vertices:

• modifies

• : a thread that owns

𝑣 ∈ 𝑉

What pushing vs.

pulling really is?

𝑡[𝑣]𝑡 ↝ 𝑣 ⇔ 𝑡

Algorithm uses pushing ⇔

(∃𝑡 ∃𝑣 ∈ 𝑉: 𝑡 ↝ 𝑣 ∧ 𝑡 ≠ 𝑡[𝑣])

Algorithm uses pulling ⇔

(∀𝑡 ∀𝑣 ∈ 𝑉: 𝑡 ↝ 𝑣 ⇒ 𝑡 = 𝑡[𝑣])

𝑣𝑣

This is the actual

dichotomy

Page 174: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

GENERIC DIFFERENCES• Vertices:

• modifies

• : a thread that owns

𝑣 ∈ 𝑉

What pushing vs.

pulling really is?

𝑡[𝑣]𝑡 ↝ 𝑣 ⇔ 𝑡

Algorithm uses pushing ⇔

(∃𝑡 ∃𝑣 ∈ 𝑉: 𝑡 ↝ 𝑣 ∧ 𝑡 ≠ 𝑡[𝑣])

Algorithm uses pulling ⇔

(∀𝑡 ∀𝑣 ∈ 𝑉: 𝑡 ↝ 𝑣 ⇒ 𝑡 = 𝑡[𝑣])

𝑣𝑣

This is the actual

dichotomy~[ ]

Page 175: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

GENERIC DIFFERENCES• Vertices:

• modifies

• : a thread that owns

𝑣 ∈ 𝑉

What pushing vs.

pulling really is?

𝑡[𝑣]𝑡 ↝ 𝑣 ⇔ 𝑡

Algorithm uses pushing ⇔

(∃𝑡 ∃𝑣 ∈ 𝑉: 𝑡 ↝ 𝑣 ∧ 𝑡 ≠ 𝑡[𝑣])

Algorithm uses pulling ⇔

(∀𝑡 ∀𝑣 ∈ 𝑉: 𝑡 ↝ 𝑣 ⇒ 𝑡 = 𝑡[𝑣])

𝑣𝑣

This is the actual

dichotomy~[ ]=

Page 176: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

RESEARCH QUESTIONS

How do they differ in

complexity?

What are push-pull

formulations of other

algorithms?Can we apply the

push-pull dichotomy

to other graph

algorithms? What pushing vs.

pulling really is?

What is performance?

Page 177: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

RESEARCH QUESTIONS

How do they differ in

complexity?

What are push-pull

formulations of other

algorithms?Can we apply the

push-pull dichotomy

to other graph

algorithms? What pushing vs.

pulling really is?

What is performance?

Page 178: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

RESEARCH QUESTIONS

How do they differ in

complexity?

What are push-pull

formulations of other

algorithms?Can we apply the

push-pull dichotomy

to other graph

algorithms? What pushing vs.

pulling really is?

What is performance?

Page 179: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Page 180: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Before we move to the

complexity analysis…

Page 181: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Before we move to the

complexity analysis…

…a brief recap on

PRAM models.

Page 182: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Page 183: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PRAM (Parallel Random Access Machine): a model used

to reason about the performance of parallel algorithms

Page 184: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PRAM (Parallel Random Access Machine): a model used

to reason about the performance of parallel algorithms

All processes process in lock-steps,

communicate by reading from &

writing to a shared memory.

Page 185: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PRAM (Parallel Random Access Machine): a model used

to reason about the performance of parallel algorithms

All processes process in lock-steps,

communicate by reading from &

writing to a shared memory.

Page 186: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PRAM (Parallel Random Access Machine): a model used

to reason about the performance of parallel algorithms

All processes process in lock-steps,

communicate by reading from &

writing to a shared memory.

Page 187: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PRAM (Parallel Random Access Machine): a model used

to reason about the performance of parallel algorithms

All processes process in lock-steps,

communicate by reading from &

writing to a shared memory.

Some data in

shared memory

(e.g., a vertex )

Page 188: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PRAM (Parallel Random Access Machine): a model used

to reason about the performance of parallel algorithms

All processes process in lock-steps,

communicate by reading from &

writing to a shared memory.

Some data in

shared memory

(e.g., a vertex )

Page 189: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PRAM (Parallel Random Access Machine): a model used

to reason about the performance of parallel algorithms

All processes process in lock-steps,

communicate by reading from &

writing to a shared memory.

Some data in

shared memory

(e.g., a vertex )

Page 190: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PRAM (Parallel Random Access Machine): a model used

to reason about the performance of parallel algorithms

All processes process in lock-steps,

communicate by reading from &

writing to a shared memory.

Some data in

shared memory

(e.g., a vertex )

Page 191: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PRAM (Parallel Random Access Machine): a model used

to reason about the performance of parallel algorithms

All processes process in lock-steps,

communicate by reading from &

writing to a shared memory.

Some data in

shared memory

(e.g., a vertex )

Page 192: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PRAM (Parallel Random Access Machine): a model used

to reason about the performance of parallel algorithms

All processes process in lock-steps,

communicate by reading from &

writing to a shared memory.

Page 193: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PRAM (Parallel Random Access Machine): a model used

to reason about the performance of parallel algorithms

All processes process in lock-steps,

communicate by reading from &

writing to a shared memory.

CRCW PRAM: concurrent reads

and concurrent writes to the same

cell take O(1) time.

Page 194: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PRAM (Parallel Random Access Machine): a model used

to reason about the performance of parallel algorithms

All processes process in lock-steps,

communicate by reading from &

writing to a shared memory.

CRCW PRAM: concurrent reads

and concurrent writes to the same

cell take O(1) time.

Page 195: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PRAM (Parallel Random Access Machine): a model used

to reason about the performance of parallel algorithms

All processes process in lock-steps,

communicate by reading from &

writing to a shared memory.

CRCW PRAM: concurrent reads

and concurrent writes to the same

cell take O(1) time.

Page 196: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PRAM (Parallel Random Access Machine): a model used

to reason about the performance of parallel algorithms

All processes process in lock-steps,

communicate by reading from &

writing to a shared memory.

CRCW PRAM: concurrent reads

and concurrent writes to the same

cell take O(1) time.

CREW PRAM: concurrent writes to

the same cell are forbidden

Page 197: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PRAM (Parallel Random Access Machine): a model used

to reason about the performance of parallel algorithms

All processes process in lock-steps,

communicate by reading from &

writing to a shared memory.

CRCW PRAM: concurrent reads

and concurrent writes to the same

cell take O(1) time.

CREW PRAM: concurrent writes to

the same cell are forbidden

Page 198: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PRAM (Parallel Random Access Machine): a model used

to reason about the performance of parallel algorithms

All processes process in lock-steps,

communicate by reading from &

writing to a shared memory.

CRCW PRAM: concurrent reads

and concurrent writes to the same

cell take O(1) time.

CREW PRAM: concurrent writes to

the same cell are forbidden

Page 199: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

BASIC PRIMITIVES

k-RELAXATION AND k-FILTER

𝑘 = 4

Page 200: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

k-RELAXATION

BASIC PRIMITIVES

k-RELAXATION AND k-FILTER

𝑘 = 4 Simultaneous propagation of

updates: (pushing) from k

vertices to one of their

neighbors, and (pulling) to k

vertices from one of their

neighbors

Page 201: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

k-RELAXATION

BASIC PRIMITIVES

k-RELAXATION AND k-FILTER

𝑘 = 4 Simultaneous propagation of

updates: (pushing) from k

vertices to one of their

neighbors, and (pulling) to k

vertices from one of their

neighbors

Page 202: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

k-RELAXATION

BASIC PRIMITIVES

k-RELAXATION AND k-FILTER

𝑘 = 4

𝑓

𝑓

𝑓

Simultaneous propagation of

updates: (pushing) from k

vertices to one of their

neighbors, and (pulling) to k

vertices from one of their

neighbors

Page 203: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

k-RELAXATION

BASIC PRIMITIVES

k-RELAXATION AND k-FILTER

𝑘 = 4

Can be thought of a binary tree

reduction𝑓

𝑓

𝑓

Simultaneous propagation of

updates: (pushing) from k

vertices to one of their

neighbors, and (pulling) to k

vertices from one of their

neighbors

Page 204: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

k-RELAXATION

BASIC PRIMITIVES

k-RELAXATION AND k-FILTER

𝑘 = 4

Can be thought of a binary tree

reduction𝑓

𝑓

𝑓

k-FILTER

Simultaneous propagation of

updates: (pushing) from k

vertices to one of their

neighbors, and (pulling) to k

vertices from one of their

neighbors

Extract vertices updated in one

or more k-RELAXATIONs

Page 205: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

k-RELAXATION

BASIC PRIMITIVES

k-RELAXATION AND k-FILTER

𝑘 = 4

Can be thought of a binary tree

reduction𝑓

𝑓

𝑓

k-FILTER

Simultaneous propagation of

updates: (pushing) from k

vertices to one of their

neighbors, and (pulling) to k

vertices from one of their

neighbors

Extract vertices updated in one

or more k-RELAXATIONs

Page 206: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

k-RELAXATION

BASIC PRIMITIVES

k-RELAXATION AND k-FILTER

𝑘 = 4

Can be thought of a binary tree

reduction𝑓

𝑓

𝑓

k-FILTER

Can be thought of a prefix sum

Simultaneous propagation of

updates: (pushing) from k

vertices to one of their

neighbors, and (pulling) to k

vertices from one of their

neighbors

Extract vertices updated in one

or more k-RELAXATIONs

Page 207: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

k-RELAXATION

BASIC PRIMITIVES

k-RELAXATION AND k-FILTER

𝑘 = 4

Can be thought of a binary tree

reduction𝑓

𝑓

𝑓

k-FILTER

Can be thought of a prefix sum

Simultaneous propagation of

updates: (pushing) from k

vertices to one of their

neighbors, and (pulling) to k

vertices from one of their

neighbors

Extract vertices updated in one

or more k-RELAXATIONs

We can use k-

RELAXATIONs and k-

FILTERs to derive all

the complexities

Page 208: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

k-RELAXATION

BASIC PRIMITIVES

k-RELAXATION AND k-FILTER

𝑘 = 4

Can be thought of a binary tree

reduction𝑓

𝑓

𝑓

k-FILTER

Can be thought of a prefix sum

Simultaneous propagation of

updates: (pushing) from k

vertices to one of their

neighbors, and (pulling) to k

vertices from one of their

neighbors

Extract vertices updated in one

or more k-RELAXATIONs

We can use k-

RELAXATIONs and k-

FILTERs to derive all

the complexities

Page 209: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

k-RELAXATION

BASIC PRIMITIVES

k-RELAXATION AND k-FILTER

𝑘 = 4

Can be thought of a binary tree

reduction𝑓

𝑓

𝑓

k-FILTER

Can be thought of a prefix sum

Simultaneous propagation of

updates: (pushing) from k

vertices to one of their

neighbors, and (pulling) to k

vertices from one of their

neighbors

Extract vertices updated in one

or more k-RELAXATIONs

We can use k-

RELAXATIONs and k-

FILTERs to derive all

the complexities

We want complexities for (the Cartesian product of):

Page 210: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

k-RELAXATION

BASIC PRIMITIVES

k-RELAXATION AND k-FILTER

𝑘 = 4

Can be thought of a binary tree

reduction𝑓

𝑓

𝑓

k-FILTER

Can be thought of a prefix sum

Simultaneous propagation of

updates: (pushing) from k

vertices to one of their

neighbors, and (pulling) to k

vertices from one of their

neighbors

Extract vertices updated in one

or more k-RELAXATIONs

We can use k-

RELAXATIONs and k-

FILTERs to derive all

the complexities

We want complexities for (the Cartesian product of):

Time

work

Page 211: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

k-RELAXATION

BASIC PRIMITIVES

k-RELAXATION AND k-FILTER

𝑘 = 4

Can be thought of a binary tree

reduction𝑓

𝑓

𝑓

k-FILTER

Can be thought of a prefix sum

Simultaneous propagation of

updates: (pushing) from k

vertices to one of their

neighbors, and (pulling) to k

vertices from one of their

neighbors

Extract vertices updated in one

or more k-RELAXATIONs

We can use k-

RELAXATIONs and k-

FILTERs to derive all

the complexities

We want complexities for (the Cartesian product of):

Time

work X

Page 212: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

k-RELAXATION

BASIC PRIMITIVES

k-RELAXATION AND k-FILTER

𝑘 = 4

Can be thought of a binary tree

reduction𝑓

𝑓

𝑓

k-FILTER

Can be thought of a prefix sum

Simultaneous propagation of

updates: (pushing) from k

vertices to one of their

neighbors, and (pulling) to k

vertices from one of their

neighbors

Extract vertices updated in one

or more k-RELAXATIONs

We can use k-

RELAXATIONs and k-

FILTERs to derive all

the complexities

We want complexities for (the Cartesian product of):

Time

work

Pushing

PullingX

Page 213: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

k-RELAXATION

BASIC PRIMITIVES

k-RELAXATION AND k-FILTER

𝑘 = 4

Can be thought of a binary tree

reduction𝑓

𝑓

𝑓

k-FILTER

Can be thought of a prefix sum

Simultaneous propagation of

updates: (pushing) from k

vertices to one of their

neighbors, and (pulling) to k

vertices from one of their

neighbors

Extract vertices updated in one

or more k-RELAXATIONs

We can use k-

RELAXATIONs and k-

FILTERs to derive all

the complexities

We want complexities for (the Cartesian product of):

Time

work

Pushing

PullingX X

Page 214: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

k-RELAXATION

BASIC PRIMITIVES

k-RELAXATION AND k-FILTER

𝑘 = 4

Can be thought of a binary tree

reduction𝑓

𝑓

𝑓

k-FILTER

Can be thought of a prefix sum

Simultaneous propagation of

updates: (pushing) from k

vertices to one of their

neighbors, and (pulling) to k

vertices from one of their

neighbors

Extract vertices updated in one

or more k-RELAXATIONs

We can use k-

RELAXATIONs and k-

FILTERs to derive all

the complexities

We want complexities for (the Cartesian product of):

Time

work

Pushing

Pulling

CRCW PRAM

CREW PRAMX X

Page 215: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

k-RELAXATION

BASIC PRIMITIVES

k-RELAXATION AND k-FILTER

𝑘 = 4

Can be thought of a binary tree

reduction𝑓

𝑓

𝑓

k-FILTER

Can be thought of a prefix sum

Simultaneous propagation of

updates: (pushing) from k

vertices to one of their

neighbors, and (pulling) to k

vertices from one of their

neighbors

Extract vertices updated in one

or more k-RELAXATIONs

We can use k-

RELAXATIONs and k-

FILTERs to derive all

the complexities

We want complexities for (the Cartesian product of):

Time

work

Pushing

Pulling

CRCW PRAM

CREW PRAMX X X

Page 216: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

k-RELAXATION

BASIC PRIMITIVES

k-RELAXATION AND k-FILTER

𝑘 = 4

Can be thought of a binary tree

reduction𝑓

𝑓

𝑓

k-FILTER

Can be thought of a prefix sum

Simultaneous propagation of

updates: (pushing) from k

vertices to one of their

neighbors, and (pulling) to k

vertices from one of their

neighbors

Extract vertices updated in one

or more k-RELAXATIONs

We can use k-

RELAXATIONs and k-

FILTERs to derive all

the complexities

We want complexities for (the Cartesian product of):

Time

work

BFS

PageRank

Triangle

Counting

Betweenness

Centrality

Graph

Coloring

∆-Stepping

MST Boruvka

Pushing

Pulling

CRCW PRAM

CREW PRAMX X X

Page 217: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

k-RELAXATION

BASIC PRIMITIVES

k-RELAXATION AND k-FILTER

𝑘 = 4

Can be thought of a binary tree

reduction𝑓

𝑓

𝑓

k-FILTER

Can be thought of a prefix sum

Simultaneous propagation of

updates: (pushing) from k

vertices to one of their

neighbors, and (pulling) to k

vertices from one of their

neighbors

Extract vertices updated in one

or more k-RELAXATIONs

We can use k-

RELAXATIONs and k-

FILTERs to derive all

the complexities

We want complexities for (the Cartesian product of):

Time

work

BFS

PageRank

Triangle

Counting

Betweenness

Centrality

Graph

Coloring

∆-Stepping

MST Boruvka

Pushing

Pulling

CRCW PRAM

CREW PRAMX X X

+ some others

Page 218: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PageRank Triangle Counting BFS

Pulli

ng Time 𝑂 𝐿(𝑚/𝑃 + መ𝑑) 𝑂 መ𝑑𝑚/𝑃 + መ𝑑2 𝑂 𝐷𝑚/𝑃 + 𝐷 መ𝑑

Work 𝑂(𝐿𝑚) 𝑂(𝑚 መ𝑑) 𝑂(𝐷𝑚)

Pushin

g

Time (CRCW) 𝑂 𝐿 𝑚/𝑃 + መ𝑑 𝑂 መ𝑑𝑚/𝑃 + መ𝑑2 𝑂 𝐷𝑚/𝑃 + 𝐷 መ𝑑 + 𝐷 log 𝑃

Work (CRCW) 𝑂(𝐿𝑚) 𝑂(𝑚 መ𝑑) 𝑂(𝑚)

Time (CREW) 𝑂 𝐿 log( መ𝑑) 𝑚/𝑃 + መ𝑑 𝑂 log መ𝑑 መ𝑑𝑚/𝑃 + መ𝑑2 𝑂 log መ𝑑 𝐷𝑚/𝑃 + 𝐷 መ𝑑

Work (CREW) 𝑂 𝐿𝑚 log መ𝑑 𝑂(𝑚𝑑 log መ𝑑) 𝑂 𝑚 log መ𝑑

∆-Stepping Boman Graph Coloring MST BC

Pulli

ng Time 𝑂 𝐿/Δ 𝑙Δ 𝑚/𝑃 + መ𝑑 𝑂 𝐿𝑚/𝑃 + 𝐿 መ𝑑 𝑂 𝑛2/𝑃

De

rive

dstr

aig

htforw

ard

ly

from

BF

S

Work 𝑂 𝐿/Δ 𝑚𝑙Δ 𝑂(𝐿𝑚) 𝑂(𝑛2)

Pushin

g

Time (CRCW) 𝑂 𝐿/Δ 𝑙Δ መ𝑑 + 𝑚𝑙Δ/𝑃 𝑂 log መ𝑑 𝐿𝑚/𝑃 + 𝐿 መ𝑑 𝑂 𝑛2/𝑃

Work (CRCW) 𝑂 𝑚𝑙Δ 𝑂(𝐿𝑚) 𝑂(𝑛2)

Time (CREW) 𝑂 log መ𝑑 𝐿/Δ 𝑙Δ መ𝑑 + 𝑚𝑙Δ/𝑃 𝑂 log መ𝑑 𝐿𝑚/𝑃 + 𝐿 መ𝑑 𝑂 log(𝑛) 𝑛2/𝑃

Work (CREW) 𝑂 log መ𝑑 𝑚𝑙Δ 𝑂 𝐿𝑚 log መ𝑑 𝑂(log(𝑛) 𝑛2)

COMPLEXITY ANALYSES

Page 219: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PageRank Triangle Counting BFS

Pulli

ng Time 𝑂 𝐿(𝑚/𝑃 + መ𝑑) 𝑂 መ𝑑𝑚/𝑃 + መ𝑑2 𝑂 𝐷𝑚/𝑃 + 𝐷 መ𝑑

Work 𝑂(𝐿𝑚) 𝑂(𝑚 መ𝑑) 𝑂(𝐷𝑚)

Pushin

g

Time (CRCW) 𝑂 𝐿 𝑚/𝑃 + መ𝑑 𝑂 መ𝑑𝑚/𝑃 + መ𝑑2 𝑂 𝐷𝑚/𝑃 + 𝐷 መ𝑑 + 𝐷 log 𝑃

Work (CRCW) 𝑂(𝐿𝑚) 𝑂(𝑚 መ𝑑) 𝑂(𝑚)

Time (CREW) 𝑂 𝐿 log( መ𝑑) 𝑚/𝑃 + መ𝑑 𝑂 log መ𝑑 መ𝑑𝑚/𝑃 + መ𝑑2 𝑂 log መ𝑑 𝐷𝑚/𝑃 + 𝐷 መ𝑑

Work (CREW) 𝑂 𝐿𝑚 log መ𝑑 𝑂(𝑚𝑑 log መ𝑑) 𝑂 𝑚 log መ𝑑

∆-Stepping Boman Graph Coloring MST BC

Pulli

ng Time 𝑂 𝐿/Δ 𝑙Δ 𝑚/𝑃 + መ𝑑 𝑂 𝐿𝑚/𝑃 + 𝐿 መ𝑑 𝑂 𝑛2/𝑃

De

rive

dstr

aig

htforw

ard

ly

from

BF

S

Work 𝑂 𝐿/Δ 𝑚𝑙Δ 𝑂(𝐿𝑚) 𝑂(𝑛2)

Pushin

g

Time (CRCW) 𝑂 𝐿/Δ 𝑙Δ መ𝑑 + 𝑚𝑙Δ/𝑃 𝑂 log መ𝑑 𝐿𝑚/𝑃 + 𝐿 መ𝑑 𝑂 𝑛2/𝑃

Work (CRCW) 𝑂 𝑚𝑙Δ 𝑂(𝐿𝑚) 𝑂(𝑛2)

Time (CREW) 𝑂 log መ𝑑 𝐿/Δ 𝑙Δ መ𝑑 + 𝑚𝑙Δ/𝑃 𝑂 log መ𝑑 𝐿𝑚/𝑃 + 𝐿 መ𝑑 𝑂 log(𝑛) 𝑛2/𝑃

Work (CREW) 𝑂 log መ𝑑 𝑚𝑙Δ 𝑂 𝐿𝑚 log መ𝑑 𝑂(log(𝑛) 𝑛2)

COMPLEXITY ANALYSES

No worries, we won’t go over

all these details here

Page 220: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PageRank Triangle Counting BFS

Pulli

ng Time 𝑂 𝐿(𝑚/𝑃 + መ𝑑) 𝑂 መ𝑑𝑚/𝑃 + መ𝑑2 𝑂 𝐷𝑚/𝑃 + 𝐷 መ𝑑

Work 𝑂(𝐿𝑚) 𝑂(𝑚 መ𝑑) 𝑂(𝐷𝑚)

Pushin

g

Time (CRCW) 𝑂 𝐿 𝑚/𝑃 + መ𝑑 𝑂 መ𝑑𝑚/𝑃 + መ𝑑2 𝑂 𝐷𝑚/𝑃 + 𝐷 መ𝑑 + 𝐷 log 𝑃

Work (CRCW) 𝑂(𝐿𝑚) 𝑂(𝑚 መ𝑑) 𝑂(𝑚)

Time (CREW) 𝑂 𝐿 log( መ𝑑) 𝑚/𝑃 + መ𝑑 𝑂 log መ𝑑 መ𝑑𝑚/𝑃 + መ𝑑2 𝑂 log መ𝑑 𝐷𝑚/𝑃 + 𝐷 መ𝑑

Work (CREW) 𝑂 𝐿𝑚 log መ𝑑 𝑂(𝑚𝑑 log መ𝑑) 𝑂 𝑚 log መ𝑑

∆-Stepping Boman Graph Coloring MST BC

Pulli

ng Time 𝑂 𝐿/Δ 𝑙Δ 𝑚/𝑃 + መ𝑑 𝑂 𝐿𝑚/𝑃 + 𝐿 መ𝑑 𝑂 𝑛2/𝑃

De

rive

dstr

aig

htforw

ard

ly

from

BF

S

Work 𝑂 𝐿/Δ 𝑚𝑙Δ 𝑂(𝐿𝑚) 𝑂(𝑛2)

Pushin

g

Time (CRCW) 𝑂 𝐿/Δ 𝑙Δ መ𝑑 + 𝑚𝑙Δ/𝑃 𝑂 log መ𝑑 𝐿𝑚/𝑃 + 𝐿 መ𝑑 𝑂 𝑛2/𝑃

Work (CRCW) 𝑂 𝑚𝑙Δ 𝑂(𝐿𝑚) 𝑂(𝑛2)

Time (CREW) 𝑂 log መ𝑑 𝐿/Δ 𝑙Δ መ𝑑 + 𝑚𝑙Δ/𝑃 𝑂 log መ𝑑 𝐿𝑚/𝑃 + 𝐿 መ𝑑 𝑂 log(𝑛) 𝑛2/𝑃

Work (CREW) 𝑂 log መ𝑑 𝑚𝑙Δ 𝑂 𝐿𝑚 log መ𝑑 𝑂(log(𝑛) 𝑛2)

COMPLEXITY ANALYSES

No worries, we won’t go over

all these details here Let’s only see the PageRank

comparisons (others are similar)

Page 221: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PageRank Triangle Counting BFS

Pulli

ng Time 𝑂 𝐿(𝑚/𝑃 + መ𝑑) 𝑂 መ𝑑𝑚/𝑃 + መ𝑑2 𝑂 𝐷𝑚/𝑃 + 𝐷 መ𝑑

Work 𝑂(𝐿𝑚) 𝑂(𝑚 መ𝑑) 𝑂(𝐷𝑚)

Pushin

g

Time (CRCW) 𝑂 𝐿 𝑚/𝑃 + መ𝑑 𝑂 መ𝑑𝑚/𝑃 + መ𝑑2 𝑂 𝐷𝑚/𝑃 + 𝐷 መ𝑑 + 𝐷 log 𝑃

Work (CRCW) 𝑂(𝐿𝑚) 𝑂(𝑚 መ𝑑) 𝑂(𝑚)

Time (CREW) 𝑂 𝐿 log( መ𝑑) 𝑚/𝑃 + መ𝑑 𝑂 log መ𝑑 መ𝑑𝑚/𝑃 + መ𝑑2 𝑂 log መ𝑑 𝐷𝑚/𝑃 + 𝐷 መ𝑑

Work (CREW) 𝑂 𝐿𝑚 log መ𝑑 𝑂(𝑚𝑑 log መ𝑑) 𝑂 𝑚 log መ𝑑

∆-Stepping Boman Graph Coloring MST BC

Pulli

ng Time 𝑂 𝐿/Δ 𝑙Δ 𝑚/𝑃 + መ𝑑 𝑂 𝐿𝑚/𝑃 + 𝐿 መ𝑑 𝑂 𝑛2/𝑃

De

rive

dstr

aig

htforw

ard

ly

from

BF

S

Work 𝑂 𝐿/Δ 𝑚𝑙Δ 𝑂(𝐿𝑚) 𝑂(𝑛2)

Pushin

g

Time (CRCW) 𝑂 𝐿/Δ 𝑙Δ መ𝑑 + 𝑚𝑙Δ/𝑃 𝑂 log መ𝑑 𝐿𝑚/𝑃 + 𝐿 መ𝑑 𝑂 𝑛2/𝑃

Work (CRCW) 𝑂 𝑚𝑙Δ 𝑂(𝐿𝑚) 𝑂(𝑛2)

Time (CREW) 𝑂 log መ𝑑 𝐿/Δ 𝑙Δ መ𝑑 + 𝑚𝑙Δ/𝑃 𝑂 log መ𝑑 𝐿𝑚/𝑃 + 𝐿 መ𝑑 𝑂 log(𝑛) 𝑛2/𝑃

Work (CREW) 𝑂 log መ𝑑 𝑚𝑙Δ 𝑂 𝐿𝑚 log መ𝑑 𝑂(log(𝑛) 𝑛2)

COMPLEXITY ANALYSES

No worries, we won’t go over

all these details here Let’s only see the PageRank

comparisons (others are similar)

Page 222: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PageRank Triangle Counting BFS

Pulli

ng Time 𝑂 𝐿(𝑚/𝑃 + መ𝑑) 𝑂 መ𝑑𝑚/𝑃 + መ𝑑2 𝑂 𝐷𝑚/𝑃 + 𝐷 መ𝑑

Work 𝑂(𝐿𝑚) 𝑂(𝑚 መ𝑑) 𝑂(𝐷𝑚)

Pushin

g

Time (CRCW) 𝑂 𝐿 𝑚/𝑃 + መ𝑑 𝑂 መ𝑑𝑚/𝑃 + መ𝑑2 𝑂 𝐷𝑚/𝑃 + 𝐷 መ𝑑 + 𝐷 log 𝑃

Work (CRCW) 𝑂(𝐿𝑚) 𝑂(𝑚 መ𝑑) 𝑂(𝑚)

Time (CREW) 𝑂 𝐿 log( መ𝑑) 𝑚/𝑃 + መ𝑑 𝑂 log መ𝑑 መ𝑑𝑚/𝑃 + መ𝑑2 𝑂 log መ𝑑 𝐷𝑚/𝑃 + 𝐷 መ𝑑

Work (CREW) 𝑂 𝐿𝑚 log መ𝑑 𝑂(𝑚𝑑 log መ𝑑) 𝑂 𝑚 log መ𝑑

∆-Stepping Boman Graph Coloring MST BC

Pulli

ng Time 𝑂 𝐿/Δ 𝑙Δ 𝑚/𝑃 + መ𝑑 𝑂 𝐿𝑚/𝑃 + 𝐿 መ𝑑 𝑂 𝑛2/𝑃

De

rive

dstr

aig

htforw

ard

ly

from

BF

S

Work 𝑂 𝐿/Δ 𝑚𝑙Δ 𝑂(𝐿𝑚) 𝑂(𝑛2)

Pushin

g

Time (CRCW) 𝑂 𝐿/Δ 𝑙Δ መ𝑑 + 𝑚𝑙Δ/𝑃 𝑂 log መ𝑑 𝐿𝑚/𝑃 + 𝐿 መ𝑑 𝑂 𝑛2/𝑃

Work (CRCW) 𝑂 𝑚𝑙Δ 𝑂(𝐿𝑚) 𝑂(𝑛2)

Time (CREW) 𝑂 log መ𝑑 𝐿/Δ 𝑙Δ መ𝑑 + 𝑚𝑙Δ/𝑃 𝑂 log መ𝑑 𝐿𝑚/𝑃 + 𝐿 መ𝑑 𝑂 log(𝑛) 𝑛2/𝑃

Work (CREW) 𝑂 log መ𝑑 𝑚𝑙Δ 𝑂 𝐿𝑚 log መ𝑑 𝑂(log(𝑛) 𝑛2)

COMPLEXITY ANALYSES

No worries, we won’t go over

all these details here Let’s only see the PageRank

comparisons (others are similar)

#iterations

#edges

#processes

max degree

in a graph

Page 223: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PageRank Triangle Counting BFS

Pulli

ng Time 𝑂 𝐿(𝑚/𝑃 + መ𝑑) 𝑂 መ𝑑𝑚/𝑃 + መ𝑑2 𝑂 𝐷𝑚/𝑃 + 𝐷 መ𝑑

Work 𝑂(𝐿𝑚) 𝑂(𝑚 መ𝑑) 𝑂(𝐷𝑚)

Pushin

g

Time (CRCW) 𝑂 𝐿 𝑚/𝑃 + መ𝑑 𝑂 መ𝑑𝑚/𝑃 + መ𝑑2 𝑂 𝐷𝑚/𝑃 + 𝐷 መ𝑑 + 𝐷 log 𝑃

Work (CRCW) 𝑂(𝐿𝑚) 𝑂(𝑚 መ𝑑) 𝑂(𝑚)

Time (CREW) 𝑂 𝐿 log( መ𝑑) 𝑚/𝑃 + መ𝑑 𝑂 log መ𝑑 መ𝑑𝑚/𝑃 + መ𝑑2 𝑂 log መ𝑑 𝐷𝑚/𝑃 + 𝐷 መ𝑑

Work (CREW) 𝑂 𝐿𝑚 log መ𝑑 𝑂(𝑚𝑑 log መ𝑑) 𝑂 𝑚 log መ𝑑

∆-Stepping Boman Graph Coloring MST BC

Pulli

ng Time 𝑂 𝐿/Δ 𝑙Δ 𝑚/𝑃 + መ𝑑 𝑂 𝐿𝑚/𝑃 + 𝐿 መ𝑑 𝑂 𝑛2/𝑃

De

rive

dstr

aig

htforw

ard

ly

from

BF

S

Work 𝑂 𝐿/Δ 𝑚𝑙Δ 𝑂(𝐿𝑚) 𝑂(𝑛2)

Pushin

g

Time (CRCW) 𝑂 𝐿/Δ 𝑙Δ መ𝑑 + 𝑚𝑙Δ/𝑃 𝑂 log መ𝑑 𝐿𝑚/𝑃 + 𝐿 መ𝑑 𝑂 𝑛2/𝑃

Work (CRCW) 𝑂 𝑚𝑙Δ 𝑂(𝐿𝑚) 𝑂(𝑛2)

Time (CREW) 𝑂 log መ𝑑 𝐿/Δ 𝑙Δ መ𝑑 + 𝑚𝑙Δ/𝑃 𝑂 log መ𝑑 𝐿𝑚/𝑃 + 𝐿 መ𝑑 𝑂 log(𝑛) 𝑛2/𝑃

Work (CREW) 𝑂 log መ𝑑 𝑚𝑙Δ 𝑂 𝐿𝑚 log መ𝑑 𝑂(log(𝑛) 𝑛2)

COMPLEXITY ANALYSES

No worries, we won’t go over

all these details here

Now, some

highlights…

Let’s only see the PageRank

comparisons (others are similar)

#iterations

#edges

#processes

max degree

in a graph

Page 224: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

COMPLEXITY ANALYSES

HIGHLIGHTS

Page 225: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

COMPLEXITY ANALYSES

HIGHLIGHTS

Write conflicts

Pushing entails more write conflicts (must

be resolved with locks or atomics.

Page 226: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

COMPLEXITY ANALYSES

HIGHLIGHTS

Write conflicts

Pushing entails more write conflicts (must

be resolved with locks or atomics.

Atomics/Locks

Pulling removes atomics or locks

completely (TC, PR, BFS, ∆-Stepping,

MST) or it changes the type of

conflicts from to (BC).

Page 227: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

COMPLEXITY ANALYSES

HIGHLIGHTS

Write conflicts

Pushing entails more write conflicts (must

be resolved with locks or atomics.

Atomics/Locks

Pulling removes atomics or locks

completely (TC, PR, BFS, ∆-Stepping,

MST) or it changes the type of

conflicts from to (BC).

Memory accesses

Pulling in traversals (BFS,

BC, SSSP-∆) entails more

time and work.

Page 228: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

RESEARCH QUESTIONS

How do they differ in

complexity?

What are push-pull

formulations of other

algorithms?Can we apply the

push-pull dichotomy

to other graph

algorithms? What pushing vs.

pulling really is?

What is performance?

Page 229: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

RESEARCH QUESTIONS

How do they differ in

complexity?

What are push-pull

formulations of other

algorithms?Can we apply the

push-pull dichotomy

to other graph

algorithms? What pushing vs.

pulling really is?

What is performance?

Page 230: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

RESEARCH QUESTIONS

How do they differ in

complexity?

What are push-pull

formulations of other

algorithms?Can we apply the

push-pull dichotomy

to other graph

algorithms? What pushing vs.

pulling really is?

What is performance?

What is the impact of the

programming model?

environment?

Is pushing or pulling

faster? When and why?How effective are

the incorporated

strategies?

Page 231: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

TYPES OF MACHINES

CSCS Cray Piz Daint

& Dora

Page 232: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

TYPES OF MACHINES

CSCS Cray Piz Daint

& Dora

Page 233: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Trivium Intel Server

PERFORMANCE ANALYSIS

TYPES OF MACHINES

CSCS Cray Piz Daint

& Dora

Page 234: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

TYPES OF GRAPHS

Page 235: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

TYPES OF GRAPHS

Synthetic graphs

Page 236: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

TYPES OF GRAPHS

Synthetic graphs

Kronecker [1]

[1] J. Leskovec et al. Kronecker Graphs: An Approach to Modeling Networks. J. Mach. Learn. Research. 2010.

Page 237: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

TYPES OF GRAPHS

Synthetic graphs

Kronecker [1]

[1] J. Leskovec et al. Kronecker Graphs: An Approach to Modeling Networks. J. Mach. Learn. Research. 2010.

[2] P. Erdos and A. Renyi. On the evolution of random graphs. Pub. Math. Inst. Hun. A. Science. 1960.

Erdös-Rényi [2]

Page 238: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

TYPES OF GRAPHSReal-world SNAP graphs [3]

Synthetic graphs

Kronecker [1]

[1] J. Leskovec et al. Kronecker Graphs: An Approach to Modeling Networks. J. Mach. Learn. Research. 2010.

[2] P. Erdos and A. Renyi. On the evolution of random graphs. Pub. Math. Inst. Hun. A. Science. 1960.

[3] https://snap.stanford.edu

Erdös-Rényi [2]

Page 239: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

TYPES OF GRAPHSReal-world SNAP graphs [3]

Synthetic graphs

Kronecker [1]

[1] J. Leskovec et al. Kronecker Graphs: An Approach to Modeling Networks. J. Mach. Learn. Research. 2010.

[2] P. Erdos and A. Renyi. On the evolution of random graphs. Pub. Math. Inst. Hun. A. Science. 1960.

[3] https://snap.stanford.edu

Erdös-Rényi [2]

Road networks

Comm. graphs

Social networks

Purchase networks

Citation graphsWeb graphs

Page 240: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

COUNTED EVENTS

Page 241: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

COUNTED EVENTS

Counted PAPI events

Cache misses (L1, L2, L3)

Reads, writes

Branches (conditional, unconditional)

TLB misses (data, instruction)

Page 242: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

COUNTED EVENTS

Counted PAPI events

Cache misses (L1, L2, L3)

Reads, writes

Branches (conditional, unconditional)

TLB misses (data, instruction)

Other counted events

Issued atomics

Acquired locks

Messages (sent, received)

RMA accesses (reads, writes, atomics)

Page 243: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

FE

FEFE

PERFORMANCE ANALYSIS

BOMAN GRAPH COLORING

orc, ljn: social networks

rca: road network

Shared-

Memory

Page 244: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

FE

FEFE

PERFORMANCE ANALYSIS

BOMAN GRAPH COLORING

orc, ljn: social networks

rca: road network

Shared-

Memory

orc ljn rca

Page 245: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

FE

FEFE

PERFORMANCE ANALYSIS

BOMAN GRAPH COLORING

orc, ljn: social networks

rca: road network

Pushing fasterFewer cache/TLB

missesFewer reads/writes

Shared-

Memory

orc ljn rca

Page 246: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

FE

FEFE

PERFORMANCE ANALYSIS

BOMAN GRAPH COLORING

orc, ljn: social networks

rca: road network

Pushing fasterFewer cache/TLB

missesFewer reads/writes

Shared-

Memory

orc ljn rca

Page 247: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

FE

FEFE

PERFORMANCE ANALYSIS

BOMAN GRAPH COLORING

orc, ljn: social networks

rca: road network

Pushing fasterFewer cache/TLB

missesFewer reads/writes

Shared-

Memory

orc ljn rca

Page 248: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

FE

FEFE

PERFORMANCE ANALYSIS

BOMAN GRAPH COLORING

orc, ljn: social networks

rca: road network

Pushing fasterFewer cache/TLB

missesFewer reads/writes

Shared-

Memory

orc ljn rca

Page 249: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

FE

FEFE

PERFORMANCE ANALYSIS

BOMAN GRAPH COLORING

orc, ljn: social networks

rca: road network

Pushing fasterFewer cache/TLB

missesFewer reads/writes

Shared-

Memory

orc ljn rca

Frontier-Exploit (FE)

Page 250: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

FE

FEFE

PERFORMANCE ANALYSIS

BOMAN GRAPH COLORING

orc, ljn: social networks

rca: road network

Pushing fasterFewer cache/TLB

missesFewer reads/writes

Shared-

Memory

orc ljn rca

Frontier-Exploit (FE)

Page 251: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

FE

FEFE

PERFORMANCE ANALYSIS

BOMAN GRAPH COLORING

orc, ljn: social networks

rca: road network

Pushing fasterFewer cache/TLB

missesFewer reads/writes

Shared-

Memory

orc ljn rca

Frontier-Exploit (FE)

Page 252: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

FE

FEFE

PERFORMANCE ANALYSIS

BOMAN GRAPH COLORING

orc, ljn: social networks

rca: road network

Pushing fasterFewer cache/TLB

missesFewer reads/writes

Shared-

Memory

orc ljn rca

Frontier-Exploit (FE)

Page 253: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

BOMAN GRAPH COLORING + FE

orc, ljn: social networks

rca: road network

FE: Frontier-Exploit (+

more, check the paper)

Shared-

Memory

FE

FEFE

Page 254: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

BOMAN GRAPH COLORING + FE

orc, ljn: social networks

rca: road network

Performance

improvementsFewer iterations

Fewer reads/writes

FE: Frontier-Exploit (+

more, check the paper)

Shared-

Memory

FE

FEFE

Page 255: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Page 256: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Before we move to

Distributed-Memory

analyses…

Page 257: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Before we move to

Distributed-Memory

analyses…

…a brief recap on

Remote Memory Access

(RMA)

Page 258: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

REMOTE MEMORY ACCESS (RMA) PROGRAMMING

Page 259: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

REMOTE MEMORY ACCESS (RMA) PROGRAMMING

Memory

Process p

A

Page 260: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

REMOTE MEMORY ACCESS (RMA) PROGRAMMING

Memory Memory

Process p Process q

A

BB

Page 261: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

REMOTE MEMORY ACCESS (RMA) PROGRAMMING

Memory Memory

Cray

BlueWaters

Process p Process q

A

BB

Page 262: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

REMOTE MEMORY ACCESS (RMA) PROGRAMMING

Memory Memory

Cray

BlueWaters

Process p Process q

A

BB

Page 263: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

REMOTE MEMORY ACCESS (RMA) PROGRAMMING

Memory Memory

Cray

BlueWaters

Process p Process q

A

BB

Page 264: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

REMOTE MEMORY ACCESS (RMA) PROGRAMMING

Memory Memory

Cray

BlueWaters

Process p Process q

A

BB

Page 265: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

REMOTE MEMORY ACCESS (RMA) PROGRAMMING

Memory Memory

Cray

BlueWaters

put

Process p Process q

A

BB

AA

Page 266: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

REMOTE MEMORY ACCESS (RMA) PROGRAMMING

Memory Memory

Cray

BlueWaters

put

Process p Process q

A

Bget

B

A

B

A

B

Page 267: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

REMOTE MEMORY ACCESS (RMA) PROGRAMMING

Memory Memory

Cray

BlueWaters

put

Process p Process q

A

Bget

B

A

B

flush

A

B

Page 268: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

REMOTE MEMORY ACCESS (RMA) PROGRAMMING

Memory Memory

Cray

BlueWaters

put

Process p Process q

A

Bget

B

A

B

flush

A

B

Page 269: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

REMOTE MEMORY ACCESS (RMA) PROGRAMMING

Memory Memory

Cray

BlueWaters

put

Process p Process q

A

Bget

B

A

B

flush

A

B

Pushing/Pulling

done with RMA

Page 270: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

PAGERANK

Kronecker graphs

Distributed

-Memory

Page 271: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

PAGERANK

Kronecker graphs

𝑛 = 225, 𝑚 = 227 𝑛 = 227, 𝑚 = 229

Distributed

-Memory

Page 272: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

PAGERANK

Kronecker graphs

𝑛 = 225, 𝑚 = 227 𝑛 = 227, 𝑚 = 229

Distributed

-MemoryMsg-Passing fastest

Page 273: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

PAGERANK

Kronecker graphs

𝑛 = 225, 𝑚 = 227 𝑛 = 227, 𝑚 = 229

Distributed

-Memory

Pulling incurs

more

communication

while pushing

expensive

underlying

locking

Msg-Passing fastest

Page 274: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

PAGERANK

Kronecker graphs

𝑛 = 225, 𝑚 = 227 𝑛 = 227, 𝑚 = 229

Distributed

-Memory

Collectives: combines

pushing and pulling

Pulling incurs

more

communication

while pushing

expensive

underlying

locking

Msg-Passing fastest

Page 275: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

TRIANGLE COUNTING Distributed

-Memory

orc, ljn: social networks

Page 276: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

TRIANGLE COUNTING Distributed

-Memory

orc, ljn: social networks

RMA fastest

Page 277: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

TRIANGLE COUNTING Distributed

-Memory

orc, ljn: social networks

Msg-Passing now incurs

more communication

RMA fastest

Page 278: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

TRIANGLE COUNTING Distributed

-Memory

orc, ljn: social networks

Msg-Passing now incurs

more communication

Pushing does

not require the

expensive

locking protocol

(Cray offers fast

remote atomics

for integers)

RMA fastest

Page 279: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

RESEARCH QUESTIONS

How do they differ in

complexity?

What are push-pull

formulations of other

algorithms?Can we apply the

push-pull dichotomy

to other graph

algorithms? What pushing vs.

pulling really is?

What is performance?

What is the impact of the

programming model?

environment?

Is pushing or pulling

faster? When and why?How effective are

the incorporated

strategies?

Page 280: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

RESEARCH QUESTIONS

How do they differ in

complexity?

What are push-pull

formulations of other

algorithms?Can we apply the

push-pull dichotomy

to other graph

algorithms? What pushing vs.

pulling really is?

What is performance?

What is the impact of the

programming model?

environment?

Is pushing or pulling

faster? When and why?How effective are

the incorporated

strategies?

Page 281: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

RESEARCH QUESTIONS

How do they differ in

complexity?

What are push-pull

formulations of other

algorithms?Can we apply the

push-pull dichotomy

to other graph

algorithms? What pushing vs.

pulling really is?

What is performance?

What is the impact of the

programming model?

environment?

Is pushing or pulling

faster? When and why?How effective are

the incorporated

strategies?

Page 282: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

RESEARCH QUESTIONS

How do they differ in

complexity?

What are push-pull

formulations of other

algorithms?Can we apply the

push-pull dichotomy

to other graph

algorithms? What pushing vs.

pulling really is?

What is performance?

What is the impact of the

programming model?

environment?

Is pushing or pulling

faster? When and why?How effective are

the incorporated

strategies?

Page 283: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

RESEARCH QUESTIONS

How do they differ in

complexity?

What are push-pull

formulations of other

algorithms?Can we apply the

push-pull dichotomy

to other graph

algorithms? What pushing vs.

pulling really is?

What is performance?

What is the impact of the

programming model?

environment?

Is pushing or pulling

faster? When and why?How effective are

the incorporated

strategies?

To Push or To Pull?

Page 284: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

RESEARCH QUESTIONS

How do they differ in

complexity?

What are push-pull

formulations of other

algorithms?Can we apply the

push-pull dichotomy

to other graph

algorithms? What pushing vs.

pulling really is?

What is performance?

What is the impact of the

programming model?

environment?

Is pushing or pulling

faster? When and why?How effective are

the incorporated

strategies?

To Push or To Pull?If the complexities

match: pull

Page 285: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

RESEARCH QUESTIONS

How do they differ in

complexity?

What are push-pull

formulations of other

algorithms?Can we apply the

push-pull dichotomy

to other graph

algorithms? What pushing vs.

pulling really is?

What is performance?

What is the impact of the

programming model?

environment?

Is pushing or pulling

faster? When and why?How effective are

the incorporated

strategies?

To Push or To Pull?If the complexities

match: pull

Otherwise: push

Page 286: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PUSHING VS. PULLING

RESEARCH QUESTIONS

How do they differ in

complexity?

What are push-pull

formulations of other

algorithms?Can we apply the

push-pull dichotomy

to other graph

algorithms? What pushing vs.

pulling really is?

What is performance?

What is the impact of the

programming model?

environment?

Is pushing or pulling

faster? When and why?How effective are

the incorporated

strategies?

To Push or To Pull?If the complexities

match: pull

Otherwise: push

+ check

your

hardware

Page 287: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Page 288: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Page 289: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

CONCLUSIONS

Page 290: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Push vs. Pull: Applicability

CONCLUSIONS

Page 291: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Push vs. Pull: Applicability

CONCLUSIONS

Push vs. Pull: Dichotomy

Page 292: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Push vs. Pull: Applicability

CONCLUSIONS

Push vs. Pull: Dichotomy

Push vs. Pull: Formulations

Page 293: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Push vs. Pull: Applicability

CONCLUSIONS

Push vs. Pull:

Complexity

Push vs. Pull: Dichotomy

Push vs. Pull: Formulations

Page 294: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Push vs. Pull: Applicability

CONCLUSIONS

Push vs. Pull:

ComplexityPerformance

& space analysis +

guidelines

Push vs. Pull: Dichotomy

Push vs. Pull: Formulations

Page 295: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Push vs. Pull: Applicability

CONCLUSIONS

Push vs. Pull:

ComplexityPerformance

& space analysis +

guidelines

Push vs. Pull: Dichotomy

Push vs. Pull: FormulationsThank you

for your attention

Page 296: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Page 297: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

Backup slides

Page 298: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

Page 299: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

#vertices

Page 300: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

#vertices

Page 301: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#vertices

Page 302: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#vertices

Page 303: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#vertices

Page 304: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#vertices

Page 305: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#vertices

Page 306: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#vertices

Page 307: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#vertices

Page 308: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#vertices

Page 309: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#verticesmaximum

#colors

Page 310: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#verticesmaximum

#colors

Page 311: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#verticesmaximum

#colors

Page 312: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#verticesmaximum

#colors

Page 313: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#verticesmaximum

#colors

Page 314: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#verticesmaximum

#colors

Page 315: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#verticesmaximum

#colors

Page 316: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#verticesmaximum

#colors

Page 317: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#verticesmaximum

#colors

Page 318: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#verticesmaximum

#colors

Page 319: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#verticesmaximum

#colors

Page 320: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#verticesmaximum

#colors

𝑣’s neighbors

Page 321: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#verticesmaximum

#colors

𝑣’s neighbors

Page 322: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#verticesmaximum

#colors

𝑣’s neighbors

Page 323: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

Pushing

We care

explicitly about

partitioning now

#verticesmaximum

#colors

𝑣’s neighbors

Page 324: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

Pushing

We care

explicitly about

partitioning now

#verticesmaximum

#colors

𝑣’s neighbors

Page 325: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#verticesmaximum

#colors

𝑣’s neighbors

Page 326: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#verticesmaximum

#colors

𝑣’s neighbors

Page 327: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#verticesmaximum

#colors

𝑣’s neighbors

Page 328: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

We care

explicitly about

partitioning now

#verticesmaximum

#colors

𝑣’s neighbors

Page 329: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

Pulling

We care

explicitly about

partitioning now

#verticesmaximum

#colors

𝑣’s neighbors

Page 330: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

Pulling

We care

explicitly about

partitioning now

#verticesmaximum

#colors

𝑣’s neighbors

Page 331: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

Pulling

We care

explicitly about

partitioning now

#verticesmaximum

#colors

𝑣’s neighbors

Page 332: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

GRAPH COLORING

BOMAN ET AL. [1]

: a write conflict

: a read conflict

: integer

[1] E. G. Boman et al. A scalable parallel graph coloring algorithm for distributed memory computers. Euro-Par 2005.

Pulling

We care

explicitly about

partitioning now

#verticesmaximum

#colors

𝑣’s neighbors

Page 333: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

TRIANGLE COUNTING

Page 334: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

TRIANGLE COUNTING

Page 335: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

TRIANGLE COUNTING

orc, pok, ljn: social networks

rca: road network

am: amazon graph

Page 336: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

TRIANGLE COUNTING

Shared-

Memory

orc, pok, ljn: social networks

rca: road network

am: amazon graph

Page 337: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

TRIANGLE COUNTING

Shared-

Memory

orc, pok, ljn: social networks

rca: road network

am: amazon graph

Pulling faster

Page 338: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

TRIANGLE COUNTING

Shared-

Memory

orc, pok, ljn: social networks

rca: road network

am: amazon graph

Pulling faster

No atomicsFewer cache

misses

Page 339: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

BOMAN GRAPH COLORING + GRS + FE

orc, ljn: social networks

rca: road network

Performance

improvements Fewer iterations

Fewer reads/writes

GrS+FE: Greedy-Switch

+ Frontier-Exploit

GS: Generic-Switch

Shared-

Memory

Page 340: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

∆-STEPPING

orc: social network

am: Amazon graph

Shared-

Memory

Page 341: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

∆-STEPPING

orc: social network

am: Amazon graph

Shared-

Memory

orc am orc

Page 342: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

∆-STEPPING

orc: social network

am: Amazon graph

Pushing faster

Shared-

Memory

orc am orc

Page 343: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

∆-STEPPING

orc: social network

am: Amazon graph

Pushing faster

Fewer

reads/writes

Shared-

Memory

orc am orc

Page 344: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

∆-STEPPING

orc: social network

am: Amazon graph

Pushing faster

Fewer

reads/writes

Shared-

Memory

The larger ∆, the smaller the

difference between pushing

and pulling

orc am orc

Page 345: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

BORUVKA MST

orc: social network

Shared-

Memory

orc

Page 346: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

BORUVKA MST

orc: social network

Shared-

Memory

“Find minimum”

orc

“Build merge tree” “Merge”

Page 347: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

BORUVKA MST

orc: social network

Pushing faster

Shared-

Memory

“Find minimum”

orc

“Build merge tree” “Merge”

Pushing ≈ pullingPulling faster

Page 348: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

BORUVKA MST

orc: social network

Pushing faster

Shared-

Memory

Pulling is

cumulatively faster

“Find minimum”

orc

“Build merge tree” “Merge”

Pushing ≈ pullingPulling faster

Page 349: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

BORUVKA MST

orc: social network

Pushing faster

No expensive

write conflicts

Shared-

Memory

Pulling is

cumulatively faster

“Find minimum”

orc

“Build merge tree” “Merge”

Pushing ≈ pullingPulling faster

Page 350: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

PAGERANK

Shared-

Memory

orc, pok, ljn: social networks

rca: road network

am: amazon graph

Page 351: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

PAGERANK

Pulling faster in

sparse graphs by

≈3%

Many cache misses

dominate performance

Shared-

Memory

orc, pok, ljn: social networks

rca: road network

am: amazon graph

Page 352: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

PAGERANK

Pulling faster in

sparse graphs by

≈3%

Many cache misses

dominate performance

Shared-

Memory

orc, pok, ljn: social networks

rca: road network

am: amazon graph

Pulling faster in

dense graphs by

≈19%

Page 353: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

PAGERANK

Pulling faster in

sparse graphs by

≈3%

No atomicsMany cache misses

dominate performance

Shared-

Memory

orc, pok, ljn: social networks

rca: road network

am: amazon graph

Pulling faster in

dense graphs by

≈19%

Page 354: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

PAGERANK + PA

Shared-

Memory

orc, pok, ljn: social networks

rca: road network

am: amazon graph

PA: Partition-Awareness

Page 355: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

PAGERANK + PA

Fewer atomics (thanks

to PA) and still fewer

cache misses

Shared-

Memory

orc, pok, ljn: social networks

rca: road network

am: amazon graph

Pushing now faster

in dense graphs by

≈24% PA: Partition-Awareness

Page 356: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

PAGERANK + PA

Pushing+PA the

slowest for sparse

graphs

Fewer atomics (thanks

to PA) and still fewer

cache misses

Shared-

Memory

orc, pok, ljn: social networks

rca: road network

am: amazon graph

Pushing now faster

in dense graphs by

≈24% PA: Partition-Awareness

Page 357: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

PAGERANK + PA

Pushing+PA the

slowest for sparse

graphs

Fewer atomics (thanks

to PA) and still fewer

cache misses

Fewer atomics dominated

by more branches

Shared-

Memory

orc, pok, ljn: social networks

rca: road network

am: amazon graph

Pushing now faster

in dense graphs by

≈24% PA: Partition-Awareness

Page 358: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

PAGERANK

Kronecker graphs

Distributed

-Memory

Page 359: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

PAGERANK

Kronecker graphs

𝑛 = 225, 𝑚 = 227 𝑛 = 227, 𝑚 = 229

Distributed

-Memory

Page 360: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

PAGERANK

Kronecker graphs

𝑛 = 225, 𝑚 = 227 𝑛 = 227, 𝑚 = 229

Distributed

-MemoryMsg-Passing fastest

Page 361: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

PAGERANK

Kronecker graphs

𝑛 = 225, 𝑚 = 227 𝑛 = 227, 𝑚 = 229

Distributed

-Memory

Overheads from buffer

preparation

Msg-Passing fastest

Page 362: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

PAGERANK

Kronecker graphs

𝑛 = 225, 𝑚 = 227 𝑛 = 227, 𝑚 = 229

Distributed

-Memory

Overheads from buffer

preparation

…but pulling incurs more communication while

pushing expensive underlying locking

Msg-Passing fastest

Page 363: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

PAGERANK

Kronecker graphs

𝑛 = 225, 𝑚 = 227 𝑛 = 227, 𝑚 = 229

Distributed

-Memory

Collectives: combines

pushing and pulling

Overheads from buffer

preparation

…but pulling incurs more communication while

pushing expensive underlying locking

Msg-Passing fastest

Page 364: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

PAGERANK

Kronecker graphs

𝑛 = 225, 𝑚 = 227 𝑛 = 227, 𝑚 = 229

Distributed

-Memory

Collectives: combines

pushing and pulling

Overheads from buffer

preparation

…but pulling incurs more communication while

pushing expensive underlying locking

Msg-Passing fastest

𝑂(1)

𝑂((𝑛 መ𝑑)/𝑃)

Storage per process

Page 365: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

TRIANGLE COUNTING Distributed

-Memory

orc, ljn: social networks

Storage per process

Page 366: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

TRIANGLE COUNTING Distributed

-Memory

orc, ljn: social networks

RMA fastest

Storage per process

Page 367: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

TRIANGLE COUNTING Distributed

-Memory

orc, ljn: social networks

Msg-Passing incurs now

more communication

RMA fastest

Storage per process

Page 368: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

TRIANGLE COUNTING Distributed

-Memory

orc, ljn: social networks

Msg-Passing incurs now

more communication

Pushing does not require the expensive locking

protocol (Cray offers fast remote atomics for integers)

RMA fastest

Storage per process

Page 369: spcl.inf.ethz.chspcl.inf.ethz.ch/Publications/.pdf/pushpull-slides.pdf · spcl.inf.ethz.ch @spcl_eth 1. Forward traversals BETWEENNESS CENTRALITY BRANDES [1] [1] U. Brandes. A faster

spcl.inf.ethz.ch

@spcl_eth

PERFORMANCE ANALYSIS

TRIANGLE COUNTING Distributed

-Memory

orc, ljn: social networks

Msg-Passing incurs now

more communication

Pushing does not require the expensive locking

protocol (Cray offers fast remote atomics for integers)

RMA fastest

𝑂( መ𝑑)

Storage per process


Recommended