Block-Structured AMR Software Framework
Loading...
Searching...
No Matches
MPI Communication

MPI-based communication capabilities in AMReX. More...

Functions

template<typename T>
void amrex::ParallelAllReduce::Sum (Gpu::DeviceVector< T > &v, MPI_Comm comm)
template<typename T>
void amrex::ParallelReduce::Sum (Gpu::DeviceVector< T > &v, int root, MPI_Comm comm)
template<typename T>
void amrex::ParallelDescriptor::Bcast (Gpu::DeviceVector< T > &v, int root, MPI_Comm comm)
int amrex::ParallelDescriptor::MyProc () noexcept
int amrex::ParallelDescriptor::MyProc (MPI_Comm comm) noexcept
int amrex::ParallelDescriptor::NProcs () noexcept
int amrex::ParallelDescriptor::NProcs (MPI_Comm comm) noexcept
int amrex::ParallelDescriptor::IOProcessorNumber () noexcept
 The MPI rank number of the I/O Processor (probably rank 0). This rank is usually used to write to stdout.
bool amrex::ParallelDescriptor::IOProcessor () noexcept
 Is this CPU the I/O Processor? To get the rank number, call IOProcessorNumber().
int amrex::ParallelDescriptor::IOProcessorNumber (MPI_Comm comm) noexcept
bool amrex::ParallelDescriptor::IOProcessor (MPI_Comm comm) noexcept
void amrex::ParallelDescriptor::Barrier (const std::string &)
void amrex::ParallelDescriptor::Barrier (const MPI_Comm &, const std::string &)
void amrex::ParallelDescriptor::ReduceBoolAnd (bool &)
void amrex::ParallelDescriptor::ReduceBoolAnd (bool &, int)
void amrex::ParallelDescriptor::ReduceBoolOr (bool &)
void amrex::ParallelDescriptor::ReduceBoolOr (bool &, int)
template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealSum (T &rvar)
 Real sum reduction.
template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealSum (T *rvar, int cnt)
template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealSum (Vector< std::reference_wrapper< T > > const &rvar)
template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealSum (T &rvar, int cpu)
 Real sum reduction to specified cpu.
template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealSum (T *rvar, int cnt, int cpu)
template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealSum (Vector< std::reference_wrapper< T > > const &rvar, int cpu)
template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealMax (T &rvar)
 Real max reduction.
template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealMax (T *rvar, int cnt)
template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealMax (Vector< std::reference_wrapper< T > > const &rvar)
template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealMax (T &rvar, int cpu)
 Real max reduction to specified cpu.
template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealMax (T *rvar, int cnt, int cpu)
template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealMax (Vector< std::reference_wrapper< T > > const &rvar, int cpu)
template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealMin (T &rvar)
 Real min reduction.
template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealMin (T *rvar, int cnt)
template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealMin (Vector< std::reference_wrapper< T > > const &rvar)
template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealMin (T &rvar, int cpu)
 Real min reduction to specified cpu.
