 |
Ginkgo
Generated from pipelines/2011557978 branch based on develop. Ginkgo version 1.11.0
A numerical linear algebra library targeting many-core architectures
|
5 #ifndef GKO_PUBLIC_CORE_DISTRIBUTED_ROW_GATHERER_HPP_
6 #define GKO_PUBLIC_CORE_DISTRIBUTED_ROW_GATHERER_HPP_
9 #include <ginkgo/config.hpp>
15 #include <ginkgo/core/base/dense_cache.hpp>
16 #include <ginkgo/core/base/lin_op.hpp>
17 #include <ginkgo/core/base/mpi.hpp>
18 #include <ginkgo/core/distributed/base.hpp>
19 #include <ginkgo/core/distributed/collective_communicator.hpp>
20 #include <ginkgo/core/distributed/index_map.hpp>
24 namespace experimental {
25 namespace distributed {
54 template <
typename LocalIndexType =
int32>
110 std::shared_ptr<const mpi::CollectiveCommunicator>
143 template <
typename GlobalIndexType =
int64,
144 typename = std::enable_if_t<
sizeof(GlobalIndexType) >=
145 sizeof(LocalIndexType)>>
146 static std::unique_ptr<RowGatherer>
create(
147 std::shared_ptr<const Executor> exec,
148 std::shared_ptr<const mpi::CollectiveCommunicator> coll_comm,
151 return std::unique_ptr<RowGatherer>(
152 new RowGatherer(std::move(exec), std::move(coll_comm), imap));
158 static std::unique_ptr<RowGatherer>
create(
175 template <
typename GlobalIndexType>
177 std::shared_ptr<const mpi::CollectiveCommunicator> coll_comm,
187 std::shared_ptr<const mpi::CollectiveCommunicator> coll_comm_;
198 #endif // GKO_PUBLIC_CORE_DISTRIBUTED_ROW_GATHERER_HPP_
The distributed::RowGatherer gathers the rows of distributed::Vector that are located on other proces...
Definition: row_gatherer.hpp:55
dim< 2 > get_size() const
Returns the size of the row gatherer.
A PolymorphicObject is the abstract base for all "heavy" objects in Ginkgo that behave polymorphicall...
Definition: polymorphic_object.hpp:52
std::size_t size_type
Integral type used for allocation quantities.
Definition: types.hpp:90
This mixin is used to enable a default PolymorphicObject::copy_from() implementation for objects that...
Definition: polymorphic_object.hpp:743
The request class is a light, move-only wrapper around the MPI_Request handle.
Definition: mpi.hpp:331
The Ginkgo namespace.
Definition: abstract_factory.hpp:20
size_type get_num_send_idxs() const
Returns the number of (local) row indices.
A thin wrapper of MPI_Comm that supports most MPI calls.
Definition: mpi.hpp:419
static std::unique_ptr< RowGatherer > create(std::shared_ptr< const Executor > exec, std::shared_ptr< const mpi::CollectiveCommunicator > coll_comm, const index_map< LocalIndexType, GlobalIndexType > &imap)
Creates a distributed::RowGatherer from a given collective communicator and index map.
Definition: row_gatherer.hpp:146
This class is used for function parameters in the place of raw pointers.
Definition: utils_helper.hpp:41
const LocalIndexType * get_const_send_idxs() const
Read access to the (local) rows indices.
std::shared_ptr< const mpi::CollectiveCommunicator > get_collective_communicator() const
Get the used collective communicator.
std::int64_t int64
64-bit signed integral type.
Definition: types.hpp:113
mpi::request apply_async(ptr_param< const LinOp > b, ptr_param< LinOp > x) const
Asynchronous version of LinOp::apply.
A base class for distributed objects.
Definition: base.hpp:32
This class defines mappings between global and local indices.
Definition: index_map.hpp:68
This mixin inherits from (a subclass of) PolymorphicObject and provides a base implementation of a ne...
Definition: polymorphic_object.hpp:667