Удалённый прямой доступ к памяти

Удалённый прямой доступ к памяти (англ. remote direct memory access, RDMA) — аппаратное решение для обеспечения прямого доступа к оперативной памяти другого компьютера при помощи высокоскоростной сети. Такой доступ позволяет получить доступ к данным, хранящимся в удалённой системе без привлечения средств операционных систем обоих компьютеров. Является методом пересылки данных с высокой пропускной способностью и низкой задержкой сигнала, и особенно полезен в больших параллельных вычислительных системах — кластерах.

RDMA реализован в различных протоколах, например, в Virtual Interface Architecture[en], InfiniBand, iWARP, RoCE[en][1], Intel Omni-Path.

Аппаратная реализация RDMA позволяет реализовать метод zero-copy для сетей. При передаче данных с помощью RDMA исключаются лишние копирования между приложением и буферами операционной системы; соответственно, снижается объём работы центрального процессора, нагрузка на кэш-память, уменьшается количество переключений контекста, а сами передачи могут производиться одновременно с другой полезной работой. Когда приложение исполняет запрос на чтение или запись в удалённую оперативную память, данные могут доставляться напрямую в сетевой адаптер, уменьшая задержки при передаче данных.

При использовании простых односторонних примитивов RDMA отправитель не информируется о завершении передачи. Часто по завершении пересылки адаптер выставляет некоторые значения в памяти, но для обнаружения такого изменения отправитель должен считывать этот флаг в цикле. Циклический опрос потребляет процессорное время, кроме того, возрастают накладные расходы памяти и задержки для систем с очень большим количеством узлов.

Примечания править

  1. Источник. Дата обращения: 1 декабря 2016. Архивировано 22 декабря 2016 года.

Ссылки править