getting rid of the windows compile error
authorSameer Kumar <skumar2@uiuc.edu>
Sat, 22 May 2004 19:00:39 +0000 (19:00 +0000)
committerSameer Kumar <skumar2@uiuc.edu>
Sat, 22 May 2004 19:00:39 +0000 (19:00 +0000)
src/conv-com/convcomlibstrategy.C
src/conv-com/convcomlibstrategy.h
src/conv-com/dummystrategy.C [deleted file]
src/conv-com/dummystrategy.h [deleted file]
src/conv-com/petable.C
src/conv-com/petable.h

index 7545515a8394c3f9b817725adb241d37a418ca68..529f04fa96c12e79889d2c57e94d3f84a59b0791 100644 (file)
@@ -25,33 +25,10 @@ void Strategy::pup(PUP::er &p){
     p | type;
 }
 
-
 //Message holder functions. Message holder is a wrapper around a
 //message. Has other useful data like destination processor list for a
 //multicast etc.
 
-MessageHolder::MessageHolder(char * msg, int proc, int sz) : PUP::able() {
-    data = msg;
-    dest_proc = proc;
-    size = sz;
-    
-    isDummy = 0;
-
-    npes = 0;
-    pelist = 0;
-}
-
-MessageHolder::~MessageHolder() {
-    /*
-      if(pelist != NULL && npes > 0)
-      delete[] pelist;
-    */
-}
-
-char * MessageHolder::getMessage(){
-    return data;
-}
-
 void MessageHolder::pup(PUP::er &p) {
     //PUP::able::pup(p);
 
index 6c76eb66b3de8dbf02180612e0de4c363807acbd..a0d378a74298689ad0342cdedf82735c248e2c8b 100644 (file)
@@ -23,15 +23,33 @@ class MessageHolder : public PUP::able {
     int npes;
     int *pelist;
     
-    MessageHolder() : PUP::able() 
+    MessageHolder() 
         {dest_proc = size = isDummy = 0; data = NULL;}    
 
-    MessageHolder(CkMigrateMessage *m) : PUP::able(m) {}
+    MessageHolder(CkMigrateMessage *m) {}
 
-    MessageHolder(char * msg, int dest_proc, int size);
-    ~MessageHolder();
+    inline MessageHolder(char * msg, int proc, int sz) {
+        data = msg;
+        dest_proc = proc;
+        size = sz;
+        
+        isDummy = 0;
+        
+        npes = 0;
+        pelist = 0;
 
-    char * getMessage();
+    }
+
+    inline ~MessageHolder() {
+        /*
+          if(pelist != NULL && npes > 0)
+          delete[] pelist;
+        */
+    }
+
+    inline char * getMessage() {
+        return data;
+    }
 
     virtual void pup(PUP::er &p);
     PUPable_decl(MessageHolder);
diff --git a/src/conv-com/dummystrategy.C b/src/conv-com/dummystrategy.C
deleted file mode 100644 (file)
index 58e5145..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-
-#include "RouterStrategy.h"
-
-RouterStrategy::RouterStrategy() : Strategy(){
-}
-
-void RouterStrategy::insertMessage(MessageHolder *cmsg){
-    ComlibPrintf("Sending Directly\n");
-    char *msg = cmsg->getMessage();
-    CmiSyncSendAndFree(cmsg->dest_proc, cmsg->size, msg);
-    delete cmsg;
-}
-
-void RouterStrategy::doneInserting(){
-}
-
-void RouterStrategy::pup(PUP::er &p){}
-
diff --git a/src/conv-com/dummystrategy.h b/src/conv-com/dummystrategy.h
deleted file mode 100644 (file)
index 1e87909..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-
-/* Class that calls Krishnan's routers from the new Comlib.
-   Developed to be called from Converse
-   Sameer Kumar 05/14/04
-*/
-   
-
-#ifndef ROUTER_STRATEGY
-#define ROUTER_STRATEGY
-#include "convcomlibmanager.h"
-
-class RouterStrategy : public Strategy {
- public:
-    RouterStrategy();
-    RouterStrategy(CkMigrateMessage *m): Strategy(m){}
-
-    void insertMessage(MessageHolder *msg);
-    void doneInserting();
-
-    virtual void pup(PUP::er &p);
-    PUPable_decl(RouterStrategy);
-};
-#endif
index 8b3aee3807e60cabd6c0b167eaea5e48e824dffe..610ce4b4ea9e33e751578f58c92068cc59c06c93 100644 (file)
@@ -30,31 +30,6 @@ struct AllToAllHdr{
     int nmsgs;
 };
 
-#define ALIGN8(x)       (int)((~7)&((x)+7))
-
-/* Reduce the no. of mallocs by allocating from
- * a free list */
-#define PTALLOC(ktmp) {\
-  if (PTFreeList) {\
-       ktmp=PTFreeList;\
-       PTFreeList=ktmp->next;\
-  }\
-  else {\
-       ktmp=(PTinfo *)CmiAlloc(sizeof(PTinfo));\
-       }\
-}
-
-#define PTFREE(ktmp) {\
-  ktmp->next=PTFreeList;\
-  PTFreeList=ktmp;\
-}
-
-#define REALLOC(ktmp, ksize) {\
-   PTinfo **junkptr=(PTinfo **)CmiAlloc(2*ksize*sizeof(void *));\
-   for (int ki=0; ki<ksize;ki++) junkptr[ki]=ktmp[ki];\
-   CmiFree(ktmp);\
-   ktmp=junkptr;\
-}
 
 /**************************************************************
  * Preallocated memory=P*MSGQLEN ptr + 2P ints + 1000 ptrs
@@ -113,39 +88,6 @@ void PeTable:: Purge()
   //combcount = 0;
 }
 
-void PeTable :: InsertMsgs(int npe, int *pelist, int size, void *msg)
-{
-  PTinfo *tmp;
-  PTALLOC(tmp);
-  tmp->refCount=0;
-  tmp->magic=0;
-  tmp->offset=0;
-  tmp->freelistindex=-1;
-  tmp->msgsize=size;
-  tmp->msg=msg;
-
-  for (int j=0;j<npe;j++) {
-    tmp->refCount++;
-    int index=pelist[j];
-    
-    ComlibPrintf("[%d] Inserting %d %d %d\n", CkMyPe(), msgnum[index], index, size);
-    
-    if (msgnum[index] >= MaxSize[index]) {
-        REALLOC(PeList[index], MaxSize[index]);
-        MaxSize[index] *= 2;
-    }
-    PeList[index][msgnum[index]]=tmp;
-    msgnum[index]++;
-  }
-}
-
-void PeTable :: InsertMsgs(int npe, int *pelist, int nmsgs, void **msglist)
-{
-  msgstruct **m=(msgstruct **)msglist;
-  for (int i=0;i<nmsgs;i++)
-      InsertMsgs(npe, pelist, m[i]->msgsize, m[i]->msg);
-}
-
 void PeTable :: ExtractAndDeliverLocalMsgs(int index)
 {
   int j;
@@ -171,40 +113,6 @@ void PeTable :: ExtractAndDeliverLocalMsgs(int index)
   return;
 }
 
-int PeTable :: TotalMsgSize(int npe, int *pelist, int *nm, int *nd)
-{
-    register int totsize=0;
-    magic++;
-    *nm=0;
-    *nd=0;        
-
-    for (int i=0;i<npe;i++) {
-        
-        int index = pelist[i];
-        
-        *nm += msgnum[index];
-
-        ComlibPrintf("%d: NUM MSGS %d, %d\n", CmiMyPe(), index, 
-                     msgnum[index]);
-
-        for (int j=0;j<msgnum[index];j++) {
-            if (PeList[index][j]->magic != magic) {
-
-                int tmp_size = PeList[index][j]->msgsize;
-                if(tmp_size % 8 != 0)
-                    tmp_size += 8 - tmp_size % 8;
-                
-                totsize += tmp_size;                
-                totsize += sizeof(int)+sizeof(int);
-                
-                PeList[index][j]->magic=magic;
-                (*nd)++;
-            }
-        }
-    }
-    return(totsize);
-}
-
 
 #undef PACK
 #undef PACKMSG
@@ -297,8 +205,8 @@ char * PeTable ::ExtractAndPackAll(comID id, int ufield, int *length)
                 PACKMSG(&ref, sizeof(int));
                 PeList[index][j]->magic=magic;
                 PACKMSG(PeList[index][j]->msg, size);
-                if(msg_offset % 8 != 0)
-                    msg_offset += 8 - msg_offset%8;
+
+                msg_offset = ALIGN8(msg_offset);
             }
 
             //Free it when all the processors have gotten rid of it
@@ -343,8 +251,7 @@ char * PeTable ::ExtractAndPack(comID id, int ufield, int npe,
     int msg_offset = CmiReservedHeaderSize + sizeof(comID) 
         + (npe + 4 + nummsgs) * sizeof(int);  
 
-    if(msg_offset % 8 != 0)
-        msg_offset += 8 - msg_offset % 8;
+    msg_offset = ALIGN8(msg_offset);
     
     int headersize=msg_offset;
     
@@ -371,6 +278,7 @@ char * PeTable ::ExtractAndPack(comID id, int ufield, int npe,
     int npacked = 0;
     for (i=0;i<npe;i++) {
         int index=pelist[i];
+
         if (msgnum[index]<=0) {
             lesspe++;
             continue;
@@ -411,12 +319,9 @@ char * PeTable ::ExtractAndPack(comID id, int ufield, int npe,
                PACKMSG(&nullptr, sizeof(int));
 
                PACKMSG(tempmsg->msg, tempmsg->msgsize);
-                if(msg_offset % 8 != 0)
-                    msg_offset += 8 - msg_offset%8;
 
-                if(actual_msgsize % 8 != 0)                    
-                    actual_msgsize += 8 - actual_msgsize % 8;
-                
+                msg_offset = ALIGN8(msg_offset);
+                actual_msgsize = ALIGN8(actual_msgsize);                
                actual_msgsize += 2*sizeof(int);
             }
             else {
index e36483310c057974ebbc94ed24afa686304bc4ca..3210b24325f59b00cd138446b3767be46a7aa9b3 100644 (file)
@@ -46,6 +46,32 @@ class GList {
        void Delete();
 };
 
+#define ALIGN8(x)       (int)((~7)&((x)+7))
+
+/* Reduce the no. of mallocs by allocating from
+ * a free list */
+#define PTALLOC(ktmp) {\
+  if (PTFreeList) {\
+       ktmp=PTFreeList;\
+       PTFreeList=ktmp->next;\
+  }\
+  else {\
+       ktmp=(PTinfo *)CmiAlloc(sizeof(PTinfo));\
+       }\
+}
+
+#define PTFREE(ktmp) {\
+  ktmp->next=PTFreeList;\
+  PTFreeList=ktmp;\
+}
+
+#define REALLOC(ktmp, ksize) {\
+   PTinfo **junkptr=(PTinfo **)CmiAlloc(2*ksize*sizeof(void *));\
+   for (int ki=0; ki<ksize;ki++) junkptr[ki]=ktmp[ki];\
+   CmiFree(ktmp);\
+   ktmp=junkptr;\
+}
+
 class PeTable {
   private:
     PTinfo ***PeList;
@@ -57,13 +83,71 @@ class PeTable {
     int NumPes;
     int magic;
     GList *FreeList;
-    int TotalMsgSize(int, int *, int *, int *);
+
+    inline int TotalMsgSize(int npe, int *pelist, int *nm, int *nd) {
+        register int totsize=0;
+        magic++;
+        *nm=0;
+        *nd=0;        
+        
+        for (int i=0;i<npe;i++) {            
+            int index = pelist[i];            
+            *nm += msgnum[index];
+            
+            ComlibPrintf("%d: NUM MSGS %d, %d\n", CmiMyPe(), index, 
+                         msgnum[index]);
+            
+            for (int j=0;j<msgnum[index];j++) {
+                if (PeList[index][j]->magic != magic) {                    
+                    int tmp_size = PeList[index][j]->msgsize;
+                    tmp_size = ALIGN8(tmp_size);                
+                    totsize += tmp_size;                
+                    totsize += sizeof(int)+sizeof(int);                    
+                    PeList[index][j]->magic=magic;
+                    (*nd)++;
+                }
+            }
+        }
+        return(totsize);
+    }
+
  public:
+    
     PeTable(int n);
     ~PeTable();
-    void InsertMsgs(int npe, int *pelist, int nmsgs, void **msglist);
-    void InsertMsgs(int npe, int *pelist, int size, void *msg);
     
+    inline void InsertMsgs(int npe, int *pelist, int size, void *msg) {
+        PTinfo *tmp;
+        PTALLOC(tmp);
+        tmp->refCount=0;
+        tmp->magic=0;
+        tmp->offset=0;
+        tmp->freelistindex=-1;
+        tmp->msgsize=size;
+        tmp->msg=msg;
+        
+        for (int j=0;j<npe;j++) {
+            tmp->refCount++;
+            int index=pelist[j];
+            
+            ComlibPrintf("[%d] Inserting %d %d %d\n", CkMyPe(), 
+                         msgnum[index], index, size);
+            
+            if (msgnum[index] >= MaxSize[index]) {
+                REALLOC(PeList[index], MaxSize[index]);
+                MaxSize[index] *= 2;
+            }
+            PeList[index][msgnum[index]]=tmp;
+            msgnum[index]++;
+        }
+    }
+
+    inline void InsertMsgs(int npe, int *pelist, int nmsgs, void **msglist){
+        msgstruct **m=(msgstruct **)msglist;
+        for (int i=0;i<nmsgs;i++)
+            InsertMsgs(npe, pelist, m[i]->msgsize, m[i]->msg);
+    }
+        
     void ExtractAndDeliverLocalMsgs(int pe);
     
     int UnpackAndInsert(void *in);