Irregular Applications under Software Shared Memory
Abstract:
Shared Virtual Memory (SVM) provides an inexpensive way to
support the popular shared address space programming model on
networks of workstations or personal computers. Despite
recent advances in SVM systems,
their performance for all but coarse-grained or regular applications
is not well understood. Nor is there an understanding of whether and
how fine-grained, irregular programs should be written differently for
SVM, with its large
granularities of communication and coherence, than for the more familiar
hardware coherent at cache line granularity.
In this paper we try to understand the
performance and programming issues for emerging, irregular applications
on SVM systems. We
examine performance on both an aggressive all-software system as well as one
with a little hardware support in the network interface.
We also present approaches to
improve the performance of irregular applications
at both the programming and the system level. As a result
of our experiences, we identify a set of guidelines
and techniques that pertain specifically to programming SVM systems,
beyond the guidelines commonly used for programming hardware-coherent
systems as well. We also present a further relaxation
of the memory consistency model, called scope consistency, which
is particularly effective for such applications.