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:
PPPJ '06 paper:
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:
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:
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:
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:
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.