El acceso directo a memoria remota ( RDMA ) es una solución de hardware para proporcionar acceso directo a la memoria RAM de otra computadora usando una red de alta velocidad. Este acceso le permite acceder a los datos almacenados en un sistema remoto sin utilizar las herramientas de los sistemas operativos de ambas computadoras. Es un método de transferencia de datos de baja latencia y gran ancho de banda, y es especialmente útil en grandes sistemas informáticos paralelos: clústeres .
RDMA se implementa en varios protocolos, como Virtual Interface Architecture , InfiniBand , iWARP , RoCE [1] , Intel Omni-Path .
La implementación de hardware de RDMA le permite implementar el método de copia cero para redes. Al transferir datos mediante RDMA, se eliminan las copias innecesarias entre la aplicación y los búferes del sistema operativo; en consecuencia, se reduce la cantidad de trabajo del procesador central, se reduce la carga en la memoria caché, se reduce el número de cambios de contexto y las transferencias en sí se pueden realizar simultáneamente con otro trabajo útil. Cuando una aplicación emite una solicitud de lectura o escritura a la memoria RAM remota, los datos se pueden enviar directamente al adaptador de red, lo que reduce la latencia de la transferencia de datos.
Cuando se utilizan primitivas RDMA unidireccionales simples, no se informa al remitente de la finalización de la transmisión. A menudo, cuando se completa una transferencia, el adaptador establece algún valor en la memoria, pero el remitente debe leer este indicador en un bucle para detectar dicho cambio. El sondeo por turnos consume tiempo de CPU y aumenta la sobrecarga y la latencia de la memoria en sistemas con una gran cantidad de nodos.