Search code examples
c++cparallel-processingmpimatrix-decomposition

Libraries for parallel distributed cholesky decomposition in c/c++ in mpi environment?


What libraries are available for parallel distributed cholesky decomposition of dense matrices in C/C++ in mpi environment?

I've found the ScaLAPACK library, and this might be the solution I'm looking for. It seems that it's a bit fiddly to call though, lots of Fortran <-> C conversions to do, which makes me think that maybe it is not widely used, and therefore maybe there are some other libraries that are used instead?

Alternatively, are there some wrappers for ScaLAPACK that make it relatively not too painful to use in a C or C++ environment, when one is already using MPI, and MPI has already been initialized in the program?


Solution

  • Are these dense or sparse matrices?

    Trilinos is a huge library for parallel scientific computation. The sub-package Amesos can link to Scalapack for parallel, direct solution of dense systems and to UMFPACK, SuperLU or MUMPS for sparse systems. Trilinos is mostly in C++, but there are Python bindings if that's your taste. It might be overkill, but it'll get the job done.