Significant Past Research Projects

o Mango: I was the Chief Scientist of Mango, a startup company building an innovative cluster-style file system (and more to come) for networks of PCs. Here's what PC Week had to say about an early beta of Medley, our first product. InfoWorld was even more glowing, and Network Computing thought it was cool, too!

o Ultraviolet and beyond: Professor Carter led the Univ of Utah portion of SGI's Ultraviolet systems project as part of the DARPA HPCS effort. The Ultraviolet team consisted of architects, systems programmers, and application developers from SGI, Utah, MIT, Minnesota, and GWU. As part of this effort, we designed a peta-scale system (petabytes of DRAM/petaflops of aggregate compute capability) targeted for the 2010 timeframe. As a follow-up to this work, Professor Carter's research group is working with researchers at SGI and the NSA to design and evaluate a variety of design ideas for enhancing the performance of large-scale shared memory multiprocessors.

o Khazana Project: The goal of the Khazana effort is to build a common infrastructure for sharing state between distributed services or applications. Most distributed applications have similar needs: location transparency, high availability, scalability, and performance. Such applications tend to satisfy these needs using a combination of caching and replication. Currently there is no common set of tools for handling the myriad of problems that arise (node and net failures, distributed resource management, heterogeneous end systems, application evolution, etc.), so each application "rolls its own" solution. We are designing and building a wide area backbone to serve as this common caching and replication layer for distributed applications. In essence, we are attempting to raise the common layer of Internet applications from IP to that of a widely available shared state (at least, when appropriate). Khazana is part of the Flux project umbrella.

o Avalanche Project: The goal of the Avalanche project was to develop an integrated cache, memory, and communication architecture that significantly reduces the latency of both distributed shared memory and message passage multiprocessor communication. The core processor of Avalanche was the PA-RISC 8000 CPU. We designed a Context Sensitive Cache Controller Unit that supported a flexible suite of cache coherence protocols for DSM applications and provided context sensitive injection of incoming data into the appropriate level of the memory hierarchy in order to minimize message latency.

o Flux: The goal of the Flux project is to develop an operating system that provides a much higher degree of flexibility than traditional operating systems, and to use that added flexibility to circumvent the performance/functionality tradeoffs that thwart traditional highly-decomposed, microkernel-based operating systems. A primary focus of the effort is support for secure, high assurance systems. There are two major deliverables available to interested individuals and research projects: the Flux OSkit, which allows you to quickly develop specialized instances of a Unix-like operating system for your specific needs, and the Flick IDL compiler.

o Quarks Distributed Shared Memory System: The goal of this project is to develop an efficient, portable, and freely available distributed shared memory system to support the shared memory programming style on distributed memory multiprocessors and networks of workstations. For more on our motivation, take a look at my HOTOS '95 position paper. We are no longer supporting Quarks or making copies of the source code available. Primary research collaborators: Dilip Khandekar and Linus Kamb.

o Munin Distributed Shared Memory System: Munin was the first software distributed shared memory system to explore the potential performance benefits of using a relaxed consistency model. Among Munin's novel features were a software implementation of the release consistency model, the first multiple writer memory consistency protocol to address the problem of false sharing, support for multiple consistency protocols (including user-supplied protocols), and an update timeout mechanism to reduce the communication overhead of write update protocols. For shared memory programs with moderate to high degrees of sharing, Munin achieved far greater performance (speedup) than conventional distributed shared memory systems, usually within 10% of hand coded message passing performance. Many of the features and ideas first developed in Munin have appeared in subsequent DSM systems. Primary research collaborators: Willy Zwaenepoel and John Bennett. Here is a copy of my dissertation concerning Munin.

o Optimistic Bulk Data Transfer Protocol: The key insight exploited in this effort was that when the first packet in a `blast' of bulk data is received by a node, it is highly likely that no packet outside the `blast' will arrive before the last bulk data packet is received. As such, upon receipt of the first packet in a blast of bulk data, the network device layer should set things up to optimize this case. This optimization, which was independently observed by Van Jacobson and incorporated into TCP/IP, resulted in 9.2 Mbps bulk data transfer rates between two SUN-3/50's on a 10 Mbps Ethernet. At the time, the best TCP/IP implementations achieved under 5 Mbps bulk data transfer rates. Primary research collaborators: Willy Zwaenepoel.


Last modified Tue Aug 10 1999