Adapted the fft-trans to the newly polished API.
authorChao Mei <chaomei2@illinois.edu>
Mon, 23 Jan 2012 18:44:34 +0000 (12:44 -0600)
committerChao Mei <chaomei2@illinois.edu>
Mon, 23 Jan 2012 18:44:34 +0000 (12:44 -0600)
Makefile
example/fft-trans/Makefile
example/fft-trans/fft1d.C
example/fft-trans/fft1d.ci
example/simpleLoopBench/Makefile

index 4a4c3a65a3e60c9f212e00e473a94f01911dac51..fecbd371c35e6146fb228c04b157e19202523710 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,11 +1,12 @@
-OPTS=-I../ -O0 -g -lpthread
+OPTS=-I../ -O3 -g -lpthread
 
-CHARMDIR=$(HOME)/curcvs/charm/net-linux-x86_64-smp-dbg
+CHARMDIR=$(HOME)/curcvs/charm/net-linux-x86_64-smp-opt
 CHARMC=$(CHARMDIR)/bin/charmc $(OPTS)
 CHARMLIB=$(CHARMDIR)/lib
 CHARMINC=$(CHARMDIR)/include
 
 all: module
+       make install
 
 clean:
        rm -f *.decl.h *.def.h conv-host *.o hello charmrun *.log *.sum *.sts
index 53d7e2ff6dc8af9ff986e7bd0e709683649e35d3..eb71dd22b76765a11d2e5d7b6781240c071acc54 100644 (file)
@@ -1,5 +1,11 @@
-OPTS   = -O3
-CHARMC = $(HOME)/charm/net-linux-x86_64-smp-prod/bin/charmc $(OPTS)
+USEROPTS       = -O3
+CHARMDIR = $(HOME)/curcvs/charm/net-linux-x86_64-smp-opt/
+
+CHARMINC = $(CHARMDIR)/include
+CHARMLIB = $(CHARMDIR)/lib
+OPTS = -I$(CHARMINC) $(USEROPTS)
+CHARMC = $(CHARMDIR)bin/charmc $(OPTS)
+
 CC=mpicxx
 LIBS = -lfftw3 -lm
 SLIBS = -lfftw3f -lm
index 526c12389c3c196965cf3638ab0b5170677fd197..b59195b0a37d0195856f10554f55edebe5520ff9 100644 (file)
@@ -2,7 +2,7 @@
 #include <fftw3.h>
 #include <limits>
 #include "fileio.h"
-#include "NodeHelper.h"
+#include "NodeHelperAPI.h"
 
 #define TWOPI 6.283185307179586
 
 /*readonly*/ uint64_t N;
 static CmiNodeLock fft_plan_lock;
 #include "fftmacro.h"
+
 CProxy_FuncNodeHelper nodeHelperProxy;
 /** called by initnode once per node to support node level locking for
     fftw plan create/destroy operations */
-#define MODE 1
+#define NODEHELPER_MODE NODEHELPER_STATIC 
 
-extern "C" void doCalc(int first,int last, int & result, int paramNum, void * param)
+extern "C" void doCalc(int first,int last, void *result, int paramNum, void * param)
 {
-  result=first;
+  //result=first;
   fft_execute(((fft_plan*)param)[first]);
 }
 
@@ -77,11 +78,18 @@ struct Main : public CBase_Main {
 
     // Construct an array of fft chares to do the calculation
     fftProxy = CProxy_fft::ckNew(numChunks);
+
     // Construct a nodehelper to do the calculation
-    nodeHelperProxy = CProxy_FuncNodeHelper::ckNew(MODE, numChunks, numThreads);
+    nodeHelperProxy = NodeHelper_Init(NODEHELPER_MODE, numThreads);
     
+    CkStartQD(CkIndex_Main::initDone((CkQdMsg *)0), &thishandle);
   }
 
+  void initDone(CkQdMsg *msg){
+    delete msg;
+    startFFT();
+  }
+  
   void startFFT() {
     start = CkWallTimer();
     // Broadcast the 'go' signal to the fft chare array
@@ -149,7 +157,7 @@ struct fft : public CBase_fft {
     }
 
     // Reduction to the mainchare to signal that initialization is complete
-    contribute(CkCallback(CkIndex_Main::startFFT(), mainProxy));
+    //contribute(CkCallback(CkIndex_Main::startFFT(), mainProxy));
   }
 
   void sendTranspose(fft_complex *src_buf) {
@@ -208,8 +216,9 @@ struct fft : public CBase_fft {
   void fftHelperLaunch()
   {
     //kick off thread computation
-    FuncNodeHelper *nth = nodeHelperProxy[CkMyNode()].ckLocalBranch();
-    nth->parallelizeFunc(doCalc, numThreads, numThreads, thisIndex, numThreads, 1, 1, plan, 0, NULL);
+    //FuncNodeHelper *nth = nodeHelperProxy[CkMyNode()].ckLocalBranch();
+    //nth->parallelizeFunc(doCalc, numThreads, numThreads, thisIndex, numThreads, 1, 1, plan, 0, NULL);
+    NodeHelper_Parallelize(nodeHelperProxy, doCalc, 0, NULL, 0, numChunks, 0, numChunks-1);
     
   }
 
index 56c42dfdebc77b2753f643e2d23654be4d65b4a0..b27fa94ec38c9cf148de5fddefc1e5faf1994cf5 100644 (file)
@@ -11,6 +11,7 @@ mainmodule fft1d {
   };
   mainchare Main {
     entry Main(CkArgMsg *m);
+    entry void initDone(CkQdMsg *m);
     entry void startFFT();
     entry void doneFFT();
 
index f6c492c0067059b64b02b5e435c8f5e6fbafa227..1b6df99fc8fb5e46af8303735d02826d871d8b3b 100644 (file)
@@ -1,6 +1,6 @@
 #NOTE: to compile the example, the NodeHelper.decl/def.h should exist
-USEROPTS=-O0 -g -lpthread
-CHARMDIR=$(HOME)/curcvs/charm/net-linux-x86_64-smp-dbg/
+USEROPTS=-O3 -g -lpthread
+CHARMDIR=$(HOME)/curcvs/charm/net-linux-x86_64-smp-opt/
 CHARMINC=$(CHARMDIR)/include
 OPTS=-I$(CHARMINC) $(USEROPTS)
 CHARMC=$(CHARMDIR)/bin/charmc $(OPTS)