To Push or To Pull: On Reducing Communication and Synchronization in Graph Computations

10/30/2020
by   Maciej Besta, et al.
0

We reduce the cost of communication and synchronization in graph processing by analyzing the fastest way to process graphs: pushing the updates to a shared state or pulling the updates to a private state.We investigate the applicability of this push-pull dichotomy to various algorithms and its impact on complexity, performance, and the amount of used locks, atomics, and reads/writes. We consider 11 graph algorithms, 3 programming models, 2 graph abstractions, and various families of graphs. The conducted analysis illustrates surprising differences between push and pull variants of different algorithms in performance, speed of convergence, and code complexity; the insights are backed up by performance data from hardware counters.We use these findings to illustrate which variant is faster for each algorithm and to develop generic strategies that enable even higher speedups. Our insights can be used to accelerate graph processing engines or libraries on both massively-parallel shared-memory machines as well as distributed-memory systems.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/18/2020

Accelerating Irregular Computations with Hardware Transactional Memory and Active Messages

We propose Atomic Active Messages (AAM), a mechanism that accelerates ir...
research
03/18/2019

A New Frontier for Pull-Based Graph Processing

The trade-off between pull-based and push-based graph processing engines...
research
02/17/2023

On the convergence result of the gradient-push algorithm on directed graphs with constant stepsize

Gradient-push algorithm has been widely used for decentralized optimizat...
research
03/25/2021

ButterFly BFS – An Efficient Communication Pattern for Multi Node Traversals

Breadth-First Search (BFS) is a building block used in a wide array of g...
research
02/22/2023

Engineering a Distributed-Memory Triangle Counting Algorithm

Counting triangles in a graph and incident to each vertex is a fundament...
research
08/04/2021

UniGPS: A Unified Programming Framework for Distributed Graph Processing

The industry and academia have proposed many distributed graph processin...
research
02/19/2020

Specializing Coherence, Consistency, and Push/Pull for GPU Graph Analytics

This work provides the first study to explore the interaction of update ...

Please sign up or login with your details

Forgot password? Click here to reset