DocumentCode
1766448
Title
GPU-Aware MPI on RDMA-Enabled Clusters: Design, Implementation and Evaluation
Author
Hao Wang ; Potluri, Sreeram ; Bureddy, D. ; Rosales, Carlos ; Panda, Dhabaleswar K.
Author_Institution
Dept. of Comput. Sci. & Eng., Ohio State Univ., Columbus, OH, USA
Volume
25
Issue
10
fYear
2014
fDate
Oct. 2014
Firstpage
2595
Lastpage
2605
Abstract
Designing high-performance and scalable applications on GPU clusters requires tackling several challenges. The key challenge is the separate host memory and device memory, which requires programmers to use multiple programming models, such as CUDA and MPI, to operate on data in different memory spaces. This challenge becomes more difficult to tackle when non-contiguous data in multidimensional structures is used by real-world applications. These challenges limit the programming productivity and the application performance. We propose the GPU-Aware MPI to support data communication from GPU to GPU using standard MPI. It unifies the separate memory spaces, and avoids explicit CPU-GPU data movement and CPU/GPU buffer management. It supports all MPI datatypes on device memory with two algorithms: a GPU datatype vectorization algorithm and a vector based GPU kernel data pack and unpack algorithm. A pipeline is designed to overlap the non-contiguous data packing and unpacking on GPUs, the data movement on the PCIe, and the RDMA data transfer on the network. We incorporate our design with the open-source MPI library MVAPICH2 and optimize a production application: the multiphase 3D LBM. Besides the increase of programming productivity, we observe up to 19.9 percent improvement in application-level performance on 64 GPUs of the Oakley supercomputer.
Keywords
application program interfaces; file organisation; graphics processing units; libraries; mainframes; message passing; parallel machines; peripheral interfaces; public domain software; GPU clusters; GPU datatype vectorization algorithm; GPU-aware MPI; Oakley supercomputer; PCIe; RDMA data transfer; RDMA-enabled clusters; application-level performance; data communication; device memory; host memory; multidimensional structures; multiphase 3D LBM; noncontiguous data packing; noncontiguous data unpacking; open-source MPI library MVAPICH2; vector based GPU kernel data pack algorithm; vector based GPU kernel data unpack algorithm; Algorithm design and analysis; Data communication; Graphics processing units; Kernel; Memory management; Pipelines; Vectors; CUDA; GPU; InfiniBand; Lattice Boltzmann method; MPI; RDMA;
fLanguage
English
Journal_Title
Parallel and Distributed Systems, IEEE Transactions on
Publisher
ieee
ISSN
1045-9219
Type
jour
DOI
10.1109/TPDS.2013.222
Filename
6587715
Link To Document