OPALX (Object Oriented Parallel Accelerator Library for Exascale) MINIorX
OPALX
ippl::mpi Namespace Reference

Namespaces

namespace  core
 
namespace  rma
 
namespace  tag
 

Classes

struct  always_false
 
class  Communicator
 
struct  dummy
 
class  Environment
 
struct  extractBinaryOperationKind
 Helper struct to distinguish between the four basic associative operation types. More...
 
struct  extractBinaryOperationKind< std::greater< T > >
 
struct  extractBinaryOperationKind< std::less< T > >
 
struct  extractBinaryOperationKind< std::multiplies< T > >
 
struct  extractBinaryOperationKind< std::plus< T > >
 
struct  getMpiOpImpl
 
struct  getMpiOpImpl< std::greater< char >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::greater< double >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::greater< float >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::greater< int >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::greater< long >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::greater< long double >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::greater< long long >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::greater< short >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::greater< unsigned char >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::greater< unsigned int >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::greater< unsigned long >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::greater< unsigned long long >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::greater< unsigned short >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::less< char >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::less< double >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::less< float >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::less< int >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::less< long >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::less< long double >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::less< long long >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::less< short >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::less< unsigned char >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::less< unsigned int >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::less< unsigned long >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::less< unsigned long long >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::less< unsigned short >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::logical_and< bool >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::logical_or< bool >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::multiplies< double >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::multiplies< float >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::multiplies< int >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::multiplies< long >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::multiplies< long double >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::multiplies< long long >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::multiplies< short >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::multiplies< unsigned int >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::multiplies< unsigned long >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::multiplies< unsigned long long >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::multiplies< unsigned short >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::plus< char >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::plus< double >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::plus< float >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::plus< int >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::plus< Kokkos::complex< double > >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::plus< Kokkos::complex< float > >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::plus< long >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::plus< long double >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::plus< long long >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::plus< short >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::plus< std::complex< double > >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::plus< std::complex< float > >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::plus< unsigned char >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::plus< unsigned int >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::plus< unsigned long >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::plus< unsigned long long >, Datatype_IfNotTrivial >
 
struct  getMpiOpImpl< std::plus< unsigned short >, Datatype_IfNotTrivial >
 
struct  getNontrivialMpiOpImpl
 Helper struct to look up and store MPI_Op types for custom types and custom operations. More...
 
struct  is_ippl_mpi_type
 
struct  is_ippl_mpi_type< std::greater< char > >
 
struct  is_ippl_mpi_type< std::greater< double > >
 
struct  is_ippl_mpi_type< std::greater< float > >
 
struct  is_ippl_mpi_type< std::greater< int > >
 
struct  is_ippl_mpi_type< std::greater< long > >
 
struct  is_ippl_mpi_type< std::greater< long double > >
 
struct  is_ippl_mpi_type< std::greater< long long > >
 
struct  is_ippl_mpi_type< std::greater< short > >
 
struct  is_ippl_mpi_type< std::greater< unsigned char > >
 
struct  is_ippl_mpi_type< std::greater< unsigned int > >
 
struct  is_ippl_mpi_type< std::greater< unsigned long > >
 
struct  is_ippl_mpi_type< std::greater< unsigned long long > >
 
struct  is_ippl_mpi_type< std::greater< unsigned short > >
 
struct  is_ippl_mpi_type< std::less< char > >
 
struct  is_ippl_mpi_type< std::less< double > >
 
struct  is_ippl_mpi_type< std::less< float > >
 
struct  is_ippl_mpi_type< std::less< int > >
 
struct  is_ippl_mpi_type< std::less< long > >
 
struct  is_ippl_mpi_type< std::less< long double > >
 
struct  is_ippl_mpi_type< std::less< long long > >
 
struct  is_ippl_mpi_type< std::less< short > >
 
struct  is_ippl_mpi_type< std::less< unsigned char > >
 
struct  is_ippl_mpi_type< std::less< unsigned int > >
 
struct  is_ippl_mpi_type< std::less< unsigned long > >
 
struct  is_ippl_mpi_type< std::less< unsigned long long > >
 
struct  is_ippl_mpi_type< std::less< unsigned short > >
 
struct  is_ippl_mpi_type< std::logical_and< bool > >
 
struct  is_ippl_mpi_type< std::logical_or< bool > >
 
struct  is_ippl_mpi_type< std::multiplies< double > >
 
struct  is_ippl_mpi_type< std::multiplies< float > >
 
struct  is_ippl_mpi_type< std::multiplies< int > >
 
struct  is_ippl_mpi_type< std::multiplies< long > >
 
struct  is_ippl_mpi_type< std::multiplies< long double > >
 
struct  is_ippl_mpi_type< std::multiplies< long long > >
 
struct  is_ippl_mpi_type< std::multiplies< short > >
 
struct  is_ippl_mpi_type< std::multiplies< unsigned int > >
 
struct  is_ippl_mpi_type< std::multiplies< unsigned long > >
 
struct  is_ippl_mpi_type< std::multiplies< unsigned long long > >
 
struct  is_ippl_mpi_type< std::multiplies< unsigned short > >
 
struct  is_ippl_mpi_type< std::plus< char > >
 
struct  is_ippl_mpi_type< std::plus< double > >
 
struct  is_ippl_mpi_type< std::plus< float > >
 
struct  is_ippl_mpi_type< std::plus< int > >
 
struct  is_ippl_mpi_type< std::plus< Kokkos::complex< double > > >
 
struct  is_ippl_mpi_type< std::plus< Kokkos::complex< float > > >
 
struct  is_ippl_mpi_type< std::plus< long > >
 
struct  is_ippl_mpi_type< std::plus< long double > >
 
struct  is_ippl_mpi_type< std::plus< long long > >
 
