PETSc
PETSc is a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It supports MPI, and GPUs through CUDA or OpenCL, as well as hybrid MPI-GPU parallelism. The supported libraries include f2cblaslapack, superlu, ptso, metis, parmetis, mumps, hypre and scalapack.