Puffin: Graph Processing System on Multi-GPUs

2017 
Multi-GPUs nodes are becoming the platform of choice for graph processing. However, in the multiple GPUs environment, there are two main challenges in designing a graph processing system. First, the system suffers from huge communication overhead. GPUs and CPUs are connected through PCIe, whose bandwidth is far smaller than that of GPU memory. Second, the system is developed based on BSP (Bulk Synchronous Parallel) model, which results in heavy thread synchronization overhead and low resource utilization. Aiming to solve the above problems, we design a graph processing system based on multi-GPUs called Puffin. Puffin proposes a novel data representation, which meets our programming needs and has minimum storage space occupancy. Our system achieves overlap of communication and computation by developing an efficient task management scheme, which divides the task and manages the order of different kinds of tasks. Puffin also provides two different programming models and some optimization strategies to implement graph algorithms. Our experiment shows that Puffin gets significant performance improvement over other state-of-the-art approaches on GPU(s), such as Cusha and Gunrock. In addition, Puffin exhibits good scalability, specially for compute-intensive applications.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    24
    References
    0
    Citations
    NaN
    KQI
    []