skip navigation

This page looks better in modern browsers. Please upgrade.

Brown Home Brown Home Brown Home Brown CS

Technology Showcase

Black-box Tracing and Safe Parallelism: Tools for a Concurrent World

Professor John Jannotti, Brown University

After many years of predictions, developers must design for concurrency. Nearly all general purpose computers sold today are multi-core, and many applications are deployed as services running on clusters of cooperating computers. We are developing two approaches to help developers keep pace with these changes.

First, we have created BorderPatrol to extract causal request traces from heterogeneous concurrent systems. BorderPatrol monitors message passing between unmodified applications in order to aid development and debugging by producing a "distributed stack trace." We have used BorderPatrol to trace a litany of applications - apache, thttpd, PostgreSQL, TurboGears, BIND and notably Zeus, a closed-source event-driven web server. BorderPatrol obtains precise traces for black-box systems that cannot be traced by any other technique.

While BorderPatrol aids in understanding and debugging existing systems, we are also developing Elyze to aid in the creation of correct concurrent applications in the first place. Elyze uses a conservative static analysis to determine when code segments may safely run in parallel, and a custom runtime scheduler that respects these constraints. The aim is to produce applications that are safe by default. Elyze currently analyzes event-driven servers written in C. For example, we have analyzed thttpd to extract previously unavailable parallelism. We hope to generalize the approach to threaded systems.

Page Owner: Kathy Kirman Last Modified: Tue Sep 2 13:48:47 2008