Access Pattern Bench

Program's name: Access Pattern Bench
Available version(s): Programming language(s): C++ ·

Access Pattern Bench is a set of programs to simulate various memory access patterns that can arise in applications and have an impact on performance and efficiency. This kernel does not use any parallel programming model like MPI or OpenMP but is mainly focusing on serial access patterns investigating cache and vectorization behavior. Nevertheless, these access patterns can also appear for single processes/threads in parallel workloads.

Access patterns that can be simulated are:

  • Array of Structures (AoS)
  • Structure of Arrays (SoA)
  • Strided memory access with different strides
  • Random memory access

Further, the benchmarks allow to define the number of elements in arrays, whether to use dynamic memory allocation or fixed sized arrays and whether array elements will only be read or both read and written. The latter could make a difference for systems with asymmetric memory read and write characteristics.