Tejas-Java Download

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-50
global.javahome.ppc64-linux=/opt/ibm-java2-ppc-50
global.javahome.ia32-linux=/opt/jdk1.6.0  
global.javahome.x86_64-linux=/usr/lib/jvm/java-6-openjdk  
global.javahome.ia32-osx=/System/Library/Frameworks/JavaVM.framework/Home  
global.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.