Older Projects

Here is some information about projects I have finished, or (at least temporarily) abandoned...

Virtual Machine Visualization

This research project is in collaboration with Chris Kirkham. We aim to visualize the adaptive runtime mechanisms (like garbage collection and JIT compilation) that take place invisibly, as far as the user is concerned. We have instrumented the Jikes RVM to produce dynamic execution traces that we postprocess to generate the visualizations.
SV '06 poster abstract: [pdf/64K]
PPPJ '06 paper: [pdf/840K]

Branch Prediction Analysis

The Championship Branch Prediction v1 and v2 execution traces represent a significant challenge for state-of-the-art branch prediction technology. Gavin Brown and I have been analysing these traces from a Machine Learning perspective. We have constructed a new kind of branch predictor based on Bayesian Networks [wikipedia]. Also we have investigated the limits of branch predictability using Fano's inequality [wikipedia].
SMART paper:
Draft paper:
[pdf/152K]

Value Prediction Analysis

This research project is in collaboration with Gavin Brown. We apply information-theoretic principles to measure the predictability of method return values in Java programs. We hope that this analysis will support effective speculative method-level parallelism on the JAMAICA architecture. We presented a position paper on this work at QAPL 06.
Paper: [pdf/250K]

Jikes RVM Instrumentation

See here for full details. I have instrumented the Jikes RVM to collect information about return value entropy, memory access patterns and instruction execution.

Higher-Order Virtualization

Virtual machines are very fashionable for one reason or another. What happens when we try to run one VM on top of another VM? Obviously there are issues involving performance and inter-VM communication. I am investigating these areas, by conducting a case study of an interpretive VM which is hosted by the parallelizing adaptive Jikes RVM for JAMAICA. This paper, jointly written with Chris Kirkham and Ian Watson, and presented at the CPC 06 workshop, explains these ideas in detail.
Paper: [pdf/142K]

ARM backend for Jikes RVM

Ming Chen commenced developing a Jikes RVM baseline compiler for the ARM processor. I am continuing his work, trying to debug the code generator so that it can boot the VM and run user code. Further technical information is available here.

Concept Assignment as a Debugging Technique

Concept assignment is a program comprehension methodology. Biggerstaff gives a good introduction. I am using concept assignment anomalies to detect bugs automatically in highly structured source code. This paper (presented at SCAM 2005) explains my debugging technique in detail.
Paper: [pdf/230K]

Dynamic Single Assignment Form for Parallelization

This is a nebulous idea at present. Dynamic single assignment form (DSA) is a nice intermediate representation. I would like to integrate it into Jikes RVM, and use for parallelization optimizations on JAMAICA.