Go to the source code of this file.
Definition in file machine.C.
typedef struct mpiPostRecvList MPIPostRecvList |
typedef struct IRecvListEntry* IRecvList |
typedef struct crashedrank crashedRankList |
enum mpiMsgTypes |
static char* strsignal | ( | int | sig | ) | [static] |
Definition at line 28 of file machine.C.
References outbuf.
Referenced by SendMsgBuf().
CpvStaticDeclare | ( | double | , | |
projTraceStart | ||||
) |
CpvDeclare | ( | MPIPostRecvList * | , | |
postRecvListHdr | ||||
) |
CpvDeclare | ( | MPIPostRecvList * | , | |
curPostRecvPtr | ||||
) |
CpvDeclare | ( | int | , | |
msgRecvCnt | ||||
) |
CpvDeclare | ( | unsigned long | long, | |
Cmi_posted_recv_total | ||||
) |
CpvDeclare | ( | unsigned long | long, | |
Cmi_unposted_recv_total | ||||
) |
CpvDeclare | ( | MPI_Request * | , | |
CmiPostedRecvRequests | ||||
) |
CpvDeclare | ( | char ** | , | |
CmiPostedRecvBuffers | ||||
) |
CpvDeclare | ( | int * | , | |
MSG_HISTOGRAM_ARRAY | ||||
) |
static void recordMsgHistogramInfo | ( | int | size | ) | [static] |
static void reportMsgHistogramInfo | ( | void | ) | [static] |
static IRecvList irecvListEntryAllocate | ( | void | ) | [static] |
Definition at line 240 of file machine.C.
References malloc(), and IRecvListEntry::next.
Referenced by PumpMsgs(), recvViaCtrlMsg(), and SendMsgBuf().
static void irecvListEntryFree | ( | IRecvList | used | ) | [static] |
Definition at line 251 of file machine.C.
References IRecvListEntry::next.
Referenced by PumpMsgs().
void CmiSetupMachineRecvBuffers | ( | void | ) |
void(*) signal_int | ( | int | ) |
CpvDeclare | ( | crashedRankList * | , | |
crashedRankHdr | ||||
) |
CpvDeclare | ( | crashedRankList * | , | |
crashedRankPtr | ||||
) |
Referenced by CheckAllAsyncMsgsSent(), ReleasePostedMessages(), and SendMsgBuf().
CpvDeclare | ( | SMSG_LIST * | , | |
sent_msgs | ||||
) |
CpvDeclare | ( | SMSG_LIST * | , | |
end_sent | ||||
) |
CpvDeclare | ( | int | , | |
MsgQueueLen | ||||
) |
void mpi_end_spare | ( | void | ) |
static size_t CheckAllAsyncMsgsSent | ( | void | ) | [static] |
Definition at line 561 of file machine.C.
References CmiAbort(), CpuTopoDetails::done, msg_list::dstrank, isRankDie(), msg_list::next, and msg_list::req.
Referenced by SendMsgBuf().
static void ReleasePostedMessages | ( | void | ) | [static] |
Definition at line 608 of file machine.C.
References ncpystruct::ackMode, CmiAbort(), CmiFree(), CmiInvokeNcpyAck(), CmiMyPe(), CmiWallTimer(), msg_list::destpe, CpuTopoDetails::done, msg_list::dstrank, free(), ncpystruct::freeMe, isRankDie(), msg_list::msg, msg_list::next, ONESIDED_BUFFER_DIRECT_RECV, ONESIDED_BUFFER_DIRECT_SEND, POST_DIRECT_RECV, POST_DIRECT_SEND, msg_list::ref, msg_list::req, startT, traceUserSuppliedBracketedNote(), and msg_list::type.
Referenced by MPISendOneMsg(), and SendMsgBuf().
static int PumpMsgs | ( | void | ) | [static] |
Definition at line 695 of file machine.C.
References mpiPostRecvList::bufCnt, charmComm, CMI_DYNAMIC_OUTGOING_THRESHOLD, CMI_DYNAMIC_RECV_CAPSIZE, CmiAbort(), CmiAlloc(), CmiFree(), CmiPrintf(), ncpystruct::destPe, ncpystruct::destPtr, dynamicRecvCap, handleOneRecvedMsg(), IRECV_MSG_THRESHOLD, irecvListEntryAllocate(), irecvListEntryFree(), MPI_Irecv, MPI_POST_RECV_INC, MPI_POST_RECV_LOWERSIZE, MPI_POST_RECV_SIZE, MPI_Status::MPI_SOURCE, MPI_Status::MPI_TAG, MPIPostOneBuffer(), IRecvListEntry::msg, msg, mpiPostRecvList::msgSizeIdx, IRecvListEntry::next, mpiPostRecvList::next, ONESIDED_BUFFER_DIRECT_RECV, ONESIDED_BUFFER_DIRECT_SEND, PCQueueLength(), POST_DIRECT_RECV, POST_DIRECT_SEND, mpiPostRecvList::postedRecvBufs, mpiPostRecvList::postedRecvReqs, recordMsgHistogramInfo(), RECV_CAP, recvViaCtrlMsg(), REGULAR, IRecvListEntry::req, resetNcpyOpInfoPointers(), IRecvListEntry::size, ncpystruct::srcPe, ncpystruct::srcPtr, ncpystruct::srcSize, and ncpystruct::tag.
Referenced by MPISendOneMsg(), and SendMsgBuf().
static void PumpMsgsBlocking | ( | void | ) | [static] |
Definition at line 994 of file machine.C.
References buf, CdsFifo_Empty(), charmComm, CmiAbort(), CmiAlloc(), CmiGetState(), CmiMyPe(), CmiNodeFirst(), CmiPrintf(), CmiWallTimer(), CqsEmpty(), handleOneRecvedMsg(), msg, PCQueueEmpty(), and traceUserSuppliedBracketedNote().
Referenced by SendMsgBuf().
static int MsgQueueEmpty | ( | void | ) | [static] |
static int RecvQueueEmpty | ( | void | ) | [static] |
static int SendMsgBuf | ( | void | ) | [static] |
Obtain the number of nodes, my node id, and consuming machine layer specific arguments
Since the timerLock is never created, and is always NULL, then all the if-condition inside the timer functions could be disabled right now in the case of SMP. --Chao Mei
Definition at line 1042 of file machine.C.
References _absoluteTime, _Cmi_mynode, _Cmi_mynodesize, _thread_provided, argc, argv, mpiPostRecvList::bufCnt, charmComm, CharmLibInterOperate, CheckAllAsyncMsgsSent(), checksum_flag, CkDieNow(), CMI_DYNAMIC_OUTGOING_THRESHOLD, CMI_DYNAMIC_RECV_CAPSIZE, CMI_DYNAMIC_SEND_CAPSIZE, Cmi_smp_mode_setting, CmiAbort(), CmiAbortHelper(), CmiAlloc(), CmiBarrier(), CmiBarrierZero(), CmiCpuTimer(), CmiCreateLock(), CmiFree(), CmiGetArgc(), CmiGetArgFlag(), CmiGetArgFlagDesc(), CmiGetArgInt(), CmiHandleImmediate(), CmiInitTime(), CmiLock(), CmiMachineProgressImpl(), CmiMyPe(), CmiMyRank(), CmiNodeAllBarrier(), CmiNodeFirst(), CmiNotifyIdleForMPI(), CmiPrintf(), CmiStartTimer(), CmiTimer(), CmiTimerAbsolute(), CmiTimerInit(), CmiTimerIsSynchronized(), CmiUnlock(), CmiWallTimer(), COMM_THREAD_ONLY_RECV, COMM_THREAD_SEND_RECV, CommunicationServerThread(), count, createCtrlMsgIrecvBufs(), debug, CpuTopoDetails::done, dynamicSendCap, find_spare_mpirank(), flag, free(), handleOneRecvedMsg(), high, idleblock, idx, IRECV_MSG_THRESHOLD, irecvListEntryAllocate(), isRankDie(), LrtsAbort(), LrtsAdvanceCommunication(), LrtsBarrier(), LrtsBeginIdle(), LrtsDrainResources(), LrtsExit(), LrtsInit(), LrtsNotifyIdle(), LrtsPostCommonInit(), LrtsPostNonLocal(), LrtsPreCommonInit(), LrtsStillIdle(), PUP::m, malloc(), MAX_HISTOGRAM_BUCKETS, message, MPI_Abort, MPI_Allreduce, MPI_Barrier, MPI_Bcast, MPI_Cancel, MPI_Comm_dup, MPI_Comm_get_attr, MPI_Comm_rank, MPI_CTRL_MSG_CNT, mpi_end_spare(), MPI_Finalize, MPI_Get_version, MPI_Init, MPI_Irecv, MPI_POST_RECV_COUNT, MPI_POST_RECV_FREQ, MPI_POST_RECV_INC, MPI_POST_RECV_LOWERSIZE, MPI_POST_RECV_MSG_CNT_THRESHOLD, MPI_POST_RECV_MSG_INC, MPI_POST_RECV_SIZE, MPI_POST_RECV_UPPERSIZE, mpi_restart_crashed(), MPISendOneMsg(), MPISendOrRecvOneBuffer(), msg, MSG_HISTOGRAM_BINSIZE, MsgQueueEmpty(), mpiPostRecvList::msgSizeIdx, n, crashedrank::next, IRecvListEntry::next, mpiPostRecvList::next, nextrank, no_outstanding_sends, num_workpes, ONESIDED_BUFFER_DIRECT_RECV, ONESIDED_BUFFER_DIRECT_SEND, PCQueueCreate(), PCQueueEmpty(), PCQueuePop(), petorank, mpiPostRecvList::postedRecvBufs, mpiPostRecvList::postedRecvReqs, ProcState::postMsgBuf, postMsgBufLock, PumpMsgs(), PumpMsgsBlocking(), quietMode, crashedrank::rank, rank, rdmaTagLock, recordMsgHistogramInfo(), CmiStateStruct::recv, RECV_CAP, ProcState::recvLock, RecvQueueEmpty(), msg_list::ref, registerMachineUserEventsFunction(), ReleasePostedMessages(), reportMsgHistogramInfo(), request_max, SEND_CAP, signal_int, size, sleep(), srcRank, strsignal(), PUP::t, ncpystruct::tag, tagUb, total_pes, traceRegisterUserEvent(), msg_list::type, and userDrivenMode.
Definition at line 442 of file machine.C.
References allocateSmsgList(), CmiMyRank(), msg_list::destpe, msg_list::mode, msg_list::msg, msg_list::next, PCQueueLength(), PCQueuePush(), msg_list::ref, and msg_list::size.
Referenced by LrtsIssueRget(), LrtsIssueRput(), and LrtsSendFunc().
void CmiNotifyIdleForMPI | ( | void | ) |
Definition at line 425 of file machine.C.
References msg_list::destpe, malloc(), msg_list::mode, msg_list::msg, msg_list::next, msg_list::ref, msg_list::size, and msg_list::type.
Referenced by EnqueueMsg(), LrtsIssueRget(), LrtsIssueRput(), LrtsSendFunc(), and MPIPostOneBuffer().
static CmiCommHandle MPISendOneMsg | ( | SMSG_LIST * | smsg | ) | [static] |
Definition at line 468 of file machine.C.
References charmComm, CmiAbort(), msg_list::destpe, msg_list::dstrank, msg_list::mode, MPI_Isend, MPI_POST_RECV_INC, MPI_POST_RECV_LOWERSIZE, MPI_POST_RECV_UPPERSIZE, msg_list::msg, msg, msg_list::next, petorank, PumpMsgs(), ReleasePostedMessages(), msg_list::req, request_max, sendViaCtrlMsg(), msg_list::size, and size.
Referenced by LrtsIssueRget(), LrtsIssueRput(), LrtsSendFunc(), and SendMsgBuf().
CmiCommHandle LrtsSendFunc | ( | int | destNode, | |
int | destPE, | |||
int | size, | |||
char * | msg, | |||
int | mode | |||
) |
Definition at line 540 of file machine.C.
References allocateSmsgList(), Cmi_smp_mode_setting, CmiGetState(), COMM_THREAD_SEND_RECV, EnqueueMsg(), MPISendOneMsg(), and REGULAR.
Referenced by CmiInterSendNetworkFunc().
int CheckAsyncMsgSent | ( | CmiCommHandle | c | ) |
Definition at line 585 of file machine.C.
References CmiAbort(), CpuTopoDetails::done, msg_list::next, and msg_list::req.
int CMI_DYNAMIC_OUTGOING_THRESHOLD = 4 [static] |
int CMI_DYNAMIC_SEND_CAPSIZE = 4 [static] |
int CMI_DYNAMIC_RECV_CAPSIZE = 3 [static] |
int dynamicSendCap = CMI_DYNAMIC_MAXCAPSIZE [static] |
int dynamicRecvCap = CMI_DYNAMIC_MAXCAPSIZE [static] |
Definition at line 75 of file machine.C.
Referenced by CharmLibInit(), createCtrlMsgIrecvBufs(), MPISendOneMsg(), MPISendOrRecvOneBuffer(), PumpMsgs(), PumpMsgsBlocking(), recvViaCtrlMsg(), SendMsgBuf(), and sendViaCtrlMsg().
int MPI_POST_RECV_COUNT = 10 [static] |
int MPI_POST_RECV_LOWERSIZE = 8000 [static] |
Definition at line 157 of file machine.C.
Referenced by MPISendOneMsg(), PumpMsgs(), and SendMsgBuf().
int MPI_POST_RECV_UPPERSIZE = 64000 [static] |
int MPI_POST_RECV_INC = 1000 [static] |
Definition at line 161 of file machine.C.
Referenced by MPISendOneMsg(), PumpMsgs(), and SendMsgBuf().
int MPI_POST_RECV_MSG_INC = 400 [static] |
int MPI_POST_RECV_MSG_CNT_THRESHOLD = 200 [static] |
int MPI_POST_RECV_FREQ = 1000 [static] |
int MPI_POST_RECV_SIZE [static] |
static int MSG_HISTOGRAM_BINSIZE = 1000 [static] |
static int MAX_HISTOGRAM_BUCKETS = 2000 [static] |
int IRECV_MSG_THRESHOLD = 8000 [static] |
IRecvList freedIrecvList = NULL [static] |
IRecvList waitIrecvListHead = NULL [static] |
IRecvList waitIrecvListTail = NULL [static] |
int checksum_flag = 0 [static] |
void(* signal_int)(int) |
int _thread_provided = -1 [static] |
Definition at line 324 of file machine.C.
Referenced by final::getSeqIdx(), final::getSrcRank(), AmpiMsgPool::newAmpiMsg(), final::pup(), PUPbytes(), RegisterCkLoopHdlrs(), SendMsgBuf(), and final::setSrcRank().
CmiNodeLock rdmaTagLock = 0 [static] |
int request_max [static] |
int no_outstanding_sends = 0 [static] |
int inside_comm = 0 |
CmiNodeLock postMsgBufLock = NULL [static] |
Definition at line 383 of file machine.C.
Referenced by MPISendOneMsg(), MPISendOrRecvOneBuffer(), and SendMsgBuf().