RDMA Scatter / Собери в глаголах API - PullRequest
0 голосов
/ 14 сентября 2018

RDMA Scatter / Gather - хороший способ консолидировать передачу данных. Например, API глаголов позволяет записывать данные в нескольких местах в удаленный буфер с помощью операции записи SINGLE RDMA; или данные в удаленном буфере могут быть прочитаны в несколько мест с помощью операции чтения ОДНОЙ RDMA.

Однако я не могу инициировать запись операции RDMA в несколько мест на удаленной стороне (или чтение из нескольких мест на удаленной стороне). Эта функция привлекательна для нас, потому что она эффективно использует широкие полосы RDMA для нескольких небольших записей. Я также проверил API-интерфейсы Intel qsm и API Cray gni . Кажется, никто не поддерживает такую ​​функцию - давайте назовем это «дистанционное рассеяние, управляемое автором». Есть ли глубокая причина, по которой это не поддерживается?

Ответы [ 2 ]

0 голосов
/ 11 января 2019

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

0 голосов
/ 15 сентября 2018

У меня нет хорошего объяснения, почему интерфейс глаголов не поддерживает его, так как он может быть определенно реализован на аппаратном уровне.

Однако есть по крайней мере два способа сделать это более эффективно: 1Более простой способ - вы можете опубликовать список запросов RDMA сразу для нескольких удаленных местоположений и запросить запись завершения только для последнего - это обеспечит лучшую производительность, чем публикация их по одному.2. Более продвинутый: вы можете создать «UMR» на удаленном хосте, который сгруппирует все эти местоположения в один смежный виртуальный MR, затем вы можете использовать этот удаленный виртуальный MR с одной последующей операцией

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...