reverted to its original state before the latest wave of changes
authorGengbin Zheng <gzheng@illinois.edu>
Wed, 8 Feb 2012 06:51:54 +0000 (00:51 -0600)
committerGengbin Zheng <gzheng@illinois.edu>
Wed, 8 Feb 2012 06:51:54 +0000 (00:51 -0600)
tests/charm++/pingpong/pingpong.C

index 8994d23285ea09d731d510b4b12db60228141f1e..1da9269831b43800dff4ccccee274ca7e07fd591 100644 (file)
@@ -4,12 +4,12 @@
 #define NITER 1000
 #define PAYLOAD 100
 
-#ifdef CMK_DIRECT 
+#if ! CMK_SMP            /* only test RDMA when non-SMP */
+
+#if defined(CMK_DIRECT) || defined(CMK_USE_IBVERBS)
 #define USE_RDMA 1
 #endif
 
-#ifdef CMK_USE_IBVERBS 
-#define USE_RDMA 1
 #endif
 
 #ifdef USE_RDMA
@@ -62,7 +62,7 @@ int payload;
 #define P1 0
 #define P2 1%CkNumPes()
 
-class main : public Chare
+class main : public CBase_main
 {
   int phase;
   CProxy_Ping1 arr1;
@@ -76,7 +76,6 @@ public:
   main(CkMigrateMessage *m) {}
   main(CkArgMsg* m)
   {
-    delete m;
     if(CkNumPes()>2) {
       CkAbort("Run this program on 1 or 2 processors only.\n");
     }
@@ -111,6 +110,7 @@ public:
     arrF.doneInserting();
     phase=0;
     mainProxy.maindone();
+    delete m;
   };
 
   void maindone(void)
@@ -149,7 +149,7 @@ public:
   };
 };
 
-class PingG : public Group
+class PingG : public CBase_PingG
 {
   CProxyElement_PingG *pp;
   int niter;
@@ -190,9 +190,8 @@ public:
 };
 
 
-class PingN : public NodeGroup
+class PingN : public CBase_PingN
 {
-  CProxyElement_PingN *pp;
   int niter;
   int me, nbr;
 #ifdef USE_RDMA 
@@ -202,7 +201,6 @@ class PingN : public NodeGroup
 #endif
   double start_time, end_time;
 public:
-  CProxyElement_PingN *myProxy;
   PingN()
   {
     me = CkMyNode();    
@@ -212,8 +210,6 @@ public:
     // upstream and downstream which makes this an artificially simple
     // calculation.
 
-    pp = new CProxyElement_PingN(thisgroup,nbr);
-    myProxy = new CProxyElement_PingN(thisgroup,me);
     niter = 0;
 #ifdef USE_RDMA 
     rbuff=(char *) malloc(payload*sizeof(char));
@@ -222,7 +218,7 @@ public:
     // setup persistent comm sender and receiver side
     double OOB=9999999999.0;
     rhandle=CmiDirect_createHandle(nbr,rbuff,payload*sizeof(char),PingN::Wrapper_To_CallBack,(void *) this,OOB);
-    (*pp).recvHandle((char*) &rhandle,sizeof(struct infiDirectUserHandle));
+    thisProxy[nbr].recvHandle((char*) &rhandle,sizeof(struct infiDirectUserHandle));
 #endif
   }
   PingN(CkMigrateMessage *m) {}
@@ -238,7 +234,7 @@ public:
   void start(void)
   {
     start_time = CkWallTimer();
-    (*pp).recv(new (payload) PingMsg);
+    thisProxy[nbr].recv(new (payload) PingMsg);
   }
   void startRDMA(void)
   {
@@ -263,10 +259,10 @@ public:
         delete msg;
         mainProxy.maindone();
       } else {
-        (*pp).recv(msg);
+        thisProxy[nbr].recv(msg);
       }
     } else {
-      (*pp).recv(msg);
+      thisProxy[nbr].recv(msg);
     }
   }
   static void Wrapper_To_CallBack(void* pt2Object){
@@ -277,7 +273,7 @@ public:
     if(CkNumNodes() == 0){
       mySelf->recvRDMA();
     }else{
-      (*mySelf->myProxy).recvRDMA();   
+      (mySelf->thisProxy)[CkMyNode()].recvRDMA();   
     }
   }
   // not an entry method, called via Wrapper_To_Callback
@@ -313,7 +309,7 @@ public:
 };
 
 
-class Ping1 : public ArrayElement1D
+class Ping1 : public CBase_Ping1
 {
   CProxy_Ping1 *pp;
   int niter;
@@ -367,7 +363,7 @@ public:
   }
 };
 
-class Ping2 : public ArrayElement2D
+class Ping2 : public CBase_Ping2
 {
   CProxy_Ping2 *pp;
   int niter;
@@ -402,7 +398,7 @@ public:
   }
 };
 
-class Ping3 : public ArrayElement3D
+class Ping3 : public CBase_Ping3
 {
   CProxy_Ping3 *pp;
   int niter;
@@ -476,7 +472,7 @@ public:
   }
 };
 
-class PingC : public Chare
+class PingC : public CBase_PingC
 {
   CProxy_PingC *pp;
   int niter;