changes
[IRC.git] / Robust / TransSim / TransSim.java
index d3fe5ca61289b35797f93bfc3a79b919e424c300..896b8bd8ef001f77b43e98f8c1c923ab3f8eefe6 100644 (file)
@@ -1,10 +1,10 @@
 public class TransSim {
   public static void main(String[] args) {
-    int numThreads=1;
-    int numTrans=4;
+    int numThreads=20;
+    int numTrans=40;
     int deltaTrans=0;
-    int numObjects=50;
-    int numAccesses=2;
+    int numObjects=200;
+    int numAccesses=20;
     int deltaAccesses=0;
     int readPercent=0;
     //time for operation
@@ -14,89 +14,103 @@ public class TransSim {
     int nonTrans=20;
     int deltaNonTrans=4;
     //split objects
-    int splitobjects=100;//10 percent of objects special
+    int splitobjects=200;//10 percent of objects special
     int splitaccesses=100;//40 percent of accesses to special objects
     int readPercentSecond=30;//20 percent of accesses are reads
     int abortThreshold=0; //need 4 aborts to declare risky
     int abortRatio=0;//need 40% aborts vs commits to declare risky
     int deadlockdepth=10;
 
-    long tlazy=0, tcommit=0, tattack=0, tpolite=0, tkarma=0;
+    Plot p=new Plot("plot");
 
-    for(int i=1;i<100;i++) {
+    for(int i=1;i<30;i++) {
       System.out.println("i="+i);
-      Executor e=new Executor(i, numTrans, deltaTrans, numObjects, numAccesses, deltaAccesses, readPercent, delay, deltaDelay, nonTrans, deltaNonTrans, splitobjects, splitaccesses, readPercentSecond);
+      numThreads=i;
+      Executor e=new Executor(numThreads, numTrans, deltaTrans, numObjects, numAccesses, deltaAccesses, readPercent, delay, deltaDelay, nonTrans, deltaNonTrans, splitobjects, splitaccesses, readPercentSecond);
       System.out.println(e.maxTime());
-      FlexScheduler ls=new FlexScheduler(e, FlexScheduler.LAZY);
+      FlexScheduler ls=new FlexScheduler(e, FlexScheduler.LAZY, null);
       ls.dosim();
       System.out.println("Lazy Time="+ls.getTime());
       System.out.println("Aborts="+ls.getAborts()+" Commit="+ls.getCommits());
-      int besttime=ls.getTime();
-      tlazy+=ls.getTime();
+      p.getSeries("LAZY").addPoint(i, ls.getTime());
+
 
       //Lock object accesses
-      ls=new FlexScheduler(e, FlexScheduler.LOCK, abortThreshold, abortRatio, deadlockdepth);
+      ls=new FlexScheduler(e, FlexScheduler.LOCK, abortThreshold, abortRatio, deadlockdepth, null);
       ls.dosim();
       System.out.println("Deadlock count="+ls.getDeadLockCount());
       System.out.println("Lock Abort="+ls.getTime());
       System.out.println("Aborts="+ls.getAborts()+" Commit="+ls.getCommits());
-      if (ls.getTime()<besttime)
-       besttime=ls.getTime();
-      tcommit+=ls.getTime();
+      p.getSeries("LOCK").addPoint(i, ls.getTime());
 
       //Lock Commit object accesses
-      ls=new FlexScheduler(e, FlexScheduler.LOCKCOMMIT, abortThreshold, abortRatio, deadlockdepth);
+      ls=new FlexScheduler(e, FlexScheduler.LOCKCOMMIT, abortThreshold, abortRatio, deadlockdepth, null);
       ls.dosim();
       System.out.println("Deadlock count="+ls.getDeadLockCount());
       System.out.println("LockCommit Abort="+ls.getTime());
       System.out.println("Aborts="+ls.getAborts()+" Commit="+ls.getCommits());
-      if (ls.getTime()<besttime)
-       besttime=ls.getTime();
-      tcommit+=ls.getTime();
+      p.getSeries("LOCKCOMMIT").addPoint(i, ls.getTime());
 
       //Kill others at commit
-      ls=new FlexScheduler(e, FlexScheduler.COMMIT);
+      ls=new FlexScheduler(e, FlexScheduler.COMMIT, null);
       ls.dosim();
       System.out.println("Fast Abort="+ls.getTime());
       System.out.println("Aborts="+ls.getAborts()+" Commit="+ls.getCommits());
-      if (ls.getTime()<besttime)
-       besttime=ls.getTime();
-      tcommit+=ls.getTime();
+      p.getSeries("COMMIT").addPoint(i, ls.getTime());
       
       //Eager attack
-      ls=new FlexScheduler(e, FlexScheduler.ATTACK);
+      ls=new FlexScheduler(e, FlexScheduler.ATTACK, null);
       ls.dosim();
       System.out.println("Attack Abort="+ls.getTime());
       System.out.println("Aborts="+ls.getAborts()+" Commit="+ls.getCommits());
-      if (ls.getTime()<besttime)
-       besttime=ls.getTime();
-      tattack+=ls.getTime();      
+      p.getSeries("ATTACK").addPoint(i, ls.getTime());
 
       //Eager polite
-      ls=new FlexScheduler(e, FlexScheduler.POLITE);
+      ls=new FlexScheduler(e, FlexScheduler.SUICIDE, null);
+      ls.dosim();
+      System.out.println("Suicide Abort="+ls.getTime());
+      System.out.println("Aborts="+ls.getAborts()+" Commit="+ls.getCommits());
+      p.getSeries("SUICIDE").addPoint(i, ls.getTime());
+
+      //Karma
+      ls=new FlexScheduler(e, FlexScheduler.TIMESTAMP, null);
+      ls.dosim();
+      System.out.println("Timestamp Abort="+ls.getTime());
+      System.out.println("Aborts="+ls.getAborts()+" Commit="+ls.getCommits());
+      p.getSeries("TIMESTAMP").addPoint(i, ls.getTime());
+
+      //Karma
+      ls=new FlexScheduler(e, FlexScheduler.RANDOM, null);
       ls.dosim();
-      System.out.println("Polite Abort="+ls.getTime());
+      System.out.println("Random Abort="+ls.getTime());
       System.out.println("Aborts="+ls.getAborts()+" Commit="+ls.getCommits());
-      if (ls.getTime()<besttime)
-       besttime=ls.getTime();
-      tpolite+=ls.getTime();      
+      p.getSeries("RANDOM").addPoint(i, ls.getTime());
 
       //Karma
-      ls=new FlexScheduler(e, FlexScheduler.KARMA);
+      ls=new FlexScheduler(e, FlexScheduler.KARMA, null);
       ls.dosim();
       System.out.println("Karma Abort="+ls.getTime());
       System.out.println("Aborts="+ls.getAborts()+" Commit="+ls.getCommits());
-      if (ls.getTime()<besttime)
-       besttime=ls.getTime();
-      tkarma+=ls.getTime();
+      p.getSeries("KARMA").addPoint(i, ls.getTime());
+
+      //Karma
+      ls=new FlexScheduler(e, FlexScheduler.POLITE, null);
+      ls.dosim();
+      System.out.println("Polit Abort="+ls.getTime());
+      System.out.println("Aborts="+ls.getAborts()+" Commit="+ls.getCommits());
+      p.getSeries("POLITE").addPoint(i, ls.getTime());
+
+      //Karma
+      ls=new FlexScheduler(e, FlexScheduler.ERUPTION, null);
+      ls.dosim();
+      System.out.println("Eruption Abort="+ls.getTime());
+      System.out.println("Aborts="+ls.getAborts()+" Commit="+ls.getCommits());
+      p.getSeries("ERUPTION").addPoint(i, ls.getTime());
+
       //    Scheduler s=new Scheduler(e, besttime);
       //s.dosim();
       //System.out.println("Optimal Time="+s.getTime());
     }
-    System.out.println("lazy="+tlazy);
-    System.out.println("commit="+tcommit);
-    System.out.println("attack="+tattack);
-    System.out.println("polite="+tpolite);
-    System.out.println("karma="+tkarma);
+    p.close();
   }
 }
\ No newline at end of file