Coherence as an Abstract Type
Abstract
We are currently designing Sparks, a protocol construction library that
we hope will allow us to improve the performance of DSM systems to within
a few percent of tightly-coupled multiprocessors. Sparks' abstractions
will allow us to cleanly and systematically explore the design space of
highlevel synchronization operations, rather than proposing and
implementing new operations in an ad hoc fashion. Sparks' basic
abstraction is the coherence history, an object that summarizes past
coherence actions to shared segments. Our emphasis here is more on
creating and investigating the abstractions that make a broad variety of
optimizations possible, rather than on the individual optimizations
themselves. However, we will thoroughly quantify the performance gains
allowed by the synchronization types created via the Sparks library.
Our overall goal is to improve DSM performance. We will gauge our success
by targeting applications from benchmark suites such as SPLASH-2, as well
as representative applications from computational chemistry, biology, and
satellite image analysis. Sparks' history abstraction will be used to
make several important contributions towards our performance goal: (1)
efficient techniques to implement high-level synchronization, (2)
efficient automatic prefetching using prefetch playbacks, and (3)
external interfaces to run-time libraries and automatically paralle
lized code sections. By improving DSM efficiency, we hope to make the
shared memory paradigm more appealing, and therefore useful, to the
research community.