small changes
authoradash <adash>
Thu, 6 Aug 2009 01:43:45 +0000 (01:43 +0000)
committeradash <adash>
Thu, 6 Aug 2009 01:43:45 +0000 (01:43 +0000)
Robust/src/Benchmarks/SingleTM/MicroBenchmarks/README
Robust/src/Benchmarks/SingleTM/MicroBenchmarks/SingleObjectMod.java
Robust/src/Benchmarks/SingleTM/MicroBenchmarks/makefile

index e246752010315df71aa8c7d74294e72b33ccb7fc..33ed312c12c64a72190a3c8ea21bc19129338e4f 100644 (file)
@@ -18,6 +18,8 @@ SingleObjectMod.java:
   ./STATSSingleObjectMod.bin -t <num threads>
                              -size <array size>
                              -l <loopsize>
+                             -l1 <loopsize1>
+                             -l2 <loopsize2>
   
   low contention:  -t 8 -size 5000 -l 100
   high contention: -t 8 -size 5 -l 500000
index 8658663f2f10a05448ca484abf2e263f5c13d73d..7cac863a66731c835d016d16414e1650ef6fd07b 100644 (file)
@@ -2,6 +2,7 @@ public class SingleObjectMod extends Thread {
   int nthreads;
   int arrysize;
   int loopsize;
+  int lsize1, lsize2;
   int threadid;
   intwrapper[] mainobj;
   Random rand;
@@ -10,10 +11,12 @@ public class SingleObjectMod extends Thread {
 
   }
 
-  public SingleObjectMod(int nthreads, int arrysize, int loopsize, int threadid, intwrapper[] mainobj, Random rand) {
+  public SingleObjectMod(int nthreads, int arrysize, int loopsize, int lsize1, int lsize2, int threadid, intwrapper[] mainobj, Random rand) {
     this.nthreads = nthreads;
     this.arrysize = arrysize;
     this.loopsize = loopsize;
+    this.lsize1 = lsize1;
+    this.lsize2 = lsize2;
     this.threadid = threadid;
     this.mainobj = mainobj;
     this.rand = rand;
@@ -37,9 +40,17 @@ public class SingleObjectMod extends Thread {
         if(i < args.length) {
           som.loopsize = new Integer(args[i++]).intValue();
         }
+      } else if(arg.equals("-l1")) {
+        if(i < args.length) {
+          som.lsize1 = new Integer(args[i++]).intValue();
+        }
+      } else if(arg.equals("-l2")) {
+        if(i < args.length) {
+          som.lsize2 = new Integer(args[i++]).intValue();
+        }
       } else {
         System.out.println("Incorrect argument");
-        System.out.println("usage: ./SingleObjectMod -t <threads> -size <array size> -l <loopsize>\n");
+        System.out.println("usage: ./SingleObjectMod -t <threads> -size <array size> -l <loopsize> -l1 <inner loopsize2> -l2 <inner loopsize2>\n");
       }
     }
   }
@@ -56,18 +67,23 @@ public class SingleObjectMod extends Thread {
       stop = loopsize;
     else
       stop = start + partitionSize;
-    //System.out.println("Start = " + start+ " stop= " + stop + " partitionSize= " + partitionSize+ " nthreads= " + nthreads);
+    //System.out.println("Start = " + start+ " stop= " + stop + " partitionSize= " + partitionSize+ " loopsize= " + loopsize + " lsize1= " + lsize1 + " lsize2= " + lsize2);
     for(int i = start; i < stop; i++) {
-      // Only read values from an object
+      int count;
       atomic {
         index = (int)(rand.random_generate() % arrysize);
+        // Do computation 1
+        for(int j = 0; j<lsize1; j++) {
+          count += j*j;
+        }
+        // Only read values from an object
         val = mainobj[index];
-      }
-
-      // Write values 
-      atomic {
-        index = (int)(rand.random_generate() % arrysize);
-        mainobj[index] = index;
+        // Do computation 2
+        for(int j = 0; j<lsize2; j++) {
+          count+=val*j;
+        }
+        // Write values 
+        mainobj[index] = count;
       }
     }
   }
@@ -89,7 +105,7 @@ public class SingleObjectMod extends Thread {
 
     SingleObjectMod[] mysom = new SingleObjectMod[nthreads];
     for(int i = 0; i < nthreads; i++) {
-      mysom[i] = new SingleObjectMod(nthreads, som.arrysize, som.loopsize, i, som.mainobj, rand);
+      mysom[i] = new SingleObjectMod(nthreads, som.arrysize, som.loopsize, som.lsize1, som.lsize2, i, som.mainobj, rand);
     }
 
     for(int i = 0; i < nthreads; i++) {
index 655a510ff17968b522e078476301ca04832b874a..8d0df353ee0fba0546466995d4ecbfc093313ba2 100644 (file)
@@ -3,7 +3,7 @@ SRC=${MAINCLASS}.java \
     ../KMeans/Random.java \
     ../../../ClassLibrary/intwrapper.java
 
-FLAGSSTATS=-mainclass ${MAINCLASS} -singleTM -optimize -debug -joptimize -64bit -abcclose -dcopts -transstats -arraypad
+FLAGSSTATS=-stmstats -mainclass ${MAINCLASS} -singleTM -optimize -debug -joptimize -64bit -abcclose -dcopts -transstats -arraypad
 
 stmlock:
        ../../../buildscript ${FLAGSSTATS} ${SRC} -o STATS${MAINCLASS}