|
mpi::request | apply_async (ptr_param< const LinOp > b, ptr_param< LinOp > x) const |
| Asynchronous version of LinOp::apply. More...
|
|
mpi::request | apply_async (ptr_param< const LinOp > b, ptr_param< LinOp > x, array< char > &workspace) const |
| Asynchronous version of LinOp::apply. More...
|
|
dim< 2 > | get_size () const |
| Returns the size of the row gatherer.
|
|
std::shared_ptr< const mpi::CollectiveCommunicator > | get_collective_communicator () const |
| Get the used collective communicator.
|
|
const LocalIndexType * | get_const_send_idxs () const |
| Read access to the (local) rows indices.
|
|
size_type | get_num_send_idxs () const |
| Returns the number of (local) row indices.
|
|
| RowGatherer (const RowGatherer &o) |
|
| RowGatherer (RowGatherer &&o) noexcept |
|
RowGatherer & | operator= (const RowGatherer &o) |
|
RowGatherer & | operator= (RowGatherer &&o) |
|
std::unique_ptr< RowGatherer< LocalIndexType > > | create_default (std::shared_ptr< const Executor > exec) const |
|
std::unique_ptr< RowGatherer< LocalIndexType > > | create_default () const |
|
std::unique_ptr< RowGatherer< LocalIndexType > > | clone (std::shared_ptr< const Executor > exec) const |
|
std::unique_ptr< RowGatherer< LocalIndexType > > | clone () const |
|
RowGatherer< LocalIndexType > * | copy_from (const PolymorphicObject *other) |
|
std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, RowGatherer< LocalIndexType > > * | copy_from (std::unique_ptr< Derived > &&other) |
|
std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, RowGatherer< LocalIndexType > > * | copy_from (const std::unique_ptr< Derived > &other) |
|
RowGatherer< LocalIndexType > * | copy_from (const std::shared_ptr< const PolymorphicObject > &other) |
|
RowGatherer< LocalIndexType > * | move_from (ptr_param< PolymorphicObject > other) |
|
RowGatherer< LocalIndexType > * | clear () |
|
PolymorphicObject & | operator= (const PolymorphicObject &) |
|
std::unique_ptr< PolymorphicObject > | create_default (std::shared_ptr< const Executor > exec) const |
| Creates a new "default" object of the same dynamic type as this object. More...
|
|
std::unique_ptr< PolymorphicObject > | create_default () const |
| Creates a new "default" object of the same dynamic type as this object. More...
|
|
std::unique_ptr< PolymorphicObject > | clone (std::shared_ptr< const Executor > exec) const |
| Creates a clone of the object. More...
|
|
std::unique_ptr< PolymorphicObject > | clone () const |
| Creates a clone of the object. More...
|
|
PolymorphicObject * | copy_from (const PolymorphicObject *other) |
| Copies another object into this object. More...
|
|
template<typename Derived , typename Deleter > |
std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, PolymorphicObject > * | copy_from (std::unique_ptr< Derived, Deleter > &&other) |
| Moves another object into this object. More...
|
|
template<typename Derived , typename Deleter > |
std::enable_if_t< std::is_base_of< PolymorphicObject, std::decay_t< Derived > >::value, PolymorphicObject > * | copy_from (const std::unique_ptr< Derived, Deleter > &other) |
| Copies another object into this object. More...
|
|
PolymorphicObject * | copy_from (const std::shared_ptr< const PolymorphicObject > &other) |
| Copies another object into this object. More...
|
|
PolymorphicObject * | move_from (ptr_param< PolymorphicObject > other) |
| Moves another object into this object. More...
|
|
PolymorphicObject * | clear () |
| Transforms the object into its default state. More...
|
|
std::shared_ptr< const Executor > | get_executor () const noexcept |
| Returns the Executor of the object. More...
|
|
void | add_logger (std::shared_ptr< const Logger > logger) override |
|
void | remove_logger (const Logger *logger) override |
|
void | remove_logger (ptr_param< const Logger > logger) |
|
const std::vector< std::shared_ptr< const Logger > > & | get_loggers () const override |
|
void | clear_loggers () override |
|
void | remove_logger (ptr_param< const Logger > logger) |
|
void | convert_to (result_type *result) const override |
| Converts the implementer to an object of type result_type. More...
|
|
void | move_to (result_type *result) override |
| Converts the implementer to an object of type result_type by moving data from this object. More...
|
|
void | convert_to (ptr_param< result_type > result) const |
|
void | move_to (ptr_param< result_type > result) |
|
| DistributedBase (const DistributedBase &other)=default |
|
| DistributedBase (DistributedBase &&other)=default |
|
DistributedBase & | operator= (const DistributedBase &) |
| Copy assignment that doesn't change the used mpi::communicator. More...
|
|
DistributedBase & | operator= (DistributedBase &&) noexcept |
| Move assignment that doesn't change the used mpi::communicator. More...
|
|
mpi::communicator | get_communicator () const |
| Access the used mpi::communicator. More...
|
|
template<typename LocalIndexType = int32>
class gko::experimental::distributed::RowGatherer< LocalIndexType >
The distributed::RowGatherer gathers the rows of distributed::Vector that are located on other processes.
Example usage:
{c++}
auto coll_comm = std::make_shared<mpi::neighborhood_communicator>(comm,
imap);
auto req = rg->apply_async(b, x);
req.wait();
- Note
- The output vector for the apply_async functions must use an executor that is compatible with the MPI implementation. In particular, if the MPI implementation is not GPU aware, then the output vector must use a CPU executor. Otherwise, an exception will be thrown.
- Template Parameters
-
LocalIndexType | the index type for the stored indices |