Adrian Sampson

Here are a few short descriptions of some research projects that I’ve worked on recently.

Disciplined Approximate Computing

The power consumption of CPUs and memory systems has traditionally been constrained by the need for strict correctness guarantees: processor voltage, for instance, must allow enough slack as to prevent even the rarest timing errors. But many modern applications do not require perfect correctness. An image renderer, for example, can tolerate occasional pixel errors without compromising overall quality of service. However, it is infeasible to completely abandon correctness guarantees—to do so would make development of reliable software difficult or impossible. EnerJ is a programming language that exposes hardware faults in a safe, principled manner. Simulation of selectively reliable hardware suggests that EnerJ programs can save large amounts of energy with only slight sacrifices to quality of service.

Automatic Discovery of Performance and Power Pitfalls in Web Browsers

Web browsers’ speed and power consumption have become salient concerns with the emergence of Web-enabled mobile devices. However, the relationship between page content and browser performance is poorly understood. WebChar uses machine learning to automatically discover correlations between page characteristics and browser behavior. The results can help content providers deploy better-performing Web sites and assist browser developers in optimizing their implementations.

Explicit Shared-Memory Communication

Shared memory is a fast, simple, and ubiquitous model for multiprocessor computing. However, shared-memory programs are prone to subtle, hard-to-diagnose concurrency bugs. Much of this difficulty arises because cross-thread communication in shared-memory programs is transparent and not easily apparent to the programmer. Organized Sharing (OSHA) consists of a language extension that makes communicating code explicit and an implementation (“OSHAJava”) of a high-performance dynamic checker that can catch concurrency bugs in annotated programs before they cause problems.


Publications

Look me up at DBLP for another view on my publications. Where possible, the titles below are “magic” links to the ACM database server that should let you view the PDF for free while letting the ACM keep track of viewer statistics. Use the “local PDF” links if you prefer bypass this rigmarole.

Conference Papers

Workshop Papers

Other Stuff