Dynamic Optimization Group - overview
The Dynamic Optimizations Group conducts fundamental research on programming language implementation, and explores the boundary between hardware and software.
A core trend in this research area is using higher-level languages in domains traditionally only addressed by low-level languages. Higher-level languages have many benefits, such as improved programmer productivity and improved software reliability. Unfortunately, these languages often abstract away low-level platform aspects that need to be controlled carefully for certain application domains.
The dynamic optimizations group helped develop Jikes RVM, (the VM formerly known as Jalapeno) an immensely successful open source Java virtual machine written in Java, proving that large systems projects can be conducted in a high level language.
Currently, researchers of this group are working on real time Java, which poses stringent timing requirements that could traditionally only be met by lower-level languages such as C and Fortran. As part of this effort, the group has developed TuningFork, a system for visualization and analysis of real-time systems.
Another effort currently under way is to transform the weakness of high-level languages into a strength: the dynamic optimizations group is using information only available at a high level of abstraction to perform continuous program optimization and to tackle memory performance bottlenecks.
Recently, the group initiated the MARS project to investigate the impact of massive multicore chips on software. MARS has two parts. The Terraform subproject is conducting an in depth investigation and end-to-end restructuring of an existing application -- FileNet. The Renaissance subproject is developing an emerging application -- 3D Virtual Worlds / 3D Internet -- from scratch with the goal of running efficiently on massive multicore platforms.
In addition, the group is also investigating new programming paradigms that aim to blend the boundaries between software and hardware. The Liquid Metal project is focused on delivering easy to use programming solutions that make it possible to automatically refine user applications from software directly into hardware, resulting in custom computing fabrics that deliver unmatched performance at low cost.
Members of the group often collaborate with university researchers via traditional collaborations and internships. For publications by the group, please visit the web pages dedicated to our projects, or browse the individual pages of the group members.