Skip to content

waverian/evolution-benchmark

Repository files navigation

Evolution Benchmark

Waverian Evolution Benchmark is a benchmark based on the original LFK benchmark by Francis H. McMahon with support of multicore proccessors.

The benchmark was rewritten in order tu support thread libraries (pthread and winapi threads), with big attention to match original benchmark results.

Code compiles on the following compilers:
  • GCC
  • clang
  • MinGW
  • MSVC
  • apple-clang
Features:

-- Original 24 kernels.

-- Optimized and Non-Optimized versions of the benchmark in the same binary.

-- No external dependencies.

-- Fancy HTML and Plaintext format report.

How to build:

  1. Makefile based:
    make
    # Executable located at ./benchmark-cli
    # To disable CPUID run with argument `EB_USE_CPUID=OFF`
    # To disable threads support run with argument `EB_USE_THREADS=OFF`
  2. Cmake based:
    ./cmake_build.sh
    # Executable located at ./benchmark-cli
    # To disable CPUID run with argument `-DEB_USE_CPUID=OFF`
    # To disable threads support run with argument `-DEB_USE_THREADS=OFF`
  3. Cmake based (for windows hosts):
    ./tools/generate_release_win.sh # There might be missing packages. Follow the instructions.

How to run:

Evolution Benchmark tool.
Usage:
         -o <file>    ..... .txt and .html reports file name      [default waverian-benchmark-report]
         -c <comment> ..... comment added to the report
         -j <cores>   ..... number of cores (0 - auto detection)  [default 1]
         -t <seconds> ..... execution time in seconds per kernel  [default 0.5]
         -w           ..... enable workstation mode               [default off]

License

MIT

Special thanks to Francis H.McMahon and Alexey Eromenko "Technologov"