Note: This program gets the execution trace of a Java program. The trace is an input to the Tejas architectural simulator. The latest version of Tejas can be downloaded from the website of Tejas.
Please download the tar-ball, extract the contents, and follow the instructions as mentioned in the manual.
- Tejas-Java
Source
Contains the instrumented source code of JikesRVM 3.1.2. It needs Java 6 to build. We need a specific Java version. It is not stable with other versions.
- java version "1.6.0_27"
OpenJDK Runtime Environment (IcedTea6 1.12.6) (6b27-1.12.6-1ubuntu0.12.04.2)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode) - We are working on releasing a container with
this version of Java 6. Please check this
website for updates regarding this issue.
- Tejas-Java
Binary for x86_64
Contains binaries for x86_64.
- Tejas-Java-Tools
Contains scripts to convert the trace generated by the JikesRVM to the form required by Tejas.
Please refer to the documentation for details regarding using the tools. This requires Python 3. These set of tools are required.
Tejas-Java Manual
The manual shows the complete set of steps for building Tejas-Java from source, installing, and running benchmarks.
TL;DR Building from Source
Pre-Requisites
- Ant
- Mercurial
- gcc
- gcc-multilib
- g++-multilib
- Bison
- Perl
- Awk
Folder Structure
The folder is a clone of JikesRVM with added code to get the trace of the Java program. There are two folders inside this:
- rvm_singlethread
- rvm_multithread
As the name indicates, these folder to be used when using benchmarks of single and multiple thread respectively. In practice, any of the folders can be used to run any benchmark. However, rvm_multithread has special code, which marks instructions from different threads separately, so that each of the threads can be analyzed independently.
As per the need, rename the folder to rvm, which is the name of the expected folder while building jikes.
For single thread benchmark:
mv
rvm_singlethread rvm
and for multiple thread use:
mv
rvm_multithread rvm
Build Commands
After renaming, configure the the java version.
build has been tested on openjdk-6 and openjdk-7
Configure approriate java version using command:
vim
bin/buildit.base_config
and setting approriate Java version:
global.javahome.ppc32-linux=/opt/ibm-java2-ppc-50global.javahome.ppc64-linux=/opt/ibm-java2-ppc-50global.javahome.ia32-linux=/opt/jdk1.6.0global.javahome.x86_64-linux=/usr/lib/jvm/java-6-openjdkglobal.javahome.ia32-osx=/System/Library/Frameworks/JavaVM.framework/Homeglobal.javahome.x86_64-osx=/System/Library/Frameworks/JavaVM.framework/Home
After this run:
bin/buildit
localhost development
This will create folder inside dist, which will
contain the required binary files.