Significant Past Research Projects
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!
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.
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.
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.
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.
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.
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.
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