Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

InfiniBand explained

Tags:

infiniband

Can anybody explain what is InfiniBand? What is the key differences in comparison with Ethernet, how these differences allow for it to be faster than Ethernet?

In the official description from mellanox it is written that

Introduce InfiniBand, a switch-based serial I/O interconnect architecture operating at...

What does it mean that Infiniband is a switch-based interconnect? I found this description, but it does not explain what happens if several inputs want to write to a single output, how is the collision resolved?

It is also said that Infiniband has end-to-end flow control. Does it mean that there is no (need) for any other (in-between) flow control? Why?

like image 853
DimanNe Avatar asked Oct 25 '17 13:10

DimanNe


People also ask

How is InfiniBand different from Ethernet?

InfiniBand also has much lower latency than Ethernet and, most importantly, it incorporates processing engines inside the network that accelerate data processing for deep learning and high-performance computing. These are key technology advantages for any compute- and data-intensive application.

What is InfiniBand and what are its applications?

It is used for data interconnect both among and within computers. InfiniBand is also used as either a direct or switched interconnect between servers and storage systems, as well as an interconnect between storage systems. It is designed to be scalable and uses a switched fabric network topology.

What are the benefits of InfiniBand?

Fabric consolidation and low energy usage: InfiniBand can consolidate networking, clustering, and storage data over a single fabric which significantly lowers the overall power, real estate and management overhead required for servers and storage.

Is InfiniBand compatible with Ethernet?

Mellanox Skyway™ empowers InfiniBand-based high performance and cloud data centers to achieve the lowest interconnect latency, while providing a simple and cost-effective option to connect to remote Ethernet networks.


2 Answers

Key difference between Ethernet and Infiniband, which makes Infiniband faster, is RDMA (Remote Direct Memory Access). DMA (in networking) is an operation which access the memory directly from the NIC (Network Interface Controller), without involving the CPU. RDMA is the same idea, but the direct memory access is done by a remote machine.

More differences:

  1. Communication is done between QPs (Queue Pairs) instead of channels.
  2. Data flow to/from user space straight to/from HW instead of going thru the kernel stack.

A basic RDMA flow between a requestor and a responder would consist of:

  1. Handshake - exchange details between requestor and responder (mainly allocated memory addresses and access keys).
  2. Create a READ/WRITE/ATOMIC request on the requestor side.
  3. Send the request to the responder.
  4. Directly access the memory on the responder side.
  5. If READ/ATOMIC - send the data read from responder's memory back to the requestor.

Main benefits:

  1. No CPU access on the responder side - throughput is limited by the HW (NIC & PCI) only.
  2. No SW is running on responder side - allows much lower latency (~10 times less than typical TCP/UDP latency).
  3. Supports "polling mode" for completion on requestor side, meaning the SW knows immediately once HW finished transmitting. Allows for lower latency and higher throughput, on the expense of high CPU utilization.

For more information please refer to the Infiniband spec (sorry it is very long).

Related traffic protocols:

  • RoCE (RDMA over Converged Ethernet), which implements RDMA over Ethernet fabric by wrapping Infiniband packets with L2/L3/L4 Ethernet headers.

  • IPoIB (IP over Infiniband), which implements regular networking (thru the kernel stack) over Infiniband fabric by wrapping L3/L4 packets with Infiniband headers.

Hope this helps.

like image 136
Tgilgul Avatar answered Oct 12 '22 12:10

Tgilgul


To learn basics of InfiniBand I suggest you to visit Mellanox Academy Web-Site and after registration take InfiniBand Essentials or InfiniBand Fundamentals course (in a section Technologies).

In my opinion "switch-based architecture" means that switches are part of fabric (see picture below, where I have shown switch by blue shape).

enter image description here

End-to-end flow control, aka message level flow control, is a feature (capability) for reliable connections. This can be used by a responder to optimize the use of its receive resources. Essentially, a requester cannot send a request message unless it has appropriate credits to do so. Please, refer to InfiniBand specification for details.

like image 32
VolAnd Avatar answered Oct 12 '22 14:10

VolAnd