template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealMin (T *rvar, int cnt, int cpu)
template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealMin (Vector< std::reference_wrapper< T > > const &rvar, int cpu)
void amrex::ParallelDescriptor::ReduceIntSum (int &)
void amrex::ParallelDescriptor::ReduceIntSum (int *, int)
void amrex::ParallelDescriptor::ReduceIntSum (Vector< std::reference_wrapper< int > > const &)
void amrex::ParallelDescriptor::ReduceIntSum (int &, int)
void amrex::ParallelDescriptor::ReduceIntSum (int *, int, int)
void amrex::ParallelDescriptor::ReduceIntSum (Vector< std::reference_wrapper< int > > const &, int)
void amrex::ParallelDescriptor::ReduceIntMax (int &)
void amrex::ParallelDescriptor::ReduceIntMax (int *, int)
void amrex::ParallelDescriptor::ReduceIntMax (Vector< std::reference_wrapper< int > > const &)
void amrex::ParallelDescriptor::ReduceIntMax (int &, int)
void amrex::ParallelDescriptor::ReduceIntMax (int *, int, int)
void amrex::ParallelDescriptor::ReduceIntMax (Vector< std::reference_wrapper< int > > const &, int)
void amrex::ParallelDescriptor::ReduceIntMin (int &)
void amrex::ParallelDescriptor::ReduceIntMin (int *, int)
void amrex::ParallelDescriptor::ReduceIntMin (Vector< std::reference_wrapper< int > > const &)
void amrex::ParallelDescriptor::ReduceIntMin (int &, int)
void amrex::ParallelDescriptor::ReduceIntMin (int *, int, int)
void amrex::ParallelDescriptor::ReduceIntMin (Vector< std::reference_wrapper< int > > const &, int)
void amrex::ParallelDescriptor::ReduceLongSum (Long &)
void amrex::ParallelDescriptor::ReduceLongSum (Long *, int)
void amrex::ParallelDescriptor::ReduceLongSum (Vector< std::reference_wrapper< Long > > const &)
void amrex::ParallelDescriptor::ReduceLongSum (Long &, int)
void amrex::ParallelDescriptor::ReduceLongSum (Long *, int, int)
void amrex::ParallelDescriptor::ReduceLongSum (Vector< std::reference_wrapper< Long > > const &, int)
void amrex::ParallelDescriptor::ReduceLongMax (Long &)
void amrex::ParallelDescriptor::ReduceLongMax (Long *, int)
void amrex::ParallelDescriptor::ReduceLongMax (Vector< std::reference_wrapper< Long > > const &)
void amrex::ParallelDescriptor::ReduceLongMax (Long &, int)
void amrex::ParallelDescriptor::ReduceLongMax (Long *, int, int)
void amrex::ParallelDescriptor::ReduceLongMax (Vector< std::reference_wrapper< Long > > const &, int)
void amrex::ParallelDescriptor::ReduceLongMin (Long &)
void amrex::ParallelDescriptor::ReduceLongMin (Long *, int)
void amrex::ParallelDescriptor::ReduceLongMin (Vector< std::reference_wrapper< Long > > const &)
void amrex::ParallelDescriptor::ReduceLongMin (Long &, int)
void amrex::ParallelDescriptor::ReduceLongMin (Long *, int, int)
void amrex::ParallelDescriptor::ReduceLongMin (Vector< std::reference_wrapper< Long > > const &, int)
void amrex::ParallelDescriptor::ReduceLongAnd (Long &)
void amrex::ParallelDescriptor::ReduceLongAnd (Long *, int)
void amrex::ParallelDescriptor::ReduceLongAnd (Vector< std::reference_wrapper< Long > > const &)
void amrex::ParallelDescriptor::ReduceLongAnd (Long &, int)
void amrex::ParallelDescriptor::ReduceLongAnd (Long *, int, int)
void amrex::ParallelDescriptor::ReduceLongAnd (Vector< std::reference_wrapper< Long > > const &, int)
void amrex::ParallelDescriptor::Gather (Real const *sendbuf, int nsend, Real *recvbuf, int root)
void amrex::ParallelDescriptor::ReadAndBcastFile (const std::string &filename, Vector< char > &charBuf, bool bExitOnError, const MPI_Comm &comm)
template<typename T>
void amrex::ParallelAllGather::AllGather (const T *v, int cnt, T *vs, MPI_Comm comm)
template<typename T>
void amrex::ParallelAllGather::AllGather (const T &v, T *vs, MPI_Comm comm)
template<typename T>
void amrex::ParallelGather::Gather (const T *v, int cnt, T *vs, int root, MPI_Comm comm)
template<typename T>
void amrex::ParallelGather::Gather (const T &v, T *vs, int root, MPI_Comm comm)
template<typename K, typename V>
void amrex::ParallelAllReduce::Max (KeyValuePair< K, V > &vi, MPI_Comm comm)
template<typename K, typename V>
void amrex::ParallelAllReduce::Max (KeyValuePair< K, V > *vi, int cnt, MPI_Comm comm)
template<typename K, typename V>
void amrex::ParallelAllReduce::Min (KeyValuePair< K, V > &vi, MPI_Comm comm)
template<typename K, typename V>
void amrex::ParallelAllReduce::Min (KeyValuePair< K, V > *vi, int cnt, MPI_Comm comm)
template<typename T>
void amrex::ParallelAllReduce::Max (T &v, MPI_Comm comm)
template<typename T>
void amrex::ParallelAllReduce::Max (T *v, int cnt, MPI_Comm comm)
template<typename T>
void amrex::ParallelAllReduce::Max (Vector< std::reference_wrapper< T > > v, MPI_Comm comm)
template<typename T>
void amrex::ParallelAllReduce::Min (T &v, MPI_Comm comm)
template<typename T>
void amrex::ParallelAllReduce::Min (T *v, int cnt, MPI_Comm comm)
template<typename T>
void amrex::ParallelAllReduce::Min (Vector< std::reference_wrapper< T > > v, MPI_Comm comm)
template<typename T>
void amrex::ParallelAllReduce::Sum (T &v, MPI_Comm comm)
template<typename T>
void amrex::ParallelAllReduce::Sum (T *v, int cnt, MPI_Comm comm)
template<typename T>
void amrex::ParallelAllReduce::Sum (Vector< std::reference_wrapper< T > > v, MPI_Comm comm)
void amrex::ParallelAllReduce::Or (bool &v, MPI_Comm comm)
void amrex::ParallelAllReduce::And (bool &v, MPI_Comm comm)
template<typename K, typename V>
void amrex::ParallelReduce::Max (KeyValuePair< K, V > &vi, int root, MPI_Comm comm)
template<typename K, typename V>
void amrex::ParallelReduce::Max (KeyValuePair< K, V > *vi, int cnt, int root, MPI_Comm comm)
template<typename K, typename V>
void amrex::ParallelReduce::Min (KeyValuePair< K, V > &vi, int root, MPI_Comm comm)
template<typename K, typename V>
void amrex::ParallelReduce::Min (KeyValuePair< K, V > *vi, int cnt, int root, MPI_Comm comm)
template<typename T>
void amrex::ParallelReduce::Max (T &v, int root, MPI_Comm comm)
template<typename T>
void amrex::ParallelReduce::Max (T *v, int cnt, int root, MPI_Comm comm)
template<typename T>
void amrex::ParallelReduce::Max (Vector< std::reference_wrapper< T > > v, int root, MPI_Comm comm)
template<typename T>
void amrex::ParallelReduce::Min (T &v, int root, MPI_Comm comm)
template<typename T>
void amrex::ParallelReduce::Min (T *v, int cnt, int root, MPI_Comm comm)
template<typename T>
void amrex::ParallelReduce::Min (Vector< std::reference_wrapper< T > > v, int root, MPI_Comm comm)
template<typename T>
void amrex::ParallelReduce::Sum (T &v, int root, MPI_Comm comm)
template<typename T>
void amrex::ParallelReduce::Sum (T *v, int cnt, int root, MPI_Comm comm)
template<typename T>
void amrex::ParallelReduce::Sum (Vector< std::reference_wrapper< T > > v, int root, MPI_Comm comm)
void amrex::ParallelReduce::Or (bool &v, int root, MPI_Comm comm)
void amrex::ParallelReduce::And (bool &v, int root, MPI_Comm comm)

