Celeritas  0.5.0-56+6b053cd
Enumerations | Functions
MpiOperations.hh File Reference

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"
This graph shows which files directly or indirectly include this file:

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>
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.
 

Detailed Description

MPI parallel functionality.