Skip to content

C++ benchmark of keys values containers with likwid as monitoring and benchmarking suite

Notifications You must be signed in to change notification settings

neudinger/keys-values-bench

Repository files navigation

Benchmark of c++ keys values containers with likwid

Linux

C++

This project require C++ 17 due to the usage of structured bindings

Install commands

Required

mamba env create -f environment.yml
conda activate bench-env

export C_INCLUDE_PATH=${CONDA_PREFIX}/include
export CPLUS_INCLUDE_PATH=${CONDA_PREFIX}/include
# Sometime this is required for the compiler to find include and the libraries
# export C_INCLUDE_PATH=${C_INCLUDE_PATH}:${PWD}/libs/clang+llvm-13.0.0-x86_64-linux-gnu-ubuntu-20.04/include
# export CPLUS_INCLUDE_PATH=${CPLUS_INCLUDE_PATH}:${PWD}/libs/clang+llvm-13.0.0-x86_64-linux-gnu-ubuntu-20.04/include
# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${PWD}/libs/clang+llvm-13.0.0-x86_64-linux-gnu-ubuntu-20.04/lib
# export LIBRARY_PATH=$LIBRARY_PATH:${PWD}/libs/clang+llvm-13.0.0-x86_64-linux-gnu-ubuntu-20.04/lib
  • Download and install the required dependencies

    ./dl_lib.sh
  • Build every binary

    ./build.sh
  • Run every binary in ./binaries directory with likwid monitoring and write csv result in ./results/csv/

    ./run.sh
  • Read csv to convert in eps, png, svg image performance chart

    ./read_results.sh
    

Likwid simple usage

  • Please use the ./run.sh
# https://rrze-hpc.github.io/likwid/Doxygen/likwid-perfctr.html
likwid-perfctr -O -m -C S0:0 -g MEM_DP ./binaries/stencil_EIGEN_1D 10 1000 > EIGEN_1D.csv

likwid-perfctr -O -m -C S0:0 -g MEM_DP ./binaries/map_STD-3RK\=int64_t-MAP_VALUE\=k1 10 > map_STD\=int64_t-MAP_VALUE\=k1.csv

MAP

Bench between most popular Key Value library

See some result result

About

C++ benchmark of keys values containers with likwid as monitoring and benchmarking suite

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published