Java程序辅导

C C++ Java Python Processing编程在线培训 程序编写 软件开发 视频讲解

客服在线QQ:2653320439 微信:ittutor Email:itutor@qq.com
wx: cjtutor
QQ: 2653320439
COMP2121 Lab 1
Synchrobench Setup
The goal of this lab is to setup the Java version of Synchrobench using the command line. Syn-
chrobench requires Java 1.6 or higher and Apache ant. The use of a machine running a Unix-based
operating system like Linux/Unix/Mac OS X is recommended.
Exercise 1: Get Synchrobench
Synchrobench is a micro-benchmark suite used to evaluate synchronization techniques on data struc-
tures. Synchrobench is written in C/C++ and Java and currently includes arrays, binary trees, hash
tables, linked lists, queues and skip lists that are synchronized with copy-on-write, locks, read-copy-
update, compare-and-swap and transactional memory. A non-synchronized version of these data
structures is proposed in each language as a baseline to measure the performance gain on multi-
(/many)-core machines.
Get a copy of Synchrobench by clicking here or
1 wget https://github.com/gramoli/synchrobench/archive/master.zip
and unzip it:
1 unzip master.zip
2 rm master.zip
Find your runtime Java library. This is a Java archive usually called rt.jar (sometimes called
classes.jar) often located in /usr/lib/jvm/java-1.Version-archivecture/jre/lib/
on Linux or /System/Library/Frameworks/JavaVM.framework/Versions/1.Version/Classes/
on Mac OS X.
1 find /usr/lib/jvm/ -name rt.jar
Duration: 5 min
Exercise 2: Synchrobench on the command line
1. The Java folder contains the Java version of Synchrobench. Change Line 27, 31 or 35 if your
run Mac OS X, Linux or Solaris, respectively, of file Makefile with the absolute path to your
runtime Java library found in the previous step. Run the updated makefile to compile.
1 cd synchrobench-master/java
2 make
1
COMP2121 Synchrobench Setup
2. You should have a set of available data structures in the bin directory. Run one benchmark
(e.g., LockBasedFriendlyTreeMap) with no warmup (-W 0), 2 threads (-t 2) running 10%
of update (insert/remove) operations and 90% of read-only (contains) operations (-u 10)
during 1 second (-d 1000). Extract its throughput performance.
1 java -server -cp lib/compositional-deucestm-0.1.jar:lib/mydeuce.jar \
2 contention.benchmark.Test -W 0 -t 2 -d 1000 -u 10 -b \
3 trees.lockbased.LockBasedFriendlyTreeMap > output.txt
4 grep Throughput output.txt
Look at the output file output.txt. What is the difference between the effective updates and
the update ratio you provided with parameter -u? Explain.
Duration: 5 min
Distributed Systems and Network Principles Page 2 of 2