Новости C++ для высокочастотного трейдинга: простые шаги к оптимизации кода

NewsMaker

I'm just a script
Премиум
13,850
20
8 Ноя 2022
Важность оптимизации для молниеносных сделок.


599eg09lwj9xyeyeq7lddeiu2lnu8rgd.jpg


Несмотря на то, что производительность оборудования продолжает расти, оптимизация кода остается важной задачей. В Для просмотра ссылки Войди или Зарегистрируйся исследователей из Имперского колледжа Лондона, Пола Билокона и Бурака Гундуза, рассматриваются шаблоны низкой задержки, которые особенно важны для приложений, таких как высокочастотная торговля ( Для просмотра ссылки Войди или Зарегистрируйся ). В HFT, где небольшие маржи компенсируются огромными объемами сделок, каждая миллисекунда имеет значение.

В то время как решения на базе FPGA (полевых программируемых вентильных матриц) часто используются в HFT благодаря их низкой задержке и высокой параллельности, основным языком программирования остается C++.

Авторы статьи выделяют несколько очевидных методов оптимизации, таких как предварительная загрузка кеша ЦП, использование Для просмотра ссылки Войди или Зарегистрируйся , разворачивание циклов и инлайнинг. Однако есть и менее очевидные паттерны, например, разделение горячих и холодных путей (hotpath vs coldpath). Этот подход перекликается с паттерном уменьшения ветвлений и заключается в разделении часто и редко исполняемого кода (например, обработка ошибок и ведение логов). Это улучшает использование кеша ЦП и предотвращает ошибочные предсказания ветвлений, что подтверждают тесты с использованием Google Benchmark. Все шаблоны проектирования также можно найти в репозитории Для просмотра ссылки Войди или Зарегистрируйся .

Другие интересные моменты включают влияние сравнения знаковых и беззнаковых чисел, смешивание типов данных с плавающей запятой и программирование без блокировок с использованием кольцевого буфера. Единственное, что не рассмотрено в статье, это доступ к памяти с выравниванием и без него, а также оптимизации без копирования данных, но эти улучшения можно легко добавить и протестировать наряду с остальными оптимизациями.

Таким образом, даже в эпоху мощных аппаратных средств, оптимизация кода играет ключевую роль в обеспечении максимальной производительности, особенно в таких требовательных областях, как высокочастотная торговля.
 
Источник новости
www.securitylab.ru

Похожие темы