Difference for src/ProxyMgr.h from version 1.1028 to 1.1029

version 1.1028version 1.1029
Line 62
Line 62
   Flags flags;   Flags flags;
  
   int plLen;   int plLen;
  
   CompAtom *positionList;   CompAtom *positionList;
   int avgPlLen;   int avgPlLen;
   CompAtom *avgPositionList;   CompAtom *avgPositionList;
Line 81
Line 82
     int numWaterAtoms;  // Number of atoms in positionList (from start)     int numWaterAtoms;  // Number of atoms in positionList (from start)
                  //   that are part of water hydrogen groups.                  //   that are part of water hydrogen groups.
   #endif   #endif
  #ifdef REMOVE_PROXYDATAMSG_EXTRACOPY
    //Adding padding bytes to make sure that positionList is
    //32-byte aligned which usually gives better cache performance,
    //especially on BlueGene/L machine. Otherwise, we have to
    //do the extra copy.
    //The basic method to calculate padding is to add up
    //the size of all the fields so far, including
    //the message header (the envelope) , then mod (alignment)
    // --Chao Mei
   #if NAMD_SeparateWaters != 0
    char padding[(32-(sizeof(envelope)+sizeof(PatchID)+sizeof(Flags)+4*sizeof(int)+3*sizeof(void *))%32)%32];
   #else
    char padding[(32-(sizeof(envelope)+sizeof(PatchID)+sizeof(Flags)+3*sizeof(int)+3*sizeof(void *))%32)%32];
   #endif
  #endif
  
 }; };
  
  
  
 class ProxyResultMsg : public CMessage_ProxyResultMsg { class ProxyResultMsg : public CMessage_ProxyResultMsg {
 public: public:
   NodeID node;   NodeID node;
Line 93
Line 111
   static ProxyResultMsg* unpack(void *ptr);   static ProxyResultMsg* unpack(void *ptr);
 }; };
  
  class ProxyResultVarsizeMsg: public CMessage_ProxyResultVarsizeMsg{
  public:
      NodeID node;
      PatchID patch;
      int flLen[Results::maxNumForces];   
  
      Force *forceArr;
      //Indicate the position of the force list that has zero value
      //which is not recorded in the above force array.
      char *isZero;
  
      //add padding bytes to make sure the beginning 
      //of force arrays is 8-byte aligned as it is originally.
      //Therefore, we have to put the forceArr field as
      //the first variable of varsize array type
      char padding[(8-(sizeof(envelope)+sizeof(NodeID)+sizeof(PatchID)+sizeof(int)*Results::maxNumForces+2*sizeof(void *))%8)%8];   
  
      //The length of "fls" is Results::maxNumForces
      static ProxyResultVarsizeMsg *getANewMsg(NodeID nid, PatchID pid, int prioSize, ForceList *fls); 
  };
  
 class ProxyCombinedResultMsg : public CMessage_ProxyCombinedResultMsg { class ProxyCombinedResultMsg : public CMessage_ProxyCombinedResultMsg {
 public: public:
   PatchID patch;   PatchID patch;
Line 182
Line 221
   void recvProxies(int pid, int *list, int n);   void recvProxies(int pid, int *list, int n);
   void buildSpanningTree0();   void buildSpanningTree0();
  
    void sendResults(ProxyResultVarsizeMsg *);
    void recvResults(ProxyResultVarsizeMsg *);
   void sendResults(ProxyResultMsg *);   void sendResults(ProxyResultMsg *);
   void recvResults(ProxyResultMsg *);   void recvResults(ProxyResultMsg *);
   void sendResults(ProxyCombinedResultMsg *);   void sendResults(ProxyCombinedResultMsg *);


Legend:
Removed in v.1.1028 
changed lines
 Added in v.1.1029



Made by using version 1.53 of cvs2html