Detailed Description

MPI-based communication capabilities in AMReX.

This topic documents the MPI-facing API, such as amrex::ParallelDescriptor. amrex::FabArray operations that may use MPI (e.g., ghost exchange and parallel copies) are documented under Communication for Distributed Fab Data.

Function Documentation

◆ AllGather() [1/2]

template<typename T>
void amrex::ParallelAllGather::AllGather ( const T & v,
T * vs,
MPI_Comm comm )

◆ AllGather() [2/2]

template<typename T>
void amrex::ParallelAllGather::AllGather ( const T * v,
int cnt,
T * vs,
MPI_Comm comm )

◆ And() [1/2]

void amrex::ParallelAllReduce::And ( bool & v,
MPI_Comm comm )
inline

◆ And() [2/2]

void amrex::ParallelReduce::And ( bool & v,
int root,
MPI_Comm comm )
inline

◆ Barrier() [1/2]

void amrex::ParallelDescriptor::Barrier ( const MPI_Comm & ,
const std::string &  )

◆ Barrier() [2/2]

void amrex::ParallelDescriptor::Barrier ( const std::string & )

◆ Bcast()

template<typename T>
void amrex::ParallelDescriptor::Bcast ( Gpu::DeviceVector< T > & v,
int root,
MPI_Comm comm )

Broadcast a Gpu::DeviceVector from root to all ranks in comm.

Contract: on every receiving rank v must already be allocated to the same length as on root (the caller is responsible for sizing it, e.g. via resize). Calling this with a wrong-sized or empty receiver is undefined behavior. This mirrors the pointer overload Bcast(T*, n, root), which also requires a correctly-sized buffer on every rank.

