3

As known for Infiniband or RoCE-Ethernet we can use:

  • VMA - Voltaire Messaging Accelerator (VMA) Mellanox's Messaging Accelerator (VMA) boosts performance for message-based and streaming applications... The result is a reduction in latency by as much as 300% and an increase in application throughput by as much as 200% per server...

  • SDP - Sockets Direct Protocol (SDP) is a byte stream protocol that utilizes the capabilities of the InfiniBand fabric to transparently achieve performance gains for existing socket-based networked applications.

Also - Page 9: http://www.informatix-sol.com/docs/TCP_bypass_overview.pdf

enter image description here

And known, that both SDP and VMA use RDMA-Verbs and can be used for already compiled binary of program as (libpreload) LD_PRELOAD: http://www.informatix-sol.com/low-latency.html

As with Openonload, SDP and Mellanox's VMA all preload to accelerate an existing TCP/IP socket program. Openonload retains the TCP/IP protocol so can be used single ended. SDP and VMA both map to VERBS so must be deployed on both ends of the wire.

Also get image from:

enter image description here

But if SDP and VMA both:

  • bypasses TCP/IP-stack
  • uses RDMA-verb
  • must be deployed on both ends of the wire
  • can be used for already compiled binary of program as (libpreload), run program.bin as: LD_PRELOAD=libsdp.so program.bin or LD_PRELOAD=libvma.so program.bin

then why such a big difference in speed (latency and bandwidth)?

  • VMA has latency in 2.5 times lower than SDP
  • VMA has bandwidth in 1.8 times bigger than SDP
Alex
  • 12,578
  • 15
  • 99
  • 195
  • Isn't SDP supposed to be used in Java? Whereas VMA is a socket-level implementation of RDMA. It seems to me they are not exactly the same thing. – JC1 Mar 15 '16 at 07:48
  • 1
    @JC1 SDP is not related to Java. SDP and VMA both can be used in C/C++/C#/Java by using `sockfd=socket(AF_INET_SDP,SOCK_STREAM,0);` instead of `sockfd=socket(AF_INET,SOCK_STREAM,0);`. Also SDP/VMA can be used without change and recompile source coude with standard `socket(AF_INET,SOCK_STREAM,0)` - by running program as `LD_PRELOAD=libsdp.so program.bin`. SDP and VMA both map to RDMA-VERBS. "The Sockets Direct Protocol (SDP) is a transport-agnostic protocol to support stream sockets over Remote Direct Memory Access (RDMA) network fabrics." https://en.wikipedia.org/wiki/Sockets_Direct_Protocol – Alex Mar 15 '16 at 12:09

0 Answers0