Fixed numerous bugs in the chunk pupper. Now crack2D runs with
authorMilind Bhandarkar <milind@cs.uiuc.edu>
Sun, 27 Aug 2000 13:18:20 +0000 (13:18 +0000)
committerMilind Bhandarkar <milind@cs.uiuc.edu>
Sun, 27 Aug 2000 13:18:20 +0000 (13:18 +0000)
isomalloc threads with migration.

examples/fem/crack2D/driver.C
src/libs/ck-libs/fem/fem.C
src/libs/ck-libs/fem/fem.h

index 14cc920804b3abfd915dbd56bd61b32441f7520d..2fce7adb2698ad6dd600ba9235bd0242dee112f0 100644 (file)
@@ -151,7 +151,7 @@ driver(int nn, int *nnums, int ne, int *enums, int npere, int *conn)
   stime = CkTimer();
   for(i=0;i<gd->nTime;i++)
   {
-    CkPrintf("[%d] iteration %d at %lf secs\n", gd->myid, i, CkTimer());
+    // CkPrintf("[%d] iteration %d at %lf secs\n", gd->myid, i, CkTimer());
     if (gd->ts_proportion[kk+1] == i)
     {
       kk++;
index 456e1897f0daf29352231e7d4a8ceeca8ff6d260..5135e50a64a851474412ba511126fe260e5ca232 100644 (file)
@@ -776,20 +776,22 @@ chunk::pup(PUP::er &p)
   }
   p(wait_for);
   if(p.isSizing())
+  {
     tsize = CthPackBufSize(tid);
+  }
   p(tsize);
   if(p.isPacking())
   {
     CthPackThread(tid,p.getBuf());
-    p.advance(tsize);
   }
   if(p.isUnpacking())
   {
     tid = CthUnpackThread(p.getBuf());
-    p.advance(tsize);
     CthAwaken(tid);
     CtvAccessOther(tid,_femptr) = this;
+    tid = 0;
   }
+  p.advance(tsize);
   p(seqnum);
   p(nRecd);
   // update should not be in progress when migrating, so curbuf is not valid
@@ -798,6 +800,9 @@ chunk::pup(PUP::er &p)
   p(valid_udata);
   if(valid_udata != 0)
   {
+    p((void*)&pksz,sizeof(FEM_Packsize_Fn));
+    p((void*)&pk,sizeof(FEM_Pack_Fn));
+    p((void*)&upk,sizeof(FEM_Unpack_Fn));
     if(p.isSizing())
       usize = pksz(userdata);
     p(usize);
@@ -908,7 +913,7 @@ FEM_Migrate(void)
   int npes = CkNumPes();
   int tope = (mype+1)%npes;
   CProxy_chunk cproxy(_femaid);
-  cproxy.migrate(new MigrateInfo(tope));
+  cproxy[idx].migrate(new MigrateInfo(tope));
   CthSuspend();
   if(CkMyPe()!=tope)
   {
index 1c0ac70dff8704dad1d633d9794fa6affdb1652c..c72cdeca7458123ed1dd04176a9cb2795a10ff3d 100644 (file)
@@ -150,7 +150,7 @@ class chunk : public ArrayElement1D
   int doneCalled;
 
   chunk(void);
-  chunk(CkMigrateMessage *) {}
+  chunk(CkMigrateMessage *msg): ArrayElement1D(msg) {}
   void run(void);
   void run(ChunkMsg*);
   void recv(DataMsg *);