In a debug build (AMREX_DEBUG) the contract is checked: the root's length is broadcast first and asserted against each rank's size before the data are broadcast.

The device buffer is passed to MPI directly when GPU-aware MPI is enabled (UseGpuAwareMpi()), otherwise it is staged through host (pinned) memory.

◆ Gather() [1/3]

void amrex::ParallelDescriptor::Gather ( Real const * sendbuf,
int nsend,
Real * recvbuf,
int root )

Parallel gather.

◆ Gather() [2/3]

template<typename T>
void amrex::ParallelGather::Gather ( const T & v,
T * vs,
int root,
MPI_Comm comm )

◆ Gather() [3/3]

template<typename T>
void amrex::ParallelGather::Gather ( const T * v,
int cnt,
T * vs,
int root,
MPI_Comm comm )

◆ IOProcessor() [1/2]

bool amrex::ParallelDescriptor::IOProcessor ( )
inlinenoexcept

Is this CPU the I/O Processor? To get the rank number, call IOProcessorNumber().

◆ IOProcessor() [2/2]

bool amrex::ParallelDescriptor::IOProcessor ( MPI_Comm comm)
inlinenoexcept

◆ IOProcessorNumber() [1/2]

int amrex::ParallelDescriptor::IOProcessorNumber ( )
inlinenoexcept

The MPI rank number of the I/O Processor (probably rank 0). This rank is usually used to write to stdout.

◆ IOProcessorNumber() [2/2]

int amrex::ParallelDescriptor::IOProcessorNumber ( MPI_Comm comm)
inlinenoexcept

◆ Max() [1/10]

template<typename K, typename V>
void amrex::ParallelAllReduce::Max ( KeyValuePair< K, V > & vi,
MPI_Comm comm )

◆ Max() [2/10]

template<typename K, typename V>
void amrex::ParallelAllReduce::Max ( KeyValuePair< K, V > * vi,
int cnt,
MPI_Comm comm )

◆ Max() [3/10]

template<typename T>
void amrex::ParallelAllReduce::Max ( T & v,
MPI_Comm comm )

◆ Max() [4/10]

template<typename T>
void amrex::ParallelAllReduce::Max ( T * v,
int cnt,
MPI_Comm comm )

◆ Max() [5/10]

template<typename T>
void amrex::ParallelAllReduce::Max ( Vector< std::reference_wrapper< T > > v,
MPI_Comm comm )

◆ Max() [6/10]

template<typename K, typename V>
void amrex::ParallelReduce::Max ( KeyValuePair< K, V > & vi,
int root,
MPI_Comm comm )

◆ Max() [7/10]

template<typename K, typename V>
void amrex::ParallelReduce::Max ( KeyValuePair< K, V > * vi,
int cnt,
int root,
MPI_Comm comm )

◆ Max() [8/10]

template<typename T>
void amrex::ParallelReduce::Max ( T & v,
int root,
MPI_Comm comm )

◆ Max() [9/10]

template<typename T>
void amrex::ParallelReduce::Max ( T * v,
int cnt,
int root,
MPI_Comm comm )

◆ Max() [10/10]

template<typename T>
void amrex::ParallelReduce::Max ( Vector< std::reference_wrapper< T > > v,
int root,
MPI_Comm comm )

◆ Min() [1/10]

template<typename K, typename V>
void amrex::ParallelAllReduce::Min ( KeyValuePair< K, V > & vi,
MPI_Comm comm )

◆ Min() [2/10]

template<typename K, typename V>
void amrex::ParallelAllReduce::Min ( KeyValuePair< K, V > * vi,
int cnt,
MPI_Comm comm )

◆ Min() [3/10]

template<typename T>
void amrex::ParallelAllReduce::Min ( T & v,
MPI_Comm comm )

◆ Min() [4/10]

template<typename T>
void amrex::ParallelAllReduce::Min ( T * v,
int cnt,
MPI_Comm comm )

◆ Min() [5/10]

template<typename T>
void amrex::ParallelAllReduce::Min ( Vector< std::reference_wrapper< T > > v,
MPI_Comm comm )

◆ Min() [6/10]

template<typename K, typename V>
void amrex::ParallelReduce::Min ( KeyValuePair< K, V > & vi,
int root,
MPI_Comm comm )

