From: adash Date: Mon, 27 Apr 2009 19:58:00 +0000 (+0000) Subject: change makefile and add instructions to compile and run LeeRouter X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=f9e4a58c682e76d9c581750a7ed3c3d489ca2844;p=IRC.git change makefile and add instructions to compile and run LeeRouter --- diff --git a/Robust/src/Benchmarks/SingleTM/LeeRouting/LeeRouter.java b/Robust/src/Benchmarks/SingleTM/LeeRouting/LeeRouter.java index e0142240..41882a30 100644 --- a/Robust/src/Benchmarks/SingleTM/LeeRouting/LeeRouter.java +++ b/Robust/src/Benchmarks/SingleTM/LeeRouting/LeeRouter.java @@ -72,6 +72,7 @@ public class LeeRouter { boolean DEBUG; boolean XML_REPORT; + public LeeRouter(String file, boolean test, boolean debug, boolean rel) { //Constructor initializing MAX_SAMPLE_THRESHOLD = 60000; @@ -645,7 +646,7 @@ public class LeeRouter { boolean exitByTimeout = false; int sampleInterval = 10000; - System.out.println("Threads: " + numThreads); + System.out.println("Numthreads: " + numThreads); LeeThread[] thread = new LeeThread[numThreads]; @@ -657,12 +658,11 @@ public class LeeRouter { thread[i].start(); //currentTime = System.currentTimeMillis(); - //LeeThread.stop = true; // notify threads to stop for (int i = 0; i < numThreads; i++) { thread[i].join(); } //long elapsedTime = startTime - currentTime; - System.out.println("Numthreads: " + numThreads); + //System.out.println("Numthreads: " + numThreads); //System.out.println("Throughput: " + throughput); //System.out.println("ElapsedTime: " + elapsedTime); lr.sanityCheck(); diff --git a/Robust/src/Benchmarks/SingleTM/LeeRouting/README b/Robust/src/Benchmarks/SingleTM/LeeRouting/README new file mode 100644 index 00000000..c022c7f0 --- /dev/null +++ b/Robust/src/Benchmarks/SingleTM/LeeRouting/README @@ -0,0 +1,46 @@ +Introduction +------------ + + Lee's routing algorithm is one of the first algorithms used in + automatic circuit routing. Lee's routing algorithm is interesting + for TM because: it is an example of a real-world application, it + contains an abundance of potential parallelism due to the number + of routings that need to be performed in a typical realistic circuit, + and this abundance of parallelism is difficult to exploit efficiently + using locks. For example, routes are sorted by increasing length and + each grid point is assigned a weight to attempt to keep routes away + from pins. The layout contains over 3000 connections points and + 1506 interconnections, and the data is available in the file mainboard.txt. + +Compiling and Running +--------------------- + +To build the application, simply run: + + make + +By default, this produces an executable named "LeeRouter.bin", which can then be +run in the following manner: + ./LeeRouter.bin + + low contention: ./LeeRouter.bin 1 sparseshort.txt + high contention: ./LeeRouter.bin 8 sparseshort.txt + +For runs with a larger input file, (more info below) can be used +instead: + + low contention: ./LeeRouter.bin 1 mainboard.txt + high contention: ./LeeRouter.bin 8 mainboard.txt + +References +---------- + +[1] Ian Watson, Chris Kirkham and Mikel Luján. +A Study of a Transactional Parallel Routing Algorithm. +In Proceedings of the 16th International Conference on Parallel Architectures +and Compilation Techniques (PACT 2007), Brasov, Romania, Sept. 2007, pp 388-398. + +[2] Mohammad Ansari, Christos Kotselidis, Kim Jarvis, Mikel Luján, Chris Kirkham, and Ian Watson. +Lee-TM: A Non-trivial Benchmark for Transactional Memory. +In Proceedings of the 8th International Conference on Algorithms and Architectures +for Parallel Processing (ICA3PP 2008), Aiya Napa, Cyprus, June 2008. diff --git a/Robust/src/Benchmarks/SingleTM/LeeRouting/makefile b/Robust/src/Benchmarks/SingleTM/LeeRouting/makefile index 45aa60e9..62fd7507 100644 --- a/Robust/src/Benchmarks/SingleTM/LeeRouting/makefile +++ b/Robust/src/Benchmarks/SingleTM/LeeRouting/makefile @@ -5,7 +5,7 @@ SRC=${MAINCLASS}.java \ GridCell.java \ LeeThread.java \ WorkQueue.java -FLAGS=-mainclass ${MAINCLASS} -joptimize -debug -singleTM -optimize -dcopts -transstats -abcclose -stmdebug +FLAGS=-mainclass ${MAINCLASS} -joptimize -debug -singleTM -optimize -dcopts -transstats -abcclose -stmdebug -stmstats default: ../../../buildscript ${FLAGS} -o ${MAINCLASS} ${SRC}