changes
authorbdemsky <bdemsky>
Tue, 10 Nov 2009 10:22:16 +0000 (10:22 +0000)
committerbdemsky <bdemsky>
Tue, 10 Nov 2009 10:22:16 +0000 (10:22 +0000)
Robust/src/Analysis/Locality/BranchAnalysis.java
Robust/src/Analysis/Locality/DCWrapper.java
Robust/src/Analysis/Locality/DiscoverConflicts.java
Robust/src/Benchmarks/SingleTM/common/Makefile.builds
Robust/src/Benchmarks/SingleTM/common/Makefile.flags
Robust/src/Benchmarks/SingleTM/runall

index 31a1402666573e12f6f1aa49e8226ae555766457..6b22ded95456dc63e600d7c4b00d6373810623e0 100644 (file)
@@ -22,6 +22,9 @@ public class BranchAnalysis {
     Set<FlatNode> group=groupmap.get(fn);
     if (group==null)
       return -1;
+    while (next.numNext()==1&&group.contains(next)) {
+      next=fnmap.get(next)[0];
+    }
     if (group.contains(next))
       return -1;
     Vector<FlatNode> exits=table.get(group);
@@ -84,7 +87,7 @@ public class BranchAnalysis {
       output.println(label+":");
       if (numJumps(fn)==1) {
        FlatNode fndst=getJumps(fn).get(0);
-       output.println("goto "+nodetolabels.get(fndst)+";");
+       output.println("goto L"+nodetolabels.get(fndst)+";");
       } else if (numJumps(fn)==2) {
        Vector<FlatNode> exits=getJumps(fn);
        output.println("if(RESTOREBRANCH())");
@@ -110,17 +113,20 @@ public class BranchAnalysis {
 
     for(Iterator<FlatNode> fnit=transset.iterator();fnit.hasNext();) {
       FlatNode fn=fnit.next();
-      if (fn.numNext()>1&&storeset.contains(fn)) {
+      if ((fn.numNext()>1&&storeset.contains(fn))||fn.kind()==FKind.FlatBackEdge||fn.kind()==FKind.FlatNop) {
        FlatNode[] children=fnmap.get(fn);
+       if (children==null)
+         continue;
        if (!groupmap.containsKey(fn)) {
          groupmap.put(fn, new HashSet<FlatNode>());
          groupmap.get(fn).add(fn);
        }
        for(int i=0;i<children.length;i++) {
          FlatNode child=children[i];
-         if (child.numNext()>1&&storeset.contains(child))
+         if ((child.numNext()>1&&storeset.contains(child))||child.kind()==FKind.FlatBackEdge||child.kind()==FKind.FlatNop) {
            mergegroups(fn, child, groupmap);
          }
+       }
       }
     }
     //now we have groupings...
index 508b44a605cc0a27dc59328a6d1e176b9b7255c4..394f9b402dcd37acf589b90ecf9ca71a8f82e5a3 100644 (file)
@@ -175,6 +175,10 @@ public class DCWrapper {
     if (!optmap.containsKey(lb)) {
       optmap.put(lb, new HashSet<FlatNode>());
     }
+
+    if (state.HYBRID&&recordset.size()>6)
+      return false;
+
     DiscoverConflicts dc=delaycomp.getConflicts();
     for(Iterator<FlatNode> fnit=checkset.iterator();fnit.hasNext();) {
       FlatNode fn=fnit.next();
index 40a88c6be6e646d2c399001c9ed9d7c467bea70e..7baa47e9522857e97e6aefb6ed5a90dba1c6927c 100644 (file)
@@ -234,7 +234,7 @@ public class DiscoverConflicts {
     if (gft!=null) {
       writemap.put(lb, writeset);
     }
-    
+
     HashSet<FlatNode> srctrans=new HashSet<FlatNode>();
     HashSet<FlatNode> leftsrctrans=new HashSet<FlatNode>();
     HashSet<FlatNode> rightsrctrans=new HashSet<FlatNode>();
@@ -478,7 +478,7 @@ public class DiscoverConflicts {
            //this could cause conflict...figure out conflict set
            Set<TempFlatPair> tfpset=tmap.get(fen.getSrc());
            if (tfpset!=null)
-             writeset.addAll(tfpset);
+             tfset.addAll(tfpset);
          }
          break;
        }
@@ -494,7 +494,7 @@ public class DiscoverConflicts {
            //this could cause conflict...figure out conflict set
            Set<TempFlatPair> tfpset=tmap.get(ffn.getSrc());
            if (tfpset!=null)
-             writeset.addAll(tfpset);
+             tfset.addAll(tfpset);
          }
          break;
        }
@@ -800,18 +800,21 @@ public class DiscoverConflicts {
 }
 
 class TempFlatPair {
-    FlatNode f;
-    TempDescriptor t;
-    TempFlatPair(TempDescriptor t, FlatNode f) {
-       this.t=t;
-       this.f=f;
-    }
-
-    public int hashCode() {
-       return f.hashCode()^t.hashCode();
-    }
-    public boolean equals(Object o) {
-       TempFlatPair tf=(TempFlatPair)o;
-       return t.equals(tf.t)&&f.equals(tf.f);
-    }
+  FlatNode f;
+  TempDescriptor t;
+  TempFlatPair(TempDescriptor t, FlatNode f) {
+    this.t=t;
+    this.f=f;
+  }
+  
+  public int hashCode() {
+    return f.hashCode()^t.hashCode();
+  }
+  public boolean equals(Object o) {
+    TempFlatPair tf=(TempFlatPair)o;
+    return t.equals(tf.t)&&f.equals(tf.f);
+  }
+  public String toString() {
+    return f.toString()+" "+t.toString();
+  }
 }
index ef109efc7827d08f991ef0a22cd1421584ceaebb..1799768e7d82f26b86694aaabc2c327a27cb96c9 100644 (file)
@@ -1,4 +1,4 @@
-default: lockjopt stmopt fission debug fissionarray dv
+default: lockjopt stmopt fission debug fissionarray dv hydv
 
 lock: prep
        ../../../buildscript ${FLAGSLOCKNOJ} -o LOCKNOJ${MAINCLASS} ${SRC}
@@ -30,6 +30,9 @@ fissionarray: prep
 dv: prep
        ../../../buildscript ${FLAGSDV} -o DV${MAINCLASS} ${SRC}
 
+hydv: prep
+       ../../../buildscript ${FLAGSHYDV} -o HYDV${MAINCLASS} ${SRC}
+
 debug: prep
        ../../../buildscript ${FLAGSDEBUG} -o DEB${MAINCLASS} ${SRC}
 
index 47963fb45492a54785bb69bc2cb793db3bad2898..9f249cea735f880a53b9d0688ec0ca77e4a05464 100644 (file)
@@ -10,3 +10,4 @@ FLAGSLOCKPROF=-mainclass ${MAINCLASS} -thread -optimize -abcclose -64bit -debug
 FLAGSLOCKPROFO0=-mainclass ${MAINCLASS} -thread -optimize -abcclose -64bit -debug -joptimize -arraypad
 FLAGSFISSIONARRAY=-mainclass ${MAINCLASS} -singleTM -delaycomp -optimize -joptimize -abcclose -64bit -debug -transstats -inlineatomic 2 -minimize -arraypad -sandbox -stmarray -builddir fisar
 FLAGSDV=-mainclass ${MAINCLASS} -singleTM -delaycomp -optimize -joptimize -64bit -debug -transstats -inlineatomic 2 -minimize -readset -sandbox -stmarray -dualview -abcclose -builddir dv
+FLAGSHYDV=-mainclass ${MAINCLASS} -singleTM -delaycomp -optimize -joptimize -64bit -debug -transstats -inlineatomic 2 -minimize -readset -sandbox -stmarray -dualview -abcclose -builddir hydv -hybrid
index 2a1d0d63fa233ebc117d381b168863af3e3ef2d7..93eb7f6b5ff307296252619105c4200e3e5fe2e1 100755 (executable)
@@ -2,32 +2,37 @@
 function run {
 dir="$1"
 command="$2"
+threads="$3"
+shift
 shift
 shift
 args="$@"
 cd $dir
 echo ============================================================
 echo Running Fission $command $@
-for i in 1
+for i in 1 2 3 4 5 6 7 8 9 10
 do
 echo Trial $i
-time ./FIS$command $args
+time ./FIS$command $args &> ../log/${command}_${threads}_FIS_${i}
+cat ../log/${command}_${threads}_FIS_${i}
 done
 echo
 echo
 echo Running Fission Array $command $@
-for i in 1
+for i in 1 2 3 4 5 6 7 8 9 10
 do
 echo Trial $i
-time ./FISAR$command $args
+time ./FISAR$command $args &> ../log/${command}_${threads}_FISAR_${i}
+cat ../log/${command}_${threads}_FISAR_${i}
 done
 echo
 echo
 echo Running Debug Array $command $@
-for i in 1
+for i in 1 2 3 4 5 6 7 8 9 10
 do
 echo Trial $i
-time ./DEB$command $args
+time ./DEB$command $args &> ../log/${command}_${threads}_DEB_${i}
+cat ../log/${command}_${threads}_DEB_${i}
 done
 echo
 echo
@@ -35,31 +40,44 @@ echo
 #for i in 1
 #do
 #echo Trial $i
-#time ./STM$command $args
+#time ./STM$command $args &> ../log/${command}_${threads}_STM_${i}
+#cat ../log/${command}_${threads}_STM_${i}
 #done
 #echo
 #echo
 echo Running Optimized STM $command $@
-for i in 1
+for i in 1 2 3 4 5 6 7 8 9 10
 do
 echo Trial $i
-time ./OPTSTM$command $args
+time ./OPTSTM$command $args &> ../log/${command}_${threads}_OPTSTM_${i}
+cat ../log/${command}_${threads}_OPTSTM_${i}
 done
 echo
 echo
 echo Running Lock $command $@
-for i in 1
+for i in 1 2 3 4 5 6 7 8 9 10
 do
 echo Trial $i
-time ./LOCK$command $args
+time ./LOCK$command $args &> ../log/${command}_${threads}_LOCK_${i}
+cat ../log/${command}_${threads}_LOCK_${i}
 done
 echo
 echo
 echo Running DV $command $@
-for i in 1
+for i in 1 2 3 4 5 6 7 8 9 10
+do
+echo Trial $i
+time ./DV$command $args &> ../log/${command}_${threads}_DV_${i}
+cat ../log/${command}_${threads}_DV_${i}
+done
+echo
+echo
+echo Running Hybrid DV $command $@
+for i in 1 2 3 4 5 6 7 8 9 10
 do
 echo Trial $i
-time ./DV$command $args
+time ./HYDV$command $args &> ../log/${command}_${threads}_HYDV_${i}
+cat ../log/${command}_${threads}_HYDV_${i}
 done
 echo
 echo
@@ -67,7 +85,8 @@ echo
 #for i in 1
 #do
 #echo Trial $i
-#time ./STMNOJ$command $args
+#time ./STMNOJ$command $args &> ../log/${command}_${threads}_STMNOJ_${i}
+#cat ../log/${command}_${threads}_STMNOJ_${i}
 #done
 #echo
 #echo
@@ -75,7 +94,8 @@ echo
 #for i in 1
 #do
 #echo Trial $i
-#time ./LOCKNOJ$command $args
+#time ./LOCKNOJ$command $args &> ../log/${command}_${threads}_LOCKNOJ_${i}
+#cat ../log/${command}_${threads}_LOCKNOJ_${i}
 #done
 #echo
 #echo
@@ -86,61 +106,56 @@ ulimit -s 45000
 
 
 #Kmeans
-#run KMeans KMeans.bin -m 15 -n 15 -t 0.00001 -i inputs/random-n65536-d32-c16.txt -nthreads 1
-#run KMeans KMeans.bin -m 15 -n 15 -t 0.00001 -i inputs/random-n65536-d32-c16.txt -nthreads 2
-#run KMeans KMeans.bin -m 15 -n 15 -t 0.00001 -i inputs/random-n65536-d32-c16.txt -nthreads 4
-#run KMeans KMeans.bin -m 15 -n 15 -t 0.00001 -i inputs/random-n65536-d32-c16.txt -nthreads 8
+#run KMeans KMeans.bin -m 15 -n 15 -t 0.00001 -i inputs/random-n65536-d32-c16.txt -nthreads 1
+#run KMeans KMeans.bin -m 15 -n 15 -t 0.00001 -i inputs/random-n65536-d32-c16.txt -nthreads 2
+#run KMeans KMeans.bin -m 15 -n 15 -t 0.00001 -i inputs/random-n65536-d32-c16.txt -nthreads 4
+#run KMeans KMeans.bin -m 15 -n 15 -t 0.00001 -i inputs/random-n65536-d32-c16.txt -nthreads 8
 
 #Kmeans low
-run KMeans KMeans.bin -m 40 -n 40 -t 0.00001 -i inputs/random-n65536-d32-c16.txt -nthreads 1
-run KMeans KMeans.bin -m 40 -n 40 -t 0.00001 -i inputs/random-n65536-d32-c16.txt -nthreads 2
-run KMeans KMeans.bin -m 40 -n 40 -t 0.00001 -i inputs/random-n65536-d32-c16.txt -nthreads 4
-run KMeans KMeans.bin -m 40 -n 40 -t 0.00001 -i inputs/random-n65536-d32-c16.txt -nthreads 8
+run KMeans KMeans.bin -m 40 -n 40 -t 0.00001 -i inputs/random-n65536-d32-c16.txt -nthreads 1
+run KMeans KMeans.bin -m 40 -n 40 -t 0.00001 -i inputs/random-n65536-d32-c16.txt -nthreads 2
+run KMeans KMeans.bin -m 40 -n 40 -t 0.00001 -i inputs/random-n65536-d32-c16.txt -nthreads 4
+run KMeans KMeans.bin -m 40 -n 40 -t 0.00001 -i inputs/random-n65536-d32-c16.txt -nthreads 8
 
 #Labrynth
-run Labyrinth3D Labyrinth.bin -i inputs/random-x512-y512-z7-n512.txt -t 1
-run Labyrinth3D Labyrinth.bin -i inputs/random-x512-y512-z7-n512.txt -t 2
-run Labyrinth3D Labyrinth.bin -i inputs/random-x512-y512-z7-n512.txt -t 4
-run Labyrinth3D Labyrinth.bin -i inputs/random-x512-y512-z7-n512.txt -t 8
+run Labyrinth3D Labyrinth.bin -i inputs/random-x512-y512-z7-n512.txt -t 1
+run Labyrinth3D Labyrinth.bin -i inputs/random-x512-y512-z7-n512.txt -t 2
+run Labyrinth3D Labyrinth.bin -i inputs/random-x512-y512-z7-n512.txt -t 4
+run Labyrinth3D Labyrinth.bin -i inputs/random-x512-y512-z7-n512.txt -t 8
 
 #SSCA2
-run SSCA2 SSCA2.bin -s 20 -i 1.0 -u 1.0 -l 3 -p 3 -t 1
-run SSCA2 SSCA2.bin -s 20 -i 1.0 -u 1.0 -l 3 -p 3 -t 2
-run SSCA2 SSCA2.bin -s 20 -i 1.0 -u 1.0 -l 3 -p 3 -t 4
-run SSCA2 SSCA2.bin -s 20 -i 1.0 -u 1.0 -l 3 -p 3 -t 8
+run SSCA2 SSCA2.bin -s 20 -i 1.0 -u 1.0 -l 3 -p 3 -t 1
+run SSCA2 SSCA2.bin -s 20 -i 1.0 -u 1.0 -l 3 -p 3 -t 2
+run SSCA2 SSCA2.bin -s 20 -i 1.0 -u 1.0 -l 3 -p 3 -t 4
+run SSCA2 SSCA2.bin -s 20 -i 1.0 -u 1.0 -l 3 -p 3 -t 8
 
 #Genome
-run Genome Genome.bin -g 8192 -s 64 -n 16777216 -t 1
-run Genome Genome.bin -g 8192 -s 64 -n 16777216 -t 2
-run Genome Genome.bin -g 8192 -s 64 -n 16777216 -t 4
-run Genome Genome.bin -g 8192 -s 64 -n 16777216 -t 8
+run Genome Genome.bin -g 8192 -s 64 -n 16777216 -t 1
+run Genome Genome.bin -g 8192 -s 64 -n 16777216 -t 2
+run Genome Genome.bin -g 8192 -s 64 -n 16777216 -t 4
+run Genome Genome.bin -g 8192 -s 64 -n 16777216 -t 8
 
 #Vacation
-run Vacation Vacation.bin -n 4 -q 60 -u 90 -r 1048576 -t 4194304 -c 1
-run Vacation Vacation.bin -n 4 -q 60 -u 90 -r 1048576 -t 4194304 -c 2
-run Vacation Vacation.bin -n 4 -q 60 -u 90 -r 1048576 -t 4194304 -c 4
-run Vacation Vacation.bin -n 4 -q 60 -u 90 -r 1048576 -t 4194304 -c 8
+run Vacation Vacation.bin -n 4 -q 60 -u 90 -r 1048576 -t 4194304 -c 1
+run Vacation Vacation.bin -n 4 -q 60 -u 90 -r 1048576 -t 4194304 -c 2
+run Vacation Vacation.bin -n 4 -q 60 -u 90 -r 1048576 -t 4194304 -c 4
+run Vacation Vacation.bin -n 4 -q 60 -u 90 -r 1048576 -t 4194304 -c 8
 
 #Yada
-run Yada yada.bin -a 15 -i input/ttimeu100000.2 -t 1
-run Yada yada.bin -a 15 -i input/ttimeu100000.2 -t 2
-run Yada yada.bin -a 15 -i input/ttimeu100000.2 -t 4
-run Yada yada.bin -a 15 -i input/ttimeu100000.2 -t 8
+run Yada yada.bin -a 15 -i input/ttimeu100000.2 -t 1
+run Yada yada.bin -a 15 -i input/ttimeu100000.2 -t 2
+run Yada yada.bin -a 15 -i input/ttimeu100000.2 -t 4
+run Yada yada.bin -a 15 -i input/ttimeu100000.2 -t 8
 
 #Intruder
-run Intruder Intruder.bin -a 10 -l 128 -n 262144 -s 1 -t 1
-run Intruder Intruder.bin -a 10 -l 128 -n 262144 -s 1 -t 2
-run Intruder Intruder.bin -a 10 -l 128 -n 262144 -s 1 -t 4
-run Intruder Intruder.bin -a 10 -l 128 -n 262144 -s 1 -t 8
-
-#LeeRouting
-run LeeRouting LeeRouter.bin 1 sparselong.txt
-run LeeRouting LeeRouter.bin 2 sparselong.txt
-run LeeRouting LeeRouter.bin 4 sparselong.txt
-run LeeRouting LeeRouter.bin 8 sparselong.txt
+run Intruder Intruder.bin 1 -a 10 -l 128 -n 262144 -s 1 -t 1
+run Intruder Intruder.bin 2 -a 10 -l 128 -n 262144 -s 1 -t 2
+run Intruder Intruder.bin 4 -a 10 -l 128 -n 262144 -s 1 -t 4
+run Intruder Intruder.bin 8 -a 10 -l 128 -n 262144 -s 1 -t 8
 
 #Bayes
-run Bayes Bayes.bin -v 24 -r 1024 -n 2 -p 20 -s 0 -i 2 -e 2 -t 1
-run Bayes Bayes.bin -v 24 -r 1024 -n 2 -p 20 -s 0 -i 2 -e 2 -t 2
-run Bayes Bayes.bin -v 24 -r 1024 -n 2 -p 20 -s 0 -i 2 -e 2 -t 4
-run Bayes Bayes.bin -v 24 -r 1024 -n 2 -p 20 -s 0 -i 2 -e 2 -t 8
+run Bayes Bayes.bin 1 -v 32 -r 4096 -n 10 -p 40 -s 1 -i 2 -e 8 -t 1
+run Bayes Bayes.bin 2 -v 32 -r 4096 -n 10 -p 40 -s 1 -i 2 -e 8 -t 2
+run Bayes Bayes.bin 4 -v 32 -r 4096 -n 10 -p 40 -s 1 -i 2 -e 8 -t 4
+run Bayes Bayes.bin 8 -v 32 -r 4096 -n 10 -p 40 -s 1 -i 2 -e 8 -t 8
+