Today's message passing architectures are characterized by high
communication costs and they typically lack hardware support for
synchronization and scheduling. These deficiencies present a severe
obstacle to obtaining efficient implementations of parallel
applications whose communication patterns are either highly irregular
or dependent on dynamic information.

In this paper we present a model based on continuation-passing threads in
which we try to overcome these difficulties. The model incorporates two
effective software mechanisms targeted towards lengthening sequential
threads in order to offset the costs of dynamic scheduling, and towards
preserving the locality of computations to reduce the network traffic. The
model is currently implemented as a C language extension along with a
runtime system implemented on the CM-5 that embodies a work stealing
scheduler. Real world applications written in this package, such as
ray-tracing and protein folding, have shown impressive speedup results.