◆ Min() [7/10]

template<typename K, typename V>
void amrex::ParallelReduce::Min ( KeyValuePair< K, V > * vi,
int cnt,
int root,
MPI_Comm comm )

◆ Min() [8/10]

template<typename T>
void amrex::ParallelReduce::Min ( T & v,
int root,
MPI_Comm comm )

◆ Min() [9/10]

template<typename T>
void amrex::ParallelReduce::Min ( T * v,
int cnt,
int root,
MPI_Comm comm )

◆ Min() [10/10]

template<typename T>
void amrex::ParallelReduce::Min ( Vector< std::reference_wrapper< T > > v,
int root,
MPI_Comm comm )

◆ MyProc() [1/2]

int amrex::ParallelDescriptor::MyProc ( )
inlinenoexcept

return the rank number local to the current Parallel Context

◆ MyProc() [2/2]

int amrex::ParallelDescriptor::MyProc ( MPI_Comm comm)
inlinenoexcept

◆ NProcs() [1/2]

int amrex::ParallelDescriptor::NProcs ( )
inlinenoexcept

return the number of MPI ranks local to the current Parallel Context

◆ NProcs() [2/2]

int amrex::ParallelDescriptor::NProcs ( MPI_Comm comm)
inlinenoexcept

◆ Or() [1/2]

void amrex::ParallelAllReduce::Or ( bool & v,
MPI_Comm comm )
inline

◆ Or() [2/2]

void amrex::ParallelReduce::Or ( bool & v,
int root,
MPI_Comm comm )
inline

◆ ReadAndBcastFile()

void amrex::ParallelDescriptor::ReadAndBcastFile ( const std::string & filename,
Vector< char > & charBuf,
bool bExitOnError,
const MPI_Comm & comm )

◆ ReduceBoolAnd() [1/2]

void amrex::ParallelDescriptor::ReduceBoolAnd ( bool & rvar)

And-wise boolean reduction.

◆ ReduceBoolAnd() [2/2]

void amrex::ParallelDescriptor::ReduceBoolAnd ( bool & rvar,
int cpu )

And-wise boolean reduction to specified cpu.

◆ ReduceBoolOr() [1/2]

void amrex::ParallelDescriptor::ReduceBoolOr ( bool & rvar)

Or-wise boolean reduction.

◆ ReduceBoolOr() [2/2]

void amrex::ParallelDescriptor::ReduceBoolOr ( bool & rvar,
int cpu )

Or-wise boolean reduction to specified cpu.

◆ ReduceIntMax() [1/6]

void amrex::ParallelDescriptor::ReduceIntMax ( int & rvar)

Integer max reduction.

◆ ReduceIntMax() [2/6]

void amrex::ParallelDescriptor::ReduceIntMax ( int & rvar,
int cpu )

Integer max reduction to specified cpu.

◆ ReduceIntMax() [3/6]

void amrex::ParallelDescriptor::ReduceIntMax ( int * ,
int  )

◆ ReduceIntMax() [4/6]

void amrex::ParallelDescriptor::ReduceIntMax ( int * ,
int ,
int  )

◆ ReduceIntMax() [5/6]

void amrex::ParallelDescriptor::ReduceIntMax ( Vector< std::reference_wrapper< int > > const & )

◆ ReduceIntMax() [6/6]

void amrex::ParallelDescriptor::ReduceIntMax ( Vector< std::reference_wrapper< int > > const & ,
int  )

◆ ReduceIntMin() [1/6]

void amrex::ParallelDescriptor::ReduceIntMin ( int & rvar)

Integer min reduction.

◆ ReduceIntMin() [2/6]

void amrex::ParallelDescriptor::ReduceIntMin ( int & rvar,
int cpu )

Integer min reduction to specified cpu.

◆ ReduceIntMin() [3/6]

void amrex::ParallelDescriptor::ReduceIntMin ( int * ,
int  )

◆ ReduceIntMin() [4/6]

void amrex::ParallelDescriptor::ReduceIntMin ( int * ,
int ,
int  )

◆ ReduceIntMin() [5/6]

void amrex::ParallelDescriptor::ReduceIntMin ( Vector< std::reference_wrapper< int > > const & )

◆ ReduceIntMin() [6/6]

void amrex::ParallelDescriptor::ReduceIntMin ( Vector< std::reference_wrapper< int > > const & ,
int  )

