changes to MatrixMultiply and makefiles
authoradash <adash>
Tue, 15 Dec 2009 20:30:07 +0000 (20:30 +0000)
committeradash <adash>
Tue, 15 Dec 2009 20:30:07 +0000 (20:30 +0000)
Robust/src/Benchmarks/Prefetch/MatrixMultiply/dsm/MatrixMultiplyD3.java
Robust/src/Benchmarks/Prefetch/MatrixMultiply/dsm/makefile
Robust/src/Benchmarks/Prefetch/MatrixMultiply/javasingle/makefile

index a655fe33d9def86fd17dc7badb6ae765b695352c..6e6548a280f6e5495074b0e4fe43786b481564c9 100644 (file)
@@ -14,40 +14,40 @@ public class MatrixMultiply extends Thread{
     }
     
     public void run() {
-       Barrier barr=new Barrier("128.195.136.162");
-       atomic {
-           mmul.setValues(tid, numthreads);
-       }
-       
-       Barrier.enterBarrier(barr);
+      Barrier barr=new Barrier("128.195.136.162");
+      atomic {
+        mmul.setValues(tid, numthreads);
+      }
+
+      Barrier.enterBarrier(barr);
 
       atomic {
         double la[][][]=mmul.a;
         double lc[][][]=mmul.c;
         double lb[][][]=mmul.btranspose;
         int M=mmul.M;
-       int P=mmul.P;
+        int P=mmul.P;
         //Use btranspose for cache performance
-       for(int q=0;q<P;q++) {
-           double ra[][]=la[q];
-           double rb[][]=lb[q];
-           double rc[][]=lc[q];
-           for(int i = x0; i< x1; i++){
-               double a[]=ra[i];
-               double c[]=rc[i];
-               for (int j = y0; j < y1; j++) {
-                   double innerProduct=0;
-                   double b[] = rb[j];
-                   for(int k = 0; k < M; k++) {
-                       innerProduct += a[k] * b[k];
-                   }
-                   c[j]=innerProduct;
-               }
-           }
-       }
+        for(int q=0;q<P;q++) {
+          double ra[][]=la[q]; 
+          double rb[][]=lb[q];
+          double rc[][]=lc[q];
+          for(int i = x0; i< x1; i++){
+            double a[]=ra[i]; 
+            double c[]=rc[i];
+            for (int j = y0; j < y1; j++) {
+              double innerProduct=0;
+              double b[] = rb[j];
+              for(int k = 0; k < M; k++) {
+                innerProduct += a[k] * b[k];
+              }
+              c[j]=innerProduct;
+            }
+          }
+        }
       }
     }
