  We present and release in open source format a sparse linear solver which
efficiently exploits heterogeneous parallel computers. The solver can be easily
integrated into scientific applications that need to solve large and sparse
linear systems on modern parallel computers made of hybrid nodes hosting NVIDIA
Graphics Processing Unit (GPU) accelerators.
  The work extends our previous efforts in the exploitation of a single GPU
accelerator and proposes an implementation, based on the hybrid MPI-CUDA
software environment, of a Krylov-type linear solver relying on an efficient
Algebraic MultiGrid (AMG) preconditioner already available in the BootCMatchG
library. Our design for the hybrid implementation has been driven by the best
practices for minimizing data communication overhead when multiple GPUs are
employed, yet preserving the efficiency of the single GPU kernels. Strong and
weak scalability results on well-known benchmark test cases of the new version
of the library are discussed. Comparisons with the Nvidia AmgX solution show an
improvement of up to 2.0x in the solve phase.
