Павел Крюков
Компания: МФТИ
Проблема выбора оптимального размещения данных в памяти актуальна при программировании высокопроизводительных систем, работающих с большим объемом данных. В докладе представлена C++ библиотека, унифицирующая интерфейс к AoS- и SoA-подходам к организациям данных и упрощающая процесс выбора.
Доклад содержит начальные сведения об устройстве кеша CPU, качественное сравнение подходов AoS и SoA, недостатки использования их стандартных реализаций на C++. Перечислены задачи, возникающие при построении взаимозаменяемых AoS- и SoA-контейнеров, и представлены их решения с использованием средств рефлексии C++17.
В докладе будут представлены примеры количественных и аналитических сравнений производительности AoS- и SoA-подходов для различных задач.
Представленная библиотека использует современный C++17, трюк Type Loophole и Boost.PFR. Оценки производительности осуществляются с помощью Google Benchmark.
Компания: МФТИ
Компания: Intel Corporation