Параллельный граф без лишних барьеров: C11 и loom
Тезисы
В докладе на живом примере разберём, как эффективно распараллелить граф вычислений, опираясь на C11 memory model как на основу корректной синхронизации. Аккуратно выведем требуемые отношения happens-before и убедимся, что они выдерживаются в получившейся программе на Rust. Затем подключим loom, чтобы перебрать всевозможные варианты исполнения, детерминированно ловить гонки и закрепить инварианты тестами. В итоге вы получите практический рецепт: быстрый параллельный DAG + доказуемая корректность с минимальными накладными расходами.
В докладе на живом примере разберём, как эффективно распараллелить граф вычислений, опираясь на C11 memory model как на основу корректной синхронизации. Аккуратно выведем требуемые отношения happens-before и убедимся, что они выдерживаются в получившейся программе на Rust. Затем подключим loom, чтобы перебрать всевозможные варианты исполнения, детерминированно ловить гонки и закрепить инварианты тестами. В итоге вы получите практический рецепт: быстрый параллельный DAG + доказуемая корректность с минимальными накладными расходами.
Информация о спикере
Андрей Сонин
Техлид, NDA HFT
Техлид команды разработки алгоритмов для трейдинга.

Окончил МФТИ, занимался биоинформатикой и машинным обучением, есть несколько научных статей по этой теме.

Гитхаб: https://github.com/andrewsonin
Блог: https://andrewsonin.github.io/
Линкедин: https://www.linkedin.com/in/andrewsonin
Все доклады