
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] | 
 1.5.5
 1.5.5