X-Git-Url: http://plrg.eecs.uci.edu/git/?p=IRC.git;a=blobdiff_plain;f=Robust%2FTransSim%2FTransSim.java;h=edf81ab018dd82ad44866403613ceb1a63226d5d;hp=e34cfa159e3df7ed11082e0cc98031200f4800e8;hb=HEAD;hpb=e7ef7289e1717e9979ebe4454be914a42e0227fb diff --git a/Robust/TransSim/TransSim.java b/Robust/TransSim/TransSim.java index e34cfa15..edf81ab0 100644 --- a/Robust/TransSim/TransSim.java +++ b/Robust/TransSim/TransSim.java @@ -1,12 +1,12 @@ public class TransSim { public static void main(String[] args) { int numThreads=20; - int numTrans=4; + int numTrans=40; int deltaTrans=0; - int numObjects=200; + int numObjects=400; int numAccesses=20; - int deltaAccesses=0; - int readPercent=0; + int deltaAccesses=3; + int readPercent=80; //80 percent read //time for operation int delay=20; int deltaDelay=4; @@ -14,74 +14,57 @@ public class TransSim { int nonTrans=20; int deltaNonTrans=4; //split objects - int splitobjects=100;//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 splitobjects=100;//100 percent normal objects + int splitaccesses=100;//100 percent access to normal objects + int readPercentSecond=80;//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; Plot p=new Plot("plot"); + Plot pe=new Plot("plotearliest"); + Plot pa=new Plot("plotabort",true); + Plot ps=new Plot("plotstall"); + Plot pb=new Plot("plotbackoff"); + Plot pat=new Plot("plotaborttime"); - for(int i=10;i<800;i+=5) { + int[] policies=new int[]{FlexScheduler.LAZY, FlexScheduler.COMMIT, FlexScheduler.ATTACK, FlexScheduler.SUICIDE, FlexScheduler.TIMESTAMP, FlexScheduler.LOCK, FlexScheduler.LOCKCOMMIT, FlexScheduler.RANDOM, FlexScheduler.KARMA, FlexScheduler.POLITE, FlexScheduler.ERUPTION, FlexScheduler.THREAD, FlexScheduler.ATTACKTIME, FlexScheduler.ATTACKTHREAD}; + + for(int i=1;i<40;i++) { System.out.println("i="+i); - Executor e=new Executor(numThreads, numTrans, deltaTrans, i, 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, null); - ls.dosim(); - System.out.println("Lazy Time="+ls.getTime()); - System.out.println("Aborts="+ls.getAborts()+" Commit="+ls.getCommits()); - p.getSeries("LAZY").addPoint(i, ls.getTime()); - - - //Lock object accesses - 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()); - p.getSeries("LOCK").addPoint(i, ls.getTime()); - - //Lock Commit object accesses - ls=new FlexScheduler(e, FlexScheduler.LOCKCOMMIT, abortThreshold, abortRatio, deadlockdepth, new Plot("FLEX"+i)); - 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()); - p.getSeries("LOCKCOMMIT").addPoint(i, ls.getTime()); - - //Kill others at 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()); - p.getSeries("COMMIT").addPoint(i, ls.getTime()); - - //Eager 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()); - p.getSeries("ATTACK").addPoint(i, ls.getTime()); - - //Eager polite - ls=new FlexScheduler(e, FlexScheduler.SUICIDE, null); - ls.dosim(); - System.out.println("Polite 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.TIMESTAMP, null); - ls.dosim(); - System.out.println("Karma Abort="+ls.getTime()); - System.out.println("Aborts="+ls.getAborts()+" Commit="+ls.getCommits()); - p.getSeries("KARMA").addPoint(i, ls.getTime()); + for(int j=0;j