gko::experimental::distributed#
Distributed-memory linear algebra primitives. Every type here is
partitioned across MPI ranks: each rank owns a contiguous slice of the
global rows and exchanges off-rank columns through halo communication
during apply. All types are templated on
(ValueType, LocalIndexType, GlobalIndexType) and require the build to
include MPI (GINKGO_BUILD_MPI).
For background and a worked example see the Distributed concept page.
Distributed types#
Matrix— distributed sparse matrix, stored as an on-rank “diagonal” block plus a compressed “off-diagonal” block of remote columns.Vector— distributed dense vector; each rank owns the rows that match the partition.Partition— ownership mapping: which global rows / columns belong to which rank.index_map— translation between global and local indices for the partitioned space.RowGatherer— communication primitive that fetches remote rows for the off-diagonal SpMV.DistributedBase— mixin that gives a type access to its MPI communicator.
Preconditioners#
preconditioner::Schwarz— additive Schwarz; applies any local solver per subdomain (rank), optionally with an L1 smoother and an algebraic coarse-grid correction.
Free functions#
assemble_rows_from_neighbors— sums up per-rank contributions to globally-owned rows so amatrix_dataassembled independently on each rank can be used to build a distributed matrix.