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" 41 #ifdef MEM_OPT_VERSION 42 #include "ParallelIOMgr.decl.h" 64 CkpvInitialize(
int,exitSchedHndlr);
65 CkpvAccess(exitSchedHndlr) = CmiRegisterHandler((CmiHandler)
exit_sched);
70 void* msg = CmiAlloc(CmiMsgHeaderSizeBytes);
71 CmiSetHandler(msg,CkpvAccess(exitSchedHndlr));
72 CmiSyncSendAndFree(pe,CmiMsgHeaderSizeBytes,(
char *)msg);
75 #if defined(WIN32) && !defined(__CYGWIN__) && !defined(__MINGW_H) 81 sprintf(tmp,
"Memory allocation failed on processor %d.",CmiMyPe());
83 #if defined(WIN32) && !defined(__CYGWIN__) && !defined(__MINGW_H) 96 int avxTilesCommandLineDisable = 0;
102 #if defined(WIN32) && !defined(__CYGWIN__) && !defined(__MINGW_H) 109 CmiGetArgFlag(argv,
"+idlepoll");
111 #if defined(NAMD_CUDA) || defined(NAMD_HIP) 113 argc = CmiGetArgc(argv);
116 CmiGetArgFlag(argv,
"+idlepoll");
118 argc = CmiGetArgc(argv);
121 avxTilesCommandLineDisable = CmiGetArgFlag(argv,
"+notiles");
124 #if defined(NAMD_CUDA) || defined(NAMD_HIP) 164 if (CkMyRank() < CkMyNodeSize())
182 group.
proxyMgr = CProxy_ProxyMgr::ckNew();
183 group.
patchMgr = CProxy_PatchMgr::ckNew();
184 group.
computeMgr = CProxy_ComputeMgr::ckNew();
187 group.
nodePmeMgr = CProxy_NodePmeMgr::ckNew();
188 #if defined(NAMD_CUDA) || defined(NAMD_HIP) 189 group.
patchData = CProxy_PatchData::ckNew();
193 #ifdef OPENATOM_VERSION 194 group.computeMoaMgr = CProxy_ComputeMoaMgr::ckNew();
195 #endif // OPENATOM_VERSION 208 #ifdef MEM_OPT_VERSION 209 group.
ioMgr=CProxy_ParallelIOMgr::ckNew();
212 group.
sync = CProxy_Sync::ckNew();
214 #ifdef USE_NODEPATCHMGR 215 group.nodeProxyMgr = CProxy_NodeProxyMgr::ckNew();
218 #if CMK_SMP && USE_CKLOOP 219 group.ckLoop = CkLoop_Init();
222 CkChareID collectionMaster = CProxy_CollectionMaster::ckNew(0);
224 initmsg7->
master = collectionMaster;
234 CkGroupID node = CProxy_Node::ckNew(msg);
236 CkStartQD(CkCallback(CkIndex_Node::exitScheduler(), CkMyPe(), node));
253 #if defined(NAMD_CUDA) || defined(NAMD_HIP) || defined(NAMD_MIC) 256 for (
int i = 0; i < argc; ++i ) {
257 if ( 0==strcmp(argv[i],
"+idlepoll") ) {
267 #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 269 NAMD_die(
"Please add +idlepoll to command line for proper performance.");
280 CmiPrintf(
"====================================================\n\n" 281 "WallClock: %f CPUTime: %f Memory: %f MB\n",
286 #if defined(NAMD_CUDA) || defined(NAMD_HIP) 288 #if 0 && CMK_MULTICORE 289 CmiPrintf(
"EXITING ABNORMALLY TO AVOID HANGING CUDA RUNTIME THREADS\n");
295 #if 0 && CMK_MULTICORE 296 CmiPrintf(
"EXITING ABNORMALLY TO AVOID HANGING MIC OFFLOAD THREADS\n");
297 #pragma offload target(mic) 303 #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 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)