14 #if defined(WIN32) && !defined(__CYGWIN__) 21 #include "main.decl.h" 24 #include "WorkDistrib.decl.h" 25 #include "ProxyMgr.decl.h" 26 #include "PatchMgr.decl.h" 27 #include "DataExchanger.decl.h" 29 #include "ComputeMgr.decl.h" 31 #include "ReductionMgr.decl.h" 32 #include "CollectionMgr.decl.h" 33 #include "CollectionMaster.decl.h" 36 #include "BroadcastMgr.decl.h" 37 #include "LdbCoordinator.decl.h" 38 #include "Sync.decl.h" 39 #include "PatchData.decl.h" 40 #include "GlobalGPUMgr.decl.h" 41 #include "SynchronousCollectives.decl.h" 43 #ifdef MEM_OPT_VERSION 44 #include "ParallelIOMgr.decl.h" 66 CkpvInitialize(
int,exitSchedHndlr);
67 CkpvAccess(exitSchedHndlr) = CmiRegisterHandler((CmiHandler)
exit_sched);
72 void* msg = CmiAlloc(CmiMsgHeaderSizeBytes);
73 CmiSetHandler(msg,CkpvAccess(exitSchedHndlr));
74 CmiSyncSendAndFree(pe,CmiMsgHeaderSizeBytes,(
char *)msg);
77 #if defined(WIN32) && !defined(__CYGWIN__) && !defined(__MINGW_H) 83 sprintf(tmp,
"Memory allocation failed on processor %d.",CmiMyPe());
85 #if defined(WIN32) && !defined(__CYGWIN__) && !defined(__MINGW_H) 98 int avxTilesCommandLineDisable = 0;
104 #if defined(WIN32) && !defined(__CYGWIN__) && !defined(__MINGW_H) 111 CmiGetArgFlag(argv,
"+idlepoll");
113 #if defined(NAMD_CUDA) || defined(NAMD_HIP) 115 argc = CmiGetArgc(argv);
118 CmiGetArgFlag(argv,
"+idlepoll");
120 argc = CmiGetArgc(argv);
123 avxTilesCommandLineDisable = CmiGetArgFlag(argv,
"+notiles");
126 #if defined(NAMD_CUDA) || defined(NAMD_HIP) 166 if (CkMyRank() < CkMyNodeSize())
184 group.
proxyMgr = CProxy_ProxyMgr::ckNew();
185 group.
patchMgr = CProxy_PatchMgr::ckNew();
186 group.
computeMgr = CProxy_ComputeMgr::ckNew();
189 group.
nodePmeMgr = CProxy_NodePmeMgr::ckNew();
190 #if defined(NAMD_CUDA) || defined(NAMD_HIP) 191 group.
patchData = CProxy_PatchData::ckNew();
195 #ifdef OPENATOM_VERSION 196 group.computeMoaMgr = CProxy_ComputeMoaMgr::ckNew();
197 #endif // OPENATOM_VERSION 210 #ifdef MEM_OPT_VERSION 211 group.
ioMgr=CProxy_ParallelIOMgr::ckNew();
214 group.
sync = CProxy_Sync::ckNew();
216 #ifdef USE_NODEPATCHMGR 217 group.nodeProxyMgr = CProxy_NodeProxyMgr::ckNew();
220 #if defined(NAMD_CUDA) || defined(NAMD_HIP) 225 #if CMK_SMP && USE_CKLOOP 226 group.ckLoop = CkLoop_Init();
229 CkChareID collectionMaster = CProxy_CollectionMaster::ckNew(0);
231 initmsg7->
master = collectionMaster;
241 CkGroupID node = CProxy_Node::ckNew(msg);
243 CkStartQD(CkCallback(CkIndex_Node::exitScheduler(), CkMyPe(), node));
260 #if defined(NAMD_CUDA) || defined(NAMD_HIP) || defined(NAMD_MIC) 263 for (
int i = 0; i < argc; ++i ) {
264 if ( 0==strcmp(argv[i],
"+idlepoll") ) {
274 #if (defined(NAMD_CUDA) || defined(NAMD_HIP) || defined(NAMD_MIC)) && CMK_NET_VERSION && CMK_SHARED_VARS_UNAVAILABLE && CMK_WHEN_PROCESSOR_IDLE_USLEEP && ! CMK_USE_IBVERBS && ! CMK_USE_TCP 276 NAMD_die(
"Please add +idlepoll to command line for proper performance.");
287 CmiPrintf(
"====================================================\n\n" 288 "WallClock: %f CPUTime: %f Memory: %f MB\n",
293 #if defined(NAMD_CUDA) || defined(NAMD_HIP) 295 #if 0 && CMK_MULTICORE 296 CmiPrintf(
"EXITING ABNORMALLY TO AVOID HANGING CUDA RUNTIME THREADS\n");
302 #if 0 && CMK_MULTICORE 303 CmiPrintf(
"EXITING ABNORMALLY TO AVOID HANGING MIC OFFLOAD THREADS\n");
304 #pragma offload target(mic) 310 #if CHARM_VERSION < 61000
static void ExitSchedOn(int pe)
void after_backend_init(int argc, char **argv)
void all_init(int argc, char **argv)
void cuda_getargs(char **)
CkGroupID computeLjPmeSerialMgr
static void exit(int status=0)
CkGroupID computeMsmMsaMgr
static void suspend(void)
static void init(int argc, char **argv)
void master_init(int argc, char **argv)
CkGroupID computePmeCUDAMgr
CkGroupID computeMsmSerialMgr
void enableExitScheduler(void)
void ProcessorPrivateInit(void)
CkGroupID synchronousCollectives
CkGroupID computeGBISserMgr
void NAMD_die(const char *err_msg)
void exit_sched(void *msg)
void mic_getargs(char **)
void topo_getargs(char **)
static void barrier(void)
void _initCharm(int, char **)
static void register_exit_sched(void)
void slave_init(int argc, char **argv)
CkGroupID computeFmmSerialMgr
void cuda_affinity_initialize()
CkpvStaticDeclare(int, exitSchedHndlr)