Celeritas
0.5.0-86+4a8eea4
|
MPI parallel functionality. More...
#include <algorithm>
#include <type_traits>
#include "corecel/Config.hh"
#include "corecel/Assert.hh"
#include "corecel/Macros.hh"
#include "corecel/cont/Span.hh"
#include "MpiCommunicator.hh"
#include "detail/MpiType.hh"
Enumerations | |
enum class | celeritas::Operation { min , max , sum , prod , size_ } |
MPI reduction operation to perform on the data. | |
Functions | |
void | celeritas::barrier (MpiCommunicator const &comm) |
Wait for all processes in this communicator to reach the barrier. | |
template<class T , std::size_t N> | |
void | celeritas::allreduce (MpiCommunicator const &comm, Operation op, Span< T const, N > src, Span< T, N > dst) |
template<class T , std::size_t N> | |
void | celeritas::allreduce (MpiCommunicator const &comm, Operation op, Span< T, N > data) |
template<class T , std::enable_if_t< std::is_fundamental< T >::value, bool > = true> | |
T | celeritas::allreduce (MpiCommunicator const &comm, Operation op, T const src) |
Perform reduction on a fundamental scalar and return the result. | |
template<class T , std::size_t N> | |
void | celeritas::allreduce (MpiCommunicator const &comm, [[maybe_unused]] Operation op, Span< T const, N > src, Span< T, N > dst) |
All-to-all reduction on the data from src to dst. | |
template<class T , std::size_t N> | |
void | celeritas::allreduce (MpiCommunicator const &comm, [[maybe_unused]] Operation op, [[maybe_unused]] Span< T, N > data) |
All-to-all reduction on the data, in place. | |
MPI parallel functionality.