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

Sync.h

Go to the documentation of this file.
00001 
00008 /*
00009    Master BOC.  coordinates startup, close down of each PE
00010    Also owns pointers to common objects needed by system                
00011    Many utility static methods are owned by Node.
00012 */
00013 
00014 #ifndef _SYNC_H
00015 #define _SYNC_H
00016 
00017 #include "charm++.h"
00018 
00019 #include "ProcessorPrivate.h"
00020 #include "Sync.decl.h"
00021 #include "ResizeArrayPrimIter.h"
00022 
00023 extern int useSync, useProxySync;
00024 
00025 typedef ResizeArrayPrimIter<ComputeID> ComputeIDListIter;
00026 
00027 class Sync : public BOCclass
00028 {
00029 private:
00030     struct _clist {
00031     int pid;
00032     int step;
00033     ComputeIDListIter cid;
00034     int doneMigration;
00035     } *clist;
00036     const int INCREASE;
00037     int capacity;
00038 
00039     int step;
00040     int counter;
00041     int cnum;
00042     int nPatcheReady;
00043     int numPatches;
00044 
00045     char homeReady;
00046 
00047     void releaseComputes();
00048     void triggerCompute();
00049 public:
00050     Sync(void);
00051     ~Sync(void);
00052     inline static Sync *Object() { return CkpvAccess(Sync_instance); }
00053     void openSync(); 
00054     int holdComputes(PatchID pid, ComputeIDListIter cid, int doneMigration);
00055     void PatchReady(void);
00056 };
00057 
00058 #endif

Generated on Mon Nov 23 04:59:25 2009 for NAMD by  doxygen 1.3.9.1