◆ ReduceIntSum() [1/6]

void amrex::ParallelDescriptor::ReduceIntSum ( int & rvar)

Integer sum reduction.

◆ ReduceIntSum() [2/6]

void amrex::ParallelDescriptor::ReduceIntSum ( int & rvar,
int cpu )

Integer sum reduction to specified cpu.

◆ ReduceIntSum() [3/6]

void amrex::ParallelDescriptor::ReduceIntSum ( int * ,
int  )

◆ ReduceIntSum() [4/6]

void amrex::ParallelDescriptor::ReduceIntSum ( int * ,
int ,
int  )

◆ ReduceIntSum() [5/6]

void amrex::ParallelDescriptor::ReduceIntSum ( Vector< std::reference_wrapper< int > > const & )

◆ ReduceIntSum() [6/6]

void amrex::ParallelDescriptor::ReduceIntSum ( Vector< std::reference_wrapper< int > > const & ,
int  )

◆ ReduceLongAnd() [1/6]

void amrex::ParallelDescriptor::ReduceLongAnd ( Long & rvar)

Long and-wise reduction.

◆ ReduceLongAnd() [2/6]

void amrex::ParallelDescriptor::ReduceLongAnd ( Long & rvar,
int cpu )

Long and-wise reduction to specified cpu.

◆ ReduceLongAnd() [3/6]

void amrex::ParallelDescriptor::ReduceLongAnd ( Long * ,
int  )

◆ ReduceLongAnd() [4/6]

void amrex::ParallelDescriptor::ReduceLongAnd ( Long * ,
int ,
int  )

◆ ReduceLongAnd() [5/6]

void amrex::ParallelDescriptor::ReduceLongAnd ( Vector< std::reference_wrapper< Long > > const & )

◆ ReduceLongAnd() [6/6]

void amrex::ParallelDescriptor::ReduceLongAnd ( Vector< std::reference_wrapper< Long > > const & ,
int  )

◆ ReduceLongMax() [1/6]

void amrex::ParallelDescriptor::ReduceLongMax ( Long & rvar)

Long max reduction.

◆ ReduceLongMax() [2/6]

void amrex::ParallelDescriptor::ReduceLongMax ( Long & rvar,
int cpu )

Long max reduction to specified cpu.

◆ ReduceLongMax() [3/6]

void amrex::ParallelDescriptor::ReduceLongMax ( Long * ,
int  )

◆ ReduceLongMax() [4/6]

void amrex::ParallelDescriptor::ReduceLongMax ( Long * ,
int ,
int  )

◆ ReduceLongMax() [5/6]

void amrex::ParallelDescriptor::ReduceLongMax ( Vector< std::reference_wrapper< Long > > const & )

◆ ReduceLongMax() [6/6]

void amrex::ParallelDescriptor::ReduceLongMax ( Vector< std::reference_wrapper< Long > > const & ,
int  )

◆ ReduceLongMin() [1/6]

void amrex::ParallelDescriptor::ReduceLongMin ( Long & rvar)

Long min reduction.

◆ ReduceLongMin() [2/6]

void amrex::ParallelDescriptor::ReduceLongMin ( Long & rvar,
int cpu )

Long min reduction to specified cpu.

◆ ReduceLongMin() [3/6]

void amrex::ParallelDescriptor::ReduceLongMin ( Long * ,
int  )

◆ ReduceLongMin() [4/6]

void amrex::ParallelDescriptor::ReduceLongMin ( Long * ,
int ,
int  )

◆ ReduceLongMin() [5/6]

void amrex::ParallelDescriptor::ReduceLongMin ( Vector< std::reference_wrapper< Long > > const & )

◆ ReduceLongMin() [6/6]

void amrex::ParallelDescriptor::ReduceLongMin ( Vector< std::reference_wrapper< Long > > const & ,
int  )

◆ ReduceLongSum() [1/6]

void amrex::ParallelDescriptor::ReduceLongSum ( Long & rvar)

Long sum reduction.

◆ ReduceLongSum() [2/6]

void amrex::ParallelDescriptor::ReduceLongSum ( Long & rvar,
int cpu )

Long sum reduction to specified cpu.

◆ ReduceLongSum() [3/6]

void amrex::ParallelDescriptor::ReduceLongSum ( Long * ,
int  )