struct  is_ippl_mpi_type< std::plus< short > >
 
struct  is_ippl_mpi_type< std::plus< std::complex< double > > >
 
struct  is_ippl_mpi_type< std::plus< std::complex< float > > >
 
struct  is_ippl_mpi_type< std::plus< unsigned char > >
 
struct  is_ippl_mpi_type< std::plus< unsigned int > >
 
struct  is_ippl_mpi_type< std::plus< unsigned long > >
 
struct  is_ippl_mpi_type< std::plus< unsigned long long > >
 
struct  is_ippl_mpi_type< std::plus< unsigned short > >
 
struct  is_serializable
 
struct  is_serializable< bool >
 
struct  is_serializable< char >
 
struct  is_serializable< double >
 
struct  is_serializable< float >
 
struct  is_serializable< int >
 
struct  is_serializable< long >
 
struct  is_serializable< long double >
 
struct  is_serializable< long long >
 
struct  is_serializable< short >
 
struct  is_serializable< std::complex< double > >
 
struct  is_serializable< std::complex< float > >
 
struct  is_serializable< std::complex< long double > >
 
struct  is_serializable< std::vector< bool > >
 
struct  is_serializable< std::vector< char > >
 
struct  is_serializable< std::vector< double > >
 
struct  is_serializable< std::vector< float > >
 
struct  is_serializable< std::vector< int > >
 
struct  is_serializable< std::vector< long > >
 
struct  is_serializable< std::vector< long double > >
 
struct  is_serializable< std::vector< long long > >
 
struct  is_serializable< std::vector< short > >
 
struct  is_serializable< std::vector< std::complex< double > > >
 
struct  is_serializable< std::vector< std::complex< float > > >
 
struct  is_serializable< std::vector< std::complex< long double > > >
 
struct  is_serializable< std::vector< unsigned char > >
 
struct  is_serializable< std::vector< unsigned int > >
 
struct  is_serializable< std::vector< unsigned long > >
 
struct  is_serializable< std::vector< unsigned long long > >
 
struct  is_serializable< std::vector< unsigned short > >
 
struct  is_serializable< unsigned char >
 
struct  is_serializable< unsigned int >
 
struct  is_serializable< unsigned long >
 
struct  is_serializable< unsigned long long >
 
struct  is_serializable< unsigned short >
 
class  Request
 
class  Status
 
struct  vector_dim_type
 
struct  vector_dim_type< ippl::Vector< T, Dim_ > >
 

Enumerations

enum struct  binaryOperationKind { SUM , MIN , MAX , MULTIPLICATION }
 

Functions

std::vector< char > serializeLogs (const std::vector< LogEntry > &logs)
 
std::vector< LogEntrydeserializeLogs (const std::vector< char > &buffer)
 
template<typename T >
MPI_Datatype get_mpi_datatype (const T &)
 
template<typename Op , typename Datatype >
MPI_Op get_mpi_op ()
 
template<std::contiguous_iterator InputIter, std::contiguous_iterator OutputIter>
void waitall (InputIter req_first, InputIter req_last, OutputIter sta_first)
 
void wait (Request &request, Status &status)
 

Variables

static std::map< std::pair< std::type_index, std::type_index >, MPI_Op > mpiOperations
 

Class Documentation

◆ ippl::mpi::dummy

struct ippl::mpi::dummy

Definition at line 54 of file Operations.h.

Collaboration diagram for ippl::mpi::dummy:
Collaboration graph

◆ ippl::mpi::extractBinaryOperationKind

struct ippl::mpi::extractBinaryOperationKind
template<typename T>
struct ippl::mpi::extractBinaryOperationKind< T >

Helper struct to distinguish between the four basic associative operation types.

Template Parameters
T

Definition at line 33 of file Operations.h.

Collaboration diagram for ippl::mpi::extractBinaryOperationKind< T >:
Collaboration graph

Enumeration Type Documentation

◆ binaryOperationKind

enum struct ippl::mpi::binaryOperationKind
strong
Enumerator
SUM 
MIN 
MAX 
MULTIPLICATION 

Definition at line 20 of file Operations.h.

Function Documentation

◆ deserializeLogs()

std::vector< LogEntry > ippl::mpi::deserializeLogs ( const std::vector< char > &  buffer)

Definition at line 79 of file CommunicatorLogging.cpp.

References ippl::LogEntry::deserialize(), and ippl::LogEntry::serialize().

Referenced by ippl::mpi::Communicator::gatherLogsFromAllRanks().

Here is the call graph for this function:

◆ get_mpi_datatype()

template<typename T >
MPI_Datatype ippl::mpi::get_mpi_datatype ( const T )

Definition at line 65 of file DataTypes.h.

References end(), Expressions::find(), and ippl::mpi::core::type_names.

Here is the call graph for this function:

◆ get_mpi_op()

template<typename Op , typename Datatype >
MPI_Op ippl::mpi::get_mpi_op ( )

Definition at line 206 of file Operations.h.

◆ serializeLogs()

std::vector< char > ippl::mpi::serializeLogs ( const std::vector< LogEntry > &  logs)

Definition at line 68 of file CommunicatorLogging.cpp.

Referenced by ippl::mpi::Communicator::sendLogsToRank0().

◆ wait()

void ippl::mpi::wait ( Request request,
Status status 
)

Definition at line 20 of file Wait.h.

◆ waitall()

template<std::contiguous_iterator InputIter, std::contiguous_iterator OutputIter>
void ippl::mpi::waitall ( InputIter  req_first,
InputIter  req_last,
OutputIter  sta_first 
)

Definition at line 15 of file Wait.h.

Variable Documentation

◆ mpiOperations

std::map<std::pair<std::type_index, std::type_index>, MPI_Op> ippl::mpi::mpiOperations
static