These require MPI tasks, not the MPI backend. More...
Functions | |
| template<typename T> | |
| std::vector< T > | all_gatherv (const T &t, MPI_Comm comm=MPI_COMM_WORLD) |
| All gather communication pattern implemented using MPI_Allgather. | |
| template<typename R> | |
| auto | all_to_allv (R &&r, MPI_Comm comm=MPI_COMM_WORLD) |
| All-to-All (variable) communication pattern. | |
| template<class R> | |
| auto | one_to_alli (R &&r, std::size_t mem=1<< 20, MPI_Comm comm=MPI_COMM_WORLD) |
| Send data from root (rank 0) to all others, controlling memory usage. | |
| template<typename R> | |
| auto | one_to_allv (R &&r, MPI_Comm comm=MPI_COMM_WORLD) |
| One-to-All (variable) communication pattern. | |
| int | size (MPI_Comm comm=MPI_COMM_WORLD) |
| Convenience function to get basic MPI communicator information. | |
These require MPI tasks, not the MPI backend.
Contents are in flecsi::util::mpi unless otherwise specified.
| int size | ( | MPI_Comm | comm = MPI_COMM_WORLD | ) |
Convenience function to get basic MPI communicator information.
| auto one_to_allv | ( | R && | r, |
| MPI_Comm | comm = MPI_COMM_WORLD ) |
One-to-All (variable) communication pattern.
This function uses the FleCSI serialization interface to communicate data from the root (rank 0) to all other processes.
| r | range or functor with signature (rank) or (deprecated) (rank, size), read/invoked only on the root and in recipient order |
| comm | An MPI communicator. |
| auto one_to_alli | ( | R && | r, |
| std::size_t | mem = 1 << 20, | ||
| MPI_Comm | comm = MPI_COMM_WORLD ) |
Send data from root (rank 0) to all others, controlling memory usage.
No messages are constructed while data in transit exceeds mem (transmission occurs, at least serially, even if it is 0).
| r | range or functor with signature (rank) or (deprecated) (rank, size), read/invoked only on root and in recipient order |
| mem | bytes of memory to use before waiting |
| auto all_to_allv | ( | R && | r, |
| MPI_Comm | comm = MPI_COMM_WORLD ) |
All-to-All (variable) communication pattern.
This function uses the FleCSI serialization interface with a packing callable object to communicate data from each process to every other.
| r | range or functor with signature (rank) or (deprecated) (rank, size), read/invoked in recipient order |
| comm | An MPI communicator. |
std::vector of the values for this process from each source r | std::vector< T > all_gatherv | ( | const T & | t, |
| MPI_Comm | comm = MPI_COMM_WORLD ) |
All gather communication pattern implemented using MPI_Allgather.
This function is convenient for passing more complicated types. Otherwise, it may make more sense to use MPI_Allgather directly.
This function uses the FleCSI serialization interface to copy data from every process to every other.
| T | serializable data type |
| t | object to send |
| comm | An MPI communicator. |