Pavel Kryukov
Company: MIPT
The problem of choosing optimal data placement in memory is relevant when programming high-performance systems which work with big volume of data. In this talk Pavel will introduce C++ library which unifies interface to AoS and SoA data placement strategy and simplifies the process of choosing.
The talk contains initial information about CPU cache structure, qualitative comparison of AoS and SoA, disadvantages of using their standard implementations in C++. Pavel enumerates the tasks which appear when building interchangeable AoS and SoA containers and the their solutions using reflection means of C++17.
The talk will contain the examples of quantitative and analytical comparisons of AoS and SoA approaches to different tasks.
The presented library uses modern C++17, trick Type Loophole and Boost.PFR. The assessment of performance is done with Google Benchmark
Company: MIPT
Company: Intel Corporation