Greg Lindahl lindahl at
Wed Feb 28 17:36:57 PST 2001

On Wed, Feb 28, 2001 at 03:42:44PM -0800, Jim Lux wrote:

> TCP has long headers, etc.  If you have a basically error free link (or one
> where error control is done at a lower level), then there are all sorts of
> protocols which would be better.

I've seen several people trip over this when building clusters, and
they sometimes end up having to do a gross error-correcting layer on
the very top, which ends up with worse performance than designing it
in in the first place. If you can't check your answer, then
mostly-error-free computations are damned dangerous.

> Not that sockets aren't a good generic interface, and easy to program to
> from an applications sense, it's that they may not be the most efficient way
> to use the 1394.

Why not a MVIA driver for it? MVIA gets good performance out of fast
and gig ethernet cards. But alas I don't think it has a reliability
layer in it yet. With an MVIA layer, then you can use MPI
implementations that talk to VIA, etc.

> In general, the fewer layers of
> virtualization between the high level abstraction and the physical hardware,
> the faster it will be.
> Think of zero copy implementations for ethernet vs standard one or two copy
> implementations.

Legion has a highly layered communications system that is still zero
copy(*). The fundamental data structure is a list of pointers to pieces of
the message. So yes, layers generally slow things down, but your
example isn't so great.

-- g

(*) Zero copy in the Don Becker sense, of course.

More information about the Beowulf mailing list