On Mar 26, 2007, at 1:04 PM, Gilad Shainer wrote:

When Mellanox refers to transport offload, it mean full transport
offload - for all transport semantics. InfiniBand, as you probably
know, provides RDMA AND Send/Receive semantics, and in both cases
you can do Zero-copy operations.

This full flexibility provides the programmer with the ability to choose
the
best semantics for his use. Some programmers choose Send/Receive and
some RDMA. It is all depends on their application.
From your response, I see that Qlogic does not provide this kind
of flexibility.

Gilad,

I have seen you make that point many times. This may be a silly question, but it latency and throughput equivalent for both APIs for large and small messages?

I ask because I wrote the ports of Lustre and PVFS2 for MX and I spent a lot of time looking at their existing IB code. I see them use Send/Recv for small and/or unexpected messages. Both use IB write for large payloads.

Although both use IB write (one-sided, no?) for the large payload, both require one or two small Send/Recv messages to serve as RTS and CTS before they can initiate the one-sided implementation. In effect, they have to write their own Send/Recv (two-sided) semantics on of IB's RDMA.

If Send/Recv performance is on par with RDMA on IB, why not use that API for large messages? Why re-write Send/Recv every time they use RDMA? The code to implement PVFS2 on MX is over 30% smaller than the IB code because I did not have to re-write Send/Recv.

Scott
_______________________________________________
Beowulf mailing list, [email protected]
To change your subscription (digest mode or unsubscribe) visit 
http://www.beowulf.org/mailman/listinfo/beowulf

Reply via email to