Log(Graph): A Near-Optimal High-Performance Graph Representation

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

Today's graphs used in domains such as machine learning or social network analysis may contain hundreds of billions of edges. Yet, they are not necessarily stored efficiently, and standard graph representations such as adjacency lists waste a significant number of bits while graph compression schemes such as WebGraph often require time-consuming decompression. To address this, we propose Log(Graph): a graph representation that combines high compression ratios with very low-overhead decompression to enable cheaper and faster graph processing. The key idea is to encode a graph so that the parts of the representation approach or match the respective storage lower bounds. We call our approach "graph logarithmization" because these bounds are usually logarithmic. Our high-performance Log(Graph) implementation based on modern bitwise operations and state-of-the-art succinct data structures achieves high compression ratios as well as performance. For example, compared to the tuned Graph Algorithm Processing Benchmark Suite (GAPBS), it reduces graph sizes by 20-35 reducing amounts of transferred data. It approaches the compression ratio of the established WebGraph compression library while enabling speedups of up to more than 2x. Log(Graph) can improve the design of various graph processing engines or libraries on single NUMA nodes as well as distributed-memory systems.

READ FULL TEXT

page 2

page 7

page 11

page 14

page 17

page 19

page 21

research
12/18/2019

Slim Graph: Practical Lossy Graph Compression for Approximate Graph Processing, Storage, and Analytics

We propose Slim Graph: the first programming model and framework for pra...
research
09/02/2020

Zuckerli: A New Compressed Representation for Graphs

Zuckerli is a scalable compression system meant for large real-world gra...
research
09/18/2023

LogShrink: Effective Log Compression by Leveraging Commonality and Variability of Log Data

Log data is a crucial resource for recording system events and states du...
research
06/05/2018

Graph Compression Using Pattern Matching Techniques

Graphs can be used to represent a wide variety of data belonging to diff...
research
07/05/2021

Partition and Code: learning how to compress graphs

Can we use machine learning to compress graph data? The absence of order...
research
10/19/2020

SlimSell: A Vectorizable Graph Representation for Breadth-First Search

Vectorization and GPUs will profoundly change graph processing. Traditio...
research
04/03/2017

Optimizing Communication by Compression for Multi-GPU Scalable Breadth-First Searches

The Breadth First Search (BFS) algorithm is the foundation and building ...

Please sign up or login with your details

Forgot password? Click here to reset