-    
+
     public static void main(String[] args) {
        int NUM_THREADS = 4;
        int SIZE=150;
@@ -83,6 +83,7 @@ public class MatrixMultiply extends Thread{
        mybarr.start(mid[0]);
 
 
+    System.out.println("NUM_MATRIX= "+NUM_MATRIX+" SIZE= "+SIZE);
        atomic {
            matrix = global new MMul(NUM_MATRIX, SIZE, SIZE, SIZE);
            mm = global new MatrixMultiply[NUM_THREADS];
@@ -139,36 +140,33 @@ public class MMul{
        this.M = M;
        this.N = N;
        this.P = P;
-       //      a = global new double[P][L][M];  
-       //      c = global new double[P][L][N]; 
-       //      btranspose = global new double[P][N][M];
        a = global new double[P][L][];
        c = global new double[P][L][];
        btranspose = global new double[P][N][];
     }
 
     public void setValues(int tid, int numthreads) {
-       int delta=numthreads;
-       int start=tid;
-       
-       for(int q = start; q < P; q+=delta) {
-           for(int i = 0; i < L; i++) {
-               double ai[] = global new double[M];
-               for(int j = 0; j < M; j++) {
-                   ai[j] = j+1;
-               }
-               a[q][i]=ai;
-           }
-           for(int i = 0; i < L; i++) {
-               c[q][i]=global new double[N];
-           }
-           for(int i = 0; i < N; i++) {
-               double bi[] = global new double[M];
-               for(int j = 0; j < M; j++) {
-                   bi[j] = j+1;
-               }
-               btranspose[q][i]=bi;
-           }
-       }
+      int delta=numthreads;
+      int start=tid;
+
+      for(int q = start; q < P; q+=delta) {
+        for(int i = 0; i < L; i++) {
+          double ai[] = global new double[M];
+          for(int j = 0; j < M; j++) {
+            ai[j] = j+1;
+          }
+          a[q][i]=ai; 
+        }
+        for(int i = 0; i < L; i++) {
+          c[q][i]=global new double[N];
+        }
+        for(int i = 0; i < N; i++) {
+          double bi[] = global new double[M];
+          for(int j = 0; j < M; j++) {
+            bi[j] = j+1;
+          }
+          btranspose[q][i]=bi;
+        }
+      }
     }
 }
index 4c5d91f0507adce79e8e31a7638482398ba68451..61f32883d843731e22c1661ee73e0904a0e494fe 100644 (file)
@@ -2,13 +2,21 @@ MAINCLASS=MatrixMultiply
 SRC1=${MAINCLASS}N.java         
 SRC2=MatrixMultiplyD3.java \
      ../../../../ClassLibrary/JavaDSM/Barrier.java
-FLAGS=-dsm -dsmcaching -prefetch -optimize -excprefetch MatrixMultiply.main -excprefetch MMul.setValues -excprefetch MMul.transpose -mainclass ${MAINCLASS} -trueprob 0.98
-FLAGS1=-dsm -optimize -dsmcaching -mainclass ${MAINCLASS}
-FLAGS2=-dsm -optimize -mainclass ${MAINCLASS}
+FLAGS=-dsm -transstats -dsmcaching -prefetch -optimize -excprefetch MatrixMultiply.main -excprefetch MMul.setValues -excprefetch MMul.transpose -mainclass ${MAINCLASS} -trueprob 0.98
+FLAGS1=-dsm -optimize -transstats -dsmcaching -mainclass ${MAINCLASS}
+FLAGS2=-dsm -optimize -transstats -mainclass ${MAINCLASS}
+
+FLAGSP=-dsm -dsmcaching -prefetch -optimize -excprefetch MatrixMultiply.main -excprefetch MMul.setValues -excprefetch MMul.transpose -mainclass ${MAINCLASS} -trueprob 0.98
+FLAGSNPC=-dsm -optimize -dsmcaching -mainclass ${MAINCLASS}
+FLAGSNPNC=-dsm -optimize -mainclass ${MAINCLASS}
+
 default:
-       ../../../../buildscript ${FLAGS2} -o ${MAINCLASS}NPNC ${SRC2}
-#      ../../../../buildscript ${FLAGS1} -o ${MAINCLASS}NPC ${SRC2}
-       ../../../../buildscript ${FLAGS} -o ${MAINCLASS}N ${SRC2}
+       ../../../../buildscript ${FLAGS2} -o ${MAINCLASS}withstatNPNC ${SRC2}
+       ../../../../buildscript ${FLAGS1} -o ${MAINCLASS}withstatNPC ${SRC2}
+       ../../../../buildscript ${FLAGS} -o ${MAINCLASS}withstatN ${SRC2}
+       ../../../../buildscript ${FLAGSNPNC} -o ${MAINCLASS}NPNC ${SRC2}
+       ../../../../buildscript ${FLAGSNPC} -o ${MAINCLASS}NPC ${SRC2}
+       ../../../../buildscript ${FLAGSP} -o ${MAINCLASS}N ${SRC2}
 #      ../../../../buildscript ${FLAGS2} -o ${MAINCLASS}NPNC200 ${SRC2}
 #      ../../../../buildscript ${FLAGS} -o ${MAINCLASS}N200 ${SRC2}
 
index 171ae1a85ee0e9e890037ca7dfe65acb8184aaad..e79996afe701d1eb5158b0685226e7e553c4728a 100644 (file)
@@ -3,8 +3,6 @@ SRC1=${MAINCLASS}N.java
 SRC2=${MAINCLASS}Nrun.java
 SRC3=${MAINCLASS}D.java
 default:
-#      ../../../../buildscript -thread -optimize -mainclass ${MAINCLASS} ${SRC1} -o ${MAINCLASS}
-#      ../../../../buildscript -thread -optimize -mainclass ${MAINCLASS} ${SRC2} -o ${MAINCLASS}
        ../../../../buildscript -thread -optimize -mainclass ${MAINCLASS} ${SRC3} -o ${MAINCLASS}
 
 clean: