The Architecture and Language Implementation group has the goal of improving the performance of computer systems through the synergistic enhancement of the compiler, run-time environment, and architecture. Efforts include a wide range of optimizations for improving memory subsystem performance, Java virtual machines, garbage collection algorithms, microarchitectural support for advanced compiler and run-time optimizations, and parallel architecture (including optimizations for GPUs).