Name:  Prof. Emery Berger

       Department of Computer Science

       University of Massachusetts Amherst




      Exploiting Multiple Cores Now:

      Scalability and Reliability for Off-the-shelf Software




Multiple core CPUs are here today. The prevailing notion is that we need to rewrite applications not originally designed to support multiple processors to make them multithreaded. Because of the difficulty of programming correct and efficient multithreaded applications (e.g., race conditions, deadlocks, and scalability bottlenecks), this is a major challenge.


This talk presents two alternative approaches that bring the power of multiple cores to today's software. The first approach focuses on building highly-concurrent client-server applications from legacy code. I present a system called Flux that allows users to take unmodified off-the-shelf *sequential* C and C++ code and build concurrent applications. The Flux compiler combines the Flux program and the sequential code to generate a deadlock-free, high-concurrency server. Flux also generates discrete event simulators that accurately predict actual server performance under load.


While the Flux language was initially targeted at servers, we have found it to be a useful abstraction for sensor networks, and I will briefly talk about our use of an energy-aware variant of Flux in a deployment on the backs of endangered turtles.


The second approach uses the extra processing power of multicore CPUs to make legacy C/C++ applications more reliable. I present a system called DieHard that uses randomization and replication to transparently harden programs against a wide range of errors, including buffer overflows and dangling pointers. Instead of crashing or running amok, DieHard lets programs continue to run correctly in the face of memory errors with high probability.


This is joint work with Brendan Burns, Kevin Grimaldi, Alex Kostadinov, Jacob Sorber, and Mark Corner (University of Massachusetts Amherst), and Ben Zorn (Microsoft Research).




Emery Berger is an Assistant Professor at the University of Massachusetts Amherst. He received his Ph.D. at the University of Texas at Austin in 2002. Berger's research focuses on improving the performance and reliability of modern computer systems. His work spans programming languages, runtime systems, and operating systems, with a particular focus on memory management. Berger is the creator of Hoard, a widely-used scalable memory manager, and is part of a research group singled out by NSF site visitors as the best memory management group in the country. He leads the PLASMA group at UMass and is a 2004 NSF CAREER Award recipient.


For more information, visit Emery Berger's home page at