Micro Virtual Machines: Abstraction, contained. This project will address a systemic source of inefficiency in widely used software which leads to many programs running as much as ten times slower and using considerably more energy than necessary, shortening battery life on mobile phones and increasing costs for large server farms. This inefficiency is endemic because it is due to the underlying languages rather than the particular software. This project will address this problem by developing a ....Micro Virtual Machines: Abstraction, contained. This project will address a systemic source of inefficiency in widely used software which leads to many programs running as much as ten times slower and using considerably more energy than necessary, shortening battery life on mobile phones and increasing costs for large server farms. This inefficiency is endemic because it is due to the underlying languages rather than the particular software. This project will address this problem by developing a high efficiency substrate, called a micro virtual machine, on which languages may be built.Read moreRead less
Relaxed correctness criteria for modern multi-core architectures. This project seeks to lay groundwork for fully exploiting the potential of multicore computers. Multicore computers have become ubiquitous over the last decade, now being standard in everything from laptops to mobile phones. Their benefits are clear – better performance leading to more sophisticated applications. Key to ensuring those benefits are complex, and often subtle, algorithms that exploit the parallelism that multicore co ....Relaxed correctness criteria for modern multi-core architectures. This project seeks to lay groundwork for fully exploiting the potential of multicore computers. Multicore computers have become ubiquitous over the last decade, now being standard in everything from laptops to mobile phones. Their benefits are clear – better performance leading to more sophisticated applications. Key to ensuring those benefits are complex, and often subtle, algorithms that exploit the parallelism that multicore computers offer. This project aims to lay foundations for extending those benefits to applications where high reliability is a concern. It plans to do so by developing theoretical results about the correctness of algorithms on standard multicore computers, and practical tools and techniques to help programmers of multicore computers to better understand the behaviour of their code.Read moreRead less