Конфигурация маршрутизации портов Infiniband OpenSM N-to-N

У меня есть 10 серверов с двумя процессорами каждый и по одному сетевому адаптеру Mellanox 100G Infiniband на каждый процессор. Каждый сетевой адаптер подключен к одному коммутатору Mellanox с 36 портами 100G IB.

Мое приложение RDMA выполняется как один процесс на узел NUMA и привязывается к локальному сетевому адаптеру, чтобы избежать перекрестного трафика ЦП. Каждый узел/процесс должен подключаться к каждому другому узлу, используя режим RC.

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

Есть ли способ разрешить одному сетевому адаптеру подключаться к любому другому сетевому адаптеру/порту в сети?

По сути, я хотел бы заставить OpenSM думать, что каждый сетевой адаптер находится на своем собственном сервере, т.е. делая вид, что трафик QPI невозможен.

См.: https://docs.mellanox.com/display/MLNXOFEDv461000/OpenSM .

Как только матрицы MinHop существуют, посещается каждый коммутатор и для каждого целевого LID принимается решение о том, какой порт следует использовать для доступа к этому LID.

Соответствующий код: https://github.com/linux-rdma/opensm/blob/844ab3b7edaad983449b5d3a4a773088b8daa299/opensm/osm_ucast_mgr.c#L201

0 ответов

Другие вопросы по тегам