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)