Skip to content
This repository has been archived by the owner on Mar 22, 2023. It is now read-only.

Benchmark scenarios #45

Open
igchor opened this issue Dec 18, 2020 · 1 comment
Open

Benchmark scenarios #45

igchor opened this issue Dec 18, 2020 · 1 comment

Comments

@igchor
Copy link
Contributor

igchor commented Dec 18, 2020

Ideally we would test all the combinations. After analysis we can reduce the numbers to the most representative ones.

Metrics we should collect:
bandwidth, ops/sec, latency


  • Key/value sizes:
    8/8, 24/24, 8/128, 128/128, 256/256,

  • Benchmarks:
    fillseq,
    fillrandom
    readseq, readseq  (after fillseq)
    readseq, readseq (after fillrandom)
    readrandom, readrandom (after fillseq)
    readrandom, readrandom (after fillrandom)
    overwrite, overwrite (after fillseq)
    overwrite, overwrite (after fillrandom)
    readmissing, readmissing (after filrandom or fillseq)
    deleteseq (after fillseq)
    deleteseq (after fillrandom)
    deleterandom (after fillseq)
    deleterandom (after fillsrandom)
    readwhilewriting
    readwhilewriting (after fillrandom)
    readwhilewriting (after fillseq)
    readrandomwriterandom
    readrandomwriterandom (after fillrandom)
    readrandomwriterandom (after fillseq)

  • Number of elements:
    1 000 000, 10 000 000, 100 000 000

  • Number of threads (for concurrent engines):
    1, 2, 4, 6, 8, 12, 18, 24

  • Flags:
    disjoint=1
    disjoint=0

  • Number of dimms:
    1, 6 interleaved

Numa node:

  • local
  • remote

OPTIONAL (second step):

  • Pool utilization (TODO: think how to approximate the pool size):
    10%, 50%, 90%

  • fsdax/devdax

  • compilers:
    clang++
    g++


@karczex
Copy link

karczex commented Jan 21, 2021

Basic scope:

Key/value sizes:
8/8, 128/128

Benchmarks:
fillseq,
fillrandom
readrandom, readrandom (after fillseq)
readrandom, readrandom (after fillrandom)
readseq, readseq (after fillseq)
readseq, readseq (after fillrandom)
readwhilewriting
readrandomwriterandom

Number of elements:
100 000 000

Number of threads (for concurrent engines):
1, 4, 8, 12, 16, 18, 24

Number of dimms:
6 interleaved

Medium:

  • pmem (fsdax)
  • DRAM (/dev/shm with PMEM_IS_PMEM_FORCE=1)

Engines:
cmap, csmap, radix, stree and robinhood (when merged)

karczex pushed a commit to karczex/pmemkv-bench that referenced this issue Feb 19, 2021
Instead of passing JSON, user may pass python script with implemented method generate(), which returns
dictionary. Such dictionary is validated against json schema file. To do so, build and benchmark
configurations was split into two files.

generate_obj_based_scope.py may be run as standalone application, which
prints configuration json (also validated against schema) to stdout. Such once generated json may be saved
and passed to run_benchmark.py.

ref pmem#45
karczex pushed a commit to karczex/pmemkv-bench that referenced this issue Mar 17, 2021
Instead of passing JSON, user may pass python script with implemented method generate(), which returns
dictionary. Such dictionary is validated against json schema file. To do so, build and benchmark
configurations was split into two files.

generate_obj_based_scope.py may be run as standalone application, which
prints configuration json (also validated against schema) to stdout. Such once generated json may be saved
and passed to run_benchmark.py.

ref pmem#45
karczex pushed a commit to karczex/pmemkv-bench that referenced this issue Apr 8, 2021
Instead of passing JSON, user may pass python script with implemented method generate(), which returns
dictionary. Such dictionary is validated against json schema file. To do so, build and benchmark
configurations was split into two files.

generate_obj_based_scope.py may be run as standalone application, which
prints configuration json (also validated against schema) to stdout. Such once generated json may be saved
and passed to run_benchmark.py.

ref pmem#45
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants