A parallel auxiliary grid algebraic multigrid method for graphic processing units

Lu Wang, Xiaozhe Hu, Jonathan Cohen, Jinchao Xu

Research output: Contribution to journalArticlepeer-review

10 Scopus citations

Abstract

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)]. © 2013 Society for Industrial and Applied Mathematics.
Original languageEnglish (US)
JournalSIAM Journal on Scientific Computing
Volume35
Issue number3
DOIs
StatePublished - Jan 1 2013
Externally publishedYes

ASJC Scopus subject areas

  • Computational Mathematics
  • Theoretical Computer Science
  • Applied Mathematics

Fingerprint

Dive into the research topics of 'A parallel auxiliary grid algebraic multigrid method for graphic processing units'. Together they form a unique fingerprint.

Cite this