X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Fdmclock%2Fbenchmark%2FREADME.md;fp=src%2Fceph%2Fsrc%2Fdmclock%2Fbenchmark%2FREADME.md;h=d945e986fc1e90101768598d5d30e334f7b65bac;hb=812ff6ca9fcd3e629e49d4328905f33eee8ca3f5;hp=0000000000000000000000000000000000000000;hpb=15280273faafb77777eab341909a3f495cf248d9;p=stor4nfv.git diff --git a/src/ceph/src/dmclock/benchmark/README.md b/src/ceph/src/dmclock/benchmark/README.md new file mode 100644 index 0000000..d945e98 --- /dev/null +++ b/src/ceph/src/dmclock/benchmark/README.md @@ -0,0 +1,42 @@ +# dmclock benchmarking + +**IMPORTANT**: now that K_WAY_HEAP is no longer allowed to have the +value 1, the shell and Python scripts that generate the PDFs no longer +work exactly correctly. Some effort to debug is necessary. + +This directory contains scripts to evaluate effects of different +branching-factors (k=1 to k=11) in the IndirectIntrusiveHeap +data-structure. IndirectIntrusiveHeap is now a k-way heap, so finding +an ideal value for k (i.e., k=2 or k=3) for a particular work-load is +important. Also, it is well-documented that the right choice of +k-value improves the caching behaviour [Syed -- citation needed +here]. As a result, the overall performance of an application using +k-way heap increases significantly [Syed -- citation needed here]. + +A rule of thumb is the following: + if number of elements are <= 6, use k=1 + otherwise, use k=3. + +## Prerequisites + +requires python 2.7, gnuplot, and awk. + +## Running benchmark + +./run.sh [name_of_the_output] [k_way] [repeat] # [Syed -- last two command line args do not work] + +The "run.sh" script looks for config files in the "configs" directory, +and the final output is generated as +"name_of_the_output.pdf". Internally, "run.sh" calls other scripts +such as data_gen.sh, data_parser.py, and plot_gen.sh. + +## Modifying parameters + +To modify k-value and/or the amount of times each simulation is +repeated, modify the following two variables in "run.sh" file: + + k_way=[your_value] + repeat=[your_value] + +For example, k_way=3 means, the benchmark will compare simulations +using 1-way, 2-way, and 3-way heaps.