|
| DenseCommunicator (const DenseCommunicator &other)=default |
|
| DenseCommunicator (DenseCommunicator &&other) |
|
DenseCommunicator & | operator= (const DenseCommunicator &other)=default |
|
DenseCommunicator & | operator= (DenseCommunicator &&other) |
|
| DenseCommunicator (communicator base) |
| Default constructor with empty communication pattern. More...
|
|
template<typename LocalIndexType , typename GlobalIndexType > |
| DenseCommunicator (communicator base, const distributed::index_map< LocalIndexType, GlobalIndexType > &imap) |
| Create a DenseCommunicator from an index map. More...
|
|
std::unique_ptr< CollectiveCommunicator > | create_with_same_type (communicator base, const distributed::index_map_variant &imap) const override |
| Creates a new CollectiveCommunicator with the same dynamic type. More...
|
|
std::unique_ptr< CollectiveCommunicator > | create_inverse () const override |
| Creates the inverse DenseCommunicator by switching sources and destinations. More...
|
|
comm_index_type | get_recv_size () const override |
| Get the total number of received elements this communication patterns expects. More...
|
|
comm_index_type | get_send_size () const override |
| Get the total number of sent elements this communication patterns expects. More...
|
|
template<typename SendType , typename RecvType > |
request | i_all_to_all_v (std::shared_ptr< const Executor > exec, const SendType *send_buffer, RecvType *recv_buffer) const |
| Non-blocking all-to-all communication. More...
|
|
request | i_all_to_all_v (std::shared_ptr< const Executor > exec, const void *send_buffer, MPI_Datatype send_type, void *recv_buffer, MPI_Datatype recv_type) const |
|
| CollectiveCommunicator (communicator base=MPI_COMM_NULL) |
|
const communicator & | get_base_communicator () const |
|
template<typename SendType , typename RecvType > |
request | i_all_to_all_v (std::shared_ptr< const Executor > exec, const SendType *send_buffer, RecvType *recv_buffer) const |
| Non-blocking all-to-all communication. More...
|
|
request | i_all_to_all_v (std::shared_ptr< const Executor > exec, const void *send_buffer, MPI_Datatype send_type, void *recv_buffer, MPI_Datatype recv_type) const |
|
A CollectiveCommunicator that uses a dense communication.
The dense communicator uses the MPI_Alltoall function for its communication.
template<typename SendType , typename RecvType >
request gko::experimental::mpi::CollectiveCommunicator::i_all_to_all_v |
( |
typename SendType |
, |
|
|
typename RecvType |
|
|
) |
| |
Non-blocking all-to-all communication.
The send_buffer must have allocated at least get_send_size number of elements, and the recv_buffer must have allocated at least get_recv_size number of elements.
- Template Parameters
-
SendType | the type of the elements to send |
RecvType | the type of the elements to receive |
- Parameters
-
exec | the executor for the communication |
send_buffer | the send buffer |
recv_buffer | the receive buffer |
- Returns
- a request handle