Recent studies show that graph processing systems on a single machine can achieve competitive performance compared with cluster-based graph processing systems. In this paper, we present NXgraph, an efficient graph processing system on a single machine. With the abstraction of vertex intervals and edge sub-shards, we propose the Destination-Sorted Sub-Shard (DSSS) structure to store a graph. By dividing vertices and edges into intervals and sub-shards, NXgraph ensures graph data access locality and enables fine-grained scheduling. By sorting edges within each sub-shard according to their destination vertices, NXgraph reduces write conflicts among different threads and achieves a high degree of parallelism. Then, three updating strategies, i.e., Single-Phase Update (SPU), Double-Phase Update (DPU), and Mixed-Phase Update (MPU), are proposed in this paper. NXgraph can adaptively choose the fastest strategy for different graph problems according to the graph size and the available memory resources to fully utilize the memory space and reduce the amount of data transfer. All these three strategies exploit streamlined disk access pattern. Extensive experiments on three real-world graphs and five synthetic graphs show that NXgraph can outperform GraphChi, TurboGraph, VENUS, and GridGraph in various situations. Moreover, NXgraph, running on a single commodity PC, can finish an iteration of PageRank on the Twitter graph with 1.5 billion edges in 2.05 seconds; while PowerGraph, a distributed graph processing system, needs 3.6s to finish the same task.
翻译:最近的研究表明, 一台机器上的图形处理系统能够实现与基于集束的图形处理系统相比的竞争性性能。 在本文中, 我们展示了NXgraph, 这是一种在一台机器上高效的图形处理系统。 随着顶端间隔和边缘子碎片的抽象化, 我们提议了目的地 Sort- Shard (DSS) 结构以存储一个图形。 通过将脊椎和边缘分解成间距和子碎片, NXgraph 可以确保图形数据访问地点, 并能够进行细微的排列。 通过根据每个子硬体的目的地的顶点对边缘进行排序, NXgraph 将一个高效的图形处理系统进行写法冲突, 并实现高度的平行化。 然后, 我们提出三个更新战略, 即单阶段更新的子系统更新, 双阶段更新(DPU) 和混合阶段更新(MPU) 。 NXgraphraph 可以根据图表大小和现有存储资源, 来充分利用存储空间, 并减少数据传输的数量。 所有这些战略, NX 都利用了Slifrial- Streal Streal lifal lifal lifal lifal 工作, 。