A Parallel Auxiliary Grid Algebraic Multigrid Method for Graphic Processing Units
In this paper, we develop a new parallel auxiliary grid algebraic multigrid (AMG) method to leverage the power of graphic processing units (GPUs). In the construction of the hierarchical coarse grid, we use a simple and fixed coarsening procedure based on a region quadtree generated from an auxiliary grid. This allows us to explicitly control the sparsity patterns and operator complexities of the AMG solver. This feature provides (nearly) optimal load balancing and predictable communication patterns on shape regular grids, which makes our new algorithm suitable for parallel computing, especially on GPUs. We also design a parallel smoother based on the special coloring of the quadtree to accelerate the convergence rate and improve the parallel performance of this solver. Based on the CUDA toolkit [NVIDIA CUDA Programming Guide, NVIDIA Corp., 2010], we implemented our new parallel auxiliary grid AMG method on GPUs and the numerical results of this implementation demonstrate the efficiency of our new method for (nearly) isotropic problems. The results achieve an average speedup of over 4 on quasi-uniform grids and 2 on shape regular grids when compared to the AMG implementation in CUSP [M. Garland and N. Bell, CUSP: Generic Parallel Algorithms for Sparse Matrix and Graph Computations, http://cusplibrary.github.com/ (2010)].