Here are some of the projects I have worked on, in reverse chronological order:

Team allocation for projects

Mark Chang and I developed a semi-automated process for allocating students to teams for their two-semester senior SCOPE projects.  We presented this work at ASEE 2008; you can read about it here.

Changepoint detection

I worked on a statistical technique for detecting changepoints in a time series, with application to predicting network performance. The paper describing this work is here.

Modeling TCP Performance

I have made measurements of a diverse set of network paths, trying to estimate the parameters that make it possible to predict the performance of TCP transfers. The paper describing this work is here.

Understanding the Internet

I gave a talk recently that tries to present the technology underlying the Internet for a general audience.  It also includes a short description of some research projects I have worked on. The abstract of the talk and my slides are available here.

Long-tailed distributions

I have collected many of the datasets that have been proposed as evidence of long-tailed distributions in the Internet. I used a variety of statistical techniques to investigate those claims, and found that some of them don’t hold up. The paper is available here.

I have also given a talk about this work called “Why is Internet traffic
self-similar (or is it)?” The slides are here.

The distribution of file sizes

I proposed a model of user behavior that explains why file size distributions on the WWW and local file systems tends to be lognormal. The paper is available here.


clink is my reimplementation of Van Jacobson’s pathchar, which is a tool for estimating Internet link characteristics.  Click here for the clink homepage.


While I was working at SDSC I wrote a new scheduler, called Lachesis, for the Cray T3E.

Scheduling Parallel Scientific Applications

The topic of my Ph.D. dissertation was scheduling scientific applications on parallel computers. Here are my publications on the topic:

At various times I have worked with members of the AppLeS group at UCSD, and the DOCT project at SDSC.

Along the way I collected a lot of accounting data from parallel computers. Some of it is available here.

Migrating UNIX processes

I worked on a simulation study of preemptive migration for UNIX processes. Click here for more information.


VIGL is a visualization library for irregular grids (at one time used by Phil Collela’s CFD group and Scott Baden’s KeLP project).

Random floating-point

This is an unpublished paper about generating random floating-point values.