Remote Direct Memory Access

From Wikipedia, the free encyclopedia

Remote Direct Memory Access (RDMA) allows data to move directly from the memory of one computer into that of another without involving either one's operating system. This permits high-throughput, low-latency networking, which is especially useful in massively parallel computer clusters.

RDMA supports zero-copy networking by enabling the network adapter to transfer data directly to or from application memory, eliminating the need to copy data between application memory and the data buffers in the operating system. Such transfers require no work to be done by CPUs, caches, or context switches, and transfers continue in parallel with other system operations. When an application performs an RDMA Read or Write request, the application data is delivered directly to the network, reducing latency and enabling fast message transfer.

This strategy presents several problems related to the fact that the target node is not notified of the completion of the request (1-sided communications). The common way to notify it is to change a memory byte when the data has been delivered, but it requires the target to poll on this byte. Not only does this polling consume CPU cycles, but also the memory footprint and the latency increases linearly with the number of possible other nodes. These issues and the fact that the RDMA programming model is very different from the one that is generally used in the High-Performance Computing world (MPI, the Message Passing Interface) explains why the RDMA success is very limited in HPC. The Send/Recv model used by other zero-copy HPC interconnects such as Myrinet or Quadrics does not have any of these problems and presents as good performance since their native programming interface is very similar to MPI.

RDMA reduces the need for protocol overhead, which can squeeze out the capacity to move data across a network, reducing performance, limiting how fast an application can get the data it needs, and restricting the size and scalability of a cluster.

RDMA’s acceptance is also limited by the need to install a different networking infrastructure. New standards enable Ethernet RDMA implementation at the physical layer and TCP/IP as the transport, combining the performance and latency advantages of RDMA with a low-cost, standards-based solution. The RDMA Consortium and the DAT Collaborative[1] have played key roles in the development of RDMA protocols and APIs for consideration by standards groups such as the Internet Engineering Task Force and the Interconnect Software Consortium.[2] Software vendors such as Oracle Corporation support these APIs in their latest products, and network adapters that implement RDMA over Ethernet are being developed.

Common RDMA implementations include the Virtual Interface Architecture, InfiniBand, and iWARP.

[edit] Notes

[edit] External links

In other languages