From: bdemsky Date: Mon, 18 Aug 2008 22:07:18 +0000 (+0000) Subject: might work now X-Git-Tag: buildscript^4~9 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=93e817cef5a0ce05aa406e7a958fb2a9bde1a928;p=IRC.git might work now --- diff --git a/Robust/src/Benchmarks/Prefetch/Moldyn/dsm/DoubleWrapper.java b/Robust/src/Benchmarks/Prefetch/Moldyn/dsm/DoubleWrapper.java new file mode 100644 index 00000000..c0bd06da --- /dev/null +++ b/Robust/src/Benchmarks/Prefetch/Moldyn/dsm/DoubleWrapper.java @@ -0,0 +1,6 @@ +public class DoubleWrapper { + public DoubleWrapper() { + + } + double d; +} \ No newline at end of file diff --git a/Robust/src/Benchmarks/Prefetch/Moldyn/dsm/IntWrapper.java b/Robust/src/Benchmarks/Prefetch/Moldyn/dsm/IntWrapper.java new file mode 100644 index 00000000..8bf875d3 --- /dev/null +++ b/Robust/src/Benchmarks/Prefetch/Moldyn/dsm/IntWrapper.java @@ -0,0 +1,6 @@ +public class IntWrapper { + public IntWrapper() { + + } + int i; +} \ No newline at end of file diff --git a/Robust/src/Benchmarks/Prefetch/Moldyn/dsm/JGFMolDynBench.java b/Robust/src/Benchmarks/Prefetch/Moldyn/dsm/JGFMolDynBench.java index edf62615..f71d1c57 100644 --- a/Robust/src/Benchmarks/Prefetch/Moldyn/dsm/JGFMolDynBench.java +++ b/Robust/src/Benchmarks/Prefetch/Moldyn/dsm/JGFMolDynBench.java @@ -28,15 +28,15 @@ public class JGFMolDynBench { public int PARTSIZE; - public double[] epot; - public double[] vir; - public double[] ek; + public DoubleWrapper[] epot; + public DoubleWrapper[] vir; + public DoubleWrapper[] ek; int size,mm; int[] datasizes; public int interactions; - public int[] interacts; + public IntWrapper[] interacts; public int nthreads; public JGFInstrumentor instr; @@ -75,13 +75,8 @@ public class JGFMolDynBench { mid[2] = (128<<24)|(195<<16)|(175<<8)|78; mid[3] = (128<<24)|(195<<16)|(175<<8)|73; - atomic { - mold.epot = global new double [mold.nthreads]; - mold.vir = global new double [mold.nthreads]; - mold.ek = global new double [mold.nthreads]; - mold.interacts = global new int [mold.nthreads]; - } - + double sh_force [][]; + double sh_force2 [][][]; int partsize, numthreads; atomic { partsize = mold.PARTSIZE; @@ -89,57 +84,53 @@ public class JGFMolDynBench { mybarr = global new BarrierServer(numthreads); } mybarr.start(mid[0]); - - double sh_force [][]; - double sh_force2 [][][]; + atomic { sh_force = global new double[3][partsize]; sh_force2 = global new double[3][numthreads][partsize]; + mold.epot = global new DoubleWrapper[numthreads]; + mold.vir = global new DoubleWrapper[numthreads]; + mold.ek = global new DoubleWrapper[numthreads]; + mold.interacts = global new IntWrapper[numthreads]; + for(int i=0;i 1.0e-10 ){ //System.printString("Validation failed\n"); //System.printString("Kinetic Energy = " + (long)ek[0] + " " + (long)dev + " " + size + "\n"); @@ -150,7 +141,7 @@ public class JGFMolDynBench { class mdRunner extends Thread { double count; - int id,i,j,k,lg,mdsize,mm; + int id,i,j,k,lg,mm; double l,rcoff,rcoffs,side,sideh,hsq,hsq2,vel,velt; double a,r,sum,tscale,sc,ekin,ts,sp; double den; @@ -158,7 +149,7 @@ class mdRunner extends Thread { double h; double vaver,vaverh,rand; double etot,temp,pres,rp; - double u1,u2,v1,v2,s, xx, yy, zz; + double u1, u2, s, xx, yy, zz; double xvelocity, yvelocity, zvelocity; double [][] sh_force; @@ -169,12 +160,9 @@ class mdRunner extends Thread { int istop; int iprint; - random randnum; JGFMolDynBench mymd; int nthreads; - particle[] one; - public mdRunner(int id, int mm, double [][] sh_force, double [][][] sh_force2, int nthreads, JGFMolDynBench mymd) { this.id=id; @@ -193,31 +181,29 @@ class mdRunner extends Thread { } public void run() { - /* Parameter determination */ - - int tmpmdsize; + + int mdsize; double tmpden; int movemx=50; - Barrier barr; - barr = new Barrier("128.195.175.79"); + Barrier barr=new Barrier("128.195.175.79"); + particle[] one; atomic { mdsize = mymd.PARTSIZE; - one = global new particle[mdsize]; + one=new particle[mdsize]; l = mymd.LENGTH; - tmpmdsize = mdsize; tmpden = den; - side = Math.pow((tmpmdsize/tmpden),0.3333333); + side = Math.pow((mdsize/tmpden),0.3333333); rcoff = mm/4.0; a = side/mm; sideh = side*0.5; hsq = h*h; hsq2 = hsq*0.5; - npartm = tmpmdsize - 1; + npartm = mdsize - 1; rcoffs = rcoff * rcoff; - tscale = 16.0 / (1.0 * tmpmdsize - 1.0); + tscale = 16.0 / (1.0 * mdsize - 1.0); vaver = 1.13 * Math.sqrt(tref / 24.0); vaverh = vaver * h; @@ -232,8 +218,8 @@ class mdRunner extends Thread { for (i=0; i vaverh) { count = count + 1.0; } vel = vel + velt; @@ -460,7 +430,7 @@ class mdRunner extends Thread { if((move < istop) && (((move+1) % irep) == 0)) { sc = Math.sqrt(tref / (tscale*ekin)); - for (i=0;i (sideh)) { xx = xx - side; } @@ -570,9 +540,9 @@ class particle { rrd4 = rrd2*rrd2; rrd6 = rrd2*rrd4; rrd7 = rrd6*rrd; - mymd.epot[id] = mymd.epot[id] + (rrd6 - rrd3); + mymd.epot[id].d += (rrd6 - rrd3); r148 = rrd7 - 0.5*rrd4; - mymd.vir[id] = mymd.vir[id] - rd*r148; + mymd.vir[id].d += - rd*r148; forcex = xx * r148; fxi = fxi + forcex; @@ -588,7 +558,7 @@ class particle { sh_force2[2][id][i] = sh_force2[2][id][i] - forcez; - mymd.interacts[id]++; + mymd.interacts[id].i++; } } @@ -624,15 +594,10 @@ class particle { } public void dscal(double sc,int incx) { - xvelocity = xvelocity * sc; yvelocity = yvelocity * sc; zvelocity = zvelocity * sc; - - - } - } class random { diff --git a/Robust/src/Benchmarks/Prefetch/Moldyn/dsm/JGFMolDynBenchSizeA.java b/Robust/src/Benchmarks/Prefetch/Moldyn/dsm/JGFMolDynBenchSizeA.java index ca92207f..e3b71076 100644 --- a/Robust/src/Benchmarks/Prefetch/Moldyn/dsm/JGFMolDynBenchSizeA.java +++ b/Robust/src/Benchmarks/Prefetch/Moldyn/dsm/JGFMolDynBenchSizeA.java @@ -58,7 +58,7 @@ public class JGFMolDynBenchSizeA { refval[1] = 7397.392307839352; double dval; atomic { - dval = mold.ek[0]; + dval = mold.ek[0].d; } double dev = Math.fabs(dval - refval[size]); long l = (long) refval[size] *1000000; diff --git a/Robust/src/Benchmarks/Prefetch/Moldyn/dsm/makefile b/Robust/src/Benchmarks/Prefetch/Moldyn/dsm/makefile index 11f77513..00e2b1d8 100644 --- a/Robust/src/Benchmarks/Prefetch/Moldyn/dsm/makefile +++ b/Robust/src/Benchmarks/Prefetch/Moldyn/dsm/makefile @@ -2,7 +2,10 @@ MAINCLASS=JGFMolDynBenchSizeA SRC=${MAINCLASS}.java \ JGFInstrumentor.java \ JGFTimer.java \ -JGFMolDynBench.java +JGFMolDynBench.java \ +DoubleWrapper.java \ +IntWrapper.java \ +MDWrap.java FLAGS=-dsm -dsmcaching -prefetch -excprefetch particle.force -excprefetch particle.domove -excprefetch particle.mkekin -excprefetch TournamentBarrier.DoBarrier -excprefetch JGFMolDynBench.JGFvalidate -excprefetch JGFMolDynBench.JGFapplication -optimize -mainclass ${MAINCLASS} -o ${MAINCLASS} -trueprob 0.8 FLAGS2=-dsm -optimize -mainclass ${MAINCLASS} -o ${MAINCLASS}NP