• DocumentCode
    16748
  • Title

    Medusa: Simplified Graph Processing on GPUs

  • Author

    Jianlong Zhong ; Bingsheng He

  • Author_Institution
    Sch. of Comput. Eng., Nanyang Technol. Univ., Singapore, Singapore
  • Volume
    25
  • Issue
    6
  • fYear
    2014
  • fDate
    Jun-14
  • Firstpage
    1543
  • Lastpage
    1552
  • Abstract
    Graphs are common data structures for many applications, and efficient graph processing is a must for application performance. Recently, the graphics processing unit (GPU) has been adopted to accelerate various graph processing algorithms such as BFS and shortest paths. However, it is difficult to write correct and efficient GPU programs and even more difficult for graph processing due to the irregularities of graph structures. To simplify graph processing on GPUs, we propose a programming framework called Medusa which enables developers to leverage the capabilities of GPUs by writing sequential C/C++ code. Medusa offers a small set of user-defined APIs and embraces a runtime system to automatically execute those APIs in parallel on the GPU. We develop a series of graph-centric optimizations based on the architecture features of GPUs for efficiency. Additionally, Medusa is extended to execute on multiple GPUs within a machine. Our experiments show that 1) Medusa greatly simplifies implementation of GPGPU programs for graph processing, with many fewer lines of source code written by developers and 2) the optimization techniques significantly improve the performance of the runtime system, making its performance comparable with or better than manually tuned GPU graph operations.
  • Keywords
    C++ language; application program interfaces; data structures; graph theory; graphics processing units; optimisation; source code (software); API; GPGPU programs; GPU graph operations; Medusa; data structures; graph processing; graph-centric optimizations; graphics processing unit; runtime system; sequential C-C++ code; source code; Algorithm design and analysis; Data structures; Graphics processing units; Memory management; Optimization; Parallel processing; Programming; GPGPU; GPU programming; graph processing; runtime framework;
  • fLanguage
    English
  • Journal_Title
    Parallel and Distributed Systems, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    1045-9219
  • Type

    jour

  • DOI
    10.1109/TPDS.2013.111
  • Filename
    6497047