Go to the source code of this file.
Namespaces | |
namespace | PUP |
Data Structures | |
class | PUP::zdisk |
class | PUP::tozDisk |
class | PUP::fromzDisk |
class | AmmEntry< T > |
class | Amm< T, N > |
class | AmpiOpHeader |
class | WinStruct |
class | lockQueueEntry |
class | win_obj |
class | KeyvalPair |
class | InfoStruct |
class | ampiTopology |
class | final |
class | final |
class | final |
class | KeyvalNode |
class | groupStruct |
class | ampiCommStruct |
class | AmpiRequest |
Represents an MPI request that has been initiated using Isend, Irecv, Ialltoall, Send_init, etc. More... | |
class | final |
class | final |
class | final |
class | final |
class | final |
class | final |
class | GPUReq |
class | final |
class | final |
class | AmpiRequestList |
class | memBuf |
class | final |
class | AmpiMsgPool |
class | AmpiRequestPool |
class | AmpiOtherElement |
Our local representation of another AMPI array element. More... | |
class | final |
class | greq_class_desc |
class | final |
Typedefs | |
typedef void(* | MPI_MigrateFn )(void) |
typedef void(* | AmmPupMessageFn )(PUP::er &p, void **msg) |
typedef CkQ< lockQueueEntry * > | LockQueue |
Enumerations | |
enum | AmpiCommType { WORLD = 0, INTRA = 1, INTER = 2 } |
enum | AmpiReqType { AMPI_INVALID_REQ = 0, AMPI_I_REQ = 1, AMPI_ATA_REQ = 2, AMPI_SEND_REQ = 3, AMPI_SSEND_REQ = 4, AMPI_REDN_REQ = 5, AMPI_GATHER_REQ = 6, AMPI_GATHERV_REQ = 7, AMPI_G_REQ = 8, AMPI_GPU_REQ } |
enum | AmpiReqSts { AMPI_REQ_PENDING = 0, AMPI_REQ_BLOCKED = 1, AMPI_REQ_COMPLETED = 2 } |
enum | AmpiSendType { BLOCKING_SEND = false, I_SEND = true } |
Functions | |
PUPfunctionpointer (MPI_User_function *) class OpStruct | |
PUPmarshall (ampiCommStruct) class mpi_comm_worlds | |
void | outputOp (const vector< int > &vec) noexcept |
int | getPosOp (int idx, const vector< int > &vec) noexcept |
vector< int > | unionOp (const vector< int > &vec1, const vector< int > &vec2) noexcept |
vector< int > | intersectOp (const vector< int > &vec1, const vector< int > &vec2) noexcept |
vector< int > | diffOp (const vector< int > &vec1, const vector< int > &vec2) noexcept |
int * | translateRanksOp (int n, const vector< int > &vec1, const int *ranks1, const vector< int > &vec2, int *ret) noexcept |
int | compareVecOp (const vector< int > &vec1, const vector< int > &vec2) noexcept |
vector< int > | inclOp (int n, const int *ranks, const vector< int > &vec) noexcept |
vector< int > | exclOp (int n, const int *ranks, const vector< int > &vec) noexcept |
vector< int > | rangeInclOp (int n, int ranges[][3], const vector< int > &vec, int *flag) noexcept |
vector< int > | rangeExclOp (int n, int ranges[][3], const vector< int > &vec, int *flag) noexcept |
void | operator| (PUP::er &p, AmpiReqType &r) |
template<class T> | |
void | pupIntoBuf (memBuf &b, T &t) noexcept |
template<class T> | |
void | pupFromBuf (const void *data, T &t) noexcept |
DefinePooledReqX (Size, sizeof) DefinePooledReqX(Align | |
PUPbytes (AmpiOtherElement) class AmpiSeqQ | |
PUPmarshall (AmpiSeqQ) inline CProxy_ampi ampiCommStruct | |
const ampiCommStruct & | universeComm2CommStruct (MPI_Comm universeNo) noexcept |
ampiParent * | getAmpiParent () noexcept |
bool | isAmpiThread () noexcept |
ampi * | getAmpiInstance (MPI_Comm comm) noexcept |
void | checkComm (MPI_Comm comm) noexcept |
void | checkRequest (MPI_Request req) noexcept |
void | handle_MPI_BOTTOM (void *&buf, MPI_Datatype type) noexcept |
void | handle_MPI_BOTTOM (void *&buf1, MPI_Datatype type1, void *&buf2, MPI_Datatype type2) noexcept |
int | ampiErrhandler (const char *func, int errcode) noexcept |
Variables | |
char * | ampi_binary_path |
static CkListString | msgLogRanks |
static int | msgLogWrite |
static int | msgLogRead |
static char * | msgLogFilename |
int | AMPI_RDMA_THRESHOLD |
int | AMPI_SMP_RDMA_THRESHOLD |
int | _mpi_nworlds |
static const char * | funclist [] |
typedef void(* MPI_MigrateFn)(void) |
Definition at line 133 of file ampiimpl.h.
typedef void(* AmmPupMessageFn)(PUP::er &p, void **msg) |
Definition at line 155 of file ampiimpl.h.
typedef CkQ<lockQueueEntry *> LockQueue |
Definition at line 325 of file ampiimpl.h.
enum AmpiCommType |
enum AmpiReqType |
AMPI_INVALID_REQ | |
AMPI_I_REQ | |
AMPI_ATA_REQ | |
AMPI_SEND_REQ | |
AMPI_SSEND_REQ | |
AMPI_REDN_REQ | |
AMPI_GATHER_REQ | |
AMPI_GATHERV_REQ | |
AMPI_G_REQ | |
AMPI_GPU_REQ |
Definition at line 1061 of file ampiimpl.h.
enum AmpiReqSts |
Definition at line 1080 of file ampiimpl.h.
enum AmpiSendType |
PUPfunctionpointer | ( | MPI_User_function * | ) |
Definition at line 235 of file ampiimpl.h.
References c, free(), init(), and Amm< T, N >::pup().
PUPmarshall | ( | ampiCommStruct | ) |
Definition at line 875 of file ampiimpl.h.
References p, and Amm< T, N >::pup().
void outputOp | ( | const vector< int > & | vec | ) | [inline] |
Definition at line 888 of file ampiimpl.h.
Definition at line 900 of file ampiimpl.h.
Referenced by compareVecOp(), diffOp(), final::getRank(), intersectOp(), translateRanksOp(), and unionOp().
Definition at line 909 of file ampiimpl.h.
References getPosOp().
Referenced by AMPI_API_IMPL().
Definition at line 919 of file ampiimpl.h.
References getPosOp().
Referenced by AMPI_API_IMPL().
Definition at line 929 of file ampiimpl.h.
References getPosOp().
Referenced by AMPI_API_IMPL().
int* translateRanksOp | ( | int | n, | |
const vector< int > & | vec1, | |||
const int * | ranks1, | |||
const vector< int > & | vec2, | |||
int * | ret | |||
) | [inline] |
Definition at line 939 of file ampiimpl.h.
References getPosOp(), n, and ranks1.
Referenced by AMPI_API_IMPL().
Definition at line 947 of file ampiimpl.h.
References getPosOp().
Referenced by AMPI_API_IMPL().
Definition at line 964 of file ampiimpl.h.
Referenced by AMPI_API_IMPL().
Definition at line 972 of file ampiimpl.h.
Referenced by AMPI_API_IMPL(), and rangeExclOp().
Definition at line 992 of file ampiimpl.h.
References Amm< T, N >::first, flag, n, ranges, and stride.
Referenced by AMPI_API_IMPL().
Definition at line 1014 of file ampiimpl.h.
References exclOp(), Amm< T, N >::first, flag, n, ranges, ranks, and stride.
Referenced by AMPI_API_IMPL().
void operator| | ( | PUP::er & | p, | |
AmpiReqType & | r | |||
) | [inline] |
Definition at line 1076 of file ampiimpl.h.
References pup_bytes().
void pupIntoBuf | ( | memBuf & | b, | |
T & | t | |||
) | [inline] |
Definition at line 1597 of file ampiimpl.h.
References PUP::b, PUP::sizer::size(), and PUP::t.
Referenced by ampiCreateMain().
void pupFromBuf | ( | const void * | data, | |
T & | t | |||
) | [inline] |
Definition at line 1604 of file ampiimpl.h.
References data, p, and PUP::t.
Referenced by PUPmarshall().
DefinePooledReqX | ( | Size | , | |
sizeof | ||||
) |
PUPbytes | ( | AmpiOtherElement | ) |
Insert this message in the table. Returns the number of messages now available for the element. If 0, the message was out-of-order and is buffered. If 1, this message can be immediately processed. If >1, this message can be immediately processed, and you should call "getOutOfOrder" repeatedly.
Is this message in order (return >0) or not (return 0)? Same as put() except we don't call putOutOfOrder() here, so the caller should do that separately
Get an out-of-order message from the table. (in-order messages never go into the table)
Stash an out-of-order message
Increment the outgoing sequence number.
Return the next outgoing sequence number, and increment it.
Definition at line 1842 of file ampiimpl.h.
References AmpiOtherElement::getNumOutOfOrder(), AmpiOtherElement::getSeqIncoming(), AmpiOtherElement::getSeqOutgoing(), AmpiOtherElement::incSeqIncoming(), AmpiOtherElement::incSeqOutgoing(), min(), p, Amm< T, N >::pup(), Amm< T, N >::put(), and srcRank.
PUPmarshall | ( | AmpiSeqQ | ) |
Definition at line 1907 of file ampiimpl.h.
const ampiCommStruct& universeComm2CommStruct | ( | MPI_Comm | universeNo | ) |
Definition at line 2615 of file ampi.C.
Referenced by final::comm2CommStruct().
ampiParent* getAmpiParent | ( | ) |
Definition at line 3876 of file ampi.C.
References p.
Referenced by AMPI_API_IMPL(), AMPI_Iget(), AMPI_Iget_free(), AMPI_Iget_wait(), AMPI_Load_set_value(), AMPI_Migrate(), AMPI_Print(), AMPI_Register_about_to_migrate(), AMPI_Register_just_migrated(), AMPI_Set_migratable(), AMPI_Suspend(), AMPI_Yield(), ampiInit(), checkComm(), errorCheck(), getAmpiInstance(), getDDT(), getReqs(), makeRednMsg(), testRequest(), and GPUReq::wait().
bool isAmpiThread | ( | ) |
Definition at line 3892 of file ampi.C.
Referenced by AMPI_API_IMPL().
ampi* getAmpiInstance | ( | MPI_Comm | comm | ) |
Definition at line 3884 of file ampi.C.
References getAmpiParent().
Referenced by AMPI_Alltoall_long(), AMPI_Alltoall_medium(), AMPI_Alltoall_short(), AMPI_API_IMPL(), AMPI_GPU_Iinvoke(), AMPI_GPU_Iinvoke_wr(), AMPI_Iget(), AMPI_Iget_free(), AMPI_Iget_wait(), AMPI_Migrate(), AMPI_Resume(), AMPI_Set_start_event(), checkRank(), createCommSelf(), GPUReq::GPUReq(), MPI_Pack_size(), MPICH_Localcopy(), MPID_Datatype_get_extent_macro(), and MPID_Datatype_get_size_macro().
void checkComm | ( | MPI_Comm | comm | ) | [inline] |
Definition at line 3900 of file ampi.C.
References getAmpiParent().
void checkRequest | ( | MPI_Request | req | ) | [inline] |
Definition at line 3906 of file ampi.C.
References AmpiRequestList::checkRequest(), and getReqs().
Referenced by AMPI_API_IMPL(), testRequest(), and testRequestNoFree().
void handle_MPI_BOTTOM | ( | void *& | buf, | |
MPI_Datatype | type | |||
) |
Definition at line 2922 of file ampi.C.
References getDDT(), CkDDT_DataType::getLB(), CkDDT::getType(), CkDDT_DataType::setAbsolute(), and type.
Referenced by AMPI_API_IMPL().
void handle_MPI_BOTTOM | ( | void *& | buf1, | |
MPI_Datatype | type1, | |||
void *& | buf2, | |||
MPI_Datatype | type2 | |||
) |
Definition at line 2930 of file ampi.C.
References getDDT(), CkDDT_DataType::getLB(), CkDDT::getType(), and CkDDT_DataType::setAbsolute().
Definition at line 43 of file ampi.C.
Referenced by AMPI_API_IMPL(), checkBuf(), checkCommunicator(), checkCount(), checkData(), checkRank(), checkTag(), and errorCheck().
char* ampi_binary_path |
CkListString msgLogRanks [static] |
int msgLogWrite [static] |
int msgLogRead [static] |
char* msgLogFilename [static] |
const char* funclist[] [static] |