fix placement bug which allowed for attempt to place objects on impossible
authorEric Bohm <ebohm@illinois.edu>
Tue, 25 Sep 2007 20:11:41 +0000 (20:11 +0000)
committerEric Bohm <ebohm@illinois.edu>
Tue, 25 Sep 2007 20:11:41 +0000 (20:11 +0000)
processor IDs

examples/pose/PHOLD/Makefile
examples/pose/PHOLD/Worker.C
examples/pose/PHOLD/Worker.h
examples/pose/PHOLD/phold.C

index e46ccb2f7a99e40321a29b86891f7285efcd45fd..c5ed40ac3aa65d89725e9687b719ebdcf212903e 100644 (file)
@@ -129,5 +129,5 @@ seqobjs: seqtrans
 seqtrans: Worker.C Worker.h Worker.ci
        $(CHARMBIN)/etrans.pl -s Worker
 
-test:
+test: $(PGM)
        ./phold  10 10 RANDOM RANDOM RANDOM -gm  50 100
index 2971baa8c94aa83cb4e32d53008b699407466585..a20312478abdc976669837d89e9ae0bc0ba49301 100644 (file)
@@ -38,7 +38,7 @@ worker& worker::operator=(const worker& obj)
 
 void worker::work(WorkMsg *m)
 {
-  //CkPrintf("%d receiving work at %d\n", parent->thisIndex, ovt);
+  //  CkPrintf("%d receiving work at %d\n", parent->thisIndex, ovt);
   WorkMsg *wm;
   int nbr=-1, away, sign, offset;
 
index 04756911483c0cde2750ebd24dcfa0791d430cca..1d2ee3554c10ec44e081423d3c5c07bf87d346de 100644 (file)
@@ -56,6 +56,7 @@ class worker {
   }
 
   // Event methods
+  void terminus(){CkPrintf("called terminus\n");}
   void work(WorkMsg *m);
   void work_anti(WorkMsg *m);
   void work_commit(WorkMsg *m);
index 8eb063c22c244f35382aedcc4f58ce04f4366ca9..ca29a98596348924609cfb27ca21eec80095a3db 100644 (file)
@@ -63,6 +63,8 @@ main::main(CkArgMsg *m)
   CkPrintf(">>> ...grainsize: %s %3.8e  locality: %d  time scale: %d.\n", 
           text, granularity, locality, tScale);
 
+  CkPrintf("Procs %d nodes %d\n",CkNumPes(), CkNumNodes());
+
   POSE_init();
 
   // create all the workers
@@ -91,7 +93,7 @@ void main::buildMap(int numLPs, int dist)
   if (dist == RANDOM)
     for (i=0; i<numLPs; i++) map[i] = lrand48() % CkNumPes();
   else if (dist == UNIFORM)
-    for (i=0; i<numLPs; i++) map[i] = i / (numLPs/CkNumPes());
+    for (i=0; i<numLPs; i++) map[i] = (i / (numLPs/CkNumPes()))%CkNumPes();
   else if (dist == IMBALANCED) {
     int min = (numLPs/CkNumPes())/2;
     if (min < 1) min = 1;