Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

BackEnd Class Reference

#include <BackEnd.h>

List of all members.

Static Public Member Functions

void init (int argc, char **argv)
void exit (void)
void suspend (void)
void awaken (void)
void barrier (void)
void ExitSchedOn (int pe)


Detailed Description

Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000 by The Board of Trustees of the University of Illinois. All rights reserved.

Definition at line 12 of file BackEnd.h.


Member Function Documentation

void BackEnd::awaken void   )  [static]
 

Definition at line 165 of file BackEnd.C.

References Node::enableExitScheduler(), and Node::Object().

Referenced by Controller::algorithm(), barrier(), and Controller::terminate().

00165                          {
00166   Node::Object()->enableExitScheduler();
00167 }

void BackEnd::barrier void   )  [static]
 

Definition at line 170 of file BackEnd.C.

References awaken(), and suspend().

00170                           {
00171   awaken();
00172   suspend();
00173 }

void BackEnd::exit void   )  [static]
 

Definition at line 147 of file BackEnd.C.

References ExitSchedOn(), and memusage().

Referenced by Node::earlyExit(), and main().

00147                        {
00148   float cpuTime = CmiCpuTimer() - cpuTime_start;
00149   float wallTime = CmiWallTimer() - wallTime_start;
00150   CmiPrintf("==========================================\n"
00151         "WallClock: %f  CPUTime: %f  Memory: %d kB\n",
00152         wallTime,cpuTime,memusage()/1024);
00153   int i;
00154   for(i=1; i < CmiNumPes(); i++)
00155     ExitSchedOn(i);
00156   ConverseExit();
00157 }

void BackEnd::ExitSchedOn int  pe  )  [static]
 

Definition at line 57 of file BackEnd.C.

Referenced by exit().

00058 {
00059   void* msg = CmiAlloc(CmiMsgHeaderSizeBytes);
00060   CmiSetHandler(msg,CpvAccess(exitSchedHndlr));
00061   CmiSyncSendAndFree(pe,CmiMsgHeaderSizeBytes,(char *)msg);
00062 }

void BackEnd::init int  argc,
char **  argv
[static]
 

Definition at line 99 of file BackEnd.C.

References all_init(), BOCgroup::broadcastMgr, BOCgroup::collectionMgr, BOCgroup::computeExtMgr, BOCgroup::computeMgr, BOCgroup::computePmeMgr, cpuTime_start, GroupInitMsg::group, BOCgroup::ldbCoordinator, SlaveInitMsg::master, BOCgroup::patchMgr, BOCgroup::proxyMgr, BOCgroup::reductionMgr, slave_init(), BOCgroup::sync, wallTime_start, and BOCgroup::workDistrib.

Referenced by main().

00099                                         {
00100   ConverseInit(argc, argv, slave_init, 1, 1);  // calls slave_init on others
00101   cpuTime_start = CmiCpuTimer();
00102   wallTime_start = CmiWallTimer();
00103   if ( CmiMyPe() ) {
00104     slave_init(argc, argv);  // for procs that call main
00105     ConverseExit();  // should never return
00106   }
00107   all_init(argc, argv);
00108 
00109   // Create branch-office chares
00110   BOCgroup group;
00111   group.workDistrib = CProxy_WorkDistrib::ckNew();
00112   group.proxyMgr = CProxy_ProxyMgr::ckNew();
00113   group.patchMgr = CProxy_PatchMgr::ckNew();
00114   group.computeMgr = CProxy_ComputeMgr::ckNew();
00115   group.reductionMgr = CProxy_ReductionMgr::ckNew();
00116   group.computePmeMgr = CProxy_ComputePmeMgr::ckNew();
00117   group.computeExtMgr = CProxy_ComputeExtMgr::ckNew();
00118   group.sync = CProxy_Sync::ckNew();
00119 
00120 #if CHARM_VERSION > 050402
00121 #ifdef MEM_OPT_VERSION
00122   MasterHandlerInitMsg *initmsg8 = new MasterHandlerInitMsg;
00123   //initmsg8->master = collectionMaster;
00124   CkChareID collectionMasterHanlder = CProxy_CollectionMasterHandler::ckNew(initmsg8, 0);
00125 #else
00126   CkChareID collectionMaster = CProxy_CollectionMaster::ckNew(0);
00127 #endif
00128 #else
00129   CProxy_CollectionMaster coll(0);
00130   CkChareID collectionMaster = coll.ckGetChareId();
00131 #endif
00132 
00133   SlaveInitMsg *initmsg7 = new SlaveInitMsg;
00134 #ifndef MEM_OPT_VERSION
00135   initmsg7->master = collectionMaster;
00136 #endif
00137   group.collectionMgr = CProxy_CollectionMgr::ckNew(initmsg7);
00138   group.broadcastMgr = CProxy_BroadcastMgr::ckNew();
00139   group.ldbCoordinator = CProxy_LdbCoordinator::ckNew();
00140   GroupInitMsg *msg = new GroupInitMsg;
00141   msg->group = group;
00142   CProxy_Node::ckNew(msg);
00143 
00144 }

void BackEnd::suspend void   )  [static]
 

Definition at line 160 of file BackEnd.C.

Referenced by barrier().

00160                           {
00161   CsdScheduler(-1);
00162 }


The documentation for this class was generated from the following files:
Generated on Sun Jul 6 04:07:44 2008 for NAMD by  doxygen 1.3.9.1