Вместо введения
Представим ситуацию.
- Написали код алгоритма. Оказался медленный.
- Посидели, подумали, перестроили алгоритмы расчета. Ускорился. Мало.
- Применили мета программирование в сложных расчетах. Получше.
- Посидели, по профилировали, нашли узкие места в коде. Ускорили. Уже ничего.
- Применили разные модели распараллеливания кода. Сервисные функции закинули в одно ядро, расчеты раскинули по ядрам. Сидим греем камень. Получше.
- Максимум попытались убрать места, чтобы код не обращался в ОС
В общем что дальше? Дальше ищем прирост в железе. Вроде логично. Про бытовые моменты писать не буду, процессор там погнать или еще чего. Затрону специфичное оборудование.
Сетевой уровень.
Упрощенно схематично, данные с биржи можно получать примерно по такой схеме
Для обычного разработчика тут достаточно много черного ящика. Мол, мое приложение получает данные, а что там и как там происходит, мне не подвластно и закрыто. По запросам западных алготрейдеров, производители пошли на встречу и разработали такое сетевое оборудование, которое такую схему превращает в следующую:

Рассмотрим классическую подробную схему получения сетевых данных на уровне приложения.
Как видим, приложение приходится общаться с ОС. На профессиональном сленге, это звучит как «вывалиться в kernel-space» или «вывалиться в ядро». Дело в том, что общение с ОС это всегда дорого по времени. Разработчики при проектировании всегда стараются оставаться в пределах user-space и не вываливаться в ядро. Тут то на помощь и пришли производители оборудования. По запросу трейдеров начали выпускать специальное сетевое оборудование. И классическая схема на сетевом уровне преобразовывается в следующую схему:

Как видим. ОС мы вообще выключили из цепи. Приложение работает у себя только с памятью. При этом, при правильном построении методов работы, можно значительно сократить операций копирования памяти, операций обработки массивов данных. Все это несомненный плюс приросту.
ТОП производители на сегодняшний день это Intel, Solarflare. Ценовой уровень оригинальных карт хорошего класса на сегодняшний день примерно 1500$. Есть конечно и китайские аналоги на оригинальных чипах, подешевле. Для набития шишек и они наверное пойдут.
Карты так же поставляются с коробочным ПО, при котором разработчику ничего не нужно делать. Коробочное ПО само перехватывает все сетевые вызовы приложения, обрабатывает и отдает результат. Кстати основные разработчики данного ПО — это российская компания из Питера. Мастера своего дела, их знает весь мир.
Так же есть и low-level API, где разработчик сам может опуститься на низкий уровень программирования и поработать с картой напрямую.
Тут я прервусь, сохранюсь и продолжу.
кстати, попутно вопрос возник. А как получаются данные с биржи? Pull или push? То есть, клиент сам запрашивает данные, или биржа рассылает? Или и то и другое доступно? Судя по вашей схеме, там push, но я так подозреваю, что это упрощенная схема, поэтому спрашиваю