Distributed Solvers

Many of Ginkgo’s solver support distributed systems. For them, solving a distributed system is exactly the same as for a non-distributed system. Only the solver has to be generated from a gko::experimental::distributed::Matrix, and then applied to gko::experimental::distributed::Vectors. If a preconditioner is used, it also has to support distributed systems. A brief example is shown here:

std::shared_ptr<gko::experimental::distributed::Matrix<>> A = ...;
std::unique_ptr<gko::experimental::distributed::Vector<>> b = ...;
std::unique_ptr<gko::experimental::distributed::Vector<>> x = ...;

auto solver = gko::solver::Cg<>::build().on(exec)->generate(A);
solver->apply(b, x);

List of Supported Solvers

These solvers are available for distributed systems.

  • BiCGStab

  • (F)GMRES

  • (F)CG

  • CGS

  • GCR

  • IR

  • MultiGrid, depends on the parameters

List of Unsupported Solvers

These solvers are not available for distributed systems.

  • BiCG

  • CB-GMRES

  • Direct

  • IDR

  • triangular solver