configure: remove obsolete test for C++ namespace support
[charm.git] / tests / charm++ / migrate / migrateHello.C
1 #include <stdio.h>
2 #include "migrateHello.decl.h"
3
4 /*readonly*/ CProxy_Main mainProxy;
5 /*readonly*/ int nElements;
6
7 /*mainchare*/
8 class Main : public CBase_Main
9 {
10     int counter;
11     CProxy_MigrateHello arr;
12 public:
13   Main(CkArgMsg* m)
14   {
15       counter = 0;
16     //Process command-line arguments
17     nElements=5;
18     if(m->argc >1 ) nElements=atoi(m->argv[1]);
19     delete m;
20
21     //Start the computation
22     CkPrintf("Running MigrateHello on %d processors for %d iterations \n",
23              CkNumPes(),nElements);
24     mainProxy = thisProxy;
25     arr =  CProxy_MigrateHello::ckNew(1);
26     arr[0].SayHi(0);
27   };
28
29 };
30
31 double startTimer;
32 /*array [1D]*/
33 class MigrateHello : public CBase_MigrateHello
34 {
35 public:
36   MigrateHello()
37   {
38     //CkPrintf("MigrateHello %d created\n",thisIndex);
39   }
40
41   MigrateHello(CkMigrateMessage *m) {}
42   
43   void SayHi(int hiNo)
44   {
45       if(hiNo == 0)
46           startTimer = CkWallTimer();
47       else if(hiNo >= nElements)
48       {
49           double time = CkWallTimer() - startTimer;
50           CkPrintf(" migration cost total : %f sec single migration cost: %f us\n", time, time/(hiNo-1)*1000000); 
51           CkExit();
52       }
53       //CkPrintf("executing  %d  %d\n", CkMyPe(), hiNo);
54       thisProxy[thisIndex].SayHi(hiNo+1);
55       migrateMe(1-CkMyPe());
56   }
57 };
58
59 #include "migrateHello.def.h"