Помимо Infiniband-карточек, я, как и собирался, запасся картами Myrinet 10G. Портов меньше, дороже (получилось $80 за карту), но тоже интересно.
После пары дней мучений (о которых ниже) удалось получить такое вот (tcp, 1 поток):
------------------------------------------------------------
Client connecting to 10.3.1.2, TCP port 5001
TCP window size: 256 KByte
------------------------------------------------------------
[ 3] local 10.3.1.1 port 1383 connected with 10.3.1.2 port 5001
[ ID] Interval Transfer Bandwidth
[ 3] 0.0-10.0 sec 7.77 GBytes 6.68 Gbits/sec
Это Iperf, между Win7 и Linux. Медленнее чем IB в connected mode, быстрее чем в обычном режиме. Что неудивительно, ибо в connected mode размер пакета 64k, в обычной - 2k, а тут чем больше - тем лучше.
Плюсы (в сравнении с Mellanox):
- Есть драйвера для мака (не пробовал). Ну и вообще, все кроме Windows поддерживают сходу, для виндов - просто ставятся драйвера.
- Аппаратные контрольные суммы для IP, в случае IPoIB все считается, как я подозреваю, софтом. В результате 26Gbit (два двунаправленных потока по IB) грузят i7-920 ровно наполовину. Мне, впрочем, нужно меньше, оттого я не сильно парюсь.
Минусы:
- Никаких наворотов, вроде Winsock Direct, SRP, SDP, RDMA. Просто Ethernet 10G. Это может быть и плюс, если хочется просто работать (Subnet Manager не нужен, ARP как у людей и т.п.), но IB-шные навороты в локальном масштабе вполне могут быть и полезны.
- Один порт. Т.е. цена за порт выше раза в 4 (хотя и остается низкой).
- Карты сильно греются, пришлось искать слот с обдувом.
В бой поставлю, пожалуй, IB, а пару этих оставлю в заначке, может и пригодятся.