English

Graphyti: A Semi-External Memory Graph Library for FlashGraph

Distributed, Parallel, and Cluster Computing 2019-07-09 v1 Databases

Abstract

Graph datasets exceed the in-memory capacity of most standalone machines. Traditionally, graph frameworks have overcome memory limitations through scale-out, distributing computing. Emerging frameworks avoid the network bottleneck of distributed data with Semi-External Memory (SEM) that uses a single multicore node and operates on graphs larger than memory. In SEM, O(m)\mathcal{O}(m) data resides on disk and O(n)\mathcal{O}(n) data in memory, for a graph with nn vertices and mm edges. For developers, this adds complexity because they must explicitly encode I/O within applications. We present principles that are critical for application developers to adopt in order to achieve state-of-the-art performance, while minimizing I/O and memory for algorithms in SEM. We present them in Graphyti, an extensible parallel SEM graph library built on FlashGraph and available in Python via pip. In SEM, Graphyti achieves 80% of the performance of in-memory execution and retains the performance of FlashGraph, which outperforms distributed engines, such as PowerGraph and Galois.

Keywords

Cite

@article{arxiv.1907.03335,
  title  = {Graphyti: A Semi-External Memory Graph Library for FlashGraph},
  author = {Disa Mhembere and Da Zheng and Carey E. Priebe and Joshua T. Vogelstein and Randal Burns},
  journal= {arXiv preprint arXiv:1907.03335},
  year   = {2019}
}
R2 v1 2026-06-23T10:14:15.814Z