Namespaces | |
namespace | MPIPatternP2PInternal |
Classes | |
class | MPICommunicatorP2P |
class | MPIErrorCodeHandler |
class | MPIPatternP2P |
A class template to store the communication pattern (i.e., which entries/nodes to receive from which processor and which entries/nodes to send to which processor). More... | |
class | MPIRequestersBase |
class | MPIRequestersNBX |
struct | Types |
A simple struct to return the MPIDatatype based on the user provided primitive data type (e.g., int, double, char, etc) More... | |
struct | Types< char > |
struct | Types< double > |
struct | Types< float > |
struct | Types< int > |
struct | Types< long > |
struct | Types< long double > |
struct | Types< long long int > |
struct | Types< short > |
struct | Types< signed char > |
struct | Types< std::complex< double > > |
struct | Types< std::complex< float > > |
struct | Types< unsigned char > |
struct | Types< unsigned int > |
struct | Types< unsigned long > |
struct | Types< unsigned long long int > |
struct | Types< unsigned short > |
struct | Types< wchar_t > |
Typedefs | |
using | ErrorCode = int |
The following provides a unified framework to use typedefs that will be valid both with and without the use of an MPI library. This allows the user to write application code in terms of the following typedefs, and as a result, compile the code successfully both with and without MPI. The idea is that while not using an MPI library, we uses aliases (typedefs) for the MPI datatypes (e.g.m MPIFloat, MPIByte, etc.) On the other hand, while not using an MPI library, the same aliases are equated to int (integer). The choice of int is arbitrary, one can use any other low-memory datatype (e.e., char, unsigned cha, etc) More... | |
using | MPI_Status = struct { int count=0 |
using | MPIInfo = int |
using | MPIDatatype = int |
using | MPIComm = int |
using | MPIRequest = int |
using | MPIStatus = int |
using | MPIGroup = int |
using | MPIOp = int |
using | MPIErrhandler = int |
using | MPIUserFunction = void(void *, void *, int *, MPIDatatype *) |
Enumerations | |
enum class | MPITags : std::uint16_t { DUMMY_MPI_TAG = 100 , MPI_REQUESTERS_NBX_TAG , MPI_P2P_PATTERN_TAG , MPI_P2P_COMMUNICATOR_SCATTER_TAG , MPI_P2P_COMMUNICATOR_GATHER_TAG = MPI_P2P_COMMUNICATOR_SCATTER_TAG + 200 } |
Functions | |
int | MPITypeContiguous (int count, MPIDatatype oldtype, MPIDatatype *newtype) |
int | MPIBarrier (MPIComm comm) |
int | MPIIbarrier (MPIComm comm, MPIRequest *request) |
int | MPICommCreateGroup (MPIComm comm, MPIGroup group, int tag, MPIComm *newcomm) |
int | MPICommFree (MPIComm *comm) |
int | MPICommGroup (MPIComm comm, MPIGroup *group) |
int | MPICommRank (MPIComm comm, int *rank) |
int | MPICommSize (MPIComm comm, int *size) |
int | MPIGroupFree (MPIGroup *group) |
int | MPIGroupIncl (MPIGroup group, int n, const int ranks[], MPIGroup *newgroup) |
int | MPIGroupTranslateRanks (MPIGroup group1, int n, const int ranks1[], MPIGroup group2, int ranks2[]) |
int | MPIInit (int *argc, char ***argv) |
int | MPIInitialized (int *flag) |
int | MPIIprobe (int source, int tag, MPIComm comm, int *flag, MPIStatus *status) |
int | MPITest (MPIRequest *request, int *flag, MPIStatus *status) |
int | MPITestall (int count, MPIRequest *requests, int *flag, MPIStatus *statuses) |
int | MPIInitThread (int *argc, char ***argv, int required, int *provided) |
int | MPIOpCreate (MPIUserFunction *user_fn, int commute, MPIOp *op) |
int | MPIOpFree (MPIOp *op) |
int | MPIRequestFree (MPIRequest *request) |
int | MPITypeCommit (MPIDatatype *datatype) |
int | MPITypeFree (MPIDatatype *datatype) |
int | MPITypeVector (int count, int blocklength, int stride, MPIDatatype oldtype, MPIDatatype *newtype) |
int | MPIWait (MPIRequest *request, MPIStatus *status) |
int | MPIWaitall (int count, MPIRequest requests[], MPIStatus statuses[]) |
int | MPIErrorString (int errorcode, char *string, int *resultlen) |
int | MPIFinalize (void) |
int | MPIFinalized (int *flag) |
double | MPIWtime (void) |
bool | MPIErrIsSuccess (int errCode) |
std::string | MPIErrMsg (int errCode) |
std::pair< bool, std::string > | MPIErrIsSuccessAndMsg (int errCode) |
template<MemorySpace memorySpace> | |
int | MPIAllreduce (const void *sendbuf, void *recvbuf, int count, MPIDatatype datatype, MPIOp op, MPIComm comm) |
template<MemorySpace memorySpace> | |
int | MPIAllgather (const void *sendbuf, int sendcount, MPIDatatype sendtype, void *recvbuf, int recvcount, MPIDatatype recvtype, MPIComm comm) |
template<MemorySpace memorySpace> | |
int | MPIAllgatherv (const void *sendbuf, int sendcount, MPIDatatype sendtype, void *recvbuf, const int *recvcounts, const int *displs, MPIDatatype recvtype, MPIComm comm) |
template<MemorySpace memorySpace> | |
int | MPIBcast (void *buffer, int count, MPIDatatype datatype, int root, MPIComm comm) |
template<MemorySpace memorySpace> | |
int | MPIIrecv (void *buf, int count, MPIDatatype datatype, int source, int tag, MPIComm comm, MPIRequest *request) |
template<MemorySpace memorySpace> | |
int | MPIIsend (const void *buf, int count, MPIDatatype datatype, int dest, int tag, MPIComm comm, MPIRequest *request) |
template<MemorySpace memorySpace> | |
int | MPIRecv (void *buf, int count, MPIDatatype datatype, int source, int tag, MPIComm comm, MPIStatus *status) |
template<MemorySpace memorySpace> | |
int | MPIReduce (void *sendbuf, void *recvbuf, int count, MPIDatatype datatype, MPIOp op, int root, MPIComm comm) |
template<MemorySpace memorySpace> | |
int | MPISend (const void *buf, int count, MPIDatatype datatype, int dest, int tag, MPIComm comm) |
template<MemorySpace memorySpace> | |
int | MPISendrecv (const void *sendbuf, int sendcount, MPIDatatype sendtype, int dest, int sendtag, void *recvbuf, int recvcount, MPIDatatype recvtype, int source, int recvtag, MPIComm comm, MPIStatus *status) |
template<MemorySpace memorySpace> | |
int | MPIIssend (const void *buf, int count, MPIDatatype datatype, int dest, int tag, MPIComm comm, MPIRequest *request) |
template<MemorySpace memorySpace> | |
int | MPISsend (const void *buf, int count, MPIDatatype datatype, int dest, int tag, MPIComm comm) |
using dftefe::utils::mpi::ErrorCode = typedef int |
The following provides a unified framework to use typedefs that will be valid both with and without the use of an MPI library. This allows the user to write application code in terms of the following typedefs, and as a result, compile the code successfully both with and without MPI. The idea is that while not using an MPI library, we uses aliases (typedefs) for the MPI datatypes (e.g.m MPIFloat, MPIByte, etc.) On the other hand, while not using an MPI library, the same aliases are equated to int (integer). The choice of int is arbitrary, one can use any other low-memory datatype (e.e., char, unsigned cha, etc)
There are several useful and widely used macros that are defined in mpi.h (e.g., MPIAnyTag, MPIStatusIgnore, etc.). Thus, for the case where an MPI library is not used, we define those macros with default integral values. As as result, one can use those macros in an application code, irrespective of the use of an MPI library.
using dftefe::utils::mpi::MPI_Status = typedef struct { int count = 0 |
using dftefe::utils::mpi::MPIComm = typedef int |
using dftefe::utils::mpi::MPIDatatype = typedef int |
using dftefe::utils::mpi::MPIErrhandler = typedef int |
using dftefe::utils::mpi::MPIGroup = typedef int |
using dftefe::utils::mpi::MPIInfo = typedef int |
using dftefe::utils::mpi::MPIOp = typedef int |
using dftefe::utils::mpi::MPIRequest = typedef int |
using dftefe::utils::mpi::MPIStatus = typedef int |
using dftefe::utils::mpi::MPIUserFunction = typedef void(void *, void *, int *, MPIDatatype *) |
|
strong |
int dftefe::utils::mpi::MPIAllgather | ( | const void * | sendbuf, |
int | sendcount, | ||
MPIDatatype | sendtype, | ||
void * | recvbuf, | ||
int | recvcount, | ||
MPIDatatype | recvtype, | ||
MPIComm | comm | ||
) |
int dftefe::utils::mpi::MPIAllgatherv | ( | const void * | sendbuf, |
int | sendcount, | ||
MPIDatatype | sendtype, | ||
void * | recvbuf, | ||
const int * | recvcounts, | ||
const int * | displs, | ||
MPIDatatype | recvtype, | ||
MPIComm | comm | ||
) |
int dftefe::utils::mpi::MPIAllreduce | ( | const void * | sendbuf, |
void * | recvbuf, | ||
int | count, | ||
MPIDatatype | datatype, | ||
MPIOp | op, | ||
MPIComm | comm | ||
) |
int dftefe::utils::mpi::MPIBarrier | ( | MPIComm | comm | ) |
int dftefe::utils::mpi::MPIBcast | ( | void * | buffer, |
int | count, | ||
MPIDatatype | datatype, | ||
int | root, | ||
MPIComm | comm | ||
) |
int dftefe::utils::mpi::MPICommCreateGroup | ( | MPIComm | comm, |
MPIGroup | group, | ||
int | tag, | ||
MPIComm * | newcomm | ||
) |
int dftefe::utils::mpi::MPICommFree | ( | MPIComm * | comm | ) |
int dftefe::utils::mpi::MPICommRank | ( | MPIComm | comm, |
int * | rank | ||
) |
int dftefe::utils::mpi::MPICommSize | ( | MPIComm | comm, |
int * | size | ||
) |
bool dftefe::utils::mpi::MPIErrIsSuccess | ( | int | errCode | ) |
std::pair< bool, std::string > dftefe::utils::mpi::MPIErrIsSuccessAndMsg | ( | int | errCode | ) |
std::string dftefe::utils::mpi::MPIErrMsg | ( | int | errCode | ) |
int dftefe::utils::mpi::MPIErrorString | ( | int | errorcode, |
char * | string, | ||
int * | resultlen | ||
) |
int dftefe::utils::mpi::MPIFinalize | ( | void | ) |
int dftefe::utils::mpi::MPIFinalized | ( | int * | flag | ) |
int dftefe::utils::mpi::MPIGroupFree | ( | MPIGroup * | group | ) |
int dftefe::utils::mpi::MPIGroupIncl | ( | MPIGroup | group, |
int | n, | ||
const int | ranks[], | ||
MPIGroup * | newgroup | ||
) |
int dftefe::utils::mpi::MPIGroupTranslateRanks | ( | MPIGroup | group1, |
int | n, | ||
const int | ranks1[], | ||
MPIGroup | group2, | ||
int | ranks2[] | ||
) |
int dftefe::utils::mpi::MPIIbarrier | ( | MPIComm | comm, |
MPIRequest * | request | ||
) |
int dftefe::utils::mpi::MPIInit | ( | int * | argc, |
char *** | argv | ||
) |
int dftefe::utils::mpi::MPIInitialized | ( | int * | flag | ) |
int dftefe::utils::mpi::MPIInitThread | ( | int * | argc, |
char *** | argv, | ||
int | required, | ||
int * | provided | ||
) |
int dftefe::utils::mpi::MPIIprobe | ( | int | source, |
int | tag, | ||
MPIComm | comm, | ||
int * | flag, | ||
MPIStatus * | status | ||
) |
int dftefe::utils::mpi::MPIIrecv | ( | void * | buf, |
int | count, | ||
MPIDatatype | datatype, | ||
int | source, | ||
int | tag, | ||
MPIComm | comm, | ||
MPIRequest * | request | ||
) |
int dftefe::utils::mpi::MPIIsend | ( | const void * | buf, |
int | count, | ||
MPIDatatype | datatype, | ||
int | dest, | ||
int | tag, | ||
MPIComm | comm, | ||
MPIRequest * | request | ||
) |
int dftefe::utils::mpi::MPIIssend | ( | const void * | buf, |
int | count, | ||
MPIDatatype | datatype, | ||
int | dest, | ||
int | tag, | ||
MPIComm | comm, | ||
MPIRequest * | request | ||
) |
int dftefe::utils::mpi::MPIOpCreate | ( | MPIUserFunction * | user_fn, |
int | commute, | ||
MPIOp * | op | ||
) |
int dftefe::utils::mpi::MPIOpFree | ( | MPIOp * | op | ) |
int dftefe::utils::mpi::MPIRecv | ( | void * | buf, |
int | count, | ||
MPIDatatype | datatype, | ||
int | source, | ||
int | tag, | ||
MPIComm | comm, | ||
MPIStatus * | status | ||
) |
int dftefe::utils::mpi::MPIReduce | ( | void * | sendbuf, |
void * | recvbuf, | ||
int | count, | ||
MPIDatatype | datatype, | ||
MPIOp | op, | ||
int | root, | ||
MPIComm | comm | ||
) |
int dftefe::utils::mpi::MPIRequestFree | ( | MPIRequest * | request | ) |
int dftefe::utils::mpi::MPISend | ( | const void * | buf, |
int | count, | ||
MPIDatatype | datatype, | ||
int | dest, | ||
int | tag, | ||
MPIComm | comm | ||
) |
int dftefe::utils::mpi::MPISendrecv | ( | const void * | sendbuf, |
int | sendcount, | ||
MPIDatatype | sendtype, | ||
int | dest, | ||
int | sendtag, | ||
void * | recvbuf, | ||
int | recvcount, | ||
MPIDatatype | recvtype, | ||
int | source, | ||
int | recvtag, | ||
MPIComm | comm, | ||
MPIStatus * | status | ||
) |
int dftefe::utils::mpi::MPISsend | ( | const void * | buf, |
int | count, | ||
MPIDatatype | datatype, | ||
int | dest, | ||
int | tag, | ||
MPIComm | comm | ||
) |
int dftefe::utils::mpi::MPITest | ( | MPIRequest * | request, |
int * | flag, | ||
MPIStatus * | status | ||
) |
int dftefe::utils::mpi::MPITestall | ( | int | count, |
MPIRequest * | requests, | ||
int * | flag, | ||
MPIStatus * | statuses | ||
) |
int dftefe::utils::mpi::MPITypeCommit | ( | MPIDatatype * | datatype | ) |
int dftefe::utils::mpi::MPITypeContiguous | ( | int | count, |
MPIDatatype | oldtype, | ||
MPIDatatype * | newtype | ||
) |
int dftefe::utils::mpi::MPITypeFree | ( | MPIDatatype * | datatype | ) |
int dftefe::utils::mpi::MPITypeVector | ( | int | count, |
int | blocklength, | ||
int | stride, | ||
MPIDatatype | oldtype, | ||
MPIDatatype * | newtype | ||
) |
int dftefe::utils::mpi::MPIWait | ( | MPIRequest * | request, |
MPIStatus * | status | ||
) |
int dftefe::utils::mpi::MPIWaitall | ( | int | count, |
MPIRequest | requests[], | ||
MPIStatus | statuses[] | ||
) |
double dftefe::utils::mpi::MPIWtime | ( | void | ) |
int dftefe::utils::mpi::cancelled = 0 |
int dftefe::utils::mpi::MPI_ERROR = 0 |
int dftefe::utils::mpi::MPI_SOURCE = 0 |
int dftefe::utils::mpi::MPI_TAG = 0 |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |