Адаптеры InfiniBand («HCA») предоставляют несколько расширенных функций, которые можно использовать через собственный программный интерфейс «verbs»:
- Передача данных может быть инициирована непосредственно из пользовательского пространства на оборудование, минуя ядро и избегая накладных расходов на системный вызов.
- Адаптер может обрабатывать все сетевые протоколы разбивки большого сообщения (даже много мегабайт) на пакеты, генерации/обработки ACK, повторной передачи потерянных пакетов и т. д. без использования ЦП ни отправителя, ни получателя.
IPoIB (IP-over-InfiniBand) — это протокол, который определяет, как отправлять IP-пакеты через IB; и, например, в Linux есть драйвер «ib_ipoib», который реализует этот протокол. Этот драйвер создает сетевой интерфейс для каждого порта InfiniBand в системе, благодаря чему HCA действует как обычная сетевая карта.
IPoIB не в полной мере использует возможности HCA; сетевой трафик проходит через обычный стек IP, что означает, что для каждого сообщения требуется системный вызов, а центральный процессор должен обрабатывать разбиение данных на пакеты и т. д. Однако это означает, что приложения, использующие обычные сокеты IP, будут работать поверх полная скорость канала IB (хотя ЦП, вероятно, не сможет запустить стек IP достаточно быстро, чтобы использовать канал IB QDR 32 Гбит/с).
Поскольку IPoIB предоставляет обычный интерфейс IP NIC, поверх него можно запускать сокеты TCP (или UDP). При использовании последних систем возможна пропускная способность TCP более 10 Гбит/с, но при этом будет сжигаться значительное количество ресурсов ЦП. На ваш вопрос, на самом деле нет разницы между IPoIB и TCP с InfiniBand — оба они относятся к использованию стандартного стека IP поверх оборудования IB.
Настоящая разница заключается в использовании IPoIB с обычным приложением для сокетов и использованием собственного InfiniBand с приложением, которое было закодировано непосредственно для собственного интерфейса глаголов IB. Нативное приложение почти наверняка получит гораздо более высокую пропускную способность и меньшую задержку, при этом затрачивая меньше ресурсов ЦП на работу в сети.
person
Roland
schedule
21.05.2011