Message Passing and Segment Faults

Bryan Ford baford@schirf.cs.utah.edu
Thu, 08 Dec 94 18:06:01 MST


>In DIMSUM, segments are coherent.  Two holders of a segment key on
>different machines are guaranteed to see a consistent view of the
>data.   The machines may have different architectures, and
>consequently different page sizes.

You're basically just talking about DSM here.  Are you assuming
sequential consistency?  If so, note that it's generally been found
that sequentially-consistent DSM is pretty much useless for most
practical purposes - it's just plain too slow.  If you want DSM
to be useful at all, you really have to allow for different
consistency models and protocols, such as release consistency.
Have you thought about this at all yet?

>On low-bandwidth nets, it is important to avoid sending more data than
>necessary.  On high-bandwidth nets, the data transfer is less
>critical, but sending more data induces more core pressure.  For this
>reason, the DIMSUM coherency architecture is built on something I call
>core data frames.  [...]

If the above are your primary reasons for the "core data frame" model,
which seems to be causing a lot of problems and complexity,
then I think you may be barking up the wrong tree.  DSM research
has shown that it doesn't really matter a whole lot whether you have
4K pages or 16K pages or whatever - any page size bigger than a few
words is generally "too big" for most uses.  The only real solution,
outside of hoping for processors that support ludicrously small pages,
is to use smarter protocols.  And once you start using smarter
protocols, page size doesn't matter so much any more, so you might
as well use a simpler model - e.g. just use the maximum of all the 
page sizes of all the relevant hosts.  Or use a page-size-independent
coherency interface.

If you haven't already, you might want to read John Carter's Munin paper:
ftp://mancos.cs.utah.edu:/papers/munin.ps.Z.

				Bryan