...
 
Commits (208)
**/.DS_Store
benchmarks/.idea/
.idea/
local.properties
benchmarks/harness/downloads/*
!benchmarks/harness/downloads/*.MD5
benchmarks/libs/**/downloads/*
!benchmarks/libs/**/downloads/*.MD5
benchmarks/bms/**/downloads/*
!benchmarks/bms/**/downloads/*.MD5
benchmarks/log/
benchmarks/scratch/
benchmarks/libs/**/build/
benchmarks/libs/**/dist/
benchmarks/bms/**/build/
benchmarks/bms/**/dist/
benchmarks/harness/src/org/dacapo/parser/ConfigFile.java
benchmarks/harness/src/org/dacapo/parser/ConfigFileConstants.java
benchmarks/harness/src/org/dacapo/parser/ConfigFileTokenManager.java
benchmarks/harness/src/org/dacapo/parser/ParseException.java
benchmarks/harness/src/org/dacapo/parser/SimpleCharStream.java
benchmarks/harness/src/org/dacapo/parser/Token.java
benchmarks/harness/src/org/dacapo/parser/TokenMgrError.java
benchmarks/harness/build/
benchmarks/harness/dist/
benchmarks/SOURCE_VERSION.txt
benchmarks/benchmarks.iml
benchmarks/bms/kafka/data/
benchmarks/bms/luindex/data/
benchmarks/bms/eclipse/plugin/@dot/
benchmarks/bms/batik/deps/
benchmarks/build/
benchmarks/dacapo*.jar
benchmarks/run.sh
\ No newline at end of file
before_script:
- export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
- pip install requests
- pip install future
- pip install tabulate
- pip install wheel
- export ANT_HOME=/opt/apache-ant-1.10.5
- export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
- export PATH=${JAVA_HOME}/bin:${ANT_HOME}/bin:${PATH}
- java -version
- ant -version
- cd benchmarks
- touch local.properties
- echo "make=/usr/bin/make" >> local.properties
- echo "make=/usr/bin/make" > local.properties
- echo "build.failonerror=true" >> local.properties
- echo "jdk7home=/usr/lib/jvm/java-7-openjdk-amd64" >> local.properties
- echo "jdk9home=/usr/lib/jvm/java-9-openjdk-amd64" >> local.properties
- echo "jdk8home=/usr/lib/jvm/java-1.8.0-openjdk-amd64" >> local.properties
- cat local.properties
cache:
key: anu-gitlab-local
untracked: true
biojava:
script:
- ant -Dbuild.target-jar=dacapo.jar biojava
- /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -jar dacapo.jar biojava -n 3
after_script:
- git clean -df -e "downloads"
avrora:
script:
- ant -Dbuild.target-jar=dacapo.jar avrora
- java -jar dacapo.jar avrora -s small
- java -version
- /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -jar dacapo.jar avrora --extdata-install data
- /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -jar dacapo.jar avrora -n 3
after_script:
- git clean -df -e "downloads"
batik:
script:
- ant -Dbuild.target-jar=dacapo.jar batik
- java -jar dacapo.jar batik -s small
- /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -jar dacapo.jar batik -n 3
after_script:
- git clean -df -e "downloads"
cassandra:
script:
- ant -Dbuild.target-jar=dacapo.jar cassandra
- /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -jar dacapo.jar cassandra -n 3
after_script:
- git clean -df -e "downloads"
eclipse:
script:
- ant -Dbuild.target-jar=dacapo.jar eclipse
- java -jar dacapo.jar eclipse -s small
- /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -jar dacapo.jar eclipse -n 3
after_script:
- git clean -df -e "downloads"
fop:
script:
- ant -Dbuild.target-jar=dacapo.jar fop
- java -jar dacapo.jar fop -s small
- /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -jar dacapo.jar fop -n 3
after_script:
- git clean -df -e "downloads"
graphchi:
script:
- ant -Dbuild.target-jar=dacapo.jar graphchi
- /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -jar dacapo.jar graphchi -n 3
after_script:
- git clean -df -e "downloads"
h2:
script:
- ant -Dbuild.target-jar=dacapo.jar h2
- java -jar dacapo.jar h2 -s small
- /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -jar dacapo.jar h2 -n 3
after_script:
- git clean -df -e "downloads"
jython:
script:
- ant -Dbuild.target-jar=dacapo.jar jython
- java -jar dacapo.jar jython -s small
- /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -jar dacapo.jar jython -n 3
after_script:
- git clean -df -e "downloads"
luindex:
script:
- ant -Dbuild.target-jar=dacapo.jar luindex
- java -jar dacapo.jar luindex -s small
- /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -jar dacapo.jar luindex -n 3
after_script:
- git clean -df -e "downloads"
- git clean -df -e "downloads" -e "enwiki.txt"
lusearch:
script:
- ant -Dbuild.target-jar=dacapo.jar lusearch
- java -jar dacapo.jar lusearch -s small
- /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -jar dacapo.jar lusearch -n 3
after_script:
- git clean -df -e "downloads"
pmd:
script:
- ant -Dbuild.target-jar=dacapo.jar pmd
- java -jar dacapo.jar pmd -s small
- /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -jar dacapo.jar pmd -n 3
after_script:
- git clean -df -e "downloads"
sunflow:
script:
- ant -Dbuild.target-jar=dacapo.jar sunflow
- java -jar dacapo.jar sunflow -s small
- /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -jar dacapo.jar sunflow -n 3
after_script:
- git clean -df -e "downloads"
tomcat:
script:
- ant -Dbuild.target-jar=dacapo.jar tomcat
- java -jar dacapo.jar tomcat -s small
- /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -jar dacapo.jar tomcat -n 3
after_script:
- git clean -df -e "downloads"
- git clean -df -e "downloads"
......@@ -95,7 +123,7 @@ tomcat:
tradebeans:
script:
- script -q -c "ant -Dbuild.target-jar=dacapo.jar tradebeans" script.out
- sleep 120 | script -q -c "java -jar dacapo.jar tradebeans -s small" script.out
- sleep 120 | script -q -c "/usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -jar dacapo.jar tradebeans -n 3" script.out
after_script:
- git clean -df -e "downloads"
- git clean -df -e "downloads"
......@@ -103,7 +131,7 @@ tradebeans:
tradesoap:
script:
- script -q -c "ant -Dbuild.target-jar=dacapo.jar tradesoap" script.out
- sleep 120 | script -q -c "java -jar dacapo.jar tradesoap -s small" script.out
- sleep 120 | script -q -c "/usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -jar dacapo.jar tradesoap -n 3" script.out
after_script:
- git clean -df -e "downloads"
- git clean -df -e "downloads"
......@@ -111,6 +139,34 @@ tradesoap:
xalan:
script:
- ant -Dbuild.target-jar=dacapo.jar xalan
- java -jar dacapo.jar xalan -s small
- /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -jar dacapo.jar xalan -n 3
after_script:
- git clean -df -e "downloads"
zxing:
script:
- ant -Dbuild.target-jar=dacapo.jar zxing
- /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -jar dacapo.jar zxing -n 3
after_script:
- git clean -df -e "downloads"
kafka:
script:
- ant -Dbuild.target-jar=dacapo.jar kafka
- /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -jar dacapo.jar kafka -n 3
after_script:
- git clean -df -e "downloads"
jme:
script:
- ant -Dbuild.target-jar=dacapo.jar jme
- /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -jar dacapo.jar jme -n 3
after_script:
- git clean -df -e "downloads"
h2o:
script:
- ant -Dbuild.target-jar=dacapo.jar h2o
- /usr/lib/jvm/java-1.11.0-openjdk-amd64/bin/java -jar dacapo.jar h2o -n 3
after_script:
- git clean -df -e "downloads"
# The DaCapo Benchmark Suite
Last updated 2018-04-06
Last updated 2019-06-06
This benchmark suite is intend as a tool for the research community.
It consists of a set of open source, real world applications with
......@@ -29,6 +29,8 @@ The easiest way to obtain the benchmark suite is to download the pre-built jar f
If, however, you want to build from source read on...
##### Dependencies:
The suite is built using ant 1.10. You will need the following tools:
* *[ant 1.10](http://ant.apache.org)* You need to install this yourself if you don't already have it.
......@@ -41,20 +43,73 @@ The suite is built using ant 1.10. You will need the following tools:
* *[svn](http://subversion.apache.org)*
* *[hg](https://www.mercurial-scm.org)*
* *[python](https://www.python.org/) (with following libraries)*
* *[colorama](https://pypi.org/project/colorama/)*
* *[future](https://pypi.org/project/future/)*
* *[tabulate](https://pypi.org/project/tabulate/)*
* *[requests](https://pypi.org/project/requests/)*
* *[wheel](https://pypi.org/project/wheel/)*
* *[node.js](https://nodejs.org/en/)*
* *[npm](https://www.npmjs.com/get-npm)*
##### System requirement:
Building DaCapo requires latest JDK 11.
If building __cassandra__, __graphchi__, __jython__, and/or __xalan__,
make sure JDK 8 is also installed and
its path set in local.properties file.
Building the whole suite at once on macOS **may** have problem with max filehandle limits.
You may want to set it to a larger value, and launch ant with:
`export JAVA_OPTS="-XX:-MaxFDLimit"`
Set your JAVA_HOME environment variable appropriately:
On Mac OS X something like:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.3.jdk/Contents/Home/
On Ubuntu 16.04 something like:
`export JAVA_HOME=/usr/lib/jvm/jdk1.11.0/`
Set __ant__ and __maven__ environment variables if necessary. In particular,
for some jvms it is necessary to explicitly request a larger heap size.
It is necessary to set the maven options because the trade benchmarks
are built by maven (called by ant). As another example, you may wish
for ant to use a proxy when downloading (there is a lot to be
downloaded). Some examples:
`export ANT_OPTS="-Xms512M -Xmx512M"`
`export MAVEN_OPTS="-Xms512M -Xmx512M"`
or
`export ANT_OPTS="-Dhttp.proxyHost=xxx.xxx.xxx.xxx -Dhttp.proxyPort=3128"`
##### Run ant:
`ant` [builds all benchmarks]
`ant dist` [builds all benchmarks, this is the default]
`ant source` [builds a source distribution including benchmarks and tools]
`ant bm` [builds a specific benchmark, bm]
**NOTE**
1.JDK 8 is needed to build the whole suite.
2.Building DayTrader and PMD using JDK 8 also requires JDK 7 to be installed, and jdk7home properly set. (see 2 below)
A log of each directory is created under this benchmark directory
for benchmark build status and build success or failure files
to be stored. The directory log directory is normally of the
form
`${basedir}/log/${build.time}`
and contains status.txt where each benchmark build status is recorded,
and either pass.txt if all benchmarks build, or fail.txt if one or
more benchmarks fail to build. Note: that either fail.txt or pass.txt
is created when a full build is performed.
**IMPORTANT:** before trying to build the suite:
1. Set your `JAVA_HOME` environment variable appropriately (it must be set and be consistent with the VM that will be used to build the suite).
2. Copy `default.properties` to `local.properties` and edit it for your environment.
* Specifically, you must set `jdk7home` to point to a Java 7 installation.
2. You must set `jdk8home`, in the `default.properties`, to point to a Java s installation.
For more information, run `ant -p` in the benchmarks directory.
......
dacapo-9.12-bach-MR1 RELEASE NOTES 2018-01-13
dacapo-19.07-chopin PRE-RELEASE NOTES 2019-06
This is a maintenance release of the second major release of the
DaCapo benchmark suite.
**********************************************************************
This is a EVALUATION RELEASE (ie a pre-release for evaluation purposes
only) of the third major release of the DaCapo benchmark suite.
IMPORTANT: This evaluation release is provided ONLY for the purposes
of gathering community feedback on the upcoming 19.07 release. The
suite has not been finalized, and has not been calibrated. It may
contain bugs. This evaluation release should not be used in any
performance evaluation or analysis exercise.
We strongly welcome feedback, bug fixes and suggestions. Please do
this via github: https://github.com/dacapobench/dacapobench
**********************************************************************
These notes are structured as follows:
......@@ -15,22 +26,23 @@ These notes are structured as follows:
1. Overview
-----------
The DaCapo benchmark suite is slated to be updated every few years.
The 9.12 release is the first major update of the suite, and is
strictly incompatible with previous releases: new benchmarks have been
added, old benchmarks have been removed, all other benchmarks have
been substantially updated and the inputs have changed for every
program. It is for this reason that in any published use of the suite,
the version of the suite must be explicitly stated.
The release sees the retirement of a number of single-threaded
benchmarks (antlr, bloat and chart), the replacement of hsqldb by
h2, the addition of six completely new benchmarks, and the upgrade
of all other benchmarks to reflect the current release state of the
applications from which the benchmarks were derived. These changes are
consistent with the original goals of the DaCapo project, which
include the desire for the suite to remain relevant and reflect the
current state of deployed Java applications.
The 19.07 release is the second major update of the suite, and the
first in ten years. It is strictly incompatible with previous
releases: new benchmarks have been added, old benchmarks have been
removed, all other benchmarks have been substantially updated and the
inputs have changed for every program. It is for this reason that in
any published use of the suite, the version of the suite must be
explicitly stated.
The release sees the retirement of a number of benchmarks (TODO), the
move from Geronimo to JBoss Wildfly for the trade benchmarks, the
addition of seven completely new benchmarks: biojava, cassandra,
graphchi, h2o, jme, kafka, and zxing, and the upgrade of all other
benchmarks to reflect the current release state of the applications
from which the benchmarks were derived. These changes are consistent
with the original goals of the DaCapo project, which include the
desire for the suite to remain relevant and reflect the current state
of deployed Java applications.
2. Usage
......@@ -72,8 +84,12 @@ current state of deployed Java applications.
3. Changes
----------
3.0. Changes introduced by 9.13
Benchmark updates:
3.1 Changes introduced by 19.07
3.1.1 Version changes introduced by 19.07
All benchmarks updatred to reflect recent versions:
- avrora: 20091224 -> 20131011
- batik: 1.7 -> 1.9
- eclipse: 3.5.1 -> 4.7.2
......@@ -89,8 +105,46 @@ current state of deployed Java applications.
Shipped tooling update:
- Maven: 2.1.0 -> 3.5.2
3.1. Changes introduced by 9.12-MR1 (since 9.12)
3.1.2 Benchmark additions due to 19.07
biojava: BioJava is an open-source project dedicated to
providing a Java framework for processing biological data.
It provides analytical and statistical routines, parsers
for common file formats, reference implementations of
popular algorithms, and allows the manipulation of
sequences and 3D structures.
cassandra: Apache Cassandra is a free and open-source,
distributed, wide column store, NoSQL database management
system designed to handle large amounts of data across many
commodity servers.
graphchi: GraphChi is a disk-based system for computing
efficiently on graphs with billions of edges, by using
parallel sliding windows method on smaller shards of
graphs.
h2o: H2O is an in-memory platform for distributed, scalable
machine learning.
jme: jMonkeyEngine is a 3D game engine for adventurous Java
developers. It’s open-source, cross-platform, and
cutting-edge.
kafka: Apache Kafka aims to provide a unified, high-throughput,
low-latency platform for handling real-time data feeds.
zxing: Zxing is a multi-format 1D/2D barcode image processing library
3.1.3. Benchmark deletions due to 19.07
TODO
3.1.4. Other Notable Changes due to 19.07
3.2 Changes introduced by 9.12-MR1
lusearch-fix is introduced as a new benchmark. The lusearch-fix
and lusearch benchmarks differ by a single line of code. This
......@@ -101,14 +155,35 @@ current state of deployed Java applications.
We encourage you to use lusearch-fix in place of lusearch. We
retain the unpatched lusearch in this release for historical consistency.
URLs used by the build system have been systematically updated
URLs used by the build system have been systematically updated
so that the source distribution works correctly.
Other issues in the source distribution have been fixed to ensure that
the suite builds with Java 8 VMs.
3.2. Benchmark additions since 2006-10-MR2
3.3 Changes introduced by 9.12
3.3.1 Version changes introduced by 9.12
All benchmark versions were updated:
- avrora: 20091224 -> 20131011
- batik: 1.7 -> 1.9
- eclipse: 3.5.1 -> 4.7.2
- fop: 0.95 -> 2.2
- h2: 1.5 -> 1.8
- jython: 2.5.2 -> 2.7.1
- pmd: 4.2.5 -> 6.1.0
- tomcat: 6.0.2 -> 9.0.2
- daytrader: 2.4.1 -> 3.0-SNAPSHOT
- Apache Geronimo: 2.4.1 -> 3.0.1
- xalan: 2.7.1 -> 2.7.2
- lucene: 2.4.1 -> 7.1
Shipped tooling update:
- Maven: 2.1.0 -> 3.5.2
3.3.2 Benchmark additions due to 9.12
avrora: AVRORA is a set of simulation and analysis tools in a
framework for AVR micro-controllers. The benchmark
......@@ -150,8 +225,7 @@ current state of deployed Java applications.
"large", allowing researchers to directly compare the
two systems.
3.3. Benchmark deletions
3.3.3 Benchmark deletions due to 9.12
antlr: Antlr is single threaded and highly repetitive. The
most recent version of jython uses antlr; so antlr
......@@ -178,17 +252,10 @@ current state of deployed Java applications.
richer workload and uses a more widely used and higher
performing database engine.
3.3.4 Other Notable Changes due to 9.12
3.4. Benchmark updates
All other benchmarks have been updated to reflect the latest release
of the underlying application.
3.5. Other Notable Changes
The packaging of the DaCapo suite has been completely re-worked and
the source code is entirely re-organized.
The packaging of the DaCapo suite was been completely re-worked and
the source code is entirely re-organized for 9.12.
We've changed the naming scheme for the releases. Rather than
"dacapo-YYYY-MM", we've moved to "dacapo-Y.M-TAG", where TAG is a
......@@ -294,36 +361,29 @@ DaCapo benchmark suite.
5. Contributions and Acknowledgements
-------------------------------------
The generous financial support of Intel was crucial to the successful
completion of the 9.12 release, and the generous financial support
of Oracle led to the 9.12 MR1 release.
The production of the 9.12 release was jointly led by:
The support of the Australian National University, Oracle, Google, and
Huawei was crucial to the successful completeion of the 19.07 and
9.12-MR1 releases.
Steve Blackburn, Australian National University
Kathryn S McKinley, University of Texas at Austin
The 9.12 release of the DaCapo suite was developed primarily by:
Steve Blackburn, Australian National University
Daniel Frampton, Australian National University
Robin Garner, Australian National University
John Zigman, Australian National University
The 9.12 MR1 release was developed primarily by:
The 19.07 and 9.12-MR1 releases were led by Steve Blackburn of ANU and
Kathryn McKinley of Google, and developed primarily by:
Rui Chen, Australian National University
John Zhang, Australian National University
We receieved considerable assistance from a number of people,
including:
Jon Bell
Eric Bodden, Technische Universität Darmstadt
Sam Guyer, Tufts
Chris Kulla
Nick Mitchell, IBM
Gary Sevitsky, IBM
Ben Titzer, Sun Microsystems
In preparing the 19.07 release we receieved guidance and assistance
from a number of people including:
Xi Yang, Australian National University and Confluent
Qiqi Chang, Australian National University
Aditya Chilukuri, Australian National University
Sichao Li, Australian National University
Yiyi Shao, Australian National University
Enming Zhang, Australian National University
Leaandro Watanabe, University of Utah
JC Beylor, Google
Wessam Hassanein, Google
Ryan Rose, Google
Cliff Click
Many other people provided valuable feedback, bug fixes and advice.
......@@ -6,6 +6,10 @@ RELEASE PROCEDURES
dacapo.version=3.27
dacapo.nickname=uncalibrated
Also determine the dacapo-dl remote git repository raw data access URL and commit:
dacapo-dl.url.raw=https://raw.githubusercontent.com/dacapobench/dacapo-dl/
dacapo-dl.commit=HEAD
2. Make fresh git clone
git clone https://github.com/dacapobench/dacapobench.git
......
......@@ -17,7 +17,7 @@ size small args "-seconds=30",
size default args "-seconds=30",
"-platform=mica2",
"-simulation=sensor-network",
"-nodecount=4,2",
"-nodecount=12,6",
"-stagger-start=1000000",
"${SCRATCH}/test/tinyos/CntToRfm.elf",
"${SCRATCH}/test/tinyos/RfmToLeds.elf"
......@@ -27,7 +27,7 @@ size default args "-seconds=30",
size large args "-seconds=30",
"-platform=mica2",
"-simulation=sensor-network",
"-nodecount=7,3,7,2",
"-nodecount=21,9,21,6",
"-stagger-start=1000000",
"${SCRATCH}/test/tinyos/CntToRfm.elf",
"${SCRATCH}/test/tinyos/RfmToLeds.elf",
......
diff -urN avrora/src/avrora/sim/mcu/ATMegaClassic.java ../src-new/avrora/sim/mcu/ATMegaClassic.java
--- avrora/src/avrora/sim/mcu/ATMegaClassic.java 2013-02-05 05:31:15.000000000 +1100
+++ ../src-new/avrora/sim/mcu/ATMegaClassic.java 2019-03-28 14:22:55.000000000 +1100
@@ -64,7 +64,7 @@
AtmelMicrocontroller.Pin pin = (AtmelMicrocontroller.Pin) m.getPin("OC" + timerNumber);
int interrupt = m.properties.getInterrupt(acfName);