◆ ReduceLongSum() [4/6]

void amrex::ParallelDescriptor::ReduceLongSum ( Long * ,
int ,
int  )

◆ ReduceLongSum() [5/6]

void amrex::ParallelDescriptor::ReduceLongSum ( Vector< std::reference_wrapper< Long > > const & )

◆ ReduceLongSum() [6/6]

void amrex::ParallelDescriptor::ReduceLongSum ( Vector< std::reference_wrapper< Long > > const & ,
int  )

◆ ReduceRealMax() [1/6]

template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealMax ( T & rvar)

Real max reduction.

Real max reduction.

◆ ReduceRealMax() [2/6]

template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealMax ( T & rvar,
int cpu )

Real max reduction to specified cpu.

Real max reduction to specified cpu.

◆ ReduceRealMax() [3/6]

template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealMax ( T * rvar,
int cnt )

◆ ReduceRealMax() [4/6]

template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealMax ( T * rvar,
int cnt,
int cpu )

◆ ReduceRealMax() [5/6]

template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealMax ( Vector< std::reference_wrapper< T > > const & rvar)

◆ ReduceRealMax() [6/6]

template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealMax ( Vector< std::reference_wrapper< T > > const & rvar,
int cpu )

◆ ReduceRealMin() [1/6]

template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealMin ( T & rvar)

Real min reduction.

Real min reduction.

◆ ReduceRealMin() [2/6]

template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealMin ( T & rvar,
int cpu )

Real min reduction to specified cpu.

Real min reduction to specified cpu.

◆ ReduceRealMin() [3/6]

template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealMin ( T * rvar,
int cnt )

◆ ReduceRealMin() [4/6]

template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealMin ( T * rvar,
int cnt,
int cpu )

◆ ReduceRealMin() [5/6]

template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealMin ( Vector< std::reference_wrapper< T > > const & rvar)

◆ ReduceRealMin() [6/6]

template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealMin ( Vector< std::reference_wrapper< T > > const & rvar,
int cpu )

◆ ReduceRealSum() [1/6]

template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealSum ( T & rvar)

Real sum reduction.

Real sum reduction.

◆ ReduceRealSum() [2/6]

template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealSum ( T & rvar,
int cpu )

Real sum reduction to specified cpu.

Real sum reduction to specified cpu.

◆ ReduceRealSum() [3/6]

template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealSum ( T * rvar,
int cnt )

◆ ReduceRealSum() [4/6]

template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealSum ( T * rvar,
int cnt,
int cpu )

◆ ReduceRealSum() [5/6]

template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealSum ( Vector< std::reference_wrapper< T > > const & rvar)

◆ ReduceRealSum() [6/6]

template<std::floating_point T>
void amrex::ParallelDescriptor::ReduceRealSum ( Vector< std::reference_wrapper< T > > const & rvar,
int cpu )

◆ Sum() [1/8]

template<typename T>
void amrex::ParallelAllReduce::Sum ( Gpu::DeviceVector< T > & v,
MPI_Comm comm )

Sum-reduce the elements of a Gpu::DeviceVector in place, on all ranks.

◆ Sum() [2/8]

template<typename T>
void amrex::ParallelAllReduce::Sum ( T & v,
MPI_Comm comm )

◆ Sum() [3/8]

template<typename T>
void amrex::ParallelAllReduce::Sum ( T * v,
int cnt,
MPI_Comm comm )

◆ Sum() [4/8]

template<typename T>
void amrex::ParallelAllReduce::Sum ( Vector< std::reference_wrapper< T > > v,
MPI_Comm comm )

◆ Sum() [5/8]

template<typename T>
void amrex::ParallelReduce::Sum ( Gpu::DeviceVector< T > & v,
int root,
MPI_Comm comm )

Sum-reduce the elements of a Gpu::DeviceVector in place, onto root.

◆ Sum() [6/8]

template<typename T>
void amrex::ParallelReduce::Sum ( T & v,
int root,
MPI_Comm comm )

◆ Sum() [7/8]

template<typename T>
void amrex::ParallelReduce::Sum ( T * v,
int cnt,
int root,
MPI_Comm comm )

◆ Sum() [8/8]

template<typename T>
void amrex::ParallelReduce::Sum ( Vector< std::reference_wrapper< T > > v,
int root,
MPI_Comm comm )