Shared Memory vs Message Passing on SCI: A Case Study Using Split-C
Max Ibel
Michael Schmitt
Klaus Schauser
Anurag Acharya
Abstract:
Non-coherent remote memory access with a simple
load-store interface is one of the characteristic features of the
Scalable Coherent Interface (SCI). It allows SCI to bridge the gap
between efficient (and expensive) hardware implementations of true
coherent shared memory and low-performance software
implementations. It also allows SCI to be used as a substrate for
efficient implementations of higher-level communication mechanisms. In
this chapter, we evaluate the tradeoffs for using SCI to implement
user-level message-passing and a global address-space scheme with
shared-memory segments. We perform this evaluation in the context of
Split-C, an explicitly parallel language which provides a global
address-space abstraction as well as bulk transfer operations.
For the message-passing implementation, we use SCI to implement Active
Messages and use Active Messages as the communication layer for the
Split-C runtime system. For the shared memory implementation, we use
SCI operations directly as the communication layer for Split-C. The
direct implementation has the potential to provide a performance
advantage by reducing copying and synchronization. However, our SCI
hardware poses problems that make an efficient direct implementation
very challenging. Our studies show that neither paradigm is optimal in
our current setting and suggest a combination of both paradigms for
increased efficiency.
Postscript.