Changes in / [12df6fe:4520b77e]
- Files:
-
- 55 added
- 83 deleted
- 151 edited
-
Jenkins/FullBuild (modified) (1 diff)
-
Jenkinsfile (modified) (6 diffs)
-
benchmark/basic/tls_fetch_add.c (modified) (1 diff)
-
benchmark/io/http/main.cfa (modified) (4 diffs)
-
benchmark/io/http/printer.cfa (modified) (4 diffs)
-
benchmark/io/http/printer.hfa (modified) (1 diff)
-
benchmark/io/http/protocol.cfa (modified) (6 diffs)
-
benchmark/io/http/protocol.hfa (modified) (1 diff)
-
benchmark/io/http/socket.cfa (modified) (2 diffs)
-
benchmark/io/http/worker.cfa (modified) (17 diffs)
-
benchmark/io/http/worker.hfa (modified) (1 diff)
-
benchmark/plot.py (modified) (9 diffs)
-
benchmark/process-mutilate.py (modified) (1 diff)
-
benchmark/process-trun.py (added)
-
benchmark/readyQ/churn.go (modified) (1 diff)
-
benchmark/readyQ/locality.cfa (modified) (2 diffs)
-
benchmark/readyQ/locality.cpp (modified) (1 diff)
-
benchmark/readyQ/locality.go (modified) (1 diff)
-
benchmark/readyQ/locality.rs (modified) (1 diff)
-
benchmark/readyQ/rq_bench.hfa (modified) (1 diff)
-
benchmark/readyQ/transfer.cfa (modified) (1 diff)
-
benchmark/readyQ/transfer.go (modified) (1 diff)
-
benchmark/rmit.py (modified) (4 diffs)
-
configure.ac (modified) (2 diffs)
-
doc/LaTeXmacros/lstlang.sty (modified) (1 diff)
-
doc/bibliography/pl.bib (modified) (3 diffs)
-
doc/proposals/iterators.md (added)
-
doc/theses/thierry_delisle_PhD/.gitignore (modified) (1 diff)
-
doc/theses/thierry_delisle_PhD/thesis/Makefile (modified) (6 diffs)
-
doc/theses/thierry_delisle_PhD/thesis/data/churn.jax (modified) (1 diff)
-
doc/theses/thierry_delisle_PhD/thesis/data/churn.low.jax (modified) (1 diff)
-
doc/theses/thierry_delisle_PhD/thesis/data/churn.low.nasus (added)
-
doc/theses/thierry_delisle_PhD/thesis/data/churn.nasus (added)
-
doc/theses/thierry_delisle_PhD/thesis/data/cycle.jax (modified) (1 diff)
-
doc/theses/thierry_delisle_PhD/thesis/data/cycle.low.jax (modified) (1 diff)
-
doc/theses/thierry_delisle_PhD/thesis/data/cycle.low.nasus (added)
-
doc/theses/thierry_delisle_PhD/thesis/data/cycle.nasus (added)
-
doc/theses/thierry_delisle_PhD/thesis/data/locality.noshare.jax (added)
-
doc/theses/thierry_delisle_PhD/thesis/data/locality.noshare.nasus (added)
-
doc/theses/thierry_delisle_PhD/thesis/data/locality.share.jax (added)
-
doc/theses/thierry_delisle_PhD/thesis/data/locality.share.nasus (added)
-
doc/theses/thierry_delisle_PhD/thesis/data/memcd.rate (modified) (1 diff)
-
doc/theses/thierry_delisle_PhD/thesis/data/memcd.updt (modified) (1 diff)
-
doc/theses/thierry_delisle_PhD/thesis/data/swbsrv.25gb.cfa (added)
-
doc/theses/thierry_delisle_PhD/thesis/data/swbsrv.25gb.cfa.bak (added)
-
doc/theses/thierry_delisle_PhD/thesis/data/swbsrv.25gb.nginx (added)
-
doc/theses/thierry_delisle_PhD/thesis/data/yield.jax (modified) (1 diff)
-
doc/theses/thierry_delisle_PhD/thesis/data/yield.low.jax (modified) (1 diff)
-
doc/theses/thierry_delisle_PhD/thesis/data/yield.low.nasus (added)
-
doc/theses/thierry_delisle_PhD/thesis/data/yield.nasus (added)
-
doc/theses/thierry_delisle_PhD/thesis/glossary.tex (modified) (13 diffs)
-
doc/theses/thierry_delisle_PhD/thesis/local.bib (modified) (8 diffs)
-
doc/theses/thierry_delisle_PhD/thesis/test.svg (deleted)
-
doc/theses/thierry_delisle_PhD/thesis/text/conclusion.tex (added)
-
doc/theses/thierry_delisle_PhD/thesis/text/core.tex (modified) (15 diffs)
-
doc/theses/thierry_delisle_PhD/thesis/text/eval_macro.tex (modified) (1 diff)
-
doc/theses/thierry_delisle_PhD/thesis/text/eval_micro.tex (modified) (11 diffs)
-
doc/theses/thierry_delisle_PhD/thesis/text/existing.tex (modified) (7 diffs)
-
doc/theses/thierry_delisle_PhD/thesis/text/front.tex (modified) (9 diffs)
-
doc/theses/thierry_delisle_PhD/thesis/text/intro.tex (modified) (3 diffs)
-
doc/theses/thierry_delisle_PhD/thesis/text/io.tex (modified) (22 diffs)
-
doc/theses/thierry_delisle_PhD/thesis/text/practice.tex (modified) (11 diffs)
-
doc/theses/thierry_delisle_PhD/thesis/text/runtime.tex (modified) (6 diffs)
-
doc/theses/thierry_delisle_PhD/thesis/thesis.tex (modified) (4 diffs)
-
doc/user/user.tex (modified) (8 diffs)
-
driver/Makefile.am (modified) (1 diff)
-
driver/cfa.cc (modified) (1 diff)
-
libcfa/prelude/Makefile.am (modified) (2 diffs)
-
libcfa/prelude/defines.hfa.in (modified) (1 diff)
-
libcfa/src/Makefile.am (modified) (1 diff)
-
libcfa/src/bits/defs.hfa (modified) (2 diffs)
-
libcfa/src/bits/locks.hfa (modified) (1 diff)
-
libcfa/src/concurrency/io.cfa (modified) (20 diffs)
-
libcfa/src/concurrency/io/call.cfa.in (modified) (4 diffs)
-
libcfa/src/concurrency/io/setup.cfa (modified) (12 diffs)
-
libcfa/src/concurrency/io/types.hfa (modified) (5 diffs)
-
libcfa/src/concurrency/iofwd.hfa (modified) (2 diffs)
-
libcfa/src/concurrency/kernel.cfa (modified) (5 diffs)
-
libcfa/src/concurrency/kernel.hfa (modified) (7 diffs)
-
libcfa/src/concurrency/kernel/cluster.cfa (modified) (13 diffs)
-
libcfa/src/concurrency/kernel/cluster.hfa (modified) (3 diffs)
-
libcfa/src/concurrency/kernel/fwd.hfa (modified) (1 diff)
-
libcfa/src/concurrency/kernel/private.hfa (modified) (9 diffs)
-
libcfa/src/concurrency/kernel/startup.cfa (modified) (6 diffs)
-
libcfa/src/concurrency/preemption.cfa (modified) (8 diffs)
-
libcfa/src/concurrency/ready_queue.cfa (modified) (7 diffs)
-
libcfa/src/concurrency/ready_subqueue.hfa (modified) (6 diffs)
-
libcfa/src/concurrency/stats.cfa (modified) (3 diffs)
-
libcfa/src/concurrency/stats.hfa (modified) (2 diffs)
-
libcfa/src/iostream.cfa (modified) (2 diffs)
-
libcfa/src/rational.cfa (modified) (3 diffs)
-
libcfa/src/startup.cfa (modified) (1 diff)
-
libcfa/src/stdlib.cfa (modified) (4 diffs)
-
libcfa/src/stdlib.hfa (modified) (2 diffs)
-
src/AST/Decl.hpp (modified) (4 diffs)
-
src/AST/DeclReplacer.cpp (modified) (1 diff)
-
src/AST/Pass.hpp (modified) (1 diff)
-
src/AST/Pass.impl.hpp (modified) (3 diffs)
-
src/AST/Pass.proto.hpp (modified) (1 diff)
-
src/AST/Print.cpp (modified) (4 diffs)
-
src/AST/StorageClasses.hpp (modified) (3 diffs)
-
src/AST/Type.cpp (modified) (3 diffs)
-
src/AST/Type.hpp (modified) (3 diffs)
-
src/Common/Eval.cc (modified) (2 diffs)
-
src/Common/ScopedMap.h (modified) (24 diffs)
-
src/Common/utility.h (modified) (1 diff)
-
src/CompilationState.cc (modified) (1 diff)
-
src/Concurrency/Keywords.cc (modified) (9 diffs)
-
src/Concurrency/KeywordsNew.cpp (modified) (12 diffs)
-
src/Concurrency/WaitforNew.cpp (modified) (1 diff)
-
src/ControlStruct/ExceptDeclNew.cpp (modified) (8 diffs)
-
src/ControlStruct/ExceptTranslateNew.cpp (modified) (4 diffs)
-
src/ControlStruct/LabelFixer.cc (modified) (1 diff)
-
src/ControlStruct/LabelFixer.h (modified) (1 diff)
-
src/ControlStruct/MLEMutator.cc (modified) (1 diff)
-
src/ControlStruct/MLEMutator.h (modified) (1 diff)
-
src/GenPoly/GenPoly.cc (modified) (7 diffs)
-
src/GenPoly/GenPoly.h (modified) (4 diffs)
-
src/GenPoly/InstantiateGeneric.h (modified) (1 diff)
-
src/GenPoly/InstantiateGenericNew.cpp (added)
-
src/GenPoly/ScrubTyVars.cc (modified) (2 diffs)
-
src/GenPoly/ScrubTyVars.h (modified) (3 diffs)
-
src/GenPoly/Specialize.h (modified) (2 diffs)
-
src/GenPoly/SpecializeNew.cpp (modified) (12 diffs)
-
src/GenPoly/module.mk (modified) (1 diff)
-
src/InitTweak/FixInitNew.cpp (modified) (4 diffs)
-
src/InitTweak/InitTweak.cc (modified) (12 diffs)
-
src/Makefile.am (modified) (1 diff)
-
src/Parser/DeclarationNode.cc (modified) (8 diffs)
-
src/Parser/TypeData.cc (modified) (4 diffs)
-
src/Parser/TypeData.h (modified) (2 diffs)
-
src/Parser/TypedefTable.cc (modified) (5 diffs)
-
src/Parser/lex.ll (modified) (2 diffs)
-
src/Parser/parser.yy (modified) (10 diffs)
-
src/ResolvExpr/CandidateFinder.cpp (modified) (27 diffs)
-
src/ResolvExpr/Resolver.cc (modified) (2 diffs)
-
src/SymTab/Autogen.cc (modified) (1 diff)
-
src/SynTree/Statement.cc (modified) (4 diffs)
-
src/SynTree/Statement.h (modified) (2 diffs)
-
src/SynTree/Type.cc (modified) (1 diff)
-
src/SynTree/Type.h (modified) (3 diffs)
-
src/Tuples/TupleExpansionNew.cpp (modified) (2 diffs)
-
src/Tuples/Tuples.h (modified) (2 diffs)
-
src/Validate/Autogen.cpp (modified) (2 diffs)
-
src/Virtual/ExpandCasts.cc (modified) (6 diffs)
-
src/Virtual/ExpandCasts.h (modified) (2 diffs)
-
src/config.h.in (modified) (1 diff)
-
src/main.cc (modified) (11 diffs)
-
tests/.expect/KRfunctions.arm64.txt (added)
-
tests/.expect/KRfunctions.nast.arm64.txt (deleted)
-
tests/.expect/KRfunctions.nast.x64.txt (deleted)
-
tests/.expect/KRfunctions.nast.x86.txt (deleted)
-
tests/.expect/KRfunctions.oast.arm64.txt (deleted)
-
tests/.expect/KRfunctions.oast.x64.txt (deleted)
-
tests/.expect/KRfunctions.oast.x86.txt (deleted)
-
tests/.expect/KRfunctions.x64.txt (added)
-
tests/.expect/KRfunctions.x86.txt (added)
-
tests/.expect/alloc-ERROR.nast.txt (deleted)
-
tests/.expect/alloc-ERROR.oast.txt (deleted)
-
tests/.expect/alloc-ERROR.txt (added)
-
tests/.expect/attributes.arm64.txt (added)
-
tests/.expect/attributes.nast.arm64.txt (deleted)
-
tests/.expect/attributes.nast.x64.txt (deleted)
-
tests/.expect/attributes.nast.x86.txt (deleted)
-
tests/.expect/attributes.oast.arm64.txt (deleted)
-
tests/.expect/attributes.oast.x64.txt (deleted)
-
tests/.expect/attributes.oast.x86.txt (deleted)
-
tests/.expect/attributes.x64.txt (added)
-
tests/.expect/attributes.x86.txt (added)
-
tests/.expect/bitmanip2.nast.x86.txt (deleted)
-
tests/.expect/bitmanip2.x86.txt (added)
-
tests/.expect/castError.nast.txt (deleted)
-
tests/.expect/castError.oast.txt (deleted)
-
tests/.expect/castError.txt (added)
-
tests/.expect/declarationSpecifier.arm64.txt (modified) (1 diff)
-
tests/.expect/declarationSpecifier.x64.txt (modified) (1 diff)
-
tests/.expect/declarationSpecifier.x86.txt (modified) (1 diff)
-
tests/.expect/functions.arm64.txt (added)
-
tests/.expect/functions.nast.arm64.txt (deleted)
-
tests/.expect/functions.nast.x64.txt (deleted)
-
tests/.expect/functions.nast.x86.txt (deleted)
-
tests/.expect/functions.oast.arm64.txt (deleted)
-
tests/.expect/functions.oast.x64.txt (deleted)
-
tests/.expect/functions.oast.x86.txt (deleted)
-
tests/.expect/functions.x64.txt (added)
-
tests/.expect/functions.x86.txt (added)
-
tests/.expect/init1-ERROR.nast.txt (deleted)
-
tests/.expect/init1-ERROR.oast.txt (deleted)
-
tests/.expect/init1-ERROR.txt (added)
-
tests/.expect/loop_else.txt (modified) (2 diffs)
-
tests/.expect/loopctrl.txt (modified) (2 diffs)
-
tests/.expect/math.arm64.txt (added)
-
tests/.expect/math.nast.arm64.txt (deleted)
-
tests/.expect/math.nast.x64.txt (deleted)
-
tests/.expect/math.nast.x86.txt (deleted)
-
tests/.expect/math.x64.txt (added)
-
tests/.expect/math.x86.txt (added)
-
tests/.expect/math1.oast.arm64.txt (deleted)
-
tests/.expect/math1.oast.x64.txt (deleted)
-
tests/.expect/math1.oast.x86.txt (deleted)
-
tests/.expect/math2.oast.arm64.txt (deleted)
-
tests/.expect/math2.oast.x64.txt (deleted)
-
tests/.expect/math2.oast.x86.txt (deleted)
-
tests/.expect/math3.oast.arm64.txt (deleted)
-
tests/.expect/math3.oast.x64.txt (deleted)
-
tests/.expect/math3.oast.x86.txt (deleted)
-
tests/.expect/math4.oast.arm64.txt (deleted)
-
tests/.expect/math4.oast.x64.txt (deleted)
-
tests/.expect/math4.oast.x86.txt (deleted)
-
tests/.expect/mathX.arm64.txt (added)
-
tests/.expect/mathX.nast.arm64.txt (deleted)
-
tests/.expect/mathX.nast.x64.txt (deleted)
-
tests/.expect/mathX.nast.x86.txt (deleted)
-
tests/.expect/mathX.x64.txt (added)
-
tests/.expect/mathX.x86.txt (added)
-
tests/.expect/nested-types-ERR2.nast.txt (deleted)
-
tests/.expect/nested-types-ERR2.oast.txt (deleted)
-
tests/.expect/nested-types-ERR2.txt (added)
-
tests/Makefile.am (modified) (2 diffs)
-
tests/array-container/.expect/language-dim-mismatch.nast.txt (deleted)
-
tests/array-container/.expect/language-dim-mismatch.oast.txt (deleted)
-
tests/array-container/.expect/language-dim-mismatch.txt (added)
-
tests/concurrent/.expect/keywordErrors.nast.txt (deleted)
-
tests/concurrent/.expect/keywordErrors.oast.txt (deleted)
-
tests/concurrent/.expect/keywordErrors.txt (added)
-
tests/concurrent/.expect/mainError.nast.txt (deleted)
-
tests/concurrent/.expect/mainError.oast.txt (deleted)
-
tests/concurrent/.expect/mainError.txt (added)
-
tests/concurrent/clib.c (modified) (1 diff)
-
tests/concurrent/clib_tls.c (modified) (1 diff)
-
tests/concurrent/park/contention.cfa (modified) (1 diff)
-
tests/config.py.in (modified) (1 diff)
-
tests/declarationSpecifier.cfa (modified) (3 diffs)
-
tests/errors/.expect/completeType.arm64.txt (added)
-
tests/errors/.expect/completeType.nast.arm64.txt (deleted)
-
tests/errors/.expect/completeType.nast.x64.txt (deleted)
-
tests/errors/.expect/completeType.nast.x86.txt (deleted)
-
tests/errors/.expect/completeType.oast.arm64.txt (deleted)
-
tests/errors/.expect/completeType.oast.x64.txt (deleted)
-
tests/errors/.expect/completeType.oast.x86.txt (deleted)
-
tests/errors/.expect/completeType.x64.txt (added)
-
tests/errors/.expect/completeType.x86.txt (added)
-
tests/errors/.expect/scope.nast.txt (deleted)
-
tests/errors/.expect/scope.oast.txt (deleted)
-
tests/errors/.expect/scope.txt (added)
-
tests/heap.cfa (modified) (14 diffs)
-
tests/include/.expect/includes.nast.txt (deleted)
-
tests/include/.expect/includes.txt (added)
-
tests/io/.expect/comp_basic.txt (added)
-
tests/io/.expect/io.nast.txt (deleted)
-
tests/io/.expect/io.txt (added)
-
tests/io/.expect/io1.oast.txt (deleted)
-
tests/io/.expect/io2.oast.txt (deleted)
-
tests/io/away_fair.cfa (modified) (1 diff)
-
tests/io/comp_basic.cfa (added)
-
tests/io/comp_fair.cfa (modified) (5 diffs)
-
tests/io/io1.cfa (deleted)
-
tests/io/io2.cfa (deleted)
-
tests/loop_else.cfa (modified) (5 diffs)
-
tests/loopctrl.cfa (modified) (7 diffs)
-
tests/math1.cfa (deleted)
-
tests/math2.cfa (deleted)
-
tests/math3.cfa (deleted)
-
tests/math4.cfa (deleted)
-
tests/meta/.expect/arch.arm64.txt (added)
-
tests/meta/.expect/arch.x64.txt (added)
-
tests/meta/.expect/arch.x86.txt (added)
-
tests/meta/.expect/archVast.nast.arm64.txt (deleted)
-
tests/meta/.expect/archVast.nast.x64.txt (deleted)
-
tests/meta/.expect/archVast.nast.x86.txt (deleted)
-
tests/meta/.expect/archVast.oast.arm64.txt (deleted)
-
tests/meta/.expect/archVast.oast.x64.txt (deleted)
-
tests/meta/.expect/archVast.oast.x86.txt (deleted)
-
tests/meta/arch.cfa (added)
-
tests/meta/archVast.cfa (deleted)
-
tests/pybin/settings.py (modified) (3 diffs)
-
tests/pybin/test_run.py (modified) (3 diffs)
-
tests/pybin/tools.py (modified) (1 diff)
-
tests/quotedKeyword.cfa (modified) (1 diff)
-
tests/raii/.expect/ctor-autogen-ERR1.nast.txt (deleted)
-
tests/raii/.expect/ctor-autogen-ERR1.oast.txt (deleted)
-
tests/raii/.expect/ctor-autogen-ERR1.txt (added)
-
tests/raii/.expect/memberCtors-ERR1.nast.txt (deleted)
-
tests/raii/.expect/memberCtors-ERR1.oast.txt (deleted)
-
tests/raii/.expect/memberCtors-ERR1.txt (added)
-
tests/test.py (modified) (8 diffs)
-
tests/warnings/.expect/self-assignment.nast.txt (deleted)
-
tests/warnings/.expect/self-assignment.oast.txt (deleted)
-
tests/warnings/.expect/self-assignment.txt (added)
Legend:
- Unmodified
- Added
- Removed
-
Jenkins/FullBuild
r12df6fe r4520b77e 18 18 19 19 parallel ( 20 gcc_08_x86_new: { trigger_build( 'gcc-8', 'x86' ) }, 21 gcc_07_x86_new: { trigger_build( 'gcc-7', 'x86' ) }, 22 gcc_06_x86_new: { trigger_build( 'gcc-6', 'x86' ) }, 20 gcc_08_x86_new: { trigger_build( 'gcc-10', 'x86' ) }, 21 gcc_07_x86_new: { trigger_build( 'gcc-9', 'x86' ) }, 23 22 gcc_10_x64_new: { trigger_build( 'gcc-10', 'x64' ) }, 24 23 gcc_09_x64_new: { trigger_build( 'gcc-9', 'x64' ) }, -
Jenkinsfile
r12df6fe r4520b77e 103 103 } 104 104 105 ast = Settings.NewAST ? "--enable-new-ast" : "--disable-new-ast" 106 107 sh "${SrcDir}/configure CXX=${Settings.Compiler.CXX} CC=${Settings.Compiler.CC} ${Settings.Architecture.flags} AR=gcc-ar RANLIB=gcc-ranlib ${targets} ${ast} --quiet --prefix=${BuildDir}" 105 sh "${SrcDir}/configure CXX=${Settings.Compiler.CXX} CC=${Settings.Compiler.CC} ${Settings.Architecture.flags} AR=gcc-ar RANLIB=gcc-ranlib ${targets} --quiet --prefix=${BuildDir}" 108 106 109 107 // Configure libcfa … … 152 150 sh 'ulimit -a' 153 151 154 Tools.BuildStage('Test: short', !Settings.RunAllTests) { 152 jopt = '-j $(nproc)' 153 154 Tools.BuildStage('Test: Debug', true) { 155 155 dir (BuildDir) { 156 156 //Run the tests from the tests directory 157 sh " make --no-print-directory -C tests archiveerrors=${BuildDir}/tests/crashes/short"157 sh """make ${jopt} --no-print-directory -C tests timeouts="--timeout=600 --global-timeout=14400" all-tests debug=yes archiveerrors=${BuildDir}/tests/crashes/full-debug""" 158 158 } 159 159 } 160 160 161 Tools.BuildStage('Test: full', Settings.RunAllTests) {161 Tools.BuildStage('Test: Release', Settings.RunAllTests) { 162 162 dir (BuildDir) { 163 jopt = '-j $(nproc)' 164 if( Settings.Architecture.node == 'x86' ) { 165 jopt = '-j2' 166 } 167 //Run the tests from the tests directory 168 sh """make ${jopt} --no-print-directory -C tests timeouts="--timeout=600 --global-timeout=14400" all-tests debug=yes archiveerrors=${BuildDir}/tests/crashes/full-debug""" 169 sh """make ${jopt} --no-print-directory -C tests timeouts="--timeout=600 --global-timeout=14400" all-tests debug=no archiveerrors=${BuildDir}/tests/crashes/full-nodebug""" 163 //Run the tests from the tests directory 164 sh """make ${jopt} --no-print-directory -C tests timeouts="--timeout=600 --global-timeout=14400" all-tests debug=no archiveerrors=${BuildDir}/tests/crashes/full-nodebug""" 170 165 } 171 166 } … … 281 276 public final CC_Desc Compiler 282 277 public final Arch_Desc Architecture 283 public final Boolean NewAST284 278 public final Boolean RunAllTests 285 279 public final Boolean RunBenchmark … … 339 333 340 334 this.IsSandbox = (branch == "jenkins-sandbox") 341 this.NewAST = param.NewAST342 335 this.RunAllTests = param.RunAllTests 343 336 this.RunBenchmark = param.RunBenchmark … … 349 342 this.DescShort = "${ this.Compiler.name }:${ this.Architecture.name }${full}" 350 343 351 final ast = this.NewAST ? "New AST" : "Old AST"352 344 this.DescLong = """Compiler : ${ this.Compiler.name } (${ this.Compiler.CXX }/${ this.Compiler.CC }) 353 AST Version : ${ ast.toString() }354 345 Architecture : ${ this.Architecture.name } 355 346 Arc Flags : ${ this.Architecture.flags } … … 390 381 ], \ 391 382 [$class: 'BooleanParameterDefinition', \ 392 description: 'If true, build compiler using new AST', \ 393 name: 'NewAST', \ 394 defaultValue: true, \ 395 ], \ 396 [$class: 'BooleanParameterDefinition', \ 397 description: 'If false, only the quick test suite is ran', \ 383 description: 'If false, the test suite is only ran in debug', \ 398 384 name: 'RunAllTests', \ 399 385 defaultValue: false, \ -
benchmark/basic/tls_fetch_add.c
r12df6fe r4520b77e 7 7 // thread_local Boolean. This means the entire protocol is just to "mov" instructions making it extremely cheap. 8 8 9 #define thread_local _Thread_local 10 11 thread_local volatile bool value; 9 __thread volatile bool value; 12 10 13 11 void __attribute__((noinline)) do_call() { -
benchmark/io/http/main.cfa
r12df6fe r4520b77e 163 163 { 164 164 int pipe_cnt = options.clopts.nworkers * 2; 165 // int pipe_cnt = 0; 165 166 int pipe_off; 166 167 int * fds; … … 302 303 sout | "done"; 303 304 305 //=================== 306 // Close Files 307 if( options.file_cache.path ) { 308 sout | "Closing open files..." | nonl; flush( sout ); 309 close_cache(); 310 sout | "done"; 311 } 312 304 313 sout | "Stopping accept threads..." | nonl; flush( sout ); 305 314 for(i; nacceptors) { … … 346 355 } 347 356 sout | "done"; 357 358 //=================== 359 // Close Files 360 if( options.file_cache.path ) { 361 sout | "Closing open files..." | nonl; flush( sout ); 362 close_cache(); 363 sout | "done"; 364 } 348 365 349 366 sout | "Stopping connection threads..." | nonl; flush( sout ); … … 386 403 } 387 404 sout | "done"; 388 389 //===================390 // Close Files391 if( options.file_cache.path ) {392 sout | "Closing open files..." | nonl; flush( sout );393 close_cache();394 sout | "done";395 }396 405 } 397 406 -
benchmark/io/http/printer.cfa
r12df6fe r4520b77e 2 2 #include "options.hfa" 3 3 4 #include <clock.hfa> 4 5 #include <fstream.hfa> 5 6 #include <stats.hfa> … … 22 23 to.maxfd = max( to.maxfd, from.maxfd); 23 24 to.close += from.close; from.close = 0; 25 to.error += from.error; from.error = 0; 24 26 to.calls += from.calls; from.calls = 0; 27 to.eagain += from.eagain; from.eagain = 0; 25 28 to.tries += from.tries; from.tries = 0; 26 29 to.header += from.header; from.header = 0; … … 80 83 uint64_t accp_open = this.stats.accpt.accepts; 81 84 uint64_t accp_clse = this.stats.send.close; 85 uint64_t accp_errs = this.stats.send.error; 82 86 uint64_t accp_live = accp_open - accp_clse; 83 87 88 sout | "-----" | time() | "-----"; 84 89 sout | "----- Acceptor Stats -----"; 85 sout | "accepts : " | eng3(accp_open) |"opened," | eng3(accp_clse) |"closed," | eng3(accp_live) |"live ";90 sout | "accepts : " | eng3(accp_open) |"opened," | eng3(accp_clse) |"closed," | eng3(accp_live) |"live," | eng3(accp_errs) |"errors"; 86 91 sout | "accept : " | eng3(this.stats.accpt.accepts) | "calls," | eng3(this.stats.accpt.eagains) | "eagains," | eng3(this.stats.accpt.creates) | " thrds"; 87 92 sout | nl; … … 89 94 sout | "----- Connection Stats -----"; 90 95 sout | "max fd : " | this.stats.send.maxfd; 91 sout | "sendfile : " | eng3(calls) | "calls," | eng3(tries) | "tries (" | ratio | " try/call) ";96 sout | "sendfile : " | eng3(calls) | "calls," | eng3(tries) | "tries (" | ratio | " try/call)," | eng3(this.stats.send.eagain) | "eagains"; 92 97 sout | " " | eng3(header) | "header," | eng3(splcin) | "splice in," | eng3(splcot) | "splice out"; 93 sout | " - zipf sizes:";94 for(i; zipf_cnts) {95 double written = avgrd[i].calls > 0 ? ((double)avgrd[i].bytes) / avgrd[i].calls : 0;96 sout | " " | zipf_sizes[i] | "bytes," | avgrd[i].calls | "shorts," | written | "written";97 }98 // sout | " - zipf sizes:"; 99 // for(i; zipf_cnts) { 100 // double written = avgrd[i].calls > 0 ? ((double)avgrd[i].bytes) / avgrd[i].calls : 0; 101 // sout | " " | zipf_sizes[i] | "bytes," | avgrd[i].calls | "shorts," | written | "written"; 102 // } 98 103 } 99 104 -
benchmark/io/http/printer.hfa
r12df6fe r4520b77e 12 12 volatile uint64_t maxfd; 13 13 volatile uint64_t close; 14 volatile uint64_t error; 14 15 volatile uint64_t calls; 16 volatile uint64_t eagain; 15 17 volatile uint64_t tries; 16 18 volatile uint64_t header; -
benchmark/io/http/protocol.cfa
r12df6fe r4520b77e 18 18 extern "C" { 19 19 int snprintf ( char * s, size_t n, const char * format, ... ); 20 ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count); 20 21 // #include <linux/io_uring.h> 21 22 } … … 29 30 #define PLAINTEXT_MEMCPY 30 31 #define PLAINTEXT_NOCOPY 31 #define LINKED_IO 32 // #define LINKED_IO 33 #define TRUE_SENDFILE 32 34 33 35 static inline __s32 wait_res( io_future_t & this ) { … … 71 73 int ret = cfa_send(fd, it, len, 0, CFA_IO_LAZY); 72 74 if( ret < 0 ) { 73 if( errno == ECONNRESET || errno == EPIPE ) { close(fd); return -ECONNRESET; } 74 if( errno == EAGAIN || errno == EWOULDBLOCK) return -EAGAIN; 75 if( errno == ECONNRESET || errno == EPIPE || errno == EBADF ) { 76 ret = close(fd); 77 if( ret != 0 ) abort( "close in 'answer' error: (%d) %s\n", (int)errno, strerror(errno) ); 78 return -ECONNRESET; 79 } 75 80 76 81 abort( "'answer error' error: (%d) %s\n", (int)errno, strerror(errno) ); … … 84 89 } 85 90 86 int answer_error( int fd, HttpCode code ) {87 /* paranoid */ assert( code < KNOWN_CODES && code != OK200 );88 int idx = (int)code;89 return answer( fd, http_msgs[idx]->msg, http_msgs[idx]->len );90 }91 // int answer_error( int fd, HttpCode code ) { 92 // /* paranoid */ assert( code < KNOWN_CODES && code != OK200 ); 93 // int idx = (int)code; 94 // return answer( fd, http_msgs[idx]->msg, http_msgs[idx]->len ); 95 // } 91 96 92 97 static int fill_header(char * it, size_t size) { … … 104 109 } 105 110 106 #if defined(PLAINTEXT_NOCOPY) 107 int answer_plaintext( int fd ) { 108 return answer(fd, http_msgs[OK200_PlainText]->msg, http_msgs[OK200_PlainText]->len); // +1 cause snprintf doesn't count nullterminator 109 } 110 #elif defined(PLAINTEXT_MEMCPY) 111 #define TEXTSIZE 15 112 int answer_plaintext( int fd ) { 113 char text[] = "Hello, World!\n\n"; 114 char ts[] = xstr(TEXTSIZE) " \n\n"; 115 _Static_assert(sizeof(text) - 1 == TEXTSIZE); 116 char buffer[512 + TEXTSIZE]; 117 char * it = buffer; 118 memcpy(it, http_msgs[OK200]->msg, http_msgs[OK200]->len); 119 it += http_msgs[OK200]->len; 120 int len = http_msgs[OK200]->len; 121 memcpy(it, ts, sizeof(ts) - 1); 122 it += sizeof(ts) - 1; 123 len += sizeof(ts) - 1; 124 memcpy(it, text, TEXTSIZE); 125 return answer(fd, buffer, len + TEXTSIZE); 126 } 127 #elif defined(PLAINTEXT_1WRITE) 128 int answer_plaintext( int fd ) { 129 char text[] = "Hello, World!\n\n"; 130 char buffer[512 + sizeof(text)]; 131 char * it = buffer; 132 memcpy(it, http_msgs[OK200]->msg, http_msgs[OK200]->len); 133 it += http_msgs[OK200]->len; 134 int len = http_msgs[OK200]->len; 135 int r = snprintf(it, 512 - len, "%d \n\n", sizeof(text)); 136 it += r; 137 len += r; 138 memcpy(it, text, sizeof(text)); 139 return answer(fd, buffer, len + sizeof(text)); 140 } 141 #else 142 int answer_plaintext( int fd ) { 143 char text[] = "Hello, World!\n\n"; 144 int ret = answer_header(fd, sizeof(text)); 145 if( ret < 0 ) return ret; 146 return answer(fd, text, sizeof(text)); 147 } 148 #endif 149 150 int answer_empty( int fd ) { 151 return answer_header(fd, 0); 152 } 153 154 static int sendfile( int pipe[2], int fd, int ans_fd, size_t count ) { 155 unsigned sflags = SPLICE_F_MOVE; // | SPLICE_F_MORE; 156 off_t offset = 0; 157 ssize_t ret; 158 SPLICE1: while(count > 0) { 159 ret = cfa_splice(ans_fd, &offset, pipe[1], 0p, count, sflags, CFA_IO_LAZY); 160 if( ret < 0 ) { 161 if( errno != EAGAIN && errno != EWOULDBLOCK) continue SPLICE1; 162 if( errno == ECONNRESET ) return -ECONNRESET; 163 if( errno == EPIPE ) return -EPIPE; 164 abort( "splice [0] error: (%d) %s\n", (int)errno, strerror(errno) ); 165 } 166 167 count -= ret; 168 size_t in_pipe = ret; 169 SPLICE2: while(in_pipe > 0) { 170 ret = cfa_splice(pipe[0], 0p, fd, 0p, in_pipe, sflags, CFA_IO_LAZY); 171 if( ret < 0 ) { 172 if( errno != EAGAIN && errno != EWOULDBLOCK) continue SPLICE2; 173 if( errno == ECONNRESET ) return -ECONNRESET; 174 if( errno == EPIPE ) return -EPIPE; 175 abort( "splice [1] error: (%d) %s\n", (int)errno, strerror(errno) ); 111 // #if defined(PLAINTEXT_NOCOPY) 112 // int answer_plaintext( int fd ) { 113 // return answer(fd, http_msgs[OK200_PlainText]->msg, http_msgs[OK200_PlainText]->len); // +1 cause snprintf doesn't count nullterminator 114 // } 115 // #elif defined(PLAINTEXT_MEMCPY) 116 // #define TEXTSIZE 15 117 // int answer_plaintext( int fd ) { 118 // char text[] = "Hello, World!\n\n"; 119 // char ts[] = xstr(TEXTSIZE) " \n\n"; 120 // _Static_assert(sizeof(text) - 1 == TEXTSIZE); 121 // char buffer[512 + TEXTSIZE]; 122 // char * it = buffer; 123 // memcpy(it, http_msgs[OK200]->msg, http_msgs[OK200]->len); 124 // it += http_msgs[OK200]->len; 125 // int len = http_msgs[OK200]->len; 126 // memcpy(it, ts, sizeof(ts) - 1); 127 // it += sizeof(ts) - 1; 128 // len += sizeof(ts) - 1; 129 // memcpy(it, text, TEXTSIZE); 130 // return answer(fd, buffer, len + TEXTSIZE); 131 // } 132 // #elif defined(PLAINTEXT_1WRITE) 133 // int answer_plaintext( int fd ) { 134 // char text[] = "Hello, World!\n\n"; 135 // char buffer[512 + sizeof(text)]; 136 // char * it = buffer; 137 // memcpy(it, http_msgs[OK200]->msg, http_msgs[OK200]->len); 138 // it += http_msgs[OK200]->len; 139 // int len = http_msgs[OK200]->len; 140 // int r = snprintf(it, 512 - len, "%d \n\n", sizeof(text)); 141 // it += r; 142 // len += r; 143 // memcpy(it, text, sizeof(text)); 144 // return answer(fd, buffer, len + sizeof(text)); 145 // } 146 // #else 147 // int answer_plaintext( int fd ) { 148 // char text[] = "Hello, World!\n\n"; 149 // int ret = answer_header(fd, sizeof(text)); 150 // if( ret < 0 ) return ret; 151 // return answer(fd, text, sizeof(text)); 152 // } 153 // #endif 154 155 // int answer_empty( int fd ) { 156 // return answer_header(fd, 0); 157 // } 158 159 static int sendfile( int pipe[2], int fd, int ans_fd, size_t count, sendfile_stats_t & stats ) { 160 int zipf_idx = -1; 161 STATS: for(i; zipf_cnts) { 162 if(count <= zipf_sizes[i]) { 163 zipf_idx = i; 164 break STATS; 165 } 166 } 167 if(zipf_idx < 0) mutex(serr) serr | "SENDFILE" | count | " greated than biggest zipf file"; 168 169 #if defined(TRUE_SENDFILE) 170 off_t offset = 0; 171 ssize_t ret; 172 int flags = fcntl(fd, F_GETFL); 173 if(flags < 0) abort("getfl in 'true sendfile' error: (%d) %s\n", (int)errno, strerror(errno) ); 174 ret = fcntl(fd, F_SETFL, flags | O_NONBLOCK); 175 if(ret < 0) abort("setfl in 'true sendfile' error: (%d) %s\n", (int)errno, strerror(errno) ); 176 177 while(count) { 178 ret = sendfile(fd, ans_fd, &offset, count); 179 if( ret <= 0 ) { 180 if( errno == EAGAIN || errno == EWOULDBLOCK ) { 181 stats.eagain++; 182 yield(); 183 continue; 184 } 185 if( errno == ECONNRESET || errno == EPIPE ) { 186 ret = close(fd); 187 if( ret != 0 ) abort( "close in 'true sendfile' error: (%d) %s\n", (int)errno, strerror(errno) ); 188 return -ECONNRESET; 189 } 190 abort( "sendfile error: %d (%d) %s\n", ret, (int)errno, strerror(errno) ); 176 191 } 177 in_pipe -= ret; 178 } 179 180 } 192 count -= ret; 193 stats.splcin++; 194 if(count > 0) stats.avgrd[zipf_idx].calls++; 195 stats.avgrd[zipf_idx].bytes += ret; 196 } 197 198 ret = fcntl(fd, F_SETFL, flags & ~O_NONBLOCK); 199 if(ret < 0) abort("resetfl in 'true sendfile' error: (%d) %s\n", (int)errno, strerror(errno) ); 200 #else 201 #error not implemented 202 // unsigned sflags = SPLICE_F_MOVE; // | SPLICE_F_MORE; 203 // off_t offset = 0; 204 // ssize_t ret; 205 // SPLICE1: while(count > 0) { 206 // stats.tries++; 207 // // ret = cfa_splice(ans_fd, &offset, pipe[1], 0p, count, sflags, CFA_IO_LAZY); 208 // ret = splice(ans_fd, &offset, pipe[1], 0p, count, sflags); 209 // if( ret <= 0 ) { 210 // if( errno == ECONNRESET || errno == EPIPE ) { 211 // ret = close(fd); 212 // if( ret != 0 ) abort( "close in 'sendfile splice in' error: (%d) %s\n", (int)errno, strerror(errno) ); 213 // return -ECONNRESET; 214 // } 215 // abort( "splice [0] error: %d (%d) %s\n", ret, (int)errno, strerror(errno) ); 216 // } 217 // count -= ret; 218 // stats.splcin++; 219 // if(count > 0) stats.avgrd[zipf_idx].calls++; 220 // stats.avgrd[zipf_idx].bytes += ret; 221 222 // size_t in_pipe = ret; 223 // SPLICE2: while(in_pipe > 0) { 224 // ret = cfa_splice(pipe[0], 0p, fd, 0p, in_pipe, sflags, CFA_IO_LAZY); 225 // // ret = splice(pipe[0], 0p, fd, 0p, in_pipe, sflags); 226 // if( ret <= 0 ) { 227 // if( errno == ECONNRESET || errno == EPIPE ) { 228 // ret = close(fd); 229 // if( ret != 0 ) abort( "close in 'sendfile splice out' error: (%d) %s\n", (int)errno, strerror(errno) ); 230 // return -ECONNRESET; 231 // } 232 // abort( "splice [1] error: %d (%d) %s\n", ret, (int)errno, strerror(errno) ); 233 // } 234 // stats.splcot++; 235 // in_pipe -= ret; 236 // } 237 238 // } 239 #endif 240 181 241 return count; 182 242 } 183 243 184 enum FSM_STATE {185 Initial,186 Retry,187 Error,188 Done,189 };190 191 struct FSM_Result {192 FSM_STATE state;193 int error;194 };195 196 static inline void ?{}(FSM_Result & this) { this.state = Initial; this.error = 0; }197 static inline bool is_error(FSM_Result & this) { return Error == this.state; }198 static inline bool is_done(FSM_Result & this) { return Done == this.state; }199 200 static inline int error(FSM_Result & this, int error) {201 this.error = error;202 this.state = Error;203 return error;204 }205 206 static inline int done(FSM_Result & this) {207 this.state = Done;208 return 0;209 }210 211 static inline int retry(FSM_Result & this) {212 this.state = Retry;213 return 0;214 }215 216 static inline int need(FSM_Result & this) {217 switch(this.state) {218 case Initial:219 case Retry:220 return 1;221 case Error:222 if(this.error == 0) mutex(serr) serr | "State marked error but code is 0";223 case Done:224 return 0;225 }226 }227 228 // Generator that handles sending the header229 generator header_g {230 io_future_t f;231 const char * next;232 int fd; size_t len;233 FSM_Result res;234 };235 236 static inline void ?{}(header_g & this, int fd, const char * it, size_t len ) {237 this.next = it;238 this.fd = fd;239 this.len = len;240 }241 242 static inline void fill(header_g & this, struct io_uring_sqe * sqe) {243 zero_sqe(sqe);244 sqe->opcode = IORING_OP_SEND;245 sqe->user_data = (uintptr_t)&this.f;246 sqe->flags = IOSQE_IO_LINK;247 sqe->fd = this.fd;248 sqe->addr = (uintptr_t)this.next;249 sqe->len = this.len;250 }251 252 static inline int error(header_g & this, int error) {253 int ret = close(this.fd);254 if( ret != 0 ) {255 mutex(serr) serr | "Failed to close fd" | errno;256 }257 return error(this.res, error);258 }259 260 static inline int wait_and_process(header_g & this, sendfile_stats_t & stats) {261 wait(this.f);262 263 // Did something crazy happen?264 if(this.f.result > this.len) {265 mutex(serr) serr | "HEADER sent too much!";266 return error(this, -ERANGE);267 }268 269 // Something failed?270 if(this.f.result < 0) {271 int error = -this.f.result;272 if( error == ECONNRESET ) return error(this, -ECONNRESET);273 if( error == EPIPE ) return error(this, -EPIPE);274 if( error == ECANCELED ) {275 mutex(serr) serr | "HEADER was cancelled, WTF!";276 return error(this, -ECONNRESET);277 }278 if( error == EAGAIN || error == EWOULDBLOCK) {279 mutex(serr) serr | "HEADER got eagain, WTF!";280 return error(this, -ECONNRESET);281 }282 }283 284 // Done?285 if(this.f.result == this.len) {286 return done(this.res);287 }288 289 stats.header++;290 291 // It must be a Short read292 this.len -= this.f.result;293 this.next += this.f.result;294 reset(this.f);295 return retry(this.res);296 }297 298 // Generator that handles splicing in a file299 struct splice_in_t {300 io_future_t f;301 int fd; int pipe; size_t len; off_t off;302 short zipf_idx;303 FSM_Result res;304 };305 306 static inline void ?{}(splice_in_t & this, int fd, int pipe, size_t len) {307 this.fd = fd;308 this.pipe = pipe;309 this.len = len;310 this.off = 0;311 this.zipf_idx = -1;312 STATS: for(i; zipf_cnts) {313 if(len <= zipf_sizes[i]) {314 this.zipf_idx = i;315 break STATS;316 }317 }318 if(this.zipf_idx < 0) mutex(serr) serr | "SPLICE IN" | len | " greated than biggest zipf file";319 }320 321 static inline void fill(splice_in_t & this, struct io_uring_sqe * sqe) {322 zero_sqe(sqe);323 sqe->opcode = IORING_OP_SPLICE;324 sqe->user_data = (uintptr_t)&this.f;325 sqe->flags = 0;326 sqe->splice_fd_in = this.fd;327 sqe->splice_off_in = this.off;328 sqe->fd = this.pipe;329 sqe->off = (__u64)-1;330 sqe->len = this.len;331 sqe->splice_flags = SPLICE_F_MOVE;332 }333 334 static inline int wait_and_process(splice_in_t & this, sendfile_stats_t & stats ) {335 wait(this.f);336 337 // Something failed?338 if(this.f.result < 0) {339 int error = -this.f.result;340 if( error == ECONNRESET ) return error(this.res, -ECONNRESET);341 if( error == EPIPE ) return error(this.res, -EPIPE);342 if( error == ECANCELED ) {343 mutex(serr) serr | "SPLICE IN was cancelled, WTF!";344 return error(this.res, -ECONNRESET);345 }346 if( error == EAGAIN || error == EWOULDBLOCK) {347 mutex(serr) serr | "SPLICE IN got eagain, WTF!";348 return error(this.res, -ECONNRESET);349 }350 mutex(serr) serr | "SPLICE IN got" | error | ", WTF!";351 return error(this.res, -ECONNRESET);352 }353 354 // Did something crazy happen?355 if(this.f.result > this.len) {356 mutex(serr) serr | "SPLICE IN spliced too much!";357 return error(this.res, -ERANGE);358 }359 360 // Done?361 if(this.f.result == this.len) {362 return done(this.res);363 }364 365 stats.splcin++;366 stats.avgrd[this.zipf_idx].calls++;367 stats.avgrd[this.zipf_idx].bytes += this.f.result;368 369 // It must be a Short read370 this.len -= this.f.result;371 this.off += this.f.result;372 reset(this.f);373 return retry(this.res);374 }375 376 generator splice_out_g {377 io_future_t f;378 int pipe; int fd; size_t len;379 FSM_Result res;380 };381 382 static inline void ?{}(splice_out_g & this, int pipe, int fd, size_t len) {383 this.pipe = pipe;384 this.fd = fd;385 this.len = len;386 }387 388 static inline void fill(splice_out_g & this, struct io_uring_sqe * sqe) {389 zero_sqe(sqe);390 sqe->opcode = IORING_OP_SPLICE;391 sqe->user_data = (uintptr_t)&this.f;392 sqe->flags = 0;393 sqe->splice_fd_in = this.pipe;394 sqe->splice_off_in = (__u64)-1;395 sqe->fd = this.fd;396 sqe->off = (__u64)-1;397 sqe->len = this.len;398 sqe->splice_flags = SPLICE_F_MOVE;399 }400 401 static inline int error(splice_out_g & this, int error) {402 int ret = close(this.fd);403 if( ret != 0 ) {404 mutex(serr) serr | "Failed to close fd" | errno;405 }406 return error(this.res, error);407 }408 409 static inline void wait_and_process(splice_out_g & this, sendfile_stats_t & stats ) {410 wait(this.f);411 412 // Something failed?413 if(this.f.result < 0) {414 int error = -this.f.result;415 if( error == ECONNRESET ) return error(this, -ECONNRESET);416 if( error == EPIPE ) return error(this, -EPIPE);417 if( error == ECANCELED ) {418 this.f.result = 0;419 goto SHORT_WRITE;420 }421 if( error == EAGAIN || error == EWOULDBLOCK) {422 mutex(serr) serr | "SPLICE OUT got eagain, WTF!";423 return error(this, -ECONNRESET);424 }425 mutex(serr) serr | "SPLICE OUT got" | error | ", WTF!";426 return error(this, -ECONNRESET);427 }428 429 // Did something crazy happen?430 if(this.f.result > this.len) {431 mutex(serr) serr | "SPLICE OUT spliced too much!" | this.f.result | ">" | this.len;432 return error(this.res, -ERANGE);433 }434 435 // Done?436 if(this.f.result == this.len) {437 return done(this.res);438 }439 440 SHORT_WRITE:441 stats.splcot++;442 443 // It must be a Short Write444 this.len -= this.f.result;445 reset(this.f);446 return retry(this.res);447 }244 // enum FSM_STATE { 245 // Initial, 246 // Retry, 247 // Error, 248 // Done, 249 // }; 250 251 // struct FSM_Result { 252 // FSM_STATE state; 253 // int error; 254 // }; 255 256 // static inline void ?{}(FSM_Result & this) { this.state = Initial; this.error = 0; } 257 // static inline bool is_error(FSM_Result & this) { return Error == this.state; } 258 // static inline bool is_done(FSM_Result & this) { return Done == this.state; } 259 260 // static inline int error(FSM_Result & this, int error) { 261 // this.error = error; 262 // this.state = Error; 263 // return error; 264 // } 265 266 // static inline int done(FSM_Result & this) { 267 // this.state = Done; 268 // return 0; 269 // } 270 271 // static inline int retry(FSM_Result & this) { 272 // this.state = Retry; 273 // return 0; 274 // } 275 276 // static inline int need(FSM_Result & this) { 277 // switch(this.state) { 278 // case Initial: 279 // case Retry: 280 // return 1; 281 // case Error: 282 // if(this.error == 0) mutex(serr) serr | "State marked error but code is 0"; 283 // case Done: 284 // return 0; 285 // } 286 // } 287 288 // // Generator that handles sending the header 289 // generator header_g { 290 // io_future_t f; 291 // const char * next; 292 // int fd; size_t len; 293 // FSM_Result res; 294 // }; 295 296 // static inline void ?{}(header_g & this, int fd, const char * it, size_t len ) { 297 // this.next = it; 298 // this.fd = fd; 299 // this.len = len; 300 // } 301 302 // static inline void fill(header_g & this, struct io_uring_sqe * sqe) { 303 // zero_sqe(sqe); 304 // sqe->opcode = IORING_OP_SEND; 305 // sqe->user_data = (uintptr_t)&this.f; 306 // sqe->flags = IOSQE_IO_LINK; 307 // sqe->fd = this.fd; 308 // sqe->addr = (uintptr_t)this.next; 309 // sqe->len = this.len; 310 // } 311 312 // static inline int error(header_g & this, int error) { 313 // int ret = close(this.fd); 314 // if( ret != 0 ) { 315 // mutex(serr) serr | "Failed to close fd" | errno; 316 // } 317 // return error(this.res, error); 318 // } 319 320 // static inline int wait_and_process(header_g & this, sendfile_stats_t & stats) { 321 // wait(this.f); 322 323 // // Did something crazy happen? 324 // if(this.f.result > this.len) { 325 // mutex(serr) serr | "HEADER sent too much!"; 326 // return error(this, -ERANGE); 327 // } 328 329 // // Something failed? 330 // if(this.f.result < 0) { 331 // int error = -this.f.result; 332 // if( error == ECONNRESET ) return error(this, -ECONNRESET); 333 // if( error == EPIPE ) return error(this, -EPIPE); 334 // if( error == ECANCELED ) { 335 // mutex(serr) serr | "HEADER was cancelled, WTF!"; 336 // return error(this, -ECONNRESET); 337 // } 338 // if( error == EAGAIN || error == EWOULDBLOCK) { 339 // mutex(serr) serr | "HEADER got eagain, WTF!"; 340 // return error(this, -ECONNRESET); 341 // } 342 // } 343 344 // // Done? 345 // if(this.f.result == this.len) { 346 // return done(this.res); 347 // } 348 349 // stats.header++; 350 351 // // It must be a Short read 352 // this.len -= this.f.result; 353 // this.next += this.f.result; 354 // reset(this.f); 355 // return retry(this.res); 356 // } 357 358 // // Generator that handles splicing in a file 359 // struct splice_in_t { 360 // io_future_t f; 361 // int fd; int pipe; size_t len; off_t off; 362 // short zipf_idx; 363 // FSM_Result res; 364 // }; 365 366 // static inline void ?{}(splice_in_t & this, int fd, int pipe, size_t len) { 367 // this.fd = fd; 368 // this.pipe = pipe; 369 // this.len = len; 370 // this.off = 0; 371 // this.zipf_idx = -1; 372 // STATS: for(i; zipf_cnts) { 373 // if(len <= zipf_sizes[i]) { 374 // this.zipf_idx = i; 375 // break STATS; 376 // } 377 // } 378 // if(this.zipf_idx < 0) mutex(serr) serr | "SPLICE IN" | len | " greated than biggest zipf file"; 379 // } 380 381 // static inline void fill(splice_in_t & this, struct io_uring_sqe * sqe) { 382 // zero_sqe(sqe); 383 // sqe->opcode = IORING_OP_SPLICE; 384 // sqe->user_data = (uintptr_t)&this.f; 385 // sqe->flags = 0; 386 // sqe->splice_fd_in = this.fd; 387 // sqe->splice_off_in = this.off; 388 // sqe->fd = this.pipe; 389 // sqe->off = (__u64)-1; 390 // sqe->len = this.len; 391 // sqe->splice_flags = SPLICE_F_MOVE; 392 // } 393 394 // static inline int wait_and_process(splice_in_t & this, sendfile_stats_t & stats ) { 395 // wait(this.f); 396 397 // // Something failed? 398 // if(this.f.result < 0) { 399 // int error = -this.f.result; 400 // if( error == ECONNRESET ) return error(this.res, -ECONNRESET); 401 // if( error == EPIPE ) return error(this.res, -EPIPE); 402 // if( error == ECANCELED ) { 403 // mutex(serr) serr | "SPLICE IN was cancelled, WTF!"; 404 // return error(this.res, -ECONNRESET); 405 // } 406 // if( error == EAGAIN || error == EWOULDBLOCK) { 407 // mutex(serr) serr | "SPLICE IN got eagain, WTF!"; 408 // return error(this.res, -ECONNRESET); 409 // } 410 // mutex(serr) serr | "SPLICE IN got" | error | ", WTF!"; 411 // return error(this.res, -ECONNRESET); 412 // } 413 414 // // Did something crazy happen? 415 // if(this.f.result > this.len) { 416 // mutex(serr) serr | "SPLICE IN spliced too much!"; 417 // return error(this.res, -ERANGE); 418 // } 419 420 // // Done? 421 // if(this.f.result == this.len) { 422 // return done(this.res); 423 // } 424 425 // stats.splcin++; 426 // stats.avgrd[this.zipf_idx].calls++; 427 // stats.avgrd[this.zipf_idx].bytes += this.f.result; 428 429 // // It must be a Short read 430 // this.len -= this.f.result; 431 // this.off += this.f.result; 432 // reset(this.f); 433 // return retry(this.res); 434 // } 435 436 // generator splice_out_g { 437 // io_future_t f; 438 // int pipe; int fd; size_t len; 439 // FSM_Result res; 440 // }; 441 442 // static inline void ?{}(splice_out_g & this, int pipe, int fd, size_t len) { 443 // this.pipe = pipe; 444 // this.fd = fd; 445 // this.len = len; 446 // } 447 448 // static inline void fill(splice_out_g & this, struct io_uring_sqe * sqe) { 449 // zero_sqe(sqe); 450 // sqe->opcode = IORING_OP_SPLICE; 451 // sqe->user_data = (uintptr_t)&this.f; 452 // sqe->flags = 0; 453 // sqe->splice_fd_in = this.pipe; 454 // sqe->splice_off_in = (__u64)-1; 455 // sqe->fd = this.fd; 456 // sqe->off = (__u64)-1; 457 // sqe->len = this.len; 458 // sqe->splice_flags = SPLICE_F_MOVE; 459 // } 460 461 // static inline int error(splice_out_g & this, int error) { 462 // int ret = close(this.fd); 463 // if( ret != 0 ) { 464 // mutex(serr) serr | "Failed to close fd" | errno; 465 // } 466 // return error(this.res, error); 467 // } 468 469 // static inline void wait_and_process(splice_out_g & this, sendfile_stats_t & stats ) { 470 // wait(this.f); 471 472 // // Something failed? 473 // if(this.f.result < 0) { 474 // int error = -this.f.result; 475 // if( error == ECONNRESET ) return error(this, -ECONNRESET); 476 // if( error == EPIPE ) return error(this, -EPIPE); 477 // if( error == ECANCELED ) { 478 // this.f.result = 0; 479 // goto SHORT_WRITE; 480 // } 481 // if( error == EAGAIN || error == EWOULDBLOCK) { 482 // mutex(serr) serr | "SPLICE OUT got eagain, WTF!"; 483 // return error(this, -ECONNRESET); 484 // } 485 // mutex(serr) serr | "SPLICE OUT got" | error | ", WTF!"; 486 // return error(this, -ECONNRESET); 487 // } 488 489 // // Did something crazy happen? 490 // if(this.f.result > this.len) { 491 // mutex(serr) serr | "SPLICE OUT spliced too much!" | this.f.result | ">" | this.len; 492 // return error(this.res, -ERANGE); 493 // } 494 495 // // Done? 496 // if(this.f.result == this.len) { 497 // return done(this.res); 498 // } 499 500 // SHORT_WRITE: 501 // stats.splcot++; 502 503 // // It must be a Short Write 504 // this.len -= this.f.result; 505 // reset(this.f); 506 // return retry(this.res); 507 // } 448 508 449 509 int answer_sendfile( int pipe[2], int fd, int ans_fd, size_t fsize, sendfile_stats_t & stats ) { 450 510 stats.calls++; 451 511 #if defined(LINKED_IO) 452 char buffer[512]; 453 int len = fill_header(buffer, fsize); 454 header_g header = { fd, buffer, len }; 455 splice_in_t splice_in = { ans_fd, pipe[1], fsize }; 456 splice_out_g splice_out = { pipe[0], fd, fsize }; 457 458 RETRY_LOOP: for() { 459 stats.tries++; 460 int have = need(header.res) + need(splice_in.res) + 1; 461 int idx = 0; 462 struct io_uring_sqe * sqes[3]; 463 __u32 idxs[3]; 464 struct $io_context * ctx = cfa_io_allocate(sqes, idxs, have); 465 466 if(need(splice_in.res)) { fill(splice_in, sqes[idx++]); } 467 if(need( header.res)) { fill(header , sqes[idx++]); } 468 fill(splice_out, sqes[idx]); 469 470 // Submit everything 471 asm volatile("": : :"memory"); 472 cfa_io_submit( ctx, idxs, have, false ); 473 474 // wait for the results 475 // Always wait for splice-in to complete as 476 // we may need to kill the connection if it fails 477 // If it already completed, this is a no-op 478 wait_and_process(splice_in, stats); 479 480 if(is_error(splice_in.res)) { 481 if(splice_in.res.error == -EPIPE) return -ECONNRESET; 482 mutex(serr) serr | "SPLICE IN failed with" | splice_in.res.error; 483 close(fd); 484 } 485 486 // Process the other 2 487 wait_and_process(header, stats); 488 wait_and_process(splice_out, stats); 489 490 if(is_done(splice_out.res)) { 491 break RETRY_LOOP; 492 } 493 494 // We need to wait for the completion if 495 // - both completed 496 // - the header failed 497 // - 498 499 if( is_error(header.res) 500 || is_error(splice_in.res) 501 || is_error(splice_out.res)) { 502 return -ECONNRESET; 503 } 504 } 505 506 return len + fsize; 512 // char buffer[512]; 513 // int len = fill_header(buffer, fsize); 514 // header_g header = { fd, buffer, len }; 515 // splice_in_t splice_in = { ans_fd, pipe[1], fsize }; 516 // splice_out_g splice_out = { pipe[0], fd, fsize }; 517 518 // RETRY_LOOP: for() { 519 // stats.tries++; 520 // int have = need(header.res) + need(splice_in.res) + 1; 521 // int idx = 0; 522 // struct io_uring_sqe * sqes[3]; 523 // __u32 idxs[3]; 524 // struct io_context$ * ctx = cfa_io_allocate(sqes, idxs, have); 525 526 // if(need(splice_in.res)) { fill(splice_in, sqes[idx++]); } 527 // if(need( header.res)) { fill(header , sqes[idx++]); } 528 // fill(splice_out, sqes[idx]); 529 530 // // Submit everything 531 // asm volatile("": : :"memory"); 532 // cfa_io_submit( ctx, idxs, have, false ); 533 534 // // wait for the results 535 // // Always wait for splice-in to complete as 536 // // we may need to kill the connection if it fails 537 // // If it already completed, this is a no-op 538 // wait_and_process(splice_in, stats); 539 540 // if(is_error(splice_in.res)) { 541 // if(splice_in.res.error == -EPIPE) return -ECONNRESET; 542 // mutex(serr) serr | "SPLICE IN failed with" | splice_in.res.error; 543 // int ret = close(fd); 544 // if( ret != 0 ) abort( "close in 'answer sendfile' error: (%d) %s\n", (int)errno, strerror(errno) ); 545 // } 546 547 // // Process the other 2 548 // wait_and_process(header, stats); 549 // wait_and_process(splice_out, stats); 550 551 // if(is_done(splice_out.res)) { 552 // break RETRY_LOOP; 553 // } 554 555 // // We need to wait for the completion if 556 // // - both completed 557 // // - the header failed 558 // // - 559 560 // if( is_error(header.res) 561 // || is_error(splice_in.res) 562 // || is_error(splice_out.res)) { 563 // return -ECONNRESET; 564 // } 565 // } 566 567 // return len + fsize; 507 568 #else 508 stats.tries++;509 569 int ret = answer_header(fd, fsize); 510 if( ret < 0 ) { close(fd);return ret; }511 return sendfile(pipe, fd, ans_fd, fsize );570 if( ret < 0 ) { return ret; } 571 return sendfile(pipe, fd, ans_fd, fsize, stats); 512 572 #endif 513 573 } … … 528 588 } 529 589 // int ret = read(fd, (void*)it, count); 530 if(ret == 0 ) return [OK200, true, 0, 0]; 590 if(ret == 0 ) { 591 ret = close(fd); 592 if( ret != 0 ) abort( "close in 'http read good' error: (%d) %s\n", (int)errno, strerror(errno) ); 593 return [OK200, true, 0, 0]; 594 } 531 595 if(ret < 0 ) { 532 if( errno == EAGAIN || errno == EWOULDBLOCK) continue READ; 533 if( errno == ECONNRESET ) { close(fd); return [E408, true, 0, 0]; } 534 if( errno == EPIPE ) { close(fd); return [E408, true, 0, 0]; } 596 if( errno == ECONNRESET || errno == EPIPE ) { 597 ret = close(fd); 598 if( ret != 0 ) abort( "close in 'http read bad' error: (%d) %s\n", (int)errno, strerror(errno) ); 599 return [E408, true, 0, 0]; 600 } 535 601 abort( "read error: (%d) %s\n", (int)errno, strerror(errno) ); 536 602 } -
benchmark/io/http/protocol.hfa
r12df6fe r4520b77e 18 18 int code_val(HttpCode code); 19 19 20 int answer_error( int fd, HttpCode code );21 int answer_plaintext( int fd );22 int answer_empty( int fd );20 // int answer_error( int fd, HttpCode code ); 21 // int answer_plaintext( int fd ); 22 // int answer_empty( int fd ); 23 23 int answer_sendfile( int pipe[2], int fd, int ans_fd, size_t count, struct sendfile_stats_t & ); 24 24 -
benchmark/io/http/socket.cfa
r12df6fe r4520b77e 8 8 #include <sys/socket.h> 9 9 #include <netinet/in.h> 10 #include <netinet/tcp.h> 10 11 } 11 12 … … 33 34 } 34 35 36 int on = 1; 37 const struct linger l = { 1, 0 }; 38 if (setsockopt(sockfd, SOL_SOCKET, SO_LINGER, &l, sizeof(l)) < 0) 39 abort( "setsockopt SO_LINGER error: (%d) %s\n", (int)errno, strerror(errno) ); 40 41 if (setsockopt(sockfd, IPPROTO_TCP, TCP_NODELAY, (const void*)&on, sizeof(on)) < 0) 42 abort( "setsockopt SO_LINGER error: (%d) %s\n", (int)errno, strerror(errno) ); 43 35 44 if(options.socket.reuseport) { 36 int value = 1;37 45 // if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (const void*)&on, sizeof(on))) 38 46 // abort( "setsockopt SO_REUSEADDR error: (%d) %s\n", (int)errno, strerror(errno) ); 39 if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEPORT, & value, sizeof(int)) < 0)47 if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEPORT, &on, sizeof(on)) < 0) 40 48 abort( "setsockopt SO_REUSEPORT error: (%d) %s\n", (int)errno, strerror(errno) ); 41 49 } -
benchmark/io/http/worker.cfa
r12df6fe r4520b77e 14 14 #include "filecache.hfa" 15 15 16 static const unsigned long long period = 5_000_000; 17 16 18 //============================================================================================= 17 19 // Generic connection handling … … 31 33 32 34 // if we are done, break out of the loop 33 if( closed ) break REQUEST; 35 if( closed ) { 36 if( code != OK200 ) this.stats.sendfile.error++; 37 break REQUEST; 38 } 34 39 35 40 // If this wasn't a request retrun 400 36 41 if( code != OK200 ) { 37 sout | "=== Invalid Request :" | code_val(code) | "===";38 answer_error(fd, code);39 continue REQUEST;40 } 41 42 if(0 == strncmp(file, "plaintext", min(name_size, sizeof("plaintext") ))) {43 if( options.log ) mutex(sout) sout | "=== Request for /plaintext ===";44 45 int ret = answer_plaintext(fd);46 if( ret == -ECONNRESET ) break REQUEST;47 48 if( options.log ) mutex(sout) sout | "=== Answer sent ===";49 continue REQUEST;50 }51 52 if(0 == strncmp(file, "ping", min(name_size, sizeof("ping") ))) {53 if( options.log ) mutex(sout) sout | "=== Request for /ping ===";54 55 // Send the header56 int ret = answer_empty(fd);57 if( ret == -ECONNRESET ) break REQUEST;58 59 if( options.log ) mutex(sout) sout | "=== Answer sent ===";60 continue REQUEST;61 }42 abort | "=== Invalid Request :" | code_val(code) | "==="; 43 // answer_error(fd, code); 44 // continue REQUEST; 45 } 46 47 // if(0 == strncmp(file, "plaintext", min(name_size, sizeof("plaintext") ))) { 48 // if( options.log ) mutex(sout) sout | "=== Request for /plaintext ==="; 49 50 // int ret = answer_plaintext(fd); 51 // if( ret == -ECONNRESET ) { this.stats.sendfile.error++; break REQUEST; } 52 53 // if( options.log ) mutex(sout) sout | "=== Answer sent ==="; 54 // continue REQUEST; 55 // } 56 57 // if(0 == strncmp(file, "ping", min(name_size, sizeof("ping") ))) { 58 // if( options.log ) mutex(sout) sout | "=== Request for /ping ==="; 59 60 // // Send the header 61 // int ret = answer_empty(fd); 62 // if( ret == -ECONNRESET ) { this.stats.sendfile.error++; break REQUEST; } 63 64 // if( options.log ) mutex(sout) sout | "=== Answer sent ==="; 65 // continue REQUEST; 66 // } 62 67 63 68 if( options.log ) { … … 68 73 69 74 if( !options.file_cache.path ) { 70 if( options.log ) { 71 sout | "=== File Not Found (" | nonl; 72 write(sout, file, name_size); 73 sout | ") ==="; 74 } 75 answer_error(fd, E405); 76 continue REQUEST; 75 // if( options.log ) { 76 serr | "=== File Not Found (" | nonl; 77 write(serr, file, name_size); 78 serr | ") ==="; 79 abort(); 80 // } 81 // answer_error(fd, E405); 82 // continue REQUEST; 77 83 } 78 84 … … 84 90 // If we can't find the file, return 404 85 91 if( ans_fd < 0 ) { 86 if( options.log ) { 87 sout | "=== File Not Found (" | nonl; 88 write(sout, file, name_size); 89 sout | ") ==="; 90 } 91 answer_error(fd, E404); 92 continue REQUEST; 92 // if( options.log ) { 93 serr | "=== File Not Found 2 (" | nonl; 94 write(serr, file, name_size); 95 serr | ") ==="; 96 abort(); 97 // } 98 // answer_error(fd, E404); 99 // continue REQUEST; 93 100 } 94 101 95 102 // Send the desired file 96 103 int ret = answer_sendfile( this.pipe, fd, ans_fd, count, this.stats.sendfile ); 97 if( ret == -ECONNRESET ) break REQUEST; 104 if(ret < 0) { 105 if( ret == -ECONNABORTED ) { this.stats.sendfile.error++; break REQUEST; } 106 if( ret == -ECONNRESET ) { this.stats.sendfile.error++; break REQUEST; } 107 if( ret == -EPIPE ) { this.stats.sendfile.error++; break REQUEST; } 108 if( ret == -EBADF ) { this.stats.sendfile.error++; break REQUEST; } 109 abort( "answer sendfile error: %d (%d) %s\n", ret, (int)errno, strerror(errno) ); 110 } 98 111 99 112 if( options.log ) mutex(sout) sout | "=== Answer sent ==="; 100 113 } 101 114 115 this.stats.sendfile.close++; 116 102 117 if (stats_thrd) { 103 unsigned long long next = rdtscl();104 if(next > (last + 500000000)) {118 // unsigned long long next = rdtscl(); 119 // if(next > (last + period)) { 105 120 if(try_lock(stats_thrd->stats.lock __cfaabi_dbg_ctx2)) { 106 121 push(this.stats.sendfile, stats_thrd->stats.send); 107 122 unlock(stats_thrd->stats.lock); 108 last = next;109 } 110 }123 // last = next; 124 } 125 // } 111 126 } 112 127 } … … 130 145 if( options.log ) mutex(sout) sout | "=== Accepting connection ==="; 131 146 int fd = cfa_accept4( this.sockfd, this.[addr, addrlen, flags], CFA_IO_LAZY ); 132 if(fd < 0) {147 if(fd <= 0) { 133 148 if( errno == ECONNABORTED ) break; 134 149 if( this.done && (errno == EINVAL || errno == EBADF) ) break; 135 abort( "accept error : (%d) %s\n", (int)errno, strerror(errno) );150 abort( "accept error %d: (%d) %s\n", fd, (int)errno, strerror(errno) ); 136 151 } 137 152 if(this.done) break; 153 154 this.stats.accepts++; 155 if (stats_thrd && try_lock(stats_thrd->stats.lock)) { 156 push(this.stats, stats_thrd->stats.accpt); 157 unlock(stats_thrd->stats.lock); 158 } 138 159 139 160 if( options.log ) mutex(sout) sout | "=== New connection" | fd | "" | ", waiting for requests ==="; … … 141 162 char buffer[len]; 142 163 handle_connection( this.conn, fd, buffer, len, 0p, last ); 164 this.conn.stats.sendfile.maxfd = max(this.conn.stats.sendfile.maxfd, fd); 143 165 144 166 if( options.log ) mutex(sout) sout | "=== Connection closed ==="; … … 162 184 /* paranoid */ assert( this.conn.pipe[0] != -1 ); 163 185 /* paranoid */ assert( this.conn.pipe[1] != -1 ); 186 this.conn.stats.sendfile.maxfd = max(this.conn.pipe[0], this.conn.pipe[1]); 187 // this.conn.stats.sendfile.maxfd = 0; 164 188 for() { 165 189 size_t len = options.socket.buflen; … … 173 197 if( options.log ) mutex(sout) sout | "=== Waiting new connection ==="; 174 198 handle_connection( this.conn, p.out.fd, buffer, len, &p.f, last ); 199 if(this.done) break; 200 this.conn.stats.sendfile.maxfd = max(this.conn.stats.sendfile.maxfd, p.out.fd); 201 this.conn.stats.sendfile.close++; 175 202 176 203 if( options.log ) mutex(sout) sout | "=== Connection closed ==="; 177 if(this.done) break; 178 } 204 } 205 206 lock(stats_thrd->stats.lock __cfaabi_dbg_ctx2); 207 push(this.conn.stats.sendfile, stats_thrd->stats.send); 208 unlock(stats_thrd->stats.lock); 179 209 } 180 210 … … 198 228 199 229 static inline void push_connection( Acceptor & this, int fd ) { 230 this.stats.accepts++; 200 231 PendingRead * p = 0p; 201 232 for() { … … 203 234 p = pop(*this.queue); 204 235 if(p) break; 236 // abort( "Too few threads" ); 205 237 yield(); 206 238 this.stats.creates++; … … 212 244 213 245 // #define ACCEPT_SPIN 214 #define ACCEPT_MANY 246 #define ACCEPT_ONE 247 // #define ACCEPT_MANY 215 248 216 249 void main( Acceptor & this ) { … … 232 265 abort( "accept error: (%d) %s\n", (int)errno, strerror(errno) ); 233 266 } 234 this.stats.accepts++;235 267 236 268 if(this.done) return; … … 242 274 if (stats_thrd) { 243 275 unsigned long long next = rdtscl(); 244 if(next > (last + 500000000)) {276 if(next > (last + period)) { 245 277 if(try_lock(stats_thrd->stats.lock)) { 246 278 push(this.stats, stats_thrd->stats.accpt); … … 249 281 } 250 282 } 283 } 284 285 if( options.log ) sout | "=== Accepting connection ==="; 286 } 287 288 #elif defined(ACCEPT_ONE) 289 if( options.log ) sout | "=== Accepting connection ==="; 290 for() { 291 int fd = cfa_accept4(this.sockfd, this.[addr, addrlen, flags], 0); 292 if(fd < 0) { 293 if( errno == ECONNABORTED ) break; 294 if( this.done && (errno == EINVAL || errno == EBADF) ) break; 295 abort( "accept error: (%d) %s\n", (int)errno, strerror(errno) ); 296 } 297 298 if(this.done) return; 299 300 if( options.log ) sout | "=== New connection" | fd | "" | ", waiting for requests ==="; 301 302 if(fd) push_connection(this, fd); 303 304 if (stats_thrd) { 305 // unsigned long long next = rdtscl(); 306 // if(next > (last + period)) { 307 if(try_lock(stats_thrd->stats.lock)) { 308 push(this.stats, stats_thrd->stats.accpt); 309 unlock(stats_thrd->stats.lock); 310 // last = next; 311 } 312 // } 251 313 } 252 314 … … 269 331 if (stats_thrd) { 270 332 unsigned long long next = rdtscl(); 271 if(next > (last + 500000000)) {333 if(next > (last + period)) { 272 334 if(try_lock(stats_thrd->stats.lock __cfaabi_dbg_ctx2)) { 273 335 push(this.stats, stats_thrd->stats.accpt); … … 284 346 int fd = get_res(res); 285 347 reset(res); 286 this.stats.accepts++;287 348 if(fd < 0) { 288 349 if( errno == ECONNABORTED ) continue; … … 319 380 #error no accept algorithm specified 320 381 #endif 321 } 382 lock(stats_thrd->stats.lock); 383 push(this.stats, stats_thrd->stats.accpt); 384 unlock(stats_thrd->stats.lock); 385 } -
benchmark/io/http/worker.hfa
r12df6fe r4520b77e 34 34 int flags; 35 35 volatile bool done; 36 acceptor_stats_t stats; 36 37 }; 37 38 void ?{}( AcceptWorker & this); -
benchmark/plot.py
r12df6fe r4520b77e 14 14 import math 15 15 import numpy 16 import os 16 17 import re 17 18 import statistics 18 19 import sys 19 20 import time 21 22 import matplotlib 20 23 import matplotlib.pyplot as plt 21 from matplotlib.ticker import EngFormatter 24 from matplotlib.ticker import EngFormatter, ScalarFormatter 25 26 def fmtDur( duration ): 27 if duration : 28 hours, rem = divmod(duration, 3600) 29 minutes, rem = divmod(rem, 60) 30 seconds, millis = divmod(rem, 1) 31 return "%2d:%02d.%03d" % (minutes, seconds, millis * 1000) 32 return " n/a" 22 33 23 34 class Field: 24 def __init__(self, unit, _min, _log, _name=None ):35 def __init__(self, unit, _min, _log, _name=None, _factor=1.0): 25 36 self.unit = unit 26 37 self.min = _min 27 38 self.log = _log 28 39 self.name = _name 40 self.factor = _factor 29 41 30 42 field_names = { 31 43 "ns per ops" : Field('ns' , 0, False), 32 "Number of processors" : Field('' , 1, False),44 "Number of processors" : Field('' , 1, "exact"), 33 45 "Ops per procs" : Field('Ops' , 0, False), 34 46 "Ops per threads" : Field('Ops' , 0, False), 35 "ns per ops/procs" : Field('' , 0, False, _name = "Latency (ns $/$ (Processor $\\times$ Operation))" ),47 "ns per ops/procs" : Field('' , 0, False, _name = "ns $\\times$ (Processor $/$ Total Ops)" ), 36 48 "Number of threads" : Field('' , 1, False), 37 49 "Total Operations(ops)" : Field('Ops' , 0, False), 38 50 "Ops/sec/procs" : Field('Ops' , 0, False), 39 51 "Total blocks" : Field('Blocks', 0, False), 40 "Ops per second" : Field('' , 0, False),52 "Ops per second" : Field('' , 0, False), 41 53 "Cycle size (# thrds)" : Field('thrd' , 1, False), 42 54 "Duration (ms)" : Field('ms' , 0, False), 43 55 "Target QPS" : Field('' , 0, False), 44 56 "Actual QPS" : Field('' , 0, False), 45 "Average Read Latency" : Field('us' , 0, True), 46 "Median Read Latency" : Field('us' , 0, True), 47 "Tail Read Latency" : Field('us' , 0, True), 48 "Average Update Latency": Field('us' , 0, True), 49 "Median Update Latency" : Field('us' , 0, True), 50 "Tail Update Latency" : Field('us' , 0, True), 51 "Update Ratio" : Field('\%' , 0, False), 57 "Average Read Latency" : Field('s' , 0, False, _factor = 0.000001), 58 "Median Read Latency" : Field('s' , 0, True, _factor = 0.000001), 59 "Tail Read Latency" : Field('s' , 0, True, _factor = 0.000001), 60 "Average Update Latency": Field('s' , 0, True, _factor = 0.000001), 61 "Median Update Latency" : Field('s' , 0, True, _factor = 0.000001), 62 "Tail Update Latency" : Field('s' , 0, True, _factor = 0.000001), 63 "Update Ratio" : Field('%' , 0, False), 64 "Request Rate" : Field('req/s' , 0, False), 65 "Data Rate" : Field('b/s' , 0, False, _factor = 1000 * 1000, _name = "Response Throughput"), 66 "Errors" : Field('%' , 0, False), 52 67 } 53 68 54 def plot(in_data, x, y, options ):69 def plot(in_data, x, y, options, prefix): 55 70 fig, ax = plt.subplots() 56 colors = itertools.cycle(['#0095e3','#006cb4','#69df00','#0aa000','#fb0300','#e30002','#fd8f00','#ff7f00','#8f00d6','#4b009a','#ffff00','#b13f00']) 57 series = {} # scatter data for each individual data point 58 groups = {} # data points for x value 71 colors = itertools.cycle(['#006cb4','#0aa000','#ff6600','#8510a1','#0095e3','#fd8f00','#e30002','#8f00d6','#4b009a','#ffff00','#69df00','#fb0300','#b13f00']) 72 markers = itertools.cycle(['x', '+', '1', '2', '3', '4']) 73 series = {} # scatter data for each individual data point 74 groups = {} # data points for x value 59 75 60 76 print("Preparing Data") … … 62 78 for entry in in_data: 63 79 name = entry[0] 80 if options.filter and not name.startswith(options.filter): 81 continue 82 64 83 if not name in series: 65 84 series[name] = {'x':[], 'y':[]} … … 70 89 if x in entry[2] and y in entry[2]: 71 90 xval = entry[2][x] 72 yval = entry[2][y] 91 yval = entry[2][y] * field_names[y].factor 73 92 series[name]['x'].append(xval) 74 93 series[name]['y'].append(yval) … … 98 117 for name, data in sorted(series.items()): 99 118 _col = next(colors) 100 plt.scatter(data['x'], data['y'], color=_col, label=name, marker='x') 101 plt.plot(lines[name]['x'], lines[name]['min'], '--', color=_col) 119 _mrk = next(markers) 120 plt.scatter(data['x'], data['y'], color=_col, label=name[len(prefix):], marker=_mrk) 121 plt.plot(lines[name]['x'], lines[name]['min'], ':', color=_col) 102 122 plt.plot(lines[name]['x'], lines[name]['max'], '--', color=_col) 103 123 plt.plot(lines[name]['x'], lines[name]['med'], '-', color=_col) … … 119 139 elif field_names[x].log: 120 140 ax.set_xscale('log') 141 if field_names[x].log == "exact": 142 xvals = set() 143 for s in series.values(): 144 xvals |= set(s['x']) 145 ax.set_xticks(sorted(xvals)) 146 ax.get_xaxis().set_major_formatter(ScalarFormatter()) 147 plt.xticks(rotation = 45) 121 148 else: 122 149 plt.xlim(field_names[x].min, mx + 0.25) 123 150 124 ax.yaxis.set_major_formatter( EngFormatter(unit=field_names[y].unit) )125 151 if options.logy: 126 152 ax.set_yscale('log') … … 130 156 plt.ylim(field_names[y].min, options.MaxY if options.MaxY else my*1.2) 131 157 158 ax.yaxis.set_major_formatter( EngFormatter(unit=field_names[y].unit) ) 159 132 160 plt.legend(loc='upper left') 133 161 134 162 print("Results Ready") 163 start = time.time() 135 164 if options.out: 136 165 plt.savefig(options.out, bbox_inches='tight') 137 166 else: 138 167 plt.show() 168 end = time.time() 169 print("Took {}".format(fmtDur(end - start))) 139 170 140 171 … … 150 181 parser.add_argument('--logy', action='store_true', help="if set, makes the y-axis logscale") 151 182 parser.add_argument('--MaxY', nargs='?', type=int, help="maximum value of the y-axis") 183 parser.add_argument('--filter', nargs='?', type=str, default="", help="if not empty, only print series that start with specified filter") 152 184 153 185 options = parser.parse_args() 186 187 # if not options.out: 188 # matplotlib.use('SVG') 154 189 155 190 # ================================================================================ … … 173 208 fields.add(label) 174 209 210 # filter out the series if needed 211 if options.filter: 212 series = set(filter(lambda elem: elem.startswith(options.filter), series)) 213 214 # find the common prefix on series for removal (only if no filter) 215 prefix = os.path.commonprefix(list(series)) 216 175 217 if not options.out : 176 218 print(series) … … 193 235 194 236 195 plot(data, wantx, wanty, options )237 plot(data, wantx, wanty, options, prefix) -
benchmark/process-mutilate.py
r12df6fe r4520b77e 109 109 # checking if it is a file 110 110 if os.path.isfile(f): 111 match = re.search("({})\.([0-9]+)\.([0-9]+)".format(names_re), filename) 111 match = re.search("({})\.([0-9]+)\.([0-9]+)\.([0-9]+)".format(names_re), filename) 112 print(filename, match) 112 113 try: 113 series = match[1]114 series = "{}-{}%".format(match[1], match[3]) 114 115 rate = match[2] 115 rep = match[ 3]116 rep = match[4] 116 117 except: 117 118 continue -
benchmark/readyQ/churn.go
r12df6fe r4520b77e 72 72 for i := range spots { 73 73 select { 74 case <- spots[i]: 75 default: 76 } 77 select { 74 78 case spots[i] <- (struct {}{}): 75 79 default: -
benchmark/readyQ/locality.cfa
r12df6fe r4520b77e 273 273 } 274 274 275 setlocale( LC_NUMERIC, getenv( "LANG" ) ); 275 276 printf("Duration (ms) : %'lf\n", (end - start)`dms); 276 277 printf("Number of processors : %'d\n", nprocs); … … 278 279 printf("Total Operations(ops) : %'15llu\n", global_count); 279 280 printf("Work size (64bit words): %'15u\n", wsize); 281 printf("Data sharing : %s\n", share ? "On" : "Off"); 280 282 printf("Total Operations(ops) : %'15llu\n", global_count); 281 283 printf("Total G Migrations : %'15llu\n", global_gmigs); -
benchmark/readyQ/locality.cpp
r12df6fe r4520b77e 283 283 printf("Number of spots : %'d\n", nspots); 284 284 printf("Work size (64bit words): %'15u\n", wsize); 285 printf("Data sharing : %s\n", share ? "On" : "Off"); 285 286 printf("Total Operations(ops) : %'15llu\n", global_count); 286 287 printf("Total G Migrations : %'15llu\n", global_gmigs); -
benchmark/readyQ/locality.go
r12df6fe r4520b77e 286 286 // Print with nice 's, i.e. 1'000'000 instead of 1000000 287 287 p := message.NewPrinter(language.English) 288 p.Printf("Duration (ms) : % f\n", delta.Milliseconds());288 p.Printf("Duration (ms) : %d\n", delta.Milliseconds()); 289 289 p.Printf("Number of processors : %d\n", nprocs); 290 290 p.Printf("Number of threads : %d\n", nthreads); 291 291 p.Printf("Work size (64bit words): %d\n", size); 292 if share { 293 p.Printf("Data sharing : On\n"); 294 } else { 295 p.Printf("Data sharing : Off\n"); 296 } 292 297 p.Printf("Total Operations(ops) : %15d\n", results.count) 293 298 p.Printf("Total G Migrations : %15d\n", results.gmigs) -
benchmark/readyQ/locality.rs
r12df6fe r4520b77e 346 346 println!("Number of threads : {}", (nthreads).to_formatted_string(&Locale::en)); 347 347 println!("Work size (64bit words): {}", (wsize).to_formatted_string(&Locale::en)); 348 println!("Data sharing : {}", if share { "On" } else { "Off" }); 348 349 println!("Total Operations(ops) : {:>15}", (results.count).to_formatted_string(&Locale::en)); 349 350 println!("Total G Migrations : {:>15}", (results.gmigs).to_formatted_string(&Locale::en)); -
benchmark/readyQ/rq_bench.hfa
r12df6fe r4520b77e 1 1 #include <clock.hfa> 2 2 #include <kernel.hfa> 3 #include <locale.h> 3 4 #include <parseargs.hfa> 4 5 #include <stdio.h> -
benchmark/readyQ/transfer.cfa
r12df6fe r4520b77e 179 179 sout | "Threads parking on wait : " | (exhaust ? "yes" : "no"); 180 180 sout | "Rechecking : " | rechecks; 181 sout | " ns per transfer : " | (end - start)`dms / lead_idx;181 sout | "us per transfer : " | (end - start)`dus / lead_idx; 182 182 183 183 -
benchmark/readyQ/transfer.go
r12df6fe r4520b77e 244 244 p.Printf("Threads parking on wait : %s\n", ws) 245 245 p.Printf("Rechecking : %d\n", rechecks ) 246 p.Printf(" ns per transfer : %f\n", float64(delta.Nanoseconds()) / float64(leader.idx) )247 } 246 p.Printf("ms per transfer : %f\n", float64(delta.Milliseconds()) / float64(leader.idx) ) 247 } -
benchmark/rmit.py
r12df6fe r4520b77e 22 22 23 23 def parse_range(x): 24 result = []25 for part in x.split(','):26 if '-' in part:27 a, b = part.split('-')28 a, b = int(a), int(b)29 result.extend(range(a, b + 1))30 else:31 a = int(part)32 result.append(a)33 return result24 result = [] 25 for part in x.split(','): 26 if '-' in part: 27 a, b = part.split('-') 28 a, b = int(a), int(b) 29 result.extend(range(a, b + 1)) 30 else: 31 a = int(part) 32 result.append(a) 33 return result 34 34 35 35 class DependentOpt: … … 184 184 range(145, 193) : "0-95,96-191", 185 185 }, 186 "nasus": { 187 range( 1, 65) : "64-127", 188 range( 65, 129) : "64-127,192-255", 189 range(129, 193) : "64-255", 190 range(193, 257) : "0-255", 191 }, 192 "ocean": { 193 range( 1, 33) : "0-31", 194 }, 186 195 } 187 196 188 if (host := socket.gethostname()) in known_hosts: 197 host = socket.gethostname() 198 if host in known_hosts: 189 199 taskset_maps = known_hosts[host] 190 200 return True … … 223 233 parser.add_argument('--trials', help='Number of trials to run per combinaison', type=int, default=3) 224 234 parser.add_argument('--notaskset', help='If specified, the trial will not use taskset to match the -p option', action='store_true') 235 parser.add_argument('--extra', help='Extra arguments to be added unconditionally', action='append', type=str) 225 236 parser.add_argument('command', metavar='command', type=str, nargs=1, help='the command prefix to run') 226 237 parser.add_argument('candidates', metavar='candidates', type=str, nargs='*', help='the candidate suffix to run') … … 277 288 # ================================================================================ 278 289 # Fixup the different commands 290 291 # add extras 292 if options.extra: 293 for act in actions: 294 for e in options.extra: 295 act.append(e) 279 296 280 297 # Add tasksets -
configure.ac
r12df6fe r4520b77e 24 24 #Trasforming cc1 will break compilation 25 25 M4CFA_PROGRAM_NAME 26 27 #==============================================================================28 # New AST toggling support29 AH_TEMPLATE([CFA_USE_NEW_AST],[Sets whether or not to use the new-ast, this is adefault value and can be overrided by --old-ast and --new-ast])30 DEFAULT_NEW_AST="True"31 AC_ARG_ENABLE(new-ast,32 [ --enable-new-ast whether or not to use new ast as the default AST algorithm],33 [case "${enableval}" in34 yes) newast=true ; DEFAULT_NEW_AST="True" ;;35 no) newast=false; DEFAULT_NEW_AST="False" ;;36 *) AC_MSG_ERROR([bad value ${enableval} for --enable-new-ast]) ;;37 esac],[newast=true])38 AC_DEFINE_UNQUOTED([CFA_USE_NEW_AST], $newast)39 AC_SUBST(DEFAULT_NEW_AST)40 26 41 27 #============================================================================== … … 139 125 \'--enable-gprofiler=*) ;; 140 126 \'--disable-gprofiler) ;; 141 142 # skip the target hosts143 \'--enable-new-ast=*) ;;144 \'--disable-new-ast) ;;145 127 146 128 # skip this, it only causes problems -
doc/LaTeXmacros/lstlang.sty
r12df6fe r4520b77e 118 118 inline, __inline, __inline__, __int128, int128, __label__, monitor, mutex, _Noreturn, one_t, or, 119 119 otype, restrict, __restrict, __restrict__, recover, report, __signed, __signed__, _Static_assert, suspend, 120 thread, _ Thread_local, throw, throwResume, timeout, trait, try, ttype, typeof, __typeof, __typeof__,120 thread, __thread, _Thread_local, throw, throwResume, timeout, trait, try, ttype, typeof, __typeof, __typeof__, 121 121 virtual, __volatile, __volatile__, waitfor, when, with, zero_t, 122 122 }, -
doc/bibliography/pl.bib
r12df6fe r4520b77e 3757 3757 series = {Innovative Technology}, 3758 3758 year = 1991, 3759 } 3760 3761 @mastersthesis{Zulfiqar22, 3762 keywords = {Cforall, memory allocation, threading}, 3763 contributer = {pabuhr@plg}, 3764 author = {Mubeen Zulfiqar}, 3765 title = {High-Performance Concurrent Memory Allocation}, 3766 school = {School of Computer Science, University of Waterloo}, 3767 year = 2022, 3768 address = {Waterloo, Ontario, Canada, N2L 3G1}, 3769 note = {\href{https://uwspace.uwaterloo.ca/handle/10012/18329}{https://\-uwspace.uwaterloo.ca/\-handle/\-10012/18329}}, 3759 3770 } 3760 3771 … … 7837 7848 } 7838 7849 7850 @misc{Tokio, 7851 contributer = {pabuhr@plg}, 7852 key = {Tokio}, 7853 title = {{T}okio Asynchronous Runtime for {R}ust}, 7854 author = {Tokio}, 7855 howpublished= {\href{https://tokio.rs}{https://\-tokio.rs}}, 7856 } 7857 7839 7858 @misc{Bumbulis90, 7840 7859 keywords = {parameter inference, ForceN}, … … 8152 8171 doi = {10.1145/3379483}, 8153 8172 journal = {Proc. ACM Meas. Anal. Comput. Syst.}, 8154 month = mar,8173 month = jun, 8155 8174 numpages = {30}, 8156 8175 } -
doc/theses/thierry_delisle_PhD/.gitignore
r12df6fe r4520b77e 20 20 thesis/fig/*.fig.bak 21 21 thesis/thesis.pdf 22 thesis/thesis.tty 22 23 thesis/thesis.ps 23 24 -
doc/theses/thierry_delisle_PhD/thesis/Makefile
r12df6fe r4520b77e 11 11 LaTeX = TEXINPUTS=${TeXLIB} && export TEXINPUTS && latex -halt-on-error -output-directory=${Build} 12 12 BibTeX = BIBINPUTS=${TeXLIB} && export BIBINPUTS && bibtex 13 DeTeX = TEXINPUTS=${TeXLIB} && export TEXINPUTS && detex -r 13 14 14 15 MAKEFLAGS = --no-print-directory # --silent … … 26 27 eval_micro \ 27 28 eval_macro \ 29 conclusion \ 28 30 }} 29 31 30 FIGURES = ${addsuffix .tex, \ 31 } 32 33 PICTURES = ${addsuffix .pstex, \ 34 base \ 32 FIGURES = base \ 35 33 base_avg \ 36 34 base_ts2 \ … … 54 52 cycle \ 55 53 result.cycle.jax.ops \ 54 result.cycle.nasus.ops \ 56 55 result.yield.jax.ops \ 56 result.yield.nasus.ops \ 57 57 result.churn.jax.ops \ 58 result.churn.nasus.ops \ 59 result.locality.share.jax.ops \ 60 result.locality.share.nasus.ops \ 61 result.locality.noshare.jax.ops \ 62 result.locality.noshare.nasus.ops \ 58 63 result.cycle.jax.ns \ 64 result.cycle.nasus.ns \ 59 65 result.yield.jax.ns \ 66 result.yield.nasus.ns \ 60 67 result.churn.jax.ns \ 68 result.churn.nasus.ns \ 69 result.locality.share.jax.ns \ 70 result.locality.share.nasus.ns \ 71 result.locality.noshare.jax.ns \ 72 result.locality.noshare.nasus.ns \ 61 73 result.cycle.low.jax.ops \ 74 result.cycle.low.nasus.ops \ 62 75 result.yield.low.jax.ops \ 76 result.yield.low.nasus.ops \ 63 77 result.churn.low.jax.ops \ 78 result.churn.low.nasus.ops \ 64 79 result.cycle.low.jax.ns \ 80 result.cycle.low.nasus.ns \ 65 81 result.yield.low.jax.ns \ 82 result.yield.low.nasus.ns \ 66 83 result.churn.low.jax.ns \ 67 result.memcd.updt.qps \ 68 result.memcd.updt.lat \ 84 result.churn.low.nasus.ns \ 69 85 result.memcd.rate.qps \ 70 86 result.memcd.rate.99th \ 71 SQMS \ 72 } 87 result.memcd.forall.qps \ 88 result.memcd.forall.lat \ 89 result.memcd.fibre.qps \ 90 result.memcd.fibre.lat \ 91 result.memcd.vanilla.qps \ 92 result.memcd.vanilla.lat \ 93 result.swbsrv.25gb \ 94 result.swbsrv.25gb.err \ 95 SQMS 96 97 PICTURES = ${addsuffix .pstex, ${FIGURES} } 73 98 74 99 PROGRAMS = ${addsuffix .tex, \ … … 80 105 ## Define the documents that need to be made. 81 106 all: thesis.pdf 82 thesis.pdf: ${TEXTS} ${FIGURES} ${PICTURES} thesis.tex glossary.tex local.bib ${LaTMac}/common.tex ${LaTMac}/common.sty ${BibRep}/pl.bib107 build/thesis.dvi: ${TEXTS} ${PICTURES} thesis.tex glossary.tex local.bib ${LaTMac}/common.tex ${LaTMac}/common.sty ${BibRep}/pl.bib 83 108 84 109 DOCUMENT = thesis.pdf … … 120 145 ${LaTeX} $< 121 146 147 %.tty: build/%.dvi 148 dvi2tty -w132 $< > $@ 149 122 150 ## Define the default recipes. 123 151 … … 144 172 python3 $< $@ 145 173 146 cycle_jax_ops_FLAGS = --MaxY=120000000 147 cycle_low_jax_ops_FLAGS = --MaxY=120000000 148 cycle_jax_ns_FLAGS = --MaxY=2000 149 cycle_low_jax_ns_FLAGS = --MaxY=2000 150 151 yield_jax_ops_FLAGS = --MaxY=150000000 152 yield_low_jax_ops_FLAGS = --MaxY=150000000 153 yield_jax_ns_FLAGS = --MaxY=1500 154 yield_low_jax_ns_FLAGS = --MaxY=1500 155 156 build/result.%.ns.svg : data/% Makefile | ${Build} 174 cycle_jax_ops_FLAGS = --MaxY=500000000 175 cycle_low_jax_ops_FLAGS = --MaxY=500000000 176 cycle_jax_ns_FLAGS = --MaxY=4000 177 cycle_low_jax_ns_FLAGS = --MaxY=4000 178 179 cycle_nasus_ops_FLAGS = --MaxY=1250000000 180 cycle_low_nasus_ops_FLAGS = --MaxY=1250000000 181 cycle_nasus_ns_FLAGS = --MaxY=1500 182 cycle_low_nasus_ns_FLAGS = --MaxY=1500 183 184 yield_jax_ops_FLAGS = --MaxY=1000000000 185 yield_low_jax_ops_FLAGS = --MaxY=1000000000 186 yield_jax_ns_FLAGS = --MaxY=4000 187 yield_low_jax_ns_FLAGS = --MaxY=4000 188 189 yield_nasus_ops_FLAGS = --MaxY=1500000000 190 yield_low_nasus_ops_FLAGS = --MaxY=1500000000 191 yield_nasus_ns_FLAGS = --MaxY=1500 192 yield_low_nasus_ns_FLAGS = --MaxY=1500 193 194 churn_jax_ops_FLAGS = --MaxY=50000000 195 churn_low_jax_ops_FLAGS = --MaxY=50000000 196 churn_jax_ns_FLAGS = --MaxY=10000 197 churn_low_jax_ns_FLAGS = --MaxY=10000 198 199 churn_nasus_ops_FLAGS = --MaxY=75000000 200 churn_low_nasus_ops_FLAGS = --MaxY=75000000 201 churn_nasus_ns_FLAGS = --MaxY=5000 202 churn_low_nasus_ns_FLAGS = --MaxY=5000 203 204 locality_share_jax_ops_FLAGS = --MaxY=40000000 205 locality_noshare_jax_ops_FLAGS = --MaxY=40000000 206 locality_share_jax_ns_FLAGS = --MaxY=10000 207 locality_noshare_jax_ns_FLAGS = --MaxY=10000 208 209 locality_share_nasus_ops_FLAGS = --MaxY=60000000 210 locality_noshare_nasus_ops_FLAGS = --MaxY=60000000 211 locality_share_nasus_ns_FLAGS = --MaxY=10000 212 locality_noshare_nasus_ns_FLAGS = --MaxY=10000 213 214 build/result.%.ns.svg : data/% Makefile ../../../../benchmark/plot.py | ${Build} 157 215 ../../../../benchmark/plot.py -f $< -o $@ -y "ns per ops/procs" $($(subst .,_,$*)_ns_FLAGS) 158 216 159 build/result.%.ops.svg : data/% Makefile | ${Build}217 build/result.%.ops.svg : data/% Makefile ../../../../benchmark/plot.py | ${Build} 160 218 ../../../../benchmark/plot.py -f $< -o $@ -y "Ops per second" $($(subst .,_,$*)_ops_FLAGS) 161 219 162 build/result.memcd.updt.qps.svg : data/memcd.updt Makefile | ${Build} 163 ../../../../benchmark/plot.py -f $< -o $@ -y "Actual QPS" -x "Update Ratio" 164 165 build/result.memcd.updt.lat.svg : data/memcd.updt Makefile | ${Build} 166 ../../../../benchmark/plot.py -f $< -o $@ -y "Average Read Latency" -x "Update Ratio" 167 168 build/result.memcd.rate.qps.svg : data/memcd.rate Makefile | ${Build} 169 ../../../../benchmark/plot.py -f $< -o $@ -y "Actual QPS" -x "Target QPS" 170 171 build/result.memcd.rate.99th.svg : data/memcd.rate Makefile | ${Build} 220 build/result.memcd.rate.qps.svg : data/memcd.rate Makefile ../../../../benchmark/plot.py | ${Build} 221 ../../../../benchmark/plot.py -f $< -o $@ -y "Actual QPS" -x "Target QPS" --MaxY=750000 222 223 build/result.memcd.rate.99th.svg : data/memcd.rate Makefile ../../../../benchmark/plot.py | ${Build} 172 224 ../../../../benchmark/plot.py -f $< -o $@ -y "Tail Read Latency" -x "Target QPS" 225 226 build/result.memcd.forall.qps.svg : data/memcd.updt Makefile ../../../../benchmark/plot.py | ${Build} 227 ../../../../benchmark/plot.py -f $< -o $@ -y "Actual QPS" -x "Target QPS" --filter forall --MaxY=700000 228 229 build/result.memcd.forall.lat.svg : data/memcd.updt Makefile ../../../../benchmark/plot.py | ${Build} 230 ../../../../benchmark/plot.py -f $< -o $@ -y "Tail Read Latency" -x "Target QPS" --filter forall --MaxY=1 231 232 build/result.memcd.vanilla.qps.svg : data/memcd.updt Makefile ../../../../benchmark/plot.py | ${Build} 233 ../../../../benchmark/plot.py -f $< -o $@ -y "Actual QPS" -x "Target QPS" --filter vanilla --MaxY=700000 234 235 build/result.memcd.vanilla.lat.svg : data/memcd.updt Makefile ../../../../benchmark/plot.py | ${Build} 236 ../../../../benchmark/plot.py -f $< -o $@ -y "Tail Read Latency" -x "Target QPS" --filter vanilla --MaxY=1 237 238 build/result.memcd.fibre.qps.svg : data/memcd.updt Makefile ../../../../benchmark/plot.py | ${Build} 239 ../../../../benchmark/plot.py -f $< -o $@ -y "Actual QPS" -x "Target QPS" --filter fibre --MaxY=700000 240 241 build/result.memcd.fibre.lat.svg : data/memcd.updt Makefile ../../../../benchmark/plot.py | ${Build} 242 ../../../../benchmark/plot.py -f $< -o $@ -y "Tail Read Latency" -x "Target QPS" --filter fibre --MaxY=1 243 244 build/swbsrv.% : data/swbsrv.%.nginx data/swbsrv.%.cfa Makefile ../../../../benchmark/process-trun.py | ${Build} 245 ../../../../benchmark/process-trun.py --out $@ $^ 246 247 build/result.swbsrv.%.svg : build/swbsrv.% Makefile ../../../../benchmark/plot.py | ${Build} 248 ../../../../benchmark/plot.py -f $< -o $@ -y "Data Rate" -x "Request Rate" 249 250 build/result.swbsrv.%.err.svg : build/swbsrv.% Makefile ../../../../benchmark/plot.py | ${Build} 251 ../../../../benchmark/plot.py -f $< -o $@ -y "Errors" -x "Request Rate" 173 252 174 253 ## pstex with inverted colors -
doc/theses/thierry_delisle_PhD/thesis/data/churn.jax
r12df6fe r4520b77e 1 [["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 10 -t 100 -s 80", {"Duration (ms)": 10016.628354, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 80.0, "Total Operations(ops)": 103371393.0, "Total blocks": 42643001.0, "Ops per second": 10319978.87, "ns per ops": 96.9, "Ops per threads": 1033713.0, "Ops per procs": 103371393.0, "Ops/sec/procs": 10319978.87, "ns per ops/procs": 96.9}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 10 -t 800 -s 640", {"Duration (ms)": 10100.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 256473373.0, "Ops per second": 25647337.0, "ns per ops": 39.0, "Ops per threads": 320591.0, "Ops per procs": 32059171.0, "Ops/sec/procs": 3205917.0, "ns per ops/procs": 315.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 10 -t 1600 -s 1280", {"Duration (ms)": 10017.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 1280.0, "Total Operations(ops)": 76683227.0, "Total blocks": 27590624.0, "Ops per second": 7655096.57, "ns per ops": 130.63, "Ops per threads": 47927.0, "Ops per procs": 4792701.0, "Ops/sec/procs": 478443.54, "ns per ops/procs": 2090.11}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 10 -t 2400 -s 1920", {"Duration (ms)": 10001.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 1920.0, "Total Operations(ops)": 190480943.0, "Ops per second": 19045032.48, "ns per ops": 52.51, "Ops per threads": 79367.0, "Ops per procs": 7936705.0, "Ops/sec/procs": 793543.02, "ns per ops/procs": 1260.17}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 10 -t 1600 -s 1280", {"Duration (ms)": 10016.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 1280.0, "Total Operations(ops)": 76380433.0, "Total blocks": 27484490.0, "Ops per second": 7625307.92, "ns per ops": 131.14, "Ops per threads": 47737.0, "Ops per procs": 4773777.0, "Ops/sec/procs": 476581.75, "ns per ops/procs": 2098.28}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 10 -t 100 -s 80", {"Duration (ms)": 10099.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 73903563.0, "Ops per second": 7390356.0, "ns per ops": 136.0, "Ops per threads": 739035.0, "Ops per procs": 73903563.0, "Ops/sec/procs": 7390356.0, "ns per ops/procs": 136.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 10 -t 1600 -s 1280", {"Duration (ms)": 10000.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 469714305.0, "Ops per second": 46971430.0, "ns per ops": 21.0, "Ops per threads": 293571.0, "Ops per procs": 29357144.0, "Ops/sec/procs": 2935714.0, "ns per ops/procs": 340.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 10 -t 2400 -s 1920", {"Duration (ms)": 10001.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 653514397.0, "Ops per second": 65351439.0, "ns per ops": 15.0, "Ops per threads": 272297.0, "Ops per procs": 27229766.0, "Ops/sec/procs": 2722976.0, "ns per ops/procs": 367.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 10 -t 1600 -s 1280", {"Duration (ms)": 10001.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 1280.0, "Total Operations(ops)": 213476978.0, "Ops per second": 21344951.67, "ns per ops": 46.85, "Ops per threads": 133423.0, "Ops per procs": 13342311.0, "Ops/sec/procs": 1334059.48, "ns per ops/procs": 749.59}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 10 -t 1600 -s 1280", {"Duration (ms)": 10001.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 1280.0, "Total Operations(ops)": 214624132.0, "Ops per second": 21458252.32, "ns per ops": 46.6, "Ops per threads": 134140.0, "Ops per procs": 13414008.0, "Ops/sec/procs": 1341140.77, "ns per ops/procs": 745.63}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 10 -t 1600 -s 1280", {"Duration (ms)": 10025.783632, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 1280.0, "Total Operations(ops)": 550743553.0, "Total blocks": 240452132.0, "Ops per second": 54932718.8, "ns per ops": 18.2, "Ops per threads": 344214.0, "Ops per procs": 34421472.0, "Ops/sec/procs": 3433294.92, "ns per ops/procs": 291.27}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 10 -t 2400 -s 1920", {"Duration (ms)": 10026.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 1920.0, "Total Operations(ops)": 75322787.0, "Total blocks": 28388443.0, "Ops per second": 7512321.69, "ns per ops": 133.11, "Ops per threads": 31384.0, "Ops per procs": 3138449.0, "Ops/sec/procs": 313013.4, "ns per ops/procs": 3194.75}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 10 -t 100 -s 80", {"Duration (ms)": 10008.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 80.0, "Total Operations(ops)": 79715530.0, "Total blocks": 24912815.0, "Ops per second": 7964937.17, "ns per ops": 125.55, "Ops per threads": 797155.0, "Ops per procs": 79715530.0, "Ops/sec/procs": 7964937.17, "ns per ops/procs": 125.55}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 10 -t 100 -s 80", {"Duration (ms)": 10007.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 80.0, "Total Operations(ops)": 79751618.0, "Total blocks": 24924094.0, "Ops per second": 7968946.78, "ns per ops": 125.49, "Ops per threads": 797516.0, "Ops per procs": 79751618.0, "Ops/sec/procs": 7968946.78, "ns per ops/procs": 125.49}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 10 -t 100 -s 80", {"Duration (ms)": 10016.627702, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 80.0, "Total Operations(ops)": 100444522.0, "Total blocks": 42678977.0, "Ops per second": 10027778.31, "ns per ops": 99.72, "Ops per threads": 1004445.0, "Ops per procs": 100444522.0, "Ops/sec/procs": 10027778.31, "ns per ops/procs": 99.72}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 10 -t 2400 -s 1920", {"Duration (ms)": 10006.863438, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 1920.0, "Total Operations(ops)": 761548918.0, "Total blocks": 327474630.0, "Ops per second": 76102659.21, "ns per ops": 13.14, "Ops per threads": 317312.0, "Ops per procs": 31731204.0, "Ops/sec/procs": 3170944.13, "ns per ops/procs": 315.36}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 10 -t 1600 -s 1280", {"Duration (ms)": 10024.630415, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 1280.0, "Total Operations(ops)": 549456394.0, "Total blocks": 238577198.0, "Ops per second": 54810638.52, "ns per ops": 18.24, "Ops per threads": 343410.0, "Ops per procs": 34341024.0, "Ops/sec/procs": 3425664.91, "ns per ops/procs": 291.91}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 10 -t 2400 -s 1920", {"Duration (ms)": 10000.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 653669226.0, "Ops per second": 65366922.0, "ns per ops": 15.0, "Ops per threads": 272362.0, "Ops per procs": 27236217.0, "Ops/sec/procs": 2723621.0, "ns per ops/procs": 367.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 10 -t 1600 -s 1280", {"Duration (ms)": 10000.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 478747005.0, "Ops per second": 47874700.0, "ns per ops": 20.0, "Ops per threads": 299216.0, "Ops per procs": 29921687.0, "Ops/sec/procs": 2992168.0, "ns per ops/procs": 334.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 10 -t 800 -s 640", {"Duration (ms)": 10100.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 259926863.0, "Ops per second": 25992686.0, "ns per ops": 38.0, "Ops per threads": 324908.0, "Ops per procs": 32490857.0, "Ops/sec/procs": 3249085.0, "ns per ops/procs": 310.0}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 10 -t 2400 -s 1920", {"Duration (ms)": 10002.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 1920.0, "Total Operations(ops)": 186159297.0, "Ops per second": 18611771.03, "ns per ops": 53.73, "Ops per threads": 77566.0, "Ops per procs": 7756637.0, "Ops/sec/procs": 775490.46, "ns per ops/procs": 1289.51}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 10 -t 100 -s 80", {"Duration (ms)": 10007.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 80.0, "Total Operations(ops)": 79811057.0, "Total blocks": 24942609.0, "Ops per second": 7974829.0, "ns per ops": 125.39, "Ops per threads": 798110.0, "Ops per procs": 79811057.0, "Ops/sec/procs": 7974829.0, "ns per ops/procs": 125.39}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 10 -t 2400 -s 1920", {"Duration (ms)": 10041.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 1920.0, "Total Operations(ops)": 75138224.0, "Total blocks": 28316320.0, "Ops per second": 7483121.08, "ns per ops": 133.63, "Ops per threads": 31307.0, "Ops per procs": 3130759.0, "Ops/sec/procs": 311796.71, "ns per ops/procs": 3207.22}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 10 -t 1600 -s 1280", {"Duration (ms)": 10024.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 1280.0, "Total Operations(ops)": 76515053.0, "Total blocks": 27532672.0, "Ops per second": 7632511.21, "ns per ops": 131.02, "Ops per threads": 47821.0, "Ops per procs": 4782190.0, "Ops/sec/procs": 477031.95, "ns per ops/procs": 2096.3}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 10 -t 2400 -s 1920", {"Duration (ms)": 10026.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 1920.0, "Total Operations(ops)": 75360901.0, "Total blocks": 28401609.0, "Ops per second": 7515905.66, "ns per ops": 133.05, "Ops per threads": 31400.0, "Ops per procs": 3140037.0, "Ops/sec/procs": 313162.74, "ns per ops/procs": 3193.23}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 10 -t 100 -s 80", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 80.0, "Total Operations(ops)": 151314962.0, "Ops per second": 15129984.81, "ns per ops": 66.09, "Ops per threads": 1513149.0, "Ops per procs": 151314962.0, "Ops/sec/procs": 15129984.81, "ns per ops/procs": 66.09}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 10 -t 800 -s 640", {"Duration (ms)": 10011.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 640.0, "Total Operations(ops)": 79141078.0, "Total blocks": 29863613.0, "Ops per second": 7904875.43, "ns per ops": 126.5, "Ops per threads": 98926.0, "Ops per procs": 9892634.0, "Ops/sec/procs": 988109.43, "ns per ops/procs": 1012.03}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 10 -t 2400 -s 1920", {"Duration (ms)": 10001.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 1920.0, "Total Operations(ops)": 188556624.0, "Ops per second": 18852533.83, "ns per ops": 53.04, "Ops per threads": 78565.0, "Ops per procs": 7856526.0, "Ops/sec/procs": 785522.24, "ns per ops/procs": 1273.04}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 10 -t 800 -s 640", {"Duration (ms)": 10001.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 640.0, "Total Operations(ops)": 228229792.0, "Ops per second": 22820542.67, "ns per ops": 43.82, "Ops per threads": 285287.0, "Ops per procs": 28528724.0, "Ops/sec/procs": 2852567.83, "ns per ops/procs": 350.56}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 10 -t 800 -s 640", {"Duration (ms)": 10020.121849, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 640.0, "Total Operations(ops)": 302307497.0, "Total blocks": 128429554.0, "Ops per second": 30170042.0, "ns per ops": 33.15, "Ops per threads": 377884.0, "Ops per procs": 37788437.0, "Ops/sec/procs": 3771255.25, "ns per ops/procs": 265.16}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 10 -t 800 -s 640", {"Duration (ms)": 10001.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 640.0, "Total Operations(ops)": 226161389.0, "Ops per second": 22613570.5, "ns per ops": 44.22, "Ops per threads": 282701.0, "Ops per procs": 28270173.0, "Ops/sec/procs": 2826696.31, "ns per ops/procs": 353.77}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 10 -t 800 -s 640", {"Duration (ms)": 10017.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 640.0, "Total Operations(ops)": 78799007.0, "Total blocks": 29733108.0, "Ops per second": 7865960.45, "ns per ops": 127.13, "Ops per threads": 98498.0, "Ops per procs": 9849875.0, "Ops/sec/procs": 983245.06, "ns per ops/procs": 1017.04}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 10 -t 800 -s 640", {"Duration (ms)": 10005.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 640.0, "Total Operations(ops)": 226114608.0, "Ops per second": 22598888.16, "ns per ops": 44.25, "Ops per threads": 282643.0, "Ops per procs": 28264326.0, "Ops/sec/procs": 2824861.02, "ns per ops/procs": 354.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 10 -t 800 -s 640", {"Duration (ms)": 10019.343306, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 640.0, "Total Operations(ops)": 291933237.0, "Total blocks": 129498687.0, "Ops per second": 29136963.18, "ns per ops": 34.32, "Ops per threads": 364916.0, "Ops per procs": 36491654.0, "Ops/sec/procs": 3642120.4, "ns per ops/procs": 274.57}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 10 -t 800 -s 640", {"Duration (ms)": 10100.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 260279998.0, "Ops per second": 26027999.0, "ns per ops": 38.0, "Ops per threads": 325349.0, "Ops per procs": 32534999.0, "Ops/sec/procs": 3253499.0, "ns per ops/procs": 310.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 10 -t 2400 -s 1920", {"Duration (ms)": 10007.059222, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 1920.0, "Total Operations(ops)": 765662737.0, "Total blocks": 325286764.0, "Ops per second": 76512262.0, "ns per ops": 13.07, "Ops per threads": 319026.0, "Ops per procs": 31902614.0, "Ops/sec/procs": 3188010.92, "ns per ops/procs": 313.68}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 10 -t 100 -s 80", {"Duration (ms)": 10016.849943, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 80.0, "Total Operations(ops)": 96124027.0, "Total blocks": 44464161.0, "Ops per second": 9596233.1, "ns per ops": 104.21, "Ops per threads": 961240.0, "Ops per procs": 96124027.0, "Ops/sec/procs": 9596233.1, "ns per ops/procs": 104.21}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 10 -t 100 -s 80", {"Duration (ms)": 10099.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 74842673.0, "Ops per second": 7484267.0, "ns per ops": 134.0, "Ops per threads": 748426.0, "Ops per procs": 74842673.0, "Ops/sec/procs": 7484267.0, "ns per ops/procs": 134.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 10 -t 800 -s 640", {"Duration (ms)": 10016.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 640.0, "Total Operations(ops)": 80963737.0, "Total blocks": 30553569.0, "Ops per second": 8082674.95, "ns per ops": 123.72, "Ops per threads": 101204.0, "Ops per procs": 10120467.0, "Ops/sec/procs": 1010334.37, "ns per ops/procs": 989.77}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 10 -t 100 -s 80", {"Duration (ms)": 10099.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 73702204.0, "Ops per second": 7370220.0, "ns per ops": 137.0, "Ops per threads": 737022.0, "Ops per procs": 73702204.0, "Ops/sec/procs": 7370220.0, "ns per ops/procs": 137.0}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 10 -t 100 -s 80", {"Duration (ms)": 10001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 80.0, "Total Operations(ops)": 151011982.0, "Ops per second": 15099599.79, "ns per ops": 66.23, "Ops per threads": 1510119.0, "Ops per procs": 151011982.0, "Ops/sec/procs": 15099599.79, "ns per ops/procs": 66.23}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 10 -t 100 -s 80", {"Duration (ms)": 10001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 80.0, "Total Operations(ops)": 151419332.0, "Ops per second": 15140359.92, "ns per ops": 66.05, "Ops per threads": 1514193.0, "Ops per procs": 151419332.0, "Ops/sec/procs": 15140359.92, "ns per ops/procs": 66.05}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 10 -t 2400 -s 1920", {"Duration (ms)": 10001.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 648186982.0, "Ops per second": 64818698.0, "ns per ops": 15.0, "Ops per threads": 270077.0, "Ops per procs": 27007790.0, "Ops/sec/procs": 2700779.0, "ns per ops/procs": 370.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 10 -t 1600 -s 1280", {"Duration (ms)": 10001.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 1280.0, "Total Operations(ops)": 213886424.0, "Ops per second": 21385699.62, "ns per ops": 46.76, "Ops per threads": 133679.0, "Ops per procs": 13367901.0, "Ops/sec/procs": 1336606.23, "ns per ops/procs": 748.16}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 10 -t 1600 -s 1280", {"Duration (ms)": 10025.525505, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 1280.0, "Total Operations(ops)": 552853400.0, "Total blocks": 239647709.0, "Ops per second": 55144580.67, "ns per ops": 18.13, "Ops per threads": 345533.0, "Ops per procs": 34553337.0, "Ops/sec/procs": 3446536.29, "ns per ops/procs": 290.15}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 10 -t 800 -s 640", {"Duration (ms)": 10020.252098, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 640.0, "Total Operations(ops)": 295438407.0, "Total blocks": 128292778.0, "Ops per second": 29484129.15, "ns per ops": 33.92, "Ops per threads": 369298.0, "Ops per procs": 36929800.0, "Ops/sec/procs": 3685516.14, "ns per ops/procs": 271.33}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 10 -t 1600 -s 1280", {"Duration (ms)": 10000.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 476585040.0, "Ops per second": 47658504.0, "ns per ops": 20.0, "Ops per threads": 297865.0, "Ops per procs": 29786565.0, "Ops/sec/procs": 2978656.0, "ns per ops/procs": 335.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 10 -t 2400 -s 1920", {"Duration (ms)": 10007.127025, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 1920.0, "Total Operations(ops)": 777392421.0, "Total blocks": 323387255.0, "Ops per second": 77683876.61, "ns per ops": 12.87, "Ops per threads": 323913.0, "Ops per procs": 32391350.0, "Ops/sec/procs": 3236828.19, "ns per ops/procs": 308.94}]]1 [["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30075.868301, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 289469263.0, "Total blocks": 99682524.0, "Ops per second": 9624635.28, "ns per ops": 103.9, "Ops per threads": 180918.0, "Ops per procs": 18091828.0, "Ops/sec/procs": 601539.7, "ns per ops/procs": 1662.4}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30046.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 403404059.0, "Total blocks": 211351282.0, "Ops per second": 13425814.66, "ns per ops": 74.48, "Ops per threads": 56028.0, "Ops per procs": 5602834.0, "Ops/sec/procs": 186469.65, "ns per ops/procs": 5362.8}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30049.411121, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1107942830.0, "Total blocks": 2274803.0, "Ops per second": 36870700.25, "ns per ops": 27.12, "Ops per threads": 11079428.0, "Ops per procs": 1107942830.0, "Ops/sec/procs": 36870700.25, "ns per ops/procs": 27.12}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30034.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 135875512.0, "Ops per second": 4523993.62, "ns per ops": 221.04, "Ops per threads": 169844.0, "Ops per procs": 16984439.0, "Ops/sec/procs": 565499.2, "ns per ops/procs": 1768.35}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30018.838212, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 554451137.0, "Total blocks": 217588854.0, "Ops per second": 18470106.44, "ns per ops": 54.14, "Ops per threads": 38503.0, "Ops per procs": 3850355.0, "Ops/sec/procs": 128264.63, "ns per ops/procs": 7796.38}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30050.100322, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 446584650.0, "Total blocks": 3589341.0, "Ops per second": 14861336.41, "ns per ops": 67.29, "Ops per threads": 2232923.0, "Ops per procs": 223292325.0, "Ops/sec/procs": 7430668.2, "ns per ops/procs": 134.58}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30065.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 165334540.0, "Ops per second": 5511151.0, "ns per ops": 181.0, "Ops per threads": 413336.0, "Ops per procs": 41333635.0, "Ops/sec/procs": 1377787.0, "ns per ops/procs": 727.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30067.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 85108311.0, "Total blocks": 42555241.0, "Ops per second": 2830560.64, "ns per ops": 353.29, "Ops per threads": 425541.0, "Ops per procs": 42554155.0, "Ops/sec/procs": 1415280.32, "ns per ops/procs": 706.57}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 135695877.0, "Ops per second": 4522969.22, "ns per ops": 221.09, "Ops per threads": 1356958.0, "Ops per procs": 135695877.0, "Ops/sec/procs": 4522969.22, "ns per ops/procs": 221.09}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.007864, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 460189920.0, "Total blocks": 6818419.0, "Ops per second": 15313626.82, "ns per ops": 65.3, "Ops per threads": 2300949.0, "Ops per procs": 230094960.0, "Ops/sec/procs": 7656813.41, "ns per ops/procs": 130.6}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30037.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 352510510.0, "Total blocks": 188865198.0, "Ops per second": 11735491.3, "ns per ops": 85.21, "Ops per threads": 146879.0, "Ops per procs": 14687937.0, "Ops/sec/procs": 488978.8, "ns per ops/procs": 2045.08}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.404585, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 420642103.0, "Total blocks": 4555781.0, "Ops per second": 13997419.05, "ns per ops": 71.44, "Ops per threads": 2103210.0, "Ops per procs": 210321051.0, "Ops/sec/procs": 6998709.52, "ns per ops/procs": 142.88}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 135981132.0, "Ops per second": 4532471.29, "ns per ops": 220.63, "Ops per threads": 1359811.0, "Ops per procs": 135981132.0, "Ops/sec/procs": 4532471.29, "ns per ops/procs": 220.63}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30050.010105, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1119014154.0, "Total blocks": 532914.0, "Ops per second": 37238395.26, "ns per ops": 26.85, "Ops per threads": 11190141.0, "Ops per procs": 1119014154.0, "Ops/sec/procs": 37238395.26, "ns per ops/procs": 26.85}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30022.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 117451105.0, "Ops per second": 3912118.28, "ns per ops": 255.62, "Ops per threads": 587255.0, "Ops per procs": 58725552.0, "Ops/sec/procs": 1956059.14, "ns per ops/procs": 511.23}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30037.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 276197417.0, "Total blocks": 140339441.0, "Ops per second": 9195171.06, "ns per ops": 108.75, "Ops per threads": 172623.0, "Ops per procs": 17262338.0, "Ops/sec/procs": 574698.19, "ns per ops/procs": 1740.04}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30090.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 477422266.0, "Total blocks": 253638280.0, "Ops per second": 15866309.74, "ns per ops": 63.03, "Ops per threads": 49731.0, "Ops per procs": 4973148.0, "Ops/sec/procs": 165274.06, "ns per ops/procs": 6050.56}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30007.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 192918672.0, "Ops per second": 6430622.0, "ns per ops": 155.0, "Ops per threads": 964593.0, "Ops per procs": 96459336.0, "Ops/sec/procs": 3215311.0, "ns per ops/procs": 311.0}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30037.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 466582279.0, "Ops per second": 15533280.4, "ns per ops": 64.38, "Ops per threads": 32401.0, "Ops per procs": 3240154.0, "Ops/sec/procs": 107870.0, "ns per ops/procs": 9270.42}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30047.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 435177105.0, "Ops per second": 14483172.02, "ns per ops": 69.05, "Ops per threads": 22665.0, "Ops per procs": 2266547.0, "Ops/sec/procs": 75433.19, "ns per ops/procs": 13256.76}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30057.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 169269650.0, "Ops per second": 5642321.0, "ns per ops": 177.0, "Ops per threads": 423174.0, "Ops per procs": 42317412.0, "Ops/sec/procs": 1410580.0, "ns per ops/procs": 710.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30042.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 263067114.0, "Total blocks": 135012656.0, "Ops per second": 8756384.01, "ns per ops": 114.2, "Ops per threads": 164416.0, "Ops per procs": 16441694.0, "Ops/sec/procs": 547274.0, "ns per ops/procs": 1827.24}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30021.800437, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 331747340.0, "Total blocks": 113949944.0, "Ops per second": 11050214.68, "ns per ops": 90.5, "Ops per threads": 138228.0, "Ops per procs": 13822805.0, "Ops/sec/procs": 460425.61, "ns per ops/procs": 2171.9}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 120106879.0, "Ops per second": 4000468.15, "ns per ops": 249.97, "Ops per threads": 600534.0, "Ops per procs": 60053439.0, "Ops/sec/procs": 2000234.08, "ns per ops/procs": 499.94}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30063.295621, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 493310516.0, "Total blocks": 182106727.0, "Ops per second": 16409063.14, "ns per ops": 60.94, "Ops per threads": 68515.0, "Ops per procs": 6851534.0, "Ops/sec/procs": 227903.65, "ns per ops/procs": 4387.82}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30054.86694, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 168373659.0, "Total blocks": 81452589.0, "Ops per second": 5602209.43, "ns per ops": 178.5, "Ops per threads": 420934.0, "Ops per procs": 42093414.0, "Ops/sec/procs": 1400552.36, "ns per ops/procs": 714.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30002.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 531062302.0, "Total blocks": 293639829.0, "Ops per second": 17700640.51, "ns per ops": 56.5, "Ops per threads": 110637.0, "Ops per procs": 11063797.0, "Ops/sec/procs": 368763.34, "ns per ops/procs": 2711.77}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30074.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 643735760.0, "Total blocks": 358621007.0, "Ops per second": 21404624.0, "ns per ops": 46.72, "Ops per threads": 44703.0, "Ops per procs": 4470387.0, "Ops/sec/procs": 148643.22, "ns per ops/procs": 6727.52}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30059.292145, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 223458642.0, "Total blocks": 89002774.0, "Ops per second": 7433928.95, "ns per ops": 134.52, "Ops per threads": 279323.0, "Ops per procs": 27932330.0, "Ops/sec/procs": 929241.12, "ns per ops/procs": 1076.15}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30072.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 405846975.0, "Total blocks": 213386180.0, "Ops per second": 13495463.54, "ns per ops": 74.1, "Ops per threads": 56367.0, "Ops per procs": 5636763.0, "Ops/sec/procs": 187436.99, "ns per ops/procs": 5335.13}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30001.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 809976443.0, "Ops per second": 26999214.0, "ns per ops": 37.0, "Ops per threads": 56248.0, "Ops per procs": 5624836.0, "Ops/sec/procs": 187494.0, "ns per ops/procs": 5333.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30081.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 389914473.0, "Total blocks": 206265278.0, "Ops per second": 12961862.65, "ns per ops": 77.15, "Ops per threads": 54154.0, "Ops per procs": 5415478.0, "Ops/sec/procs": 180025.87, "ns per ops/procs": 5554.76}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30024.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 492383427.0, "Ops per second": 16412780.0, "ns per ops": 60.0, "Ops per threads": 68386.0, "Ops per procs": 6838658.0, "Ops/sec/procs": 227955.0, "ns per ops/procs": 4390.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30021.931164, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 345016533.0, "Total blocks": 130363754.0, "Ops per second": 11492149.89, "ns per ops": 87.02, "Ops per threads": 143756.0, "Ops per procs": 14375688.0, "Ops/sec/procs": 478839.58, "ns per ops/procs": 2088.38}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30066.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 86178096.0, "Total blocks": 43090129.0, "Ops per second": 2866252.66, "ns per ops": 348.89, "Ops per threads": 430890.0, "Ops per procs": 43089048.0, "Ops/sec/procs": 1433126.33, "ns per ops/procs": 697.78}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30029.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 501676119.0, "Ops per second": 16722537.0, "ns per ops": 59.0, "Ops per threads": 69677.0, "Ops per procs": 6967723.0, "Ops/sec/procs": 232257.0, "ns per ops/procs": 4309.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30032.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 547129292.0, "Total blocks": 304012301.0, "Ops per second": 18217830.81, "ns per ops": 54.89, "Ops per threads": 113985.0, "Ops per procs": 11398526.0, "Ops/sec/procs": 379538.14, "ns per ops/procs": 2634.78}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30024.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 119733043.0, "Ops per second": 3987801.18, "ns per ops": 250.76, "Ops per threads": 598665.0, "Ops per procs": 59866521.0, "Ops/sec/procs": 1993900.59, "ns per ops/procs": 501.53}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30007.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 742058814.0, "Ops per second": 24735293.0, "ns per ops": 40.0, "Ops per threads": 154595.0, "Ops per procs": 15459558.0, "Ops/sec/procs": 515318.0, "ns per ops/procs": 1941.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30030.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 237302272.0, "Ops per second": 7902160.43, "ns per ops": 126.55, "Ops per threads": 148313.0, "Ops per procs": 14831392.0, "Ops/sec/procs": 493885.03, "ns per ops/procs": 2024.76}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30031.192223, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 559305025.0, "Total blocks": 216177017.0, "Ops per second": 18624136.56, "ns per ops": 53.69, "Ops per threads": 58260.0, "Ops per procs": 5826094.0, "Ops/sec/procs": 194001.42, "ns per ops/procs": 5154.6}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30050.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 373205153.0, "Ops per second": 12419293.9, "ns per ops": 80.52, "Ops per threads": 77751.0, "Ops per procs": 7775107.0, "Ops/sec/procs": 258735.29, "ns per ops/procs": 3864.95}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30040.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 262484921.0, "Ops per second": 8737744.14, "ns per ops": 114.45, "Ops per threads": 109368.0, "Ops per procs": 10936871.0, "Ops/sec/procs": 364072.67, "ns per ops/procs": 2746.7}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30095.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 391969440.0, "Total blocks": 207086302.0, "Ops per second": 13024362.64, "ns per ops": 76.78, "Ops per threads": 54440.0, "Ops per procs": 5444020.0, "Ops/sec/procs": 180893.93, "ns per ops/procs": 5528.1}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 547581273.0, "Total blocks": 304069398.0, "Ops per second": 18192857.66, "ns per ops": 54.97, "Ops per threads": 114079.0, "Ops per procs": 11407943.0, "Ops/sec/procs": 379017.87, "ns per ops/procs": 2638.4}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30030.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 377205011.0, "Total blocks": 205651915.0, "Ops per second": 12560654.76, "ns per ops": 79.61, "Ops per threads": 157168.0, "Ops per procs": 15716875.0, "Ops/sec/procs": 523360.61, "ns per ops/procs": 1910.73}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30030.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 419980931.0, "Ops per second": 13985201.06, "ns per ops": 71.5, "Ops per threads": 58330.0, "Ops per procs": 5833068.0, "Ops/sec/procs": 194238.9, "ns per ops/procs": 5148.3}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30037.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 157657898.0, "Ops per second": 5248725.07, "ns per ops": 190.52, "Ops per threads": 394144.0, "Ops per procs": 39414474.0, "Ops/sec/procs": 1312181.27, "ns per ops/procs": 762.09}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30060.564641, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 213642091.0, "Total blocks": 88395570.0, "Ops per second": 7107055.16, "ns per ops": 140.71, "Ops per threads": 267052.0, "Ops per procs": 26705261.0, "Ops/sec/procs": 888381.89, "ns per ops/procs": 1125.64}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30016.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 514011356.0, "Ops per second": 17133711.0, "ns per ops": 58.0, "Ops per threads": 214171.0, "Ops per procs": 21417139.0, "Ops/sec/procs": 713904.0, "ns per ops/procs": 1401.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30067.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 85940501.0, "Total blocks": 42971495.0, "Ops per second": 2858299.17, "ns per ops": 349.86, "Ops per threads": 429702.0, "Ops per procs": 42970250.0, "Ops/sec/procs": 1429149.58, "ns per ops/procs": 699.72}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30068.16394, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 461302988.0, "Total blocks": 170136777.0, "Ops per second": 15341907.44, "ns per ops": 65.18, "Ops per threads": 48052.0, "Ops per procs": 4805239.0, "Ops/sec/procs": 159811.54, "ns per ops/procs": 6257.37}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30034.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 157574300.0, "Ops per second": 5246454.88, "ns per ops": 190.6, "Ops per threads": 196967.0, "Ops per procs": 19696787.0, "Ops/sec/procs": 655806.86, "ns per ops/procs": 1524.84}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30046.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 483114499.0, "Ops per second": 16103816.0, "ns per ops": 62.0, "Ops per threads": 67099.0, "Ops per procs": 6709923.0, "Ops/sec/procs": 223664.0, "ns per ops/procs": 4477.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30013.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 779981371.0, "Total blocks": 408333976.0, "Ops per second": 25987538.56, "ns per ops": 38.48, "Ops per threads": 40624.0, "Ops per procs": 4062402.0, "Ops/sec/procs": 135351.76, "ns per ops/procs": 7388.16}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30060.675957, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 222215768.0, "Total blocks": 78217309.0, "Ops per second": 7392241.22, "ns per ops": 135.28, "Ops per threads": 277769.0, "Ops per procs": 27776971.0, "Ops/sec/procs": 924030.15, "ns per ops/procs": 1082.22}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 118927722.0, "Ops per second": 3961209.34, "ns per ops": 252.45, "Ops per threads": 594638.0, "Ops per procs": 59463861.0, "Ops/sec/procs": 1980604.67, "ns per ops/procs": 504.9}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30045.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 262011274.0, "Total blocks": 134446637.0, "Ops per second": 8720515.65, "ns per ops": 114.67, "Ops per threads": 163757.0, "Ops per procs": 16375704.0, "Ops/sec/procs": 545032.23, "ns per ops/procs": 1834.75}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30067.25622, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 562247067.0, "Total blocks": 210693052.0, "Ops per second": 18699646.65, "ns per ops": 53.48, "Ops per threads": 39044.0, "Ops per procs": 3904493.0, "Ops/sec/procs": 129858.66, "ns per ops/procs": 7700.68}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30026.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 463496302.0, "Ops per second": 15436388.94, "ns per ops": 64.78, "Ops per threads": 64374.0, "Ops per procs": 6437448.0, "Ops/sec/procs": 214394.29, "ns per ops/procs": 4664.3}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30100.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 477250158.0, "Total blocks": 253418567.0, "Ops per second": 15855387.09, "ns per ops": 63.07, "Ops per threads": 49713.0, "Ops per procs": 4971355.0, "Ops/sec/procs": 165160.28, "ns per ops/procs": 6054.73}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30038.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 158522221.0, "Ops per second": 5277258.49, "ns per ops": 189.49, "Ops per threads": 396305.0, "Ops per procs": 39630555.0, "Ops/sec/procs": 1319314.62, "ns per ops/procs": 757.97}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30016.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 967720382.0, "Ops per second": 32257346.0, "ns per ops": 31.0, "Ops per threads": 50402.0, "Ops per procs": 5040210.0, "Ops/sec/procs": 168007.0, "ns per ops/procs": 5955.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30002.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 821802839.0, "Ops per second": 27393427.0, "ns per ops": 36.0, "Ops per threads": 57069.0, "Ops per procs": 5706964.0, "Ops/sec/procs": 190232.0, "ns per ops/procs": 5257.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30091.886662, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 552173051.0, "Total blocks": 209027334.0, "Ops per second": 18349565.69, "ns per ops": 54.5, "Ops per threads": 38345.0, "Ops per procs": 3834535.0, "Ops/sec/procs": 127427.54, "ns per ops/procs": 7847.6}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30045.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 340551126.0, "Total blocks": 184661834.0, "Ops per second": 11334508.2, "ns per ops": 88.23, "Ops per threads": 141896.0, "Ops per procs": 14189630.0, "Ops/sec/procs": 472271.17, "ns per ops/procs": 2117.43}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30038.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 275334214.0, "Total blocks": 139677779.0, "Ops per second": 9165966.63, "ns per ops": 109.1, "Ops per threads": 172083.0, "Ops per procs": 17208388.0, "Ops/sec/procs": 572872.91, "ns per ops/procs": 1745.59}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30012.567786, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 638825140.0, "Total blocks": 246576238.0, "Ops per second": 21285254.38, "ns per ops": 46.98, "Ops per threads": 33272.0, "Ops per procs": 3327214.0, "Ops/sec/procs": 110860.7, "ns per ops/procs": 9020.33}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30014.099262, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 572321642.0, "Total blocks": 225997194.0, "Ops per second": 19068426.38, "ns per ops": 52.44, "Ops per threads": 59616.0, "Ops per procs": 5961683.0, "Ops/sec/procs": 198629.44, "ns per ops/procs": 5034.5}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30015.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 179041576.0, "Total blocks": 96279802.0, "Ops per second": 5965006.37, "ns per ops": 167.64, "Ops per threads": 223801.0, "Ops per procs": 22380197.0, "Ops/sec/procs": 745625.8, "ns per ops/procs": 1341.16}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30069.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 86037414.0, "Total blocks": 43019155.0, "Ops per second": 2861325.64, "ns per ops": 349.49, "Ops per threads": 430187.0, "Ops per procs": 43018707.0, "Ops/sec/procs": 1430662.82, "ns per ops/procs": 698.98}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192391162.0, "Total blocks": 0.0, "Ops per second": 6407286.05, "ns per ops": 156.07, "Ops per threads": 1923911.0, "Ops per procs": 192391162.0, "Ops/sec/procs": 6407286.05, "ns per ops/procs": 156.07}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30089.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 144193440.0, "Total blocks": 87209382.0, "Ops per second": 4792135.09, "ns per ops": 208.68, "Ops per threads": 360483.0, "Ops per procs": 36048360.0, "Ops/sec/procs": 1198033.77, "ns per ops/procs": 834.7}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30048.879489, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 292998484.0, "Total blocks": 115768461.0, "Ops per second": 9750729.11, "ns per ops": 102.56, "Ops per threads": 183124.0, "Ops per procs": 18312405.0, "Ops/sec/procs": 609420.57, "ns per ops/procs": 1640.9}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30054.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 303561759.0, "Total blocks": 159405536.0, "Ops per second": 10100263.0, "ns per ops": 99.01, "Ops per threads": 126484.0, "Ops per procs": 12648406.0, "Ops/sec/procs": 420844.29, "ns per ops/procs": 2376.18}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30008.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 190117539.0, "Ops per second": 6337251.0, "ns per ops": 157.0, "Ops per threads": 950587.0, "Ops per procs": 95058769.0, "Ops/sec/procs": 3168625.0, "ns per ops/procs": 315.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30003.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 742543456.0, "Ops per second": 24751448.0, "ns per ops": 40.0, "Ops per threads": 154696.0, "Ops per procs": 15469655.0, "Ops/sec/procs": 515655.0, "ns per ops/procs": 1939.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30018.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 184769861.0, "Ops per second": 6158995.0, "ns per ops": 162.0, "Ops per threads": 923849.0, "Ops per procs": 92384930.0, "Ops/sec/procs": 3079497.0, "ns per ops/procs": 324.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30028.672325, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 614702777.0, "Total blocks": 257279822.0, "Ops per second": 20470527.98, "ns per ops": 48.85, "Ops per threads": 32015.0, "Ops per procs": 3201576.0, "Ops/sec/procs": 106617.33, "ns per ops/procs": 9379.34}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30098.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 652534542.0, "Total blocks": 362925017.0, "Ops per second": 21680059.97, "ns per ops": 46.13, "Ops per threads": 45314.0, "Ops per procs": 4531489.0, "Ops/sec/procs": 150555.97, "ns per ops/procs": 6642.05}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30038.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 151569814.0, "Ops per second": 5045788.08, "ns per ops": 198.19, "Ops per threads": 189462.0, "Ops per procs": 18946226.0, "Ops/sec/procs": 630723.51, "ns per ops/procs": 1585.48}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30034.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 177032677.0, "Ops per second": 5901089.0, "ns per ops": 169.0, "Ops per threads": 885163.0, "Ops per procs": 88516338.0, "Ops/sec/procs": 2950544.0, "ns per ops/procs": 339.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30041.061808, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 547418122.0, "Total blocks": 213173108.0, "Ops per second": 18222329.34, "ns per ops": 54.88, "Ops per threads": 57022.0, "Ops per procs": 5702272.0, "Ops/sec/procs": 189815.93, "ns per ops/procs": 5268.26}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30017.932819, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 608493054.0, "Total blocks": 233286904.0, "Ops per second": 20270984.6, "ns per ops": 49.33, "Ops per threads": 31692.0, "Ops per procs": 3169234.0, "Ops/sec/procs": 105578.04, "ns per ops/procs": 9471.67}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30033.041615, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 569143989.0, "Total blocks": 212892830.0, "Ops per second": 18950594.36, "ns per ops": 52.77, "Ops per threads": 39523.0, "Ops per procs": 3952388.0, "Ops/sec/procs": 131601.35, "ns per ops/procs": 7598.71}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.236224, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 171437082.0, "Total blocks": 83008395.0, "Ops per second": 5704067.03, "ns per ops": 175.31, "Ops per threads": 428592.0, "Ops per procs": 42859270.0, "Ops/sec/procs": 1426016.76, "ns per ops/procs": 701.25}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30096.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 791936415.0, "Total blocks": 413079985.0, "Ops per second": 26313013.98, "ns per ops": 38.0, "Ops per threads": 41246.0, "Ops per procs": 4124668.0, "Ops/sec/procs": 137046.95, "ns per ops/procs": 7296.77}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30013.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 473926634.0, "Total blocks": 252360761.0, "Ops per second": 15790546.99, "ns per ops": 63.33, "Ops per threads": 49367.0, "Ops per procs": 4936735.0, "Ops/sec/procs": 164484.86, "ns per ops/procs": 6079.59}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30008.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 831437046.0, "Ops per second": 27714568.0, "ns per ops": 36.0, "Ops per threads": 57738.0, "Ops per procs": 5773868.0, "Ops/sec/procs": 192462.0, "ns per ops/procs": 5197.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30007.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 731867186.0, "Ops per second": 24395572.0, "ns per ops": 41.0, "Ops per threads": 152472.0, "Ops per procs": 15247233.0, "Ops/sec/procs": 508241.0, "ns per ops/procs": 1968.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30047.044654, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 506855883.0, "Total blocks": 199342292.0, "Ops per second": 16868743.29, "ns per ops": 59.28, "Ops per threads": 70396.0, "Ops per procs": 7039665.0, "Ops/sec/procs": 234288.1, "ns per ops/procs": 4268.25}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30089.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 546139586.0, "Total blocks": 303624999.0, "Ops per second": 18150711.36, "ns per ops": 55.09, "Ops per threads": 113779.0, "Ops per procs": 11377908.0, "Ops/sec/procs": 378139.82, "ns per ops/procs": 2644.52}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30052.757614, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 508109467.0, "Total blocks": 187018883.0, "Ops per second": 16907249.36, "ns per ops": 59.15, "Ops per threads": 35285.0, "Ops per procs": 3528537.0, "Ops/sec/procs": 117411.45, "ns per ops/procs": 8517.06}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30076.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 481753266.0, "Total blocks": 257794669.0, "Ops per second": 16017610.73, "ns per ops": 62.43, "Ops per threads": 50182.0, "Ops per procs": 5018263.0, "Ops/sec/procs": 166850.11, "ns per ops/procs": 5993.4}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192330844.0, "Total blocks": 0.0, "Ops per second": 6405264.01, "ns per ops": 156.12, "Ops per threads": 1923308.0, "Ops per procs": 192330844.0, "Ops/sec/procs": 6405264.01, "ns per ops/procs": 156.12}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30041.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 158173566.0, "Ops per second": 5265141.09, "ns per ops": 189.93, "Ops per threads": 395433.0, "Ops per procs": 39543391.0, "Ops/sec/procs": 1316285.27, "ns per ops/procs": 759.71}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 451340969.0, "Ops per second": 15044698.0, "ns per ops": 66.0, "Ops per threads": 4513409.0, "Ops per procs": 451340969.0, "Ops/sec/procs": 15044698.0, "ns per ops/procs": 66.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 740711879.0, "Ops per second": 24690395.0, "ns per ops": 40.0, "Ops per threads": 154314.0, "Ops per procs": 15431497.0, "Ops/sec/procs": 514383.0, "ns per ops/procs": 1944.0}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30034.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 257839981.0, "Ops per second": 8584782.57, "ns per ops": 116.49, "Ops per threads": 107433.0, "Ops per procs": 10743332.0, "Ops/sec/procs": 357699.27, "ns per ops/procs": 2795.64}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30080.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 167090878.0, "Ops per second": 5569695.0, "ns per ops": 180.0, "Ops per threads": 417727.0, "Ops per procs": 41772719.0, "Ops/sec/procs": 1392423.0, "ns per ops/procs": 720.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30027.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 235680912.0, "Ops per second": 7856030.0, "ns per ops": 127.0, "Ops per threads": 294601.0, "Ops per procs": 29460114.0, "Ops/sec/procs": 982003.0, "ns per ops/procs": 1019.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30048.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 346745926.0, "Ops per second": 11558197.0, "ns per ops": 86.0, "Ops per threads": 216716.0, "Ops per procs": 21671620.0, "Ops/sec/procs": 722387.0, "ns per ops/procs": 1386.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30054.787815, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 169134122.0, "Total blocks": 81717062.0, "Ops per second": 5627526.74, "ns per ops": 177.7, "Ops per threads": 422835.0, "Ops per procs": 42283530.0, "Ops/sec/procs": 1406881.68, "ns per ops/procs": 710.79}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 119444141.0, "Total blocks": 70913358.0, "Ops per second": 3981305.77, "ns per ops": 251.17, "Ops per threads": 298610.0, "Ops per procs": 29861035.0, "Ops/sec/procs": 995326.44, "ns per ops/procs": 1004.7}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30052.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 451097128.0, "Ops per second": 15010426.68, "ns per ops": 66.62, "Ops per threads": 23494.0, "Ops per procs": 2349464.0, "Ops/sec/procs": 78179.31, "ns per ops/procs": 12791.11}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.009121, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 155630767.0, "Total blocks": 74902749.0, "Ops per second": 5178197.3, "ns per ops": 193.12, "Ops per threads": 389076.0, "Ops per procs": 38907691.0, "Ops/sec/procs": 1294549.32, "ns per ops/procs": 772.47}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30014.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 179898963.0, "Total blocks": 97083310.0, "Ops per second": 5993667.18, "ns per ops": 166.84, "Ops per threads": 224873.0, "Ops per procs": 22487370.0, "Ops/sec/procs": 749208.4, "ns per ops/procs": 1334.74}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30042.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 462964646.0, "Ops per second": 15410093.65, "ns per ops": 64.89, "Ops per threads": 32150.0, "Ops per procs": 3215032.0, "Ops/sec/procs": 107014.54, "ns per ops/procs": 9344.52}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 136017441.0, "Ops per second": 4533693.75, "ns per ops": 220.57, "Ops per threads": 1360174.0, "Ops per procs": 136017441.0, "Ops/sec/procs": 4533693.75, "ns per ops/procs": 220.57}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30000.801374, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 602241809.0, "Total blocks": 231393908.0, "Ops per second": 20074190.74, "ns per ops": 49.82, "Ops per threads": 41822.0, "Ops per procs": 4182234.0, "Ops/sec/procs": 139404.1, "ns per ops/procs": 7173.39}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30077.170056, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 302491482.0, "Total blocks": 100342339.0, "Ops per second": 10057178.96, "ns per ops": 99.43, "Ops per threads": 189057.0, "Ops per procs": 18905717.0, "Ops/sec/procs": 628573.69, "ns per ops/procs": 1590.9}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30025.802496, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 651299967.0, "Total blocks": 252819757.0, "Ops per second": 21691342.54, "ns per ops": 46.1, "Ops per threads": 33921.0, "Ops per procs": 3392187.0, "Ops/sec/procs": 112975.74, "ns per ops/procs": 8851.46}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 480546377.0, "Total blocks": 256351561.0, "Ops per second": 15966347.57, "ns per ops": 62.63, "Ops per threads": 50056.0, "Ops per procs": 5005691.0, "Ops/sec/procs": 166316.12, "ns per ops/procs": 6012.65}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30059.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 455093120.0, "Ops per second": 15139780.69, "ns per ops": 66.05, "Ops per threads": 23702.0, "Ops per procs": 2370276.0, "Ops/sec/procs": 78853.02, "ns per ops/procs": 12681.82}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30088.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 548506764.0, "Total blocks": 305087653.0, "Ops per second": 18229893.33, "ns per ops": 54.85, "Ops per threads": 114272.0, "Ops per procs": 11427224.0, "Ops/sec/procs": 379789.44, "ns per ops/procs": 2633.04}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30091.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 217390397.0, "Ops per second": 7224355.57, "ns per ops": 138.42, "Ops per threads": 22644.0, "Ops per procs": 2264483.0, "Ops/sec/procs": 75253.7, "ns per ops/procs": 13288.38}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30080.820994, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 482545116.0, "Total blocks": 160774927.0, "Ops per second": 16041620.54, "ns per ops": 62.34, "Ops per threads": 67020.0, "Ops per procs": 6702015.0, "Ops/sec/procs": 222800.29, "ns per ops/procs": 4488.32}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30040.425328, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 526816921.0, "Total blocks": 188030181.0, "Ops per second": 17536932.82, "ns per ops": 57.02, "Ops per threads": 73169.0, "Ops per procs": 7316901.0, "Ops/sec/procs": 243568.51, "ns per ops/procs": 4105.62}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30067.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 86714804.0, "Total blocks": 43358228.0, "Ops per second": 2884008.01, "ns per ops": 346.74, "Ops per threads": 433574.0, "Ops per procs": 43357402.0, "Ops/sec/procs": 1442004.0, "ns per ops/procs": 693.48}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30052.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 342908792.0, "Ops per second": 11430293.0, "ns per ops": 87.0, "Ops per threads": 214317.0, "Ops per procs": 21431799.0, "Ops/sec/procs": 714393.0, "ns per ops/procs": 1402.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30022.478066, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 561022497.0, "Total blocks": 206691314.0, "Ops per second": 18686748.5, "ns per ops": 53.51, "Ops per threads": 58439.0, "Ops per procs": 5843984.0, "Ops/sec/procs": 194653.63, "ns per ops/procs": 5137.33}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30027.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192456278.0, "Total blocks": 0.0, "Ops per second": 6409439.04, "ns per ops": 156.02, "Ops per threads": 1924562.0, "Ops per procs": 192456278.0, "Ops/sec/procs": 6409439.04, "ns per ops/procs": 156.02}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30049.976466, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1120746778.0, "Total blocks": 0.0, "Ops per second": 37296095.03, "ns per ops": 26.81, "Ops per threads": 11207467.0, "Ops per procs": 1120746778.0, "Ops/sec/procs": 37296095.03, "ns per ops/procs": 26.81}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 135618943.0, "Ops per second": 4520400.35, "ns per ops": 221.22, "Ops per threads": 1356189.0, "Ops per procs": 135618943.0, "Ops/sec/procs": 4520400.35, "ns per ops/procs": 221.22}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30028.25305, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 582684618.0, "Total blocks": 226574014.0, "Ops per second": 19404546.01, "ns per ops": 51.53, "Ops per threads": 30348.0, "Ops per procs": 3034815.0, "Ops/sec/procs": 101065.34, "ns per ops/procs": 9894.59}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30047.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 501359108.0, "Ops per second": 16685407.89, "ns per ops": 59.93, "Ops per threads": 34816.0, "Ops per procs": 3481660.0, "Ops/sec/procs": 115870.89, "ns per ops/procs": 8630.3}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30036.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 263614039.0, "Ops per second": 8776537.16, "ns per ops": 113.94, "Ops per threads": 109839.0, "Ops per procs": 10983918.0, "Ops/sec/procs": 365689.05, "ns per ops/procs": 2734.56}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30042.074332, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 532703651.0, "Total blocks": 216174915.0, "Ops per second": 17731919.74, "ns per ops": 56.4, "Ops per threads": 55489.0, "Ops per procs": 5548996.0, "Ops/sec/procs": 184707.5, "ns per ops/procs": 5413.97}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30053.672303, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 464451139.0, "Total blocks": 173115687.0, "Ops per second": 15454056.14, "ns per ops": 64.71, "Ops per threads": 64507.0, "Ops per procs": 6450710.0, "Ops/sec/procs": 214639.67, "ns per ops/procs": 4658.97}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30021.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 168086601.0, "Total blocks": 91648059.0, "Ops per second": 5598887.94, "ns per ops": 178.61, "Ops per threads": 210108.0, "Ops per procs": 21010825.0, "Ops/sec/procs": 699860.99, "ns per ops/procs": 1428.86}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30009.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 942916985.0, "Ops per second": 31430566.0, "ns per ops": 31.0, "Ops per threads": 49110.0, "Ops per procs": 4911025.0, "Ops/sec/procs": 163700.0, "ns per ops/procs": 6110.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30041.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 359950147.0, "Ops per second": 11981714.25, "ns per ops": 83.46, "Ops per threads": 74989.0, "Ops per procs": 7498961.0, "Ops/sec/procs": 249619.05, "ns per ops/procs": 4006.1}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30027.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192314020.0, "Total blocks": 0.0, "Ops per second": 6404688.8, "ns per ops": 156.14, "Ops per threads": 1923140.0, "Ops per procs": 192314020.0, "Ops/sec/procs": 6404688.8, "ns per ops/procs": 156.14}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 452208584.0, "Ops per second": 15073619.0, "ns per ops": 66.0, "Ops per threads": 4522085.0, "Ops per procs": 452208584.0, "Ops/sec/procs": 15073619.0, "ns per ops/procs": 66.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 295585195.0, "Total blocks": 152177620.0, "Ops per second": 9842077.13, "ns per ops": 101.6, "Ops per threads": 184740.0, "Ops per procs": 18474074.0, "Ops/sec/procs": 615129.82, "ns per ops/procs": 1625.67}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30040.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 273945737.0, "Ops per second": 9119222.31, "ns per ops": 109.66, "Ops per threads": 114144.0, "Ops per procs": 11414405.0, "Ops/sec/procs": 379967.6, "ns per ops/procs": 2631.8}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 191993667.0, "Total blocks": 0.0, "Ops per second": 6394056.86, "ns per ops": 156.4, "Ops per threads": 1919936.0, "Ops per procs": 191993667.0, "Ops/sec/procs": 6394056.86, "ns per ops/procs": 156.4}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30008.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 518210242.0, "Total blocks": 286885761.0, "Ops per second": 17268828.94, "ns per ops": 57.91, "Ops per threads": 107960.0, "Ops per procs": 10796046.0, "Ops/sec/procs": 359767.27, "ns per ops/procs": 2779.57}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30013.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 639553962.0, "Ops per second": 21318465.0, "ns per ops": 46.0, "Ops per threads": 66620.0, "Ops per procs": 6662020.0, "Ops/sec/procs": 222067.0, "ns per ops/procs": 4505.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30028.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 489719637.0, "Ops per second": 16323987.0, "ns per ops": 61.0, "Ops per threads": 68016.0, "Ops per procs": 6801661.0, "Ops/sec/procs": 226722.0, "ns per ops/procs": 4414.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30027.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 191671927.0, "Total blocks": 0.0, "Ops per second": 6383289.63, "ns per ops": 156.66, "Ops per threads": 1916719.0, "Ops per procs": 191671927.0, "Ops/sec/procs": 6383289.63, "ns per ops/procs": 156.66}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30027.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192504355.0, "Total blocks": 0.0, "Ops per second": 6410970.93, "ns per ops": 155.98, "Ops per threads": 1925043.0, "Ops per procs": 192504355.0, "Ops/sec/procs": 6410970.93, "ns per ops/procs": 155.98}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30024.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 231851694.0, "Ops per second": 7728389.0, "ns per ops": 129.0, "Ops per threads": 289814.0, "Ops per procs": 28981461.0, "Ops/sec/procs": 966048.0, "ns per ops/procs": 1035.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30005.775649, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 609240005.0, "Total blocks": 240164763.0, "Ops per second": 20304091.19, "ns per ops": 49.25, "Ops per threads": 31731.0, "Ops per procs": 3173125.0, "Ops/sec/procs": 105750.47, "ns per ops/procs": 9456.22}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30072.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 168268969.0, "Ops per second": 5608965.0, "ns per ops": 178.0, "Ops per threads": 420672.0, "Ops per procs": 42067242.0, "Ops/sec/procs": 1402241.0, "ns per ops/procs": 714.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30077.876864, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 272143508.0, "Total blocks": 118417551.0, "Ops per second": 9047962.7, "ns per ops": 110.52, "Ops per threads": 170089.0, "Ops per procs": 17008969.0, "Ops/sec/procs": 565497.67, "ns per ops/procs": 1768.35}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30045.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 259502647.0, "Total blocks": 132377158.0, "Ops per second": 8636925.37, "ns per ops": 115.78, "Ops per threads": 162189.0, "Ops per procs": 16218915.0, "Ops/sec/procs": 539807.84, "ns per ops/procs": 1852.51}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30047.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 347070857.0, "Ops per second": 11569028.0, "ns per ops": 86.0, "Ops per threads": 216919.0, "Ops per procs": 21691928.0, "Ops/sec/procs": 723064.0, "ns per ops/procs": 1385.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30057.503941, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 769423491.0, "Total blocks": 268248863.0, "Ops per second": 25598382.77, "ns per ops": 39.06, "Ops per threads": 160296.0, "Ops per procs": 16029656.0, "Ops/sec/procs": 533299.64, "ns per ops/procs": 1875.12}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 135704117.0, "Ops per second": 4523252.62, "ns per ops": 221.08, "Ops per threads": 1357041.0, "Ops per procs": 135704117.0, "Ops/sec/procs": 4523252.62, "ns per ops/procs": 221.08}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30037.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 463027674.0, "Total blocks": 245950265.0, "Ops per second": 15414773.7, "ns per ops": 64.87, "Ops per threads": 48232.0, "Ops per procs": 4823204.0, "Ops/sec/procs": 160570.56, "ns per ops/procs": 6227.79}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192346573.0, "Total blocks": 0.0, "Ops per second": 6405831.54, "ns per ops": 156.11, "Ops per threads": 1923465.0, "Ops per procs": 192346573.0, "Ops/sec/procs": 6405831.54, "ns per ops/procs": 156.11}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30038.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 234525063.0, "Ops per second": 7817502.0, "ns per ops": 128.0, "Ops per threads": 293156.0, "Ops per procs": 29315632.0, "Ops/sec/procs": 977187.0, "ns per ops/procs": 1024.0}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30069.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 423733962.0, "Ops per second": 14091795.16, "ns per ops": 70.96, "Ops per threads": 22069.0, "Ops per procs": 2206947.0, "Ops/sec/procs": 73394.77, "ns per ops/procs": 13624.95}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30006.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 943871839.0, "Ops per second": 31462394.0, "ns per ops": 31.0, "Ops per threads": 49159.0, "Ops per procs": 4915999.0, "Ops/sec/procs": 163866.0, "ns per ops/procs": 6103.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30065.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 401282671.0, "Total blocks": 209757113.0, "Ops per second": 13347064.62, "ns per ops": 74.92, "Ops per threads": 55733.0, "Ops per procs": 5573370.0, "Ops/sec/procs": 185375.9, "ns per ops/procs": 5394.44}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30089.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 194062478.0, "Ops per second": 6449422.12, "ns per ops": 155.05, "Ops per threads": 20214.0, "Ops per procs": 2021484.0, "Ops/sec/procs": 67181.48, "ns per ops/procs": 14885.05}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30031.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 376673382.0, "Total blocks": 204648694.0, "Ops per second": 12542730.54, "ns per ops": 79.73, "Ops per threads": 156947.0, "Ops per procs": 15694724.0, "Ops/sec/procs": 522613.77, "ns per ops/procs": 1913.46}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30023.791539, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 577357851.0, "Total blocks": 220916223.0, "Ops per second": 19230011.31, "ns per ops": 52.0, "Ops per threads": 60141.0, "Ops per procs": 6014144.0, "Ops/sec/procs": 200312.62, "ns per ops/procs": 4992.2}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30025.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 498413708.0, "Ops per second": 16599659.51, "ns per ops": 60.24, "Ops per threads": 69224.0, "Ops per procs": 6922412.0, "Ops/sec/procs": 230550.83, "ns per ops/procs": 4337.44}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30032.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 477267436.0, "Ops per second": 15908914.0, "ns per ops": 62.0, "Ops per threads": 66287.0, "Ops per procs": 6628714.0, "Ops/sec/procs": 220957.0, "ns per ops/procs": 4530.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30015.095932, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 542409402.0, "Total blocks": 200376037.0, "Ops per second": 18071220.0, "ns per ops": 55.34, "Ops per threads": 37667.0, "Ops per procs": 3766731.0, "Ops/sec/procs": 125494.58, "ns per ops/procs": 7968.47}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30066.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 88691323.0, "Total blocks": 44346838.0, "Ops per second": 2949859.19, "ns per ops": 339.0, "Ops per threads": 443456.0, "Ops per procs": 44345661.0, "Ops/sec/procs": 1474929.59, "ns per ops/procs": 678.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30021.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 235271381.0, "Ops per second": 7842379.0, "ns per ops": 127.0, "Ops per threads": 294089.0, "Ops per procs": 29408922.0, "Ops/sec/procs": 980297.0, "ns per ops/procs": 1020.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30067.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 86589775.0, "Total blocks": 43295704.0, "Ops per second": 2879878.92, "ns per ops": 347.24, "Ops per threads": 432948.0, "Ops per procs": 43294887.0, "Ops/sec/procs": 1439939.46, "ns per ops/procs": 694.47}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30039.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 157275810.0, "Ops per second": 5235593.23, "ns per ops": 191.0, "Ops per threads": 393189.0, "Ops per procs": 39318952.0, "Ops/sec/procs": 1308898.31, "ns per ops/procs": 764.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30018.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 537187304.0, "Ops per second": 17906243.0, "ns per ops": 55.0, "Ops per threads": 74609.0, "Ops per procs": 7460934.0, "Ops/sec/procs": 248697.0, "ns per ops/procs": 4023.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30049.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 410198859.0, "Ops per second": 13673295.0, "ns per ops": 73.0, "Ops per threads": 56972.0, "Ops per procs": 5697206.0, "Ops/sec/procs": 189906.0, "ns per ops/procs": 5274.0}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30018.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 135609758.0, "Ops per second": 4517490.14, "ns per ops": 221.36, "Ops per threads": 1356097.0, "Ops per procs": 135609758.0, "Ops/sec/procs": 4517490.14, "ns per ops/procs": 221.36}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30030.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 135912705.0, "Ops per second": 4525845.86, "ns per ops": 220.95, "Ops per threads": 169890.0, "Ops per procs": 16989088.0, "Ops/sec/procs": 565730.73, "ns per ops/procs": 1767.63}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30059.186838, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 591341502.0, "Total blocks": 240808280.0, "Ops per second": 19672571.49, "ns per ops": 50.83, "Ops per threads": 30799.0, "Ops per procs": 3079903.0, "Ops/sec/procs": 102461.31, "ns per ops/procs": 9759.78}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30011.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 513935382.0, "Ops per second": 17131179.0, "ns per ops": 58.0, "Ops per threads": 214139.0, "Ops per procs": 21413974.0, "Ops/sec/procs": 713799.0, "ns per ops/procs": 1401.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30069.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 169664583.0, "Ops per second": 5655486.0, "ns per ops": 177.0, "Ops per threads": 424161.0, "Ops per procs": 42416145.0, "Ops/sec/procs": 1413871.0, "ns per ops/procs": 708.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30008.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 735226414.0, "Ops per second": 24507547.0, "ns per ops": 40.0, "Ops per threads": 153172.0, "Ops per procs": 15317216.0, "Ops/sec/procs": 510573.0, "ns per ops/procs": 1959.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30043.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 367589762.0, "Ops per second": 12235265.47, "ns per ops": 81.73, "Ops per threads": 76581.0, "Ops per procs": 7658120.0, "Ops/sec/procs": 254901.36, "ns per ops/procs": 3923.09}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30062.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 292524002.0, "Ops per second": 9730662.56, "ns per ops": 102.77, "Ops per threads": 30471.0, "Ops per procs": 3047125.0, "Ops/sec/procs": 101361.07, "ns per ops/procs": 9865.72}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30049.854582, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1117356623.0, "Total blocks": 541295.0, "Ops per second": 37183428.62, "ns per ops": 26.89, "Ops per threads": 11173566.0, "Ops per procs": 1117356623.0, "Ops/sec/procs": 37183428.62, "ns per ops/procs": 26.89}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.463425, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 174532517.0, "Total blocks": 77420246.0, "Ops per second": 5807014.67, "ns per ops": 172.21, "Ops per threads": 436331.0, "Ops per procs": 43633129.0, "Ops/sec/procs": 1451753.67, "ns per ops/procs": 688.82}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30007.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 804721400.0, "Ops per second": 26824046.0, "ns per ops": 37.0, "Ops per threads": 55883.0, "Ops per procs": 5588343.0, "Ops/sec/procs": 186278.0, "ns per ops/procs": 5369.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30039.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 352379233.0, "Total blocks": 188899480.0, "Ops per second": 11730709.37, "ns per ops": 85.25, "Ops per threads": 146824.0, "Ops per procs": 14682468.0, "Ops/sec/procs": 488779.56, "ns per ops/procs": 2045.91}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30031.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 745298310.0, "Ops per second": 24817103.8, "ns per ops": 40.29, "Ops per threads": 103513.0, "Ops per procs": 10351365.0, "Ops/sec/procs": 344682.0, "ns per ops/procs": 2901.22}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30057.587818, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 753153248.0, "Total blocks": 277437625.0, "Ops per second": 25057008.98, "ns per ops": 39.91, "Ops per threads": 156906.0, "Ops per procs": 15690692.0, "Ops/sec/procs": 522021.02, "ns per ops/procs": 1915.63}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30077.049798, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 279930883.0, "Total blocks": 118833631.0, "Ops per second": 9307125.69, "ns per ops": 107.44, "Ops per threads": 174956.0, "Ops per procs": 17495680.0, "Ops/sec/procs": 581695.36, "ns per ops/procs": 1719.11}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30006.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 492554279.0, "Total blocks": 271177508.0, "Ops per second": 16415134.88, "ns per ops": 60.92, "Ops per threads": 102615.0, "Ops per procs": 10261547.0, "Ops/sec/procs": 341981.98, "ns per ops/procs": 2924.13}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30042.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 270186784.0, "Ops per second": 8993519.71, "ns per ops": 111.19, "Ops per threads": 112577.0, "Ops per procs": 11257782.0, "Ops/sec/procs": 374729.99, "ns per ops/procs": 2668.59}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30049.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 476922708.0, "Total blocks": 254648631.0, "Ops per second": 15871400.38, "ns per ops": 63.01, "Ops per threads": 49679.0, "Ops per procs": 4967944.0, "Ops/sec/procs": 165327.09, "ns per ops/procs": 6048.62}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30016.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 175092827.0, "Total blocks": 94658239.0, "Ops per second": 5833198.71, "ns per ops": 171.43, "Ops per threads": 218866.0, "Ops per procs": 21886603.0, "Ops/sec/procs": 729149.84, "ns per ops/procs": 1371.46}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30099.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 121055033.0, "Total blocks": 71922876.0, "Ops per second": 4021787.04, "ns per ops": 248.65, "Ops per threads": 302637.0, "Ops per procs": 30263758.0, "Ops/sec/procs": 1005446.76, "ns per ops/procs": 994.58}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30061.767095, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 203423577.0, "Total blocks": 50138869.0, "Ops per second": 6766853.6, "ns per ops": 147.78, "Ops per threads": 254279.0, "Ops per procs": 25427947.0, "Ops/sec/procs": 845856.7, "ns per ops/procs": 1182.23}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30062.830094, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 769541797.0, "Total blocks": 240397440.0, "Ops per second": 25597782.86, "ns per ops": 39.07, "Ops per threads": 160321.0, "Ops per procs": 16032120.0, "Ops/sec/procs": 533287.14, "ns per ops/procs": 1875.16}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30027.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 239328763.0, "Ops per second": 7970194.84, "ns per ops": 125.47, "Ops per threads": 149580.0, "Ops per procs": 14958047.0, "Ops/sec/procs": 498137.18, "ns per ops/procs": 2007.48}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30053.292416, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 793906644.0, "Total blocks": 268063612.0, "Ops per second": 26416627.94, "ns per ops": 37.85, "Ops per threads": 165397.0, "Ops per procs": 16539721.0, "Ops/sec/procs": 550346.42, "ns per ops/procs": 1817.04}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 231626811.0, "Ops per second": 7714165.31, "ns per ops": 129.63, "Ops per threads": 144766.0, "Ops per procs": 14476675.0, "Ops/sec/procs": 482135.33, "ns per ops/procs": 2074.11}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30050.180731, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1110747707.0, "Total blocks": 1045067.0, "Ops per second": 36963095.73, "ns per ops": 27.05, "Ops per threads": 11107477.0, "Ops per procs": 1110747707.0, "Ops/sec/procs": 36963095.73, "ns per ops/procs": 27.05}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30037.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 479200609.0, "Ops per second": 15953480.65, "ns per ops": 62.68, "Ops per threads": 33277.0, "Ops per procs": 3327782.0, "Ops/sec/procs": 110788.06, "ns per ops/procs": 9026.24}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30078.047096, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 276181192.0, "Total blocks": 94937996.0, "Ops per second": 9182151.72, "ns per ops": 108.91, "Ops per threads": 172613.0, "Ops per procs": 17261324.0, "Ops/sec/procs": 573884.48, "ns per ops/procs": 1742.51}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30089.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 648332502.0, "Total blocks": 358320925.0, "Ops per second": 21546649.37, "ns per ops": 46.41, "Ops per threads": 45023.0, "Ops per procs": 4502309.0, "Ops/sec/procs": 149629.51, "ns per ops/procs": 6683.17}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30042.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 343918250.0, "Ops per second": 11463941.0, "ns per ops": 87.0, "Ops per threads": 214948.0, "Ops per procs": 21494890.0, "Ops/sec/procs": 716496.0, "ns per ops/procs": 1397.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30049.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 404418699.0, "Total blocks": 211869329.0, "Ops per second": 13458462.85, "ns per ops": 74.3, "Ops per threads": 56169.0, "Ops per procs": 5616926.0, "Ops/sec/procs": 186923.1, "ns per ops/procs": 5349.79}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.378865, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 426265933.0, "Total blocks": 4818223.0, "Ops per second": 14184571.53, "ns per ops": 70.5, "Ops per threads": 2131329.0, "Ops per procs": 213132966.0, "Ops/sec/procs": 7092285.76, "ns per ops/procs": 141.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 219693826.0, "Ops per second": 7315099.84, "ns per ops": 136.7, "Ops per threads": 137308.0, "Ops per procs": 13730864.0, "Ops/sec/procs": 457193.74, "ns per ops/procs": 2187.26}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30025.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 390490340.0, "Total blocks": 206369718.0, "Ops per second": 13005257.06, "ns per ops": 76.89, "Ops per threads": 54234.0, "Ops per procs": 5423476.0, "Ops/sec/procs": 180628.57, "ns per ops/procs": 5536.22}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30009.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 954160546.0, "Ops per second": 31805351.0, "ns per ops": 31.0, "Ops per threads": 49695.0, "Ops per procs": 4969586.0, "Ops/sec/procs": 165652.0, "ns per ops/procs": 6038.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.270372, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 171748150.0, "Total blocks": 76558879.0, "Ops per second": 5714410.41, "ns per ops": 175.0, "Ops per threads": 429370.0, "Ops per procs": 42937037.0, "Ops/sec/procs": 1428602.6, "ns per ops/procs": 699.98}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30036.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 256782541.0, "Ops per second": 8548923.51, "ns per ops": 116.97, "Ops per threads": 106992.0, "Ops per procs": 10699272.0, "Ops/sec/procs": 356205.15, "ns per ops/procs": 2807.37}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30076.621815, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 289636935.0, "Total blocks": 107925471.0, "Ops per second": 9629968.98, "ns per ops": 103.84, "Ops per threads": 181023.0, "Ops per procs": 18102308.0, "Ops/sec/procs": 601873.06, "ns per ops/procs": 1661.48}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30001.902455, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 671199924.0, "Total blocks": 198013052.0, "Ops per second": 22371912.08, "ns per ops": 44.7, "Ops per threads": 34958.0, "Ops per procs": 3495832.0, "Ops/sec/procs": 116520.38, "ns per ops/procs": 8582.19}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 738386333.0, "Ops per second": 24612877.0, "ns per ops": 40.0, "Ops per threads": 153830.0, "Ops per procs": 15383048.0, "Ops/sec/procs": 512768.0, "ns per ops/procs": 1950.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30024.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 499447604.0, "Total blocks": 274791411.0, "Ops per second": 16634693.36, "ns per ops": 60.12, "Ops per threads": 104051.0, "Ops per procs": 10405158.0, "Ops/sec/procs": 346556.11, "ns per ops/procs": 2885.54}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30011.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 466384275.0, "Total blocks": 248194693.0, "Ops per second": 15539952.32, "ns per ops": 64.35, "Ops per threads": 48581.0, "Ops per procs": 4858169.0, "Ops/sec/procs": 161874.5, "ns per ops/procs": 6177.63}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30096.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 393966189.0, "Total blocks": 208999071.0, "Ops per second": 13090312.59, "ns per ops": 76.39, "Ops per threads": 54717.0, "Ops per procs": 5471752.0, "Ops/sec/procs": 181809.9, "ns per ops/procs": 5500.25}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30018.470879, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 354622936.0, "Total blocks": 151202355.0, "Ops per second": 11813491.01, "ns per ops": 84.65, "Ops per threads": 147759.0, "Ops per procs": 14775955.0, "Ops/sec/procs": 492228.79, "ns per ops/procs": 2031.58}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30012.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 231714064.0, "Ops per second": 7723802.0, "ns per ops": 129.0, "Ops per threads": 289642.0, "Ops per procs": 28964258.0, "Ops/sec/procs": 965475.0, "ns per ops/procs": 1036.0}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 136125425.0, "Ops per second": 4537275.69, "ns per ops": 220.4, "Ops per threads": 1361254.0, "Ops per procs": 136125425.0, "Ops/sec/procs": 4537275.69, "ns per ops/procs": 220.4}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30069.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 87320189.0, "Total blocks": 43661832.0, "Ops per second": 2903903.05, "ns per ops": 344.36, "Ops per threads": 436600.0, "Ops per procs": 43660094.0, "Ops/sec/procs": 1451951.53, "ns per ops/procs": 688.73}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30032.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 141513531.0, "Ops per second": 4712036.54, "ns per ops": 212.22, "Ops per threads": 176891.0, "Ops per procs": 17689191.0, "Ops/sec/procs": 589004.57, "ns per ops/procs": 1697.78}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30093.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 136075473.0, "Total blocks": 82168602.0, "Ops per second": 4521756.28, "ns per ops": 221.15, "Ops per threads": 340188.0, "Ops per procs": 34018868.0, "Ops/sec/procs": 1130439.07, "ns per ops/procs": 884.61}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30020.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 617023066.0, "Ops per second": 20567435.0, "ns per ops": 48.0, "Ops per threads": 64273.0, "Ops per procs": 6427323.0, "Ops/sec/procs": 214244.0, "ns per ops/procs": 4670.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30015.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 594793614.0, "Ops per second": 19826453.0, "ns per ops": 50.0, "Ops per threads": 61957.0, "Ops per procs": 6195766.0, "Ops/sec/procs": 206525.0, "ns per ops/procs": 4844.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30054.795549, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 163341327.0, "Total blocks": 78951482.0, "Ops per second": 5434784.17, "ns per ops": 184.0, "Ops per threads": 408353.0, "Ops per procs": 40835331.0, "Ops/sec/procs": 1358696.04, "ns per ops/procs": 736.0}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30025.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 383677546.0, "Ops per second": 12778178.71, "ns per ops": 78.26, "Ops per threads": 53288.0, "Ops per procs": 5328854.0, "Ops/sec/procs": 177474.7, "ns per ops/procs": 5634.61}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30031.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 233318477.0, "Ops per second": 7769119.42, "ns per ops": 128.71, "Ops per threads": 145824.0, "Ops per procs": 14582404.0, "Ops/sec/procs": 485569.96, "ns per ops/procs": 2059.44}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30039.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 473085242.0, "Ops per second": 15748529.01, "ns per ops": 63.5, "Ops per threads": 32853.0, "Ops per procs": 3285314.0, "Ops/sec/procs": 109364.78, "ns per ops/procs": 9143.71}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30044.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 453054210.0, "Ops per second": 15079335.92, "ns per ops": 66.32, "Ops per threads": 31462.0, "Ops per procs": 3146209.0, "Ops/sec/procs": 104717.61, "ns per ops/procs": 9549.49}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30038.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 352775365.0, "Total blocks": 189008078.0, "Ops per second": 11744133.88, "ns per ops": 85.15, "Ops per threads": 146989.0, "Ops per procs": 14698973.0, "Ops/sec/procs": 489338.91, "ns per ops/procs": 2043.57}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30008.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 656225469.0, "Ops per second": 21874182.0, "ns per ops": 45.0, "Ops per threads": 68356.0, "Ops per procs": 6835681.0, "Ops/sec/procs": 227856.0, "ns per ops/procs": 4389.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30054.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 358041998.0, "Ops per second": 11912995.95, "ns per ops": 83.94, "Ops per threads": 74592.0, "Ops per procs": 7459208.0, "Ops/sec/procs": 248187.42, "ns per ops/procs": 4029.21}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30059.956024, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 193365852.0, "Total blocks": 89908380.0, "Ops per second": 6432672.48, "ns per ops": 155.46, "Ops per threads": 241707.0, "Ops per procs": 24170731.0, "Ops/sec/procs": 804084.06, "ns per ops/procs": 1243.65}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30066.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 346977362.0, "Ops per second": 11565912.0, "ns per ops": 86.0, "Ops per threads": 216860.0, "Ops per procs": 21686085.0, "Ops/sec/procs": 722869.0, "ns per ops/procs": 1386.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30032.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 376359195.0, "Total blocks": 204475334.0, "Ops per second": 12531863.41, "ns per ops": 79.8, "Ops per threads": 156816.0, "Ops per procs": 15681633.0, "Ops/sec/procs": 522160.98, "ns per ops/procs": 1915.12}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 828177850.0, "Ops per second": 27605928.0, "ns per ops": 36.0, "Ops per threads": 57512.0, "Ops per procs": 5751235.0, "Ops/sec/procs": 191707.0, "ns per ops/procs": 5217.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30074.157595, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 619584068.0, "Total blocks": 252404582.0, "Ops per second": 20601876.08, "ns per ops": 48.54, "Ops per threads": 32270.0, "Ops per procs": 3227000.0, "Ops/sec/procs": 107301.44, "ns per ops/procs": 9319.54}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30047.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 366337673.0, "Ops per second": 12192076.72, "ns per ops": 82.02, "Ops per threads": 76320.0, "Ops per procs": 7632034.0, "Ops/sec/procs": 254001.6, "ns per ops/procs": 3936.98}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30036.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 249713944.0, "Ops per second": 8313579.02, "ns per ops": 120.29, "Ops per threads": 104047.0, "Ops per procs": 10404747.0, "Ops/sec/procs": 346399.13, "ns per ops/procs": 2886.84}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30001.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 742514150.0, "Ops per second": 24750471.0, "ns per ops": 40.0, "Ops per threads": 154690.0, "Ops per procs": 15469044.0, "Ops/sec/procs": 515634.0, "ns per ops/procs": 1939.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30014.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 180155283.0, "Total blocks": 97171310.0, "Ops per second": 6002371.84, "ns per ops": 166.6, "Ops per threads": 225194.0, "Ops per procs": 22519410.0, "Ops/sec/procs": 750296.48, "ns per ops/procs": 1332.81}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30058.739471, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 687087586.0, "Total blocks": 253121511.0, "Ops per second": 22858163.65, "ns per ops": 43.75, "Ops per threads": 143143.0, "Ops per procs": 14314324.0, "Ops/sec/procs": 476211.74, "ns per ops/procs": 2099.91}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30016.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 500310026.0, "Ops per second": 16677000.0, "ns per ops": 59.0, "Ops per threads": 69487.0, "Ops per procs": 6948750.0, "Ops/sec/procs": 231625.0, "ns per ops/procs": 4319.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30077.053453, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 265505726.0, "Total blocks": 104141233.0, "Ops per second": 8827517.84, "ns per ops": 113.28, "Ops per threads": 165941.0, "Ops per procs": 16594107.0, "Ops/sec/procs": 551719.87, "ns per ops/procs": 1812.51}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30027.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 165879077.0, "Total blocks": 92004563.0, "Ops per second": 5524272.95, "ns per ops": 181.02, "Ops per threads": 207348.0, "Ops per procs": 20734884.0, "Ops/sec/procs": 690534.12, "ns per ops/procs": 1448.15}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 170553870.0, "Ops per second": 5685129.0, "ns per ops": 176.0, "Ops per threads": 852769.0, "Ops per procs": 85276935.0, "Ops/sec/procs": 2842564.0, "ns per ops/procs": 352.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30055.486464, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 742444148.0, "Total blocks": 286437952.0, "Ops per second": 24702449.88, "ns per ops": 40.48, "Ops per threads": 154675.0, "Ops per procs": 15467586.0, "Ops/sec/procs": 514634.37, "ns per ops/procs": 1943.13}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30035.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 230627504.0, "Ops per second": 7678597.24, "ns per ops": 130.23, "Ops per threads": 144142.0, "Ops per procs": 14414219.0, "Ops/sec/procs": 479912.33, "ns per ops/procs": 2083.71}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30042.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 247652629.0, "Ops per second": 8243310.41, "ns per ops": 121.31, "Ops per threads": 103188.0, "Ops per procs": 10318859.0, "Ops/sec/procs": 343471.27, "ns per ops/procs": 2911.45}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30075.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 345247541.0, "Ops per second": 11508251.0, "ns per ops": 87.0, "Ops per threads": 215779.0, "Ops per procs": 21577971.0, "Ops/sec/procs": 719265.0, "ns per ops/procs": 1393.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30042.402195, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 522252296.0, "Total blocks": 188986436.0, "Ops per second": 17383839.44, "ns per ops": 57.52, "Ops per threads": 54401.0, "Ops per procs": 5440128.0, "Ops/sec/procs": 181081.66, "ns per ops/procs": 5522.37}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30096.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 522357988.0, "Total blocks": 289308861.0, "Ops per second": 17356373.14, "ns per ops": 57.62, "Ops per threads": 108824.0, "Ops per procs": 10882458.0, "Ops/sec/procs": 361591.11, "ns per ops/procs": 2765.55}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30026.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 384484013.0, "Total blocks": 204994787.0, "Ops per second": 12804669.83, "ns per ops": 78.1, "Ops per threads": 160201.0, "Ops per procs": 16020167.0, "Ops/sec/procs": 533527.91, "ns per ops/procs": 1874.32}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30050.57081, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1113465592.0, "Total blocks": 1212188.0, "Ops per second": 37053059.63, "ns per ops": 26.99, "Ops per threads": 11134655.0, "Ops per procs": 1113465592.0, "Ops/sec/procs": 37053059.63, "ns per ops/procs": 26.99}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30024.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 517511941.0, "Ops per second": 17250398.0, "ns per ops": 58.0, "Ops per threads": 215629.0, "Ops per procs": 21562997.0, "Ops/sec/procs": 718766.0, "ns per ops/procs": 1392.0}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30045.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 501141157.0, "Ops per second": 16679310.82, "ns per ops": 59.95, "Ops per threads": 34801.0, "Ops per procs": 3480146.0, "Ops/sec/procs": 115828.55, "ns per ops/procs": 8633.45}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30036.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 141078685.0, "Ops per second": 4696913.58, "ns per ops": 212.91, "Ops per threads": 176348.0, "Ops per procs": 17634835.0, "Ops/sec/procs": 587114.2, "ns per ops/procs": 1703.25}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30024.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 119364820.0, "Ops per second": 3975596.5, "ns per ops": 251.53, "Ops per threads": 596824.0, "Ops per procs": 59682410.0, "Ops/sec/procs": 1987798.25, "ns per ops/procs": 503.07}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30006.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 951888821.0, "Ops per second": 31729627.0, "ns per ops": 31.0, "Ops per threads": 49577.0, "Ops per procs": 4957754.0, "Ops/sec/procs": 165258.0, "ns per ops/procs": 6052.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30049.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 358426982.0, "Ops per second": 11927753.93, "ns per ops": 83.84, "Ops per threads": 74672.0, "Ops per procs": 7467228.0, "Ops/sec/procs": 248494.87, "ns per ops/procs": 4024.23}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30019.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 238123079.0, "Ops per second": 7937435.0, "ns per ops": 126.0, "Ops per threads": 297653.0, "Ops per procs": 29765384.0, "Ops/sec/procs": 992179.0, "ns per ops/procs": 1008.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30035.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 377428648.0, "Total blocks": 205166543.0, "Ops per second": 12565965.66, "ns per ops": 79.58, "Ops per threads": 157261.0, "Ops per procs": 15726193.0, "Ops/sec/procs": 523581.9, "ns per ops/procs": 1909.92}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 452430119.0, "Ops per second": 15081003.0, "ns per ops": 66.0, "Ops per threads": 4524301.0, "Ops per procs": 452430119.0, "Ops/sec/procs": 15081003.0, "ns per ops/procs": 66.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30044.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 367058537.0, "Ops per second": 12216999.34, "ns per ops": 81.85, "Ops per threads": 76470.0, "Ops per procs": 7647052.0, "Ops/sec/procs": 254520.82, "ns per ops/procs": 3928.95}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30007.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 164365200.0, "Ops per second": 5478840.0, "ns per ops": 182.0, "Ops per threads": 821826.0, "Ops per procs": 82182600.0, "Ops/sec/procs": 2739420.0, "ns per ops/procs": 365.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30029.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 162935628.0, "Total blocks": 88209952.0, "Ops per second": 5425811.93, "ns per ops": 184.3, "Ops per threads": 203669.0, "Ops per procs": 20366953.0, "Ops/sec/procs": 678226.49, "ns per ops/procs": 1474.43}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30068.742026, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 460005926.0, "Total blocks": 170092753.0, "Ops per second": 15298475.93, "ns per ops": 65.37, "Ops per threads": 63889.0, "Ops per procs": 6388971.0, "Ops/sec/procs": 212478.83, "ns per ops/procs": 4706.35}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30067.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 85459203.0, "Total blocks": 42730388.0, "Ops per second": 2842272.02, "ns per ops": 351.83, "Ops per threads": 427296.0, "Ops per procs": 42729601.0, "Ops/sec/procs": 1421136.01, "ns per ops/procs": 703.66}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30033.576943, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 531179122.0, "Total blocks": 200084700.0, "Ops per second": 17686175.81, "ns per ops": 56.54, "Ops per threads": 55331.0, "Ops per procs": 5533115.0, "Ops/sec/procs": 184231.0, "ns per ops/procs": 5427.97}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30060.494061, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 219109131.0, "Total blocks": 86857554.0, "Ops per second": 7288939.78, "ns per ops": 137.19, "Ops per threads": 273886.0, "Ops per procs": 27388641.0, "Ops/sec/procs": 911117.47, "ns per ops/procs": 1097.55}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30059.343755, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 619506152.0, "Total blocks": 263340247.0, "Ops per second": 20609437.02, "ns per ops": 48.52, "Ops per threads": 32265.0, "Ops per procs": 3226594.0, "Ops/sec/procs": 107340.82, "ns per ops/procs": 9316.12}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30023.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 378573124.0, "Ops per second": 12609192.96, "ns per ops": 79.31, "Ops per threads": 52579.0, "Ops per procs": 5257960.0, "Ops/sec/procs": 175127.68, "ns per ops/procs": 5710.12}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30060.864769, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 223391313.0, "Total blocks": 74260522.0, "Ops per second": 7431300.29, "ns per ops": 134.57, "Ops per threads": 279239.0, "Ops per procs": 27923914.0, "Ops/sec/procs": 928912.54, "ns per ops/procs": 1076.53}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30068.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 85508644.0, "Total blocks": 42754807.0, "Ops per second": 2843752.92, "ns per ops": 351.65, "Ops per threads": 427543.0, "Ops per procs": 42754322.0, "Ops/sec/procs": 1421876.46, "ns per ops/procs": 703.3}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30057.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 781399165.0, "Total blocks": 409292388.0, "Ops per second": 25997237.34, "ns per ops": 38.47, "Ops per threads": 40697.0, "Ops per procs": 4069787.0, "Ops/sec/procs": 135402.28, "ns per ops/procs": 7385.4}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30033.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 466809940.0, "Total blocks": 251740744.0, "Ops per second": 15542735.76, "ns per ops": 64.34, "Ops per threads": 48626.0, "Ops per procs": 4862603.0, "Ops/sec/procs": 161903.5, "ns per ops/procs": 6176.52}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30038.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 266349874.0, "Ops per second": 8866835.76, "ns per ops": 112.78, "Ops per threads": 110979.0, "Ops per procs": 11097911.0, "Ops/sec/procs": 369451.49, "ns per ops/procs": 2706.72}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30033.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 476585549.0, "Ops per second": 15868300.2, "ns per ops": 63.02, "Ops per threads": 33096.0, "Ops per procs": 3309621.0, "Ops/sec/procs": 110196.53, "ns per ops/procs": 9074.7}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30077.520313, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 287610076.0, "Total blocks": 111335741.0, "Ops per second": 9562293.47, "ns per ops": 104.58, "Ops per threads": 179756.0, "Ops per procs": 17975629.0, "Ops/sec/procs": 597643.34, "ns per ops/procs": 1673.24}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30054.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 450240816.0, "Ops per second": 14980985.07, "ns per ops": 66.75, "Ops per threads": 23450.0, "Ops per procs": 2345004.0, "Ops/sec/procs": 78025.96, "ns per ops/procs": 12816.25}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30000.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 808637754.0, "Ops per second": 26954591.0, "ns per ops": 37.0, "Ops per threads": 56155.0, "Ops per procs": 5615539.0, "Ops/sec/procs": 187184.0, "ns per ops/procs": 5342.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30019.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 478985519.0, "Ops per second": 15966183.0, "ns per ops": 62.0, "Ops per threads": 66525.0, "Ops per procs": 6652576.0, "Ops/sec/procs": 221752.0, "ns per ops/procs": 4512.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30094.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 134669709.0, "Total blocks": 81548061.0, "Ops per second": 4474937.36, "ns per ops": 223.47, "Ops per threads": 336674.0, "Ops per procs": 33667427.0, "Ops/sec/procs": 1118734.34, "ns per ops/procs": 893.87}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30043.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 457643042.0, "Ops per second": 15254768.0, "ns per ops": 65.0, "Ops per threads": 63561.0, "Ops per procs": 6356153.0, "Ops/sec/procs": 211871.0, "ns per ops/procs": 4726.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30065.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 390891857.0, "Total blocks": 204639137.0, "Ops per second": 13001144.84, "ns per ops": 76.92, "Ops per threads": 54290.0, "Ops per procs": 5429053.0, "Ops/sec/procs": 180571.46, "ns per ops/procs": 5537.97}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30070.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 230166366.0, "Ops per second": 7654116.87, "ns per ops": 130.65, "Ops per threads": 23975.0, "Ops per procs": 2397566.0, "Ops/sec/procs": 79730.38, "ns per ops/procs": 12542.27}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30089.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 549967367.0, "Total blocks": 305764209.0, "Ops per second": 18278017.38, "ns per ops": 54.71, "Ops per threads": 114576.0, "Ops per procs": 11457653.0, "Ops/sec/procs": 380792.03, "ns per ops/procs": 2626.11}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.842073, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 463825195.0, "Total blocks": 1633655.0, "Ops per second": 15434168.52, "ns per ops": 64.79, "Ops per threads": 2319125.0, "Ops per procs": 231912597.0, "Ops/sec/procs": 7717084.26, "ns per ops/procs": 129.58}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 135740700.0, "Ops per second": 4524465.56, "ns per ops": 221.02, "Ops per threads": 1357407.0, "Ops per procs": 135740700.0, "Ops/sec/procs": 4524465.56, "ns per ops/procs": 221.02}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30016.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 513351055.0, "Ops per second": 17111701.0, "ns per ops": 58.0, "Ops per threads": 213896.0, "Ops per procs": 21389627.0, "Ops/sec/procs": 712987.0, "ns per ops/procs": 1403.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30029.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 468134438.0, "Ops per second": 15604481.0, "ns per ops": 64.0, "Ops per threads": 65018.0, "Ops per procs": 6501867.0, "Ops/sec/procs": 216728.0, "ns per ops/procs": 4618.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30019.744764, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 454810209.0, "Total blocks": 162129964.0, "Ops per second": 15150368.95, "ns per ops": 66.0, "Ops per threads": 63168.0, "Ops per procs": 6316808.0, "Ops/sec/procs": 210421.79, "ns per ops/procs": 4752.36}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30060.231485, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 222990655.0, "Total blocks": 79159547.0, "Ops per second": 7418128.34, "ns per ops": 134.8, "Ops per threads": 278738.0, "Ops per procs": 27873831.0, "Ops/sec/procs": 927266.04, "ns per ops/procs": 1078.44}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30082.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 170892636.0, "Ops per second": 5696421.0, "ns per ops": 176.0, "Ops per threads": 427231.0, "Ops per procs": 42723159.0, "Ops/sec/procs": 1424105.0, "ns per ops/procs": 704.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30066.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 411215360.0, "Total blocks": 217108217.0, "Ops per second": 13676744.98, "ns per ops": 73.12, "Ops per threads": 57113.0, "Ops per procs": 5711324.0, "Ops/sec/procs": 189954.79, "ns per ops/procs": 5264.41}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30056.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 642662612.0, "Total blocks": 357623141.0, "Ops per second": 21381510.19, "ns per ops": 46.77, "Ops per threads": 44629.0, "Ops per procs": 4462934.0, "Ops/sec/procs": 148482.71, "ns per ops/procs": 6734.79}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30003.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 869612823.0, "Ops per second": 28987094.0, "ns per ops": 34.0, "Ops per threads": 60389.0, "Ops per procs": 6038977.0, "Ops/sec/procs": 201299.0, "ns per ops/procs": 4968.0}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30043.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 477149279.0, "Ops per second": 15881995.13, "ns per ops": 62.96, "Ops per threads": 33135.0, "Ops per procs": 3313536.0, "Ops/sec/procs": 110291.63, "ns per ops/procs": 9066.87}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30091.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 169323833.0, "Ops per second": 5644127.0, "ns per ops": 177.0, "Ops per threads": 423309.0, "Ops per procs": 42330958.0, "Ops/sec/procs": 1411031.0, "ns per ops/procs": 710.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30020.889497, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 344088416.0, "Total blocks": 139568979.0, "Ops per second": 11461632.94, "ns per ops": 87.25, "Ops per threads": 143370.0, "Ops per procs": 14337017.0, "Ops/sec/procs": 477568.04, "ns per ops/procs": 2093.94}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30039.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 164782537.0, "Ops per second": 5492751.0, "ns per ops": 182.0, "Ops per threads": 823912.0, "Ops per procs": 82391268.0, "Ops/sec/procs": 2746375.0, "ns per ops/procs": 364.0}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30064.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 258846597.0, "Ops per second": 8609687.7, "ns per ops": 116.15, "Ops per threads": 26963.0, "Ops per procs": 2696318.0, "Ops/sec/procs": 89684.25, "ns per ops/procs": 11150.23}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30041.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 480145745.0, "Ops per second": 15982742.27, "ns per ops": 62.57, "Ops per threads": 33343.0, "Ops per procs": 3334345.0, "Ops/sec/procs": 110991.27, "ns per ops/procs": 9009.72}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30029.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 160980841.0, "Ops per second": 5360812.39, "ns per ops": 186.54, "Ops per threads": 201226.0, "Ops per procs": 20122605.0, "Ops/sec/procs": 670101.55, "ns per ops/procs": 1492.31}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30076.849866, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 316343276.0, "Total blocks": 100926465.0, "Ops per second": 10517832.73, "ns per ops": 95.08, "Ops per threads": 197714.0, "Ops per procs": 19771454.0, "Ops/sec/procs": 657364.55, "ns per ops/procs": 1521.23}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30018.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 589982108.0, "Ops per second": 19666070.0, "ns per ops": 50.0, "Ops per threads": 61456.0, "Ops per procs": 6145646.0, "Ops/sec/procs": 204854.0, "ns per ops/procs": 4884.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30049.838344, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1110677565.0, "Total blocks": 317674.0, "Ops per second": 36961182.7, "ns per ops": 27.06, "Ops per threads": 11106775.0, "Ops per procs": 1110677565.0, "Ops/sec/procs": 36961182.7, "ns per ops/procs": 27.06}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30057.484533, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 766502659.0, "Total blocks": 307607398.0, "Ops per second": 25501224.43, "ns per ops": 39.21, "Ops per threads": 159688.0, "Ops per procs": 15968805.0, "Ops/sec/procs": 531275.51, "ns per ops/procs": 1882.26}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30050.143632, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 401946525.0, "Total blocks": 11172385.0, "Ops per second": 13375860.36, "ns per ops": 74.76, "Ops per threads": 2009732.0, "Ops per procs": 200973262.0, "Ops/sec/procs": 6687930.18, "ns per ops/procs": 149.52}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30083.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 477181457.0, "Total blocks": 254139914.0, "Ops per second": 15862090.91, "ns per ops": 63.04, "Ops per threads": 49706.0, "Ops per procs": 4970640.0, "Ops/sec/procs": 165230.11, "ns per ops/procs": 6052.17}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.178084, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 179842184.0, "Total blocks": 80077451.0, "Ops per second": 5983733.77, "ns per ops": 167.12, "Ops per threads": 449605.0, "Ops per procs": 44960546.0, "Ops/sec/procs": 1495933.44, "ns per ops/procs": 668.48}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.572035, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 487583502.0, "Total blocks": 2941067.0, "Ops per second": 16224891.71, "ns per ops": 61.63, "Ops per threads": 2437917.0, "Ops per procs": 243791751.0, "Ops/sec/procs": 8112445.86, "ns per ops/procs": 123.27}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30013.466197, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 567640934.0, "Total blocks": 226738693.0, "Ops per second": 18912874.98, "ns per ops": 52.87, "Ops per threads": 39419.0, "Ops per procs": 3941950.0, "Ops/sec/procs": 131339.41, "ns per ops/procs": 7613.86}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30032.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 155858703.0, "Ops per second": 5189680.49, "ns per ops": 192.69, "Ops per threads": 194823.0, "Ops per procs": 19482337.0, "Ops/sec/procs": 648710.06, "ns per ops/procs": 1541.52}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30001.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 812147459.0, "Ops per second": 27071581.0, "ns per ops": 36.0, "Ops per threads": 56399.0, "Ops per procs": 5639912.0, "Ops/sec/procs": 187997.0, "ns per ops/procs": 5319.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30090.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 142650007.0, "Total blocks": 86186903.0, "Ops per second": 4740742.44, "ns per ops": 210.94, "Ops per threads": 356625.0, "Ops per procs": 35662501.0, "Ops/sec/procs": 1185185.61, "ns per ops/procs": 843.75}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30060.011506, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 207566751.0, "Total blocks": 91707738.0, "Ops per second": 6905078.89, "ns per ops": 144.82, "Ops per threads": 259458.0, "Ops per procs": 25945843.0, "Ops/sec/procs": 863134.86, "ns per ops/procs": 1158.57}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30049.671976, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1116289004.0, "Total blocks": 702656.0, "Ops per second": 37148126.11, "ns per ops": 26.92, "Ops per threads": 11162890.0, "Ops per procs": 1116289004.0, "Ops/sec/procs": 37148126.11, "ns per ops/procs": 26.92}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30084.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 167926652.0, "Ops per second": 5597555.0, "ns per ops": 179.0, "Ops per threads": 419816.0, "Ops per procs": 41981663.0, "Ops/sec/procs": 1399388.0, "ns per ops/procs": 716.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30023.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 490960501.0, "Ops per second": 16365350.0, "ns per ops": 61.0, "Ops per threads": 68188.0, "Ops per procs": 6818895.0, "Ops/sec/procs": 227296.0, "ns per ops/procs": 4403.0}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30034.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 145357155.0, "Ops per second": 4839649.52, "ns per ops": 206.63, "Ops per threads": 181696.0, "Ops per procs": 18169644.0, "Ops/sec/procs": 604956.19, "ns per ops/procs": 1653.01}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30054.311007, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 835586639.0, "Total blocks": 324277673.0, "Ops per second": 27802555.14, "ns per ops": 35.97, "Ops per threads": 174080.0, "Ops per procs": 17408054.0, "Ops/sec/procs": 579219.9, "ns per ops/procs": 1726.46}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30070.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 263499687.0, "Ops per second": 8762625.31, "ns per ops": 114.12, "Ops per threads": 27447.0, "Ops per procs": 2744788.0, "Ops/sec/procs": 91277.35, "ns per ops/procs": 10955.62}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30003.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 740597009.0, "Ops per second": 24686566.0, "ns per ops": 40.0, "Ops per threads": 154291.0, "Ops per procs": 15429104.0, "Ops/sec/procs": 514303.0, "ns per ops/procs": 1944.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30008.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 805841343.0, "Ops per second": 26861378.0, "ns per ops": 37.0, "Ops per threads": 55961.0, "Ops per procs": 5596120.0, "Ops/sec/procs": 186537.0, "ns per ops/procs": 5362.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30053.065594, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 591336177.0, "Total blocks": 220889235.0, "Ops per second": 19676401.24, "ns per ops": 50.82, "Ops per threads": 41065.0, "Ops per procs": 4106501.0, "Ops/sec/procs": 136641.68, "ns per ops/procs": 7318.41}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30049.377858, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1120425624.0, "Total blocks": 0.0, "Ops per second": 37286150.46, "ns per ops": 26.82, "Ops per threads": 11204256.0, "Ops per procs": 1120425624.0, "Ops/sec/procs": 37286150.46, "ns per ops/procs": 26.82}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30016.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 625526728.0, "Ops per second": 20850890.0, "ns per ops": 47.0, "Ops per threads": 65159.0, "Ops per procs": 6515903.0, "Ops/sec/procs": 217196.0, "ns per ops/procs": 4606.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30012.931045, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 331443924.0, "Total blocks": 145793501.0, "Ops per second": 11043370.72, "ns per ops": 90.55, "Ops per threads": 138101.0, "Ops per procs": 13810163.0, "Ops/sec/procs": 460140.45, "ns per ops/procs": 2173.25}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30100.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 521155976.0, "Total blocks": 288944128.0, "Ops per second": 17314003.57, "ns per ops": 57.76, "Ops per threads": 108574.0, "Ops per procs": 10857416.0, "Ops/sec/procs": 360708.41, "ns per ops/procs": 2772.32}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 452724846.0, "Ops per second": 15090828.0, "ns per ops": 66.0, "Ops per threads": 4527248.0, "Ops per procs": 452724846.0, "Ops/sec/procs": 15090828.0, "ns per ops/procs": 66.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30008.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 951310808.0, "Ops per second": 31710360.0, "ns per ops": 31.0, "Ops per threads": 49547.0, "Ops per procs": 4954743.0, "Ops/sec/procs": 165158.0, "ns per ops/procs": 6056.0}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30037.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 249924594.0, "Ops per second": 8320505.39, "ns per ops": 120.19, "Ops per threads": 104135.0, "Ops per procs": 10413524.0, "Ops/sec/procs": 346687.72, "ns per ops/procs": 2884.44}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30049.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 448206023.0, "Ops per second": 14915520.07, "ns per ops": 67.04, "Ops per threads": 23344.0, "Ops per procs": 2334406.0, "Ops/sec/procs": 77685.0, "ns per ops/procs": 12872.5}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30053.084024, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 491621059.0, "Total blocks": 179273006.0, "Ops per second": 16358422.94, "ns per ops": 61.13, "Ops per threads": 68280.0, "Ops per procs": 6828070.0, "Ops/sec/procs": 227200.32, "ns per ops/procs": 4401.4}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30032.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 474761664.0, "Ops per second": 15825388.0, "ns per ops": 63.0, "Ops per threads": 65939.0, "Ops per procs": 6593912.0, "Ops/sec/procs": 219797.0, "ns per ops/procs": 4554.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 735077833.0, "Ops per second": 24502594.0, "ns per ops": 40.0, "Ops per threads": 153141.0, "Ops per procs": 15314121.0, "Ops/sec/procs": 510470.0, "ns per ops/procs": 1959.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30036.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 159902036.0, "Ops per second": 5323675.74, "ns per ops": 187.84, "Ops per threads": 399755.0, "Ops per procs": 39975509.0, "Ops/sec/procs": 1330918.93, "ns per ops/procs": 751.36}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30041.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 478925356.0, "Total blocks": 254349774.0, "Ops per second": 15942197.34, "ns per ops": 62.73, "Ops per threads": 49888.0, "Ops per procs": 4988805.0, "Ops/sec/procs": 166064.56, "ns per ops/procs": 6021.76}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30033.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 239348939.0, "Ops per second": 7969351.87, "ns per ops": 125.48, "Ops per threads": 149593.0, "Ops per procs": 14959308.0, "Ops/sec/procs": 498084.49, "ns per ops/procs": 2007.69}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30018.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 513943973.0, "Ops per second": 17131465.0, "ns per ops": 58.0, "Ops per threads": 214143.0, "Ops per procs": 21414332.0, "Ops/sec/procs": 713811.0, "ns per ops/procs": 1401.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30099.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 478614404.0, "Total blocks": 255187330.0, "Ops per second": 15900860.85, "ns per ops": 62.89, "Ops per threads": 49855.0, "Ops per procs": 4985566.0, "Ops/sec/procs": 165633.97, "ns per ops/procs": 6037.41}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30065.031744, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 732699431.0, "Total blocks": 319546814.0, "Ops per second": 24370485.86, "ns per ops": 41.03, "Ops per threads": 152645.0, "Ops per procs": 15264571.0, "Ops/sec/procs": 507718.46, "ns per ops/procs": 1969.6}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30089.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 185536523.0, "Ops per second": 6166248.23, "ns per ops": 162.17, "Ops per threads": 19326.0, "Ops per procs": 1932672.0, "Ops/sec/procs": 64231.75, "ns per ops/procs": 15568.62}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30095.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 134579689.0, "Total blocks": 81410262.0, "Ops per second": 4471816.3, "ns per ops": 223.62, "Ops per threads": 336449.0, "Ops per procs": 33644922.0, "Ops/sec/procs": 1117954.08, "ns per ops/procs": 894.49}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 451373537.0, "Ops per second": 15045784.0, "ns per ops": 66.0, "Ops per threads": 4513735.0, "Ops per procs": 451373537.0, "Ops/sec/procs": 15045784.0, "ns per ops/procs": 66.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30090.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 166908692.0, "Ops per second": 5563623.0, "ns per ops": 180.0, "Ops per threads": 417271.0, "Ops per procs": 41727173.0, "Ops/sec/procs": 1390905.0, "ns per ops/procs": 721.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30058.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 305987617.0, "Total blocks": 161039141.0, "Ops per second": 10179882.02, "ns per ops": 98.23, "Ops per threads": 127494.0, "Ops per procs": 12749484.0, "Ops/sec/procs": 424161.75, "ns per ops/procs": 2357.59}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30070.675157, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 503314692.0, "Total blocks": 187854856.0, "Ops per second": 16737725.02, "ns per ops": 59.75, "Ops per threads": 69904.0, "Ops per procs": 6990481.0, "Ops/sec/procs": 232468.4, "ns per ops/procs": 4301.66}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30016.423058, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 355165171.0, "Total blocks": 127878616.0, "Ops per second": 11832361.58, "ns per ops": 84.51, "Ops per threads": 147985.0, "Ops per procs": 14798548.0, "Ops/sec/procs": 493015.07, "ns per ops/procs": 2028.34}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30034.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 296946101.0, "Total blocks": 152856332.0, "Ops per second": 9886708.71, "ns per ops": 101.15, "Ops per threads": 185591.0, "Ops per procs": 18559131.0, "Ops/sec/procs": 617919.29, "ns per ops/procs": 1618.33}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 119630943.0, "Total blocks": 71028216.0, "Ops per second": 3987496.44, "ns per ops": 250.78, "Ops per threads": 299077.0, "Ops per procs": 29907735.0, "Ops/sec/procs": 996874.11, "ns per ops/procs": 1003.14}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30006.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 755226118.0, "Total blocks": 393756066.0, "Ops per second": 25168817.08, "ns per ops": 39.73, "Ops per threads": 39334.0, "Ops per procs": 3933469.0, "Ops/sec/procs": 131087.59, "ns per ops/procs": 7628.49}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 452356781.0, "Ops per second": 15078559.0, "ns per ops": 66.0, "Ops per threads": 4523567.0, "Ops per procs": 452356781.0, "Ops/sec/procs": 15078559.0, "ns per ops/procs": 66.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30048.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 363583907.0, "Ops per second": 12099775.33, "ns per ops": 82.65, "Ops per threads": 75746.0, "Ops per procs": 7574664.0, "Ops/sec/procs": 252078.65, "ns per ops/procs": 3967.02}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30045.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 431315733.0, "Ops per second": 14355496.99, "ns per ops": 69.66, "Ops per threads": 22464.0, "Ops per procs": 2246436.0, "Ops/sec/procs": 74768.21, "ns per ops/procs": 13374.67}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30015.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 175768988.0, "Total blocks": 95091004.0, "Ops per second": 5855937.68, "ns per ops": 170.77, "Ops per threads": 219711.0, "Ops per procs": 21971123.0, "Ops/sec/procs": 731992.21, "ns per ops/procs": 1366.13}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 452511273.0, "Ops per second": 15083709.0, "ns per ops": 66.0, "Ops per threads": 4525112.0, "Ops per procs": 452511273.0, "Ops/sec/procs": 15083709.0, "ns per ops/procs": 66.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30024.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 790703852.0, "Total blocks": 414441834.0, "Ops per second": 26335340.35, "ns per ops": 37.97, "Ops per threads": 41182.0, "Ops per procs": 4118249.0, "Ops/sec/procs": 137163.23, "ns per ops/procs": 7290.58}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 238838970.0, "Ops per second": 7954222.99, "ns per ops": 125.72, "Ops per threads": 149274.0, "Ops per procs": 14927435.0, "Ops/sec/procs": 497138.94, "ns per ops/procs": 2011.51}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 452782784.0, "Ops per second": 15092759.0, "ns per ops": 66.0, "Ops per threads": 4527827.0, "Ops per procs": 452782784.0, "Ops/sec/procs": 15092759.0, "ns per ops/procs": 66.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30010.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 468608627.0, "Total blocks": 250290887.0, "Ops per second": 15614893.18, "ns per ops": 64.04, "Ops per threads": 48813.0, "Ops per procs": 4881339.0, "Ops/sec/procs": 162655.14, "ns per ops/procs": 6147.98}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30006.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 832938221.0, "Ops per second": 27764607.0, "ns per ops": 36.0, "Ops per threads": 57842.0, "Ops per procs": 5784293.0, "Ops/sec/procs": 192809.0, "ns per ops/procs": 5187.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30080.078891, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 480835061.0, "Total blocks": 171792926.0, "Ops per second": 15985166.22, "ns per ops": 62.56, "Ops per threads": 66782.0, "Ops per procs": 6678264.0, "Ops/sec/procs": 222016.2, "ns per ops/procs": 4504.18}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30006.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 802748698.0, "Ops per second": 26758289.0, "ns per ops": 37.0, "Ops per threads": 55746.0, "Ops per procs": 5574643.0, "Ops/sec/procs": 185821.0, "ns per ops/procs": 5382.0}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30075.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 214400594.0, "Ops per second": 7128768.62, "ns per ops": 140.28, "Ops per threads": 22333.0, "Ops per procs": 2233339.0, "Ops/sec/procs": 74258.01, "ns per ops/procs": 13466.56}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30077.344657, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 285088935.0, "Total blocks": 115785001.0, "Ops per second": 9478527.39, "ns per ops": 105.5, "Ops per threads": 178180.0, "Ops per procs": 17818058.0, "Ops/sec/procs": 592407.96, "ns per ops/procs": 1688.03}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30029.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 360209102.0, "Ops per second": 11995064.06, "ns per ops": 83.37, "Ops per threads": 50029.0, "Ops per procs": 5002904.0, "Ops/sec/procs": 166598.11, "ns per ops/procs": 6002.47}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30012.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 657821563.0, "Total blocks": 363593509.0, "Ops per second": 21918218.1, "ns per ops": 45.62, "Ops per threads": 45682.0, "Ops per procs": 4568205.0, "Ops/sec/procs": 152209.85, "ns per ops/procs": 6569.88}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30049.402969, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 484868012.0, "Total blocks": 187188844.0, "Ops per second": 16135695.36, "ns per ops": 61.97, "Ops per threads": 67342.0, "Ops per procs": 6734277.0, "Ops/sec/procs": 224106.88, "ns per ops/procs": 4462.16}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30008.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 657112261.0, "Total blocks": 367893813.0, "Ops per second": 21897380.46, "ns per ops": 45.67, "Ops per threads": 45632.0, "Ops per procs": 4563279.0, "Ops/sec/procs": 152065.14, "ns per ops/procs": 6576.13}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30035.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 297434874.0, "Total blocks": 152913106.0, "Ops per second": 9902936.14, "ns per ops": 100.98, "Ops per threads": 185896.0, "Ops per procs": 18589679.0, "Ops/sec/procs": 618933.51, "ns per ops/procs": 1615.68}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30049.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 371478488.0, "Ops per second": 12362097.21, "ns per ops": 80.89, "Ops per threads": 77391.0, "Ops per procs": 7739135.0, "Ops/sec/procs": 257543.69, "ns per ops/procs": 3882.84}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30074.867334, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 303702180.0, "Total blocks": 117366068.0, "Ops per second": 10098205.14, "ns per ops": 99.03, "Ops per threads": 189813.0, "Ops per procs": 18981386.0, "Ops/sec/procs": 631137.82, "ns per ops/procs": 1584.44}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30050.765525, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 495133409.0, "Total blocks": 2444537.0, "Ops per second": 16476565.58, "ns per ops": 60.69, "Ops per threads": 2475667.0, "Ops per procs": 247566704.0, "Ops/sec/procs": 8238282.79, "ns per ops/procs": 121.38}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30020.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 172000623.0, "Total blocks": 94983587.0, "Ops per second": 5729440.51, "ns per ops": 174.54, "Ops per threads": 215000.0, "Ops per procs": 21500077.0, "Ops/sec/procs": 716180.06, "ns per ops/procs": 1396.3}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30048.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 366642131.0, "Ops per second": 12201877.79, "ns per ops": 81.95, "Ops per threads": 76383.0, "Ops per procs": 7638377.0, "Ops/sec/procs": 254205.79, "ns per ops/procs": 3933.82}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30077.574266, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 570575370.0, "Total blocks": 221897889.0, "Ops per second": 18970125.88, "ns per ops": 52.71, "Ops per threads": 39623.0, "Ops per procs": 3962328.0, "Ops/sec/procs": 131736.99, "ns per ops/procs": 7590.88}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30071.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 306335124.0, "Ops per second": 10186851.85, "ns per ops": 98.17, "Ops per threads": 31909.0, "Ops per procs": 3190990.0, "Ops/sec/procs": 106113.04, "ns per ops/procs": 9423.91}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30054.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 343561467.0, "Ops per second": 11452048.0, "ns per ops": 87.0, "Ops per threads": 214725.0, "Ops per procs": 21472591.0, "Ops/sec/procs": 715753.0, "ns per ops/procs": 1399.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 452430132.0, "Ops per second": 15081004.0, "ns per ops": 66.0, "Ops per threads": 4524301.0, "Ops per procs": 452430132.0, "Ops/sec/procs": 15081004.0, "ns per ops/procs": 66.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 452372430.0, "Ops per second": 15079081.0, "ns per ops": 66.0, "Ops per threads": 4523724.0, "Ops per procs": 452372430.0, "Ops/sec/procs": 15079081.0, "ns per ops/procs": 66.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30029.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 214527315.0, "Ops per second": 7143932.22, "ns per ops": 139.98, "Ops per threads": 134079.0, "Ops per procs": 13407957.0, "Ops/sec/procs": 446495.76, "ns per ops/procs": 2239.66}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30066.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 391550239.0, "Total blocks": 206452565.0, "Ops per second": 13022893.06, "ns per ops": 76.79, "Ops per threads": 54381.0, "Ops per procs": 5438197.0, "Ops/sec/procs": 180873.51, "ns per ops/procs": 5528.73}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30029.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 564434169.0, "Ops per second": 18795708.24, "ns per ops": 53.2, "Ops per threads": 78393.0, "Ops per procs": 7839363.0, "Ops/sec/procs": 261051.5, "ns per ops/procs": 3830.66}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30012.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 507119225.0, "Ops per second": 16903974.0, "ns per ops": 59.0, "Ops per threads": 211299.0, "Ops per procs": 21129967.0, "Ops/sec/procs": 704332.0, "ns per ops/procs": 1420.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30011.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 649827554.0, "Ops per second": 21660918.0, "ns per ops": 46.0, "Ops per threads": 67690.0, "Ops per procs": 6769037.0, "Ops/sec/procs": 225634.0, "ns per ops/procs": 4433.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30058.874776, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 284073580.0, "Total blocks": 81955526.0, "Ops per second": 9450572.66, "ns per ops": 105.81, "Ops per threads": 177545.0, "Ops per procs": 17754598.0, "Ops/sec/procs": 590660.79, "ns per ops/procs": 1693.02}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30096.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 134932099.0, "Total blocks": 81668875.0, "Ops per second": 4483251.23, "ns per ops": 223.05, "Ops per threads": 337330.0, "Ops per procs": 33733024.0, "Ops/sec/procs": 1120812.81, "ns per ops/procs": 892.21}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 650179281.0, "Ops per second": 21672642.0, "ns per ops": 46.0, "Ops per threads": 67727.0, "Ops per procs": 6772700.0, "Ops/sec/procs": 225756.0, "ns per ops/procs": 4430.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30020.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 508029399.0, "Ops per second": 16934313.0, "ns per ops": 59.0, "Ops per threads": 211678.0, "Ops per procs": 21167891.0, "Ops/sec/procs": 705596.0, "ns per ops/procs": 1418.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30055.772759, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 784153747.0, "Total blocks": 326956548.0, "Ops per second": 26089954.61, "ns per ops": 38.33, "Ops per threads": 163365.0, "Ops per procs": 16336536.0, "Ops/sec/procs": 543540.72, "ns per ops/procs": 1839.79}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.820718, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 176906031.0, "Total blocks": 78353618.0, "Ops per second": 5885915.83, "ns per ops": 169.9, "Ops per threads": 442265.0, "Ops per procs": 44226507.0, "Ops/sec/procs": 1471478.96, "ns per ops/procs": 679.59}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30068.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 455192979.0, "Ops per second": 15138488.46, "ns per ops": 66.06, "Ops per threads": 23707.0, "Ops per procs": 2370796.0, "Ops/sec/procs": 78846.29, "ns per ops/procs": 12682.9}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 136537625.0, "Ops per second": 4551004.69, "ns per ops": 219.73, "Ops per threads": 1365376.0, "Ops per procs": 136537625.0, "Ops/sec/procs": 4551004.69, "ns per ops/procs": 219.73}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30007.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 622395356.0, "Ops per second": 20746511.0, "ns per ops": 48.0, "Ops per threads": 64832.0, "Ops per procs": 6483284.0, "Ops/sec/procs": 216109.0, "ns per ops/procs": 4628.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30034.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 149390621.0, "Ops per second": 4973885.77, "ns per ops": 201.05, "Ops per threads": 373476.0, "Ops per procs": 37347655.0, "Ops/sec/procs": 1243471.44, "ns per ops/procs": 804.2}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30022.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 512612954.0, "Ops per second": 17087098.0, "ns per ops": 58.0, "Ops per threads": 213588.0, "Ops per procs": 21358873.0, "Ops/sec/procs": 711962.0, "ns per ops/procs": 1405.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30027.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 652534102.0, "Total blocks": 362801914.0, "Ops per second": 21731442.83, "ns per ops": 46.02, "Ops per threads": 45314.0, "Ops per procs": 4531486.0, "Ops/sec/procs": 150912.8, "ns per ops/procs": 6626.34}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30072.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 393826396.0, "Total blocks": 208226830.0, "Ops per second": 13095979.9, "ns per ops": 76.36, "Ops per threads": 54698.0, "Ops per procs": 5469811.0, "Ops/sec/procs": 181888.61, "ns per ops/procs": 5497.87}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30063.774902, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 645099807.0, "Total blocks": 253168450.0, "Ops per second": 21457711.45, "ns per ops": 46.6, "Ops per threads": 33598.0, "Ops per procs": 3359894.0, "Ops/sec/procs": 111758.91, "ns per ops/procs": 8947.83}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30049.50978, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1120336443.0, "Total blocks": 0.0, "Ops per second": 37283018.96, "ns per ops": 26.82, "Ops per threads": 11203364.0, "Ops per procs": 1120336443.0, "Ops/sec/procs": 37283018.96, "ns per ops/procs": 26.82}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30061.110937, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 205495127.0, "Total blocks": 85125806.0, "Ops per second": 6835912.6, "ns per ops": 146.29, "Ops per threads": 256868.0, "Ops per procs": 25686890.0, "Ops/sec/procs": 854489.07, "ns per ops/procs": 1170.29}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30077.486964, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 285040559.0, "Total blocks": 110580079.0, "Ops per second": 9476874.16, "ns per ops": 105.52, "Ops per threads": 178150.0, "Ops per procs": 17815034.0, "Ops/sec/procs": 592304.63, "ns per ops/procs": 1688.32}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30017.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 173751775.0, "Total blocks": 93937021.0, "Ops per second": 5788322.53, "ns per ops": 172.76, "Ops per threads": 217189.0, "Ops per procs": 21718971.0, "Ops/sec/procs": 723540.32, "ns per ops/procs": 1382.09}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30049.633948, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1117951720.0, "Total blocks": 720451.0, "Ops per second": 37203505.44, "ns per ops": 26.88, "Ops per threads": 11179517.0, "Ops per procs": 1117951720.0, "Ops/sec/procs": 37203505.44, "ns per ops/procs": 26.88}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30052.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 464702027.0, "Ops per second": 15463081.11, "ns per ops": 64.67, "Ops per threads": 24203.0, "Ops per procs": 2420323.0, "Ops/sec/procs": 80536.88, "ns per ops/procs": 12416.67}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30087.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 210674621.0, "Ops per second": 7002029.83, "ns per ops": 142.82, "Ops per threads": 21945.0, "Ops per procs": 2194527.0, "Ops/sec/procs": 72937.81, "ns per ops/procs": 13710.31}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30067.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 86031081.0, "Total blocks": 43016291.0, "Ops per second": 2861308.6, "ns per ops": 349.49, "Ops per threads": 430155.0, "Ops per procs": 43015540.0, "Ops/sec/procs": 1430654.3, "ns per ops/procs": 698.98}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30031.917858, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 626411360.0, "Total blocks": 250783670.0, "Ops per second": 20858187.04, "ns per ops": 47.94, "Ops per threads": 32625.0, "Ops per procs": 3262559.0, "Ops/sec/procs": 108636.39, "ns per ops/procs": 9205.02}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30036.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 237167983.0, "Ops per second": 7905599.0, "ns per ops": 126.0, "Ops per threads": 296459.0, "Ops per procs": 29645997.0, "Ops/sec/procs": 988199.0, "ns per ops/procs": 1013.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30005.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 237453345.0, "Ops per second": 7915111.0, "ns per ops": 126.0, "Ops per threads": 296816.0, "Ops per procs": 29681668.0, "Ops/sec/procs": 989388.0, "ns per ops/procs": 1010.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30052.111716, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 434220164.0, "Total blocks": 1513985.0, "Ops per second": 14448906.89, "ns per ops": 69.21, "Ops per threads": 2171100.0, "Ops per procs": 217110082.0, "Ops/sec/procs": 7224453.44, "ns per ops/procs": 138.42}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30063.986202, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 765645683.0, "Total blocks": 265375583.0, "Ops per second": 25467204.44, "ns per ops": 39.27, "Ops per threads": 159509.0, "Ops per procs": 15950951.0, "Ops/sec/procs": 530566.76, "ns per ops/procs": 1884.78}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30098.633525, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 605018080.0, "Total blocks": 183793705.0, "Ops per second": 20101180.99, "ns per ops": 49.75, "Ops per threads": 42015.0, "Ops per procs": 4201514.0, "Ops/sec/procs": 139591.53, "ns per ops/procs": 7163.76}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30027.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 168515144.0, "Ops per second": 5612021.97, "ns per ops": 178.19, "Ops per threads": 210643.0, "Ops per procs": 21064393.0, "Ops/sec/procs": 701502.75, "ns per ops/procs": 1425.51}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30073.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 801123536.0, "Total blocks": 420555085.0, "Ops per second": 26638903.44, "ns per ops": 37.54, "Ops per threads": 41725.0, "Ops per procs": 4172518.0, "Ops/sec/procs": 138744.29, "ns per ops/procs": 7207.5}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30046.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 365855121.0, "Ops per second": 12176176.66, "ns per ops": 82.13, "Ops per threads": 76219.0, "Ops per procs": 7621981.0, "Ops/sec/procs": 253670.35, "ns per ops/procs": 3942.12}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 120702552.0, "Total blocks": 72431015.0, "Ops per second": 4023118.45, "ns per ops": 248.56, "Ops per threads": 301756.0, "Ops per procs": 30175638.0, "Ops/sec/procs": 1005779.61, "ns per ops/procs": 994.25}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30087.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 633597480.0, "Total blocks": 352075419.0, "Ops per second": 21058564.32, "ns per ops": 47.49, "Ops per threads": 43999.0, "Ops per procs": 4399982.0, "Ops/sec/procs": 146240.03, "ns per ops/procs": 6838.07}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 119367181.0, "Ops per second": 3975807.64, "ns per ops": 251.52, "Ops per threads": 596835.0, "Ops per procs": 59683590.0, "Ops/sec/procs": 1987903.82, "ns per ops/procs": 503.04}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30053.303684, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 161631564.0, "Total blocks": 78138735.0, "Ops per second": 5378162.94, "ns per ops": 185.94, "Ops per threads": 404078.0, "Ops per procs": 40407891.0, "Ops/sec/procs": 1344540.73, "ns per ops/procs": 743.75}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30033.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 462165593.0, "Ops per second": 15405519.0, "ns per ops": 64.0, "Ops per threads": 64189.0, "Ops per procs": 6418966.0, "Ops/sec/procs": 213965.0, "ns per ops/procs": 4678.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30045.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 359970193.0, "Ops per second": 11980775.68, "ns per ops": 83.47, "Ops per threads": 74993.0, "Ops per procs": 7499379.0, "Ops/sec/procs": 249599.49, "ns per ops/procs": 4006.42}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30061.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 172098736.0, "Ops per second": 5736624.0, "ns per ops": 174.0, "Ops per threads": 860493.0, "Ops per procs": 86049368.0, "Ops/sec/procs": 2868312.0, "ns per ops/procs": 349.0}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30048.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 461641412.0, "Ops per second": 15363033.39, "ns per ops": 65.09, "Ops per threads": 24043.0, "Ops per procs": 2404382.0, "Ops/sec/procs": 80015.8, "ns per ops/procs": 12497.53}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30091.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 169352572.0, "Ops per second": 5645085.0, "ns per ops": 177.0, "Ops per threads": 423381.0, "Ops per procs": 42338143.0, "Ops/sec/procs": 1411271.0, "ns per ops/procs": 710.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30021.801801, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 343745748.0, "Total blocks": 110778421.0, "Ops per second": 11449870.67, "ns per ops": 87.34, "Ops per threads": 143227.0, "Ops per procs": 14322739.0, "Ops/sec/procs": 477077.94, "ns per ops/procs": 2096.09}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30038.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 255137108.0, "Ops per second": 8493579.35, "ns per ops": 117.74, "Ops per threads": 106307.0, "Ops per procs": 10630712.0, "Ops/sec/procs": 353899.14, "ns per ops/procs": 2825.66}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30013.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 179724159.0, "Total blocks": 96901335.0, "Ops per second": 5988209.27, "ns per ops": 166.99, "Ops per threads": 224655.0, "Ops per procs": 22465519.0, "Ops/sec/procs": 748526.16, "ns per ops/procs": 1335.96}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30002.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 733554652.0, "Ops per second": 24451821.0, "ns per ops": 40.0, "Ops per threads": 152823.0, "Ops per procs": 15282388.0, "Ops/sec/procs": 509412.0, "ns per ops/procs": 1963.0}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30035.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 137606748.0, "Ops per second": 4581513.05, "ns per ops": 218.27, "Ops per threads": 172008.0, "Ops per procs": 17200843.0, "Ops/sec/procs": 572689.13, "ns per ops/procs": 1746.15}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30037.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 469389541.0, "Ops per second": 15626630.1, "ns per ops": 63.99, "Ops per threads": 32596.0, "Ops per procs": 3259649.0, "Ops/sec/procs": 108518.26, "ns per ops/procs": 9215.04}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30027.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 240536745.0, "Ops per second": 8010440.07, "ns per ops": 124.84, "Ops per threads": 150335.0, "Ops per procs": 15033546.0, "Ops/sec/procs": 500652.5, "ns per ops/procs": 1997.39}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30096.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 167663480.0, "Ops per second": 5588782.0, "ns per ops": 179.0, "Ops per threads": 419158.0, "Ops per procs": 41915870.0, "Ops/sec/procs": 1397195.0, "ns per ops/procs": 718.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30035.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 178235273.0, "Ops per second": 5941175.0, "ns per ops": 168.0, "Ops per threads": 891176.0, "Ops per procs": 89117636.0, "Ops/sec/procs": 2970587.0, "ns per ops/procs": 337.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30050.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 170033768.0, "Ops per second": 5667792.0, "ns per ops": 176.0, "Ops per threads": 425084.0, "Ops per procs": 42508442.0, "Ops/sec/procs": 1416948.0, "ns per ops/procs": 706.0}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30016.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 137649416.0, "Ops per second": 4585825.65, "ns per ops": 218.06, "Ops per threads": 1376494.0, "Ops per procs": 137649416.0, "Ops/sec/procs": 4585825.65, "ns per ops/procs": 218.06}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30022.116103, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 356190239.0, "Total blocks": 132527663.0, "Ops per second": 11864261.59, "ns per ops": 84.29, "Ops per threads": 148412.0, "Ops per procs": 14841259.0, "Ops/sec/procs": 494344.23, "ns per ops/procs": 2022.88}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30046.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 136881187.0, "Ops per second": 4555601.17, "ns per ops": 219.51, "Ops per threads": 1368811.0, "Ops per procs": 136881187.0, "Ops/sec/procs": 4555601.17, "ns per ops/procs": 219.51}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30086.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 656961846.0, "Total blocks": 366295621.0, "Ops per second": 21835958.29, "ns per ops": 45.8, "Ops per threads": 45622.0, "Ops per procs": 4562235.0, "Ops/sec/procs": 151638.6, "ns per ops/procs": 6594.63}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 135792295.0, "Ops per second": 4526179.95, "ns per ops": 220.94, "Ops per threads": 1357922.0, "Ops per procs": 135792295.0, "Ops/sec/procs": 4526179.95, "ns per ops/procs": 220.94}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30031.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 736769640.0, "Ops per second": 24533626.13, "ns per ops": 40.76, "Ops per threads": 102329.0, "Ops per procs": 10232911.0, "Ops/sec/procs": 340744.81, "ns per ops/procs": 2934.75}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30017.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 511819250.0, "Ops per second": 17060641.0, "ns per ops": 58.0, "Ops per threads": 213258.0, "Ops per procs": 21325802.0, "Ops/sec/procs": 710860.0, "ns per ops/procs": 1407.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30008.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 955728133.0, "Ops per second": 31857604.0, "ns per ops": 31.0, "Ops per threads": 49777.0, "Ops per procs": 4977750.0, "Ops/sec/procs": 165925.0, "ns per ops/procs": 6028.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30006.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 974543694.0, "Ops per second": 32484789.0, "ns per ops": 30.0, "Ops per threads": 50757.0, "Ops per procs": 5075748.0, "Ops/sec/procs": 169191.0, "ns per ops/procs": 5911.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30056.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 307116656.0, "Total blocks": 161436712.0, "Ops per second": 10217837.17, "ns per ops": 97.87, "Ops per threads": 127965.0, "Ops per procs": 12796527.0, "Ops/sec/procs": 425743.22, "ns per ops/procs": 2348.83}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30038.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 161436554.0, "Ops per second": 5374361.62, "ns per ops": 186.07, "Ops per threads": 403591.0, "Ops per procs": 40359138.0, "Ops/sec/procs": 1343590.4, "ns per ops/procs": 744.27}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30045.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 356327764.0, "Total blocks": 188651041.0, "Ops per second": 11859516.31, "ns per ops": 84.32, "Ops per threads": 148469.0, "Ops per procs": 14846990.0, "Ops/sec/procs": 494146.51, "ns per ops/procs": 2023.69}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30094.912645, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 532276715.0, "Total blocks": 208683163.0, "Ops per second": 17686601.1, "ns per ops": 56.54, "Ops per threads": 36963.0, "Ops per procs": 3696366.0, "Ops/sec/procs": 122823.62, "ns per ops/procs": 8141.76}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30050.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 370993004.0, "Ops per second": 12345632.42, "ns per ops": 81.0, "Ops per threads": 38645.0, "Ops per procs": 3864510.0, "Ops/sec/procs": 128600.34, "ns per ops/procs": 7776.03}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30083.575516, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 490128938.0, "Total blocks": 181074611.0, "Ops per second": 16292243.51, "ns per ops": 61.38, "Ops per threads": 68073.0, "Ops per procs": 6807346.0, "Ops/sec/procs": 226281.16, "ns per ops/procs": 4419.28}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30050.679337, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 416326850.0, "Total blocks": 8761134.0, "Ops per second": 13854157.68, "ns per ops": 72.18, "Ops per threads": 2081634.0, "Ops per procs": 208163425.0, "Ops/sec/procs": 6927078.84, "ns per ops/procs": 144.36}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30060.892739, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 225836807.0, "Total blocks": 56119540.0, "Ops per second": 7512644.72, "ns per ops": 133.11, "Ops per threads": 282296.0, "Ops per procs": 28229600.0, "Ops/sec/procs": 939080.59, "ns per ops/procs": 1064.87}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192522908.0, "Total blocks": 0.0, "Ops per second": 6411692.34, "ns per ops": 155.97, "Ops per threads": 1925229.0, "Ops per procs": 192522908.0, "Ops/sec/procs": 6411692.34, "ns per ops/procs": 155.97}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30098.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 636783071.0, "Total blocks": 355088910.0, "Ops per second": 21156817.58, "ns per ops": 47.27, "Ops per threads": 44221.0, "Ops per procs": 4422104.0, "Ops/sec/procs": 146922.34, "ns per ops/procs": 6806.32}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 168350134.0, "Total blocks": 91816218.0, "Ops per second": 5607492.03, "ns per ops": 178.33, "Ops per threads": 210437.0, "Ops per procs": 21043766.0, "Ops/sec/procs": 700936.5, "ns per ops/procs": 1426.66}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30087.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 192376565.0, "Ops per second": 6393857.42, "ns per ops": 156.4, "Ops per threads": 20039.0, "Ops per procs": 2003922.0, "Ops/sec/procs": 66602.68, "ns per ops/procs": 15014.41}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30033.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 212043987.0, "Ops per second": 7060346.63, "ns per ops": 141.64, "Ops per threads": 132527.0, "Ops per procs": 13252749.0, "Ops/sec/procs": 441271.66, "ns per ops/procs": 2266.18}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30045.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 483616726.0, "Ops per second": 16095966.07, "ns per ops": 62.13, "Ops per threads": 33584.0, "Ops per procs": 3358449.0, "Ops/sec/procs": 111777.54, "ns per ops/procs": 8946.34}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30055.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 345484092.0, "Ops per second": 11516136.0, "ns per ops": 86.0, "Ops per threads": 215927.0, "Ops per procs": 21592755.0, "Ops/sec/procs": 719758.0, "ns per ops/procs": 1391.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.97428, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 459641650.0, "Total blocks": 8602266.0, "Ops per second": 15294890.3, "ns per ops": 65.38, "Ops per threads": 2298208.0, "Ops per procs": 229820825.0, "Ops/sec/procs": 7647445.15, "ns per ops/procs": 130.76}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30046.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 489208923.0, "Ops per second": 16281941.96, "ns per ops": 61.42, "Ops per threads": 33972.0, "Ops per procs": 3397284.0, "Ops/sec/procs": 113069.04, "ns per ops/procs": 8844.15}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30029.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 156098140.0, "Ops per second": 5198109.26, "ns per ops": 192.38, "Ops per threads": 195122.0, "Ops per procs": 19512267.0, "Ops/sec/procs": 649763.66, "ns per ops/procs": 1539.02}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30049.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 250210439.0, "Total blocks": 127812747.0, "Ops per second": 8326659.57, "ns per ops": 120.1, "Ops per threads": 156381.0, "Ops per procs": 15638152.0, "Ops/sec/procs": 520416.22, "ns per ops/procs": 1921.54}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 191267483.0, "Ops per second": 6354615.15, "ns per ops": 157.37, "Ops per threads": 19923.0, "Ops per procs": 1992369.0, "Ops/sec/procs": 66193.91, "ns per ops/procs": 15107.13}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30048.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 405128175.0, "Total blocks": 212150874.0, "Ops per second": 13482295.02, "ns per ops": 74.17, "Ops per threads": 56267.0, "Ops per procs": 5626780.0, "Ops/sec/procs": 187254.1, "ns per ops/procs": 5340.34}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30028.212803, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 531021362.0, "Total blocks": 202286909.0, "Ops per second": 17684081.48, "ns per ops": 56.55, "Ops per threads": 55314.0, "Ops per procs": 5531472.0, "Ops/sec/procs": 184209.18, "ns per ops/procs": 5428.61}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 971737850.0, "Ops per second": 32391261.0, "ns per ops": 30.0, "Ops per threads": 50611.0, "Ops per procs": 5061134.0, "Ops/sec/procs": 168704.0, "ns per ops/procs": 5928.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30041.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 349955352.0, "Total blocks": 187554488.0, "Ops per second": 11649257.26, "ns per ops": 85.84, "Ops per threads": 145814.0, "Ops per procs": 14581473.0, "Ops/sec/procs": 485385.72, "ns per ops/procs": 2060.22}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30002.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 826261138.0, "Ops per second": 27542037.0, "ns per ops": 36.0, "Ops per threads": 57379.0, "Ops per procs": 5737924.0, "Ops/sec/procs": 191264.0, "ns per ops/procs": 5228.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30065.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 343355816.0, "Ops per second": 11445193.0, "ns per ops": 87.0, "Ops per threads": 214597.0, "Ops per procs": 21459738.0, "Ops/sec/procs": 715324.0, "ns per ops/procs": 1400.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.937598, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 171565227.0, "Total blocks": 75883485.0, "Ops per second": 5708197.47, "ns per ops": 175.19, "Ops per threads": 428913.0, "Ops per procs": 42891306.0, "Ops/sec/procs": 1427049.37, "ns per ops/procs": 700.75}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30015.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 513746235.0, "Ops per second": 17124874.0, "ns per ops": 58.0, "Ops per threads": 214060.0, "Ops per procs": 21406093.0, "Ops/sec/procs": 713536.0, "ns per ops/procs": 1402.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30068.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 785005185.0, "Total blocks": 411442585.0, "Ops per second": 26107484.95, "ns per ops": 38.3, "Ops per threads": 40885.0, "Ops per procs": 4088568.0, "Ops/sec/procs": 135976.48, "ns per ops/procs": 7354.21}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30058.567572, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 203968825.0, "Total blocks": 88742559.0, "Ops per second": 6785713.41, "ns per ops": 147.37, "Ops per threads": 254961.0, "Ops per procs": 25496103.0, "Ops/sec/procs": 848214.18, "ns per ops/procs": 1178.95}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30032.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 389924078.0, "Ops per second": 12983304.98, "ns per ops": 77.02, "Ops per threads": 54156.0, "Ops per procs": 5415612.0, "Ops/sec/procs": 180323.68, "ns per ops/procs": 5545.58}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30035.963074, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 572893968.0, "Total blocks": 234408896.0, "Ops per second": 19073600.76, "ns per ops": 52.43, "Ops per threads": 29838.0, "Ops per procs": 2983822.0, "Ops/sec/procs": 99341.67, "ns per ops/procs": 10066.27}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30030.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 179700422.0, "Ops per second": 5990014.0, "ns per ops": 167.0, "Ops per threads": 898502.0, "Ops per procs": 89850211.0, "Ops/sec/procs": 2995007.0, "ns per ops/procs": 334.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30020.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 512642615.0, "Ops per second": 17088087.0, "ns per ops": 58.0, "Ops per threads": 213601.0, "Ops per procs": 21360108.0, "Ops/sec/procs": 712003.0, "ns per ops/procs": 1405.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30022.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 771401796.0, "Total blocks": 404823619.0, "Ops per second": 25693853.24, "ns per ops": 38.92, "Ops per threads": 40177.0, "Ops per procs": 4017717.0, "Ops/sec/procs": 133822.15, "ns per ops/procs": 7472.61}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30061.184537, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 207395030.0, "Total blocks": 72728272.0, "Ops per second": 6899097.06, "ns per ops": 144.95, "Ops per threads": 259243.0, "Ops per procs": 25924378.0, "Ops/sec/procs": 862387.13, "ns per ops/procs": 1159.57}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30041.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 794657846.0, "Total blocks": 418198460.0, "Ops per second": 26452326.61, "ns per ops": 37.8, "Ops per threads": 41388.0, "Ops per procs": 4138842.0, "Ops/sec/procs": 137772.53, "ns per ops/procs": 7258.34}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30027.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192231095.0, "Total blocks": 0.0, "Ops per second": 6401915.57, "ns per ops": 156.2, "Ops per threads": 1922310.0, "Ops per procs": 192231095.0, "Ops/sec/procs": 6401915.57, "ns per ops/procs": 156.2}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30039.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 254701865.0, "Ops per second": 8478964.28, "ns per ops": 117.94, "Ops per threads": 106125.0, "Ops per procs": 10612577.0, "Ops/sec/procs": 353290.18, "ns per ops/procs": 2830.53}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30037.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 480215402.0, "Total blocks": 256972886.0, "Ops per second": 15987028.39, "ns per ops": 62.55, "Ops per threads": 50022.0, "Ops per procs": 5002243.0, "Ops/sec/procs": 166531.55, "ns per ops/procs": 6004.87}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30006.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 739950307.0, "Ops per second": 24665010.0, "ns per ops": 40.0, "Ops per threads": 154156.0, "Ops per procs": 15415631.0, "Ops/sec/procs": 513854.0, "ns per ops/procs": 1946.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30049.474963, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1120716566.0, "Total blocks": 115421.0, "Ops per second": 37295712.07, "ns per ops": 26.81, "Ops per threads": 11207165.0, "Ops per procs": 1120716566.0, "Ops/sec/procs": 37295712.07, "ns per ops/procs": 26.81}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30004.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 871876782.0, "Ops per second": 29062559.0, "ns per ops": 34.0, "Ops per threads": 60546.0, "Ops per procs": 6054699.0, "Ops/sec/procs": 201823.0, "ns per ops/procs": 4955.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30008.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 956532274.0, "Ops per second": 31884409.0, "ns per ops": 31.0, "Ops per threads": 49819.0, "Ops per procs": 4981938.0, "Ops/sec/procs": 166064.0, "ns per ops/procs": 6023.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30006.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 886060358.0, "Ops per second": 29535345.0, "ns per ops": 33.0, "Ops per threads": 61531.0, "Ops per procs": 6153196.0, "Ops/sec/procs": 205106.0, "ns per ops/procs": 4876.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30002.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 234699702.0, "Ops per second": 7823323.0, "ns per ops": 127.0, "Ops per threads": 293374.0, "Ops per procs": 29337462.0, "Ops/sec/procs": 977915.0, "ns per ops/procs": 1022.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30063.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 656149421.0, "Total blocks": 365153372.0, "Ops per second": 21825105.6, "ns per ops": 45.82, "Ops per threads": 45565.0, "Ops per procs": 4556593.0, "Ops/sec/procs": 151563.23, "ns per ops/procs": 6597.91}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.590616, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 177082160.0, "Total blocks": 78498505.0, "Ops per second": 5891821.0, "ns per ops": 169.73, "Ops per threads": 442705.0, "Ops per procs": 44270540.0, "Ops/sec/procs": 1472955.25, "ns per ops/procs": 678.91}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30032.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 145894469.0, "Ops per second": 4857860.16, "ns per ops": 205.85, "Ops per threads": 364736.0, "Ops per procs": 36473617.0, "Ops/sec/procs": 1214465.04, "ns per ops/procs": 823.41}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30031.724967, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 802530897.0, "Total blocks": 275581130.0, "Ops per second": 26722770.6, "ns per ops": 37.42, "Ops per threads": 167193.0, "Ops per procs": 16719393.0, "Ops/sec/procs": 556724.39, "ns per ops/procs": 1796.22}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30066.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 86442838.0, "Total blocks": 43222700.0, "Ops per second": 2875084.82, "ns per ops": 347.82, "Ops per threads": 432214.0, "Ops per procs": 43221419.0, "Ops/sec/procs": 1437542.41, "ns per ops/procs": 695.63}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30021.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 171212219.0, "Total blocks": 94581997.0, "Ops per second": 5702940.68, "ns per ops": 175.35, "Ops per threads": 214015.0, "Ops per procs": 21401527.0, "Ops/sec/procs": 712867.59, "ns per ops/procs": 1402.79}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.948068, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 441411390.0, "Total blocks": 419365.0, "Ops per second": 14688278.74, "ns per ops": 68.08, "Ops per threads": 2207056.0, "Ops per procs": 220705695.0, "Ops/sec/procs": 7344139.37, "ns per ops/procs": 136.16}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30025.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 763854440.0, "Total blocks": 401265880.0, "Ops per second": 25440578.08, "ns per ops": 39.31, "Ops per threads": 39784.0, "Ops per procs": 3978408.0, "Ops/sec/procs": 132503.01, "ns per ops/procs": 7547.0}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30026.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 527730164.0, "Ops per second": 17575521.8, "ns per ops": 56.9, "Ops per threads": 73295.0, "Ops per procs": 7329585.0, "Ops/sec/procs": 244104.47, "ns per ops/procs": 4096.61}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30033.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 146323851.0, "Ops per second": 4872075.55, "ns per ops": 205.25, "Ops per threads": 182904.0, "Ops per procs": 18290481.0, "Ops/sec/procs": 609009.44, "ns per ops/procs": 1642.01}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30015.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 649830829.0, "Ops per second": 21661027.0, "ns per ops": 46.0, "Ops per threads": 67690.0, "Ops per procs": 6769071.0, "Ops/sec/procs": 225635.0, "ns per ops/procs": 4434.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30051.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 340815091.0, "Ops per second": 11360503.0, "ns per ops": 88.0, "Ops per threads": 213009.0, "Ops per procs": 21300943.0, "Ops/sec/procs": 710031.0, "ns per ops/procs": 1410.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30012.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 644087155.0, "Ops per second": 21469571.0, "ns per ops": 46.0, "Ops per threads": 67092.0, "Ops per procs": 6709241.0, "Ops/sec/procs": 223641.0, "ns per ops/procs": 4473.0}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 117711342.0, "Ops per second": 3920647.35, "ns per ops": 255.06, "Ops per threads": 588556.0, "Ops per procs": 58855671.0, "Ops/sec/procs": 1960323.68, "ns per ops/procs": 510.12}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30020.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 118418832.0, "Ops per second": 3944548.08, "ns per ops": 253.51, "Ops per threads": 592094.0, "Ops per procs": 59209416.0, "Ops/sec/procs": 1972274.04, "ns per ops/procs": 507.03}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30086.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 549298926.0, "Total blocks": 305224211.0, "Ops per second": 18257292.36, "ns per ops": 54.77, "Ops per threads": 114437.0, "Ops per procs": 11443727.0, "Ops/sec/procs": 380360.26, "ns per ops/procs": 2629.09}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30092.227393, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 544459819.0, "Total blocks": 205333826.0, "Ops per second": 18093038.18, "ns per ops": 55.27, "Ops per threads": 37809.0, "Ops per procs": 3780970.0, "Ops/sec/procs": 125646.1, "ns per ops/procs": 7958.86}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30090.628713, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 438135783.0, "Total blocks": 181248607.0, "Ops per second": 14560539.34, "ns per ops": 68.68, "Ops per threads": 60852.0, "Ops per procs": 6085219.0, "Ops/sec/procs": 202229.71, "ns per ops/procs": 4944.87}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30021.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 119467613.0, "Ops per second": 3979418.89, "ns per ops": 251.29, "Ops per threads": 597338.0, "Ops per procs": 59733806.0, "Ops/sec/procs": 1989709.44, "ns per ops/procs": 502.59}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30092.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 142263661.0, "Total blocks": 85937211.0, "Ops per second": 4727622.71, "ns per ops": 211.52, "Ops per threads": 355659.0, "Ops per procs": 35565915.0, "Ops/sec/procs": 1181905.68, "ns per ops/procs": 846.09}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30030.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 149482316.0, "Ops per second": 4977621.24, "ns per ops": 200.9, "Ops per threads": 186852.0, "Ops per procs": 18685289.0, "Ops/sec/procs": 622202.65, "ns per ops/procs": 1607.19}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30020.937487, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 335712075.0, "Total blocks": 110110283.0, "Ops per second": 11182597.98, "ns per ops": 89.42, "Ops per threads": 139880.0, "Ops per procs": 13988003.0, "Ops/sec/procs": 465941.58, "ns per ops/procs": 2146.19}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30006.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 510643531.0, "Ops per second": 17021451.0, "ns per ops": 58.0, "Ops per threads": 212768.0, "Ops per procs": 21276813.0, "Ops/sec/procs": 709227.0, "ns per ops/procs": 1410.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30031.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 296756552.0, "Total blocks": 152729520.0, "Ops per second": 9881630.35, "ns per ops": 101.2, "Ops per threads": 185472.0, "Ops per procs": 18547284.0, "Ops/sec/procs": 617601.9, "ns per ops/procs": 1619.17}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30044.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 453113204.0, "Ops per second": 15081549.68, "ns per ops": 66.31, "Ops per threads": 23599.0, "Ops per procs": 2359964.0, "Ops/sec/procs": 78549.74, "ns per ops/procs": 12730.79}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30025.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 724585936.0, "Ops per second": 24132426.27, "ns per ops": 41.44, "Ops per threads": 100636.0, "Ops per procs": 10063693.0, "Ops/sec/procs": 335172.59, "ns per ops/procs": 2983.54}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30027.653982, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 492633870.0, "Total blocks": 185730042.0, "Ops per second": 16406005.95, "ns per ops": 60.95, "Ops per threads": 68421.0, "Ops per procs": 6842137.0, "Ops/sec/procs": 227861.19, "ns per ops/procs": 4388.64}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30066.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 86292143.0, "Total blocks": 43147332.0, "Ops per second": 2869997.08, "ns per ops": 348.43, "Ops per threads": 431460.0, "Ops per procs": 43146071.0, "Ops/sec/procs": 1434998.54, "ns per ops/procs": 696.86}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30057.846015, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 456780268.0, "Total blocks": 171439416.0, "Ops per second": 15196706.64, "ns per ops": 65.8, "Ops per threads": 63441.0, "Ops per procs": 6344170.0, "Ops/sec/procs": 211065.37, "ns per ops/procs": 4737.87}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30049.448486, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1120457215.0, "Total blocks": 20014.0, "Ops per second": 37287114.12, "ns per ops": 26.82, "Ops per threads": 11204572.0, "Ops per procs": 1120457215.0, "Ops/sec/procs": 37287114.12, "ns per ops/procs": 26.82}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30094.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 134984635.0, "Total blocks": 81785899.0, "Ops per second": 4485287.89, "ns per ops": 222.95, "Ops per threads": 337461.0, "Ops per procs": 33746158.0, "Ops/sec/procs": 1121321.97, "ns per ops/procs": 891.8}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30044.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 347287896.0, "Total blocks": 185920031.0, "Ops per second": 11559136.56, "ns per ops": 86.51, "Ops per threads": 144703.0, "Ops per procs": 14470329.0, "Ops/sec/procs": 481630.69, "ns per ops/procs": 2076.28}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30066.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 86465273.0, "Total blocks": 43234079.0, "Ops per second": 2875812.48, "ns per ops": 347.73, "Ops per threads": 432326.0, "Ops per procs": 43232636.0, "Ops/sec/procs": 1437906.24, "ns per ops/procs": 695.46}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30008.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 469456662.0, "Total blocks": 249859470.0, "Ops per second": 15644009.6, "ns per ops": 63.92, "Ops per threads": 48901.0, "Ops per procs": 4890173.0, "Ops/sec/procs": 162958.43, "ns per ops/procs": 6136.53}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30030.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 795100421.0, "Total blocks": 418436584.0, "Ops per second": 26476802.25, "ns per ops": 37.77, "Ops per threads": 41411.0, "Ops per procs": 4141148.0, "Ops/sec/procs": 137900.01, "ns per ops/procs": 7251.63}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30046.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 345070359.0, "Ops per second": 11502345.0, "ns per ops": 87.0, "Ops per threads": 215668.0, "Ops per procs": 21566897.0, "Ops/sec/procs": 718896.0, "ns per ops/procs": 1393.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30000.975519, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 608277551.0, "Total blocks": 178475301.0, "Ops per second": 20275259.07, "ns per ops": 49.32, "Ops per threads": 31681.0, "Ops per procs": 3168112.0, "Ops/sec/procs": 105600.31, "ns per ops/procs": 9469.67}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30008.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 650019380.0, "Ops per second": 21667312.0, "ns per ops": 46.0, "Ops per threads": 67710.0, "Ops per procs": 6771035.0, "Ops/sec/procs": 225701.0, "ns per ops/procs": 4431.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30017.905127, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 577332306.0, "Total blocks": 203440686.0, "Ops per second": 19232931.26, "ns per ops": 51.99, "Ops per threads": 60138.0, "Ops per procs": 6013878.0, "Ops/sec/procs": 200343.03, "ns per ops/procs": 4991.44}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 452765607.0, "Ops per second": 15092186.0, "ns per ops": 66.0, "Ops per threads": 4527656.0, "Ops per procs": 452765607.0, "Ops/sec/procs": 15092186.0, "ns per ops/procs": 66.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30033.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 168153294.0, "Total blocks": 91698460.0, "Ops per second": 5598897.55, "ns per ops": 178.61, "Ops per threads": 210191.0, "Ops per procs": 21019161.0, "Ops/sec/procs": 699862.19, "ns per ops/procs": 1428.85}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.146697, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 163876646.0, "Total blocks": 79156586.0, "Ops per second": 5452531.9, "ns per ops": 183.4, "Ops per threads": 409691.0, "Ops per procs": 40969161.0, "Ops/sec/procs": 1363132.97, "ns per ops/procs": 733.6}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30038.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 249728591.0, "Ops per second": 8313602.09, "ns per ops": 120.28, "Ops per threads": 104053.0, "Ops per procs": 10405357.0, "Ops/sec/procs": 346400.09, "ns per ops/procs": 2886.84}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30047.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 360756914.0, "Ops per second": 12006305.39, "ns per ops": 83.29, "Ops per threads": 75157.0, "Ops per procs": 7515769.0, "Ops/sec/procs": 250131.36, "ns per ops/procs": 3997.9}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30080.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 790206537.0, "Total blocks": 414340220.0, "Ops per second": 26269981.02, "ns per ops": 38.07, "Ops per threads": 41156.0, "Ops per procs": 4115659.0, "Ops/sec/procs": 136822.82, "ns per ops/procs": 7308.72}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30083.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 165112377.0, "Ops per second": 5503745.0, "ns per ops": 182.0, "Ops per threads": 412780.0, "Ops per procs": 41278094.0, "Ops/sec/procs": 1375936.0, "ns per ops/procs": 728.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30060.19443, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 203517134.0, "Total blocks": 86791618.0, "Ops per second": 6770319.95, "ns per ops": 147.7, "Ops per threads": 254396.0, "Ops per procs": 25439641.0, "Ops/sec/procs": 846289.99, "ns per ops/procs": 1181.63}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30027.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192272018.0, "Total blocks": 0.0, "Ops per second": 6403297.78, "ns per ops": 156.17, "Ops per threads": 1922720.0, "Ops per procs": 192272018.0, "Ops/sec/procs": 6403297.78, "ns per ops/procs": 156.17}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30078.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 167549786.0, "Ops per second": 5584992.0, "ns per ops": 179.0, "Ops per threads": 418874.0, "Ops per procs": 41887446.0, "Ops/sec/procs": 1396248.0, "ns per ops/procs": 718.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192351883.0, "Total blocks": 0.0, "Ops per second": 6405974.57, "ns per ops": 156.1, "Ops per threads": 1923518.0, "Ops per procs": 192351883.0, "Ops/sec/procs": 6405974.57, "ns per ops/procs": 156.1}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30042.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 455643717.0, "Ops per second": 15166607.73, "ns per ops": 65.93, "Ops per threads": 31641.0, "Ops per procs": 3164192.0, "Ops/sec/procs": 105323.66, "ns per ops/procs": 9494.54}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30089.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 143735420.0, "Total blocks": 86927326.0, "Ops per second": 4776918.31, "ns per ops": 209.34, "Ops per threads": 359338.0, "Ops per procs": 35933855.0, "Ops/sec/procs": 1194229.58, "ns per ops/procs": 837.36}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30075.817488, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 532406820.0, "Total blocks": 189021704.0, "Ops per second": 17702156.23, "ns per ops": 56.49, "Ops per threads": 55459.0, "Ops per procs": 5545904.0, "Ops/sec/procs": 184397.46, "ns per ops/procs": 5423.07}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 135674077.0, "Ops per second": 4522243.58, "ns per ops": 221.13, "Ops per threads": 1356740.0, "Ops per procs": 135674077.0, "Ops/sec/procs": 4522243.58, "ns per ops/procs": 221.13}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30043.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 439906914.0, "Ops per second": 14642382.11, "ns per ops": 68.29, "Ops per threads": 22911.0, "Ops per procs": 2291181.0, "Ops/sec/procs": 76262.41, "ns per ops/procs": 13112.62}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30065.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 657902987.0, "Total blocks": 366384435.0, "Ops per second": 21882092.43, "ns per ops": 45.7, "Ops per threads": 45687.0, "Ops per procs": 4568770.0, "Ops/sec/procs": 151958.98, "ns per ops/procs": 6580.72}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30005.089617, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 539166834.0, "Total blocks": 196440124.0, "Ops per second": 17969179.26, "ns per ops": 55.65, "Ops per threads": 37442.0, "Ops per procs": 3744214.0, "Ops/sec/procs": 124785.97, "ns per ops/procs": 8013.72}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30092.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 167590348.0, "Ops per second": 5586344.0, "ns per ops": 179.0, "Ops per threads": 837951.0, "Ops per procs": 83795174.0, "Ops/sec/procs": 2793172.0, "ns per ops/procs": 359.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.996225, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 492463154.0, "Total blocks": 1502761.0, "Ops per second": 16387036.33, "ns per ops": 61.02, "Ops per threads": 2462315.0, "Ops per procs": 246231577.0, "Ops/sec/procs": 8193518.17, "ns per ops/procs": 122.05}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30061.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 341546252.0, "Ops per second": 11384875.0, "ns per ops": 88.0, "Ops per threads": 213466.0, "Ops per procs": 21346640.0, "Ops/sec/procs": 711554.0, "ns per ops/procs": 1408.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30034.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 159861811.0, "Ops per second": 5322617.74, "ns per ops": 187.88, "Ops per threads": 399654.0, "Ops per procs": 39965452.0, "Ops/sec/procs": 1330654.44, "ns per ops/procs": 751.51}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30070.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 647377625.0, "Total blocks": 358133729.0, "Ops per second": 21529008.78, "ns per ops": 46.45, "Ops per threads": 44956.0, "Ops per procs": 4495677.0, "Ops/sec/procs": 149507.01, "ns per ops/procs": 6688.65}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30027.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 238037586.0, "Ops per second": 7927229.01, "ns per ops": 126.15, "Ops per threads": 148773.0, "Ops per procs": 14877349.0, "Ops/sec/procs": 495451.81, "ns per ops/procs": 2018.36}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30015.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 190281542.0, "Ops per second": 6342718.0, "ns per ops": 157.0, "Ops per threads": 951407.0, "Ops per procs": 95140771.0, "Ops/sec/procs": 3171359.0, "ns per ops/procs": 315.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30086.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 790873617.0, "Total blocks": 414896267.0, "Ops per second": 26286448.76, "ns per ops": 38.04, "Ops per threads": 41191.0, "Ops per procs": 4119133.0, "Ops/sec/procs": 136908.59, "ns per ops/procs": 7304.14}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30038.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 275097017.0, "Total blocks": 139621738.0, "Ops per second": 9158293.2, "ns per ops": 109.19, "Ops per threads": 171935.0, "Ops per procs": 17193563.0, "Ops/sec/procs": 572393.32, "ns per ops/procs": 1747.05}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30030.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 717166455.0, "Ops per second": 23881520.39, "ns per ops": 41.87, "Ops per threads": 99606.0, "Ops per procs": 9960645.0, "Ops/sec/procs": 331687.78, "ns per ops/procs": 3014.88}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30003.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 742562709.0, "Ops per second": 24752090.0, "ns per ops": 40.0, "Ops per threads": 154700.0, "Ops per procs": 15470056.0, "Ops/sec/procs": 515668.0, "ns per ops/procs": 1939.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30025.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 485996227.0, "Ops per second": 16199874.0, "ns per ops": 61.0, "Ops per threads": 67499.0, "Ops per procs": 6749947.0, "Ops/sec/procs": 224998.0, "ns per ops/procs": 4448.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30061.127863, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 748041545.0, "Total blocks": 257845748.0, "Ops per second": 24884014.61, "ns per ops": 40.19, "Ops per threads": 155841.0, "Ops per procs": 15584198.0, "Ops/sec/procs": 518416.97, "ns per ops/procs": 1928.95}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 452863920.0, "Ops per second": 15095464.0, "ns per ops": 66.0, "Ops per threads": 4528639.0, "Ops per procs": 452863920.0, "Ops/sec/procs": 15095464.0, "ns per ops/procs": 66.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30035.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 153408239.0, "Ops per second": 5107627.0, "ns per ops": 195.79, "Ops per threads": 383520.0, "Ops per procs": 38352059.0, "Ops/sec/procs": 1276906.75, "ns per ops/procs": 783.14}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30035.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 260557227.0, "Ops per second": 8675026.21, "ns per ops": 115.27, "Ops per threads": 108565.0, "Ops per procs": 10856551.0, "Ops/sec/procs": 361459.43, "ns per ops/procs": 2766.56}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192033788.0, "Total blocks": 0.0, "Ops per second": 6395407.12, "ns per ops": 156.36, "Ops per threads": 1920337.0, "Ops per procs": 192033788.0, "Ops/sec/procs": 6395407.12, "ns per ops/procs": 156.36}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30079.074941, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 298030410.0, "Total blocks": 109392057.0, "Ops per second": 9908230.58, "ns per ops": 100.93, "Ops per threads": 186269.0, "Ops per procs": 18626900.0, "Ops/sec/procs": 619264.41, "ns per ops/procs": 1614.82}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30099.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 237100042.0, "Ops per second": 7903334.0, "ns per ops": 126.0, "Ops per threads": 296375.0, "Ops per procs": 29637505.0, "Ops/sec/procs": 987916.0, "ns per ops/procs": 1015.0}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30042.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 441233108.0, "Ops per second": 14686769.37, "ns per ops": 68.09, "Ops per threads": 22980.0, "Ops per procs": 2298089.0, "Ops/sec/procs": 76493.59, "ns per ops/procs": 13072.99}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30050.043754, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1109890087.0, "Total blocks": 2094528.0, "Ops per second": 36934724.49, "ns per ops": 27.07, "Ops per threads": 11098900.0, "Ops per procs": 1109890087.0, "Ops/sec/procs": 36934724.49, "ns per ops/procs": 27.07}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30040.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 143539857.0, "Ops per second": 4778190.54, "ns per ops": 209.28, "Ops per threads": 179424.0, "Ops per procs": 17942482.0, "Ops/sec/procs": 597273.82, "ns per ops/procs": 1674.27}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192539464.0, "Total blocks": 0.0, "Ops per second": 6412239.06, "ns per ops": 155.95, "Ops per threads": 1925394.0, "Ops per procs": 192539464.0, "Ops/sec/procs": 6412239.06, "ns per ops/procs": 155.95}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30059.428625, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 214406101.0, "Total blocks": 89085317.0, "Ops per second": 7132740.4, "ns per ops": 140.2, "Ops per threads": 268007.0, "Ops per procs": 26800762.0, "Ops/sec/procs": 891592.55, "ns per ops/procs": 1121.59}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 451938612.0, "Ops per second": 15064620.0, "ns per ops": 66.0, "Ops per threads": 4519386.0, "Ops per procs": 451938612.0, "Ops/sec/procs": 15064620.0, "ns per ops/procs": 66.0}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30020.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 117888097.0, "Ops per second": 3926880.58, "ns per ops": 254.66, "Ops per threads": 589440.0, "Ops per procs": 58944048.0, "Ops/sec/procs": 1963440.29, "ns per ops/procs": 509.31}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 118665695.0, "Ops per second": 3952370.01, "ns per ops": 253.01, "Ops per threads": 593328.0, "Ops per procs": 59332847.0, "Ops/sec/procs": 1976185.0, "ns per ops/procs": 506.03}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30006.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 956030550.0, "Ops per second": 31867685.0, "ns per ops": 31.0, "Ops per threads": 49793.0, "Ops per procs": 4979325.0, "Ops/sec/procs": 165977.0, "ns per ops/procs": 6026.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30021.088657, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 347613627.0, "Total blocks": 125656313.0, "Ops per second": 11578981.39, "ns per ops": 86.36, "Ops per threads": 144839.0, "Ops per procs": 14483901.0, "Ops/sec/procs": 482457.56, "ns per ops/procs": 2072.72}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30008.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 740912835.0, "Ops per second": 24697094.0, "ns per ops": 40.0, "Ops per threads": 154356.0, "Ops per procs": 15435684.0, "Ops/sec/procs": 514522.0, "ns per ops/procs": 1944.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30021.750654, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 339674261.0, "Total blocks": 136497088.0, "Ops per second": 11314272.27, "ns per ops": 88.38, "Ops per threads": 141530.0, "Ops per procs": 14153094.0, "Ops/sec/procs": 471428.01, "ns per ops/procs": 2121.21}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30064.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 389938014.0, "Total blocks": 206165485.0, "Ops per second": 12969867.58, "ns per ops": 77.1, "Ops per threads": 54158.0, "Ops per procs": 5415805.0, "Ops/sec/procs": 180137.05, "ns per ops/procs": 5551.33}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30015.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 179671481.0, "Total blocks": 96818873.0, "Ops per second": 5985873.44, "ns per ops": 167.06, "Ops per threads": 224589.0, "Ops per procs": 22458935.0, "Ops/sec/procs": 748234.18, "ns per ops/procs": 1336.48}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30054.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 347470587.0, "Ops per second": 11582352.0, "ns per ops": 86.0, "Ops per threads": 217169.0, "Ops per procs": 21716911.0, "Ops/sec/procs": 723897.0, "ns per ops/procs": 1383.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30033.689328, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 529360635.0, "Total blocks": 202033463.0, "Ops per second": 17625561.39, "ns per ops": 56.74, "Ops per threads": 55141.0, "Ops per procs": 5514173.0, "Ops/sec/procs": 183599.6, "ns per ops/procs": 5446.64}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30002.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 498328668.0, "Total blocks": 274501513.0, "Ops per second": 16609802.26, "ns per ops": 60.21, "Ops per threads": 103818.0, "Ops per procs": 10381847.0, "Ops/sec/procs": 346037.55, "ns per ops/procs": 2889.86}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30069.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 307154812.0, "Ops per second": 10214932.89, "ns per ops": 97.9, "Ops per threads": 31995.0, "Ops per procs": 3199529.0, "Ops/sec/procs": 106405.55, "ns per ops/procs": 9398.01}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30009.065154, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 563513509.0, "Total blocks": 217716702.0, "Ops per second": 18778109.42, "ns per ops": 53.25, "Ops per threads": 39132.0, "Ops per procs": 3913288.0, "Ops/sec/procs": 130403.54, "ns per ops/procs": 7668.5}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30037.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 524334283.0, "Ops per second": 17455928.0, "ns per ops": 57.29, "Ops per threads": 36412.0, "Ops per procs": 3641210.0, "Ops/sec/procs": 121221.72, "ns per ops/procs": 8249.35}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30013.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 600470119.0, "Ops per second": 20015670.0, "ns per ops": 49.0, "Ops per threads": 62548.0, "Ops per procs": 6254897.0, "Ops/sec/procs": 208496.0, "ns per ops/procs": 4798.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30026.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 500463511.0, "Ops per second": 16682117.0, "ns per ops": 59.0, "Ops per threads": 208526.0, "Ops per procs": 20852646.0, "Ops/sec/procs": 695088.0, "ns per ops/procs": 1439.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30019.403619, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 322475350.0, "Total blocks": 107518214.0, "Ops per second": 10742230.4, "ns per ops": 93.09, "Ops per threads": 134364.0, "Ops per procs": 13436472.0, "Ops/sec/procs": 447592.93, "ns per ops/procs": 2234.17}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30039.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 275766682.0, "Total blocks": 139786129.0, "Ops per second": 9180135.42, "ns per ops": 108.93, "Ops per threads": 172354.0, "Ops per procs": 17235417.0, "Ops/sec/procs": 573758.46, "ns per ops/procs": 1742.89}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30055.143359, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 786185730.0, "Total blocks": 314757140.0, "Ops per second": 26158109.47, "ns per ops": 38.23, "Ops per threads": 163788.0, "Ops per procs": 16378869.0, "Ops/sec/procs": 544960.61, "ns per ops/procs": 1835.0}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30041.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 440773630.0, "Ops per second": 14671917.03, "ns per ops": 68.16, "Ops per threads": 22956.0, "Ops per procs": 2295695.0, "Ops/sec/procs": 76416.23, "ns per ops/procs": 13086.22}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 452790603.0, "Ops per second": 15093020.0, "ns per ops": 66.0, "Ops per threads": 4527906.0, "Ops per procs": 452790603.0, "Ops/sec/procs": 15093020.0, "ns per ops/procs": 66.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30014.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 637525953.0, "Ops per second": 21250865.0, "ns per ops": 47.0, "Ops per threads": 66408.0, "Ops per procs": 6640895.0, "Ops/sec/procs": 221363.0, "ns per ops/procs": 4519.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30066.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 86351017.0, "Total blocks": 43177052.0, "Ops per second": 2872018.91, "ns per ops": 348.19, "Ops per threads": 431755.0, "Ops per procs": 43175508.0, "Ops/sec/procs": 1436009.45, "ns per ops/procs": 696.37}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 741633305.0, "Ops per second": 24721110.0, "ns per ops": 40.0, "Ops per threads": 154506.0, "Ops per procs": 15450693.0, "Ops/sec/procs": 515023.0, "ns per ops/procs": 1942.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 942640306.0, "Ops per second": 31421343.0, "ns per ops": 31.0, "Ops per threads": 49095.0, "Ops per procs": 4909584.0, "Ops/sec/procs": 163652.0, "ns per ops/procs": 6111.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30035.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 152187568.0, "Ops per second": 5066853.22, "ns per ops": 197.36, "Ops per threads": 380468.0, "Ops per procs": 38046892.0, "Ops/sec/procs": 1266713.31, "ns per ops/procs": 789.44}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30045.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 167711831.0, "Ops per second": 5590394.0, "ns per ops": 179.0, "Ops per threads": 838559.0, "Ops per procs": 83855915.0, "Ops/sec/procs": 2795197.0, "ns per ops/procs": 358.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30027.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192545031.0, "Total blocks": 0.0, "Ops per second": 6412369.34, "ns per ops": 155.95, "Ops per threads": 1925450.0, "Ops per procs": 192545031.0, "Ops/sec/procs": 6412369.34, "ns per ops/procs": 155.95}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.12344, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 438344047.0, "Total blocks": 4308460.0, "Ops per second": 14586610.98, "ns per ops": 68.56, "Ops per threads": 2191720.0, "Ops per procs": 219172023.0, "Ops/sec/procs": 7293305.49, "ns per ops/procs": 137.11}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 135332439.0, "Ops per second": 4510861.24, "ns per ops": 221.69, "Ops per threads": 1353324.0, "Ops per procs": 135332439.0, "Ops/sec/procs": 4510861.24, "ns per ops/procs": 221.69}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30030.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 220209465.0, "Ops per second": 7332887.29, "ns per ops": 136.37, "Ops per threads": 137630.0, "Ops per procs": 13763091.0, "Ops/sec/procs": 458305.46, "ns per ops/procs": 2181.95}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30009.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 1084601129.0, "Ops per second": 36153370.0, "ns per ops": 27.0, "Ops per threads": 56489.0, "Ops per procs": 5648964.0, "Ops/sec/procs": 188298.0, "ns per ops/procs": 5312.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30050.132826, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1121160592.0, "Total blocks": 0.0, "Ops per second": 37309671.76, "ns per ops": 26.8, "Ops per threads": 11211605.0, "Ops per procs": 1121160592.0, "Ops/sec/procs": 37309671.76, "ns per ops/procs": 26.8}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30038.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 505085238.0, "Total blocks": 278265653.0, "Ops per second": 16814728.14, "ns per ops": 59.47, "Ops per threads": 105226.0, "Ops per procs": 10522609.0, "Ops/sec/procs": 350306.84, "ns per ops/procs": 2854.64}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30095.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 135292457.0, "Total blocks": 81914713.0, "Ops per second": 4495473.6, "ns per ops": 222.45, "Ops per threads": 338231.0, "Ops per procs": 33823114.0, "Ops/sec/procs": 1123868.4, "ns per ops/procs": 889.78}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30011.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 1087939622.0, "Ops per second": 36264654.0, "ns per ops": 27.0, "Ops per threads": 56663.0, "Ops per procs": 5666352.0, "Ops/sec/procs": 188878.0, "ns per ops/procs": 5296.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30012.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 513402261.0, "Ops per second": 17113408.0, "ns per ops": 58.0, "Ops per threads": 213917.0, "Ops per procs": 21391760.0, "Ops/sec/procs": 713058.0, "ns per ops/procs": 1402.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30036.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 155123771.0, "Ops per second": 5164469.83, "ns per ops": 193.63, "Ops per threads": 387809.0, "Ops per procs": 38780942.0, "Ops/sec/procs": 1291117.46, "ns per ops/procs": 774.52}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30021.231882, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 337105017.0, "Total blocks": 114998883.0, "Ops per second": 11228886.89, "ns per ops": 89.06, "Ops per threads": 140460.0, "Ops per procs": 14046042.0, "Ops/sec/procs": 467870.29, "ns per ops/procs": 2137.34}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30030.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 228646278.0, "Ops per second": 7613810.95, "ns per ops": 131.34, "Ops per threads": 142903.0, "Ops per procs": 14290392.0, "Ops/sec/procs": 475863.18, "ns per ops/procs": 2101.44}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30071.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 172918746.0, "Ops per second": 5763958.0, "ns per ops": 173.0, "Ops per threads": 864593.0, "Ops per procs": 86459373.0, "Ops/sec/procs": 2881979.0, "ns per ops/procs": 347.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30041.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 153668090.0, "Ops per second": 5115196.07, "ns per ops": 195.5, "Ops per threads": 384170.0, "Ops per procs": 38417022.0, "Ops/sec/procs": 1278799.02, "ns per ops/procs": 781.98}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30054.878173, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 164604482.0, "Total blocks": 79443826.0, "Ops per second": 5476797.51, "ns per ops": 182.59, "Ops per threads": 411511.0, "Ops per procs": 41151120.0, "Ops/sec/procs": 1369199.38, "ns per ops/procs": 730.35}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30027.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 470586298.0, "Ops per second": 15671733.99, "ns per ops": 63.81, "Ops per threads": 65359.0, "Ops per procs": 6535920.0, "Ops/sec/procs": 217662.97, "ns per ops/procs": 4594.26}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30045.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 372477233.0, "Ops per second": 12397099.79, "ns per ops": 80.66, "Ops per threads": 77599.0, "Ops per procs": 7759942.0, "Ops/sec/procs": 258272.91, "ns per ops/procs": 3871.87}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30010.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 237680089.0, "Ops per second": 7922669.0, "ns per ops": 126.0, "Ops per threads": 297100.0, "Ops per procs": 29710011.0, "Ops/sec/procs": 990333.0, "ns per ops/procs": 1010.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30003.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 963215996.0, "Ops per second": 32107199.0, "ns per ops": 31.0, "Ops per threads": 50167.0, "Ops per procs": 5016749.0, "Ops/sec/procs": 167224.0, "ns per ops/procs": 5980.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.507462, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 451515393.0, "Total blocks": 6698282.0, "Ops per second": 15024716.93, "ns per ops": 66.56, "Ops per threads": 2257576.0, "Ops per procs": 225757696.0, "Ops/sec/procs": 7512358.47, "ns per ops/procs": 133.11}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30030.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 292201059.0, "Total blocks": 150489137.0, "Ops per second": 9729988.97, "ns per ops": 102.78, "Ops per threads": 182625.0, "Ops per procs": 18262566.0, "Ops/sec/procs": 608124.31, "ns per ops/procs": 1644.4}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30024.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 762610209.0, "Total blocks": 399088663.0, "Ops per second": 25399210.3, "ns per ops": 39.37, "Ops per threads": 39719.0, "Ops per procs": 3971928.0, "Ops/sec/procs": 132287.55, "ns per ops/procs": 7559.29}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30036.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 235254117.0, "Ops per second": 7841803.0, "ns per ops": 127.0, "Ops per threads": 294067.0, "Ops per procs": 29406764.0, "Ops/sec/procs": 980225.0, "ns per ops/procs": 1021.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30010.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 656633684.0, "Ops per second": 21887789.0, "ns per ops": 45.0, "Ops per threads": 68399.0, "Ops per procs": 6839934.0, "Ops/sec/procs": 227997.0, "ns per ops/procs": 4387.0}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30022.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 118935913.0, "Ops per second": 3961569.79, "ns per ops": 252.43, "Ops per threads": 594679.0, "Ops per procs": 59467956.0, "Ops/sec/procs": 1980784.89, "ns per ops/procs": 504.85}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 234113536.0, "Ops per second": 7803784.0, "ns per ops": 128.0, "Ops per threads": 292641.0, "Ops per procs": 29264192.0, "Ops/sec/procs": 975473.0, "ns per ops/procs": 1025.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30054.667402, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 166485794.0, "Total blocks": 80463933.0, "Ops per second": 5539432.25, "ns per ops": 180.52, "Ops per threads": 416214.0, "Ops per procs": 41621448.0, "Ops/sec/procs": 1384858.06, "ns per ops/procs": 722.1}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30055.72223, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 815269283.0, "Total blocks": 310331856.0, "Ops per second": 27125260.1, "ns per ops": 36.87, "Ops per threads": 169847.0, "Ops per procs": 16984776.0, "Ops/sec/procs": 565109.59, "ns per ops/procs": 1769.57}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30017.694041, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 337962677.0, "Total blocks": 124909724.0, "Ops per second": 11258782.12, "ns per ops": 88.82, "Ops per threads": 140817.0, "Ops per procs": 14081778.0, "Ops/sec/procs": 469115.92, "ns per ops/procs": 2131.67}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30016.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 240122876.0, "Ops per second": 8004095.0, "ns per ops": 125.0, "Ops per threads": 300153.0, "Ops per procs": 30015359.0, "Ops/sec/procs": 1000511.0, "ns per ops/procs": 1000.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30000.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 765321036.0, "Total blocks": 402627093.0, "Ops per second": 25510313.55, "ns per ops": 39.2, "Ops per threads": 39860.0, "Ops per procs": 3986047.0, "Ops/sec/procs": 132866.22, "ns per ops/procs": 7526.37}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 136755569.0, "Ops per second": 4558289.56, "ns per ops": 219.38, "Ops per threads": 1367555.0, "Ops per procs": 136755569.0, "Ops/sec/procs": 4558289.56, "ns per ops/procs": 219.38}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30028.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 760584036.0, "Ops per second": 25328927.09, "ns per ops": 39.48, "Ops per threads": 105636.0, "Ops per procs": 10563667.0, "Ops/sec/procs": 351790.65, "ns per ops/procs": 2842.6}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30092.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 547271903.0, "Total blocks": 304156427.0, "Ops per second": 18186585.54, "ns per ops": 54.99, "Ops per threads": 114014.0, "Ops per procs": 11401497.0, "Ops/sec/procs": 378887.2, "ns per ops/procs": 2639.31}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30051.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 447833494.0, "Ops per second": 14902037.92, "ns per ops": 67.1, "Ops per threads": 23324.0, "Ops per procs": 2332466.0, "Ops/sec/procs": 77614.78, "ns per ops/procs": 12884.14}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30017.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 235761245.0, "Ops per second": 7858708.0, "ns per ops": 127.0, "Ops per threads": 294701.0, "Ops per procs": 29470155.0, "Ops/sec/procs": 982338.0, "ns per ops/procs": 1018.0}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30024.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 117247139.0, "Ops per second": 3905052.07, "ns per ops": 256.08, "Ops per threads": 586235.0, "Ops per procs": 58623569.0, "Ops/sec/procs": 1952526.03, "ns per ops/procs": 512.16}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 828247674.0, "Ops per second": 27608255.0, "ns per ops": 36.0, "Ops per threads": 57517.0, "Ops per procs": 5751719.0, "Ops/sec/procs": 191723.0, "ns per ops/procs": 5216.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30020.810748, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 348706385.0, "Total blocks": 129223242.0, "Ops per second": 11615488.6, "ns per ops": 86.09, "Ops per threads": 145294.0, "Ops per procs": 14529432.0, "Ops/sec/procs": 483978.69, "ns per ops/procs": 2066.21}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30081.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 246314013.0, "Ops per second": 8188305.5, "ns per ops": 122.13, "Ops per threads": 25657.0, "Ops per procs": 2565770.0, "Ops/sec/procs": 85294.85, "ns per ops/procs": 11724.04}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30046.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 345709305.0, "Ops per second": 11523643.0, "ns per ops": 86.0, "Ops per threads": 216068.0, "Ops per procs": 21606831.0, "Ops/sec/procs": 720227.0, "ns per ops/procs": 1390.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30053.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 401583131.0, "Total blocks": 210542335.0, "Ops per second": 13362215.51, "ns per ops": 74.84, "Ops per threads": 55775.0, "Ops per procs": 5577543.0, "Ops/sec/procs": 185586.33, "ns per ops/procs": 5388.33}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30006.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 734536092.0, "Ops per second": 24484536.0, "ns per ops": 40.0, "Ops per threads": 153028.0, "Ops per procs": 15302835.0, "Ops/sec/procs": 510094.0, "ns per ops/procs": 1960.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30051.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 364314023.0, "Ops per second": 12122996.23, "ns per ops": 82.49, "Ops per threads": 75898.0, "Ops per procs": 7589875.0, "Ops/sec/procs": 252562.42, "ns per ops/procs": 3959.42}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30040.076314, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 541851634.0, "Total blocks": 188048786.0, "Ops per second": 18037625.08, "ns per ops": 55.44, "Ops per threads": 56442.0, "Ops per procs": 5644287.0, "Ops/sec/procs": 187891.93, "ns per ops/procs": 5322.21}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30035.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 286283569.0, "Total blocks": 146888084.0, "Ops per second": 9531579.87, "ns per ops": 104.91, "Ops per threads": 178927.0, "Ops per procs": 17892723.0, "Ops/sec/procs": 595723.74, "ns per ops/procs": 1678.63}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30036.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 162396549.0, "Ops per second": 5406592.34, "ns per ops": 184.96, "Ops per threads": 405991.0, "Ops per procs": 40599137.0, "Ops/sec/procs": 1351648.08, "ns per ops/procs": 739.84}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30029.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 118487186.0, "Ops per second": 3945704.89, "ns per ops": 253.44, "Ops per threads": 592435.0, "Ops per procs": 59243593.0, "Ops/sec/procs": 1972852.44, "ns per ops/procs": 506.88}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30090.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 143274887.0, "Total blocks": 86548676.0, "Ops per second": 4761432.25, "ns per ops": 210.02, "Ops per threads": 358187.0, "Ops per procs": 35818721.0, "Ops/sec/procs": 1190358.06, "ns per ops/procs": 840.08}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30021.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 514934279.0, "Ops per second": 17164475.0, "ns per ops": 58.0, "Ops per threads": 214555.0, "Ops per procs": 21455594.0, "Ops/sec/procs": 715186.0, "ns per ops/procs": 1399.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30031.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 224330067.0, "Ops per second": 7469706.59, "ns per ops": 133.87, "Ops per threads": 140206.0, "Ops per procs": 14020629.0, "Ops/sec/procs": 466856.66, "ns per ops/procs": 2141.99}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30049.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 271788841.0, "Total blocks": 139390216.0, "Ops per second": 9044572.27, "ns per ops": 110.56, "Ops per threads": 169868.0, "Ops per procs": 16986802.0, "Ops/sec/procs": 565285.77, "ns per ops/procs": 1769.02}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30032.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 156001709.0, "Ops per second": 5194343.46, "ns per ops": 192.52, "Ops per threads": 390004.0, "Ops per procs": 39000427.0, "Ops/sec/procs": 1298585.87, "ns per ops/procs": 770.07}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30023.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 634543833.0, "Total blocks": 353102065.0, "Ops per second": 21135244.28, "ns per ops": 47.31, "Ops per threads": 44065.0, "Ops per procs": 4406554.0, "Ops/sec/procs": 146772.53, "ns per ops/procs": 6813.26}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30026.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 120153089.0, "Ops per second": 4001626.69, "ns per ops": 249.9, "Ops per threads": 600765.0, "Ops per procs": 60076544.0, "Ops/sec/procs": 2000813.34, "ns per ops/procs": 499.8}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30061.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 343295621.0, "Ops per second": 11443187.0, "ns per ops": 87.0, "Ops per threads": 214559.0, "Ops per procs": 21455976.0, "Ops/sec/procs": 715199.0, "ns per ops/procs": 1401.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30072.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 167798538.0, "Ops per second": 5593284.0, "ns per ops": 179.0, "Ops per threads": 419496.0, "Ops per procs": 41949634.0, "Ops/sec/procs": 1398321.0, "ns per ops/procs": 716.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30024.752245, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 533781014.0, "Total blocks": 203375821.0, "Ops per second": 17778032.26, "ns per ops": 56.25, "Ops per threads": 55602.0, "Ops per procs": 5560218.0, "Ops/sec/procs": 185187.84, "ns per ops/procs": 5399.92}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30038.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 268100562.0, "Ops per second": 8925355.68, "ns per ops": 112.04, "Ops per threads": 111708.0, "Ops per procs": 11170856.0, "Ops/sec/procs": 371889.82, "ns per ops/procs": 2688.97}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30087.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 646041577.0, "Total blocks": 358882545.0, "Ops per second": 21472152.63, "ns per ops": 46.57, "Ops per threads": 44863.0, "Ops per procs": 4486399.0, "Ops/sec/procs": 149112.17, "ns per ops/procs": 6706.36}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30048.978623, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 614380827.0, "Total blocks": 254504342.0, "Ops per second": 20445980.37, "ns per ops": 48.91, "Ops per threads": 31999.0, "Ops per procs": 3199900.0, "Ops/sec/procs": 106489.48, "ns per ops/procs": 9390.6}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30085.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 185405382.0, "Ops per second": 6180179.0, "ns per ops": 162.0, "Ops per threads": 927026.0, "Ops per procs": 92702691.0, "Ops/sec/procs": 3090089.0, "ns per ops/procs": 324.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 452412979.0, "Ops per second": 15080432.0, "ns per ops": 66.0, "Ops per threads": 4524129.0, "Ops per procs": 452412979.0, "Ops/sec/procs": 15080432.0, "ns per ops/procs": 66.0}]] -
doc/theses/thierry_delisle_PhD/thesis/data/churn.low.jax
r12df6fe r4520b77e 1 [["rdq-churn- fibre", "./rdq-churn-fibre -p 8 -d 10 -t 16 -s 8", {"Duration (ms)": 10007.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 45886505.0, "Total blocks": 23581519.0, "Ops per second": 4584996.42, "ns per ops": 218.1, "Ops per threads": 2867906.0, "Ops per procs": 5735813.0, "Ops/sec/procs": 573124.55, "ns per ops/procs": 1744.82}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 10 -t 32 -s 16", {"Duration (ms)": 10031.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 52948646.0, "Ops per second": 5278451.52, "ns per ops": 189.45, "Ops per threads": 1654645.0, "Ops per procs": 3309290.0, "Ops/sec/procs": 329903.22, "ns per ops/procs": 3031.19}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 10 -t 16 -s 8", {"Duration (ms)": 10008.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 45571308.0, "Total blocks": 23418912.0, "Ops per second": 4553347.51, "ns per ops": 219.62, "Ops per threads": 2848206.0, "Ops per procs": 5696413.0, "Ops/sec/procs": 569168.44, "ns per ops/procs": 1756.95}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 10 -t 16 -s 8", {"Duration (ms)": 10020.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 57549768.0, "Ops per second": 5743275.64, "ns per ops": 174.12, "Ops per threads": 3596860.0, "Ops per procs": 7193721.0, "Ops/sec/procs": 717909.45, "ns per ops/procs": 1392.93}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 10 -t 32 -s 16", {"Duration (ms)": 10025.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 52431553.0, "Ops per second": 5229696.44, "ns per ops": 191.22, "Ops per threads": 1638486.0, "Ops per procs": 3276972.0, "Ops/sec/procs": 326856.03, "ns per ops/procs": 3059.45}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 10 -t 32 -s 16", {"Duration (ms)": 10009.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 67810265.0, "Total blocks": 32862605.0, "Ops per second": 6774910.95, "ns per ops": 147.6, "Ops per threads": 2119070.0, "Ops per procs": 4238141.0, "Ops/sec/procs": 423431.93, "ns per ops/procs": 2361.65}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 10 -t 16 -s 8", {"Duration (ms)": 10013.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 57847054.0, "Ops per second": 5777194.35, "ns per ops": 173.09, "Ops per threads": 3615440.0, "Ops per procs": 7230881.0, "Ops/sec/procs": 722149.29, "ns per ops/procs": 1384.76}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 10 -t 2 -s 1", {"Duration (ms)": 10065.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 75010542.0, "Ops per second": 7452234.24, "ns per ops": 134.19, "Ops per threads": 37505271.0, "Ops per procs": 75010542.0, "Ops/sec/procs": 7452234.24, "ns per ops/procs": 134.19}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 10 -t 2 -s 1", {"Duration (ms)": 10018.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 75353303.0, "Ops per second": 7521765.77, "ns per ops": 132.95, "Ops per threads": 37676651.0, "Ops per procs": 75353303.0, "Ops/sec/procs": 7521765.77, "ns per ops/procs": 132.95}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 10 -t 48 -s 24", {"Duration (ms)": 10038.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 77580756.0, "Ops per second": 7728213.1, "ns per ops": 129.4, "Ops per threads": 1616265.0, "Ops per procs": 3232531.0, "Ops/sec/procs": 322008.88, "ns per ops/procs": 3105.5}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 10 -t 32 -s 16", {"Duration (ms)": 10100.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 55704847.0, "Ops per second": 5570484.0, "ns per ops": 181.0, "Ops per threads": 1740776.0, "Ops per procs": 3481552.0, "Ops/sec/procs": 348155.0, "ns per ops/procs": 2901.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 10 -t 48 -s 24", {"Duration (ms)": 10001.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 75768750.0, "Total blocks": 39198331.0, "Ops per second": 7575582.46, "ns per ops": 132.0, "Ops per threads": 1578515.0, "Ops per procs": 3157031.0, "Ops/sec/procs": 315649.27, "ns per ops/procs": 3168.07}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 10 -t 32 -s 16", {"Duration (ms)": 10009.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 68082972.0, "Total blocks": 32947596.0, "Ops per second": 6801956.28, "ns per ops": 147.02, "Ops per threads": 2127592.0, "Ops per procs": 4255185.0, "Ops/sec/procs": 425122.27, "ns per ops/procs": 2352.26}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 10 -t 2 -s 1", {"Duration (ms)": 10099.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 53235539.0, "Ops per second": 5323553.0, "ns per ops": 189.0, "Ops per threads": 26617769.0, "Ops per procs": 53235539.0, "Ops/sec/procs": 5323553.0, "ns per ops/procs": 189.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 10 -t 32 -s 16", {"Duration (ms)": 10029.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 51995117.0, "Ops per second": 5184034.28, "ns per ops": 192.9, "Ops per threads": 1624847.0, "Ops per procs": 3249694.0, "Ops/sec/procs": 324002.14, "ns per ops/procs": 3086.4}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 10 -t 48 -s 24", {"Duration (ms)": 10099.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 75855247.0, "Ops per second": 7585524.0, "ns per ops": 133.0, "Ops per threads": 1580317.0, "Ops per procs": 3160635.0, "Ops/sec/procs": 316063.0, "ns per ops/procs": 3195.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 10 -t 2 -s 1", {"Duration (ms)": 10016.677107, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 82722736.0, "Total blocks": 51097615.0, "Ops per second": 8258500.81, "ns per ops": 121.09, "Ops per threads": 41361368.0, "Ops per procs": 82722736.0, "Ops/sec/procs": 8258500.81, "ns per ops/procs": 121.09}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 10 -t 48 -s 24", {"Duration (ms)": 10099.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 82039759.0, "Ops per second": 8203975.0, "ns per ops": 123.0, "Ops per threads": 1709161.0, "Ops per procs": 3418323.0, "Ops/sec/procs": 341832.0, "ns per ops/procs": 2954.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 10 -t 16 -s 8", {"Duration (ms)": 10019.859008, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 60823669.0, "Total blocks": 20963529.0, "Ops per second": 6070311.86, "ns per ops": 164.74, "Ops per threads": 3801479.0, "Ops per procs": 7602958.0, "Ops/sec/procs": 758788.98, "ns per ops/procs": 1317.89}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 10 -t 32 -s 16", {"Duration (ms)": 10026.064514, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 84419895.0, "Total blocks": 31896077.0, "Ops per second": 8420043.07, "ns per ops": 118.76, "Ops per threads": 2638121.0, "Ops per procs": 5276243.0, "Ops/sec/procs": 526252.69, "ns per ops/procs": 1900.23}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 10 -t 2 -s 1", {"Duration (ms)": 10066.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 86259431.0, "Ops per second": 8569319.99, "ns per ops": 116.7, "Ops per threads": 43129715.0, "Ops per procs": 86259431.0, "Ops/sec/procs": 8569319.99, "ns per ops/procs": 116.7}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 10 -t 16 -s 8", {"Duration (ms)": 10020.476753, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 61723297.0, "Total blocks": 27893419.0, "Ops per second": 6159716.6, "ns per ops": 162.35, "Ops per threads": 3857706.0, "Ops per procs": 7715412.0, "Ops/sec/procs": 769964.58, "ns per ops/procs": 1298.76}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 10 -t 16 -s 8", {"Duration (ms)": 10099.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 39895438.0, "Ops per second": 3989543.0, "ns per ops": 253.0, "Ops per threads": 2493464.0, "Ops per procs": 4986929.0, "Ops/sec/procs": 498692.0, "ns per ops/procs": 2025.0}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 10 -t 48 -s 24", {"Duration (ms)": 10044.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 78307639.0, "Ops per second": 7795946.42, "ns per ops": 128.27, "Ops per threads": 1631409.0, "Ops per procs": 3262818.0, "Ops/sec/procs": 324831.1, "ns per ops/procs": 3078.52}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 10 -t 16 -s 8", {"Duration (ms)": 10008.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 45589496.0, "Total blocks": 23479172.0, "Ops per second": 4555270.66, "ns per ops": 219.53, "Ops per threads": 2849343.0, "Ops per procs": 5698687.0, "Ops/sec/procs": 569408.83, "ns per ops/procs": 1756.21}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 10 -t 2 -s 1", {"Duration (ms)": 10099.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 52936021.0, "Ops per second": 5293602.0, "ns per ops": 190.0, "Ops per threads": 26468010.0, "Ops per procs": 52936021.0, "Ops/sec/procs": 5293602.0, "ns per ops/procs": 190.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 10 -t 48 -s 24", {"Duration (ms)": 10001.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 74937686.0, "Total blocks": 38772422.0, "Ops per second": 7492506.92, "ns per ops": 133.47, "Ops per threads": 1561201.0, "Ops per procs": 3122403.0, "Ops/sec/procs": 312187.79, "ns per ops/procs": 3203.2}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 10 -t 16 -s 8", {"Duration (ms)": 10019.966204, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 66694419.0, "Total blocks": 28038485.0, "Ops per second": 6656152.09, "ns per ops": 150.24, "Ops per threads": 4168401.0, "Ops per procs": 8336802.0, "Ops/sec/procs": 832019.01, "ns per ops/procs": 1201.9}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 10 -t 32 -s 16", {"Duration (ms)": 10099.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 55692916.0, "Ops per second": 5569291.0, "ns per ops": 181.0, "Ops per threads": 1740403.0, "Ops per procs": 3480807.0, "Ops/sec/procs": 348080.0, "ns per ops/procs": 2901.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 10 -t 48 -s 24", {"Duration (ms)": 10007.064432, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 112046278.0, "Total blocks": 39631405.0, "Ops per second": 11196717.95, "ns per ops": 89.31, "Ops per threads": 2334297.0, "Ops per procs": 4668594.0, "Ops/sec/procs": 466529.91, "ns per ops/procs": 2143.49}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 10 -t 16 -s 8", {"Duration (ms)": 10099.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 34267306.0, "Ops per second": 3426730.0, "ns per ops": 294.0, "Ops per threads": 2141706.0, "Ops per procs": 4283413.0, "Ops/sec/procs": 428341.0, "ns per ops/procs": 2357.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 10 -t 2 -s 1", {"Duration (ms)": 10016.937779, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 77026352.0, "Total blocks": 52134150.0, "Ops per second": 7689610.71, "ns per ops": 130.05, "Ops per threads": 38513176.0, "Ops per procs": 77026352.0, "Ops/sec/procs": 7689610.71, "ns per ops/procs": 130.05}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 10 -t 2 -s 1", {"Duration (ms)": 10007.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 59271050.0, "Total blocks": 0.0, "Ops per second": 5922868.5, "ns per ops": 168.84, "Ops per threads": 29635525.0, "Ops per procs": 59271050.0, "Ops/sec/procs": 5922868.5, "ns per ops/procs": 168.84}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 10 -t 2 -s 1", {"Duration (ms)": 10007.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 59229442.0, "Total blocks": 0.0, "Ops per second": 5918658.48, "ns per ops": 168.96, "Ops per threads": 29614721.0, "Ops per procs": 59229442.0, "Ops/sec/procs": 5918658.48, "ns per ops/procs": 168.96}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 10 -t 48 -s 24", {"Duration (ms)": 10099.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 76525587.0, "Ops per second": 7652558.0, "ns per ops": 131.0, "Ops per threads": 1594283.0, "Ops per procs": 3188566.0, "Ops/sec/procs": 318856.0, "ns per ops/procs": 3167.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 10 -t 16 -s 8", {"Duration (ms)": 10099.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 35399271.0, "Ops per second": 3539927.0, "ns per ops": 285.0, "Ops per threads": 2212454.0, "Ops per procs": 4424908.0, "Ops/sec/procs": 442490.0, "ns per ops/procs": 2282.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 10 -t 2 -s 1", {"Duration (ms)": 10099.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 52944602.0, "Ops per second": 5294460.0, "ns per ops": 190.0, "Ops per threads": 26472301.0, "Ops per procs": 52944602.0, "Ops/sec/procs": 5294460.0, "ns per ops/procs": 190.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 10 -t 2 -s 1", {"Duration (ms)": 10007.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 59246475.0, "Total blocks": 0.0, "Ops per second": 5920233.28, "ns per ops": 168.91, "Ops per threads": 29623237.0, "Ops per procs": 59246475.0, "Ops/sec/procs": 5920233.28, "ns per ops/procs": 168.91}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 10 -t 2 -s 1", {"Duration (ms)": 10017.056033, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 78139970.0, "Total blocks": 50626382.0, "Ops per second": 7800692.11, "ns per ops": 128.19, "Ops per threads": 39069985.0, "Ops per procs": 78139970.0, "Ops/sec/procs": 7800692.11, "ns per ops/procs": 128.19}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 10 -t 32 -s 16", {"Duration (ms)": 10024.66772, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 91752654.0, "Total blocks": 25309024.0, "Ops per second": 9152687.81, "ns per ops": 109.26, "Ops per threads": 2867270.0, "Ops per procs": 5734540.0, "Ops/sec/procs": 572042.99, "ns per ops/procs": 1748.12}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 10 -t 48 -s 24", {"Duration (ms)": 10007.111246, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 103630541.0, "Total blocks": 37194166.0, "Ops per second": 10355689.91, "ns per ops": 96.57, "Ops per threads": 2158969.0, "Ops per procs": 4317939.0, "Ops/sec/procs": 431487.08, "ns per ops/procs": 2317.57}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 10 -t 48 -s 24", {"Duration (ms)": 10001.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 75844225.0, "Total blocks": 39206982.0, "Ops per second": 7583184.77, "ns per ops": 131.87, "Ops per threads": 1580088.0, "Ops per procs": 3160176.0, "Ops/sec/procs": 315966.03, "ns per ops/procs": 3164.9}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 10 -t 48 -s 24", {"Duration (ms)": 10039.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 78988905.0, "Ops per second": 7867923.65, "ns per ops": 127.1, "Ops per threads": 1645602.0, "Ops per procs": 3291204.0, "Ops/sec/procs": 327830.15, "ns per ops/procs": 3050.36}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 10 -t 48 -s 24", {"Duration (ms)": 10007.049884, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 103737120.0, "Total blocks": 40651067.0, "Ops per second": 10366403.81, "ns per ops": 96.47, "Ops per threads": 2161190.0, "Ops per procs": 4322380.0, "Ops/sec/procs": 431933.49, "ns per ops/procs": 2315.17}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 10 -t 32 -s 16", {"Duration (ms)": 10100.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 46882118.0, "Ops per second": 4688211.0, "ns per ops": 215.0, "Ops per threads": 1465066.0, "Ops per procs": 2930132.0, "Ops/sec/procs": 293013.0, "ns per ops/procs": 3446.0}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 10 -t 16 -s 8", {"Duration (ms)": 10018.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 57617091.0, "Ops per second": 5751024.83, "ns per ops": 173.88, "Ops per threads": 3601068.0, "Ops per procs": 7202136.0, "Ops/sec/procs": 718878.1, "ns per ops/procs": 1391.06}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 10 -t 32 -s 16", {"Duration (ms)": 10025.5689, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 93174864.0, "Total blocks": 36631659.0, "Ops per second": 9293723.37, "ns per ops": 107.6, "Ops per threads": 2911714.0, "Ops per procs": 5823429.0, "Ops/sec/procs": 580857.71, "ns per ops/procs": 1721.59}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 10 -t 32 -s 16", {"Duration (ms)": 10008.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 68440910.0, "Total blocks": 33142661.0, "Ops per second": 6838025.5, "ns per ops": 146.24, "Ops per threads": 2138778.0, "Ops per procs": 4277556.0, "Ops/sec/procs": 427376.59, "ns per ops/procs": 2339.86}]]1 [["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30082.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 167676378.0, "Ops per second": 5573948.24, "ns per ops": 179.41, "Ops per threads": 5239886.0, "Ops per procs": 10479773.0, "Ops/sec/procs": 348371.76, "ns per ops/procs": 2870.5}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30098.595122, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 540344808.0, "Total blocks": 201807815.0, "Ops per second": 17952492.66, "ns per ops": 55.7, "Ops per threads": 2814295.0, "Ops per procs": 5628591.0, "Ops/sec/procs": 187005.13, "ns per ops/procs": 5347.45}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30051.270839, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 137966971.0, "Total blocks": 68990941.0, "Ops per second": 4591052.8, "ns per ops": 217.81, "Ops per threads": 34491742.0, "Ops per procs": 68983485.0, "Ops/sec/procs": 2295526.4, "ns per ops/procs": 435.63}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185509314.0, "Total blocks": 0.0, "Ops per second": 6179071.87, "ns per ops": 161.84, "Ops per threads": 92754657.0, "Ops per procs": 185509314.0, "Ops/sec/procs": 6179071.87, "ns per ops/procs": 161.84}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30055.58275, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 713156950.0, "Total blocks": 265847951.0, "Ops per second": 23727936.2, "ns per ops": 42.14, "Ops per threads": 7428718.0, "Ops per procs": 14857436.0, "Ops/sec/procs": 494332.0, "ns per ops/procs": 2022.93}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 274149117.0, "Ops per second": 9138303.0, "ns per ops": 109.0, "Ops per threads": 1903813.0, "Ops per procs": 3807626.0, "Ops/sec/procs": 126920.0, "ns per ops/procs": 7904.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30068.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 267960575.0, "Ops per second": 8911783.98, "ns per ops": 112.21, "Ops per threads": 2791255.0, "Ops per procs": 5582511.0, "Ops/sec/procs": 185662.17, "ns per ops/procs": 5386.13}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 254953061.0, "Ops per second": 8470861.06, "ns per ops": 118.05, "Ops per threads": 5311522.0, "Ops per procs": 10623044.0, "Ops/sec/procs": 352952.54, "ns per ops/procs": 2833.24}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30038.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 157943704.0, "Ops per second": 5257973.29, "ns per ops": 190.19, "Ops per threads": 19742963.0, "Ops per procs": 39485926.0, "Ops/sec/procs": 1314493.32, "ns per ops/procs": 760.75}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 352239693.0, "Total blocks": 169062410.0, "Ops per second": 11737458.09, "ns per ops": 85.2, "Ops per threads": 2446108.0, "Ops per procs": 4892217.0, "Ops/sec/procs": 163020.25, "ns per ops/procs": 6134.21}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30049.340707, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 243576078.0, "Total blocks": 160348462.0, "Ops per second": 8105870.95, "ns per ops": 123.37, "Ops per threads": 121788039.0, "Ops per procs": 243576078.0, "Ops/sec/procs": 8105870.95, "ns per ops/procs": 123.37}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 245790241.0, "Ops per second": 8193008.0, "ns per ops": 122.0, "Ops per threads": 1706876.0, "Ops per procs": 3413753.0, "Ops/sec/procs": 113791.0, "ns per ops/procs": 8816.0}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30046.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 191905646.0, "Ops per second": 6386946.26, "ns per ops": 156.57, "Ops per threads": 11994102.0, "Ops per procs": 23988205.0, "Ops/sec/procs": 798368.28, "ns per ops/procs": 1252.55}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30051.53756, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 150539963.0, "Total blocks": 75265476.0, "Ops per second": 5009393.04, "ns per ops": 199.62, "Ops per threads": 37634990.0, "Ops per procs": 75269981.0, "Ops/sec/procs": 2504696.52, "ns per ops/procs": 399.25}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30040.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 867699325.0, "Ops per second": 28884637.3, "ns per ops": 34.62, "Ops per threads": 3012844.0, "Ops per procs": 6025689.0, "Ops/sec/procs": 200587.76, "ns per ops/procs": 4985.35}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30037.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 728175924.0, "Ops per second": 24242011.46, "ns per ops": 41.25, "Ops per threads": 2528388.0, "Ops per procs": 5056777.0, "Ops/sec/procs": 168347.3, "ns per ops/procs": 5940.1}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30052.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 191436374.0, "Ops per second": 6370128.36, "ns per ops": 156.98, "Ops per threads": 11964773.0, "Ops per procs": 23929546.0, "Ops/sec/procs": 796266.05, "ns per ops/procs": 1255.86}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30049.492132, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 273415867.0, "Total blocks": 154332998.0, "Ops per second": 9098851.51, "ns per ops": 109.9, "Ops per threads": 136707933.0, "Ops per procs": 273415867.0, "Ops/sec/procs": 9098851.51, "ns per ops/procs": 109.9}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 105303351.0, "Ops per second": 3510111.0, "ns per ops": 285.0, "Ops per threads": 6581459.0, "Ops per procs": 13162918.0, "Ops/sec/procs": 438763.0, "ns per ops/procs": 2286.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30051.761805, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 147442242.0, "Total blocks": 73720383.0, "Ops per second": 4906276.14, "ns per ops": 203.82, "Ops per threads": 36860560.0, "Ops per procs": 73721121.0, "Ops/sec/procs": 2453138.07, "ns per ops/procs": 407.64}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30078.497321, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 273304038.0, "Total blocks": 78089471.0, "Ops per second": 9086359.44, "ns per ops": 110.06, "Ops per threads": 8540751.0, "Ops per procs": 17081502.0, "Ops/sec/procs": 567897.46, "ns per ops/procs": 1760.88}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 238261740.0, "Total blocks": 111227802.0, "Ops per second": 7935084.84, "ns per ops": 126.02, "Ops per threads": 7445679.0, "Ops per procs": 14891358.0, "Ops/sec/procs": 495942.8, "ns per ops/procs": 2016.36}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30053.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 100482016.0, "Ops per second": 3349400.0, "ns per ops": 299.0, "Ops per threads": 25120504.0, "Ops per procs": 50241008.0, "Ops/sec/procs": 1674700.0, "ns per ops/procs": 598.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30082.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 169419585.0, "Ops per second": 5631882.79, "ns per ops": 177.56, "Ops per threads": 5294362.0, "Ops per procs": 10588724.0, "Ops/sec/procs": 351992.67, "ns per ops/procs": 2840.97}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30017.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 68351878.0, "Ops per second": 2278395.0, "ns per ops": 439.0, "Ops per threads": 17087969.0, "Ops per procs": 34175939.0, "Ops/sec/procs": 1139197.0, "ns per ops/procs": 878.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30091.686863, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 440917138.0, "Total blocks": 171567176.0, "Ops per second": 14652456.67, "ns per ops": 68.25, "Ops per threads": 3061924.0, "Ops per procs": 6123849.0, "Ops/sec/procs": 203506.34, "ns per ops/procs": 4913.85}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30059.8104, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 728288988.0, "Total blocks": 237176503.0, "Ops per second": 24227996.73, "ns per ops": 41.27, "Ops per threads": 7586343.0, "Ops per procs": 15172687.0, "Ops/sec/procs": 504749.93, "ns per ops/procs": 1981.18}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 247162678.0, "Total blocks": 115676204.0, "Ops per second": 8231536.16, "ns per ops": 121.48, "Ops per threads": 7723833.0, "Ops per procs": 15447667.0, "Ops/sec/procs": 514471.01, "ns per ops/procs": 1943.74}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30049.815336, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 230882319.0, "Total blocks": 160169726.0, "Ops per second": 7683319.06, "ns per ops": 130.15, "Ops per threads": 115441159.0, "Ops per procs": 230882319.0, "Ops/sec/procs": 7683319.06, "ns per ops/procs": 130.15}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 519593023.0, "Total blocks": 266180083.0, "Ops per second": 17316507.45, "ns per ops": 57.75, "Ops per threads": 5412427.0, "Ops per procs": 10824854.0, "Ops/sec/procs": 360760.57, "ns per ops/procs": 2771.92}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30019.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 671605805.0, "Ops per second": 22372639.18, "ns per ops": 44.7, "Ops per threads": 1748973.0, "Ops per procs": 3497946.0, "Ops/sec/procs": 116524.16, "ns per ops/procs": 8581.91}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 446395876.0, "Ops per second": 14879862.0, "ns per ops": 67.0, "Ops per threads": 1549985.0, "Ops per procs": 3099971.0, "Ops/sec/procs": 103332.0, "ns per ops/procs": 9709.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 158605013.0, "Ops per second": 5286833.0, "ns per ops": 189.0, "Ops per threads": 79302506.0, "Ops per procs": 158605013.0, "Ops/sec/procs": 5286833.0, "ns per ops/procs": 189.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 445709525.0, "Ops per second": 14856984.0, "ns per ops": 67.0, "Ops per threads": 1547602.0, "Ops per procs": 3095205.0, "Ops/sec/procs": 103173.0, "ns per ops/procs": 9723.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 260731401.0, "Ops per second": 8691046.0, "ns per ops": 115.0, "Ops per threads": 1810634.0, "Ops per procs": 3621269.0, "Ops/sec/procs": 120708.0, "ns per ops/procs": 8311.0}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30032.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 704206673.0, "Ops per second": 23448492.7, "ns per ops": 42.65, "Ops per threads": 2445162.0, "Ops per procs": 4890324.0, "Ops/sec/procs": 162836.75, "ns per ops/procs": 6141.12}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30072.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 177106202.0, "Ops per second": 5889248.52, "ns per ops": 169.8, "Ops per threads": 5534568.0, "Ops per procs": 11069137.0, "Ops/sec/procs": 368078.03, "ns per ops/procs": 2716.82}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30010.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 361952237.0, "Total blocks": 174861965.0, "Ops per second": 12061052.94, "ns per ops": 82.91, "Ops per threads": 2513557.0, "Ops per procs": 5027114.0, "Ops/sec/procs": 167514.62, "ns per ops/procs": 5969.63}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 438818157.0, "Ops per second": 14627271.0, "ns per ops": 68.0, "Ops per threads": 1523674.0, "Ops per procs": 3047348.0, "Ops/sec/procs": 101578.0, "ns per ops/procs": 9876.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30051.946389, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 154466339.0, "Total blocks": 77230438.0, "Ops per second": 5139977.86, "ns per ops": 194.55, "Ops per threads": 38616584.0, "Ops per procs": 77233169.0, "Ops/sec/procs": 2569988.93, "ns per ops/procs": 389.11}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 126474483.0, "Total blocks": 74374137.0, "Ops per second": 4212359.02, "ns per ops": 237.4, "Ops per threads": 15809310.0, "Ops per procs": 31618620.0, "Ops/sec/procs": 1053089.76, "ns per ops/procs": 949.59}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 253301374.0, "Ops per second": 8442888.52, "ns per ops": 118.44, "Ops per threads": 5277111.0, "Ops per procs": 10554223.0, "Ops/sec/procs": 351787.02, "ns per ops/procs": 2842.63}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 347395314.0, "Total blocks": 168992423.0, "Ops per second": 11576025.41, "ns per ops": 86.39, "Ops per threads": 2412467.0, "Ops per procs": 4824934.0, "Ops/sec/procs": 160778.13, "ns per ops/procs": 6219.75}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30024.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 146990739.0, "Total blocks": 76848705.0, "Ops per second": 4895680.79, "ns per ops": 204.26, "Ops per threads": 9186921.0, "Ops per procs": 18373842.0, "Ops/sec/procs": 611960.1, "ns per ops/procs": 1634.09}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30034.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 158094179.0, "Ops per second": 5263733.92, "ns per ops": 189.98, "Ops per threads": 19761772.0, "Ops per procs": 39523544.0, "Ops/sec/procs": 1315933.48, "ns per ops/procs": 759.92}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30061.98324, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 192133048.0, "Total blocks": 66150644.0, "Ops per second": 6391229.96, "ns per ops": 156.46, "Ops per threads": 12008315.0, "Ops per procs": 24016631.0, "Ops/sec/procs": 798903.75, "ns per ops/procs": 1251.72}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 308840600.0, "Ops per second": 10294686.0, "ns per ops": 97.0, "Ops per threads": 1608544.0, "Ops per procs": 3217089.0, "Ops/sec/procs": 107236.0, "ns per ops/procs": 9355.0}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30100.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 258269118.0, "Ops per second": 8580206.59, "ns per ops": 116.55, "Ops per threads": 5380606.0, "Ops per procs": 10761213.0, "Ops/sec/procs": 357508.61, "ns per ops/procs": 2797.14}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30049.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 189511799.0, "Ops per second": 6306686.94, "ns per ops": 158.56, "Ops per threads": 11844487.0, "Ops per procs": 23688974.0, "Ops/sec/procs": 788335.87, "ns per ops/procs": 1268.49}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 371655522.0, "Ops per second": 12388517.0, "ns per ops": 80.0, "Ops per threads": 3871411.0, "Ops per procs": 7742823.0, "Ops/sec/procs": 258094.0, "ns per ops/procs": 3887.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30078.03988, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 281880990.0, "Total blocks": 107502466.0, "Ops per second": 9371654.24, "ns per ops": 106.7, "Ops per threads": 8808780.0, "Ops per procs": 17617561.0, "Ops/sec/procs": 585728.39, "ns per ops/procs": 1707.28}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185561918.0, "Total blocks": 0.0, "Ops per second": 6180815.29, "ns per ops": 161.79, "Ops per threads": 92780959.0, "Ops per procs": 185561918.0, "Ops/sec/procs": 6180815.29, "ns per ops/procs": 161.79}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 338122035.0, "Total blocks": 164816713.0, "Ops per second": 11267059.37, "ns per ops": 88.75, "Ops per threads": 2348069.0, "Ops per procs": 4696139.0, "Ops/sec/procs": 156486.94, "ns per ops/procs": 6390.31}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30033.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 693344026.0, "Ops per second": 23085580.97, "ns per ops": 43.32, "Ops per threads": 2407444.0, "Ops per procs": 4814889.0, "Ops/sec/procs": 160316.53, "ns per ops/procs": 6237.66}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30056.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 259545703.0, "Ops per second": 8635244.66, "ns per ops": 115.8, "Ops per threads": 1351800.0, "Ops per procs": 2703601.0, "Ops/sec/procs": 89950.47, "ns per ops/procs": 11117.23}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 244810539.0, "Total blocks": 114825794.0, "Ops per second": 8153156.44, "ns per ops": 122.65, "Ops per threads": 7650329.0, "Ops per procs": 15300658.0, "Ops/sec/procs": 509572.28, "ns per ops/procs": 1962.43}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30019.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 116415339.0, "Ops per second": 3878031.55, "ns per ops": 257.86, "Ops per threads": 29103834.0, "Ops per procs": 58207669.0, "Ops/sec/procs": 1939015.77, "ns per ops/procs": 515.73}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30041.4376, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 540223809.0, "Total blocks": 204007693.0, "Ops per second": 17982621.74, "ns per ops": 55.61, "Ops per threads": 1875777.0, "Ops per procs": 3751554.0, "Ops/sec/procs": 124879.32, "ns per ops/procs": 8007.73}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 563079906.0, "Ops per second": 18769330.0, "ns per ops": 53.0, "Ops per threads": 1466353.0, "Ops per procs": 2932707.0, "Ops/sec/procs": 97756.0, "ns per ops/procs": 10262.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30015.932531, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 529720257.0, "Total blocks": 193768461.0, "Ops per second": 17647969.34, "ns per ops": 56.66, "Ops per threads": 2758959.0, "Ops per procs": 5517919.0, "Ops/sec/procs": 183833.01, "ns per ops/procs": 5439.72}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185571126.0, "Total blocks": 0.0, "Ops per second": 6181120.2, "ns per ops": 161.78, "Ops per threads": 92785563.0, "Ops per procs": 185571126.0, "Ops/sec/procs": 6181120.2, "ns per ops/procs": 161.78}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30078.777626, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 269519322.0, "Total blocks": 116430610.0, "Ops per second": 8960447.97, "ns per ops": 111.6, "Ops per threads": 8422478.0, "Ops per procs": 16844957.0, "Ops/sec/procs": 560028.0, "ns per ops/procs": 1785.63}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30051.679131, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 132781895.0, "Total blocks": 66388407.0, "Ops per second": 4418451.78, "ns per ops": 226.32, "Ops per threads": 33195473.0, "Ops per procs": 66390947.0, "Ops/sec/procs": 2209225.89, "ns per ops/procs": 452.65}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30054.50309, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 175016995.0, "Total blocks": 43749935.0, "Ops per second": 5823320.2, "ns per ops": 171.72, "Ops per threads": 21877124.0, "Ops per procs": 43754248.0, "Ops/sec/procs": 1455830.05, "ns per ops/procs": 686.89}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30013.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 658925977.0, "Total blocks": 291397174.0, "Ops per second": 21954241.67, "ns per ops": 45.55, "Ops per threads": 1715953.0, "Ops per procs": 3431906.0, "Ops/sec/procs": 114345.01, "ns per ops/procs": 8745.46}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30055.88954, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 143538197.0, "Total blocks": 68301035.0, "Ops per second": 4775709.49, "ns per ops": 209.39, "Ops per threads": 17942274.0, "Ops per procs": 35884549.0, "Ops/sec/procs": 1193927.37, "ns per ops/procs": 837.57}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30035.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 257861722.0, "Ops per second": 8585148.62, "ns per ops": 116.48, "Ops per threads": 1790706.0, "Ops per procs": 3581412.0, "Ops/sec/procs": 119238.18, "ns per ops/procs": 8386.58}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30020.941569, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 349720185.0, "Total blocks": 133122230.0, "Ops per second": 11649207.74, "ns per ops": 85.84, "Ops per threads": 7285837.0, "Ops per procs": 14571674.0, "Ops/sec/procs": 485383.66, "ns per ops/procs": 2060.23}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30034.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 657420134.0, "Ops per second": 21889058.67, "ns per ops": 45.68, "Ops per threads": 2282708.0, "Ops per procs": 4565417.0, "Ops/sec/procs": 152007.35, "ns per ops/procs": 6578.63}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30025.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 147771629.0, "Total blocks": 77295843.0, "Ops per second": 4921580.23, "ns per ops": 203.19, "Ops per threads": 9235726.0, "Ops per procs": 18471453.0, "Ops/sec/procs": 615197.53, "ns per ops/procs": 1625.49}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30021.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 502066050.0, "Ops per second": 16723717.06, "ns per ops": 59.8, "Ops per threads": 1307463.0, "Ops per procs": 2614927.0, "Ops/sec/procs": 87102.69, "ns per ops/procs": 11480.7}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30065.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 253794542.0, "Ops per second": 8441317.37, "ns per ops": 118.46, "Ops per threads": 1321846.0, "Ops per procs": 2643693.0, "Ops/sec/procs": 87930.39, "ns per ops/procs": 11372.63}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 79359758.0, "Total blocks": 39676714.0, "Ops per second": 2643229.46, "ns per ops": 378.33, "Ops per threads": 19839939.0, "Ops per procs": 39679879.0, "Ops/sec/procs": 1321614.73, "ns per ops/procs": 756.65}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30072.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 101362026.0, "Ops per second": 3378734.0, "ns per ops": 296.0, "Ops per threads": 25340506.0, "Ops per procs": 50681013.0, "Ops/sec/procs": 1689367.0, "ns per ops/procs": 593.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 157531477.0, "Ops per second": 5251049.0, "ns per ops": 191.0, "Ops per threads": 78765738.0, "Ops per procs": 157531477.0, "Ops/sec/procs": 5251049.0, "ns per ops/procs": 191.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 282192163.0, "Total blocks": 141776753.0, "Ops per second": 9405107.44, "ns per ops": 106.33, "Ops per threads": 5879003.0, "Ops per procs": 11758006.0, "Ops/sec/procs": 391879.48, "ns per ops/procs": 2551.81}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30023.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 147423663.0, "Total blocks": 75549263.0, "Ops per second": 4910215.3, "ns per ops": 203.66, "Ops per threads": 9213978.0, "Ops per procs": 18427957.0, "Ops/sec/procs": 613776.91, "ns per ops/procs": 1629.26}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30056.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 190200348.0, "Ops per second": 6328039.28, "ns per ops": 158.03, "Ops per threads": 11887521.0, "Ops per procs": 23775043.0, "Ops/sec/procs": 791004.91, "ns per ops/procs": 1264.21}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30052.05826, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 139718243.0, "Total blocks": 69867193.0, "Ops per second": 4649207.11, "ns per ops": 215.09, "Ops per threads": 34929560.0, "Ops per procs": 69859121.0, "Ops/sec/procs": 2324603.56, "ns per ops/procs": 430.18}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 312562934.0, "Ops per second": 10418764.0, "ns per ops": 96.0, "Ops per threads": 1627931.0, "Ops per procs": 3255863.0, "Ops/sec/procs": 108528.0, "ns per ops/procs": 9244.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30057.351552, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 516853333.0, "Total blocks": 198544897.0, "Ops per second": 17195571.34, "ns per ops": 58.15, "Ops per threads": 2691944.0, "Ops per procs": 5383888.0, "Ops/sec/procs": 179120.53, "ns per ops/procs": 5582.83}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 79350800.0, "Total blocks": 39672918.0, "Ops per second": 2642925.22, "ns per ops": 378.37, "Ops per threads": 19837700.0, "Ops per procs": 39675400.0, "Ops/sec/procs": 1321462.61, "ns per ops/procs": 756.74}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30011.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 599216694.0, "Total blocks": 303708310.0, "Ops per second": 19966303.23, "ns per ops": 50.08, "Ops per threads": 2080613.0, "Ops per procs": 4161227.0, "Ops/sec/procs": 138654.88, "ns per ops/procs": 7212.15}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30015.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 73371418.0, "Ops per second": 2445713.0, "ns per ops": 409.0, "Ops per threads": 9171427.0, "Ops per procs": 18342854.0, "Ops/sec/procs": 611428.0, "ns per ops/procs": 1636.0}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30051.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 189354709.0, "Ops per second": 6301066.66, "ns per ops": 158.7, "Ops per threads": 11834669.0, "Ops per procs": 23669338.0, "Ops/sec/procs": 787633.33, "ns per ops/procs": 1269.63}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 481223885.0, "Total blocks": 247951835.0, "Ops per second": 16037759.21, "ns per ops": 62.35, "Ops per threads": 5012748.0, "Ops per procs": 10025497.0, "Ops/sec/procs": 334119.98, "ns per ops/procs": 2992.94}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30021.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 119308540.0, "Ops per second": 3974132.9, "ns per ops": 251.63, "Ops per threads": 29827135.0, "Ops per procs": 59654270.0, "Ops/sec/procs": 1987066.45, "ns per ops/procs": 503.25}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30035.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 261679688.0, "Ops per second": 8712375.85, "ns per ops": 114.78, "Ops per threads": 1817220.0, "Ops per procs": 3634440.0, "Ops/sec/procs": 121005.22, "ns per ops/procs": 8264.11}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 78698258.0, "Total blocks": 39346660.0, "Ops per second": 2621197.02, "ns per ops": 381.51, "Ops per threads": 19674564.0, "Ops per procs": 39349129.0, "Ops/sec/procs": 1310598.51, "ns per ops/procs": 763.01}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 369000859.0, "Ops per second": 12300028.0, "ns per ops": 81.0, "Ops per threads": 3843758.0, "Ops per procs": 7687517.0, "Ops/sec/procs": 256250.0, "ns per ops/procs": 3915.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30012.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 666117165.0, "Total blocks": 295282349.0, "Ops per second": 22194344.42, "ns per ops": 45.06, "Ops per threads": 1734680.0, "Ops per procs": 3469360.0, "Ops/sec/procs": 115595.54, "ns per ops/procs": 8650.85}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30050.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 191514046.0, "Ops per second": 6373144.76, "ns per ops": 156.91, "Ops per threads": 11969627.0, "Ops per procs": 23939255.0, "Ops/sec/procs": 796643.09, "ns per ops/procs": 1255.27}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30085.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 168145352.0, "Ops per second": 5588916.05, "ns per ops": 178.93, "Ops per threads": 5254542.0, "Ops per procs": 10509084.0, "Ops/sec/procs": 349307.25, "ns per ops/procs": 2862.81}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 158420823.0, "Ops per second": 5280694.0, "ns per ops": 189.0, "Ops per threads": 79210411.0, "Ops per procs": 158420823.0, "Ops/sec/procs": 5280694.0, "ns per ops/procs": 189.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30036.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 157828282.0, "Ops per second": 5254630.49, "ns per ops": 190.31, "Ops per threads": 19728535.0, "Ops per procs": 39457070.0, "Ops/sec/procs": 1313657.62, "ns per ops/procs": 761.23}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30021.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 116411836.0, "Ops per second": 3877650.71, "ns per ops": 257.89, "Ops per threads": 29102959.0, "Ops per procs": 58205918.0, "Ops/sec/procs": 1938825.35, "ns per ops/procs": 515.78}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30010.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 600094277.0, "Total blocks": 300660683.0, "Ops per second": 19996083.26, "ns per ops": 50.01, "Ops per threads": 2083660.0, "Ops per procs": 4167321.0, "Ops/sec/procs": 138861.69, "ns per ops/procs": 7201.41}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30081.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 103504165.0, "Ops per second": 3450138.0, "ns per ops": 290.0, "Ops per threads": 25876041.0, "Ops per procs": 51752082.0, "Ops/sec/procs": 1725069.0, "ns per ops/procs": 581.0}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30075.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 247798870.0, "Ops per second": 8239356.02, "ns per ops": 121.37, "Ops per threads": 1290619.0, "Ops per procs": 2581238.0, "Ops/sec/procs": 85826.63, "ns per ops/procs": 11651.4}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30051.907037, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 129193837.0, "Total blocks": 64597791.0, "Ops per second": 4299022.92, "ns per ops": 232.61, "Ops per threads": 32298459.0, "Ops per procs": 64596918.0, "Ops/sec/procs": 2149511.46, "ns per ops/procs": 465.22}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 512760119.0, "Total blocks": 265133630.0, "Ops per second": 17088723.95, "ns per ops": 58.52, "Ops per threads": 5341251.0, "Ops per procs": 10682502.0, "Ops/sec/procs": 356015.08, "ns per ops/procs": 2808.87}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 361868477.0, "Total blocks": 174763186.0, "Ops per second": 12058375.49, "ns per ops": 82.93, "Ops per threads": 2512975.0, "Ops per procs": 5025951.0, "Ops/sec/procs": 167477.44, "ns per ops/procs": 5970.95}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30019.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 116717842.0, "Ops per second": 3888032.86, "ns per ops": 257.2, "Ops per threads": 29179460.0, "Ops per procs": 58358921.0, "Ops/sec/procs": 1944016.43, "ns per ops/procs": 514.4}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 278794871.0, "Ops per second": 9293162.0, "ns per ops": 107.0, "Ops per threads": 1452056.0, "Ops per procs": 2904113.0, "Ops/sec/procs": 96803.0, "ns per ops/procs": 10363.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30021.958019, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 529808349.0, "Total blocks": 200578491.0, "Ops per second": 17647361.6, "ns per ops": 56.67, "Ops per threads": 2759418.0, "Ops per procs": 5518836.0, "Ops/sec/procs": 183826.68, "ns per ops/procs": 5439.91}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30050.237872, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 249654143.0, "Total blocks": 155275097.0, "Ops per second": 8307892.41, "ns per ops": 120.37, "Ops per threads": 124827071.0, "Ops per procs": 249654143.0, "Ops/sec/procs": 8307892.41, "ns per ops/procs": 120.37}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30049.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 248511471.0, "Ops per second": 8270157.72, "ns per ops": 120.92, "Ops per threads": 1294330.0, "Ops per procs": 2588661.0, "Ops/sec/procs": 86147.48, "ns per ops/procs": 11608.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30006.802521, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 516601213.0, "Total blocks": 195474549.0, "Ops per second": 17216136.66, "ns per ops": 58.09, "Ops per threads": 1793754.0, "Ops per procs": 3587508.0, "Ops/sec/procs": 119556.5, "ns per ops/procs": 8364.25}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30021.617773, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 353052242.0, "Total blocks": 127533506.0, "Ops per second": 11759933.95, "ns per ops": 85.03, "Ops per threads": 7355255.0, "Ops per procs": 14710510.0, "Ops/sec/procs": 489997.25, "ns per ops/procs": 2040.83}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30019.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 245302441.0, "Ops per second": 8171523.27, "ns per ops": 122.38, "Ops per threads": 122651220.0, "Ops per procs": 245302441.0, "Ops/sec/procs": 8171523.27, "ns per ops/procs": 122.38}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 477078721.0, "Total blocks": 245958480.0, "Ops per second": 15899611.06, "ns per ops": 62.89, "Ops per threads": 4969570.0, "Ops per procs": 9939140.0, "Ops/sec/procs": 331241.9, "ns per ops/procs": 3018.94}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30094.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 256763448.0, "Ops per second": 8531969.58, "ns per ops": 117.21, "Ops per threads": 5349238.0, "Ops per procs": 10698477.0, "Ops/sec/procs": 355498.73, "ns per ops/procs": 2812.95}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30025.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 159305431.0, "Total blocks": 80884378.0, "Ops per second": 5305720.05, "ns per ops": 188.48, "Ops per threads": 9956589.0, "Ops per procs": 19913178.0, "Ops/sec/procs": 663215.01, "ns per ops/procs": 1507.81}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30078.740385, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 272381901.0, "Total blocks": 119722741.0, "Ops per second": 9055628.58, "ns per ops": 110.43, "Ops per threads": 8511934.0, "Ops per procs": 17023868.0, "Ops/sec/procs": 565976.79, "ns per ops/procs": 1766.86}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30075.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 169415070.0, "Ops per second": 5633054.87, "ns per ops": 177.52, "Ops per threads": 5294220.0, "Ops per procs": 10588441.0, "Ops/sec/procs": 352065.93, "ns per ops/procs": 2840.38}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30038.411671, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 527714874.0, "Total blocks": 196574990.0, "Ops per second": 17568001.92, "ns per ops": 56.92, "Ops per threads": 1832343.0, "Ops per procs": 3664686.0, "Ops/sec/procs": 122000.01, "ns per ops/procs": 8196.72}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 110704840.0, "Total blocks": 64501538.0, "Ops per second": 3687149.39, "ns per ops": 271.21, "Ops per threads": 13838105.0, "Ops per procs": 27676210.0, "Ops/sec/procs": 921787.35, "ns per ops/procs": 1084.85}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 322266970.0, "Ops per second": 10742232.0, "ns per ops": 93.0, "Ops per threads": 1678473.0, "Ops per procs": 3356947.0, "Ops/sec/procs": 111898.0, "ns per ops/procs": 8966.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 300063220.0, "Ops per second": 10002107.0, "ns per ops": 100.0, "Ops per threads": 1562829.0, "Ops per procs": 3125658.0, "Ops/sec/procs": 104188.0, "ns per ops/procs": 9629.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30012.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 607578440.0, "Total blocks": 305993649.0, "Ops per second": 20244437.34, "ns per ops": 49.4, "Ops per threads": 2109647.0, "Ops per procs": 4219294.0, "Ops/sec/procs": 140586.37, "ns per ops/procs": 7113.07}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 568821801.0, "Ops per second": 18960726.0, "ns per ops": 52.0, "Ops per threads": 1481306.0, "Ops per procs": 2962613.0, "Ops/sec/procs": 98753.0, "ns per ops/procs": 10159.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30013.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 668852974.0, "Total blocks": 297638242.0, "Ops per second": 22284909.62, "ns per ops": 44.87, "Ops per threads": 1741804.0, "Ops per procs": 3483609.0, "Ops/sec/procs": 116067.24, "ns per ops/procs": 8615.7}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30024.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 158294977.0, "Total blocks": 80191035.0, "Ops per second": 5272160.92, "ns per ops": 189.68, "Ops per threads": 9893436.0, "Ops per procs": 19786872.0, "Ops/sec/procs": 659020.12, "ns per ops/procs": 1517.4}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30075.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 101280016.0, "Ops per second": 3376000.0, "ns per ops": 296.0, "Ops per threads": 25320004.0, "Ops per procs": 50640008.0, "Ops/sec/procs": 1688000.0, "ns per ops/procs": 593.0}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30017.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 116520424.0, "Ops per second": 3881706.27, "ns per ops": 257.62, "Ops per threads": 29130106.0, "Ops per procs": 58260212.0, "Ops/sec/procs": 1940853.14, "ns per ops/procs": 515.24}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 513239120.0, "Total blocks": 264319429.0, "Ops per second": 17104656.84, "ns per ops": 58.46, "Ops per threads": 5346240.0, "Ops per procs": 10692481.0, "Ops/sec/procs": 356347.02, "ns per ops/procs": 2806.25}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30024.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 159089309.0, "Total blocks": 80713079.0, "Ops per second": 5298620.19, "ns per ops": 188.73, "Ops per threads": 9943081.0, "Ops per procs": 19886163.0, "Ops/sec/procs": 662327.52, "ns per ops/procs": 1509.83}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 376426922.0, "Ops per second": 12547564.0, "ns per ops": 79.0, "Ops per threads": 3921113.0, "Ops per procs": 7842227.0, "Ops/sec/procs": 261407.0, "ns per ops/procs": 3837.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30010.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 604943612.0, "Total blocks": 303633672.0, "Ops per second": 20157813.2, "ns per ops": 49.61, "Ops per threads": 2100498.0, "Ops per procs": 4200997.0, "Ops/sec/procs": 139984.81, "ns per ops/procs": 7143.63}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 75166955.0, "Ops per second": 2505565.0, "ns per ops": 400.0, "Ops per threads": 9395869.0, "Ops per procs": 18791738.0, "Ops/sec/procs": 626391.0, "ns per ops/procs": 1601.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30006.630002, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 522012653.0, "Total blocks": 196421865.0, "Ops per second": 17396577.12, "ns per ops": 57.48, "Ops per threads": 2718815.0, "Ops per procs": 5437631.0, "Ops/sec/procs": 181214.35, "ns per ops/procs": 5518.33}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30018.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 117781450.0, "Ops per second": 3923627.05, "ns per ops": 254.87, "Ops per threads": 29445362.0, "Ops per procs": 58890725.0, "Ops/sec/procs": 1961813.52, "ns per ops/procs": 509.73}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30011.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 665099837.0, "Total blocks": 296726289.0, "Ops per second": 22161200.62, "ns per ops": 45.12, "Ops per threads": 1732030.0, "Ops per procs": 3464061.0, "Ops/sec/procs": 115422.92, "ns per ops/procs": 8663.79}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 230418613.0, "Ops per second": 7680620.0, "ns per ops": 130.0, "Ops per threads": 4800387.0, "Ops per procs": 9600775.0, "Ops/sec/procs": 320025.0, "ns per ops/procs": 3134.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30010.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 599676910.0, "Total blocks": 304544534.0, "Ops per second": 19982002.97, "ns per ops": 50.05, "Ops per threads": 2082211.0, "Ops per procs": 4164422.0, "Ops/sec/procs": 138763.91, "ns per ops/procs": 7206.49}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 310142984.0, "Ops per second": 10338099.0, "ns per ops": 97.0, "Ops per threads": 1615328.0, "Ops per procs": 3230656.0, "Ops/sec/procs": 107688.0, "ns per ops/procs": 9316.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30055.446658, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 154196945.0, "Total blocks": 65888821.0, "Ops per second": 5130416.02, "ns per ops": 194.92, "Ops per threads": 19274618.0, "Ops per procs": 38549236.0, "Ops/sec/procs": 1282604.0, "ns per ops/procs": 779.66}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30061.735291, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 210667783.0, "Total blocks": 82690163.0, "Ops per second": 7007838.4, "ns per ops": 142.7, "Ops per threads": 13166736.0, "Ops per procs": 26333472.0, "Ops/sec/procs": 875979.8, "ns per ops/procs": 1141.58}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185564800.0, "Total blocks": 0.0, "Ops per second": 6180554.69, "ns per ops": 161.8, "Ops per threads": 92782400.0, "Ops per procs": 185564800.0, "Ops/sec/procs": 6180554.69, "ns per ops/procs": 161.8}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30019.820879, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 354123255.0, "Total blocks": 140825384.0, "Ops per second": 11796314.72, "ns per ops": 84.77, "Ops per threads": 7377567.0, "Ops per procs": 14755135.0, "Ops/sec/procs": 491513.11, "ns per ops/procs": 2034.53}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30023.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 447213861.0, "Ops per second": 14895354.82, "ns per ops": 67.14, "Ops per threads": 1164619.0, "Ops per procs": 2329238.0, "Ops/sec/procs": 77579.97, "ns per ops/procs": 12889.92}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 420829725.0, "Total blocks": 205404838.0, "Ops per second": 14023430.7, "ns per ops": 71.31, "Ops per threads": 2191821.0, "Ops per procs": 4383642.0, "Ops/sec/procs": 146077.4, "ns per ops/procs": 6845.69}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 255348491.0, "Ops per second": 8510201.47, "ns per ops": 117.51, "Ops per threads": 5319760.0, "Ops per procs": 10639520.0, "Ops/sec/procs": 354591.73, "ns per ops/procs": 2820.14}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30035.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 257983964.0, "Ops per second": 8589333.15, "ns per ops": 116.42, "Ops per threads": 128991982.0, "Ops per procs": 257983964.0, "Ops/sec/procs": 8589333.15, "ns per ops/procs": 116.42}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30013.991456, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 548923153.0, "Total blocks": 203612709.0, "Ops per second": 18288908.82, "ns per ops": 54.68, "Ops per threads": 2858974.0, "Ops per procs": 5717949.0, "Ops/sec/procs": 190509.47, "ns per ops/procs": 5249.08}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30078.163798, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 269616766.0, "Total blocks": 112353219.0, "Ops per second": 8963870.53, "ns per ops": 111.56, "Ops per threads": 8425523.0, "Ops per procs": 16851047.0, "Ops/sec/procs": 560241.91, "ns per ops/procs": 1784.94}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 415149908.0, "Total blocks": 200877787.0, "Ops per second": 13834072.95, "ns per ops": 72.29, "Ops per threads": 2162239.0, "Ops per procs": 4324478.0, "Ops/sec/procs": 144104.93, "ns per ops/procs": 6939.39}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30022.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 118599975.0, "Ops per second": 3950379.0, "ns per ops": 253.14, "Ops per threads": 29649993.0, "Ops per procs": 59299987.0, "Ops/sec/procs": 1975189.5, "ns per ops/procs": 506.28}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 291745679.0, "Total blocks": 148364546.0, "Ops per second": 9723531.85, "ns per ops": 102.84, "Ops per threads": 6078034.0, "Ops per procs": 12156069.0, "Ops/sec/procs": 405147.16, "ns per ops/procs": 2468.24}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30039.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 270978547.0, "Ops per second": 9020864.73, "ns per ops": 110.85, "Ops per threads": 135489273.0, "Ops per procs": 270978547.0, "Ops/sec/procs": 9020864.73, "ns per ops/procs": 110.85}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 120631529.0, "Total blocks": 71310879.0, "Ops per second": 4017768.07, "ns per ops": 248.89, "Ops per threads": 15078941.0, "Ops per procs": 30157882.0, "Ops/sec/procs": 1004442.02, "ns per ops/procs": 995.58}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30054.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 249821561.0, "Ops per second": 8312208.4, "ns per ops": 120.3, "Ops per threads": 1301153.0, "Ops per procs": 2602307.0, "Ops/sec/procs": 86585.5, "ns per ops/procs": 11549.28}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30067.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 102016330.0, "Ops per second": 3400544.0, "ns per ops": 294.0, "Ops per threads": 25504082.0, "Ops per procs": 51008165.0, "Ops/sec/procs": 1700272.0, "ns per ops/procs": 589.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 241862709.0, "Ops per second": 8062090.0, "ns per ops": 124.0, "Ops per threads": 5038806.0, "Ops per procs": 10077612.0, "Ops/sec/procs": 335920.0, "ns per ops/procs": 2986.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30051.949134, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 139720143.0, "Total blocks": 69771494.0, "Ops per second": 4649287.22, "ns per ops": 215.09, "Ops per threads": 34930035.0, "Ops per procs": 69860071.0, "Ops/sec/procs": 2324643.61, "ns per ops/procs": 430.17}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30024.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 158693693.0, "Total blocks": 80418410.0, "Ops per second": 5285455.66, "ns per ops": 189.2, "Ops per threads": 9918355.0, "Ops per procs": 19836711.0, "Ops/sec/procs": 660681.96, "ns per ops/procs": 1513.59}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 126987341.0, "Total blocks": 74762426.0, "Ops per second": 4229446.55, "ns per ops": 236.44, "Ops per threads": 15873417.0, "Ops per procs": 31746835.0, "Ops/sec/procs": 1057361.64, "ns per ops/procs": 945.75}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 341254473.0, "Total blocks": 166369390.0, "Ops per second": 11371379.0, "ns per ops": 87.94, "Ops per threads": 2369822.0, "Ops per procs": 4739645.0, "Ops/sec/procs": 157935.82, "ns per ops/procs": 6331.69}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30066.345487, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 714522294.0, "Total blocks": 286907776.0, "Ops per second": 23764853.44, "ns per ops": 42.08, "Ops per threads": 7442940.0, "Ops per procs": 14885881.0, "Ops/sec/procs": 495101.11, "ns per ops/procs": 2019.79}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30014.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 669765220.0, "Total blocks": 298034760.0, "Ops per second": 22314427.59, "ns per ops": 44.81, "Ops per threads": 1744180.0, "Ops per procs": 3488360.0, "Ops/sec/procs": 116220.98, "ns per ops/procs": 8604.3}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 345984646.0, "Ops per second": 11532821.0, "ns per ops": 86.0, "Ops per threads": 3604006.0, "Ops per procs": 7208013.0, "Ops/sec/procs": 240267.0, "ns per ops/procs": 4175.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 272967680.0, "Total blocks": 136626309.0, "Ops per second": 9097686.27, "ns per ops": 109.92, "Ops per threads": 5686826.0, "Ops per procs": 11373653.0, "Ops/sec/procs": 379070.26, "ns per ops/procs": 2638.03}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 411291983.0, "Total blocks": 199326817.0, "Ops per second": 13705353.38, "ns per ops": 72.96, "Ops per threads": 2142145.0, "Ops per procs": 4284291.0, "Ops/sec/procs": 142764.1, "ns per ops/procs": 7004.56}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 158612826.0, "Ops per second": 5287094.0, "ns per ops": 189.0, "Ops per threads": 79306413.0, "Ops per procs": 158612826.0, "Ops/sec/procs": 5287094.0, "ns per ops/procs": 189.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 155450280.0, "Ops per second": 5181676.0, "ns per ops": 193.0, "Ops per threads": 4857821.0, "Ops per procs": 9715642.0, "Ops/sec/procs": 323854.0, "ns per ops/procs": 3097.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 65630540.0, "Ops per second": 2187684.0, "ns per ops": 457.0, "Ops per threads": 8203817.0, "Ops per procs": 16407635.0, "Ops/sec/procs": 546921.0, "ns per ops/procs": 1828.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30049.167227, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 266636280.0, "Total blocks": 157126672.0, "Ops per second": 8873333.43, "ns per ops": 112.7, "Ops per threads": 133318140.0, "Ops per procs": 266636280.0, "Ops/sec/procs": 8873333.43, "ns per ops/procs": 112.7}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30055.718459, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 142124899.0, "Total blocks": 61927167.0, "Ops per second": 4728714.08, "ns per ops": 211.47, "Ops per threads": 17765612.0, "Ops per procs": 35531224.0, "Ops/sec/procs": 1182178.52, "ns per ops/procs": 845.9}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 305599354.0, "Ops per second": 10186645.0, "ns per ops": 98.0, "Ops per threads": 1591663.0, "Ops per procs": 3183326.0, "Ops/sec/procs": 106110.0, "ns per ops/procs": 9454.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30050.308809, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 224124757.0, "Total blocks": 163762141.0, "Ops per second": 7458317.93, "ns per ops": 134.08, "Ops per threads": 112062378.0, "Ops per procs": 224124757.0, "Ops/sec/procs": 7458317.93, "ns per ops/procs": 134.08}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30026.071101, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 579551050.0, "Total blocks": 215502769.0, "Ops per second": 19301594.54, "ns per ops": 51.81, "Ops per threads": 2012330.0, "Ops per procs": 4024660.0, "Ops/sec/procs": 134038.85, "ns per ops/procs": 7460.52}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 545899340.0, "Ops per second": 18196644.0, "ns per ops": 55.0, "Ops per threads": 1421612.0, "Ops per procs": 2843225.0, "Ops/sec/procs": 94774.0, "ns per ops/procs": 10585.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30060.737587, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 186769984.0, "Total blocks": 85833927.0, "Ops per second": 6213087.2, "ns per ops": 160.95, "Ops per threads": 11673124.0, "Ops per procs": 23346248.0, "Ops/sec/procs": 776635.9, "ns per ops/procs": 1287.6}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 346410451.0, "Total blocks": 166295117.0, "Ops per second": 11543234.13, "ns per ops": 86.63, "Ops per threads": 2405628.0, "Ops per procs": 4811256.0, "Ops/sec/procs": 160322.7, "ns per ops/procs": 6237.42}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 307430585.0, "Ops per second": 10247686.0, "ns per ops": 97.0, "Ops per threads": 1601200.0, "Ops per procs": 3202401.0, "Ops/sec/procs": 106746.0, "ns per ops/procs": 9398.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30060.248663, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 200998377.0, "Total blocks": 61504160.0, "Ops per second": 6686517.44, "ns per ops": 149.55, "Ops per threads": 12562398.0, "Ops per procs": 25124797.0, "Ops/sec/procs": 835814.68, "ns per ops/procs": 1196.44}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30061.256364, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 439474343.0, "Total blocks": 143711516.0, "Ops per second": 14619293.94, "ns per ops": 68.4, "Ops per threads": 3051905.0, "Ops per procs": 6103810.0, "Ops/sec/procs": 203045.75, "ns per ops/procs": 4925.0}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30014.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 254619178.0, "Ops per second": 8483100.17, "ns per ops": 117.88, "Ops per threads": 5304566.0, "Ops per procs": 10609132.0, "Ops/sec/procs": 353462.51, "ns per ops/procs": 2829.15}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 111961309.0, "Total blocks": 65642269.0, "Ops per second": 3728984.45, "ns per ops": 268.17, "Ops per threads": 13995163.0, "Ops per procs": 27990327.0, "Ops/sec/procs": 932246.11, "ns per ops/procs": 1072.68}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30011.53254, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 596225133.0, "Total blocks": 217593923.0, "Ops per second": 19866534.05, "ns per ops": 50.34, "Ops per threads": 2070226.0, "Ops per procs": 4140452.0, "Ops/sec/procs": 137962.04, "ns per ops/procs": 7248.37}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 286107034.0, "Ops per second": 9536901.0, "ns per ops": 105.0, "Ops per threads": 1490140.0, "Ops per procs": 2980281.0, "Ops/sec/procs": 99342.0, "ns per ops/procs": 10099.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30013.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 660780992.0, "Total blocks": 293434838.0, "Ops per second": 22015858.11, "ns per ops": 45.42, "Ops per threads": 1720783.0, "Ops per procs": 3441567.0, "Ops/sec/procs": 114665.93, "ns per ops/procs": 8720.99}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30018.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 116424863.0, "Ops per second": 3878452.94, "ns per ops": 257.83, "Ops per threads": 29106215.0, "Ops per procs": 58212431.0, "Ops/sec/procs": 1939226.47, "ns per ops/procs": 515.67}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30071.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 98714865.0, "Ops per second": 3290495.0, "ns per ops": 304.0, "Ops per threads": 24678716.0, "Ops per procs": 49357432.0, "Ops/sec/procs": 1645247.0, "ns per ops/procs": 609.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185568007.0, "Total blocks": 0.0, "Ops per second": 6181031.15, "ns per ops": 161.79, "Ops per threads": 92784003.0, "Ops per procs": 185568007.0, "Ops/sec/procs": 6181031.15, "ns per ops/procs": 161.79}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 149946554.0, "Ops per second": 4998218.0, "ns per ops": 200.0, "Ops per threads": 4685829.0, "Ops per procs": 9371659.0, "Ops/sec/procs": 312388.0, "ns per ops/procs": 3211.0}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30018.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 117150968.0, "Ops per second": 3902664.8, "ns per ops": 256.24, "Ops per threads": 29287742.0, "Ops per procs": 58575484.0, "Ops/sec/procs": 1951332.4, "ns per ops/procs": 512.47}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30009.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 606396339.0, "Total blocks": 309724989.0, "Ops per second": 20206976.09, "ns per ops": 49.49, "Ops per threads": 2105542.0, "Ops per procs": 4211085.0, "Ops/sec/procs": 140326.22, "ns per ops/procs": 7126.25}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 157736670.0, "Ops per second": 5257889.0, "ns per ops": 190.0, "Ops per threads": 78868335.0, "Ops per procs": 157736670.0, "Ops/sec/procs": 5257889.0, "ns per ops/procs": 190.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 569617383.0, "Ops per second": 18987246.0, "ns per ops": 52.0, "Ops per threads": 1483378.0, "Ops per procs": 2966757.0, "Ops/sec/procs": 98891.0, "ns per ops/procs": 10144.0}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30019.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 118611942.0, "Ops per second": 3951138.37, "ns per ops": 253.09, "Ops per threads": 29652985.0, "Ops per procs": 59305971.0, "Ops/sec/procs": 1975569.19, "ns per ops/procs": 506.18}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30011.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 595458606.0, "Total blocks": 298999866.0, "Ops per second": 19840971.66, "ns per ops": 50.4, "Ops per threads": 2067564.0, "Ops per procs": 4135129.0, "Ops/sec/procs": 137784.53, "ns per ops/procs": 7257.71}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 315400922.0, "Ops per second": 10513364.0, "ns per ops": 95.0, "Ops per threads": 1642713.0, "Ops per procs": 3285426.0, "Ops/sec/procs": 109514.0, "ns per ops/procs": 9161.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30056.007223, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 675969619.0, "Total blocks": 255661765.0, "Ops per second": 22490333.26, "ns per ops": 44.46, "Ops per threads": 7041350.0, "Ops per procs": 14082700.0, "Ops/sec/procs": 468548.61, "ns per ops/procs": 2134.25}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 106655276.0, "Ops per second": 3555175.0, "ns per ops": 282.0, "Ops per threads": 6665954.0, "Ops per procs": 13331909.0, "Ops/sec/procs": 444396.0, "ns per ops/procs": 2257.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 284705075.0, "Ops per second": 9490169.0, "ns per ops": 105.0, "Ops per threads": 1977118.0, "Ops per procs": 3954237.0, "Ops/sec/procs": 131807.0, "ns per ops/procs": 7611.0}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30093.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 264308320.0, "Ops per second": 8783013.59, "ns per ops": 113.86, "Ops per threads": 1376605.0, "Ops per procs": 2753211.0, "Ops/sec/procs": 91489.72, "ns per ops/procs": 10930.19}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 431097173.0, "Ops per second": 14369905.0, "ns per ops": 69.0, "Ops per threads": 1496865.0, "Ops per procs": 2993730.0, "Ops/sec/procs": 99791.0, "ns per ops/procs": 10053.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30050.333243, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 602022569.0, "Total blocks": 220864239.0, "Ops per second": 20033806.75, "ns per ops": 49.92, "Ops per threads": 1567767.0, "Ops per procs": 3135534.0, "Ops/sec/procs": 104342.74, "ns per ops/procs": 9583.8}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30018.624165, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 354631953.0, "Total blocks": 145554714.0, "Ops per second": 11813731.07, "ns per ops": 84.65, "Ops per threads": 7388165.0, "Ops per procs": 14776331.0, "Ops/sec/procs": 492238.79, "ns per ops/procs": 2031.53}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 157744467.0, "Ops per second": 5258148.0, "ns per ops": 190.0, "Ops per threads": 78872233.0, "Ops per procs": 157744467.0, "Ops/sec/procs": 5258148.0, "ns per ops/procs": 190.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30066.598677, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 621378593.0, "Total blocks": 249007271.0, "Ops per second": 20666740.51, "ns per ops": 48.39, "Ops per threads": 6472693.0, "Ops per procs": 12945387.0, "Ops/sec/procs": 430557.09, "ns per ops/procs": 2322.57}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30018.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 365587943.0, "Ops per second": 12178843.41, "ns per ops": 82.11, "Ops per threads": 952051.0, "Ops per procs": 1904103.0, "Ops/sec/procs": 63431.48, "ns per ops/procs": 15765.04}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30034.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 158482440.0, "Ops per second": 5276693.55, "ns per ops": 189.51, "Ops per threads": 19810305.0, "Ops per procs": 39620610.0, "Ops/sec/procs": 1319173.39, "ns per ops/procs": 758.05}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 156269254.0, "Ops per second": 5208975.0, "ns per ops": 192.0, "Ops per threads": 4883414.0, "Ops per procs": 9766828.0, "Ops/sec/procs": 325560.0, "ns per ops/procs": 3081.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 122004565.0, "Total blocks": 72431782.0, "Ops per second": 4063537.87, "ns per ops": 246.09, "Ops per threads": 15250570.0, "Ops per procs": 30501141.0, "Ops/sec/procs": 1015884.47, "ns per ops/procs": 984.36}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 339147386.0, "Ops per second": 11304912.0, "ns per ops": 88.0, "Ops per threads": 3532785.0, "Ops per procs": 7065570.0, "Ops/sec/procs": 235519.0, "ns per ops/procs": 4259.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30078.972851, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 273753167.0, "Total blocks": 119192950.0, "Ops per second": 9101147.45, "ns per ops": 109.88, "Ops per threads": 8554786.0, "Ops per procs": 17109572.0, "Ops/sec/procs": 568821.72, "ns per ops/procs": 1758.02}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30014.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 254103259.0, "Ops per second": 8465923.58, "ns per ops": 118.12, "Ops per threads": 5293817.0, "Ops per procs": 10587635.0, "Ops/sec/procs": 352746.82, "ns per ops/procs": 2834.89}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 562877512.0, "Ops per second": 18762583.0, "ns per ops": 53.0, "Ops per threads": 1465826.0, "Ops per procs": 2931653.0, "Ops/sec/procs": 97721.0, "ns per ops/procs": 10266.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30013.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 657648945.0, "Total blocks": 290825406.0, "Ops per second": 21911561.11, "ns per ops": 45.64, "Ops per threads": 1712627.0, "Ops per procs": 3425254.0, "Ops/sec/procs": 114122.71, "ns per ops/procs": 8762.5}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30021.007919, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 361150419.0, "Total blocks": 124173901.0, "Ops per second": 12029923.18, "ns per ops": 83.13, "Ops per threads": 7523967.0, "Ops per procs": 15047934.0, "Ops/sec/procs": 501246.8, "ns per ops/procs": 1995.03}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 103487878.0, "Ops per second": 3449595.0, "ns per ops": 290.0, "Ops per threads": 6467992.0, "Ops per procs": 12935984.0, "Ops/sec/procs": 431199.0, "ns per ops/procs": 2326.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30021.674448, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 530370080.0, "Total blocks": 190775184.0, "Ops per second": 17666239.13, "ns per ops": 56.61, "Ops per threads": 2762344.0, "Ops per procs": 5524688.0, "Ops/sec/procs": 184023.32, "ns per ops/procs": 5434.09}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30031.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 159475213.0, "Ops per second": 5310209.33, "ns per ops": 188.32, "Ops per threads": 19934401.0, "Ops per procs": 39868803.0, "Ops/sec/procs": 1327552.33, "ns per ops/procs": 753.27}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30031.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 605513924.0, "Ops per second": 20162722.75, "ns per ops": 49.6, "Ops per threads": 1576859.0, "Ops per procs": 3153718.0, "Ops/sec/procs": 105014.18, "ns per ops/procs": 9522.52}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 296899834.0, "Total blocks": 148345683.0, "Ops per second": 9895301.15, "ns per ops": 101.06, "Ops per threads": 6185413.0, "Ops per procs": 12370826.0, "Ops/sec/procs": 412304.21, "ns per ops/procs": 2425.39}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30024.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 146756791.0, "Total blocks": 76785062.0, "Ops per second": 4887945.62, "ns per ops": 204.58, "Ops per threads": 9172299.0, "Ops per procs": 18344598.0, "Ops/sec/procs": 610993.2, "ns per ops/procs": 1636.68}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30021.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 596792246.0, "Ops per second": 19878771.82, "ns per ops": 50.3, "Ops per threads": 1554146.0, "Ops per procs": 3108292.0, "Ops/sec/procs": 103535.27, "ns per ops/procs": 9658.54}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30098.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 428567906.0, "Ops per second": 14285596.0, "ns per ops": 70.0, "Ops per threads": 1488083.0, "Ops per procs": 2976166.0, "Ops/sec/procs": 99205.0, "ns per ops/procs": 10113.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30061.734537, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 209632702.0, "Total blocks": 70634694.0, "Ops per second": 6973406.73, "ns per ops": 143.4, "Ops per threads": 13102043.0, "Ops per procs": 26204087.0, "Ops/sec/procs": 871675.84, "ns per ops/procs": 1147.22}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 158592472.0, "Ops per second": 5286415.0, "ns per ops": 189.0, "Ops per threads": 79296236.0, "Ops per procs": 158592472.0, "Ops/sec/procs": 5286415.0, "ns per ops/procs": 189.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 272661549.0, "Total blocks": 136409993.0, "Ops per second": 9087497.28, "ns per ops": 110.04, "Ops per threads": 5680448.0, "Ops per procs": 11360897.0, "Ops/sec/procs": 378645.72, "ns per ops/procs": 2640.99}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30019.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 683142476.0, "Ops per second": 22756585.5, "ns per ops": 43.94, "Ops per threads": 1779016.0, "Ops per procs": 3558033.0, "Ops/sec/procs": 118523.88, "ns per ops/procs": 8437.12}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30002.071441, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 576649935.0, "Total blocks": 228213702.0, "Ops per second": 19220337.37, "ns per ops": 52.03, "Ops per threads": 1501692.0, "Ops per procs": 3003385.0, "Ops/sec/procs": 100105.92, "ns per ops/procs": 9989.42}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30021.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 362688103.0, "Ops per second": 12081107.25, "ns per ops": 82.77, "Ops per threads": 944500.0, "Ops per procs": 1889000.0, "Ops/sec/procs": 62922.43, "ns per ops/procs": 15892.58}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 81036357.0, "Ops per second": 2701211.0, "ns per ops": 371.0, "Ops per threads": 10129544.0, "Ops per procs": 20259089.0, "Ops/sec/procs": 675302.0, "ns per ops/procs": 1485.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30013.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 644138633.0, "Total blocks": 283537854.0, "Ops per second": 21461647.99, "ns per ops": 46.59, "Ops per threads": 1677444.0, "Ops per procs": 3354888.0, "Ops/sec/procs": 111779.42, "ns per ops/procs": 8946.19}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30067.79999, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 445191125.0, "Total blocks": 162937638.0, "Ops per second": 14806242.06, "ns per ops": 67.54, "Ops per threads": 3091605.0, "Ops per procs": 6183210.0, "Ops/sec/procs": 205642.25, "ns per ops/procs": 4862.81}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30084.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 253886616.0, "Ops per second": 8439005.98, "ns per ops": 118.5, "Ops per threads": 1322326.0, "Ops per procs": 2644652.0, "Ops/sec/procs": 87906.31, "ns per ops/procs": 11375.75}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 240064331.0, "Ops per second": 8002144.0, "ns per ops": 125.0, "Ops per threads": 5001340.0, "Ops per procs": 10002680.0, "Ops/sec/procs": 333422.0, "ns per ops/procs": 3008.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30054.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 102463427.0, "Ops per second": 3415447.0, "ns per ops": 293.0, "Ops per threads": 25615856.0, "Ops per procs": 51231713.0, "Ops/sec/procs": 1707723.0, "ns per ops/procs": 586.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30027.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 239174128.0, "Total blocks": 111564282.0, "Ops per second": 7965037.84, "ns per ops": 125.55, "Ops per threads": 7474191.0, "Ops per procs": 14948383.0, "Ops/sec/procs": 497814.87, "ns per ops/procs": 2008.78}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30010.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 599188141.0, "Total blocks": 303721187.0, "Ops per second": 19965686.2, "ns per ops": 50.09, "Ops per threads": 2080514.0, "Ops per procs": 4161028.0, "Ops/sec/procs": 138650.6, "ns per ops/procs": 7212.38}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 346011094.0, "Total blocks": 166352538.0, "Ops per second": 11530074.7, "ns per ops": 86.73, "Ops per threads": 2402854.0, "Ops per procs": 4805709.0, "Ops/sec/procs": 160139.93, "ns per ops/procs": 6244.54}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30079.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 176650621.0, "Ops per second": 5872713.87, "ns per ops": 170.28, "Ops per threads": 5520331.0, "Ops per procs": 11040663.0, "Ops/sec/procs": 367044.62, "ns per ops/procs": 2724.46}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30011.250868, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 622870673.0, "Total blocks": 233012041.0, "Ops per second": 20754572.2, "ns per ops": 48.18, "Ops per threads": 1622059.0, "Ops per procs": 3244118.0, "Ops/sec/procs": 108096.73, "ns per ops/procs": 9250.97}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 249973603.0, "Ops per second": 8332453.0, "ns per ops": 120.0, "Ops per threads": 5207783.0, "Ops per procs": 10415566.0, "Ops/sec/procs": 347185.0, "ns per ops/procs": 2889.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 79249887.0, "Total blocks": 39622088.0, "Ops per second": 2639592.18, "ns per ops": 378.85, "Ops per threads": 19812471.0, "Ops per procs": 39624943.0, "Ops/sec/procs": 1319796.09, "ns per ops/procs": 757.69}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30069.211947, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 673830433.0, "Total blocks": 235834890.0, "Ops per second": 22409314.69, "ns per ops": 44.62, "Ops per threads": 7019067.0, "Ops per procs": 14038134.0, "Ops/sec/procs": 466860.72, "ns per ops/procs": 2141.97}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 245829099.0, "Total blocks": 115374313.0, "Ops per second": 8186964.66, "ns per ops": 122.15, "Ops per threads": 7682159.0, "Ops per procs": 15364318.0, "Ops/sec/procs": 511685.29, "ns per ops/procs": 1954.33}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30049.577127, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 234279884.0, "Total blocks": 158539931.0, "Ops per second": 7796445.29, "ns per ops": 128.26, "Ops per threads": 117139942.0, "Ops per procs": 234279884.0, "Ops/sec/procs": 7796445.29, "ns per ops/procs": 128.26}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30051.665566, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 150309964.0, "Total blocks": 75163529.0, "Ops per second": 5001718.25, "ns per ops": 199.93, "Ops per threads": 37577491.0, "Ops per procs": 75154982.0, "Ops/sec/procs": 2500859.12, "ns per ops/procs": 399.86}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30054.265136, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 144352146.0, "Total blocks": 68656885.0, "Ops per second": 4803050.26, "ns per ops": 208.2, "Ops per threads": 18044018.0, "Ops per procs": 36088036.0, "Ops/sec/procs": 1200762.57, "ns per ops/procs": 832.8}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30052.023725, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 147256263.0, "Total blocks": 73618398.0, "Ops per second": 4900044.81, "ns per ops": 204.08, "Ops per threads": 36814065.0, "Ops per procs": 73628131.0, "Ops/sec/procs": 2450022.41, "ns per ops/procs": 408.16}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 79657940.0, "Total blocks": 39826304.0, "Ops per second": 2653155.56, "ns per ops": 376.91, "Ops per threads": 19914485.0, "Ops per procs": 39828970.0, "Ops/sec/procs": 1326577.78, "ns per ops/procs": 753.82}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 79211590.0, "Total blocks": 39602890.0, "Ops per second": 2638300.42, "ns per ops": 379.03, "Ops per threads": 19802897.0, "Ops per procs": 39605795.0, "Ops/sec/procs": 1319150.21, "ns per ops/procs": 758.06}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 355471243.0, "Ops per second": 11849041.0, "ns per ops": 84.0, "Ops per threads": 3702825.0, "Ops per procs": 7405650.0, "Ops/sec/procs": 246855.0, "ns per ops/procs": 4064.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30025.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 79307464.0, "Total blocks": 39650863.0, "Ops per second": 2641363.48, "ns per ops": 378.59, "Ops per threads": 19826866.0, "Ops per procs": 39653732.0, "Ops/sec/procs": 1320681.74, "ns per ops/procs": 757.18}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 77998263.0, "Total blocks": 38996426.0, "Ops per second": 2597850.86, "ns per ops": 384.93, "Ops per threads": 19499565.0, "Ops per procs": 38999131.0, "Ops/sec/procs": 1298925.43, "ns per ops/procs": 769.87}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30014.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 253230441.0, "Ops per second": 8436994.19, "ns per ops": 118.53, "Ops per threads": 5275634.0, "Ops per procs": 10551268.0, "Ops/sec/procs": 351541.42, "ns per ops/procs": 2844.61}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 285062407.0, "Total blocks": 143293786.0, "Ops per second": 9500771.4, "ns per ops": 105.25, "Ops per threads": 5938800.0, "Ops per procs": 11877600.0, "Ops/sec/procs": 395865.47, "ns per ops/procs": 2526.11}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185457694.0, "Total blocks": 0.0, "Ops per second": 6177357.44, "ns per ops": 161.88, "Ops per threads": 92728847.0, "Ops per procs": 185457694.0, "Ops/sec/procs": 6177357.44, "ns per ops/procs": 161.88}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30050.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 259271156.0, "Ops per second": 8627875.03, "ns per ops": 115.9, "Ops per threads": 1800494.0, "Ops per procs": 3600988.0, "Ops/sec/procs": 119831.6, "ns per ops/procs": 8345.04}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30024.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 158030265.0, "Total blocks": 80127575.0, "Ops per second": 5263422.57, "ns per ops": 189.99, "Ops per threads": 9876891.0, "Ops per procs": 19753783.0, "Ops/sec/procs": 657927.82, "ns per ops/procs": 1519.92}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 247940148.0, "Total blocks": 116241822.0, "Ops per second": 8257412.96, "ns per ops": 121.1, "Ops per threads": 7748129.0, "Ops per procs": 15496259.0, "Ops/sec/procs": 516088.31, "ns per ops/procs": 1937.65}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 241012739.0, "Ops per second": 8033757.0, "ns per ops": 124.0, "Ops per threads": 5021098.0, "Ops per procs": 10042197.0, "Ops/sec/procs": 334739.0, "ns per ops/procs": 2997.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30072.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 266686885.0, "Ops per second": 8868203.68, "ns per ops": 112.76, "Ops per threads": 2777988.0, "Ops per procs": 5555976.0, "Ops/sec/procs": 184754.24, "ns per ops/procs": 5412.6}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 106570335.0, "Ops per second": 3552344.0, "ns per ops": 282.0, "Ops per threads": 6660645.0, "Ops per procs": 13321291.0, "Ops/sec/procs": 444043.0, "ns per ops/procs": 2259.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 160483204.0, "Ops per second": 5349440.0, "ns per ops": 187.0, "Ops per threads": 5015100.0, "Ops per procs": 10030200.0, "Ops/sec/procs": 334340.0, "ns per ops/procs": 3000.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30025.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 246123285.0, "Total blocks": 115260696.0, "Ops per second": 8197067.94, "ns per ops": 121.99, "Ops per threads": 7691352.0, "Ops per procs": 15382705.0, "Ops/sec/procs": 512316.75, "ns per ops/procs": 1951.92}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30024.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 964936051.0, "Ops per second": 32138115.85, "ns per ops": 31.12, "Ops per threads": 2512854.0, "Ops per procs": 5025708.0, "Ops/sec/procs": 167386.02, "ns per ops/procs": 5974.21}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30052.713112, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 573244319.0, "Total blocks": 229530111.0, "Ops per second": 19074627.87, "ns per ops": 52.43, "Ops per threads": 1492823.0, "Ops per procs": 2985647.0, "Ops/sec/procs": 99347.02, "ns per ops/procs": 10065.73}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 248185069.0, "Total blocks": 116294091.0, "Ops per second": 8265636.2, "ns per ops": 120.98, "Ops per threads": 7755783.0, "Ops per procs": 15511566.0, "Ops/sec/procs": 516602.26, "ns per ops/procs": 1935.73}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185538995.0, "Total blocks": 0.0, "Ops per second": 6180022.55, "ns per ops": 161.81, "Ops per threads": 92769497.0, "Ops per procs": 185538995.0, "Ops/sec/procs": 6180022.55, "ns per ops/procs": 161.81}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30083.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 167696728.0, "Ops per second": 5574296.13, "ns per ops": 179.39, "Ops per threads": 5240522.0, "Ops per procs": 10481045.0, "Ops/sec/procs": 348393.51, "ns per ops/procs": 2870.32}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30098.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 64712815.0, "Ops per second": 2157093.0, "ns per ops": 465.0, "Ops per threads": 8089101.0, "Ops per procs": 16178203.0, "Ops/sec/procs": 539273.0, "ns per ops/procs": 1860.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30090.393396, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 503147405.0, "Total blocks": 184686370.0, "Ops per second": 16721197.31, "ns per ops": 59.8, "Ops per threads": 1747039.0, "Ops per procs": 3494079.0, "Ops/sec/procs": 116119.43, "ns per ops/procs": 8611.82}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 442214042.0, "Ops per second": 14740468.0, "ns per ops": 68.0, "Ops per threads": 1535465.0, "Ops per procs": 3070930.0, "Ops/sec/procs": 102364.0, "ns per ops/procs": 9800.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 458467896.0, "Ops per second": 15282263.0, "ns per ops": 65.0, "Ops per threads": 1591902.0, "Ops per procs": 3183804.0, "Ops/sec/procs": 106126.0, "ns per ops/procs": 9453.0}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30039.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 832229190.0, "Ops per second": 27704865.59, "ns per ops": 36.09, "Ops per threads": 2889684.0, "Ops per procs": 5779369.0, "Ops/sec/procs": 192394.9, "ns per ops/procs": 5197.64}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30098.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 447921770.0, "Ops per second": 14930725.0, "ns per ops": 67.0, "Ops per threads": 1555283.0, "Ops per procs": 3110567.0, "Ops/sec/procs": 103685.0, "ns per ops/procs": 9676.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30074.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 178356324.0, "Ops per second": 5930578.08, "ns per ops": 168.62, "Ops per threads": 5573635.0, "Ops per procs": 11147270.0, "Ops/sec/procs": 370661.13, "ns per ops/procs": 2697.88}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30051.578845, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 145646142.0, "Total blocks": 72820582.0, "Ops per second": 4846538.77, "ns per ops": 206.33, "Ops per threads": 36411535.0, "Ops per procs": 72823071.0, "Ops/sec/procs": 2423269.39, "ns per ops/procs": 412.67}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30020.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 254377554.0, "Ops per second": 8473338.92, "ns per ops": 118.02, "Ops per threads": 127188777.0, "Ops per procs": 254377554.0, "Ops/sec/procs": 8473338.92, "ns per ops/procs": 118.02}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 239620620.0, "Ops per second": 7987354.0, "ns per ops": 125.0, "Ops per threads": 4992096.0, "Ops per procs": 9984192.0, "Ops/sec/procs": 332806.0, "ns per ops/procs": 3014.0}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30035.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 943653721.0, "Ops per second": 31417954.6, "ns per ops": 31.83, "Ops per threads": 3276575.0, "Ops per procs": 6553150.0, "Ops/sec/procs": 218180.24, "ns per ops/procs": 4583.37}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30028.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 249445996.0, "Ops per second": 8306968.23, "ns per ops": 120.38, "Ops per threads": 124722998.0, "Ops per procs": 249445996.0, "Ops/sec/procs": 8306968.23, "ns per ops/procs": 120.38}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30020.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 115275634.0, "Ops per second": 3839844.28, "ns per ops": 260.43, "Ops per threads": 28818908.0, "Ops per procs": 57637817.0, "Ops/sec/procs": 1919922.14, "ns per ops/procs": 520.85}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 301616959.0, "Total blocks": 152829304.0, "Ops per second": 10052537.86, "ns per ops": 99.48, "Ops per threads": 6283686.0, "Ops per procs": 12567373.0, "Ops/sec/procs": 418855.74, "ns per ops/procs": 2387.46}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30034.581506, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 459808438.0, "Total blocks": 167598487.0, "Ops per second": 15309300.64, "ns per ops": 65.32, "Ops per threads": 3193114.0, "Ops per procs": 6386228.0, "Ops/sec/procs": 212629.18, "ns per ops/procs": 4703.02}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 120903577.0, "Total blocks": 71497997.0, "Ops per second": 4026839.19, "ns per ops": 248.33, "Ops per threads": 15112947.0, "Ops per procs": 30225894.0, "Ops/sec/procs": 1006709.8, "ns per ops/procs": 993.33}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30091.771815, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 559579006.0, "Total blocks": 205944705.0, "Ops per second": 18595748.02, "ns per ops": 53.78, "Ops per threads": 1942982.0, "Ops per procs": 3885965.0, "Ops/sec/procs": 129137.14, "ns per ops/procs": 7743.71}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30077.898775, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 262448458.0, "Total blocks": 113070023.0, "Ops per second": 8725624.75, "ns per ops": 114.6, "Ops per threads": 8201514.0, "Ops per procs": 16403028.0, "Ops/sec/procs": 545351.55, "ns per ops/procs": 1833.68}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30045.822291, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 561514925.0, "Total blocks": 208573022.0, "Ops per second": 18688618.99, "ns per ops": 53.51, "Ops per threads": 1949704.0, "Ops per procs": 3899409.0, "Ops/sec/procs": 129782.08, "ns per ops/procs": 7705.22}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30099.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 79240850.0, "Ops per second": 2641361.0, "ns per ops": 379.0, "Ops per threads": 9905106.0, "Ops per procs": 19810212.0, "Ops/sec/procs": 660340.0, "ns per ops/procs": 1519.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30032.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 158365060.0, "Ops per second": 5273131.3, "ns per ops": 189.64, "Ops per threads": 19795632.0, "Ops per procs": 39591265.0, "Ops/sec/procs": 1318282.82, "ns per ops/procs": 758.56}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 404081764.0, "Total blocks": 197772039.0, "Ops per second": 13465100.21, "ns per ops": 74.27, "Ops per threads": 2104592.0, "Ops per procs": 4209185.0, "Ops/sec/procs": 140261.46, "ns per ops/procs": 7129.54}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30026.495956, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 607210542.0, "Total blocks": 212641797.0, "Ops per second": 20222490.93, "ns per ops": 49.45, "Ops per threads": 2108369.0, "Ops per procs": 4216739.0, "Ops/sec/procs": 140433.96, "ns per ops/procs": 7120.79}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30012.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 242885051.0, "Ops per second": 8092749.36, "ns per ops": 123.57, "Ops per threads": 121442525.0, "Ops per procs": 242885051.0, "Ops/sec/procs": 8092749.36, "ns per ops/procs": 123.57}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30025.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 158608155.0, "Total blocks": 80286279.0, "Ops per second": 5282517.27, "ns per ops": 189.3, "Ops per threads": 9913009.0, "Ops per procs": 19826019.0, "Ops/sec/procs": 660314.66, "ns per ops/procs": 1514.43}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30045.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 189831201.0, "Ops per second": 6318057.95, "ns per ops": 158.28, "Ops per threads": 11864450.0, "Ops per procs": 23728900.0, "Ops/sec/procs": 789757.24, "ns per ops/procs": 1266.21}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 436936853.0, "Ops per second": 14564561.0, "ns per ops": 68.0, "Ops per threads": 1517141.0, "Ops per procs": 3034283.0, "Ops/sec/procs": 101142.0, "ns per ops/procs": 9919.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185553751.0, "Total blocks": 0.0, "Ops per second": 6180514.17, "ns per ops": 161.8, "Ops per threads": 92776875.0, "Ops per procs": 185553751.0, "Ops/sec/procs": 6180514.17, "ns per ops/procs": 161.8}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30050.010278, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 270828503.0, "Total blocks": 151275808.0, "Ops per second": 9012592.69, "ns per ops": 110.96, "Ops per threads": 135414251.0, "Ops per procs": 270828503.0, "Ops/sec/procs": 9012592.69, "ns per ops/procs": 110.96}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30017.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 389323244.0, "Ops per second": 12969703.85, "ns per ops": 77.1, "Ops per threads": 1013862.0, "Ops per procs": 2027725.0, "Ops/sec/procs": 67550.54, "ns per ops/procs": 14803.73}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 158596446.0, "Ops per second": 5286548.0, "ns per ops": 189.0, "Ops per threads": 79298223.0, "Ops per procs": 158596446.0, "Ops/sec/procs": 5286548.0, "ns per ops/procs": 189.0}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30073.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 248625401.0, "Ops per second": 8267245.67, "ns per ops": 120.96, "Ops per threads": 1294923.0, "Ops per procs": 2589847.0, "Ops/sec/procs": 86117.14, "ns per ops/procs": 11612.09}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185581406.0, "Total blocks": 0.0, "Ops per second": 6181436.39, "ns per ops": 161.77, "Ops per threads": 92790703.0, "Ops per procs": 185581406.0, "Ops/sec/procs": 6181436.39, "ns per ops/procs": 161.77}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 425572862.0, "Ops per second": 14185762.0, "ns per ops": 70.0, "Ops per threads": 1477683.0, "Ops per procs": 2955367.0, "Ops/sec/procs": 98512.0, "ns per ops/procs": 10184.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30077.577807, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 277659568.0, "Total blocks": 104342532.0, "Ops per second": 9231447.09, "ns per ops": 108.33, "Ops per threads": 8676861.0, "Ops per procs": 17353723.0, "Ops/sec/procs": 576965.44, "ns per ops/procs": 1733.21}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 234573700.0, "Total blocks": 110288462.0, "Ops per second": 7812189.92, "ns per ops": 128.01, "Ops per threads": 7330428.0, "Ops per procs": 14660856.0, "Ops/sec/procs": 488261.87, "ns per ops/procs": 2048.08}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30061.144537, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 192910274.0, "Total blocks": 86507739.0, "Ops per second": 6417263.11, "ns per ops": 155.83, "Ops per threads": 12056892.0, "Ops per procs": 24113784.0, "Ops/sec/procs": 802157.89, "ns per ops/procs": 1246.64}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30016.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 67450962.0, "Ops per second": 2248365.0, "ns per ops": 445.0, "Ops per threads": 16862740.0, "Ops per procs": 33725481.0, "Ops/sec/procs": 1124182.0, "ns per ops/procs": 890.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30066.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 252031825.0, "Ops per second": 8382561.63, "ns per ops": 119.3, "Ops per threads": 2625331.0, "Ops per procs": 5250663.0, "Ops/sec/procs": 174636.7, "ns per ops/procs": 5726.17}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30025.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 111850431.0, "Total blocks": 65020982.0, "Ops per second": 3725221.55, "ns per ops": 268.44, "Ops per threads": 13981303.0, "Ops per procs": 27962607.0, "Ops/sec/procs": 931305.39, "ns per ops/procs": 1073.76}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30020.541753, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 339266184.0, "Total blocks": 131530426.0, "Ops per second": 11301134.63, "ns per ops": 88.49, "Ops per threads": 7068045.0, "Ops per procs": 14136091.0, "Ops/sec/procs": 470880.61, "ns per ops/procs": 2123.68}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 545648787.0, "Ops per second": 18188292.0, "ns per ops": 55.0, "Ops per threads": 1420960.0, "Ops per procs": 2841920.0, "Ops/sec/procs": 94730.0, "ns per ops/procs": 10590.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30063.561076, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 699159104.0, "Total blocks": 269494259.0, "Ops per second": 23256030.86, "ns per ops": 43.0, "Ops per threads": 7282907.0, "Ops per procs": 14565814.0, "Ops/sec/procs": 484500.64, "ns per ops/procs": 2063.98}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30061.625777, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 449910530.0, "Total blocks": 157211459.0, "Ops per second": 14966274.06, "ns per ops": 66.82, "Ops per threads": 3124378.0, "Ops per procs": 6248757.0, "Ops/sec/procs": 207864.92, "ns per ops/procs": 4810.82}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 342396659.0, "Ops per second": 11413221.0, "ns per ops": 87.0, "Ops per threads": 3566631.0, "Ops per procs": 7133263.0, "Ops/sec/procs": 237775.0, "ns per ops/procs": 4219.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30077.242433, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 410093700.0, "Total blocks": 144007638.0, "Ops per second": 13634684.13, "ns per ops": 73.34, "Ops per threads": 2847872.0, "Ops per procs": 5695745.0, "Ops/sec/procs": 189370.61, "ns per ops/procs": 5280.65}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 272542681.0, "Total blocks": 136129061.0, "Ops per second": 9083528.22, "ns per ops": 110.09, "Ops per threads": 5677972.0, "Ops per procs": 11355945.0, "Ops/sec/procs": 378480.34, "ns per ops/procs": 2642.15}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 248716876.0, "Ops per second": 8290562.0, "ns per ops": 121.0, "Ops per threads": 5181601.0, "Ops per procs": 10363203.0, "Ops/sec/procs": 345440.0, "ns per ops/procs": 2904.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 510254679.0, "Total blocks": 263599243.0, "Ops per second": 17005116.76, "ns per ops": 58.81, "Ops per threads": 5315152.0, "Ops per procs": 10630305.0, "Ops/sec/procs": 354273.27, "ns per ops/procs": 2822.68}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30085.571178, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 557368611.0, "Total blocks": 204213029.0, "Ops per second": 18526110.33, "ns per ops": 53.98, "Ops per threads": 1935307.0, "Ops per procs": 3870615.0, "Ops/sec/procs": 128653.54, "ns per ops/procs": 7772.81}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30018.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 255568628.0, "Ops per second": 8513684.13, "ns per ops": 117.46, "Ops per threads": 5324346.0, "Ops per procs": 10648692.0, "Ops/sec/procs": 354736.84, "ns per ops/procs": 2818.99}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30021.607243, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 346529936.0, "Total blocks": 134659921.0, "Ops per second": 11542684.35, "ns per ops": 86.63, "Ops per threads": 7219373.0, "Ops per procs": 14438747.0, "Ops/sec/procs": 480945.18, "ns per ops/procs": 2079.24}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30061.987871, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 197131311.0, "Total blocks": 81908194.0, "Ops per second": 6557494.2, "ns per ops": 152.5, "Ops per threads": 12320706.0, "Ops per procs": 24641413.0, "Ops/sec/procs": 819686.77, "ns per ops/procs": 1219.98}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30054.936278, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 674912351.0, "Total blocks": 249443867.0, "Ops per second": 22455956.81, "ns per ops": 44.53, "Ops per threads": 7030336.0, "Ops per procs": 14060673.0, "Ops/sec/procs": 467832.43, "ns per ops/procs": 2137.52}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30036.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 908596891.0, "Ops per second": 30250179.16, "ns per ops": 33.06, "Ops per threads": 3154850.0, "Ops per procs": 6309700.0, "Ops/sec/procs": 210070.69, "ns per ops/procs": 4760.3}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 274417562.0, "Ops per second": 9147252.0, "ns per ops": 109.0, "Ops per threads": 1905677.0, "Ops per procs": 3811355.0, "Ops/sec/procs": 127045.0, "ns per ops/procs": 7896.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 246466408.0, "Total blocks": 115571678.0, "Ops per second": 8208328.54, "ns per ops": 121.83, "Ops per threads": 7702075.0, "Ops per procs": 15404150.0, "Ops/sec/procs": 513020.53, "ns per ops/procs": 1949.24}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30068.242896, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 432660071.0, "Total blocks": 155567235.0, "Ops per second": 14389270.18, "ns per ops": 69.5, "Ops per threads": 3004583.0, "Ops per procs": 6009167.0, "Ops/sec/procs": 199850.97, "ns per ops/procs": 5003.73}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 154917929.0, "Ops per second": 5163930.0, "ns per ops": 194.0, "Ops per threads": 4841185.0, "Ops per procs": 9682370.0, "Ops/sec/procs": 322745.0, "ns per ops/procs": 3108.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 94546239.0, "Ops per second": 3151541.0, "ns per ops": 318.0, "Ops per threads": 5909139.0, "Ops per procs": 11818279.0, "Ops/sec/procs": 393942.0, "ns per ops/procs": 2546.0}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30009.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 253892526.0, "Ops per second": 8460413.86, "ns per ops": 118.2, "Ops per threads": 5289427.0, "Ops per procs": 10578855.0, "Ops/sec/procs": 352517.24, "ns per ops/procs": 2836.74}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30074.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 95740692.0, "Ops per second": 3191356.0, "ns per ops": 314.0, "Ops per threads": 23935173.0, "Ops per procs": 47870346.0, "Ops/sec/procs": 1595678.0, "ns per ops/procs": 628.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30049.44903, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 250849331.0, "Total blocks": 159181914.0, "Ops per second": 8347884.54, "ns per ops": 119.79, "Ops per threads": 125424665.0, "Ops per procs": 250849331.0, "Ops/sec/procs": 8347884.54, "ns per ops/procs": 119.79}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30015.366859, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 342921985.0, "Total blocks": 135968844.0, "Ops per second": 11424880.68, "ns per ops": 87.53, "Ops per threads": 7144208.0, "Ops per procs": 14288416.0, "Ops/sec/procs": 476036.7, "ns per ops/procs": 2100.68}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30020.66073, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 323817355.0, "Total blocks": 118804988.0, "Ops per second": 10786483.28, "ns per ops": 92.71, "Ops per threads": 6746194.0, "Ops per procs": 13492389.0, "Ops/sec/procs": 449436.8, "ns per ops/procs": 2225.01}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30096.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 232996956.0, "Ops per second": 7741599.9, "ns per ops": 129.17, "Ops per threads": 116498478.0, "Ops per procs": 232996956.0, "Ops/sec/procs": 7741599.9, "ns per ops/procs": 129.17}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30046.811572, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 523817633.0, "Total blocks": 197124020.0, "Ops per second": 17433384.96, "ns per ops": 57.36, "Ops per threads": 1818811.0, "Ops per procs": 3637622.0, "Ops/sec/procs": 121065.17, "ns per ops/procs": 8260.01}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30039.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 370149237.0, "Ops per second": 12322099.33, "ns per ops": 81.16, "Ops per threads": 963930.0, "Ops per procs": 1927860.0, "Ops/sec/procs": 64177.6, "ns per ops/procs": 15581.76}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30013.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 671610757.0, "Total blocks": 298296655.0, "Ops per second": 22376959.16, "ns per ops": 44.69, "Ops per threads": 1748986.0, "Ops per procs": 3497972.0, "Ops/sec/procs": 116546.66, "ns per ops/procs": 8580.26}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30025.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 239364772.0, "Total blocks": 111585568.0, "Ops per second": 7972064.94, "ns per ops": 125.44, "Ops per threads": 7480149.0, "Ops per procs": 14960298.0, "Ops/sec/procs": 498254.06, "ns per ops/procs": 2007.01}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30000.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 257773952.0, "Ops per second": 8592341.9, "ns per ops": 116.38, "Ops per threads": 1342572.0, "Ops per procs": 2685145.0, "Ops/sec/procs": 89503.56, "ns per ops/procs": 11172.74}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 245473439.0, "Ops per second": 8182447.0, "ns per ops": 122.0, "Ops per threads": 1704676.0, "Ops per procs": 3409353.0, "Ops/sec/procs": 113645.0, "ns per ops/procs": 8828.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30021.572978, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 332772792.0, "Total blocks": 122151374.0, "Ops per second": 11084455.58, "ns per ops": 90.22, "Ops per threads": 6932766.0, "Ops per procs": 13865533.0, "Ops/sec/procs": 461852.32, "ns per ops/procs": 2165.19}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30005.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 256298268.0, "Ops per second": 8541775.48, "ns per ops": 117.07, "Ops per threads": 5339547.0, "Ops per procs": 10679094.0, "Ops/sec/procs": 355907.31, "ns per ops/procs": 2809.72}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 157380053.0, "Ops per second": 5246001.0, "ns per ops": 191.0, "Ops per threads": 78690026.0, "Ops per procs": 157380053.0, "Ops/sec/procs": 5246001.0, "ns per ops/procs": 191.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30056.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 252964522.0, "Ops per second": 8416179.32, "ns per ops": 118.82, "Ops per threads": 2635047.0, "Ops per procs": 5270094.0, "Ops/sec/procs": 175337.07, "ns per ops/procs": 5703.3}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 360052154.0, "Ops per second": 12001738.0, "ns per ops": 83.0, "Ops per threads": 3750543.0, "Ops per procs": 7501086.0, "Ops/sec/procs": 250036.0, "ns per ops/procs": 4012.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 425647939.0, "Total blocks": 206971749.0, "Ops per second": 14183892.72, "ns per ops": 70.5, "Ops per threads": 2216916.0, "Ops per procs": 4433832.0, "Ops/sec/procs": 147748.88, "ns per ops/procs": 6768.24}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30029.231935, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 624072306.0, "Total blocks": 247970411.0, "Ops per second": 20782160.11, "ns per ops": 48.12, "Ops per threads": 1625188.0, "Ops per procs": 3250376.0, "Ops/sec/procs": 108240.42, "ns per ops/procs": 9238.69}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30064.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 232946602.0, "Ops per second": 7748216.9, "ns per ops": 129.06, "Ops per threads": 116473301.0, "Ops per procs": 232946602.0, "Ops/sec/procs": 7748216.9, "ns per ops/procs": 129.06}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30051.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 190629493.0, "Ops per second": 6343413.9, "ns per ops": 157.64, "Ops per threads": 11914343.0, "Ops per procs": 23828686.0, "Ops/sec/procs": 792926.74, "ns per ops/procs": 1261.15}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30075.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 248011336.0, "Ops per second": 8246248.21, "ns per ops": 121.27, "Ops per threads": 1291725.0, "Ops per procs": 2583451.0, "Ops/sec/procs": 85898.42, "ns per ops/procs": 11641.66}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30033.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 158451322.0, "Ops per second": 5275875.67, "ns per ops": 189.54, "Ops per threads": 19806415.0, "Ops per procs": 39612830.0, "Ops/sec/procs": 1318968.92, "ns per ops/procs": 758.17}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30062.308293, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 192782579.0, "Total blocks": 83089888.0, "Ops per second": 6412767.01, "ns per ops": 155.94, "Ops per threads": 12048911.0, "Ops per procs": 24097822.0, "Ops/sec/procs": 801595.88, "ns per ops/procs": 1247.51}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185545898.0, "Total blocks": 0.0, "Ops per second": 6180292.76, "ns per ops": 161.8, "Ops per threads": 92772949.0, "Ops per procs": 185545898.0, "Ops/sec/procs": 6180292.76, "ns per ops/procs": 161.8}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30025.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 149562522.0, "Total blocks": 77055604.0, "Ops per second": 4981210.59, "ns per ops": 200.75, "Ops per threads": 9347657.0, "Ops per procs": 18695315.0, "Ops/sec/procs": 622651.32, "ns per ops/procs": 1606.04}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30018.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 75258049.0, "Ops per second": 2508601.0, "ns per ops": 398.0, "Ops per threads": 9407256.0, "Ops per procs": 18814512.0, "Ops/sec/procs": 627150.0, "ns per ops/procs": 1595.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30012.448711, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 473847000.0, "Total blocks": 179896785.0, "Ops per second": 15788348.51, "ns per ops": 63.34, "Ops per threads": 3290604.0, "Ops per procs": 6581208.0, "Ops/sec/procs": 219282.62, "ns per ops/procs": 4560.33}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30065.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 100889363.0, "Ops per second": 3362978.0, "ns per ops": 298.0, "Ops per threads": 25222340.0, "Ops per procs": 50444681.0, "Ops/sec/procs": 1681489.0, "ns per ops/procs": 596.0}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30029.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 934976377.0, "Ops per second": 31134987.31, "ns per ops": 32.12, "Ops per threads": 2434834.0, "Ops per procs": 4869668.0, "Ops/sec/procs": 162161.39, "ns per ops/procs": 6166.7}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30038.451527, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 644421112.0, "Total blocks": 235380873.0, "Ops per second": 21453206.78, "ns per ops": 46.61, "Ops per threads": 6712719.0, "Ops per procs": 13425439.0, "Ops/sec/procs": 446941.81, "ns per ops/procs": 2237.43}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 150712555.0, "Ops per second": 5023751.0, "ns per ops": 199.0, "Ops per threads": 4709767.0, "Ops per procs": 9419534.0, "Ops/sec/procs": 313984.0, "ns per ops/procs": 3195.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30083.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 167417631.0, "Ops per second": 5565064.19, "ns per ops": 179.69, "Ops per threads": 5231800.0, "Ops per procs": 10463601.0, "Ops/sec/procs": 347816.51, "ns per ops/procs": 2875.08}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30056.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 254461000.0, "Ops per second": 8466072.8, "ns per ops": 118.12, "Ops per threads": 1767090.0, "Ops per procs": 3534180.0, "Ops/sec/procs": 117584.34, "ns per ops/procs": 8504.53}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30024.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 146509798.0, "Total blocks": 76835365.0, "Ops per second": 4879608.66, "ns per ops": 204.93, "Ops per threads": 9156862.0, "Ops per procs": 18313724.0, "Ops/sec/procs": 609951.08, "ns per ops/procs": 1639.48}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30099.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 559913780.0, "Ops per second": 18663792.0, "ns per ops": 53.0, "Ops per threads": 1458108.0, "Ops per procs": 2916217.0, "Ops/sec/procs": 97207.0, "ns per ops/procs": 10321.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30067.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 176186235.0, "Ops per second": 5859710.46, "ns per ops": 170.66, "Ops per threads": 5505819.0, "Ops per procs": 11011639.0, "Ops/sec/procs": 366231.9, "ns per ops/procs": 2730.51}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 302224707.0, "Ops per second": 10074156.0, "ns per ops": 99.0, "Ops per threads": 1574087.0, "Ops per procs": 3148174.0, "Ops/sec/procs": 104939.0, "ns per ops/procs": 9560.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30010.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 598931903.0, "Total blocks": 304621094.0, "Ops per second": 19957558.19, "ns per ops": 50.11, "Ops per threads": 2079624.0, "Ops per procs": 4159249.0, "Ops/sec/procs": 138594.15, "ns per ops/procs": 7215.31}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30098.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 563587381.0, "Ops per second": 18786246.0, "ns per ops": 53.0, "Ops per threads": 1467675.0, "Ops per procs": 2935350.0, "Ops/sec/procs": 97845.0, "ns per ops/procs": 10253.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30059.614743, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 182699648.0, "Total blocks": 59814827.0, "Ops per second": 6077910.5, "ns per ops": 164.53, "Ops per threads": 11418728.0, "Ops per procs": 22837456.0, "Ops/sec/procs": 759738.81, "ns per ops/procs": 1316.24}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30025.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 246288685.0, "Total blocks": 115666274.0, "Ops per second": 8202716.72, "ns per ops": 121.91, "Ops per threads": 7696521.0, "Ops per procs": 15393042.0, "Ops/sec/procs": 512669.79, "ns per ops/procs": 1950.57}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 263140401.0, "Ops per second": 8771346.0, "ns per ops": 114.0, "Ops per threads": 1827363.0, "Ops per procs": 3654727.0, "Ops/sec/procs": 121824.0, "ns per ops/procs": 8235.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30067.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 270306858.0, "Ops per second": 8989976.06, "ns per ops": 111.24, "Ops per threads": 2815696.0, "Ops per procs": 5631392.0, "Ops/sec/procs": 187291.17, "ns per ops/procs": 5339.28}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30029.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 500371119.0, "Ops per second": 16662499.6, "ns per ops": 60.02, "Ops per threads": 1737399.0, "Ops per procs": 3474799.0, "Ops/sec/procs": 115711.8, "ns per ops/procs": 8642.16}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 413513116.0, "Total blocks": 200804280.0, "Ops per second": 13779404.16, "ns per ops": 72.57, "Ops per threads": 2153714.0, "Ops per procs": 4307428.0, "Ops/sec/procs": 143535.46, "ns per ops/procs": 6966.92}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 567894464.0, "Ops per second": 18929815.0, "ns per ops": 52.0, "Ops per threads": 1478891.0, "Ops per procs": 2957783.0, "Ops/sec/procs": 98592.0, "ns per ops/procs": 10175.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185443238.0, "Total blocks": 0.0, "Ops per second": 6176821.47, "ns per ops": 161.9, "Ops per threads": 92721619.0, "Ops per procs": 185443238.0, "Ops/sec/procs": 6176821.47, "ns per ops/procs": 161.9}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30049.816416, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 257318105.0, "Total blocks": 158286753.0, "Ops per second": 8563050.82, "ns per ops": 116.78, "Ops per threads": 128659052.0, "Ops per procs": 257318105.0, "Ops/sec/procs": 8563050.82, "ns per ops/procs": 116.78}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30024.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 158785308.0, "Total blocks": 80532857.0, "Ops per second": 5288470.26, "ns per ops": 189.09, "Ops per threads": 9924081.0, "Ops per procs": 19848163.0, "Ops/sec/procs": 661058.78, "ns per ops/procs": 1512.72}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30034.315944, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 442901303.0, "Total blocks": 152659237.0, "Ops per second": 14746508.75, "ns per ops": 67.81, "Ops per threads": 3075703.0, "Ops per procs": 6151406.0, "Ops/sec/procs": 204812.62, "ns per ops/procs": 4882.51}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30068.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 266935161.0, "Ops per second": 8877689.79, "ns per ops": 112.64, "Ops per threads": 2780574.0, "Ops per procs": 5561149.0, "Ops/sec/procs": 184951.87, "ns per ops/procs": 5406.81}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30020.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 115655872.0, "Ops per second": 3852499.04, "ns per ops": 259.57, "Ops per threads": 28913968.0, "Ops per procs": 57827936.0, "Ops/sec/procs": 1926249.52, "ns per ops/procs": 519.14}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30010.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 600132082.0, "Total blocks": 300922528.0, "Ops per second": 19997436.91, "ns per ops": 50.01, "Ops per threads": 2083791.0, "Ops per procs": 4167583.0, "Ops/sec/procs": 138871.09, "ns per ops/procs": 7200.92}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30055.931497, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 175772215.0, "Total blocks": 43938903.0, "Ops per second": 5848170.6, "ns per ops": 170.99, "Ops per threads": 21971526.0, "Ops per procs": 43943053.0, "Ops/sec/procs": 1462042.65, "ns per ops/procs": 683.97}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30054.436743, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 143043757.0, "Total blocks": 67976329.0, "Ops per second": 4759488.86, "ns per ops": 210.11, "Ops per threads": 17880469.0, "Ops per procs": 35760939.0, "Ops/sec/procs": 1189872.22, "ns per ops/procs": 840.43}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30090.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 248326525.0, "Ops per second": 8252524.85, "ns per ops": 121.18, "Ops per threads": 1293367.0, "Ops per procs": 2586734.0, "Ops/sec/procs": 85963.8, "ns per ops/procs": 11632.8}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 558189049.0, "Ops per second": 18606301.0, "ns per ops": 53.0, "Ops per threads": 1453617.0, "Ops per procs": 2907234.0, "Ops/sec/procs": 96907.0, "ns per ops/procs": 10352.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 513500636.0, "Total blocks": 265421415.0, "Ops per second": 17113373.62, "ns per ops": 58.43, "Ops per threads": 5348964.0, "Ops per procs": 10697929.0, "Ops/sec/procs": 356528.62, "ns per ops/procs": 2804.82}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 421171316.0, "Total blocks": 204423899.0, "Ops per second": 14034517.94, "ns per ops": 71.25, "Ops per threads": 2193600.0, "Ops per procs": 4387201.0, "Ops/sec/procs": 146192.9, "ns per ops/procs": 6840.28}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 233968251.0, "Total blocks": 109767508.0, "Ops per second": 7792115.51, "ns per ops": 128.33, "Ops per threads": 7311507.0, "Ops per procs": 14623015.0, "Ops/sec/procs": 487007.22, "ns per ops/procs": 2053.36}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30027.114969, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 484019275.0, "Total blocks": 173353497.0, "Ops per second": 16119406.59, "ns per ops": 62.04, "Ops per threads": 2520933.0, "Ops per procs": 5041867.0, "Ops/sec/procs": 167910.49, "ns per ops/procs": 5955.55}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 349422149.0, "Total blocks": 170043925.0, "Ops per second": 11643668.04, "ns per ops": 85.88, "Ops per threads": 2426542.0, "Ops per procs": 4853085.0, "Ops/sec/procs": 161717.61, "ns per ops/procs": 6183.62}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30049.689499, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 245671181.0, "Total blocks": 160310302.0, "Ops per second": 8175498.15, "ns per ops": 122.32, "Ops per threads": 122835590.0, "Ops per procs": 245671181.0, "Ops/sec/procs": 8175498.15, "ns per ops/procs": 122.32}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30028.167791, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 586982381.0, "Total blocks": 230784214.0, "Ops per second": 19547725.49, "ns per ops": 51.16, "Ops per threads": 1528599.0, "Ops per procs": 3057199.0, "Ops/sec/procs": 101811.07, "ns per ops/procs": 9822.12}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30054.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 191094983.0, "Ops per second": 6358292.46, "ns per ops": 157.27, "Ops per threads": 11943436.0, "Ops per procs": 23886872.0, "Ops/sec/procs": 794786.56, "ns per ops/procs": 1258.2}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30067.448489, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 440364380.0, "Total blocks": 167636146.0, "Ops per second": 14645884.57, "ns per ops": 68.28, "Ops per threads": 3058085.0, "Ops per procs": 6116171.0, "Ops/sec/procs": 203415.06, "ns per ops/procs": 4916.06}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30069.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 174406962.0, "Ops per second": 5800035.21, "ns per ops": 172.41, "Ops per threads": 5450217.0, "Ops per procs": 10900435.0, "Ops/sec/procs": 362502.2, "ns per ops/procs": 2758.6}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 228226698.0, "Ops per second": 7607556.0, "ns per ops": 131.0, "Ops per threads": 4754722.0, "Ops per procs": 9509445.0, "Ops/sec/procs": 316981.0, "ns per ops/procs": 3164.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 361552760.0, "Ops per second": 12051758.0, "ns per ops": 83.0, "Ops per threads": 3766174.0, "Ops per procs": 7532349.0, "Ops/sec/procs": 251078.0, "ns per ops/procs": 3995.0}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30034.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 767530594.0, "Ops per second": 25554983.69, "ns per ops": 39.13, "Ops per threads": 2665036.0, "Ops per procs": 5330073.0, "Ops/sec/procs": 177465.16, "ns per ops/procs": 5634.91}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 158428634.0, "Ops per second": 5280954.0, "ns per ops": 189.0, "Ops per threads": 79214317.0, "Ops per procs": 158428634.0, "Ops/sec/procs": 5280954.0, "ns per ops/procs": 189.0}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30035.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 261885402.0, "Ops per second": 8719295.88, "ns per ops": 114.69, "Ops per threads": 1818648.0, "Ops per procs": 3637297.0, "Ops/sec/procs": 121101.33, "ns per ops/procs": 8257.55}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 241378158.0, "Ops per second": 8045938.0, "ns per ops": 124.0, "Ops per threads": 5028711.0, "Ops per procs": 10057423.0, "Ops/sec/procs": 335247.0, "ns per ops/procs": 2992.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 76908501.0, "Total blocks": 38451318.0, "Ops per second": 2561571.82, "ns per ops": 390.39, "Ops per threads": 19227125.0, "Ops per procs": 38454250.0, "Ops/sec/procs": 1280785.91, "ns per ops/procs": 780.77}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30053.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 255598381.0, "Ops per second": 8504838.05, "ns per ops": 117.58, "Ops per threads": 2662483.0, "Ops per procs": 5324966.0, "Ops/sec/procs": 177184.13, "ns per ops/procs": 5643.85}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 440315516.0, "Ops per second": 14677183.0, "ns per ops": 68.0, "Ops per threads": 1528873.0, "Ops per procs": 3057746.0, "Ops/sec/procs": 101924.0, "ns per ops/procs": 9843.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 344206891.0, "Ops per second": 11473563.0, "ns per ops": 87.0, "Ops per threads": 3585488.0, "Ops per procs": 7170976.0, "Ops/sec/procs": 239032.0, "ns per ops/procs": 4197.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185561679.0, "Total blocks": 0.0, "Ops per second": 6180810.58, "ns per ops": 161.79, "Ops per threads": 92780839.0, "Ops per procs": 185561679.0, "Ops/sec/procs": 6180810.58, "ns per ops/procs": 161.79}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30049.464885, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 233838690.0, "Total blocks": 157650195.0, "Ops per second": 7781792.15, "ns per ops": 128.51, "Ops per threads": 116919345.0, "Ops per procs": 233838690.0, "Ops/sec/procs": 7781792.15, "ns per ops/procs": 128.51}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30019.951061, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 313040827.0, "Total blocks": 117290250.0, "Ops per second": 10427759.4, "ns per ops": 95.9, "Ops per threads": 6521683.0, "Ops per procs": 13043367.0, "Ops/sec/procs": 434489.98, "ns per ops/procs": 2301.55}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 155012775.0, "Ops per second": 5167092.0, "ns per ops": 194.0, "Ops per threads": 4844149.0, "Ops per procs": 9688298.0, "Ops/sec/procs": 322943.0, "ns per ops/procs": 3106.0}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30008.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 254309911.0, "Ops per second": 8474553.08, "ns per ops": 118.0, "Ops per threads": 5298123.0, "Ops per procs": 10596246.0, "Ops/sec/procs": 353106.38, "ns per ops/procs": 2832.01}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30049.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 189853335.0, "Ops per second": 6317985.19, "ns per ops": 158.28, "Ops per threads": 11865833.0, "Ops per procs": 23731666.0, "Ops/sec/procs": 789748.15, "ns per ops/procs": 1266.23}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30023.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 560590120.0, "Ops per second": 18671874.95, "ns per ops": 53.56, "Ops per threads": 1459870.0, "Ops per procs": 2919740.0, "Ops/sec/procs": 97249.35, "ns per ops/procs": 10282.85}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30013.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 668945253.0, "Total blocks": 297422207.0, "Ops per second": 22288253.59, "ns per ops": 44.87, "Ops per threads": 1742044.0, "Ops per procs": 3484089.0, "Ops/sec/procs": 116084.65, "ns per ops/procs": 8614.41}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30006.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 270447364.0, "Ops per second": 9012994.32, "ns per ops": 110.95, "Ops per threads": 135223682.0, "Ops per procs": 270447364.0, "Ops/sec/procs": 9012994.32, "ns per ops/procs": 110.95}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30048.770509, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 266042767.0, "Total blocks": 156827762.0, "Ops per second": 8853698.92, "ns per ops": 112.95, "Ops per threads": 133021383.0, "Ops per procs": 266042767.0, "Ops/sec/procs": 8853698.92, "ns per ops/procs": 112.95}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 411308096.0, "Total blocks": 199156555.0, "Ops per second": 13705877.59, "ns per ops": 72.96, "Ops per threads": 2142229.0, "Ops per procs": 4284459.0, "Ops/sec/procs": 142769.56, "ns per ops/procs": 7004.29}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 247369104.0, "Total blocks": 115951430.0, "Ops per second": 8238343.31, "ns per ops": 121.38, "Ops per threads": 7730284.0, "Ops per procs": 15460569.0, "Ops/sec/procs": 514896.46, "ns per ops/procs": 1942.14}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30042.824653, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 445409598.0, "Total blocks": 155229028.0, "Ops per second": 14825822.91, "ns per ops": 67.45, "Ops per threads": 3093122.0, "Ops per procs": 6186244.0, "Ops/sec/procs": 205914.21, "ns per ops/procs": 4856.39}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 157761685.0, "Ops per second": 5258722.0, "ns per ops": 190.0, "Ops per threads": 78880842.0, "Ops per procs": 157761685.0, "Ops/sec/procs": 5258722.0, "ns per ops/procs": 190.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 355984243.0, "Ops per second": 11866141.0, "ns per ops": 84.0, "Ops per threads": 3708169.0, "Ops per procs": 7416338.0, "Ops/sec/procs": 247211.0, "ns per ops/procs": 4058.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30034.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 159118523.0, "Ops per second": 5297770.65, "ns per ops": 188.76, "Ops per threads": 19889815.0, "Ops per procs": 39779630.0, "Ops/sec/procs": 1324442.66, "ns per ops/procs": 755.03}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30091.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 238424868.0, "Ops per second": 7923240.44, "ns per ops": 126.21, "Ops per threads": 119212434.0, "Ops per procs": 238424868.0, "Ops/sec/procs": 7923240.44, "ns per ops/procs": 126.21}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 158408404.0, "Ops per second": 5280280.0, "ns per ops": 190.0, "Ops per threads": 79204202.0, "Ops per procs": 158408404.0, "Ops/sec/procs": 5280280.0, "ns per ops/procs": 190.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 162894226.0, "Ops per second": 5429807.0, "ns per ops": 184.0, "Ops per threads": 5090444.0, "Ops per procs": 10180889.0, "Ops/sec/procs": 339362.0, "ns per ops/procs": 2956.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30075.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 97685112.0, "Ops per second": 3256170.0, "ns per ops": 307.0, "Ops per threads": 24421278.0, "Ops per procs": 48842556.0, "Ops/sec/procs": 1628085.0, "ns per ops/procs": 615.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30051.56406, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 149190501.0, "Total blocks": 74593404.0, "Ops per second": 4964483.74, "ns per ops": 201.43, "Ops per threads": 37297625.0, "Ops per procs": 74595250.0, "Ops/sec/procs": 2482241.87, "ns per ops/procs": 402.86}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30024.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 158194173.0, "Total blocks": 80166451.0, "Ops per second": 5268777.44, "ns per ops": 189.8, "Ops per threads": 9887135.0, "Ops per procs": 19774271.0, "Ops/sec/procs": 658597.18, "ns per ops/procs": 1518.38}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 246969342.0, "Total blocks": 116192333.0, "Ops per second": 8225086.22, "ns per ops": 121.58, "Ops per threads": 7717791.0, "Ops per procs": 15435583.0, "Ops/sec/procs": 514067.89, "ns per ops/procs": 1945.27}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30024.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 183656880.0, "Total blocks": 0.0, "Ops per second": 6116836.98, "ns per ops": 163.48, "Ops per threads": 91828440.0, "Ops per procs": 183656880.0, "Ops/sec/procs": 6116836.98, "ns per ops/procs": 163.48}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30069.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 255610461.0, "Ops per second": 8500769.08, "ns per ops": 117.64, "Ops per threads": 2662608.0, "Ops per procs": 5325217.0, "Ops/sec/procs": 177099.36, "ns per ops/procs": 5646.55}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30029.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 261016539.0, "Ops per second": 8691938.1, "ns per ops": 115.05, "Ops per threads": 1812614.0, "Ops per procs": 3625229.0, "Ops/sec/procs": 120721.36, "ns per ops/procs": 8283.54}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 241045757.0, "Ops per second": 8034858.0, "ns per ops": 124.0, "Ops per threads": 5021786.0, "Ops per procs": 10043573.0, "Ops/sec/procs": 334785.0, "ns per ops/procs": 2996.0}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30016.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 352570362.0, "Ops per second": 11745814.05, "ns per ops": 85.14, "Ops per threads": 918151.0, "Ops per procs": 1836303.0, "Ops/sec/procs": 61176.11, "ns per ops/procs": 16346.25}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30034.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 158793436.0, "Ops per second": 5287004.03, "ns per ops": 189.14, "Ops per threads": 19849179.0, "Ops per procs": 39698359.0, "Ops/sec/procs": 1321751.01, "ns per ops/procs": 756.57}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30018.039916, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 529693260.0, "Total blocks": 196001967.0, "Ops per second": 17645831.02, "ns per ops": 56.67, "Ops per threads": 2758819.0, "Ops per procs": 5517638.0, "Ops/sec/procs": 183810.74, "ns per ops/procs": 5440.38}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30050.862761, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 569496141.0, "Total blocks": 221091536.0, "Ops per second": 18951074.57, "ns per ops": 52.77, "Ops per threads": 1977417.0, "Ops per procs": 3954834.0, "Ops/sec/procs": 131604.68, "ns per ops/procs": 7598.51}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30010.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 423611462.0, "Total blocks": 205033000.0, "Ops per second": 14115441.29, "ns per ops": 70.84, "Ops per threads": 2206309.0, "Ops per procs": 4412619.0, "Ops/sec/procs": 147035.85, "ns per ops/procs": 6801.06}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 435423419.0, "Ops per second": 14514113.0, "ns per ops": 69.0, "Ops per threads": 1511886.0, "Ops per procs": 3023773.0, "Ops/sec/procs": 100792.0, "ns per ops/procs": 9953.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30033.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 159135552.0, "Ops per second": 5298515.31, "ns per ops": 188.73, "Ops per threads": 19891944.0, "Ops per procs": 39783888.0, "Ops/sec/procs": 1324628.83, "ns per ops/procs": 754.93}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 145212345.0, "Ops per second": 4840411.0, "ns per ops": 207.0, "Ops per threads": 4537885.0, "Ops per procs": 9075771.0, "Ops/sec/procs": 302525.0, "ns per ops/procs": 3316.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30009.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 71683370.0, "Ops per second": 2389445.0, "ns per ops": 418.0, "Ops per threads": 17920842.0, "Ops per procs": 35841685.0, "Ops/sec/procs": 1194722.0, "ns per ops/procs": 837.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30076.515856, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 277552347.0, "Total blocks": 103912473.0, "Ops per second": 9228208.09, "ns per ops": 108.36, "Ops per threads": 8673510.0, "Ops per procs": 17347021.0, "Ops/sec/procs": 576763.01, "ns per ops/procs": 1733.81}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30068.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 258217896.0, "Ops per second": 8587756.74, "ns per ops": 116.44, "Ops per threads": 2689769.0, "Ops per procs": 5379539.0, "Ops/sec/procs": 178911.6, "ns per ops/procs": 5589.35}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30053.349595, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 146289357.0, "Total blocks": 63635638.0, "Ops per second": 4867655.65, "ns per ops": 205.44, "Ops per threads": 18286169.0, "Ops per procs": 36572339.0, "Ops/sec/procs": 1216913.91, "ns per ops/procs": 821.75}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30028.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 577061684.0, "Ops per second": 19217410.0, "ns per ops": 52.04, "Ops per threads": 2003686.0, "Ops per procs": 4007372.0, "Ops/sec/procs": 133454.24, "ns per ops/procs": 7493.21}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30020.836545, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 322610855.0, "Total blocks": 116696296.0, "Ops per second": 10746231.36, "ns per ops": 93.06, "Ops per threads": 6721059.0, "Ops per procs": 13442118.0, "Ops/sec/procs": 447759.64, "ns per ops/procs": 2233.34}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30013.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 667932158.0, "Total blocks": 297173378.0, "Ops per second": 22254181.29, "ns per ops": 44.94, "Ops per threads": 1739406.0, "Ops per procs": 3478813.0, "Ops/sec/procs": 115907.19, "ns per ops/procs": 8627.59}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30091.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 261847479.0, "Ops per second": 8701843.9, "ns per ops": 114.92, "Ops per threads": 1363788.0, "Ops per procs": 2727577.0, "Ops/sec/procs": 90644.21, "ns per ops/procs": 11032.14}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30036.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 608891605.0, "Ops per second": 20271389.69, "ns per ops": 49.33, "Ops per threads": 2114206.0, "Ops per procs": 4228413.0, "Ops/sec/procs": 140773.54, "ns per ops/procs": 7103.61}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 514509186.0, "Total blocks": 265741664.0, "Ops per second": 17146993.24, "ns per ops": 58.32, "Ops per threads": 5359470.0, "Ops per procs": 10718941.0, "Ops/sec/procs": 357229.03, "ns per ops/procs": 2799.32}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30034.302264, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 500492880.0, "Total blocks": 174978107.0, "Ops per second": 16664042.19, "ns per ops": 60.01, "Ops per threads": 2606733.0, "Ops per procs": 5213467.0, "Ops/sec/procs": 173583.77, "ns per ops/procs": 5760.91}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 418635259.0, "Total blocks": 203942234.0, "Ops per second": 13950164.43, "ns per ops": 71.68, "Ops per threads": 2180391.0, "Ops per procs": 4360783.0, "Ops/sec/procs": 145314.21, "ns per ops/procs": 6881.64}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 342818741.0, "Total blocks": 164682287.0, "Ops per second": 11423597.54, "ns per ops": 87.54, "Ops per threads": 2380685.0, "Ops per procs": 4761371.0, "Ops/sec/procs": 158661.08, "ns per ops/procs": 6302.74}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 105133541.0, "Ops per second": 3504451.0, "ns per ops": 286.0, "Ops per threads": 6570846.0, "Ops per procs": 13141692.0, "Ops/sec/procs": 438056.0, "ns per ops/procs": 2290.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30071.112348, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 412601319.0, "Total blocks": 160416101.0, "Ops per second": 13720853.23, "ns per ops": 72.88, "Ops per threads": 2865286.0, "Ops per procs": 5730573.0, "Ops/sec/procs": 190567.41, "ns per ops/procs": 5247.49}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30036.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 159776054.0, "Ops per second": 5319387.99, "ns per ops": 187.99, "Ops per threads": 19972006.0, "Ops per procs": 39944013.0, "Ops/sec/procs": 1329847.0, "ns per ops/procs": 751.97}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30066.647219, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 632287099.0, "Total blocks": 252888664.0, "Ops per second": 21029518.0, "ns per ops": 47.55, "Ops per threads": 1646580.0, "Ops per procs": 3293161.0, "Ops/sec/procs": 109528.74, "ns per ops/procs": 9130.03}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 476063959.0, "Total blocks": 245436861.0, "Ops per second": 15865709.02, "ns per ops": 63.03, "Ops per threads": 4958999.0, "Ops per procs": 9917999.0, "Ops/sec/procs": 330535.6, "ns per ops/procs": 3025.39}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 73502721.0, "Ops per second": 2450090.0, "ns per ops": 409.0, "Ops per threads": 9187840.0, "Ops per procs": 18375680.0, "Ops/sec/procs": 612522.0, "ns per ops/procs": 1637.0}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30051.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 190474566.0, "Ops per second": 6338351.27, "ns per ops": 157.77, "Ops per threads": 11904660.0, "Ops per procs": 23809320.0, "Ops/sec/procs": 792293.91, "ns per ops/procs": 1262.16}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30051.924397, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 139139087.0, "Total blocks": 69565052.0, "Ops per second": 4629955.98, "ns per ops": 215.98, "Ops per threads": 34784771.0, "Ops per procs": 69569543.0, "Ops/sec/procs": 2314977.99, "ns per ops/procs": 431.97}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30049.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 190085038.0, "Ops per second": 6325811.31, "ns per ops": 158.08, "Ops per threads": 11880314.0, "Ops per procs": 23760629.0, "Ops/sec/procs": 790726.41, "ns per ops/procs": 1264.66}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30060.941171, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 208033832.0, "Total blocks": 79813092.0, "Ops per second": 6920403.15, "ns per ops": 144.5, "Ops per threads": 13002114.0, "Ops per procs": 26004229.0, "Ops/sec/procs": 865050.39, "ns per ops/procs": 1156.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 95694959.0, "Ops per second": 3189831.0, "ns per ops": 314.0, "Ops per threads": 5980934.0, "Ops per procs": 11961869.0, "Ops/sec/procs": 398728.0, "ns per ops/procs": 2516.0}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30089.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 228200427.0, "Ops per second": 7584019.28, "ns per ops": 131.86, "Ops per threads": 114100213.0, "Ops per procs": 228200427.0, "Ops/sec/procs": 7584019.28, "ns per ops/procs": 131.86}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30087.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 248715745.0, "Ops per second": 8266308.18, "ns per ops": 120.97, "Ops per threads": 1295394.0, "Ops per procs": 2590789.0, "Ops/sec/procs": 86107.38, "ns per ops/procs": 11613.41}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 437040787.0, "Ops per second": 14568026.0, "ns per ops": 68.0, "Ops per threads": 1517502.0, "Ops per procs": 3035005.0, "Ops/sec/procs": 101166.0, "ns per ops/procs": 9916.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30059.954106, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 211332342.0, "Total blocks": 88533319.0, "Ops per second": 7030361.43, "ns per ops": 142.24, "Ops per threads": 13208271.0, "Ops per procs": 26416542.0, "Ops/sec/procs": 878795.18, "ns per ops/procs": 1137.92}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 153499568.0, "Ops per second": 5116652.0, "ns per ops": 196.0, "Ops per threads": 4796861.0, "Ops per procs": 9593723.0, "Ops/sec/procs": 319790.0, "ns per ops/procs": 3137.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30034.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 158189496.0, "Ops per second": 5266861.26, "ns per ops": 189.87, "Ops per threads": 19773687.0, "Ops per procs": 39547374.0, "Ops/sec/procs": 1316715.32, "ns per ops/procs": 759.47}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30098.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 73703092.0, "Ops per second": 2456769.0, "ns per ops": 408.0, "Ops per threads": 9212886.0, "Ops per procs": 18425773.0, "Ops/sec/procs": 614192.0, "ns per ops/procs": 1633.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 416099699.0, "Total blocks": 201688458.0, "Ops per second": 13865668.71, "ns per ops": 72.12, "Ops per threads": 2167185.0, "Ops per procs": 4334371.0, "Ops/sec/procs": 144434.05, "ns per ops/procs": 6923.58}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 257146314.0, "Ops per second": 8571543.0, "ns per ops": 117.0, "Ops per threads": 1785738.0, "Ops per procs": 3571476.0, "Ops/sec/procs": 119049.0, "ns per ops/procs": 8427.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30010.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 595253173.0, "Total blocks": 299544007.0, "Ops per second": 19834630.81, "ns per ops": 50.42, "Ops per threads": 2066851.0, "Ops per procs": 4133702.0, "Ops/sec/procs": 137740.49, "ns per ops/procs": 7260.03}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30065.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 273258415.0, "Ops per second": 9088792.69, "ns per ops": 110.03, "Ops per threads": 2846441.0, "Ops per procs": 5692883.0, "Ops/sec/procs": 189349.85, "ns per ops/procs": 5281.23}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 483926761.0, "Total blocks": 249415947.0, "Ops per second": 16127817.09, "ns per ops": 62.0, "Ops per threads": 5040903.0, "Ops per procs": 10081807.0, "Ops/sec/procs": 335996.19, "ns per ops/procs": 2976.22}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30018.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 257541362.0, "Ops per second": 8579414.62, "ns per ops": 116.56, "Ops per threads": 128770681.0, "Ops per procs": 257541362.0, "Ops/sec/procs": 8579414.62, "ns per ops/procs": 116.56}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 246232011.0, "Ops per second": 8207733.0, "ns per ops": 122.0, "Ops per threads": 5129833.0, "Ops per procs": 10259667.0, "Ops/sec/procs": 341988.0, "ns per ops/procs": 2933.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 343446601.0, "Ops per second": 11448220.0, "ns per ops": 87.0, "Ops per threads": 3577568.0, "Ops per procs": 7155137.0, "Ops/sec/procs": 238504.0, "ns per ops/procs": 4206.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 79391713.0, "Total blocks": 39692593.0, "Ops per second": 2644297.75, "ns per ops": 378.17, "Ops per threads": 19847928.0, "Ops per procs": 39695856.0, "Ops/sec/procs": 1322148.88, "ns per ops/procs": 756.34}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 154027638.0, "Ops per second": 5134254.0, "ns per ops": 195.0, "Ops per threads": 4813363.0, "Ops per procs": 9626727.0, "Ops/sec/procs": 320890.0, "ns per ops/procs": 3126.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30077.34665, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 275123301.0, "Total blocks": 104582725.0, "Ops per second": 9147193.21, "ns per ops": 109.32, "Ops per threads": 8597603.0, "Ops per procs": 17195206.0, "Ops/sec/procs": 571699.58, "ns per ops/procs": 1749.17}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30061.775197, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 190006250.0, "Total blocks": 62352652.0, "Ops per second": 6320526.61, "ns per ops": 158.21, "Ops per threads": 11875390.0, "Ops per procs": 23750781.0, "Ops/sec/procs": 790065.83, "ns per ops/procs": 1265.72}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 478531922.0, "Total blocks": 246778351.0, "Ops per second": 15948055.38, "ns per ops": 62.7, "Ops per threads": 4984707.0, "Ops per procs": 9969415.0, "Ops/sec/procs": 332251.15, "ns per ops/procs": 3009.77}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30018.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 248201650.0, "Ops per second": 8268193.83, "ns per ops": 120.95, "Ops per threads": 124100825.0, "Ops per procs": 248201650.0, "Ops/sec/procs": 8268193.83, "ns per ops/procs": 120.95}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30049.381108, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 228264700.0, "Total blocks": 161262781.0, "Ops per second": 7596319.51, "ns per ops": 131.64, "Ops per threads": 114132350.0, "Ops per procs": 228264700.0, "Ops/sec/procs": 7596319.51, "ns per ops/procs": 131.64}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 518146333.0, "Total blocks": 264919112.0, "Ops per second": 17268239.72, "ns per ops": 57.91, "Ops per threads": 5397357.0, "Ops per procs": 10794715.0, "Ops/sec/procs": 359754.99, "ns per ops/procs": 2779.67}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30077.186219, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 274791236.0, "Total blocks": 116352258.0, "Ops per second": 9136201.57, "ns per ops": 109.45, "Ops per threads": 8587226.0, "Ops per procs": 17174452.0, "Ops/sec/procs": 571012.6, "ns per ops/procs": 1751.27}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30054.866014, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 164093854.0, "Total blocks": 41014969.0, "Ops per second": 5459809.87, "ns per ops": 183.16, "Ops per threads": 20511731.0, "Ops per procs": 41023463.0, "Ops/sec/procs": 1364952.47, "ns per ops/procs": 732.63}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30066.474354, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 587155400.0, "Total blocks": 215118130.0, "Ops per second": 19528575.02, "ns per ops": 51.21, "Ops per threads": 1529050.0, "Ops per procs": 3058101.0, "Ops/sec/procs": 101711.33, "ns per ops/procs": 9831.75}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30011.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 599755419.0, "Total blocks": 305093232.0, "Ops per second": 19984227.41, "ns per ops": 50.04, "Ops per threads": 2082484.0, "Ops per procs": 4164968.0, "Ops/sec/procs": 138779.36, "ns per ops/procs": 7205.68}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30077.447078, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 259444338.0, "Total blocks": 101587683.0, "Ops per second": 8625876.3, "ns per ops": 115.93, "Ops per threads": 8107635.0, "Ops per procs": 16215271.0, "Ops/sec/procs": 539117.27, "ns per ops/procs": 1854.88}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30098.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 555818719.0, "Ops per second": 18527290.0, "ns per ops": 54.0, "Ops per threads": 1447444.0, "Ops per procs": 2894889.0, "Ops/sec/procs": 96496.0, "ns per ops/procs": 10397.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 242511897.0, "Ops per second": 8083729.0, "ns per ops": 124.0, "Ops per threads": 1684110.0, "Ops per procs": 3368220.0, "Ops/sec/procs": 112274.0, "ns per ops/procs": 8935.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 167764411.0, "Ops per second": 5592147.0, "ns per ops": 179.0, "Ops per threads": 5242637.0, "Ops per procs": 10485275.0, "Ops/sec/procs": 349509.0, "ns per ops/procs": 2870.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 274077182.0, "Total blocks": 137039095.0, "Ops per second": 9134681.91, "ns per ops": 109.47, "Ops per threads": 5709941.0, "Ops per procs": 11419882.0, "Ops/sec/procs": 380611.75, "ns per ops/procs": 2627.35}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30079.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 169936928.0, "Ops per second": 5649575.59, "ns per ops": 177.0, "Ops per threads": 5310529.0, "Ops per procs": 10621058.0, "Ops/sec/procs": 353098.47, "ns per ops/procs": 2832.07}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30048.614424, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 478986901.0, "Total blocks": 169421105.0, "Ops per second": 15940398.92, "ns per ops": 62.73, "Ops per threads": 3326297.0, "Ops per procs": 6652595.0, "Ops/sec/procs": 221394.43, "ns per ops/procs": 4516.83}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 347468053.0, "Total blocks": 169061627.0, "Ops per second": 11578670.94, "ns per ops": 86.37, "Ops per threads": 2412972.0, "Ops per procs": 4825945.0, "Ops/sec/procs": 160814.87, "ns per ops/procs": 6218.33}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30002.05006, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 587799962.0, "Total blocks": 243471611.0, "Ops per second": 19591993.24, "ns per ops": 51.04, "Ops per threads": 1530729.0, "Ops per procs": 3061458.0, "Ops/sec/procs": 102041.63, "ns per ops/procs": 9799.92}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30017.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 118387589.0, "Ops per second": 3943913.85, "ns per ops": 253.56, "Ops per threads": 29596897.0, "Ops per procs": 59193794.0, "Ops/sec/procs": 1971956.93, "ns per ops/procs": 507.11}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30017.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 115804197.0, "Ops per second": 3857879.59, "ns per ops": 259.21, "Ops per threads": 28951049.0, "Ops per procs": 57902098.0, "Ops/sec/procs": 1928939.79, "ns per ops/procs": 518.42}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30010.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 342843643.0, "Total blocks": 164976982.0, "Ops per second": 11424280.81, "ns per ops": 87.53, "Ops per threads": 2380858.0, "Ops per procs": 4761717.0, "Ops/sec/procs": 158670.57, "ns per ops/procs": 6302.37}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 403750353.0, "Total blocks": 195009089.0, "Ops per second": 13454288.69, "ns per ops": 74.33, "Ops per threads": 2102866.0, "Ops per procs": 4205732.0, "Ops/sec/procs": 140148.84, "ns per ops/procs": 7135.27}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 473145289.0, "Total blocks": 243921087.0, "Ops per second": 15768370.36, "ns per ops": 63.42, "Ops per threads": 4928596.0, "Ops per procs": 9857193.0, "Ops/sec/procs": 328507.72, "ns per ops/procs": 3044.07}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30001.000138, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 551596733.0, "Total blocks": 191018290.0, "Ops per second": 18385944.82, "ns per ops": 54.39, "Ops per threads": 2872899.0, "Ops per procs": 5745799.0, "Ops/sec/procs": 191520.26, "ns per ops/procs": 5221.38}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30033.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 276059748.0, "Ops per second": 9191849.23, "ns per ops": 108.79, "Ops per threads": 1917081.0, "Ops per procs": 3834163.0, "Ops/sec/procs": 127664.57, "ns per ops/procs": 7833.03}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30052.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 189713964.0, "Ops per second": 6312849.07, "ns per ops": 158.41, "Ops per threads": 11857122.0, "Ops per procs": 23714245.0, "Ops/sec/procs": 789106.13, "ns per ops/procs": 1267.26}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30034.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 158239404.0, "Ops per second": 5268569.63, "ns per ops": 189.8, "Ops per threads": 19779925.0, "Ops per procs": 39559851.0, "Ops/sec/procs": 1317142.41, "ns per ops/procs": 759.22}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30033.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 936124528.0, "Ops per second": 31169808.87, "ns per ops": 32.08, "Ops per threads": 3250432.0, "Ops per procs": 6500864.0, "Ops/sec/procs": 216457.01, "ns per ops/procs": 4619.86}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30098.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 65654632.0, "Ops per second": 2188487.0, "ns per ops": 458.0, "Ops per threads": 8206829.0, "Ops per procs": 16413658.0, "Ops/sec/procs": 547121.0, "ns per ops/procs": 1833.0}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30048.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 257814382.0, "Ops per second": 8579813.16, "ns per ops": 116.55, "Ops per threads": 1790377.0, "Ops per procs": 3580755.0, "Ops/sec/procs": 119164.07, "ns per ops/procs": 8391.79}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30032.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 768715895.0, "Ops per second": 25595999.61, "ns per ops": 39.07, "Ops per threads": 2669152.0, "Ops per procs": 5338304.0, "Ops/sec/procs": 177750.0, "ns per ops/procs": 5625.88}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30046.449574, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 679676853.0, "Total blocks": 256788079.0, "Ops per second": 22620870.77, "ns per ops": 44.21, "Ops per threads": 7079967.0, "Ops per procs": 14159934.0, "Ops/sec/procs": 471268.14, "ns per ops/procs": 2121.93}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 338568719.0, "Ops per second": 11285623.0, "ns per ops": 88.0, "Ops per threads": 3526757.0, "Ops per procs": 7053514.0, "Ops/sec/procs": 235117.0, "ns per ops/procs": 4267.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30005.833734, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 550545435.0, "Total blocks": 214024547.0, "Ops per second": 18347946.6, "ns per ops": 54.5, "Ops per threads": 1911616.0, "Ops per procs": 3823232.0, "Ops/sec/procs": 127416.3, "ns per ops/procs": 7848.29}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30071.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 274299766.0, "Ops per second": 9121672.24, "ns per ops": 109.63, "Ops per threads": 2857289.0, "Ops per procs": 5714578.0, "Ops/sec/procs": 190034.84, "ns per ops/procs": 5262.19}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30099.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 251083140.0, "Ops per second": 8369438.0, "ns per ops": 119.0, "Ops per threads": 1743632.0, "Ops per procs": 3487265.0, "Ops/sec/procs": 116242.0, "ns per ops/procs": 8631.0}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30053.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 286748205.0, "Ops per second": 9541326.59, "ns per ops": 104.81, "Ops per threads": 1991306.0, "Ops per procs": 3982613.0, "Ops/sec/procs": 132518.42, "ns per ops/procs": 7546.12}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30054.613179, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 145585970.0, "Total blocks": 69102669.0, "Ops per second": 4844047.37, "ns per ops": 206.44, "Ops per threads": 18198246.0, "Ops per procs": 36396492.0, "Ops/sec/procs": 1211011.84, "ns per ops/procs": 825.76}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30049.833864, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 689933425.0, "Total blocks": 262361792.0, "Ops per second": 22959641.91, "ns per ops": 43.55, "Ops per threads": 7186806.0, "Ops per procs": 14373613.0, "Ops/sec/procs": 478325.87, "ns per ops/procs": 2090.62}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 80294623.0, "Total blocks": 40143768.0, "Ops per second": 2674375.54, "ns per ops": 373.92, "Ops per threads": 20073655.0, "Ops per procs": 40147311.0, "Ops/sec/procs": 1337187.77, "ns per ops/procs": 747.84}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 526111446.0, "Total blocks": 271453354.0, "Ops per second": 17533679.4, "ns per ops": 57.03, "Ops per threads": 5480327.0, "Ops per procs": 10960655.0, "Ops/sec/procs": 365284.99, "ns per ops/procs": 2737.59}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 158621402.0, "Ops per second": 5287380.0, "ns per ops": 189.0, "Ops per threads": 79310701.0, "Ops per procs": 158621402.0, "Ops/sec/procs": 5287380.0, "ns per ops/procs": 189.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30021.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 66689404.0, "Ops per second": 2222980.0, "ns per ops": 450.0, "Ops per threads": 16672351.0, "Ops per procs": 33344702.0, "Ops/sec/procs": 1111490.0, "ns per ops/procs": 900.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 297831635.0, "Ops per second": 9927721.0, "ns per ops": 101.0, "Ops per threads": 1551206.0, "Ops per procs": 3102412.0, "Ops/sec/procs": 103413.0, "ns per ops/procs": 9701.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30060.125592, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 195182556.0, "Total blocks": 82466324.0, "Ops per second": 6493071.87, "ns per ops": 154.01, "Ops per threads": 12198909.0, "Ops per procs": 24397819.0, "Ops/sec/procs": 811633.98, "ns per ops/procs": 1232.08}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 110117326.0, "Ops per second": 3670577.0, "ns per ops": 273.0, "Ops per threads": 6882332.0, "Ops per procs": 13764665.0, "Ops/sec/procs": 458822.0, "ns per ops/procs": 2186.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 79463065.0, "Total blocks": 39729042.0, "Ops per second": 2646649.15, "ns per ops": 377.84, "Ops per threads": 19865766.0, "Ops per procs": 39731532.0, "Ops/sec/procs": 1323324.58, "ns per ops/procs": 755.67}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30010.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 605835222.0, "Total blocks": 304967349.0, "Ops per second": 20187108.92, "ns per ops": 49.54, "Ops per threads": 2103594.0, "Ops per procs": 4207189.0, "Ops/sec/procs": 140188.26, "ns per ops/procs": 7133.27}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30003.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 302996605.0, "Total blocks": 152280272.0, "Ops per second": 10098574.22, "ns per ops": 99.02, "Ops per threads": 6312429.0, "Ops per procs": 12624858.0, "Ops/sec/procs": 420773.93, "ns per ops/procs": 2376.57}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30063.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 263974491.0, "Ops per second": 8780597.13, "ns per ops": 113.89, "Ops per threads": 1833156.0, "Ops per procs": 3666312.0, "Ops/sec/procs": 121952.74, "ns per ops/procs": 8199.9}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30012.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 672129079.0, "Total blocks": 298500598.0, "Ops per second": 22395211.33, "ns per ops": 44.65, "Ops per threads": 1750336.0, "Ops per procs": 3500672.0, "Ops/sec/procs": 116641.73, "ns per ops/procs": 8573.26}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30078.521489, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 295572242.0, "Total blocks": 91034450.0, "Ops per second": 9826687.86, "ns per ops": 101.76, "Ops per threads": 9236632.0, "Ops per procs": 18473265.0, "Ops/sec/procs": 614167.99, "ns per ops/procs": 1628.22}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30066.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 257883471.0, "Ops per second": 8577140.73, "ns per ops": 116.59, "Ops per threads": 2686286.0, "Ops per procs": 5372572.0, "Ops/sec/procs": 178690.43, "ns per ops/procs": 5596.27}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 114378910.0, "Ops per second": 3812630.0, "ns per ops": 263.0, "Ops per threads": 7148681.0, "Ops per procs": 14297363.0, "Ops/sec/procs": 476578.0, "ns per ops/procs": 2105.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30010.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 595866627.0, "Total blocks": 302300926.0, "Ops per second": 19855595.43, "ns per ops": 50.36, "Ops per threads": 2068981.0, "Ops per procs": 4137962.0, "Ops/sec/procs": 137886.08, "ns per ops/procs": 7252.36}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30083.725009, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 594539519.0, "Total blocks": 209451487.0, "Ops per second": 19762829.2, "ns per ops": 50.6, "Ops per threads": 3096559.0, "Ops per procs": 6193119.0, "Ops/sec/procs": 205862.8, "ns per ops/procs": 4857.6}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30068.32569, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 473955591.0, "Total blocks": 172797486.0, "Ops per second": 15762619.97, "ns per ops": 63.44, "Ops per threads": 3291358.0, "Ops per procs": 6582716.0, "Ops/sec/procs": 218925.28, "ns per ops/procs": 4567.77}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 121887182.0, "Total blocks": 72184844.0, "Ops per second": 4059533.5, "ns per ops": 246.33, "Ops per threads": 15235897.0, "Ops per procs": 30471795.0, "Ops/sec/procs": 1014883.37, "ns per ops/procs": 985.33}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30096.372864, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 626203631.0, "Total blocks": 242910382.0, "Ops per second": 20806614.6, "ns per ops": 48.06, "Ops per threads": 1630738.0, "Ops per procs": 3261477.0, "Ops/sec/procs": 108367.78, "ns per ops/procs": 9227.84}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30050.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 191434669.0, "Ops per second": 6370524.41, "ns per ops": 156.97, "Ops per threads": 11964666.0, "Ops per procs": 23929333.0, "Ops/sec/procs": 796315.55, "ns per ops/procs": 1255.78}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30075.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 167550533.0, "Ops per second": 5570917.08, "ns per ops": 179.5, "Ops per threads": 5235954.0, "Ops per procs": 10471908.0, "Ops/sec/procs": 348182.32, "ns per ops/procs": 2872.06}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30060.388705, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 194030823.0, "Total blocks": 86845651.0, "Ops per second": 6454701.07, "ns per ops": 154.93, "Ops per threads": 12126926.0, "Ops per procs": 24253852.0, "Ops/sec/procs": 806837.63, "ns per ops/procs": 1239.41}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30077.807346, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 272460794.0, "Total blocks": 105602793.0, "Ops per second": 9058532.45, "ns per ops": 110.39, "Ops per threads": 8514399.0, "Ops per procs": 17028799.0, "Ops/sec/procs": 566158.28, "ns per ops/procs": 1766.29}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 158597202.0, "Ops per second": 5286573.0, "ns per ops": 189.0, "Ops per threads": 79298601.0, "Ops per procs": 158597202.0, "Ops/sec/procs": 5286573.0, "ns per ops/procs": 189.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30063.437763, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 197582975.0, "Total blocks": 83007255.0, "Ops per second": 6572201.64, "ns per ops": 152.16, "Ops per threads": 12348935.0, "Ops per procs": 24697871.0, "Ops/sec/procs": 821525.21, "ns per ops/procs": 1217.25}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30070.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 256667676.0, "Ops per second": 8535623.17, "ns per ops": 117.16, "Ops per threads": 2673621.0, "Ops per procs": 5347243.0, "Ops/sec/procs": 177825.48, "ns per ops/procs": 5623.49}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30052.083819, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 148801360.0, "Total blocks": 74401550.0, "Ops per second": 4951448.99, "ns per ops": 201.96, "Ops per threads": 37200340.0, "Ops per procs": 74400680.0, "Ops/sec/procs": 2475724.49, "ns per ops/procs": 403.92}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30042.596541, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 526193803.0, "Total blocks": 189657858.0, "Ops per second": 17514924.26, "ns per ops": 57.09, "Ops per threads": 2740592.0, "Ops per procs": 5481185.0, "Ops/sec/procs": 182447.13, "ns per ops/procs": 5481.04}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30054.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 293505901.0, "Ops per second": 9765855.89, "ns per ops": 102.4, "Ops per threads": 146752950.0, "Ops per procs": 293505901.0, "Ops/sec/procs": 9765855.89, "ns per ops/procs": 102.4}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30051.751868, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 150988568.0, "Total blocks": 75494776.0, "Ops per second": 5024285.06, "ns per ops": 199.03, "Ops per threads": 37747142.0, "Ops per procs": 75494284.0, "Ops/sec/procs": 2512142.53, "ns per ops/procs": 398.07}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30013.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 671127303.0, "Total blocks": 299236142.0, "Ops per second": 22360758.37, "ns per ops": 44.72, "Ops per threads": 1747727.0, "Ops per procs": 3495454.0, "Ops/sec/procs": 116462.28, "ns per ops/procs": 8586.47}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30064.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 672919098.0, "Total blocks": 299322085.0, "Ops per second": 22382812.47, "ns per ops": 44.68, "Ops per threads": 1752393.0, "Ops per procs": 3504786.0, "Ops/sec/procs": 116577.15, "ns per ops/procs": 8578.01}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 79618864.0, "Total blocks": 39806676.0, "Ops per second": 2651844.46, "ns per ops": 377.1, "Ops per threads": 19904716.0, "Ops per procs": 39809432.0, "Ops/sec/procs": 1325922.23, "ns per ops/procs": 754.19}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 241590709.0, "Ops per second": 8053023.0, "ns per ops": 124.0, "Ops per threads": 1677713.0, "Ops per procs": 3355426.0, "Ops/sec/procs": 111847.0, "ns per ops/procs": 8969.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30025.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 149853746.0, "Total blocks": 77449354.0, "Ops per second": 4990948.6, "ns per ops": 200.36, "Ops per threads": 9365859.0, "Ops per procs": 18731718.0, "Ops/sec/procs": 623868.57, "ns per ops/procs": 1602.9}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 256048210.0, "Total blocks": 127929187.0, "Ops per second": 8533728.88, "ns per ops": 117.18, "Ops per threads": 5334337.0, "Ops per procs": 10668675.0, "Ops/sec/procs": 355572.04, "ns per ops/procs": 2812.37}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30052.652122, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 139391507.0, "Total blocks": 66315608.0, "Ops per second": 4638243.12, "ns per ops": 215.6, "Ops per threads": 17423938.0, "Ops per procs": 34847876.0, "Ops/sec/procs": 1159560.78, "ns per ops/procs": 862.4}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30057.872315, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 689133024.0, "Total blocks": 252210676.0, "Ops per second": 22926873.09, "ns per ops": 43.62, "Ops per threads": 7178469.0, "Ops per procs": 14356938.0, "Ops/sec/procs": 477643.19, "ns per ops/procs": 2093.61}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30074.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 238752493.0, "Ops per second": 7938751.3, "ns per ops": 125.96, "Ops per threads": 1658003.0, "Ops per procs": 3316006.0, "Ops/sec/procs": 110260.43, "ns per ops/procs": 9069.44}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 163469545.0, "Ops per second": 5448984.0, "ns per ops": 184.0, "Ops per threads": 5108423.0, "Ops per procs": 10216846.0, "Ops/sec/procs": 340561.0, "ns per ops/procs": 2945.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 361341819.0, "Ops per second": 12044727.0, "ns per ops": 83.0, "Ops per threads": 3763977.0, "Ops per procs": 7527954.0, "Ops/sec/procs": 250931.0, "ns per ops/procs": 3998.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 239667794.0, "Ops per second": 7988926.0, "ns per ops": 125.0, "Ops per threads": 4993079.0, "Ops per procs": 9986158.0, "Ops/sec/procs": 332871.0, "ns per ops/procs": 3013.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 78039867.0, "Ops per second": 2601328.0, "ns per ops": 385.0, "Ops per threads": 9754983.0, "Ops per procs": 19509966.0, "Ops/sec/procs": 650332.0, "ns per ops/procs": 1542.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30018.372023, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 341662637.0, "Total blocks": 133031434.0, "Ops per second": 11381784.35, "ns per ops": 87.86, "Ops per threads": 7117971.0, "Ops per procs": 14235943.0, "Ops/sec/procs": 474241.01, "ns per ops/procs": 2108.63}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 404829265.0, "Total blocks": 196264122.0, "Ops per second": 13490080.8, "ns per ops": 74.13, "Ops per threads": 2108485.0, "Ops per procs": 4216971.0, "Ops/sec/procs": 140521.67, "ns per ops/procs": 7116.34}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30032.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 941573117.0, "Ops per second": 31351654.72, "ns per ops": 31.9, "Ops per threads": 3269351.0, "Ops per procs": 6538702.0, "Ops/sec/procs": 217719.82, "ns per ops/procs": 4593.06}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 338883845.0, "Total blocks": 164417272.0, "Ops per second": 11292653.29, "ns per ops": 88.55, "Ops per threads": 2353360.0, "Ops per procs": 4706720.0, "Ops/sec/procs": 156842.41, "ns per ops/procs": 6375.83}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30032.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 159747516.0, "Ops per second": 5319197.82, "ns per ops": 188.0, "Ops per threads": 19968439.0, "Ops per procs": 39936879.0, "Ops/sec/procs": 1329799.46, "ns per ops/procs": 751.99}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30021.81603, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 351968670.0, "Total blocks": 113490020.0, "Ops per second": 11723763.47, "ns per ops": 85.3, "Ops per threads": 7332680.0, "Ops per procs": 14665361.0, "Ops/sec/procs": 488490.14, "ns per ops/procs": 2047.12}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 310993620.0, "Ops per second": 10366454.0, "ns per ops": 96.0, "Ops per threads": 1619758.0, "Ops per procs": 3239516.0, "Ops/sec/procs": 107983.0, "ns per ops/procs": 9291.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 126857126.0, "Total blocks": 74459956.0, "Ops per second": 4225116.89, "ns per ops": 236.68, "Ops per threads": 15857140.0, "Ops per procs": 31714281.0, "Ops/sec/procs": 1056279.22, "ns per ops/procs": 946.72}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 104937295.0, "Ops per second": 3497909.0, "ns per ops": 286.0, "Ops per threads": 6558580.0, "Ops per procs": 13117161.0, "Ops/sec/procs": 437238.0, "ns per ops/procs": 2294.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 246626237.0, "Ops per second": 8220874.0, "ns per ops": 122.0, "Ops per threads": 1712682.0, "Ops per procs": 3425364.0, "Ops/sec/procs": 114178.0, "ns per ops/procs": 8786.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 317396895.0, "Ops per second": 10579896.0, "ns per ops": 94.0, "Ops per threads": 1653108.0, "Ops per procs": 3306217.0, "Ops/sec/procs": 110207.0, "ns per ops/procs": 9103.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30024.409018, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 470417111.0, "Total blocks": 175676580.0, "Ops per second": 15667822.49, "ns per ops": 63.83, "Ops per threads": 3266785.0, "Ops per procs": 6533570.0, "Ops/sec/procs": 217608.65, "ns per ops/procs": 4595.41}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30012.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 643034270.0, "Total blocks": 283277071.0, "Ops per second": 21425195.98, "ns per ops": 46.67, "Ops per threads": 1674568.0, "Ops per procs": 3349136.0, "Ops/sec/procs": 111589.56, "ns per ops/procs": 8961.41}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30099.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 65816728.0, "Ops per second": 2193890.0, "ns per ops": 457.0, "Ops per threads": 8227091.0, "Ops per procs": 16454182.0, "Ops/sec/procs": 548472.0, "ns per ops/procs": 1829.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30081.905352, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 533724834.0, "Total blocks": 207513952.0, "Ops per second": 17742387.92, "ns per ops": 56.36, "Ops per threads": 1853211.0, "Ops per procs": 3706422.0, "Ops/sec/procs": 123211.03, "ns per ops/procs": 8116.16}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30006.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 255476269.0, "Ops per second": 8514064.65, "ns per ops": 117.45, "Ops per threads": 5322422.0, "Ops per procs": 10644844.0, "Ops/sec/procs": 354752.69, "ns per ops/procs": 2818.87}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 79549342.0, "Total blocks": 39772198.0, "Ops per second": 2649544.1, "ns per ops": 377.42, "Ops per threads": 19887335.0, "Ops per procs": 39774671.0, "Ops/sec/procs": 1324772.05, "ns per ops/procs": 754.85}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30099.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 264685790.0, "Ops per second": 8822859.0, "ns per ops": 113.0, "Ops per threads": 1838095.0, "Ops per procs": 3676191.0, "Ops/sec/procs": 122539.0, "ns per ops/procs": 8187.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30098.818672, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 607112623.0, "Total blocks": 228878907.0, "Ops per second": 20170646.22, "ns per ops": 49.58, "Ops per threads": 1581022.0, "Ops per procs": 3162044.0, "Ops/sec/procs": 105055.45, "ns per ops/procs": 9518.79}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 246785819.0, "Ops per second": 8226193.0, "ns per ops": 121.0, "Ops per threads": 5141371.0, "Ops per procs": 10282742.0, "Ops/sec/procs": 342758.0, "ns per ops/procs": 2927.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30044.89221, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 679548565.0, "Total blocks": 245615223.0, "Ops per second": 22617773.44, "ns per ops": 44.21, "Ops per threads": 7078630.0, "Ops per procs": 14157261.0, "Ops/sec/procs": 471203.61, "ns per ops/procs": 2122.22}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30055.51454, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 152177674.0, "Total blocks": 66597507.0, "Ops per second": 5063219.72, "ns per ops": 197.5, "Ops per threads": 19022209.0, "Ops per procs": 38044418.0, "Ops/sec/procs": 1265804.93, "ns per ops/procs": 790.01}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 97296542.0, "Ops per second": 3243218.0, "ns per ops": 309.0, "Ops per threads": 6081033.0, "Ops per procs": 12162067.0, "Ops/sec/procs": 405402.0, "ns per ops/procs": 2474.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30010.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 590020576.0, "Total blocks": 299813270.0, "Ops per second": 19660392.13, "ns per ops": 50.86, "Ops per threads": 2048682.0, "Ops per procs": 4097365.0, "Ops/sec/procs": 136530.5, "ns per ops/procs": 7324.37}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30068.178489, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 537900077.0, "Total blocks": 194915970.0, "Ops per second": 17889346.95, "ns per ops": 55.9, "Ops per threads": 2801562.0, "Ops per procs": 5603125.0, "Ops/sec/procs": 186347.36, "ns per ops/procs": 5366.32}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 157017519.0, "Ops per second": 5233917.0, "ns per ops": 191.0, "Ops per threads": 4906797.0, "Ops per procs": 9813594.0, "Ops/sec/procs": 327119.0, "ns per ops/procs": 3066.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30099.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 263588610.0, "Ops per second": 8786287.0, "ns per ops": 114.0, "Ops per threads": 1830476.0, "Ops per procs": 3660952.0, "Ops/sec/procs": 122031.0, "ns per ops/procs": 8221.0}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30030.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 386425745.0, "Ops per second": 12867691.17, "ns per ops": 77.71, "Ops per threads": 1006317.0, "Ops per procs": 2012634.0, "Ops/sec/procs": 67019.22, "ns per ops/procs": 14921.09}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30021.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 256531765.0, "Ops per second": 8545073.79, "ns per ops": 117.03, "Ops per threads": 5344411.0, "Ops per procs": 10688823.0, "Ops/sec/procs": 356044.74, "ns per ops/procs": 2808.64}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30077.892052, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 263751023.0, "Total blocks": 102657263.0, "Ops per second": 8768933.09, "ns per ops": 114.04, "Ops per threads": 8242219.0, "Ops per procs": 16484438.0, "Ops/sec/procs": 548058.32, "ns per ops/procs": 1824.62}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 414160455.0, "Total blocks": 201822965.0, "Ops per second": 13801001.71, "ns per ops": 72.46, "Ops per threads": 2157085.0, "Ops per procs": 4314171.0, "Ops/sec/procs": 143760.43, "ns per ops/procs": 6956.02}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30074.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 259890152.0, "Ops per second": 8641576.06, "ns per ops": 115.72, "Ops per threads": 1353594.0, "Ops per procs": 2707189.0, "Ops/sec/procs": 90016.42, "ns per ops/procs": 11109.08}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30030.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 265992205.0, "Ops per second": 8857304.01, "ns per ops": 112.9, "Ops per threads": 1847168.0, "Ops per procs": 3694336.0, "Ops/sec/procs": 123018.11, "ns per ops/procs": 8128.88}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30019.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 116506198.0, "Ops per second": 3880962.4, "ns per ops": 257.67, "Ops per threads": 29126549.0, "Ops per procs": 58253099.0, "Ops/sec/procs": 1940481.2, "ns per ops/procs": 515.34}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30098.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 572012936.0, "Ops per second": 19067097.0, "ns per ops": 52.0, "Ops per threads": 1489617.0, "Ops per procs": 2979234.0, "Ops/sec/procs": 99307.0, "ns per ops/procs": 10102.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30037.388555, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 559307800.0, "Total blocks": 216255389.0, "Ops per second": 18620387.02, "ns per ops": 53.7, "Ops per threads": 1942040.0, "Ops per procs": 3884081.0, "Ops/sec/procs": 129308.24, "ns per ops/procs": 7733.46}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30098.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 579495819.0, "Ops per second": 19316527.0, "ns per ops": 51.0, "Ops per threads": 1509103.0, "Ops per procs": 3018207.0, "Ops/sec/procs": 100606.0, "ns per ops/procs": 9972.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30064.125041, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 677214696.0, "Total blocks": 263976927.0, "Ops per second": 22525674.54, "ns per ops": 44.39, "Ops per threads": 7054319.0, "Ops per procs": 14108639.0, "Ops/sec/procs": 469284.89, "ns per ops/procs": 2130.9}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30069.292225, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 568277943.0, "Total blocks": 223678487.0, "Ops per second": 18898946.43, "ns per ops": 52.91, "Ops per threads": 1479890.0, "Ops per procs": 2959780.0, "Ops/sec/procs": 98432.01, "ns per ops/procs": 10159.3}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 122561268.0, "Total blocks": 72582809.0, "Ops per second": 4081987.94, "ns per ops": 244.98, "Ops per threads": 15320158.0, "Ops per procs": 30640317.0, "Ops/sec/procs": 1020496.99, "ns per ops/procs": 979.91}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30085.992156, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 618135923.0, "Total blocks": 237426548.0, "Ops per second": 20545638.64, "ns per ops": 48.67, "Ops per threads": 1609728.0, "Ops per procs": 3219457.0, "Ops/sec/procs": 107008.53, "ns per ops/procs": 9345.05}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30025.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 280164068.0, "Ops per second": 9331008.17, "ns per ops": 107.17, "Ops per threads": 1945583.0, "Ops per procs": 3891167.0, "Ops/sec/procs": 129597.34, "ns per ops/procs": 7716.21}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 77659393.0, "Total blocks": 38826979.0, "Ops per second": 2586544.52, "ns per ops": 386.62, "Ops per threads": 19414848.0, "Ops per procs": 38829696.0, "Ops/sec/procs": 1293272.26, "ns per ops/procs": 773.23}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 342142425.0, "Total blocks": 166866953.0, "Ops per second": 11401232.29, "ns per ops": 87.71, "Ops per threads": 2375989.0, "Ops per procs": 4751978.0, "Ops/sec/procs": 158350.45, "ns per ops/procs": 6315.11}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 561561175.0, "Ops per second": 18718705.0, "ns per ops": 53.0, "Ops per threads": 1462398.0, "Ops per procs": 2924797.0, "Ops/sec/procs": 97493.0, "ns per ops/procs": 10290.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30065.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 274927849.0, "Ops per second": 9144283.56, "ns per ops": 109.36, "Ops per threads": 2863831.0, "Ops per procs": 5727663.0, "Ops/sec/procs": 190505.91, "ns per ops/procs": 5249.18}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 95144884.0, "Ops per second": 3171496.0, "ns per ops": 316.0, "Ops per threads": 5946555.0, "Ops per procs": 11893110.0, "Ops/sec/procs": 396437.0, "ns per ops/procs": 2530.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 433296312.0, "Ops per second": 14443210.0, "ns per ops": 69.0, "Ops per threads": 1504501.0, "Ops per procs": 3009002.0, "Ops/sec/procs": 100300.0, "ns per ops/procs": 10002.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30021.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185470146.0, "Total blocks": 0.0, "Ops per second": 6177811.29, "ns per ops": 161.87, "Ops per threads": 92735073.0, "Ops per procs": 185470146.0, "Ops/sec/procs": 6177811.29, "ns per ops/procs": 161.87}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30008.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 347307995.0, "Total blocks": 167691727.0, "Ops per second": 11573513.84, "ns per ops": 86.4, "Ops per threads": 2411861.0, "Ops per procs": 4823722.0, "Ops/sec/procs": 160743.25, "ns per ops/procs": 6221.1}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 90388591.0, "Ops per second": 3012953.0, "ns per ops": 331.0, "Ops per threads": 11298573.0, "Ops per procs": 22597147.0, "Ops/sec/procs": 753238.0, "ns per ops/procs": 1327.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30016.126726, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 626407233.0, "Total blocks": 246809138.0, "Ops per second": 20869022.8, "ns per ops": 47.92, "Ops per threads": 1631268.0, "Ops per procs": 3262537.0, "Ops/sec/procs": 108692.83, "ns per ops/procs": 9200.24}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30048.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 192068275.0, "Ops per second": 6391903.05, "ns per ops": 156.45, "Ops per threads": 12004267.0, "Ops per procs": 24008534.0, "Ops/sec/procs": 798987.88, "ns per ops/procs": 1251.58}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 110867565.0, "Ops per second": 3695585.0, "ns per ops": 271.0, "Ops per threads": 6929222.0, "Ops per procs": 13858445.0, "Ops/sec/procs": 461948.0, "ns per ops/procs": 2171.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 158375636.0, "Ops per second": 5279187.0, "ns per ops": 190.0, "Ops per threads": 79187818.0, "Ops per procs": 158375636.0, "Ops/sec/procs": 5279187.0, "ns per ops/procs": 190.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 120506992.0, "Total blocks": 71485222.0, "Ops per second": 4013621.13, "ns per ops": 249.15, "Ops per threads": 15063374.0, "Ops per procs": 30126748.0, "Ops/sec/procs": 1003405.28, "ns per ops/procs": 996.61}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30036.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 259272763.0, "Ops per second": 8631802.64, "ns per ops": 115.85, "Ops per threads": 2700757.0, "Ops per procs": 5401515.0, "Ops/sec/procs": 179829.22, "ns per ops/procs": 5560.83}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 148769038.0, "Ops per second": 4958967.0, "ns per ops": 202.0, "Ops per threads": 4649032.0, "Ops per procs": 9298064.0, "Ops/sec/procs": 309935.0, "ns per ops/procs": 3237.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 122412328.0, "Total blocks": 72540051.0, "Ops per second": 4077092.61, "ns per ops": 245.27, "Ops per threads": 15301541.0, "Ops per procs": 30603082.0, "Ops/sec/procs": 1019273.15, "ns per ops/procs": 981.09}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30054.42209, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 155618160.0, "Total blocks": 66780078.0, "Ops per second": 5177878.97, "ns per ops": 193.13, "Ops per threads": 19452270.0, "Ops per procs": 38904540.0, "Ops/sec/procs": 1294469.74, "ns per ops/procs": 772.52}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 107016269.0, "Ops per second": 3567208.0, "ns per ops": 281.0, "Ops per threads": 6688516.0, "Ops per procs": 13377033.0, "Ops/sec/procs": 445901.0, "ns per ops/procs": 2249.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30020.84031, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 335636349.0, "Total blocks": 121290801.0, "Ops per second": 11180111.73, "ns per ops": 89.44, "Ops per threads": 6992423.0, "Ops per procs": 13984847.0, "Ops/sec/procs": 465837.99, "ns per ops/procs": 2146.67}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 66909163.0, "Ops per second": 2230305.0, "ns per ops": 449.0, "Ops per threads": 8363645.0, "Ops per procs": 16727290.0, "Ops/sec/procs": 557576.0, "ns per ops/procs": 1799.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30081.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 168078161.0, "Ops per second": 5587397.48, "ns per ops": 178.97, "Ops per threads": 5252442.0, "Ops per procs": 10504885.0, "Ops/sec/procs": 349212.34, "ns per ops/procs": 2863.59}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 419559692.0, "Total blocks": 202526436.0, "Ops per second": 13980959.21, "ns per ops": 71.53, "Ops per threads": 2185206.0, "Ops per procs": 4370413.0, "Ops/sec/procs": 145634.99, "ns per ops/procs": 6866.48}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30003.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 301263853.0, "Total blocks": 151393973.0, "Ops per second": 10040792.74, "ns per ops": 99.59, "Ops per threads": 6276330.0, "Ops per procs": 12552660.0, "Ops/sec/procs": 418366.36, "ns per ops/procs": 2390.25}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 293519361.0, "Ops per second": 9783978.0, "ns per ops": 102.0, "Ops per threads": 1528746.0, "Ops per procs": 3057493.0, "Ops/sec/procs": 101916.0, "ns per ops/procs": 9843.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 126886524.0, "Total blocks": 74568609.0, "Ops per second": 4226120.88, "ns per ops": 236.62, "Ops per threads": 15860815.0, "Ops per procs": 31721631.0, "Ops/sec/procs": 1056530.22, "ns per ops/procs": 946.49}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30038.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 269033539.0, "Ops per second": 8956396.5, "ns per ops": 111.65, "Ops per threads": 1868288.0, "Ops per procs": 3736576.0, "Ops/sec/procs": 124394.4, "ns per ops/procs": 8038.95}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 441575269.0, "Ops per second": 14719175.0, "ns per ops": 68.0, "Ops per threads": 1533247.0, "Ops per procs": 3066494.0, "Ops/sec/procs": 102216.0, "ns per ops/procs": 9815.0}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30026.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 272928349.0, "Ops per second": 9089467.99, "ns per ops": 110.02, "Ops per threads": 1895335.0, "Ops per procs": 3790671.0, "Ops/sec/procs": 126242.61, "ns per ops/procs": 7921.26}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30070.064675, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 650309182.0, "Total blocks": 265196306.0, "Ops per second": 21626464.36, "ns per ops": 46.24, "Ops per threads": 6774053.0, "Ops per procs": 13548107.0, "Ops/sec/procs": 450551.34, "ns per ops/procs": 2219.5}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30055.258465, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 138718289.0, "Total blocks": 66049444.0, "Ops per second": 4615441.56, "ns per ops": 216.66, "Ops per threads": 17339786.0, "Ops per procs": 34679572.0, "Ops/sec/procs": 1153860.39, "ns per ops/procs": 866.66}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30054.464037, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 594728221.0, "Total blocks": 227093605.0, "Ops per second": 19788348.92, "ns per ops": 50.53, "Ops per threads": 1548771.0, "Ops per procs": 3097542.0, "Ops/sec/procs": 103064.32, "ns per ops/procs": 9702.68}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 262402060.0, "Ops per second": 8746735.0, "ns per ops": 114.0, "Ops per threads": 1822236.0, "Ops per procs": 3644473.0, "Ops/sec/procs": 121482.0, "ns per ops/procs": 8258.0}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30058.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 269076036.0, "Ops per second": 8951856.66, "ns per ops": 111.71, "Ops per threads": 1401437.0, "Ops per procs": 2802875.0, "Ops/sec/procs": 93248.51, "ns per ops/procs": 10724.03}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185546705.0, "Total blocks": 0.0, "Ops per second": 6180325.98, "ns per ops": 161.8, "Ops per threads": 92773352.0, "Ops per procs": 185546705.0, "Ops/sec/procs": 6180325.98, "ns per ops/procs": 161.8}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 289825346.0, "Total blocks": 144426328.0, "Ops per second": 9659517.84, "ns per ops": 103.52, "Ops per threads": 6038028.0, "Ops per procs": 12076056.0, "Ops/sec/procs": 402479.91, "ns per ops/procs": 2484.6}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 366063094.0, "Ops per second": 12202103.0, "ns per ops": 82.0, "Ops per threads": 3813157.0, "Ops per procs": 7626314.0, "Ops/sec/procs": 254210.0, "ns per ops/procs": 3946.0}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30048.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 210055038.0, "Ops per second": 6990578.73, "ns per ops": 143.05, "Ops per threads": 105027519.0, "Ops per procs": 210055038.0, "Ops/sec/procs": 6990578.73, "ns per ops/procs": 143.05}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 276161638.0, "Total blocks": 138322434.0, "Ops per second": 9204123.96, "ns per ops": 108.65, "Ops per threads": 5753367.0, "Ops per procs": 11506734.0, "Ops/sec/procs": 383505.16, "ns per ops/procs": 2607.53}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30098.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 233863400.0, "Ops per second": 7795446.0, "ns per ops": 128.0, "Ops per threads": 4872154.0, "Ops per procs": 9744308.0, "Ops/sec/procs": 324810.0, "ns per ops/procs": 3088.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 566106974.0, "Ops per second": 18870232.0, "ns per ops": 53.0, "Ops per threads": 1474236.0, "Ops per procs": 2948473.0, "Ops/sec/procs": 98282.0, "ns per ops/procs": 10207.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30055.521339, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 149045195.0, "Total blocks": 63884658.0, "Ops per second": 4958995.5, "ns per ops": 201.65, "Ops per threads": 18630649.0, "Ops per procs": 37261298.0, "Ops/sec/procs": 1239748.87, "ns per ops/procs": 806.61}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30085.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 98072071.0, "Ops per second": 3269069.0, "ns per ops": 306.0, "Ops per threads": 24518017.0, "Ops per procs": 49036035.0, "Ops/sec/procs": 1634534.0, "ns per ops/procs": 613.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30073.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 168906626.0, "Ops per second": 5616458.52, "ns per ops": 178.05, "Ops per threads": 5278332.0, "Ops per procs": 10556664.0, "Ops/sec/procs": 351028.66, "ns per ops/procs": 2848.77}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 295170572.0, "Total blocks": 150231962.0, "Ops per second": 9837699.12, "ns per ops": 101.65, "Ops per threads": 6149386.0, "Ops per procs": 12298773.0, "Ops/sec/procs": 409904.13, "ns per ops/procs": 2439.6}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30012.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 255262513.0, "Ops per second": 8505334.59, "ns per ops": 117.57, "Ops per threads": 5317969.0, "Ops per procs": 10635938.0, "Ops/sec/procs": 354388.94, "ns per ops/procs": 2821.76}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 236400459.0, "Ops per second": 7880015.0, "ns per ops": 127.0, "Ops per threads": 4925009.0, "Ops per procs": 9850019.0, "Ops/sec/procs": 328333.0, "ns per ops/procs": 3055.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30033.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 158598013.0, "Ops per second": 5280720.15, "ns per ops": 189.37, "Ops per threads": 19824751.0, "Ops per procs": 39649503.0, "Ops/sec/procs": 1320180.04, "ns per ops/procs": 757.47}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30050.153252, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 260007942.0, "Total blocks": 157847158.0, "Ops per second": 8652466.42, "ns per ops": 115.57, "Ops per threads": 130003971.0, "Ops per procs": 260007942.0, "Ops/sec/procs": 8652466.42, "ns per ops/procs": 115.57}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 69417557.0, "Ops per second": 2313918.0, "ns per ops": 433.0, "Ops per threads": 8677194.0, "Ops per procs": 17354389.0, "Ops/sec/procs": 578479.0, "ns per ops/procs": 1734.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 104995796.0, "Ops per second": 3499859.0, "ns per ops": 286.0, "Ops per threads": 6562237.0, "Ops per procs": 13124474.0, "Ops/sec/procs": 437482.0, "ns per ops/procs": 2293.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 112060200.0, "Total blocks": 65073987.0, "Ops per second": 3732281.67, "ns per ops": 267.93, "Ops per threads": 14007525.0, "Ops per procs": 28015050.0, "Ops/sec/procs": 933070.42, "ns per ops/procs": 1071.73}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30023.135933, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 515531010.0, "Total blocks": 190965998.0, "Ops per second": 17171124.67, "ns per ops": 58.24, "Ops per threads": 2685057.0, "Ops per procs": 5370114.0, "Ops/sec/procs": 178865.88, "ns per ops/procs": 5590.78}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 513472966.0, "Total blocks": 265250105.0, "Ops per second": 17112470.96, "ns per ops": 58.44, "Ops per threads": 5348676.0, "Ops per procs": 10697353.0, "Ops/sec/procs": 356509.81, "ns per ops/procs": 2804.97}]] -
doc/theses/thierry_delisle_PhD/thesis/data/cycle.jax
r12df6fe r4520b77e 1 [["rdq-cycle- go", "./rdq-cycle-go -p 24 -d 10 -r 5 -t 2400", {"Duration (ms)": 10001.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1138076440.0, "Ops per second": 113792094.48, "ns per ops": 8.79, "Ops per threads": 94839.0, "Ops per procs": 47419851.0, "Ops/sec/procs": 4741337.27, "ns per ops/procs": 210.91}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 10 -r 5 -t 1600", {"Duration (ms)": 200285.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 17638575791.0, "Ops per second": 88067238.72, "ns per ops": 11.35, "Ops per threads": 2204821.0, "Ops per procs": 1102410986.0, "Ops/sec/procs": 5504202.42, "ns per ops/procs": 181.68}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 10 -r 5 -t 100", {"Duration (ms)": 10100.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 54856916.0, "Ops per second": 5485691.0, "ns per ops": 184.0, "Ops per threads": 109713.0, "Ops per procs": 54856916.0, "Ops/sec/procs": 5485691.0, "ns per ops/procs": 184.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 10 -r 5 -t 1600", {"Duration (ms)": 10025.449006, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 558836360.0, "Total blocks": 558836360.0, "Ops per second": 55741778.71, "ns per ops": 17.94, "Ops per threads": 69854.0, "Ops per procs": 34927272.0, "Ops/sec/procs": 3483861.17, "ns per ops/procs": 287.04}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 10 -r 5 -t 1600", {"Duration (ms)": 10038.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 58647049.0, "Total blocks": 58647049.0, "Ops per second": 5842287.68, "ns per ops": 171.17, "Ops per threads": 7330.0, "Ops per procs": 3665440.0, "Ops/sec/procs": 365142.98, "ns per ops/procs": 2738.65}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 10 -r 5 -t 2400", {"Duration (ms)": 10003.489711, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 728096996.0, "Total blocks": 728096996.0, "Ops per second": 72784299.98, "ns per ops": 13.74, "Ops per threads": 60674.0, "Ops per procs": 30337374.0, "Ops/sec/procs": 3032679.17, "ns per ops/procs": 329.74}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 10 -r 5 -t 800", {"Duration (ms)": 10021.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 63157049.0, "Total blocks": 63157049.0, "Ops per second": 6302255.13, "ns per ops": 158.67, "Ops per threads": 15789.0, "Ops per procs": 7894631.0, "Ops/sec/procs": 787781.89, "ns per ops/procs": 1269.39}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 10 -r 5 -t 100", {"Duration (ms)": 10009.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 62412200.0, "Total blocks": 62411700.0, "Ops per second": 6235572.31, "ns per ops": 160.37, "Ops per threads": 124824.0, "Ops per procs": 62412200.0, "Ops/sec/procs": 6235572.31, "ns per ops/procs": 160.37}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 10 -r 5 -t 800", {"Duration (ms)": 10000.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 464608617.0, "Ops per second": 46457191.42, "ns per ops": 21.53, "Ops per threads": 116152.0, "Ops per procs": 58076077.0, "Ops/sec/procs": 5807148.93, "ns per ops/procs": 172.2}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 10 -r 5 -t 800", {"Duration (ms)": 10099.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 391521066.0, "Ops per second": 39152106.0, "ns per ops": 25.0, "Ops per threads": 97880.0, "Ops per procs": 48940133.0, "Ops/sec/procs": 4894013.0, "ns per ops/procs": 206.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 10 -r 5 -t 2400", {"Duration (ms)": 10099.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 963549550.0, "Ops per second": 96354955.0, "ns per ops": 10.0, "Ops per threads": 80295.0, "Ops per procs": 40147897.0, "Ops/sec/procs": 4014789.0, "ns per ops/procs": 251.0}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 10 -r 5 -t 1600", {"Duration (ms)": 10001.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 867718190.0, "Ops per second": 86761170.55, "ns per ops": 11.53, "Ops per threads": 108464.0, "Ops per procs": 54232386.0, "Ops/sec/procs": 5422573.16, "ns per ops/procs": 184.41}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 10 -r 5 -t 2400", {"Duration (ms)": 10100.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 962016289.0, "Ops per second": 96201628.0, "ns per ops": 10.0, "Ops per threads": 80168.0, "Ops per procs": 40084012.0, "Ops/sec/procs": 4008401.0, "ns per ops/procs": 251.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 10 -r 5 -t 100", {"Duration (ms)": 10016.837824, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 54738237.0, "Total blocks": 54737741.0, "Ops per second": 5464622.46, "ns per ops": 183.0, "Ops per threads": 109476.0, "Ops per procs": 54738237.0, "Ops/sec/procs": 5464622.46, "ns per ops/procs": 183.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 10 -r 5 -t 1600", {"Duration (ms)": 10099.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 731309408.0, "Ops per second": 73130940.0, "ns per ops": 13.0, "Ops per threads": 91413.0, "Ops per procs": 45706838.0, "Ops/sec/procs": 4570683.0, "ns per ops/procs": 220.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 10 -r 5 -t 1600", {"Duration (ms)": 10100.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 739772688.0, "Ops per second": 73977268.0, "ns per ops": 13.0, "Ops per threads": 92471.0, "Ops per procs": 46235793.0, "Ops/sec/procs": 4623579.0, "ns per ops/procs": 218.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 10 -r 5 -t 800", {"Duration (ms)": 10100.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 391449785.0, "Ops per second": 39144978.0, "ns per ops": 25.0, "Ops per threads": 97862.0, "Ops per procs": 48931223.0, "Ops/sec/procs": 4893122.0, "ns per ops/procs": 206.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 10 -r 5 -t 2400", {"Duration (ms)": 10048.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 57239183.0, "Total blocks": 57239183.0, "Ops per second": 5696211.13, "ns per ops": 175.56, "Ops per threads": 4769.0, "Ops per procs": 2384965.0, "Ops/sec/procs": 237342.13, "ns per ops/procs": 4213.33}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 10 -r 5 -t 100", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 55248375.0, "Ops per second": 5524562.87, "ns per ops": 181.01, "Ops per threads": 110496.0, "Ops per procs": 55248375.0, "Ops/sec/procs": 5524562.87, "ns per ops/procs": 181.01}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 10 -r 5 -t 800", {"Duration (ms)": 10021.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 61553053.0, "Total blocks": 61553053.0, "Ops per second": 6142186.88, "ns per ops": 162.81, "Ops per threads": 15388.0, "Ops per procs": 7694131.0, "Ops/sec/procs": 767773.36, "ns per ops/procs": 1302.47}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 10 -r 5 -t 100", {"Duration (ms)": 10008.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 62811642.0, "Total blocks": 62811142.0, "Ops per second": 6275517.47, "ns per ops": 159.35, "Ops per threads": 125623.0, "Ops per procs": 62811642.0, "Ops/sec/procs": 6275517.47, "ns per ops/procs": 159.35}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 10 -r 5 -t 800", {"Duration (ms)": 10018.820873, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 260866706.0, "Total blocks": 260862710.0, "Ops per second": 26037665.44, "ns per ops": 38.41, "Ops per threads": 65216.0, "Ops per procs": 32608338.0, "Ops/sec/procs": 3254708.18, "ns per ops/procs": 307.25}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 10 -r 5 -t 1600", {"Duration (ms)": 10000.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 874581175.0, "Ops per second": 87449851.2, "ns per ops": 11.44, "Ops per threads": 109322.0, "Ops per procs": 54661323.0, "Ops/sec/procs": 5465615.7, "ns per ops/procs": 182.96}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 10 -r 5 -t 100", {"Duration (ms)": 10099.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 55228782.0, "Ops per second": 5522878.0, "ns per ops": 182.0, "Ops per threads": 110457.0, "Ops per procs": 55228782.0, "Ops/sec/procs": 5522878.0, "ns per ops/procs": 182.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 10 -r 5 -t 100", {"Duration (ms)": 10009.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 62564955.0, "Total blocks": 62564455.0, "Ops per second": 6250797.96, "ns per ops": 159.98, "Ops per threads": 125129.0, "Ops per procs": 62564955.0, "Ops/sec/procs": 6250797.96, "ns per ops/procs": 159.98}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 10 -r 5 -t 1600", {"Duration (ms)": 10100.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 738848909.0, "Ops per second": 73884890.0, "ns per ops": 13.0, "Ops per threads": 92356.0, "Ops per procs": 46178056.0, "Ops/sec/procs": 4617805.0, "ns per ops/procs": 218.0}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 10 -r 5 -t 2400", {"Duration (ms)": 10001.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1131221613.0, "Ops per second": 113108175.94, "ns per ops": 8.84, "Ops per threads": 94268.0, "Ops per procs": 47134233.0, "Ops/sec/procs": 4712840.66, "ns per ops/procs": 212.19}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 10 -r 5 -t 2400", {"Duration (ms)": 10008.209159, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 729328104.0, "Total blocks": 729328099.0, "Ops per second": 72872987.81, "ns per ops": 13.72, "Ops per threads": 60777.0, "Ops per procs": 30388671.0, "Ops/sec/procs": 3036374.49, "ns per ops/procs": 329.34}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 10 -r 5 -t 2400", {"Duration (ms)": 10099.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 961002611.0, "Ops per second": 96100261.0, "ns per ops": 10.0, "Ops per threads": 80083.0, "Ops per procs": 40041775.0, "Ops/sec/procs": 4004177.0, "ns per ops/procs": 252.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 10 -r 5 -t 800", {"Duration (ms)": 10099.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 390098231.0, "Ops per second": 39009823.0, "ns per ops": 25.0, "Ops per threads": 97524.0, "Ops per procs": 48762278.0, "Ops/sec/procs": 4876227.0, "ns per ops/procs": 207.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 10 -r 5 -t 100", {"Duration (ms)": 10100.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 55237591.0, "Ops per second": 5523759.0, "ns per ops": 182.0, "Ops per threads": 110475.0, "Ops per procs": 55237591.0, "Ops/sec/procs": 5523759.0, "ns per ops/procs": 182.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 10 -r 5 -t 100", {"Duration (ms)": 10016.576699, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 54510321.0, "Total blocks": 54509820.0, "Ops per second": 5442011.04, "ns per ops": 183.76, "Ops per threads": 109020.0, "Ops per procs": 54510321.0, "Ops/sec/procs": 5442011.04, "ns per ops/procs": 183.76}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 10 -r 5 -t 2400", {"Duration (ms)": 10001.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1135730371.0, "Ops per second": 113558509.97, "ns per ops": 8.81, "Ops per threads": 94644.0, "Ops per procs": 47322098.0, "Ops/sec/procs": 4731604.58, "ns per ops/procs": 211.34}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 10 -r 5 -t 1600", {"Duration (ms)": 10039.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 61004037.0, "Total blocks": 61004037.0, "Ops per second": 6076255.04, "ns per ops": 164.58, "Ops per threads": 7625.0, "Ops per procs": 3812752.0, "Ops/sec/procs": 379765.94, "ns per ops/procs": 2633.2}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 10 -r 5 -t 2400", {"Duration (ms)": 10004.891999, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 747946345.0, "Total blocks": 747934349.0, "Ops per second": 74758062.86, "ns per ops": 13.38, "Ops per threads": 62328.0, "Ops per procs": 31164431.0, "Ops/sec/procs": 3114919.29, "ns per ops/procs": 321.04}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 10 -r 5 -t 800", {"Duration (ms)": 10000.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 466424792.0, "Ops per second": 46638931.23, "ns per ops": 21.44, "Ops per threads": 116606.0, "Ops per procs": 58303099.0, "Ops/sec/procs": 5829866.4, "ns per ops/procs": 171.53}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 10 -r 5 -t 2400", {"Duration (ms)": 10086.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 57343570.0, "Total blocks": 57343570.0, "Ops per second": 5685308.81, "ns per ops": 175.89, "Ops per threads": 4778.0, "Ops per procs": 2389315.0, "Ops/sec/procs": 236887.87, "ns per ops/procs": 4221.41}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 10 -r 5 -t 800", {"Duration (ms)": 10020.39533, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 263517289.0, "Total blocks": 263513293.0, "Ops per second": 26298093.07, "ns per ops": 38.03, "Ops per threads": 65879.0, "Ops per procs": 32939661.0, "Ops/sec/procs": 3287261.63, "ns per ops/procs": 304.2}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 10 -r 5 -t 1600", {"Duration (ms)": 10025.357431, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 551670395.0, "Total blocks": 551662399.0, "Ops per second": 55027503.89, "ns per ops": 18.17, "Ops per threads": 68958.0, "Ops per procs": 34479399.0, "Ops/sec/procs": 3439218.99, "ns per ops/procs": 290.76}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 10 -r 5 -t 2400", {"Duration (ms)": 10050.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 56162695.0, "Total blocks": 56162695.0, "Ops per second": 5588033.65, "ns per ops": 178.95, "Ops per threads": 4680.0, "Ops per procs": 2340112.0, "Ops/sec/procs": 232834.74, "ns per ops/procs": 4294.89}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 10 -r 5 -t 800", {"Duration (ms)": 10019.690183, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 271866976.0, "Total blocks": 271862980.0, "Ops per second": 27133271.69, "ns per ops": 36.86, "Ops per threads": 67966.0, "Ops per procs": 33983372.0, "Ops/sec/procs": 3391658.96, "ns per ops/procs": 294.84}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 10 -r 5 -t 800", {"Duration (ms)": 10057.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 62105022.0, "Total blocks": 62105022.0, "Ops per second": 6175186.04, "ns per ops": 161.94, "Ops per threads": 15526.0, "Ops per procs": 7763127.0, "Ops/sec/procs": 771898.25, "ns per ops/procs": 1295.51}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 10 -r 5 -t 1600", {"Duration (ms)": 10025.81217, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 537080117.0, "Total blocks": 537072121.0, "Ops per second": 53569736.59, "ns per ops": 18.67, "Ops per threads": 67135.0, "Ops per procs": 33567507.0, "Ops/sec/procs": 3348108.54, "ns per ops/procs": 298.68}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 10 -r 5 -t 100", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 55967030.0, "Ops per second": 5596438.25, "ns per ops": 178.69, "Ops per threads": 111934.0, "Ops per procs": 55967030.0, "Ops/sec/procs": 5596438.25, "ns per ops/procs": 178.69}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 10 -r 5 -t 100", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 55703320.0, "Ops per second": 5570084.72, "ns per ops": 179.53, "Ops per threads": 111406.0, "Ops per procs": 55703320.0, "Ops/sec/procs": 5570084.72, "ns per ops/procs": 179.53}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 10 -r 5 -t 800", {"Duration (ms)": 10000.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 469211793.0, "Ops per second": 46918327.16, "ns per ops": 21.31, "Ops per threads": 117302.0, "Ops per procs": 58651474.0, "Ops/sec/procs": 5864790.9, "ns per ops/procs": 170.51}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 10 -r 5 -t 100", {"Duration (ms)": 10016.545208, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 54925472.0, "Total blocks": 54924976.0, "Ops per second": 5483474.68, "ns per ops": 182.37, "Ops per threads": 109850.0, "Ops per procs": 54925472.0, "Ops/sec/procs": 5483474.68, "ns per ops/procs": 182.37}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 10 -r 5 -t 1600", {"Duration (ms)": 10037.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 60770550.0, "Total blocks": 60770550.0, "Ops per second": 6054474.7, "ns per ops": 165.17, "Ops per threads": 7596.0, "Ops per procs": 3798159.0, "Ops/sec/procs": 378404.67, "ns per ops/procs": 2642.67}]]1 [["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30054.601589, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 535837409.0, "Total blocks": 535835409.0, "Ops per second": 17828797.61, "ns per ops": 56.09, "Ops per threads": 267918.0, "Ops per procs": 133959352.0, "Ops/sec/procs": 4457199.4, "ns per ops/procs": 224.36}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3133052990.0, "Ops per second": 104425531.66, "ns per ops": 9.58, "Ops per threads": 261087.0, "Ops per procs": 130543874.0, "Ops/sec/procs": 4351063.82, "ns per ops/procs": 229.83}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3286227696.0, "Ops per second": 109531834.45, "ns per ops": 9.13, "Ops per threads": 273852.0, "Ops per procs": 136926154.0, "Ops/sec/procs": 4563826.44, "ns per ops/procs": 219.11}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1329547026.0, "Total blocks": 1329547026.0, "Ops per second": 44275729.84, "ns per ops": 22.59, "Ops per threads": 332386.0, "Ops per procs": 166193378.0, "Ops/sec/procs": 5534466.23, "ns per ops/procs": 180.69}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 702807119.0, "Ops per second": 23425715.1, "ns per ops": 42.69, "Ops per threads": 351403.0, "Ops per procs": 175701779.0, "Ops/sec/procs": 5856428.77, "ns per ops/procs": 170.75}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30038.541847, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9709808606.0, "Total blocks": 9709808296.0, "Ops per second": 323245004.88, "ns per ops": 3.09, "Ops per threads": 134858.0, "Ops per procs": 67429226.0, "Ops/sec/procs": 2244756.98, "ns per ops/procs": 445.48}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3814183120.0, "Ops per second": 127139437.0, "ns per ops": 7.0, "Ops per threads": 158924.0, "Ops per procs": 79462148.0, "Ops/sec/procs": 2648738.0, "ns per ops/procs": 378.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30050.928766, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 290030978.0, "Total blocks": 290030060.0, "Ops per second": 9651314.95, "ns per ops": 103.61, "Ops per threads": 290030.0, "Ops per procs": 145015489.0, "Ops/sec/procs": 4825657.47, "ns per ops/procs": 207.23}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30013.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2527171711.0, "Total blocks": 2527171711.0, "Ops per second": 84200210.62, "ns per ops": 11.88, "Ops per threads": 210597.0, "Ops per procs": 105298821.0, "Ops/sec/procs": 3508342.11, "ns per ops/procs": 285.03}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30013.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3699605635.0, "Ops per second": 123264409.08, "ns per ops": 8.11, "Ops per threads": 154150.0, "Ops per procs": 77075117.0, "Ops/sec/procs": 2568008.52, "ns per ops/procs": 389.41}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167604505.0, "Ops per second": 5586574.53, "ns per ops": 179.0, "Ops per threads": 335209.0, "Ops per procs": 167604505.0, "Ops/sec/procs": 5586574.53, "ns per ops/procs": 179.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.488393, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168348907.0, "Total blocks": 168348411.0, "Ops per second": 5602388.46, "ns per ops": 178.5, "Ops per threads": 336697.0, "Ops per procs": 168348907.0, "Ops/sec/procs": 5602388.46, "ns per ops/procs": 178.5}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30060.462488, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1017833938.0, "Total blocks": 1017829988.0, "Ops per second": 33859556.83, "ns per ops": 29.53, "Ops per threads": 254458.0, "Ops per procs": 127229242.0, "Ops/sec/procs": 4232444.6, "ns per ops/procs": 236.27}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2185186510.0, "Ops per second": 72839550.0, "ns per ops": 13.0, "Ops per threads": 273148.0, "Ops per procs": 136574156.0, "Ops/sec/procs": 4552471.0, "ns per ops/procs": 220.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3833216096.0, "Ops per second": 127773869.0, "ns per ops": 7.0, "Ops per threads": 159717.0, "Ops per procs": 79858668.0, "Ops/sec/procs": 2661955.0, "ns per ops/procs": 376.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3822148650.0, "Ops per second": 127404955.0, "ns per ops": 7.0, "Ops per threads": 159256.0, "Ops per procs": 79628096.0, "Ops/sec/procs": 2654269.0, "ns per ops/procs": 377.0}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30002.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2591075881.0, "Ops per second": 86363018.79, "ns per ops": 11.58, "Ops per threads": 323884.0, "Ops per procs": 161942242.0, "Ops/sec/procs": 5397688.67, "ns per ops/procs": 185.26}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 166692261.0, "Ops per second": 5556165.5, "ns per ops": 179.98, "Ops per threads": 333384.0, "Ops per procs": 166692261.0, "Ops/sec/procs": 5556165.5, "ns per ops/procs": 179.98}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 600419275.0, "Ops per second": 20013975.0, "ns per ops": 50.0, "Ops per threads": 300209.0, "Ops per procs": 150104818.0, "Ops/sec/procs": 5003493.0, "ns per ops/procs": 200.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30054.816601, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 529583229.0, "Total blocks": 529581232.0, "Ops per second": 17620577.63, "ns per ops": 56.75, "Ops per threads": 264791.0, "Ops per procs": 132395807.0, "Ops/sec/procs": 4405144.41, "ns per ops/procs": 227.01}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 319849135.0, "Ops per second": 10661637.0, "ns per ops": 94.0, "Ops per threads": 319849.0, "Ops per procs": 159924567.0, "Ops/sec/procs": 5330818.0, "ns per ops/procs": 188.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30061.272637, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1012566356.0, "Total blocks": 1012562358.0, "Ops per second": 33683416.14, "ns per ops": 29.69, "Ops per threads": 253141.0, "Ops per procs": 126570794.0, "Ops/sec/procs": 4210427.02, "ns per ops/procs": 237.51}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30098.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 602810127.0, "Ops per second": 20093670.0, "ns per ops": 49.0, "Ops per threads": 301405.0, "Ops per procs": 150702531.0, "Ops/sec/procs": 5023417.0, "ns per ops/procs": 199.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 316379578.0, "Ops per second": 10545985.0, "ns per ops": 95.0, "Ops per threads": 316379.0, "Ops per procs": 158189789.0, "Ops/sec/procs": 5272992.0, "ns per ops/procs": 190.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30040.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6444336799.0, "Total blocks": 6444336793.0, "Ops per second": 214522302.68, "ns per ops": 4.66, "Ops per threads": 67128.0, "Ops per procs": 33564254.0, "Ops/sec/procs": 1117303.66, "ns per ops/procs": 895.01}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1162894055.0, "Ops per second": 38763135.0, "ns per ops": 25.0, "Ops per threads": 290723.0, "Ops per procs": 145361756.0, "Ops/sec/procs": 4845391.0, "ns per ops/procs": 207.0}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30032.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6214093700.0, "Ops per second": 206910049.25, "ns per ops": 4.83, "Ops per threads": 172613.0, "Ops per procs": 86306856.0, "Ops/sec/procs": 2873750.68, "ns per ops/procs": 347.98}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 602962318.0, "Ops per second": 20098743.0, "ns per ops": 49.0, "Ops per threads": 301481.0, "Ops per procs": 150740579.0, "Ops/sec/procs": 5024685.0, "ns per ops/procs": 199.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30028.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 353237542.0, "Total blocks": 353237542.0, "Ops per second": 11763311.91, "ns per ops": 85.01, "Ops per threads": 353237.0, "Ops per procs": 176618771.0, "Ops/sec/procs": 5881655.95, "ns per ops/procs": 170.02}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30014.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2640067667.0, "Total blocks": 2640067667.0, "Ops per second": 87959596.51, "ns per ops": 11.37, "Ops per threads": 220005.0, "Ops per procs": 110002819.0, "Ops/sec/procs": 3664983.19, "ns per ops/procs": 272.85}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30004.685456, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5581364330.0, "Total blocks": 5581364254.0, "Ops per second": 186016425.27, "ns per ops": 5.38, "Ops per threads": 155037.0, "Ops per procs": 77518949.0, "Ops/sec/procs": 2583561.46, "ns per ops/procs": 387.06}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30029.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 351581250.0, "Total blocks": 351581250.0, "Ops per second": 11707837.32, "ns per ops": 85.41, "Ops per threads": 351581.0, "Ops per procs": 175790625.0, "Ops/sec/procs": 5853918.66, "ns per ops/procs": 170.83}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30055.039024, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 523899236.0, "Total blocks": 523897235.0, "Ops per second": 17431327.76, "ns per ops": 57.37, "Ops per threads": 261949.0, "Ops per procs": 130974809.0, "Ops/sec/procs": 4357831.94, "ns per ops/procs": 229.47}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 318670202.0, "Ops per second": 10622340.0, "ns per ops": 94.0, "Ops per threads": 318670.0, "Ops per procs": 159335101.0, "Ops/sec/procs": 5311170.0, "ns per ops/procs": 188.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30029.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1315967317.0, "Total blocks": 1315967317.0, "Ops per second": 43823074.87, "ns per ops": 22.82, "Ops per threads": 328991.0, "Ops per procs": 164495914.0, "Ops/sec/procs": 5477884.36, "ns per ops/procs": 182.55}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10795812142.0, "Ops per second": 359860404.0, "ns per ops": 2.0, "Ops per threads": 149941.0, "Ops per procs": 74970917.0, "Ops/sec/procs": 2499030.0, "ns per ops/procs": 400.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162934354.0, "Ops per second": 5431145.0, "ns per ops": 184.0, "Ops per threads": 325868.0, "Ops per procs": 162934354.0, "Ops/sec/procs": 5431145.0, "ns per ops/procs": 184.0}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30058.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2942116755.0, "Ops per second": 97879962.83, "ns per ops": 10.22, "Ops per threads": 245176.0, "Ops per procs": 122588198.0, "Ops/sec/procs": 4078331.78, "ns per ops/procs": 245.2}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30046.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13621778052.0, "Ops per second": 453362362.83, "ns per ops": 2.21, "Ops per threads": 141893.0, "Ops per procs": 70946760.0, "Ops/sec/procs": 2361262.31, "ns per ops/procs": 423.5}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30004.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13218272643.0, "Ops per second": 440609088.0, "ns per ops": 2.0, "Ops per threads": 137690.0, "Ops per procs": 68845170.0, "Ops/sec/procs": 2294839.0, "ns per ops/procs": 435.0}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 704031691.0, "Ops per second": 23466535.17, "ns per ops": 42.61, "Ops per threads": 352015.0, "Ops per procs": 176007922.0, "Ops/sec/procs": 5866633.79, "ns per ops/procs": 170.46}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30055.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5751369493.0, "Total blocks": 5751369493.0, "Ops per second": 191356889.21, "ns per ops": 5.23, "Ops per threads": 79880.0, "Ops per procs": 39940065.0, "Ops/sec/procs": 1328867.29, "ns per ops/procs": 752.52}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30044.493497, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9770566779.0, "Total blocks": 9770566541.0, "Ops per second": 325203244.98, "ns per ops": 3.08, "Ops per threads": 135702.0, "Ops per procs": 67851158.0, "Ops/sec/procs": 2258355.87, "ns per ops/procs": 442.8}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30046.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6398365281.0, "Ops per second": 212946166.44, "ns per ops": 4.7, "Ops per threads": 177732.0, "Ops per procs": 88866184.0, "Ops/sec/procs": 2957585.64, "ns per ops/procs": 338.11}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30052.10256, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 283698502.0, "Total blocks": 283697506.0, "Ops per second": 9440221.41, "ns per ops": 105.93, "Ops per threads": 283698.0, "Ops per procs": 141849251.0, "Ops/sec/procs": 4720110.7, "ns per ops/procs": 211.86}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30040.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4951492723.0, "Total blocks": 4951492723.0, "Ops per second": 164826689.43, "ns per ops": 6.07, "Ops per threads": 137541.0, "Ops per procs": 68770732.0, "Ops/sec/procs": 2289259.58, "ns per ops/procs": 436.82}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3035215396.0, "Ops per second": 101164799.85, "ns per ops": 9.88, "Ops per threads": 252934.0, "Ops per procs": 126467308.0, "Ops/sec/procs": 4215199.99, "ns per ops/procs": 237.24}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30055.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2445385882.0, "Total blocks": 2445385882.0, "Ops per second": 81363323.25, "ns per ops": 12.29, "Ops per threads": 101891.0, "Ops per procs": 50945539.0, "Ops/sec/procs": 1695069.23, "ns per ops/procs": 589.95}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30003.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7283935667.0, "Ops per second": 242797855.0, "ns per ops": 4.0, "Ops per threads": 151748.0, "Ops per procs": 75874329.0, "Ops/sec/procs": 2529144.0, "ns per ops/procs": 395.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 602376624.0, "Ops per second": 20079220.0, "ns per ops": 49.0, "Ops per threads": 301188.0, "Ops per procs": 150594156.0, "Ops/sec/procs": 5019805.0, "ns per ops/procs": 199.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30009.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10528275629.0, "Ops per second": 350942520.0, "ns per ops": 2.0, "Ops per threads": 146226.0, "Ops per procs": 73113025.0, "Ops/sec/procs": 2437100.0, "ns per ops/procs": 410.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30054.761973, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 530882555.0, "Total blocks": 530880555.0, "Ops per second": 17663841.61, "ns per ops": 56.61, "Ops per threads": 265441.0, "Ops per procs": 132720638.0, "Ops/sec/procs": 4415960.4, "ns per ops/procs": 226.45}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 700693363.0, "Ops per second": 23355250.96, "ns per ops": 42.82, "Ops per threads": 350346.0, "Ops per procs": 175173340.0, "Ops/sec/procs": 5838812.74, "ns per ops/procs": 171.27}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30002.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2627819057.0, "Ops per second": 87587819.86, "ns per ops": 11.42, "Ops per threads": 328477.0, "Ops per procs": 164238691.0, "Ops/sec/procs": 5474238.74, "ns per ops/procs": 182.67}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30084.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7300729086.0, "Ops per second": 242672766.94, "ns per ops": 4.12, "Ops per threads": 152098.0, "Ops per procs": 76049261.0, "Ops/sec/procs": 2527841.32, "ns per ops/procs": 395.59}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30049.328008, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6501586465.0, "Total blocks": 6501586268.0, "Ops per second": 216363789.01, "ns per ops": 4.62, "Ops per threads": 135449.0, "Ops per procs": 67724859.0, "Ops/sec/procs": 2253789.47, "ns per ops/procs": 443.7}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1321454550.0, "Total blocks": 1321454550.0, "Ops per second": 44006586.35, "ns per ops": 22.72, "Ops per threads": 330363.0, "Ops per procs": 165181818.0, "Ops/sec/procs": 5500823.29, "ns per ops/procs": 181.79}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30057.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5012200197.0, "Total blocks": 5012200197.0, "Ops per second": 166754043.83, "ns per ops": 6.0, "Ops per threads": 139227.0, "Ops per procs": 69613891.0, "Ops/sec/procs": 2316028.39, "ns per ops/procs": 431.77}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2188338711.0, "Ops per second": 72944623.0, "ns per ops": 13.0, "Ops per threads": 273542.0, "Ops per procs": 136771169.0, "Ops/sec/procs": 4559038.0, "ns per ops/procs": 220.0}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1405401581.0, "Ops per second": 46844235.22, "ns per ops": 21.35, "Ops per threads": 351350.0, "Ops per procs": 175675197.0, "Ops/sec/procs": 5855529.4, "ns per ops/procs": 170.78}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30022.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4400904572.0, "Total blocks": 4400904572.0, "Ops per second": 146586397.82, "ns per ops": 6.82, "Ops per threads": 91685.0, "Ops per procs": 45842755.0, "Ops/sec/procs": 1526941.64, "ns per ops/procs": 654.9}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162958519.0, "Ops per second": 5431950.0, "ns per ops": 184.0, "Ops per threads": 325917.0, "Ops per procs": 162958519.0, "Ops/sec/procs": 5431950.0, "ns per ops/procs": 184.0}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 32083.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10899687282.0, "Ops per second": 339728321.39, "ns per ops": 2.94, "Ops per threads": 151384.0, "Ops per procs": 75692272.0, "Ops/sec/procs": 2359224.45, "ns per ops/procs": 423.87}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30056.812452, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6577750139.0, "Total blocks": 6577750008.0, "Ops per second": 218843902.68, "ns per ops": 4.57, "Ops per threads": 137036.0, "Ops per procs": 68518230.0, "Ops/sec/procs": 2279623.99, "ns per ops/procs": 438.67}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30055.611042, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 533971853.0, "Total blocks": 533969853.0, "Ops per second": 17766128.67, "ns per ops": 56.29, "Ops per threads": 266985.0, "Ops per procs": 133492963.0, "Ops/sec/procs": 4441532.17, "ns per ops/procs": 225.15}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30002.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2626147945.0, "Ops per second": 87532310.63, "ns per ops": 11.42, "Ops per threads": 328268.0, "Ops per procs": 164134246.0, "Ops/sec/procs": 5470769.41, "ns per ops/procs": 182.79}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1164365199.0, "Ops per second": 38812173.0, "ns per ops": 25.0, "Ops per threads": 291091.0, "Ops per procs": 145545649.0, "Ops/sec/procs": 4851521.0, "ns per ops/procs": 206.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30000.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7102823282.0, "Ops per second": 236760776.0, "ns per ops": 4.0, "Ops per threads": 147975.0, "Ops per procs": 73987742.0, "Ops/sec/procs": 2466258.0, "ns per ops/procs": 405.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30061.527123, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 997218811.0, "Total blocks": 997214815.0, "Ops per second": 33172593.23, "ns per ops": 30.15, "Ops per threads": 249304.0, "Ops per procs": 124652351.0, "Ops/sec/procs": 4146574.15, "ns per ops/procs": 241.16}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30083.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6548798732.0, "Ops per second": 217690867.72, "ns per ops": 4.59, "Ops per threads": 181911.0, "Ops per procs": 90955537.0, "Ops/sec/procs": 3023484.27, "ns per ops/procs": 330.74}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30051.378248, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 292112360.0, "Total blocks": 292111364.0, "Ops per second": 9720431.38, "ns per ops": 102.88, "Ops per threads": 292112.0, "Ops per procs": 146056180.0, "Ops/sec/procs": 4860215.69, "ns per ops/procs": 205.75}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30035.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 701364876.0, "Total blocks": 701364876.0, "Ops per second": 23350970.91, "ns per ops": 42.82, "Ops per threads": 350682.0, "Ops per procs": 175341219.0, "Ops/sec/procs": 5837742.73, "ns per ops/procs": 171.3}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30054.129142, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 514621514.0, "Total blocks": 514619516.0, "Ops per second": 17123155.08, "ns per ops": 58.4, "Ops per threads": 257310.0, "Ops per procs": 128655378.0, "Ops/sec/procs": 4280788.77, "ns per ops/procs": 233.6}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30100.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13279227523.0, "Ops per second": 442640917.0, "ns per ops": 2.0, "Ops per threads": 138325.0, "Ops per procs": 69162643.0, "Ops/sec/procs": 2305421.0, "ns per ops/procs": 435.0}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 324306.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4150567351.0, "Ops per second": 12798289.07, "ns per ops": 78.14, "Ops per threads": 4150567.0, "Ops per procs": 2075283675.0, "Ops/sec/procs": 6399144.54, "ns per ops/procs": 156.27}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30054.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4533527594.0, "Total blocks": 4533527594.0, "Ops per second": 150844172.17, "ns per ops": 6.63, "Ops per threads": 94448.0, "Ops per procs": 47224245.0, "Ops/sec/procs": 1571293.46, "ns per ops/procs": 636.42}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30018.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3711246581.0, "Ops per second": 123633209.05, "ns per ops": 8.09, "Ops per threads": 154635.0, "Ops per procs": 77317637.0, "Ops/sec/procs": 2575691.86, "ns per ops/procs": 388.25}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167479925.0, "Ops per second": 5582422.19, "ns per ops": 179.13, "Ops per threads": 334959.0, "Ops per procs": 167479925.0, "Ops/sec/procs": 5582422.19, "ns per ops/procs": 179.13}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30028.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 352635483.0, "Total blocks": 352635483.0, "Ops per second": 11743254.12, "ns per ops": 85.16, "Ops per threads": 352635.0, "Ops per procs": 176317741.0, "Ops/sec/procs": 5871627.06, "ns per ops/procs": 170.31}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2865617974.0, "Ops per second": 95520599.0, "ns per ops": 10.0, "Ops per threads": 238801.0, "Ops per procs": 119400748.0, "Ops/sec/procs": 3980024.0, "ns per ops/procs": 252.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30040.592624, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6515729134.0, "Total blocks": 6515728907.0, "Ops per second": 216897489.86, "ns per ops": 4.61, "Ops per threads": 135744.0, "Ops per procs": 67872178.0, "Ops/sec/procs": 2259348.85, "ns per ops/procs": 442.61}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30060.990401, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13016103987.0, "Total blocks": 13016103780.0, "Ops per second": 432989858.73, "ns per ops": 2.31, "Ops per threads": 135584.0, "Ops per procs": 67792208.0, "Ops/sec/procs": 2255155.51, "ns per ops/procs": 443.43}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30052.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6317790364.0, "Total blocks": 6317790364.0, "Ops per second": 210225563.95, "ns per ops": 4.76, "Ops per threads": 65810.0, "Ops per procs": 32905158.0, "Ops/sec/procs": 1094924.81, "ns per ops/procs": 913.3}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30000.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10938742925.0, "Ops per second": 364624764.0, "ns per ops": 2.0, "Ops per threads": 151926.0, "Ops per procs": 75963492.0, "Ops/sec/procs": 2532116.0, "ns per ops/procs": 394.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30060.560369, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1018873355.0, "Total blocks": 1018869353.0, "Ops per second": 33894024.01, "ns per ops": 29.5, "Ops per threads": 254718.0, "Ops per procs": 127359169.0, "Ops/sec/procs": 4236753.0, "ns per ops/procs": 236.03}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 708319683.0, "Total blocks": 708319683.0, "Ops per second": 23587620.64, "ns per ops": 42.4, "Ops per threads": 354159.0, "Ops per procs": 177079920.0, "Ops/sec/procs": 5896905.16, "ns per ops/procs": 169.58}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 316573606.0, "Ops per second": 10552453.0, "ns per ops": 95.0, "Ops per threads": 316573.0, "Ops per procs": 158286803.0, "Ops/sec/procs": 5276226.0, "ns per ops/procs": 190.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30098.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 602220084.0, "Ops per second": 20074002.0, "ns per ops": 49.0, "Ops per threads": 301110.0, "Ops per procs": 150555021.0, "Ops/sec/procs": 5018500.0, "ns per ops/procs": 199.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2460453768.0, "Total blocks": 2460453768.0, "Ops per second": 81985777.35, "ns per ops": 12.2, "Ops per threads": 102518.0, "Ops per procs": 51259453.0, "Ops/sec/procs": 1708037.03, "ns per ops/procs": 585.47}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30022.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4937532932.0, "Total blocks": 4937532932.0, "Ops per second": 164460370.44, "ns per ops": 6.08, "Ops per threads": 137153.0, "Ops per procs": 68576846.0, "Ops/sec/procs": 2284171.81, "ns per ops/procs": 437.8}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 200596890.0, "Total blocks": 200596390.0, "Ops per second": 6680606.62, "ns per ops": 149.69, "Ops per threads": 401193.0, "Ops per procs": 200596890.0, "Ops/sec/procs": 6680606.62, "ns per ops/procs": 149.69}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13859985622.0, "Ops per second": 460498918.88, "ns per ops": 2.17, "Ops per threads": 144374.0, "Ops per procs": 72187425.0, "Ops/sec/procs": 2398431.87, "ns per ops/procs": 416.94}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 81659.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1019009697.0, "Ops per second": 12478729.93, "ns per ops": 80.14, "Ops per threads": 1019009.0, "Ops per procs": 509504848.0, "Ops/sec/procs": 6239364.97, "ns per ops/procs": 160.27}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3859141148.0, "Ops per second": 128638038.0, "ns per ops": 7.0, "Ops per threads": 160797.0, "Ops per procs": 80398773.0, "Ops/sec/procs": 2679959.0, "ns per ops/procs": 374.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30056.054643, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3373562972.0, "Total blocks": 3373562895.0, "Ops per second": 112242375.52, "ns per ops": 8.91, "Ops per threads": 140565.0, "Ops per procs": 70282561.0, "Ops/sec/procs": 2338382.82, "ns per ops/procs": 427.65}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 602471809.0, "Ops per second": 20082393.0, "ns per ops": 49.0, "Ops per threads": 301235.0, "Ops per procs": 150617952.0, "Ops/sec/procs": 5020598.0, "ns per ops/procs": 199.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30015.17606, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5710330516.0, "Total blocks": 5710330511.0, "Ops per second": 190248109.98, "ns per ops": 5.26, "Ops per threads": 158620.0, "Ops per procs": 79310146.0, "Ops/sec/procs": 2642334.86, "ns per ops/procs": 378.45}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30015.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2539004964.0, "Total blocks": 2539004964.0, "Ops per second": 84591018.45, "ns per ops": 11.82, "Ops per threads": 211583.0, "Ops per procs": 105791873.0, "Ops/sec/procs": 3524625.77, "ns per ops/procs": 283.72}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30025.490404, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2354443301.0, "Total blocks": 2354443285.0, "Ops per second": 78414815.86, "ns per ops": 12.75, "Ops per threads": 196203.0, "Ops per procs": 98101804.0, "Ops/sec/procs": 3267283.99, "ns per ops/procs": 306.06}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 355087843.0, "Ops per second": 11835688.67, "ns per ops": 84.49, "Ops per threads": 355087.0, "Ops per procs": 177543921.0, "Ops/sec/procs": 5917844.33, "ns per ops/procs": 168.98}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30045.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2457229746.0, "Total blocks": 2457229746.0, "Ops per second": 81784854.13, "ns per ops": 12.23, "Ops per threads": 102384.0, "Ops per procs": 51192286.0, "Ops/sec/procs": 1703851.13, "ns per ops/procs": 586.91}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30098.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2845935993.0, "Ops per second": 94864533.0, "ns per ops": 10.0, "Ops per threads": 237161.0, "Ops per procs": 118580666.0, "Ops/sec/procs": 3952688.0, "ns per ops/procs": 253.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 696535547.0, "Total blocks": 696535547.0, "Ops per second": 23195027.08, "ns per ops": 43.11, "Ops per threads": 348267.0, "Ops per procs": 174133886.0, "Ops/sec/procs": 5798756.77, "ns per ops/procs": 172.45}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2853970548.0, "Ops per second": 95132351.0, "ns per ops": 10.0, "Ops per threads": 237830.0, "Ops per procs": 118915439.0, "Ops/sec/procs": 3963847.0, "ns per ops/procs": 253.0}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30002.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2607141383.0, "Ops per second": 86898508.22, "ns per ops": 11.51, "Ops per threads": 325892.0, "Ops per procs": 162946336.0, "Ops/sec/procs": 5431156.76, "ns per ops/procs": 184.12}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3331115712.0, "Ops per second": 110673121.1, "ns per ops": 9.04, "Ops per threads": 138796.0, "Ops per procs": 69398244.0, "Ops/sec/procs": 2305690.02, "ns per ops/procs": 433.71}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30076.54792, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1835537345.0, "Total blocks": 1835529347.0, "Ops per second": 61028857.1, "ns per ops": 16.39, "Ops per threads": 229442.0, "Ops per procs": 114721084.0, "Ops/sec/procs": 3814303.57, "ns per ops/procs": 262.17}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30036.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2101382479.0, "Total blocks": 2101382479.0, "Ops per second": 69961308.83, "ns per ops": 14.29, "Ops per threads": 262672.0, "Ops per procs": 131336404.0, "Ops/sec/procs": 4372581.8, "ns per ops/procs": 228.7}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30100.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10808842016.0, "Ops per second": 360294733.0, "ns per ops": 2.0, "Ops per threads": 150122.0, "Ops per procs": 75061402.0, "Ops/sec/procs": 2502046.0, "ns per ops/procs": 401.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3834011076.0, "Ops per second": 127800369.0, "ns per ops": 7.0, "Ops per threads": 159750.0, "Ops per procs": 79875230.0, "Ops/sec/procs": 2662507.0, "ns per ops/procs": 376.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30029.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 352552436.0, "Total blocks": 352552436.0, "Ops per second": 11740372.51, "ns per ops": 85.18, "Ops per threads": 352552.0, "Ops per procs": 176276218.0, "Ops/sec/procs": 5870186.25, "ns per ops/procs": 170.35}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30025.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4391389950.0, "Total blocks": 4391389950.0, "Ops per second": 146255292.71, "ns per ops": 6.84, "Ops per threads": 91487.0, "Ops per procs": 45743645.0, "Ops/sec/procs": 1523492.63, "ns per ops/procs": 656.39}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167959859.0, "Ops per second": 5598414.22, "ns per ops": 178.62, "Ops per threads": 335919.0, "Ops per procs": 167959859.0, "Ops/sec/procs": 5598414.22, "ns per ops/procs": 178.62}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2203153647.0, "Ops per second": 73438454.0, "ns per ops": 13.0, "Ops per threads": 275394.0, "Ops per procs": 137697102.0, "Ops/sec/procs": 4589903.0, "ns per ops/procs": 218.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30099.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7320614794.0, "Ops per second": 244020493.0, "ns per ops": 4.0, "Ops per threads": 152512.0, "Ops per procs": 76256404.0, "Ops/sec/procs": 2541880.0, "ns per ops/procs": 394.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30055.607851, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 530569936.0, "Total blocks": 530567940.0, "Ops per second": 17652943.13, "ns per ops": 56.65, "Ops per threads": 265284.0, "Ops per procs": 132642484.0, "Ops/sec/procs": 4413235.78, "ns per ops/procs": 226.59}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 683757823.0, "Total blocks": 683757823.0, "Ops per second": 22769367.84, "ns per ops": 43.92, "Ops per threads": 341878.0, "Ops per procs": 170939455.0, "Ops/sec/procs": 5692341.96, "ns per ops/procs": 175.67}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3292272448.0, "Ops per second": 109732994.14, "ns per ops": 9.11, "Ops per threads": 274356.0, "Ops per procs": 137178018.0, "Ops/sec/procs": 4572208.09, "ns per ops/procs": 218.71}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 31401.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6718818943.0, "Ops per second": 213966422.84, "ns per ops": 4.67, "Ops per threads": 139975.0, "Ops per procs": 69987697.0, "Ops/sec/procs": 2228816.9, "ns per ops/procs": 448.67}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30086.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6045581117.0, "Total blocks": 6045581117.0, "Ops per second": 200941139.7, "ns per ops": 4.98, "Ops per threads": 62974.0, "Ops per procs": 31487401.0, "Ops/sec/procs": 1046568.44, "ns per ops/procs": 955.5}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30099.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6375101101.0, "Ops per second": 212503370.0, "ns per ops": 4.0, "Ops per threads": 177086.0, "Ops per procs": 88543070.0, "Ops/sec/procs": 2951435.0, "ns per ops/procs": 339.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30078.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6069021647.0, "Total blocks": 6069021647.0, "Ops per second": 201774969.45, "ns per ops": 4.96, "Ops per threads": 63218.0, "Ops per procs": 31609487.0, "Ops/sec/procs": 1050911.3, "ns per ops/procs": 951.56}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7185116829.0, "Ops per second": 239503894.0, "ns per ops": 4.0, "Ops per threads": 149689.0, "Ops per procs": 74844966.0, "Ops/sec/procs": 2494832.0, "ns per ops/procs": 402.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162872662.0, "Ops per second": 5429088.0, "ns per ops": 184.0, "Ops per threads": 325745.0, "Ops per procs": 162872662.0, "Ops/sec/procs": 5429088.0, "ns per ops/procs": 184.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30030.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7216365837.0, "Ops per second": 240545527.0, "ns per ops": 4.0, "Ops per threads": 150340.0, "Ops per procs": 75170477.0, "Ops/sec/procs": 2505682.0, "ns per ops/procs": 399.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30074.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6094072585.0, "Total blocks": 6094072583.0, "Ops per second": 202635033.57, "ns per ops": 4.93, "Ops per threads": 63479.0, "Ops per procs": 31739961.0, "Ops/sec/procs": 1055390.8, "ns per ops/procs": 947.52}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30023.883446, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2404404871.0, "Total blocks": 2404404868.0, "Ops per second": 80083073.71, "ns per ops": 12.49, "Ops per threads": 200367.0, "Ops per procs": 100183536.0, "Ops/sec/procs": 3336794.74, "ns per ops/procs": 299.69}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3285017145.0, "Ops per second": 109491418.52, "ns per ops": 9.13, "Ops per threads": 273751.0, "Ops per procs": 136875714.0, "Ops/sec/procs": 4562142.44, "ns per ops/procs": 219.2}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30030.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3590986293.0, "Ops per second": 119579775.25, "ns per ops": 8.36, "Ops per threads": 149624.0, "Ops per procs": 74812214.0, "Ops/sec/procs": 2491245.32, "ns per ops/procs": 401.41}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30040.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6869779534.0, "Ops per second": 228687607.27, "ns per ops": 4.37, "Ops per threads": 143120.0, "Ops per procs": 71560203.0, "Ops/sec/procs": 2382162.58, "ns per ops/procs": 419.79}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30073.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5991883266.0, "Total blocks": 5991883265.0, "Ops per second": 199237992.92, "ns per ops": 5.02, "Ops per threads": 83220.0, "Ops per procs": 41610300.0, "Ops/sec/procs": 1383597.17, "ns per ops/procs": 722.75}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30041.752317, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6580396238.0, "Total blocks": 6580396054.0, "Ops per second": 219041691.33, "ns per ops": 4.57, "Ops per threads": 137091.0, "Ops per procs": 68545794.0, "Ops/sec/procs": 2281684.28, "ns per ops/procs": 438.27}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30050.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5500673819.0, "Total blocks": 5500673818.0, "Ops per second": 183046382.55, "ns per ops": 5.46, "Ops per threads": 76398.0, "Ops per procs": 38199123.0, "Ops/sec/procs": 1271155.43, "ns per ops/procs": 786.69}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30064.868972, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5724760259.0, "Total blocks": 5724760245.0, "Ops per second": 190413610.79, "ns per ops": 5.25, "Ops per threads": 159021.0, "Ops per procs": 79510559.0, "Ops/sec/procs": 2644633.48, "ns per ops/procs": 378.12}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30076.640051, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1759539774.0, "Total blocks": 1759531770.0, "Ops per second": 58501872.92, "ns per ops": 17.09, "Ops per threads": 219942.0, "Ops per procs": 109971235.0, "Ops/sec/procs": 3656367.06, "ns per ops/procs": 273.5}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30026.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2497408441.0, "Total blocks": 2497408441.0, "Ops per second": 83172322.77, "ns per ops": 12.02, "Ops per threads": 104058.0, "Ops per procs": 52029342.0, "Ops/sec/procs": 1732756.72, "ns per ops/procs": 577.12}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30051.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7020228636.0, "Ops per second": 233605045.39, "ns per ops": 4.28, "Ops per threads": 146254.0, "Ops per procs": 73127381.0, "Ops/sec/procs": 2433385.89, "ns per ops/procs": 410.95}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7315408574.0, "Ops per second": 243846952.0, "ns per ops": 4.0, "Ops per threads": 152404.0, "Ops per procs": 76202172.0, "Ops/sec/procs": 2540072.0, "ns per ops/procs": 394.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30035.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2082663119.0, "Total blocks": 2082663119.0, "Ops per second": 69339249.56, "ns per ops": 14.42, "Ops per threads": 260332.0, "Ops per procs": 130166444.0, "Ops/sec/procs": 4333703.1, "ns per ops/procs": 230.75}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30083.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5773367798.0, "Total blocks": 5773367798.0, "Ops per second": 191913128.63, "ns per ops": 5.21, "Ops per threads": 80185.0, "Ops per procs": 40092831.0, "Ops/sec/procs": 1332730.06, "ns per ops/procs": 750.34}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 201948978.0, "Total blocks": 201948478.0, "Ops per second": 6725681.72, "ns per ops": 148.68, "Ops per threads": 403897.0, "Ops per procs": 201948978.0, "Ops/sec/procs": 6725681.72, "ns per ops/procs": 148.68}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 684621218.0, "Total blocks": 684621218.0, "Ops per second": 22798182.76, "ns per ops": 43.86, "Ops per threads": 342310.0, "Ops per procs": 171155304.0, "Ops/sec/procs": 5699545.69, "ns per ops/procs": 175.45}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30059.133885, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1025262407.0, "Total blocks": 1025258406.0, "Ops per second": 34108181.92, "ns per ops": 29.32, "Ops per threads": 256315.0, "Ops per procs": 128157800.0, "Ops/sec/procs": 4263522.74, "ns per ops/procs": 234.55}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30055.341133, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6618887114.0, "Total blocks": 6618887005.0, "Ops per second": 220223323.53, "ns per ops": 4.54, "Ops per threads": 137893.0, "Ops per procs": 68946740.0, "Ops/sec/procs": 2293992.95, "ns per ops/procs": 435.92}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6375335905.0, "Ops per second": 212511196.0, "ns per ops": 4.0, "Ops per threads": 177092.0, "Ops per procs": 88546332.0, "Ops/sec/procs": 2951544.0, "ns per ops/procs": 339.0}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30012.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10963592935.0, "Ops per second": 365306382.96, "ns per ops": 2.74, "Ops per threads": 152272.0, "Ops per procs": 76136062.0, "Ops/sec/procs": 2536849.88, "ns per ops/procs": 394.19}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1163769955.0, "Ops per second": 38792331.0, "ns per ops": 25.0, "Ops per threads": 290942.0, "Ops per procs": 145471244.0, "Ops/sec/procs": 4849041.0, "ns per ops/procs": 206.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2202976274.0, "Ops per second": 73432542.0, "ns per ops": 13.0, "Ops per threads": 275372.0, "Ops per procs": 137686017.0, "Ops/sec/procs": 4589533.0, "ns per ops/procs": 218.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2891952247.0, "Ops per second": 96398408.0, "ns per ops": 10.0, "Ops per threads": 240996.0, "Ops per procs": 120498010.0, "Ops/sec/procs": 4016600.0, "ns per ops/procs": 249.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30006.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4393943848.0, "Total blocks": 4393943848.0, "Ops per second": 146434442.47, "ns per ops": 6.83, "Ops per threads": 91540.0, "Ops per procs": 45770248.0, "Ops/sec/procs": 1525358.78, "ns per ops/procs": 655.58}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30054.768744, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 533270498.0, "Total blocks": 533268502.0, "Ops per second": 17743290.68, "ns per ops": 56.36, "Ops per threads": 266635.0, "Ops per procs": 133317624.0, "Ops/sec/procs": 4435822.67, "ns per ops/procs": 225.44}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30055.035673, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 524241659.0, "Total blocks": 524239663.0, "Ops per second": 17442722.9, "ns per ops": 57.33, "Ops per threads": 262120.0, "Ops per procs": 131060414.0, "Ops/sec/procs": 4360680.73, "ns per ops/procs": 229.32}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2179747484.0, "Ops per second": 72658249.0, "ns per ops": 13.0, "Ops per threads": 272468.0, "Ops per procs": 136234217.0, "Ops/sec/procs": 4541140.0, "ns per ops/procs": 220.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.65121, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168543998.0, "Total blocks": 168543502.0, "Ops per second": 5608850.39, "ns per ops": 178.29, "Ops per threads": 337087.0, "Ops per procs": 168543998.0, "Ops/sec/procs": 5608850.39, "ns per ops/procs": 178.29}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30099.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6380968211.0, "Ops per second": 212698940.0, "ns per ops": 4.0, "Ops per threads": 177249.0, "Ops per procs": 88624558.0, "Ops/sec/procs": 2954151.0, "ns per ops/procs": 339.0}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 704033440.0, "Ops per second": 23466560.73, "ns per ops": 42.61, "Ops per threads": 352016.0, "Ops per procs": 176008360.0, "Ops/sec/procs": 5866640.18, "ns per ops/procs": 170.46}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30039.173331, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9756169595.0, "Total blocks": 9756169348.0, "Ops per second": 324781560.65, "ns per ops": 3.08, "Ops per threads": 135502.0, "Ops per procs": 67751177.0, "Ops/sec/procs": 2255427.5, "ns per ops/procs": 443.37}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7297122281.0, "Ops per second": 243237409.0, "ns per ops": 4.0, "Ops per threads": 152023.0, "Ops per procs": 76011690.0, "Ops/sec/procs": 2533723.0, "ns per ops/procs": 394.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 318579834.0, "Ops per second": 10619327.0, "ns per ops": 94.0, "Ops per threads": 318579.0, "Ops per procs": 159289917.0, "Ops/sec/procs": 5309663.0, "ns per ops/procs": 188.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30060.524651, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3380384357.0, "Total blocks": 3380384239.0, "Ops per second": 112452606.74, "ns per ops": 8.89, "Ops per threads": 140849.0, "Ops per procs": 70424674.0, "Ops/sec/procs": 2342762.64, "ns per ops/procs": 426.85}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30017.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2089082984.0, "Total blocks": 2089082984.0, "Ops per second": 69595812.35, "ns per ops": 14.37, "Ops per threads": 261135.0, "Ops per procs": 130567686.0, "Ops/sec/procs": 4349738.27, "ns per ops/procs": 229.9}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30044.549304, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3375058539.0, "Total blocks": 3375058498.0, "Ops per second": 112335136.23, "ns per ops": 8.9, "Ops per threads": 140627.0, "Ops per procs": 70313719.0, "Ops/sec/procs": 2340315.34, "ns per ops/procs": 427.29}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30063.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5971994246.0, "Total blocks": 5971994246.0, "Ops per second": 198645955.34, "ns per ops": 5.03, "Ops per threads": 82944.0, "Ops per procs": 41472182.0, "Ops/sec/procs": 1379485.8, "ns per ops/procs": 724.91}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.856024, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168142195.0, "Total blocks": 168141695.0, "Ops per second": 5595440.95, "ns per ops": 178.72, "Ops per threads": 336284.0, "Ops per procs": 168142195.0, "Ops/sec/procs": 5595440.95, "ns per ops/procs": 178.72}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30098.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5835568591.0, "Total blocks": 5835568591.0, "Ops per second": 193884861.96, "ns per ops": 5.16, "Ops per threads": 81049.0, "Ops per procs": 40524781.0, "Ops/sec/procs": 1346422.65, "ns per ops/procs": 742.71}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30072.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2121398456.0, "Total blocks": 2121398456.0, "Ops per second": 70543766.29, "ns per ops": 14.18, "Ops per threads": 265174.0, "Ops per procs": 132587403.0, "Ops/sec/procs": 4408985.39, "ns per ops/procs": 226.81}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30098.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2851087315.0, "Ops per second": 95036243.0, "ns per ops": 10.0, "Ops per threads": 237590.0, "Ops per procs": 118795304.0, "Ops/sec/procs": 3959843.0, "ns per ops/procs": 253.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30015.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2479454848.0, "Total blocks": 2479454848.0, "Ops per second": 82605600.18, "ns per ops": 12.11, "Ops per threads": 206621.0, "Ops per procs": 103310618.0, "Ops/sec/procs": 3441900.01, "ns per ops/procs": 290.54}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30096.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6241666797.0, "Total blocks": 6241666797.0, "Ops per second": 207389035.14, "ns per ops": 4.82, "Ops per threads": 65017.0, "Ops per procs": 32508681.0, "Ops/sec/procs": 1080151.22, "ns per ops/procs": 925.8}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30099.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162556374.0, "Ops per second": 5418545.0, "ns per ops": 185.0, "Ops per threads": 325112.0, "Ops per procs": 162556374.0, "Ops/sec/procs": 5418545.0, "ns per ops/procs": 185.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30034.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 358991507.0, "Total blocks": 358991507.0, "Ops per second": 11952499.07, "ns per ops": 83.66, "Ops per threads": 358991.0, "Ops per procs": 179495753.0, "Ops/sec/procs": 5976249.54, "ns per ops/procs": 167.33}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30002.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2628022520.0, "Ops per second": 87594610.04, "ns per ops": 11.42, "Ops per threads": 328502.0, "Ops per procs": 164251407.0, "Ops/sec/procs": 5474663.13, "ns per ops/procs": 182.66}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30093.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13734345415.0, "Ops per second": 456382239.92, "ns per ops": 2.19, "Ops per threads": 143066.0, "Ops per procs": 71533049.0, "Ops/sec/procs": 2376990.83, "ns per ops/procs": 420.7}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30050.219603, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6634906045.0, "Total blocks": 6634905944.0, "Ops per second": 220793928.72, "ns per ops": 4.53, "Ops per threads": 138227.0, "Ops per procs": 69113604.0, "Ops/sec/procs": 2299936.76, "ns per ops/procs": 434.79}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6314944375.0, "Ops per second": 210498145.0, "ns per ops": 4.0, "Ops per threads": 175415.0, "Ops per procs": 87707560.0, "Ops/sec/procs": 2923585.0, "ns per ops/procs": 343.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30026.782128, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5688566975.0, "Total blocks": 5688566942.0, "Ops per second": 189449770.23, "ns per ops": 5.28, "Ops per threads": 158015.0, "Ops per procs": 79007874.0, "Ops/sec/procs": 2631246.81, "ns per ops/procs": 380.05}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30099.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10980103320.0, "Ops per second": 366003444.0, "ns per ops": 2.0, "Ops per threads": 152501.0, "Ops per procs": 76250717.0, "Ops/sec/procs": 2541690.0, "ns per ops/procs": 394.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2201664152.0, "Ops per second": 73388805.0, "ns per ops": 13.0, "Ops per threads": 275208.0, "Ops per procs": 137604009.0, "Ops/sec/procs": 4586800.0, "ns per ops/procs": 218.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162863824.0, "Ops per second": 5428794.0, "ns per ops": 184.0, "Ops per threads": 325727.0, "Ops per procs": 162863824.0, "Ops/sec/procs": 5428794.0, "ns per ops/procs": 184.0}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30081.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6255848694.0, "Ops per second": 207966524.57, "ns per ops": 4.81, "Ops per threads": 173773.0, "Ops per procs": 86886787.0, "Ops/sec/procs": 2888423.95, "ns per ops/procs": 346.21}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 356801447.0, "Ops per second": 11892794.64, "ns per ops": 84.08, "Ops per threads": 356801.0, "Ops per procs": 178400723.0, "Ops/sec/procs": 5946397.32, "ns per ops/procs": 168.17}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30027.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 201903615.0, "Total blocks": 201903115.0, "Ops per second": 6723987.52, "ns per ops": 148.72, "Ops per threads": 403807.0, "Ops per procs": 201903615.0, "Ops/sec/procs": 6723987.52, "ns per ops/procs": 148.72}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30054.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6208915558.0, "Ops per second": 206587888.52, "ns per ops": 4.84, "Ops per threads": 172469.0, "Ops per procs": 86234938.0, "Ops/sec/procs": 2869276.23, "ns per ops/procs": 348.52}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2184516172.0, "Ops per second": 72817205.0, "ns per ops": 13.0, "Ops per threads": 273064.0, "Ops per procs": 136532260.0, "Ops/sec/procs": 4551075.0, "ns per ops/procs": 220.0}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30057.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10411868355.0, "Ops per second": 346400935.87, "ns per ops": 2.89, "Ops per threads": 144609.0, "Ops per procs": 72304641.0, "Ops/sec/procs": 2405562.05, "ns per ops/procs": 415.7}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30050.850096, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6573813943.0, "Total blocks": 6573813815.0, "Ops per second": 218756338.74, "ns per ops": 4.57, "Ops per threads": 136954.0, "Ops per procs": 68477228.0, "Ops/sec/procs": 2278711.86, "ns per ops/procs": 438.84}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30099.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7347056809.0, "Ops per second": 244901893.0, "ns per ops": 4.0, "Ops per threads": 153063.0, "Ops per procs": 76531841.0, "Ops/sec/procs": 2551061.0, "ns per ops/procs": 393.0}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30023.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 11064997748.0, "Ops per second": 368543220.33, "ns per ops": 2.71, "Ops per threads": 153680.0, "Ops per procs": 76840262.0, "Ops/sec/procs": 2559327.92, "ns per ops/procs": 390.73}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30046.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6593776143.0, "Ops per second": 219450974.94, "ns per ops": 4.56, "Ops per threads": 183160.0, "Ops per procs": 91580224.0, "Ops/sec/procs": 3047930.21, "ns per ops/procs": 328.09}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 694114155.0, "Total blocks": 694114155.0, "Ops per second": 23114240.52, "ns per ops": 43.26, "Ops per threads": 347057.0, "Ops per procs": 173528538.0, "Ops/sec/procs": 5778560.13, "ns per ops/procs": 173.05}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 32779.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15723303077.0, "Ops per second": 479661682.64, "ns per ops": 2.08, "Ops per threads": 163784.0, "Ops per procs": 81892203.0, "Ops/sec/procs": 2498237.93, "ns per ops/procs": 400.28}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 32349.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2853844897.0, "Ops per second": 88218231.97, "ns per ops": 11.34, "Ops per threads": 356730.0, "Ops per procs": 178365306.0, "Ops/sec/procs": 5513639.5, "ns per ops/procs": 181.37}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1160971160.0, "Ops per second": 38699038.0, "ns per ops": 25.0, "Ops per threads": 290242.0, "Ops per procs": 145121395.0, "Ops/sec/procs": 4837379.0, "ns per ops/procs": 207.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30051.264947, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 285399787.0, "Total blocks": 285398791.0, "Ops per second": 9497097.29, "ns per ops": 105.3, "Ops per threads": 285399.0, "Ops per procs": 142699893.0, "Ops/sec/procs": 4748548.65, "ns per ops/procs": 210.59}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30098.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2853005520.0, "Ops per second": 95100184.0, "ns per ops": 10.0, "Ops per threads": 237750.0, "Ops per procs": 118875230.0, "Ops/sec/procs": 3962507.0, "ns per ops/procs": 253.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30024.552076, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2308019453.0, "Total blocks": 2308019446.0, "Ops per second": 76871070.29, "ns per ops": 13.01, "Ops per threads": 192334.0, "Ops per procs": 96167477.0, "Ops/sec/procs": 3202961.26, "ns per ops/procs": 312.21}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30053.723813, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3358611037.0, "Total blocks": 3358610970.0, "Ops per second": 111753573.63, "ns per ops": 8.95, "Ops per threads": 139942.0, "Ops per procs": 69971063.0, "Ops/sec/procs": 2328199.45, "ns per ops/procs": 429.52}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30061.64649, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3353708656.0, "Total blocks": 3353708548.0, "Ops per second": 111561043.64, "ns per ops": 8.96, "Ops per threads": 139737.0, "Ops per procs": 69868930.0, "Ops/sec/procs": 2324188.41, "ns per ops/procs": 430.26}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30035.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2104529879.0, "Total blocks": 2104529879.0, "Ops per second": 70067431.14, "ns per ops": 14.27, "Ops per threads": 263066.0, "Ops per procs": 131533117.0, "Ops/sec/procs": 4379214.45, "ns per ops/procs": 228.35}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30031.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3354382967.0, "Ops per second": 111695300.31, "ns per ops": 8.95, "Ops per threads": 279531.0, "Ops per procs": 139765956.0, "Ops/sec/procs": 4653970.85, "ns per ops/procs": 214.87}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30034.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4499701734.0, "Total blocks": 4499701734.0, "Ops per second": 149816406.73, "ns per ops": 6.67, "Ops per threads": 93743.0, "Ops per procs": 46871893.0, "Ops/sec/procs": 1560587.57, "ns per ops/procs": 640.78}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1165881936.0, "Ops per second": 38862731.0, "ns per ops": 25.0, "Ops per threads": 291470.0, "Ops per procs": 145735242.0, "Ops/sec/procs": 4857841.0, "ns per ops/procs": 206.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30051.141318, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6542053719.0, "Total blocks": 6542053577.0, "Ops per second": 217697346.33, "ns per ops": 4.59, "Ops per threads": 136292.0, "Ops per procs": 68146392.0, "Ops/sec/procs": 2267680.69, "ns per ops/procs": 440.98}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30044.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6020202795.0, "Total blocks": 6020202795.0, "Ops per second": 200376264.98, "ns per ops": 4.99, "Ops per threads": 62710.0, "Ops per procs": 31355222.0, "Ops/sec/procs": 1043626.38, "ns per ops/procs": 958.2}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30038.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6125031157.0, "Total blocks": 6125031155.0, "Ops per second": 203902810.25, "ns per ops": 4.9, "Ops per threads": 63802.0, "Ops per procs": 31901203.0, "Ops/sec/procs": 1061993.8, "ns per ops/procs": 941.63}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30024.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4802957271.0, "Total blocks": 4802957271.0, "Ops per second": 159969246.61, "ns per ops": 6.25, "Ops per threads": 133415.0, "Ops per procs": 66707739.0, "Ops/sec/procs": 2221795.09, "ns per ops/procs": 450.09}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30038.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6488823269.0, "Ops per second": 216015692.37, "ns per ops": 4.63, "Ops per threads": 180245.0, "Ops per procs": 90122545.0, "Ops/sec/procs": 3000217.95, "ns per ops/procs": 333.31}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2181278533.0, "Ops per second": 72709284.0, "ns per ops": 13.0, "Ops per threads": 272659.0, "Ops per procs": 136329908.0, "Ops/sec/procs": 4544330.0, "ns per ops/procs": 220.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30084.71753, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12988884577.0, "Total blocks": 12988884360.0, "Ops per second": 431743610.82, "ns per ops": 2.32, "Ops per threads": 135300.0, "Ops per procs": 67650440.0, "Ops/sec/procs": 2248664.64, "ns per ops/procs": 444.71}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30058.838009, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3370940040.0, "Total blocks": 3370939924.0, "Ops per second": 112144722.26, "ns per ops": 8.92, "Ops per threads": 140455.0, "Ops per procs": 70227917.0, "Ops/sec/procs": 2336348.38, "ns per ops/procs": 428.02}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30001.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10917592965.0, "Ops per second": 363919765.0, "ns per ops": 2.0, "Ops per threads": 151633.0, "Ops per procs": 75816617.0, "Ops/sec/procs": 2527220.0, "ns per ops/procs": 395.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30006.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4782891721.0, "Total blocks": 4782891721.0, "Ops per second": 159397740.45, "ns per ops": 6.27, "Ops per threads": 132858.0, "Ops per procs": 66429051.0, "Ops/sec/procs": 2213857.51, "ns per ops/procs": 451.7}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 358685467.0, "Ops per second": 11955514.93, "ns per ops": 83.64, "Ops per threads": 358685.0, "Ops per procs": 179342733.0, "Ops/sec/procs": 5977757.47, "ns per ops/procs": 167.29}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30025.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2535056981.0, "Total blocks": 2535056981.0, "Ops per second": 84430108.35, "ns per ops": 11.84, "Ops per threads": 211254.0, "Ops per procs": 105627374.0, "Ops/sec/procs": 3517921.18, "ns per ops/procs": 284.26}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30031.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 699570091.0, "Total blocks": 699570091.0, "Ops per second": 23294435.8, "ns per ops": 42.93, "Ops per threads": 349785.0, "Ops per procs": 174892522.0, "Ops/sec/procs": 5823608.95, "ns per ops/procs": 171.71}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30065.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3613301058.0, "Ops per second": 120180408.75, "ns per ops": 8.32, "Ops per threads": 150554.0, "Ops per procs": 75277105.0, "Ops/sec/procs": 2503758.52, "ns per ops/procs": 399.4}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1323110616.0, "Total blocks": 1323110616.0, "Ops per second": 44061458.72, "ns per ops": 22.7, "Ops per threads": 330777.0, "Ops per procs": 165388827.0, "Ops/sec/procs": 5507682.34, "ns per ops/procs": 181.56}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 165682392.0, "Ops per second": 5522498.32, "ns per ops": 181.08, "Ops per threads": 331364.0, "Ops per procs": 165682392.0, "Ops/sec/procs": 5522498.32, "ns per ops/procs": 181.08}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30077.897833, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1885256357.0, "Total blocks": 1885256356.0, "Ops per second": 62679126.3, "ns per ops": 15.95, "Ops per threads": 235657.0, "Ops per procs": 117828522.0, "Ops/sec/procs": 3917445.39, "ns per ops/procs": 255.27}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6339693995.0, "Ops per second": 211323133.0, "ns per ops": 4.0, "Ops per threads": 176102.0, "Ops per procs": 88051305.0, "Ops/sec/procs": 2935043.0, "ns per ops/procs": 341.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30056.543434, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1017360318.0, "Total blocks": 1017356392.0, "Ops per second": 33848214.12, "ns per ops": 29.54, "Ops per threads": 254340.0, "Ops per procs": 127170039.0, "Ops/sec/procs": 4231026.77, "ns per ops/procs": 236.35}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30073.606249, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1849357800.0, "Total blocks": 1849357797.0, "Ops per second": 61494380.98, "ns per ops": 16.26, "Ops per threads": 231169.0, "Ops per procs": 115584862.0, "Ops/sec/procs": 3843398.81, "ns per ops/procs": 260.19}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162876625.0, "Ops per second": 5429220.0, "ns per ops": 184.0, "Ops per threads": 325753.0, "Ops per procs": 162876625.0, "Ops/sec/procs": 5429220.0, "ns per ops/procs": 184.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2178186205.0, "Ops per second": 72606206.0, "ns per ops": 13.0, "Ops per threads": 272273.0, "Ops per procs": 136136637.0, "Ops/sec/procs": 4537887.0, "ns per ops/procs": 221.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2890531872.0, "Ops per second": 96351062.0, "ns per ops": 10.0, "Ops per threads": 240877.0, "Ops per procs": 120438828.0, "Ops/sec/procs": 4014627.0, "ns per ops/procs": 249.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30036.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2129904567.0, "Total blocks": 2129904567.0, "Ops per second": 70911604.24, "ns per ops": 14.1, "Ops per threads": 266238.0, "Ops per procs": 133119035.0, "Ops/sec/procs": 4431975.26, "ns per ops/procs": 225.63}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30055.689597, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 530556642.0, "Total blocks": 530554646.0, "Ops per second": 17652452.8, "ns per ops": 56.65, "Ops per threads": 265278.0, "Ops per procs": 132639160.0, "Ops/sec/procs": 4413113.2, "ns per ops/procs": 226.6}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30065.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5986156874.0, "Total blocks": 5986156874.0, "Ops per second": 199101761.1, "ns per ops": 5.02, "Ops per threads": 83141.0, "Ops per procs": 41570533.0, "Ops/sec/procs": 1382651.12, "ns per ops/procs": 723.25}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6994659367.0, "Ops per second": 233079364.21, "ns per ops": 4.29, "Ops per threads": 194296.0, "Ops per procs": 97148046.0, "Ops/sec/procs": 3237213.39, "ns per ops/procs": 308.91}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30024.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4393317756.0, "Total blocks": 4393317756.0, "Ops per second": 146325414.58, "ns per ops": 6.83, "Ops per threads": 91527.0, "Ops per procs": 45763726.0, "Ops/sec/procs": 1524223.07, "ns per ops/procs": 656.07}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30077.161363, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1851371842.0, "Total blocks": 1851363843.0, "Ops per second": 61554074.86, "ns per ops": 16.25, "Ops per threads": 231421.0, "Ops per procs": 115710740.0, "Ops/sec/procs": 3847129.68, "ns per ops/procs": 259.93}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3059151925.0, "Ops per second": 101961963.28, "ns per ops": 9.81, "Ops per threads": 254929.0, "Ops per procs": 127464663.0, "Ops/sec/procs": 4248415.14, "ns per ops/procs": 235.38}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30014.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2520282189.0, "Total blocks": 2520282189.0, "Ops per second": 83968954.98, "ns per ops": 11.91, "Ops per threads": 210023.0, "Ops per procs": 105011757.0, "Ops/sec/procs": 3498706.46, "ns per ops/procs": 285.82}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 202672478.0, "Total blocks": 202671978.0, "Ops per second": 6749755.28, "ns per ops": 148.15, "Ops per threads": 405344.0, "Ops per procs": 202672478.0, "Ops/sec/procs": 6749755.28, "ns per ops/procs": 148.15}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30000.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13211556427.0, "Ops per second": 440385214.0, "ns per ops": 2.0, "Ops per threads": 137620.0, "Ops per procs": 68810189.0, "Ops/sec/procs": 2293672.0, "ns per ops/procs": 435.0}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30180.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6901684888.0, "Ops per second": 228677263.4, "ns per ops": 4.37, "Ops per threads": 143785.0, "Ops per procs": 71892550.0, "Ops/sec/procs": 2382054.83, "ns per ops/procs": 419.81}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30029.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 353836256.0, "Total blocks": 353836256.0, "Ops per second": 11783106.92, "ns per ops": 84.87, "Ops per threads": 353836.0, "Ops per procs": 176918128.0, "Ops/sec/procs": 5891553.46, "ns per ops/procs": 169.73}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30000.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13141734265.0, "Ops per second": 438057808.0, "ns per ops": 2.0, "Ops per threads": 136893.0, "Ops per procs": 68446532.0, "Ops/sec/procs": 2281551.0, "ns per ops/procs": 438.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30035.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2139629428.0, "Total blocks": 2139629428.0, "Ops per second": 71236073.69, "ns per ops": 14.04, "Ops per threads": 267453.0, "Ops per procs": 133726839.0, "Ops/sec/procs": 4452254.61, "ns per ops/procs": 224.61}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 198794709.0, "Total blocks": 198794209.0, "Ops per second": 6620576.77, "ns per ops": 151.04, "Ops per threads": 397589.0, "Ops per procs": 198794709.0, "Ops/sec/procs": 6620576.77, "ns per ops/procs": 151.04}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3843647185.0, "Ops per second": 128121572.0, "ns per ops": 7.0, "Ops per threads": 160151.0, "Ops per procs": 80075983.0, "Ops/sec/procs": 2669199.0, "ns per ops/procs": 375.0}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30030.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6909088932.0, "Ops per second": 230072227.17, "ns per ops": 4.35, "Ops per threads": 143939.0, "Ops per procs": 71969676.0, "Ops/sec/procs": 2396585.7, "ns per ops/procs": 417.26}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30040.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3409050419.0, "Ops per second": 113480755.41, "ns per ops": 8.81, "Ops per threads": 142043.0, "Ops per procs": 71021883.0, "Ops/sec/procs": 2364182.4, "ns per ops/procs": 422.98}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.53485, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168013536.0, "Total blocks": 168013036.0, "Ops per second": 5591219.19, "ns per ops": 178.85, "Ops per threads": 336027.0, "Ops per procs": 168013536.0, "Ops/sec/procs": 5591219.19, "ns per ops/procs": 178.85}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2202671599.0, "Ops per second": 73422386.0, "ns per ops": 13.0, "Ops per threads": 275333.0, "Ops per procs": 137666974.0, "Ops/sec/procs": 4588899.0, "ns per ops/procs": 218.0}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30058.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10250695683.0, "Ops per second": 341028133.92, "ns per ops": 2.93, "Ops per threads": 142370.0, "Ops per procs": 71185386.0, "Ops/sec/procs": 2368250.93, "ns per ops/procs": 422.25}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 44520.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9596238837.0, "Ops per second": 215547167.45, "ns per ops": 4.64, "Ops per threads": 266562.0, "Ops per procs": 133281094.0, "Ops/sec/procs": 2993710.66, "ns per ops/procs": 334.03}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30047.545859, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6554146732.0, "Total blocks": 6554146520.0, "Ops per second": 218125858.36, "ns per ops": 4.58, "Ops per threads": 136544.0, "Ops per procs": 68272361.0, "Ops/sec/procs": 2272144.36, "ns per ops/procs": 440.11}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30052.948171, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 530002695.0, "Total blocks": 530000699.0, "Ops per second": 17635630.69, "ns per ops": 56.7, "Ops per threads": 265001.0, "Ops per procs": 132500673.0, "Ops/sec/procs": 4408907.67, "ns per ops/procs": 226.81}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30098.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 317902612.0, "Ops per second": 10596753.0, "ns per ops": 94.0, "Ops per threads": 317902.0, "Ops per procs": 158951306.0, "Ops/sec/procs": 5298376.0, "ns per ops/procs": 189.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30035.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2100075180.0, "Total blocks": 2100075180.0, "Ops per second": 69918737.36, "ns per ops": 14.3, "Ops per threads": 262509.0, "Ops per procs": 131254698.0, "Ops/sec/procs": 4369921.08, "ns per ops/procs": 228.84}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30028.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 353404431.0, "Total blocks": 353404431.0, "Ops per second": 11768842.45, "ns per ops": 84.97, "Ops per threads": 353404.0, "Ops per procs": 176702215.0, "Ops/sec/procs": 5884421.22, "ns per ops/procs": 169.94}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30061.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5026140708.0, "Total blocks": 5026140708.0, "Ops per second": 167193781.43, "ns per ops": 5.98, "Ops per threads": 139615.0, "Ops per procs": 69807509.0, "Ops/sec/procs": 2322135.85, "ns per ops/procs": 430.64}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1164901668.0, "Ops per second": 38830055.0, "ns per ops": 25.0, "Ops per threads": 291225.0, "Ops per procs": 145612708.0, "Ops/sec/procs": 4853756.0, "ns per ops/procs": 206.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30049.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6001020957.0, "Total blocks": 6001020956.0, "Ops per second": 199707307.06, "ns per ops": 5.01, "Ops per threads": 83347.0, "Ops per procs": 41673756.0, "Ops/sec/procs": 1386856.3, "ns per ops/procs": 721.06}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30023.544184, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2026056283.0, "Total blocks": 2026056271.0, "Ops per second": 67482248.95, "ns per ops": 14.82, "Ops per threads": 168838.0, "Ops per procs": 84419011.0, "Ops/sec/procs": 2811760.37, "ns per ops/procs": 355.65}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30099.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 11023384702.0, "Ops per second": 367446156.0, "ns per ops": 2.0, "Ops per threads": 153102.0, "Ops per procs": 76551282.0, "Ops/sec/procs": 2551709.0, "ns per ops/procs": 393.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30076.304141, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1834523857.0, "Total blocks": 1834515859.0, "Ops per second": 60995654.53, "ns per ops": 16.39, "Ops per threads": 229315.0, "Ops per procs": 114657741.0, "Ops/sec/procs": 3812228.41, "ns per ops/procs": 262.31}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30100.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7142289567.0, "Ops per second": 238076318.0, "ns per ops": 4.0, "Ops per threads": 148797.0, "Ops per procs": 74398849.0, "Ops/sec/procs": 2479961.0, "ns per ops/procs": 404.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 203537018.0, "Total blocks": 203536518.0, "Ops per second": 6778520.07, "ns per ops": 147.52, "Ops per threads": 407074.0, "Ops per procs": 203537018.0, "Ops/sec/procs": 6778520.07, "ns per ops/procs": 147.52}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30038.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4558877039.0, "Total blocks": 4558877039.0, "Ops per second": 151766018.41, "ns per ops": 6.59, "Ops per threads": 94976.0, "Ops per procs": 47488302.0, "Ops/sec/procs": 1580896.03, "ns per ops/procs": 632.55}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2181332025.0, "Ops per second": 72711067.0, "ns per ops": 13.0, "Ops per threads": 272666.0, "Ops per procs": 136333251.0, "Ops/sec/procs": 4544441.0, "ns per ops/procs": 220.0}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30002.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2624688503.0, "Ops per second": 87482537.12, "ns per ops": 11.43, "Ops per threads": 328086.0, "Ops per procs": 164043031.0, "Ops/sec/procs": 5467658.57, "ns per ops/procs": 182.89}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30040.468734, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13006448294.0, "Total blocks": 13006448090.0, "Ops per second": 432964226.0, "ns per ops": 2.31, "Ops per threads": 135483.0, "Ops per procs": 67741918.0, "Ops/sec/procs": 2255022.01, "ns per ops/procs": 443.45}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30080.401345, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13004969493.0, "Total blocks": 13004969300.0, "Ops per second": 432340291.73, "ns per ops": 2.31, "Ops per threads": 135468.0, "Ops per procs": 67734216.0, "Ops/sec/procs": 2251772.35, "ns per ops/procs": 444.09}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167803594.0, "Ops per second": 5593203.24, "ns per ops": 178.79, "Ops per threads": 335607.0, "Ops per procs": 167803594.0, "Ops/sec/procs": 5593203.24, "ns per ops/procs": 178.79}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 317824348.0, "Ops per second": 10594144.0, "ns per ops": 94.0, "Ops per threads": 317824.0, "Ops per procs": 158912174.0, "Ops/sec/procs": 5297072.0, "ns per ops/procs": 189.0}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 139901.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15857881607.0, "Ops per second": 113350320.17, "ns per ops": 8.82, "Ops per threads": 1321490.0, "Ops per procs": 660745066.0, "Ops/sec/procs": 4722930.01, "ns per ops/procs": 211.73}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30079.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2121684656.0, "Total blocks": 2121684656.0, "Ops per second": 70536788.29, "ns per ops": 14.18, "Ops per threads": 265210.0, "Ops per procs": 132605291.0, "Ops/sec/procs": 4408549.27, "ns per ops/procs": 226.83}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30047.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12951015451.0, "Ops per second": 431015922.79, "ns per ops": 2.32, "Ops per threads": 134906.0, "Ops per procs": 67453205.0, "Ops/sec/procs": 2244874.6, "ns per ops/procs": 445.46}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30015.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 11133378930.0, "Ops per second": 370924308.97, "ns per ops": 2.7, "Ops per threads": 154630.0, "Ops per procs": 77315131.0, "Ops/sec/procs": 2575863.26, "ns per ops/procs": 388.22}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30044.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2488966538.0, "Total blocks": 2488966538.0, "Ops per second": 82843242.74, "ns per ops": 12.07, "Ops per threads": 103706.0, "Ops per procs": 51853469.0, "Ops/sec/procs": 1725900.89, "ns per ops/procs": 579.41}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30070.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 14527395496.0, "Ops per second": 483106904.06, "ns per ops": 2.07, "Ops per threads": 151327.0, "Ops per procs": 75663518.0, "Ops/sec/procs": 2516181.79, "ns per ops/procs": 397.43}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 701961454.0, "Ops per second": 23397496.96, "ns per ops": 42.74, "Ops per threads": 350980.0, "Ops per procs": 175490363.0, "Ops/sec/procs": 5849374.24, "ns per ops/procs": 170.96}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30054.724253, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 537861841.0, "Total blocks": 537859873.0, "Ops per second": 17896083.04, "ns per ops": 55.88, "Ops per threads": 268930.0, "Ops per procs": 134465460.0, "Ops/sec/procs": 4474020.76, "ns per ops/procs": 223.51}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 599686107.0, "Ops per second": 19989536.0, "ns per ops": 50.0, "Ops per threads": 299843.0, "Ops per procs": 149921526.0, "Ops/sec/procs": 4997384.0, "ns per ops/procs": 200.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30092.366445, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5581672724.0, "Total blocks": 5581672656.0, "Ops per second": 185484672.14, "ns per ops": 5.39, "Ops per threads": 155046.0, "Ops per procs": 77523232.0, "Ops/sec/procs": 2576176.0, "ns per ops/procs": 388.17}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 357111831.0, "Ops per second": 11903145.19, "ns per ops": 84.01, "Ops per threads": 357111.0, "Ops per procs": 178555915.0, "Ops/sec/procs": 5951572.59, "ns per ops/procs": 168.02}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30099.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 316969499.0, "Ops per second": 10565649.0, "ns per ops": 94.0, "Ops per threads": 316969.0, "Ops per procs": 158484749.0, "Ops/sec/procs": 5282824.0, "ns per ops/procs": 189.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30069.671674, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9724060959.0, "Total blocks": 9724060699.0, "Ops per second": 323384341.02, "ns per ops": 3.09, "Ops per threads": 135056.0, "Ops per procs": 67528201.0, "Ops/sec/procs": 2245724.59, "ns per ops/procs": 445.29}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3395137200.0, "Ops per second": 113161323.25, "ns per ops": 8.84, "Ops per threads": 282928.0, "Ops per procs": 141464050.0, "Ops/sec/procs": 4715055.14, "ns per ops/procs": 212.09}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30022.960511, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2370966534.0, "Total blocks": 2370966525.0, "Ops per second": 78971776.72, "ns per ops": 12.66, "Ops per threads": 197580.0, "Ops per procs": 98790272.0, "Ops/sec/procs": 3290490.7, "ns per ops/procs": 303.91}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 705885861.0, "Ops per second": 23528245.22, "ns per ops": 42.5, "Ops per threads": 352942.0, "Ops per procs": 176471465.0, "Ops/sec/procs": 5882061.31, "ns per ops/procs": 170.01}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30051.194467, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 291126347.0, "Total blocks": 291125351.0, "Ops per second": 9687679.71, "ns per ops": 103.22, "Ops per threads": 291126.0, "Ops per procs": 145563173.0, "Ops/sec/procs": 4843839.86, "ns per ops/procs": 206.45}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30019.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3468636647.0, "Ops per second": 115544465.2, "ns per ops": 8.65, "Ops per threads": 144526.0, "Ops per procs": 72263263.0, "Ops/sec/procs": 2407176.36, "ns per ops/procs": 415.42}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3853905169.0, "Ops per second": 128463505.0, "ns per ops": 7.0, "Ops per threads": 160579.0, "Ops per procs": 80289691.0, "Ops/sec/procs": 2676323.0, "ns per ops/procs": 374.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30051.504467, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 286978743.0, "Total blocks": 286977817.0, "Ops per second": 9549563.26, "ns per ops": 104.72, "Ops per threads": 286978.0, "Ops per procs": 143489371.0, "Ops/sec/procs": 4774781.63, "ns per ops/procs": 209.43}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30100.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10987066470.0, "Ops per second": 366235549.0, "ns per ops": 2.0, "Ops per threads": 152598.0, "Ops per procs": 76299072.0, "Ops/sec/procs": 2543302.0, "ns per ops/procs": 394.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3807152407.0, "Ops per second": 126905080.0, "ns per ops": 7.0, "Ops per threads": 158631.0, "Ops per procs": 79315675.0, "Ops/sec/procs": 2643855.0, "ns per ops/procs": 379.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 600955680.0, "Ops per second": 20031856.0, "ns per ops": 50.0, "Ops per threads": 300477.0, "Ops per procs": 150238920.0, "Ops/sec/procs": 5007964.0, "ns per ops/procs": 200.0}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 353481121.0, "Ops per second": 11782098.56, "ns per ops": 84.87, "Ops per threads": 353481.0, "Ops per procs": 176740560.0, "Ops/sec/procs": 5891049.28, "ns per ops/procs": 169.75}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30098.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6351669364.0, "Total blocks": 6351669364.0, "Ops per second": 211030388.85, "ns per ops": 4.74, "Ops per threads": 66163.0, "Ops per procs": 33081611.0, "Ops/sec/procs": 1099116.61, "ns per ops/procs": 909.82}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167728729.0, "Ops per second": 5590679.97, "ns per ops": 178.87, "Ops per threads": 335457.0, "Ops per procs": 167728729.0, "Ops/sec/procs": 5590679.97, "ns per ops/procs": 178.87}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30043.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 14058236696.0, "Ops per second": 467934793.04, "ns per ops": 2.14, "Ops per threads": 146439.0, "Ops per procs": 73219982.0, "Ops/sec/procs": 2437160.38, "ns per ops/procs": 410.31}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30100.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13204212175.0, "Ops per second": 440140405.0, "ns per ops": 2.0, "Ops per threads": 137543.0, "Ops per procs": 68771938.0, "Ops/sec/procs": 2292397.0, "ns per ops/procs": 437.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30000.700388, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12907414169.0, "Total blocks": 12907413976.0, "Ops per second": 430237094.54, "ns per ops": 2.32, "Ops per threads": 134452.0, "Ops per procs": 67226115.0, "Ops/sec/procs": 2240818.2, "ns per ops/procs": 446.27}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30023.604346, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2409664650.0, "Total blocks": 2409664647.0, "Ops per second": 80259006.29, "ns per ops": 12.46, "Ops per threads": 200805.0, "Ops per procs": 100402693.0, "Ops/sec/procs": 3344125.26, "ns per ops/procs": 299.03}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30049.956611, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 287781445.0, "Total blocks": 287780449.0, "Ops per second": 9576767.41, "ns per ops": 104.42, "Ops per threads": 287781.0, "Ops per procs": 143890722.0, "Ops/sec/procs": 4788383.7, "ns per ops/procs": 208.84}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30014.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2610877666.0, "Total blocks": 2610877666.0, "Ops per second": 86986013.58, "ns per ops": 11.5, "Ops per threads": 217573.0, "Ops per procs": 108786569.0, "Ops/sec/procs": 3624417.23, "ns per ops/procs": 275.91}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30025.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3440316573.0, "Ops per second": 114580329.91, "ns per ops": 8.73, "Ops per threads": 143346.0, "Ops per procs": 71673261.0, "Ops/sec/procs": 2387090.21, "ns per ops/procs": 418.92}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30048.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2440982468.0, "Total blocks": 2440982468.0, "Ops per second": 81233758.8, "ns per ops": 12.31, "Ops per threads": 101707.0, "Ops per procs": 50853801.0, "Ops/sec/procs": 1692369.98, "ns per ops/procs": 590.89}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30033.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3451664161.0, "Ops per second": 114925429.87, "ns per ops": 8.7, "Ops per threads": 143819.0, "Ops per procs": 71909670.0, "Ops/sec/procs": 2394279.79, "ns per ops/procs": 417.66}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 114131.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5412981349.0, "Ops per second": 47427547.71, "ns per ops": 21.08, "Ops per threads": 1353245.0, "Ops per procs": 676622668.0, "Ops/sec/procs": 5928443.46, "ns per ops/procs": 168.68}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30065.098892, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12941230059.0, "Total blocks": 12941229876.0, "Ops per second": 430440295.76, "ns per ops": 2.32, "Ops per threads": 134804.0, "Ops per procs": 67402239.0, "Ops/sec/procs": 2241876.54, "ns per ops/procs": 446.05}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167833111.0, "Ops per second": 5594192.83, "ns per ops": 178.76, "Ops per threads": 335666.0, "Ops per procs": 167833111.0, "Ops/sec/procs": 5594192.83, "ns per ops/procs": 178.76}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2202011885.0, "Ops per second": 73400396.0, "ns per ops": 13.0, "Ops per threads": 275251.0, "Ops per procs": 137625742.0, "Ops/sec/procs": 4587524.0, "ns per ops/procs": 218.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30098.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2854438644.0, "Ops per second": 95147954.0, "ns per ops": 10.0, "Ops per threads": 237869.0, "Ops per procs": 118934943.0, "Ops/sec/procs": 3964498.0, "ns per ops/procs": 253.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30055.274237, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 534060764.0, "Total blocks": 534058763.0, "Ops per second": 17769286.01, "ns per ops": 56.28, "Ops per threads": 267030.0, "Ops per procs": 133515191.0, "Ops/sec/procs": 4442321.5, "ns per ops/procs": 225.11}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30028.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 358075529.0, "Total blocks": 358075529.0, "Ops per second": 11924351.03, "ns per ops": 83.86, "Ops per threads": 358075.0, "Ops per procs": 179037764.0, "Ops/sec/procs": 5962175.51, "ns per ops/procs": 167.72}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30059.10851, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6581338755.0, "Total blocks": 6581338565.0, "Ops per second": 218946571.65, "ns per ops": 4.57, "Ops per threads": 137111.0, "Ops per procs": 68555612.0, "Ops/sec/procs": 2280693.45, "ns per ops/procs": 438.46}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30015.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3593220253.0, "Ops per second": 119711342.95, "ns per ops": 8.35, "Ops per threads": 149717.0, "Ops per procs": 74858755.0, "Ops/sec/procs": 2493986.31, "ns per ops/procs": 400.96}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30054.071166, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9733269851.0, "Total blocks": 9733269598.0, "Ops per second": 323858614.6, "ns per ops": 3.09, "Ops per threads": 135184.0, "Ops per procs": 67592151.0, "Ops/sec/procs": 2249018.16, "ns per ops/procs": 444.64}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30033.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 14500495182.0, "Ops per second": 482804012.57, "ns per ops": 2.07, "Ops per threads": 151046.0, "Ops per procs": 75523412.0, "Ops/sec/procs": 2514604.23, "ns per ops/procs": 397.68}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 688480596.0, "Total blocks": 688480596.0, "Ops per second": 22927023.65, "ns per ops": 43.62, "Ops per threads": 344240.0, "Ops per procs": 172120149.0, "Ops/sec/procs": 5731755.91, "ns per ops/procs": 174.47}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30028.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4865570274.0, "Total blocks": 4865570274.0, "Ops per second": 162030671.9, "ns per ops": 6.17, "Ops per threads": 135154.0, "Ops per procs": 67577364.0, "Ops/sec/procs": 2250426.0, "ns per ops/procs": 444.36}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30094.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1334446203.0, "Total blocks": 1334446203.0, "Ops per second": 44342343.68, "ns per ops": 22.55, "Ops per threads": 333611.0, "Ops per procs": 166805775.0, "Ops/sec/procs": 5542792.96, "ns per ops/procs": 180.41}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30098.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2895614705.0, "Ops per second": 96520490.0, "ns per ops": 10.0, "Ops per threads": 241301.0, "Ops per procs": 120650612.0, "Ops/sec/procs": 4021687.0, "ns per ops/procs": 249.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6196473702.0, "Ops per second": 206549123.0, "ns per ops": 4.0, "Ops per threads": 172124.0, "Ops per procs": 86062134.0, "Ops/sec/procs": 2868737.0, "ns per ops/procs": 349.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30078.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4978410880.0, "Total blocks": 4978410880.0, "Ops per second": 165516641.69, "ns per ops": 6.04, "Ops per threads": 138289.0, "Ops per procs": 69144595.0, "Ops/sec/procs": 2298842.25, "ns per ops/procs": 435.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30058.18945, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9716693325.0, "Total blocks": 9716693073.0, "Ops per second": 323262761.42, "ns per ops": 3.09, "Ops per threads": 134954.0, "Ops per procs": 67477036.0, "Ops/sec/procs": 2244880.29, "ns per ops/procs": 445.46}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30060.962144, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1016212543.0, "Total blocks": 1016208624.0, "Ops per second": 33805057.14, "ns per ops": 29.58, "Ops per threads": 254053.0, "Ops per procs": 127026567.0, "Ops/sec/procs": 4225632.14, "ns per ops/procs": 236.65}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 109789.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1402648216.0, "Ops per second": 12775812.73, "ns per ops": 78.27, "Ops per threads": 1402648.0, "Ops per procs": 701324108.0, "Ops/sec/procs": 6387906.36, "ns per ops/procs": 156.55}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30001.342973, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5696885013.0, "Total blocks": 5696884932.0, "Ops per second": 189887666.63, "ns per ops": 5.27, "Ops per threads": 158246.0, "Ops per procs": 79123402.0, "Ops/sec/procs": 2637328.7, "ns per ops/procs": 379.17}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30075.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3714056660.0, "Ops per second": 123489140.05, "ns per ops": 8.1, "Ops per threads": 154752.0, "Ops per procs": 77376180.0, "Ops/sec/procs": 2572690.42, "ns per ops/procs": 388.7}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1406976196.0, "Ops per second": 46896621.81, "ns per ops": 21.32, "Ops per threads": 351744.0, "Ops per procs": 175872024.0, "Ops/sec/procs": 5862077.73, "ns per ops/procs": 170.59}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 603446162.0, "Ops per second": 20114872.0, "ns per ops": 49.0, "Ops per threads": 301723.0, "Ops per procs": 150861540.0, "Ops/sec/procs": 5028718.0, "ns per ops/procs": 199.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1166153978.0, "Ops per second": 38871799.0, "ns per ops": 25.0, "Ops per threads": 291538.0, "Ops per procs": 145769247.0, "Ops/sec/procs": 4858974.0, "ns per ops/procs": 206.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30013.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10686167592.0, "Ops per second": 356205586.0, "ns per ops": 2.0, "Ops per threads": 148418.0, "Ops per procs": 74209497.0, "Ops/sec/procs": 2473649.0, "ns per ops/procs": 404.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30050.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4536828024.0, "Total blocks": 4536828024.0, "Ops per second": 150975006.25, "ns per ops": 6.62, "Ops per threads": 94517.0, "Ops per procs": 47258625.0, "Ops/sec/procs": 1572656.32, "ns per ops/procs": 635.87}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 291888.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7098915038.0, "Ops per second": 24320665.48, "ns per ops": 41.12, "Ops per threads": 3549457.0, "Ops per procs": 1774728759.0, "Ops/sec/procs": 6080166.37, "ns per ops/procs": 164.47}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 601787985.0, "Ops per second": 20059599.0, "ns per ops": 50.0, "Ops per threads": 300893.0, "Ops per procs": 150446996.0, "Ops/sec/procs": 5014899.0, "ns per ops/procs": 200.0}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1404522376.0, "Ops per second": 46814950.36, "ns per ops": 21.36, "Ops per threads": 351130.0, "Ops per procs": 175565297.0, "Ops/sec/procs": 5851868.8, "ns per ops/procs": 170.89}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3821493505.0, "Ops per second": 127383116.0, "ns per ops": 7.0, "Ops per threads": 159228.0, "Ops per procs": 79614448.0, "Ops/sec/procs": 2653814.0, "ns per ops/procs": 378.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30057.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6004984920.0, "Total blocks": 6004984920.0, "Ops per second": 199784207.11, "ns per ops": 5.01, "Ops per threads": 83402.0, "Ops per procs": 41701284.0, "Ops/sec/procs": 1387390.33, "ns per ops/procs": 720.78}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30001.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10502001891.0, "Ops per second": 350066729.0, "ns per ops": 2.0, "Ops per threads": 145861.0, "Ops per procs": 72930568.0, "Ops/sec/procs": 2431018.0, "ns per ops/procs": 411.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30029.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 351209268.0, "Total blocks": 351209268.0, "Ops per second": 11695655.16, "ns per ops": 85.5, "Ops per threads": 351209.0, "Ops per procs": 175604634.0, "Ops/sec/procs": 5847827.58, "ns per ops/procs": 171.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 203950394.0, "Total blocks": 203949894.0, "Ops per second": 6792350.66, "ns per ops": 147.22, "Ops per threads": 407900.0, "Ops per procs": 203950394.0, "Ops/sec/procs": 6792350.66, "ns per ops/procs": 147.22}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30070.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13685291540.0, "Ops per second": 455100690.38, "ns per ops": 2.2, "Ops per threads": 142555.0, "Ops per procs": 71277560.0, "Ops/sec/procs": 2370316.1, "ns per ops/procs": 421.88}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 58622.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5161836224.0, "Ops per second": 88052345.83, "ns per ops": 11.36, "Ops per threads": 645229.0, "Ops per procs": 322614764.0, "Ops/sec/procs": 5503271.61, "ns per ops/procs": 181.71}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 32591.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 11058682384.0, "Ops per second": 339310377.17, "ns per ops": 2.95, "Ops per threads": 153592.0, "Ops per procs": 76796405.0, "Ops/sec/procs": 2356322.06, "ns per ops/procs": 424.39}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30052.641823, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3384697368.0, "Total blocks": 3384697287.0, "Ops per second": 112625618.34, "ns per ops": 8.88, "Ops per threads": 141029.0, "Ops per procs": 70514528.0, "Ops/sec/procs": 2346367.05, "ns per ops/procs": 426.19}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6617007430.0, "Ops per second": 220566914.0, "ns per ops": 4.0, "Ops per threads": 183805.0, "Ops per procs": 91902880.0, "Ops/sec/procs": 3063429.0, "ns per ops/procs": 327.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6360025087.0, "Ops per second": 212000836.0, "ns per ops": 4.0, "Ops per threads": 176667.0, "Ops per procs": 88333681.0, "Ops/sec/procs": 2944456.0, "ns per ops/procs": 340.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30030.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 352290964.0, "Total blocks": 352290964.0, "Ops per second": 11731109.36, "ns per ops": 85.24, "Ops per threads": 352290.0, "Ops per procs": 176145482.0, "Ops/sec/procs": 5865554.68, "ns per ops/procs": 170.49}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30023.549747, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2393108443.0, "Total blocks": 2393108436.0, "Ops per second": 79707711.55, "ns per ops": 12.55, "Ops per threads": 199425.0, "Ops per procs": 99712851.0, "Ops/sec/procs": 3321154.65, "ns per ops/procs": 301.1}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30036.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2103121741.0, "Total blocks": 2103121741.0, "Ops per second": 70018698.79, "ns per ops": 14.28, "Ops per threads": 262890.0, "Ops per procs": 131445108.0, "Ops/sec/procs": 4376168.67, "ns per ops/procs": 228.51}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162948961.0, "Ops per second": 5431632.0, "ns per ops": 184.0, "Ops per threads": 325897.0, "Ops per procs": 162948961.0, "Ops/sec/procs": 5431632.0, "ns per ops/procs": 184.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30052.002839, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 290413959.0, "Total blocks": 290413113.0, "Ops per second": 9663713.95, "ns per ops": 103.48, "Ops per threads": 290413.0, "Ops per procs": 145206979.0, "Ops/sec/procs": 4831856.97, "ns per ops/procs": 206.96}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.678465, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168291645.0, "Total blocks": 168291149.0, "Ops per second": 5600447.45, "ns per ops": 178.56, "Ops per threads": 336583.0, "Ops per procs": 168291645.0, "Ops/sec/procs": 5600447.45, "ns per ops/procs": 178.56}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30098.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 600117059.0, "Ops per second": 20003901.0, "ns per ops": 50.0, "Ops per threads": 300058.0, "Ops per procs": 150029264.0, "Ops/sec/procs": 5000975.0, "ns per ops/procs": 200.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30098.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2894102152.0, "Ops per second": 96470071.0, "ns per ops": 10.0, "Ops per threads": 241175.0, "Ops per procs": 120587589.0, "Ops/sec/procs": 4019586.0, "ns per ops/procs": 249.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30060.650435, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3372781101.0, "Total blocks": 3372781029.0, "Ops per second": 112199205.68, "ns per ops": 8.91, "Ops per threads": 140532.0, "Ops per procs": 70266272.0, "Ops/sec/procs": 2337483.45, "ns per ops/procs": 427.81}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30051.587693, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 284093613.0, "Total blocks": 284092617.0, "Ops per second": 9453530.9, "ns per ops": 105.78, "Ops per threads": 284093.0, "Ops per procs": 142046806.0, "Ops/sec/procs": 4726765.45, "ns per ops/procs": 211.56}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2891778191.0, "Ops per second": 96392606.0, "ns per ops": 10.0, "Ops per threads": 240981.0, "Ops per procs": 120490757.0, "Ops/sec/procs": 4016358.0, "ns per ops/procs": 249.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.061514, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168210573.0, "Total blocks": 168210073.0, "Ops per second": 5597864.44, "ns per ops": 178.64, "Ops per threads": 336421.0, "Ops per procs": 168210573.0, "Ops/sec/procs": 5597864.44, "ns per ops/procs": 178.64}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 703547714.0, "Ops per second": 23450370.68, "ns per ops": 42.64, "Ops per threads": 351773.0, "Ops per procs": 175886928.0, "Ops/sec/procs": 5862592.67, "ns per ops/procs": 170.57}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30051.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3482639832.0, "Ops per second": 115888014.77, "ns per ops": 8.63, "Ops per threads": 145109.0, "Ops per procs": 72554996.0, "Ops/sec/procs": 2414333.64, "ns per ops/procs": 414.19}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30055.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2523036854.0, "Total blocks": 2523036854.0, "Ops per second": 83945117.83, "ns per ops": 11.91, "Ops per threads": 210253.0, "Ops per procs": 105126535.0, "Ops/sec/procs": 3497713.24, "ns per ops/procs": 285.9}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2606662496.0, "Ops per second": 86883039.33, "ns per ops": 11.51, "Ops per threads": 325832.0, "Ops per procs": 162916406.0, "Ops/sec/procs": 5430189.96, "ns per ops/procs": 184.16}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30000.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13028869869.0, "Ops per second": 434295662.0, "ns per ops": 2.0, "Ops per threads": 135717.0, "Ops per procs": 67858697.0, "Ops/sec/procs": 2261956.0, "ns per ops/procs": 442.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1159396486.0, "Ops per second": 38646549.0, "ns per ops": 25.0, "Ops per threads": 289849.0, "Ops per procs": 144924560.0, "Ops/sec/procs": 4830818.0, "ns per ops/procs": 207.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30024.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4383807982.0, "Total blocks": 4383807982.0, "Ops per second": 146007002.18, "ns per ops": 6.85, "Ops per threads": 91329.0, "Ops per procs": 45664666.0, "Ops/sec/procs": 1520906.27, "ns per ops/procs": 657.5}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30038.590278, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9818767893.0, "Total blocks": 9818767744.0, "Ops per second": 326871793.99, "ns per ops": 3.06, "Ops per threads": 136371.0, "Ops per procs": 68185888.0, "Ops/sec/procs": 2269943.01, "ns per ops/procs": 440.54}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30040.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4674253039.0, "Total blocks": 4674253038.0, "Ops per second": 155600007.85, "ns per ops": 6.43, "Ops per threads": 129840.0, "Ops per procs": 64920181.0, "Ops/sec/procs": 2161111.22, "ns per ops/procs": 462.72}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162921728.0, "Ops per second": 5430724.0, "ns per ops": 184.0, "Ops per threads": 325843.0, "Ops per procs": 162921728.0, "Ops/sec/procs": 5430724.0, "ns per ops/procs": 184.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1331116737.0, "Total blocks": 1331116737.0, "Ops per second": 44327959.85, "ns per ops": 22.56, "Ops per threads": 332779.0, "Ops per procs": 166389592.0, "Ops/sec/procs": 5540994.98, "ns per ops/procs": 180.47}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30037.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 698157505.0, "Total blocks": 698157505.0, "Ops per second": 23242529.99, "ns per ops": 43.02, "Ops per threads": 349078.0, "Ops per procs": 174539376.0, "Ops/sec/procs": 5810632.5, "ns per ops/procs": 172.1}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30041.732608, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9599833954.0, "Total blocks": 9599833450.0, "Ops per second": 319549943.38, "ns per ops": 3.13, "Ops per threads": 133331.0, "Ops per procs": 66665513.0, "Ops/sec/procs": 2219096.83, "ns per ops/procs": 450.63}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2463881563.0, "Total blocks": 2463881563.0, "Ops per second": 82113032.51, "ns per ops": 12.18, "Ops per threads": 102661.0, "Ops per procs": 51330865.0, "Ops/sec/procs": 1710688.18, "ns per ops/procs": 584.56}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30046.606445, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9664559493.0, "Total blocks": 9664559133.0, "Ops per second": 321652280.79, "ns per ops": 3.11, "Ops per threads": 134229.0, "Ops per procs": 67114996.0, "Ops/sec/procs": 2233696.39, "ns per ops/procs": 447.69}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30019.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5055183967.0, "Total blocks": 5055183967.0, "Ops per second": 168398733.92, "ns per ops": 5.94, "Ops per threads": 140421.0, "Ops per procs": 70210888.0, "Ops/sec/procs": 2338871.3, "ns per ops/procs": 427.56}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1162868293.0, "Ops per second": 38762276.0, "ns per ops": 25.0, "Ops per threads": 290717.0, "Ops per procs": 145358536.0, "Ops/sec/procs": 4845284.0, "ns per ops/procs": 207.0}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1402252818.0, "Ops per second": 46739193.14, "ns per ops": 21.4, "Ops per threads": 350563.0, "Ops per procs": 175281602.0, "Ops/sec/procs": 5842399.14, "ns per ops/procs": 171.16}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30062.470297, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9808068915.0, "Total blocks": 9808068766.0, "Ops per second": 326256253.0, "ns per ops": 3.07, "Ops per threads": 136223.0, "Ops per procs": 68111589.0, "Ops/sec/procs": 2265668.42, "ns per ops/procs": 441.37}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 48906.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 22823309815.0, "Ops per second": 466673250.03, "ns per ops": 2.14, "Ops per threads": 237742.0, "Ops per procs": 118871405.0, "Ops/sec/procs": 2430589.84, "ns per ops/procs": 411.42}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 702914613.0, "Ops per second": 23429264.3, "ns per ops": 42.68, "Ops per threads": 351457.0, "Ops per procs": 175728653.0, "Ops/sec/procs": 5857316.08, "ns per ops/procs": 170.73}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30054.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6612298233.0, "Ops per second": 220007922.46, "ns per ops": 4.55, "Ops per threads": 137756.0, "Ops per procs": 68878106.0, "Ops/sec/procs": 2291749.19, "ns per ops/procs": 436.35}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 358327123.0, "Ops per second": 11943669.51, "ns per ops": 83.73, "Ops per threads": 358327.0, "Ops per procs": 179163561.0, "Ops/sec/procs": 5971834.76, "ns per ops/procs": 167.45}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30048.022482, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9746486532.0, "Total blocks": 9746486315.0, "Ops per second": 324363659.47, "ns per ops": 3.08, "Ops per threads": 135367.0, "Ops per procs": 67683934.0, "Ops/sec/procs": 2252525.41, "ns per ops/procs": 443.95}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 204119645.0, "Total blocks": 204119145.0, "Ops per second": 6798029.06, "ns per ops": 147.1, "Ops per threads": 408239.0, "Ops per procs": 204119645.0, "Ops/sec/procs": 6798029.06, "ns per ops/procs": 147.1}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1160845414.0, "Ops per second": 38694847.0, "ns per ops": 25.0, "Ops per threads": 290211.0, "Ops per procs": 145105676.0, "Ops/sec/procs": 4836855.0, "ns per ops/procs": 207.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30029.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1319938632.0, "Total blocks": 1319938632.0, "Ops per second": 43955412.45, "ns per ops": 22.75, "Ops per threads": 329984.0, "Ops per procs": 164992329.0, "Ops/sec/procs": 5494426.56, "ns per ops/procs": 182.0}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30081.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6868534045.0, "Ops per second": 228327438.96, "ns per ops": 4.38, "Ops per threads": 143094.0, "Ops per procs": 71547229.0, "Ops/sec/procs": 2378410.82, "ns per ops/procs": 420.45}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30022.452179, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2396495012.0, "Total blocks": 2396495006.0, "Ops per second": 79823426.74, "ns per ops": 12.53, "Ops per threads": 199707.0, "Ops per procs": 99853958.0, "Ops/sec/procs": 3325976.11, "ns per ops/procs": 300.66}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30015.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2496713750.0, "Total blocks": 2496713750.0, "Ops per second": 83181623.0, "ns per ops": 12.02, "Ops per threads": 208059.0, "Ops per procs": 104029739.0, "Ops/sec/procs": 3465900.96, "ns per ops/procs": 288.53}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2204230032.0, "Ops per second": 73474334.0, "ns per ops": 13.0, "Ops per threads": 275528.0, "Ops per procs": 137764377.0, "Ops/sec/procs": 4592145.0, "ns per ops/procs": 218.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6408567784.0, "Ops per second": 213618926.0, "ns per ops": 4.0, "Ops per threads": 178015.0, "Ops per procs": 89007885.0, "Ops/sec/procs": 2966929.0, "ns per ops/procs": 338.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30049.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2442823442.0, "Total blocks": 2442823442.0, "Ops per second": 81292199.51, "ns per ops": 12.3, "Ops per threads": 101784.0, "Ops per procs": 50892155.0, "Ops/sec/procs": 1693587.49, "ns per ops/procs": 590.46}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30021.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12925856264.0, "Ops per second": 430861875.0, "ns per ops": 2.0, "Ops per threads": 134644.0, "Ops per procs": 67322168.0, "Ops/sec/procs": 2244072.0, "ns per ops/procs": 445.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30030.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2450451540.0, "Total blocks": 2450451540.0, "Ops per second": 81599642.34, "ns per ops": 12.25, "Ops per threads": 102102.0, "Ops per procs": 51051073.0, "Ops/sec/procs": 1699992.55, "ns per ops/procs": 588.24}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 318036362.0, "Ops per second": 10601212.0, "ns per ops": 94.0, "Ops per threads": 318036.0, "Ops per procs": 159018181.0, "Ops/sec/procs": 5300606.0, "ns per ops/procs": 189.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30032.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 688165907.0, "Total blocks": 688165907.0, "Ops per second": 22914409.58, "ns per ops": 43.64, "Ops per threads": 344082.0, "Ops per procs": 172041476.0, "Ops/sec/procs": 5728602.39, "ns per ops/procs": 174.56}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 203346198.0, "Total blocks": 203345698.0, "Ops per second": 6772166.51, "ns per ops": 147.66, "Ops per threads": 406692.0, "Ops per procs": 203346198.0, "Ops/sec/procs": 6772166.51, "ns per ops/procs": 147.66}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30100.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13283218533.0, "Ops per second": 442773951.0, "ns per ops": 2.0, "Ops per threads": 138366.0, "Ops per procs": 69183429.0, "Ops/sec/procs": 2306114.0, "ns per ops/procs": 435.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.755761, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167981268.0, "Total blocks": 167980772.0, "Ops per second": 5590104.27, "ns per ops": 178.89, "Ops per threads": 335962.0, "Ops per procs": 167981268.0, "Ops/sec/procs": 5590104.27, "ns per ops/procs": 178.89}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30062.199687, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12986339364.0, "Total blocks": 12986339194.0, "Ops per second": 431982339.92, "ns per ops": 2.31, "Ops per threads": 135274.0, "Ops per procs": 67637184.0, "Ops/sec/procs": 2249908.02, "ns per ops/procs": 444.46}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30048.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2561342717.0, "Total blocks": 2561342717.0, "Ops per second": 85241566.51, "ns per ops": 11.73, "Ops per threads": 213445.0, "Ops per procs": 106722613.0, "Ops/sec/procs": 3551731.94, "ns per ops/procs": 281.55}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30003.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7125830090.0, "Ops per second": 237527669.0, "ns per ops": 4.0, "Ops per threads": 148454.0, "Ops per procs": 74227396.0, "Ops/sec/procs": 2474246.0, "ns per ops/procs": 404.0}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30005.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6677841425.0, "Ops per second": 222553623.82, "ns per ops": 4.49, "Ops per threads": 139121.0, "Ops per procs": 69560848.0, "Ops/sec/procs": 2318266.91, "ns per ops/procs": 431.36}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30030.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 353151232.0, "Total blocks": 353151232.0, "Ops per second": 11759911.77, "ns per ops": 85.03, "Ops per threads": 353151.0, "Ops per procs": 176575616.0, "Ops/sec/procs": 5879955.88, "ns per ops/procs": 170.07}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30023.780053, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2300075820.0, "Total blocks": 2300075814.0, "Ops per second": 76608468.88, "ns per ops": 13.05, "Ops per threads": 191672.0, "Ops per procs": 95836492.0, "Ops/sec/procs": 3192019.54, "ns per ops/procs": 313.28}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 128721.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 14301317257.0, "Ops per second": 111102506.11, "ns per ops": 9.0, "Ops per threads": 1191776.0, "Ops per procs": 595888219.0, "Ops/sec/procs": 4629271.09, "ns per ops/procs": 216.02}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30052.031829, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 289232468.0, "Total blocks": 289231472.0, "Ops per second": 9624389.78, "ns per ops": 103.9, "Ops per threads": 289232.0, "Ops per procs": 144616234.0, "Ops/sec/procs": 4812194.89, "ns per ops/procs": 207.81}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1403196271.0, "Ops per second": 46770704.1, "ns per ops": 21.38, "Ops per threads": 350799.0, "Ops per procs": 175399533.0, "Ops/sec/procs": 5846338.01, "ns per ops/procs": 171.05}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30043.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 693408357.0, "Total blocks": 693408357.0, "Ops per second": 23079927.56, "ns per ops": 43.33, "Ops per threads": 346704.0, "Ops per procs": 173352089.0, "Ops/sec/procs": 5769981.89, "ns per ops/procs": 173.31}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30014.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2542919680.0, "Total blocks": 2542919680.0, "Ops per second": 84723134.67, "ns per ops": 11.8, "Ops per threads": 211909.0, "Ops per procs": 105954986.0, "Ops/sec/procs": 3530130.61, "ns per ops/procs": 283.28}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3068453568.0, "Ops per second": 102272454.44, "ns per ops": 9.78, "Ops per threads": 255704.0, "Ops per procs": 127852232.0, "Ops/sec/procs": 4261352.27, "ns per ops/procs": 234.67}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30071.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6891770808.0, "Ops per second": 229179370.78, "ns per ops": 4.36, "Ops per threads": 143578.0, "Ops per procs": 71789279.0, "Ops/sec/procs": 2387285.11, "ns per ops/procs": 418.89}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 153926.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 17323791339.0, "Ops per second": 112546169.42, "ns per ops": 8.89, "Ops per threads": 1443649.0, "Ops per procs": 721824639.0, "Ops/sec/procs": 4689423.73, "ns per ops/procs": 213.25}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 703640857.0, "Ops per second": 23453482.8, "ns per ops": 42.64, "Ops per threads": 351820.0, "Ops per procs": 175910214.0, "Ops/sec/procs": 5863370.7, "ns per ops/procs": 170.55}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30089.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3361344245.0, "Ops per second": 111710050.79, "ns per ops": 8.95, "Ops per threads": 140056.0, "Ops per procs": 70028005.0, "Ops/sec/procs": 2327292.72, "ns per ops/procs": 429.68}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30060.735788, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12958736814.0, "Total blocks": 12958736650.0, "Ops per second": 431085150.59, "ns per ops": 2.32, "Ops per threads": 134986.0, "Ops per procs": 67493420.0, "Ops/sec/procs": 2245235.16, "ns per ops/procs": 445.39}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 600411974.0, "Ops per second": 20013732.0, "ns per ops": 50.0, "Ops per threads": 300205.0, "Ops per procs": 150102993.0, "Ops/sec/procs": 5003433.0, "ns per ops/procs": 200.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30007.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10931275780.0, "Ops per second": 364375859.0, "ns per ops": 2.0, "Ops per threads": 151823.0, "Ops per procs": 75911637.0, "Ops/sec/procs": 2530387.0, "ns per ops/procs": 395.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30018.582818, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2141693689.0, "Total blocks": 2141693685.0, "Ops per second": 71345596.23, "ns per ops": 14.02, "Ops per threads": 178474.0, "Ops per procs": 89237237.0, "Ops/sec/procs": 2972733.18, "ns per ops/procs": 336.39}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30018.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10365991760.0, "Ops per second": 345322877.08, "ns per ops": 2.9, "Ops per threads": 143972.0, "Ops per procs": 71986053.0, "Ops/sec/procs": 2398075.54, "ns per ops/procs": 417.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162946006.0, "Ops per second": 5431533.0, "ns per ops": 184.0, "Ops per threads": 325892.0, "Ops per procs": 162946006.0, "Ops/sec/procs": 5431533.0, "ns per ops/procs": 184.0}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30014.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3600741090.0, "Ops per second": 119966491.99, "ns per ops": 8.34, "Ops per threads": 150030.0, "Ops per procs": 75015439.0, "Ops/sec/procs": 2499301.92, "ns per ops/procs": 400.11}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30077.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2068688292.0, "Total blocks": 2068688292.0, "Ops per second": 68778176.34, "ns per ops": 14.54, "Ops per threads": 258586.0, "Ops per procs": 129293018.0, "Ops/sec/procs": 4298636.02, "ns per ops/procs": 232.63}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30099.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7278293766.0, "Ops per second": 242609792.0, "ns per ops": 4.0, "Ops per threads": 151631.0, "Ops per procs": 75815560.0, "Ops/sec/procs": 2527185.0, "ns per ops/procs": 397.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30074.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2510631380.0, "Total blocks": 2510631380.0, "Ops per second": 83479241.18, "ns per ops": 11.98, "Ops per threads": 104609.0, "Ops per procs": 52304820.0, "Ops/sec/procs": 1739150.86, "ns per ops/procs": 574.99}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30015.830526, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2377943794.0, "Total blocks": 2377943793.0, "Ops per second": 79222988.41, "ns per ops": 12.62, "Ops per threads": 198161.0, "Ops per procs": 99080991.0, "Ops/sec/procs": 3300957.85, "ns per ops/procs": 302.94}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 33222.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 11985765475.0, "Ops per second": 360773167.65, "ns per ops": 2.77, "Ops per threads": 166468.0, "Ops per procs": 83234482.0, "Ops/sec/procs": 2505369.22, "ns per ops/procs": 399.14}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30074.816812, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1855994515.0, "Total blocks": 1855986515.0, "Ops per second": 61712579.22, "ns per ops": 16.2, "Ops per threads": 231999.0, "Ops per procs": 115999657.0, "Ops/sec/procs": 3857036.2, "ns per ops/procs": 259.27}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30061.746889, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3377929965.0, "Total blocks": 3377929869.0, "Ops per second": 112366389.67, "ns per ops": 8.9, "Ops per threads": 140747.0, "Ops per procs": 70373540.0, "Ops/sec/procs": 2340966.45, "ns per ops/procs": 427.17}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30048.077151, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 285479890.0, "Total blocks": 285478894.0, "Ops per second": 9500770.67, "ns per ops": 105.25, "Ops per threads": 285479.0, "Ops per procs": 142739945.0, "Ops/sec/procs": 4750385.33, "ns per ops/procs": 210.51}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30051.111455, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 290724438.0, "Total blocks": 290723442.0, "Ops per second": 9674332.29, "ns per ops": 103.37, "Ops per threads": 290724.0, "Ops per procs": 145362219.0, "Ops/sec/procs": 4837166.15, "ns per ops/procs": 206.73}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6350625535.0, "Total blocks": 6350625534.0, "Ops per second": 211648044.49, "ns per ops": 4.72, "Ops per threads": 66152.0, "Ops per procs": 33076174.0, "Ops/sec/procs": 1102333.57, "ns per ops/procs": 907.17}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30002.94067, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5673664553.0, "Total blocks": 5673664528.0, "Ops per second": 189103615.39, "ns per ops": 5.29, "Ops per threads": 157601.0, "Ops per procs": 78800896.0, "Ops/sec/procs": 2626439.1, "ns per ops/procs": 380.74}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.890561, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168309332.0, "Total blocks": 168308836.0, "Ops per second": 5600996.5, "ns per ops": 178.54, "Ops per threads": 336618.0, "Ops per procs": 168309332.0, "Ops/sec/procs": 5600996.5, "ns per ops/procs": 178.54}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30099.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6281823128.0, "Ops per second": 209394104.0, "ns per ops": 4.0, "Ops per threads": 174495.0, "Ops per procs": 87247543.0, "Ops/sec/procs": 2908251.0, "ns per ops/procs": 344.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1161334682.0, "Ops per second": 38711156.0, "ns per ops": 25.0, "Ops per threads": 290333.0, "Ops per procs": 145166835.0, "Ops/sec/procs": 4838894.0, "ns per ops/procs": 207.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 202819301.0, "Total blocks": 202818801.0, "Ops per second": 6754632.58, "ns per ops": 148.05, "Ops per threads": 405638.0, "Ops per procs": 202819301.0, "Ops/sec/procs": 6754632.58, "ns per ops/procs": 148.05}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30044.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6522724179.0, "Ops per second": 217100172.84, "ns per ops": 4.61, "Ops per threads": 181186.0, "Ops per procs": 90593391.0, "Ops/sec/procs": 3015280.18, "ns per ops/procs": 331.64}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30060.059841, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12953019994.0, "Total blocks": 12953019803.0, "Ops per second": 430904664.28, "ns per ops": 2.32, "Ops per threads": 134927.0, "Ops per procs": 67463645.0, "Ops/sec/procs": 2244295.13, "ns per ops/procs": 445.57}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 702171946.0, "Ops per second": 23404528.35, "ns per ops": 42.73, "Ops per threads": 351085.0, "Ops per procs": 175542986.0, "Ops/sec/procs": 5851132.09, "ns per ops/procs": 170.91}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 198828275.0, "Total blocks": 198827775.0, "Ops per second": 6621691.29, "ns per ops": 151.02, "Ops per threads": 397656.0, "Ops per procs": 198828275.0, "Ops/sec/procs": 6621691.29, "ns per ops/procs": 151.02}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2204062076.0, "Ops per second": 73468735.0, "ns per ops": 13.0, "Ops per threads": 275507.0, "Ops per procs": 137753879.0, "Ops/sec/procs": 4591795.0, "ns per ops/procs": 218.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30098.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 317819137.0, "Ops per second": 10593971.0, "ns per ops": 94.0, "Ops per threads": 317819.0, "Ops per procs": 158909568.0, "Ops/sec/procs": 5296985.0, "ns per ops/procs": 189.0}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30022.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7468315737.0, "Ops per second": 248754451.02, "ns per ops": 4.02, "Ops per threads": 155589.0, "Ops per procs": 77794955.0, "Ops/sec/procs": 2591192.2, "ns per ops/procs": 385.92}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30021.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5734041095.0, "Total blocks": 5734041095.0, "Ops per second": 190997210.32, "ns per ops": 5.24, "Ops per threads": 59729.0, "Ops per procs": 29864797.0, "Ops/sec/procs": 994777.14, "ns per ops/procs": 1005.25}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6399825942.0, "Ops per second": 213327531.0, "ns per ops": 4.0, "Ops per threads": 177772.0, "Ops per procs": 88886471.0, "Ops/sec/procs": 2962882.0, "ns per ops/procs": 338.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30047.470397, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6620639219.0, "Total blocks": 6620639118.0, "Ops per second": 220339320.8, "ns per ops": 4.54, "Ops per threads": 137929.0, "Ops per procs": 68964991.0, "Ops/sec/procs": 2295201.26, "ns per ops/procs": 435.69}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30030.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1337355073.0, "Total blocks": 1337355073.0, "Ops per second": 44533506.43, "ns per ops": 22.46, "Ops per threads": 334338.0, "Ops per procs": 167169384.0, "Ops/sec/procs": 5566688.3, "ns per ops/procs": 179.64}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.778486, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168019332.0, "Total blocks": 168018832.0, "Ops per second": 5591366.74, "ns per ops": 178.85, "Ops per threads": 336038.0, "Ops per procs": 168019332.0, "Ops/sec/procs": 5591366.74, "ns per ops/procs": 178.85}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30057.730279, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3362175246.0, "Total blocks": 3362175163.0, "Ops per second": 111857256.51, "ns per ops": 8.94, "Ops per threads": 140090.0, "Ops per procs": 70045317.0, "Ops/sec/procs": 2330359.51, "ns per ops/procs": 429.12}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30060.926541, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12962752012.0, "Total blocks": 12962751830.0, "Ops per second": 431215983.79, "ns per ops": 2.32, "Ops per threads": 135028.0, "Ops per procs": 67514333.0, "Ops/sec/procs": 2245916.58, "ns per ops/procs": 445.25}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30056.084919, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1005763199.0, "Total blocks": 1005759202.0, "Ops per second": 33462881.2, "ns per ops": 29.88, "Ops per threads": 251440.0, "Ops per procs": 125720399.0, "Ops/sec/procs": 4182860.15, "ns per ops/procs": 239.07}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 704611394.0, "Ops per second": 23485885.25, "ns per ops": 42.58, "Ops per threads": 352305.0, "Ops per procs": 176152848.0, "Ops/sec/procs": 5871471.31, "ns per ops/procs": 170.32}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30054.694208, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12938654371.0, "Total blocks": 12938654189.0, "Ops per second": 430503610.57, "ns per ops": 2.32, "Ops per threads": 134777.0, "Ops per procs": 67388824.0, "Ops/sec/procs": 2242206.31, "ns per ops/procs": 445.99}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10754278549.0, "Ops per second": 358475951.0, "ns per ops": 2.0, "Ops per threads": 149364.0, "Ops per procs": 74682489.0, "Ops/sec/procs": 2489416.0, "ns per ops/procs": 401.0}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 247134.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6008765208.0, "Ops per second": 24313747.31, "ns per ops": 41.13, "Ops per threads": 3004382.0, "Ops per procs": 1502191302.0, "Ops/sec/procs": 6078436.83, "ns per ops/procs": 164.52}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30061.073027, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1005983525.0, "Total blocks": 1005983525.0, "Ops per second": 33464657.9, "ns per ops": 29.88, "Ops per threads": 251495.0, "Ops per procs": 125747940.0, "Ops/sec/procs": 4183082.24, "ns per ops/procs": 239.06}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30039.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4880845824.0, "Total blocks": 4880845824.0, "Ops per second": 162479248.82, "ns per ops": 6.15, "Ops per threads": 135579.0, "Ops per procs": 67789525.0, "Ops/sec/procs": 2256656.23, "ns per ops/procs": 443.13}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30002.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2635183195.0, "Ops per second": 87833374.99, "ns per ops": 11.39, "Ops per threads": 329397.0, "Ops per procs": 164698949.0, "Ops/sec/procs": 5489585.94, "ns per ops/procs": 182.16}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30052.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9985408229.0, "Ops per second": 332267997.73, "ns per ops": 3.01, "Ops per threads": 138686.0, "Ops per procs": 69343112.0, "Ops/sec/procs": 2307416.65, "ns per ops/procs": 433.39}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30009.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6064285162.0, "Total blocks": 6064285161.0, "Ops per second": 202075630.66, "ns per ops": 4.95, "Ops per threads": 63169.0, "Ops per procs": 31584818.0, "Ops/sec/procs": 1052477.24, "ns per ops/procs": 950.14}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30040.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6294658226.0, "Ops per second": 209537695.36, "ns per ops": 4.77, "Ops per threads": 174851.0, "Ops per procs": 87425808.0, "Ops/sec/procs": 2910245.77, "ns per ops/procs": 343.61}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7011347227.0, "Ops per second": 233635639.94, "ns per ops": 4.28, "Ops per threads": 194759.0, "Ops per procs": 97379822.0, "Ops/sec/procs": 3244939.44, "ns per ops/procs": 308.17}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 699845675.0, "Total blocks": 699845675.0, "Ops per second": 23305480.11, "ns per ops": 42.91, "Ops per threads": 349922.0, "Ops per procs": 174961418.0, "Ops/sec/procs": 5826370.03, "ns per ops/procs": 171.63}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30059.806429, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3370983201.0, "Total blocks": 3370983106.0, "Ops per second": 112142545.19, "ns per ops": 8.92, "Ops per threads": 140457.0, "Ops per procs": 70228816.0, "Ops/sec/procs": 2336303.02, "ns per ops/procs": 428.03}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30002.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2016729379.0, "Ops per second": 67219519.81, "ns per ops": 14.88, "Ops per threads": 252091.0, "Ops per procs": 126045586.0, "Ops/sec/procs": 4201219.99, "ns per ops/procs": 238.03}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30059.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7011600421.0, "Ops per second": 233257267.61, "ns per ops": 4.29, "Ops per threads": 194766.0, "Ops per procs": 97383339.0, "Ops/sec/procs": 3239684.27, "ns per ops/procs": 308.67}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30060.203423, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3365766818.0, "Total blocks": 3365766707.0, "Ops per second": 111967532.98, "ns per ops": 8.93, "Ops per threads": 140240.0, "Ops per procs": 70120142.0, "Ops/sec/procs": 2332656.94, "ns per ops/procs": 428.7}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30100.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3831085565.0, "Ops per second": 127702852.0, "ns per ops": 7.0, "Ops per threads": 159628.0, "Ops per procs": 79814282.0, "Ops/sec/procs": 2660476.0, "ns per ops/procs": 377.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30024.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2474717310.0, "Total blocks": 2474717310.0, "Ops per second": 82422195.68, "ns per ops": 12.13, "Ops per threads": 103113.0, "Ops per procs": 51556610.0, "Ops/sec/procs": 1717129.08, "ns per ops/procs": 582.37}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1165692340.0, "Ops per second": 38856411.0, "ns per ops": 25.0, "Ops per threads": 291423.0, "Ops per procs": 145711542.0, "Ops/sec/procs": 4857051.0, "ns per ops/procs": 206.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30047.774416, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6553302201.0, "Total blocks": 6553302051.0, "Ops per second": 218096092.92, "ns per ops": 4.59, "Ops per threads": 136527.0, "Ops per procs": 68263564.0, "Ops/sec/procs": 2271834.3, "ns per ops/procs": 440.17}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30080.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4681668636.0, "Total blocks": 4681668636.0, "Ops per second": 155636504.56, "ns per ops": 6.43, "Ops per threads": 130046.0, "Ops per procs": 65023175.0, "Ops/sec/procs": 2161618.12, "ns per ops/procs": 462.62}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30062.807317, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1012052411.0, "Total blocks": 1012048413.0, "Ops per second": 33664600.92, "ns per ops": 29.7, "Ops per threads": 253013.0, "Ops per procs": 126506551.0, "Ops/sec/procs": 4208075.12, "ns per ops/procs": 237.64}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30072.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6189567236.0, "Total blocks": 6189567236.0, "Ops per second": 205823031.42, "ns per ops": 4.86, "Ops per threads": 64474.0, "Ops per procs": 32237329.0, "Ops/sec/procs": 1071994.96, "ns per ops/procs": 932.84}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167785107.0, "Ops per second": 5592589.34, "ns per ops": 178.81, "Ops per threads": 335570.0, "Ops per procs": 167785107.0, "Ops/sec/procs": 5592589.34, "ns per ops/procs": 178.81}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30050.092906, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167904605.0, "Total blocks": 167904105.0, "Ops per second": 5587490.38, "ns per ops": 178.97, "Ops per threads": 335809.0, "Ops per procs": 167904605.0, "Ops/sec/procs": 5587490.38, "ns per ops/procs": 178.97}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30031.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5719167751.0, "Total blocks": 5719167750.0, "Ops per second": 190435930.09, "ns per ops": 5.25, "Ops per threads": 79432.0, "Ops per procs": 39716442.0, "Ops/sec/procs": 1322471.74, "ns per ops/procs": 756.16}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3878367407.0, "Ops per second": 129278913.0, "ns per ops": 7.0, "Ops per threads": 161598.0, "Ops per procs": 80799320.0, "Ops/sec/procs": 2693310.0, "ns per ops/procs": 372.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 318283138.0, "Ops per second": 10609437.0, "ns per ops": 94.0, "Ops per threads": 318283.0, "Ops per procs": 159141569.0, "Ops/sec/procs": 5304718.0, "ns per ops/procs": 189.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30028.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 353570748.0, "Total blocks": 353570748.0, "Ops per second": 11774353.58, "ns per ops": 84.93, "Ops per threads": 353570.0, "Ops per procs": 176785374.0, "Ops/sec/procs": 5887176.79, "ns per ops/procs": 169.86}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30031.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6199827412.0, "Total blocks": 6199827410.0, "Ops per second": 206444038.59, "ns per ops": 4.84, "Ops per threads": 64581.0, "Ops per procs": 32290767.0, "Ops/sec/procs": 1075229.37, "ns per ops/procs": 930.03}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30056.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13821031718.0, "Ops per second": 459827994.27, "ns per ops": 2.17, "Ops per threads": 143969.0, "Ops per procs": 71984540.0, "Ops/sec/procs": 2394937.47, "ns per ops/procs": 417.55}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30073.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 11082119222.0, "Ops per second": 368497248.08, "ns per ops": 2.71, "Ops per threads": 153918.0, "Ops per procs": 76959161.0, "Ops/sec/procs": 2559008.67, "ns per ops/procs": 390.78}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1407449530.0, "Ops per second": 46912444.56, "ns per ops": 21.32, "Ops per threads": 351862.0, "Ops per procs": 175931191.0, "Ops/sec/procs": 5864055.57, "ns per ops/procs": 170.53}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 204386291.0, "Total blocks": 204385791.0, "Ops per second": 6806813.14, "ns per ops": 146.91, "Ops per threads": 408772.0, "Ops per procs": 204386291.0, "Ops/sec/procs": 6806813.14, "ns per ops/procs": 146.91}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30044.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1331047214.0, "Total blocks": 1331047214.0, "Ops per second": 44302644.99, "ns per ops": 22.57, "Ops per threads": 332761.0, "Ops per procs": 166380901.0, "Ops/sec/procs": 5537830.62, "ns per ops/procs": 180.58}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30036.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2103748467.0, "Total blocks": 2103748467.0, "Ops per second": 70040095.14, "ns per ops": 14.28, "Ops per threads": 262968.0, "Ops per procs": 131484279.0, "Ops/sec/procs": 4377505.95, "ns per ops/procs": 228.44}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 55075.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4839104878.0, "Ops per second": 87863086.85, "ns per ops": 11.38, "Ops per threads": 604888.0, "Ops per procs": 302444054.0, "Ops/sec/procs": 5491442.93, "ns per ops/procs": 182.1}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30060.804757, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1025930963.0, "Total blocks": 1025926967.0, "Ops per second": 34128526.21, "ns per ops": 29.3, "Ops per threads": 256482.0, "Ops per procs": 128241370.0, "Ops/sec/procs": 4266065.78, "ns per ops/procs": 234.41}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30054.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6793875943.0, "Ops per second": 226055606.41, "ns per ops": 4.42, "Ops per threads": 141539.0, "Ops per procs": 70769541.0, "Ops/sec/procs": 2354745.9, "ns per ops/procs": 424.67}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.973691, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168224528.0, "Total blocks": 168224032.0, "Ops per second": 5598158.91, "ns per ops": 178.63, "Ops per threads": 336449.0, "Ops per procs": 168224528.0, "Ops/sec/procs": 5598158.91, "ns per ops/procs": 178.63}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30077.707156, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1873980699.0, "Total blocks": 1873980699.0, "Ops per second": 62304639.42, "ns per ops": 16.05, "Ops per threads": 234247.0, "Ops per procs": 117123793.0, "Ops/sec/procs": 3894039.96, "ns per ops/procs": 256.8}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 42362.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 18575418854.0, "Ops per second": 438482518.46, "ns per ops": 2.28, "Ops per threads": 193493.0, "Ops per procs": 96746973.0, "Ops/sec/procs": 2283763.12, "ns per ops/procs": 437.87}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30050.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2460795737.0, "Total blocks": 2460795737.0, "Ops per second": 81889108.85, "ns per ops": 12.21, "Ops per threads": 102533.0, "Ops per procs": 51266577.0, "Ops/sec/procs": 1706023.1, "ns per ops/procs": 586.16}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30075.585822, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1869159872.0, "Total blocks": 1869151870.0, "Ops per second": 62148743.6, "ns per ops": 16.09, "Ops per threads": 233644.0, "Ops per procs": 116822492.0, "Ops/sec/procs": 3884296.48, "ns per ops/procs": 257.45}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30087.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7301788166.0, "Ops per second": 242687556.02, "ns per ops": 4.12, "Ops per threads": 152120.0, "Ops per procs": 76060293.0, "Ops/sec/procs": 2527995.38, "ns per ops/procs": 395.57}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 358002166.0, "Ops per second": 11932846.22, "ns per ops": 83.8, "Ops per threads": 358002.0, "Ops per procs": 179001083.0, "Ops/sec/procs": 5966423.11, "ns per ops/procs": 167.6}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162557526.0, "Ops per second": 5418584.0, "ns per ops": 185.0, "Ops per threads": 325115.0, "Ops per procs": 162557526.0, "Ops/sec/procs": 5418584.0, "ns per ops/procs": 185.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30047.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2531326922.0, "Total blocks": 2531326922.0, "Ops per second": 84245244.01, "ns per ops": 11.87, "Ops per threads": 105471.0, "Ops per procs": 52735977.0, "Ops/sec/procs": 1755109.25, "ns per ops/procs": 569.77}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30033.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5011264633.0, "Total blocks": 5011264633.0, "Ops per second": 166855182.21, "ns per ops": 5.99, "Ops per threads": 139201.0, "Ops per procs": 69600897.0, "Ops/sec/procs": 2317433.09, "ns per ops/procs": 431.51}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30048.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7475727851.0, "Ops per second": 248787300.59, "ns per ops": 4.02, "Ops per threads": 155744.0, "Ops per procs": 77872165.0, "Ops/sec/procs": 2591534.38, "ns per ops/procs": 385.87}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30060.762087, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1008178937.0, "Total blocks": 1008174937.0, "Ops per second": 33538036.53, "ns per ops": 29.82, "Ops per threads": 252044.0, "Ops per procs": 126022367.0, "Ops/sec/procs": 4192254.57, "ns per ops/procs": 238.54}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30071.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10143287891.0, "Ops per second": 337310500.43, "ns per ops": 2.96, "Ops per threads": 140878.0, "Ops per procs": 70439499.0, "Ops/sec/procs": 2342434.03, "ns per ops/procs": 426.91}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6337596766.0, "Ops per second": 211253225.0, "ns per ops": 4.0, "Ops per threads": 176044.0, "Ops per procs": 88022177.0, "Ops/sec/procs": 2934072.0, "ns per ops/procs": 341.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30023.527964, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2398954299.0, "Total blocks": 2398954284.0, "Ops per second": 79902478.55, "ns per ops": 12.52, "Ops per threads": 199912.0, "Ops per procs": 99956429.0, "Ops/sec/procs": 3329269.94, "ns per ops/procs": 300.37}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30004.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12934927607.0, "Ops per second": 431164253.0, "ns per ops": 2.0, "Ops per threads": 134738.0, "Ops per procs": 67369414.0, "Ops/sec/procs": 2245647.0, "ns per ops/procs": 445.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30014.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2524148862.0, "Total blocks": 2524148862.0, "Ops per second": 84098088.95, "ns per ops": 11.89, "Ops per threads": 210345.0, "Ops per procs": 105172869.0, "Ops/sec/procs": 3504087.04, "ns per ops/procs": 285.38}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 36264.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 16585943868.0, "Ops per second": 457359441.65, "ns per ops": 2.19, "Ops per threads": 172770.0, "Ops per procs": 86385124.0, "Ops/sec/procs": 2382080.43, "ns per ops/procs": 419.8}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30019.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10535640214.0, "Ops per second": 350959763.94, "ns per ops": 2.85, "Ops per threads": 146328.0, "Ops per procs": 73164168.0, "Ops/sec/procs": 2437220.58, "ns per ops/procs": 410.3}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30064.868908, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9740710612.0, "Total blocks": 9740710434.0, "Ops per second": 323989791.6, "ns per ops": 3.09, "Ops per threads": 135287.0, "Ops per procs": 67643823.0, "Ops/sec/procs": 2249929.11, "ns per ops/procs": 444.46}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30003.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3393251007.0, "Ops per second": 113096654.0, "ns per ops": 8.84, "Ops per threads": 282770.0, "Ops per procs": 141385458.0, "Ops/sec/procs": 4712360.58, "ns per ops/procs": 212.21}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30002.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2629771222.0, "Ops per second": 87652750.21, "ns per ops": 11.41, "Ops per threads": 328721.0, "Ops per procs": 164360701.0, "Ops/sec/procs": 5478296.89, "ns per ops/procs": 182.54}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30000.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4385096062.0, "Total blocks": 4385096062.0, "Ops per second": 146167065.98, "ns per ops": 6.84, "Ops per threads": 91356.0, "Ops per procs": 45678083.0, "Ops/sec/procs": 1522573.6, "ns per ops/procs": 656.78}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1403724866.0, "Ops per second": 46788286.71, "ns per ops": 21.37, "Ops per threads": 350931.0, "Ops per procs": 175465608.0, "Ops/sec/procs": 5848535.84, "ns per ops/procs": 170.98}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30053.811425, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 517892499.0, "Total blocks": 517890498.0, "Ops per second": 17232173.71, "ns per ops": 58.03, "Ops per threads": 258946.0, "Ops per procs": 129473124.0, "Ops/sec/procs": 4308043.43, "ns per ops/procs": 232.12}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30050.415794, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6623429850.0, "Total blocks": 6623429754.0, "Ops per second": 220410589.17, "ns per ops": 4.54, "Ops per threads": 137988.0, "Ops per procs": 68994060.0, "Ops/sec/procs": 2295943.64, "ns per ops/procs": 435.55}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30001.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12937646889.0, "Ops per second": 431254896.0, "ns per ops": 2.0, "Ops per threads": 134767.0, "Ops per procs": 67383577.0, "Ops/sec/procs": 2246119.0, "ns per ops/procs": 445.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30048.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5807040221.0, "Total blocks": 5807040221.0, "Ops per second": 193255128.56, "ns per ops": 5.17, "Ops per threads": 80653.0, "Ops per procs": 40326668.0, "Ops/sec/procs": 1342049.5, "ns per ops/procs": 745.13}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30052.030501, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 274901369.0, "Total blocks": 274900459.0, "Ops per second": 9147513.98, "ns per ops": 109.32, "Ops per threads": 274901.0, "Ops per procs": 137450684.0, "Ops/sec/procs": 4573756.99, "ns per ops/procs": 218.64}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.573178, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167973203.0, "Total blocks": 167972726.0, "Ops per second": 5589869.85, "ns per ops": 178.9, "Ops per threads": 335946.0, "Ops per procs": 167973203.0, "Ops/sec/procs": 5589869.85, "ns per ops/procs": 178.9}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30098.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 317304611.0, "Ops per second": 10576820.0, "ns per ops": 94.0, "Ops per threads": 317304.0, "Ops per procs": 158652305.0, "Ops/sec/procs": 5288410.0, "ns per ops/procs": 189.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30098.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 601559688.0, "Ops per second": 20051989.0, "ns per ops": 50.0, "Ops per threads": 300779.0, "Ops per procs": 150389922.0, "Ops/sec/procs": 5012997.0, "ns per ops/procs": 200.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30077.535593, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1867814162.0, "Total blocks": 1867814161.0, "Ops per second": 62099973.46, "ns per ops": 16.1, "Ops per threads": 233476.0, "Ops per procs": 116738385.0, "Ops/sec/procs": 3881248.34, "ns per ops/procs": 257.65}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30078.485608, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1852542495.0, "Total blocks": 1852534496.0, "Ops per second": 61590284.8, "ns per ops": 16.24, "Ops per threads": 231567.0, "Ops per procs": 115783905.0, "Ops/sec/procs": 3849392.8, "ns per ops/procs": 259.78}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30010.645051, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5599556164.0, "Total blocks": 5599556116.0, "Ops per second": 186585665.0, "ns per ops": 5.36, "Ops per threads": 155543.0, "Ops per procs": 77771613.0, "Ops/sec/procs": 2591467.57, "ns per ops/procs": 385.88}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30055.092612, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 531547866.0, "Total blocks": 531545870.0, "Ops per second": 17685783.67, "ns per ops": 56.54, "Ops per threads": 265773.0, "Ops per procs": 132886966.0, "Ops/sec/procs": 4421445.92, "ns per ops/procs": 226.17}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3856025573.0, "Ops per second": 128534185.0, "ns per ops": 7.0, "Ops per threads": 160667.0, "Ops per procs": 80333866.0, "Ops/sec/procs": 2677795.0, "ns per ops/procs": 374.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 201931339.0, "Total blocks": 201930839.0, "Ops per second": 6725069.71, "ns per ops": 148.7, "Ops per threads": 403862.0, "Ops per procs": 201931339.0, "Ops/sec/procs": 6725069.71, "ns per ops/procs": 148.7}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30012.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13034771112.0, "Ops per second": 434492370.0, "ns per ops": 2.0, "Ops per threads": 135778.0, "Ops per procs": 67889432.0, "Ops/sec/procs": 2262981.0, "ns per ops/procs": 442.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30041.453429, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12990909555.0, "Total blocks": 12990909326.0, "Ops per second": 432432791.1, "ns per ops": 2.31, "Ops per threads": 135321.0, "Ops per procs": 67660987.0, "Ops/sec/procs": 2252254.12, "ns per ops/procs": 444.0}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 705342756.0, "Ops per second": 23510182.05, "ns per ops": 42.53, "Ops per threads": 352671.0, "Ops per procs": 176335689.0, "Ops/sec/procs": 5877545.51, "ns per ops/procs": 170.14}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30030.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1328857014.0, "Total blocks": 1328857014.0, "Ops per second": 44250538.27, "ns per ops": 22.6, "Ops per threads": 332214.0, "Ops per procs": 166107126.0, "Ops/sec/procs": 5531317.28, "ns per ops/procs": 180.79}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30029.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1317037841.0, "Total blocks": 1317037841.0, "Ops per second": 43858786.35, "ns per ops": 22.8, "Ops per threads": 329259.0, "Ops per procs": 164629730.0, "Ops/sec/procs": 5482348.29, "ns per ops/procs": 182.4}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30060.850264, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1028290912.0, "Total blocks": 1028286916.0, "Ops per second": 34206980.27, "ns per ops": 29.23, "Ops per threads": 257072.0, "Ops per procs": 128536364.0, "Ops/sec/procs": 4275872.53, "ns per ops/procs": 233.87}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30067.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2121776284.0, "Total blocks": 2121776284.0, "Ops per second": 70567606.69, "ns per ops": 14.17, "Ops per threads": 265222.0, "Ops per procs": 132611017.0, "Ops/sec/procs": 4410475.42, "ns per ops/procs": 226.73}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1403808822.0, "Ops per second": 46791151.03, "ns per ops": 21.37, "Ops per threads": 350952.0, "Ops per procs": 175476102.0, "Ops/sec/procs": 5848893.88, "ns per ops/procs": 170.97}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 205242743.0, "Total blocks": 205242243.0, "Ops per second": 6835385.4, "ns per ops": 146.3, "Ops per threads": 410485.0, "Ops per procs": 205242743.0, "Ops/sec/procs": 6835385.4, "ns per ops/procs": 146.3}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30002.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2626294276.0, "Ops per second": 87537157.49, "ns per ops": 11.42, "Ops per threads": 328286.0, "Ops per procs": 164143392.0, "Ops/sec/procs": 5471072.34, "ns per ops/procs": 182.78}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30059.519449, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3376209868.0, "Total blocks": 3376209770.0, "Ops per second": 112317493.09, "ns per ops": 8.9, "Ops per threads": 140675.0, "Ops per procs": 70337705.0, "Ops/sec/procs": 2339947.77, "ns per ops/procs": 427.36}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3836581356.0, "Ops per second": 127886045.0, "ns per ops": 7.0, "Ops per threads": 159857.0, "Ops per procs": 79928778.0, "Ops/sec/procs": 2664292.0, "ns per ops/procs": 376.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30003.601702, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5635726003.0, "Total blocks": 5635725987.0, "Ops per second": 187834982.58, "ns per ops": 5.32, "Ops per threads": 156547.0, "Ops per procs": 78273972.0, "Ops/sec/procs": 2608819.2, "ns per ops/procs": 383.32}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30004.0943, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5618640153.0, "Total blocks": 5618640080.0, "Ops per second": 187262448.15, "ns per ops": 5.34, "Ops per threads": 156073.0, "Ops per procs": 78036668.0, "Ops/sec/procs": 2600867.34, "ns per ops/procs": 384.49}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30099.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6577620399.0, "Ops per second": 219254013.0, "ns per ops": 4.0, "Ops per threads": 182711.0, "Ops per procs": 91355838.0, "Ops/sec/procs": 3045194.0, "ns per ops/procs": 329.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30004.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13022393535.0, "Ops per second": 434079784.0, "ns per ops": 2.0, "Ops per threads": 135649.0, "Ops per procs": 67824966.0, "Ops/sec/procs": 2260832.0, "ns per ops/procs": 442.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30016.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2568506615.0, "Total blocks": 2568506615.0, "Ops per second": 85570827.63, "ns per ops": 11.69, "Ops per threads": 214042.0, "Ops per procs": 107021108.0, "Ops/sec/procs": 3565451.15, "ns per ops/procs": 280.47}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30037.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4412247025.0, "Total blocks": 4412247025.0, "Ops per second": 146890919.49, "ns per ops": 6.81, "Ops per threads": 91921.0, "Ops per procs": 45960906.0, "Ops/sec/procs": 1530113.74, "ns per ops/procs": 653.55}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30058.02313, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5700272182.0, "Total blocks": 5700272163.0, "Ops per second": 189642284.77, "ns per ops": 5.27, "Ops per threads": 158340.0, "Ops per procs": 79170446.0, "Ops/sec/procs": 2633920.62, "ns per ops/procs": 379.66}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162962463.0, "Ops per second": 5432082.0, "ns per ops": 184.0, "Ops per threads": 325924.0, "Ops per procs": 162962463.0, "Ops/sec/procs": 5432082.0, "ns per ops/procs": 184.0}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 705061265.0, "Ops per second": 23500841.54, "ns per ops": 42.55, "Ops per threads": 352530.0, "Ops per procs": 176265316.0, "Ops/sec/procs": 5875210.38, "ns per ops/procs": 170.21}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30060.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10504254808.0, "Ops per second": 349433172.27, "ns per ops": 2.86, "Ops per threads": 145892.0, "Ops per procs": 72946213.0, "Ops/sec/procs": 2426619.25, "ns per ops/procs": 412.1}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30085.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12823599184.0, "Ops per second": 426238386.41, "ns per ops": 2.35, "Ops per threads": 133579.0, "Ops per procs": 66789579.0, "Ops/sec/procs": 2219991.6, "ns per ops/procs": 450.45}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1400052021.0, "Ops per second": 46665869.66, "ns per ops": 21.43, "Ops per threads": 350013.0, "Ops per procs": 175006502.0, "Ops/sec/procs": 5833233.71, "ns per ops/procs": 171.43}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30048.103314, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3370320181.0, "Total blocks": 3370320140.0, "Ops per second": 112164157.11, "ns per ops": 8.92, "Ops per threads": 140430.0, "Ops per procs": 70215003.0, "Ops/sec/procs": 2336753.27, "ns per ops/procs": 427.94}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30000.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5342176864.0, "Total blocks": 5342176857.0, "Ops per second": 178071162.76, "ns per ops": 5.62, "Ops per threads": 74196.0, "Ops per procs": 37098450.0, "Ops/sec/procs": 1236605.3, "ns per ops/procs": 808.67}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30090.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4405008822.0, "Total blocks": 4405008822.0, "Ops per second": 146392862.73, "ns per ops": 6.83, "Ops per threads": 91771.0, "Ops per procs": 45885508.0, "Ops/sec/procs": 1524925.65, "ns per ops/procs": 655.77}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30019.842831, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2418349949.0, "Total blocks": 2418349946.0, "Ops per second": 80558381.42, "ns per ops": 12.41, "Ops per threads": 201529.0, "Ops per procs": 100764581.0, "Ops/sec/procs": 3356599.23, "ns per ops/procs": 297.92}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30035.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1323526743.0, "Total blocks": 1323526743.0, "Ops per second": 44065731.17, "ns per ops": 22.69, "Ops per threads": 330881.0, "Ops per procs": 165440842.0, "Ops/sec/procs": 5508216.4, "ns per ops/procs": 181.55}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30029.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 351750059.0, "Total blocks": 351750059.0, "Ops per second": 11713649.99, "ns per ops": 85.37, "Ops per threads": 351750.0, "Ops per procs": 175875029.0, "Ops/sec/procs": 5856824.99, "ns per ops/procs": 170.74}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.801041, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168069784.0, "Total blocks": 168069288.0, "Ops per second": 5593041.49, "ns per ops": 178.79, "Ops per threads": 336139.0, "Ops per procs": 168069784.0, "Ops/sec/procs": 5593041.49, "ns per ops/procs": 178.79}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30032.609641, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5717267535.0, "Total blocks": 5717267531.0, "Ops per second": 190368656.05, "ns per ops": 5.25, "Ops per threads": 158812.0, "Ops per procs": 79406493.0, "Ops/sec/procs": 2644009.11, "ns per ops/procs": 378.21}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30044.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4381830738.0, "Total blocks": 4381830736.0, "Ops per second": 145844982.24, "ns per ops": 6.86, "Ops per threads": 91288.0, "Ops per procs": 45644070.0, "Ops/sec/procs": 1519218.57, "ns per ops/procs": 658.23}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30063.227462, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12962090288.0, "Total blocks": 12962090066.0, "Ops per second": 431160969.14, "ns per ops": 2.32, "Ops per threads": 135021.0, "Ops per procs": 67510886.0, "Ops/sec/procs": 2245630.05, "ns per ops/procs": 445.31}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30078.732547, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1833825479.0, "Total blocks": 1833817479.0, "Ops per second": 60967511.72, "ns per ops": 16.4, "Ops per threads": 229228.0, "Ops per procs": 114614092.0, "Ops/sec/procs": 3810469.48, "ns per ops/procs": 262.43}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30024.429768, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1892124589.0, "Total blocks": 1892124583.0, "Ops per second": 63019501.24, "ns per ops": 15.87, "Ops per threads": 157677.0, "Ops per procs": 78838524.0, "Ops/sec/procs": 2625812.55, "ns per ops/procs": 380.83}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30007.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7183884144.0, "Ops per second": 239462804.0, "ns per ops": 4.0, "Ops per threads": 149664.0, "Ops per procs": 74832126.0, "Ops/sec/procs": 2494404.0, "ns per ops/procs": 400.0}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167228376.0, "Ops per second": 5574040.49, "ns per ops": 179.4, "Ops per threads": 334456.0, "Ops per procs": 167228376.0, "Ops/sec/procs": 5574040.49, "ns per ops/procs": 179.4}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162674277.0, "Ops per second": 5422475.0, "ns per ops": 185.0, "Ops per threads": 325348.0, "Ops per procs": 162674277.0, "Ops/sec/procs": 5422475.0, "ns per ops/procs": 185.0}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167000603.0, "Ops per second": 5566448.93, "ns per ops": 179.65, "Ops per threads": 334001.0, "Ops per procs": 167000603.0, "Ops/sec/procs": 5566448.93, "ns per ops/procs": 179.65}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2868813512.0, "Ops per second": 95627117.0, "ns per ops": 10.0, "Ops per threads": 239067.0, "Ops per procs": 119533896.0, "Ops/sec/procs": 3984463.0, "ns per ops/procs": 251.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30012.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4409196212.0, "Total blocks": 4409196212.0, "Ops per second": 146909895.83, "ns per ops": 6.81, "Ops per threads": 91858.0, "Ops per procs": 45929127.0, "Ops/sec/procs": 1530311.41, "ns per ops/procs": 653.46}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30099.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10645132500.0, "Ops per second": 354837750.0, "ns per ops": 2.0, "Ops per threads": 147849.0, "Ops per procs": 73924531.0, "Ops/sec/procs": 2464151.0, "ns per ops/procs": 407.0}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 356033916.0, "Ops per second": 11867221.05, "ns per ops": 84.27, "Ops per threads": 356033.0, "Ops per procs": 178016958.0, "Ops/sec/procs": 5933610.53, "ns per ops/procs": 168.53}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30040.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6986638657.0, "Ops per second": 232575294.23, "ns per ops": 4.3, "Ops per threads": 194073.0, "Ops per procs": 97036648.0, "Ops/sec/procs": 3230212.42, "ns per ops/procs": 309.58}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162942160.0, "Ops per second": 5431405.0, "ns per ops": 184.0, "Ops per threads": 325884.0, "Ops per procs": 162942160.0, "Ops/sec/procs": 5431405.0, "ns per ops/procs": 184.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30028.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 353832197.0, "Total blocks": 353832197.0, "Ops per second": 11783115.26, "ns per ops": 84.87, "Ops per threads": 353832.0, "Ops per procs": 176916098.0, "Ops/sec/procs": 5891557.63, "ns per ops/procs": 169.73}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30062.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5821046424.0, "Total blocks": 5821046423.0, "Ops per second": 193634096.89, "ns per ops": 5.16, "Ops per threads": 80847.0, "Ops per procs": 40423933.0, "Ops/sec/procs": 1344681.23, "ns per ops/procs": 743.67}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162552784.0, "Ops per second": 5418426.0, "ns per ops": 185.0, "Ops per threads": 325105.0, "Ops per procs": 162552784.0, "Ops/sec/procs": 5418426.0, "ns per ops/procs": 185.0}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1402350785.0, "Ops per second": 46742468.86, "ns per ops": 21.39, "Ops per threads": 350587.0, "Ops per procs": 175293848.0, "Ops/sec/procs": 5842808.61, "ns per ops/procs": 171.15}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1323522158.0, "Total blocks": 1323522158.0, "Ops per second": 44074966.18, "ns per ops": 22.69, "Ops per threads": 330880.0, "Ops per procs": 165440269.0, "Ops/sec/procs": 5509370.77, "ns per ops/procs": 181.51}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 602384763.0, "Ops per second": 20079492.0, "ns per ops": 49.0, "Ops per threads": 301192.0, "Ops per procs": 150596190.0, "Ops/sec/procs": 5019873.0, "ns per ops/procs": 199.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.844478, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168282526.0, "Total blocks": 168282026.0, "Ops per second": 5600113.04, "ns per ops": 178.57, "Ops per threads": 336565.0, "Ops per procs": 168282526.0, "Ops/sec/procs": 5600113.04, "ns per ops/procs": 178.57}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30056.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 177331040.0, "Ops per second": 5900011.31, "ns per ops": 169.49, "Ops per threads": 354662.0, "Ops per procs": 177331040.0, "Ops/sec/procs": 5900011.31, "ns per ops/procs": 169.49}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30061.367024, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3378041546.0, "Total blocks": 3378041446.0, "Ops per second": 112371521.34, "ns per ops": 8.9, "Ops per threads": 140751.0, "Ops per procs": 70375865.0, "Ops/sec/procs": 2341073.36, "ns per ops/procs": 427.15}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30075.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5548430660.0, "Total blocks": 5548430660.0, "Ops per second": 184481901.95, "ns per ops": 5.42, "Ops per threads": 77061.0, "Ops per procs": 38530768.0, "Ops/sec/procs": 1281124.32, "ns per ops/procs": 780.56}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30029.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 354677490.0, "Total blocks": 354677490.0, "Ops per second": 11811114.32, "ns per ops": 84.67, "Ops per threads": 354677.0, "Ops per procs": 177338745.0, "Ops/sec/procs": 5905557.16, "ns per ops/procs": 169.33}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30019.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7047202390.0, "Ops per second": 234906746.0, "ns per ops": 4.0, "Ops per threads": 146816.0, "Ops per procs": 73408358.0, "Ops/sec/procs": 2446945.0, "ns per ops/procs": 408.0}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1402724865.0, "Ops per second": 46755017.27, "ns per ops": 21.39, "Ops per threads": 350681.0, "Ops per procs": 175340608.0, "Ops/sec/procs": 5844377.16, "ns per ops/procs": 171.1}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 31973.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6951513771.0, "Ops per second": 217415845.93, "ns per ops": 4.6, "Ops per threads": 144823.0, "Ops per procs": 72411601.0, "Ops/sec/procs": 2264748.4, "ns per ops/procs": 441.55}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 355436412.0, "Ops per second": 11847296.18, "ns per ops": 84.41, "Ops per threads": 355436.0, "Ops per procs": 177718206.0, "Ops/sec/procs": 5923648.09, "ns per ops/procs": 168.81}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30019.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6543638721.0, "Ops per second": 217982377.4, "ns per ops": 4.59, "Ops per threads": 181767.0, "Ops per procs": 90883871.0, "Ops/sec/procs": 3027533.02, "ns per ops/procs": 330.3}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30078.528168, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1831961754.0, "Total blocks": 1831961739.0, "Ops per second": 60905964.01, "ns per ops": 16.42, "Ops per threads": 228995.0, "Ops per procs": 114497609.0, "Ops/sec/procs": 3806622.75, "ns per ops/procs": 262.7}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30030.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 685764463.0, "Total blocks": 685764463.0, "Ops per second": 22835854.4, "ns per ops": 43.79, "Ops per threads": 342882.0, "Ops per procs": 171441115.0, "Ops/sec/procs": 5708963.6, "ns per ops/procs": 175.16}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30099.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7119958966.0, "Ops per second": 237331965.0, "ns per ops": 4.0, "Ops per threads": 148332.0, "Ops per procs": 74166239.0, "Ops/sec/procs": 2472207.0, "ns per ops/procs": 405.0}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 166961568.0, "Ops per second": 5565144.87, "ns per ops": 179.69, "Ops per threads": 333923.0, "Ops per procs": 166961568.0, "Ops/sec/procs": 5565144.87, "ns per ops/procs": 179.69}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30096.788531, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5725635556.0, "Total blocks": 5725635554.0, "Ops per second": 190240747.78, "ns per ops": 5.26, "Ops per threads": 159045.0, "Ops per procs": 79522716.0, "Ops/sec/procs": 2642232.61, "ns per ops/procs": 378.47}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30022.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3100607476.0, "Ops per second": 103276497.01, "ns per ops": 9.68, "Ops per threads": 258383.0, "Ops per procs": 129191978.0, "Ops/sec/procs": 4303187.38, "ns per ops/procs": 232.39}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30009.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10940703132.0, "Ops per second": 364690104.0, "ns per ops": 2.0, "Ops per threads": 151954.0, "Ops per procs": 75977105.0, "Ops/sec/procs": 2532570.0, "ns per ops/procs": 394.0}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1409199247.0, "Ops per second": 46970740.19, "ns per ops": 21.29, "Ops per threads": 352299.0, "Ops per procs": 176149905.0, "Ops/sec/procs": 5871342.52, "ns per ops/procs": 170.32}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30077.151458, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1857888585.0, "Total blocks": 1857880588.0, "Ops per second": 61770762.69, "ns per ops": 16.19, "Ops per threads": 232236.0, "Ops per procs": 116118036.0, "Ops/sec/procs": 3860672.67, "ns per ops/procs": 259.02}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162950614.0, "Ops per second": 5431687.0, "ns per ops": 184.0, "Ops per threads": 325901.0, "Ops per procs": 162950614.0, "Ops/sec/procs": 5431687.0, "ns per ops/procs": 184.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30014.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2610670643.0, "Total blocks": 2610670643.0, "Ops per second": 86981543.44, "ns per ops": 11.5, "Ops per threads": 217555.0, "Ops per procs": 108777943.0, "Ops/sec/procs": 3624230.98, "ns per ops/procs": 275.92}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30095.017759, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5739834747.0, "Total blocks": 5739834737.0, "Ops per second": 190723753.45, "ns per ops": 5.24, "Ops per threads": 159439.0, "Ops per procs": 79719927.0, "Ops/sec/procs": 2648941.02, "ns per ops/procs": 377.51}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30099.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6157074628.0, "Ops per second": 205235820.0, "ns per ops": 4.0, "Ops per threads": 171029.0, "Ops per procs": 85514925.0, "Ops/sec/procs": 2850497.0, "ns per ops/procs": 351.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30098.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 319104084.0, "Ops per second": 10636802.0, "ns per ops": 94.0, "Ops per threads": 319104.0, "Ops per procs": 159552042.0, "Ops/sec/procs": 5318401.0, "ns per ops/procs": 188.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30047.050567, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13009565490.0, "Total blocks": 13009565329.0, "Ops per second": 432973128.63, "ns per ops": 2.31, "Ops per threads": 135516.0, "Ops per procs": 67758153.0, "Ops/sec/procs": 2255068.38, "ns per ops/procs": 443.45}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30001.431795, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5787452159.0, "Total blocks": 5787452154.0, "Ops per second": 192905865.24, "ns per ops": 5.18, "Ops per threads": 160762.0, "Ops per procs": 80381279.0, "Ops/sec/procs": 2679248.13, "ns per ops/procs": 373.24}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30017.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7213410320.0, "Ops per second": 240447010.0, "ns per ops": 4.0, "Ops per threads": 150279.0, "Ops per procs": 75139690.0, "Ops/sec/procs": 2504656.0, "ns per ops/procs": 399.0}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167754685.0, "Ops per second": 5591577.65, "ns per ops": 178.84, "Ops per threads": 335509.0, "Ops per procs": 167754685.0, "Ops/sec/procs": 5591577.65, "ns per ops/procs": 178.84}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3864670230.0, "Ops per second": 128822341.0, "ns per ops": 7.0, "Ops per threads": 161027.0, "Ops per procs": 80513963.0, "Ops/sec/procs": 2683798.0, "ns per ops/procs": 373.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30032.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 695166461.0, "Total blocks": 695166461.0, "Ops per second": 23146964.07, "ns per ops": 43.2, "Ops per threads": 347583.0, "Ops per procs": 173791615.0, "Ops/sec/procs": 5786741.02, "ns per ops/procs": 172.81}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30018.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3706857263.0, "Ops per second": 123484922.61, "ns per ops": 8.1, "Ops per threads": 154452.0, "Ops per procs": 77226192.0, "Ops/sec/procs": 2572602.55, "ns per ops/procs": 388.71}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30051.53345, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 287080397.0, "Total blocks": 287079577.0, "Ops per second": 9552936.71, "ns per ops": 104.68, "Ops per threads": 287080.0, "Ops per procs": 143540198.0, "Ops/sec/procs": 4776468.35, "ns per ops/procs": 209.36}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30045.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2433564524.0, "Total blocks": 2433564524.0, "Ops per second": 80996467.02, "ns per ops": 12.35, "Ops per threads": 101398.0, "Ops per procs": 50699260.0, "Ops/sec/procs": 1687426.4, "ns per ops/procs": 592.62}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30099.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6472856837.0, "Ops per second": 215761894.0, "ns per ops": 4.0, "Ops per threads": 179801.0, "Ops per procs": 89900789.0, "Ops/sec/procs": 2996692.0, "ns per ops/procs": 334.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30035.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2120121958.0, "Total blocks": 2120121958.0, "Ops per second": 70586108.43, "ns per ops": 14.17, "Ops per threads": 265015.0, "Ops per procs": 132507622.0, "Ops/sec/procs": 4411631.78, "ns per ops/procs": 226.67}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30042.245795, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6622514344.0, "Total blocks": 6622514234.0, "Ops per second": 220440055.95, "ns per ops": 4.54, "Ops per threads": 137969.0, "Ops per procs": 68984524.0, "Ops/sec/procs": 2296250.58, "ns per ops/procs": 435.49}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30055.732158, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6604753194.0, "Total blocks": 6604753086.0, "Ops per second": 219750201.37, "ns per ops": 4.55, "Ops per threads": 137599.0, "Ops per procs": 68799512.0, "Ops/sec/procs": 2289064.6, "ns per ops/procs": 436.86}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30014.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2545408494.0, "Total blocks": 2545408494.0, "Ops per second": 84806664.64, "ns per ops": 11.79, "Ops per threads": 212117.0, "Ops per procs": 106058687.0, "Ops/sec/procs": 3533611.03, "ns per ops/procs": 283.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30098.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6020528116.0, "Total blocks": 6020528115.0, "Ops per second": 200029919.25, "ns per ops": 5.0, "Ops per threads": 83618.0, "Ops per procs": 41809223.0, "Ops/sec/procs": 1389096.66, "ns per ops/procs": 719.89}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30060.083132, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9782889449.0, "Total blocks": 9782889284.0, "Ops per second": 325444524.09, "ns per ops": 3.07, "Ops per threads": 135873.0, "Ops per procs": 67936732.0, "Ops/sec/procs": 2260031.42, "ns per ops/procs": 442.47}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 356743374.0, "Ops per second": 11890870.66, "ns per ops": 84.1, "Ops per threads": 356743.0, "Ops per procs": 178371687.0, "Ops/sec/procs": 5945435.33, "ns per ops/procs": 168.2}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 317852778.0, "Ops per second": 10595092.0, "ns per ops": 94.0, "Ops per threads": 317852.0, "Ops per procs": 158926389.0, "Ops/sec/procs": 5297546.0, "ns per ops/procs": 189.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30098.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2895124114.0, "Ops per second": 96504137.0, "ns per ops": 10.0, "Ops per threads": 241260.0, "Ops per procs": 120630171.0, "Ops/sec/procs": 4021005.0, "ns per ops/procs": 249.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.470499, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168084882.0, "Total blocks": 168084382.0, "Ops per second": 5593605.45, "ns per ops": 178.78, "Ops per threads": 336169.0, "Ops per procs": 168084882.0, "Ops/sec/procs": 5593605.45, "ns per ops/procs": 178.78}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30027.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10761241751.0, "Ops per second": 358708058.0, "ns per ops": 2.0, "Ops per threads": 149461.0, "Ops per procs": 74730845.0, "Ops/sec/procs": 2491028.0, "ns per ops/procs": 401.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1324023447.0, "Total blocks": 1324023447.0, "Ops per second": 44091827.82, "ns per ops": 22.68, "Ops per threads": 331005.0, "Ops per procs": 165502930.0, "Ops/sec/procs": 5511478.48, "ns per ops/procs": 181.44}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30027.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 203455905.0, "Total blocks": 203455405.0, "Ops per second": 6775601.39, "ns per ops": 147.59, "Ops per threads": 406911.0, "Ops per procs": 203455905.0, "Ops/sec/procs": 6775601.39, "ns per ops/procs": 147.59}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30021.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2463984837.0, "Total blocks": 2463984837.0, "Ops per second": 82074427.81, "ns per ops": 12.18, "Ops per threads": 102666.0, "Ops per procs": 51333017.0, "Ops/sec/procs": 1709883.91, "ns per ops/procs": 584.84}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30075.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2106564701.0, "Total blocks": 2106564701.0, "Ops per second": 70043153.34, "ns per ops": 14.28, "Ops per threads": 263320.0, "Ops per procs": 131660293.0, "Ops/sec/procs": 4377697.08, "ns per ops/procs": 228.43}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 357506708.0, "Ops per second": 11916322.0, "ns per ops": 83.92, "Ops per threads": 357506.0, "Ops per procs": 178753354.0, "Ops/sec/procs": 5958161.0, "ns per ops/procs": 167.84}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30061.163091, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1026780598.0, "Total blocks": 1026776602.0, "Ops per second": 34156382.93, "ns per ops": 29.28, "Ops per threads": 256695.0, "Ops per procs": 128347574.0, "Ops/sec/procs": 4269547.87, "ns per ops/procs": 234.22}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30070.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6213642756.0, "Total blocks": 6213642755.0, "Ops per second": 206633220.58, "ns per ops": 4.84, "Ops per threads": 64725.0, "Ops per procs": 32362722.0, "Ops/sec/procs": 1076214.69, "ns per ops/procs": 929.18}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30076.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4908338160.0, "Total blocks": 4908338160.0, "Ops per second": 163192828.31, "ns per ops": 6.13, "Ops per threads": 136342.0, "Ops per procs": 68171363.0, "Ops/sec/procs": 2266567.06, "ns per ops/procs": 441.2}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30007.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13166096917.0, "Ops per second": 438869897.0, "ns per ops": 2.0, "Ops per threads": 137146.0, "Ops per procs": 68573421.0, "Ops/sec/procs": 2285780.0, "ns per ops/procs": 437.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30060.200019, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1017967886.0, "Total blocks": 1017963889.0, "Ops per second": 33864308.47, "ns per ops": 29.53, "Ops per threads": 254491.0, "Ops per procs": 127245985.0, "Ops/sec/procs": 4233038.56, "ns per ops/procs": 236.24}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30098.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2868129924.0, "Ops per second": 95604330.0, "ns per ops": 10.0, "Ops per threads": 239010.0, "Ops per procs": 119505413.0, "Ops/sec/procs": 3983513.0, "ns per ops/procs": 251.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30060.131407, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9796839664.0, "Total blocks": 9796839514.0, "Ops per second": 325908078.42, "ns per ops": 3.07, "Ops per threads": 136067.0, "Ops per procs": 68033608.0, "Ops/sec/procs": 2263250.54, "ns per ops/procs": 441.84}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1160787909.0, "Ops per second": 38692930.0, "ns per ops": 25.0, "Ops per threads": 290196.0, "Ops per procs": 145098488.0, "Ops/sec/procs": 4836616.0, "ns per ops/procs": 207.0}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 45260.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3987340170.0, "Ops per second": 88097105.54, "ns per ops": 11.35, "Ops per threads": 498417.0, "Ops per procs": 249208760.0, "Ops/sec/procs": 5506069.1, "ns per ops/procs": 181.62}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167648846.0, "Ops per second": 5588052.79, "ns per ops": 178.95, "Ops per threads": 335297.0, "Ops per procs": 167648846.0, "Ops/sec/procs": 5588052.79, "ns per ops/procs": 178.95}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1408129070.0, "Ops per second": 46935143.22, "ns per ops": 21.31, "Ops per threads": 352032.0, "Ops per procs": 176016133.0, "Ops/sec/procs": 5866892.9, "ns per ops/procs": 170.45}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30013.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10992470958.0, "Ops per second": 366246427.46, "ns per ops": 2.73, "Ops per threads": 152673.0, "Ops per procs": 76336603.0, "Ops/sec/procs": 2543377.97, "ns per ops/procs": 393.18}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30100.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4513527225.0, "Total blocks": 4513527225.0, "Ops per second": 149950768.1, "ns per ops": 6.67, "Ops per threads": 94031.0, "Ops per procs": 47015908.0, "Ops/sec/procs": 1561987.17, "ns per ops/procs": 640.21}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3813148384.0, "Ops per second": 127104946.0, "ns per ops": 7.0, "Ops per threads": 158881.0, "Ops per procs": 79440591.0, "Ops/sec/procs": 2648019.0, "ns per ops/procs": 378.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1162538978.0, "Ops per second": 38751299.0, "ns per ops": 25.0, "Ops per threads": 290634.0, "Ops per procs": 145317372.0, "Ops/sec/procs": 4843912.0, "ns per ops/procs": 207.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2192193064.0, "Ops per second": 73073102.0, "ns per ops": 13.0, "Ops per threads": 274024.0, "Ops per procs": 137012066.0, "Ops/sec/procs": 4567068.0, "ns per ops/procs": 219.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 317401876.0, "Ops per second": 10580062.0, "ns per ops": 94.0, "Ops per threads": 317401.0, "Ops per procs": 158700938.0, "Ops/sec/procs": 5290031.0, "ns per ops/procs": 189.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30044.593524, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12980265593.0, "Total blocks": 12980265396.0, "Ops per second": 432033323.49, "ns per ops": 2.31, "Ops per threads": 135211.0, "Ops per procs": 67605549.0, "Ops/sec/procs": 2250173.56, "ns per ops/procs": 444.41}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1406578373.0, "Ops per second": 46883439.46, "ns per ops": 21.33, "Ops per threads": 351644.0, "Ops per procs": 175822296.0, "Ops/sec/procs": 5860429.93, "ns per ops/procs": 170.64}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30062.219521, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9813403166.0, "Total blocks": 9813403027.0, "Ops per second": 326436414.95, "ns per ops": 3.06, "Ops per threads": 136297.0, "Ops per procs": 68148633.0, "Ops/sec/procs": 2266919.55, "ns per ops/procs": 441.13}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 696442241.0, "Total blocks": 696442241.0, "Ops per second": 23191813.03, "ns per ops": 43.12, "Ops per threads": 348221.0, "Ops per procs": 174110560.0, "Ops/sec/procs": 5797953.26, "ns per ops/procs": 172.47}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2892522474.0, "Ops per second": 96417415.0, "ns per ops": 10.0, "Ops per threads": 241043.0, "Ops per procs": 120521769.0, "Ops/sec/procs": 4017392.0, "ns per ops/procs": 249.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30076.989415, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1848043403.0, "Total blocks": 1848035398.0, "Ops per second": 61443762.79, "ns per ops": 16.28, "Ops per threads": 231005.0, "Ops per procs": 115502712.0, "Ops/sec/procs": 3840235.17, "ns per ops/procs": 260.4}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30017.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13005784322.0, "Ops per second": 433269842.67, "ns per ops": 2.31, "Ops per threads": 135476.0, "Ops per procs": 67738460.0, "Ops/sec/procs": 2256613.76, "ns per ops/procs": 443.14}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30000.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12989791138.0, "Ops per second": 432993037.0, "ns per ops": 2.0, "Ops per threads": 135310.0, "Ops per procs": 67655162.0, "Ops/sec/procs": 2255172.0, "ns per ops/procs": 443.0}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 356196915.0, "Ops per second": 11872645.1, "ns per ops": 84.23, "Ops per threads": 356196.0, "Ops per procs": 178098457.0, "Ops/sec/procs": 5936322.55, "ns per ops/procs": 168.45}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30051.049115, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 287543256.0, "Total blocks": 287542260.0, "Ops per second": 9568493.1, "ns per ops": 104.51, "Ops per threads": 287543.0, "Ops per procs": 143771628.0, "Ops/sec/procs": 4784246.55, "ns per ops/procs": 209.02}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1314133910.0, "Total blocks": 1314133910.0, "Ops per second": 43762378.43, "ns per ops": 22.85, "Ops per threads": 328533.0, "Ops per procs": 164266738.0, "Ops/sec/procs": 5470297.3, "ns per ops/procs": 182.81}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30024.222708, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2407437835.0, "Total blocks": 2407437829.0, "Ops per second": 80183186.04, "ns per ops": 12.47, "Ops per threads": 200619.0, "Ops per procs": 100309909.0, "Ops/sec/procs": 3340966.08, "ns per ops/procs": 299.31}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30098.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 603435249.0, "Ops per second": 20114508.0, "ns per ops": 49.0, "Ops per threads": 301717.0, "Ops per procs": 150858812.0, "Ops/sec/procs": 5028627.0, "ns per ops/procs": 199.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1164638238.0, "Ops per second": 38821274.0, "ns per ops": 25.0, "Ops per threads": 291159.0, "Ops per procs": 145579779.0, "Ops/sec/procs": 4852659.0, "ns per ops/procs": 206.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30028.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4923893600.0, "Total blocks": 4923893600.0, "Ops per second": 163972816.18, "ns per ops": 6.1, "Ops per threads": 136774.0, "Ops per procs": 68387411.0, "Ops/sec/procs": 2277400.22, "ns per ops/procs": 439.1}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30000.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13275252471.0, "Ops per second": 442508415.0, "ns per ops": 2.0, "Ops per threads": 138283.0, "Ops per procs": 69141939.0, "Ops/sec/procs": 2304731.0, "ns per ops/procs": 433.0}]] -
doc/theses/thierry_delisle_PhD/thesis/data/cycle.low.jax
r12df6fe r4520b77e 1 [["rdq-cycle- tokio", "./rdq-cycle-tokio -p 8 -d 10 -r 5 -t 8", {"Duration (ms)": 10012.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 76310077.0, "Ops per second": 7631007.0, "ns per ops": 131.0, "Ops per threads": 1907751.0, "Ops per procs": 9538759.0, "Ops/sec/procs": 953875.0, "ns per ops/procs": 1049.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 10 -r 5 -t 16", {"Duration (ms)": 10010.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 60971759.0, "Total blocks": 60971758.0, "Ops per second": 6090773.1, "ns per ops": 164.18, "Ops per threads": 762146.0, "Ops per procs": 3810734.0, "Ops/sec/procs": 380673.32, "ns per ops/procs": 2626.92}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 10 -r 5 -t 16", {"Duration (ms)": 10025.310277, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 181018643.0, "Total blocks": 181017892.0, "Ops per second": 18056163.65, "ns per ops": 55.38, "Ops per threads": 2262733.0, "Ops per procs": 11313665.0, "Ops/sec/procs": 1128510.23, "ns per ops/procs": 886.12}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 10 -r 5 -t 16", {"Duration (ms)": 10026.598882, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 194131436.0, "Total blocks": 194130800.0, "Ops per second": 19361643.79, "ns per ops": 51.65, "Ops per threads": 2426642.0, "Ops per procs": 12133214.0, "Ops/sec/procs": 1210102.74, "ns per ops/procs": 826.38}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 10 -r 5 -t 24", {"Duration (ms)": 10006.334698, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 227505184.0, "Total blocks": 227503833.0, "Ops per second": 22736115.76, "ns per ops": 43.98, "Ops per threads": 1895876.0, "Ops per procs": 9479382.0, "Ops/sec/procs": 947338.16, "ns per ops/procs": 1055.59}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 10 -r 5 -t 1", {"Duration (ms)": 10016.990169, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 66752749.0, "Total blocks": 66752748.0, "Ops per second": 6663952.73, "ns per ops": 150.06, "Ops per threads": 13350549.0, "Ops per procs": 66752749.0, "Ops/sec/procs": 6663952.73, "ns per ops/procs": 150.06}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 10 -r 5 -t 16", {"Duration (ms)": 10000.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 279630079.0, "Ops per second": 27961432.66, "ns per ops": 35.76, "Ops per threads": 3495375.0, "Ops per procs": 17476879.0, "Ops/sec/procs": 1747589.54, "ns per ops/procs": 572.22}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 10 -r 5 -t 8", {"Duration (ms)": 10007.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 59771852.0, "Total blocks": 59771852.0, "Ops per second": 5972444.0, "ns per ops": 167.44, "Ops per threads": 1494296.0, "Ops per procs": 7471481.0, "Ops/sec/procs": 746555.5, "ns per ops/procs": 1339.49}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 10 -r 5 -t 24", {"Duration (ms)": 10099.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 232398538.0, "Ops per second": 23239853.0, "ns per ops": 43.0, "Ops per threads": 1936654.0, "Ops per procs": 9683272.0, "Ops/sec/procs": 968327.0, "ns per ops/procs": 1043.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 10 -r 5 -t 8", {"Duration (ms)": 10020.460683, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 123722971.0, "Total blocks": 123722720.0, "Ops per second": 12347034.22, "ns per ops": 80.99, "Ops per threads": 3093074.0, "Ops per procs": 15465371.0, "Ops/sec/procs": 1543379.28, "ns per ops/procs": 647.93}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 10 -r 5 -t 1", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 56469367.0, "Ops per second": 5646680.63, "ns per ops": 177.1, "Ops per threads": 11293873.0, "Ops per procs": 56469367.0, "Ops/sec/procs": 5646680.63, "ns per ops/procs": 177.1}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 10 -r 5 -t 1", {"Duration (ms)": 10016.913984, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 66648794.0, "Total blocks": 66648790.0, "Ops per second": 6653625.47, "ns per ops": 150.29, "Ops per threads": 13329758.0, "Ops per procs": 66648794.0, "Ops/sec/procs": 6653625.47, "ns per ops/procs": 150.29}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 10 -r 5 -t 8", {"Duration (ms)": 10000.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 178174877.0, "Ops per second": 17816504.68, "ns per ops": 56.13, "Ops per threads": 4454371.0, "Ops per procs": 22271859.0, "Ops/sec/procs": 2227063.08, "ns per ops/procs": 449.02}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 10 -r 5 -t 24", {"Duration (ms)": 10004.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 59200307.0, "Total blocks": 59200307.0, "Ops per second": 5917304.82, "ns per ops": 169.0, "Ops per threads": 493335.0, "Ops per procs": 2466679.0, "Ops/sec/procs": 246554.37, "ns per ops/procs": 4055.9}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 10 -r 5 -t 24", {"Duration (ms)": 10000.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 489892922.0, "Ops per second": 48986097.69, "ns per ops": 20.41, "Ops per threads": 4082441.0, "Ops per procs": 20412205.0, "Ops/sec/procs": 2041087.4, "ns per ops/procs": 489.93}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 10 -r 5 -t 24", {"Duration (ms)": 10100.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 267579722.0, "Ops per second": 26757972.0, "ns per ops": 37.0, "Ops per threads": 2229831.0, "Ops per procs": 11149155.0, "Ops/sec/procs": 1114915.0, "ns per ops/procs": 905.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 10 -r 5 -t 24", {"Duration (ms)": 10002.567137, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 221454282.0, "Total blocks": 221452348.0, "Ops per second": 22139744.62, "ns per ops": 45.17, "Ops per threads": 1845452.0, "Ops per procs": 9227261.0, "Ops/sec/procs": 922489.36, "ns per ops/procs": 1084.02}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 10 -r 5 -t 8", {"Duration (ms)": 10020.640204, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 119212534.0, "Total blocks": 119212291.0, "Ops per second": 11896698.37, "ns per ops": 84.06, "Ops per threads": 2980313.0, "Ops per procs": 14901566.0, "Ops/sec/procs": 1487087.3, "ns per ops/procs": 672.46}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 10 -r 5 -t 1", {"Duration (ms)": 10015.706272, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 66731723.0, "Total blocks": 66731719.0, "Ops per second": 6662707.67, "ns per ops": 150.09, "Ops per threads": 13346344.0, "Ops per procs": 66731723.0, "Ops/sec/procs": 6662707.67, "ns per ops/procs": 150.09}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 10 -r 5 -t 8", {"Duration (ms)": 10000.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 152568234.0, "Ops per second": 15255771.25, "ns per ops": 65.55, "Ops per threads": 3814205.0, "Ops per procs": 19071029.0, "Ops/sec/procs": 1906971.41, "ns per ops/procs": 524.39}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 10 -r 5 -t 16", {"Duration (ms)": 10000.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 289322235.0, "Ops per second": 28930586.92, "ns per ops": 34.57, "Ops per threads": 3616527.0, "Ops per procs": 18082639.0, "Ops/sec/procs": 1808161.68, "ns per ops/procs": 553.05}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 10 -r 5 -t 24", {"Duration (ms)": 10000.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 487856302.0, "Ops per second": 48781608.3, "ns per ops": 20.5, "Ops per threads": 4065469.0, "Ops per procs": 20327345.0, "Ops/sec/procs": 2032567.01, "ns per ops/procs": 491.99}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 10 -r 5 -t 8", {"Duration (ms)": 10009.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 76846283.0, "Ops per second": 7684628.0, "ns per ops": 130.0, "Ops per threads": 1921157.0, "Ops per procs": 9605785.0, "Ops/sec/procs": 960578.0, "ns per ops/procs": 1042.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 10 -r 5 -t 24", {"Duration (ms)": 10002.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 57552105.0, "Total blocks": 57552103.0, "Ops per second": 5753926.0, "ns per ops": 173.79, "Ops per threads": 479600.0, "Ops per procs": 2398004.0, "Ops/sec/procs": 239746.92, "ns per ops/procs": 4171.07}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 10 -r 5 -t 8", {"Duration (ms)": 10016.759028, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 123970604.0, "Total blocks": 123970351.0, "Ops per second": 12376318.89, "ns per ops": 80.8, "Ops per threads": 3099265.0, "Ops per procs": 15496325.0, "Ops/sec/procs": 1547039.86, "ns per ops/procs": 646.4}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 10 -r 5 -t 8", {"Duration (ms)": 10007.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 61716938.0, "Total blocks": 61716938.0, "Ops per second": 6166945.93, "ns per ops": 162.15, "Ops per threads": 1542923.0, "Ops per procs": 7714617.0, "Ops/sec/procs": 770868.24, "ns per ops/procs": 1297.24}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 10 -r 5 -t 1", {"Duration (ms)": 10007.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 70872904.0, "Total blocks": 70872899.0, "Ops per second": 7081970.19, "ns per ops": 141.2, "Ops per threads": 14174580.0, "Ops per procs": 70872904.0, "Ops/sec/procs": 7081970.19, "ns per ops/procs": 141.2}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 10 -r 5 -t 16", {"Duration (ms)": 10001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 156397978.0, "Ops per second": 15639797.0, "ns per ops": 63.0, "Ops per threads": 1954974.0, "Ops per procs": 9774873.0, "Ops/sec/procs": 977487.0, "ns per ops/procs": 1023.0}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 10 -r 5 -t 8", {"Duration (ms)": 10000.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 150292371.0, "Ops per second": 15028431.57, "ns per ops": 66.54, "Ops per threads": 3757309.0, "Ops per procs": 18786546.0, "Ops/sec/procs": 1878553.95, "ns per ops/procs": 532.32}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 10 -r 5 -t 16", {"Duration (ms)": 10009.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 59322364.0, "Total blocks": 59322364.0, "Ops per second": 5926827.38, "ns per ops": 168.72, "Ops per threads": 741529.0, "Ops per procs": 3707647.0, "Ops/sec/procs": 370426.71, "ns per ops/procs": 2699.59}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 10 -r 5 -t 24", {"Duration (ms)": 10000.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 484392787.0, "Ops per second": 48436133.63, "ns per ops": 20.65, "Ops per threads": 4036606.0, "Ops per procs": 20183032.0, "Ops/sec/procs": 2018172.23, "ns per ops/procs": 495.5}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 10 -r 5 -t 1", {"Duration (ms)": 10007.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 71150883.0, "Total blocks": 71150878.0, "Ops per second": 7109813.4, "ns per ops": 140.65, "Ops per threads": 14230176.0, "Ops per procs": 71150883.0, "Ops/sec/procs": 7109813.4, "ns per ops/procs": 140.65}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 10 -r 5 -t 8", {"Duration (ms)": 10008.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 80740751.0, "Ops per second": 8074075.0, "ns per ops": 123.0, "Ops per threads": 2018518.0, "Ops per procs": 10092593.0, "Ops/sec/procs": 1009259.0, "ns per ops/procs": 991.0}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 10 -r 5 -t 16", {"Duration (ms)": 10000.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 288121315.0, "Ops per second": 28809957.03, "ns per ops": 34.71, "Ops per threads": 3601516.0, "Ops per procs": 18007582.0, "Ops/sec/procs": 1800622.31, "ns per ops/procs": 555.36}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 10 -r 5 -t 16", {"Duration (ms)": 10100.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 153491548.0, "Ops per second": 15349154.0, "ns per ops": 65.0, "Ops per threads": 1918644.0, "Ops per procs": 9593221.0, "Ops/sec/procs": 959322.0, "ns per ops/procs": 1052.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 10 -r 5 -t 24", {"Duration (ms)": 10100.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 265150851.0, "Ops per second": 26515085.0, "ns per ops": 38.0, "Ops per threads": 2209590.0, "Ops per procs": 11047952.0, "Ops/sec/procs": 1104795.0, "ns per ops/procs": 914.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 10 -r 5 -t 1", {"Duration (ms)": 10100.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 54873960.0, "Ops per second": 5487396.0, "ns per ops": 184.0, "Ops per threads": 10974792.0, "Ops per procs": 54873960.0, "Ops/sec/procs": 5487396.0, "ns per ops/procs": 184.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 10 -r 5 -t 16", {"Duration (ms)": 10000.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 164735691.0, "Ops per second": 16473569.0, "ns per ops": 60.0, "Ops per threads": 2059196.0, "Ops per procs": 10295980.0, "Ops/sec/procs": 1029598.0, "ns per ops/procs": 971.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 10 -r 5 -t 1", {"Duration (ms)": 10007.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 71038106.0, "Total blocks": 71038101.0, "Ops per second": 7098555.38, "ns per ops": 140.87, "Ops per threads": 14207621.0, "Ops per procs": 71038106.0, "Ops/sec/procs": 7098555.38, "ns per ops/procs": 140.87}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 10 -r 5 -t 24", {"Duration (ms)": 10007.037227, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 233110848.0, "Total blocks": 233109436.0, "Ops per second": 23294691.8, "ns per ops": 42.93, "Ops per threads": 1942590.0, "Ops per procs": 9712952.0, "Ops/sec/procs": 970612.16, "ns per ops/procs": 1030.28}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 10 -r 5 -t 16", {"Duration (ms)": 10012.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 60897008.0, "Total blocks": 60897007.0, "Ops per second": 6082228.89, "ns per ops": 164.41, "Ops per threads": 761212.0, "Ops per procs": 3806063.0, "Ops/sec/procs": 380139.31, "ns per ops/procs": 2630.61}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 10 -r 5 -t 1", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 56664861.0, "Ops per second": 5666229.66, "ns per ops": 176.48, "Ops per threads": 11332972.0, "Ops per procs": 56664861.0, "Ops/sec/procs": 5666229.66, "ns per ops/procs": 176.48}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 10 -r 5 -t 1", {"Duration (ms)": 10100.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 54918505.0, "Ops per second": 5491850.0, "ns per ops": 183.0, "Ops per threads": 10983701.0, "Ops per procs": 54918505.0, "Ops/sec/procs": 5491850.0, "ns per ops/procs": 183.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 10 -r 5 -t 1", {"Duration (ms)": 10100.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 54930921.0, "Ops per second": 5493092.0, "ns per ops": 183.0, "Ops per threads": 10986184.0, "Ops per procs": 54930921.0, "Ops/sec/procs": 5493092.0, "ns per ops/procs": 183.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 10 -r 5 -t 24", {"Duration (ms)": 10003.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 56683908.0, "Total blocks": 56683908.0, "Ops per second": 5666230.51, "ns per ops": 176.48, "Ops per threads": 472365.0, "Ops per procs": 2361829.0, "Ops/sec/procs": 236092.94, "ns per ops/procs": 4235.62}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 10 -r 5 -t 8", {"Duration (ms)": 10007.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 63241275.0, "Total blocks": 63241275.0, "Ops per second": 6319199.64, "ns per ops": 158.25, "Ops per threads": 1581031.0, "Ops per procs": 7905159.0, "Ops/sec/procs": 789899.95, "ns per ops/procs": 1265.98}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 10 -r 5 -t 1", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 56846729.0, "Ops per second": 5684418.62, "ns per ops": 175.92, "Ops per threads": 11369345.0, "Ops per procs": 56846729.0, "Ops/sec/procs": 5684418.62, "ns per ops/procs": 175.92}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 10 -r 5 -t 16", {"Duration (ms)": 10024.602154, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 189976405.0, "Total blocks": 189975754.0, "Ops per second": 18951016.92, "ns per ops": 52.77, "Ops per threads": 2374705.0, "Ops per procs": 11873525.0, "Ops/sec/procs": 1184438.56, "ns per ops/procs": 844.28}]]1 [["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 895589897.0, "Ops per second": 29851209.43, "ns per ops": 33.5, "Ops per threads": 11194873.0, "Ops per procs": 55974368.0, "Ops/sec/procs": 1865700.59, "ns per ops/procs": 535.99}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2128526861.0, "Total blocks": 2128526861.0, "Ops per second": 70887716.65, "ns per ops": 14.11, "Ops per threads": 26606585.0, "Ops per procs": 133032928.0, "Ops/sec/procs": 4430482.29, "ns per ops/procs": 225.71}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 485585079.0, "Ops per second": 16185350.77, "ns per ops": 61.78, "Ops per threads": 12139626.0, "Ops per procs": 60698134.0, "Ops/sec/procs": 2023168.85, "ns per ops/procs": 494.27}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 485973159.0, "Ops per second": 16198311.67, "ns per ops": 61.73, "Ops per threads": 12149328.0, "Ops per procs": 60746644.0, "Ops/sec/procs": 2024788.96, "ns per ops/procs": 493.88}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1343106113.0, "Ops per second": 44770203.0, "ns per ops": 22.0, "Ops per threads": 2798137.0, "Ops per procs": 13990688.0, "Ops/sec/procs": 466356.0, "ns per ops/procs": 2151.0}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30008.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2352649084.0, "Ops per second": 78398865.23, "ns per ops": 12.76, "Ops per threads": 6535136.0, "Ops per procs": 32675681.0, "Ops/sec/procs": 1088873.13, "ns per ops/procs": 918.38}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30064.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 130312773.0, "Ops per second": 4343759.0, "ns per ops": 230.0, "Ops per threads": 13031277.0, "Ops per procs": 65156386.0, "Ops/sec/procs": 2171879.0, "ns per ops/procs": 461.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30007.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 11472895574.0, "Total blocks": 11472895574.0, "Ops per second": 382337711.74, "ns per ops": 2.62, "Ops per threads": 15934577.0, "Ops per procs": 79672885.0, "Ops/sec/procs": 2655123.0, "ns per ops/procs": 376.63}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30056.072534, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 262162860.0, "Total blocks": 262162494.0, "Ops per second": 8722458.99, "ns per ops": 114.65, "Ops per threads": 13108143.0, "Ops per procs": 65540715.0, "Ops/sec/procs": 2180614.75, "ns per ops/procs": 458.59}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30007.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10143696586.0, "Total blocks": 10143696586.0, "Ops per second": 338037298.44, "ns per ops": 2.96, "Ops per threads": 21132701.0, "Ops per procs": 105663506.0, "Ops/sec/procs": 3521221.86, "ns per ops/procs": 283.99}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1479467592.0, "Ops per second": 49312537.32, "ns per ops": 20.28, "Ops per threads": 12328896.0, "Ops per procs": 61644483.0, "Ops/sec/procs": 2054689.05, "ns per ops/procs": 486.69}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30037.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1599732315.0, "Ops per second": 53324410.0, "ns per ops": 18.0, "Ops per threads": 3332775.0, "Ops per procs": 16663878.0, "Ops/sec/procs": 555462.0, "ns per ops/procs": 1802.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 649542259.0, "Ops per second": 21651408.0, "ns per ops": 46.0, "Ops per threads": 5412852.0, "Ops per procs": 27064260.0, "Ops/sec/procs": 902142.0, "ns per ops/procs": 1112.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 319254458.0, "Total blocks": 319254448.0, "Ops per second": 10633476.09, "ns per ops": 94.04, "Ops per threads": 31925445.0, "Ops per procs": 159627229.0, "Ops/sec/procs": 5316738.04, "ns per ops/procs": 188.09}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30064.138432, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1947581814.0, "Total blocks": 1947424799.0, "Ops per second": 64780895.63, "ns per ops": 15.44, "Ops per threads": 2028731.0, "Ops per procs": 10143655.0, "Ops/sec/procs": 337400.5, "ns per ops/procs": 2963.84}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 641605681.0, "Ops per second": 21386856.0, "ns per ops": 46.0, "Ops per threads": 5346714.0, "Ops per procs": 26733570.0, "Ops/sec/procs": 891119.0, "ns per ops/procs": 1125.0}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 291970907.0, "Ops per second": 9731828.27, "ns per ops": 102.76, "Ops per threads": 14598545.0, "Ops per procs": 72992726.0, "Ops/sec/procs": 2432957.07, "ns per ops/procs": 411.02}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 759106749.0, "Total blocks": 759106749.0, "Ops per second": 25283306.61, "ns per ops": 39.55, "Ops per threads": 37955337.0, "Ops per procs": 189776687.0, "Ops/sec/procs": 6320826.65, "ns per ops/procs": 158.21}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2048866101.0, "Ops per second": 68295536.0, "ns per ops": 14.0, "Ops per threads": 2134235.0, "Ops per procs": 10671177.0, "Ops/sec/procs": 355705.0, "ns per ops/procs": 2820.0}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1517931118.0, "Ops per second": 50594592.45, "ns per ops": 19.76, "Ops per threads": 12649425.0, "Ops per procs": 63247129.0, "Ops/sec/procs": 2108108.02, "ns per ops/procs": 474.36}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1493692339.0, "Ops per second": 49786339.58, "ns per ops": 20.09, "Ops per threads": 12447436.0, "Ops per procs": 62237180.0, "Ops/sec/procs": 2074430.82, "ns per ops/procs": 482.06}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 459498200.0, "Ops per second": 15316606.0, "ns per ops": 65.0, "Ops per threads": 5743727.0, "Ops per procs": 28718637.0, "Ops/sec/procs": 957287.0, "ns per ops/procs": 1044.0}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 173884782.0, "Ops per second": 5795856.45, "ns per ops": 172.54, "Ops per threads": 17388478.0, "Ops per procs": 86942391.0, "Ops/sec/procs": 2897928.22, "ns per ops/procs": 345.07}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 154405513.0, "Ops per second": 5146585.19, "ns per ops": 194.3, "Ops per threads": 15440551.0, "Ops per procs": 77202756.0, "Ops/sec/procs": 2573292.6, "ns per ops/procs": 388.61}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30060.485206, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 392631279.0, "Total blocks": 392630621.0, "Ops per second": 13061375.3, "ns per ops": 76.56, "Ops per threads": 9815781.0, "Ops per procs": 49078909.0, "Ops/sec/procs": 1632671.91, "ns per ops/procs": 612.49}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30075.233025, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 618657185.0, "Total blocks": 618655341.0, "Ops per second": 20570320.59, "ns per ops": 48.61, "Ops per threads": 7733214.0, "Ops per procs": 38666074.0, "Ops/sec/procs": 1285645.04, "ns per ops/procs": 777.82}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2073131717.0, "Ops per second": 69079522.22, "ns per ops": 14.48, "Ops per threads": 8638048.0, "Ops per procs": 43190244.0, "Ops/sec/procs": 1439156.71, "ns per ops/procs": 694.85}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30012.579682, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 714006533.0, "Total blocks": 714001826.0, "Ops per second": 23790241.98, "ns per ops": 42.03, "Ops per threads": 5950054.0, "Ops per procs": 29750272.0, "Ops/sec/procs": 991260.08, "ns per ops/procs": 1008.82}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 777414961.0, "Total blocks": 777414961.0, "Ops per second": 25892931.36, "ns per ops": 38.62, "Ops per threads": 38870748.0, "Ops per procs": 194353740.0, "Ops/sec/procs": 6473232.84, "ns per ops/procs": 154.48}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2123540409.0, "Ops per second": 70775412.41, "ns per ops": 14.13, "Ops per threads": 5898723.0, "Ops per procs": 29493616.0, "Ops/sec/procs": 982991.84, "ns per ops/procs": 1017.3}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30020.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2200029225.0, "Ops per second": 73283967.42, "ns per ops": 13.65, "Ops per threads": 4583394.0, "Ops per procs": 22916971.0, "Ops/sec/procs": 763374.66, "ns per ops/procs": 1309.97}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30022.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15302615265.0, "Total blocks": 15302615264.0, "Ops per second": 509706522.9, "ns per ops": 1.96, "Ops per threads": 15940224.0, "Ops per procs": 79701121.0, "Ops/sec/procs": 2654721.47, "ns per ops/procs": 376.69}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 169370556.0, "Ops per second": 5640745.9, "ns per ops": 177.28, "Ops per threads": 33874111.0, "Ops per procs": 169370556.0, "Ops/sec/procs": 5640745.9, "ns per ops/procs": 177.28}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30045.817081, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1136154449.0, "Total blocks": 1136142158.0, "Ops per second": 37814063.97, "ns per ops": 26.45, "Ops per threads": 4733976.0, "Ops per procs": 23669884.0, "Ops/sec/procs": 787793.0, "ns per ops/procs": 1269.37}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30025.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 521913657.0, "Total blocks": 521913657.0, "Ops per second": 17382557.63, "ns per ops": 57.53, "Ops per threads": 26095682.0, "Ops per procs": 130478414.0, "Ops/sec/procs": 4345639.41, "ns per ops/procs": 230.12}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1495946599.0, "Ops per second": 49864886.0, "ns per ops": 20.0, "Ops per threads": 2077703.0, "Ops per procs": 10388518.0, "Ops/sec/procs": 346283.0, "ns per ops/procs": 2897.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2902888354.0, "Total blocks": 2902888354.0, "Ops per second": 96676437.59, "ns per ops": 10.34, "Ops per threads": 36286104.0, "Ops per procs": 181430522.0, "Ops/sec/procs": 6042277.35, "ns per ops/procs": 165.5}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3342843975.0, "Ops per second": 111394087.34, "ns per ops": 8.98, "Ops per threads": 4642838.0, "Ops per procs": 23214194.0, "Ops/sec/procs": 773570.05, "ns per ops/procs": 1292.71}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30027.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2357681191.0, "Total blocks": 2357681191.0, "Ops per second": 78516192.18, "ns per ops": 12.74, "Ops per threads": 29471014.0, "Ops per procs": 147355074.0, "Ops/sec/procs": 4907262.01, "ns per ops/procs": 203.78}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30006.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2298798821.0, "Ops per second": 76611211.25, "ns per ops": 13.05, "Ops per threads": 6385552.0, "Ops per procs": 31927761.0, "Ops/sec/procs": 1064044.6, "ns per ops/procs": 939.81}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30068.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 117657378.0, "Ops per second": 3921912.0, "ns per ops": 255.0, "Ops per threads": 11765737.0, "Ops per procs": 58828689.0, "Ops/sec/procs": 1960956.0, "ns per ops/procs": 511.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 163782377.0, "Ops per second": 5459412.0, "ns per ops": 183.0, "Ops per threads": 32756475.0, "Ops per procs": 163782377.0, "Ops/sec/procs": 5459412.0, "ns per ops/procs": 183.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30037.979663, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1688934249.0, "Total blocks": 1688823784.0, "Ops per second": 56226626.02, "ns per ops": 17.79, "Ops per threads": 2345742.0, "Ops per procs": 11728710.0, "Ops/sec/procs": 390462.68, "ns per ops/procs": 2561.06}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1516093313.0, "Ops per second": 50533314.39, "ns per ops": 19.79, "Ops per threads": 12634110.0, "Ops per procs": 63170554.0, "Ops/sec/procs": 2105554.77, "ns per ops/procs": 474.93}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4038926114.0, "Total blocks": 4038926114.0, "Ops per second": 134611470.09, "ns per ops": 7.43, "Ops per threads": 16828858.0, "Ops per procs": 84144294.0, "Ops/sec/procs": 2804405.63, "ns per ops/procs": 356.58}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 493541396.0, "Ops per second": 16450557.97, "ns per ops": 60.79, "Ops per threads": 12338534.0, "Ops per procs": 61692674.0, "Ops/sec/procs": 2056319.75, "ns per ops/procs": 486.31}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 927866641.0, "Total blocks": 927866641.0, "Ops per second": 30905378.49, "ns per ops": 32.36, "Ops per threads": 23196666.0, "Ops per procs": 115983330.0, "Ops/sec/procs": 3863172.31, "ns per ops/procs": 258.85}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30010.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4681952714.0, "Ops per second": 156011916.17, "ns per ops": 6.41, "Ops per threads": 4877034.0, "Ops per procs": 24385170.0, "Ops/sec/procs": 812562.06, "ns per ops/procs": 1230.68}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3980507302.0, "Total blocks": 3980507302.0, "Ops per second": 132664732.83, "ns per ops": 7.54, "Ops per threads": 16585447.0, "Ops per procs": 82927235.0, "Ops/sec/procs": 2763848.6, "ns per ops/procs": 361.81}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 317038121.0, "Total blocks": 317038111.0, "Ops per second": 10559701.31, "ns per ops": 94.7, "Ops per threads": 31703812.0, "Ops per procs": 158519060.0, "Ops/sec/procs": 5279850.65, "ns per ops/procs": 189.4}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30050.02869, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 203503339.0, "Total blocks": 203503336.0, "Ops per second": 6772151.24, "ns per ops": 147.66, "Ops per threads": 40700667.0, "Ops per procs": 203503339.0, "Ops/sec/procs": 6772151.24, "ns per ops/procs": 147.66}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 163822953.0, "Ops per second": 5460765.0, "ns per ops": 183.0, "Ops per threads": 32764590.0, "Ops per procs": 163822953.0, "Ops/sec/procs": 5460765.0, "ns per ops/procs": 183.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30054.3089, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 263650987.0, "Total blocks": 263650591.0, "Ops per second": 8772485.43, "ns per ops": 113.99, "Ops per threads": 13182549.0, "Ops per procs": 65912746.0, "Ops/sec/procs": 2193121.36, "ns per ops/procs": 455.97}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30074.431913, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 604878338.0, "Total blocks": 604876206.0, "Ops per second": 20112710.35, "ns per ops": 49.72, "Ops per threads": 7560979.0, "Ops per procs": 37804896.0, "Ops/sec/procs": 1257044.4, "ns per ops/procs": 795.52}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30014.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2252844343.0, "Ops per second": 75058889.27, "ns per ops": 13.32, "Ops per threads": 4693425.0, "Ops per procs": 23467128.0, "Ops/sec/procs": 781863.43, "ns per ops/procs": 1279.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4111011180.0, "Total blocks": 4111011179.0, "Ops per second": 137014017.82, "ns per ops": 7.3, "Ops per threads": 17129213.0, "Ops per procs": 85646066.0, "Ops/sec/procs": 2854458.7, "ns per ops/procs": 350.33}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 164126445.0, "Ops per second": 5470881.0, "ns per ops": 183.0, "Ops per threads": 32825289.0, "Ops per procs": 164126445.0, "Ops/sec/procs": 5470881.0, "ns per ops/procs": 183.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30055.274571, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 262788886.0, "Total blocks": 262788516.0, "Ops per second": 8743519.72, "ns per ops": 114.37, "Ops per threads": 13139444.0, "Ops per procs": 65697221.0, "Ops/sec/procs": 2185879.93, "ns per ops/procs": 457.48}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30024.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 316108517.0, "Total blocks": 316108507.0, "Ops per second": 10528502.61, "ns per ops": 94.98, "Ops per threads": 31610851.0, "Ops per procs": 158054258.0, "Ops/sec/procs": 5264251.31, "ns per ops/procs": 189.96}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1148922624.0, "Ops per second": 38297420.0, "ns per ops": 26.0, "Ops per threads": 3191451.0, "Ops per procs": 15957258.0, "Ops/sec/procs": 531908.0, "ns per ops/procs": 1886.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30050.204155, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 198752280.0, "Total blocks": 198752279.0, "Ops per second": 6614007.64, "ns per ops": 151.19, "Ops per threads": 39750456.0, "Ops per procs": 198752280.0, "Ops/sec/procs": 6614007.64, "ns per ops/procs": 151.19}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30045.71981, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1291249612.0, "Total blocks": 1291185747.0, "Ops per second": 42976158.34, "ns per ops": 23.27, "Ops per threads": 2690103.0, "Ops per procs": 13450516.0, "Ops/sec/procs": 447668.32, "ns per ops/procs": 2233.8}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30061.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 125605232.0, "Ops per second": 4186841.0, "ns per ops": 239.0, "Ops per threads": 12560523.0, "Ops per procs": 62802616.0, "Ops/sec/procs": 2093420.0, "ns per ops/procs": 478.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30020.324441, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 715417046.0, "Total blocks": 715413563.0, "Ops per second": 23831089.75, "ns per ops": 41.96, "Ops per threads": 5961808.0, "Ops per procs": 29809043.0, "Ops/sec/procs": 992962.07, "ns per ops/procs": 1007.09}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 472225280.0, "Ops per second": 15740842.0, "ns per ops": 63.0, "Ops per threads": 5902816.0, "Ops per procs": 29514080.0, "Ops/sec/procs": 983802.0, "ns per ops/procs": 1016.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4074205540.0, "Total blocks": 4074205540.0, "Ops per second": 135786862.13, "ns per ops": 7.36, "Ops per threads": 16975856.0, "Ops per procs": 84879282.0, "Ops/sec/procs": 2828892.96, "ns per ops/procs": 353.5}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1671664998.0, "Ops per second": 55722166.0, "ns per ops": 18.0, "Ops per threads": 3482635.0, "Ops per procs": 17413177.0, "Ops/sec/procs": 580439.0, "ns per ops/procs": 1728.0}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30026.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4626760158.0, "Ops per second": 154087525.9, "ns per ops": 6.49, "Ops per threads": 4819541.0, "Ops per procs": 24097709.0, "Ops/sec/procs": 802539.2, "ns per ops/procs": 1246.05}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30049.312986, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 198605132.0, "Total blocks": 198605131.0, "Ops per second": 6609306.91, "ns per ops": 151.3, "Ops per threads": 39721026.0, "Ops per procs": 198605132.0, "Ops/sec/procs": 6609306.91, "ns per ops/procs": 151.3}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30034.092779, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1268519363.0, "Total blocks": 1268476437.0, "Ops per second": 42235980.7, "ns per ops": 23.68, "Ops per threads": 2642748.0, "Ops per procs": 13213743.0, "Ops/sec/procs": 439958.13, "ns per ops/procs": 2272.94}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 170566469.0, "Ops per second": 5685312.89, "ns per ops": 175.89, "Ops per threads": 34113293.0, "Ops per procs": 170566469.0, "Ops/sec/procs": 5685312.89, "ns per ops/procs": 175.89}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30010.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2354338653.0, "Ops per second": 78449993.19, "ns per ops": 12.75, "Ops per threads": 6539829.0, "Ops per procs": 32699147.0, "Ops/sec/procs": 1089583.24, "ns per ops/procs": 917.78}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30047.619512, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 208860757.0, "Total blocks": 208860649.0, "Ops per second": 6950991.81, "ns per ops": 143.86, "Ops per threads": 20886075.0, "Ops per procs": 104430378.0, "Ops/sec/procs": 3475495.9, "ns per ops/procs": 287.73}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30097.658076, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1009015366.0, "Total blocks": 1008994907.0, "Ops per second": 33524713.57, "ns per ops": 29.83, "Ops per threads": 2802820.0, "Ops per procs": 14014102.0, "Ops/sec/procs": 465621.02, "ns per ops/procs": 2147.67}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 773391873.0, "Total blocks": 773391873.0, "Ops per second": 25759160.01, "ns per ops": 38.82, "Ops per threads": 38669593.0, "Ops per procs": 193347968.0, "Ops/sec/procs": 6439790.0, "ns per ops/procs": 155.28}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8971061019.0, "Total blocks": 8971061019.0, "Ops per second": 298977241.25, "ns per ops": 3.34, "Ops per threads": 12459806.0, "Ops per procs": 62299034.0, "Ops/sec/procs": 2076230.84, "ns per ops/procs": 481.64}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30051.711462, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1129991557.0, "Total blocks": 1129979632.0, "Ops per second": 37601570.83, "ns per ops": 26.59, "Ops per threads": 4708298.0, "Ops per procs": 23541490.0, "Ops/sec/procs": 783366.06, "ns per ops/procs": 1276.54}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 166552065.0, "Ops per second": 5551476.88, "ns per ops": 180.13, "Ops per threads": 16655206.0, "Ops per procs": 83276032.0, "Ops/sec/procs": 2775738.44, "ns per ops/procs": 360.26}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30019.336435, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 708424159.0, "Total blocks": 708420669.0, "Ops per second": 23598928.0, "ns per ops": 42.37, "Ops per threads": 5903534.0, "Ops per procs": 29517673.0, "Ops/sec/procs": 983288.67, "ns per ops/procs": 1017.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30072.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 150782178.0, "Ops per second": 5026072.0, "ns per ops": 199.0, "Ops per threads": 7539108.0, "Ops per procs": 37695544.0, "Ops/sec/procs": 1256518.0, "ns per ops/procs": 797.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30066.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 138372877.0, "Ops per second": 4612429.0, "ns per ops": 217.0, "Ops per threads": 6918643.0, "Ops per procs": 34593219.0, "Ops/sec/procs": 1153107.0, "ns per ops/procs": 869.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2865431664.0, "Total blocks": 2865431664.0, "Ops per second": 95505643.63, "ns per ops": 10.47, "Ops per threads": 23878597.0, "Ops per procs": 119392986.0, "Ops/sec/procs": 3979401.82, "ns per ops/procs": 251.29}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30003.194606, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1285307171.0, "Total blocks": 1285264150.0, "Ops per second": 42839010.57, "ns per ops": 23.34, "Ops per threads": 2677723.0, "Ops per procs": 13388616.0, "Ops/sec/procs": 446239.69, "ns per ops/procs": 2240.95}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219389665.0, "Total blocks": 219389660.0, "Ops per second": 7307527.31, "ns per ops": 136.85, "Ops per threads": 43877933.0, "Ops per procs": 219389665.0, "Ops/sec/procs": 7307527.31, "ns per ops/procs": 136.85}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30016.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2248894771.0, "Ops per second": 74922997.62, "ns per ops": 13.35, "Ops per threads": 4685197.0, "Ops per procs": 23425987.0, "Ops/sec/procs": 780447.89, "ns per ops/procs": 1281.32}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30049.70011, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 202572736.0, "Total blocks": 202572735.0, "Ops per second": 6741256.49, "ns per ops": 148.34, "Ops per threads": 40514547.0, "Ops per procs": 202572736.0, "Ops/sec/procs": 6741256.49, "ns per ops/procs": 148.34}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30072.901347, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 978488107.0, "Total blocks": 978460723.0, "Ops per second": 32537203.37, "ns per ops": 30.73, "Ops per threads": 2718022.0, "Ops per procs": 13590112.0, "Ops/sec/procs": 451905.6, "ns per ops/procs": 2212.85}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30099.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 445097974.0, "Ops per second": 14836599.0, "ns per ops": 67.0, "Ops per threads": 5563724.0, "Ops per procs": 27818623.0, "Ops/sec/procs": 927287.0, "ns per ops/procs": 1082.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30054.419098, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 262279413.0, "Total blocks": 262279033.0, "Ops per second": 8726816.92, "ns per ops": 114.59, "Ops per threads": 13113970.0, "Ops per procs": 65569853.0, "Ops/sec/procs": 2181704.23, "ns per ops/procs": 458.36}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30059.793102, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1293898165.0, "Total blocks": 1293848741.0, "Ops per second": 43044147.4, "ns per ops": 23.23, "Ops per threads": 2695621.0, "Ops per procs": 13478105.0, "Ops/sec/procs": 448376.54, "ns per ops/procs": 2230.27}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30061.146441, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 390535628.0, "Total blocks": 390535001.0, "Ops per second": 12991375.06, "ns per ops": 76.97, "Ops per threads": 9763390.0, "Ops per procs": 48816953.0, "Ops/sec/procs": 1623921.88, "ns per ops/procs": 615.79}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 443002359.0, "Ops per second": 14766745.0, "ns per ops": 67.0, "Ops per threads": 5537529.0, "Ops per procs": 27687647.0, "Ops/sec/procs": 922921.0, "ns per ops/procs": 1087.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 514609454.0, "Total blocks": 514609454.0, "Ops per second": 17140020.33, "ns per ops": 58.34, "Ops per threads": 25730472.0, "Ops per procs": 128652363.0, "Ops/sec/procs": 4285005.08, "ns per ops/procs": 233.37}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30025.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 223397913.0, "Ops per second": 7446597.0, "ns per ops": 134.0, "Ops per threads": 5584947.0, "Ops per procs": 27924739.0, "Ops/sec/procs": 930824.0, "ns per ops/procs": 1075.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30026.883413, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1142496313.0, "Total blocks": 1142482623.0, "Ops per second": 38049114.1, "ns per ops": 26.28, "Ops per threads": 4760401.0, "Ops per procs": 23802006.0, "Ops/sec/procs": 792689.88, "ns per ops/procs": 1261.53}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30028.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 169473164.0, "Ops per second": 5643672.76, "ns per ops": 177.19, "Ops per threads": 33894632.0, "Ops per procs": 169473164.0, "Ops/sec/procs": 5643672.76, "ns per ops/procs": 177.19}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30024.238778, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1939340795.0, "Total blocks": 1939118876.0, "Ops per second": 64592505.05, "ns per ops": 15.48, "Ops per threads": 2020146.0, "Ops per procs": 10100733.0, "Ops/sec/procs": 336419.3, "ns per ops/procs": 2972.48}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 170282268.0, "Ops per second": 5675834.3, "ns per ops": 176.19, "Ops per threads": 34056453.0, "Ops per procs": 170282268.0, "Ops/sec/procs": 5675834.3, "ns per ops/procs": 176.19}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 495351736.0, "Ops per second": 16510906.36, "ns per ops": 60.57, "Ops per threads": 12383793.0, "Ops per procs": 61918967.0, "Ops/sec/procs": 2063863.29, "ns per ops/procs": 484.53}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30016.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3216329539.0, "Ops per second": 107153492.29, "ns per ops": 9.33, "Ops per threads": 4467124.0, "Ops per procs": 22335621.0, "Ops/sec/procs": 744121.47, "ns per ops/procs": 1343.87}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30053.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 127711160.0, "Ops per second": 4257038.0, "ns per ops": 235.0, "Ops per threads": 12771116.0, "Ops per procs": 63855580.0, "Ops/sec/procs": 2128519.0, "ns per ops/procs": 470.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219421870.0, "Total blocks": 219421865.0, "Ops per second": 7308648.43, "ns per ops": 136.82, "Ops per threads": 43884374.0, "Ops per procs": 219421870.0, "Ops/sec/procs": 7308648.43, "ns per ops/procs": 136.82}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30010.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3386509383.0, "Ops per second": 112843960.62, "ns per ops": 8.86, "Ops per threads": 4703485.0, "Ops per procs": 23517426.0, "Ops/sec/procs": 783638.62, "ns per ops/procs": 1276.1}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1910492900.0, "Ops per second": 63683096.0, "ns per ops": 15.0, "Ops per threads": 1990096.0, "Ops per procs": 9950483.0, "Ops/sec/procs": 331682.0, "ns per ops/procs": 3024.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30047.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15089769527.0, "Total blocks": 15089769526.0, "Ops per second": 502196760.88, "ns per ops": 1.99, "Ops per threads": 15718509.0, "Ops per procs": 78592549.0, "Ops/sec/procs": 2615608.13, "ns per ops/procs": 382.32}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30076.687231, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 614498867.0, "Total blocks": 614497007.0, "Ops per second": 20431068.83, "ns per ops": 48.95, "Ops per threads": 7681235.0, "Ops per procs": 38406179.0, "Ops/sec/procs": 1276941.8, "ns per ops/procs": 783.12}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30050.924279, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 199494248.0, "Total blocks": 199494247.0, "Ops per second": 6638539.51, "ns per ops": 150.64, "Ops per threads": 39898849.0, "Ops per procs": 199494248.0, "Ops/sec/procs": 6638539.51, "ns per ops/procs": 150.64}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30050.388166, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1303613592.0, "Total blocks": 1303564662.0, "Ops per second": 43380923.56, "ns per ops": 23.05, "Ops per threads": 2715861.0, "Ops per procs": 13579308.0, "Ops/sec/procs": 451884.62, "ns per ops/procs": 2212.95}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10009711300.0, "Total blocks": 10009711300.0, "Ops per second": 333605712.52, "ns per ops": 3.0, "Ops per threads": 20853565.0, "Ops per procs": 104267826.0, "Ops/sec/procs": 3475059.51, "ns per ops/procs": 287.76}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 263703873.0, "Ops per second": 8789685.27, "ns per ops": 113.77, "Ops per threads": 13185193.0, "Ops per procs": 65925968.0, "Ops/sec/procs": 2197421.32, "ns per ops/procs": 455.08}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1121226364.0, "Ops per second": 37374212.0, "ns per ops": 26.0, "Ops per threads": 3114517.0, "Ops per procs": 15572588.0, "Ops/sec/procs": 519086.0, "ns per ops/procs": 1932.0}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 878164429.0, "Ops per second": 29270570.42, "ns per ops": 34.16, "Ops per threads": 10977055.0, "Ops per procs": 54885276.0, "Ops/sec/procs": 1829410.65, "ns per ops/procs": 546.62}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7954751944.0, "Total blocks": 7954751944.0, "Ops per second": 265116280.72, "ns per ops": 3.77, "Ops per threads": 16572399.0, "Ops per procs": 82861999.0, "Ops/sec/procs": 2761627.92, "ns per ops/procs": 362.11}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 891287909.0, "Ops per second": 29707817.06, "ns per ops": 33.66, "Ops per threads": 11141098.0, "Ops per procs": 55705494.0, "Ops/sec/procs": 1856738.57, "ns per ops/procs": 538.58}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30067.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 123922145.0, "Ops per second": 4130738.0, "ns per ops": 242.0, "Ops per threads": 12392214.0, "Ops per procs": 61961072.0, "Ops/sec/procs": 2065369.0, "ns per ops/procs": 485.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30060.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 156122482.0, "Ops per second": 5204082.0, "ns per ops": 192.0, "Ops per threads": 7806124.0, "Ops per procs": 39030620.0, "Ops/sec/procs": 1301020.0, "ns per ops/procs": 770.0}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30010.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2282110146.0, "Ops per second": 76043634.85, "ns per ops": 13.15, "Ops per threads": 6339194.0, "Ops per procs": 31695974.0, "Ops/sec/procs": 1056161.6, "ns per ops/procs": 946.82}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30077.806783, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1649847522.0, "Total blocks": 1649727538.0, "Ops per second": 54852653.78, "ns per ops": 18.23, "Ops per threads": 2291454.0, "Ops per procs": 11457274.0, "Ops/sec/procs": 380921.21, "ns per ops/procs": 2625.21}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1496908561.0, "Ops per second": 49893869.68, "ns per ops": 20.04, "Ops per threads": 12474238.0, "Ops per procs": 62371190.0, "Ops/sec/procs": 2078911.24, "ns per ops/procs": 481.02}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30030.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1272770262.0, "Ops per second": 42425675.0, "ns per ops": 23.0, "Ops per threads": 1767736.0, "Ops per procs": 8838682.0, "Ops/sec/procs": 294622.0, "ns per ops/procs": 3397.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30055.790724, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 263630065.0, "Total blocks": 263629716.0, "Ops per second": 8771356.82, "ns per ops": 114.01, "Ops per threads": 13181503.0, "Ops per procs": 65907516.0, "Ops/sec/procs": 2192839.21, "ns per ops/procs": 456.03}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 169368792.0, "Ops per second": 5645392.43, "ns per ops": 177.14, "Ops per threads": 33873758.0, "Ops per procs": 169368792.0, "Ops/sec/procs": 5645392.43, "ns per ops/procs": 177.14}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30019.692606, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 709446261.0, "Total blocks": 709442679.0, "Ops per second": 23632695.72, "ns per ops": 42.31, "Ops per threads": 5912052.0, "Ops per procs": 29560260.0, "Ops/sec/procs": 984695.66, "ns per ops/procs": 1015.54}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30100.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 463153035.0, "Ops per second": 15438434.0, "ns per ops": 64.0, "Ops per threads": 5789412.0, "Ops per procs": 28947064.0, "Ops/sec/procs": 964902.0, "ns per ops/procs": 1039.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30019.092678, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 709297907.0, "Total blocks": 709294587.0, "Ops per second": 23628226.03, "ns per ops": 42.32, "Ops per threads": 5910815.0, "Ops per procs": 29554079.0, "Ops/sec/procs": 984509.42, "ns per ops/procs": 1015.73}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 169842506.0, "Ops per second": 5661180.09, "ns per ops": 176.64, "Ops per threads": 33968501.0, "Ops per procs": 169842506.0, "Ops/sec/procs": 5661180.09, "ns per ops/procs": 176.64}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 319233048.0, "Total blocks": 319233038.0, "Ops per second": 10632749.22, "ns per ops": 94.05, "Ops per threads": 31923304.0, "Ops per procs": 159616524.0, "Ops/sec/procs": 5316374.61, "ns per ops/procs": 188.1}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2378342888.0, "Ops per second": 79253265.14, "ns per ops": 12.62, "Ops per threads": 6606508.0, "Ops per procs": 33032540.0, "Ops/sec/procs": 1100739.79, "ns per ops/procs": 908.48}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 229795406.0, "Ops per second": 7659846.0, "ns per ops": 130.0, "Ops per threads": 5744885.0, "Ops per procs": 28724425.0, "Ops/sec/procs": 957480.0, "ns per ops/procs": 1045.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30094.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 14776349179.0, "Total blocks": 14776349179.0, "Ops per second": 490998354.07, "ns per ops": 2.04, "Ops per threads": 15392030.0, "Ops per procs": 76960151.0, "Ops/sec/procs": 2557283.09, "ns per ops/procs": 391.04}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30015.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2216386089.0, "Ops per second": 73840556.69, "ns per ops": 13.54, "Ops per threads": 4617471.0, "Ops per procs": 23087355.0, "Ops/sec/procs": 769172.47, "ns per ops/procs": 1300.1}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30025.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 316712812.0, "Total blocks": 316712802.0, "Ops per second": 10548171.45, "ns per ops": 94.8, "Ops per threads": 31671281.0, "Ops per procs": 158356406.0, "Ops/sec/procs": 5274085.73, "ns per ops/procs": 189.61}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30009.356273, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 997706041.0, "Total blocks": 997681383.0, "Ops per second": 33246499.26, "ns per ops": 30.08, "Ops per threads": 2771405.0, "Ops per procs": 13857028.0, "Ops/sec/procs": 461756.93, "ns per ops/procs": 2165.64}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30016.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 173966806.0, "Ops per second": 5795753.69, "ns per ops": 172.54, "Ops per threads": 17396680.0, "Ops per procs": 86983403.0, "Ops/sec/procs": 2897876.85, "ns per ops/procs": 345.08}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30061.543904, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 386635046.0, "Total blocks": 386634383.0, "Ops per second": 12861450.07, "ns per ops": 77.75, "Ops per threads": 9665876.0, "Ops per procs": 48329380.0, "Ops/sec/procs": 1607681.26, "ns per ops/procs": 622.01}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 275969970.0, "Ops per second": 9198535.07, "ns per ops": 108.71, "Ops per threads": 13798498.0, "Ops per procs": 68992492.0, "Ops/sec/procs": 2299633.77, "ns per ops/procs": 434.85}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30050.647638, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 211248214.0, "Total blocks": 211248115.0, "Ops per second": 7029739.14, "ns per ops": 142.25, "Ops per threads": 21124821.0, "Ops per procs": 105624107.0, "Ops/sec/procs": 3514869.57, "ns per ops/procs": 284.51}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 979187627.0, "Ops per second": 32639587.0, "ns per ops": 30.0, "Ops per threads": 4079948.0, "Ops per procs": 20399742.0, "Ops/sec/procs": 679991.0, "ns per ops/procs": 1475.0}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 887404843.0, "Ops per second": 29578466.09, "ns per ops": 33.81, "Ops per threads": 11092560.0, "Ops per procs": 55462802.0, "Ops/sec/procs": 1848654.13, "ns per ops/procs": 540.93}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 468905215.0, "Ops per second": 15629379.72, "ns per ops": 63.98, "Ops per threads": 11722630.0, "Ops per procs": 58613151.0, "Ops/sec/procs": 1953672.47, "ns per ops/procs": 511.86}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30048.031492, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1308366740.0, "Total blocks": 1308320606.0, "Ops per second": 43542510.94, "ns per ops": 22.97, "Ops per threads": 2725764.0, "Ops per procs": 13628820.0, "Ops/sec/procs": 453567.82, "ns per ops/procs": 2204.74}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1475251958.0, "Ops per second": 49172004.09, "ns per ops": 20.34, "Ops per threads": 12293766.0, "Ops per procs": 61468831.0, "Ops/sec/procs": 2048833.5, "ns per ops/procs": 488.08}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 156881195.0, "Ops per second": 5229130.05, "ns per ops": 191.24, "Ops per threads": 15688119.0, "Ops per procs": 78440597.0, "Ops/sec/procs": 2614565.02, "ns per ops/procs": 382.47}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30010.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4639195640.0, "Ops per second": 154587821.67, "ns per ops": 6.47, "Ops per threads": 4832495.0, "Ops per procs": 24162477.0, "Ops/sec/procs": 805144.9, "ns per ops/procs": 1242.01}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2763915530.0, "Ops per second": 92130517.0, "ns per ops": 10.0, "Ops per threads": 2879078.0, "Ops per procs": 14395393.0, "Ops/sec/procs": 479846.0, "ns per ops/procs": 2084.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30003.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1403858146.0, "Ops per second": 46795271.0, "ns per ops": 21.0, "Ops per threads": 1949802.0, "Ops per procs": 9749014.0, "Ops/sec/procs": 324967.0, "ns per ops/procs": 3077.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 163667687.0, "Ops per second": 5455589.0, "ns per ops": 183.0, "Ops per threads": 32733537.0, "Ops per procs": 163667687.0, "Ops/sec/procs": 5455589.0, "ns per ops/procs": 183.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 850932699.0, "Ops per second": 28364423.0, "ns per ops": 35.0, "Ops per threads": 2363701.0, "Ops per procs": 11818509.0, "Ops/sec/procs": 393950.0, "ns per ops/procs": 2546.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1705268737.0, "Ops per second": 56842291.0, "ns per ops": 17.0, "Ops per threads": 1776321.0, "Ops per procs": 8881608.0, "Ops/sec/procs": 296053.0, "ns per ops/procs": 3388.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30003.026841, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1972411799.0, "Total blocks": 1972168936.0, "Ops per second": 65740427.11, "ns per ops": 15.21, "Ops per threads": 2054595.0, "Ops per procs": 10272978.0, "Ops/sec/procs": 342398.06, "ns per ops/procs": 2920.58}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7896914275.0, "Total blocks": 7896914272.0, "Ops per second": 263185972.05, "ns per ops": 3.8, "Ops per threads": 16451904.0, "Ops per procs": 82259523.0, "Ops/sec/procs": 2741520.54, "ns per ops/procs": 364.76}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30004.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2335992139.0, "Ops per second": 77853804.35, "ns per ops": 12.84, "Ops per threads": 6488867.0, "Ops per procs": 32444335.0, "Ops/sec/procs": 1081302.84, "ns per ops/procs": 924.81}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7590455259.0, "Total blocks": 7590455259.0, "Ops per second": 252975635.21, "ns per ops": 3.95, "Ops per threads": 15813448.0, "Ops per procs": 79067242.0, "Ops/sec/procs": 2635162.87, "ns per ops/procs": 379.48}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30044.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 11570689012.0, "Total blocks": 11570689010.0, "Ops per second": 385112791.37, "ns per ops": 2.6, "Ops per threads": 16070401.0, "Ops per procs": 80352007.0, "Ops/sec/procs": 2674394.38, "ns per ops/procs": 373.92}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30050.323306, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 202229327.0, "Total blocks": 202229322.0, "Ops per second": 6729688.89, "ns per ops": 148.6, "Ops per threads": 40445865.0, "Ops per procs": 202229327.0, "Ops/sec/procs": 6729688.89, "ns per ops/procs": 148.6}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 921662913.0, "Total blocks": 921662913.0, "Ops per second": 30698808.09, "ns per ops": 32.57, "Ops per threads": 23041572.0, "Ops per procs": 115207864.0, "Ops/sec/procs": 3837351.01, "ns per ops/procs": 260.6}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2086216088.0, "Ops per second": 69515538.91, "ns per ops": 14.39, "Ops per threads": 8692567.0, "Ops per procs": 43462835.0, "Ops/sec/procs": 1448240.39, "ns per ops/procs": 690.49}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30052.122262, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 205967005.0, "Total blocks": 205966923.0, "Ops per second": 6853659.23, "ns per ops": 145.91, "Ops per threads": 20596700.0, "Ops per procs": 102983502.0, "Ops/sec/procs": 3426829.61, "ns per ops/procs": 291.81}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30078.303339, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 607653778.0, "Total blocks": 607651873.0, "Ops per second": 20202395.43, "ns per ops": 49.5, "Ops per threads": 7595672.0, "Ops per procs": 37978361.0, "Ops/sec/procs": 1262649.71, "ns per ops/procs": 791.99}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1865975207.0, "Total blocks": 1865975207.0, "Ops per second": 62143665.55, "ns per ops": 16.09, "Ops per threads": 23324690.0, "Ops per procs": 116623450.0, "Ops/sec/procs": 3883979.1, "ns per ops/procs": 257.47}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 917896719.0, "Total blocks": 917896719.0, "Ops per second": 30573406.98, "ns per ops": 32.71, "Ops per threads": 22947417.0, "Ops per procs": 114737089.0, "Ops/sec/procs": 3821675.87, "ns per ops/procs": 261.67}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30011.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2105706041.0, "Ops per second": 70163415.71, "ns per ops": 14.25, "Ops per threads": 8773775.0, "Ops per procs": 43868875.0, "Ops/sec/procs": 1461737.83, "ns per ops/procs": 684.12}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30045.425968, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1631662302.0, "Total blocks": 1631545370.0, "Ops per second": 54306512.54, "ns per ops": 18.41, "Ops per threads": 2266197.0, "Ops per procs": 11330988.0, "Ops/sec/procs": 377128.56, "ns per ops/procs": 2651.62}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1854686262.0, "Total blocks": 1854686262.0, "Ops per second": 61767949.53, "ns per ops": 16.19, "Ops per threads": 23183578.0, "Ops per procs": 115917891.0, "Ops/sec/procs": 3860496.85, "ns per ops/procs": 259.03}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30098.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1911938998.0, "Ops per second": 63731299.0, "ns per ops": 15.0, "Ops per threads": 1991603.0, "Ops per procs": 9958015.0, "Ops/sec/procs": 331933.0, "ns per ops/procs": 3022.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4093980555.0, "Total blocks": 4093980555.0, "Ops per second": 136445782.68, "ns per ops": 7.33, "Ops per threads": 17058252.0, "Ops per procs": 85291261.0, "Ops/sec/procs": 2842620.47, "ns per ops/procs": 351.79}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168544047.0, "Ops per second": 5617867.54, "ns per ops": 178.0, "Ops per threads": 16854404.0, "Ops per procs": 84272023.0, "Ops/sec/procs": 2808933.77, "ns per ops/procs": 356.01}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30051.745836, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 208504553.0, "Total blocks": 208504433.0, "Ops per second": 6938184.36, "ns per ops": 144.13, "Ops per threads": 20850455.0, "Ops per procs": 104252276.0, "Ops/sec/procs": 3469092.18, "ns per ops/procs": 288.26}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30025.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 213837140.0, "Ops per second": 7127904.0, "ns per ops": 140.0, "Ops per threads": 5345928.0, "Ops per procs": 26729642.0, "Ops/sec/procs": 890988.0, "ns per ops/procs": 1123.0}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 894494404.0, "Ops per second": 29814884.31, "ns per ops": 33.54, "Ops per threads": 11181180.0, "Ops per procs": 55905900.0, "Ops/sec/procs": 1863430.27, "ns per ops/procs": 536.64}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30099.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 509834809.0, "Ops per second": 16994493.0, "ns per ops": 59.0, "Ops per threads": 6372935.0, "Ops per procs": 31864675.0, "Ops/sec/procs": 1062155.0, "ns per ops/procs": 944.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30051.877363, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 199694985.0, "Total blocks": 199694899.0, "Ops per second": 6645008.65, "ns per ops": 150.49, "Ops per threads": 19969498.0, "Ops per procs": 99847492.0, "Ops/sec/procs": 3322504.32, "ns per ops/procs": 300.98}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30038.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 230606467.0, "Ops per second": 7686882.0, "ns per ops": 130.0, "Ops per threads": 5765161.0, "Ops per procs": 28825808.0, "Ops/sec/procs": 960860.0, "ns per ops/procs": 1042.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30063.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 127759309.0, "Ops per second": 4258643.0, "ns per ops": 235.0, "Ops per threads": 12775930.0, "Ops per procs": 63879654.0, "Ops/sec/procs": 2129321.0, "ns per ops/procs": 470.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2732493019.0, "Total blocks": 2732493019.0, "Ops per second": 91075347.29, "ns per ops": 10.98, "Ops per threads": 22770775.0, "Ops per procs": 113853875.0, "Ops/sec/procs": 3794806.14, "ns per ops/procs": 263.52}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30028.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4623488360.0, "Ops per second": 153969207.9, "ns per ops": 6.49, "Ops per threads": 4816133.0, "Ops per procs": 24080668.0, "Ops/sec/procs": 801922.96, "ns per ops/procs": 1247.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30049.073929, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1121485363.0, "Total blocks": 1121473210.0, "Ops per second": 37321794.53, "ns per ops": 26.79, "Ops per threads": 4672855.0, "Ops per procs": 23364278.0, "Ops/sec/procs": 777537.39, "ns per ops/procs": 1286.11}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1501210099.0, "Ops per second": 50032742.67, "ns per ops": 19.99, "Ops per threads": 12510084.0, "Ops per procs": 62550420.0, "Ops/sec/procs": 2084697.61, "ns per ops/procs": 479.69}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 278276750.0, "Ops per second": 9275436.22, "ns per ops": 107.81, "Ops per threads": 13913837.0, "Ops per procs": 69569187.0, "Ops/sec/procs": 2318859.06, "ns per ops/procs": 431.25}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30098.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 795013661.0, "Ops per second": 26500455.0, "ns per ops": 37.0, "Ops per threads": 6625113.0, "Ops per procs": 33125569.0, "Ops/sec/procs": 1104185.0, "ns per ops/procs": 908.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30008.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15502062283.0, "Total blocks": 15502062283.0, "Ops per second": 516588776.76, "ns per ops": 1.94, "Ops per threads": 16147981.0, "Ops per procs": 80739907.0, "Ops/sec/procs": 2690566.55, "ns per ops/procs": 371.67}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 183053824.0, "Ops per second": 6101512.2, "ns per ops": 163.89, "Ops per threads": 18305382.0, "Ops per procs": 91526912.0, "Ops/sec/procs": 3050756.1, "ns per ops/procs": 327.79}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 514583288.0, "Total blocks": 514583288.0, "Ops per second": 17138953.08, "ns per ops": 58.35, "Ops per threads": 25729164.0, "Ops per procs": 128645822.0, "Ops/sec/procs": 4284738.27, "ns per ops/procs": 233.39}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1905634437.0, "Ops per second": 63521147.0, "ns per ops": 15.0, "Ops per threads": 2646714.0, "Ops per procs": 13233572.0, "Ops/sec/procs": 441119.0, "ns per ops/procs": 2267.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30019.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7049659028.0, "Total blocks": 7049659028.0, "Ops per second": 234836825.18, "ns per ops": 4.26, "Ops per threads": 19582386.0, "Ops per procs": 97911930.0, "Ops/sec/procs": 3261622.57, "ns per ops/procs": 306.6}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30061.100693, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 386636306.0, "Total blocks": 386635717.0, "Ops per second": 12861681.61, "ns per ops": 77.75, "Ops per threads": 9665907.0, "Ops per procs": 48329538.0, "Ops/sec/procs": 1607710.2, "ns per ops/procs": 622.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1158996003.0, "Ops per second": 38633200.0, "ns per ops": 25.0, "Ops per threads": 4829150.0, "Ops per procs": 24145750.0, "Ops/sec/procs": 804858.0, "ns per ops/procs": 1246.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1148771218.0, "Ops per second": 38292373.0, "ns per ops": 26.0, "Ops per threads": 4786546.0, "Ops per procs": 23932733.0, "Ops/sec/procs": 797757.0, "ns per ops/procs": 1257.0}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 169892687.0, "Ops per second": 5662857.55, "ns per ops": 176.59, "Ops per threads": 33978537.0, "Ops per procs": 169892687.0, "Ops/sec/procs": 5662857.55, "ns per ops/procs": 176.59}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 787776143.0, "Ops per second": 26259204.0, "ns per ops": 38.0, "Ops per threads": 6564801.0, "Ops per procs": 32824005.0, "Ops/sec/procs": 1094133.0, "ns per ops/procs": 916.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3903574623.0, "Total blocks": 3903574623.0, "Ops per second": 130099982.54, "ns per ops": 7.69, "Ops per threads": 16264894.0, "Ops per procs": 81324471.0, "Ops/sec/procs": 2710416.3, "ns per ops/procs": 368.95}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30021.934755, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1603747977.0, "Total blocks": 1603634634.0, "Ops per second": 53419207.99, "ns per ops": 18.72, "Ops per threads": 2227427.0, "Ops per procs": 11137138.0, "Ops/sec/procs": 370966.72, "ns per ops/procs": 2695.66}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 163499884.0, "Ops per second": 5449996.0, "ns per ops": 184.0, "Ops per threads": 32699976.0, "Ops per procs": 163499884.0, "Ops/sec/procs": 5449996.0, "ns per ops/procs": 184.0}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30005.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2250992595.0, "Ops per second": 75020251.72, "ns per ops": 13.33, "Ops per threads": 6252757.0, "Ops per procs": 31263786.0, "Ops/sec/procs": 1041947.94, "ns per ops/procs": 959.74}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30098.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 686642845.0, "Ops per second": 22888094.0, "ns per ops": 43.0, "Ops per threads": 5722023.0, "Ops per procs": 28610118.0, "Ops/sec/procs": 953670.0, "ns per ops/procs": 1052.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 890515168.0, "Total blocks": 890515168.0, "Ops per second": 29661193.9, "ns per ops": 33.71, "Ops per threads": 22262879.0, "Ops per procs": 111314396.0, "Ops/sec/procs": 3707649.24, "ns per ops/procs": 269.71}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2073140257.0, "Ops per second": 69080996.99, "ns per ops": 14.48, "Ops per threads": 8638084.0, "Ops per procs": 43190422.0, "Ops/sec/procs": 1439187.44, "ns per ops/procs": 694.84}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2089456957.0, "Ops per second": 69624204.29, "ns per ops": 14.36, "Ops per threads": 8706070.0, "Ops per procs": 43530353.0, "Ops/sec/procs": 1450504.26, "ns per ops/procs": 689.42}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30000.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1750000497.0, "Ops per second": 58333349.0, "ns per ops": 17.0, "Ops per threads": 2430556.0, "Ops per procs": 12152781.0, "Ops/sec/procs": 405092.0, "ns per ops/procs": 2468.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 750273349.0, "Total blocks": 750273349.0, "Ops per second": 24989103.18, "ns per ops": 40.02, "Ops per threads": 37513667.0, "Ops per procs": 187568337.0, "Ops/sec/procs": 6247275.79, "ns per ops/procs": 160.07}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 270204730.0, "Ops per second": 9006377.22, "ns per ops": 111.03, "Ops per threads": 13510236.0, "Ops per procs": 67551182.0, "Ops/sec/procs": 2251594.31, "ns per ops/procs": 444.13}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2728032638.0, "Ops per second": 90934421.0, "ns per ops": 11.0, "Ops per threads": 2841700.0, "Ops per procs": 14208503.0, "Ops/sec/procs": 473616.0, "ns per ops/procs": 2118.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30077.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 144157053.0, "Ops per second": 4805235.0, "ns per ops": 208.0, "Ops per threads": 7207852.0, "Ops per procs": 36039263.0, "Ops/sec/procs": 1201308.0, "ns per ops/procs": 834.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3953790490.0, "Total blocks": 3953790490.0, "Ops per second": 131781904.73, "ns per ops": 7.59, "Ops per threads": 32948254.0, "Ops per procs": 164741270.0, "Ops/sec/procs": 5490912.7, "ns per ops/procs": 182.12}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30084.324861, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1003004334.0, "Total blocks": 1002972244.0, "Ops per second": 33339765.43, "ns per ops": 29.99, "Ops per threads": 2786123.0, "Ops per procs": 13930615.0, "Ops/sec/procs": 463052.3, "ns per ops/procs": 2159.58}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30004.907868, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1013328956.0, "Total blocks": 1013308492.0, "Ops per second": 33772106.9, "ns per ops": 29.61, "Ops per threads": 2814802.0, "Ops per procs": 14074013.0, "Ops/sec/procs": 469057.04, "ns per ops/procs": 2131.94}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2046895560.0, "Ops per second": 68205437.11, "ns per ops": 14.66, "Ops per threads": 8528731.0, "Ops per procs": 42643657.0, "Ops/sec/procs": 1420946.61, "ns per ops/procs": 703.76}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30091.981228, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1974866945.0, "Total blocks": 1974632656.0, "Ops per second": 65627681.01, "ns per ops": 15.24, "Ops per threads": 2057153.0, "Ops per procs": 10285765.0, "Ops/sec/procs": 341810.84, "ns per ops/procs": 2925.59}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30051.090866, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 207895062.0, "Total blocks": 207894949.0, "Ops per second": 6918053.75, "ns per ops": 144.55, "Ops per threads": 20789506.0, "Ops per procs": 103947531.0, "Ops/sec/procs": 3459026.88, "ns per ops/procs": 289.1}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30000.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 485991524.0, "Ops per second": 16199717.0, "ns per ops": 61.0, "Ops per threads": 6074894.0, "Ops per procs": 30374470.0, "Ops/sec/procs": 1012482.0, "ns per ops/procs": 987.0}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30044.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4721729526.0, "Ops per second": 157156328.95, "ns per ops": 6.36, "Ops per threads": 4918468.0, "Ops per procs": 24592341.0, "Ops/sec/procs": 818522.55, "ns per ops/procs": 1221.71}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30016.158635, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1051428615.0, "Total blocks": 1051397340.0, "Ops per second": 35028753.27, "ns per ops": 28.55, "Ops per threads": 2920635.0, "Ops per procs": 14603175.0, "Ops/sec/procs": 486510.46, "ns per ops/procs": 2055.45}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30002.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1382180172.0, "Ops per second": 46072672.0, "ns per ops": 21.0, "Ops per threads": 1919694.0, "Ops per procs": 9598473.0, "Ops/sec/procs": 319949.0, "ns per ops/procs": 3125.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30016.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7050525714.0, "Total blocks": 7050525714.0, "Ops per second": 234886992.04, "ns per ops": 4.26, "Ops per threads": 19584793.0, "Ops per procs": 97923968.0, "Ops/sec/procs": 3262319.33, "ns per ops/procs": 306.53}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30101.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 450176878.0, "Ops per second": 15005895.0, "ns per ops": 66.0, "Ops per threads": 5627210.0, "Ops per procs": 28136054.0, "Ops/sec/procs": 937868.0, "ns per ops/procs": 1069.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30052.903737, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1142046216.0, "Total blocks": 1142033868.0, "Ops per second": 38001193.69, "ns per ops": 26.31, "Ops per threads": 4758525.0, "Ops per procs": 23792629.0, "Ops/sec/procs": 791691.54, "ns per ops/procs": 1263.12}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 191531071.0, "Ops per second": 6384077.73, "ns per ops": 156.64, "Ops per threads": 19153107.0, "Ops per procs": 95765535.0, "Ops/sec/procs": 3192038.87, "ns per ops/procs": 313.28}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2105355501.0, "Ops per second": 70154497.65, "ns per ops": 14.25, "Ops per threads": 8772314.0, "Ops per procs": 43861572.0, "Ops/sec/procs": 1461552.03, "ns per ops/procs": 684.2}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30048.752476, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 202022803.0, "Total blocks": 202022800.0, "Ops per second": 6723167.73, "ns per ops": 148.74, "Ops per threads": 40404560.0, "Ops per procs": 202022803.0, "Ops/sec/procs": 6723167.73, "ns per ops/procs": 148.74}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30016.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2763633161.0, "Ops per second": 92121105.0, "ns per ops": 10.0, "Ops per threads": 2878784.0, "Ops per procs": 14393922.0, "Ops/sec/procs": 479797.0, "ns per ops/procs": 2085.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7783965572.0, "Total blocks": 7783965572.0, "Ops per second": 259426761.95, "ns per ops": 3.85, "Ops per threads": 16216594.0, "Ops per procs": 81082974.0, "Ops/sec/procs": 2702362.1, "ns per ops/procs": 370.05}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1516460185.0, "Ops per second": 50545556.95, "ns per ops": 19.78, "Ops per threads": 12637168.0, "Ops per procs": 63185841.0, "Ops/sec/procs": 2106064.87, "ns per ops/procs": 474.82}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 516993058.0, "Total blocks": 516993058.0, "Ops per second": 17219287.78, "ns per ops": 58.07, "Ops per threads": 25849652.0, "Ops per procs": 129248264.0, "Ops/sec/procs": 4304821.94, "ns per ops/procs": 232.3}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 163986792.0, "Ops per second": 5466226.0, "ns per ops": 183.0, "Ops per threads": 32797358.0, "Ops per procs": 163986792.0, "Ops/sec/procs": 5466226.0, "ns per ops/procs": 183.0}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 498139849.0, "Ops per second": 16603815.8, "ns per ops": 60.23, "Ops per threads": 12453496.0, "Ops per procs": 62267481.0, "Ops/sec/procs": 2075476.97, "ns per ops/procs": 481.82}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30006.707971, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1985944653.0, "Total blocks": 1985704021.0, "Ops per second": 66183356.57, "ns per ops": 15.11, "Ops per threads": 2068692.0, "Ops per procs": 10343461.0, "Ops/sec/procs": 344704.98, "ns per ops/procs": 2901.03}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2929429718.0, "Total blocks": 2929429718.0, "Ops per second": 97560885.15, "ns per ops": 10.25, "Ops per threads": 36617871.0, "Ops per procs": 183089357.0, "Ops/sec/procs": 6097555.32, "ns per ops/procs": 164.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30049.786723, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1134025534.0, "Total blocks": 1134012831.0, "Ops per second": 37738222.39, "ns per ops": 26.5, "Ops per threads": 4725106.0, "Ops per procs": 23625531.0, "Ops/sec/procs": 786212.97, "ns per ops/procs": 1271.92}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30094.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4505077893.0, "Ops per second": 149699117.58, "ns per ops": 6.68, "Ops per threads": 4692789.0, "Ops per procs": 23463947.0, "Ops/sec/procs": 779682.9, "ns per ops/procs": 1282.57}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30061.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 125343625.0, "Ops per second": 4178120.0, "ns per ops": 239.0, "Ops per threads": 12534362.0, "Ops per procs": 62671812.0, "Ops/sec/procs": 2089060.0, "ns per ops/procs": 479.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 311846606.0, "Total blocks": 311846596.0, "Ops per second": 10386741.86, "ns per ops": 96.28, "Ops per threads": 31184660.0, "Ops per procs": 155923303.0, "Ops/sec/procs": 5193370.93, "ns per ops/procs": 192.55}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30077.392517, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 619683282.0, "Total blocks": 619681377.0, "Ops per second": 20602958.91, "ns per ops": 48.54, "Ops per threads": 7746041.0, "Ops per procs": 38730205.0, "Ops/sec/procs": 1287684.93, "ns per ops/procs": 776.59}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 882139501.0, "Total blocks": 882139501.0, "Ops per second": 29382408.66, "ns per ops": 34.03, "Ops per threads": 22053487.0, "Ops per procs": 110267437.0, "Ops/sec/procs": 3672801.08, "ns per ops/procs": 272.27}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30076.538682, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 619673216.0, "Total blocks": 619671359.0, "Ops per second": 20603209.12, "ns per ops": 48.54, "Ops per threads": 7745915.0, "Ops per procs": 38729576.0, "Ops/sec/procs": 1287700.57, "ns per ops/procs": 776.58}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30100.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 491497581.0, "Ops per second": 16383252.0, "ns per ops": 61.0, "Ops per threads": 6143719.0, "Ops per procs": 30718598.0, "Ops/sec/procs": 1023953.0, "ns per ops/procs": 979.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30058.605664, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1333451788.0, "Total blocks": 1333399407.0, "Ops per second": 44361731.31, "ns per ops": 22.54, "Ops per threads": 2778024.0, "Ops per procs": 13890122.0, "Ops/sec/procs": 462101.37, "ns per ops/procs": 2164.03}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1091350109.0, "Ops per second": 36378336.0, "ns per ops": 27.0, "Ops per threads": 3031528.0, "Ops per procs": 15157640.0, "Ops/sec/procs": 505254.0, "ns per ops/procs": 1985.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30085.356174, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1138507616.0, "Total blocks": 1138494923.0, "Ops per second": 37842583.93, "ns per ops": 26.43, "Ops per threads": 4743781.0, "Ops per procs": 23718908.0, "Ops/sec/procs": 788387.17, "ns per ops/procs": 1268.41}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30001.620065, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 955104422.0, "Total blocks": 955084319.0, "Ops per second": 31835094.9, "ns per ops": 31.41, "Ops per threads": 2653067.0, "Ops per procs": 13265339.0, "Ops/sec/procs": 442154.1, "ns per ops/procs": 2261.65}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 492944664.0, "Ops per second": 16430674.19, "ns per ops": 60.86, "Ops per threads": 12323616.0, "Ops per procs": 61618083.0, "Ops/sec/procs": 2053834.27, "ns per ops/procs": 486.89}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4125421227.0, "Total blocks": 4125421227.0, "Ops per second": 137494445.32, "ns per ops": 7.27, "Ops per threads": 17189255.0, "Ops per procs": 85946275.0, "Ops/sec/procs": 2864467.61, "ns per ops/procs": 349.11}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2364501466.0, "Ops per second": 78816715.0, "ns per ops": 12.0, "Ops per threads": 4926044.0, "Ops per procs": 24630223.0, "Ops/sec/procs": 821007.0, "ns per ops/procs": 1221.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30064.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 124044845.0, "Ops per second": 4134828.0, "ns per ops": 242.0, "Ops per threads": 12404484.0, "Ops per procs": 62022422.0, "Ops/sec/procs": 2067414.0, "ns per ops/procs": 484.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2569472809.0, "Ops per second": 85649093.0, "ns per ops": 11.0, "Ops per threads": 2676534.0, "Ops per procs": 13382670.0, "Ops/sec/procs": 446089.0, "ns per ops/procs": 2249.0}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2104703757.0, "Ops per second": 70131970.9, "ns per ops": 14.26, "Ops per threads": 8769598.0, "Ops per procs": 43847994.0, "Ops/sec/procs": 1461082.73, "ns per ops/procs": 684.42}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30016.688249, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1042306555.0, "Total blocks": 1042289476.0, "Ops per second": 34724235.61, "ns per ops": 28.8, "Ops per threads": 2895295.0, "Ops per procs": 14476479.0, "Ops/sec/procs": 482281.05, "ns per ops/procs": 2073.48}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30078.460219, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 615110502.0, "Total blocks": 615108683.0, "Ops per second": 20450199.16, "ns per ops": 48.9, "Ops per threads": 7688881.0, "Ops per procs": 38444406.0, "Ops/sec/procs": 1278137.45, "ns per ops/procs": 782.39}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 504512966.0, "Ops per second": 16816242.41, "ns per ops": 59.47, "Ops per threads": 12612824.0, "Ops per procs": 63064120.0, "Ops/sec/procs": 2102030.3, "ns per ops/procs": 475.73}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30071.611483, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1615701248.0, "Total blocks": 1615581105.0, "Ops per second": 53728455.79, "ns per ops": 18.61, "Ops per threads": 2244029.0, "Ops per procs": 11220147.0, "Ops/sec/procs": 373114.28, "ns per ops/procs": 2680.14}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30002.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8679931297.0, "Total blocks": 8679931297.0, "Ops per second": 289304199.96, "ns per ops": 3.46, "Ops per threads": 24110920.0, "Ops per procs": 120554601.0, "Ops/sec/procs": 4018113.89, "ns per ops/procs": 248.87}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 170339074.0, "Ops per second": 5677731.17, "ns per ops": 176.13, "Ops per threads": 34067814.0, "Ops per procs": 170339074.0, "Ops/sec/procs": 5677731.17, "ns per ops/procs": 176.13}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9494126908.0, "Total blocks": 9494126908.0, "Ops per second": 316414414.8, "ns per ops": 3.16, "Ops per threads": 13186287.0, "Ops per procs": 65931436.0, "Ops/sec/procs": 2197322.32, "ns per ops/procs": 455.1}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 903354184.0, "Ops per second": 30110130.95, "ns per ops": 33.21, "Ops per threads": 11291927.0, "Ops per procs": 56459636.0, "Ops/sec/procs": 1881883.18, "ns per ops/procs": 531.38}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219416156.0, "Total blocks": 219416151.0, "Ops per second": 7308475.86, "ns per ops": 136.83, "Ops per threads": 43883231.0, "Ops per procs": 219416156.0, "Ops/sec/procs": 7308475.86, "ns per ops/procs": 136.83}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1240877300.0, "Ops per second": 41362576.0, "ns per ops": 24.0, "Ops per threads": 3446881.0, "Ops per procs": 17234406.0, "Ops/sec/procs": 574480.0, "ns per ops/procs": 1746.0}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2341963007.0, "Ops per second": 78056615.73, "ns per ops": 12.81, "Ops per threads": 6505452.0, "Ops per procs": 32527263.0, "Ops/sec/procs": 1084119.66, "ns per ops/procs": 922.41}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 163618536.0, "Ops per second": 5453951.0, "ns per ops": 183.0, "Ops per threads": 32723707.0, "Ops per procs": 163618536.0, "Ops/sec/procs": 5453951.0, "ns per ops/procs": 183.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30061.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 156694405.0, "Ops per second": 5223146.0, "ns per ops": 191.0, "Ops per threads": 7834720.0, "Ops per procs": 39173601.0, "Ops/sec/procs": 1305786.0, "ns per ops/procs": 767.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1886776952.0, "Total blocks": 1886776952.0, "Ops per second": 62836526.32, "ns per ops": 15.91, "Ops per threads": 23584711.0, "Ops per procs": 117923559.0, "Ops/sec/procs": 3927282.9, "ns per ops/procs": 254.63}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30052.626795, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 207641807.0, "Total blocks": 207641692.0, "Ops per second": 6909273.14, "ns per ops": 144.73, "Ops per threads": 20764180.0, "Ops per procs": 103820903.0, "Ops/sec/procs": 3454636.57, "ns per ops/procs": 289.47}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30023.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3192006383.0, "Ops per second": 106317786.56, "ns per ops": 9.41, "Ops per threads": 4433342.0, "Ops per procs": 22166710.0, "Ops/sec/procs": 738317.96, "ns per ops/procs": 1354.43}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30009.77936, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1021632522.0, "Total blocks": 1021602347.0, "Ops per second": 34043320.0, "ns per ops": 29.37, "Ops per threads": 2837868.0, "Ops per procs": 14189340.0, "Ops/sec/procs": 472823.89, "ns per ops/procs": 2114.95}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30003.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2851138545.0, "Total blocks": 2851138545.0, "Ops per second": 95027595.31, "ns per ops": 10.52, "Ops per threads": 23759487.0, "Ops per procs": 118797439.0, "Ops/sec/procs": 3959483.14, "ns per ops/procs": 252.56}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1184525496.0, "Ops per second": 39484183.0, "ns per ops": 25.0, "Ops per threads": 4935522.0, "Ops per procs": 24677614.0, "Ops/sec/procs": 822587.0, "ns per ops/procs": 1219.0}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 174801973.0, "Ops per second": 5826457.79, "ns per ops": 171.63, "Ops per threads": 17480197.0, "Ops per procs": 87400986.0, "Ops/sec/procs": 2913228.9, "ns per ops/procs": 343.26}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30010.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2215906506.0, "Ops per second": 73836983.78, "ns per ops": 13.54, "Ops per threads": 4616471.0, "Ops per procs": 23082359.0, "Ops/sec/procs": 769135.25, "ns per ops/procs": 1300.16}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 163634923.0, "Ops per second": 5454497.0, "ns per ops": 183.0, "Ops per threads": 32726984.0, "Ops per procs": 163634923.0, "Ops/sec/procs": 5454497.0, "ns per ops/procs": 183.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30084.89357, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1286445971.0, "Total blocks": 1286393062.0, "Ops per second": 42760529.23, "ns per ops": 23.39, "Ops per threads": 2680095.0, "Ops per procs": 13400478.0, "Ops/sec/procs": 445422.18, "ns per ops/procs": 2245.06}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30023.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 227086589.0, "Ops per second": 7569552.0, "ns per ops": 132.0, "Ops per threads": 5677164.0, "Ops per procs": 28385823.0, "Ops/sec/procs": 946194.0, "ns per ops/procs": 1057.0}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 484159721.0, "Ops per second": 16137861.21, "ns per ops": 61.97, "Ops per threads": 12103993.0, "Ops per procs": 60519965.0, "Ops/sec/procs": 2017232.65, "ns per ops/procs": 495.73}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2095980199.0, "Ops per second": 69842294.86, "ns per ops": 14.32, "Ops per threads": 8733250.0, "Ops per procs": 43666254.0, "Ops/sec/procs": 1455047.81, "ns per ops/procs": 687.26}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30051.381161, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 196494478.0, "Total blocks": 196494358.0, "Ops per second": 6538617.21, "ns per ops": 152.94, "Ops per threads": 19649447.0, "Ops per procs": 98247239.0, "Ops/sec/procs": 3269308.6, "ns per ops/procs": 305.88}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30004.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15153291514.0, "Total blocks": 15153291514.0, "Ops per second": 505026939.65, "ns per ops": 1.98, "Ops per threads": 15784678.0, "Ops per procs": 78923393.0, "Ops/sec/procs": 2630348.64, "ns per ops/procs": 380.18}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2722454869.0, "Total blocks": 2722454869.0, "Ops per second": 90734647.35, "ns per ops": 11.02, "Ops per threads": 22687123.0, "Ops per procs": 113435619.0, "Ops/sec/procs": 3780610.31, "ns per ops/procs": 264.51}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 897147322.0, "Ops per second": 29903287.16, "ns per ops": 33.44, "Ops per threads": 11214341.0, "Ops per procs": 56071707.0, "Ops/sec/procs": 1868955.45, "ns per ops/procs": 535.06}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 272854880.0, "Ops per second": 9094688.32, "ns per ops": 109.95, "Ops per threads": 13642744.0, "Ops per procs": 68213720.0, "Ops/sec/procs": 2273672.08, "ns per ops/procs": 439.82}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1028333242.0, "Total blocks": 1028333242.0, "Ops per second": 34251939.83, "ns per ops": 29.2, "Ops per threads": 25708331.0, "Ops per procs": 128541655.0, "Ops/sec/procs": 4281492.48, "ns per ops/procs": 233.56}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30050.577562, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 200561678.0, "Total blocks": 200561674.0, "Ops per second": 6674137.21, "ns per ops": 149.83, "Ops per threads": 40112335.0, "Ops per procs": 200561678.0, "Ops/sec/procs": 6674137.21, "ns per ops/procs": 149.83}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 320157293.0, "Total blocks": 320157283.0, "Ops per second": 10663572.36, "ns per ops": 93.78, "Ops per threads": 32015729.0, "Ops per procs": 160078646.0, "Ops/sec/procs": 5331786.18, "ns per ops/procs": 187.55}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30049.337186, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1287047838.0, "Total blocks": 1287003187.0, "Ops per second": 42831155.64, "ns per ops": 23.35, "Ops per threads": 2681349.0, "Ops per procs": 13406748.0, "Ops/sec/procs": 446157.87, "ns per ops/procs": 2241.36}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30039.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8689520917.0, "Total blocks": 8689520917.0, "Ops per second": 289269975.95, "ns per ops": 3.46, "Ops per threads": 24137558.0, "Ops per procs": 120687790.0, "Ops/sec/procs": 4017638.55, "ns per ops/procs": 248.9}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30099.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1637878133.0, "Ops per second": 54595937.0, "ns per ops": 18.0, "Ops per threads": 3412246.0, "Ops per procs": 17061230.0, "Ops/sec/procs": 568707.0, "ns per ops/procs": 1764.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30059.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 157245634.0, "Ops per second": 5241521.0, "ns per ops": 191.0, "Ops per threads": 7862281.0, "Ops per procs": 39311408.0, "Ops/sec/procs": 1310380.0, "ns per ops/procs": 764.0}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 866951956.0, "Ops per second": 28896836.72, "ns per ops": 34.61, "Ops per threads": 10836899.0, "Ops per procs": 54184497.0, "Ops/sec/procs": 1806052.29, "ns per ops/procs": 553.69}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 170399943.0, "Ops per second": 5679764.76, "ns per ops": 176.06, "Ops per threads": 34079988.0, "Ops per procs": 170399943.0, "Ops/sec/procs": 5679764.76, "ns per ops/procs": 176.06}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 503737240.0, "Ops per second": 16790371.86, "ns per ops": 59.56, "Ops per threads": 12593431.0, "Ops per procs": 62967155.0, "Ops/sec/procs": 2098796.48, "ns per ops/procs": 476.46}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30076.899969, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 609799779.0, "Total blocks": 609797914.0, "Ops per second": 20274688.54, "ns per ops": 49.32, "Ops per threads": 7622497.0, "Ops per procs": 38112486.0, "Ops/sec/procs": 1267168.03, "ns per ops/procs": 789.16}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1516740387.0, "Ops per second": 50558012.0, "ns per ops": 19.0, "Ops per threads": 3159875.0, "Ops per procs": 15799379.0, "Ops/sec/procs": 526645.0, "ns per ops/procs": 1904.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1048720004.0, "Ops per second": 34957333.0, "ns per ops": 28.0, "Ops per threads": 4369666.0, "Ops per procs": 21848333.0, "Ops/sec/procs": 728277.0, "ns per ops/procs": 1377.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1874637547.0, "Total blocks": 1874637547.0, "Ops per second": 62432246.83, "ns per ops": 16.02, "Ops per threads": 23432969.0, "Ops per procs": 117164846.0, "Ops/sec/procs": 3902015.43, "ns per ops/procs": 256.28}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2769618118.0, "Total blocks": 2769618118.0, "Ops per second": 92312732.9, "ns per ops": 10.83, "Ops per threads": 23080150.0, "Ops per procs": 115400754.0, "Ops/sec/procs": 3846363.87, "ns per ops/procs": 259.99}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30073.10486, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1668563995.0, "Total blocks": 1668444624.0, "Ops per second": 55483595.82, "ns per ops": 18.02, "Ops per threads": 2317449.0, "Ops per procs": 11587249.0, "Ops/sec/procs": 385302.75, "ns per ops/procs": 2595.36}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30050.011582, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 199723875.0, "Total blocks": 199723870.0, "Ops per second": 6646382.63, "ns per ops": 150.46, "Ops per threads": 39944775.0, "Ops per procs": 199723875.0, "Ops/sec/procs": 6646382.63, "ns per ops/procs": 150.46}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30085.282005, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1309236744.0, "Total blocks": 1309181028.0, "Ops per second": 43517516.1, "ns per ops": 22.98, "Ops per threads": 2727576.0, "Ops per procs": 13637882.0, "Ops/sec/procs": 453307.46, "ns per ops/procs": 2206.01}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7278605223.0, "Total blocks": 7278605222.0, "Ops per second": 242582812.85, "ns per ops": 4.12, "Ops per threads": 15163760.0, "Ops per procs": 75818804.0, "Ops/sec/procs": 2526904.3, "ns per ops/procs": 395.74}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30055.48068, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 261743223.0, "Total blocks": 261742828.0, "Ops per second": 8708668.67, "ns per ops": 114.83, "Ops per threads": 13087161.0, "Ops per procs": 65435805.0, "Ops/sec/procs": 2177167.17, "ns per ops/procs": 459.31}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30042.947765, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1957232019.0, "Total blocks": 1957044897.0, "Ops per second": 65147802.22, "ns per ops": 15.35, "Ops per threads": 2038783.0, "Ops per procs": 10193916.0, "Ops/sec/procs": 339311.47, "ns per ops/procs": 2947.14}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30051.846789, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 199788730.0, "Total blocks": 199788726.0, "Ops per second": 6648134.85, "ns per ops": 150.42, "Ops per threads": 39957746.0, "Ops per procs": 199788730.0, "Ops/sec/procs": 6648134.85, "ns per ops/procs": 150.42}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30065.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 124102496.0, "Ops per second": 4136749.0, "ns per ops": 242.0, "Ops per threads": 12410249.0, "Ops per procs": 62051248.0, "Ops/sec/procs": 2068374.0, "ns per ops/procs": 484.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30019.983151, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 696903407.0, "Total blocks": 696900032.0, "Ops per second": 23214650.17, "ns per ops": 43.08, "Ops per threads": 5807528.0, "Ops per procs": 29037641.0, "Ops/sec/procs": 967277.09, "ns per ops/procs": 1033.83}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30061.525481, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 391674308.0, "Total blocks": 391673635.0, "Ops per second": 13029089.57, "ns per ops": 76.75, "Ops per threads": 9791857.0, "Ops per procs": 48959288.0, "Ops/sec/procs": 1628636.2, "ns per ops/procs": 614.01}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30020.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1218824720.0, "Ops per second": 40627490.0, "ns per ops": 24.0, "Ops per threads": 1692812.0, "Ops per procs": 8464060.0, "Ops/sec/procs": 282135.0, "ns per ops/procs": 3546.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30015.080151, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1005825478.0, "Total blocks": 1005797742.0, "Ops per second": 33510671.07, "ns per ops": 29.84, "Ops per threads": 2793959.0, "Ops per procs": 13969798.0, "Ops/sec/procs": 465425.99, "ns per ops/procs": 2148.57}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 484290776.0, "Ops per second": 16142217.04, "ns per ops": 61.95, "Ops per threads": 12107269.0, "Ops per procs": 60536347.0, "Ops/sec/procs": 2017777.13, "ns per ops/procs": 495.59}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 437970265.0, "Total blocks": 437970260.0, "Ops per second": 14587558.77, "ns per ops": 68.55, "Ops per threads": 43797026.0, "Ops per procs": 218985132.0, "Ops/sec/procs": 7293779.38, "ns per ops/procs": 137.1}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30006.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8812602926.0, "Total blocks": 8812602925.0, "Ops per second": 293686822.03, "ns per ops": 3.4, "Ops per threads": 12239726.0, "Ops per procs": 61198631.0, "Ops/sec/procs": 2039491.82, "ns per ops/procs": 490.32}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30001.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4678325771.0, "Ops per second": 155934874.72, "ns per ops": 6.41, "Ops per threads": 4873256.0, "Ops per procs": 24366280.0, "Ops/sec/procs": 812160.81, "ns per ops/procs": 1231.28}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30030.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 229998557.0, "Ops per second": 7666618.0, "ns per ops": 130.0, "Ops per threads": 5749963.0, "Ops per procs": 28749819.0, "Ops/sec/procs": 958327.0, "ns per ops/procs": 1044.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219430025.0, "Total blocks": 219430020.0, "Ops per second": 7308940.2, "ns per ops": 136.82, "Ops per threads": 43886005.0, "Ops per procs": 219430025.0, "Ops/sec/procs": 7308940.2, "ns per ops/procs": 136.82}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 181249878.0, "Ops per second": 6041384.35, "ns per ops": 165.52, "Ops per threads": 18124987.0, "Ops per procs": 90624939.0, "Ops/sec/procs": 3020692.17, "ns per ops/procs": 331.05}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30039.23706, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1288371219.0, "Total blocks": 1288322203.0, "Ops per second": 42889611.89, "ns per ops": 23.32, "Ops per threads": 2684106.0, "Ops per procs": 13420533.0, "Ops/sec/procs": 446766.79, "ns per ops/procs": 2238.3}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 694249921.0, "Ops per second": 23141664.0, "ns per ops": 43.0, "Ops per threads": 5785416.0, "Ops per procs": 28927080.0, "Ops/sec/procs": 964236.0, "ns per ops/procs": 1040.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30072.857744, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1074127037.0, "Total blocks": 1074101741.0, "Ops per second": 35717491.37, "ns per ops": 28.0, "Ops per threads": 2983686.0, "Ops per procs": 14918431.0, "Ops/sec/procs": 496076.27, "ns per ops/procs": 2015.82}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 897242190.0, "Total blocks": 897242190.0, "Ops per second": 29885164.36, "ns per ops": 33.46, "Ops per threads": 22431054.0, "Ops per procs": 112155273.0, "Ops/sec/procs": 3735645.54, "ns per ops/procs": 267.69}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30055.556765, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 262732416.0, "Total blocks": 262732011.0, "Ops per second": 8741558.78, "ns per ops": 114.4, "Ops per threads": 13136620.0, "Ops per procs": 65683104.0, "Ops/sec/procs": 2185389.69, "ns per ops/procs": 457.58}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 163762028.0, "Ops per second": 5458734.0, "ns per ops": 183.0, "Ops per threads": 32752405.0, "Ops per procs": 163762028.0, "Ops/sec/procs": 5458734.0, "ns per ops/procs": 183.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1161840704.0, "Ops per second": 38728023.0, "ns per ops": 25.0, "Ops per threads": 4841002.0, "Ops per procs": 24205014.0, "Ops/sec/procs": 806833.0, "ns per ops/procs": 1243.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1187236719.0, "Ops per second": 39574557.0, "ns per ops": 25.0, "Ops per threads": 3297879.0, "Ops per procs": 16489398.0, "Ops/sec/procs": 549646.0, "ns per ops/procs": 1825.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30026.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 314925634.0, "Total blocks": 314925629.0, "Ops per second": 10488362.89, "ns per ops": 95.34, "Ops per threads": 31492563.0, "Ops per procs": 157462817.0, "Ops/sec/procs": 5244181.44, "ns per ops/procs": 190.69}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1269270520.0, "Ops per second": 42309017.0, "ns per ops": 23.0, "Ops per threads": 3525751.0, "Ops per procs": 17628757.0, "Ops/sec/procs": 587625.0, "ns per ops/procs": 1707.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30010.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7930618702.0, "Total blocks": 7930618702.0, "Ops per second": 264264051.16, "ns per ops": 3.78, "Ops per threads": 16522122.0, "Ops per procs": 82610611.0, "Ops/sec/procs": 2752750.53, "ns per ops/procs": 363.27}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 961588888.0, "Total blocks": 961588888.0, "Ops per second": 32028884.59, "ns per ops": 31.22, "Ops per threads": 24039722.0, "Ops per procs": 120198611.0, "Ops/sec/procs": 4003610.57, "ns per ops/procs": 249.77}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 164073328.0, "Ops per second": 5469110.0, "ns per ops": 183.0, "Ops per threads": 32814665.0, "Ops per procs": 164073328.0, "Ops/sec/procs": 5469110.0, "ns per ops/procs": 183.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30005.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6918538200.0, "Total blocks": 6918538200.0, "Ops per second": 230573352.83, "ns per ops": 4.34, "Ops per threads": 19218161.0, "Ops per procs": 96090808.0, "Ops/sec/procs": 3202407.68, "ns per ops/procs": 312.27}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30010.200079, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1020338910.0, "Total blocks": 1020311568.0, "Ops per second": 33999737.0, "ns per ops": 29.41, "Ops per threads": 2834274.0, "Ops per procs": 14171373.0, "Ops/sec/procs": 472218.57, "ns per ops/procs": 2117.66}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 170875680.0, "Ops per second": 5695616.98, "ns per ops": 175.57, "Ops per threads": 34175136.0, "Ops per procs": 170875680.0, "Ops/sec/procs": 5695616.98, "ns per ops/procs": 175.57}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 170371945.0, "Ops per second": 5678829.37, "ns per ops": 176.09, "Ops per threads": 34074389.0, "Ops per procs": 170371945.0, "Ops/sec/procs": 5678829.37, "ns per ops/procs": 176.09}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8948788453.0, "Total blocks": 8948788453.0, "Ops per second": 298254598.52, "ns per ops": 3.35, "Ops per threads": 24857745.0, "Ops per procs": 124288728.0, "Ops/sec/procs": 4142424.98, "ns per ops/procs": 241.4}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3898235587.0, "Total blocks": 3898235587.0, "Ops per second": 129930241.11, "ns per ops": 7.7, "Ops per threads": 32485296.0, "Ops per procs": 162426482.0, "Ops/sec/procs": 5413760.05, "ns per ops/procs": 184.71}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30051.959989, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 198520646.0, "Total blocks": 198520540.0, "Ops per second": 6605913.43, "ns per ops": 151.38, "Ops per threads": 19852064.0, "Ops per procs": 99260323.0, "Ops/sec/procs": 3302956.71, "ns per ops/procs": 302.76}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30061.141635, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 391212651.0, "Total blocks": 391212028.0, "Ops per second": 13013898.67, "ns per ops": 76.84, "Ops per threads": 9780316.0, "Ops per procs": 48901581.0, "Ops/sec/procs": 1626737.33, "ns per ops/procs": 614.73}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219462118.0, "Total blocks": 219462113.0, "Ops per second": 7310005.41, "ns per ops": 136.8, "Ops per threads": 43892423.0, "Ops per procs": 219462118.0, "Ops/sec/procs": 7310005.41, "ns per ops/procs": 136.8}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4091075635.0, "Total blocks": 4091075635.0, "Ops per second": 136349582.25, "ns per ops": 7.33, "Ops per threads": 17046148.0, "Ops per procs": 85230742.0, "Ops/sec/procs": 2840616.3, "ns per ops/procs": 352.04}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4130565688.0, "Total blocks": 4130565688.0, "Ops per second": 137665077.46, "ns per ops": 7.26, "Ops per threads": 17210690.0, "Ops per procs": 86053451.0, "Ops/sec/procs": 2868022.45, "ns per ops/procs": 348.67}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 484843550.0, "Ops per second": 16160636.75, "ns per ops": 61.88, "Ops per threads": 12121088.0, "Ops per procs": 60605443.0, "Ops/sec/procs": 2020079.59, "ns per ops/procs": 495.03}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1057341368.0, "Ops per second": 35244712.0, "ns per ops": 28.0, "Ops per threads": 4405589.0, "Ops per procs": 22027945.0, "Ops/sec/procs": 734264.0, "ns per ops/procs": 1366.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30055.932904, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 259416488.0, "Total blocks": 259416141.0, "Ops per second": 8631124.14, "ns per ops": 115.86, "Ops per threads": 12970824.0, "Ops per procs": 64854122.0, "Ops/sec/procs": 2157781.03, "ns per ops/procs": 463.44}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162480964.0, "Ops per second": 5415785.3, "ns per ops": 184.65, "Ops per threads": 16248096.0, "Ops per procs": 81240482.0, "Ops/sec/procs": 2707892.65, "ns per ops/procs": 369.29}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2857586854.0, "Total blocks": 2857586854.0, "Ops per second": 95243953.63, "ns per ops": 10.5, "Ops per threads": 23813223.0, "Ops per procs": 119066118.0, "Ops/sec/procs": 3968498.07, "ns per ops/procs": 251.98}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30021.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 227486564.0, "Ops per second": 7582885.0, "ns per ops": 131.0, "Ops per threads": 5687164.0, "Ops per procs": 28435820.0, "Ops/sec/procs": 947860.0, "ns per ops/procs": 1055.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30020.299113, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 711017078.0, "Total blocks": 711013311.0, "Ops per second": 23684543.43, "ns per ops": 42.22, "Ops per threads": 5925142.0, "Ops per procs": 29625711.0, "Ops/sec/procs": 986855.98, "ns per ops/procs": 1013.32}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 318525342.0, "Total blocks": 318525332.0, "Ops per second": 10609082.28, "ns per ops": 94.26, "Ops per threads": 31852534.0, "Ops per procs": 159262671.0, "Ops/sec/procs": 5304541.14, "ns per ops/procs": 188.52}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1058996282.0, "Ops per second": 35299876.0, "ns per ops": 28.0, "Ops per threads": 4412484.0, "Ops per procs": 22062422.0, "Ops/sec/procs": 735414.0, "ns per ops/procs": 1364.0}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30021.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2225569124.0, "Ops per second": 74133727.0, "ns per ops": 13.49, "Ops per threads": 4636602.0, "Ops per procs": 23183011.0, "Ops/sec/procs": 772226.32, "ns per ops/procs": 1294.96}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30010.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6902308353.0, "Total blocks": 6902308353.0, "Ops per second": 229996934.52, "ns per ops": 4.35, "Ops per threads": 19173078.0, "Ops per procs": 95865393.0, "Ops/sec/procs": 3194401.87, "ns per ops/procs": 313.05}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30059.807761, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 389271455.0, "Total blocks": 389270792.0, "Ops per second": 12949898.35, "ns per ops": 77.22, "Ops per threads": 9731786.0, "Ops per procs": 48658931.0, "Ops/sec/procs": 1618737.29, "ns per ops/procs": 617.77}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30011.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2290844526.0, "Ops per second": 76333243.79, "ns per ops": 13.1, "Ops per threads": 4772592.0, "Ops per procs": 23862963.0, "Ops/sec/procs": 795137.96, "ns per ops/procs": 1257.64}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 169231118.0, "Ops per second": 5640804.51, "ns per ops": 177.28, "Ops per threads": 33846223.0, "Ops per procs": 169231118.0, "Ops/sec/procs": 5640804.51, "ns per ops/procs": 177.28}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30021.17524, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1298650357.0, "Total blocks": 1298595563.0, "Ops per second": 43257812.08, "ns per ops": 23.12, "Ops per threads": 2705521.0, "Ops per procs": 13527607.0, "Ops/sec/procs": 450602.21, "ns per ops/procs": 2219.25}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30052.510549, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 259339339.0, "Total blocks": 259338987.0, "Ops per second": 8629539.9, "ns per ops": 115.88, "Ops per threads": 12966966.0, "Ops per procs": 64834834.0, "Ops/sec/procs": 2157384.98, "ns per ops/procs": 463.52}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30061.231688, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 389706412.0, "Total blocks": 389705799.0, "Ops per second": 12963753.98, "ns per ops": 77.14, "Ops per threads": 9742660.0, "Ops per procs": 48713301.0, "Ops/sec/procs": 1620469.25, "ns per ops/procs": 617.11}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1514267828.0, "Ops per second": 50472490.02, "ns per ops": 19.81, "Ops per threads": 12618898.0, "Ops per procs": 63094492.0, "Ops/sec/procs": 2103020.42, "ns per ops/procs": 475.51}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30051.763322, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 208893404.0, "Total blocks": 208893301.0, "Ops per second": 6951119.7, "ns per ops": 143.86, "Ops per threads": 20889340.0, "Ops per procs": 104446702.0, "Ops/sec/procs": 3475559.85, "ns per ops/procs": 287.72}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1762404242.0, "Ops per second": 58746808.0, "ns per ops": 17.0, "Ops per threads": 3671675.0, "Ops per procs": 18358377.0, "Ops/sec/procs": 611945.0, "ns per ops/procs": 1639.0}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30041.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4721073543.0, "Ops per second": 157150386.37, "ns per ops": 6.36, "Ops per threads": 4917784.0, "Ops per procs": 24588924.0, "Ops/sec/procs": 818491.6, "ns per ops/procs": 1221.76}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1863241695.0, "Total blocks": 1863241695.0, "Ops per second": 62052604.21, "ns per ops": 16.12, "Ops per threads": 23290521.0, "Ops per procs": 116452605.0, "Ops/sec/procs": 3878287.76, "ns per ops/procs": 257.85}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30030.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1455382509.0, "Ops per second": 48512750.0, "ns per ops": 20.0, "Ops per threads": 3032046.0, "Ops per procs": 15160234.0, "Ops/sec/procs": 505341.0, "ns per ops/procs": 1980.0}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30030.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3300598875.0, "Ops per second": 109909393.33, "ns per ops": 9.1, "Ops per threads": 4584165.0, "Ops per procs": 22920825.0, "Ops/sec/procs": 763259.68, "ns per ops/procs": 1310.17}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30068.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3439143977.0, "Ops per second": 114377437.41, "ns per ops": 8.74, "Ops per threads": 4776588.0, "Ops per procs": 23882944.0, "Ops/sec/procs": 794287.76, "ns per ops/procs": 1258.99}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30064.267084, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1956872315.0, "Total blocks": 1956671201.0, "Ops per second": 65089639.79, "ns per ops": 15.36, "Ops per threads": 2038408.0, "Ops per procs": 10192043.0, "Ops/sec/procs": 339008.54, "ns per ops/procs": 2949.78}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30021.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219165422.0, "Total blocks": 219165417.0, "Ops per second": 7300217.93, "ns per ops": 136.98, "Ops per threads": 43833084.0, "Ops per procs": 219165422.0, "Ops/sec/procs": 7300217.93, "ns per ops/procs": 136.98}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2851473001.0, "Total blocks": 2851473001.0, "Ops per second": 95040165.97, "ns per ops": 10.52, "Ops per threads": 23762275.0, "Ops per procs": 118811375.0, "Ops/sec/procs": 3960006.92, "ns per ops/procs": 252.52}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1062295270.0, "Ops per second": 35409842.0, "ns per ops": 28.0, "Ops per threads": 2950820.0, "Ops per procs": 14754100.0, "Ops/sec/procs": 491803.0, "ns per ops/procs": 2039.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30050.12165, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 203453260.0, "Total blocks": 203453256.0, "Ops per second": 6770463.77, "ns per ops": 147.7, "Ops per threads": 40690652.0, "Ops per procs": 203453260.0, "Ops/sec/procs": 6770463.77, "ns per ops/procs": 147.7}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30008.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9105285783.0, "Total blocks": 9105285782.0, "Ops per second": 303424221.83, "ns per ops": 3.3, "Ops per threads": 12646230.0, "Ops per procs": 63231151.0, "Ops/sec/procs": 2107112.65, "ns per ops/procs": 474.58}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 170298799.0, "Ops per second": 5676390.52, "ns per ops": 176.17, "Ops per threads": 34059759.0, "Ops per procs": 170298799.0, "Ops/sec/procs": 5676390.52, "ns per ops/procs": 176.17}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 163851750.0, "Ops per second": 5461725.0, "ns per ops": 183.0, "Ops per threads": 32770350.0, "Ops per procs": 163851750.0, "Ops/sec/procs": 5461725.0, "ns per ops/procs": 183.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30004.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9422383139.0, "Total blocks": 9422383139.0, "Ops per second": 314030774.38, "ns per ops": 3.18, "Ops per threads": 13086643.0, "Ops per procs": 65433216.0, "Ops/sec/procs": 2180769.27, "ns per ops/procs": 458.55}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30098.972305, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1637473541.0, "Total blocks": 1637369683.0, "Ops per second": 54402971.78, "ns per ops": 18.38, "Ops per threads": 2274268.0, "Ops per procs": 11371344.0, "Ops/sec/procs": 377798.42, "ns per ops/procs": 2646.91}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30061.467699, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 387675449.0, "Total blocks": 387674798.0, "Ops per second": 12896091.86, "ns per ops": 77.54, "Ops per threads": 9691886.0, "Ops per procs": 48459431.0, "Ops/sec/procs": 1612011.48, "ns per ops/procs": 620.34}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10037817889.0, "Total blocks": 10037817888.0, "Ops per second": 334538378.62, "ns per ops": 2.99, "Ops per threads": 20912120.0, "Ops per procs": 104560603.0, "Ops/sec/procs": 3484774.78, "ns per ops/procs": 286.96}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30021.190418, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 702167569.0, "Total blocks": 702163349.0, "Ops per second": 23389064.83, "ns per ops": 42.76, "Ops per threads": 5851396.0, "Ops per procs": 29256982.0, "Ops/sec/procs": 974544.37, "ns per ops/procs": 1026.12}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8496788974.0, "Total blocks": 8496788974.0, "Ops per second": 283176799.4, "ns per ops": 3.53, "Ops per threads": 11801095.0, "Ops per procs": 59005478.0, "Ops/sec/procs": 1966505.55, "ns per ops/procs": 508.52}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30047.090768, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1134816175.0, "Total blocks": 1134804492.0, "Ops per second": 37767921.82, "ns per ops": 26.48, "Ops per threads": 4728400.0, "Ops per procs": 23642003.0, "Ops/sec/procs": 786831.7, "ns per ops/procs": 1270.92}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30049.618723, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 203439243.0, "Total blocks": 203439242.0, "Ops per second": 6770110.63, "ns per ops": 147.71, "Ops per threads": 40687848.0, "Ops per procs": 203439243.0, "Ops/sec/procs": 6770110.63, "ns per ops/procs": 147.71}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1358385548.0, "Total blocks": 1358385548.0, "Ops per second": 45245332.94, "ns per ops": 22.1, "Ops per threads": 33959638.0, "Ops per procs": 169798193.0, "Ops/sec/procs": 5655666.62, "ns per ops/procs": 176.81}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30004.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15344820146.0, "Total blocks": 15344820144.0, "Ops per second": 511410097.18, "ns per ops": 1.96, "Ops per threads": 15984187.0, "Ops per procs": 79920938.0, "Ops/sec/procs": 2663594.26, "ns per ops/procs": 375.43}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219445996.0, "Total blocks": 219445991.0, "Ops per second": 7309377.53, "ns per ops": 136.81, "Ops per threads": 43889199.0, "Ops per procs": 219445996.0, "Ops/sec/procs": 7309377.53, "ns per ops/procs": 136.81}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30003.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4045772537.0, "Total blocks": 4045772537.0, "Ops per second": 134842487.28, "ns per ops": 7.42, "Ops per threads": 16857385.0, "Ops per procs": 84286927.0, "Ops/sec/procs": 2809218.48, "ns per ops/procs": 355.97}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30007.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8986109983.0, "Total blocks": 8986109980.0, "Ops per second": 299458790.31, "ns per ops": 3.34, "Ops per threads": 12480708.0, "Ops per procs": 62403541.0, "Ops/sec/procs": 2079574.93, "ns per ops/procs": 480.87}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 280593909.0, "Ops per second": 9352656.08, "ns per ops": 106.92, "Ops per threads": 14029695.0, "Ops per procs": 70148477.0, "Ops/sec/procs": 2338164.02, "ns per ops/procs": 427.69}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30065.718618, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1622847601.0, "Total blocks": 1622758577.0, "Ops per second": 53976677.61, "ns per ops": 18.53, "Ops per threads": 2253955.0, "Ops per procs": 11269775.0, "Ops/sec/procs": 374838.04, "ns per ops/procs": 2667.82}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30034.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8323411624.0, "Total blocks": 8323411615.0, "Ops per second": 277125847.28, "ns per ops": 3.61, "Ops per threads": 11560293.0, "Ops per procs": 57801469.0, "Ops/sec/procs": 1924485.05, "ns per ops/procs": 519.62}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2870175445.0, "Total blocks": 2870175445.0, "Ops per second": 95663784.36, "ns per ops": 10.45, "Ops per threads": 23918128.0, "Ops per procs": 119590643.0, "Ops/sec/procs": 3985991.02, "ns per ops/procs": 250.88}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30084.205153, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1082237469.0, "Total blocks": 1082203325.0, "Ops per second": 35973610.19, "ns per ops": 27.8, "Ops per threads": 3006215.0, "Ops per procs": 15031075.0, "Ops/sec/procs": 499633.47, "ns per ops/procs": 2001.47}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30037.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10980191432.0, "Total blocks": 10980191421.0, "Ops per second": 365545710.36, "ns per ops": 2.74, "Ops per threads": 15250265.0, "Ops per procs": 76251329.0, "Ops/sec/procs": 2538511.88, "ns per ops/procs": 393.93}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6879631835.0, "Total blocks": 6879631835.0, "Ops per second": 229291584.98, "ns per ops": 4.36, "Ops per threads": 19110088.0, "Ops per procs": 95550442.0, "Ops/sec/procs": 3184605.35, "ns per ops/procs": 314.01}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30021.043588, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 719499338.0, "Total blocks": 719495463.0, "Ops per second": 23966499.9, "ns per ops": 41.72, "Ops per threads": 5995827.0, "Ops per procs": 29979139.0, "Ops/sec/procs": 998604.16, "ns per ops/procs": 1001.4}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30003.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4031751310.0, "Total blocks": 4031751310.0, "Ops per second": 134375766.79, "ns per ops": 7.44, "Ops per threads": 16798963.0, "Ops per procs": 83994818.0, "Ops/sec/procs": 2799495.14, "ns per ops/procs": 357.21}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30063.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 145230267.0, "Ops per second": 4841008.0, "ns per ops": 207.0, "Ops per threads": 7261513.0, "Ops per procs": 36307566.0, "Ops/sec/procs": 1210252.0, "ns per ops/procs": 828.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219457155.0, "Total blocks": 219457150.0, "Ops per second": 7309852.42, "ns per ops": 136.8, "Ops per threads": 43891431.0, "Ops per procs": 219457155.0, "Ops/sec/procs": 7309852.42, "ns per ops/procs": 136.8}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3974525491.0, "Total blocks": 3974525491.0, "Ops per second": 132450393.15, "ns per ops": 7.55, "Ops per threads": 33121045.0, "Ops per procs": 165605228.0, "Ops/sec/procs": 5518766.38, "ns per ops/procs": 181.2}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4062749934.0, "Total blocks": 4062749934.0, "Ops per second": 135405350.7, "ns per ops": 7.39, "Ops per threads": 16928124.0, "Ops per procs": 84640623.0, "Ops/sec/procs": 2820944.81, "ns per ops/procs": 354.49}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30060.56569, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 385642867.0, "Total blocks": 385642241.0, "Ops per second": 12828862.6, "ns per ops": 77.95, "Ops per threads": 9641071.0, "Ops per procs": 48205358.0, "Ops/sec/procs": 1603607.83, "ns per ops/procs": 623.59}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 263137218.0, "Ops per second": 8770801.2, "ns per ops": 114.01, "Ops per threads": 13156860.0, "Ops per procs": 65784304.0, "Ops/sec/procs": 2192700.3, "ns per ops/procs": 456.06}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30020.96541, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 715320658.0, "Total blocks": 715316739.0, "Ops per second": 23827370.25, "ns per ops": 41.97, "Ops per threads": 5961005.0, "Ops per procs": 29805027.0, "Ops/sec/procs": 992807.09, "ns per ops/procs": 1007.25}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7806859720.0, "Total blocks": 7806859717.0, "Ops per second": 260186612.81, "ns per ops": 3.84, "Ops per threads": 16264291.0, "Ops per procs": 81321455.0, "Ops/sec/procs": 2710277.22, "ns per ops/procs": 368.97}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30048.294209, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 202208749.0, "Total blocks": 202208746.0, "Ops per second": 6729458.5, "ns per ops": 148.6, "Ops per threads": 40441749.0, "Ops per procs": 202208749.0, "Ops/sec/procs": 6729458.5, "ns per ops/procs": 148.6}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30065.286283, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1948341406.0, "Total blocks": 1948145075.0, "Ops per second": 64803687.14, "ns per ops": 15.43, "Ops per threads": 2029522.0, "Ops per procs": 10147611.0, "Ops/sec/procs": 337519.2, "ns per ops/procs": 2962.79}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1035514230.0, "Ops per second": 34517141.0, "ns per ops": 29.0, "Ops per threads": 4314642.0, "Ops per procs": 21573213.0, "Ops/sec/procs": 719107.0, "ns per ops/procs": 1395.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30000.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1642785204.0, "Ops per second": 54759506.0, "ns per ops": 18.0, "Ops per threads": 3422469.0, "Ops per procs": 17112345.0, "Ops/sec/procs": 570411.0, "ns per ops/procs": 1753.0}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30011.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2316831806.0, "Ops per second": 77198067.12, "ns per ops": 12.95, "Ops per threads": 6435643.0, "Ops per procs": 32178219.0, "Ops/sec/procs": 1072195.38, "ns per ops/procs": 932.67}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30052.201613, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219458394.0, "Total blocks": 219458294.0, "Ops per second": 7302572.93, "ns per ops": 136.94, "Ops per threads": 21945839.0, "Ops per procs": 109729197.0, "Ops/sec/procs": 3651286.47, "ns per ops/procs": 273.88}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30054.552502, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 263023386.0, "Total blocks": 263022980.0, "Ops per second": 8751532.27, "ns per ops": 114.27, "Ops per threads": 13151169.0, "Ops per procs": 65755846.0, "Ops/sec/procs": 2187883.07, "ns per ops/procs": 457.06}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 887434104.0, "Ops per second": 29579514.58, "ns per ops": 33.81, "Ops per threads": 11092926.0, "Ops per procs": 55464631.0, "Ops/sec/procs": 1848719.66, "ns per ops/procs": 540.91}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30017.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2208566284.0, "Ops per second": 73576821.12, "ns per ops": 13.59, "Ops per threads": 4601179.0, "Ops per procs": 23005898.0, "Ops/sec/procs": 766425.22, "ns per ops/procs": 1304.76}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219400560.0, "Total blocks": 219400555.0, "Ops per second": 7307918.23, "ns per ops": 136.84, "Ops per threads": 43880112.0, "Ops per procs": 219400560.0, "Ops/sec/procs": 7307918.23, "ns per ops/procs": 136.84}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 278824124.0, "Ops per second": 9293676.5, "ns per ops": 107.6, "Ops per threads": 13941206.0, "Ops per procs": 69706031.0, "Ops/sec/procs": 2323419.13, "ns per ops/procs": 430.4}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2467394548.0, "Total blocks": 2467394548.0, "Ops per second": 82173276.76, "ns per ops": 12.17, "Ops per threads": 30842431.0, "Ops per procs": 154212159.0, "Ops/sec/procs": 5135829.8, "ns per ops/procs": 194.71}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30074.965558, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 618485823.0, "Total blocks": 618483934.0, "Ops per second": 20564805.7, "ns per ops": 48.63, "Ops per threads": 7731072.0, "Ops per procs": 38655363.0, "Ops/sec/procs": 1285300.36, "ns per ops/procs": 778.03}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 163618544.0, "Ops per second": 5453951.0, "ns per ops": 183.0, "Ops per threads": 32723708.0, "Ops per procs": 163618544.0, "Ops/sec/procs": 5453951.0, "ns per ops/procs": 183.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 983219900.0, "Ops per second": 32773996.0, "ns per ops": 30.0, "Ops per threads": 4096749.0, "Ops per procs": 20483747.0, "Ops/sec/procs": 682791.0, "ns per ops/procs": 1469.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30021.598307, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1952330982.0, "Total blocks": 1952122705.0, "Ops per second": 65030880.84, "ns per ops": 15.38, "Ops per threads": 2033678.0, "Ops per procs": 10168390.0, "Ops/sec/procs": 338702.5, "ns per ops/procs": 2952.44}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30076.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4675330883.0, "Ops per second": 155449948.61, "ns per ops": 6.43, "Ops per threads": 4870136.0, "Ops per procs": 24350681.0, "Ops/sec/procs": 809635.15, "ns per ops/procs": 1235.12}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 747663677.0, "Ops per second": 24922122.0, "ns per ops": 40.0, "Ops per threads": 2076843.0, "Ops per procs": 10384217.0, "Ops/sec/procs": 346140.0, "ns per ops/procs": 2898.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1708910175.0, "Ops per second": 56963672.0, "ns per ops": 17.0, "Ops per threads": 1780114.0, "Ops per procs": 8900573.0, "Ops/sec/procs": 296685.0, "ns per ops/procs": 3381.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 317990414.0, "Total blocks": 317990404.0, "Ops per second": 10591389.06, "ns per ops": 94.42, "Ops per threads": 31799041.0, "Ops per procs": 158995207.0, "Ops/sec/procs": 5295694.53, "ns per ops/procs": 188.83}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30061.269843, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1968352511.0, "Total blocks": 1968125519.0, "Ops per second": 65478022.76, "ns per ops": 15.27, "Ops per threads": 2050367.0, "Ops per procs": 10251835.0, "Ops/sec/procs": 341031.37, "ns per ops/procs": 2932.28}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30077.104651, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 613345249.0, "Total blocks": 613343241.0, "Ops per second": 20392429.93, "ns per ops": 49.04, "Ops per threads": 7666815.0, "Ops per procs": 38334078.0, "Ops/sec/procs": 1274526.87, "ns per ops/procs": 784.6}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30039.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4721227995.0, "Ops per second": 157167628.56, "ns per ops": 6.36, "Ops per threads": 4917945.0, "Ops per procs": 24589729.0, "Ops/sec/procs": 818581.4, "ns per ops/procs": 1221.63}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30004.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1161299664.0, "Ops per second": 38709988.0, "ns per ops": 25.0, "Ops per threads": 1612916.0, "Ops per procs": 8064581.0, "Ops/sec/procs": 268819.0, "ns per ops/procs": 3720.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30053.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 127510283.0, "Ops per second": 4250342.0, "ns per ops": 235.0, "Ops per threads": 12751028.0, "Ops per procs": 63755141.0, "Ops/sec/procs": 2125171.0, "ns per ops/procs": 471.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30020.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1907332468.0, "Ops per second": 63577748.0, "ns per ops": 15.0, "Ops per threads": 2649072.0, "Ops per procs": 13245364.0, "Ops/sec/procs": 441512.0, "ns per ops/procs": 2266.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30007.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15257076115.0, "Total blocks": 15257076114.0, "Ops per second": 508439690.7, "ns per ops": 1.97, "Ops per threads": 15892787.0, "Ops per procs": 79463938.0, "Ops/sec/procs": 2648123.39, "ns per ops/procs": 377.63}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1135649654.0, "Total blocks": 1135649654.0, "Ops per second": 37824273.51, "ns per ops": 26.44, "Ops per threads": 28391241.0, "Ops per procs": 141956206.0, "Ops/sec/procs": 4728034.19, "ns per ops/procs": 211.5}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30016.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1694643345.0, "Ops per second": 56488111.0, "ns per ops": 17.0, "Ops per threads": 1765253.0, "Ops per procs": 8826267.0, "Ops/sec/procs": 294208.0, "ns per ops/procs": 3400.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30023.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219099397.0, "Total blocks": 219099392.0, "Ops per second": 7297543.16, "ns per ops": 137.03, "Ops per threads": 43819879.0, "Ops per procs": 219099397.0, "Ops/sec/procs": 7297543.16, "ns per ops/procs": 137.03}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30046.060274, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1129547583.0, "Total blocks": 1129535051.0, "Ops per second": 37593866.64, "ns per ops": 26.6, "Ops per threads": 4706448.0, "Ops per procs": 23532241.0, "Ops/sec/procs": 783205.56, "ns per ops/procs": 1276.8}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30039.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 158942896.0, "Ops per second": 5298096.0, "ns per ops": 188.0, "Ops per threads": 7947144.0, "Ops per procs": 39735724.0, "Ops/sec/procs": 1324524.0, "ns per ops/procs": 755.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30089.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15236894327.0, "Total blocks": 15236894326.0, "Ops per second": 506386811.56, "ns per ops": 1.97, "Ops per threads": 15871764.0, "Ops per procs": 79358824.0, "Ops/sec/procs": 2637431.31, "ns per ops/procs": 379.16}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 760890080.0, "Total blocks": 760890080.0, "Ops per second": 25342641.52, "ns per ops": 39.46, "Ops per threads": 38044504.0, "Ops per procs": 190222520.0, "Ops/sec/procs": 6335660.38, "ns per ops/procs": 157.84}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1528301627.0, "Ops per second": 50943387.0, "ns per ops": 19.0, "Ops per threads": 3183961.0, "Ops per procs": 15919808.0, "Ops/sec/procs": 530660.0, "ns per ops/procs": 1890.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15770868034.0, "Total blocks": 15770868033.0, "Ops per second": 525603056.0, "ns per ops": 1.9, "Ops per threads": 16427987.0, "Ops per procs": 82139937.0, "Ops/sec/procs": 2737515.92, "ns per ops/procs": 365.29}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 265041436.0, "Ops per second": 8834270.16, "ns per ops": 113.2, "Ops per threads": 13252071.0, "Ops per procs": 66260359.0, "Ops/sec/procs": 2208567.54, "ns per ops/procs": 452.78}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30020.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 239519481.0, "Ops per second": 7983982.0, "ns per ops": 125.0, "Ops per threads": 5987987.0, "Ops per procs": 29939935.0, "Ops/sec/procs": 997997.0, "ns per ops/procs": 1002.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30099.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 487681117.0, "Ops per second": 16256037.0, "ns per ops": 61.0, "Ops per threads": 6096013.0, "Ops per procs": 30480069.0, "Ops/sec/procs": 1016002.0, "ns per ops/procs": 987.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2864800492.0, "Total blocks": 2864800492.0, "Ops per second": 95484382.85, "ns per ops": 10.47, "Ops per threads": 23873337.0, "Ops per procs": 119366687.0, "Ops/sec/procs": 3978515.95, "ns per ops/procs": 251.35}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30038.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3441174129.0, "Ops per second": 114557406.43, "ns per ops": 8.73, "Ops per threads": 4779408.0, "Ops per procs": 23897042.0, "Ops/sec/procs": 795537.54, "ns per ops/procs": 1257.01}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30053.229752, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 262797659.0, "Total blocks": 262797312.0, "Ops per second": 8744406.55, "ns per ops": 114.36, "Ops per threads": 13139882.0, "Ops per procs": 65699414.0, "Ops/sec/procs": 2186101.64, "ns per ops/procs": 457.44}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30063.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 117622817.0, "Ops per second": 3920760.0, "ns per ops": 255.0, "Ops per threads": 11762281.0, "Ops per procs": 58811408.0, "Ops/sec/procs": 1960380.0, "ns per ops/procs": 511.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 838711558.0, "Ops per second": 27957051.0, "ns per ops": 35.0, "Ops per threads": 2329754.0, "Ops per procs": 11648771.0, "Ops/sec/procs": 388292.0, "ns per ops/procs": 2583.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30004.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7056468167.0, "Total blocks": 7056468166.0, "Ops per second": 235183887.15, "ns per ops": 4.25, "Ops per threads": 19601300.0, "Ops per procs": 98006502.0, "Ops/sec/procs": 3266442.88, "ns per ops/procs": 306.14}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30017.342322, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 691898021.0, "Total blocks": 691894137.0, "Ops per second": 23049942.72, "ns per ops": 43.38, "Ops per threads": 5765816.0, "Ops per procs": 28829084.0, "Ops/sec/procs": 960414.28, "ns per ops/procs": 1041.22}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 640213946.0, "Ops per second": 21340464.0, "ns per ops": 47.0, "Ops per threads": 5335116.0, "Ops per procs": 26675581.0, "Ops/sec/procs": 889186.0, "ns per ops/procs": 1128.0}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 271016270.0, "Ops per second": 9033329.13, "ns per ops": 110.7, "Ops per threads": 13550813.0, "Ops per procs": 67754067.0, "Ops/sec/procs": 2258332.28, "ns per ops/procs": 442.8}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30047.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4706033167.0, "Ops per second": 156620517.36, "ns per ops": 6.38, "Ops per threads": 4902117.0, "Ops per procs": 24510589.0, "Ops/sec/procs": 815731.86, "ns per ops/procs": 1225.89}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30003.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3987280613.0, "Total blocks": 3987280613.0, "Ops per second": 132893567.25, "ns per ops": 7.52, "Ops per threads": 33227338.0, "Ops per procs": 166136692.0, "Ops/sec/procs": 5537231.97, "ns per ops/procs": 180.6}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30009.852194, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1608108038.0, "Total blocks": 1607974694.0, "Ops per second": 53586003.28, "ns per ops": 18.66, "Ops per threads": 2233483.0, "Ops per procs": 11167416.0, "Ops/sec/procs": 372125.02, "ns per ops/procs": 2687.27}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 515313399.0, "Total blocks": 515313399.0, "Ops per second": 17163456.65, "ns per ops": 58.26, "Ops per threads": 25765669.0, "Ops per procs": 128828349.0, "Ops/sec/procs": 4290864.16, "ns per ops/procs": 233.05}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30030.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2508213563.0, "Total blocks": 2508213563.0, "Ops per second": 83523453.4, "ns per ops": 11.97, "Ops per threads": 31352669.0, "Ops per procs": 156763347.0, "Ops/sec/procs": 5220215.84, "ns per ops/procs": 191.56}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 650117010.0, "Ops per second": 21670567.0, "ns per ops": 46.0, "Ops per threads": 5417641.0, "Ops per procs": 27088208.0, "Ops/sec/procs": 902940.0, "ns per ops/procs": 1111.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 793542481.0, "Total blocks": 793542481.0, "Ops per second": 26430227.55, "ns per ops": 37.84, "Ops per threads": 39677124.0, "Ops per procs": 198385620.0, "Ops/sec/procs": 6607556.89, "ns per ops/procs": 151.34}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 321689804.0, "Total blocks": 321689794.0, "Ops per second": 10714565.64, "ns per ops": 93.33, "Ops per threads": 32168980.0, "Ops per procs": 160844902.0, "Ops/sec/procs": 5357282.82, "ns per ops/procs": 186.66}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30099.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 486165262.0, "Ops per second": 16205508.0, "ns per ops": 61.0, "Ops per threads": 6077065.0, "Ops per procs": 30385328.0, "Ops/sec/procs": 1012844.0, "ns per ops/procs": 990.0}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 894138637.0, "Ops per second": 29803009.11, "ns per ops": 33.55, "Ops per threads": 11176732.0, "Ops per procs": 55883664.0, "Ops/sec/procs": 1862688.07, "ns per ops/procs": 536.86}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30070.147265, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1679102733.0, "Total blocks": 1678996313.0, "Ops per second": 55839524.77, "ns per ops": 17.91, "Ops per threads": 2332087.0, "Ops per procs": 11660435.0, "Ops/sec/procs": 387774.48, "ns per ops/procs": 2578.82}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30003.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3907997471.0, "Total blocks": 3907997471.0, "Ops per second": 130249406.63, "ns per ops": 7.68, "Ops per threads": 16283322.0, "Ops per procs": 81416613.0, "Ops/sec/procs": 2713529.3, "ns per ops/procs": 368.52}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2058010547.0, "Ops per second": 68577047.07, "ns per ops": 14.58, "Ops per threads": 8575043.0, "Ops per procs": 42875219.0, "Ops/sec/procs": 1428688.48, "ns per ops/procs": 699.94}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30006.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6688530168.0, "Total blocks": 6688530168.0, "Ops per second": 222905324.71, "ns per ops": 4.49, "Ops per threads": 18579250.0, "Ops per procs": 92896252.0, "Ops/sec/procs": 3095907.29, "ns per ops/procs": 323.01}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 870748646.0, "Total blocks": 870748646.0, "Ops per second": 29002809.69, "ns per ops": 34.48, "Ops per threads": 21768716.0, "Ops per procs": 108843580.0, "Ops/sec/procs": 3625351.21, "ns per ops/procs": 275.84}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 799760923.0, "Ops per second": 26658697.0, "ns per ops": 37.0, "Ops per threads": 6664674.0, "Ops per procs": 33323371.0, "Ops/sec/procs": 1110779.0, "ns per ops/procs": 903.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30053.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 126012216.0, "Ops per second": 4200407.0, "ns per ops": 238.0, "Ops per threads": 12601221.0, "Ops per procs": 63006108.0, "Ops/sec/procs": 2100203.0, "ns per ops/procs": 476.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30023.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 217736850.0, "Ops per second": 7257895.0, "ns per ops": 137.0, "Ops per threads": 5443421.0, "Ops per procs": 27217106.0, "Ops/sec/procs": 907236.0, "ns per ops/procs": 1103.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30088.986815, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1964703084.0, "Total blocks": 1964426565.0, "Ops per second": 65296418.79, "ns per ops": 15.31, "Ops per threads": 2046565.0, "Ops per procs": 10232828.0, "Ops/sec/procs": 340085.51, "ns per ops/procs": 2940.44}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 891118932.0, "Ops per second": 29702335.38, "ns per ops": 33.67, "Ops per threads": 11138986.0, "Ops per procs": 55694933.0, "Ops/sec/procs": 1856395.96, "ns per ops/procs": 538.68}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 480497207.0, "Ops per second": 16015780.16, "ns per ops": 62.44, "Ops per threads": 12012430.0, "Ops per procs": 60062150.0, "Ops/sec/procs": 2001972.52, "ns per ops/procs": 499.51}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1212015758.0, "Ops per second": 40400525.0, "ns per ops": 24.0, "Ops per threads": 5050065.0, "Ops per procs": 25250328.0, "Ops/sec/procs": 841677.0, "ns per ops/procs": 1191.0}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30010.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2348032981.0, "Ops per second": 78240318.99, "ns per ops": 12.78, "Ops per threads": 6522313.0, "Ops per procs": 32611569.0, "Ops/sec/procs": 1086671.1, "ns per ops/procs": 920.24}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30048.942615, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1293924524.0, "Total blocks": 1293871691.0, "Ops per second": 43060567.57, "ns per ops": 23.22, "Ops per threads": 2695676.0, "Ops per procs": 13478380.0, "Ops/sec/procs": 448547.58, "ns per ops/procs": 2229.42}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30006.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6377739403.0, "Total blocks": 6377739402.0, "Ops per second": 212544640.73, "ns per ops": 4.7, "Ops per threads": 17715942.0, "Ops per procs": 88579713.0, "Ops/sec/procs": 2952008.9, "ns per ops/procs": 338.75}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 796997937.0, "Ops per second": 26566597.0, "ns per ops": 37.0, "Ops per threads": 6641649.0, "Ops per procs": 33208247.0, "Ops/sec/procs": 1106941.0, "ns per ops/procs": 906.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30076.044276, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 615548548.0, "Total blocks": 615546631.0, "Ops per second": 20466406.5, "ns per ops": 48.86, "Ops per threads": 7694356.0, "Ops per procs": 38471784.0, "Ops/sec/procs": 1279150.41, "ns per ops/procs": 781.77}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30019.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2203081240.0, "Ops per second": 73389308.23, "ns per ops": 13.63, "Ops per threads": 4589752.0, "Ops per procs": 22948762.0, "Ops/sec/procs": 764471.96, "ns per ops/procs": 1308.09}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 286546469.0, "Ops per second": 9551079.79, "ns per ops": 104.7, "Ops per threads": 14327323.0, "Ops per procs": 71636617.0, "Ops/sec/procs": 2387769.95, "ns per ops/procs": 418.8}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 287942155.0, "Ops per second": 9597610.19, "ns per ops": 104.19, "Ops per threads": 14397107.0, "Ops per procs": 71985538.0, "Ops/sec/procs": 2399402.55, "ns per ops/procs": 416.77}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30011.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2870402993.0, "Total blocks": 2870402993.0, "Ops per second": 95644204.94, "ns per ops": 10.46, "Ops per threads": 23920024.0, "Ops per procs": 119600124.0, "Ops/sec/procs": 3985175.21, "ns per ops/procs": 250.93}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 514215001.0, "Total blocks": 514215001.0, "Ops per second": 17126682.39, "ns per ops": 58.39, "Ops per threads": 25710750.0, "Ops per procs": 128553750.0, "Ops/sec/procs": 4281670.6, "ns per ops/procs": 233.55}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30098.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1281534489.0, "Ops per second": 42717816.0, "ns per ops": 23.0, "Ops per threads": 1779909.0, "Ops per procs": 8899545.0, "Ops/sec/procs": 296651.0, "ns per ops/procs": 3382.0}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1504675716.0, "Ops per second": 50152616.68, "ns per ops": 19.94, "Ops per threads": 12538964.0, "Ops per procs": 62694821.0, "Ops/sec/procs": 2089692.36, "ns per ops/procs": 478.54}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 318553681.0, "Total blocks": 318553671.0, "Ops per second": 10610165.17, "ns per ops": 94.25, "Ops per threads": 31855368.0, "Ops per procs": 159276840.0, "Ops/sec/procs": 5305082.59, "ns per ops/procs": 188.5}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1166923550.0, "Ops per second": 38897451.0, "ns per ops": 25.0, "Ops per threads": 4862181.0, "Ops per procs": 24310907.0, "Ops/sec/procs": 810363.0, "ns per ops/procs": 1238.0}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30019.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2173263546.0, "Ops per second": 72394586.61, "ns per ops": 13.81, "Ops per threads": 4527632.0, "Ops per procs": 22638161.0, "Ops/sec/procs": 754110.28, "ns per ops/procs": 1326.07}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30057.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 142096242.0, "Ops per second": 4736541.0, "ns per ops": 211.0, "Ops per threads": 7104812.0, "Ops per procs": 35524060.0, "Ops/sec/procs": 1184135.0, "ns per ops/procs": 846.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30007.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1313424362.0, "Ops per second": 43780812.0, "ns per ops": 22.0, "Ops per threads": 1824200.0, "Ops per procs": 9121002.0, "Ops/sec/procs": 304033.0, "ns per ops/procs": 3289.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3960389668.0, "Total blocks": 3960389668.0, "Ops per second": 131993794.43, "ns per ops": 7.58, "Ops per threads": 16501623.0, "Ops per procs": 82508118.0, "Ops/sec/procs": 2749870.72, "ns per ops/procs": 363.65}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30041.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 20048620673.0, "Total blocks": 20048620673.0, "Ops per second": 667354325.93, "ns per ops": 1.5, "Ops per threads": 20883979.0, "Ops per procs": 104419899.0, "Ops/sec/procs": 3475803.78, "ns per ops/procs": 287.7}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30050.05732, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 203480241.0, "Total blocks": 203480237.0, "Ops per second": 6771376.14, "ns per ops": 147.68, "Ops per threads": 40696048.0, "Ops per procs": 203480241.0, "Ops/sec/procs": 6771376.14, "ns per ops/procs": 147.68}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2111970816.0, "Ops per second": 70373385.43, "ns per ops": 14.21, "Ops per threads": 8799878.0, "Ops per procs": 43999392.0, "Ops/sec/procs": 1466112.2, "ns per ops/procs": 682.08}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30060.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3533663337.0, "Ops per second": 117550219.91, "ns per ops": 8.51, "Ops per threads": 4907865.0, "Ops per procs": 24539328.0, "Ops/sec/procs": 816320.97, "ns per ops/procs": 1225.01}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30100.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2656574687.0, "Ops per second": 88552489.0, "ns per ops": 11.0, "Ops per threads": 2767265.0, "Ops per procs": 13836326.0, "Ops/sec/procs": 461210.0, "ns per ops/procs": 2175.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 794144531.0, "Ops per second": 26471484.0, "ns per ops": 37.0, "Ops per threads": 6617871.0, "Ops per procs": 33089355.0, "Ops/sec/procs": 1102978.0, "ns per ops/procs": 909.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30020.982684, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 710669306.0, "Total blocks": 710665471.0, "Ops per second": 23672419.84, "ns per ops": 42.24, "Ops per threads": 5922244.0, "Ops per procs": 29611221.0, "Ops/sec/procs": 986350.83, "ns per ops/procs": 1013.84}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1459306311.0, "Ops per second": 48640514.98, "ns per ops": 20.56, "Ops per threads": 12160885.0, "Ops per procs": 60804429.0, "Ops/sec/procs": 2026688.12, "ns per ops/procs": 493.42}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2251200885.0, "Ops per second": 75031697.53, "ns per ops": 13.33, "Ops per threads": 6253335.0, "Ops per procs": 31266678.0, "Ops/sec/procs": 1042106.91, "ns per ops/procs": 959.59}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30011.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3484085088.0, "Ops per second": 116092758.26, "ns per ops": 8.61, "Ops per threads": 4839007.0, "Ops per procs": 24195035.0, "Ops/sec/procs": 806199.71, "ns per ops/procs": 1240.39}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1668236826.0, "Ops per second": 55607894.0, "ns per ops": 18.0, "Ops per threads": 3475493.0, "Ops per procs": 17377466.0, "Ops/sec/procs": 579248.0, "ns per ops/procs": 1732.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10053179508.0, "Total blocks": 10053179508.0, "Ops per second": 335053798.27, "ns per ops": 2.98, "Ops per threads": 20944123.0, "Ops per procs": 104720619.0, "Ops/sec/procs": 3490143.73, "ns per ops/procs": 286.52}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30000.295113, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1968869961.0, "Total blocks": 1968645144.0, "Ops per second": 65628353.11, "ns per ops": 15.24, "Ops per threads": 2050906.0, "Ops per procs": 10254531.0, "Ops/sec/procs": 341814.34, "ns per ops/procs": 2925.56}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30041.03009, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1959069065.0, "Total blocks": 1958828725.0, "Ops per second": 65213112.17, "ns per ops": 15.33, "Ops per threads": 2040696.0, "Ops per procs": 10203484.0, "Ops/sec/procs": 339651.63, "ns per ops/procs": 2944.19}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30061.783401, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 388393245.0, "Total blocks": 388392639.0, "Ops per second": 12919833.79, "ns per ops": 77.4, "Ops per threads": 9709831.0, "Ops per procs": 48549155.0, "Ops/sec/procs": 1614979.22, "ns per ops/procs": 619.2}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30023.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 230484952.0, "Ops per second": 7682831.0, "ns per ops": 130.0, "Ops per threads": 5762123.0, "Ops per procs": 28810619.0, "Ops/sec/procs": 960353.0, "ns per ops/procs": 1042.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30042.910507, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1326727912.0, "Total blocks": 1326682569.0, "Ops per second": 44161097.9, "ns per ops": 22.64, "Ops per threads": 2764016.0, "Ops per procs": 13820082.0, "Ops/sec/procs": 460011.44, "ns per ops/procs": 2173.86}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30004.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8285510525.0, "Total blocks": 8285510525.0, "Ops per second": 276138033.03, "ns per ops": 3.62, "Ops per threads": 11507653.0, "Ops per procs": 57538267.0, "Ops/sec/procs": 1917625.23, "ns per ops/procs": 521.48}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1541102183.0, "Ops per second": 51370072.0, "ns per ops": 19.0, "Ops per threads": 3210629.0, "Ops per procs": 16053147.0, "Ops/sec/procs": 535104.0, "ns per ops/procs": 1874.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30084.546462, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1636395619.0, "Total blocks": 1636273825.0, "Ops per second": 54393228.8, "ns per ops": 18.38, "Ops per threads": 2272771.0, "Ops per procs": 11363858.0, "Ops/sec/procs": 377730.76, "ns per ops/procs": 2647.39}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219413990.0, "Total blocks": 219413985.0, "Ops per second": 7308392.08, "ns per ops": 136.83, "Ops per threads": 43882798.0, "Ops per procs": 219413990.0, "Ops/sec/procs": 7308392.08, "ns per ops/procs": 136.83}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30060.816991, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 394093711.0, "Total blocks": 394093100.0, "Ops per second": 13109880.25, "ns per ops": 76.28, "Ops per threads": 9852342.0, "Ops per procs": 49261713.0, "Ops/sec/procs": 1638735.03, "ns per ops/procs": 610.23}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 739080922.0, "Total blocks": 739080922.0, "Ops per second": 24616356.9, "ns per ops": 40.62, "Ops per threads": 36954046.0, "Ops per procs": 184770230.0, "Ops/sec/procs": 6154089.23, "ns per ops/procs": 162.49}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1494651690.0, "Ops per second": 49818698.89, "ns per ops": 20.07, "Ops per threads": 12455430.0, "Ops per procs": 62277153.0, "Ops/sec/procs": 2075779.12, "ns per ops/procs": 481.75}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30026.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8802470310.0, "Total blocks": 8802470310.0, "Ops per second": 293158990.66, "ns per ops": 3.41, "Ops per threads": 12225653.0, "Ops per procs": 61128266.0, "Ops/sec/procs": 2035826.32, "ns per ops/procs": 491.2}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30023.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 221548783.0, "Ops per second": 7384959.0, "ns per ops": 135.0, "Ops per threads": 5538719.0, "Ops per procs": 27693597.0, "Ops/sec/procs": 923119.0, "ns per ops/procs": 1084.0}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30034.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3265897994.0, "Ops per second": 108738515.44, "ns per ops": 9.2, "Ops per threads": 4535969.0, "Ops per procs": 22679847.0, "Ops/sec/procs": 755128.58, "ns per ops/procs": 1324.28}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30048.76123, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1601001091.0, "Total blocks": 1600891596.0, "Ops per second": 53280102.92, "ns per ops": 18.77, "Ops per threads": 2223612.0, "Ops per procs": 11118063.0, "Ops/sec/procs": 370000.71, "ns per ops/procs": 2702.7}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 170520275.0, "Ops per second": 5683774.53, "ns per ops": 175.94, "Ops per threads": 34104055.0, "Ops per procs": 170520275.0, "Ops/sec/procs": 5683774.53, "ns per ops/procs": 175.94}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3976199078.0, "Total blocks": 3976199078.0, "Ops per second": 132520560.88, "ns per ops": 7.55, "Ops per threads": 16567496.0, "Ops per procs": 82837480.0, "Ops/sec/procs": 2760845.02, "ns per ops/procs": 362.21}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30006.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2309893574.0, "Ops per second": 76979529.03, "ns per ops": 12.99, "Ops per threads": 6416371.0, "Ops per procs": 32081855.0, "Ops/sec/procs": 1069160.13, "ns per ops/procs": 935.31}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 687023093.0, "Ops per second": 22900769.0, "ns per ops": 43.0, "Ops per threads": 5725192.0, "Ops per procs": 28625962.0, "Ops/sec/procs": 954198.0, "ns per ops/procs": 1051.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30019.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15321811915.0, "Total blocks": 15321811914.0, "Ops per second": 510395763.68, "ns per ops": 1.96, "Ops per threads": 15960220.0, "Ops per procs": 79801103.0, "Ops/sec/procs": 2658311.27, "ns per ops/procs": 376.18}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30074.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 155858533.0, "Ops per second": 5195284.0, "ns per ops": 192.0, "Ops per threads": 7792926.0, "Ops per procs": 38964633.0, "Ops/sec/procs": 1298821.0, "ns per ops/procs": 771.0}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30057.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3479978457.0, "Ops per second": 115775636.14, "ns per ops": 8.64, "Ops per threads": 4833303.0, "Ops per procs": 24166517.0, "Ops/sec/procs": 803997.47, "ns per ops/procs": 1243.79}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 164077288.0, "Ops per second": 5469242.0, "ns per ops": 183.0, "Ops per threads": 32815457.0, "Ops per procs": 164077288.0, "Ops/sec/procs": 5469242.0, "ns per ops/procs": 183.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30061.655055, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 388241577.0, "Total blocks": 388240954.0, "Ops per second": 12914843.72, "ns per ops": 77.43, "Ops per threads": 9706039.0, "Ops per procs": 48530197.0, "Ops/sec/procs": 1614355.47, "ns per ops/procs": 619.44}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30044.341325, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1153110850.0, "Total blocks": 1153097971.0, "Ops per second": 38380300.55, "ns per ops": 26.06, "Ops per threads": 4804628.0, "Ops per procs": 24023142.0, "Ops/sec/procs": 799589.59, "ns per ops/procs": 1250.64}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 903322145.0, "Total blocks": 903322145.0, "Ops per second": 30087825.46, "ns per ops": 33.24, "Ops per threads": 22583053.0, "Ops per procs": 112915268.0, "Ops/sec/procs": 3760978.18, "ns per ops/procs": 265.89}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 900229115.0, "Ops per second": 30005981.47, "ns per ops": 33.33, "Ops per threads": 11252863.0, "Ops per procs": 56264319.0, "Ops/sec/procs": 1875373.84, "ns per ops/procs": 533.23}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30062.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 152420389.0, "Ops per second": 5080679.0, "ns per ops": 197.0, "Ops per threads": 7621019.0, "Ops per procs": 38105097.0, "Ops/sec/procs": 1270169.0, "ns per ops/procs": 788.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7648074609.0, "Total blocks": 7648074609.0, "Ops per second": 254894046.01, "ns per ops": 3.92, "Ops per threads": 15933488.0, "Ops per procs": 79667443.0, "Ops/sec/procs": 2655146.31, "ns per ops/procs": 376.63}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30055.36182, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 265272069.0, "Total blocks": 265271630.0, "Ops per second": 8826114.64, "ns per ops": 113.3, "Ops per threads": 13263603.0, "Ops per procs": 66318017.0, "Ops/sec/procs": 2206528.66, "ns per ops/procs": 453.2}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 316244400.0, "Total blocks": 316244390.0, "Ops per second": 10533205.38, "ns per ops": 94.94, "Ops per threads": 31624440.0, "Ops per procs": 158122200.0, "Ops/sec/procs": 5266602.69, "ns per ops/procs": 189.88}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30079.162573, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 617572264.0, "Total blocks": 617570374.0, "Ops per second": 20531564.42, "ns per ops": 48.71, "Ops per threads": 7719653.0, "Ops per procs": 38598266.0, "Ops/sec/procs": 1283222.78, "ns per ops/procs": 779.29}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 165921389.0, "Ops per second": 5530447.92, "ns per ops": 180.82, "Ops per threads": 16592138.0, "Ops per procs": 82960694.0, "Ops/sec/procs": 2765223.96, "ns per ops/procs": 361.63}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30060.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 160754175.0, "Ops per second": 5358472.0, "ns per ops": 186.0, "Ops per threads": 8037708.0, "Ops per procs": 40188543.0, "Ops/sec/procs": 1339618.0, "ns per ops/procs": 747.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30063.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 144397887.0, "Ops per second": 4813262.0, "ns per ops": 208.0, "Ops per threads": 7219894.0, "Ops per procs": 36099471.0, "Ops/sec/procs": 1203315.0, "ns per ops/procs": 832.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30100.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 483548613.0, "Ops per second": 16118287.0, "ns per ops": 62.0, "Ops per threads": 6044357.0, "Ops per procs": 30221788.0, "Ops/sec/procs": 1007392.0, "ns per ops/procs": 995.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30030.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3012031948.0, "Total blocks": 3012031948.0, "Ops per second": 100298063.08, "ns per ops": 9.97, "Ops per threads": 37650399.0, "Ops per procs": 188251996.0, "Ops/sec/procs": 6268628.94, "ns per ops/procs": 159.52}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30020.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 229429159.0, "Ops per second": 7647638.0, "ns per ops": 130.0, "Ops per threads": 5735728.0, "Ops per procs": 28678644.0, "Ops/sec/procs": 955954.0, "ns per ops/procs": 1046.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1876448968.0, "Total blocks": 1876448968.0, "Ops per second": 62492083.75, "ns per ops": 16.0, "Ops per threads": 23455612.0, "Ops per procs": 117278060.0, "Ops/sec/procs": 3905755.23, "ns per ops/procs": 256.03}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30075.718407, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 606485555.0, "Total blocks": 606483664.0, "Ops per second": 20165289.05, "ns per ops": 49.59, "Ops per threads": 7581069.0, "Ops per procs": 37905347.0, "Ops/sec/procs": 1260330.57, "ns per ops/procs": 793.44}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 318986521.0, "Total blocks": 318986511.0, "Ops per second": 10624577.43, "ns per ops": 94.12, "Ops per threads": 31898652.0, "Ops per procs": 159493260.0, "Ops/sec/procs": 5312288.71, "ns per ops/procs": 188.24}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30022.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4561288713.0, "Ops per second": 151930576.63, "ns per ops": 6.58, "Ops per threads": 4751342.0, "Ops per procs": 23756712.0, "Ops/sec/procs": 791305.09, "ns per ops/procs": 1263.74}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30060.8561, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 395578827.0, "Total blocks": 395578198.0, "Ops per second": 13159266.84, "ns per ops": 75.99, "Ops per threads": 9889470.0, "Ops per procs": 49447353.0, "Ops/sec/procs": 1644908.36, "ns per ops/procs": 607.94}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1582178189.0, "Ops per second": 52739272.0, "ns per ops": 19.0, "Ops per threads": 3296204.0, "Ops per procs": 16481022.0, "Ops/sec/procs": 549367.0, "ns per ops/procs": 1826.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 922515523.0, "Ops per second": 30750517.0, "ns per ops": 32.0, "Ops per threads": 2562543.0, "Ops per procs": 12812715.0, "Ops/sec/procs": 427090.0, "ns per ops/procs": 2349.0}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1460238232.0, "Ops per second": 48671581.67, "ns per ops": 20.55, "Ops per threads": 12168651.0, "Ops per procs": 60843259.0, "Ops/sec/procs": 2027982.57, "ns per ops/procs": 493.1}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30018.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2229601841.0, "Ops per second": 74273903.16, "ns per ops": 13.46, "Ops per threads": 4645003.0, "Ops per procs": 23225019.0, "Ops/sec/procs": 773686.49, "ns per ops/procs": 1292.51}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 163630952.0, "Ops per second": 5454365.0, "ns per ops": 183.0, "Ops per threads": 32726190.0, "Ops per procs": 163630952.0, "Ops/sec/procs": 5454365.0, "ns per ops/procs": 183.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30098.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1899795501.0, "Ops per second": 63326516.0, "ns per ops": 15.0, "Ops per threads": 1978953.0, "Ops per procs": 9894768.0, "Ops/sec/procs": 329825.0, "ns per ops/procs": 3041.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30051.939633, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 214502802.0, "Total blocks": 214502691.0, "Ops per second": 7137735.69, "ns per ops": 140.1, "Ops per threads": 21450280.0, "Ops per procs": 107251401.0, "Ops/sec/procs": 3568867.84, "ns per ops/procs": 280.2}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1055665028.0, "Ops per second": 35188834.0, "ns per ops": 28.0, "Ops per threads": 4398604.0, "Ops per procs": 21993021.0, "Ops/sec/procs": 733100.0, "ns per ops/procs": 1368.0}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30013.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4712856006.0, "Ops per second": 157026792.47, "ns per ops": 6.37, "Ops per threads": 4909225.0, "Ops per procs": 24546125.0, "Ops/sec/procs": 817847.88, "ns per ops/procs": 1222.72}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 897863229.0, "Ops per second": 29926949.62, "ns per ops": 33.41, "Ops per threads": 11223290.0, "Ops per procs": 56116451.0, "Ops/sec/procs": 1870434.35, "ns per ops/procs": 534.64}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30056.034675, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 260211135.0, "Total blocks": 260210792.0, "Ops per second": 8657533.76, "ns per ops": 115.51, "Ops per threads": 13010556.0, "Ops per procs": 65052783.0, "Ops/sec/procs": 2164383.44, "ns per ops/procs": 462.03}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1395067311.0, "Total blocks": 1395067311.0, "Ops per second": 46466725.91, "ns per ops": 21.52, "Ops per threads": 34876682.0, "Ops per procs": 174383413.0, "Ops/sec/procs": 5808340.74, "ns per ops/procs": 172.17}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2355377861.0, "Ops per second": 78504026.15, "ns per ops": 12.74, "Ops per threads": 6542716.0, "Ops per procs": 32713581.0, "Ops/sec/procs": 1090333.7, "ns per ops/procs": 917.15}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30076.826448, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 618477695.0, "Total blocks": 618475888.0, "Ops per second": 20563263.08, "ns per ops": 48.63, "Ops per threads": 7730971.0, "Ops per procs": 38654855.0, "Ops/sec/procs": 1285203.94, "ns per ops/procs": 778.09}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30062.523113, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1132412780.0, "Total blocks": 1132400664.0, "Ops per second": 37668587.42, "ns per ops": 26.55, "Ops per threads": 4718386.0, "Ops per procs": 23591932.0, "Ops/sec/procs": 784762.24, "ns per ops/procs": 1274.27}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 785967012.0, "Ops per second": 26198900.0, "ns per ops": 38.0, "Ops per threads": 6549725.0, "Ops per procs": 32748625.0, "Ops/sec/procs": 1091620.0, "ns per ops/procs": 919.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30031.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8905420825.0, "Total blocks": 8905420824.0, "Ops per second": 296539514.83, "ns per ops": 3.37, "Ops per threads": 12368640.0, "Ops per procs": 61843200.0, "Ops/sec/procs": 2059302.19, "ns per ops/procs": 485.6}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 490076281.0, "Ops per second": 16335876.0, "ns per ops": 61.0, "Ops per threads": 6125953.0, "Ops per procs": 30629767.0, "Ops/sec/procs": 1020992.0, "ns per ops/procs": 982.0}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30014.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2257056691.0, "Ops per second": 75197850.67, "ns per ops": 13.3, "Ops per threads": 4702201.0, "Ops per procs": 23511007.0, "Ops/sec/procs": 783310.94, "ns per ops/procs": 1276.63}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 284041176.0, "Ops per second": 9467559.25, "ns per ops": 105.62, "Ops per threads": 14202058.0, "Ops per procs": 71010294.0, "Ops/sec/procs": 2366889.81, "ns per ops/procs": 422.5}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 892945662.0, "Ops per second": 29763196.19, "ns per ops": 33.6, "Ops per threads": 11161820.0, "Ops per procs": 55809103.0, "Ops/sec/procs": 1860199.76, "ns per ops/procs": 537.58}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30020.85781, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 705614910.0, "Total blocks": 705611111.0, "Ops per second": 23504155.49, "ns per ops": 42.55, "Ops per threads": 5880124.0, "Ops per procs": 29400621.0, "Ops/sec/procs": 979339.81, "ns per ops/procs": 1021.1}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30004.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 14859110598.0, "Total blocks": 14859110598.0, "Ops per second": 495235361.16, "ns per ops": 2.02, "Ops per threads": 15478240.0, "Ops per procs": 77391201.0, "Ops/sec/procs": 2579350.84, "ns per ops/procs": 387.69}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219458732.0, "Total blocks": 219458727.0, "Ops per second": 7309848.38, "ns per ops": 136.8, "Ops per threads": 43891746.0, "Ops per procs": 219458732.0, "Ops/sec/procs": 7309848.38, "ns per ops/procs": 136.8}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 175869721.0, "Ops per second": 5862055.84, "ns per ops": 170.59, "Ops per threads": 17586972.0, "Ops per procs": 87934860.0, "Ops/sec/procs": 2931027.92, "ns per ops/procs": 341.18}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 858062120.0, "Ops per second": 28602070.0, "ns per ops": 35.0, "Ops per threads": 2383505.0, "Ops per procs": 11917529.0, "Ops/sec/procs": 397250.0, "ns per ops/procs": 2525.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30010.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2858834274.0, "Ops per second": 95294475.0, "ns per ops": 10.0, "Ops per threads": 2977952.0, "Ops per procs": 14889761.0, "Ops/sec/procs": 496325.0, "ns per ops/procs": 2015.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30035.22166, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1087564772.0, "Total blocks": 1087536443.0, "Ops per second": 36209646.94, "ns per ops": 27.62, "Ops per threads": 3021013.0, "Ops per procs": 15105066.0, "Ops/sec/procs": 502911.76, "ns per ops/procs": 1988.42}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30091.877687, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1595500159.0, "Total blocks": 1595406529.0, "Ops per second": 53020957.2, "ns per ops": 18.86, "Ops per threads": 2215972.0, "Ops per procs": 11079862.0, "Ops/sec/procs": 368201.09, "ns per ops/procs": 2715.91}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30056.236658, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1142321220.0, "Total blocks": 1142308887.0, "Ops per second": 38006129.41, "ns per ops": 26.31, "Ops per threads": 4759671.0, "Ops per procs": 23798358.0, "Ops/sec/procs": 791794.36, "ns per ops/procs": 1262.95}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 164060909.0, "Ops per second": 5468696.0, "ns per ops": 183.0, "Ops per threads": 32812181.0, "Ops per procs": 164060909.0, "Ops/sec/procs": 5468696.0, "ns per ops/procs": 183.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30014.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1324319528.0, "Ops per second": 44143984.0, "ns per ops": 22.0, "Ops per threads": 1839332.0, "Ops per procs": 9196663.0, "Ops/sec/procs": 306555.0, "ns per ops/procs": 3263.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30008.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6655570628.0, "Total blocks": 6655570626.0, "Ops per second": 221791043.25, "ns per ops": 4.51, "Ops per threads": 18487696.0, "Ops per procs": 92438480.0, "Ops/sec/procs": 3080431.16, "ns per ops/procs": 324.63}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30049.760389, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 203519405.0, "Total blocks": 203519400.0, "Ops per second": 6772746.35, "ns per ops": 147.65, "Ops per threads": 40703881.0, "Ops per procs": 203519405.0, "Ops/sec/procs": 6772746.35, "ns per ops/procs": 147.65}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10061206798.0, "Total blocks": 10061206798.0, "Ops per second": 335323868.99, "ns per ops": 2.98, "Ops per threads": 20960847.0, "Ops per procs": 104804237.0, "Ops/sec/procs": 3492956.97, "ns per ops/procs": 286.29}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30026.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 227393051.0, "Ops per second": 7579768.0, "ns per ops": 132.0, "Ops per threads": 5684826.0, "Ops per procs": 28424131.0, "Ops/sec/procs": 947471.0, "ns per ops/procs": 1056.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1134874219.0, "Ops per second": 37829140.0, "ns per ops": 26.0, "Ops per threads": 4728642.0, "Ops per procs": 23643212.0, "Ops/sec/procs": 788107.0, "ns per ops/procs": 1273.0}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30010.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3527564352.0, "Ops per second": 117544323.57, "ns per ops": 8.51, "Ops per threads": 4899394.0, "Ops per procs": 24496974.0, "Ops/sec/procs": 816280.02, "ns per ops/procs": 1225.07}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 165403685.0, "Ops per second": 5513197.81, "ns per ops": 181.38, "Ops per threads": 16540368.0, "Ops per procs": 82701842.0, "Ops/sec/procs": 2756598.9, "ns per ops/procs": 362.77}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30034.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3424180175.0, "Ops per second": 114009604.2, "ns per ops": 8.77, "Ops per threads": 4755805.0, "Ops per procs": 23779028.0, "Ops/sec/procs": 791733.36, "ns per ops/procs": 1263.05}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30060.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6583505063.0, "Total blocks": 6583505063.0, "Ops per second": 219008321.06, "ns per ops": 4.57, "Ops per threads": 18287514.0, "Ops per procs": 91437570.0, "Ops/sec/procs": 3041782.24, "ns per ops/procs": 328.75}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 242964632.0, "Ops per second": 8098821.0, "ns per ops": 123.0, "Ops per threads": 6074115.0, "Ops per procs": 30370579.0, "Ops/sec/procs": 1012352.0, "ns per ops/procs": 988.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30095.605541, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1732197094.0, "Total blocks": 1732099174.0, "Ops per second": 57556479.19, "ns per ops": 17.37, "Ops per threads": 2405829.0, "Ops per procs": 12029146.0, "Ops/sec/procs": 399697.77, "ns per ops/procs": 2501.89}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 958708647.0, "Ops per second": 31956954.0, "ns per ops": 31.0, "Ops per threads": 3994619.0, "Ops per procs": 19973096.0, "Ops/sec/procs": 665769.0, "ns per ops/procs": 1506.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30051.531686, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 210857415.0, "Total blocks": 210857310.0, "Ops per second": 7016528.05, "ns per ops": 142.52, "Ops per threads": 21085741.0, "Ops per procs": 105428707.0, "Ops/sec/procs": 3508264.02, "ns per ops/procs": 285.04}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7990461980.0, "Total blocks": 7990461980.0, "Ops per second": 266309001.04, "ns per ops": 3.76, "Ops per threads": 16646795.0, "Ops per procs": 83233978.0, "Ops/sec/procs": 2774052.09, "ns per ops/procs": 360.48}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30062.645789, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 385826481.0, "Total blocks": 385825859.0, "Ops per second": 12834082.66, "ns per ops": 77.92, "Ops per threads": 9645662.0, "Ops per procs": 48228310.0, "Ops/sec/procs": 1604260.33, "ns per ops/procs": 623.34}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30059.684127, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1128012014.0, "Total blocks": 1128000671.0, "Ops per second": 37525744.09, "ns per ops": 26.65, "Ops per threads": 4700050.0, "Ops per procs": 23500250.0, "Ops/sec/procs": 781786.34, "ns per ops/procs": 1279.12}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30069.589719, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1989403838.0, "Total blocks": 1989198134.0, "Ops per second": 66159992.76, "ns per ops": 15.11, "Ops per threads": 2072295.0, "Ops per procs": 10361478.0, "Ops/sec/procs": 344583.3, "ns per ops/procs": 2902.06}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30016.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4613407745.0, "Ops per second": 153696994.14, "ns per ops": 6.51, "Ops per threads": 4805633.0, "Ops per procs": 24028165.0, "Ops/sec/procs": 800505.18, "ns per ops/procs": 1249.21}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30067.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 146440205.0, "Ops per second": 4881340.0, "ns per ops": 205.0, "Ops per threads": 7322010.0, "Ops per procs": 36610051.0, "Ops/sec/procs": 1220335.0, "ns per ops/procs": 821.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30079.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 123263380.0, "Ops per second": 4108779.0, "ns per ops": 244.0, "Ops per threads": 12326338.0, "Ops per procs": 61631690.0, "Ops/sec/procs": 2054389.0, "ns per ops/procs": 488.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 682439910.0, "Ops per second": 22747997.0, "ns per ops": 44.0, "Ops per threads": 5686999.0, "Ops per procs": 28434996.0, "Ops/sec/procs": 947833.0, "ns per ops/procs": 1058.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30098.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1526992516.0, "Ops per second": 50899750.0, "ns per ops": 19.0, "Ops per threads": 2120822.0, "Ops per procs": 10604114.0, "Ops/sec/procs": 353470.0, "ns per ops/procs": 2838.0}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2083335848.0, "Ops per second": 69419766.53, "ns per ops": 14.41, "Ops per threads": 8680566.0, "Ops per procs": 43402830.0, "Ops/sec/procs": 1446245.14, "ns per ops/procs": 691.45}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 495307500.0, "Ops per second": 16509429.73, "ns per ops": 60.57, "Ops per threads": 12382687.0, "Ops per procs": 61913437.0, "Ops/sec/procs": 2063678.72, "ns per ops/procs": 484.57}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 177050719.0, "Ops per second": 5901421.56, "ns per ops": 169.45, "Ops per threads": 17705071.0, "Ops per procs": 88525359.0, "Ops/sec/procs": 2950710.78, "ns per ops/procs": 338.9}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30055.927297, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 263267402.0, "Total blocks": 263267034.0, "Ops per second": 8759250.69, "ns per ops": 114.17, "Ops per threads": 13163370.0, "Ops per procs": 65816850.0, "Ops/sec/procs": 2189812.67, "ns per ops/procs": 456.66}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2122203492.0, "Ops per second": 70716256.99, "ns per ops": 14.14, "Ops per threads": 8842514.0, "Ops per procs": 44212572.0, "Ops/sec/procs": 1473255.35, "ns per ops/procs": 678.77}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 512960450.0, "Ops per second": 17097766.86, "ns per ops": 58.49, "Ops per threads": 12824011.0, "Ops per procs": 64120056.0, "Ops/sec/procs": 2137220.86, "ns per ops/procs": 467.9}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 273036905.0, "Ops per second": 9100788.24, "ns per ops": 109.88, "Ops per threads": 13651845.0, "Ops per procs": 68259226.0, "Ops/sec/procs": 2275197.06, "ns per ops/procs": 439.52}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30053.447004, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 261694721.0, "Total blocks": 261694352.0, "Ops per second": 8707644.12, "ns per ops": 114.84, "Ops per threads": 13084736.0, "Ops per procs": 65423680.0, "Ops/sec/procs": 2176911.03, "ns per ops/procs": 459.37}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30078.494252, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 621124648.0, "Total blocks": 621122673.0, "Ops per second": 20650124.4, "ns per ops": 48.43, "Ops per threads": 7764058.0, "Ops per procs": 38820290.0, "Ops/sec/procs": 1290632.77, "ns per ops/procs": 774.81}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30077.526126, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1313305973.0, "Total blocks": 1313257545.0, "Ops per second": 43664029.0, "ns per ops": 22.9, "Ops per threads": 2736054.0, "Ops per procs": 13680270.0, "Ops/sec/procs": 454833.64, "ns per ops/procs": 2198.61}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30016.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2203132481.0, "Ops per second": 73397006.57, "ns per ops": 13.62, "Ops per threads": 4589859.0, "Ops per procs": 22949296.0, "Ops/sec/procs": 764552.15, "ns per ops/procs": 1307.96}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30051.718557, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 209940916.0, "Total blocks": 209940813.0, "Ops per second": 6985987.03, "ns per ops": 143.14, "Ops per threads": 20994091.0, "Ops per procs": 104970458.0, "Ops/sec/procs": 3492993.51, "ns per ops/procs": 286.29}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30051.883129, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 210102151.0, "Total blocks": 210102023.0, "Ops per second": 6991313.99, "ns per ops": 143.03, "Ops per threads": 21010215.0, "Ops per procs": 105051075.0, "Ops/sec/procs": 3495657.0, "ns per ops/procs": 286.07}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6824874142.0, "Total blocks": 6824874142.0, "Ops per second": 227467174.25, "ns per ops": 4.4, "Ops per threads": 18957983.0, "Ops per procs": 94789918.0, "Ops/sec/procs": 3159266.31, "ns per ops/procs": 316.53}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30027.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 20001364309.0, "Total blocks": 20001364309.0, "Ops per second": 666093420.29, "ns per ops": 1.5, "Ops per threads": 20834754.0, "Ops per procs": 104173772.0, "Ops/sec/procs": 3469236.56, "ns per ops/procs": 288.25}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219618019.0, "Total blocks": 219618014.0, "Ops per second": 7315168.89, "ns per ops": 136.7, "Ops per threads": 43923603.0, "Ops per procs": 219618019.0, "Ops/sec/procs": 7315168.89, "ns per ops/procs": 136.7}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 638781864.0, "Ops per second": 21292728.0, "ns per ops": 47.0, "Ops per threads": 5323182.0, "Ops per procs": 26615911.0, "Ops/sec/procs": 887197.0, "ns per ops/procs": 1130.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 757755857.0, "Total blocks": 757755857.0, "Ops per second": 25238254.77, "ns per ops": 39.62, "Ops per threads": 37887792.0, "Ops per procs": 189438964.0, "Ops/sec/procs": 6309563.69, "ns per ops/procs": 158.49}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2100419226.0, "Ops per second": 69990039.32, "ns per ops": 14.29, "Ops per threads": 8751746.0, "Ops per procs": 43758733.0, "Ops/sec/procs": 1458125.82, "ns per ops/procs": 685.81}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 881003924.0, "Total blocks": 881003924.0, "Ops per second": 29344622.63, "ns per ops": 34.08, "Ops per threads": 22025098.0, "Ops per procs": 110125490.0, "Ops/sec/procs": 3668077.83, "ns per ops/procs": 272.62}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30026.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9081236127.0, "Total blocks": 9081236127.0, "Ops per second": 302442267.27, "ns per ops": 3.31, "Ops per threads": 25225655.0, "Ops per procs": 126128279.0, "Ops/sec/procs": 4200587.05, "ns per ops/procs": 238.06}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30063.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 142862398.0, "Ops per second": 4762079.0, "ns per ops": 210.0, "Ops per threads": 7143119.0, "Ops per procs": 35715599.0, "Ops/sec/procs": 1190519.0, "ns per ops/procs": 841.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30014.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1661300317.0, "Ops per second": 55376677.0, "ns per ops": 18.0, "Ops per threads": 3461042.0, "Ops per procs": 17305211.0, "Ops/sec/procs": 576840.0, "ns per ops/procs": 1734.0}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30013.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3464135891.0, "Ops per second": 115418882.04, "ns per ops": 8.66, "Ops per threads": 4811299.0, "Ops per procs": 24056499.0, "Ops/sec/procs": 801520.01, "ns per ops/procs": 1247.63}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30021.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 239832490.0, "Ops per second": 7994416.0, "ns per ops": 125.0, "Ops per threads": 5995812.0, "Ops per procs": 29979061.0, "Ops/sec/procs": 999302.0, "ns per ops/procs": 1001.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1243464890.0, "Ops per second": 41448829.0, "ns per ops": 24.0, "Ops per threads": 2590551.0, "Ops per procs": 12952759.0, "Ops/sec/procs": 431758.0, "ns per ops/procs": 2323.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30013.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8835388498.0, "Total blocks": 8835388498.0, "Ops per second": 294376368.96, "ns per ops": 3.4, "Ops per threads": 12271372.0, "Ops per procs": 61356864.0, "Ops/sec/procs": 2044280.34, "ns per ops/procs": 489.17}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30016.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2175173772.0, "Ops per second": 72465946.15, "ns per ops": 13.8, "Ops per threads": 4531612.0, "Ops per procs": 22658060.0, "Ops/sec/procs": 754853.61, "ns per ops/procs": 1324.76}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30020.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4619680758.0, "Ops per second": 153885066.48, "ns per ops": 6.5, "Ops per threads": 4812167.0, "Ops per procs": 24060837.0, "Ops/sec/procs": 801484.72, "ns per ops/procs": 1247.68}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30006.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15031568417.0, "Total blocks": 15031568415.0, "Ops per second": 500947483.91, "ns per ops": 2.0, "Ops per threads": 15657883.0, "Ops per procs": 78289418.0, "Ops/sec/procs": 2609101.48, "ns per ops/procs": 383.27}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 443686982.0, "Ops per second": 14789566.0, "ns per ops": 67.0, "Ops per threads": 5546087.0, "Ops per procs": 27730436.0, "Ops/sec/procs": 924347.0, "ns per ops/procs": 1085.0}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2100270651.0, "Ops per second": 69984116.34, "ns per ops": 14.29, "Ops per threads": 8751127.0, "Ops per procs": 43755638.0, "Ops/sec/procs": 1458002.42, "ns per ops/procs": 685.87}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30004.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2270893593.0, "Ops per second": 75685163.1, "ns per ops": 13.21, "Ops per threads": 6308037.0, "Ops per procs": 31540188.0, "Ops/sec/procs": 1051182.82, "ns per ops/procs": 951.31}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2852173157.0, "Total blocks": 2852173157.0, "Ops per second": 95063575.85, "ns per ops": 10.52, "Ops per threads": 23768109.0, "Ops per procs": 118840548.0, "Ops/sec/procs": 3960982.33, "ns per ops/procs": 252.46}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1516181696.0, "Ops per second": 50536238.99, "ns per ops": 19.79, "Ops per threads": 12634847.0, "Ops per procs": 63174237.0, "Ops/sec/procs": 2105676.62, "ns per ops/procs": 474.91}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1877613820.0, "Total blocks": 1877613820.0, "Ops per second": 62531245.86, "ns per ops": 15.99, "Ops per threads": 23470172.0, "Ops per procs": 117350863.0, "Ops/sec/procs": 3908202.87, "ns per ops/procs": 255.87}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 514240063.0, "Total blocks": 514240063.0, "Ops per second": 17127543.62, "ns per ops": 58.39, "Ops per threads": 25712003.0, "Ops per procs": 128560015.0, "Ops/sec/procs": 4281885.91, "ns per ops/procs": 233.54}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30052.421841, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1117064163.0, "Total blocks": 1117052242.0, "Ops per second": 37170520.53, "ns per ops": 26.9, "Ops per threads": 4654434.0, "Ops per procs": 23272170.0, "Ops/sec/procs": 774385.84, "ns per ops/procs": 1291.35}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 914499612.0, "Ops per second": 30481671.55, "ns per ops": 32.81, "Ops per threads": 11431245.0, "Ops per procs": 57156225.0, "Ops/sec/procs": 1905104.47, "ns per ops/procs": 524.91}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30066.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 123150992.0, "Ops per second": 4105033.0, "ns per ops": 244.0, "Ops per threads": 12315099.0, "Ops per procs": 61575496.0, "Ops/sec/procs": 2052516.0, "ns per ops/procs": 488.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30020.616519, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 711766940.0, "Total blocks": 711763755.0, "Ops per second": 23709271.25, "ns per ops": 42.18, "Ops per threads": 5931391.0, "Ops per procs": 29656955.0, "Ops/sec/procs": 987886.3, "ns per ops/procs": 1012.26}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30019.837592, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 715889297.0, "Total blocks": 715885343.0, "Ops per second": 23847207.53, "ns per ops": 41.93, "Ops per threads": 5965744.0, "Ops per procs": 29828720.0, "Ops/sec/procs": 993633.65, "ns per ops/procs": 1006.41}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30098.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2783779616.0, "Ops per second": 92792653.0, "ns per ops": 10.0, "Ops per threads": 2899770.0, "Ops per procs": 14498852.0, "Ops/sec/procs": 483295.0, "ns per ops/procs": 2075.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1155613585.0, "Ops per second": 38520452.0, "ns per ops": 26.0, "Ops per threads": 3210037.0, "Ops per procs": 16050188.0, "Ops/sec/procs": 535006.0, "ns per ops/procs": 1875.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 897467792.0, "Ops per second": 29915593.0, "ns per ops": 33.0, "Ops per threads": 2492966.0, "Ops per procs": 12464830.0, "Ops/sec/procs": 415494.0, "ns per ops/procs": 2414.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 495465222.0, "Ops per second": 16515507.0, "ns per ops": 60.0, "Ops per threads": 6193315.0, "Ops per procs": 30966576.0, "Ops/sec/procs": 1032219.0, "ns per ops/procs": 971.0}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1486267341.0, "Ops per second": 49539158.95, "ns per ops": 20.19, "Ops per threads": 12385561.0, "Ops per procs": 61927805.0, "Ops/sec/procs": 2064131.62, "ns per ops/procs": 484.47}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30011.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1763083226.0, "Ops per second": 58769440.0, "ns per ops": 17.0, "Ops per threads": 2448726.0, "Ops per procs": 12243633.0, "Ops/sec/procs": 408121.0, "ns per ops/procs": 2451.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30073.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 125372958.0, "Ops per second": 4179098.0, "ns per ops": 239.0, "Ops per threads": 12537295.0, "Ops per procs": 62686479.0, "Ops/sec/procs": 2089549.0, "ns per ops/procs": 479.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 891365315.0, "Total blocks": 891365315.0, "Ops per second": 29689476.2, "ns per ops": 33.68, "Ops per threads": 22284132.0, "Ops per procs": 111420664.0, "Ops/sec/procs": 3711184.52, "ns per ops/procs": 269.46}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30049.875656, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1136688725.0, "Total blocks": 1136676446.0, "Ops per second": 37826736.39, "ns per ops": 26.44, "Ops per threads": 4736203.0, "Ops per procs": 23681015.0, "Ops/sec/procs": 788057.01, "ns per ops/procs": 1268.94}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30050.700664, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1983592436.0, "Total blocks": 1983354372.0, "Ops per second": 66008192.56, "ns per ops": 15.15, "Ops per threads": 2066242.0, "Ops per procs": 10331210.0, "Ops/sec/procs": 343792.67, "ns per ops/procs": 2908.73}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1867093660.0, "Total blocks": 1867093660.0, "Ops per second": 62180751.17, "ns per ops": 16.08, "Ops per threads": 23338670.0, "Ops per procs": 116693353.0, "Ops/sec/procs": 3886296.95, "ns per ops/procs": 257.31}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219443334.0, "Total blocks": 219443329.0, "Ops per second": 7309367.14, "ns per ops": 136.81, "Ops per threads": 43888666.0, "Ops per procs": 219443334.0, "Ops/sec/procs": 7309367.14, "ns per ops/procs": 136.81}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8058412290.0, "Total blocks": 8058412290.0, "Ops per second": 268575058.42, "ns per ops": 3.72, "Ops per threads": 16788358.0, "Ops per procs": 83941794.0, "Ops/sec/procs": 2797656.86, "ns per ops/procs": 357.44}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30012.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2668476751.0, "Ops per second": 88949225.0, "ns per ops": 11.0, "Ops per threads": 2779663.0, "Ops per procs": 13898316.0, "Ops/sec/procs": 463277.0, "ns per ops/procs": 2159.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1263790036.0, "Ops per second": 42126334.0, "ns per ops": 23.0, "Ops per threads": 3510527.0, "Ops per procs": 17552639.0, "Ops/sec/procs": 585087.0, "ns per ops/procs": 1714.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30096.398642, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1048998279.0, "Total blocks": 1048958149.0, "Ops per second": 34854611.39, "ns per ops": 28.69, "Ops per threads": 2913884.0, "Ops per procs": 14569420.0, "Ops/sec/procs": 484091.82, "ns per ops/procs": 2065.72}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1782608897.0, "Ops per second": 59420296.0, "ns per ops": 16.0, "Ops per threads": 2475845.0, "Ops per procs": 12379228.0, "Ops/sec/procs": 412640.0, "ns per ops/procs": 2431.0}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 170552431.0, "Ops per second": 5684845.46, "ns per ops": 175.91, "Ops per threads": 34110486.0, "Ops per procs": 170552431.0, "Ops/sec/procs": 5684845.46, "ns per ops/procs": 175.91}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30015.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2206127662.0, "Ops per second": 73500183.24, "ns per ops": 13.61, "Ops per threads": 4596099.0, "Ops per procs": 22980496.0, "Ops/sec/procs": 765626.91, "ns per ops/procs": 1306.12}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15185975853.0, "Total blocks": 15185975848.0, "Ops per second": 506104940.66, "ns per ops": 1.98, "Ops per threads": 15818724.0, "Ops per procs": 79093624.0, "Ops/sec/procs": 2635963.23, "ns per ops/procs": 379.37}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30051.387707, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1630141613.0, "Total blocks": 1630001494.0, "Ops per second": 54245135.99, "ns per ops": 18.43, "Ops per threads": 2264085.0, "Ops per procs": 11320427.0, "Ops/sec/procs": 376702.33, "ns per ops/procs": 2654.62}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219449120.0, "Total blocks": 219449115.0, "Ops per second": 7309564.35, "ns per ops": 136.81, "Ops per threads": 43889824.0, "Ops per procs": 219449120.0, "Ops/sec/procs": 7309564.35, "ns per ops/procs": 136.81}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30019.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3430534353.0, "Ops per second": 114274998.17, "ns per ops": 8.75, "Ops per threads": 4764631.0, "Ops per procs": 23823155.0, "Ops/sec/procs": 793576.38, "ns per ops/procs": 1260.12}]] -
doc/theses/thierry_delisle_PhD/thesis/data/memcd.rate
r12df6fe r4520b77e 1 [[" forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 498755.2, "Median Read Latency": 3190.7, "Tail Read Latency": 225397.5, "Median Update Latency": 2830.3, "Tail Update Latency": 226163.8}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 199980.9, "Median Read Latency": 95.5, "Tail Read Latency": 170.9, "Median Update Latency": 100.7, "Tail Update Latency": 176.2}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 399978.4, "Median Read Latency": 117.8, "Tail Read Latency": 1207.1, "Median Update Latency": 121.9, "Tail Update Latency": 1336.8}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 612437.4, "Median Read Latency": 15884.0, "Tail Read Latency": 248252.4, "Median Update Latency": 15749.0, "Tail Update Latency": 247485.6}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 399937.0, "Median Read Latency": 111.9, "Tail Read Latency": 869.0, "Median Update Latency": 117.5, "Tail Update Latency": 880.8}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100019.3, "Median Read Latency": 85.8, "Tail Read Latency": 161.8, "Median Update Latency": 92.2, "Tail Update Latency": 169.1}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499962.9, "Median Read Latency": 185.6, "Tail Read Latency": 12305.1, "Median Update Latency": 250.1, "Tail Update Latency": 12317.4}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100007.8, "Median Read Latency": 85.9, "Tail Read Latency": 161.0, "Median Update Latency": 92.3, "Tail Update Latency": 168.9}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 557475.3, "Median Read Latency": 18115.8, "Tail Read Latency": 251927.5, "Median Update Latency": 18299.3, "Tail Update Latency": 250306.8}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200004.6, "Median Read Latency": 95.3, "Tail Read Latency": 173.3, "Median Update Latency": 99.9, "Tail Update Latency": 180.6}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 597071.5, "Median Read Latency": 13212.4, "Tail Read Latency": 62539.9, "Median Update Latency": 13231.2, "Tail Update Latency": 69653.7}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 199978.5, "Median Read Latency": 95.5, "Tail Read Latency": 177.6, "Median Update Latency": 100.3, "Tail Update Latency": 186.7}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 614246.9, "Median Read Latency": 16225.4, "Tail Read Latency": 250527.9, "Median Update Latency": 16499.8, "Tail Update Latency": 256449.6}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300008.6, "Median Read Latency": 87.5, "Tail Read Latency": 183.5, "Median Update Latency": 93.1, "Tail Update Latency": 190.9}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100006.9, "Median Read Latency": 85.4, "Tail Read Latency": 177.6, "Median Update Latency": 92.0, "Tail Update Latency": 194.1}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200005.2, "Median Read Latency": 95.3, "Tail Read Latency": 173.8, "Median Update Latency": 99.8, "Tail Update Latency": 183.7}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 572663.5, "Median Read Latency": 371.4, "Tail Read Latency": 227972.8, "Median Update Latency": 1399.1, "Tail Update Latency": 226684.5}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 622639.2, "Median Read Latency": 5780.5, "Tail Read Latency": 230039.3, "Median Update Latency": 7841.8, "Tail Update Latency": 229186.6}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 592141.1, "Median Read Latency": 13408.6, "Tail Read Latency": 48231.9, "Median Update Latency": 13507.0, "Tail Update Latency": 49970.4}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 299997.1, "Median Read Latency": 91.3, "Tail Read Latency": 346.2, "Median Update Latency": 97.8, "Tail Update Latency": 359.3}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 299972.9, "Median Read Latency": 100.3, "Tail Read Latency": 454.5, "Median Update Latency": 106.7, "Tail Update Latency": 436.9}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 598258.7, "Median Read Latency": 13440.2, "Tail Read Latency": 50537.1, "Median Update Latency": 13527.6, "Tail Update Latency": 47965.6}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 299962.2, "Median Read Latency": 88.0, "Tail Read Latency": 181.4, "Median Update Latency": 93.3, "Tail Update Latency": 187.2}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 602219.4, "Median Read Latency": 25297.0, "Tail Read Latency": 250896.6, "Median Update Latency": 25038.5, "Tail Update Latency": 251507.9}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 564998.0, "Median Read Latency": 20010.7, "Tail Read Latency": 250571.5, "Median Update Latency": 20091.0, "Tail Update Latency": 250161.2}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499891.1, "Median Read Latency": 7175.0, "Tail Read Latency": 220926.7, "Median Update Latency": 7105.9, "Tail Update Latency": 221994.0}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499974.2, "Median Read Latency": 211.4, "Tail Read Latency": 11680.1, "Median Update Latency": 829.2, "Tail Update Latency": 11990.8}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300012.7, "Median Read Latency": 97.1, "Tail Read Latency": 222.8, "Median Update Latency": 101.7, "Tail Update Latency": 238.1}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300070.5, "Median Read Latency": 96.8, "Tail Read Latency": 220.3, "Median Update Latency": 101.7, "Tail Update Latency": 237.8}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100008.7, "Median Read Latency": 85.6, "Tail Read Latency": 163.0, "Median Update Latency": 92.3, "Tail Update Latency": 175.3}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400028.9, "Median Read Latency": 114.8, "Tail Read Latency": 956.1, "Median Update Latency": 120.3, "Tail Update Latency": 1350.3}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300055.6, "Median Read Latency": 86.4, "Tail Read Latency": 175.9, "Median Update Latency": 91.2, "Tail Update Latency": 180.7}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 673707.6, "Median Read Latency": 6827.8, "Tail Read Latency": 231197.0, "Median Update Latency": 7140.8, "Tail Update Latency": 231287.8}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 601228.5, "Median Read Latency": 12871.0, "Tail Read Latency": 219146.6, "Median Update Latency": 12852.8, "Tail Update Latency": 56501.0}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300015.0, "Median Read Latency": 100.1, "Tail Read Latency": 481.1, "Median Update Latency": 105.7, "Tail Update Latency": 488.7}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 99997.9, "Median Read Latency": 85.4, "Tail Read Latency": 167.7, "Median Update Latency": 92.4, "Tail Update Latency": 173.4}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200021.1, "Median Read Latency": 88.1, "Tail Read Latency": 244.9, "Median Update Latency": 95.0, "Tail Update Latency": 253.9}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400017.0, "Median Read Latency": 113.1, "Tail Read Latency": 849.1, "Median Update Latency": 119.1, "Tail Update Latency": 882.8}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 562604.7, "Median Read Latency": 19819.4, "Tail Read Latency": 249845.8, "Median Update Latency": 19871.1, "Tail Update Latency": 249555.6}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 572312.9, "Median Read Latency": 6524.3, "Tail Read Latency": 228864.5, "Median Update Latency": 2602.5, "Tail Update Latency": 228616.6}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 621196.7, "Median Read Latency": 2295.2, "Tail Read Latency": 231836.0, "Median Update Latency": 1441.1, "Tail Update Latency": 230955.6}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 595177.6, "Median Read Latency": 13372.4, "Tail Read Latency": 46883.0, "Median Update Latency": 13426.8, "Tail Update Latency": 64667.1}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400026.7, "Median Read Latency": 115.7, "Tail Read Latency": 881.2, "Median Update Latency": 121.1, "Tail Update Latency": 929.1}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 498000.8, "Median Read Latency": 4060.3, "Tail Read Latency": 226676.1, "Median Update Latency": 2978.6, "Tail Update Latency": 225731.4}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 579656.7, "Median Read Latency": 12225.7, "Tail Read Latency": 219760.8, "Median Update Latency": 12238.9, "Tail Update Latency": 203698.4}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200001.8, "Median Read Latency": 88.1, "Tail Read Latency": 240.2, "Median Update Latency": 94.6, "Tail Update Latency": 251.4}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 594850.0, "Median Read Latency": 13333.6, "Tail Read Latency": 52682.0, "Median Update Latency": 13351.9, "Tail Update Latency": 56204.4}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499921.3, "Median Read Latency": 6662.5, "Tail Read Latency": 219673.4, "Median Update Latency": 6837.7, "Tail Update Latency": 211568.1}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 572487.8, "Median Read Latency": 10378.4, "Tail Read Latency": 226976.4, "Median Update Latency": 10403.8, "Tail Update Latency": 227094.8}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 594974.2, "Median Read Latency": 13359.6, "Tail Read Latency": 41942.6, "Median Update Latency": 13334.3, "Tail Update Latency": 44809.8}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 199997.8, "Median Read Latency": 78.3, "Tail Read Latency": 128.0, "Median Update Latency": 82.8, "Tail Update Latency": 134.8}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400037.0, "Median Read Latency": 115.5, "Tail Read Latency": 996.4, "Median Update Latency": 120.1, "Tail Update Latency": 1664.7}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 500010.9, "Median Read Latency": 165.0, "Tail Read Latency": 12206.4, "Median Update Latency": 179.4, "Tail Update Latency": 12184.2}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200000.1, "Median Read Latency": 95.5, "Tail Read Latency": 180.0, "Median Update Latency": 99.7, "Tail Update Latency": 182.7}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 99978.3, "Median Read Latency": 77.9, "Tail Read Latency": 118.1, "Median Update Latency": 83.2, "Tail Update Latency": 128.9}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 399987.9, "Median Read Latency": 108.4, "Tail Read Latency": 539.7, "Median Update Latency": 113.9, "Tail Update Latency": 539.2}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499820.4, "Median Read Latency": 5658.7, "Tail Read Latency": 212053.1, "Median Update Latency": 5741.1, "Tail Update Latency": 50321.8}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400070.7, "Median Read Latency": 111.9, "Tail Read Latency": 890.4, "Median Update Latency": 117.0, "Tail Update Latency": 828.8}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 601775.8, "Median Read Latency": 23117.3, "Tail Read Latency": 250232.9, "Median Update Latency": 23116.7, "Tail Update Latency": 246551.8}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100001.3, "Median Read Latency": 92.8, "Tail Read Latency": 140.9, "Median Update Latency": 98.0, "Tail Update Latency": 152.9}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 574754.4, "Median Read Latency": 357.0, "Tail Read Latency": 231151.6, "Median Update Latency": 557.4, "Tail Update Latency": 229444.1}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 573363.3, "Median Read Latency": 9889.6, "Tail Read Latency": 229927.1, "Median Update Latency": 9906.8, "Tail Update Latency": 231207.8}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 679908.4, "Median Read Latency": 5451.8, "Tail Read Latency": 230889.9, "Median Update Latency": 5681.1, "Tail Update Latency": 232091.7}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 609366.0, "Median Read Latency": 16768.6, "Tail Read Latency": 247631.3, "Median Update Latency": 17033.4, "Tail Update Latency": 253910.6}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200039.8, "Median Read Latency": 95.6, "Tail Read Latency": 174.6, "Median Update Latency": 100.5, "Tail Update Latency": 180.7}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 596702.7, "Median Read Latency": 13428.9, "Tail Read Latency": 51857.9, "Median Update Latency": 13435.2, "Tail Update Latency": 83668.0}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 576584.3, "Median Read Latency": 10177.2, "Tail Read Latency": 228562.7, "Median Update Latency": 10194.1, "Tail Update Latency": 227658.5}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499992.8, "Median Read Latency": 162.7, "Tail Read Latency": 11374.3, "Median Update Latency": 167.4, "Tail Update Latency": 11372.9}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 595017.0, "Median Read Latency": 17998.2, "Tail Read Latency": 243922.3, "Median Update Latency": 18344.5, "Tail Update Latency": 239502.7}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199994.0, "Median Read Latency": 88.5, "Tail Read Latency": 239.3, "Median Update Latency": 95.4, "Tail Update Latency": 248.8}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 299957.9, "Median Read Latency": 105.1, "Tail Read Latency": 274.5, "Median Update Latency": 109.5, "Tail Update Latency": 287.3}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200018.7, "Median Read Latency": 95.2, "Tail Read Latency": 172.9, "Median Update Latency": 100.4, "Tail Update Latency": 174.6}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 500038.3, "Median Read Latency": 211.6, "Tail Read Latency": 11382.7, "Median Update Latency": 206.1, "Tail Update Latency": 11382.7}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 597722.5, "Median Read Latency": 13397.7, "Tail Read Latency": 58411.2, "Median Update Latency": 13387.9, "Tail Update Latency": 68941.3}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100030.7, "Median Read Latency": 85.7, "Tail Read Latency": 163.9, "Median Update Latency": 92.0, "Tail Update Latency": 171.4}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 558818.6, "Median Read Latency": 13363.8, "Tail Read Latency": 248229.0, "Median Update Latency": 13350.2, "Tail Update Latency": 249960.2}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 621757.3, "Median Read Latency": 5239.7, "Tail Read Latency": 234406.2, "Median Update Latency": 6894.0, "Tail Update Latency": 234114.4}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 679182.4, "Median Read Latency": 5967.0, "Tail Read Latency": 228719.6, "Median Update Latency": 6772.4, "Tail Update Latency": 228625.2}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200045.5, "Median Read Latency": 79.2, "Tail Read Latency": 128.4, "Median Update Latency": 84.2, "Tail Update Latency": 137.4}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 99987.1, "Median Read Latency": 93.3, "Tail Read Latency": 141.6, "Median Update Latency": 98.5, "Tail Update Latency": 152.4}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300010.7, "Median Read Latency": 92.5, "Tail Read Latency": 349.6, "Median Update Latency": 99.4, "Tail Update Latency": 379.9}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400028.0, "Median Read Latency": 113.6, "Tail Read Latency": 841.4, "Median Update Latency": 120.0, "Tail Update Latency": 882.9}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 593569.4, "Median Read Latency": 13403.1, "Tail Read Latency": 39646.1, "Median Update Latency": 13399.0, "Tail Update Latency": 37874.8}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400020.1, "Median Read Latency": 107.8, "Tail Read Latency": 564.8, "Median Update Latency": 112.1, "Tail Update Latency": 551.0}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 597114.9, "Median Read Latency": 18109.7, "Tail Read Latency": 246701.4, "Median Update Latency": 17982.1, "Tail Update Latency": 247698.7}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 592504.7, "Median Read Latency": 13426.0, "Tail Read Latency": 44154.2, "Median Update Latency": 13401.8, "Tail Update Latency": 46925.7}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300004.6, "Median Read Latency": 87.4, "Tail Read Latency": 181.7, "Median Update Latency": 92.3, "Tail Update Latency": 184.6}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199991.6, "Median Read Latency": 87.7, "Tail Read Latency": 238.7, "Median Update Latency": 94.3, "Tail Update Latency": 241.1}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300039.2, "Median Read Latency": 100.0, "Tail Read Latency": 465.5, "Median Update Latency": 105.5, "Tail Update Latency": 437.3}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 555859.2, "Median Read Latency": 14324.7, "Tail Read Latency": 252224.7, "Median Update Latency": 14183.0, "Tail Update Latency": 253064.7}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 591884.8, "Median Read Latency": 18852.4, "Tail Read Latency": 245546.0, "Median Update Latency": 18781.5, "Tail Update Latency": 251330.1}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 560411.7, "Median Read Latency": 16212.0, "Tail Read Latency": 249414.2, "Median Update Latency": 16315.3, "Tail Update Latency": 252118.3}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499875.4, "Median Read Latency": 7148.7, "Tail Read Latency": 221728.4, "Median Update Latency": 6854.7, "Tail Update Latency": 223478.5}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 603884.3, "Median Read Latency": 12495.1, "Tail Read Latency": 220449.1, "Median Update Latency": 12489.2, "Tail Update Latency": 220650.4}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 686509.4, "Median Read Latency": 6617.1, "Tail Read Latency": 231746.5, "Median Update Latency": 6934.3, "Tail Update Latency": 232363.0}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 623145.4, "Median Read Latency": 5661.8, "Tail Read Latency": 229372.2, "Median Update Latency": 6085.7, "Tail Update Latency": 230691.9}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100019.7, "Median Read Latency": 93.3, "Tail Read Latency": 142.6, "Median Update Latency": 98.3, "Tail Update Latency": 152.2}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499889.0, "Median Read Latency": 155.9, "Tail Read Latency": 12059.8, "Median Update Latency": 169.9, "Tail Update Latency": 12072.0}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100018.5, "Median Read Latency": 86.6, "Tail Read Latency": 164.3, "Median Update Latency": 92.9, "Tail Update Latency": 179.2}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100008.8, "Median Read Latency": 85.5, "Tail Read Latency": 162.2, "Median Update Latency": 92.2, "Tail Update Latency": 169.4}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 559071.8, "Median Read Latency": 13053.0, "Tail Read Latency": 247054.3, "Median Update Latency": 13181.4, "Tail Update Latency": 246805.2}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100016.0, "Median Read Latency": 78.2, "Tail Read Latency": 119.3, "Median Update Latency": 84.1, "Tail Update Latency": 130.7}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400025.2, "Median Read Latency": 104.6, "Tail Read Latency": 513.5, "Median Update Latency": 108.7, "Tail Update Latency": 505.0}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100009.2, "Median Read Latency": 93.0, "Tail Read Latency": 143.2, "Median Update Latency": 98.0, "Tail Update Latency": 154.2}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 399978.2, "Median Read Latency": 104.6, "Tail Read Latency": 482.3, "Median Update Latency": 109.5, "Tail Update Latency": 481.6}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 399992.4, "Median Read Latency": 115.3, "Tail Read Latency": 1018.2, "Median Update Latency": 121.2, "Tail Update Latency": 1420.5}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200039.6, "Median Read Latency": 88.3, "Tail Read Latency": 235.4, "Median Update Latency": 94.9, "Tail Update Latency": 242.1}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 498725.8, "Median Read Latency": 3893.4, "Tail Read Latency": 227347.3, "Median Update Latency": 3733.9, "Tail Update Latency": 227619.0}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200028.7, "Median Read Latency": 79.2, "Tail Read Latency": 129.6, "Median Update Latency": 84.3, "Tail Update Latency": 138.4}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 620433.1, "Median Read Latency": 21839.7, "Tail Read Latency": 249643.8, "Median Update Latency": 22022.9, "Tail Update Latency": 249993.9}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 569787.5, "Median Read Latency": 3043.0, "Tail Read Latency": 226727.4, "Median Update Latency": 6870.7, "Tail Update Latency": 227823.6}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 597059.4, "Median Read Latency": 13321.6, "Tail Read Latency": 45190.1, "Median Update Latency": 13316.7, "Tail Update Latency": 44028.0}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300053.7, "Median Read Latency": 86.8, "Tail Read Latency": 184.7, "Median Update Latency": 92.1, "Tail Update Latency": 192.5}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100014.4, "Median Read Latency": 93.1, "Tail Read Latency": 141.1, "Median Update Latency": 98.9, "Tail Update Latency": 150.9}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 618846.7, "Median Read Latency": 902.7, "Tail Read Latency": 227141.2, "Median Update Latency": 637.8, "Tail Update Latency": 224313.9}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 595532.7, "Median Read Latency": 16978.5, "Tail Read Latency": 248593.5, "Median Update Latency": 16895.7, "Tail Update Latency": 250405.5}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 620493.4, "Median Read Latency": 19597.9, "Tail Read Latency": 247174.2, "Median Update Latency": 19579.3, "Tail Update Latency": 250788.1}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 399994.3, "Median Read Latency": 103.5, "Tail Read Latency": 456.3, "Median Update Latency": 108.6, "Tail Update Latency": 464.3}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 572443.4, "Median Read Latency": 5819.9, "Tail Read Latency": 229576.2, "Median Update Latency": 5419.3, "Tail Update Latency": 230185.9}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200006.2, "Median Read Latency": 95.2, "Tail Read Latency": 174.1, "Median Update Latency": 99.8, "Tail Update Latency": 183.5}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 675884.4, "Median Read Latency": 5168.9, "Tail Read Latency": 232226.3, "Median Update Latency": 5221.0, "Tail Update Latency": 234665.5}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300048.0, "Median Read Latency": 104.7, "Tail Read Latency": 274.3, "Median Update Latency": 110.1, "Tail Update Latency": 270.9}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 593973.5, "Median Read Latency": 13469.9, "Tail Read Latency": 48997.9, "Median Update Latency": 13481.7, "Tail Update Latency": 43736.0}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400014.9, "Median Read Latency": 114.7, "Tail Read Latency": 985.2, "Median Update Latency": 117.9, "Tail Update Latency": 836.7}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100023.3, "Median Read Latency": 92.3, "Tail Read Latency": 140.0, "Median Update Latency": 97.5, "Tail Update Latency": 150.4}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200024.8, "Median Read Latency": 78.3, "Tail Read Latency": 127.6, "Median Update Latency": 82.7, "Tail Update Latency": 133.8}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 299955.1, "Median Read Latency": 92.6, "Tail Read Latency": 352.0, "Median Update Latency": 99.0, "Tail Update Latency": 340.3}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499993.2, "Median Read Latency": 496.8, "Tail Read Latency": 11875.1, "Median Update Latency": 347.0, "Tail Update Latency": 11798.5}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400080.4, "Median Read Latency": 105.7, "Tail Read Latency": 515.6, "Median Update Latency": 110.8, "Tail Update Latency": 518.0}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 621476.0, "Median Read Latency": 4652.6, "Tail Read Latency": 228156.0, "Median Update Latency": 4843.4, "Tail Update Latency": 226596.6}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 618279.2, "Median Read Latency": 4429.6, "Tail Read Latency": 228611.1, "Median Update Latency": 4362.4, "Tail Update Latency": 226378.2}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 593594.2, "Median Read Latency": 13393.0, "Tail Read Latency": 57221.3, "Median Update Latency": 13422.7, "Tail Update Latency": 80690.8}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200022.4, "Median Read Latency": 95.8, "Tail Read Latency": 172.8, "Median Update Latency": 100.5, "Tail Update Latency": 185.4}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 560918.1, "Median Read Latency": 16358.1, "Tail Read Latency": 253540.6, "Median Update Latency": 16212.4, "Tail Update Latency": 251232.8}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 669430.7, "Median Read Latency": 5583.0, "Tail Read Latency": 231084.5, "Median Update Latency": 6019.7, "Tail Update Latency": 232056.7}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 399991.3, "Median Read Latency": 106.0, "Tail Read Latency": 530.9, "Median Update Latency": 111.6, "Tail Update Latency": 541.9}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 399954.1, "Median Read Latency": 115.9, "Tail Read Latency": 1160.1, "Median Update Latency": 121.1, "Tail Update Latency": 1101.6}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 606298.3, "Median Read Latency": 12500.1, "Tail Read Latency": 221340.8, "Median Update Latency": 12479.4, "Tail Update Latency": 220126.4}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 677365.7, "Median Read Latency": 5572.2, "Tail Read Latency": 232186.6, "Median Update Latency": 5377.3, "Tail Update Latency": 234817.9}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 560278.3, "Median Read Latency": 15552.2, "Tail Read Latency": 251034.1, "Median Update Latency": 15592.0, "Tail Update Latency": 246436.6}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 595753.0, "Median Read Latency": 23720.5, "Tail Read Latency": 249422.3, "Median Update Latency": 23512.1, "Tail Update Latency": 249583.9}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400063.9, "Median Read Latency": 113.4, "Tail Read Latency": 862.6, "Median Update Latency": 120.0, "Tail Update Latency": 817.9}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499823.1, "Median Read Latency": 7675.7, "Tail Read Latency": 221134.1, "Median Update Latency": 7669.5, "Tail Update Latency": 221961.7}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 399924.2, "Median Read Latency": 113.2, "Tail Read Latency": 860.6, "Median Update Latency": 119.8, "Tail Update Latency": 955.3}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300058.2, "Median Read Latency": 87.1, "Tail Read Latency": 181.8, "Median Update Latency": 91.9, "Tail Update Latency": 186.4}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100027.5, "Median Read Latency": 79.1, "Tail Read Latency": 123.2, "Median Update Latency": 84.7, "Tail Update Latency": 132.5}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 598396.1, "Median Read Latency": 15300.7, "Tail Read Latency": 244675.0, "Median Update Latency": 15021.1, "Tail Update Latency": 241147.1}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 572232.9, "Median Read Latency": 5540.0, "Tail Read Latency": 226307.6, "Median Update Latency": 6565.7, "Tail Update Latency": 228217.0}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100026.0, "Median Read Latency": 79.4, "Tail Read Latency": 119.9, "Median Update Latency": 84.8, "Tail Update Latency": 127.7}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 612789.2, "Median Read Latency": 20433.4, "Tail Read Latency": 248317.0, "Median Update Latency": 19920.1, "Tail Update Latency": 248162.6}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 633366.9, "Median Read Latency": 27763.5, "Tail Read Latency": 261832.4, "Median Update Latency": 27589.3, "Tail Update Latency": 260902.8}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300076.6, "Median Read Latency": 91.9, "Tail Read Latency": 355.3, "Median Update Latency": 97.9, "Tail Update Latency": 346.9}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400067.4, "Median Read Latency": 104.2, "Tail Read Latency": 490.8, "Median Update Latency": 109.1, "Tail Update Latency": 489.3}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100018.2, "Median Read Latency": 79.5, "Tail Read Latency": 124.0, "Median Update Latency": 85.6, "Tail Update Latency": 130.7}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 673606.9, "Median Read Latency": 6399.4, "Tail Read Latency": 232519.9, "Median Update Latency": 7309.5, "Tail Update Latency": 233818.8}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 618746.2, "Median Read Latency": 5440.4, "Tail Read Latency": 229943.5, "Median Update Latency": 6759.6, "Tail Update Latency": 229563.8}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300022.9, "Median Read Latency": 87.6, "Tail Read Latency": 182.6, "Median Update Latency": 92.8, "Tail Update Latency": 187.9}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400008.0, "Median Read Latency": 111.5, "Tail Read Latency": 841.2, "Median Update Latency": 118.5, "Tail Update Latency": 843.9}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300049.4, "Median Read Latency": 88.0, "Tail Read Latency": 183.8, "Median Update Latency": 94.3, "Tail Update Latency": 187.9}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 299973.6, "Median Read Latency": 103.9, "Tail Read Latency": 264.6, "Median Update Latency": 108.6, "Tail Update Latency": 264.8}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 634051.9, "Median Read Latency": 29679.0, "Tail Read Latency": 276428.2, "Median Update Latency": 29553.8, "Tail Update Latency": 275365.1}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 595601.7, "Median Read Latency": 16592.4, "Tail Read Latency": 248858.5, "Median Update Latency": 16643.3, "Tail Update Latency": 249676.4}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 299996.7, "Median Read Latency": 105.2, "Tail Read Latency": 265.0, "Median Update Latency": 110.0, "Tail Update Latency": 291.7}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 601384.7, "Median Read Latency": 21991.8, "Tail Read Latency": 251918.5, "Median Update Latency": 22250.9, "Tail Update Latency": 254757.7}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 672509.3, "Median Read Latency": 6597.4, "Tail Read Latency": 231210.5, "Median Update Latency": 6618.7, "Tail Update Latency": 230082.2}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 618813.0, "Median Read Latency": 2470.6, "Tail Read Latency": 229954.7, "Median Update Latency": 448.3, "Tail Update Latency": 230106.4}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 399964.2, "Median Read Latency": 104.2, "Tail Read Latency": 500.7, "Median Update Latency": 109.3, "Tail Update Latency": 512.1}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200027.6, "Median Read Latency": 88.4, "Tail Read Latency": 242.7, "Median Update Latency": 95.4, "Tail Update Latency": 259.1}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200074.5, "Median Read Latency": 95.6, "Tail Read Latency": 174.1, "Median Update Latency": 100.6, "Tail Update Latency": 180.8}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 590638.3, "Median Read Latency": 20591.5, "Tail Read Latency": 245328.4, "Median Update Latency": 20026.6, "Tail Update Latency": 247076.2}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499880.6, "Median Read Latency": 6449.0, "Tail Read Latency": 220474.9, "Median Update Latency": 6244.1, "Tail Update Latency": 221755.8}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499651.8, "Median Read Latency": 3100.6, "Tail Read Latency": 224805.6, "Median Update Latency": 3231.5, "Tail Update Latency": 220308.2}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 679918.1, "Median Read Latency": 6117.7, "Tail Read Latency": 235370.8, "Median Update Latency": 5461.9, "Tail Update Latency": 235881.3}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 562603.6, "Median Read Latency": 17687.5, "Tail Read Latency": 249811.6, "Median Update Latency": 17850.1, "Tail Update Latency": 248409.0}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 498800.0, "Median Read Latency": 4824.4, "Tail Read Latency": 226001.1, "Median Update Latency": 3904.7, "Tail Update Latency": 225754.6}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300001.7, "Median Read Latency": 87.0, "Tail Read Latency": 177.7, "Median Update Latency": 91.8, "Tail Update Latency": 186.5}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200017.1, "Median Read Latency": 79.3, "Tail Read Latency": 128.7, "Median Update Latency": 84.2, "Tail Update Latency": 141.4}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400017.2, "Median Read Latency": 115.5, "Tail Read Latency": 1159.7, "Median Update Latency": 120.1, "Tail Update Latency": 989.5}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 99991.2, "Median Read Latency": 78.9, "Tail Read Latency": 121.9, "Median Update Latency": 84.3, "Tail Update Latency": 129.4}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200019.4, "Median Read Latency": 78.7, "Tail Read Latency": 127.4, "Median Update Latency": 83.4, "Tail Update Latency": 138.3}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 574746.3, "Median Read Latency": 10094.5, "Tail Read Latency": 229286.1, "Median Update Latency": 10163.4, "Tail Update Latency": 228392.7}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 666919.6, "Median Read Latency": 5602.6, "Tail Read Latency": 231151.9, "Median Update Latency": 7137.9, "Tail Update Latency": 230738.8}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300001.0, "Median Read Latency": 87.0, "Tail Read Latency": 178.4, "Median Update Latency": 92.1, "Tail Update Latency": 184.3}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400016.4, "Median Read Latency": 112.3, "Tail Read Latency": 861.1, "Median Update Latency": 119.0, "Tail Update Latency": 826.2}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 554192.0, "Median Read Latency": 14565.8, "Tail Read Latency": 251281.6, "Median Update Latency": 14621.9, "Tail Update Latency": 248503.4}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400004.9, "Median Read Latency": 112.6, "Tail Read Latency": 847.6, "Median Update Latency": 119.8, "Tail Update Latency": 780.5}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499926.2, "Median Read Latency": 202.8, "Tail Read Latency": 11364.8, "Median Update Latency": 225.1, "Tail Update Latency": 11373.2}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499827.3, "Median Read Latency": 6236.1, "Tail Read Latency": 219172.4, "Median Update Latency": 6311.9, "Tail Update Latency": 218648.6}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 299983.9, "Median Read Latency": 105.0, "Tail Read Latency": 266.1, "Median Update Latency": 110.0, "Tail Update Latency": 270.9}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 572297.0, "Median Read Latency": 7121.5, "Tail Read Latency": 229699.2, "Median Update Latency": 6446.6, "Tail Update Latency": 229921.5}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300049.7, "Median Read Latency": 100.0, "Tail Read Latency": 462.1, "Median Update Latency": 106.0, "Tail Update Latency": 495.3}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300036.2, "Median Read Latency": 97.4, "Tail Read Latency": 215.2, "Median Update Latency": 101.7, "Tail Update Latency": 222.3}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 592848.3, "Median Read Latency": 13499.3, "Tail Read Latency": 54109.4, "Median Update Latency": 13537.0, "Tail Update Latency": 67041.7}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 599841.2, "Median Read Latency": 13013.2, "Tail Read Latency": 219173.4, "Median Update Latency": 12913.4, "Tail Update Latency": 78396.6}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499623.8, "Median Read Latency": 3350.4, "Tail Read Latency": 224439.8, "Median Update Latency": 2713.4, "Tail Update Latency": 227667.6}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400044.7, "Median Read Latency": 114.6, "Tail Read Latency": 904.6, "Median Update Latency": 121.3, "Tail Update Latency": 889.9}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 99961.3, "Median Read Latency": 78.9, "Tail Read Latency": 121.4, "Median Update Latency": 84.1, "Tail Update Latency": 129.1}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 399956.7, "Median Read Latency": 111.9, "Tail Read Latency": 913.7, "Median Update Latency": 117.9, "Tail Update Latency": 812.8}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199987.8, "Median Read Latency": 88.7, "Tail Read Latency": 240.9, "Median Update Latency": 94.8, "Tail Update Latency": 263.6}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 578039.8, "Median Read Latency": 12007.4, "Tail Read Latency": 222983.8, "Median Update Latency": 12072.4, "Tail Update Latency": 223117.5}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 599235.9, "Median Read Latency": 12980.0, "Tail Read Latency": 89029.3, "Median Update Latency": 13117.6, "Tail Update Latency": 84983.3}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400003.6, "Median Read Latency": 104.1, "Tail Read Latency": 506.4, "Median Update Latency": 108.0, "Tail Update Latency": 499.3}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 667063.6, "Median Read Latency": 7072.8, "Tail Read Latency": 228047.4, "Median Update Latency": 6478.2, "Tail Update Latency": 226000.1}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 591587.5, "Median Read Latency": 13359.7, "Tail Read Latency": 50039.7, "Median Update Latency": 13361.1, "Tail Update Latency": 49096.8}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100046.8, "Median Read Latency": 93.6, "Tail Read Latency": 141.1, "Median Update Latency": 98.7, "Tail Update Latency": 149.6}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100035.3, "Median Read Latency": 93.2, "Tail Read Latency": 140.9, "Median Update Latency": 98.0, "Tail Update Latency": 149.2}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 579557.0, "Median Read Latency": 11146.3, "Tail Read Latency": 225592.5, "Median Update Latency": 11213.4, "Tail Update Latency": 227281.7}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499854.0, "Median Read Latency": 6874.0, "Tail Read Latency": 221957.8, "Median Update Latency": 6881.0, "Tail Update Latency": 223218.6}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199990.1, "Median Read Latency": 88.2, "Tail Read Latency": 238.6, "Median Update Latency": 95.8, "Tail Update Latency": 247.6}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 617227.7, "Median Read Latency": 17171.0, "Tail Read Latency": 249354.5, "Median Update Latency": 16888.9, "Tail Update Latency": 253622.6}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 616791.3, "Median Read Latency": 7783.5, "Tail Read Latency": 231012.6, "Median Update Latency": 7816.4, "Tail Update Latency": 229123.0}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100038.9, "Median Read Latency": 78.3, "Tail Read Latency": 119.7, "Median Update Latency": 83.5, "Tail Update Latency": 130.2}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 600648.1, "Median Read Latency": 19930.5, "Tail Read Latency": 252949.2, "Median Update Latency": 19774.3, "Tail Update Latency": 254769.5}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400077.3, "Median Read Latency": 115.5, "Tail Read Latency": 1407.8, "Median Update Latency": 119.4, "Tail Update Latency": 1102.4}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100003.5, "Median Read Latency": 85.9, "Tail Read Latency": 164.6, "Median Update Latency": 92.1, "Tail Update Latency": 171.8}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 99984.3, "Median Read Latency": 78.3, "Tail Read Latency": 120.5, "Median Update Latency": 83.7, "Tail Update Latency": 128.5}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 596507.7, "Median Read Latency": 13251.2, "Tail Read Latency": 73339.7, "Median Update Latency": 13352.3, "Tail Update Latency": 112626.7}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200030.3, "Median Read Latency": 94.9, "Tail Read Latency": 171.9, "Median Update Latency": 99.8, "Tail Update Latency": 185.1}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499890.3, "Median Read Latency": 6051.4, "Tail Read Latency": 220881.9, "Median Update Latency": 5816.4, "Tail Update Latency": 220025.4}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 617601.3, "Median Read Latency": 6576.4, "Tail Read Latency": 228343.0, "Median Update Latency": 6669.8, "Tail Update Latency": 229107.3}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 614289.3, "Median Read Latency": 27798.8, "Tail Read Latency": 249319.1, "Median Update Latency": 28052.1, "Tail Update Latency": 255922.6}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400085.5, "Median Read Latency": 108.2, "Tail Read Latency": 596.3, "Median Update Latency": 112.3, "Tail Update Latency": 580.3}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499937.2, "Median Read Latency": 246.8, "Tail Read Latency": 12044.7, "Median Update Latency": 370.5, "Tail Update Latency": 11969.0}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300032.5, "Median Read Latency": 99.9, "Tail Read Latency": 450.5, "Median Update Latency": 106.5, "Tail Update Latency": 506.6}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200065.4, "Median Read Latency": 78.6, "Tail Read Latency": 127.6, "Median Update Latency": 83.6, "Tail Update Latency": 136.7}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200023.6, "Median Read Latency": 95.8, "Tail Read Latency": 175.4, "Median Update Latency": 100.8, "Tail Update Latency": 181.3}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200018.8, "Median Read Latency": 88.0, "Tail Read Latency": 237.2, "Median Update Latency": 95.0, "Tail Update Latency": 241.3}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100003.9, "Median Read Latency": 92.9, "Tail Read Latency": 141.7, "Median Update Latency": 98.0, "Tail Update Latency": 149.9}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200027.7, "Median Read Latency": 78.8, "Tail Read Latency": 128.1, "Median Update Latency": 84.1, "Tail Update Latency": 138.5}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 573103.5, "Median Read Latency": 6813.3, "Tail Read Latency": 228646.3, "Median Update Latency": 6506.7, "Tail Update Latency": 228655.2}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 500002.4, "Median Read Latency": 165.8, "Tail Read Latency": 12247.6, "Median Update Latency": 153.3, "Tail Update Latency": 12160.1}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499939.4, "Median Read Latency": 236.9, "Tail Read Latency": 11686.2, "Median Update Latency": 1735.2, "Tail Update Latency": 11889.0}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100010.1, "Median Read Latency": 92.7, "Tail Read Latency": 140.3, "Median Update Latency": 98.4, "Tail Update Latency": 150.4}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200049.3, "Median Read Latency": 79.0, "Tail Read Latency": 128.4, "Median Update Latency": 83.8, "Tail Update Latency": 135.6}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499781.9, "Median Read Latency": 6814.0, "Tail Read Latency": 221736.9, "Median Update Latency": 6911.9, "Tail Update Latency": 208931.6}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 570152.2, "Median Read Latency": 5421.5, "Tail Read Latency": 227907.2, "Median Update Latency": 370.5, "Tail Update Latency": 226747.8}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 577102.5, "Median Read Latency": 10328.5, "Tail Read Latency": 229337.1, "Median Update Latency": 10259.6, "Tail Update Latency": 228080.1}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300011.4, "Median Read Latency": 104.6, "Tail Read Latency": 269.3, "Median Update Latency": 108.7, "Tail Update Latency": 273.6}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 679919.6, "Median Read Latency": 6524.6, "Tail Read Latency": 232330.6, "Median Update Latency": 6061.6, "Tail Update Latency": 230619.7}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 573394.8, "Median Read Latency": 847.7, "Tail Read Latency": 229024.9, "Median Update Latency": 383.2, "Tail Update Latency": 229457.9}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200085.1, "Median Read Latency": 88.4, "Tail Read Latency": 241.4, "Median Update Latency": 95.2, "Tail Update Latency": 234.6}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200047.0, "Median Read Latency": 94.9, "Tail Read Latency": 171.3, "Median Update Latency": 99.5, "Tail Update Latency": 172.3}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 559301.4, "Median Read Latency": 14825.1, "Tail Read Latency": 254187.0, "Median Update Latency": 14664.1, "Tail Update Latency": 254937.9}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100010.6, "Median Read Latency": 85.3, "Tail Read Latency": 162.3, "Median Update Latency": 91.4, "Tail Update Latency": 173.7}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 578074.7, "Median Read Latency": 11791.1, "Tail Read Latency": 223980.5, "Median Update Latency": 11864.7, "Tail Update Latency": 226155.9}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100001.6, "Median Read Latency": 85.8, "Tail Read Latency": 162.2, "Median Update Latency": 92.7, "Tail Update Latency": 171.3}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400002.4, "Median Read Latency": 116.0, "Tail Read Latency": 1275.3, "Median Update Latency": 120.4, "Tail Update Latency": 1950.4}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 99993.8, "Median Read Latency": 85.5, "Tail Read Latency": 165.2, "Median Update Latency": 91.9, "Tail Update Latency": 174.4}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300001.0, "Median Read Latency": 104.6, "Tail Read Latency": 264.9, "Median Update Latency": 109.1, "Tail Update Latency": 267.0}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300047.2, "Median Read Latency": 104.8, "Tail Read Latency": 270.7, "Median Update Latency": 108.8, "Tail Update Latency": 291.1}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 99984.4, "Median Read Latency": 92.5, "Tail Read Latency": 140.9, "Median Update Latency": 97.6, "Tail Update Latency": 151.5}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499211.4, "Median Read Latency": 4829.0, "Tail Read Latency": 227460.6, "Median Update Latency": 5820.2, "Tail Update Latency": 228629.5}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 399973.0, "Median Read Latency": 116.6, "Tail Read Latency": 1517.8, "Median Update Latency": 122.0, "Tail Update Latency": 2040.5}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 604492.9, "Median Read Latency": 22608.3, "Tail Read Latency": 250393.4, "Median Update Latency": 23071.2, "Tail Update Latency": 256668.7}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 611693.3, "Median Read Latency": 14027.6, "Tail Read Latency": 243356.0, "Median Update Latency": 14022.5, "Tail Update Latency": 250001.8}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200042.2, "Median Read Latency": 88.5, "Tail Read Latency": 243.2, "Median Update Latency": 94.9, "Tail Update Latency": 236.6}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 559704.6, "Median Read Latency": 14430.7, "Tail Read Latency": 250332.9, "Median Update Latency": 14418.1, "Tail Update Latency": 253148.7}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499223.6, "Median Read Latency": 4367.8, "Tail Read Latency": 226883.4, "Median Update Latency": 5244.0, "Tail Update Latency": 221016.3}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 568544.1, "Median Read Latency": 2365.9, "Tail Read Latency": 228962.5, "Median Update Latency": 4500.7, "Tail Update Latency": 230563.3}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100000.3, "Median Read Latency": 78.8, "Tail Read Latency": 119.8, "Median Update Latency": 84.1, "Tail Update Latency": 127.7}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499122.9, "Median Read Latency": 3607.2, "Tail Read Latency": 224649.4, "Median Update Latency": 3444.9, "Tail Update Latency": 225614.4}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400014.4, "Median Read Latency": 116.2, "Tail Read Latency": 1195.9, "Median Update Latency": 120.5, "Tail Update Latency": 1364.5}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199998.7, "Median Read Latency": 88.4, "Tail Read Latency": 243.1, "Median Update Latency": 94.8, "Tail Update Latency": 250.8}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 99995.7, "Median Read Latency": 86.0, "Tail Read Latency": 169.2, "Median Update Latency": 92.9, "Tail Update Latency": 184.7}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100033.6, "Median Read Latency": 92.2, "Tail Read Latency": 140.4, "Median Update Latency": 97.9, "Tail Update Latency": 150.8}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400016.4, "Median Read Latency": 107.1, "Tail Read Latency": 600.3, "Median Update Latency": 113.1, "Tail Update Latency": 614.8}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 596136.4, "Median Read Latency": 13397.2, "Tail Read Latency": 56097.2, "Median Update Latency": 13382.5, "Tail Update Latency": 52032.8}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 99991.6, "Median Read Latency": 78.8, "Tail Read Latency": 123.0, "Median Update Latency": 84.3, "Tail Update Latency": 129.0}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 577576.0, "Median Read Latency": 11304.9, "Tail Read Latency": 223373.9, "Median Update Latency": 11351.8, "Tail Update Latency": 222493.1}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 621059.2, "Median Read Latency": 836.3, "Tail Read Latency": 229758.4, "Median Update Latency": 5313.0, "Tail Update Latency": 229136.4}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200039.4, "Median Read Latency": 79.0, "Tail Read Latency": 128.4, "Median Update Latency": 83.6, "Tail Update Latency": 137.9}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 563457.7, "Median Read Latency": 16701.6, "Tail Read Latency": 249200.5, "Median Update Latency": 16861.1, "Tail Update Latency": 248788.2}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 399982.2, "Median Read Latency": 113.1, "Tail Read Latency": 881.3, "Median Update Latency": 119.4, "Tail Update Latency": 900.6}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 595465.4, "Median Read Latency": 13157.2, "Tail Read Latency": 75250.3, "Median Update Latency": 13247.2, "Tail Update Latency": 80003.1}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499959.8, "Median Read Latency": 262.9, "Tail Read Latency": 12395.7, "Median Update Latency": 295.8, "Tail Update Latency": 12350.6}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 589612.6, "Median Read Latency": 13433.9, "Tail Read Latency": 47674.3, "Median Update Latency": 13410.5, "Tail Update Latency": 57342.6}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 199957.2, "Median Read Latency": 80.1, "Tail Read Latency": 138.1, "Median Update Latency": 85.2, "Tail Update Latency": 143.2}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200034.1, "Median Read Latency": 94.9, "Tail Read Latency": 171.1, "Median Update Latency": 99.7, "Tail Update Latency": 180.0}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 500007.9, "Median Read Latency": 178.2, "Tail Read Latency": 12033.8, "Median Update Latency": 168.2, "Tail Update Latency": 12001.3}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 497856.1, "Median Read Latency": 4145.0, "Tail Read Latency": 226546.5, "Median Update Latency": 3441.9, "Tail Update Latency": 227252.1}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300033.4, "Median Read Latency": 104.2, "Tail Read Latency": 268.6, "Median Update Latency": 109.9, "Tail Update Latency": 279.2}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 568855.7, "Median Read Latency": 9605.0, "Tail Read Latency": 232225.5, "Median Update Latency": 9612.0, "Tail Update Latency": 232598.3}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200009.7, "Median Read Latency": 88.0, "Tail Read Latency": 239.6, "Median Update Latency": 94.3, "Tail Update Latency": 241.1}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 570228.2, "Median Read Latency": 6570.1, "Tail Read Latency": 225938.3, "Median Update Latency": 6319.2, "Tail Update Latency": 221840.9}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 299969.9, "Median Read Latency": 90.6, "Tail Read Latency": 349.4, "Median Update Latency": 96.7, "Tail Update Latency": 363.3}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 620657.5, "Median Read Latency": 5477.7, "Tail Read Latency": 231316.9, "Median Update Latency": 3529.9, "Tail Update Latency": 232065.4}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 99976.6, "Median Read Latency": 92.6, "Tail Read Latency": 140.5, "Median Update Latency": 97.5, "Tail Update Latency": 149.4}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400042.8, "Median Read Latency": 117.3, "Tail Read Latency": 1777.2, "Median Update Latency": 123.8, "Tail Update Latency": 1476.7}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100038.9, "Median Read Latency": 79.2, "Tail Read Latency": 122.3, "Median Update Latency": 85.3, "Tail Update Latency": 130.3}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 680848.2, "Median Read Latency": 6171.2, "Tail Read Latency": 227595.7, "Median Update Latency": 6211.2, "Tail Update Latency": 226364.4}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400014.0, "Median Read Latency": 113.7, "Tail Read Latency": 861.3, "Median Update Latency": 120.8, "Tail Update Latency": 910.6}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 299995.0, "Median Read Latency": 99.8, "Tail Read Latency": 460.1, "Median Update Latency": 105.9, "Tail Update Latency": 467.5}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499364.1, "Median Read Latency": 2224.1, "Tail Read Latency": 226096.6, "Median Update Latency": 3068.3, "Tail Update Latency": 225018.1}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 500025.6, "Median Read Latency": 313.0, "Tail Read Latency": 11828.0, "Median Update Latency": 321.6, "Tail Update Latency": 11853.5}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 620927.4, "Median Read Latency": 24535.1, "Tail Read Latency": 257784.9, "Median Update Latency": 24537.7, "Tail Update Latency": 255864.2}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 602632.4, "Median Read Latency": 13072.1, "Tail Read Latency": 61232.2, "Median Update Latency": 13168.5, "Tail Update Latency": 92245.5}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199927.4, "Median Read Latency": 89.4, "Tail Read Latency": 245.8, "Median Update Latency": 95.9, "Tail Update Latency": 254.7}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 595090.7, "Median Read Latency": 16183.6, "Tail Read Latency": 247979.2, "Median Update Latency": 16252.1, "Tail Update Latency": 250173.3}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 618956.2, "Median Read Latency": 6020.9, "Tail Read Latency": 229495.0, "Median Update Latency": 415.4, "Tail Update Latency": 230616.9}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 399956.4, "Median Read Latency": 104.6, "Tail Read Latency": 502.8, "Median Update Latency": 109.0, "Tail Update Latency": 496.5}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 299923.6, "Median Read Latency": 88.0, "Tail Read Latency": 180.5, "Median Update Latency": 93.2, "Tail Update Latency": 186.6}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300010.4, "Median Read Latency": 99.9, "Tail Read Latency": 441.2, "Median Update Latency": 105.4, "Tail Update Latency": 423.4}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300014.0, "Median Read Latency": 97.4, "Tail Read Latency": 219.0, "Median Update Latency": 101.9, "Tail Update Latency": 236.6}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499459.5, "Median Read Latency": 4253.1, "Tail Read Latency": 224248.7, "Median Update Latency": 3402.1, "Tail Update Latency": 224262.8}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300062.5, "Median Read Latency": 91.6, "Tail Read Latency": 357.4, "Median Update Latency": 98.9, "Tail Update Latency": 364.4}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 678611.1, "Median Read Latency": 6160.8, "Tail Read Latency": 229544.6, "Median Update Latency": 5851.0, "Tail Update Latency": 229411.7}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 578256.9, "Median Read Latency": 11180.9, "Tail Read Latency": 225596.4, "Median Update Latency": 11147.2, "Tail Update Latency": 222763.9}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400003.0, "Median Read Latency": 116.8, "Tail Read Latency": 1089.4, "Median Update Latency": 122.7, "Tail Update Latency": 831.8}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300032.2, "Median Read Latency": 90.3, "Tail Read Latency": 348.7, "Median Update Latency": 96.4, "Tail Update Latency": 350.9}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200064.6, "Median Read Latency": 78.7, "Tail Read Latency": 128.0, "Median Update Latency": 84.5, "Tail Update Latency": 138.0}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 399974.1, "Median Read Latency": 115.0, "Tail Read Latency": 1410.0, "Median Update Latency": 120.0, "Tail Update Latency": 1261.5}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100010.9, "Median Read Latency": 85.4, "Tail Read Latency": 160.3, "Median Update Latency": 91.7, "Tail Update Latency": 173.0}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400024.5, "Median Read Latency": 106.4, "Tail Read Latency": 505.2, "Median Update Latency": 111.2, "Tail Update Latency": 491.0}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300011.7, "Median Read Latency": 87.3, "Tail Read Latency": 178.7, "Median Update Latency": 92.3, "Tail Update Latency": 184.7}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 99988.9, "Median Read Latency": 93.3, "Tail Read Latency": 140.6, "Median Update Latency": 98.0, "Tail Update Latency": 150.8}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 299993.4, "Median Read Latency": 87.5, "Tail Read Latency": 181.0, "Median Update Latency": 93.2, "Tail Update Latency": 182.8}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 617912.5, "Median Read Latency": 25810.6, "Tail Read Latency": 252464.1, "Median Update Latency": 25674.3, "Tail Update Latency": 251736.1}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 625701.7, "Median Read Latency": 22503.9, "Tail Read Latency": 259542.7, "Median Update Latency": 22468.4, "Tail Update Latency": 267154.9}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499785.2, "Median Read Latency": 6496.3, "Tail Read Latency": 222659.0, "Median Update Latency": 6234.7, "Tail Update Latency": 222262.0}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 572021.8, "Median Read Latency": 9548.6, "Tail Read Latency": 233766.8, "Median Update Latency": 9524.3, "Tail Update Latency": 236551.7}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200009.0, "Median Read Latency": 95.4, "Tail Read Latency": 175.8, "Median Update Latency": 100.7, "Tail Update Latency": 190.9}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200027.1, "Median Read Latency": 78.6, "Tail Read Latency": 126.6, "Median Update Latency": 83.1, "Tail Update Latency": 129.1}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 557369.8, "Median Read Latency": 16483.1, "Tail Read Latency": 253742.7, "Median Update Latency": 16400.4, "Tail Update Latency": 255241.9}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499805.4, "Median Read Latency": 6508.7, "Tail Read Latency": 221536.4, "Median Update Latency": 6509.6, "Tail Update Latency": 223234.9}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300035.4, "Median Read Latency": 100.2, "Tail Read Latency": 457.3, "Median Update Latency": 106.8, "Tail Update Latency": 525.7}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300050.2, "Median Read Latency": 96.4, "Tail Read Latency": 213.9, "Median Update Latency": 100.7, "Tail Update Latency": 220.0}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499885.9, "Median Read Latency": 7063.8, "Tail Read Latency": 214747.3, "Median Update Latency": 6995.4, "Tail Update Latency": 219631.2}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 609226.7, "Median Read Latency": 14494.9, "Tail Read Latency": 237210.7, "Median Update Latency": 14428.8, "Tail Update Latency": 235805.5}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 569466.3, "Median Read Latency": 511.4, "Tail Read Latency": 226153.5, "Median Update Latency": 364.6, "Tail Update Latency": 224980.5}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499908.5, "Median Read Latency": 5780.3, "Tail Read Latency": 221614.4, "Median Update Latency": 5583.2, "Tail Update Latency": 223730.2}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 564939.5, "Median Read Latency": 9668.2, "Tail Read Latency": 232075.5, "Median Update Latency": 9684.1, "Tail Update Latency": 233548.1}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100060.1, "Median Read Latency": 78.8, "Tail Read Latency": 121.0, "Median Update Latency": 84.6, "Tail Update Latency": 130.7}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199988.8, "Median Read Latency": 88.0, "Tail Read Latency": 242.2, "Median Update Latency": 95.1, "Tail Update Latency": 263.1}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 619177.1, "Median Read Latency": 5783.8, "Tail Read Latency": 230993.8, "Median Update Latency": 5783.0, "Tail Update Latency": 228857.0}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 591662.2, "Median Read Latency": 13386.9, "Tail Read Latency": 50085.4, "Median Update Latency": 13368.7, "Tail Update Latency": 44908.7}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100031.6, "Median Read Latency": 78.6, "Tail Read Latency": 120.5, "Median Update Latency": 84.0, "Tail Update Latency": 128.7}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 578665.8, "Median Read Latency": 12495.4, "Tail Read Latency": 71938.0, "Median Update Latency": 12460.8, "Tail Update Latency": 134007.8}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 593825.5, "Median Read Latency": 13381.8, "Tail Read Latency": 42648.3, "Median Update Latency": 13428.1, "Tail Update Latency": 52034.5}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400058.1, "Median Read Latency": 107.0, "Tail Read Latency": 542.8, "Median Update Latency": 112.4, "Tail Update Latency": 534.6}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100023.5, "Median Read Latency": 86.3, "Tail Read Latency": 167.1, "Median Update Latency": 93.4, "Tail Update Latency": 177.1}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 500013.8, "Median Read Latency": 427.0, "Tail Read Latency": 11978.9, "Median Update Latency": 1271.9, "Tail Update Latency": 12021.7}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200028.8, "Median Read Latency": 79.0, "Tail Read Latency": 128.9, "Median Update Latency": 84.0, "Tail Update Latency": 135.6}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 622974.3, "Median Read Latency": 25949.6, "Tail Read Latency": 253985.8, "Median Update Latency": 26016.2, "Tail Update Latency": 256999.9}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 498679.6, "Median Read Latency": 2696.6, "Tail Read Latency": 224780.0, "Median Update Latency": 3725.6, "Tail Update Latency": 225606.8}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300005.0, "Median Read Latency": 87.2, "Tail Read Latency": 181.0, "Median Update Latency": 91.9, "Tail Update Latency": 190.0}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100054.4, "Median Read Latency": 78.9, "Tail Read Latency": 121.5, "Median Update Latency": 84.5, "Tail Update Latency": 128.5}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 594765.9, "Median Read Latency": 13457.0, "Tail Read Latency": 57014.3, "Median Update Latency": 13535.6, "Tail Update Latency": 62271.0}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100045.0, "Median Read Latency": 94.0, "Tail Read Latency": 147.8, "Median Update Latency": 98.6, "Tail Update Latency": 155.2}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 570755.1, "Median Read Latency": 1747.1, "Tail Read Latency": 229720.5, "Median Update Latency": 376.1, "Tail Update Latency": 230143.6}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400028.9, "Median Read Latency": 113.5, "Tail Read Latency": 883.0, "Median Update Latency": 119.6, "Tail Update Latency": 930.9}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499161.2, "Median Read Latency": 4035.8, "Tail Read Latency": 226041.1, "Median Update Latency": 4145.7, "Tail Update Latency": 227144.8}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200004.9, "Median Read Latency": 79.6, "Tail Read Latency": 128.8, "Median Update Latency": 84.8, "Tail Update Latency": 138.1}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499892.3, "Median Read Latency": 6412.0, "Tail Read Latency": 220894.5, "Median Update Latency": 6356.1, "Tail Update Latency": 222058.1}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 569172.7, "Median Read Latency": 1014.0, "Tail Read Latency": 227912.8, "Median Update Latency": 299.3, "Tail Update Latency": 226796.7}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 592497.5, "Median Read Latency": 13366.1, "Tail Read Latency": 50141.0, "Median Update Latency": 13458.6, "Tail Update Latency": 64470.4}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400035.6, "Median Read Latency": 114.4, "Tail Read Latency": 884.8, "Median Update Latency": 121.0, "Tail Update Latency": 883.7}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499062.3, "Median Read Latency": 2907.3, "Tail Read Latency": 226259.2, "Median Update Latency": 3329.0, "Tail Update Latency": 226354.8}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300127.5, "Median Read Latency": 104.7, "Tail Read Latency": 266.2, "Median Update Latency": 109.1, "Tail Update Latency": 269.6}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300046.9, "Median Read Latency": 88.4, "Tail Read Latency": 182.9, "Median Update Latency": 93.4, "Tail Update Latency": 188.3}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 585332.5, "Median Read Latency": 13581.7, "Tail Read Latency": 41485.9, "Median Update Latency": 13562.4, "Tail Update Latency": 42725.2}]]1 [["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 498755.2, "Median Read Latency": 3190.7, "Tail Read Latency": 225397.5, "Median Update Latency": 2830.3, "Tail Update Latency": 226163.8}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 199980.9, "Median Read Latency": 95.5, "Tail Read Latency": 170.9, "Median Update Latency": 100.7, "Tail Update Latency": 176.2}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 399978.4, "Median Read Latency": 117.8, "Tail Read Latency": 1207.1, "Median Update Latency": 121.9, "Tail Update Latency": 1336.8}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 612437.4, "Median Read Latency": 15884.0, "Tail Read Latency": 248252.4, "Median Update Latency": 15749.0, "Tail Update Latency": 247485.6}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 399937.0, "Median Read Latency": 111.9, "Tail Read Latency": 869.0, "Median Update Latency": 117.5, "Tail Update Latency": 880.8}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100019.3, "Median Read Latency": 85.8, "Tail Read Latency": 161.8, "Median Update Latency": 92.2, "Tail Update Latency": 169.1}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499962.9, "Median Read Latency": 185.6, "Tail Read Latency": 12305.1, "Median Update Latency": 250.1, "Tail Update Latency": 12317.4}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100007.8, "Median Read Latency": 85.9, "Tail Read Latency": 161.0, "Median Update Latency": 92.3, "Tail Update Latency": 168.9}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 557475.3, "Median Read Latency": 18115.8, "Tail Read Latency": 251927.5, "Median Update Latency": 18299.3, "Tail Update Latency": 250306.8}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200004.6, "Median Read Latency": 95.3, "Tail Read Latency": 173.3, "Median Update Latency": 99.9, "Tail Update Latency": 180.6}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 597071.5, "Median Read Latency": 13212.4, "Tail Read Latency": 62539.9, "Median Update Latency": 13231.2, "Tail Update Latency": 69653.7}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 199978.5, "Median Read Latency": 95.5, "Tail Read Latency": 177.6, "Median Update Latency": 100.3, "Tail Update Latency": 186.7}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 614246.9, "Median Read Latency": 16225.4, "Tail Read Latency": 250527.9, "Median Update Latency": 16499.8, "Tail Update Latency": 256449.6}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300008.6, "Median Read Latency": 87.5, "Tail Read Latency": 183.5, "Median Update Latency": 93.1, "Tail Update Latency": 190.9}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100006.9, "Median Read Latency": 85.4, "Tail Read Latency": 177.6, "Median Update Latency": 92.0, "Tail Update Latency": 194.1}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200005.2, "Median Read Latency": 95.3, "Tail Read Latency": 173.8, "Median Update Latency": 99.8, "Tail Update Latency": 183.7}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 572663.5, "Median Read Latency": 371.4, "Tail Read Latency": 227972.8, "Median Update Latency": 1399.1, "Tail Update Latency": 226684.5}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 622639.2, "Median Read Latency": 5780.5, "Tail Read Latency": 230039.3, "Median Update Latency": 7841.8, "Tail Update Latency": 229186.6}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 592141.1, "Median Read Latency": 13408.6, "Tail Read Latency": 48231.9, "Median Update Latency": 13507.0, "Tail Update Latency": 49970.4}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 299997.1, "Median Read Latency": 91.3, "Tail Read Latency": 346.2, "Median Update Latency": 97.8, "Tail Update Latency": 359.3}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 299972.9, "Median Read Latency": 100.3, "Tail Read Latency": 454.5, "Median Update Latency": 106.7, "Tail Update Latency": 436.9}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 598258.7, "Median Read Latency": 13440.2, "Tail Read Latency": 50537.1, "Median Update Latency": 13527.6, "Tail Update Latency": 47965.6}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 299962.2, "Median Read Latency": 88.0, "Tail Read Latency": 181.4, "Median Update Latency": 93.3, "Tail Update Latency": 187.2}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 602219.4, "Median Read Latency": 25297.0, "Tail Read Latency": 250896.6, "Median Update Latency": 25038.5, "Tail Update Latency": 251507.9}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 564998.0, "Median Read Latency": 20010.7, "Tail Read Latency": 250571.5, "Median Update Latency": 20091.0, "Tail Update Latency": 250161.2}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499891.1, "Median Read Latency": 7175.0, "Tail Read Latency": 220926.7, "Median Update Latency": 7105.9, "Tail Update Latency": 221994.0}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499974.2, "Median Read Latency": 211.4, "Tail Read Latency": 11680.1, "Median Update Latency": 829.2, "Tail Update Latency": 11990.8}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300012.7, "Median Read Latency": 97.1, "Tail Read Latency": 222.8, "Median Update Latency": 101.7, "Tail Update Latency": 238.1}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300070.5, "Median Read Latency": 96.8, "Tail Read Latency": 220.3, "Median Update Latency": 101.7, "Tail Update Latency": 237.8}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100008.7, "Median Read Latency": 85.6, "Tail Read Latency": 163.0, "Median Update Latency": 92.3, "Tail Update Latency": 175.3}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400028.9, "Median Read Latency": 114.8, "Tail Read Latency": 956.1, "Median Update Latency": 120.3, "Tail Update Latency": 1350.3}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300055.6, "Median Read Latency": 86.4, "Tail Read Latency": 175.9, "Median Update Latency": 91.2, "Tail Update Latency": 180.7}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 673707.6, "Median Read Latency": 6827.8, "Tail Read Latency": 231197.0, "Median Update Latency": 7140.8, "Tail Update Latency": 231287.8}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 601228.5, "Median Read Latency": 12871.0, "Tail Read Latency": 219146.6, "Median Update Latency": 12852.8, "Tail Update Latency": 56501.0}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300015.0, "Median Read Latency": 100.1, "Tail Read Latency": 481.1, "Median Update Latency": 105.7, "Tail Update Latency": 488.7}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 99997.9, "Median Read Latency": 85.4, "Tail Read Latency": 167.7, "Median Update Latency": 92.4, "Tail Update Latency": 173.4}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200021.1, "Median Read Latency": 88.1, "Tail Read Latency": 244.9, "Median Update Latency": 95.0, "Tail Update Latency": 253.9}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400017.0, "Median Read Latency": 113.1, "Tail Read Latency": 849.1, "Median Update Latency": 119.1, "Tail Update Latency": 882.8}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 562604.7, "Median Read Latency": 19819.4, "Tail Read Latency": 249845.8, "Median Update Latency": 19871.1, "Tail Update Latency": 249555.6}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 572312.9, "Median Read Latency": 6524.3, "Tail Read Latency": 228864.5, "Median Update Latency": 2602.5, "Tail Update Latency": 228616.6}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 621196.7, "Median Read Latency": 2295.2, "Tail Read Latency": 231836.0, "Median Update Latency": 1441.1, "Tail Update Latency": 230955.6}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 595177.6, "Median Read Latency": 13372.4, "Tail Read Latency": 46883.0, "Median Update Latency": 13426.8, "Tail Update Latency": 64667.1}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400026.7, "Median Read Latency": 115.7, "Tail Read Latency": 881.2, "Median Update Latency": 121.1, "Tail Update Latency": 929.1}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 498000.8, "Median Read Latency": 4060.3, "Tail Read Latency": 226676.1, "Median Update Latency": 2978.6, "Tail Update Latency": 225731.4}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 579656.7, "Median Read Latency": 12225.7, "Tail Read Latency": 219760.8, "Median Update Latency": 12238.9, "Tail Update Latency": 203698.4}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200001.8, "Median Read Latency": 88.1, "Tail Read Latency": 240.2, "Median Update Latency": 94.6, "Tail Update Latency": 251.4}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 594850.0, "Median Read Latency": 13333.6, "Tail Read Latency": 52682.0, "Median Update Latency": 13351.9, "Tail Update Latency": 56204.4}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499921.3, "Median Read Latency": 6662.5, "Tail Read Latency": 219673.4, "Median Update Latency": 6837.7, "Tail Update Latency": 211568.1}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 572487.8, "Median Read Latency": 10378.4, "Tail Read Latency": 226976.4, "Median Update Latency": 10403.8, "Tail Update Latency": 227094.8}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 594974.2, "Median Read Latency": 13359.6, "Tail Read Latency": 41942.6, "Median Update Latency": 13334.3, "Tail Update Latency": 44809.8}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 199997.8, "Median Read Latency": 78.3, "Tail Read Latency": 128.0, "Median Update Latency": 82.8, "Tail Update Latency": 134.8}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400037.0, "Median Read Latency": 115.5, "Tail Read Latency": 996.4, "Median Update Latency": 120.1, "Tail Update Latency": 1664.7}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 500010.9, "Median Read Latency": 165.0, "Tail Read Latency": 12206.4, "Median Update Latency": 179.4, "Tail Update Latency": 12184.2}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200000.1, "Median Read Latency": 95.5, "Tail Read Latency": 180.0, "Median Update Latency": 99.7, "Tail Update Latency": 182.7}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 99978.3, "Median Read Latency": 77.9, "Tail Read Latency": 118.1, "Median Update Latency": 83.2, "Tail Update Latency": 128.9}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 399987.9, "Median Read Latency": 108.4, "Tail Read Latency": 539.7, "Median Update Latency": 113.9, "Tail Update Latency": 539.2}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499820.4, "Median Read Latency": 5658.7, "Tail Read Latency": 212053.1, "Median Update Latency": 5741.1, "Tail Update Latency": 50321.8}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400070.7, "Median Read Latency": 111.9, "Tail Read Latency": 890.4, "Median Update Latency": 117.0, "Tail Update Latency": 828.8}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 601775.8, "Median Read Latency": 23117.3, "Tail Read Latency": 250232.9, "Median Update Latency": 23116.7, "Tail Update Latency": 246551.8}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100001.3, "Median Read Latency": 92.8, "Tail Read Latency": 140.9, "Median Update Latency": 98.0, "Tail Update Latency": 152.9}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 574754.4, "Median Read Latency": 357.0, "Tail Read Latency": 231151.6, "Median Update Latency": 557.4, "Tail Update Latency": 229444.1}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 573363.3, "Median Read Latency": 9889.6, "Tail Read Latency": 229927.1, "Median Update Latency": 9906.8, "Tail Update Latency": 231207.8}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 679908.4, "Median Read Latency": 5451.8, "Tail Read Latency": 230889.9, "Median Update Latency": 5681.1, "Tail Update Latency": 232091.7}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 609366.0, "Median Read Latency": 16768.6, "Tail Read Latency": 247631.3, "Median Update Latency": 17033.4, "Tail Update Latency": 253910.6}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200039.8, "Median Read Latency": 95.6, "Tail Read Latency": 174.6, "Median Update Latency": 100.5, "Tail Update Latency": 180.7}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 596702.7, "Median Read Latency": 13428.9, "Tail Read Latency": 51857.9, "Median Update Latency": 13435.2, "Tail Update Latency": 83668.0}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 576584.3, "Median Read Latency": 10177.2, "Tail Read Latency": 228562.7, "Median Update Latency": 10194.1, "Tail Update Latency": 227658.5}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499992.8, "Median Read Latency": 162.7, "Tail Read Latency": 11374.3, "Median Update Latency": 167.4, "Tail Update Latency": 11372.9}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 595017.0, "Median Read Latency": 17998.2, "Tail Read Latency": 243922.3, "Median Update Latency": 18344.5, "Tail Update Latency": 239502.7}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199994.0, "Median Read Latency": 88.5, "Tail Read Latency": 239.3, "Median Update Latency": 95.4, "Tail Update Latency": 248.8}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 299957.9, "Median Read Latency": 105.1, "Tail Read Latency": 274.5, "Median Update Latency": 109.5, "Tail Update Latency": 287.3}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200018.7, "Median Read Latency": 95.2, "Tail Read Latency": 172.9, "Median Update Latency": 100.4, "Tail Update Latency": 174.6}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 500038.3, "Median Read Latency": 211.6, "Tail Read Latency": 11382.7, "Median Update Latency": 206.1, "Tail Update Latency": 11382.7}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 597722.5, "Median Read Latency": 13397.7, "Tail Read Latency": 58411.2, "Median Update Latency": 13387.9, "Tail Update Latency": 68941.3}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100030.7, "Median Read Latency": 85.7, "Tail Read Latency": 163.9, "Median Update Latency": 92.0, "Tail Update Latency": 171.4}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 558818.6, "Median Read Latency": 13363.8, "Tail Read Latency": 248229.0, "Median Update Latency": 13350.2, "Tail Update Latency": 249960.2}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 621757.3, "Median Read Latency": 5239.7, "Tail Read Latency": 234406.2, "Median Update Latency": 6894.0, "Tail Update Latency": 234114.4}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 679182.4, "Median Read Latency": 5967.0, "Tail Read Latency": 228719.6, "Median Update Latency": 6772.4, "Tail Update Latency": 228625.2}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200045.5, "Median Read Latency": 79.2, "Tail Read Latency": 128.4, "Median Update Latency": 84.2, "Tail Update Latency": 137.4}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 99987.1, "Median Read Latency": 93.3, "Tail Read Latency": 141.6, "Median Update Latency": 98.5, "Tail Update Latency": 152.4}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300010.7, "Median Read Latency": 92.5, "Tail Read Latency": 349.6, "Median Update Latency": 99.4, "Tail Update Latency": 379.9}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400028.0, "Median Read Latency": 113.6, "Tail Read Latency": 841.4, "Median Update Latency": 120.0, "Tail Update Latency": 882.9}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 593569.4, "Median Read Latency": 13403.1, "Tail Read Latency": 39646.1, "Median Update Latency": 13399.0, "Tail Update Latency": 37874.8}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400020.1, "Median Read Latency": 107.8, "Tail Read Latency": 564.8, "Median Update Latency": 112.1, "Tail Update Latency": 551.0}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 597114.9, "Median Read Latency": 18109.7, "Tail Read Latency": 246701.4, "Median Update Latency": 17982.1, "Tail Update Latency": 247698.7}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 592504.7, "Median Read Latency": 13426.0, "Tail Read Latency": 44154.2, "Median Update Latency": 13401.8, "Tail Update Latency": 46925.7}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300004.6, "Median Read Latency": 87.4, "Tail Read Latency": 181.7, "Median Update Latency": 92.3, "Tail Update Latency": 184.6}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199991.6, "Median Read Latency": 87.7, "Tail Read Latency": 238.7, "Median Update Latency": 94.3, "Tail Update Latency": 241.1}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300039.2, "Median Read Latency": 100.0, "Tail Read Latency": 465.5, "Median Update Latency": 105.5, "Tail Update Latency": 437.3}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 555859.2, "Median Read Latency": 14324.7, "Tail Read Latency": 252224.7, "Median Update Latency": 14183.0, "Tail Update Latency": 253064.7}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 591884.8, "Median Read Latency": 18852.4, "Tail Read Latency": 245546.0, "Median Update Latency": 18781.5, "Tail Update Latency": 251330.1}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 560411.7, "Median Read Latency": 16212.0, "Tail Read Latency": 249414.2, "Median Update Latency": 16315.3, "Tail Update Latency": 252118.3}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499875.4, "Median Read Latency": 7148.7, "Tail Read Latency": 221728.4, "Median Update Latency": 6854.7, "Tail Update Latency": 223478.5}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 603884.3, "Median Read Latency": 12495.1, "Tail Read Latency": 220449.1, "Median Update Latency": 12489.2, "Tail Update Latency": 220650.4}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 686509.4, "Median Read Latency": 6617.1, "Tail Read Latency": 231746.5, "Median Update Latency": 6934.3, "Tail Update Latency": 232363.0}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 623145.4, "Median Read Latency": 5661.8, "Tail Read Latency": 229372.2, "Median Update Latency": 6085.7, "Tail Update Latency": 230691.9}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100019.7, "Median Read Latency": 93.3, "Tail Read Latency": 142.6, "Median Update Latency": 98.3, "Tail Update Latency": 152.2}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499889.0, "Median Read Latency": 155.9, "Tail Read Latency": 12059.8, "Median Update Latency": 169.9, "Tail Update Latency": 12072.0}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100018.5, "Median Read Latency": 86.6, "Tail Read Latency": 164.3, "Median Update Latency": 92.9, "Tail Update Latency": 179.2}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100008.8, "Median Read Latency": 85.5, "Tail Read Latency": 162.2, "Median Update Latency": 92.2, "Tail Update Latency": 169.4}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 559071.8, "Median Read Latency": 13053.0, "Tail Read Latency": 247054.3, "Median Update Latency": 13181.4, "Tail Update Latency": 246805.2}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100016.0, "Median Read Latency": 78.2, "Tail Read Latency": 119.3, "Median Update Latency": 84.1, "Tail Update Latency": 130.7}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400025.2, "Median Read Latency": 104.6, "Tail Read Latency": 513.5, "Median Update Latency": 108.7, "Tail Update Latency": 505.0}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100009.2, "Median Read Latency": 93.0, "Tail Read Latency": 143.2, "Median Update Latency": 98.0, "Tail Update Latency": 154.2}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 399978.2, "Median Read Latency": 104.6, "Tail Read Latency": 482.3, "Median Update Latency": 109.5, "Tail Update Latency": 481.6}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 399992.4, "Median Read Latency": 115.3, "Tail Read Latency": 1018.2, "Median Update Latency": 121.2, "Tail Update Latency": 1420.5}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200039.6, "Median Read Latency": 88.3, "Tail Read Latency": 235.4, "Median Update Latency": 94.9, "Tail Update Latency": 242.1}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 498725.8, "Median Read Latency": 3893.4, "Tail Read Latency": 227347.3, "Median Update Latency": 3733.9, "Tail Update Latency": 227619.0}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200028.7, "Median Read Latency": 79.2, "Tail Read Latency": 129.6, "Median Update Latency": 84.3, "Tail Update Latency": 138.4}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 620433.1, "Median Read Latency": 21839.7, "Tail Read Latency": 249643.8, "Median Update Latency": 22022.9, "Tail Update Latency": 249993.9}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 569787.5, "Median Read Latency": 3043.0, "Tail Read Latency": 226727.4, "Median Update Latency": 6870.7, "Tail Update Latency": 227823.6}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 597059.4, "Median Read Latency": 13321.6, "Tail Read Latency": 45190.1, "Median Update Latency": 13316.7, "Tail Update Latency": 44028.0}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300053.7, "Median Read Latency": 86.8, "Tail Read Latency": 184.7, "Median Update Latency": 92.1, "Tail Update Latency": 192.5}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100014.4, "Median Read Latency": 93.1, "Tail Read Latency": 141.1, "Median Update Latency": 98.9, "Tail Update Latency": 150.9}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 618846.7, "Median Read Latency": 902.7, "Tail Read Latency": 227141.2, "Median Update Latency": 637.8, "Tail Update Latency": 224313.9}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 595532.7, "Median Read Latency": 16978.5, "Tail Read Latency": 248593.5, "Median Update Latency": 16895.7, "Tail Update Latency": 250405.5}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 620493.4, "Median Read Latency": 19597.9, "Tail Read Latency": 247174.2, "Median Update Latency": 19579.3, "Tail Update Latency": 250788.1}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 399994.3, "Median Read Latency": 103.5, "Tail Read Latency": 456.3, "Median Update Latency": 108.6, "Tail Update Latency": 464.3}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 572443.4, "Median Read Latency": 5819.9, "Tail Read Latency": 229576.2, "Median Update Latency": 5419.3, "Tail Update Latency": 230185.9}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200006.2, "Median Read Latency": 95.2, "Tail Read Latency": 174.1, "Median Update Latency": 99.8, "Tail Update Latency": 183.5}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 675884.4, "Median Read Latency": 5168.9, "Tail Read Latency": 232226.3, "Median Update Latency": 5221.0, "Tail Update Latency": 234665.5}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300048.0, "Median Read Latency": 104.7, "Tail Read Latency": 274.3, "Median Update Latency": 110.1, "Tail Update Latency": 270.9}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 593973.5, "Median Read Latency": 13469.9, "Tail Read Latency": 48997.9, "Median Update Latency": 13481.7, "Tail Update Latency": 43736.0}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400014.9, "Median Read Latency": 114.7, "Tail Read Latency": 985.2, "Median Update Latency": 117.9, "Tail Update Latency": 836.7}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100023.3, "Median Read Latency": 92.3, "Tail Read Latency": 140.0, "Median Update Latency": 97.5, "Tail Update Latency": 150.4}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200024.8, "Median Read Latency": 78.3, "Tail Read Latency": 127.6, "Median Update Latency": 82.7, "Tail Update Latency": 133.8}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 299955.1, "Median Read Latency": 92.6, "Tail Read Latency": 352.0, "Median Update Latency": 99.0, "Tail Update Latency": 340.3}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499993.2, "Median Read Latency": 496.8, "Tail Read Latency": 11875.1, "Median Update Latency": 347.0, "Tail Update Latency": 11798.5}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400080.4, "Median Read Latency": 105.7, "Tail Read Latency": 515.6, "Median Update Latency": 110.8, "Tail Update Latency": 518.0}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 621476.0, "Median Read Latency": 4652.6, "Tail Read Latency": 228156.0, "Median Update Latency": 4843.4, "Tail Update Latency": 226596.6}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 618279.2, "Median Read Latency": 4429.6, "Tail Read Latency": 228611.1, "Median Update Latency": 4362.4, "Tail Update Latency": 226378.2}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 593594.2, "Median Read Latency": 13393.0, "Tail Read Latency": 57221.3, "Median Update Latency": 13422.7, "Tail Update Latency": 80690.8}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200022.4, "Median Read Latency": 95.8, "Tail Read Latency": 172.8, "Median Update Latency": 100.5, "Tail Update Latency": 185.4}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 560918.1, "Median Read Latency": 16358.1, "Tail Read Latency": 253540.6, "Median Update Latency": 16212.4, "Tail Update Latency": 251232.8}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 669430.7, "Median Read Latency": 5583.0, "Tail Read Latency": 231084.5, "Median Update Latency": 6019.7, "Tail Update Latency": 232056.7}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 399991.3, "Median Read Latency": 106.0, "Tail Read Latency": 530.9, "Median Update Latency": 111.6, "Tail Update Latency": 541.9}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 399954.1, "Median Read Latency": 115.9, "Tail Read Latency": 1160.1, "Median Update Latency": 121.1, "Tail Update Latency": 1101.6}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 606298.3, "Median Read Latency": 12500.1, "Tail Read Latency": 221340.8, "Median Update Latency": 12479.4, "Tail Update Latency": 220126.4}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 677365.7, "Median Read Latency": 5572.2, "Tail Read Latency": 232186.6, "Median Update Latency": 5377.3, "Tail Update Latency": 234817.9}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 560278.3, "Median Read Latency": 15552.2, "Tail Read Latency": 251034.1, "Median Update Latency": 15592.0, "Tail Update Latency": 246436.6}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 595753.0, "Median Read Latency": 23720.5, "Tail Read Latency": 249422.3, "Median Update Latency": 23512.1, "Tail Update Latency": 249583.9}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400063.9, "Median Read Latency": 113.4, "Tail Read Latency": 862.6, "Median Update Latency": 120.0, "Tail Update Latency": 817.9}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499823.1, "Median Read Latency": 7675.7, "Tail Read Latency": 221134.1, "Median Update Latency": 7669.5, "Tail Update Latency": 221961.7}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 399924.2, "Median Read Latency": 113.2, "Tail Read Latency": 860.6, "Median Update Latency": 119.8, "Tail Update Latency": 955.3}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300058.2, "Median Read Latency": 87.1, "Tail Read Latency": 181.8, "Median Update Latency": 91.9, "Tail Update Latency": 186.4}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100027.5, "Median Read Latency": 79.1, "Tail Read Latency": 123.2, "Median Update Latency": 84.7, "Tail Update Latency": 132.5}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 598396.1, "Median Read Latency": 15300.7, "Tail Read Latency": 244675.0, "Median Update Latency": 15021.1, "Tail Update Latency": 241147.1}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 572232.9, "Median Read Latency": 5540.0, "Tail Read Latency": 226307.6, "Median Update Latency": 6565.7, "Tail Update Latency": 228217.0}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100026.0, "Median Read Latency": 79.4, "Tail Read Latency": 119.9, "Median Update Latency": 84.8, "Tail Update Latency": 127.7}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 612789.2, "Median Read Latency": 20433.4, "Tail Read Latency": 248317.0, "Median Update Latency": 19920.1, "Tail Update Latency": 248162.6}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 633366.9, "Median Read Latency": 27763.5, "Tail Read Latency": 261832.4, "Median Update Latency": 27589.3, "Tail Update Latency": 260902.8}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300076.6, "Median Read Latency": 91.9, "Tail Read Latency": 355.3, "Median Update Latency": 97.9, "Tail Update Latency": 346.9}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400067.4, "Median Read Latency": 104.2, "Tail Read Latency": 490.8, "Median Update Latency": 109.1, "Tail Update Latency": 489.3}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100018.2, "Median Read Latency": 79.5, "Tail Read Latency": 124.0, "Median Update Latency": 85.6, "Tail Update Latency": 130.7}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 673606.9, "Median Read Latency": 6399.4, "Tail Read Latency": 232519.9, "Median Update Latency": 7309.5, "Tail Update Latency": 233818.8}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 618746.2, "Median Read Latency": 5440.4, "Tail Read Latency": 229943.5, "Median Update Latency": 6759.6, "Tail Update Latency": 229563.8}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300022.9, "Median Read Latency": 87.6, "Tail Read Latency": 182.6, "Median Update Latency": 92.8, "Tail Update Latency": 187.9}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400008.0, "Median Read Latency": 111.5, "Tail Read Latency": 841.2, "Median Update Latency": 118.5, "Tail Update Latency": 843.9}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300049.4, "Median Read Latency": 88.0, "Tail Read Latency": 183.8, "Median Update Latency": 94.3, "Tail Update Latency": 187.9}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 299973.6, "Median Read Latency": 103.9, "Tail Read Latency": 264.6, "Median Update Latency": 108.6, "Tail Update Latency": 264.8}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 634051.9, "Median Read Latency": 29679.0, "Tail Read Latency": 276428.2, "Median Update Latency": 29553.8, "Tail Update Latency": 275365.1}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 595601.7, "Median Read Latency": 16592.4, "Tail Read Latency": 248858.5, "Median Update Latency": 16643.3, "Tail Update Latency": 249676.4}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 299996.7, "Median Read Latency": 105.2, "Tail Read Latency": 265.0, "Median Update Latency": 110.0, "Tail Update Latency": 291.7}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 601384.7, "Median Read Latency": 21991.8, "Tail Read Latency": 251918.5, "Median Update Latency": 22250.9, "Tail Update Latency": 254757.7}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 672509.3, "Median Read Latency": 6597.4, "Tail Read Latency": 231210.5, "Median Update Latency": 6618.7, "Tail Update Latency": 230082.2}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 618813.0, "Median Read Latency": 2470.6, "Tail Read Latency": 229954.7, "Median Update Latency": 448.3, "Tail Update Latency": 230106.4}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 399964.2, "Median Read Latency": 104.2, "Tail Read Latency": 500.7, "Median Update Latency": 109.3, "Tail Update Latency": 512.1}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200027.6, "Median Read Latency": 88.4, "Tail Read Latency": 242.7, "Median Update Latency": 95.4, "Tail Update Latency": 259.1}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200074.5, "Median Read Latency": 95.6, "Tail Read Latency": 174.1, "Median Update Latency": 100.6, "Tail Update Latency": 180.8}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 590638.3, "Median Read Latency": 20591.5, "Tail Read Latency": 245328.4, "Median Update Latency": 20026.6, "Tail Update Latency": 247076.2}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499880.6, "Median Read Latency": 6449.0, "Tail Read Latency": 220474.9, "Median Update Latency": 6244.1, "Tail Update Latency": 221755.8}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499651.8, "Median Read Latency": 3100.6, "Tail Read Latency": 224805.6, "Median Update Latency": 3231.5, "Tail Update Latency": 220308.2}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 679918.1, "Median Read Latency": 6117.7, "Tail Read Latency": 235370.8, "Median Update Latency": 5461.9, "Tail Update Latency": 235881.3}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 562603.6, "Median Read Latency": 17687.5, "Tail Read Latency": 249811.6, "Median Update Latency": 17850.1, "Tail Update Latency": 248409.0}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 498800.0, "Median Read Latency": 4824.4, "Tail Read Latency": 226001.1, "Median Update Latency": 3904.7, "Tail Update Latency": 225754.6}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300001.7, "Median Read Latency": 87.0, "Tail Read Latency": 177.7, "Median Update Latency": 91.8, "Tail Update Latency": 186.5}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200017.1, "Median Read Latency": 79.3, "Tail Read Latency": 128.7, "Median Update Latency": 84.2, "Tail Update Latency": 141.4}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400017.2, "Median Read Latency": 115.5, "Tail Read Latency": 1159.7, "Median Update Latency": 120.1, "Tail Update Latency": 989.5}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 99991.2, "Median Read Latency": 78.9, "Tail Read Latency": 121.9, "Median Update Latency": 84.3, "Tail Update Latency": 129.4}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200019.4, "Median Read Latency": 78.7, "Tail Read Latency": 127.4, "Median Update Latency": 83.4, "Tail Update Latency": 138.3}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 574746.3, "Median Read Latency": 10094.5, "Tail Read Latency": 229286.1, "Median Update Latency": 10163.4, "Tail Update Latency": 228392.7}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 666919.6, "Median Read Latency": 5602.6, "Tail Read Latency": 231151.9, "Median Update Latency": 7137.9, "Tail Update Latency": 230738.8}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300001.0, "Median Read Latency": 87.0, "Tail Read Latency": 178.4, "Median Update Latency": 92.1, "Tail Update Latency": 184.3}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400016.4, "Median Read Latency": 112.3, "Tail Read Latency": 861.1, "Median Update Latency": 119.0, "Tail Update Latency": 826.2}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 554192.0, "Median Read Latency": 14565.8, "Tail Read Latency": 251281.6, "Median Update Latency": 14621.9, "Tail Update Latency": 248503.4}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400004.9, "Median Read Latency": 112.6, "Tail Read Latency": 847.6, "Median Update Latency": 119.8, "Tail Update Latency": 780.5}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499926.2, "Median Read Latency": 202.8, "Tail Read Latency": 11364.8, "Median Update Latency": 225.1, "Tail Update Latency": 11373.2}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499827.3, "Median Read Latency": 6236.1, "Tail Read Latency": 219172.4, "Median Update Latency": 6311.9, "Tail Update Latency": 218648.6}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 299983.9, "Median Read Latency": 105.0, "Tail Read Latency": 266.1, "Median Update Latency": 110.0, "Tail Update Latency": 270.9}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 572297.0, "Median Read Latency": 7121.5, "Tail Read Latency": 229699.2, "Median Update Latency": 6446.6, "Tail Update Latency": 229921.5}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300049.7, "Median Read Latency": 100.0, "Tail Read Latency": 462.1, "Median Update Latency": 106.0, "Tail Update Latency": 495.3}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300036.2, "Median Read Latency": 97.4, "Tail Read Latency": 215.2, "Median Update Latency": 101.7, "Tail Update Latency": 222.3}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 592848.3, "Median Read Latency": 13499.3, "Tail Read Latency": 54109.4, "Median Update Latency": 13537.0, "Tail Update Latency": 67041.7}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 599841.2, "Median Read Latency": 13013.2, "Tail Read Latency": 219173.4, "Median Update Latency": 12913.4, "Tail Update Latency": 78396.6}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499623.8, "Median Read Latency": 3350.4, "Tail Read Latency": 224439.8, "Median Update Latency": 2713.4, "Tail Update Latency": 227667.6}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400044.7, "Median Read Latency": 114.6, "Tail Read Latency": 904.6, "Median Update Latency": 121.3, "Tail Update Latency": 889.9}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 99961.3, "Median Read Latency": 78.9, "Tail Read Latency": 121.4, "Median Update Latency": 84.1, "Tail Update Latency": 129.1}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 399956.7, "Median Read Latency": 111.9, "Tail Read Latency": 913.7, "Median Update Latency": 117.9, "Tail Update Latency": 812.8}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199987.8, "Median Read Latency": 88.7, "Tail Read Latency": 240.9, "Median Update Latency": 94.8, "Tail Update Latency": 263.6}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 578039.8, "Median Read Latency": 12007.4, "Tail Read Latency": 222983.8, "Median Update Latency": 12072.4, "Tail Update Latency": 223117.5}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 599235.9, "Median Read Latency": 12980.0, "Tail Read Latency": 89029.3, "Median Update Latency": 13117.6, "Tail Update Latency": 84983.3}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400003.6, "Median Read Latency": 104.1, "Tail Read Latency": 506.4, "Median Update Latency": 108.0, "Tail Update Latency": 499.3}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 667063.6, "Median Read Latency": 7072.8, "Tail Read Latency": 228047.4, "Median Update Latency": 6478.2, "Tail Update Latency": 226000.1}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 591587.5, "Median Read Latency": 13359.7, "Tail Read Latency": 50039.7, "Median Update Latency": 13361.1, "Tail Update Latency": 49096.8}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100046.8, "Median Read Latency": 93.6, "Tail Read Latency": 141.1, "Median Update Latency": 98.7, "Tail Update Latency": 149.6}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100035.3, "Median Read Latency": 93.2, "Tail Read Latency": 140.9, "Median Update Latency": 98.0, "Tail Update Latency": 149.2}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 579557.0, "Median Read Latency": 11146.3, "Tail Read Latency": 225592.5, "Median Update Latency": 11213.4, "Tail Update Latency": 227281.7}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499854.0, "Median Read Latency": 6874.0, "Tail Read Latency": 221957.8, "Median Update Latency": 6881.0, "Tail Update Latency": 223218.6}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199990.1, "Median Read Latency": 88.2, "Tail Read Latency": 238.6, "Median Update Latency": 95.8, "Tail Update Latency": 247.6}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 617227.7, "Median Read Latency": 17171.0, "Tail Read Latency": 249354.5, "Median Update Latency": 16888.9, "Tail Update Latency": 253622.6}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 616791.3, "Median Read Latency": 7783.5, "Tail Read Latency": 231012.6, "Median Update Latency": 7816.4, "Tail Update Latency": 229123.0}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100038.9, "Median Read Latency": 78.3, "Tail Read Latency": 119.7, "Median Update Latency": 83.5, "Tail Update Latency": 130.2}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 600648.1, "Median Read Latency": 19930.5, "Tail Read Latency": 252949.2, "Median Update Latency": 19774.3, "Tail Update Latency": 254769.5}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400077.3, "Median Read Latency": 115.5, "Tail Read Latency": 1407.8, "Median Update Latency": 119.4, "Tail Update Latency": 1102.4}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100003.5, "Median Read Latency": 85.9, "Tail Read Latency": 164.6, "Median Update Latency": 92.1, "Tail Update Latency": 171.8}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 99984.3, "Median Read Latency": 78.3, "Tail Read Latency": 120.5, "Median Update Latency": 83.7, "Tail Update Latency": 128.5}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 596507.7, "Median Read Latency": 13251.2, "Tail Read Latency": 73339.7, "Median Update Latency": 13352.3, "Tail Update Latency": 112626.7}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200030.3, "Median Read Latency": 94.9, "Tail Read Latency": 171.9, "Median Update Latency": 99.8, "Tail Update Latency": 185.1}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499890.3, "Median Read Latency": 6051.4, "Tail Read Latency": 220881.9, "Median Update Latency": 5816.4, "Tail Update Latency": 220025.4}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 617601.3, "Median Read Latency": 6576.4, "Tail Read Latency": 228343.0, "Median Update Latency": 6669.8, "Tail Update Latency": 229107.3}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 614289.3, "Median Read Latency": 27798.8, "Tail Read Latency": 249319.1, "Median Update Latency": 28052.1, "Tail Update Latency": 255922.6}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400085.5, "Median Read Latency": 108.2, "Tail Read Latency": 596.3, "Median Update Latency": 112.3, "Tail Update Latency": 580.3}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499937.2, "Median Read Latency": 246.8, "Tail Read Latency": 12044.7, "Median Update Latency": 370.5, "Tail Update Latency": 11969.0}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300032.5, "Median Read Latency": 99.9, "Tail Read Latency": 450.5, "Median Update Latency": 106.5, "Tail Update Latency": 506.6}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200065.4, "Median Read Latency": 78.6, "Tail Read Latency": 127.6, "Median Update Latency": 83.6, "Tail Update Latency": 136.7}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200023.6, "Median Read Latency": 95.8, "Tail Read Latency": 175.4, "Median Update Latency": 100.8, "Tail Update Latency": 181.3}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200018.8, "Median Read Latency": 88.0, "Tail Read Latency": 237.2, "Median Update Latency": 95.0, "Tail Update Latency": 241.3}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100003.9, "Median Read Latency": 92.9, "Tail Read Latency": 141.7, "Median Update Latency": 98.0, "Tail Update Latency": 149.9}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200027.7, "Median Read Latency": 78.8, "Tail Read Latency": 128.1, "Median Update Latency": 84.1, "Tail Update Latency": 138.5}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 573103.5, "Median Read Latency": 6813.3, "Tail Read Latency": 228646.3, "Median Update Latency": 6506.7, "Tail Update Latency": 228655.2}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 500002.4, "Median Read Latency": 165.8, "Tail Read Latency": 12247.6, "Median Update Latency": 153.3, "Tail Update Latency": 12160.1}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499939.4, "Median Read Latency": 236.9, "Tail Read Latency": 11686.2, "Median Update Latency": 1735.2, "Tail Update Latency": 11889.0}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100010.1, "Median Read Latency": 92.7, "Tail Read Latency": 140.3, "Median Update Latency": 98.4, "Tail Update Latency": 150.4}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200049.3, "Median Read Latency": 79.0, "Tail Read Latency": 128.4, "Median Update Latency": 83.8, "Tail Update Latency": 135.6}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499781.9, "Median Read Latency": 6814.0, "Tail Read Latency": 221736.9, "Median Update Latency": 6911.9, "Tail Update Latency": 208931.6}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 570152.2, "Median Read Latency": 5421.5, "Tail Read Latency": 227907.2, "Median Update Latency": 370.5, "Tail Update Latency": 226747.8}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 577102.5, "Median Read Latency": 10328.5, "Tail Read Latency": 229337.1, "Median Update Latency": 10259.6, "Tail Update Latency": 228080.1}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300011.4, "Median Read Latency": 104.6, "Tail Read Latency": 269.3, "Median Update Latency": 108.7, "Tail Update Latency": 273.6}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 679919.6, "Median Read Latency": 6524.6, "Tail Read Latency": 232330.6, "Median Update Latency": 6061.6, "Tail Update Latency": 230619.7}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 573394.8, "Median Read Latency": 847.7, "Tail Read Latency": 229024.9, "Median Update Latency": 383.2, "Tail Update Latency": 229457.9}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200085.1, "Median Read Latency": 88.4, "Tail Read Latency": 241.4, "Median Update Latency": 95.2, "Tail Update Latency": 234.6}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200047.0, "Median Read Latency": 94.9, "Tail Read Latency": 171.3, "Median Update Latency": 99.5, "Tail Update Latency": 172.3}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 559301.4, "Median Read Latency": 14825.1, "Tail Read Latency": 254187.0, "Median Update Latency": 14664.1, "Tail Update Latency": 254937.9}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100010.6, "Median Read Latency": 85.3, "Tail Read Latency": 162.3, "Median Update Latency": 91.4, "Tail Update Latency": 173.7}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 578074.7, "Median Read Latency": 11791.1, "Tail Read Latency": 223980.5, "Median Update Latency": 11864.7, "Tail Update Latency": 226155.9}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100001.6, "Median Read Latency": 85.8, "Tail Read Latency": 162.2, "Median Update Latency": 92.7, "Tail Update Latency": 171.3}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400002.4, "Median Read Latency": 116.0, "Tail Read Latency": 1275.3, "Median Update Latency": 120.4, "Tail Update Latency": 1950.4}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 99993.8, "Median Read Latency": 85.5, "Tail Read Latency": 165.2, "Median Update Latency": 91.9, "Tail Update Latency": 174.4}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300001.0, "Median Read Latency": 104.6, "Tail Read Latency": 264.9, "Median Update Latency": 109.1, "Tail Update Latency": 267.0}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300047.2, "Median Read Latency": 104.8, "Tail Read Latency": 270.7, "Median Update Latency": 108.8, "Tail Update Latency": 291.1}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 99984.4, "Median Read Latency": 92.5, "Tail Read Latency": 140.9, "Median Update Latency": 97.6, "Tail Update Latency": 151.5}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499211.4, "Median Read Latency": 4829.0, "Tail Read Latency": 227460.6, "Median Update Latency": 5820.2, "Tail Update Latency": 228629.5}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 399973.0, "Median Read Latency": 116.6, "Tail Read Latency": 1517.8, "Median Update Latency": 122.0, "Tail Update Latency": 2040.5}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 604492.9, "Median Read Latency": 22608.3, "Tail Read Latency": 250393.4, "Median Update Latency": 23071.2, "Tail Update Latency": 256668.7}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 611693.3, "Median Read Latency": 14027.6, "Tail Read Latency": 243356.0, "Median Update Latency": 14022.5, "Tail Update Latency": 250001.8}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200042.2, "Median Read Latency": 88.5, "Tail Read Latency": 243.2, "Median Update Latency": 94.9, "Tail Update Latency": 236.6}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 559704.6, "Median Read Latency": 14430.7, "Tail Read Latency": 250332.9, "Median Update Latency": 14418.1, "Tail Update Latency": 253148.7}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499223.6, "Median Read Latency": 4367.8, "Tail Read Latency": 226883.4, "Median Update Latency": 5244.0, "Tail Update Latency": 221016.3}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 568544.1, "Median Read Latency": 2365.9, "Tail Read Latency": 228962.5, "Median Update Latency": 4500.7, "Tail Update Latency": 230563.3}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100000.3, "Median Read Latency": 78.8, "Tail Read Latency": 119.8, "Median Update Latency": 84.1, "Tail Update Latency": 127.7}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499122.9, "Median Read Latency": 3607.2, "Tail Read Latency": 224649.4, "Median Update Latency": 3444.9, "Tail Update Latency": 225614.4}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400014.4, "Median Read Latency": 116.2, "Tail Read Latency": 1195.9, "Median Update Latency": 120.5, "Tail Update Latency": 1364.5}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199998.7, "Median Read Latency": 88.4, "Tail Read Latency": 243.1, "Median Update Latency": 94.8, "Tail Update Latency": 250.8}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 99995.7, "Median Read Latency": 86.0, "Tail Read Latency": 169.2, "Median Update Latency": 92.9, "Tail Update Latency": 184.7}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100033.6, "Median Read Latency": 92.2, "Tail Read Latency": 140.4, "Median Update Latency": 97.9, "Tail Update Latency": 150.8}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400016.4, "Median Read Latency": 107.1, "Tail Read Latency": 600.3, "Median Update Latency": 113.1, "Tail Update Latency": 614.8}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 596136.4, "Median Read Latency": 13397.2, "Tail Read Latency": 56097.2, "Median Update Latency": 13382.5, "Tail Update Latency": 52032.8}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 99991.6, "Median Read Latency": 78.8, "Tail Read Latency": 123.0, "Median Update Latency": 84.3, "Tail Update Latency": 129.0}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 577576.0, "Median Read Latency": 11304.9, "Tail Read Latency": 223373.9, "Median Update Latency": 11351.8, "Tail Update Latency": 222493.1}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 621059.2, "Median Read Latency": 836.3, "Tail Read Latency": 229758.4, "Median Update Latency": 5313.0, "Tail Update Latency": 229136.4}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200039.4, "Median Read Latency": 79.0, "Tail Read Latency": 128.4, "Median Update Latency": 83.6, "Tail Update Latency": 137.9}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 563457.7, "Median Read Latency": 16701.6, "Tail Read Latency": 249200.5, "Median Update Latency": 16861.1, "Tail Update Latency": 248788.2}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 399982.2, "Median Read Latency": 113.1, "Tail Read Latency": 881.3, "Median Update Latency": 119.4, "Tail Update Latency": 900.6}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 595465.4, "Median Read Latency": 13157.2, "Tail Read Latency": 75250.3, "Median Update Latency": 13247.2, "Tail Update Latency": 80003.1}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499959.8, "Median Read Latency": 262.9, "Tail Read Latency": 12395.7, "Median Update Latency": 295.8, "Tail Update Latency": 12350.6}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 589612.6, "Median Read Latency": 13433.9, "Tail Read Latency": 47674.3, "Median Update Latency": 13410.5, "Tail Update Latency": 57342.6}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 199957.2, "Median Read Latency": 80.1, "Tail Read Latency": 138.1, "Median Update Latency": 85.2, "Tail Update Latency": 143.2}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200034.1, "Median Read Latency": 94.9, "Tail Read Latency": 171.1, "Median Update Latency": 99.7, "Tail Update Latency": 180.0}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 500007.9, "Median Read Latency": 178.2, "Tail Read Latency": 12033.8, "Median Update Latency": 168.2, "Tail Update Latency": 12001.3}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 497856.1, "Median Read Latency": 4145.0, "Tail Read Latency": 226546.5, "Median Update Latency": 3441.9, "Tail Update Latency": 227252.1}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300033.4, "Median Read Latency": 104.2, "Tail Read Latency": 268.6, "Median Update Latency": 109.9, "Tail Update Latency": 279.2}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 568855.7, "Median Read Latency": 9605.0, "Tail Read Latency": 232225.5, "Median Update Latency": 9612.0, "Tail Update Latency": 232598.3}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200009.7, "Median Read Latency": 88.0, "Tail Read Latency": 239.6, "Median Update Latency": 94.3, "Tail Update Latency": 241.1}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 570228.2, "Median Read Latency": 6570.1, "Tail Read Latency": 225938.3, "Median Update Latency": 6319.2, "Tail Update Latency": 221840.9}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 299969.9, "Median Read Latency": 90.6, "Tail Read Latency": 349.4, "Median Update Latency": 96.7, "Tail Update Latency": 363.3}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 620657.5, "Median Read Latency": 5477.7, "Tail Read Latency": 231316.9, "Median Update Latency": 3529.9, "Tail Update Latency": 232065.4}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 99976.6, "Median Read Latency": 92.6, "Tail Read Latency": 140.5, "Median Update Latency": 97.5, "Tail Update Latency": 149.4}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400042.8, "Median Read Latency": 117.3, "Tail Read Latency": 1777.2, "Median Update Latency": 123.8, "Tail Update Latency": 1476.7}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100038.9, "Median Read Latency": 79.2, "Tail Read Latency": 122.3, "Median Update Latency": 85.3, "Tail Update Latency": 130.3}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 680848.2, "Median Read Latency": 6171.2, "Tail Read Latency": 227595.7, "Median Update Latency": 6211.2, "Tail Update Latency": 226364.4}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400014.0, "Median Read Latency": 113.7, "Tail Read Latency": 861.3, "Median Update Latency": 120.8, "Tail Update Latency": 910.6}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 299995.0, "Median Read Latency": 99.8, "Tail Read Latency": 460.1, "Median Update Latency": 105.9, "Tail Update Latency": 467.5}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499364.1, "Median Read Latency": 2224.1, "Tail Read Latency": 226096.6, "Median Update Latency": 3068.3, "Tail Update Latency": 225018.1}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 500025.6, "Median Read Latency": 313.0, "Tail Read Latency": 11828.0, "Median Update Latency": 321.6, "Tail Update Latency": 11853.5}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 620927.4, "Median Read Latency": 24535.1, "Tail Read Latency": 257784.9, "Median Update Latency": 24537.7, "Tail Update Latency": 255864.2}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 602632.4, "Median Read Latency": 13072.1, "Tail Read Latency": 61232.2, "Median Update Latency": 13168.5, "Tail Update Latency": 92245.5}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199927.4, "Median Read Latency": 89.4, "Tail Read Latency": 245.8, "Median Update Latency": 95.9, "Tail Update Latency": 254.7}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 595090.7, "Median Read Latency": 16183.6, "Tail Read Latency": 247979.2, "Median Update Latency": 16252.1, "Tail Update Latency": 250173.3}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 618956.2, "Median Read Latency": 6020.9, "Tail Read Latency": 229495.0, "Median Update Latency": 415.4, "Tail Update Latency": 230616.9}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 399956.4, "Median Read Latency": 104.6, "Tail Read Latency": 502.8, "Median Update Latency": 109.0, "Tail Update Latency": 496.5}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 299923.6, "Median Read Latency": 88.0, "Tail Read Latency": 180.5, "Median Update Latency": 93.2, "Tail Update Latency": 186.6}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300010.4, "Median Read Latency": 99.9, "Tail Read Latency": 441.2, "Median Update Latency": 105.4, "Tail Update Latency": 423.4}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300014.0, "Median Read Latency": 97.4, "Tail Read Latency": 219.0, "Median Update Latency": 101.9, "Tail Update Latency": 236.6}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499459.5, "Median Read Latency": 4253.1, "Tail Read Latency": 224248.7, "Median Update Latency": 3402.1, "Tail Update Latency": 224262.8}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300062.5, "Median Read Latency": 91.6, "Tail Read Latency": 357.4, "Median Update Latency": 98.9, "Tail Update Latency": 364.4}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 678611.1, "Median Read Latency": 6160.8, "Tail Read Latency": 229544.6, "Median Update Latency": 5851.0, "Tail Update Latency": 229411.7}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 578256.9, "Median Read Latency": 11180.9, "Tail Read Latency": 225596.4, "Median Update Latency": 11147.2, "Tail Update Latency": 222763.9}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400003.0, "Median Read Latency": 116.8, "Tail Read Latency": 1089.4, "Median Update Latency": 122.7, "Tail Update Latency": 831.8}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300032.2, "Median Read Latency": 90.3, "Tail Read Latency": 348.7, "Median Update Latency": 96.4, "Tail Update Latency": 350.9}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200064.6, "Median Read Latency": 78.7, "Tail Read Latency": 128.0, "Median Update Latency": 84.5, "Tail Update Latency": 138.0}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 399974.1, "Median Read Latency": 115.0, "Tail Read Latency": 1410.0, "Median Update Latency": 120.0, "Tail Update Latency": 1261.5}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100010.9, "Median Read Latency": 85.4, "Tail Read Latency": 160.3, "Median Update Latency": 91.7, "Tail Update Latency": 173.0}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400024.5, "Median Read Latency": 106.4, "Tail Read Latency": 505.2, "Median Update Latency": 111.2, "Tail Update Latency": 491.0}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300011.7, "Median Read Latency": 87.3, "Tail Read Latency": 178.7, "Median Update Latency": 92.3, "Tail Update Latency": 184.7}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 99988.9, "Median Read Latency": 93.3, "Tail Read Latency": 140.6, "Median Update Latency": 98.0, "Tail Update Latency": 150.8}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 299993.4, "Median Read Latency": 87.5, "Tail Read Latency": 181.0, "Median Update Latency": 93.2, "Tail Update Latency": 182.8}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 617912.5, "Median Read Latency": 25810.6, "Tail Read Latency": 252464.1, "Median Update Latency": 25674.3, "Tail Update Latency": 251736.1}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 625701.7, "Median Read Latency": 22503.9, "Tail Read Latency": 259542.7, "Median Update Latency": 22468.4, "Tail Update Latency": 267154.9}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499785.2, "Median Read Latency": 6496.3, "Tail Read Latency": 222659.0, "Median Update Latency": 6234.7, "Tail Update Latency": 222262.0}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 572021.8, "Median Read Latency": 9548.6, "Tail Read Latency": 233766.8, "Median Update Latency": 9524.3, "Tail Update Latency": 236551.7}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200009.0, "Median Read Latency": 95.4, "Tail Read Latency": 175.8, "Median Update Latency": 100.7, "Tail Update Latency": 190.9}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200027.1, "Median Read Latency": 78.6, "Tail Read Latency": 126.6, "Median Update Latency": 83.1, "Tail Update Latency": 129.1}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 557369.8, "Median Read Latency": 16483.1, "Tail Read Latency": 253742.7, "Median Update Latency": 16400.4, "Tail Update Latency": 255241.9}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499805.4, "Median Read Latency": 6508.7, "Tail Read Latency": 221536.4, "Median Update Latency": 6509.6, "Tail Update Latency": 223234.9}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300035.4, "Median Read Latency": 100.2, "Tail Read Latency": 457.3, "Median Update Latency": 106.8, "Tail Update Latency": 525.7}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300050.2, "Median Read Latency": 96.4, "Tail Read Latency": 213.9, "Median Update Latency": 100.7, "Tail Update Latency": 220.0}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499885.9, "Median Read Latency": 7063.8, "Tail Read Latency": 214747.3, "Median Update Latency": 6995.4, "Tail Update Latency": 219631.2}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 609226.7, "Median Read Latency": 14494.9, "Tail Read Latency": 237210.7, "Median Update Latency": 14428.8, "Tail Update Latency": 235805.5}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 569466.3, "Median Read Latency": 511.4, "Tail Read Latency": 226153.5, "Median Update Latency": 364.6, "Tail Update Latency": 224980.5}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499908.5, "Median Read Latency": 5780.3, "Tail Read Latency": 221614.4, "Median Update Latency": 5583.2, "Tail Update Latency": 223730.2}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 564939.5, "Median Read Latency": 9668.2, "Tail Read Latency": 232075.5, "Median Update Latency": 9684.1, "Tail Update Latency": 233548.1}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100060.1, "Median Read Latency": 78.8, "Tail Read Latency": 121.0, "Median Update Latency": 84.6, "Tail Update Latency": 130.7}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199988.8, "Median Read Latency": 88.0, "Tail Read Latency": 242.2, "Median Update Latency": 95.1, "Tail Update Latency": 263.1}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 619177.1, "Median Read Latency": 5783.8, "Tail Read Latency": 230993.8, "Median Update Latency": 5783.0, "Tail Update Latency": 228857.0}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 591662.2, "Median Read Latency": 13386.9, "Tail Read Latency": 50085.4, "Median Update Latency": 13368.7, "Tail Update Latency": 44908.7}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100031.6, "Median Read Latency": 78.6, "Tail Read Latency": 120.5, "Median Update Latency": 84.0, "Tail Update Latency": 128.7}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 578665.8, "Median Read Latency": 12495.4, "Tail Read Latency": 71938.0, "Median Update Latency": 12460.8, "Tail Update Latency": 134007.8}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 593825.5, "Median Read Latency": 13381.8, "Tail Read Latency": 42648.3, "Median Update Latency": 13428.1, "Tail Update Latency": 52034.5}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400058.1, "Median Read Latency": 107.0, "Tail Read Latency": 542.8, "Median Update Latency": 112.4, "Tail Update Latency": 534.6}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100023.5, "Median Read Latency": 86.3, "Tail Read Latency": 167.1, "Median Update Latency": 93.4, "Tail Update Latency": 177.1}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 500013.8, "Median Read Latency": 427.0, "Tail Read Latency": 11978.9, "Median Update Latency": 1271.9, "Tail Update Latency": 12021.7}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200028.8, "Median Read Latency": 79.0, "Tail Read Latency": 128.9, "Median Update Latency": 84.0, "Tail Update Latency": 135.6}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 622974.3, "Median Read Latency": 25949.6, "Tail Read Latency": 253985.8, "Median Update Latency": 26016.2, "Tail Update Latency": 256999.9}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 498679.6, "Median Read Latency": 2696.6, "Tail Read Latency": 224780.0, "Median Update Latency": 3725.6, "Tail Update Latency": 225606.8}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300005.0, "Median Read Latency": 87.2, "Tail Read Latency": 181.0, "Median Update Latency": 91.9, "Tail Update Latency": 190.0}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100054.4, "Median Read Latency": 78.9, "Tail Read Latency": 121.5, "Median Update Latency": 84.5, "Tail Update Latency": 128.5}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 594765.9, "Median Read Latency": 13457.0, "Tail Read Latency": 57014.3, "Median Update Latency": 13535.6, "Tail Update Latency": 62271.0}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100045.0, "Median Read Latency": 94.0, "Tail Read Latency": 147.8, "Median Update Latency": 98.6, "Tail Update Latency": 155.2}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 570755.1, "Median Read Latency": 1747.1, "Tail Read Latency": 229720.5, "Median Update Latency": 376.1, "Tail Update Latency": 230143.6}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400028.9, "Median Read Latency": 113.5, "Tail Read Latency": 883.0, "Median Update Latency": 119.6, "Tail Update Latency": 930.9}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499161.2, "Median Read Latency": 4035.8, "Tail Read Latency": 226041.1, "Median Update Latency": 4145.7, "Tail Update Latency": 227144.8}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200004.9, "Median Read Latency": 79.6, "Tail Read Latency": 128.8, "Median Update Latency": 84.8, "Tail Update Latency": 138.1}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499892.3, "Median Read Latency": 6412.0, "Tail Read Latency": 220894.5, "Median Update Latency": 6356.1, "Tail Update Latency": 222058.1}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 569172.7, "Median Read Latency": 1014.0, "Tail Read Latency": 227912.8, "Median Update Latency": 299.3, "Tail Update Latency": 226796.7}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 592497.5, "Median Read Latency": 13366.1, "Tail Read Latency": 50141.0, "Median Update Latency": 13458.6, "Tail Update Latency": 64470.4}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400035.6, "Median Read Latency": 114.4, "Tail Read Latency": 884.8, "Median Update Latency": 121.0, "Tail Update Latency": 883.7}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499062.3, "Median Read Latency": 2907.3, "Tail Read Latency": 226259.2, "Median Update Latency": 3329.0, "Tail Update Latency": 226354.8}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300127.5, "Median Read Latency": 104.7, "Tail Read Latency": 266.2, "Median Update Latency": 109.1, "Tail Update Latency": 269.6}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300046.9, "Median Read Latency": 88.4, "Tail Read Latency": 182.9, "Median Update Latency": 93.4, "Tail Update Latency": 188.3}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 585332.5, "Median Read Latency": 13581.7, "Tail Read Latency": 41485.9, "Median Update Latency": 13562.4, "Tail Update Latency": 42725.2}]] -
doc/theses/thierry_delisle_PhD/thesis/data/memcd.updt
r12df6fe r4520b77e 1 [[" fibre", "memcached fibre", {"Update Ratio": 30, "Actual QPS": 629656.2, "Average Read Latency": 27319.8, "Median Read Latency": 22952.7, "Tail Read Latency": 246885.9, "Average Update Latency": 27991.9, "Median Update Latency": 23033.7, "Tail Update Latency": 252283.9}], ["fibre", "memcached fibre", {"Update Ratio": 20, "Actual QPS": 648887.0, "Average Read Latency": 30926.5, "Median Read Latency": 26547.5, "Tail Read Latency": 245170.2, "Average Update Latency": 31078.3, "Median Update Latency": 26466.1, "Tail Update Latency": 245702.3}], ["fibre", "memcached fibre", {"Update Ratio": 20, "Actual QPS": 659773.8, "Average Read Latency": 25337.6, "Median Read Latency": 20743.6, "Tail Read Latency": 250895.8, "Average Update Latency": 25691.3, "Median Update Latency": 20786.0, "Tail Update Latency": 252716.3}], ["forall", "memcached forall", {"Update Ratio": 20, "Actual QPS": 593242.6, "Average Read Latency": 16959.6, "Median Read Latency": 13191.5, "Tail Read Latency": 35809.5, "Average Update Latency": 17359.4, "Median Update Latency": 13176.7, "Tail Update Latency": 39772.7}], ["fibre", "memcached fibre", {"Update Ratio": 30, "Actual QPS": 632062.8, "Average Read Latency": 32964.0, "Median Read Latency": 28637.6, "Tail Read Latency": 239904.1, "Average Update Latency": 33330.3, "Median Update Latency": 28653.8, "Tail Update Latency": 245537.7}], ["vanilla", "memcached vanilla", {"Update Ratio": 30, "Actual QPS": 739300.3, "Average Read Latency": 24611.8, "Median Read Latency": 15550.2, "Tail Read Latency": 250448.4, "Average Update Latency": 24234.4, "Median Update Latency": 15504.0, "Tail Update Latency": 249174.1}], ["fibre", "memcached fibre", {"Update Ratio": 30, "Actual QPS": 635540.7, "Average Read Latency": 26437.0, "Median Read Latency": 21871.7, "Tail Read Latency": 249677.1, "Average Update Latency": 27007.6, "Median Update Latency": 21919.5, "Tail Update Latency": 254080.7}], ["fibre", "memcached fibre", {"Update Ratio": 20, "Actual QPS": 662431.5, "Average Read Latency": 28397.9, "Median Read Latency": 22980.7, "Tail Read Latency": 252279.7, "Average Update Latency": 28848.1, "Median Update Latency": 22954.0, "Tail Update Latency": 256070.8}], ["vanilla", "memcached vanilla", {"Update Ratio": 5, "Actual QPS": 771468.6, "Average Read Latency": 21535.3, "Median Read Latency": 11447.2, "Tail Read Latency": 239536.3, "Average Update Latency": 21420.0, "Median Update Latency": 11457.2, "Tail Update Latency": 239594.8}], ["fibre", "memcached fibre", {"Update Ratio": 10, "Actual QPS": 671082.4, "Average Read Latency": 30220.6, "Median Read Latency": 24900.7, "Tail Read Latency": 254034.5, "Average Update Latency": 30377.6, "Median Update Latency": 24913.7, "Tail Update Latency": 255033.5}], ["fibre", "memcached fibre", {"Update Ratio": 10, "Actual QPS": 672847.0, "Average Read Latency": 31129.7, "Median Read Latency": 27301.0, "Tail Read Latency": 92314.4, "Average Update Latency": 31493.5, "Median Update Latency": 27378.8, "Tail Update Latency": 222712.9}], ["fibre", "memcached fibre", {"Update Ratio": 5, "Actual QPS": 684419.5, "Average Read Latency": 34114.6, "Median Read Latency": 29765.8, "Tail Read Latency": 257535.6, "Average Update Latency": 34848.1, "Median Update Latency": 29566.2, "Tail Update Latency": 264376.6}], ["vanilla", "memcached vanilla", {"Update Ratio": 10, "Actual QPS": 764493.6, "Average Read Latency": 22398.2, "Median Read Latency": 12207.4, "Tail Read Latency": 242402.3, "Average Update Latency": 22038.2, "Median Update Latency": 12234.9, "Tail Update Latency": 240284.4}], ["fibre", "memcached fibre", {"Update Ratio": 40, "Actual QPS": 608626.8, "Average Read Latency": 30286.6, "Median Read Latency": 25633.0, "Tail Read Latency": 240653.7, "Average Update Latency": 30652.8, "Median Update Latency": 25603.9, "Tail Update Latency": 246478.7}], ["vanilla", "memcached vanilla", {"Update Ratio": 50, "Actual QPS": 686252.6, "Average Read Latency": 31374.4, "Median Read Latency": 30501.6, "Tail Read Latency": 63738.2, "Average Update Latency": 31347.0, "Median Update Latency": 30428.1, "Tail Update Latency": 63812.1}], ["forall", "memcached forall", {"Update Ratio": 10, "Actual QPS": 595821.8, "Average Read Latency": 16941.1, "Median Read Latency": 13280.7, "Tail Read Latency": 36355.4, "Average Update Latency": 17445.3, "Median Update Latency": 13307.1, "Tail Update Latency": 39244.2}], ["forall", "memcached forall", {"Update Ratio": 15, "Actual QPS": 590278.9, "Average Read Latency": 16989.3, "Median Read Latency": 13312.9, "Tail Read Latency": 37996.6, "Average Update Latency": 17547.9, "Median Update Latency": 13344.8, "Tail Update Latency": 39578.1}], ["fibre", "memcached fibre", {"Update Ratio": 40, "Actual QPS": 619433.4, "Average Read Latency": 30159.8, "Median Read Latency": 25357.0, "Tail Read Latency": 251306.7, "Average Update Latency": 30411.0, "Median Update Latency": 25361.7, "Tail Update Latency": 254805.8}], ["forall", "memcached forall", {"Update Ratio": 5, "Actual QPS": 593761.3, "Average Read Latency": 16959.6, "Median Read Latency": 13400.4, "Tail Read Latency": 47335.2, "Average Update Latency": 17053.7, "Median Update Latency": 13376.7, "Tail Update Latency": 42239.3}], ["forall", "memcached forall", {"Update Ratio": 10, "Actual QPS": 597040.0, "Average Read Latency": 17352.0, "Median Read Latency": 12940.7, "Tail Read Latency": 65486.0, "Average Update Latency": 17545.6, "Median Update Latency": 12969.6, "Tail Update Latency": 92147.2}], ["forall", "memcached forall", {"Update Ratio": 40, "Actual QPS": 587327.3, "Average Read Latency": 14420.7, "Median Read Latency": 13053.8, "Tail Read Latency": 28889.7, "Average Update Latency": 14766.7, "Median Update Latency": 13061.8, "Tail Update Latency": 29130.7}], ["fibre", "memcached fibre", {"Update Ratio": 50, "Actual QPS": 619688.5, "Average Read Latency": 26716.2, "Median Read Latency": 22403.5, "Tail Read Latency": 245740.0, "Average Update Latency": 27090.3, "Median Update Latency": 22366.9, "Tail Update Latency": 248135.7}], ["vanilla", "memcached vanilla", {"Update Ratio": 5, "Actual QPS": 765840.6, "Average Read Latency": 22396.6, "Median Read Latency": 12223.6, "Tail Read Latency": 242722.6, "Average Update Latency": 23164.3, "Median Update Latency": 12122.3, "Tail Update Latency": 246732.7}], ["vanilla", "memcached vanilla", {"Update Ratio": 15, "Actual QPS": 754242.6, "Average Read Latency": 22345.6, "Median Read Latency": 13000.6, "Tail Read Latency": 242559.2, "Average Update Latency": 21803.8, "Median Update Latency": 13027.6, "Tail Update Latency": 240360.2}], ["vanilla", "memcached vanilla", {"Update Ratio": 20, "Actual QPS": 750259.1, "Average Read Latency": 22937.1, "Median Read Latency": 13719.7, "Tail Read Latency": 246024.2, "Average Update Latency": 23195.7, "Median Update Latency": 13716.5, "Tail Update Latency": 247084.9}], ["vanilla", "memcached vanilla", {"Update Ratio": 10, "Actual QPS": 761986.1, "Average Read Latency": 21767.5, "Median Read Latency": 12522.9, "Tail Read Latency": 240214.6, "Average Update Latency": 21621.3, "Median Update Latency": 12541.2, "Tail Update Latency": 239749.6}], ["forall", "memcached forall", {"Update Ratio": 50, "Actual QPS": 566851.8, "Average Read Latency": 14265.5, "Median Read Latency": 13544.1, "Tail Read Latency": 27746.8, "Average Update Latency": 14507.3, "Median Update Latency": 13553.5, "Tail Update Latency": 28471.6}], ["vanilla", "memcached vanilla", {"Update Ratio": 50, "Actual QPS": 708028.0, "Average Read Latency": 29145.3, "Median Read Latency": 23983.1, "Tail Read Latency": 237401.9, "Average Update Latency": 29124.0, "Median Update Latency": 24027.6, "Tail Update Latency": 235432.4}], ["forall", "memcached forall", {"Update Ratio": 5, "Actual QPS": 597227.5, "Average Read Latency": 17511.6, "Median Read Latency": 13228.9, "Tail Read Latency": 58767.4, "Average Update Latency": 18215.1, "Median Update Latency": 13249.5, "Tail Update Latency": 81599.3}], ["fibre", "memcached fibre", {"Update Ratio": 50, "Actual QPS": 599839.9, "Average Read Latency": 26555.1, "Median Read Latency": 21691.3, "Tail Read Latency": 245066.2, "Average Update Latency": 27096.6, "Median Update Latency": 21758.1, "Tail Update Latency": 248899.9}], ["forall", "memcached forall", {"Update Ratio": 15, "Actual QPS": 594852.2, "Average Read Latency": 17337.0, "Median Read Latency": 13137.9, "Tail Read Latency": 37979.0, "Average Update Latency": 17635.4, "Median Update Latency": 13176.4, "Tail Update Latency": 48130.7}], ["vanilla", "memcached vanilla", {"Update Ratio": 40, "Actual QPS": 718833.1, "Average Read Latency": 27863.0, "Median Read Latency": 22526.4, "Tail Read Latency": 245434.6, "Average Update Latency": 27699.5, "Median Update Latency": 22539.8, "Tail Update Latency": 243109.8}], ["fibre", "memcached fibre", {"Update Ratio": 40, "Actual QPS": 628507.6, "Average Read Latency": 28670.7, "Median Read Latency": 24369.4, "Tail Read Latency": 249240.9, "Average Update Latency": 28858.2, "Median Update Latency": 24429.6, "Tail Update Latency": 249891.7}], ["fibre", "memcached fibre", {"Update Ratio": 10, "Actual QPS": 666251.9, "Average Read Latency": 28297.4, "Median Read Latency": 24552.7, "Tail Read Latency": 76372.4, "Average Update Latency": 28566.0, "Median Update Latency": 24466.9, "Tail Update Latency": 90321.1}], ["vanilla", "memcached vanilla", {"Update Ratio": 20, "Actual QPS": 752354.4, "Average Read Latency": 23536.8, "Median Read Latency": 13936.7, "Tail Read Latency": 248639.8, "Average Update Latency": 23798.2, "Median Update Latency": 14040.6, "Tail Update Latency": 247961.7}], ["forall", "memcached forall", {"Update Ratio": 50, "Actual QPS": 565950.3, "Average Read Latency": 14232.6, "Median Read Latency": 13373.6, "Tail Read Latency": 26848.2, "Average Update Latency": 14466.4, "Median Update Latency": 13384.9, "Tail Update Latency": 27958.6}], ["fibre", "memcached fibre", {"Update Ratio": 15, "Actual QPS": 674044.3, "Average Read Latency": 29547.1, "Median Read Latency": 23376.7, "Tail Read Latency": 257169.3, "Average Update Latency": 30137.2, "Median Update Latency": 23423.1, "Tail Update Latency": 262729.5}], ["forall", "memcached forall", {"Update Ratio": 10, "Actual QPS": 589565.9, "Average Read Latency": 16941.2, "Median Read Latency": 13278.3, "Tail Read Latency": 40040.0, "Average Update Latency": 17308.7, "Median Update Latency": 13285.2, "Tail Update Latency": 44209.1}], ["fibre", "memcached fibre", {"Update Ratio": 50, "Actual QPS": 609521.3, "Average Read Latency": 31260.8, "Median Read Latency": 26017.5, "Tail Read Latency": 255078.0, "Average Update Latency": 31635.9, "Median Update Latency": 26086.2, "Tail Update Latency": 256862.8}], ["vanilla", "memcached vanilla", {"Update Ratio": 5, "Actual QPS": 767111.6, "Average Read Latency": 21590.9, "Median Read Latency": 11566.7, "Tail Read Latency": 239628.7, "Average Update Latency": 21399.7, "Median Update Latency": 11585.0, "Tail Update Latency": 239823.6}], ["forall", "memcached forall", {"Update Ratio": 5, "Actual QPS": 599244.3, "Average Read Latency": 17045.5, "Median Read Latency": 13243.6, "Tail Read Latency": 48650.1, "Average Update Latency": 16998.4, "Median Update Latency": 13280.5, "Tail Update Latency": 49466.4}], ["forall", "memcached forall", {"Update Ratio": 15, "Actual QPS": 592856.6, "Average Read Latency": 16172.7, "Median Read Latency": 13278.0, "Tail Read Latency": 31872.0, "Average Update Latency": 16571.3, "Median Update Latency": 13296.0, "Tail Update Latency": 33983.7}], ["fibre", "memcached fibre", {"Update Ratio": 15, "Actual QPS": 662998.4, "Average Read Latency": 26400.5, "Median Read Latency": 22183.5, "Tail Read Latency": 247443.9, "Average Update Latency": 26822.0, "Median Update Latency": 22267.6, "Tail Update Latency": 250068.2}], ["vanilla", "memcached vanilla", {"Update Ratio": 20, "Actual QPS": 748345.8, "Average Read Latency": 23985.2, "Median Read Latency": 14548.6, "Tail Read Latency": 249111.8, "Average Update Latency": 24053.4, "Median Update Latency": 14609.1, "Tail Update Latency": 249310.7}], ["fibre", "memcached fibre", {"Update Ratio": 5, "Actual QPS": 685611.1, "Average Read Latency": 33820.8, "Median Read Latency": 29843.9, "Tail Read Latency": 249003.5, "Average Update Latency": 34612.2, "Median Update Latency": 29937.2, "Tail Update Latency": 265505.6}], ["fibre", "memcached fibre", {"Update Ratio": 5, "Actual QPS": 685539.2, "Average Read Latency": 37016.3, "Median Read Latency": 32225.9, "Tail Read Latency": 263388.6, "Average Update Latency": 37284.7, "Median Update Latency": 32289.9, "Tail Update Latency": 262337.2}], ["forall", "memcached forall", {"Update Ratio": 30, "Actual QPS": 591380.5, "Average Read Latency": 17979.5, "Median Read Latency": 13499.7, "Tail Read Latency": 33487.1, "Average Update Latency": 18303.9, "Median Update Latency": 13523.5, "Tail Update Latency": 38051.2}], ["forall", "memcached forall", {"Update Ratio": 20, "Actual QPS": 593734.3, "Average Read Latency": 16688.8, "Median Read Latency": 13365.9, "Tail Read Latency": 30994.1, "Average Update Latency": 16892.2, "Median Update Latency": 13374.8, "Tail Update Latency": 32244.0}], ["vanilla", "memcached vanilla", {"Update Ratio": 10, "Actual QPS": 761087.3, "Average Read Latency": 22618.8, "Median Read Latency": 12952.0, "Tail Read Latency": 244425.0, "Average Update Latency": 22239.2, "Median Update Latency": 12910.4, "Tail Update Latency": 241797.4}], ["vanilla", "memcached vanilla", {"Update Ratio": 50, "Actual QPS": 689123.1, "Average Read Latency": 31148.1, "Median Read Latency": 29977.4, "Tail Read Latency": 65004.9, "Average Update Latency": 31122.1, "Median Update Latency": 30043.8, "Tail Update Latency": 64488.0}], ["forall", "memcached forall", {"Update Ratio": 20, "Actual QPS": 586549.0, "Average Read Latency": 15286.4, "Median Read Latency": 13246.3, "Tail Read Latency": 30564.7, "Average Update Latency": 16016.0, "Median Update Latency": 13256.5, "Tail Update Latency": 32001.1}], ["vanilla", "memcached vanilla", {"Update Ratio": 15, "Actual QPS": 759348.9, "Average Read Latency": 22876.0, "Median Read Latency": 12931.3, "Tail Read Latency": 244584.8, "Average Update Latency": 22772.0, "Median Update Latency": 12963.1, "Tail Update Latency": 244540.3}], ["forall", "memcached forall", {"Update Ratio": 30, "Actual QPS": 590171.0, "Average Read Latency": 17542.8, "Median Read Latency": 13058.2, "Tail Read Latency": 37919.8, "Average Update Latency": 17986.1, "Median Update Latency": 13075.7, "Tail Update Latency": 47181.7}], ["vanilla", "memcached vanilla", {"Update Ratio": 30, "Actual QPS": 736755.8, "Average Read Latency": 25724.9, "Median Read Latency": 17214.0, "Tail Read Latency": 251561.3, "Average Update Latency": 25647.4, "Median Update Latency": 17123.3, "Tail Update Latency": 251594.7}], ["forall", "memcached forall", {"Update Ratio": 40, "Actual QPS": 594613.0, "Average Read Latency": 15627.5, "Median Read Latency": 13012.1, "Tail Read Latency": 29321.6, "Average Update Latency": 15866.2, "Median Update Latency": 13034.3, "Tail Update Latency": 29997.2}], ["vanilla", "memcached vanilla", {"Update Ratio": 15, "Actual QPS": 753799.1, "Average Read Latency": 22983.2, "Median Read Latency": 13361.2, "Tail Read Latency": 245494.2, "Average Update Latency": 23014.0, "Median Update Latency": 13407.2, "Tail Update Latency": 245242.0}], ["fibre", "memcached fibre", {"Update Ratio": 15, "Actual QPS": 659243.2, "Average Read Latency": 27600.4, "Median Read Latency": 23642.4, "Tail Read Latency": 75626.1, "Average Update Latency": 28038.3, "Median Update Latency": 23443.4, "Tail Update Latency": 135871.1}], ["forall", "memcached forall", {"Update Ratio": 50, "Actual QPS": 583513.8, "Average Read Latency": 15354.0, "Median Read Latency": 13050.8, "Tail Read Latency": 29195.2, "Average Update Latency": 15693.2, "Median Update Latency": 13051.2, "Tail Update Latency": 29477.5}], ["forall", "memcached forall", {"Update Ratio": 40, "Actual QPS": 588410.8, "Average Read Latency": 17002.9, "Median Read Latency": 13316.4, "Tail Read Latency": 29604.6, "Average Update Latency": 17357.7, "Median Update Latency": 13320.0, "Tail Update Latency": 31441.1}], ["vanilla", "memcached vanilla", {"Update Ratio": 40, "Actual QPS": 716262.2, "Average Read Latency": 28975.9, "Median Read Latency": 25327.0, "Tail Read Latency": 228397.2, "Average Update Latency": 29063.3, "Median Update Latency": 25431.2, "Tail Update Latency": 228666.6}], ["vanilla", "memcached vanilla", {"Update Ratio": 30, "Actual QPS": 742447.9, "Average Read Latency": 24479.8, "Median Read Latency": 14438.4, "Tail Read Latency": 251570.6, "Average Update Latency": 24354.2, "Median Update Latency": 14496.9, "Tail Update Latency": 250835.7}], ["forall", "memcached forall", {"Update Ratio": 30, "Actual QPS": 583473.1, "Average Read Latency": 15821.5, "Median Read Latency": 13189.8, "Tail Read Latency": 30907.0, "Average Update Latency": 16668.2, "Median Update Latency": 13208.3, "Tail Update Latency": 33617.6}], ["vanilla", "memcached vanilla", {"Update Ratio": 40, "Actual QPS": 735416.8, "Average Read Latency": 24244.3, "Median Read Latency": 13281.7, "Tail Read Latency": 254833.8, "Average Update Latency": 24481.9, "Median Update Latency": 13318.5, "Tail Update Latency": 254867.7}]]1 [["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 567470.6, "Average Read Latency": 14757.1, "Median Read Latency": 7477.0, "Tail Read Latency": 236941.0, "Average Update Latency": 14345.5, "Median Update Latency": 7563.3, "Tail Update Latency": 236117.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 545164.9, "Average Read Latency": 14184.2, "Median Read Latency": 13746.3, "Tail Read Latency": 26383.2, "Average Update Latency": 14313.3, "Median Update Latency": 13759.5, "Tail Update Latency": 27412.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 399915.5, "Average Read Latency": 161.5, "Median Read Latency": 119.7, "Tail Read Latency": 524.6, "Average Update Latency": 166.2, "Median Update Latency": 123.6, "Tail Update Latency": 523.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 400054.6, "Average Read Latency": 176.7, "Median Read Latency": 121.6, "Tail Read Latency": 581.5, "Average Update Latency": 178.2, "Median Update Latency": 125.6, "Tail Update Latency": 573.5}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 200011.1, "Average Read Latency": 110.6, "Median Read Latency": 94.9, "Tail Read Latency": 183.3, "Average Update Latency": 111.7, "Median Update Latency": 97.8, "Tail Update Latency": 185.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 589336.9, "Average Read Latency": 23216.9, "Median Read Latency": 13615.3, "Tail Read Latency": 260818.9, "Average Update Latency": 22809.6, "Median Update Latency": 13626.8, "Tail Update Latency": 256876.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 100025.8, "Average Read Latency": 89.6, "Median Read Latency": 86.9, "Tail Read Latency": 133.5, "Average Update Latency": 94.0, "Median Update Latency": 91.7, "Tail Update Latency": 139.8}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 200033.6, "Average Read Latency": 89.1, "Median Read Latency": 85.5, "Tail Read Latency": 138.0, "Average Update Latency": 92.2, "Median Update Latency": 88.6, "Tail Update Latency": 140.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499671.8, "Average Read Latency": 9085.8, "Median Read Latency": 1659.7, "Tail Read Latency": 225811.0, "Average Update Latency": 8974.2, "Median Update Latency": 1907.4, "Tail Update Latency": 225020.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 100001.1, "Average Read Latency": 97.9, "Median Read Latency": 92.6, "Tail Read Latency": 156.0, "Average Update Latency": 101.3, "Median Update Latency": 97.4, "Tail Update Latency": 164.1}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 591879.7, "Average Read Latency": 22920.9, "Median Read Latency": 13740.8, "Tail Read Latency": 256607.4, "Average Update Latency": 22933.6, "Median Update Latency": 13753.1, "Tail Update Latency": 256394.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 300083.1, "Average Read Latency": 113.1, "Median Read Latency": 98.6, "Tail Read Latency": 257.5, "Average Update Latency": 115.9, "Median Update Latency": 102.3, "Tail Update Latency": 259.8}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 596663.6, "Average Read Latency": 21533.9, "Median Read Latency": 12133.2, "Tail Read Latency": 255135.7, "Average Update Latency": 21684.7, "Median Update Latency": 12151.7, "Tail Update Latency": 255312.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 569060.2, "Average Read Latency": 11674.9, "Median Read Latency": 7450.5, "Tail Read Latency": 232878.6, "Average Update Latency": 11469.9, "Median Update Latency": 7505.0, "Tail Update Latency": 232098.7}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 300007.4, "Average Read Latency": 103.1, "Median Read Latency": 96.4, "Tail Read Latency": 191.5, "Average Update Latency": 106.2, "Median Update Latency": 99.8, "Tail Update Latency": 195.7}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 482275.5, "Average Read Latency": 22381.2, "Median Read Latency": 11546.7, "Tail Read Latency": 261040.2, "Average Update Latency": 22981.6, "Median Update Latency": 11569.7, "Tail Update Latency": 270424.2}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 100042.6, "Average Read Latency": 101.2, "Median Read Latency": 92.4, "Tail Read Latency": 157.7, "Average Update Latency": 109.0, "Median Update Latency": 97.0, "Tail Update Latency": 167.3}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 200008.7, "Average Read Latency": 89.7, "Median Read Latency": 85.9, "Tail Read Latency": 140.2, "Average Update Latency": 93.1, "Median Update Latency": 89.1, "Tail Update Latency": 145.9}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 300047.6, "Average Read Latency": 134.4, "Median Read Latency": 99.4, "Tail Read Latency": 274.2, "Average Update Latency": 149.6, "Median Update Latency": 101.6, "Tail Update Latency": 299.1}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 570676.7, "Average Read Latency": 17711.4, "Median Read Latency": 7849.3, "Tail Read Latency": 253008.4, "Average Update Latency": 18214.1, "Median Update Latency": 7842.6, "Tail Update Latency": 253410.5}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 299984.0, "Average Read Latency": 141.2, "Median Read Latency": 99.2, "Tail Read Latency": 276.0, "Average Update Latency": 159.7, "Median Update Latency": 101.3, "Tail Update Latency": 283.1}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499743.1, "Average Read Latency": 9428.6, "Median Read Latency": 3039.2, "Tail Read Latency": 226341.1, "Average Update Latency": 9501.2, "Median Update Latency": 3344.9, "Tail Update Latency": 226482.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 562849.2, "Average Read Latency": 18016.9, "Median Read Latency": 7279.8, "Tail Read Latency": 432181.1, "Average Update Latency": 17156.9, "Median Update Latency": 7304.8, "Tail Update Latency": 425221.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 100023.8, "Average Read Latency": 105.9, "Median Read Latency": 93.2, "Tail Read Latency": 147.7, "Average Update Latency": 112.5, "Median Update Latency": 96.8, "Tail Update Latency": 153.1}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 100026.2, "Average Read Latency": 103.9, "Median Read Latency": 92.1, "Tail Read Latency": 140.6, "Average Update Latency": 106.8, "Median Update Latency": 95.6, "Tail Update Latency": 145.5}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 99996.1, "Average Read Latency": 102.0, "Median Read Latency": 93.0, "Tail Read Latency": 158.8, "Average Update Latency": 104.9, "Median Update Latency": 98.1, "Tail Update Latency": 166.7}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 587489.8, "Average Read Latency": 20472.5, "Median Read Latency": 13024.8, "Tail Read Latency": 244269.1, "Average Update Latency": 20371.7, "Median Update Latency": 13056.4, "Tail Update Latency": 242838.9}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 589422.4, "Average Read Latency": 23373.6, "Median Read Latency": 13430.3, "Tail Read Latency": 257062.0, "Average Update Latency": 23420.8, "Median Update Latency": 13457.3, "Tail Update Latency": 256705.1}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 300007.4, "Average Read Latency": 125.4, "Median Read Latency": 106.3, "Tail Read Latency": 302.5, "Average Update Latency": 128.7, "Median Update Latency": 110.4, "Tail Update Latency": 311.2}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 541321.3, "Average Read Latency": 14281.0, "Median Read Latency": 13891.1, "Tail Read Latency": 26410.6, "Average Update Latency": 14322.1, "Median Update Latency": 13882.2, "Tail Update Latency": 27375.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 568276.9, "Average Read Latency": 17565.6, "Median Read Latency": 7515.7, "Tail Read Latency": 426792.6, "Average Update Latency": 16892.4, "Median Update Latency": 7567.2, "Tail Update Latency": 240402.9}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300043.0, "Average Read Latency": 149.2, "Median Read Latency": 106.3, "Tail Read Latency": 383.6, "Average Update Latency": 165.0, "Median Update Latency": 109.0, "Tail Update Latency": 365.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499868.3, "Average Read Latency": 5903.5, "Median Read Latency": 324.8, "Tail Read Latency": 12510.2, "Average Update Latency": 5864.5, "Median Update Latency": 309.7, "Tail Update Latency": 12506.6}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 100024.6, "Average Read Latency": 99.1, "Median Read Latency": 94.0, "Tail Read Latency": 159.4, "Average Update Latency": 107.7, "Median Update Latency": 99.0, "Tail Update Latency": 164.7}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 100025.4, "Average Read Latency": 103.2, "Median Read Latency": 92.5, "Tail Read Latency": 144.9, "Average Update Latency": 108.5, "Median Update Latency": 96.0, "Tail Update Latency": 151.5}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 484333.2, "Average Read Latency": 23159.4, "Median Read Latency": 12687.6, "Tail Read Latency": 261285.4, "Average Update Latency": 23538.3, "Median Update Latency": 12753.6, "Tail Update Latency": 264174.9}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 588987.4, "Average Read Latency": 23104.8, "Median Read Latency": 13968.5, "Tail Read Latency": 256403.9, "Average Update Latency": 22716.6, "Median Update Latency": 13977.3, "Tail Update Latency": 251936.5}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 579256.8, "Average Read Latency": 14451.2, "Median Read Latency": 13031.5, "Tail Read Latency": 28778.9, "Average Update Latency": 14641.1, "Median Update Latency": 13036.8, "Tail Update Latency": 29330.2}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 399960.7, "Average Read Latency": 120.0, "Median Read Latency": 103.7, "Tail Read Latency": 342.6, "Average Update Latency": 122.5, "Median Update Latency": 106.2, "Tail Update Latency": 344.5}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 568120.3, "Average Read Latency": 16686.0, "Median Read Latency": 7300.5, "Tail Read Latency": 427822.8, "Average Update Latency": 16533.6, "Median Update Latency": 7374.9, "Tail Update Latency": 240068.7}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 100049.9, "Average Read Latency": 101.3, "Median Read Latency": 93.3, "Tail Read Latency": 164.5, "Average Update Latency": 106.1, "Median Update Latency": 98.8, "Tail Update Latency": 171.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 591905.8, "Average Read Latency": 22586.0, "Median Read Latency": 13507.6, "Tail Read Latency": 253640.5, "Average Update Latency": 22687.1, "Median Update Latency": 13591.2, "Tail Update Latency": 254364.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 299991.5, "Average Read Latency": 131.1, "Median Read Latency": 99.9, "Tail Read Latency": 280.5, "Average Update Latency": 153.6, "Median Update Latency": 102.1, "Tail Update Latency": 298.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 300057.7, "Average Read Latency": 111.1, "Median Read Latency": 98.2, "Tail Read Latency": 247.9, "Average Update Latency": 113.8, "Median Update Latency": 101.9, "Tail Update Latency": 249.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499466.1, "Average Read Latency": 8701.1, "Median Read Latency": 2322.6, "Tail Read Latency": 223900.8, "Average Update Latency": 8541.6, "Median Update Latency": 2559.8, "Tail Update Latency": 223094.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 499913.7, "Average Read Latency": 6478.0, "Median Read Latency": 528.9, "Tail Read Latency": 12691.2, "Average Update Latency": 6292.6, "Median Update Latency": 400.1, "Tail Update Latency": 12524.9}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 199987.1, "Average Read Latency": 106.5, "Median Read Latency": 95.9, "Tail Read Latency": 210.8, "Average Update Latency": 109.0, "Median Update Latency": 100.4, "Tail Update Latency": 216.1}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 300001.2, "Average Read Latency": 110.7, "Median Read Latency": 97.5, "Tail Read Latency": 250.9, "Average Update Latency": 114.0, "Median Update Latency": 101.3, "Tail Update Latency": 252.2}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 199992.0, "Average Read Latency": 122.9, "Median Read Latency": 98.3, "Tail Read Latency": 215.0, "Average Update Latency": 124.2, "Median Update Latency": 101.2, "Tail Update Latency": 218.8}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 566271.4, "Average Read Latency": 15620.1, "Median Read Latency": 7890.8, "Tail Read Latency": 238376.9, "Average Update Latency": 15338.2, "Median Update Latency": 7928.2, "Tail Update Latency": 237901.9}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 400058.7, "Average Read Latency": 165.6, "Median Read Latency": 120.5, "Tail Read Latency": 531.4, "Average Update Latency": 169.0, "Median Update Latency": 124.1, "Tail Update Latency": 537.1}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 100079.1, "Average Read Latency": 90.2, "Median Read Latency": 87.3, "Tail Read Latency": 136.1, "Average Update Latency": 94.6, "Median Update Latency": 92.3, "Tail Update Latency": 141.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 572014.9, "Average Read Latency": 14144.6, "Median Read Latency": 13185.6, "Tail Read Latency": 27838.8, "Average Update Latency": 14329.9, "Median Update Latency": 13192.1, "Tail Update Latency": 28694.8}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 300050.4, "Average Read Latency": 102.4, "Median Read Latency": 95.6, "Tail Read Latency": 192.9, "Average Update Latency": 105.0, "Median Update Latency": 98.7, "Tail Update Latency": 197.9}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 200059.9, "Average Read Latency": 88.1, "Median Read Latency": 85.0, "Tail Read Latency": 136.6, "Average Update Latency": 91.2, "Median Update Latency": 87.9, "Tail Update Latency": 139.7}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 100034.4, "Average Read Latency": 104.5, "Median Read Latency": 94.1, "Tail Read Latency": 149.3, "Average Update Latency": 108.7, "Median Update Latency": 97.8, "Tail Update Latency": 153.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 550741.2, "Average Read Latency": 14365.9, "Median Read Latency": 13923.2, "Tail Read Latency": 27239.5, "Average Update Latency": 14551.2, "Median Update Latency": 13936.7, "Tail Update Latency": 28280.2}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 199995.3, "Average Read Latency": 89.1, "Median Read Latency": 85.5, "Tail Read Latency": 138.0, "Average Update Latency": 92.6, "Median Update Latency": 88.5, "Tail Update Latency": 141.6}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 571140.1, "Average Read Latency": 15769.7, "Median Read Latency": 7737.9, "Tail Read Latency": 238166.7, "Average Update Latency": 15093.9, "Median Update Latency": 7690.3, "Tail Update Latency": 237419.3}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300053.1, "Average Read Latency": 145.7, "Median Read Latency": 106.0, "Tail Read Latency": 324.9, "Average Update Latency": 154.7, "Median Update Latency": 109.0, "Tail Update Latency": 330.9}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 399942.4, "Average Read Latency": 119.3, "Median Read Latency": 104.1, "Tail Read Latency": 314.0, "Average Update Latency": 122.0, "Median Update Latency": 106.6, "Tail Update Latency": 316.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499846.0, "Average Read Latency": 5121.2, "Median Read Latency": 263.2, "Tail Read Latency": 12380.5, "Average Update Latency": 5092.9, "Median Update Latency": 251.7, "Tail Update Latency": 12373.5}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 100003.4, "Average Read Latency": 100.9, "Median Read Latency": 92.5, "Tail Read Latency": 160.3, "Average Update Latency": 108.4, "Median Update Latency": 97.5, "Tail Update Latency": 169.2}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 498971.9, "Average Read Latency": 26558.3, "Median Read Latency": 16244.9, "Tail Read Latency": 276693.7, "Average Update Latency": 27307.8, "Median Update Latency": 16284.5, "Tail Update Latency": 283650.4}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 506220.0, "Average Read Latency": 25791.0, "Median Read Latency": 14665.9, "Tail Read Latency": 301293.3, "Average Update Latency": 26363.5, "Median Update Latency": 14853.4, "Tail Update Latency": 312949.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 544608.6, "Average Read Latency": 14316.1, "Median Read Latency": 13895.2, "Tail Read Latency": 26931.1, "Average Update Latency": 14468.9, "Median Update Latency": 13894.7, "Tail Update Latency": 27846.9}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499557.5, "Average Read Latency": 9087.1, "Median Read Latency": 1874.8, "Tail Read Latency": 224870.3, "Average Update Latency": 9163.9, "Median Update Latency": 2001.8, "Tail Update Latency": 224632.9}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 547255.1, "Average Read Latency": 14516.3, "Median Read Latency": 13937.2, "Tail Read Latency": 27626.2, "Average Update Latency": 14753.9, "Median Update Latency": 13943.4, "Tail Update Latency": 28658.2}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 200003.7, "Average Read Latency": 88.5, "Median Read Latency": 85.2, "Tail Read Latency": 139.3, "Average Update Latency": 92.0, "Median Update Latency": 88.3, "Tail Update Latency": 142.3}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 493669.0, "Average Read Latency": 24601.0, "Median Read Latency": 13774.3, "Tail Read Latency": 302034.4, "Average Update Latency": 24432.6, "Median Update Latency": 13753.5, "Tail Update Latency": 295630.2}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 100002.2, "Average Read Latency": 102.5, "Median Read Latency": 93.3, "Tail Read Latency": 145.5, "Average Update Latency": 105.0, "Median Update Latency": 96.9, "Tail Update Latency": 152.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 400010.0, "Average Read Latency": 574.2, "Median Read Latency": 128.4, "Tail Read Latency": 10047.1, "Average Update Latency": 711.8, "Median Update Latency": 130.4, "Tail Update Latency": 13344.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 592805.6, "Average Read Latency": 23499.9, "Median Read Latency": 14365.0, "Tail Read Latency": 256872.8, "Average Update Latency": 23319.4, "Median Update Latency": 14346.3, "Tail Update Latency": 253958.4}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 200027.4, "Average Read Latency": 111.4, "Median Read Latency": 94.4, "Tail Read Latency": 183.4, "Average Update Latency": 114.4, "Median Update Latency": 97.2, "Tail Update Latency": 187.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 400081.6, "Average Read Latency": 482.0, "Median Read Latency": 124.7, "Tail Read Latency": 8770.8, "Average Update Latency": 618.4, "Median Update Latency": 126.5, "Tail Update Latency": 11577.1}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 500002.9, "Average Read Latency": 6029.8, "Median Read Latency": 350.5, "Tail Read Latency": 12525.2, "Average Update Latency": 5941.4, "Median Update Latency": 370.8, "Tail Update Latency": 12521.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 550659.8, "Average Read Latency": 13970.7, "Median Read Latency": 13619.7, "Tail Read Latency": 25943.9, "Average Update Latency": 14133.2, "Median Update Latency": 13627.1, "Tail Update Latency": 27031.6}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 400063.8, "Average Read Latency": 168.5, "Median Read Latency": 122.0, "Tail Read Latency": 537.2, "Average Update Latency": 173.2, "Median Update Latency": 125.4, "Tail Update Latency": 546.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 400058.7, "Average Read Latency": 361.2, "Median Read Latency": 123.7, "Tail Read Latency": 6077.6, "Average Update Latency": 426.4, "Median Update Latency": 125.9, "Tail Update Latency": 7271.9}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 555241.3, "Average Read Latency": 14050.5, "Median Read Latency": 13517.5, "Tail Read Latency": 26629.9, "Average Update Latency": 14357.9, "Median Update Latency": 13536.1, "Tail Update Latency": 28051.2}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 300054.8, "Average Read Latency": 136.6, "Median Read Latency": 100.3, "Tail Read Latency": 299.0, "Average Update Latency": 162.3, "Median Update Latency": 102.4, "Tail Update Latency": 331.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 556532.8, "Average Read Latency": 14337.2, "Median Read Latency": 13642.1, "Tail Read Latency": 27208.5, "Average Update Latency": 14487.7, "Median Update Latency": 13644.3, "Tail Update Latency": 28079.4}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 483449.4, "Average Read Latency": 21575.5, "Median Read Latency": 12127.6, "Tail Read Latency": 257142.7, "Average Update Latency": 21949.9, "Median Update Latency": 12163.4, "Tail Update Latency": 259438.2}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 300013.9, "Average Read Latency": 101.3, "Median Read Latency": 94.7, "Tail Read Latency": 189.5, "Average Update Latency": 104.7, "Median Update Latency": 97.7, "Tail Update Latency": 193.1}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 592039.7, "Average Read Latency": 22504.7, "Median Read Latency": 13064.1, "Tail Read Latency": 260387.1, "Average Update Latency": 22588.3, "Median Update Latency": 13068.9, "Tail Update Latency": 256401.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 576239.8, "Average Read Latency": 17525.3, "Median Read Latency": 7890.6, "Tail Read Latency": 262424.7, "Average Update Latency": 17836.0, "Median Update Latency": 7842.3, "Tail Update Latency": 260514.6}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 399966.7, "Average Read Latency": 166.8, "Median Read Latency": 120.1, "Tail Read Latency": 532.6, "Average Update Latency": 172.4, "Median Update Latency": 123.5, "Tail Update Latency": 535.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 483657.7, "Average Read Latency": 19531.2, "Median Read Latency": 12065.5, "Tail Read Latency": 250403.1, "Average Update Latency": 20008.1, "Median Update Latency": 12091.1, "Tail Update Latency": 250624.8}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 299992.9, "Average Read Latency": 101.7, "Median Read Latency": 95.0, "Tail Read Latency": 192.9, "Average Update Latency": 104.6, "Median Update Latency": 98.0, "Tail Update Latency": 196.8}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 400078.3, "Average Read Latency": 438.5, "Median Read Latency": 124.2, "Tail Read Latency": 7563.1, "Average Update Latency": 556.0, "Median Update Latency": 126.2, "Tail Update Latency": 10830.2}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 593742.6, "Average Read Latency": 22369.3, "Median Read Latency": 13336.9, "Tail Read Latency": 254936.7, "Average Update Latency": 22590.3, "Median Update Latency": 13331.8, "Tail Update Latency": 258588.4}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 100049.1, "Average Read Latency": 106.1, "Median Read Latency": 93.0, "Tail Read Latency": 145.9, "Average Update Latency": 109.4, "Median Update Latency": 96.6, "Tail Update Latency": 150.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 99974.0, "Average Read Latency": 99.7, "Median Read Latency": 91.3, "Tail Read Latency": 137.3, "Average Update Latency": 106.6, "Median Update Latency": 94.9, "Tail Update Latency": 141.9}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 100020.1, "Average Read Latency": 89.7, "Median Read Latency": 86.8, "Tail Read Latency": 133.5, "Average Update Latency": 94.2, "Median Update Latency": 91.9, "Tail Update Latency": 139.9}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 300042.1, "Average Read Latency": 101.7, "Median Read Latency": 95.4, "Tail Read Latency": 190.4, "Average Update Latency": 104.8, "Median Update Latency": 98.5, "Tail Update Latency": 195.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 482861.0, "Average Read Latency": 24516.1, "Median Read Latency": 11726.2, "Tail Read Latency": 290118.1, "Average Update Latency": 25259.9, "Median Update Latency": 11820.2, "Tail Update Latency": 365888.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 99992.4, "Average Read Latency": 89.1, "Median Read Latency": 86.4, "Tail Read Latency": 133.9, "Average Update Latency": 93.5, "Median Update Latency": 91.3, "Tail Update Latency": 139.2}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 514280.6, "Average Read Latency": 28871.6, "Median Read Latency": 20656.6, "Tail Read Latency": 277735.3, "Average Update Latency": 29517.7, "Median Update Latency": 20663.6, "Tail Update Latency": 283123.3}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 300038.7, "Average Read Latency": 102.1, "Median Read Latency": 95.2, "Tail Read Latency": 192.9, "Average Update Latency": 105.1, "Median Update Latency": 98.3, "Tail Update Latency": 195.0}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 200041.4, "Average Read Latency": 88.8, "Median Read Latency": 85.7, "Tail Read Latency": 138.0, "Average Update Latency": 92.3, "Median Update Latency": 89.2, "Tail Update Latency": 141.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 571087.0, "Average Read Latency": 16999.2, "Median Read Latency": 7783.7, "Tail Read Latency": 239802.0, "Average Update Latency": 16780.4, "Median Update Latency": 7770.6, "Tail Update Latency": 240341.5}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 486219.1, "Average Read Latency": 22219.5, "Median Read Latency": 11849.6, "Tail Read Latency": 260033.6, "Average Update Latency": 22547.0, "Median Update Latency": 11906.7, "Tail Update Latency": 261667.3}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 100001.9, "Average Read Latency": 101.8, "Median Read Latency": 92.8, "Tail Read Latency": 156.8, "Average Update Latency": 110.6, "Median Update Latency": 97.6, "Tail Update Latency": 165.7}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200027.4, "Average Read Latency": 89.8, "Median Read Latency": 86.1, "Tail Read Latency": 139.9, "Average Update Latency": 93.2, "Median Update Latency": 89.3, "Tail Update Latency": 144.4}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 509170.1, "Average Read Latency": 26387.9, "Median Read Latency": 16168.0, "Tail Read Latency": 281173.9, "Average Update Latency": 27130.6, "Median Update Latency": 16257.9, "Tail Update Latency": 290885.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 200084.2, "Average Read Latency": 108.9, "Median Read Latency": 95.4, "Tail Read Latency": 207.3, "Average Update Latency": 110.2, "Median Update Latency": 99.6, "Tail Update Latency": 214.9}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 484233.5, "Average Read Latency": 22806.5, "Median Read Latency": 12744.6, "Tail Read Latency": 259951.4, "Average Update Latency": 23297.4, "Median Update Latency": 12785.1, "Tail Update Latency": 261838.3}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 481467.6, "Average Read Latency": 22935.1, "Median Read Latency": 12125.8, "Tail Read Latency": 262550.8, "Average Update Latency": 22951.6, "Median Update Latency": 12144.8, "Tail Update Latency": 263011.3}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 199997.4, "Average Read Latency": 109.6, "Median Read Latency": 96.1, "Tail Read Latency": 199.5, "Average Update Latency": 112.7, "Median Update Latency": 99.3, "Tail Update Latency": 202.5}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 100018.4, "Average Read Latency": 90.1, "Median Read Latency": 87.0, "Tail Read Latency": 136.1, "Average Update Latency": 94.5, "Median Update Latency": 92.0, "Tail Update Latency": 141.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 400017.7, "Average Read Latency": 121.2, "Median Read Latency": 105.0, "Tail Read Latency": 326.6, "Average Update Latency": 123.8, "Median Update Latency": 107.7, "Tail Update Latency": 329.4}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 499897.5, "Average Read Latency": 6257.9, "Median Read Latency": 326.2, "Tail Read Latency": 12522.1, "Average Update Latency": 6149.5, "Median Update Latency": 361.6, "Tail Update Latency": 12517.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 399928.3, "Average Read Latency": 117.8, "Median Read Latency": 102.9, "Tail Read Latency": 306.1, "Average Update Latency": 120.5, "Median Update Latency": 105.7, "Tail Update Latency": 312.8}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 399932.6, "Average Read Latency": 534.3, "Median Read Latency": 126.6, "Tail Read Latency": 9654.6, "Average Update Latency": 675.0, "Median Update Latency": 128.0, "Tail Update Latency": 13051.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 592812.9, "Average Read Latency": 24381.6, "Median Read Latency": 13704.9, "Tail Read Latency": 268572.5, "Average Update Latency": 23692.2, "Median Update Latency": 13699.2, "Tail Update Latency": 261268.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 100017.2, "Average Read Latency": 89.4, "Median Read Latency": 86.8, "Tail Read Latency": 133.1, "Average Update Latency": 94.0, "Median Update Latency": 91.8, "Tail Update Latency": 139.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 399965.4, "Average Read Latency": 171.7, "Median Read Latency": 122.3, "Tail Read Latency": 564.8, "Average Update Latency": 176.6, "Median Update Latency": 126.5, "Tail Update Latency": 569.9}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 546885.7, "Average Read Latency": 14127.1, "Median Read Latency": 13599.8, "Tail Read Latency": 26248.1, "Average Update Latency": 14165.1, "Median Update Latency": 13601.2, "Tail Update Latency": 27171.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 100002.0, "Average Read Latency": 87.9, "Median Read Latency": 85.4, "Tail Read Latency": 128.1, "Average Update Latency": 91.8, "Median Update Latency": 89.5, "Tail Update Latency": 133.7}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 514697.6, "Average Read Latency": 27552.1, "Median Read Latency": 16959.6, "Tail Read Latency": 303034.7, "Average Update Latency": 28180.9, "Median Update Latency": 16943.0, "Tail Update Latency": 315093.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 199974.4, "Average Read Latency": 88.9, "Median Read Latency": 85.2, "Tail Read Latency": 137.8, "Average Update Latency": 92.5, "Median Update Latency": 88.1, "Tail Update Latency": 141.2}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 199998.3, "Average Read Latency": 105.2, "Median Read Latency": 95.4, "Tail Read Latency": 207.8, "Average Update Latency": 110.9, "Median Update Latency": 99.8, "Tail Update Latency": 214.2}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 589495.9, "Average Read Latency": 23963.2, "Median Read Latency": 13525.6, "Tail Read Latency": 268123.7, "Average Update Latency": 23376.9, "Median Update Latency": 13565.9, "Tail Update Latency": 262205.2}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 200006.8, "Average Read Latency": 107.2, "Median Read Latency": 95.4, "Tail Read Latency": 210.7, "Average Update Latency": 112.2, "Median Update Latency": 99.9, "Tail Update Latency": 217.8}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 488388.7, "Average Read Latency": 22071.0, "Median Read Latency": 12107.0, "Tail Read Latency": 259128.0, "Average Update Latency": 22533.3, "Median Update Latency": 12164.8, "Tail Update Latency": 262369.4}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200021.6, "Average Read Latency": 88.3, "Median Read Latency": 85.1, "Tail Read Latency": 136.9, "Average Update Latency": 91.1, "Median Update Latency": 87.9, "Tail Update Latency": 139.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 100043.2, "Average Read Latency": 102.1, "Median Read Latency": 92.2, "Tail Read Latency": 139.7, "Average Update Latency": 110.2, "Median Update Latency": 95.9, "Tail Update Latency": 146.5}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 399973.9, "Average Read Latency": 166.5, "Median Read Latency": 120.7, "Tail Read Latency": 533.8, "Average Update Latency": 169.7, "Median Update Latency": 124.8, "Tail Update Latency": 537.1}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 200005.3, "Average Read Latency": 104.6, "Median Read Latency": 95.8, "Tail Read Latency": 208.8, "Average Update Latency": 109.0, "Median Update Latency": 100.0, "Tail Update Latency": 216.5}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 565115.2, "Average Read Latency": 14392.0, "Median Read Latency": 13370.3, "Tail Read Latency": 28533.0, "Average Update Latency": 14511.3, "Median Update Latency": 13377.3, "Tail Update Latency": 28720.7}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 199996.0, "Average Read Latency": 113.9, "Median Read Latency": 95.9, "Tail Read Latency": 194.8, "Average Update Latency": 118.1, "Median Update Latency": 98.8, "Tail Update Latency": 197.1}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499776.8, "Average Read Latency": 8389.2, "Median Read Latency": 1343.2, "Tail Read Latency": 222478.0, "Average Update Latency": 8438.9, "Median Update Latency": 1549.9, "Tail Update Latency": 222569.7}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 565726.3, "Average Read Latency": 13919.6, "Median Read Latency": 13338.8, "Tail Read Latency": 27310.3, "Average Update Latency": 14161.3, "Median Update Latency": 13340.4, "Tail Update Latency": 28578.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 547518.3, "Average Read Latency": 14355.2, "Median Read Latency": 13980.8, "Tail Read Latency": 26399.4, "Average Update Latency": 14476.0, "Median Update Latency": 13982.9, "Tail Update Latency": 27167.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 506312.2, "Average Read Latency": 25086.2, "Median Read Latency": 15022.7, "Tail Read Latency": 288446.3, "Average Update Latency": 25514.0, "Median Update Latency": 14986.0, "Tail Update Latency": 299557.3}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 300016.8, "Average Read Latency": 134.6, "Median Read Latency": 99.4, "Tail Read Latency": 276.7, "Average Update Latency": 158.8, "Median Update Latency": 101.6, "Tail Update Latency": 298.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 568452.2, "Average Read Latency": 14493.4, "Median Read Latency": 13320.7, "Tail Read Latency": 28622.6, "Average Update Latency": 14611.2, "Median Update Latency": 13322.6, "Tail Update Latency": 29080.1}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 199977.6, "Average Read Latency": 89.0, "Median Read Latency": 85.5, "Tail Read Latency": 137.6, "Average Update Latency": 92.8, "Median Update Latency": 88.6, "Tail Update Latency": 141.4}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 556033.8, "Average Read Latency": 14115.7, "Median Read Latency": 13565.6, "Tail Read Latency": 26675.4, "Average Update Latency": 14389.7, "Median Update Latency": 13573.0, "Tail Update Latency": 27932.1}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 399997.1, "Average Read Latency": 167.0, "Median Read Latency": 121.1, "Tail Read Latency": 533.7, "Average Update Latency": 169.5, "Median Update Latency": 125.3, "Tail Update Latency": 537.2}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 510613.2, "Average Read Latency": 22350.4, "Median Read Latency": 13614.3, "Tail Read Latency": 264379.8, "Average Update Latency": 23466.8, "Median Update Latency": 13749.1, "Tail Update Latency": 274337.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 572296.1, "Average Read Latency": 13197.0, "Median Read Latency": 7836.3, "Tail Read Latency": 234669.0, "Average Update Latency": 13550.4, "Median Update Latency": 7715.8, "Tail Update Latency": 235356.2}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 400009.9, "Average Read Latency": 529.6, "Median Read Latency": 125.7, "Tail Read Latency": 9175.5, "Average Update Latency": 706.9, "Median Update Latency": 127.9, "Tail Update Latency": 12838.0}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 200034.0, "Average Read Latency": 104.5, "Median Read Latency": 94.2, "Tail Read Latency": 178.6, "Average Update Latency": 108.2, "Median Update Latency": 97.2, "Tail Update Latency": 183.5}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 584701.4, "Average Read Latency": 25731.4, "Median Read Latency": 18598.5, "Tail Read Latency": 251723.1, "Average Update Latency": 25729.0, "Median Update Latency": 18628.2, "Tail Update Latency": 252671.2}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 400039.4, "Average Read Latency": 123.5, "Median Read Latency": 103.6, "Tail Read Latency": 421.8, "Average Update Latency": 125.6, "Median Update Latency": 105.9, "Tail Update Latency": 423.4}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200005.4, "Average Read Latency": 87.8, "Median Read Latency": 84.9, "Tail Read Latency": 136.3, "Average Update Latency": 91.4, "Median Update Latency": 87.9, "Tail Update Latency": 140.7}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 484731.2, "Average Read Latency": 23138.3, "Median Read Latency": 12545.3, "Tail Read Latency": 261788.3, "Average Update Latency": 23949.0, "Median Update Latency": 12576.8, "Tail Update Latency": 263366.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 399947.4, "Average Read Latency": 119.5, "Median Read Latency": 103.8, "Tail Read Latency": 314.3, "Average Update Latency": 122.3, "Median Update Latency": 106.4, "Tail Update Latency": 322.4}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 570287.3, "Average Read Latency": 16621.5, "Median Read Latency": 7416.0, "Tail Read Latency": 240140.5, "Average Update Latency": 16622.4, "Median Update Latency": 7483.3, "Tail Update Latency": 240457.4}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 299954.2, "Average Read Latency": 110.4, "Median Read Latency": 97.6, "Tail Read Latency": 248.5, "Average Update Latency": 113.8, "Median Update Latency": 101.5, "Tail Update Latency": 252.2}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 100027.3, "Average Read Latency": 98.6, "Median Read Latency": 93.3, "Tail Read Latency": 158.0, "Average Update Latency": 102.8, "Median Update Latency": 98.1, "Tail Update Latency": 168.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 199989.7, "Average Read Latency": 103.9, "Median Read Latency": 94.9, "Tail Read Latency": 203.5, "Average Update Latency": 109.5, "Median Update Latency": 99.2, "Tail Update Latency": 213.1}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 555829.9, "Average Read Latency": 14425.4, "Median Read Latency": 13574.7, "Tail Read Latency": 28413.3, "Average Update Latency": 14722.5, "Median Update Latency": 13576.2, "Tail Update Latency": 29132.9}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 499939.0, "Average Read Latency": 5737.3, "Median Read Latency": 316.2, "Tail Read Latency": 12471.2, "Average Update Latency": 5580.0, "Median Update Latency": 284.5, "Tail Update Latency": 12458.9}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 565590.5, "Average Read Latency": 15477.9, "Median Read Latency": 13212.8, "Tail Read Latency": 29403.1, "Average Update Latency": 15663.3, "Median Update Latency": 13209.5, "Tail Update Latency": 31141.5}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 200060.3, "Average Read Latency": 111.0, "Median Read Latency": 95.5, "Tail Read Latency": 195.6, "Average Update Latency": 120.2, "Median Update Latency": 98.5, "Tail Update Latency": 201.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 505750.1, "Average Read Latency": 22403.1, "Median Read Latency": 13503.1, "Tail Read Latency": 265475.7, "Average Update Latency": 23365.6, "Median Update Latency": 13564.0, "Tail Update Latency": 276512.0}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 555125.8, "Average Read Latency": 14174.7, "Median Read Latency": 13671.4, "Tail Read Latency": 27111.1, "Average Update Latency": 14458.1, "Median Update Latency": 13680.0, "Tail Update Latency": 28264.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499501.2, "Average Read Latency": 9556.1, "Median Read Latency": 2500.0, "Tail Read Latency": 226755.3, "Average Update Latency": 9491.0, "Median Update Latency": 2256.8, "Tail Update Latency": 226295.9}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 200079.0, "Average Read Latency": 106.9, "Median Read Latency": 95.3, "Tail Read Latency": 187.9, "Average Update Latency": 107.8, "Median Update Latency": 98.3, "Tail Update Latency": 188.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 400012.0, "Average Read Latency": 118.6, "Median Read Latency": 103.7, "Tail Read Latency": 302.9, "Average Update Latency": 121.3, "Median Update Latency": 106.1, "Tail Update Latency": 312.8}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 486956.4, "Average Read Latency": 23011.2, "Median Read Latency": 13699.9, "Tail Read Latency": 258821.5, "Average Update Latency": 23575.7, "Median Update Latency": 13765.5, "Tail Update Latency": 261080.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 546847.2, "Average Read Latency": 14444.6, "Median Read Latency": 13964.2, "Tail Read Latency": 26827.9, "Average Update Latency": 14459.5, "Median Update Latency": 13973.0, "Tail Update Latency": 27707.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 400031.6, "Average Read Latency": 119.1, "Median Read Latency": 103.7, "Tail Read Latency": 314.5, "Average Update Latency": 121.9, "Median Update Latency": 106.2, "Tail Update Latency": 318.7}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 573488.6, "Average Read Latency": 14130.9, "Median Read Latency": 13237.3, "Tail Read Latency": 27739.6, "Average Update Latency": 14448.9, "Median Update Latency": 13247.6, "Tail Update Latency": 28751.0}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 399941.5, "Average Read Latency": 128.3, "Median Read Latency": 105.2, "Tail Read Latency": 478.3, "Average Update Latency": 131.4, "Median Update Latency": 108.2, "Tail Update Latency": 489.6}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 99993.7, "Average Read Latency": 89.4, "Median Read Latency": 86.6, "Tail Read Latency": 134.0, "Average Update Latency": 94.3, "Median Update Latency": 91.7, "Tail Update Latency": 139.7}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 100004.4, "Average Read Latency": 88.4, "Median Read Latency": 85.9, "Tail Read Latency": 130.3, "Average Update Latency": 92.7, "Median Update Latency": 90.4, "Tail Update Latency": 135.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 550690.9, "Average Read Latency": 14330.0, "Median Read Latency": 13840.9, "Tail Read Latency": 26848.0, "Average Update Latency": 14559.7, "Median Update Latency": 13853.5, "Tail Update Latency": 28091.1}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 400085.9, "Average Read Latency": 168.8, "Median Read Latency": 121.7, "Tail Read Latency": 538.5, "Average Update Latency": 169.1, "Median Update Latency": 124.8, "Tail Update Latency": 542.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 557765.4, "Average Read Latency": 14180.7, "Median Read Latency": 13448.9, "Tail Read Latency": 27060.8, "Average Update Latency": 14420.2, "Median Update Latency": 13454.8, "Tail Update Latency": 27952.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100016.9, "Average Read Latency": 89.6, "Median Read Latency": 86.9, "Tail Read Latency": 133.8, "Average Update Latency": 94.4, "Median Update Latency": 92.0, "Tail Update Latency": 140.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499792.8, "Average Read Latency": 8051.6, "Median Read Latency": 1573.9, "Tail Read Latency": 223269.3, "Average Update Latency": 8095.4, "Median Update Latency": 1615.3, "Tail Update Latency": 223240.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 200060.8, "Average Read Latency": 114.6, "Median Read Latency": 96.7, "Tail Read Latency": 207.4, "Average Update Latency": 119.4, "Median Update Latency": 100.0, "Tail Update Latency": 213.6}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 519141.3, "Average Read Latency": 28982.9, "Median Read Latency": 18691.6, "Tail Read Latency": 295934.3, "Average Update Latency": 29934.6, "Median Update Latency": 18835.4, "Tail Update Latency": 311181.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 574216.7, "Average Read Latency": 14023.8, "Median Read Latency": 13129.3, "Tail Read Latency": 28144.4, "Average Update Latency": 14268.8, "Median Update Latency": 13136.9, "Tail Update Latency": 29020.8}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 300029.6, "Average Read Latency": 103.1, "Median Read Latency": 95.2, "Tail Read Latency": 198.4, "Average Update Latency": 106.4, "Median Update Latency": 98.5, "Tail Update Latency": 200.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 299956.8, "Average Read Latency": 125.7, "Median Read Latency": 107.2, "Tail Read Latency": 304.6, "Average Update Latency": 130.3, "Median Update Latency": 111.5, "Tail Update Latency": 308.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 569788.9, "Average Read Latency": 19323.4, "Median Read Latency": 7427.3, "Tail Read Latency": 437929.5, "Average Update Latency": 18818.6, "Median Update Latency": 7436.9, "Tail Update Latency": 435279.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 568911.6, "Average Read Latency": 14294.3, "Median Read Latency": 13266.8, "Tail Read Latency": 27793.2, "Average Update Latency": 14476.5, "Median Update Latency": 13279.5, "Tail Update Latency": 28841.5}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 100017.0, "Average Read Latency": 102.0, "Median Read Latency": 93.1, "Tail Read Latency": 144.9, "Average Update Latency": 106.6, "Median Update Latency": 97.1, "Tail Update Latency": 152.6}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 99979.0, "Average Read Latency": 101.0, "Median Read Latency": 92.9, "Tail Read Latency": 161.7, "Average Update Latency": 103.8, "Median Update Latency": 97.6, "Tail Update Latency": 168.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 299998.4, "Average Read Latency": 102.7, "Median Read Latency": 95.7, "Tail Read Latency": 193.9, "Average Update Latency": 105.5, "Median Update Latency": 98.7, "Tail Update Latency": 197.0}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 507720.2, "Average Read Latency": 26194.4, "Median Read Latency": 15947.9, "Tail Read Latency": 287690.6, "Average Update Latency": 27317.9, "Median Update Latency": 15971.2, "Tail Update Latency": 305534.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 400051.1, "Average Read Latency": 164.6, "Median Read Latency": 120.3, "Tail Read Latency": 527.8, "Average Update Latency": 170.2, "Median Update Latency": 124.4, "Tail Update Latency": 533.3}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 100002.7, "Average Read Latency": 101.9, "Median Read Latency": 92.0, "Tail Read Latency": 139.0, "Average Update Latency": 113.2, "Median Update Latency": 95.5, "Tail Update Latency": 144.3}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 400037.6, "Average Read Latency": 121.2, "Median Read Latency": 105.4, "Tail Read Latency": 320.7, "Average Update Latency": 124.2, "Median Update Latency": 108.4, "Tail Update Latency": 323.7}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 596767.5, "Average Read Latency": 21656.6, "Median Read Latency": 12499.3, "Tail Read Latency": 252720.0, "Average Update Latency": 21733.7, "Median Update Latency": 12506.3, "Tail Update Latency": 252250.5}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 561245.9, "Average Read Latency": 15286.3, "Median Read Latency": 13365.7, "Tail Read Latency": 29638.0, "Average Update Latency": 15758.6, "Median Update Latency": 13385.9, "Tail Update Latency": 32286.4}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499964.5, "Average Read Latency": 6048.4, "Median Read Latency": 245.2, "Tail Read Latency": 12506.5, "Average Update Latency": 5989.7, "Median Update Latency": 268.8, "Tail Update Latency": 12510.9}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 400020.5, "Average Read Latency": 160.6, "Median Read Latency": 118.6, "Tail Read Latency": 508.6, "Average Update Latency": 165.0, "Median Update Latency": 123.0, "Tail Update Latency": 511.1}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 99997.3, "Average Read Latency": 98.7, "Median Read Latency": 93.3, "Tail Read Latency": 156.4, "Average Update Latency": 104.5, "Median Update Latency": 98.1, "Tail Update Latency": 167.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 200025.4, "Average Read Latency": 106.5, "Median Read Latency": 95.7, "Tail Read Latency": 211.9, "Average Update Latency": 112.4, "Median Update Latency": 100.1, "Tail Update Latency": 218.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499293.1, "Average Read Latency": 9220.1, "Median Read Latency": 1910.0, "Tail Read Latency": 224606.7, "Average Update Latency": 9232.9, "Median Update Latency": 1567.5, "Tail Update Latency": 224504.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 399996.9, "Average Read Latency": 169.4, "Median Read Latency": 121.6, "Tail Read Latency": 552.1, "Average Update Latency": 172.8, "Median Update Latency": 125.8, "Tail Update Latency": 554.1}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 300024.6, "Average Read Latency": 110.7, "Median Read Latency": 98.3, "Tail Read Latency": 249.8, "Average Update Latency": 116.0, "Median Update Latency": 101.8, "Tail Update Latency": 252.5}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 590930.0, "Average Read Latency": 24801.3, "Median Read Latency": 13462.0, "Tail Read Latency": 263999.9, "Average Update Latency": 24799.8, "Median Update Latency": 13570.8, "Tail Update Latency": 264226.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300032.4, "Average Read Latency": 134.4, "Median Read Latency": 99.6, "Tail Read Latency": 275.6, "Average Update Latency": 153.5, "Median Update Latency": 101.9, "Tail Update Latency": 292.5}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 100023.5, "Average Read Latency": 101.1, "Median Read Latency": 92.6, "Tail Read Latency": 144.7, "Average Update Latency": 107.0, "Median Update Latency": 96.3, "Tail Update Latency": 152.2}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 499941.9, "Average Read Latency": 5409.0, "Median Read Latency": 256.0, "Tail Read Latency": 12379.5, "Average Update Latency": 5351.3, "Median Update Latency": 258.0, "Tail Update Latency": 12385.0}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 100026.6, "Average Read Latency": 104.9, "Median Read Latency": 92.5, "Tail Read Latency": 144.3, "Average Update Latency": 109.1, "Median Update Latency": 96.1, "Tail Update Latency": 151.0}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 300006.3, "Average Read Latency": 130.2, "Median Read Latency": 98.7, "Tail Read Latency": 269.7, "Average Update Latency": 148.8, "Median Update Latency": 101.0, "Tail Update Latency": 283.2}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 568489.3, "Average Read Latency": 19555.7, "Median Read Latency": 7653.2, "Tail Read Latency": 438098.6, "Average Update Latency": 19007.1, "Median Update Latency": 7760.1, "Tail Update Latency": 435344.9}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 482931.5, "Average Read Latency": 21300.0, "Median Read Latency": 11502.2, "Tail Read Latency": 257523.1, "Average Update Latency": 21772.9, "Median Update Latency": 11601.9, "Tail Update Latency": 260000.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 99975.3, "Average Read Latency": 98.1, "Median Read Latency": 93.0, "Tail Read Latency": 156.4, "Average Update Latency": 108.0, "Median Update Latency": 97.8, "Tail Update Latency": 166.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 100007.3, "Average Read Latency": 99.2, "Median Read Latency": 91.5, "Tail Read Latency": 138.2, "Average Update Latency": 101.4, "Median Update Latency": 95.1, "Tail Update Latency": 142.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 199974.7, "Average Read Latency": 88.5, "Median Read Latency": 85.3, "Tail Read Latency": 138.1, "Average Update Latency": 91.8, "Median Update Latency": 88.2, "Tail Update Latency": 141.1}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 300026.5, "Average Read Latency": 125.7, "Median Read Latency": 106.2, "Tail Read Latency": 300.4, "Average Update Latency": 128.9, "Median Update Latency": 110.2, "Tail Update Latency": 308.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 199971.6, "Average Read Latency": 104.9, "Median Read Latency": 95.7, "Tail Read Latency": 210.3, "Average Update Latency": 108.2, "Median Update Latency": 100.3, "Tail Update Latency": 218.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 199988.8, "Average Read Latency": 103.7, "Median Read Latency": 95.3, "Tail Read Latency": 206.2, "Average Update Latency": 107.5, "Median Update Latency": 99.8, "Tail Update Latency": 207.5}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 482383.6, "Average Read Latency": 23155.8, "Median Read Latency": 12407.1, "Tail Read Latency": 260999.1, "Average Update Latency": 24134.2, "Median Update Latency": 12476.2, "Tail Update Latency": 263757.6}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 300007.9, "Average Read Latency": 125.6, "Median Read Latency": 106.8, "Tail Read Latency": 303.9, "Average Update Latency": 128.8, "Median Update Latency": 111.2, "Tail Update Latency": 309.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 300036.7, "Average Read Latency": 102.9, "Median Read Latency": 95.9, "Tail Read Latency": 191.9, "Average Update Latency": 105.8, "Median Update Latency": 99.1, "Tail Update Latency": 196.8}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 199982.3, "Average Read Latency": 88.1, "Median Read Latency": 85.1, "Tail Read Latency": 134.4, "Average Update Latency": 90.9, "Median Update Latency": 87.8, "Tail Update Latency": 137.6}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499893.1, "Average Read Latency": 8234.5, "Median Read Latency": 1526.2, "Tail Read Latency": 222157.8, "Average Update Latency": 8195.0, "Median Update Latency": 1534.7, "Tail Update Latency": 221686.1}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 505963.8, "Average Read Latency": 25144.8, "Median Read Latency": 15163.6, "Tail Read Latency": 268436.9, "Average Update Latency": 25877.7, "Median Update Latency": 15194.1, "Tail Update Latency": 273407.6}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499887.0, "Average Read Latency": 5687.4, "Median Read Latency": 310.9, "Tail Read Latency": 12424.0, "Average Update Latency": 5564.4, "Median Update Latency": 313.9, "Tail Update Latency": 12421.7}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100007.4, "Average Read Latency": 89.5, "Median Read Latency": 86.7, "Tail Read Latency": 133.9, "Average Update Latency": 94.2, "Median Update Latency": 91.7, "Tail Update Latency": 141.6}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 399923.8, "Average Read Latency": 380.0, "Median Read Latency": 126.3, "Tail Read Latency": 6845.9, "Average Update Latency": 441.4, "Median Update Latency": 128.3, "Tail Update Latency": 7672.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 200027.4, "Average Read Latency": 88.5, "Median Read Latency": 85.2, "Tail Read Latency": 137.5, "Average Update Latency": 91.3, "Median Update Latency": 88.2, "Tail Update Latency": 140.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100021.7, "Average Read Latency": 88.9, "Median Read Latency": 86.2, "Tail Read Latency": 132.1, "Average Update Latency": 93.1, "Median Update Latency": 90.7, "Tail Update Latency": 138.1}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 200024.1, "Average Read Latency": 116.0, "Median Read Latency": 97.9, "Tail Read Latency": 212.5, "Average Update Latency": 118.7, "Median Update Latency": 101.0, "Tail Update Latency": 218.6}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 502773.3, "Average Read Latency": 25119.3, "Median Read Latency": 14681.6, "Tail Read Latency": 288270.6, "Average Update Latency": 25837.7, "Median Update Latency": 14665.9, "Tail Update Latency": 297313.1}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 200032.0, "Average Read Latency": 105.9, "Median Read Latency": 96.1, "Tail Read Latency": 206.7, "Average Update Latency": 110.8, "Median Update Latency": 100.6, "Tail Update Latency": 211.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 555846.3, "Average Read Latency": 14165.5, "Median Read Latency": 13646.6, "Tail Read Latency": 26661.8, "Average Update Latency": 14324.9, "Median Update Latency": 13650.1, "Tail Update Latency": 27635.1}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 299967.4, "Average Read Latency": 141.0, "Median Read Latency": 99.5, "Tail Read Latency": 301.2, "Average Update Latency": 157.3, "Median Update Latency": 101.7, "Tail Update Latency": 300.9}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 556218.5, "Average Read Latency": 14550.4, "Median Read Latency": 13602.1, "Tail Read Latency": 27548.9, "Average Update Latency": 14667.0, "Median Update Latency": 13609.4, "Tail Update Latency": 28234.6}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 591020.8, "Average Read Latency": 22561.7, "Median Read Latency": 13196.4, "Tail Read Latency": 254225.8, "Average Update Latency": 23085.0, "Median Update Latency": 13241.5, "Tail Update Latency": 258731.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 300017.6, "Average Read Latency": 102.0, "Median Read Latency": 95.3, "Tail Read Latency": 191.5, "Average Update Latency": 105.0, "Median Update Latency": 98.3, "Tail Update Latency": 195.9}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499869.8, "Average Read Latency": 5997.7, "Median Read Latency": 301.4, "Tail Read Latency": 12516.1, "Average Update Latency": 5930.8, "Median Update Latency": 305.7, "Tail Update Latency": 12515.5}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 499827.3, "Average Read Latency": 5915.9, "Median Read Latency": 426.2, "Tail Read Latency": 12499.6, "Average Update Latency": 6032.7, "Median Update Latency": 461.0, "Tail Update Latency": 12512.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 556585.5, "Average Read Latency": 14788.8, "Median Read Latency": 13517.9, "Tail Read Latency": 29137.7, "Average Update Latency": 15378.7, "Median Update Latency": 13528.5, "Tail Update Latency": 30915.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 537275.6, "Average Read Latency": 14558.4, "Median Read Latency": 14107.1, "Tail Read Latency": 27774.9, "Average Update Latency": 14705.4, "Median Update Latency": 14125.1, "Tail Update Latency": 28563.2}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 593056.6, "Average Read Latency": 21590.9, "Median Read Latency": 12944.0, "Tail Read Latency": 252472.0, "Average Update Latency": 20935.6, "Median Update Latency": 12936.0, "Tail Update Latency": 247543.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 100020.2, "Average Read Latency": 106.1, "Median Read Latency": 93.3, "Tail Read Latency": 141.7, "Average Update Latency": 114.1, "Median Update Latency": 97.1, "Tail Update Latency": 149.9}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 483136.5, "Average Read Latency": 21744.3, "Median Read Latency": 11790.4, "Tail Read Latency": 260728.4, "Average Update Latency": 22431.0, "Median Update Latency": 11841.7, "Tail Update Latency": 261874.9}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 99979.6, "Average Read Latency": 101.1, "Median Read Latency": 93.7, "Tail Read Latency": 159.8, "Average Update Latency": 103.0, "Median Update Latency": 98.3, "Tail Update Latency": 164.6}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 508802.8, "Average Read Latency": 26925.5, "Median Read Latency": 16159.4, "Tail Read Latency": 305680.8, "Average Update Latency": 27087.0, "Median Update Latency": 16184.0, "Tail Update Latency": 308894.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 504924.7, "Average Read Latency": 27385.7, "Median Read Latency": 15963.9, "Tail Read Latency": 316903.3, "Average Update Latency": 28092.4, "Median Update Latency": 15989.5, "Tail Update Latency": 330779.7}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 399941.5, "Average Read Latency": 397.6, "Median Read Latency": 125.2, "Tail Read Latency": 6978.0, "Average Update Latency": 470.9, "Median Update Latency": 126.7, "Tail Update Latency": 8617.5}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 399946.2, "Average Read Latency": 118.5, "Median Read Latency": 103.7, "Tail Read Latency": 312.3, "Average Update Latency": 120.8, "Median Update Latency": 106.0, "Tail Update Latency": 315.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 521907.3, "Average Read Latency": 30505.1, "Median Read Latency": 19031.2, "Tail Read Latency": 325713.3, "Average Update Latency": 31379.0, "Median Update Latency": 19167.5, "Tail Update Latency": 343447.2}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 588199.3, "Average Read Latency": 24281.5, "Median Read Latency": 16005.6, "Tail Read Latency": 257868.6, "Average Update Latency": 24695.2, "Median Update Latency": 16193.2, "Tail Update Latency": 255176.7}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 100009.2, "Average Read Latency": 87.4, "Median Read Latency": 85.1, "Tail Read Latency": 127.9, "Average Update Latency": 91.8, "Median Update Latency": 89.4, "Tail Update Latency": 136.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499342.4, "Average Read Latency": 9734.8, "Median Read Latency": 2925.1, "Tail Read Latency": 227260.6, "Average Update Latency": 9818.0, "Median Update Latency": 2810.7, "Tail Update Latency": 226948.7}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 566785.4, "Average Read Latency": 14450.0, "Median Read Latency": 13321.1, "Tail Read Latency": 28639.9, "Average Update Latency": 14786.4, "Median Update Latency": 13336.6, "Tail Update Latency": 29296.3}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 484198.6, "Average Read Latency": 22790.6, "Median Read Latency": 12665.4, "Tail Read Latency": 260401.2, "Average Update Latency": 23421.5, "Median Update Latency": 12690.0, "Tail Update Latency": 263086.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 300025.2, "Average Read Latency": 103.4, "Median Read Latency": 96.4, "Tail Read Latency": 196.1, "Average Update Latency": 106.3, "Median Update Latency": 99.3, "Tail Update Latency": 200.9}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 500015.4, "Average Read Latency": 6152.8, "Median Read Latency": 404.1, "Tail Read Latency": 12509.5, "Average Update Latency": 6099.9, "Median Update Latency": 411.0, "Tail Update Latency": 12511.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 300039.2, "Average Read Latency": 124.6, "Median Read Latency": 106.2, "Tail Read Latency": 309.2, "Average Update Latency": 127.6, "Median Update Latency": 110.6, "Tail Update Latency": 307.5}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 562446.1, "Average Read Latency": 14500.5, "Median Read Latency": 13409.8, "Tail Read Latency": 28840.7, "Average Update Latency": 14795.3, "Median Update Latency": 13428.3, "Tail Update Latency": 29522.7}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 300046.6, "Average Read Latency": 101.3, "Median Read Latency": 94.0, "Tail Read Latency": 188.5, "Average Update Latency": 104.3, "Median Update Latency": 97.0, "Tail Update Latency": 192.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 400141.3, "Average Read Latency": 120.6, "Median Read Latency": 104.7, "Tail Read Latency": 327.4, "Average Update Latency": 123.6, "Median Update Latency": 107.2, "Tail Update Latency": 335.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 505837.0, "Average Read Latency": 24546.4, "Median Read Latency": 14161.5, "Tail Read Latency": 292122.1, "Average Update Latency": 25156.5, "Median Update Latency": 14246.9, "Tail Update Latency": 301784.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 499920.5, "Average Read Latency": 5654.0, "Median Read Latency": 246.0, "Tail Read Latency": 12468.0, "Average Update Latency": 5658.1, "Median Update Latency": 267.1, "Tail Update Latency": 12473.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 199974.9, "Average Read Latency": 88.8, "Median Read Latency": 85.6, "Tail Read Latency": 137.0, "Average Update Latency": 91.9, "Median Update Latency": 88.6, "Tail Update Latency": 140.3}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 400005.3, "Average Read Latency": 499.1, "Median Read Latency": 126.4, "Tail Read Latency": 8642.4, "Average Update Latency": 641.6, "Median Update Latency": 128.0, "Tail Update Latency": 12369.4}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 499585.4, "Average Read Latency": 22807.6, "Median Read Latency": 14217.1, "Tail Read Latency": 261935.9, "Average Update Latency": 23730.5, "Median Update Latency": 14227.2, "Tail Update Latency": 267588.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499872.9, "Average Read Latency": 9095.2, "Median Read Latency": 1999.4, "Tail Read Latency": 223459.8, "Average Update Latency": 9018.4, "Median Update Latency": 2238.1, "Tail Update Latency": 224467.4}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 512143.6, "Average Read Latency": 29722.6, "Median Read Latency": 21055.9, "Tail Read Latency": 283321.2, "Average Update Latency": 29978.3, "Median Update Latency": 21113.6, "Tail Update Latency": 284801.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 572018.0, "Average Read Latency": 16765.3, "Median Read Latency": 10506.8, "Tail Read Latency": 229974.4, "Average Update Latency": 16601.0, "Median Update Latency": 10497.5, "Tail Update Latency": 228711.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 300031.4, "Average Read Latency": 102.5, "Median Read Latency": 95.1, "Tail Read Latency": 191.8, "Average Update Latency": 105.5, "Median Update Latency": 98.1, "Tail Update Latency": 195.3}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 562067.4, "Average Read Latency": 14160.7, "Median Read Latency": 13325.5, "Tail Read Latency": 27283.7, "Average Update Latency": 14365.8, "Median Update Latency": 13339.3, "Tail Update Latency": 28413.8}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499850.2, "Average Read Latency": 6176.8, "Median Read Latency": 361.9, "Tail Read Latency": 12524.4, "Average Update Latency": 6170.8, "Median Update Latency": 352.4, "Tail Update Latency": 12877.4}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499691.9, "Average Read Latency": 8767.0, "Median Read Latency": 2861.2, "Tail Read Latency": 223798.7, "Average Update Latency": 8772.4, "Median Update Latency": 2479.0, "Tail Update Latency": 224325.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 100031.2, "Average Read Latency": 97.7, "Median Read Latency": 92.7, "Tail Read Latency": 155.8, "Average Update Latency": 101.6, "Median Update Latency": 97.2, "Tail Update Latency": 163.8}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 481460.5, "Average Read Latency": 22428.3, "Median Read Latency": 13809.5, "Tail Read Latency": 256138.5, "Average Update Latency": 22802.1, "Median Update Latency": 13825.4, "Tail Update Latency": 258239.0}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 570994.7, "Average Read Latency": 17480.1, "Median Read Latency": 7859.7, "Tail Read Latency": 426673.7, "Average Update Latency": 17599.4, "Median Update Latency": 7864.8, "Tail Update Latency": 240201.1}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 200020.2, "Average Read Latency": 89.4, "Median Read Latency": 86.2, "Tail Read Latency": 138.3, "Average Update Latency": 92.8, "Median Update Latency": 89.3, "Tail Update Latency": 140.7}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 399993.3, "Average Read Latency": 119.5, "Median Read Latency": 104.2, "Tail Read Latency": 314.1, "Average Update Latency": 122.4, "Median Update Latency": 106.7, "Tail Update Latency": 321.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 200007.8, "Average Read Latency": 110.5, "Median Read Latency": 96.4, "Tail Read Latency": 205.9, "Average Update Latency": 116.2, "Median Update Latency": 99.5, "Tail Update Latency": 210.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 400064.8, "Average Read Latency": 164.8, "Median Read Latency": 120.1, "Tail Read Latency": 526.5, "Average Update Latency": 167.2, "Median Update Latency": 123.8, "Tail Update Latency": 529.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 551472.7, "Average Read Latency": 14517.5, "Median Read Latency": 13680.0, "Tail Read Latency": 28180.0, "Average Update Latency": 14858.1, "Median Update Latency": 13688.6, "Tail Update Latency": 29120.5}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 299986.3, "Average Read Latency": 111.0, "Median Read Latency": 98.2, "Tail Read Latency": 248.2, "Average Update Latency": 114.4, "Median Update Latency": 101.9, "Tail Update Latency": 249.8}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 200028.9, "Average Read Latency": 88.9, "Median Read Latency": 85.7, "Tail Read Latency": 138.1, "Average Update Latency": 92.0, "Median Update Latency": 88.8, "Tail Update Latency": 141.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 399983.8, "Average Read Latency": 135.8, "Median Read Latency": 106.4, "Tail Read Latency": 540.6, "Average Update Latency": 139.1, "Median Update Latency": 109.7, "Tail Update Latency": 546.9}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 568478.0, "Average Read Latency": 16271.8, "Median Read Latency": 7670.5, "Tail Read Latency": 239477.7, "Average Update Latency": 15856.6, "Median Update Latency": 7765.8, "Tail Update Latency": 239148.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 483882.9, "Average Read Latency": 23404.3, "Median Read Latency": 12362.1, "Tail Read Latency": 262289.4, "Average Update Latency": 23599.2, "Median Update Latency": 12414.6, "Tail Update Latency": 262326.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 551328.0, "Average Read Latency": 14467.1, "Median Read Latency": 13952.0, "Tail Read Latency": 27149.0, "Average Update Latency": 14556.4, "Median Update Latency": 13962.9, "Tail Update Latency": 27773.5}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 481131.0, "Average Read Latency": 22506.3, "Median Read Latency": 11507.8, "Tail Read Latency": 262007.9, "Average Update Latency": 22827.6, "Median Update Latency": 11563.9, "Tail Update Latency": 263679.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 400037.1, "Average Read Latency": 165.2, "Median Read Latency": 119.3, "Tail Read Latency": 531.0, "Average Update Latency": 169.6, "Median Update Latency": 123.6, "Tail Update Latency": 532.5}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 99986.8, "Average Read Latency": 90.3, "Median Read Latency": 87.5, "Tail Read Latency": 135.8, "Average Update Latency": 95.2, "Median Update Latency": 92.8, "Tail Update Latency": 141.8}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 200009.2, "Average Read Latency": 111.1, "Median Read Latency": 94.4, "Tail Read Latency": 186.4, "Average Update Latency": 113.1, "Median Update Latency": 97.2, "Tail Update Latency": 190.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 499907.2, "Average Read Latency": 5301.1, "Median Read Latency": 250.1, "Tail Read Latency": 12385.9, "Average Update Latency": 5175.8, "Median Update Latency": 257.7, "Tail Update Latency": 12365.0}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 400026.7, "Average Read Latency": 514.2, "Median Read Latency": 126.7, "Tail Read Latency": 9091.9, "Average Update Latency": 630.1, "Median Update Latency": 127.6, "Tail Update Latency": 11801.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 199967.1, "Average Read Latency": 109.5, "Median Read Latency": 95.8, "Tail Read Latency": 192.7, "Average Update Latency": 113.8, "Median Update Latency": 98.7, "Tail Update Latency": 196.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 199972.8, "Average Read Latency": 109.1, "Median Read Latency": 95.2, "Tail Read Latency": 187.2, "Average Update Latency": 115.0, "Median Update Latency": 98.0, "Tail Update Latency": 193.8}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 523409.3, "Average Read Latency": 27322.2, "Median Read Latency": 19326.2, "Tail Read Latency": 267736.4, "Average Update Latency": 27708.9, "Median Update Latency": 19384.9, "Tail Update Latency": 269917.2}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200008.3, "Average Read Latency": 89.6, "Median Read Latency": 86.3, "Tail Read Latency": 140.2, "Average Update Latency": 92.8, "Median Update Latency": 89.6, "Tail Update Latency": 144.9}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 399965.1, "Average Read Latency": 327.9, "Median Read Latency": 122.5, "Tail Read Latency": 5263.0, "Average Update Latency": 391.3, "Median Update Latency": 124.9, "Tail Update Latency": 6715.6}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 99975.2, "Average Read Latency": 98.6, "Median Read Latency": 91.9, "Tail Read Latency": 155.6, "Average Update Latency": 105.7, "Median Update Latency": 96.6, "Tail Update Latency": 167.1}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 200050.2, "Average Read Latency": 106.7, "Median Read Latency": 94.6, "Tail Read Latency": 205.7, "Average Update Latency": 115.2, "Median Update Latency": 99.0, "Tail Update Latency": 209.5}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 501141.9, "Average Read Latency": 25688.6, "Median Read Latency": 16243.6, "Tail Read Latency": 268337.2, "Average Update Latency": 26464.4, "Median Update Latency": 16318.1, "Tail Update Latency": 276888.3}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 199997.0, "Average Read Latency": 106.0, "Median Read Latency": 95.5, "Tail Read Latency": 193.3, "Average Update Latency": 114.2, "Median Update Latency": 98.4, "Tail Update Latency": 200.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 568805.4, "Average Read Latency": 18387.6, "Median Read Latency": 8301.0, "Tail Read Latency": 240427.6, "Average Update Latency": 17812.2, "Median Update Latency": 8304.6, "Tail Update Latency": 239472.7}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 513429.8, "Average Read Latency": 30133.3, "Median Read Latency": 22433.9, "Tail Read Latency": 278764.5, "Average Update Latency": 30929.0, "Median Update Latency": 22540.2, "Tail Update Latency": 283029.4}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 553146.7, "Average Read Latency": 14127.2, "Median Read Latency": 13739.1, "Tail Read Latency": 26096.2, "Average Update Latency": 14191.5, "Median Update Latency": 13751.5, "Tail Update Latency": 27144.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 583230.3, "Average Read Latency": 24309.6, "Median Read Latency": 15008.4, "Tail Read Latency": 253633.3, "Average Update Latency": 24551.8, "Median Update Latency": 15043.3, "Tail Update Latency": 258419.3}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499923.0, "Average Read Latency": 6060.8, "Median Read Latency": 308.4, "Tail Read Latency": 12512.3, "Average Update Latency": 6120.7, "Median Update Latency": 308.0, "Tail Update Latency": 12523.5}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 300063.0, "Average Read Latency": 102.5, "Median Read Latency": 95.7, "Tail Read Latency": 194.1, "Average Update Latency": 105.7, "Median Update Latency": 98.8, "Tail Update Latency": 198.9}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 100007.3, "Average Read Latency": 97.7, "Median Read Latency": 91.8, "Tail Read Latency": 138.2, "Average Update Latency": 99.0, "Median Update Latency": 95.5, "Tail Update Latency": 145.3}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 99972.1, "Average Read Latency": 98.9, "Median Read Latency": 92.3, "Tail Read Latency": 161.8, "Average Update Latency": 102.7, "Median Update Latency": 96.9, "Tail Update Latency": 168.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 485044.5, "Average Read Latency": 21735.5, "Median Read Latency": 13171.3, "Tail Read Latency": 254360.8, "Average Update Latency": 22602.8, "Median Update Latency": 13190.5, "Tail Update Latency": 257507.7}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 400010.7, "Average Read Latency": 439.0, "Median Read Latency": 125.7, "Tail Read Latency": 7496.6, "Average Update Latency": 569.3, "Median Update Latency": 127.6, "Tail Update Latency": 10302.8}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 100042.6, "Average Read Latency": 107.3, "Median Read Latency": 92.6, "Tail Read Latency": 146.2, "Average Update Latency": 107.9, "Median Update Latency": 96.1, "Tail Update Latency": 153.3}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 505242.2, "Average Read Latency": 25212.8, "Median Read Latency": 14604.8, "Tail Read Latency": 293527.2, "Average Update Latency": 25954.0, "Median Update Latency": 14636.0, "Tail Update Latency": 303798.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 563200.4, "Average Read Latency": 14115.4, "Median Read Latency": 13483.0, "Tail Read Latency": 27664.1, "Average Update Latency": 14325.1, "Median Update Latency": 13492.8, "Tail Update Latency": 28634.0}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 400003.6, "Average Read Latency": 513.4, "Median Read Latency": 125.2, "Tail Read Latency": 8471.4, "Average Update Latency": 660.0, "Median Update Latency": 127.2, "Tail Update Latency": 11704.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 564264.6, "Average Read Latency": 13934.0, "Median Read Latency": 13410.7, "Tail Read Latency": 25832.0, "Average Update Latency": 14002.0, "Median Update Latency": 13406.5, "Tail Update Latency": 26774.4}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 200024.6, "Average Read Latency": 114.3, "Median Read Latency": 98.2, "Tail Read Latency": 217.0, "Average Update Latency": 121.5, "Median Update Latency": 101.5, "Tail Update Latency": 222.3}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 508365.3, "Average Read Latency": 27990.3, "Median Read Latency": 18580.4, "Tail Read Latency": 282523.6, "Average Update Latency": 29054.0, "Median Update Latency": 18675.8, "Tail Update Latency": 287869.5}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 559705.2, "Average Read Latency": 14509.1, "Median Read Latency": 13488.7, "Tail Read Latency": 28871.1, "Average Update Latency": 14863.5, "Median Update Latency": 13501.3, "Tail Update Latency": 30105.1}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 99994.5, "Average Read Latency": 87.2, "Median Read Latency": 85.0, "Tail Read Latency": 126.6, "Average Update Latency": 91.4, "Median Update Latency": 88.9, "Tail Update Latency": 129.9}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 501514.8, "Average Read Latency": 23603.7, "Median Read Latency": 13941.4, "Tail Read Latency": 279202.9, "Average Update Latency": 24082.1, "Median Update Latency": 13942.1, "Tail Update Latency": 285704.8}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 200062.3, "Average Read Latency": 87.5, "Median Read Latency": 84.7, "Tail Read Latency": 133.1, "Average Update Latency": 90.8, "Median Update Latency": 87.6, "Tail Update Latency": 138.4}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 199977.1, "Average Read Latency": 116.4, "Median Read Latency": 94.9, "Tail Read Latency": 193.0, "Average Update Latency": 126.1, "Median Update Latency": 97.7, "Tail Update Latency": 195.6}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 199995.0, "Average Read Latency": 103.5, "Median Read Latency": 94.8, "Tail Read Latency": 203.5, "Average Update Latency": 109.0, "Median Update Latency": 99.1, "Tail Update Latency": 210.7}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499863.2, "Average Read Latency": 8285.1, "Median Read Latency": 1249.7, "Tail Read Latency": 222452.4, "Average Update Latency": 8062.8, "Median Update Latency": 1341.5, "Tail Update Latency": 220803.4}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 200052.0, "Average Read Latency": 107.8, "Median Read Latency": 95.8, "Tail Read Latency": 216.4, "Average Update Latency": 112.4, "Median Update Latency": 100.4, "Tail Update Latency": 224.1}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 100039.2, "Average Read Latency": 88.7, "Median Read Latency": 86.2, "Tail Read Latency": 131.3, "Average Update Latency": 93.2, "Median Update Latency": 91.0, "Tail Update Latency": 139.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 300039.2, "Average Read Latency": 130.5, "Median Read Latency": 98.1, "Tail Read Latency": 277.9, "Average Update Latency": 144.7, "Median Update Latency": 100.7, "Tail Update Latency": 282.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 300055.2, "Average Read Latency": 150.9, "Median Read Latency": 106.6, "Tail Read Latency": 350.2, "Average Update Latency": 179.4, "Median Update Latency": 109.4, "Tail Update Latency": 375.6}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 199992.1, "Average Read Latency": 106.9, "Median Read Latency": 93.7, "Tail Read Latency": 179.6, "Average Update Latency": 111.6, "Median Update Latency": 96.5, "Tail Update Latency": 182.9}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 299997.1, "Average Read Latency": 112.1, "Median Read Latency": 99.2, "Tail Read Latency": 247.0, "Average Update Latency": 115.0, "Median Update Latency": 102.7, "Tail Update Latency": 253.4}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 399969.7, "Average Read Latency": 168.5, "Median Read Latency": 121.7, "Tail Read Latency": 531.6, "Average Update Latency": 171.4, "Median Update Latency": 125.8, "Tail Update Latency": 532.5}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 400026.4, "Average Read Latency": 167.9, "Median Read Latency": 120.5, "Tail Read Latency": 534.1, "Average Update Latency": 168.9, "Median Update Latency": 124.5, "Tail Update Latency": 534.3}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 570141.7, "Average Read Latency": 13902.0, "Median Read Latency": 13275.0, "Tail Read Latency": 26568.8, "Average Update Latency": 14129.1, "Median Update Latency": 13276.2, "Tail Update Latency": 27357.4}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499941.6, "Average Read Latency": 5510.0, "Median Read Latency": 260.2, "Tail Read Latency": 12442.8, "Average Update Latency": 5573.2, "Median Update Latency": 265.2, "Tail Update Latency": 12449.2}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 400003.9, "Average Read Latency": 405.2, "Median Read Latency": 123.5, "Tail Read Latency": 7444.2, "Average Update Latency": 485.1, "Median Update Latency": 125.6, "Tail Update Latency": 8808.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 551362.2, "Average Read Latency": 14173.0, "Median Read Latency": 13760.9, "Tail Read Latency": 26079.0, "Average Update Latency": 14300.7, "Median Update Latency": 13773.4, "Tail Update Latency": 26986.1}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 99941.4, "Average Read Latency": 97.8, "Median Read Latency": 92.8, "Tail Read Latency": 156.5, "Average Update Latency": 102.5, "Median Update Latency": 97.3, "Tail Update Latency": 163.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 200054.9, "Average Read Latency": 103.6, "Median Read Latency": 95.2, "Tail Read Latency": 206.7, "Average Update Latency": 106.7, "Median Update Latency": 99.6, "Tail Update Latency": 212.4}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 100050.5, "Average Read Latency": 100.3, "Median Read Latency": 92.7, "Tail Read Latency": 161.0, "Average Update Latency": 106.4, "Median Update Latency": 97.5, "Tail Update Latency": 171.6}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 542391.7, "Average Read Latency": 14457.0, "Median Read Latency": 13956.5, "Tail Read Latency": 26973.1, "Average Update Latency": 14591.2, "Median Update Latency": 13968.3, "Tail Update Latency": 28048.2}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 506568.2, "Average Read Latency": 27481.9, "Median Read Latency": 17120.2, "Tail Read Latency": 282905.9, "Average Update Latency": 28629.2, "Median Update Latency": 17194.0, "Tail Update Latency": 300706.8}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 524382.9, "Average Read Latency": 25836.3, "Median Read Latency": 16403.1, "Tail Read Latency": 277570.7, "Average Update Latency": 26235.7, "Median Update Latency": 16440.2, "Tail Update Latency": 281487.5}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 557140.5, "Average Read Latency": 15107.5, "Median Read Latency": 13671.3, "Tail Read Latency": 28820.7, "Average Update Latency": 15289.5, "Median Update Latency": 13687.1, "Tail Update Latency": 29491.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100009.8, "Average Read Latency": 88.3, "Median Read Latency": 85.7, "Tail Read Latency": 129.3, "Average Update Latency": 93.3, "Median Update Latency": 90.2, "Tail Update Latency": 137.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 400011.7, "Average Read Latency": 168.2, "Median Read Latency": 121.6, "Tail Read Latency": 530.2, "Average Update Latency": 171.7, "Median Update Latency": 125.7, "Tail Update Latency": 530.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 545392.7, "Average Read Latency": 14524.9, "Median Read Latency": 14085.0, "Tail Read Latency": 26696.8, "Average Update Latency": 14561.1, "Median Update Latency": 14090.8, "Tail Update Latency": 27537.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300053.5, "Average Read Latency": 152.1, "Median Read Latency": 107.5, "Tail Read Latency": 361.9, "Average Update Latency": 171.8, "Median Update Latency": 109.9, "Tail Update Latency": 401.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100013.5, "Average Read Latency": 88.8, "Median Read Latency": 86.3, "Tail Read Latency": 131.4, "Average Update Latency": 93.6, "Median Update Latency": 91.2, "Tail Update Latency": 139.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 590949.6, "Average Read Latency": 23201.7, "Median Read Latency": 13867.4, "Tail Read Latency": 257035.9, "Average Update Latency": 23215.8, "Median Update Latency": 13936.4, "Tail Update Latency": 256286.4}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 500032.9, "Average Read Latency": 6024.9, "Median Read Latency": 325.5, "Tail Read Latency": 12507.4, "Average Update Latency": 5990.1, "Median Update Latency": 318.2, "Tail Update Latency": 12513.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 400011.6, "Average Read Latency": 397.4, "Median Read Latency": 123.7, "Tail Read Latency": 7303.0, "Average Update Latency": 462.5, "Median Update Latency": 125.7, "Tail Update Latency": 8229.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 300044.3, "Average Read Latency": 112.9, "Median Read Latency": 98.8, "Tail Read Latency": 253.8, "Average Update Latency": 116.6, "Median Update Latency": 102.4, "Tail Update Latency": 258.9}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 556827.9, "Average Read Latency": 14083.2, "Median Read Latency": 13553.7, "Tail Read Latency": 26544.7, "Average Update Latency": 14274.5, "Median Update Latency": 13560.2, "Tail Update Latency": 27513.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 570344.3, "Average Read Latency": 16692.1, "Median Read Latency": 7383.9, "Tail Read Latency": 242945.4, "Average Update Latency": 17280.3, "Median Update Latency": 7392.2, "Tail Update Latency": 256143.3}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 545820.0, "Average Read Latency": 14552.1, "Median Read Latency": 13952.3, "Tail Read Latency": 27862.9, "Average Update Latency": 14728.5, "Median Update Latency": 13962.3, "Tail Update Latency": 28839.6}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 400080.1, "Average Read Latency": 166.0, "Median Read Latency": 120.3, "Tail Read Latency": 526.1, "Average Update Latency": 170.8, "Median Update Latency": 124.3, "Tail Update Latency": 531.4}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 568165.9, "Average Read Latency": 17498.3, "Median Read Latency": 7789.2, "Tail Read Latency": 250274.4, "Average Update Latency": 17548.0, "Median Update Latency": 7823.6, "Tail Update Latency": 244845.2}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499788.1, "Average Read Latency": 7801.0, "Median Read Latency": 2386.1, "Tail Read Latency": 221011.4, "Average Update Latency": 7780.0, "Median Update Latency": 2315.1, "Tail Update Latency": 220887.8}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 200012.1, "Average Read Latency": 89.5, "Median Read Latency": 85.9, "Tail Read Latency": 139.6, "Average Update Latency": 92.8, "Median Update Latency": 88.8, "Tail Update Latency": 142.3}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 559468.9, "Average Read Latency": 14121.9, "Median Read Latency": 13490.0, "Tail Read Latency": 26682.4, "Average Update Latency": 14145.8, "Median Update Latency": 13493.7, "Tail Update Latency": 27243.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 200013.9, "Average Read Latency": 113.8, "Median Read Latency": 95.7, "Tail Read Latency": 200.4, "Average Update Latency": 116.4, "Median Update Latency": 98.9, "Tail Update Latency": 200.9}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499928.7, "Average Read Latency": 6641.5, "Median Read Latency": 871.2, "Tail Read Latency": 13894.6, "Average Update Latency": 6746.3, "Median Update Latency": 799.8, "Tail Update Latency": 17616.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 299962.2, "Average Read Latency": 137.1, "Median Read Latency": 99.2, "Tail Read Latency": 291.1, "Average Update Latency": 163.0, "Median Update Latency": 101.5, "Tail Update Latency": 310.7}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 400101.2, "Average Read Latency": 171.9, "Median Read Latency": 122.1, "Tail Read Latency": 560.5, "Average Update Latency": 176.1, "Median Update Latency": 125.7, "Tail Update Latency": 560.2}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 595659.0, "Average Read Latency": 22200.9, "Median Read Latency": 14358.5, "Tail Read Latency": 251441.8, "Average Update Latency": 22037.6, "Median Update Latency": 14350.7, "Tail Update Latency": 248381.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200002.6, "Average Read Latency": 90.2, "Median Read Latency": 86.8, "Tail Read Latency": 139.4, "Average Update Latency": 93.3, "Median Update Latency": 90.3, "Tail Update Latency": 142.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 552283.4, "Average Read Latency": 14454.4, "Median Read Latency": 13816.8, "Tail Read Latency": 27832.5, "Average Update Latency": 14769.5, "Median Update Latency": 13828.5, "Tail Update Latency": 29015.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499884.1, "Average Read Latency": 9102.9, "Median Read Latency": 1961.9, "Tail Read Latency": 225147.3, "Average Update Latency": 9138.4, "Median Update Latency": 1857.1, "Tail Update Latency": 225084.0}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499843.7, "Average Read Latency": 8125.5, "Median Read Latency": 1983.9, "Tail Read Latency": 221187.4, "Average Update Latency": 8089.3, "Median Update Latency": 1973.7, "Tail Update Latency": 220497.4}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 99963.6, "Average Read Latency": 88.2, "Median Read Latency": 85.7, "Tail Read Latency": 128.6, "Average Update Latency": 92.4, "Median Update Latency": 90.3, "Tail Update Latency": 136.1}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 200031.4, "Average Read Latency": 114.4, "Median Read Latency": 96.0, "Tail Read Latency": 199.2, "Average Update Latency": 120.3, "Median Update Latency": 99.0, "Tail Update Latency": 204.7}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 400105.6, "Average Read Latency": 649.8, "Median Read Latency": 128.9, "Tail Read Latency": 11216.4, "Average Update Latency": 838.8, "Median Update Latency": 130.4, "Tail Update Latency": 14951.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 558774.2, "Average Read Latency": 14196.4, "Median Read Latency": 13503.5, "Tail Read Latency": 27045.1, "Average Update Latency": 14399.5, "Median Update Latency": 13507.5, "Tail Update Latency": 28297.2}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 200015.1, "Average Read Latency": 103.6, "Median Read Latency": 95.8, "Tail Read Latency": 209.8, "Average Update Latency": 107.7, "Median Update Latency": 100.0, "Tail Update Latency": 211.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 199979.5, "Average Read Latency": 105.2, "Median Read Latency": 95.0, "Tail Read Latency": 207.7, "Average Update Latency": 109.8, "Median Update Latency": 99.2, "Tail Update Latency": 211.7}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 300043.6, "Average Read Latency": 101.9, "Median Read Latency": 94.6, "Tail Read Latency": 193.0, "Average Update Latency": 105.0, "Median Update Latency": 97.6, "Tail Update Latency": 197.1}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 399968.7, "Average Read Latency": 503.6, "Median Read Latency": 124.7, "Tail Read Latency": 8607.1, "Average Update Latency": 638.2, "Median Update Latency": 126.4, "Tail Update Latency": 11707.2}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 523002.1, "Average Read Latency": 30960.2, "Median Read Latency": 21851.9, "Tail Read Latency": 300620.7, "Average Update Latency": 31559.9, "Median Update Latency": 21887.6, "Tail Update Latency": 318782.1}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 572788.6, "Average Read Latency": 14074.0, "Median Read Latency": 13191.6, "Tail Read Latency": 27766.1, "Average Update Latency": 14299.6, "Median Update Latency": 13201.9, "Tail Update Latency": 28688.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 484466.6, "Average Read Latency": 23328.9, "Median Read Latency": 13946.1, "Tail Read Latency": 259201.9, "Average Update Latency": 23879.5, "Median Update Latency": 14027.8, "Tail Update Latency": 260467.4}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 300044.9, "Average Read Latency": 143.4, "Median Read Latency": 99.8, "Tail Read Latency": 296.5, "Average Update Latency": 162.7, "Median Update Latency": 101.9, "Tail Update Latency": 301.0}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 100022.3, "Average Read Latency": 108.5, "Median Read Latency": 93.2, "Tail Read Latency": 146.1, "Average Update Latency": 115.0, "Median Update Latency": 96.9, "Tail Update Latency": 151.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 399980.9, "Average Read Latency": 340.6, "Median Read Latency": 125.1, "Tail Read Latency": 5730.7, "Average Update Latency": 407.7, "Median Update Latency": 127.4, "Tail Update Latency": 6864.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300091.2, "Average Read Latency": 144.8, "Median Read Latency": 106.2, "Tail Read Latency": 343.6, "Average Update Latency": 161.9, "Median Update Latency": 108.9, "Tail Update Latency": 360.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 100027.0, "Average Read Latency": 89.3, "Median Read Latency": 86.7, "Tail Read Latency": 132.3, "Average Update Latency": 93.6, "Median Update Latency": 91.6, "Tail Update Latency": 138.4}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 571744.3, "Average Read Latency": 18239.1, "Median Read Latency": 7966.6, "Tail Read Latency": 258176.5, "Average Update Latency": 17792.7, "Median Update Latency": 7969.4, "Tail Update Latency": 240191.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 482776.4, "Average Read Latency": 23207.2, "Median Read Latency": 12687.5, "Tail Read Latency": 261118.5, "Average Update Latency": 23752.1, "Median Update Latency": 12688.8, "Tail Update Latency": 263425.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 200056.7, "Average Read Latency": 87.9, "Median Read Latency": 84.9, "Tail Read Latency": 135.5, "Average Update Latency": 90.6, "Median Update Latency": 87.6, "Tail Update Latency": 138.9}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 100034.9, "Average Read Latency": 97.7, "Median Read Latency": 92.8, "Tail Read Latency": 157.2, "Average Update Latency": 101.4, "Median Update Latency": 97.5, "Tail Update Latency": 163.4}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 483472.2, "Average Read Latency": 24399.1, "Median Read Latency": 14174.2, "Tail Read Latency": 262022.8, "Average Update Latency": 25062.0, "Median Update Latency": 14225.3, "Tail Update Latency": 262401.2}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 400016.8, "Average Read Latency": 167.7, "Median Read Latency": 121.7, "Tail Read Latency": 533.8, "Average Update Latency": 169.8, "Median Update Latency": 125.7, "Tail Update Latency": 546.9}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 300001.9, "Average Read Latency": 125.3, "Median Read Latency": 106.8, "Tail Read Latency": 309.9, "Average Update Latency": 128.9, "Median Update Latency": 111.1, "Tail Update Latency": 313.8}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499963.2, "Average Read Latency": 6342.0, "Median Read Latency": 441.5, "Tail Read Latency": 12658.3, "Average Update Latency": 6355.1, "Median Update Latency": 494.2, "Tail Update Latency": 13223.5}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499617.5, "Average Read Latency": 8269.9, "Median Read Latency": 2759.8, "Tail Read Latency": 224088.1, "Average Update Latency": 8178.7, "Median Update Latency": 3031.5, "Tail Update Latency": 223476.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 588443.4, "Average Read Latency": 26112.6, "Median Read Latency": 20682.8, "Tail Read Latency": 242468.9, "Average Update Latency": 26425.4, "Median Update Latency": 20902.7, "Tail Update Latency": 245837.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 100018.6, "Average Read Latency": 90.1, "Median Read Latency": 87.1, "Tail Read Latency": 136.7, "Average Update Latency": 94.9, "Median Update Latency": 92.2, "Tail Update Latency": 140.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 559667.2, "Average Read Latency": 14485.2, "Median Read Latency": 13522.7, "Tail Read Latency": 28782.9, "Average Update Latency": 14755.5, "Median Update Latency": 13534.6, "Tail Update Latency": 29313.6}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 200015.4, "Average Read Latency": 107.1, "Median Read Latency": 95.1, "Tail Read Latency": 213.8, "Average Update Latency": 111.7, "Median Update Latency": 99.5, "Tail Update Latency": 220.3}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 100033.3, "Average Read Latency": 99.8, "Median Read Latency": 92.3, "Tail Read Latency": 161.6, "Average Update Latency": 103.8, "Median Update Latency": 97.0, "Tail Update Latency": 170.4}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 299933.2, "Average Read Latency": 139.9, "Median Read Latency": 100.0, "Tail Read Latency": 301.5, "Average Update Latency": 161.2, "Median Update Latency": 102.2, "Tail Update Latency": 314.1}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 200010.5, "Average Read Latency": 105.5, "Median Read Latency": 96.1, "Tail Read Latency": 205.9, "Average Update Latency": 109.1, "Median Update Latency": 100.4, "Tail Update Latency": 217.3}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 100012.6, "Average Read Latency": 106.1, "Median Read Latency": 92.5, "Tail Read Latency": 145.2, "Average Update Latency": 111.7, "Median Update Latency": 96.1, "Tail Update Latency": 152.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 523843.4, "Average Read Latency": 30898.6, "Median Read Latency": 21215.0, "Tail Read Latency": 299857.7, "Average Update Latency": 31465.1, "Median Update Latency": 21362.8, "Tail Update Latency": 307240.6}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 399982.5, "Average Read Latency": 118.8, "Median Read Latency": 103.8, "Tail Read Latency": 313.1, "Average Update Latency": 122.0, "Median Update Latency": 106.2, "Tail Update Latency": 314.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 99988.5, "Average Read Latency": 104.5, "Median Read Latency": 93.2, "Tail Read Latency": 146.5, "Average Update Latency": 107.0, "Median Update Latency": 97.1, "Tail Update Latency": 151.8}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 574189.3, "Average Read Latency": 18038.3, "Median Read Latency": 8210.5, "Tail Read Latency": 240229.2, "Average Update Latency": 18318.3, "Median Update Latency": 8188.4, "Tail Update Latency": 248571.5}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 565544.8, "Average Read Latency": 15714.2, "Median Read Latency": 7837.3, "Tail Read Latency": 238771.6, "Average Update Latency": 16003.6, "Median Update Latency": 7872.0, "Tail Update Latency": 238388.6}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 552365.2, "Average Read Latency": 14343.5, "Median Read Latency": 13769.3, "Tail Read Latency": 27771.0, "Average Update Latency": 14655.1, "Median Update Latency": 13784.5, "Tail Update Latency": 28804.6}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 485556.8, "Average Read Latency": 22612.7, "Median Read Latency": 12181.9, "Tail Read Latency": 261557.4, "Average Update Latency": 23484.6, "Median Update Latency": 12217.8, "Tail Update Latency": 265813.1}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 99996.6, "Average Read Latency": 99.1, "Median Read Latency": 93.1, "Tail Read Latency": 161.5, "Average Update Latency": 108.4, "Median Update Latency": 98.1, "Tail Update Latency": 171.4}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200021.4, "Average Read Latency": 89.5, "Median Read Latency": 86.2, "Tail Read Latency": 139.8, "Average Update Latency": 93.0, "Median Update Latency": 89.7, "Tail Update Latency": 144.4}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 100023.4, "Average Read Latency": 101.6, "Median Read Latency": 92.2, "Tail Read Latency": 138.2, "Average Update Latency": 105.3, "Median Update Latency": 95.9, "Tail Update Latency": 142.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100011.2, "Average Read Latency": 87.7, "Median Read Latency": 85.5, "Tail Read Latency": 127.9, "Average Update Latency": 92.2, "Median Update Latency": 89.9, "Tail Update Latency": 135.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300050.2, "Average Read Latency": 154.7, "Median Read Latency": 107.2, "Tail Read Latency": 380.9, "Average Update Latency": 175.7, "Median Update Latency": 109.8, "Tail Update Latency": 402.4}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 499883.6, "Average Read Latency": 6393.3, "Median Read Latency": 437.3, "Tail Read Latency": 12514.9, "Average Update Latency": 6337.7, "Median Update Latency": 393.9, "Tail Update Latency": 12520.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 300035.7, "Average Read Latency": 135.2, "Median Read Latency": 99.5, "Tail Read Latency": 292.3, "Average Update Latency": 154.5, "Median Update Latency": 101.7, "Tail Update Latency": 306.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499900.0, "Average Read Latency": 5934.3, "Median Read Latency": 351.8, "Tail Read Latency": 12598.0, "Average Update Latency": 5855.4, "Median Update Latency": 344.2, "Tail Update Latency": 12702.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 515298.2, "Average Read Latency": 25658.7, "Median Read Latency": 16813.3, "Tail Read Latency": 264429.2, "Average Update Latency": 26132.2, "Median Update Latency": 16995.2, "Tail Update Latency": 266163.6}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 99994.5, "Average Read Latency": 102.1, "Median Read Latency": 93.2, "Tail Read Latency": 146.5, "Average Update Latency": 106.5, "Median Update Latency": 96.6, "Tail Update Latency": 152.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 100019.5, "Average Read Latency": 98.5, "Median Read Latency": 92.4, "Tail Read Latency": 161.9, "Average Update Latency": 108.6, "Median Update Latency": 97.6, "Tail Update Latency": 171.1}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 552977.8, "Average Read Latency": 14404.7, "Median Read Latency": 14014.3, "Tail Read Latency": 27001.4, "Average Update Latency": 14445.6, "Median Update Latency": 14011.5, "Tail Update Latency": 27879.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 100020.2, "Average Read Latency": 89.1, "Median Read Latency": 86.6, "Tail Read Latency": 132.6, "Average Update Latency": 93.7, "Median Update Latency": 91.7, "Tail Update Latency": 139.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 400042.3, "Average Read Latency": 464.8, "Median Read Latency": 123.5, "Tail Read Latency": 8525.3, "Average Update Latency": 617.0, "Median Update Latency": 125.1, "Tail Update Latency": 11779.4}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 566050.4, "Average Read Latency": 14549.1, "Median Read Latency": 13249.7, "Tail Read Latency": 30317.0, "Average Update Latency": 15404.0, "Median Update Latency": 13266.3, "Tail Update Latency": 41613.4}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 400012.9, "Average Read Latency": 332.8, "Median Read Latency": 125.5, "Tail Read Latency": 5736.9, "Average Update Latency": 382.9, "Median Update Latency": 128.0, "Tail Update Latency": 6504.9}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 593222.1, "Average Read Latency": 22249.0, "Median Read Latency": 13330.8, "Tail Read Latency": 253575.9, "Average Update Latency": 22117.2, "Median Update Latency": 13377.9, "Tail Update Latency": 252096.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 400016.3, "Average Read Latency": 170.9, "Median Read Latency": 121.3, "Tail Read Latency": 551.8, "Average Update Latency": 173.3, "Median Update Latency": 124.9, "Tail Update Latency": 551.7}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200014.7, "Average Read Latency": 89.5, "Median Read Latency": 86.2, "Tail Read Latency": 139.6, "Average Update Latency": 92.7, "Median Update Latency": 89.6, "Tail Update Latency": 143.3}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499623.3, "Average Read Latency": 8449.4, "Median Read Latency": 1455.3, "Tail Read Latency": 222915.9, "Average Update Latency": 8383.3, "Median Update Latency": 1286.5, "Tail Update Latency": 221473.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499929.8, "Average Read Latency": 6332.6, "Median Read Latency": 543.9, "Tail Read Latency": 12632.1, "Average Update Latency": 6312.7, "Median Update Latency": 541.5, "Tail Update Latency": 12882.3}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 565990.5, "Average Read Latency": 15883.4, "Median Read Latency": 7909.7, "Tail Read Latency": 239232.0, "Average Update Latency": 15701.1, "Median Update Latency": 7892.2, "Tail Update Latency": 238159.5}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499869.2, "Average Read Latency": 6090.8, "Median Read Latency": 332.7, "Tail Read Latency": 12489.9, "Average Update Latency": 6077.2, "Median Update Latency": 332.5, "Tail Update Latency": 12493.0}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 399964.9, "Average Read Latency": 168.8, "Median Read Latency": 121.7, "Tail Read Latency": 536.5, "Average Update Latency": 171.7, "Median Update Latency": 125.2, "Tail Update Latency": 535.5}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 516226.0, "Average Read Latency": 30974.0, "Median Read Latency": 21842.3, "Tail Read Latency": 288002.8, "Average Update Latency": 31947.7, "Median Update Latency": 21924.2, "Tail Update Latency": 300723.5}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 100001.3, "Average Read Latency": 99.0, "Median Read Latency": 92.2, "Tail Read Latency": 160.2, "Average Update Latency": 104.2, "Median Update Latency": 97.0, "Tail Update Latency": 168.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 483338.0, "Average Read Latency": 23768.4, "Median Read Latency": 12569.4, "Tail Read Latency": 264303.9, "Average Update Latency": 24069.5, "Median Update Latency": 12554.1, "Tail Update Latency": 278564.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 300018.3, "Average Read Latency": 102.1, "Median Read Latency": 94.8, "Tail Read Latency": 193.4, "Average Update Latency": 105.2, "Median Update Latency": 97.9, "Tail Update Latency": 198.2}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 200041.6, "Average Read Latency": 89.2, "Median Read Latency": 86.0, "Tail Read Latency": 138.6, "Average Update Latency": 92.5, "Median Update Latency": 89.3, "Tail Update Latency": 141.5}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 200009.1, "Average Read Latency": 112.5, "Median Read Latency": 96.7, "Tail Read Latency": 207.2, "Average Update Latency": 113.6, "Median Update Latency": 99.9, "Tail Update Latency": 207.1}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 199985.6, "Average Read Latency": 105.2, "Median Read Latency": 94.5, "Tail Read Latency": 203.9, "Average Update Latency": 109.4, "Median Update Latency": 99.0, "Tail Update Latency": 208.2}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 299983.7, "Average Read Latency": 112.0, "Median Read Latency": 98.3, "Tail Read Latency": 252.2, "Average Update Latency": 116.0, "Median Update Latency": 102.0, "Tail Update Latency": 258.3}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 299979.0, "Average Read Latency": 144.9, "Median Read Latency": 106.7, "Tail Read Latency": 339.3, "Average Update Latency": 156.2, "Median Update Latency": 109.7, "Tail Update Latency": 357.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 100027.0, "Average Read Latency": 89.6, "Median Read Latency": 86.9, "Tail Read Latency": 135.5, "Average Update Latency": 94.2, "Median Update Latency": 91.7, "Tail Update Latency": 140.7}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 483591.7, "Average Read Latency": 23644.7, "Median Read Latency": 12619.8, "Tail Read Latency": 263304.6, "Average Update Latency": 23631.0, "Median Update Latency": 12678.4, "Tail Update Latency": 263913.6}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 200026.5, "Average Read Latency": 104.3, "Median Read Latency": 95.2, "Tail Read Latency": 205.3, "Average Update Latency": 108.0, "Median Update Latency": 99.4, "Tail Update Latency": 216.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 300038.6, "Average Read Latency": 134.9, "Median Read Latency": 99.2, "Tail Read Latency": 276.6, "Average Update Latency": 154.7, "Median Update Latency": 101.3, "Tail Update Latency": 290.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 593965.2, "Average Read Latency": 24283.7, "Median Read Latency": 13624.9, "Tail Read Latency": 261136.7, "Average Update Latency": 24738.5, "Median Update Latency": 13602.8, "Tail Update Latency": 262173.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499612.2, "Average Read Latency": 8596.2, "Median Read Latency": 2748.0, "Tail Read Latency": 223729.9, "Average Update Latency": 8476.2, "Median Update Latency": 2718.0, "Tail Update Latency": 223193.2}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 560186.5, "Average Read Latency": 14517.3, "Median Read Latency": 13385.3, "Tail Read Latency": 27977.8, "Average Update Latency": 14639.9, "Median Update Latency": 13384.5, "Tail Update Latency": 29073.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 505163.8, "Average Read Latency": 25510.4, "Median Read Latency": 16093.1, "Tail Read Latency": 269451.5, "Average Update Latency": 26011.8, "Median Update Latency": 16104.5, "Tail Update Latency": 273392.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 300044.8, "Average Read Latency": 101.8, "Median Read Latency": 94.7, "Tail Read Latency": 191.6, "Average Update Latency": 104.2, "Median Update Latency": 97.8, "Tail Update Latency": 194.8}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 199980.1, "Average Read Latency": 117.0, "Median Read Latency": 97.2, "Tail Read Latency": 209.1, "Average Update Latency": 121.7, "Median Update Latency": 100.4, "Tail Update Latency": 215.6}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 400003.8, "Average Read Latency": 166.6, "Median Read Latency": 121.0, "Tail Read Latency": 529.0, "Average Update Latency": 169.8, "Median Update Latency": 124.6, "Tail Update Latency": 533.3}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 564867.2, "Average Read Latency": 17673.5, "Median Read Latency": 7846.9, "Tail Read Latency": 239715.7, "Average Update Latency": 17718.3, "Median Update Latency": 7832.1, "Tail Update Latency": 244295.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499583.7, "Average Read Latency": 9123.9, "Median Read Latency": 1792.8, "Tail Read Latency": 225057.1, "Average Update Latency": 8751.4, "Median Update Latency": 1800.9, "Tail Update Latency": 223958.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 200026.6, "Average Read Latency": 118.7, "Median Read Latency": 97.8, "Tail Read Latency": 216.5, "Average Update Latency": 122.4, "Median Update Latency": 100.7, "Tail Update Latency": 218.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 551066.7, "Average Read Latency": 14675.7, "Median Read Latency": 13729.9, "Tail Read Latency": 27851.1, "Average Update Latency": 14638.8, "Median Update Latency": 13742.6, "Tail Update Latency": 28538.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 399977.6, "Average Read Latency": 118.6, "Median Read Latency": 104.2, "Tail Read Latency": 302.3, "Average Update Latency": 121.8, "Median Update Latency": 106.5, "Tail Update Latency": 308.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 511298.1, "Average Read Latency": 26280.4, "Median Read Latency": 15560.6, "Tail Read Latency": 281257.5, "Average Update Latency": 26637.7, "Median Update Latency": 15625.4, "Tail Update Latency": 285255.4}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 506555.1, "Average Read Latency": 28482.6, "Median Read Latency": 18891.4, "Tail Read Latency": 282206.6, "Average Update Latency": 28754.9, "Median Update Latency": 19003.9, "Tail Update Latency": 284169.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 514371.6, "Average Read Latency": 29101.7, "Median Read Latency": 21669.8, "Tail Read Latency": 273752.1, "Average Update Latency": 29954.2, "Median Update Latency": 21799.6, "Tail Update Latency": 278109.2}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 400000.9, "Average Read Latency": 373.9, "Median Read Latency": 122.7, "Tail Read Latency": 6735.6, "Average Update Latency": 448.9, "Median Update Latency": 124.6, "Tail Update Latency": 7943.0}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 483081.7, "Average Read Latency": 22705.2, "Median Read Latency": 12677.3, "Tail Read Latency": 259608.1, "Average Update Latency": 23065.0, "Median Update Latency": 12665.1, "Tail Update Latency": 261171.9}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 399930.7, "Average Read Latency": 371.1, "Median Read Latency": 126.3, "Tail Read Latency": 6599.4, "Average Update Latency": 429.3, "Median Update Latency": 128.2, "Tail Update Latency": 7261.3}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 199965.3, "Average Read Latency": 103.3, "Median Read Latency": 95.3, "Tail Read Latency": 209.0, "Average Update Latency": 107.9, "Median Update Latency": 99.7, "Tail Update Latency": 214.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 300075.3, "Average Read Latency": 146.2, "Median Read Latency": 99.6, "Tail Read Latency": 292.5, "Average Update Latency": 176.5, "Median Update Latency": 101.9, "Tail Update Latency": 325.1}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 199994.5, "Average Read Latency": 111.3, "Median Read Latency": 96.5, "Tail Read Latency": 203.8, "Average Update Latency": 114.5, "Median Update Latency": 99.9, "Tail Update Latency": 207.9}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 592931.9, "Average Read Latency": 22877.9, "Median Read Latency": 13800.4, "Tail Read Latency": 253284.3, "Average Update Latency": 22788.0, "Median Update Latency": 13750.6, "Tail Update Latency": 252488.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 99981.8, "Average Read Latency": 102.7, "Median Read Latency": 93.1, "Tail Read Latency": 157.3, "Average Update Latency": 108.1, "Median Update Latency": 98.0, "Tail Update Latency": 165.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 400049.6, "Average Read Latency": 161.4, "Median Read Latency": 119.0, "Tail Read Latency": 509.9, "Average Update Latency": 164.9, "Median Update Latency": 122.8, "Tail Update Latency": 510.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 521248.0, "Average Read Latency": 28812.6, "Median Read Latency": 20240.5, "Tail Read Latency": 281905.5, "Average Update Latency": 29284.3, "Median Update Latency": 20399.9, "Tail Update Latency": 285492.9}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 300029.6, "Average Read Latency": 136.9, "Median Read Latency": 99.2, "Tail Read Latency": 266.3, "Average Update Latency": 154.1, "Median Update Latency": 101.4, "Tail Update Latency": 281.1}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 100004.2, "Average Read Latency": 87.7, "Median Read Latency": 85.3, "Tail Read Latency": 127.7, "Average Update Latency": 92.7, "Median Update Latency": 89.6, "Tail Update Latency": 137.4}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 200017.6, "Average Read Latency": 89.5, "Median Read Latency": 86.3, "Tail Read Latency": 138.8, "Average Update Latency": 92.7, "Median Update Latency": 89.7, "Tail Update Latency": 141.6}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 517644.0, "Average Read Latency": 30211.0, "Median Read Latency": 21342.1, "Tail Read Latency": 282634.8, "Average Update Latency": 30655.5, "Median Update Latency": 21346.5, "Tail Update Latency": 286013.2}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 399996.2, "Average Read Latency": 118.0, "Median Read Latency": 103.7, "Tail Read Latency": 305.8, "Average Update Latency": 120.7, "Median Update Latency": 106.1, "Tail Update Latency": 308.2}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 300027.9, "Average Read Latency": 144.4, "Median Read Latency": 100.1, "Tail Read Latency": 351.6, "Average Update Latency": 185.9, "Median Update Latency": 102.1, "Tail Update Latency": 388.2}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 199988.4, "Average Read Latency": 110.4, "Median Read Latency": 95.8, "Tail Read Latency": 198.4, "Average Update Latency": 111.7, "Median Update Latency": 99.2, "Tail Update Latency": 198.7}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 587969.8, "Average Read Latency": 20844.7, "Median Read Latency": 13753.3, "Tail Read Latency": 239446.0, "Average Update Latency": 21041.6, "Median Update Latency": 13787.1, "Tail Update Latency": 239437.7}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 300005.8, "Average Read Latency": 141.2, "Median Read Latency": 100.0, "Tail Read Latency": 308.8, "Average Update Latency": 175.5, "Median Update Latency": 102.1, "Tail Update Latency": 326.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499978.0, "Average Read Latency": 5874.8, "Median Read Latency": 281.6, "Tail Read Latency": 12487.9, "Average Update Latency": 5783.0, "Median Update Latency": 282.5, "Tail Update Latency": 12487.2}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 199988.1, "Average Read Latency": 106.0, "Median Read Latency": 94.9, "Tail Read Latency": 205.8, "Average Update Latency": 108.5, "Median Update Latency": 99.3, "Tail Update Latency": 212.0}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 540368.3, "Average Read Latency": 14393.4, "Median Read Latency": 14151.1, "Tail Read Latency": 26192.4, "Average Update Latency": 14474.1, "Median Update Latency": 14154.5, "Tail Update Latency": 27632.7}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 300005.6, "Average Read Latency": 112.0, "Median Read Latency": 98.1, "Tail Read Latency": 248.8, "Average Update Latency": 113.9, "Median Update Latency": 101.6, "Tail Update Latency": 249.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 561816.0, "Average Read Latency": 14040.8, "Median Read Latency": 13441.7, "Tail Read Latency": 26537.0, "Average Update Latency": 14244.9, "Median Update Latency": 13445.4, "Tail Update Latency": 27451.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 573910.7, "Average Read Latency": 14312.0, "Median Read Latency": 13144.2, "Tail Read Latency": 28305.4, "Average Update Latency": 14618.6, "Median Update Latency": 13152.0, "Tail Update Latency": 29016.9}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 514345.1, "Average Read Latency": 30720.7, "Median Read Latency": 22355.1, "Tail Read Latency": 284221.8, "Average Update Latency": 31249.9, "Median Update Latency": 22376.6, "Tail Update Latency": 286629.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 300059.0, "Average Read Latency": 105.2, "Median Read Latency": 97.6, "Tail Read Latency": 198.7, "Average Update Latency": 108.2, "Median Update Latency": 101.1, "Tail Update Latency": 201.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 560576.1, "Average Read Latency": 14187.8, "Median Read Latency": 13594.6, "Tail Read Latency": 26970.0, "Average Update Latency": 14405.9, "Median Update Latency": 13604.4, "Tail Update Latency": 28286.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 400027.0, "Average Read Latency": 455.0, "Median Read Latency": 127.2, "Tail Read Latency": 8128.5, "Average Update Latency": 539.0, "Median Update Latency": 128.9, "Tail Update Latency": 9940.1}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 100015.9, "Average Read Latency": 99.4, "Median Read Latency": 93.9, "Tail Read Latency": 159.9, "Average Update Latency": 103.0, "Median Update Latency": 99.3, "Tail Update Latency": 171.2}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 299975.0, "Average Read Latency": 102.6, "Median Read Latency": 95.1, "Tail Read Latency": 193.4, "Average Update Latency": 104.9, "Median Update Latency": 98.2, "Tail Update Latency": 198.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 400015.4, "Average Read Latency": 170.7, "Median Read Latency": 122.2, "Tail Read Latency": 551.1, "Average Update Latency": 172.0, "Median Update Latency": 125.9, "Tail Update Latency": 553.8}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499957.6, "Average Read Latency": 6248.0, "Median Read Latency": 407.6, "Tail Read Latency": 12520.6, "Average Update Latency": 6113.1, "Median Update Latency": 370.8, "Tail Update Latency": 12511.8}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 509177.7, "Average Read Latency": 22559.9, "Median Read Latency": 13379.3, "Tail Read Latency": 266228.0, "Average Update Latency": 22979.3, "Median Update Latency": 13360.9, "Tail Update Latency": 274334.7}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 299974.6, "Average Read Latency": 102.3, "Median Read Latency": 95.3, "Tail Read Latency": 191.6, "Average Update Latency": 105.0, "Median Update Latency": 98.4, "Tail Update Latency": 195.2}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 200017.7, "Average Read Latency": 104.6, "Median Read Latency": 95.4, "Tail Read Latency": 208.9, "Average Update Latency": 113.2, "Median Update Latency": 99.7, "Tail Update Latency": 216.4}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 100009.0, "Average Read Latency": 96.5, "Median Read Latency": 92.2, "Tail Read Latency": 155.5, "Average Update Latency": 101.9, "Median Update Latency": 97.0, "Tail Update Latency": 162.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 199967.3, "Average Read Latency": 105.7, "Median Read Latency": 95.7, "Tail Read Latency": 209.8, "Average Update Latency": 110.3, "Median Update Latency": 99.9, "Tail Update Latency": 218.3}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 300044.2, "Average Read Latency": 100.4, "Median Read Latency": 94.2, "Tail Read Latency": 187.6, "Average Update Latency": 103.6, "Median Update Latency": 97.3, "Tail Update Latency": 190.4}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 516198.2, "Average Read Latency": 29359.4, "Median Read Latency": 20840.4, "Tail Read Latency": 279641.6, "Average Update Latency": 29740.2, "Median Update Latency": 20847.3, "Tail Update Latency": 284295.9}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 200056.8, "Average Read Latency": 119.3, "Median Read Latency": 98.1, "Tail Read Latency": 209.2, "Average Update Latency": 120.0, "Median Update Latency": 101.2, "Tail Update Latency": 217.7}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499913.8, "Average Read Latency": 6309.3, "Median Read Latency": 775.8, "Tail Read Latency": 13595.5, "Average Update Latency": 6305.8, "Median Update Latency": 1117.0, "Tail Update Latency": 13818.7}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 300016.3, "Average Read Latency": 102.1, "Median Read Latency": 95.2, "Tail Read Latency": 195.0, "Average Update Latency": 104.8, "Median Update Latency": 98.1, "Tail Update Latency": 197.3}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 587580.7, "Average Read Latency": 23855.4, "Median Read Latency": 13660.1, "Tail Read Latency": 261900.1, "Average Update Latency": 23781.0, "Median Update Latency": 13678.3, "Tail Update Latency": 258233.5}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 300041.3, "Average Read Latency": 125.6, "Median Read Latency": 107.1, "Tail Read Latency": 308.5, "Average Update Latency": 130.3, "Median Update Latency": 111.2, "Tail Update Latency": 308.5}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 200010.3, "Average Read Latency": 108.2, "Median Read Latency": 95.0, "Tail Read Latency": 187.5, "Average Update Latency": 110.6, "Median Update Latency": 98.0, "Tail Update Latency": 190.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 300030.9, "Average Read Latency": 111.5, "Median Read Latency": 99.1, "Tail Read Latency": 247.6, "Average Update Latency": 116.0, "Median Update Latency": 102.6, "Tail Update Latency": 251.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 100025.1, "Average Read Latency": 88.6, "Median Read Latency": 86.0, "Tail Read Latency": 130.0, "Average Update Latency": 93.3, "Median Update Latency": 90.6, "Tail Update Latency": 138.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 400009.3, "Average Read Latency": 493.2, "Median Read Latency": 126.3, "Tail Read Latency": 8224.4, "Average Update Latency": 626.5, "Median Update Latency": 128.5, "Tail Update Latency": 11652.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 300030.5, "Average Read Latency": 112.5, "Median Read Latency": 98.3, "Tail Read Latency": 250.9, "Average Update Latency": 113.6, "Median Update Latency": 102.0, "Tail Update Latency": 247.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 502389.6, "Average Read Latency": 29341.8, "Median Read Latency": 17918.1, "Tail Read Latency": 310805.1, "Average Update Latency": 29672.6, "Median Update Latency": 17979.9, "Tail Update Latency": 316310.7}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499585.8, "Average Read Latency": 8935.9, "Median Read Latency": 2032.1, "Tail Read Latency": 225563.7, "Average Update Latency": 8746.2, "Median Update Latency": 2319.8, "Tail Update Latency": 223944.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 200053.1, "Average Read Latency": 88.7, "Median Read Latency": 85.5, "Tail Read Latency": 137.9, "Average Update Latency": 91.9, "Median Update Latency": 88.5, "Tail Update Latency": 141.4}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 299959.9, "Average Read Latency": 102.6, "Median Read Latency": 95.3, "Tail Read Latency": 194.9, "Average Update Latency": 105.9, "Median Update Latency": 98.4, "Tail Update Latency": 199.5}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 100026.5, "Average Read Latency": 100.0, "Median Read Latency": 92.2, "Tail Read Latency": 139.6, "Average Update Latency": 104.3, "Median Update Latency": 95.8, "Tail Update Latency": 144.1}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 300017.1, "Average Read Latency": 111.5, "Median Read Latency": 97.5, "Tail Read Latency": 249.6, "Average Update Latency": 114.0, "Median Update Latency": 101.3, "Tail Update Latency": 254.2}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 564015.4, "Average Read Latency": 17110.5, "Median Read Latency": 7264.2, "Tail Read Latency": 426897.9, "Average Update Latency": 16942.6, "Median Update Latency": 7256.8, "Tail Update Latency": 240321.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499707.1, "Average Read Latency": 8746.9, "Median Read Latency": 2107.8, "Tail Read Latency": 223453.2, "Average Update Latency": 8921.0, "Median Update Latency": 2238.3, "Tail Update Latency": 223892.7}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499855.1, "Average Read Latency": 6535.4, "Median Read Latency": 509.2, "Tail Read Latency": 13412.1, "Average Update Latency": 6527.4, "Median Update Latency": 473.2, "Tail Update Latency": 13708.9}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300022.3, "Average Read Latency": 125.0, "Median Read Latency": 97.7, "Tail Read Latency": 263.1, "Average Update Latency": 141.3, "Median Update Latency": 100.3, "Tail Update Latency": 273.9}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 591646.1, "Average Read Latency": 24119.5, "Median Read Latency": 15259.9, "Tail Read Latency": 256589.2, "Average Update Latency": 23858.9, "Median Update Latency": 15306.2, "Tail Update Latency": 254876.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 100004.3, "Average Read Latency": 89.5, "Median Read Latency": 86.6, "Tail Read Latency": 132.1, "Average Update Latency": 94.7, "Median Update Latency": 91.4, "Tail Update Latency": 139.2}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 400008.9, "Average Read Latency": 436.8, "Median Read Latency": 125.0, "Tail Read Latency": 7585.5, "Average Update Latency": 553.0, "Median Update Latency": 127.7, "Tail Update Latency": 10339.6}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 300048.3, "Average Read Latency": 110.6, "Median Read Latency": 98.4, "Tail Read Latency": 246.5, "Average Update Latency": 116.3, "Median Update Latency": 102.2, "Tail Update Latency": 252.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 299975.7, "Average Read Latency": 102.0, "Median Read Latency": 95.4, "Tail Read Latency": 191.1, "Average Update Latency": 105.3, "Median Update Latency": 98.4, "Tail Update Latency": 195.3}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 519916.9, "Average Read Latency": 28885.1, "Median Read Latency": 17626.0, "Tail Read Latency": 314286.1, "Average Update Latency": 29578.2, "Median Update Latency": 17679.0, "Tail Update Latency": 322296.3}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 500424.6, "Average Read Latency": 23654.6, "Median Read Latency": 14083.6, "Tail Read Latency": 266011.3, "Average Update Latency": 24531.2, "Median Update Latency": 14159.3, "Tail Update Latency": 278944.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 300022.4, "Average Read Latency": 113.6, "Median Read Latency": 99.6, "Tail Read Latency": 251.0, "Average Update Latency": 117.0, "Median Update Latency": 103.4, "Tail Update Latency": 256.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 300002.5, "Average Read Latency": 111.9, "Median Read Latency": 98.9, "Tail Read Latency": 250.8, "Average Update Latency": 114.6, "Median Update Latency": 102.4, "Tail Update Latency": 249.6}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 544040.6, "Average Read Latency": 14564.8, "Median Read Latency": 13958.4, "Tail Read Latency": 27768.6, "Average Update Latency": 14743.3, "Median Update Latency": 13961.1, "Tail Update Latency": 29014.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 299989.4, "Average Read Latency": 111.9, "Median Read Latency": 98.2, "Tail Read Latency": 249.0, "Average Update Latency": 115.2, "Median Update Latency": 102.0, "Tail Update Latency": 251.1}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 399944.8, "Average Read Latency": 491.3, "Median Read Latency": 124.3, "Tail Read Latency": 8859.9, "Average Update Latency": 640.8, "Median Update Latency": 126.2, "Tail Update Latency": 12612.8}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 399981.9, "Average Read Latency": 537.4, "Median Read Latency": 126.5, "Tail Read Latency": 9723.3, "Average Update Latency": 692.1, "Median Update Latency": 128.4, "Tail Update Latency": 13567.0}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 399946.7, "Average Read Latency": 453.8, "Median Read Latency": 124.7, "Tail Read Latency": 7943.7, "Average Update Latency": 588.6, "Median Update Latency": 126.5, "Tail Update Latency": 11213.1}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200003.7, "Average Read Latency": 88.0, "Median Read Latency": 85.0, "Tail Read Latency": 136.2, "Average Update Latency": 91.2, "Median Update Latency": 88.0, "Tail Update Latency": 139.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 400014.6, "Average Read Latency": 172.2, "Median Read Latency": 123.0, "Tail Read Latency": 573.5, "Average Update Latency": 179.8, "Median Update Latency": 126.5, "Tail Update Latency": 583.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 100051.4, "Average Read Latency": 102.1, "Median Read Latency": 92.8, "Tail Read Latency": 146.4, "Average Update Latency": 109.9, "Median Update Latency": 96.2, "Tail Update Latency": 152.8}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 571196.2, "Average Read Latency": 15953.9, "Median Read Latency": 7631.1, "Tail Read Latency": 238175.1, "Average Update Latency": 16100.6, "Median Update Latency": 7545.3, "Tail Update Latency": 238711.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 200061.9, "Average Read Latency": 104.3, "Median Read Latency": 95.5, "Tail Read Latency": 210.1, "Average Update Latency": 108.6, "Median Update Latency": 99.9, "Tail Update Latency": 215.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 299973.7, "Average Read Latency": 101.3, "Median Read Latency": 94.3, "Tail Read Latency": 189.0, "Average Update Latency": 104.0, "Median Update Latency": 97.1, "Tail Update Latency": 195.0}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 99994.6, "Average Read Latency": 98.7, "Median Read Latency": 93.3, "Tail Read Latency": 157.9, "Average Update Latency": 103.0, "Median Update Latency": 98.1, "Tail Update Latency": 167.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 565959.7, "Average Read Latency": 15229.4, "Median Read Latency": 7152.1, "Tail Read Latency": 237972.7, "Average Update Latency": 14649.3, "Median Update Latency": 7151.2, "Tail Update Latency": 236837.2}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 200048.0, "Average Read Latency": 105.0, "Median Read Latency": 96.0, "Tail Read Latency": 211.4, "Average Update Latency": 108.2, "Median Update Latency": 100.5, "Tail Update Latency": 217.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 568499.3, "Average Read Latency": 24465.0, "Median Read Latency": 8604.0, "Tail Read Latency": 440987.8, "Average Update Latency": 21666.8, "Median Update Latency": 8624.3, "Tail Update Latency": 433749.7}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 509119.3, "Average Read Latency": 28812.8, "Median Read Latency": 20084.6, "Tail Read Latency": 283182.6, "Average Update Latency": 29372.4, "Median Update Latency": 20136.8, "Tail Update Latency": 285792.9}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 399978.1, "Average Read Latency": 165.9, "Median Read Latency": 119.8, "Tail Read Latency": 530.4, "Average Update Latency": 169.7, "Median Update Latency": 123.8, "Tail Update Latency": 532.6}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 300038.6, "Average Read Latency": 123.7, "Median Read Latency": 106.2, "Tail Read Latency": 298.0, "Average Update Latency": 126.6, "Median Update Latency": 110.2, "Tail Update Latency": 301.2}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 100002.1, "Average Read Latency": 102.3, "Median Read Latency": 93.3, "Tail Read Latency": 147.1, "Average Update Latency": 104.9, "Median Update Latency": 96.8, "Tail Update Latency": 154.1}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 400024.9, "Average Read Latency": 118.8, "Median Read Latency": 103.6, "Tail Read Latency": 307.8, "Average Update Latency": 121.3, "Median Update Latency": 106.1, "Tail Update Latency": 310.7}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 200005.8, "Average Read Latency": 117.5, "Median Read Latency": 96.6, "Tail Read Latency": 208.1, "Average Update Latency": 120.1, "Median Update Latency": 99.8, "Tail Update Latency": 209.0}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 493813.4, "Average Read Latency": 22830.7, "Median Read Latency": 13281.2, "Tail Read Latency": 263264.4, "Average Update Latency": 23821.2, "Median Update Latency": 13331.1, "Tail Update Latency": 281460.1}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 199983.8, "Average Read Latency": 105.4, "Median Read Latency": 95.0, "Tail Read Latency": 185.4, "Average Update Latency": 107.9, "Median Update Latency": 97.7, "Tail Update Latency": 189.9}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 515449.1, "Average Read Latency": 26455.9, "Median Read Latency": 15946.2, "Tail Read Latency": 297690.5, "Average Update Latency": 27314.3, "Median Update Latency": 16010.1, "Tail Update Latency": 314036.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 200018.2, "Average Read Latency": 102.5, "Median Read Latency": 93.8, "Tail Read Latency": 179.7, "Average Update Latency": 107.3, "Median Update Latency": 96.7, "Tail Update Latency": 183.0}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499945.4, "Average Read Latency": 5514.5, "Median Read Latency": 300.0, "Tail Read Latency": 12420.3, "Average Update Latency": 5565.6, "Median Update Latency": 291.6, "Tail Update Latency": 12439.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 200011.0, "Average Read Latency": 104.5, "Median Read Latency": 95.0, "Tail Read Latency": 205.4, "Average Update Latency": 107.9, "Median Update Latency": 99.5, "Tail Update Latency": 211.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 400128.1, "Average Read Latency": 499.8, "Median Read Latency": 125.5, "Tail Read Latency": 8602.1, "Average Update Latency": 660.0, "Median Update Latency": 127.3, "Tail Update Latency": 12471.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499986.8, "Average Read Latency": 5997.3, "Median Read Latency": 283.7, "Tail Read Latency": 12502.0, "Average Update Latency": 6039.6, "Median Update Latency": 294.3, "Tail Update Latency": 12511.9}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 200078.6, "Average Read Latency": 109.3, "Median Read Latency": 95.2, "Tail Read Latency": 192.4, "Average Update Latency": 109.8, "Median Update Latency": 98.1, "Tail Update Latency": 194.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 99990.4, "Average Read Latency": 105.4, "Median Read Latency": 93.4, "Tail Read Latency": 147.7, "Average Update Latency": 109.0, "Median Update Latency": 97.0, "Tail Update Latency": 152.6}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 399978.1, "Average Read Latency": 169.8, "Median Read Latency": 121.5, "Tail Read Latency": 536.8, "Average Update Latency": 171.7, "Median Update Latency": 125.0, "Tail Update Latency": 541.2}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 100029.4, "Average Read Latency": 100.5, "Median Read Latency": 93.1, "Tail Read Latency": 158.5, "Average Update Latency": 103.5, "Median Update Latency": 98.3, "Tail Update Latency": 165.2}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 484784.9, "Average Read Latency": 21313.9, "Median Read Latency": 13079.1, "Tail Read Latency": 254894.9, "Average Update Latency": 21819.4, "Median Update Latency": 13138.9, "Tail Update Latency": 256401.1}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 200057.8, "Average Read Latency": 89.3, "Median Read Latency": 86.0, "Tail Read Latency": 138.5, "Average Update Latency": 92.3, "Median Update Latency": 89.1, "Tail Update Latency": 140.2}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100020.6, "Average Read Latency": 87.5, "Median Read Latency": 85.0, "Tail Read Latency": 127.7, "Average Update Latency": 91.3, "Median Update Latency": 89.1, "Tail Update Latency": 133.1}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 99985.6, "Average Read Latency": 89.3, "Median Read Latency": 86.7, "Tail Read Latency": 133.0, "Average Update Latency": 93.8, "Median Update Latency": 91.6, "Tail Update Latency": 138.1}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 569891.4, "Average Read Latency": 17357.1, "Median Read Latency": 7946.1, "Tail Read Latency": 240310.2, "Average Update Latency": 16907.0, "Median Update Latency": 7931.8, "Tail Update Latency": 239689.7}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 300029.5, "Average Read Latency": 137.8, "Median Read Latency": 99.9, "Tail Read Latency": 316.4, "Average Update Latency": 164.5, "Median Update Latency": 102.0, "Tail Update Latency": 315.1}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 300015.7, "Average Read Latency": 101.6, "Median Read Latency": 94.3, "Tail Read Latency": 188.2, "Average Update Latency": 104.4, "Median Update Latency": 97.2, "Tail Update Latency": 193.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499937.1, "Average Read Latency": 5693.2, "Median Read Latency": 306.9, "Tail Read Latency": 12484.5, "Average Update Latency": 5601.3, "Median Update Latency": 322.7, "Tail Update Latency": 12479.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 515766.0, "Average Read Latency": 27540.4, "Median Read Latency": 18830.6, "Tail Read Latency": 276851.6, "Average Update Latency": 28130.4, "Median Update Latency": 18866.1, "Tail Update Latency": 279741.4}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 540165.1, "Average Read Latency": 14515.3, "Median Read Latency": 14129.1, "Tail Read Latency": 27148.9, "Average Update Latency": 14689.9, "Median Update Latency": 14143.0, "Tail Update Latency": 27954.8}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 506661.9, "Average Read Latency": 29788.3, "Median Read Latency": 16290.3, "Tail Read Latency": 354052.8, "Average Update Latency": 30822.3, "Median Update Latency": 16414.5, "Tail Update Latency": 371242.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 400039.9, "Average Read Latency": 439.5, "Median Read Latency": 126.4, "Tail Read Latency": 7941.4, "Average Update Latency": 518.2, "Median Update Latency": 128.1, "Tail Update Latency": 9523.5}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 400032.0, "Average Read Latency": 490.9, "Median Read Latency": 126.2, "Tail Read Latency": 8531.1, "Average Update Latency": 623.2, "Median Update Latency": 127.9, "Tail Update Latency": 12021.7}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 99990.8, "Average Read Latency": 89.3, "Median Read Latency": 86.6, "Tail Read Latency": 132.9, "Average Update Latency": 94.3, "Median Update Latency": 91.7, "Tail Update Latency": 140.2}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 200012.1, "Average Read Latency": 102.1, "Median Read Latency": 95.1, "Tail Read Latency": 206.5, "Average Update Latency": 105.8, "Median Update Latency": 99.5, "Tail Update Latency": 211.4}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 589251.8, "Average Read Latency": 20987.3, "Median Read Latency": 13790.8, "Tail Read Latency": 244436.4, "Average Update Latency": 21003.3, "Median Update Latency": 13797.5, "Tail Update Latency": 244409.2}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 399940.7, "Average Read Latency": 170.4, "Median Read Latency": 122.3, "Tail Read Latency": 553.7, "Average Update Latency": 175.2, "Median Update Latency": 126.1, "Tail Update Latency": 570.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 399939.3, "Average Read Latency": 167.7, "Median Read Latency": 121.9, "Tail Read Latency": 535.3, "Average Update Latency": 173.1, "Median Update Latency": 125.3, "Tail Update Latency": 537.9}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 200019.5, "Average Read Latency": 102.2, "Median Read Latency": 94.8, "Tail Read Latency": 186.2, "Average Update Latency": 107.5, "Median Update Latency": 98.0, "Tail Update Latency": 194.4}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 100034.3, "Average Read Latency": 89.8, "Median Read Latency": 86.9, "Tail Read Latency": 134.9, "Average Update Latency": 95.0, "Median Update Latency": 92.3, "Tail Update Latency": 141.4}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 485797.1, "Average Read Latency": 22626.3, "Median Read Latency": 12462.7, "Tail Read Latency": 259646.6, "Average Update Latency": 22950.7, "Median Update Latency": 12435.0, "Tail Update Latency": 260849.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 558700.7, "Average Read Latency": 14197.1, "Median Read Latency": 13546.0, "Tail Read Latency": 26984.2, "Average Update Latency": 14462.2, "Median Update Latency": 13557.2, "Tail Update Latency": 28093.2}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 399968.7, "Average Read Latency": 169.0, "Median Read Latency": 120.9, "Tail Read Latency": 538.4, "Average Update Latency": 172.5, "Median Update Latency": 124.9, "Tail Update Latency": 540.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 504324.5, "Average Read Latency": 27880.1, "Median Read Latency": 18221.2, "Tail Read Latency": 281590.1, "Average Update Latency": 28676.0, "Median Update Latency": 18269.2, "Tail Update Latency": 288763.2}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 400043.8, "Average Read Latency": 117.9, "Median Read Latency": 104.6, "Tail Read Latency": 288.5, "Average Update Latency": 120.7, "Median Update Latency": 107.3, "Tail Update Latency": 291.8}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 591905.1, "Average Read Latency": 24154.7, "Median Read Latency": 13540.1, "Tail Read Latency": 271065.0, "Average Update Latency": 24687.9, "Median Update Latency": 13614.9, "Tail Update Latency": 269751.4}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 200016.8, "Average Read Latency": 104.6, "Median Read Latency": 95.5, "Tail Read Latency": 207.8, "Average Update Latency": 109.0, "Median Update Latency": 99.9, "Tail Update Latency": 211.5}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 199969.3, "Average Read Latency": 115.7, "Median Read Latency": 94.9, "Tail Read Latency": 186.9, "Average Update Latency": 120.3, "Median Update Latency": 97.8, "Tail Update Latency": 189.4}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 100034.6, "Average Read Latency": 103.2, "Median Read Latency": 91.9, "Tail Read Latency": 138.7, "Average Update Latency": 108.7, "Median Update Latency": 95.4, "Tail Update Latency": 147.7}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 199945.3, "Average Read Latency": 87.8, "Median Read Latency": 84.9, "Tail Read Latency": 134.9, "Average Update Latency": 90.9, "Median Update Latency": 87.7, "Tail Update Latency": 138.8}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 399972.0, "Average Read Latency": 117.5, "Median Read Latency": 103.5, "Tail Read Latency": 293.4, "Average Update Latency": 120.2, "Median Update Latency": 106.2, "Tail Update Latency": 295.3}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 486056.3, "Average Read Latency": 21377.1, "Median Read Latency": 12933.9, "Tail Read Latency": 255477.6, "Average Update Latency": 21826.3, "Median Update Latency": 12927.1, "Tail Update Latency": 257490.9}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300002.5, "Average Read Latency": 129.0, "Median Read Latency": 98.8, "Tail Read Latency": 263.6, "Average Update Latency": 137.6, "Median Update Latency": 101.2, "Tail Update Latency": 271.9}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 300082.5, "Average Read Latency": 153.7, "Median Read Latency": 106.7, "Tail Read Latency": 350.2, "Average Update Latency": 163.0, "Median Update Latency": 109.3, "Tail Update Latency": 351.9}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 594275.9, "Average Read Latency": 22892.7, "Median Read Latency": 13701.4, "Tail Read Latency": 261663.9, "Average Update Latency": 22694.0, "Median Update Latency": 13732.9, "Tail Update Latency": 255128.6}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 300047.0, "Average Read Latency": 111.8, "Median Read Latency": 98.3, "Tail Read Latency": 249.1, "Average Update Latency": 116.4, "Median Update Latency": 102.1, "Tail Update Latency": 250.5}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 299976.7, "Average Read Latency": 102.0, "Median Read Latency": 94.9, "Tail Read Latency": 193.8, "Average Update Latency": 105.3, "Median Update Latency": 98.0, "Tail Update Latency": 198.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 100045.7, "Average Read Latency": 87.6, "Median Read Latency": 85.4, "Tail Read Latency": 127.3, "Average Update Latency": 91.7, "Median Update Latency": 89.6, "Tail Update Latency": 132.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 200003.9, "Average Read Latency": 109.3, "Median Read Latency": 95.5, "Tail Read Latency": 210.0, "Average Update Latency": 112.9, "Median Update Latency": 100.0, "Tail Update Latency": 218.9}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 299921.4, "Average Read Latency": 104.1, "Median Read Latency": 96.2, "Tail Read Latency": 196.0, "Average Update Latency": 107.8, "Median Update Latency": 99.4, "Tail Update Latency": 199.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 100047.1, "Average Read Latency": 101.2, "Median Read Latency": 93.4, "Tail Read Latency": 162.0, "Average Update Latency": 104.6, "Median Update Latency": 98.2, "Tail Update Latency": 168.9}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 570570.6, "Average Read Latency": 14030.7, "Median Read Latency": 13237.9, "Tail Read Latency": 27246.9, "Average Update Latency": 14387.5, "Median Update Latency": 13244.1, "Tail Update Latency": 28345.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 493816.5, "Average Read Latency": 25268.6, "Median Read Latency": 14653.7, "Tail Read Latency": 300771.2, "Average Update Latency": 26730.7, "Median Update Latency": 14778.1, "Tail Update Latency": 326570.8}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 485011.3, "Average Read Latency": 22000.6, "Median Read Latency": 11466.1, "Tail Read Latency": 258058.6, "Average Update Latency": 22650.8, "Median Update Latency": 11474.0, "Tail Update Latency": 264052.5}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 299981.4, "Average Read Latency": 165.4, "Median Read Latency": 109.5, "Tail Read Latency": 495.1, "Average Update Latency": 190.3, "Median Update Latency": 111.6, "Tail Update Latency": 623.0}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 100015.0, "Average Read Latency": 106.4, "Median Read Latency": 93.1, "Tail Read Latency": 145.6, "Average Update Latency": 112.9, "Median Update Latency": 96.8, "Tail Update Latency": 152.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 200041.6, "Average Read Latency": 105.4, "Median Read Latency": 95.3, "Tail Read Latency": 207.1, "Average Update Latency": 113.2, "Median Update Latency": 99.5, "Tail Update Latency": 209.9}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499893.5, "Average Read Latency": 6347.3, "Median Read Latency": 347.4, "Tail Read Latency": 13126.2, "Average Update Latency": 6369.0, "Median Update Latency": 357.3, "Tail Update Latency": 13781.3}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 400047.4, "Average Read Latency": 450.8, "Median Read Latency": 126.7, "Tail Read Latency": 8106.7, "Average Update Latency": 532.1, "Median Update Latency": 128.6, "Tail Update Latency": 9634.5}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 512362.5, "Average Read Latency": 27676.2, "Median Read Latency": 17630.0, "Tail Read Latency": 278659.3, "Average Update Latency": 28361.2, "Median Update Latency": 17608.4, "Tail Update Latency": 286483.2}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 569170.3, "Average Read Latency": 19447.2, "Median Read Latency": 7762.3, "Tail Read Latency": 437259.1, "Average Update Latency": 18851.3, "Median Update Latency": 7813.3, "Tail Update Latency": 431699.3}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 100014.3, "Average Read Latency": 101.8, "Median Read Latency": 92.5, "Tail Read Latency": 157.8, "Average Update Latency": 104.9, "Median Update Latency": 97.6, "Tail Update Latency": 165.6}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 551102.3, "Average Read Latency": 14430.4, "Median Read Latency": 13774.5, "Tail Read Latency": 26837.3, "Average Update Latency": 14542.5, "Median Update Latency": 13778.8, "Tail Update Latency": 28129.9}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499540.6, "Average Read Latency": 8499.5, "Median Read Latency": 1859.1, "Tail Read Latency": 223170.2, "Average Update Latency": 8393.2, "Median Update Latency": 1594.4, "Tail Update Latency": 222616.6}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 199952.9, "Average Read Latency": 88.4, "Median Read Latency": 85.3, "Tail Read Latency": 138.6, "Average Update Latency": 92.1, "Median Update Latency": 88.4, "Tail Update Latency": 140.8}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 520288.5, "Average Read Latency": 28796.7, "Median Read Latency": 19111.3, "Tail Read Latency": 297488.9, "Average Update Latency": 28976.1, "Median Update Latency": 19000.9, "Tail Update Latency": 306675.0}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499992.6, "Average Read Latency": 6156.6, "Median Read Latency": 407.6, "Tail Read Latency": 12525.6, "Average Update Latency": 6065.7, "Median Update Latency": 345.1, "Tail Update Latency": 12521.8}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 200000.1, "Average Read Latency": 108.4, "Median Read Latency": 95.5, "Tail Read Latency": 196.7, "Average Update Latency": 110.0, "Median Update Latency": 98.5, "Tail Update Latency": 200.0}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 592751.6, "Average Read Latency": 20286.1, "Median Read Latency": 13225.2, "Tail Read Latency": 245885.8, "Average Update Latency": 20255.0, "Median Update Latency": 13219.6, "Tail Update Latency": 245951.4}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 399993.9, "Average Read Latency": 369.9, "Median Read Latency": 128.1, "Tail Read Latency": 6232.4, "Average Update Latency": 435.6, "Median Update Latency": 129.8, "Tail Update Latency": 7535.5}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 484064.0, "Average Read Latency": 23124.6, "Median Read Latency": 13119.2, "Tail Read Latency": 260497.5, "Average Update Latency": 23439.8, "Median Update Latency": 13167.0, "Tail Update Latency": 262875.9}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499968.1, "Average Read Latency": 6378.5, "Median Read Latency": 332.1, "Tail Read Latency": 13344.6, "Average Update Latency": 6386.9, "Median Update Latency": 411.7, "Tail Update Latency": 13850.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 299992.5, "Average Read Latency": 102.8, "Median Read Latency": 96.3, "Tail Read Latency": 193.1, "Average Update Latency": 106.1, "Median Update Latency": 99.8, "Tail Update Latency": 197.0}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 400002.7, "Average Read Latency": 117.0, "Median Read Latency": 102.9, "Tail Read Latency": 299.8, "Average Update Latency": 119.8, "Median Update Latency": 105.4, "Tail Update Latency": 302.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 564378.9, "Average Read Latency": 13774.2, "Median Read Latency": 13374.4, "Tail Read Latency": 25614.7, "Average Update Latency": 13871.7, "Median Update Latency": 13383.5, "Tail Update Latency": 26303.0}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 300003.5, "Average Read Latency": 125.4, "Median Read Latency": 106.9, "Tail Read Latency": 308.1, "Average Update Latency": 128.5, "Median Update Latency": 111.4, "Tail Update Latency": 312.0}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 100043.1, "Average Read Latency": 90.1, "Median Read Latency": 87.0, "Tail Read Latency": 136.1, "Average Update Latency": 94.7, "Median Update Latency": 92.1, "Tail Update Latency": 142.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499966.1, "Average Read Latency": 5862.8, "Median Read Latency": 352.4, "Tail Read Latency": 12499.9, "Average Update Latency": 5872.8, "Median Update Latency": 371.7, "Tail Update Latency": 12503.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 507346.1, "Average Read Latency": 24107.9, "Median Read Latency": 13830.2, "Tail Read Latency": 282661.5, "Average Update Latency": 25127.0, "Median Update Latency": 13835.3, "Tail Update Latency": 308535.5}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 200059.0, "Average Read Latency": 100.2, "Median Read Latency": 94.3, "Tail Read Latency": 180.8, "Average Update Latency": 104.3, "Median Update Latency": 97.3, "Tail Update Latency": 183.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 515676.7, "Average Read Latency": 29490.8, "Median Read Latency": 19678.2, "Tail Read Latency": 292983.6, "Average Update Latency": 30237.1, "Median Update Latency": 19813.7, "Tail Update Latency": 310042.2}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 400043.0, "Average Read Latency": 128.4, "Median Read Latency": 105.0, "Tail Read Latency": 476.1, "Average Update Latency": 131.0, "Median Update Latency": 107.5, "Tail Update Latency": 476.1}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 299975.8, "Average Read Latency": 111.8, "Median Read Latency": 98.1, "Tail Read Latency": 247.4, "Average Update Latency": 116.3, "Median Update Latency": 101.7, "Tail Update Latency": 249.3}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 561921.7, "Average Read Latency": 14306.7, "Median Read Latency": 13495.3, "Tail Read Latency": 28280.7, "Average Update Latency": 14539.7, "Median Update Latency": 13506.1, "Tail Update Latency": 29319.1}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 564024.4, "Average Read Latency": 14279.4, "Median Read Latency": 13302.1, "Tail Read Latency": 28546.9, "Average Update Latency": 14734.0, "Median Update Latency": 13319.3, "Tail Update Latency": 30187.3}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 508933.2, "Average Read Latency": 29120.6, "Median Read Latency": 16405.2, "Tail Read Latency": 346163.2, "Average Update Latency": 29549.3, "Median Update Latency": 16502.6, "Tail Update Latency": 345197.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 299983.7, "Average Read Latency": 112.7, "Median Read Latency": 98.1, "Tail Read Latency": 248.5, "Average Update Latency": 116.4, "Median Update Latency": 101.4, "Tail Update Latency": 254.4}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 550265.5, "Average Read Latency": 14409.3, "Median Read Latency": 13794.4, "Tail Read Latency": 26970.3, "Average Update Latency": 14479.2, "Median Update Latency": 13796.3, "Tail Update Latency": 27823.6}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 503471.9, "Average Read Latency": 25890.8, "Median Read Latency": 14802.7, "Tail Read Latency": 303721.5, "Average Update Latency": 26479.1, "Median Update Latency": 14866.9, "Tail Update Latency": 312749.4}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 300011.1, "Average Read Latency": 102.2, "Median Read Latency": 95.3, "Tail Read Latency": 194.3, "Average Update Latency": 105.5, "Median Update Latency": 98.6, "Tail Update Latency": 197.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 300047.0, "Average Read Latency": 113.7, "Median Read Latency": 99.4, "Tail Read Latency": 253.1, "Average Update Latency": 116.1, "Median Update Latency": 103.1, "Tail Update Latency": 259.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 537651.8, "Average Read Latency": 14392.2, "Median Read Latency": 14165.9, "Tail Read Latency": 26447.1, "Average Update Latency": 14455.3, "Median Update Latency": 14170.7, "Tail Update Latency": 27485.0}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 560468.6, "Average Read Latency": 14153.4, "Median Read Latency": 13407.6, "Tail Read Latency": 27526.1, "Average Update Latency": 14360.9, "Median Update Latency": 13420.9, "Tail Update Latency": 28171.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499550.8, "Average Read Latency": 8538.5, "Median Read Latency": 1829.5, "Tail Read Latency": 223871.0, "Average Update Latency": 8887.4, "Median Update Latency": 1897.7, "Tail Update Latency": 224882.5}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 99961.1, "Average Read Latency": 101.6, "Median Read Latency": 93.3, "Tail Read Latency": 162.3, "Average Update Latency": 106.2, "Median Update Latency": 98.9, "Tail Update Latency": 172.2}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 400000.1, "Average Read Latency": 458.4, "Median Read Latency": 127.8, "Tail Read Latency": 8557.6, "Average Update Latency": 537.5, "Median Update Latency": 129.7, "Tail Update Latency": 9858.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 200036.1, "Average Read Latency": 88.4, "Median Read Latency": 85.4, "Tail Read Latency": 136.8, "Average Update Latency": 91.5, "Median Update Latency": 88.3, "Tail Update Latency": 140.8}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 587380.2, "Average Read Latency": 23632.5, "Median Read Latency": 14171.9, "Tail Read Latency": 256598.4, "Average Update Latency": 23493.7, "Median Update Latency": 14203.0, "Tail Update Latency": 254234.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 499762.2, "Average Read Latency": 5892.1, "Median Read Latency": 291.6, "Tail Read Latency": 12506.1, "Average Update Latency": 5962.9, "Median Update Latency": 290.9, "Tail Update Latency": 12518.2}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 485620.9, "Average Read Latency": 22997.3, "Median Read Latency": 12102.1, "Tail Read Latency": 262548.0, "Average Update Latency": 22651.6, "Median Update Latency": 12141.4, "Tail Update Latency": 261386.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 100033.9, "Average Read Latency": 101.4, "Median Read Latency": 93.1, "Tail Read Latency": 164.0, "Average Update Latency": 105.6, "Median Update Latency": 97.7, "Tail Update Latency": 172.0}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 300060.7, "Average Read Latency": 126.4, "Median Read Latency": 106.7, "Tail Read Latency": 303.8, "Average Update Latency": 129.0, "Median Update Latency": 111.3, "Tail Update Latency": 311.2}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 100040.1, "Average Read Latency": 103.7, "Median Read Latency": 93.1, "Tail Read Latency": 147.3, "Average Update Latency": 105.3, "Median Update Latency": 96.6, "Tail Update Latency": 151.9}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 300017.8, "Average Read Latency": 101.1, "Median Read Latency": 93.8, "Tail Read Latency": 187.9, "Average Update Latency": 104.2, "Median Update Latency": 96.7, "Tail Update Latency": 191.3}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 553397.4, "Average Read Latency": 14325.4, "Median Read Latency": 13708.4, "Tail Read Latency": 27859.2, "Average Update Latency": 14680.0, "Median Update Latency": 13729.3, "Tail Update Latency": 28904.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 558733.5, "Average Read Latency": 14322.1, "Median Read Latency": 13502.2, "Tail Read Latency": 27194.5, "Average Update Latency": 14541.3, "Median Update Latency": 13505.2, "Tail Update Latency": 28410.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 200033.3, "Average Read Latency": 108.9, "Median Read Latency": 95.8, "Tail Read Latency": 207.3, "Average Update Latency": 112.1, "Median Update Latency": 100.2, "Tail Update Latency": 217.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 510281.0, "Average Read Latency": 24324.2, "Median Read Latency": 15025.3, "Tail Read Latency": 271127.6, "Average Update Latency": 24983.8, "Median Update Latency": 15094.7, "Tail Update Latency": 282187.9}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 483140.2, "Average Read Latency": 25499.0, "Median Read Latency": 12615.8, "Tail Read Latency": 303771.4, "Average Update Latency": 27052.9, "Median Update Latency": 12681.1, "Tail Update Latency": 339357.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 400048.6, "Average Read Latency": 143.3, "Median Read Latency": 106.3, "Tail Read Latency": 631.4, "Average Update Latency": 146.4, "Median Update Latency": 109.0, "Tail Update Latency": 625.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 563527.6, "Average Read Latency": 14092.7, "Median Read Latency": 13395.0, "Tail Read Latency": 27227.2, "Average Update Latency": 14348.7, "Median Update Latency": 13397.1, "Tail Update Latency": 28374.3}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499541.1, "Average Read Latency": 7656.8, "Median Read Latency": 1574.4, "Tail Read Latency": 220323.9, "Average Update Latency": 7535.3, "Median Update Latency": 1544.1, "Tail Update Latency": 219741.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 300013.1, "Average Read Latency": 102.4, "Median Read Latency": 95.2, "Tail Read Latency": 191.4, "Average Update Latency": 105.6, "Median Update Latency": 98.3, "Tail Update Latency": 196.4}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 506538.3, "Average Read Latency": 24616.7, "Median Read Latency": 15025.0, "Tail Read Latency": 281336.1, "Average Update Latency": 25144.1, "Median Update Latency": 15032.1, "Tail Update Latency": 286243.2}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 512670.7, "Average Read Latency": 28382.5, "Median Read Latency": 19939.2, "Tail Read Latency": 279111.2, "Average Update Latency": 28963.7, "Median Update Latency": 20179.8, "Tail Update Latency": 283400.4}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 300030.1, "Average Read Latency": 111.0, "Median Read Latency": 97.5, "Tail Read Latency": 248.4, "Average Update Latency": 114.0, "Median Update Latency": 101.1, "Tail Update Latency": 248.1}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 514244.0, "Average Read Latency": 24082.8, "Median Read Latency": 14803.8, "Tail Read Latency": 270823.2, "Average Update Latency": 24296.0, "Median Update Latency": 14773.2, "Tail Update Latency": 271758.6}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 100015.7, "Average Read Latency": 104.4, "Median Read Latency": 93.6, "Tail Read Latency": 148.9, "Average Update Latency": 108.6, "Median Update Latency": 97.5, "Tail Update Latency": 154.9}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499972.7, "Average Read Latency": 5704.1, "Median Read Latency": 318.3, "Tail Read Latency": 12480.3, "Average Update Latency": 5746.6, "Median Update Latency": 311.9, "Tail Update Latency": 12487.4}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 199988.3, "Average Read Latency": 114.3, "Median Read Latency": 96.7, "Tail Read Latency": 205.0, "Average Update Latency": 116.3, "Median Update Latency": 99.8, "Tail Update Latency": 207.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 570453.3, "Average Read Latency": 14554.1, "Median Read Latency": 13210.9, "Tail Read Latency": 28461.3, "Average Update Latency": 14628.4, "Median Update Latency": 13218.6, "Tail Update Latency": 28999.7}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 399978.3, "Average Read Latency": 163.5, "Median Read Latency": 120.2, "Tail Read Latency": 523.0, "Average Update Latency": 171.0, "Median Update Latency": 124.2, "Tail Update Latency": 535.0}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 199985.6, "Average Read Latency": 119.3, "Median Read Latency": 97.8, "Tail Read Latency": 214.3, "Average Update Latency": 123.1, "Median Update Latency": 100.8, "Tail Update Latency": 213.5}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 200019.0, "Average Read Latency": 89.9, "Median Read Latency": 86.6, "Tail Read Latency": 139.9, "Average Update Latency": 92.9, "Median Update Latency": 89.9, "Tail Update Latency": 143.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 590866.8, "Average Read Latency": 21749.7, "Median Read Latency": 13931.3, "Tail Read Latency": 250652.4, "Average Update Latency": 21316.2, "Median Update Latency": 13911.3, "Tail Update Latency": 248216.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 399961.4, "Average Read Latency": 118.1, "Median Read Latency": 103.7, "Tail Read Latency": 310.8, "Average Update Latency": 120.8, "Median Update Latency": 106.0, "Tail Update Latency": 312.6}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 511430.7, "Average Read Latency": 30017.2, "Median Read Latency": 19526.3, "Tail Read Latency": 310266.4, "Average Update Latency": 30387.7, "Median Update Latency": 19484.1, "Tail Update Latency": 314766.2}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 99981.1, "Average Read Latency": 99.6, "Median Read Latency": 92.9, "Tail Read Latency": 155.9, "Average Update Latency": 102.5, "Median Update Latency": 97.7, "Tail Update Latency": 163.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 399941.0, "Average Read Latency": 359.5, "Median Read Latency": 123.5, "Tail Read Latency": 6175.2, "Average Update Latency": 409.1, "Median Update Latency": 125.6, "Tail Update Latency": 7070.8}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 400073.1, "Average Read Latency": 173.4, "Median Read Latency": 114.7, "Tail Read Latency": 809.0, "Average Update Latency": 176.3, "Median Update Latency": 117.2, "Tail Update Latency": 817.3}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 551617.8, "Average Read Latency": 14297.0, "Median Read Latency": 13556.3, "Tail Read Latency": 27039.9, "Average Update Latency": 14496.8, "Median Update Latency": 13557.8, "Tail Update Latency": 28824.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 400038.2, "Average Read Latency": 168.7, "Median Read Latency": 121.6, "Tail Read Latency": 544.8, "Average Update Latency": 171.7, "Median Update Latency": 125.6, "Tail Update Latency": 541.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 481761.8, "Average Read Latency": 22738.9, "Median Read Latency": 11861.3, "Tail Read Latency": 261569.5, "Average Update Latency": 23177.7, "Median Update Latency": 11918.9, "Tail Update Latency": 263748.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 484351.1, "Average Read Latency": 22375.6, "Median Read Latency": 11820.4, "Tail Read Latency": 259705.3, "Average Update Latency": 22637.1, "Median Update Latency": 11898.4, "Tail Update Latency": 261748.0}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 299957.2, "Average Read Latency": 101.5, "Median Read Latency": 94.9, "Tail Read Latency": 189.4, "Average Update Latency": 104.2, "Median Update Latency": 98.0, "Tail Update Latency": 195.0}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 200041.4, "Average Read Latency": 106.1, "Median Read Latency": 94.7, "Tail Read Latency": 184.0, "Average Update Latency": 109.2, "Median Update Latency": 97.8, "Tail Update Latency": 186.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 486044.4, "Average Read Latency": 22040.9, "Median Read Latency": 11189.6, "Tail Read Latency": 262576.8, "Average Update Latency": 22394.1, "Median Update Latency": 11223.7, "Tail Update Latency": 267872.2}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 300032.7, "Average Read Latency": 102.1, "Median Read Latency": 95.4, "Tail Read Latency": 195.2, "Average Update Latency": 105.1, "Median Update Latency": 98.3, "Tail Update Latency": 199.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 486329.8, "Average Read Latency": 23858.0, "Median Read Latency": 13190.3, "Tail Read Latency": 261170.6, "Average Update Latency": 24200.7, "Median Update Latency": 13237.3, "Tail Update Latency": 262248.2}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 485749.9, "Average Read Latency": 20668.7, "Median Read Latency": 12222.0, "Tail Read Latency": 252794.0, "Average Update Latency": 21019.7, "Median Update Latency": 12205.5, "Tail Update Latency": 255062.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 506873.6, "Average Read Latency": 25153.9, "Median Read Latency": 15985.9, "Tail Read Latency": 267867.2, "Average Update Latency": 25703.0, "Median Update Latency": 16060.3, "Tail Update Latency": 271580.3}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 99996.3, "Average Read Latency": 99.4, "Median Read Latency": 92.4, "Tail Read Latency": 139.6, "Average Update Latency": 102.5, "Median Update Latency": 95.9, "Tail Update Latency": 147.1}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 300073.5, "Average Read Latency": 144.4, "Median Read Latency": 99.4, "Tail Read Latency": 301.4, "Average Update Latency": 165.4, "Median Update Latency": 101.7, "Tail Update Latency": 309.9}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499612.2, "Average Read Latency": 8279.2, "Median Read Latency": 2358.0, "Tail Read Latency": 222315.0, "Average Update Latency": 8334.6, "Median Update Latency": 2132.7, "Tail Update Latency": 221777.3}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 558278.9, "Average Read Latency": 14579.2, "Median Read Latency": 13518.4, "Tail Read Latency": 28398.6, "Average Update Latency": 14928.7, "Median Update Latency": 13525.7, "Tail Update Latency": 29541.4}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 484376.6, "Average Read Latency": 22365.4, "Median Read Latency": 12608.6, "Tail Read Latency": 259682.9, "Average Update Latency": 23063.5, "Median Update Latency": 12617.0, "Tail Update Latency": 264893.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 592514.7, "Average Read Latency": 19595.9, "Median Read Latency": 12865.6, "Tail Read Latency": 243740.0, "Average Update Latency": 19551.0, "Median Update Latency": 12909.3, "Tail Update Latency": 242467.7}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 200025.3, "Average Read Latency": 88.9, "Median Read Latency": 85.7, "Tail Read Latency": 139.9, "Average Update Latency": 92.1, "Median Update Latency": 88.8, "Tail Update Latency": 145.3}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 300055.7, "Average Read Latency": 103.6, "Median Read Latency": 96.2, "Tail Read Latency": 194.3, "Average Update Latency": 107.7, "Median Update Latency": 99.8, "Tail Update Latency": 198.6}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 199947.7, "Average Read Latency": 105.0, "Median Read Latency": 95.5, "Tail Read Latency": 212.5, "Average Update Latency": 109.9, "Median Update Latency": 99.8, "Tail Update Latency": 218.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 300048.6, "Average Read Latency": 101.8, "Median Read Latency": 95.1, "Tail Read Latency": 191.9, "Average Update Latency": 104.8, "Median Update Latency": 98.3, "Tail Update Latency": 195.5}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 509798.7, "Average Read Latency": 23461.9, "Median Read Latency": 14122.5, "Tail Read Latency": 268198.8, "Average Update Latency": 24080.5, "Median Update Latency": 14177.9, "Tail Update Latency": 279036.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 300038.3, "Average Read Latency": 110.1, "Median Read Latency": 97.7, "Tail Read Latency": 249.5, "Average Update Latency": 114.5, "Median Update Latency": 101.3, "Tail Update Latency": 253.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 200045.1, "Average Read Latency": 112.6, "Median Read Latency": 97.3, "Tail Read Latency": 213.4, "Average Update Latency": 115.5, "Median Update Latency": 100.5, "Tail Update Latency": 216.1}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 400019.3, "Average Read Latency": 161.9, "Median Read Latency": 114.8, "Tail Read Latency": 624.1, "Average Update Latency": 165.1, "Median Update Latency": 117.2, "Tail Update Latency": 631.3}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 99981.7, "Average Read Latency": 89.8, "Median Read Latency": 86.9, "Tail Read Latency": 136.0, "Average Update Latency": 94.8, "Median Update Latency": 92.1, "Tail Update Latency": 142.0}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 512605.1, "Average Read Latency": 24348.6, "Median Read Latency": 14409.7, "Tail Read Latency": 275227.7, "Average Update Latency": 24555.3, "Median Update Latency": 14413.4, "Tail Update Latency": 276517.3}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499908.1, "Average Read Latency": 6433.4, "Median Read Latency": 550.5, "Tail Read Latency": 12982.6, "Average Update Latency": 6337.8, "Median Update Latency": 494.6, "Tail Update Latency": 12852.8}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 595888.1, "Average Read Latency": 22600.2, "Median Read Latency": 13007.6, "Tail Read Latency": 255586.3, "Average Update Latency": 21885.7, "Median Update Latency": 12983.9, "Tail Update Latency": 252555.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 572444.8, "Average Read Latency": 15696.7, "Median Read Latency": 13157.4, "Tail Read Latency": 31105.0, "Average Update Latency": 16424.0, "Median Update Latency": 13183.7, "Tail Update Latency": 40593.1}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 100028.2, "Average Read Latency": 102.0, "Median Read Latency": 92.7, "Tail Read Latency": 140.5, "Average Update Latency": 105.8, "Median Update Latency": 96.2, "Tail Update Latency": 147.2}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 513453.0, "Average Read Latency": 28377.1, "Median Read Latency": 18549.1, "Tail Read Latency": 283603.9, "Average Update Latency": 28880.3, "Median Update Latency": 18577.0, "Tail Update Latency": 287334.4}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 99995.6, "Average Read Latency": 101.9, "Median Read Latency": 92.9, "Tail Read Latency": 145.9, "Average Update Latency": 107.5, "Median Update Latency": 96.5, "Tail Update Latency": 151.2}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 100002.7, "Average Read Latency": 98.5, "Median Read Latency": 92.9, "Tail Read Latency": 158.7, "Average Update Latency": 106.6, "Median Update Latency": 97.3, "Tail Update Latency": 169.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 552458.6, "Average Read Latency": 14675.2, "Median Read Latency": 13755.0, "Tail Read Latency": 27770.5, "Average Update Latency": 14815.2, "Median Update Latency": 13751.5, "Tail Update Latency": 28508.3}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 99997.9, "Average Read Latency": 99.4, "Median Read Latency": 92.9, "Tail Read Latency": 156.9, "Average Update Latency": 107.3, "Median Update Latency": 97.6, "Tail Update Latency": 166.4}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 200023.8, "Average Read Latency": 108.4, "Median Read Latency": 93.9, "Tail Read Latency": 182.8, "Average Update Latency": 112.9, "Median Update Latency": 96.7, "Tail Update Latency": 186.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 399964.1, "Average Read Latency": 168.6, "Median Read Latency": 120.0, "Tail Read Latency": 537.2, "Average Update Latency": 169.7, "Median Update Latency": 124.1, "Tail Update Latency": 529.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 572931.3, "Average Read Latency": 10718.9, "Median Read Latency": 7143.6, "Tail Read Latency": 230879.7, "Average Update Latency": 10648.1, "Median Update Latency": 7141.4, "Tail Update Latency": 230681.5}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 200028.5, "Average Read Latency": 89.1, "Median Read Latency": 85.6, "Tail Read Latency": 139.1, "Average Update Latency": 92.1, "Median Update Latency": 88.6, "Tail Update Latency": 142.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 571213.0, "Average Read Latency": 14088.8, "Median Read Latency": 13242.5, "Tail Read Latency": 27479.9, "Average Update Latency": 14511.2, "Median Update Latency": 13247.0, "Tail Update Latency": 28504.9}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 509711.2, "Average Read Latency": 23939.1, "Median Read Latency": 14768.4, "Tail Read Latency": 262676.0, "Average Update Latency": 24472.0, "Median Update Latency": 14814.3, "Tail Update Latency": 265422.5}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 566241.8, "Average Read Latency": 15442.4, "Median Read Latency": 13286.7, "Tail Read Latency": 29673.2, "Average Update Latency": 16004.3, "Median Update Latency": 13308.2, "Tail Update Latency": 32918.9}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 299995.5, "Average Read Latency": 100.5, "Median Read Latency": 94.2, "Tail Read Latency": 187.0, "Average Update Latency": 103.8, "Median Update Latency": 97.3, "Tail Update Latency": 189.1}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 100031.9, "Average Read Latency": 98.2, "Median Read Latency": 92.7, "Tail Read Latency": 158.5, "Average Update Latency": 102.5, "Median Update Latency": 97.7, "Tail Update Latency": 168.8}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 299953.8, "Average Read Latency": 140.8, "Median Read Latency": 100.2, "Tail Read Latency": 310.4, "Average Update Latency": 160.1, "Median Update Latency": 102.1, "Tail Update Latency": 299.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 486761.0, "Average Read Latency": 23585.7, "Median Read Latency": 14671.7, "Tail Read Latency": 258405.9, "Average Update Latency": 24402.1, "Median Update Latency": 14744.8, "Tail Update Latency": 259901.8}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300002.5, "Average Read Latency": 134.9, "Median Read Latency": 99.2, "Tail Read Latency": 276.9, "Average Update Latency": 154.9, "Median Update Latency": 101.6, "Tail Update Latency": 312.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 399969.2, "Average Read Latency": 490.4, "Median Read Latency": 124.7, "Tail Read Latency": 8767.3, "Average Update Latency": 614.5, "Median Update Latency": 126.3, "Tail Update Latency": 11646.8}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 399897.4, "Average Read Latency": 417.9, "Median Read Latency": 127.0, "Tail Read Latency": 7335.7, "Average Update Latency": 518.3, "Median Update Latency": 129.3, "Tail Update Latency": 9158.8}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 400045.8, "Average Read Latency": 117.8, "Median Read Latency": 103.6, "Tail Read Latency": 301.8, "Average Update Latency": 120.9, "Median Update Latency": 105.9, "Tail Update Latency": 302.4}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 400000.6, "Average Read Latency": 117.7, "Median Read Latency": 104.7, "Tail Read Latency": 293.5, "Average Update Latency": 120.8, "Median Update Latency": 107.6, "Tail Update Latency": 294.4}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 588898.7, "Average Read Latency": 23907.4, "Median Read Latency": 13853.7, "Tail Read Latency": 260269.2, "Average Update Latency": 23606.4, "Median Update Latency": 13850.8, "Tail Update Latency": 255121.2}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 519960.0, "Average Read Latency": 33908.7, "Median Read Latency": 25111.3, "Tail Read Latency": 288938.9, "Average Update Latency": 34653.1, "Median Update Latency": 25165.1, "Tail Update Latency": 303320.0}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 510239.8, "Average Read Latency": 27435.0, "Median Read Latency": 18684.9, "Tail Read Latency": 273848.9, "Average Update Latency": 28269.9, "Median Update Latency": 18679.4, "Tail Update Latency": 281229.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 400018.8, "Average Read Latency": 122.4, "Median Read Latency": 103.7, "Tail Read Latency": 372.1, "Average Update Latency": 124.7, "Median Update Latency": 106.3, "Tail Update Latency": 380.6}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 99971.2, "Average Read Latency": 101.5, "Median Read Latency": 92.7, "Tail Read Latency": 143.1, "Average Update Latency": 107.5, "Median Update Latency": 96.0, "Tail Update Latency": 149.7}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 300016.1, "Average Read Latency": 136.0, "Median Read Latency": 98.8, "Tail Read Latency": 277.1, "Average Update Latency": 150.5, "Median Update Latency": 101.2, "Tail Update Latency": 282.5}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 300024.0, "Average Read Latency": 103.0, "Median Read Latency": 95.9, "Tail Read Latency": 197.3, "Average Update Latency": 106.0, "Median Update Latency": 99.1, "Tail Update Latency": 201.7}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499899.2, "Average Read Latency": 6391.9, "Median Read Latency": 294.7, "Tail Read Latency": 12508.1, "Average Update Latency": 6286.5, "Median Update Latency": 347.0, "Tail Update Latency": 12508.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499626.6, "Average Read Latency": 7801.9, "Median Read Latency": 1515.8, "Tail Read Latency": 221930.5, "Average Update Latency": 7909.8, "Median Update Latency": 1736.8, "Tail Update Latency": 222236.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 100026.6, "Average Read Latency": 89.0, "Median Read Latency": 86.1, "Tail Read Latency": 130.4, "Average Update Latency": 92.9, "Median Update Latency": 90.5, "Tail Update Latency": 138.3}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 199989.1, "Average Read Latency": 88.3, "Median Read Latency": 85.0, "Tail Read Latency": 137.7, "Average Update Latency": 91.5, "Median Update Latency": 87.9, "Tail Update Latency": 141.5}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499841.0, "Average Read Latency": 8630.0, "Median Read Latency": 2192.8, "Tail Read Latency": 223485.5, "Average Update Latency": 8562.8, "Median Update Latency": 2496.9, "Tail Update Latency": 222881.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200016.9, "Average Read Latency": 88.8, "Median Read Latency": 85.3, "Tail Read Latency": 138.6, "Average Update Latency": 92.3, "Median Update Latency": 88.4, "Tail Update Latency": 141.5}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 99994.9, "Average Read Latency": 88.7, "Median Read Latency": 86.0, "Tail Read Latency": 130.6, "Average Update Latency": 92.7, "Median Update Latency": 90.5, "Tail Update Latency": 137.0}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 200024.5, "Average Read Latency": 105.4, "Median Read Latency": 95.1, "Tail Read Latency": 206.5, "Average Update Latency": 109.9, "Median Update Latency": 99.5, "Tail Update Latency": 213.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499931.8, "Average Read Latency": 5487.1, "Median Read Latency": 292.6, "Tail Read Latency": 12450.2, "Average Update Latency": 5390.7, "Median Update Latency": 310.0, "Tail Update Latency": 12445.3}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 400023.4, "Average Read Latency": 168.4, "Median Read Latency": 121.2, "Tail Read Latency": 544.5, "Average Update Latency": 172.2, "Median Update Latency": 125.3, "Tail Update Latency": 548.5}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 400062.1, "Average Read Latency": 167.9, "Median Read Latency": 121.3, "Tail Read Latency": 550.2, "Average Update Latency": 173.6, "Median Update Latency": 125.3, "Tail Update Latency": 558.0}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 200041.2, "Average Read Latency": 114.1, "Median Read Latency": 98.7, "Tail Read Latency": 214.7, "Average Update Latency": 119.7, "Median Update Latency": 101.9, "Tail Update Latency": 220.8}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 503900.3, "Average Read Latency": 25421.2, "Median Read Latency": 14835.6, "Tail Read Latency": 277772.9, "Average Update Latency": 26605.0, "Median Update Latency": 14871.4, "Tail Update Latency": 292470.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 200014.6, "Average Read Latency": 105.5, "Median Read Latency": 94.7, "Tail Read Latency": 206.9, "Average Update Latency": 110.1, "Median Update Latency": 98.7, "Tail Update Latency": 207.5}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 199981.7, "Average Read Latency": 104.4, "Median Read Latency": 96.2, "Tail Read Latency": 208.6, "Average Update Latency": 108.6, "Median Update Latency": 100.6, "Tail Update Latency": 217.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499370.6, "Average Read Latency": 9474.9, "Median Read Latency": 2811.3, "Tail Read Latency": 226356.6, "Average Update Latency": 9552.9, "Median Update Latency": 2990.8, "Tail Update Latency": 226363.3}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 100049.6, "Average Read Latency": 88.2, "Median Read Latency": 85.5, "Tail Read Latency": 131.4, "Average Update Latency": 92.6, "Median Update Latency": 90.2, "Tail Update Latency": 138.3}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 566022.9, "Average Read Latency": 11863.5, "Median Read Latency": 7810.2, "Tail Read Latency": 233178.4, "Average Update Latency": 11883.6, "Median Update Latency": 7815.9, "Tail Update Latency": 233132.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 399881.0, "Average Read Latency": 121.0, "Median Read Latency": 103.0, "Tail Read Latency": 392.5, "Average Update Latency": 123.5, "Median Update Latency": 105.6, "Tail Update Latency": 391.5}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 508809.3, "Average Read Latency": 30822.8, "Median Read Latency": 20427.1, "Tail Read Latency": 292370.8, "Average Update Latency": 31250.3, "Median Update Latency": 20428.6, "Tail Update Latency": 301589.0}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100033.6, "Average Read Latency": 89.8, "Median Read Latency": 87.0, "Tail Read Latency": 134.4, "Average Update Latency": 94.1, "Median Update Latency": 92.0, "Tail Update Latency": 139.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 400073.6, "Average Read Latency": 119.2, "Median Read Latency": 104.1, "Tail Read Latency": 310.3, "Average Update Latency": 121.5, "Median Update Latency": 106.6, "Tail Update Latency": 311.1}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 100020.7, "Average Read Latency": 89.8, "Median Read Latency": 87.1, "Tail Read Latency": 133.8, "Average Update Latency": 94.3, "Median Update Latency": 92.1, "Tail Update Latency": 140.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 299993.6, "Average Read Latency": 147.8, "Median Read Latency": 106.0, "Tail Read Latency": 334.0, "Average Update Latency": 160.0, "Median Update Latency": 108.3, "Tail Update Latency": 346.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 486690.6, "Average Read Latency": 22485.6, "Median Read Latency": 12911.0, "Tail Read Latency": 259422.9, "Average Update Latency": 22544.2, "Median Update Latency": 12948.3, "Tail Update Latency": 259249.2}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 514481.9, "Average Read Latency": 26644.5, "Median Read Latency": 17372.3, "Tail Read Latency": 277884.0, "Average Update Latency": 27379.0, "Median Update Latency": 17427.5, "Tail Update Latency": 284359.3}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 564862.8, "Average Read Latency": 10391.8, "Median Read Latency": 7541.4, "Tail Read Latency": 230147.9, "Average Update Latency": 10448.3, "Median Update Latency": 7480.9, "Tail Update Latency": 230182.2}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 589974.7, "Average Read Latency": 21188.0, "Median Read Latency": 13326.6, "Tail Read Latency": 253120.1, "Average Update Latency": 20786.5, "Median Update Latency": 13285.1, "Tail Update Latency": 250894.9}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 100037.1, "Average Read Latency": 88.2, "Median Read Latency": 85.7, "Tail Read Latency": 127.9, "Average Update Latency": 92.4, "Median Update Latency": 90.3, "Tail Update Latency": 134.0}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 199967.4, "Average Read Latency": 108.8, "Median Read Latency": 95.1, "Tail Read Latency": 193.2, "Average Update Latency": 110.5, "Median Update Latency": 97.9, "Tail Update Latency": 196.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 100033.6, "Average Read Latency": 98.0, "Median Read Latency": 92.3, "Tail Read Latency": 155.8, "Average Update Latency": 105.5, "Median Update Latency": 97.1, "Tail Update Latency": 166.2}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 200012.6, "Average Read Latency": 104.7, "Median Read Latency": 94.4, "Tail Read Latency": 208.0, "Average Update Latency": 109.6, "Median Update Latency": 98.4, "Tail Update Latency": 207.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 571592.2, "Average Read Latency": 14089.1, "Median Read Latency": 13156.5, "Tail Read Latency": 27562.0, "Average Update Latency": 14210.8, "Median Update Latency": 13159.7, "Tail Update Latency": 28349.1}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 483746.8, "Average Read Latency": 20778.5, "Median Read Latency": 12834.7, "Tail Read Latency": 252742.2, "Average Update Latency": 21621.9, "Median Update Latency": 12914.1, "Tail Update Latency": 255892.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 400010.9, "Average Read Latency": 168.8, "Median Read Latency": 120.6, "Tail Read Latency": 535.4, "Average Update Latency": 172.8, "Median Update Latency": 124.7, "Tail Update Latency": 544.1}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 300035.3, "Average Read Latency": 137.8, "Median Read Latency": 99.0, "Tail Read Latency": 291.1, "Average Update Latency": 159.7, "Median Update Latency": 101.4, "Tail Update Latency": 310.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 399995.2, "Average Read Latency": 165.4, "Median Read Latency": 119.8, "Tail Read Latency": 522.7, "Average Update Latency": 167.6, "Median Update Latency": 123.8, "Tail Update Latency": 526.1}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 484745.5, "Average Read Latency": 22950.2, "Median Read Latency": 11985.3, "Tail Read Latency": 263281.6, "Average Update Latency": 23490.3, "Median Update Latency": 12064.4, "Tail Update Latency": 275949.8}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 400002.1, "Average Read Latency": 118.1, "Median Read Latency": 103.6, "Tail Read Latency": 313.6, "Average Update Latency": 121.7, "Median Update Latency": 106.3, "Tail Update Latency": 320.3}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 558106.9, "Average Read Latency": 14009.3, "Median Read Latency": 13364.1, "Tail Read Latency": 26457.5, "Average Update Latency": 14193.7, "Median Update Latency": 13370.1, "Tail Update Latency": 27486.9}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 200020.5, "Average Read Latency": 104.9, "Median Read Latency": 94.6, "Tail Read Latency": 203.7, "Average Update Latency": 108.6, "Median Update Latency": 98.7, "Tail Update Latency": 207.1}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 399939.5, "Average Read Latency": 130.4, "Median Read Latency": 104.9, "Tail Read Latency": 520.5, "Average Update Latency": 133.2, "Median Update Latency": 107.5, "Tail Update Latency": 526.7}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200027.1, "Average Read Latency": 87.7, "Median Read Latency": 84.7, "Tail Read Latency": 135.9, "Average Update Latency": 91.1, "Median Update Latency": 87.6, "Tail Update Latency": 139.3}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 299966.5, "Average Read Latency": 111.4, "Median Read Latency": 98.5, "Tail Read Latency": 247.1, "Average Update Latency": 112.8, "Median Update Latency": 102.0, "Tail Update Latency": 247.6}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 200090.4, "Average Read Latency": 88.9, "Median Read Latency": 85.9, "Tail Read Latency": 136.8, "Average Update Latency": 92.1, "Median Update Latency": 89.2, "Tail Update Latency": 140.2}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499354.2, "Average Read Latency": 9467.2, "Median Read Latency": 2164.0, "Tail Read Latency": 226863.7, "Average Update Latency": 9405.1, "Median Update Latency": 2690.7, "Tail Update Latency": 226503.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 570822.4, "Average Read Latency": 13726.8, "Median Read Latency": 13220.2, "Tail Read Latency": 25890.2, "Average Update Latency": 13767.3, "Median Update Latency": 13221.5, "Tail Update Latency": 26181.9}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 300032.4, "Average Read Latency": 102.4, "Median Read Latency": 94.9, "Tail Read Latency": 193.9, "Average Update Latency": 105.1, "Median Update Latency": 98.1, "Tail Update Latency": 198.1}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 400040.8, "Average Read Latency": 170.8, "Median Read Latency": 122.6, "Tail Read Latency": 549.2, "Average Update Latency": 172.6, "Median Update Latency": 126.4, "Tail Update Latency": 542.8}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 499897.8, "Average Read Latency": 5452.0, "Median Read Latency": 327.4, "Tail Read Latency": 12381.5, "Average Update Latency": 5469.0, "Median Update Latency": 335.2, "Tail Update Latency": 12384.4}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499853.1, "Average Read Latency": 9243.0, "Median Read Latency": 2290.5, "Tail Read Latency": 225530.1, "Average Update Latency": 9084.3, "Median Update Latency": 2207.9, "Tail Update Latency": 225070.4}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 508214.8, "Average Read Latency": 26289.6, "Median Read Latency": 15059.7, "Tail Read Latency": 308828.2, "Average Update Latency": 26545.2, "Median Update Latency": 15098.0, "Tail Update Latency": 310150.8}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 570148.3, "Average Read Latency": 17875.3, "Median Read Latency": 7593.7, "Tail Read Latency": 262670.6, "Average Update Latency": 18146.9, "Median Update Latency": 7636.8, "Tail Update Latency": 429710.8}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 199992.5, "Average Read Latency": 88.8, "Median Read Latency": 85.5, "Tail Read Latency": 137.8, "Average Update Latency": 91.9, "Median Update Latency": 88.8, "Tail Update Latency": 140.8}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 300003.4, "Average Read Latency": 102.1, "Median Read Latency": 95.4, "Tail Read Latency": 191.4, "Average Update Latency": 105.5, "Median Update Latency": 99.1, "Tail Update Latency": 197.3}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 99987.5, "Average Read Latency": 89.0, "Median Read Latency": 86.3, "Tail Read Latency": 134.1, "Average Update Latency": 94.0, "Median Update Latency": 91.4, "Tail Update Latency": 139.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 399943.7, "Average Read Latency": 169.2, "Median Read Latency": 121.1, "Tail Read Latency": 541.5, "Average Update Latency": 175.0, "Median Update Latency": 125.1, "Tail Update Latency": 552.5}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 400000.1, "Average Read Latency": 168.6, "Median Read Latency": 121.5, "Tail Read Latency": 529.2, "Average Update Latency": 171.2, "Median Update Latency": 125.4, "Tail Update Latency": 538.8}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 100006.0, "Average Read Latency": 99.7, "Median Read Latency": 92.5, "Tail Read Latency": 139.9, "Average Update Latency": 103.1, "Median Update Latency": 96.2, "Tail Update Latency": 147.0}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499638.3, "Average Read Latency": 8288.9, "Median Read Latency": 1707.9, "Tail Read Latency": 222611.1, "Average Update Latency": 8338.7, "Median Update Latency": 1796.7, "Tail Update Latency": 222489.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 100031.2, "Average Read Latency": 89.5, "Median Read Latency": 86.8, "Tail Read Latency": 135.8, "Average Update Latency": 94.2, "Median Update Latency": 91.7, "Tail Update Latency": 140.2}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499760.9, "Average Read Latency": 6143.4, "Median Read Latency": 296.7, "Tail Read Latency": 12607.6, "Average Update Latency": 6069.1, "Median Update Latency": 294.3, "Tail Update Latency": 12733.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 299977.8, "Average Read Latency": 134.1, "Median Read Latency": 99.5, "Tail Read Latency": 282.3, "Average Update Latency": 148.6, "Median Update Latency": 101.6, "Tail Update Latency": 281.1}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 566561.4, "Average Read Latency": 17041.2, "Median Read Latency": 7837.2, "Tail Read Latency": 240184.0, "Average Update Latency": 16964.1, "Median Update Latency": 7915.0, "Tail Update Latency": 240401.3}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 200052.4, "Average Read Latency": 104.6, "Median Read Latency": 96.8, "Tail Read Latency": 208.9, "Average Update Latency": 107.9, "Median Update Latency": 101.1, "Tail Update Latency": 213.2}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 399933.9, "Average Read Latency": 174.7, "Median Read Latency": 122.2, "Tail Read Latency": 563.4, "Average Update Latency": 176.0, "Median Update Latency": 126.5, "Tail Update Latency": 564.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 555895.1, "Average Read Latency": 14371.7, "Median Read Latency": 13831.0, "Tail Read Latency": 27385.6, "Average Update Latency": 14532.1, "Median Update Latency": 13840.3, "Tail Update Latency": 28390.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 399991.2, "Average Read Latency": 343.3, "Median Read Latency": 122.4, "Tail Read Latency": 5739.4, "Average Update Latency": 399.1, "Median Update Latency": 124.2, "Tail Update Latency": 6820.9}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 575405.6, "Average Read Latency": 14905.9, "Median Read Latency": 7301.0, "Tail Read Latency": 237071.3, "Average Update Latency": 15082.6, "Median Update Latency": 7360.7, "Tail Update Latency": 236770.9}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499488.8, "Average Read Latency": 8407.5, "Median Read Latency": 1875.2, "Tail Read Latency": 224186.3, "Average Update Latency": 8476.0, "Median Update Latency": 1975.3, "Tail Update Latency": 224107.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 300013.5, "Average Read Latency": 102.9, "Median Read Latency": 95.9, "Tail Read Latency": 193.3, "Average Update Latency": 105.7, "Median Update Latency": 98.9, "Tail Update Latency": 198.1}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499772.2, "Average Read Latency": 8408.3, "Median Read Latency": 1887.6, "Tail Read Latency": 222221.6, "Average Update Latency": 8691.5, "Median Update Latency": 2087.4, "Tail Update Latency": 223841.4}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 586358.5, "Average Read Latency": 24393.8, "Median Read Latency": 14846.1, "Tail Read Latency": 259105.2, "Average Update Latency": 24505.2, "Median Update Latency": 14911.2, "Tail Update Latency": 259781.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 399980.5, "Average Read Latency": 165.2, "Median Read Latency": 119.9, "Tail Read Latency": 525.2, "Average Update Latency": 168.1, "Median Update Latency": 123.8, "Tail Update Latency": 522.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 399957.6, "Average Read Latency": 121.8, "Median Read Latency": 104.8, "Tail Read Latency": 379.2, "Average Update Latency": 124.6, "Median Update Latency": 107.4, "Tail Update Latency": 383.5}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300026.8, "Average Read Latency": 154.0, "Median Read Latency": 106.1, "Tail Read Latency": 363.5, "Average Update Latency": 168.9, "Median Update Latency": 109.0, "Tail Update Latency": 394.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 399940.4, "Average Read Latency": 119.7, "Median Read Latency": 104.5, "Tail Read Latency": 314.0, "Average Update Latency": 122.2, "Median Update Latency": 106.7, "Tail Update Latency": 319.0}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 200043.8, "Average Read Latency": 105.7, "Median Read Latency": 95.2, "Tail Read Latency": 213.5, "Average Update Latency": 109.7, "Median Update Latency": 99.6, "Tail Update Latency": 221.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 570954.1, "Average Read Latency": 16891.4, "Median Read Latency": 7643.9, "Tail Read Latency": 239449.9, "Average Update Latency": 17681.7, "Median Update Latency": 7798.6, "Tail Update Latency": 240173.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 400020.7, "Average Read Latency": 511.0, "Median Read Latency": 125.4, "Tail Read Latency": 8876.8, "Average Update Latency": 637.3, "Median Update Latency": 127.0, "Tail Update Latency": 11870.2}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 508765.5, "Average Read Latency": 28053.3, "Median Read Latency": 16918.6, "Tail Read Latency": 312722.4, "Average Update Latency": 28794.0, "Median Update Latency": 17006.3, "Tail Update Latency": 325725.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 566270.9, "Average Read Latency": 15038.8, "Median Read Latency": 7270.9, "Tail Read Latency": 238222.9, "Average Update Latency": 15144.9, "Median Update Latency": 7284.1, "Tail Update Latency": 238308.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 200048.1, "Average Read Latency": 104.8, "Median Read Latency": 94.8, "Tail Read Latency": 207.2, "Average Update Latency": 106.2, "Median Update Latency": 99.2, "Tail Update Latency": 212.7}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 100006.6, "Average Read Latency": 87.2, "Median Read Latency": 84.7, "Tail Read Latency": 127.5, "Average Update Latency": 91.1, "Median Update Latency": 88.6, "Tail Update Latency": 133.5}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 200001.9, "Average Read Latency": 104.6, "Median Read Latency": 95.1, "Tail Read Latency": 207.0, "Average Update Latency": 109.8, "Median Update Latency": 99.3, "Tail Update Latency": 213.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 552201.0, "Average Read Latency": 14551.9, "Median Read Latency": 14038.4, "Tail Read Latency": 27840.1, "Average Update Latency": 14688.3, "Median Update Latency": 14053.9, "Tail Update Latency": 28703.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 399993.8, "Average Read Latency": 416.3, "Median Read Latency": 129.5, "Tail Read Latency": 7430.0, "Average Update Latency": 499.1, "Median Update Latency": 132.0, "Tail Update Latency": 8747.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 199993.2, "Average Read Latency": 87.6, "Median Read Latency": 84.9, "Tail Read Latency": 134.1, "Average Update Latency": 90.6, "Median Update Latency": 87.6, "Tail Update Latency": 137.6}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 99994.3, "Average Read Latency": 103.8, "Median Read Latency": 92.7, "Tail Read Latency": 141.4, "Average Update Latency": 104.6, "Median Update Latency": 97.3, "Tail Update Latency": 148.8}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 400016.2, "Average Read Latency": 160.8, "Median Read Latency": 113.6, "Tail Read Latency": 635.2, "Average Update Latency": 163.5, "Median Update Latency": 116.4, "Tail Update Latency": 638.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 500083.5, "Average Read Latency": 6074.8, "Median Read Latency": 322.6, "Tail Read Latency": 12519.8, "Average Update Latency": 5977.3, "Median Update Latency": 331.5, "Tail Update Latency": 12519.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 300014.8, "Average Read Latency": 101.7, "Median Read Latency": 95.1, "Tail Read Latency": 192.6, "Average Update Latency": 104.9, "Median Update Latency": 98.5, "Tail Update Latency": 195.6}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 574428.0, "Average Read Latency": 15909.4, "Median Read Latency": 12899.4, "Tail Read Latency": 32418.3, "Average Update Latency": 16217.5, "Median Update Latency": 12907.8, "Tail Update Latency": 78788.5}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 576631.4, "Average Read Latency": 11960.3, "Median Read Latency": 7110.8, "Tail Read Latency": 232417.3, "Average Update Latency": 12151.7, "Median Update Latency": 7180.2, "Tail Update Latency": 232610.5}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 99983.5, "Average Read Latency": 99.7, "Median Read Latency": 91.7, "Tail Read Latency": 139.9, "Average Update Latency": 103.3, "Median Update Latency": 95.4, "Tail Update Latency": 145.5}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 100010.6, "Average Read Latency": 99.3, "Median Read Latency": 92.8, "Tail Read Latency": 158.8, "Average Update Latency": 106.0, "Median Update Latency": 97.5, "Tail Update Latency": 168.9}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 200001.4, "Average Read Latency": 88.5, "Median Read Latency": 85.5, "Tail Read Latency": 137.3, "Average Update Latency": 91.5, "Median Update Latency": 88.3, "Tail Update Latency": 140.7}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 399945.9, "Average Read Latency": 445.2, "Median Read Latency": 127.0, "Tail Read Latency": 7652.7, "Average Update Latency": 516.3, "Median Update Latency": 128.8, "Tail Update Latency": 9116.0}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 567136.6, "Average Read Latency": 14388.7, "Median Read Latency": 7755.8, "Tail Read Latency": 236983.4, "Average Update Latency": 14509.9, "Median Update Latency": 7793.6, "Tail Update Latency": 236819.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 100010.7, "Average Read Latency": 106.0, "Median Read Latency": 93.2, "Tail Read Latency": 146.2, "Average Update Latency": 111.8, "Median Update Latency": 96.7, "Tail Update Latency": 152.9}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 567496.7, "Average Read Latency": 14059.3, "Median Read Latency": 13384.2, "Tail Read Latency": 27189.7, "Average Update Latency": 14298.0, "Median Update Latency": 13394.9, "Tail Update Latency": 28214.9}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 100007.6, "Average Read Latency": 100.1, "Median Read Latency": 93.7, "Tail Read Latency": 161.1, "Average Update Latency": 106.5, "Median Update Latency": 98.8, "Tail Update Latency": 170.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 99972.6, "Average Read Latency": 102.8, "Median Read Latency": 92.5, "Tail Read Latency": 143.3, "Average Update Latency": 107.1, "Median Update Latency": 95.8, "Tail Update Latency": 150.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 590090.9, "Average Read Latency": 20880.4, "Median Read Latency": 13548.6, "Tail Read Latency": 244918.2, "Average Update Latency": 21081.4, "Median Update Latency": 13561.0, "Tail Update Latency": 246277.8}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 565263.9, "Average Read Latency": 15831.4, "Median Read Latency": 8163.0, "Tail Read Latency": 237630.8, "Average Update Latency": 15988.6, "Median Update Latency": 8147.2, "Tail Update Latency": 237551.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 400084.5, "Average Read Latency": 171.2, "Median Read Latency": 121.3, "Tail Read Latency": 555.5, "Average Update Latency": 175.5, "Median Update Latency": 125.0, "Tail Update Latency": 569.4}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499724.0, "Average Read Latency": 8510.2, "Median Read Latency": 1463.7, "Tail Read Latency": 222330.0, "Average Update Latency": 8547.7, "Median Update Latency": 1524.1, "Tail Update Latency": 222940.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 200009.7, "Average Read Latency": 103.9, "Median Read Latency": 95.5, "Tail Read Latency": 211.6, "Average Update Latency": 108.4, "Median Update Latency": 100.1, "Tail Update Latency": 214.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 400059.8, "Average Read Latency": 158.8, "Median Read Latency": 112.3, "Tail Read Latency": 650.5, "Average Update Latency": 160.7, "Median Update Latency": 115.1, "Tail Update Latency": 643.5}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 400109.9, "Average Read Latency": 118.5, "Median Read Latency": 103.4, "Tail Read Latency": 313.9, "Average Update Latency": 121.0, "Median Update Latency": 105.9, "Tail Update Latency": 315.0}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 300007.2, "Average Read Latency": 129.3, "Median Read Latency": 99.0, "Tail Read Latency": 266.7, "Average Update Latency": 138.4, "Median Update Latency": 101.4, "Tail Update Latency": 271.1}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499890.8, "Average Read Latency": 5791.7, "Median Read Latency": 265.6, "Tail Read Latency": 12500.1, "Average Update Latency": 5887.9, "Median Update Latency": 302.9, "Tail Update Latency": 12512.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 508452.7, "Average Read Latency": 25419.2, "Median Read Latency": 15439.8, "Tail Read Latency": 267743.6, "Average Update Latency": 25789.6, "Median Update Latency": 15435.5, "Tail Update Latency": 274430.3}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 566726.7, "Average Read Latency": 20162.1, "Median Read Latency": 7460.5, "Tail Read Latency": 442253.4, "Average Update Latency": 19833.4, "Median Update Latency": 7425.6, "Tail Update Latency": 437743.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 399952.3, "Average Read Latency": 497.2, "Median Read Latency": 124.7, "Tail Read Latency": 8855.8, "Average Update Latency": 642.1, "Median Update Latency": 126.7, "Tail Update Latency": 11871.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 567688.0, "Average Read Latency": 14041.0, "Median Read Latency": 13311.0, "Tail Read Latency": 27774.5, "Average Update Latency": 14415.3, "Median Update Latency": 13324.7, "Tail Update Latency": 29240.8}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 508582.6, "Average Read Latency": 24517.3, "Median Read Latency": 14842.2, "Tail Read Latency": 269622.2, "Average Update Latency": 25069.1, "Median Update Latency": 14885.5, "Tail Update Latency": 273264.4}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 552685.4, "Average Read Latency": 14380.2, "Median Read Latency": 13847.9, "Tail Read Latency": 27130.2, "Average Update Latency": 14593.0, "Median Update Latency": 13853.3, "Tail Update Latency": 27806.0}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 484522.0, "Average Read Latency": 21237.8, "Median Read Latency": 12803.2, "Tail Read Latency": 256490.9, "Average Update Latency": 22141.5, "Median Update Latency": 12817.0, "Tail Update Latency": 258906.2}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 299979.7, "Average Read Latency": 135.1, "Median Read Latency": 99.0, "Tail Read Latency": 277.2, "Average Update Latency": 154.3, "Median Update Latency": 101.3, "Tail Update Latency": 290.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 200057.9, "Average Read Latency": 102.4, "Median Read Latency": 93.7, "Tail Read Latency": 182.1, "Average Update Latency": 106.1, "Median Update Latency": 96.6, "Tail Update Latency": 186.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 504927.8, "Average Read Latency": 23548.7, "Median Read Latency": 13536.2, "Tail Read Latency": 275754.2, "Average Update Latency": 23965.3, "Median Update Latency": 13553.0, "Tail Update Latency": 285270.3}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 589516.8, "Average Read Latency": 22994.1, "Median Read Latency": 13463.8, "Tail Read Latency": 257482.9, "Average Update Latency": 22995.3, "Median Update Latency": 13517.0, "Tail Update Latency": 256762.4}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 200021.6, "Average Read Latency": 104.8, "Median Read Latency": 95.5, "Tail Read Latency": 209.0, "Average Update Latency": 108.5, "Median Update Latency": 99.9, "Tail Update Latency": 208.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499367.7, "Average Read Latency": 8099.1, "Median Read Latency": 1452.5, "Tail Read Latency": 223115.8, "Average Update Latency": 8029.9, "Median Update Latency": 1431.4, "Tail Update Latency": 222519.7}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499732.1, "Average Read Latency": 8862.0, "Median Read Latency": 2043.3, "Tail Read Latency": 224512.9, "Average Update Latency": 8405.0, "Median Update Latency": 1691.7, "Tail Update Latency": 221831.8}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 589339.8, "Average Read Latency": 20602.1, "Median Read Latency": 13278.2, "Tail Read Latency": 245798.1, "Average Update Latency": 20758.2, "Median Update Latency": 13302.9, "Tail Update Latency": 248816.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 300044.2, "Average Read Latency": 103.5, "Median Read Latency": 96.4, "Tail Read Latency": 194.0, "Average Update Latency": 106.5, "Median Update Latency": 99.8, "Tail Update Latency": 198.6}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 565293.9, "Average Read Latency": 13006.1, "Median Read Latency": 7892.7, "Tail Read Latency": 234629.7, "Average Update Latency": 12972.9, "Median Update Latency": 7927.6, "Tail Update Latency": 234423.3}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 200001.3, "Average Read Latency": 88.1, "Median Read Latency": 84.9, "Tail Read Latency": 135.1, "Average Update Latency": 91.3, "Median Update Latency": 87.8, "Tail Update Latency": 139.2}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100008.1, "Average Read Latency": 89.7, "Median Read Latency": 87.0, "Tail Read Latency": 134.4, "Average Update Latency": 94.1, "Median Update Latency": 92.1, "Tail Update Latency": 139.2}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 400070.3, "Average Read Latency": 422.6, "Median Read Latency": 123.8, "Tail Read Latency": 7426.2, "Average Update Latency": 515.9, "Median Update Latency": 125.5, "Tail Update Latency": 9633.3}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 565228.3, "Average Read Latency": 16808.1, "Median Read Latency": 7768.5, "Tail Read Latency": 240025.9, "Average Update Latency": 16125.0, "Median Update Latency": 7612.1, "Tail Update Latency": 239230.0}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 486156.8, "Average Read Latency": 22402.3, "Median Read Latency": 12480.1, "Tail Read Latency": 260703.0, "Average Update Latency": 22491.3, "Median Update Latency": 12526.3, "Tail Update Latency": 261639.6}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499970.6, "Average Read Latency": 5189.3, "Median Read Latency": 265.7, "Tail Read Latency": 12329.4, "Average Update Latency": 5150.8, "Median Update Latency": 277.3, "Tail Update Latency": 12317.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 585238.8, "Average Read Latency": 24407.3, "Median Read Latency": 14903.1, "Tail Read Latency": 256943.6, "Average Update Latency": 24227.6, "Median Update Latency": 14804.0, "Tail Update Latency": 255218.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 199986.6, "Average Read Latency": 104.8, "Median Read Latency": 95.6, "Tail Read Latency": 207.5, "Average Update Latency": 107.5, "Median Update Latency": 100.1, "Tail Update Latency": 212.3}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 199986.1, "Average Read Latency": 102.3, "Median Read Latency": 94.5, "Tail Read Latency": 204.9, "Average Update Latency": 106.0, "Median Update Latency": 98.7, "Tail Update Latency": 210.3}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 508381.2, "Average Read Latency": 27409.9, "Median Read Latency": 15841.8, "Tail Read Latency": 326518.7, "Average Update Latency": 27673.9, "Median Update Latency": 15929.1, "Tail Update Latency": 331559.6}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100037.3, "Average Read Latency": 89.9, "Median Read Latency": 87.1, "Tail Read Latency": 134.7, "Average Update Latency": 94.8, "Median Update Latency": 92.1, "Tail Update Latency": 141.4}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 566809.1, "Average Read Latency": 11918.3, "Median Read Latency": 7820.6, "Tail Read Latency": 232865.9, "Average Update Latency": 11880.2, "Median Update Latency": 7785.1, "Tail Update Latency": 233028.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 200059.6, "Average Read Latency": 104.8, "Median Read Latency": 96.4, "Tail Read Latency": 212.1, "Average Update Latency": 110.7, "Median Update Latency": 100.7, "Tail Update Latency": 220.8}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 200009.3, "Average Read Latency": 119.1, "Median Read Latency": 97.5, "Tail Read Latency": 212.7, "Average Update Latency": 124.0, "Median Update Latency": 100.6, "Tail Update Latency": 220.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 300056.9, "Average Read Latency": 102.8, "Median Read Latency": 95.8, "Tail Read Latency": 196.7, "Average Update Latency": 105.8, "Median Update Latency": 98.7, "Tail Update Latency": 200.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 400007.7, "Average Read Latency": 164.2, "Median Read Latency": 119.4, "Tail Read Latency": 521.8, "Average Update Latency": 168.3, "Median Update Latency": 123.3, "Tail Update Latency": 534.0}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 561594.9, "Average Read Latency": 14127.8, "Median Read Latency": 13606.6, "Tail Read Latency": 27199.2, "Average Update Latency": 14316.2, "Median Update Latency": 13618.6, "Tail Update Latency": 28172.6}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 100003.3, "Average Read Latency": 101.5, "Median Read Latency": 92.3, "Tail Read Latency": 165.2, "Average Update Latency": 103.6, "Median Update Latency": 97.0, "Tail Update Latency": 171.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 400062.6, "Average Read Latency": 117.0, "Median Read Latency": 102.3, "Tail Read Latency": 304.2, "Average Update Latency": 119.7, "Median Update Latency": 104.8, "Tail Update Latency": 304.9}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 299994.6, "Average Read Latency": 111.6, "Median Read Latency": 97.9, "Tail Read Latency": 250.6, "Average Update Latency": 113.7, "Median Update Latency": 102.0, "Tail Update Latency": 249.5}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 482467.4, "Average Read Latency": 19224.5, "Median Read Latency": 11922.6, "Tail Read Latency": 249530.2, "Average Update Latency": 20047.8, "Median Update Latency": 11956.5, "Tail Update Latency": 252405.5}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 400058.2, "Average Read Latency": 406.5, "Median Read Latency": 124.5, "Tail Read Latency": 7055.3, "Average Update Latency": 486.0, "Median Update Latency": 126.4, "Tail Update Latency": 8837.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 508239.2, "Average Read Latency": 25462.5, "Median Read Latency": 16042.5, "Tail Read Latency": 265993.8, "Average Update Latency": 26282.6, "Median Update Latency": 16093.7, "Tail Update Latency": 273601.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 590570.8, "Average Read Latency": 23096.9, "Median Read Latency": 14251.7, "Tail Read Latency": 258091.7, "Average Update Latency": 22747.9, "Median Update Latency": 14197.0, "Tail Update Latency": 254067.7}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 508798.9, "Average Read Latency": 27284.9, "Median Read Latency": 16746.2, "Tail Read Latency": 282023.4, "Average Update Latency": 27779.4, "Median Update Latency": 16730.6, "Tail Update Latency": 286281.2}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200021.5, "Average Read Latency": 87.8, "Median Read Latency": 84.7, "Tail Read Latency": 137.1, "Average Update Latency": 91.4, "Median Update Latency": 87.6, "Tail Update Latency": 139.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499605.9, "Average Read Latency": 8339.2, "Median Read Latency": 2441.5, "Tail Read Latency": 224248.7, "Average Update Latency": 8260.6, "Median Update Latency": 2282.1, "Tail Update Latency": 223338.9}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 399985.2, "Average Read Latency": 170.2, "Median Read Latency": 122.7, "Tail Read Latency": 544.4, "Average Update Latency": 174.4, "Median Update Latency": 126.4, "Tail Update Latency": 554.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 299963.0, "Average Read Latency": 102.9, "Median Read Latency": 95.8, "Tail Read Latency": 194.7, "Average Update Latency": 106.2, "Median Update Latency": 98.8, "Tail Update Latency": 199.9}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 100033.0, "Average Read Latency": 100.3, "Median Read Latency": 92.8, "Tail Read Latency": 171.2, "Average Update Latency": 103.6, "Median Update Latency": 97.6, "Tail Update Latency": 177.1}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 569300.4, "Average Read Latency": 15588.2, "Median Read Latency": 7711.3, "Tail Read Latency": 238032.5, "Average Update Latency": 15543.3, "Median Update Latency": 7598.0, "Tail Update Latency": 237937.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 592722.2, "Average Read Latency": 22896.0, "Median Read Latency": 13229.1, "Tail Read Latency": 254357.6, "Average Update Latency": 22780.7, "Median Update Latency": 13267.5, "Tail Update Latency": 253913.0}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 200001.1, "Average Read Latency": 103.9, "Median Read Latency": 96.3, "Tail Read Latency": 213.5, "Average Update Latency": 109.0, "Median Update Latency": 100.6, "Tail Update Latency": 218.3}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 300000.7, "Average Read Latency": 111.3, "Median Read Latency": 98.6, "Tail Read Latency": 250.3, "Average Update Latency": 114.8, "Median Update Latency": 102.4, "Tail Update Latency": 256.7}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 299973.3, "Average Read Latency": 102.1, "Median Read Latency": 95.4, "Tail Read Latency": 194.0, "Average Update Latency": 104.9, "Median Update Latency": 98.3, "Tail Update Latency": 197.7}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499945.3, "Average Read Latency": 8255.9, "Median Read Latency": 1657.5, "Tail Read Latency": 223804.7, "Average Update Latency": 8261.8, "Median Update Latency": 1981.9, "Tail Update Latency": 223622.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 399972.0, "Average Read Latency": 120.6, "Median Read Latency": 103.7, "Tail Read Latency": 347.1, "Average Update Latency": 122.6, "Median Update Latency": 106.0, "Tail Update Latency": 344.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 504549.5, "Average Read Latency": 24986.5, "Median Read Latency": 14983.1, "Tail Read Latency": 273794.4, "Average Update Latency": 25829.9, "Median Update Latency": 15088.5, "Tail Update Latency": 284468.1}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 199977.2, "Average Read Latency": 105.0, "Median Read Latency": 94.8, "Tail Read Latency": 207.5, "Average Update Latency": 108.7, "Median Update Latency": 99.1, "Tail Update Latency": 218.4}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499826.1, "Average Read Latency": 9364.3, "Median Read Latency": 1807.3, "Tail Read Latency": 225326.2, "Average Update Latency": 9281.5, "Median Update Latency": 1918.3, "Tail Update Latency": 225221.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 483826.5, "Average Read Latency": 23562.8, "Median Read Latency": 12951.0, "Tail Read Latency": 262460.3, "Average Update Latency": 24400.3, "Median Update Latency": 12956.3, "Tail Update Latency": 271182.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 575780.5, "Average Read Latency": 17824.7, "Median Read Latency": 7558.5, "Tail Read Latency": 427876.0, "Average Update Latency": 17690.6, "Median Update Latency": 7583.1, "Tail Update Latency": 252531.5}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 99984.5, "Average Read Latency": 100.5, "Median Read Latency": 92.3, "Tail Read Latency": 138.8, "Average Update Latency": 102.6, "Median Update Latency": 95.8, "Tail Update Latency": 144.4}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 508659.5, "Average Read Latency": 25995.6, "Median Read Latency": 16506.3, "Tail Read Latency": 275320.5, "Average Update Latency": 27150.9, "Median Update Latency": 16598.0, "Tail Update Latency": 285882.8}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 399934.5, "Average Read Latency": 118.2, "Median Read Latency": 103.4, "Tail Read Latency": 316.9, "Average Update Latency": 120.2, "Median Update Latency": 105.6, "Tail Update Latency": 314.3}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 555399.9, "Average Read Latency": 14388.9, "Median Read Latency": 13656.8, "Tail Read Latency": 27633.9, "Average Update Latency": 14652.2, "Median Update Latency": 13683.8, "Tail Update Latency": 28903.3}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 567954.6, "Average Read Latency": 14982.3, "Median Read Latency": 13342.0, "Tail Read Latency": 29038.0, "Average Update Latency": 15180.7, "Median Update Latency": 13352.8, "Tail Update Latency": 29663.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 400022.4, "Average Read Latency": 117.9, "Median Read Latency": 103.7, "Tail Read Latency": 297.6, "Average Update Latency": 120.9, "Median Update Latency": 106.5, "Tail Update Latency": 300.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 400002.6, "Average Read Latency": 118.8, "Median Read Latency": 103.1, "Tail Read Latency": 321.2, "Average Update Latency": 122.0, "Median Update Latency": 105.6, "Tail Update Latency": 327.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 483802.0, "Average Read Latency": 22407.3, "Median Read Latency": 12475.4, "Tail Read Latency": 260993.7, "Average Update Latency": 23030.2, "Median Update Latency": 12581.9, "Tail Update Latency": 262917.4}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 588386.1, "Average Read Latency": 23207.0, "Median Read Latency": 14416.6, "Tail Read Latency": 256085.0, "Average Update Latency": 22827.3, "Median Update Latency": 14329.1, "Tail Update Latency": 256281.9}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 100025.2, "Average Read Latency": 100.8, "Median Read Latency": 93.5, "Tail Read Latency": 160.5, "Average Update Latency": 103.4, "Median Update Latency": 99.1, "Tail Update Latency": 170.3}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 504042.2, "Average Read Latency": 27508.2, "Median Read Latency": 17400.6, "Tail Read Latency": 282771.8, "Average Update Latency": 27806.4, "Median Update Latency": 17412.9, "Tail Update Latency": 287199.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 399978.6, "Average Read Latency": 165.5, "Median Read Latency": 116.1, "Tail Read Latency": 613.9, "Average Update Latency": 168.9, "Median Update Latency": 119.3, "Tail Update Latency": 628.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 299994.6, "Average Read Latency": 124.5, "Median Read Latency": 106.5, "Tail Read Latency": 305.4, "Average Update Latency": 131.3, "Median Update Latency": 111.0, "Tail Update Latency": 316.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 100025.7, "Average Read Latency": 90.0, "Median Read Latency": 87.3, "Tail Read Latency": 135.6, "Average Update Latency": 94.6, "Median Update Latency": 92.5, "Tail Update Latency": 140.2}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499941.1, "Average Read Latency": 5745.2, "Median Read Latency": 275.9, "Tail Read Latency": 12482.9, "Average Update Latency": 5694.6, "Median Update Latency": 300.9, "Tail Update Latency": 12475.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 506236.9, "Average Read Latency": 30055.9, "Median Read Latency": 18755.2, "Tail Read Latency": 309392.0, "Average Update Latency": 30588.7, "Median Update Latency": 18703.8, "Tail Update Latency": 324899.3}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 568400.3, "Average Read Latency": 14100.0, "Median Read Latency": 13283.7, "Tail Read Latency": 28570.4, "Average Update Latency": 14588.6, "Median Update Latency": 13299.4, "Tail Update Latency": 30466.8}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 199982.5, "Average Read Latency": 119.3, "Median Read Latency": 96.4, "Tail Read Latency": 201.8, "Average Update Latency": 124.3, "Median Update Latency": 99.7, "Tail Update Latency": 204.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 399935.6, "Average Read Latency": 118.0, "Median Read Latency": 103.6, "Tail Read Latency": 304.2, "Average Update Latency": 120.9, "Median Update Latency": 106.1, "Tail Update Latency": 311.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 99975.3, "Average Read Latency": 86.8, "Median Read Latency": 84.6, "Tail Read Latency": 126.4, "Average Update Latency": 90.9, "Median Update Latency": 88.6, "Tail Update Latency": 132.2}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 199951.9, "Average Read Latency": 89.5, "Median Read Latency": 86.2, "Tail Read Latency": 140.7, "Average Update Latency": 92.8, "Median Update Latency": 89.5, "Tail Update Latency": 143.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 590581.5, "Average Read Latency": 23177.2, "Median Read Latency": 14355.8, "Tail Read Latency": 253484.4, "Average Update Latency": 22832.0, "Median Update Latency": 14360.8, "Tail Update Latency": 247972.3}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 299996.7, "Average Read Latency": 126.6, "Median Read Latency": 107.1, "Tail Read Latency": 312.0, "Average Update Latency": 128.2, "Median Update Latency": 111.3, "Tail Update Latency": 310.4}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 300000.2, "Average Read Latency": 111.3, "Median Read Latency": 97.9, "Tail Read Latency": 248.0, "Average Update Latency": 116.3, "Median Update Latency": 101.7, "Tail Update Latency": 252.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 506532.6, "Average Read Latency": 27695.4, "Median Read Latency": 17911.2, "Tail Read Latency": 284492.0, "Average Update Latency": 28537.2, "Median Update Latency": 17859.9, "Tail Update Latency": 290901.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 399975.5, "Average Read Latency": 520.5, "Median Read Latency": 127.2, "Tail Read Latency": 9219.1, "Average Update Latency": 662.5, "Median Update Latency": 128.7, "Tail Update Latency": 12396.0}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 503458.6, "Average Read Latency": 25738.2, "Median Read Latency": 14287.8, "Tail Read Latency": 314311.3, "Average Update Latency": 26602.1, "Median Update Latency": 14368.4, "Tail Update Latency": 330932.1}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 399993.5, "Average Read Latency": 461.5, "Median Read Latency": 125.1, "Tail Read Latency": 7847.9, "Average Update Latency": 584.8, "Median Update Latency": 127.0, "Tail Update Latency": 10714.8}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 199994.0, "Average Read Latency": 115.9, "Median Read Latency": 95.8, "Tail Read Latency": 197.1, "Average Update Latency": 116.2, "Median Update Latency": 98.8, "Tail Update Latency": 198.0}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 200022.1, "Average Read Latency": 89.6, "Median Read Latency": 86.2, "Tail Read Latency": 139.0, "Average Update Latency": 92.6, "Median Update Latency": 89.5, "Tail Update Latency": 141.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 100007.0, "Average Read Latency": 101.1, "Median Read Latency": 92.8, "Tail Read Latency": 157.0, "Average Update Latency": 109.9, "Median Update Latency": 97.7, "Tail Update Latency": 169.7}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 564722.7, "Average Read Latency": 19786.0, "Median Read Latency": 7959.4, "Tail Read Latency": 431746.6, "Average Update Latency": 18850.1, "Median Update Latency": 7963.6, "Tail Update Latency": 429755.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 563453.2, "Average Read Latency": 14288.8, "Median Read Latency": 13380.5, "Tail Read Latency": 28000.4, "Average Update Latency": 14567.4, "Median Update Latency": 13394.1, "Tail Update Latency": 28826.0}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300005.7, "Average Read Latency": 128.4, "Median Read Latency": 98.5, "Tail Read Latency": 270.2, "Average Update Latency": 145.8, "Median Update Latency": 101.1, "Tail Update Latency": 288.9}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 200035.3, "Average Read Latency": 90.2, "Median Read Latency": 86.1, "Tail Read Latency": 141.1, "Average Update Latency": 92.9, "Median Update Latency": 89.2, "Tail Update Latency": 145.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 565746.2, "Average Read Latency": 14385.0, "Median Read Latency": 13252.0, "Tail Read Latency": 28628.6, "Average Update Latency": 14768.9, "Median Update Latency": 13273.5, "Tail Update Latency": 30000.3}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 400074.5, "Average Read Latency": 169.1, "Median Read Latency": 120.8, "Tail Read Latency": 539.0, "Average Update Latency": 173.0, "Median Update Latency": 124.7, "Tail Update Latency": 546.2}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 200082.5, "Average Read Latency": 119.6, "Median Read Latency": 97.7, "Tail Read Latency": 214.1, "Average Update Latency": 121.4, "Median Update Latency": 100.9, "Tail Update Latency": 218.1}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 299951.7, "Average Read Latency": 115.6, "Median Read Latency": 98.2, "Tail Read Latency": 250.4, "Average Update Latency": 118.2, "Median Update Latency": 101.9, "Tail Update Latency": 253.8}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200004.3, "Average Read Latency": 89.0, "Median Read Latency": 85.5, "Tail Read Latency": 138.9, "Average Update Latency": 91.8, "Median Update Latency": 88.5, "Tail Update Latency": 140.8}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 400003.3, "Average Read Latency": 386.0, "Median Read Latency": 125.4, "Tail Read Latency": 6754.7, "Average Update Latency": 448.5, "Median Update Latency": 126.8, "Tail Update Latency": 8078.7}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 300044.7, "Average Read Latency": 109.9, "Median Read Latency": 97.3, "Tail Read Latency": 247.7, "Average Update Latency": 113.2, "Median Update Latency": 101.3, "Tail Update Latency": 248.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 566257.0, "Average Read Latency": 16990.3, "Median Read Latency": 7864.6, "Tail Read Latency": 239715.4, "Average Update Latency": 16835.0, "Median Update Latency": 7887.7, "Tail Update Latency": 240000.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 509040.9, "Average Read Latency": 29222.6, "Median Read Latency": 21217.9, "Tail Read Latency": 279646.6, "Average Update Latency": 29879.6, "Median Update Latency": 21266.4, "Tail Update Latency": 283767.9}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100014.2, "Average Read Latency": 88.9, "Median Read Latency": 86.3, "Tail Read Latency": 133.0, "Average Update Latency": 93.4, "Median Update Latency": 91.1, "Tail Update Latency": 139.8}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 500414.9, "Average Read Latency": 23042.3, "Median Read Latency": 14380.6, "Tail Read Latency": 260072.2, "Average Update Latency": 23825.6, "Median Update Latency": 14378.9, "Tail Update Latency": 263521.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300016.4, "Average Read Latency": 142.3, "Median Read Latency": 106.3, "Tail Read Latency": 347.5, "Average Update Latency": 162.0, "Median Update Latency": 109.0, "Tail Update Latency": 367.8}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 300016.0, "Average Read Latency": 100.5, "Median Read Latency": 94.1, "Tail Read Latency": 186.4, "Average Update Latency": 103.7, "Median Update Latency": 96.9, "Tail Update Latency": 190.1}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 485238.5, "Average Read Latency": 23547.2, "Median Read Latency": 13347.6, "Tail Read Latency": 260539.9, "Average Update Latency": 24392.8, "Median Update Latency": 13374.1, "Tail Update Latency": 263290.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499891.5, "Average Read Latency": 6315.0, "Median Read Latency": 402.1, "Tail Read Latency": 12521.2, "Average Update Latency": 6104.4, "Median Update Latency": 375.7, "Tail Update Latency": 12514.9}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499538.4, "Average Read Latency": 8747.2, "Median Read Latency": 2604.8, "Tail Read Latency": 223943.6, "Average Update Latency": 8635.7, "Median Update Latency": 2448.0, "Tail Update Latency": 223848.3}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 399933.0, "Average Read Latency": 119.0, "Median Read Latency": 104.1, "Tail Read Latency": 331.8, "Average Update Latency": 122.1, "Median Update Latency": 106.8, "Tail Update Latency": 332.3}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 515185.5, "Average Read Latency": 28905.3, "Median Read Latency": 20411.0, "Tail Read Latency": 280815.8, "Average Update Latency": 29136.7, "Median Update Latency": 20495.9, "Tail Update Latency": 282227.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 400007.6, "Average Read Latency": 117.3, "Median Read Latency": 103.4, "Tail Read Latency": 300.4, "Average Update Latency": 119.8, "Median Update Latency": 106.2, "Tail Update Latency": 303.3}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 200017.4, "Average Read Latency": 117.1, "Median Read Latency": 97.4, "Tail Read Latency": 206.8, "Average Update Latency": 119.0, "Median Update Latency": 100.4, "Tail Update Latency": 210.1}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 400003.9, "Average Read Latency": 170.2, "Median Read Latency": 116.8, "Tail Read Latency": 657.4, "Average Update Latency": 173.0, "Median Update Latency": 120.2, "Tail Update Latency": 657.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 99963.6, "Average Read Latency": 98.1, "Median Read Latency": 92.2, "Tail Read Latency": 158.4, "Average Update Latency": 106.3, "Median Update Latency": 96.9, "Tail Update Latency": 168.6}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499831.7, "Average Read Latency": 6173.0, "Median Read Latency": 445.8, "Tail Read Latency": 12642.2, "Average Update Latency": 6220.0, "Median Update Latency": 576.2, "Tail Update Latency": 12981.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 199975.7, "Average Read Latency": 105.7, "Median Read Latency": 95.1, "Tail Read Latency": 192.7, "Average Update Latency": 108.2, "Median Update Latency": 98.1, "Tail Update Latency": 196.7}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 510136.6, "Average Read Latency": 30231.3, "Median Read Latency": 20414.3, "Tail Read Latency": 310808.3, "Average Update Latency": 30701.3, "Median Update Latency": 20554.4, "Tail Update Latency": 314355.2}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 593841.3, "Average Read Latency": 20496.6, "Median Read Latency": 13264.2, "Tail Read Latency": 243072.3, "Average Update Latency": 20832.1, "Median Update Latency": 13304.8, "Tail Update Latency": 243175.4}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 506163.0, "Average Read Latency": 21998.8, "Median Read Latency": 13650.5, "Tail Read Latency": 257543.1, "Average Update Latency": 22183.8, "Median Update Latency": 13674.1, "Tail Update Latency": 259563.1}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 300049.3, "Average Read Latency": 111.8, "Median Read Latency": 98.6, "Tail Read Latency": 252.7, "Average Update Latency": 115.7, "Median Update Latency": 102.2, "Tail Update Latency": 255.5}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 400074.1, "Average Read Latency": 381.4, "Median Read Latency": 123.7, "Tail Read Latency": 6976.6, "Average Update Latency": 452.6, "Median Update Latency": 125.8, "Tail Update Latency": 8127.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 510111.1, "Average Read Latency": 26728.9, "Median Read Latency": 14832.9, "Tail Read Latency": 318916.5, "Average Update Latency": 27183.8, "Median Update Latency": 14799.3, "Tail Update Latency": 329883.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 400064.6, "Average Read Latency": 124.5, "Median Read Latency": 104.0, "Tail Read Latency": 416.3, "Average Update Latency": 126.9, "Median Update Latency": 106.6, "Tail Update Latency": 409.7}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 300064.5, "Average Read Latency": 111.6, "Median Read Latency": 98.4, "Tail Read Latency": 249.3, "Average Update Latency": 115.2, "Median Update Latency": 102.0, "Tail Update Latency": 256.8}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 300041.9, "Average Read Latency": 102.8, "Median Read Latency": 94.8, "Tail Read Latency": 191.3, "Average Update Latency": 106.1, "Median Update Latency": 98.1, "Tail Update Latency": 198.3}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 100025.2, "Average Read Latency": 101.3, "Median Read Latency": 92.8, "Tail Read Latency": 163.5, "Average Update Latency": 102.2, "Median Update Latency": 97.7, "Tail Update Latency": 171.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 550004.9, "Average Read Latency": 14500.6, "Median Read Latency": 13658.6, "Tail Read Latency": 27834.6, "Average Update Latency": 14823.5, "Median Update Latency": 13682.6, "Tail Update Latency": 28857.3}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 499897.1, "Average Read Latency": 5904.8, "Median Read Latency": 336.5, "Tail Read Latency": 12492.0, "Average Update Latency": 5823.8, "Median Update Latency": 323.6, "Tail Update Latency": 12487.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 100029.2, "Average Read Latency": 100.2, "Median Read Latency": 92.5, "Tail Read Latency": 139.9, "Average Update Latency": 104.1, "Median Update Latency": 96.2, "Tail Update Latency": 145.6}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 584249.2, "Average Read Latency": 22287.2, "Median Read Latency": 13812.5, "Tail Read Latency": 249803.6, "Average Update Latency": 22244.3, "Median Update Latency": 13682.9, "Tail Update Latency": 249473.0}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 399981.3, "Average Read Latency": 170.0, "Median Read Latency": 122.7, "Tail Read Latency": 545.8, "Average Update Latency": 172.6, "Median Update Latency": 126.1, "Tail Update Latency": 549.3}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499827.2, "Average Read Latency": 9045.0, "Median Read Latency": 2913.0, "Tail Read Latency": 225288.8, "Average Update Latency": 8890.9, "Median Update Latency": 2799.4, "Tail Update Latency": 224651.6}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 483263.3, "Average Read Latency": 21789.5, "Median Read Latency": 11429.2, "Tail Read Latency": 259072.4, "Average Update Latency": 21923.4, "Median Update Latency": 11529.2, "Tail Update Latency": 260618.9}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 200008.9, "Average Read Latency": 88.6, "Median Read Latency": 85.2, "Tail Read Latency": 137.9, "Average Update Latency": 92.2, "Median Update Latency": 88.5, "Tail Update Latency": 140.7}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 100036.8, "Average Read Latency": 103.3, "Median Read Latency": 92.9, "Tail Read Latency": 145.8, "Average Update Latency": 105.5, "Median Update Latency": 96.3, "Tail Update Latency": 152.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 400004.3, "Average Read Latency": 168.4, "Median Read Latency": 120.9, "Tail Read Latency": 534.5, "Average Update Latency": 170.7, "Median Update Latency": 124.7, "Tail Update Latency": 536.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 557095.4, "Average Read Latency": 14163.2, "Median Read Latency": 13561.8, "Tail Read Latency": 27005.0, "Average Update Latency": 14356.7, "Median Update Latency": 13567.6, "Tail Update Latency": 28036.5}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 100008.2, "Average Read Latency": 99.5, "Median Read Latency": 93.7, "Tail Read Latency": 159.9, "Average Update Latency": 106.8, "Median Update Latency": 98.5, "Tail Update Latency": 167.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 100011.4, "Average Read Latency": 103.7, "Median Read Latency": 92.0, "Tail Read Latency": 139.5, "Average Update Latency": 109.0, "Median Update Latency": 95.5, "Tail Update Latency": 147.3}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 400035.5, "Average Read Latency": 120.2, "Median Read Latency": 104.3, "Tail Read Latency": 323.6, "Average Update Latency": 122.2, "Median Update Latency": 106.6, "Tail Update Latency": 329.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 569440.4, "Average Read Latency": 12658.7, "Median Read Latency": 7668.3, "Tail Read Latency": 234282.0, "Average Update Latency": 12470.9, "Median Update Latency": 7784.6, "Tail Update Latency": 233974.4}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 200015.1, "Average Read Latency": 104.9, "Median Read Latency": 94.1, "Tail Read Latency": 182.2, "Average Update Latency": 111.4, "Median Update Latency": 97.1, "Tail Update Latency": 187.9}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 591138.4, "Average Read Latency": 23984.3, "Median Read Latency": 15646.9, "Tail Read Latency": 260300.6, "Average Update Latency": 24000.3, "Median Update Latency": 15592.4, "Tail Update Latency": 256930.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 300044.1, "Average Read Latency": 127.8, "Median Read Latency": 108.4, "Tail Read Latency": 306.2, "Average Update Latency": 132.8, "Median Update Latency": 112.3, "Tail Update Latency": 322.7}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 199998.5, "Average Read Latency": 106.2, "Median Read Latency": 94.8, "Tail Read Latency": 189.6, "Average Update Latency": 110.3, "Median Update Latency": 97.9, "Tail Update Latency": 194.2}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 578612.9, "Average Read Latency": 14420.8, "Median Read Latency": 13124.9, "Tail Read Latency": 28436.7, "Average Update Latency": 14701.5, "Median Update Latency": 13138.2, "Tail Update Latency": 28934.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 400038.0, "Average Read Latency": 124.8, "Median Read Latency": 103.8, "Tail Read Latency": 446.5, "Average Update Latency": 127.8, "Median Update Latency": 106.3, "Tail Update Latency": 453.9}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 400008.0, "Average Read Latency": 139.2, "Median Read Latency": 107.4, "Tail Read Latency": 552.2, "Average Update Latency": 141.9, "Median Update Latency": 110.3, "Tail Update Latency": 558.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 200027.0, "Average Read Latency": 109.6, "Median Read Latency": 97.0, "Tail Read Latency": 204.3, "Average Update Latency": 113.4, "Median Update Latency": 100.1, "Tail Update Latency": 205.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 543965.9, "Average Read Latency": 14555.2, "Median Read Latency": 13958.9, "Tail Read Latency": 27680.1, "Average Update Latency": 14824.9, "Median Update Latency": 13971.3, "Tail Update Latency": 28851.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 199994.4, "Average Read Latency": 103.9, "Median Read Latency": 94.8, "Tail Read Latency": 206.7, "Average Update Latency": 105.9, "Median Update Latency": 99.1, "Tail Update Latency": 214.1}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 300037.3, "Average Read Latency": 102.1, "Median Read Latency": 95.2, "Tail Read Latency": 194.8, "Average Update Latency": 105.5, "Median Update Latency": 98.6, "Tail Update Latency": 199.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499975.5, "Average Read Latency": 6117.1, "Median Read Latency": 480.4, "Tail Read Latency": 12499.6, "Average Update Latency": 6235.0, "Median Update Latency": 712.4, "Tail Update Latency": 12510.7}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 568353.6, "Average Read Latency": 12514.0, "Median Read Latency": 7713.3, "Tail Read Latency": 233885.2, "Average Update Latency": 12471.6, "Median Update Latency": 7799.8, "Tail Update Latency": 233991.7}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499727.4, "Average Read Latency": 9070.0, "Median Read Latency": 2285.8, "Tail Read Latency": 225220.2, "Average Update Latency": 8996.3, "Median Update Latency": 2046.5, "Tail Update Latency": 225079.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499869.8, "Average Read Latency": 8685.0, "Median Read Latency": 1882.3, "Tail Read Latency": 223718.4, "Average Update Latency": 8522.4, "Median Update Latency": 1732.4, "Tail Update Latency": 222736.9}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 300083.0, "Average Read Latency": 103.6, "Median Read Latency": 96.5, "Tail Read Latency": 192.8, "Average Update Latency": 106.8, "Median Update Latency": 99.9, "Tail Update Latency": 198.7}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 567407.3, "Average Read Latency": 12725.4, "Median Read Latency": 7808.5, "Tail Read Latency": 234431.7, "Average Update Latency": 13132.7, "Median Update Latency": 7804.0, "Tail Update Latency": 235171.3}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 511885.1, "Average Read Latency": 25077.2, "Median Read Latency": 16363.0, "Tail Read Latency": 262982.0, "Average Update Latency": 25616.2, "Median Update Latency": 16378.1, "Tail Update Latency": 264838.6}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 199989.4, "Average Read Latency": 89.0, "Median Read Latency": 85.6, "Tail Read Latency": 138.9, "Average Update Latency": 92.4, "Median Update Latency": 88.8, "Tail Update Latency": 142.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 400048.1, "Average Read Latency": 173.9, "Median Read Latency": 122.7, "Tail Read Latency": 563.7, "Average Update Latency": 176.5, "Median Update Latency": 126.9, "Tail Update Latency": 563.0}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 483966.8, "Average Read Latency": 23885.0, "Median Read Latency": 12648.8, "Tail Read Latency": 263631.6, "Average Update Latency": 24326.9, "Median Update Latency": 12661.4, "Tail Update Latency": 266594.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 536341.0, "Average Read Latency": 28597.0, "Median Read Latency": 21527.6, "Tail Read Latency": 275708.8, "Average Update Latency": 28727.0, "Median Update Latency": 21568.0, "Tail Update Latency": 274967.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 509829.2, "Average Read Latency": 28324.8, "Median Read Latency": 19055.3, "Tail Read Latency": 281871.1, "Average Update Latency": 28736.6, "Median Update Latency": 19109.1, "Tail Update Latency": 284359.3}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 99987.1, "Average Read Latency": 87.1, "Median Read Latency": 84.8, "Tail Read Latency": 127.1, "Average Update Latency": 91.1, "Median Update Latency": 88.9, "Tail Update Latency": 131.7}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 300015.9, "Average Read Latency": 135.9, "Median Read Latency": 99.5, "Tail Read Latency": 295.8, "Average Update Latency": 159.6, "Median Update Latency": 101.7, "Tail Update Latency": 328.0}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 593642.5, "Average Read Latency": 21919.2, "Median Read Latency": 13361.8, "Tail Read Latency": 253322.2, "Average Update Latency": 21802.8, "Median Update Latency": 13330.3, "Tail Update Latency": 252150.8}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 572593.2, "Average Read Latency": 21220.9, "Median Read Latency": 7423.0, "Tail Read Latency": 447806.9, "Average Update Latency": 20438.4, "Median Update Latency": 7586.2, "Tail Update Latency": 443872.8}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 508188.6, "Average Read Latency": 27004.7, "Median Read Latency": 17238.0, "Tail Read Latency": 276881.7, "Average Update Latency": 27395.6, "Median Update Latency": 17215.8, "Tail Update Latency": 281479.1}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 556770.7, "Average Read Latency": 14393.8, "Median Read Latency": 13651.8, "Tail Read Latency": 27556.5, "Average Update Latency": 14535.6, "Median Update Latency": 13645.0, "Tail Update Latency": 28380.2}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499535.6, "Average Read Latency": 9184.0, "Median Read Latency": 1969.5, "Tail Read Latency": 226418.9, "Average Update Latency": 8947.8, "Median Update Latency": 1715.3, "Tail Update Latency": 224812.7}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 199975.4, "Average Read Latency": 112.0, "Median Read Latency": 94.7, "Tail Read Latency": 187.8, "Average Update Latency": 119.1, "Median Update Latency": 97.6, "Tail Update Latency": 195.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 567807.9, "Average Read Latency": 13987.1, "Median Read Latency": 13283.0, "Tail Read Latency": 27134.0, "Average Update Latency": 14275.6, "Median Update Latency": 13292.0, "Tail Update Latency": 28559.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 557839.3, "Average Read Latency": 13992.4, "Median Read Latency": 13395.7, "Tail Read Latency": 26632.4, "Average Update Latency": 14250.3, "Median Update Latency": 13403.9, "Tail Update Latency": 27735.3}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 99994.8, "Average Read Latency": 97.5, "Median Read Latency": 92.6, "Tail Read Latency": 155.5, "Average Update Latency": 103.7, "Median Update Latency": 97.2, "Tail Update Latency": 166.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 99975.0, "Average Read Latency": 102.3, "Median Read Latency": 93.1, "Tail Read Latency": 158.8, "Average Update Latency": 109.4, "Median Update Latency": 98.1, "Tail Update Latency": 170.7}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499913.3, "Average Read Latency": 5300.7, "Median Read Latency": 261.3, "Tail Read Latency": 12342.9, "Average Update Latency": 5381.4, "Median Update Latency": 269.6, "Tail Update Latency": 12363.5}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 482469.3, "Average Read Latency": 24036.4, "Median Read Latency": 12196.3, "Tail Read Latency": 285159.0, "Average Update Latency": 24589.0, "Median Update Latency": 12278.2, "Tail Update Latency": 316964.7}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 99989.5, "Average Read Latency": 103.1, "Median Read Latency": 92.0, "Tail Read Latency": 139.3, "Average Update Latency": 107.7, "Median Update Latency": 95.6, "Tail Update Latency": 144.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 591274.7, "Average Read Latency": 21306.6, "Median Read Latency": 13142.2, "Tail Read Latency": 249886.2, "Average Update Latency": 21503.0, "Median Update Latency": 13117.7, "Tail Update Latency": 252207.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499840.6, "Average Read Latency": 7395.2, "Median Read Latency": 1308.7, "Tail Read Latency": 216588.2, "Average Update Latency": 7243.8, "Median Update Latency": 1196.9, "Tail Update Latency": 205661.5}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 299990.9, "Average Read Latency": 133.5, "Median Read Latency": 99.1, "Tail Read Latency": 277.7, "Average Update Latency": 149.1, "Median Update Latency": 101.2, "Tail Update Latency": 282.6}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 550344.5, "Average Read Latency": 14458.0, "Median Read Latency": 13763.5, "Tail Read Latency": 28041.7, "Average Update Latency": 14754.3, "Median Update Latency": 13777.0, "Tail Update Latency": 28873.2}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 300012.4, "Average Read Latency": 127.6, "Median Read Latency": 106.5, "Tail Read Latency": 303.3, "Average Update Latency": 130.2, "Median Update Latency": 110.6, "Tail Update Latency": 312.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 100029.7, "Average Read Latency": 87.5, "Median Read Latency": 85.0, "Tail Read Latency": 127.9, "Average Update Latency": 91.5, "Median Update Latency": 89.1, "Tail Update Latency": 133.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 299955.4, "Average Read Latency": 127.6, "Median Read Latency": 107.0, "Tail Read Latency": 308.6, "Average Update Latency": 131.4, "Median Update Latency": 111.2, "Tail Update Latency": 310.2}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 504354.1, "Average Read Latency": 23397.6, "Median Read Latency": 13297.4, "Tail Read Latency": 286658.9, "Average Update Latency": 25009.8, "Median Update Latency": 13352.4, "Tail Update Latency": 315299.2}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 299978.3, "Average Read Latency": 140.3, "Median Read Latency": 98.7, "Tail Read Latency": 288.3, "Average Update Latency": 157.3, "Median Update Latency": 101.1, "Tail Update Latency": 303.8}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 99984.0, "Average Read Latency": 98.9, "Median Read Latency": 91.9, "Tail Read Latency": 139.3, "Average Update Latency": 105.0, "Median Update Latency": 95.5, "Tail Update Latency": 146.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 100010.7, "Average Read Latency": 101.6, "Median Read Latency": 93.2, "Tail Read Latency": 162.5, "Average Update Latency": 108.6, "Median Update Latency": 97.9, "Tail Update Latency": 169.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499736.4, "Average Read Latency": 8674.9, "Median Read Latency": 1357.2, "Tail Read Latency": 223382.3, "Average Update Latency": 8710.1, "Median Update Latency": 1293.4, "Tail Update Latency": 223349.7}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 595153.9, "Average Read Latency": 23017.1, "Median Read Latency": 13156.5, "Tail Read Latency": 260097.9, "Average Update Latency": 23371.7, "Median Update Latency": 13242.4, "Tail Update Latency": 260826.6}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 400035.9, "Average Read Latency": 166.0, "Median Read Latency": 121.0, "Tail Read Latency": 526.6, "Average Update Latency": 171.1, "Median Update Latency": 124.7, "Tail Update Latency": 532.2}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 100021.3, "Average Read Latency": 98.6, "Median Read Latency": 92.4, "Tail Read Latency": 156.4, "Average Update Latency": 105.2, "Median Update Latency": 97.2, "Tail Update Latency": 167.4}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 484527.5, "Average Read Latency": 23195.0, "Median Read Latency": 12556.2, "Tail Read Latency": 263788.9, "Average Update Latency": 23655.7, "Median Update Latency": 12664.8, "Tail Update Latency": 264467.6}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499696.4, "Average Read Latency": 8553.5, "Median Read Latency": 2549.5, "Tail Read Latency": 224837.3, "Average Update Latency": 8494.1, "Median Update Latency": 2680.2, "Tail Update Latency": 224033.1}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 503093.6, "Average Read Latency": 27259.9, "Median Read Latency": 14968.3, "Tail Read Latency": 302063.8, "Average Update Latency": 27562.5, "Median Update Latency": 14974.2, "Tail Update Latency": 332379.0}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 553723.6, "Average Read Latency": 14345.2, "Median Read Latency": 13735.2, "Tail Read Latency": 27670.3, "Average Update Latency": 14616.4, "Median Update Latency": 13730.6, "Tail Update Latency": 28649.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 510898.3, "Average Read Latency": 28812.9, "Median Read Latency": 20017.7, "Tail Read Latency": 281105.9, "Average Update Latency": 29089.1, "Median Update Latency": 20091.7, "Tail Update Latency": 281828.8}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100011.4, "Average Read Latency": 90.7, "Median Read Latency": 87.5, "Tail Read Latency": 138.3, "Average Update Latency": 95.4, "Median Update Latency": 92.9, "Tail Update Latency": 142.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499711.1, "Average Read Latency": 8327.6, "Median Read Latency": 1674.9, "Tail Read Latency": 222153.6, "Average Update Latency": 8470.2, "Median Update Latency": 1998.5, "Tail Update Latency": 222383.0}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 592348.9, "Average Read Latency": 22429.9, "Median Read Latency": 14535.3, "Tail Read Latency": 250032.5, "Average Update Latency": 22501.9, "Median Update Latency": 14602.4, "Tail Update Latency": 250666.1}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 299998.2, "Average Read Latency": 111.9, "Median Read Latency": 98.4, "Tail Read Latency": 247.6, "Average Update Latency": 114.8, "Median Update Latency": 102.1, "Tail Update Latency": 250.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 300043.8, "Average Read Latency": 130.5, "Median Read Latency": 99.8, "Tail Read Latency": 265.6, "Average Update Latency": 153.6, "Median Update Latency": 101.9, "Tail Update Latency": 273.8}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 200054.2, "Average Read Latency": 89.6, "Median Read Latency": 86.0, "Tail Read Latency": 139.9, "Average Update Latency": 92.3, "Median Update Latency": 89.1, "Tail Update Latency": 142.6}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100009.6, "Average Read Latency": 89.2, "Median Read Latency": 86.5, "Tail Read Latency": 133.8, "Average Update Latency": 94.4, "Median Update Latency": 91.7, "Tail Update Latency": 140.7}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 400067.5, "Average Read Latency": 166.9, "Median Read Latency": 121.0, "Tail Read Latency": 530.1, "Average Update Latency": 169.2, "Median Update Latency": 124.6, "Tail Update Latency": 531.4}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 99985.0, "Average Read Latency": 103.7, "Median Read Latency": 92.5, "Tail Read Latency": 145.1, "Average Update Latency": 106.7, "Median Update Latency": 95.9, "Tail Update Latency": 151.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 572728.8, "Average Read Latency": 13951.4, "Median Read Latency": 13192.2, "Tail Read Latency": 27484.6, "Average Update Latency": 14288.4, "Median Update Latency": 13198.7, "Tail Update Latency": 28668.1}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 199978.5, "Average Read Latency": 115.6, "Median Read Latency": 96.3, "Tail Read Latency": 203.3, "Average Update Latency": 115.3, "Median Update Latency": 99.4, "Tail Update Latency": 202.8}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100015.2, "Average Read Latency": 88.1, "Median Read Latency": 85.7, "Tail Read Latency": 127.7, "Average Update Latency": 92.5, "Median Update Latency": 90.2, "Tail Update Latency": 135.6}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 200091.2, "Average Read Latency": 104.5, "Median Read Latency": 95.5, "Tail Read Latency": 208.6, "Average Update Latency": 109.8, "Median Update Latency": 99.9, "Tail Update Latency": 217.4}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 300003.6, "Average Read Latency": 134.8, "Median Read Latency": 100.1, "Tail Read Latency": 282.5, "Average Update Latency": 153.4, "Median Update Latency": 102.0, "Tail Update Latency": 297.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 200006.2, "Average Read Latency": 106.2, "Median Read Latency": 95.4, "Tail Read Latency": 210.5, "Average Update Latency": 111.8, "Median Update Latency": 99.7, "Tail Update Latency": 222.0}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 399973.9, "Average Read Latency": 118.7, "Median Read Latency": 103.5, "Tail Read Latency": 316.0, "Average Update Latency": 121.1, "Median Update Latency": 105.8, "Tail Update Latency": 319.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 200011.6, "Average Read Latency": 108.6, "Median Read Latency": 95.5, "Tail Read Latency": 213.3, "Average Update Latency": 111.8, "Median Update Latency": 99.9, "Tail Update Latency": 220.2}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 300010.0, "Average Read Latency": 110.0, "Median Read Latency": 97.8, "Tail Read Latency": 244.4, "Average Update Latency": 113.2, "Median Update Latency": 101.7, "Tail Update Latency": 248.2}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 567042.7, "Average Read Latency": 14566.9, "Median Read Latency": 13311.0, "Tail Read Latency": 29164.4, "Average Update Latency": 14921.2, "Median Update Latency": 13313.3, "Tail Update Latency": 30006.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 400022.8, "Average Read Latency": 167.0, "Median Read Latency": 122.1, "Tail Read Latency": 535.3, "Average Update Latency": 171.7, "Median Update Latency": 126.1, "Tail Update Latency": 544.0}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 300050.7, "Average Read Latency": 142.8, "Median Read Latency": 99.6, "Tail Read Latency": 279.5, "Average Update Latency": 162.1, "Median Update Latency": 101.8, "Tail Update Latency": 300.7}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 518966.3, "Average Read Latency": 27966.2, "Median Read Latency": 18193.0, "Tail Read Latency": 290564.9, "Average Update Latency": 28624.9, "Median Update Latency": 18190.1, "Tail Update Latency": 312359.9}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 199976.5, "Average Read Latency": 105.5, "Median Read Latency": 94.3, "Tail Read Latency": 181.5, "Average Update Latency": 109.3, "Median Update Latency": 97.2, "Tail Update Latency": 185.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 509784.7, "Average Read Latency": 26075.9, "Median Read Latency": 15354.8, "Tail Read Latency": 289860.0, "Average Update Latency": 27012.3, "Median Update Latency": 15403.5, "Tail Update Latency": 310815.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 100006.3, "Average Read Latency": 89.3, "Median Read Latency": 86.7, "Tail Read Latency": 133.5, "Average Update Latency": 94.4, "Median Update Latency": 92.0, "Tail Update Latency": 141.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 99996.1, "Average Read Latency": 100.6, "Median Read Latency": 93.1, "Tail Read Latency": 146.0, "Average Update Latency": 104.6, "Median Update Latency": 96.4, "Tail Update Latency": 151.3}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 399932.7, "Average Read Latency": 168.1, "Median Read Latency": 120.9, "Tail Read Latency": 543.3, "Average Update Latency": 172.2, "Median Update Latency": 124.6, "Tail Update Latency": 555.4}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 510012.0, "Average Read Latency": 27477.0, "Median Read Latency": 17810.8, "Tail Read Latency": 278074.8, "Average Update Latency": 27532.6, "Median Update Latency": 17687.6, "Tail Update Latency": 280602.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 515347.8, "Average Read Latency": 20116.5, "Median Read Latency": 13066.0, "Tail Read Latency": 250440.9, "Average Update Latency": 20195.8, "Median Update Latency": 13079.4, "Tail Update Latency": 249628.2}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 100003.5, "Average Read Latency": 88.7, "Median Read Latency": 86.2, "Tail Read Latency": 129.9, "Average Update Latency": 93.1, "Median Update Latency": 91.1, "Tail Update Latency": 137.5}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 571950.4, "Average Read Latency": 14650.7, "Median Read Latency": 13266.4, "Tail Read Latency": 29087.5, "Average Update Latency": 15017.4, "Median Update Latency": 13285.8, "Tail Update Latency": 29581.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 200018.7, "Average Read Latency": 106.2, "Median Read Latency": 95.7, "Tail Read Latency": 208.7, "Average Update Latency": 112.1, "Median Update Latency": 100.1, "Tail Update Latency": 211.7}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 593036.8, "Average Read Latency": 23002.0, "Median Read Latency": 13835.9, "Tail Read Latency": 257390.4, "Average Update Latency": 23098.3, "Median Update Latency": 13915.7, "Tail Update Latency": 258402.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 300059.8, "Average Read Latency": 161.0, "Median Read Latency": 107.5, "Tail Read Latency": 431.4, "Average Update Latency": 182.1, "Median Update Latency": 110.2, "Tail Update Latency": 545.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 570282.3, "Average Read Latency": 15444.9, "Median Read Latency": 7643.9, "Tail Read Latency": 238626.2, "Average Update Latency": 15417.3, "Median Update Latency": 7655.3, "Tail Update Latency": 238816.9}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 507995.7, "Average Read Latency": 28066.9, "Median Read Latency": 18034.8, "Tail Read Latency": 283091.8, "Average Update Latency": 28166.0, "Median Update Latency": 18205.8, "Tail Update Latency": 284140.3}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 299952.8, "Average Read Latency": 133.1, "Median Read Latency": 98.9, "Tail Read Latency": 283.6, "Average Update Latency": 147.2, "Median Update Latency": 101.3, "Tail Update Latency": 288.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 100051.3, "Average Read Latency": 101.3, "Median Read Latency": 92.5, "Tail Read Latency": 143.8, "Average Update Latency": 107.1, "Median Update Latency": 96.1, "Tail Update Latency": 151.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 547508.5, "Average Read Latency": 14252.4, "Median Read Latency": 13861.6, "Tail Read Latency": 26308.9, "Average Update Latency": 14412.6, "Median Update Latency": 13858.5, "Tail Update Latency": 27712.7}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499905.1, "Average Read Latency": 5400.3, "Median Read Latency": 278.4, "Tail Read Latency": 12363.7, "Average Update Latency": 5421.6, "Median Update Latency": 281.3, "Tail Update Latency": 12367.2}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 593210.9, "Average Read Latency": 23104.9, "Median Read Latency": 12907.2, "Tail Read Latency": 261884.7, "Average Update Latency": 22865.1, "Median Update Latency": 12883.0, "Tail Update Latency": 259122.4}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 400059.0, "Average Read Latency": 168.6, "Median Read Latency": 121.9, "Tail Read Latency": 537.4, "Average Update Latency": 171.9, "Median Update Latency": 125.7, "Tail Update Latency": 539.3}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 399955.5, "Average Read Latency": 169.3, "Median Read Latency": 122.0, "Tail Read Latency": 557.8, "Average Update Latency": 173.4, "Median Update Latency": 125.6, "Tail Update Latency": 558.2}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 559357.5, "Average Read Latency": 14365.2, "Median Read Latency": 13492.1, "Tail Read Latency": 27795.7, "Average Update Latency": 14492.3, "Median Update Latency": 13499.8, "Tail Update Latency": 28596.9}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 399945.2, "Average Read Latency": 169.2, "Median Read Latency": 121.6, "Tail Read Latency": 543.2, "Average Update Latency": 172.8, "Median Update Latency": 125.3, "Tail Update Latency": 549.2}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 299993.8, "Average Read Latency": 101.9, "Median Read Latency": 95.5, "Tail Read Latency": 190.4, "Average Update Latency": 104.7, "Median Update Latency": 98.5, "Tail Update Latency": 193.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 400046.9, "Average Read Latency": 117.4, "Median Read Latency": 103.2, "Tail Read Latency": 302.6, "Average Update Latency": 120.6, "Median Update Latency": 106.0, "Tail Update Latency": 306.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 99993.1, "Average Read Latency": 101.7, "Median Read Latency": 93.3, "Tail Read Latency": 158.3, "Average Update Latency": 108.1, "Median Update Latency": 98.1, "Tail Update Latency": 168.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 506919.4, "Average Read Latency": 27024.9, "Median Read Latency": 17901.4, "Tail Read Latency": 277822.2, "Average Update Latency": 28253.5, "Median Update Latency": 18084.2, "Tail Update Latency": 286769.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 588551.6, "Average Read Latency": 25663.9, "Median Read Latency": 19961.4, "Tail Read Latency": 248767.7, "Average Update Latency": 25615.2, "Median Update Latency": 19878.6, "Tail Update Latency": 247983.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 299997.0, "Average Read Latency": 138.3, "Median Read Latency": 98.9, "Tail Read Latency": 300.1, "Average Update Latency": 155.3, "Median Update Latency": 101.3, "Tail Update Latency": 306.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 99967.6, "Average Read Latency": 103.8, "Median Read Latency": 93.0, "Tail Read Latency": 141.8, "Average Update Latency": 113.5, "Median Update Latency": 97.0, "Tail Update Latency": 150.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 299959.8, "Average Read Latency": 102.0, "Median Read Latency": 94.9, "Tail Read Latency": 192.2, "Average Update Latency": 104.6, "Median Update Latency": 97.9, "Tail Update Latency": 195.9}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 200025.5, "Average Read Latency": 89.0, "Median Read Latency": 85.5, "Tail Read Latency": 138.4, "Average Update Latency": 92.5, "Median Update Latency": 88.7, "Tail Update Latency": 141.5}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 400014.2, "Average Read Latency": 171.0, "Median Read Latency": 122.8, "Tail Read Latency": 542.9, "Average Update Latency": 174.1, "Median Update Latency": 126.5, "Tail Update Latency": 549.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 300020.4, "Average Read Latency": 102.2, "Median Read Latency": 95.3, "Tail Read Latency": 192.6, "Average Update Latency": 105.2, "Median Update Latency": 98.3, "Tail Update Latency": 199.2}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 540395.5, "Average Read Latency": 14388.0, "Median Read Latency": 14022.2, "Tail Read Latency": 26389.3, "Average Update Latency": 14486.8, "Median Update Latency": 14028.8, "Tail Update Latency": 27305.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 399948.1, "Average Read Latency": 463.7, "Median Read Latency": 125.7, "Tail Read Latency": 8285.2, "Average Update Latency": 581.1, "Median Update Latency": 127.7, "Tail Update Latency": 11260.4}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 200024.4, "Average Read Latency": 88.7, "Median Read Latency": 85.6, "Tail Read Latency": 138.1, "Average Update Latency": 91.8, "Median Update Latency": 88.7, "Tail Update Latency": 141.4}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499650.2, "Average Read Latency": 9145.4, "Median Read Latency": 1420.0, "Tail Read Latency": 224903.5, "Average Update Latency": 9142.9, "Median Update Latency": 1580.4, "Tail Update Latency": 224532.9}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 399933.0, "Average Read Latency": 523.0, "Median Read Latency": 125.5, "Tail Read Latency": 9235.9, "Average Update Latency": 681.8, "Median Update Latency": 127.1, "Tail Update Latency": 12691.5}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 516308.4, "Average Read Latency": 28992.8, "Median Read Latency": 19819.7, "Tail Read Latency": 280966.7, "Average Update Latency": 29072.4, "Median Update Latency": 19788.1, "Tail Update Latency": 280297.2}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 484295.8, "Average Read Latency": 21919.3, "Median Read Latency": 12454.4, "Tail Read Latency": 259049.6, "Average Update Latency": 23086.6, "Median Update Latency": 12553.7, "Tail Update Latency": 264019.2}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499391.8, "Average Read Latency": 8575.9, "Median Read Latency": 1663.1, "Tail Read Latency": 223542.7, "Average Update Latency": 8506.5, "Median Update Latency": 1852.2, "Tail Update Latency": 223207.1}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 299984.3, "Average Read Latency": 113.4, "Median Read Latency": 98.1, "Tail Read Latency": 250.1, "Average Update Latency": 117.0, "Median Update Latency": 101.8, "Tail Update Latency": 252.7}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 571610.8, "Average Read Latency": 12509.0, "Median Read Latency": 7345.7, "Tail Read Latency": 233702.6, "Average Update Latency": 12221.3, "Median Update Latency": 7303.4, "Tail Update Latency": 232973.2}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 300079.7, "Average Read Latency": 112.4, "Median Read Latency": 98.5, "Tail Read Latency": 250.7, "Average Update Latency": 115.1, "Median Update Latency": 102.1, "Tail Update Latency": 255.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 100027.0, "Average Read Latency": 102.8, "Median Read Latency": 92.1, "Tail Read Latency": 138.1, "Average Update Latency": 108.1, "Median Update Latency": 95.7, "Tail Update Latency": 147.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 100009.3, "Average Read Latency": 99.1, "Median Read Latency": 93.0, "Tail Read Latency": 158.1, "Average Update Latency": 104.4, "Median Update Latency": 97.8, "Tail Update Latency": 165.2}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 300027.2, "Average Read Latency": 104.3, "Median Read Latency": 96.9, "Tail Read Latency": 198.7, "Average Update Latency": 107.0, "Median Update Latency": 100.4, "Tail Update Latency": 200.3}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 200028.5, "Average Read Latency": 102.9, "Median Read Latency": 95.4, "Tail Read Latency": 209.4, "Average Update Latency": 106.9, "Median Update Latency": 99.7, "Tail Update Latency": 216.4}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 199984.2, "Average Read Latency": 105.2, "Median Read Latency": 96.3, "Tail Read Latency": 212.1, "Average Update Latency": 109.6, "Median Update Latency": 100.6, "Tail Update Latency": 215.2}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 300020.4, "Average Read Latency": 101.6, "Median Read Latency": 94.3, "Tail Read Latency": 191.7, "Average Update Latency": 104.7, "Median Update Latency": 97.4, "Tail Update Latency": 195.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 484798.9, "Average Read Latency": 23731.1, "Median Read Latency": 12548.1, "Tail Read Latency": 263798.7, "Average Update Latency": 24151.5, "Median Update Latency": 12551.6, "Tail Update Latency": 271590.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 503334.9, "Average Read Latency": 28757.0, "Median Read Latency": 19042.8, "Tail Read Latency": 284996.7, "Average Update Latency": 29376.6, "Median Update Latency": 19094.6, "Tail Update Latency": 290900.3}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 576317.5, "Average Read Latency": 11372.2, "Median Read Latency": 7249.5, "Tail Read Latency": 231575.4, "Average Update Latency": 11588.5, "Median Update Latency": 7376.2, "Tail Update Latency": 231991.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 100056.5, "Average Read Latency": 98.8, "Median Read Latency": 93.5, "Tail Read Latency": 162.2, "Average Update Latency": 104.9, "Median Update Latency": 98.6, "Tail Update Latency": 169.2}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 200051.5, "Average Read Latency": 87.9, "Median Read Latency": 85.0, "Tail Read Latency": 135.1, "Average Update Latency": 91.0, "Median Update Latency": 87.9, "Tail Update Latency": 139.4}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 399925.2, "Average Read Latency": 144.2, "Median Read Latency": 108.6, "Tail Read Latency": 561.3, "Average Update Latency": 146.4, "Median Update Latency": 111.7, "Tail Update Latency": 556.9}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 300027.2, "Average Read Latency": 125.6, "Median Read Latency": 106.6, "Tail Read Latency": 305.4, "Average Update Latency": 129.0, "Median Update Latency": 111.2, "Tail Update Latency": 313.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499981.8, "Average Read Latency": 5295.5, "Median Read Latency": 239.2, "Tail Read Latency": 12399.8, "Average Update Latency": 5100.2, "Median Update Latency": 239.8, "Tail Update Latency": 12381.4}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 400013.7, "Average Read Latency": 428.2, "Median Read Latency": 125.7, "Tail Read Latency": 7725.9, "Average Update Latency": 514.3, "Median Update Latency": 127.3, "Tail Update Latency": 9363.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499610.8, "Average Read Latency": 7725.4, "Median Read Latency": 1096.0, "Tail Read Latency": 220663.7, "Average Update Latency": 7807.8, "Median Update Latency": 1088.7, "Tail Update Latency": 220884.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 562262.4, "Average Read Latency": 13954.8, "Median Read Latency": 13325.2, "Tail Read Latency": 26805.6, "Average Update Latency": 14106.5, "Median Update Latency": 13324.2, "Tail Update Latency": 27459.1}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 565359.2, "Average Read Latency": 15355.7, "Median Read Latency": 13263.2, "Tail Read Latency": 30446.7, "Average Update Latency": 15863.4, "Median Update Latency": 13278.6, "Tail Update Latency": 36277.4}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 300042.3, "Average Read Latency": 127.2, "Median Read Latency": 106.5, "Tail Read Latency": 303.7, "Average Update Latency": 130.8, "Median Update Latency": 110.6, "Tail Update Latency": 311.5}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 510631.9, "Average Read Latency": 25996.6, "Median Read Latency": 16355.9, "Tail Read Latency": 270251.5, "Average Update Latency": 26602.6, "Median Update Latency": 16392.3, "Tail Update Latency": 276527.3}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 568444.9, "Average Read Latency": 12857.7, "Median Read Latency": 7437.4, "Tail Read Latency": 234820.4, "Average Update Latency": 12587.4, "Median Update Latency": 7534.6, "Tail Update Latency": 234457.6}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 400043.2, "Average Read Latency": 470.6, "Median Read Latency": 124.7, "Tail Read Latency": 8109.4, "Average Update Latency": 622.0, "Median Update Latency": 126.5, "Tail Update Latency": 11995.9}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 100000.6, "Average Read Latency": 89.6, "Median Read Latency": 86.8, "Tail Read Latency": 134.2, "Average Update Latency": 94.1, "Median Update Latency": 91.9, "Tail Update Latency": 141.6}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 100038.7, "Average Read Latency": 98.5, "Median Read Latency": 93.1, "Tail Read Latency": 160.1, "Average Update Latency": 105.4, "Median Update Latency": 98.2, "Tail Update Latency": 167.2}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 99988.2, "Average Read Latency": 99.6, "Median Read Latency": 91.6, "Tail Read Latency": 136.6, "Average Update Latency": 103.1, "Median Update Latency": 95.2, "Tail Update Latency": 142.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 550408.4, "Average Read Latency": 14590.4, "Median Read Latency": 13852.1, "Tail Read Latency": 28401.3, "Average Update Latency": 14941.3, "Median Update Latency": 13859.7, "Tail Update Latency": 29739.4}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499798.4, "Average Read Latency": 8924.3, "Median Read Latency": 2127.7, "Tail Read Latency": 225338.7, "Average Update Latency": 8786.7, "Median Update Latency": 2241.2, "Tail Update Latency": 224300.9}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 399976.6, "Average Read Latency": 118.8, "Median Read Latency": 104.2, "Tail Read Latency": 304.5, "Average Update Latency": 121.9, "Median Update Latency": 106.5, "Tail Update Latency": 308.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 100020.2, "Average Read Latency": 103.1, "Median Read Latency": 93.1, "Tail Read Latency": 145.4, "Average Update Latency": 105.8, "Median Update Latency": 96.7, "Tail Update Latency": 151.0}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 100012.9, "Average Read Latency": 102.5, "Median Read Latency": 91.5, "Tail Read Latency": 137.0, "Average Update Latency": 105.6, "Median Update Latency": 95.3, "Tail Update Latency": 142.6}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 300022.2, "Average Read Latency": 112.0, "Median Read Latency": 99.0, "Tail Read Latency": 247.7, "Average Update Latency": 115.7, "Median Update Latency": 102.4, "Tail Update Latency": 254.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 481629.1, "Average Read Latency": 20240.1, "Median Read Latency": 12284.3, "Tail Read Latency": 252510.7, "Average Update Latency": 20907.6, "Median Update Latency": 12352.3, "Tail Update Latency": 254529.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 590343.6, "Average Read Latency": 22679.7, "Median Read Latency": 13386.5, "Tail Read Latency": 257708.6, "Average Update Latency": 23231.8, "Median Update Latency": 13420.2, "Tail Update Latency": 257560.2}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200010.9, "Average Read Latency": 88.4, "Median Read Latency": 85.1, "Tail Read Latency": 138.3, "Average Update Latency": 91.6, "Median Update Latency": 88.0, "Tail Update Latency": 142.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499673.3, "Average Read Latency": 9035.2, "Median Read Latency": 1348.6, "Tail Read Latency": 225757.8, "Average Update Latency": 8768.2, "Median Update Latency": 1696.9, "Tail Update Latency": 223776.0}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 200055.5, "Average Read Latency": 113.8, "Median Read Latency": 97.6, "Tail Read Latency": 210.4, "Average Update Latency": 131.0, "Median Update Latency": 101.0, "Tail Update Latency": 221.0}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499867.3, "Average Read Latency": 8125.2, "Median Read Latency": 1355.5, "Tail Read Latency": 221254.0, "Average Update Latency": 8165.5, "Median Update Latency": 1166.2, "Tail Update Latency": 221485.9}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 555677.3, "Average Read Latency": 14047.0, "Median Read Latency": 13541.2, "Tail Read Latency": 25885.7, "Average Update Latency": 14277.7, "Median Update Latency": 13555.0, "Tail Update Latency": 27197.4}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499947.6, "Average Read Latency": 5042.8, "Median Read Latency": 224.0, "Tail Read Latency": 12245.5, "Average Update Latency": 5012.3, "Median Update Latency": 227.5, "Tail Update Latency": 12240.1}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 400040.6, "Average Read Latency": 463.9, "Median Read Latency": 124.8, "Tail Read Latency": 7746.7, "Average Update Latency": 569.5, "Median Update Latency": 127.3, "Tail Update Latency": 10587.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 300010.1, "Average Read Latency": 141.1, "Median Read Latency": 98.2, "Tail Read Latency": 285.8, "Average Update Latency": 150.3, "Median Update Latency": 100.7, "Tail Update Latency": 276.8}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499949.1, "Average Read Latency": 5419.5, "Median Read Latency": 300.4, "Tail Read Latency": 12423.5, "Average Update Latency": 5303.5, "Median Update Latency": 293.1, "Tail Update Latency": 12416.4}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 200018.3, "Average Read Latency": 114.8, "Median Read Latency": 97.6, "Tail Read Latency": 210.2, "Average Update Latency": 116.8, "Median Update Latency": 100.7, "Tail Update Latency": 216.4}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 100038.2, "Average Read Latency": 104.2, "Median Read Latency": 92.9, "Tail Read Latency": 144.2, "Average Update Latency": 109.1, "Median Update Latency": 96.4, "Tail Update Latency": 152.3}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 484401.6, "Average Read Latency": 21558.4, "Median Read Latency": 12319.1, "Tail Read Latency": 258615.9, "Average Update Latency": 22006.2, "Median Update Latency": 12340.1, "Tail Update Latency": 258999.9}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 494690.6, "Average Read Latency": 23759.1, "Median Read Latency": 11087.7, "Tail Read Latency": 346888.3, "Average Update Latency": 24927.0, "Median Update Latency": 11301.4, "Tail Update Latency": 369641.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 199996.8, "Average Read Latency": 107.2, "Median Read Latency": 95.0, "Tail Read Latency": 207.0, "Average Update Latency": 109.7, "Median Update Latency": 99.5, "Tail Update Latency": 213.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 573367.3, "Average Read Latency": 14551.3, "Median Read Latency": 13211.3, "Tail Read Latency": 28953.2, "Average Update Latency": 14790.4, "Median Update Latency": 13220.3, "Tail Update Latency": 29323.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 100025.5, "Average Read Latency": 109.4, "Median Read Latency": 92.6, "Tail Read Latency": 146.9, "Average Update Latency": 110.9, "Median Update Latency": 96.1, "Tail Update Latency": 151.1}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 505302.2, "Average Read Latency": 26199.1, "Median Read Latency": 14791.3, "Tail Read Latency": 305930.9, "Average Update Latency": 26414.1, "Median Update Latency": 14803.8, "Tail Update Latency": 317169.4}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 100041.4, "Average Read Latency": 101.6, "Median Read Latency": 92.6, "Tail Read Latency": 140.7, "Average Update Latency": 106.6, "Median Update Latency": 96.2, "Tail Update Latency": 147.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 567443.1, "Average Read Latency": 14017.1, "Median Read Latency": 13347.2, "Tail Read Latency": 28134.1, "Average Update Latency": 14276.4, "Median Update Latency": 13360.3, "Tail Update Latency": 28666.0}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 400032.1, "Average Read Latency": 460.2, "Median Read Latency": 126.2, "Tail Read Latency": 7977.3, "Average Update Latency": 581.7, "Median Update Latency": 128.3, "Tail Update Latency": 10492.6}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 512595.1, "Average Read Latency": 24493.4, "Median Read Latency": 14093.9, "Tail Read Latency": 290183.7, "Average Update Latency": 25151.3, "Median Update Latency": 14213.1, "Tail Update Latency": 302601.0}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499695.4, "Average Read Latency": 8615.6, "Median Read Latency": 2196.7, "Tail Read Latency": 224396.7, "Average Update Latency": 8605.0, "Median Update Latency": 2227.1, "Tail Update Latency": 223455.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 100027.5, "Average Read Latency": 89.8, "Median Read Latency": 87.2, "Tail Read Latency": 133.3, "Average Update Latency": 94.3, "Median Update Latency": 92.4, "Tail Update Latency": 139.5}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 299963.0, "Average Read Latency": 110.5, "Median Read Latency": 97.5, "Tail Read Latency": 243.5, "Average Update Latency": 114.5, "Median Update Latency": 101.3, "Tail Update Latency": 247.5}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 300012.0, "Average Read Latency": 127.5, "Median Read Latency": 99.2, "Tail Read Latency": 271.1, "Average Update Latency": 145.8, "Median Update Latency": 101.4, "Tail Update Latency": 278.4}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 548591.9, "Average Read Latency": 14080.5, "Median Read Latency": 13682.4, "Tail Read Latency": 26231.7, "Average Update Latency": 14162.1, "Median Update Latency": 13688.0, "Tail Update Latency": 27022.5}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 200068.1, "Average Read Latency": 88.4, "Median Read Latency": 85.2, "Tail Read Latency": 137.6, "Average Update Latency": 91.3, "Median Update Latency": 88.2, "Tail Update Latency": 141.4}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 300021.0, "Average Read Latency": 127.8, "Median Read Latency": 99.2, "Tail Read Latency": 267.9, "Average Update Latency": 154.2, "Median Update Latency": 101.4, "Tail Update Latency": 287.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 400078.9, "Average Read Latency": 389.8, "Median Read Latency": 126.4, "Tail Read Latency": 6878.3, "Average Update Latency": 467.9, "Median Update Latency": 127.9, "Tail Update Latency": 8047.4}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 500051.4, "Average Read Latency": 5447.9, "Median Read Latency": 293.6, "Tail Read Latency": 12380.8, "Average Update Latency": 5278.9, "Median Update Latency": 256.0, "Tail Update Latency": 12364.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 400019.0, "Average Read Latency": 474.7, "Median Read Latency": 125.8, "Tail Read Latency": 8413.6, "Average Update Latency": 600.8, "Median Update Latency": 127.7, "Tail Update Latency": 11595.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 100021.5, "Average Read Latency": 90.3, "Median Read Latency": 87.5, "Tail Read Latency": 136.7, "Average Update Latency": 95.3, "Median Update Latency": 92.9, "Tail Update Latency": 141.5}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 199977.1, "Average Read Latency": 89.2, "Median Read Latency": 86.0, "Tail Read Latency": 139.3, "Average Update Latency": 92.2, "Median Update Latency": 89.1, "Tail Update Latency": 142.0}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 400009.6, "Average Read Latency": 146.2, "Median Read Latency": 107.7, "Tail Read Latency": 651.1, "Average Update Latency": 149.6, "Median Update Latency": 110.5, "Tail Update Latency": 662.1}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 200054.7, "Average Read Latency": 113.8, "Median Read Latency": 96.5, "Tail Read Latency": 205.6, "Average Update Latency": 115.8, "Median Update Latency": 99.8, "Tail Update Latency": 206.9}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 99983.4, "Average Read Latency": 99.8, "Median Read Latency": 92.8, "Tail Read Latency": 158.5, "Average Update Latency": 106.5, "Median Update Latency": 97.6, "Tail Update Latency": 169.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 200000.0, "Average Read Latency": 88.9, "Median Read Latency": 85.6, "Tail Read Latency": 138.0, "Average Update Latency": 92.1, "Median Update Latency": 88.6, "Tail Update Latency": 140.3}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 300018.8, "Average Read Latency": 132.9, "Median Read Latency": 97.8, "Tail Read Latency": 270.9, "Average Update Latency": 144.0, "Median Update Latency": 100.3, "Tail Update Latency": 277.8}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 499933.6, "Average Read Latency": 5930.6, "Median Read Latency": 294.8, "Tail Read Latency": 12498.9, "Average Update Latency": 5931.2, "Median Update Latency": 287.7, "Tail Update Latency": 12512.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499882.6, "Average Read Latency": 5493.3, "Median Read Latency": 227.2, "Tail Read Latency": 12458.4, "Average Update Latency": 5486.1, "Median Update Latency": 234.3, "Tail Update Latency": 12468.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 100015.1, "Average Read Latency": 89.5, "Median Read Latency": 86.6, "Tail Read Latency": 134.6, "Average Update Latency": 94.1, "Median Update Latency": 91.4, "Tail Update Latency": 142.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499714.7, "Average Read Latency": 7953.8, "Median Read Latency": 1044.3, "Tail Read Latency": 221317.9, "Average Update Latency": 7729.9, "Median Update Latency": 1112.5, "Tail Update Latency": 219424.9}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 299938.1, "Average Read Latency": 133.1, "Median Read Latency": 100.5, "Tail Read Latency": 277.2, "Average Update Latency": 153.4, "Median Update Latency": 102.7, "Tail Update Latency": 294.5}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 299953.9, "Average Read Latency": 123.4, "Median Read Latency": 106.3, "Tail Read Latency": 299.5, "Average Update Latency": 126.9, "Median Update Latency": 110.5, "Tail Update Latency": 306.8}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 484022.8, "Average Read Latency": 20407.3, "Median Read Latency": 12564.5, "Tail Read Latency": 251713.3, "Average Update Latency": 21120.9, "Median Update Latency": 12565.5, "Tail Update Latency": 254361.9}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 200012.3, "Average Read Latency": 106.2, "Median Read Latency": 94.9, "Tail Read Latency": 205.7, "Average Update Latency": 108.3, "Median Update Latency": 99.0, "Tail Update Latency": 207.2}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300035.7, "Average Read Latency": 129.7, "Median Read Latency": 99.0, "Tail Read Latency": 270.6, "Average Update Latency": 141.7, "Median Update Latency": 101.0, "Tail Update Latency": 274.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 100041.1, "Average Read Latency": 100.2, "Median Read Latency": 93.7, "Tail Read Latency": 161.9, "Average Update Latency": 104.8, "Median Update Latency": 98.8, "Tail Update Latency": 169.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 99994.8, "Average Read Latency": 98.5, "Median Read Latency": 92.4, "Tail Read Latency": 157.7, "Average Update Latency": 101.3, "Median Update Latency": 97.1, "Tail Update Latency": 167.1}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 99997.1, "Average Read Latency": 100.5, "Median Read Latency": 93.0, "Tail Read Latency": 159.3, "Average Update Latency": 109.1, "Median Update Latency": 97.7, "Tail Update Latency": 167.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 99985.3, "Average Read Latency": 87.5, "Median Read Latency": 85.0, "Tail Read Latency": 128.7, "Average Update Latency": 92.1, "Median Update Latency": 89.4, "Tail Update Latency": 135.9}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499959.9, "Average Read Latency": 8138.9, "Median Read Latency": 1398.3, "Tail Read Latency": 221246.4, "Average Update Latency": 8201.1, "Median Update Latency": 1569.4, "Tail Update Latency": 221712.4}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 300025.9, "Average Read Latency": 101.7, "Median Read Latency": 95.3, "Tail Read Latency": 189.7, "Average Update Latency": 104.7, "Median Update Latency": 98.5, "Tail Update Latency": 194.4}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 400009.8, "Average Read Latency": 161.8, "Median Read Latency": 119.3, "Tail Read Latency": 513.7, "Average Update Latency": 167.2, "Median Update Latency": 123.8, "Tail Update Latency": 524.0}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499489.9, "Average Read Latency": 9301.7, "Median Read Latency": 1861.8, "Tail Read Latency": 226319.3, "Average Update Latency": 9182.2, "Median Update Latency": 2184.6, "Tail Update Latency": 226013.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 399965.8, "Average Read Latency": 357.9, "Median Read Latency": 127.2, "Tail Read Latency": 6023.5, "Average Update Latency": 424.4, "Median Update Latency": 129.3, "Tail Update Latency": 7394.4}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 400014.3, "Average Read Latency": 118.4, "Median Read Latency": 103.9, "Tail Read Latency": 310.9, "Average Update Latency": 121.3, "Median Update Latency": 106.4, "Tail Update Latency": 315.3}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 508966.6, "Average Read Latency": 25190.2, "Median Read Latency": 15430.6, "Tail Read Latency": 287284.2, "Average Update Latency": 26201.8, "Median Update Latency": 15401.7, "Tail Update Latency": 305485.4}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 503720.5, "Average Read Latency": 26359.8, "Median Read Latency": 16415.9, "Tail Read Latency": 271462.3, "Average Update Latency": 26678.0, "Median Update Latency": 16411.5, "Tail Update Latency": 275260.3}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 399945.4, "Average Read Latency": 117.7, "Median Read Latency": 103.2, "Tail Read Latency": 310.7, "Average Update Latency": 120.2, "Median Update Latency": 105.7, "Tail Update Latency": 315.0}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 399999.5, "Average Read Latency": 118.0, "Median Read Latency": 104.3, "Tail Read Latency": 293.7, "Average Update Latency": 120.7, "Median Update Latency": 106.5, "Tail Update Latency": 297.7}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 99991.7, "Average Read Latency": 101.9, "Median Read Latency": 92.8, "Tail Read Latency": 144.8, "Average Update Latency": 105.4, "Median Update Latency": 96.5, "Tail Update Latency": 151.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 506441.1, "Average Read Latency": 24456.6, "Median Read Latency": 14525.2, "Tail Read Latency": 285511.2, "Average Update Latency": 25499.6, "Median Update Latency": 14606.0, "Tail Update Latency": 301393.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 299976.7, "Average Read Latency": 100.6, "Median Read Latency": 94.0, "Tail Read Latency": 188.6, "Average Update Latency": 103.6, "Median Update Latency": 96.8, "Tail Update Latency": 192.4}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 567696.9, "Average Read Latency": 13051.5, "Median Read Latency": 7369.8, "Tail Read Latency": 235143.3, "Average Update Latency": 12805.7, "Median Update Latency": 7364.1, "Tail Update Latency": 234237.3}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 300030.5, "Average Read Latency": 112.5, "Median Read Latency": 98.5, "Tail Read Latency": 247.2, "Average Update Latency": 113.2, "Median Update Latency": 102.2, "Tail Update Latency": 251.4}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 100005.2, "Average Read Latency": 100.1, "Median Read Latency": 92.1, "Tail Read Latency": 140.7, "Average Update Latency": 105.6, "Median Update Latency": 95.7, "Tail Update Latency": 146.4}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 500067.7, "Average Read Latency": 5876.7, "Median Read Latency": 366.0, "Tail Read Latency": 12507.5, "Average Update Latency": 5899.1, "Median Update Latency": 400.2, "Tail Update Latency": 12512.5}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 577266.5, "Average Read Latency": 16203.8, "Median Read Latency": 7678.8, "Tail Read Latency": 238849.1, "Average Update Latency": 15762.5, "Median Update Latency": 7713.8, "Tail Update Latency": 237505.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499614.6, "Average Read Latency": 7856.8, "Median Read Latency": 1355.5, "Tail Read Latency": 220300.2, "Average Update Latency": 7820.4, "Median Update Latency": 1287.0, "Tail Update Latency": 219812.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 595738.0, "Average Read Latency": 22334.1, "Median Read Latency": 12736.1, "Tail Read Latency": 258683.6, "Average Update Latency": 21679.0, "Median Update Latency": 12755.4, "Tail Update Latency": 254913.9}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 200041.9, "Average Read Latency": 106.9, "Median Read Latency": 96.6, "Tail Read Latency": 205.1, "Average Update Latency": 109.5, "Median Update Latency": 99.9, "Tail Update Latency": 206.3}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 200030.6, "Average Read Latency": 103.5, "Median Read Latency": 94.6, "Tail Read Latency": 206.4, "Average Update Latency": 105.9, "Median Update Latency": 98.8, "Tail Update Latency": 208.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 399984.0, "Average Read Latency": 169.4, "Median Read Latency": 120.9, "Tail Read Latency": 549.8, "Average Update Latency": 174.7, "Median Update Latency": 124.9, "Tail Update Latency": 551.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 299997.3, "Average Read Latency": 113.3, "Median Read Latency": 98.8, "Tail Read Latency": 255.1, "Average Update Latency": 117.6, "Median Update Latency": 102.4, "Tail Update Latency": 256.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 300017.8, "Average Read Latency": 125.9, "Median Read Latency": 98.2, "Tail Read Latency": 265.5, "Average Update Latency": 143.6, "Median Update Latency": 100.7, "Tail Update Latency": 271.4}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 300022.9, "Average Read Latency": 104.1, "Median Read Latency": 95.9, "Tail Read Latency": 199.2, "Average Update Latency": 106.9, "Median Update Latency": 99.2, "Tail Update Latency": 202.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 507899.4, "Average Read Latency": 28080.1, "Median Read Latency": 18945.5, "Tail Read Latency": 275551.3, "Average Update Latency": 28358.7, "Median Update Latency": 18965.0, "Tail Update Latency": 278189.0}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 199977.7, "Average Read Latency": 103.6, "Median Read Latency": 95.4, "Tail Read Latency": 207.0, "Average Update Latency": 108.8, "Median Update Latency": 99.6, "Tail Update Latency": 211.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 300019.8, "Average Read Latency": 124.9, "Median Read Latency": 106.0, "Tail Read Latency": 302.2, "Average Update Latency": 127.4, "Median Update Latency": 110.4, "Tail Update Latency": 305.9}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 399981.9, "Average Read Latency": 468.1, "Median Read Latency": 126.0, "Tail Read Latency": 8208.7, "Average Update Latency": 579.8, "Median Update Latency": 127.7, "Tail Update Latency": 10982.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 99987.6, "Average Read Latency": 100.6, "Median Read Latency": 92.8, "Tail Read Latency": 160.4, "Average Update Latency": 106.9, "Median Update Latency": 97.7, "Tail Update Latency": 169.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 558443.6, "Average Read Latency": 14157.2, "Median Read Latency": 13584.0, "Tail Read Latency": 26641.7, "Average Update Latency": 14262.5, "Median Update Latency": 13594.7, "Tail Update Latency": 27254.7}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 199986.8, "Average Read Latency": 111.6, "Median Read Latency": 95.5, "Tail Read Latency": 195.0, "Average Update Latency": 114.5, "Median Update Latency": 98.5, "Tail Update Latency": 199.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 299957.6, "Average Read Latency": 102.9, "Median Read Latency": 96.4, "Tail Read Latency": 191.2, "Average Update Latency": 106.1, "Median Update Latency": 99.8, "Tail Update Latency": 196.0}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 522275.3, "Average Read Latency": 26484.1, "Median Read Latency": 17232.4, "Tail Read Latency": 272985.6, "Average Update Latency": 27297.0, "Median Update Latency": 17348.1, "Tail Update Latency": 281415.5}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 100018.0, "Average Read Latency": 98.5, "Median Read Latency": 92.4, "Tail Read Latency": 159.8, "Average Update Latency": 102.4, "Median Update Latency": 96.9, "Tail Update Latency": 167.7}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 300041.9, "Average Read Latency": 134.0, "Median Read Latency": 99.9, "Tail Read Latency": 285.3, "Average Update Latency": 156.1, "Median Update Latency": 101.8, "Tail Update Latency": 290.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 501184.2, "Average Read Latency": 21410.3, "Median Read Latency": 12462.8, "Tail Read Latency": 262047.2, "Average Update Latency": 22324.8, "Median Update Latency": 12535.7, "Tail Update Latency": 273046.2}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 100043.9, "Average Read Latency": 103.2, "Median Read Latency": 92.7, "Tail Read Latency": 140.6, "Average Update Latency": 110.7, "Median Update Latency": 96.4, "Tail Update Latency": 149.3}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 200041.2, "Average Read Latency": 89.2, "Median Read Latency": 86.0, "Tail Read Latency": 138.7, "Average Update Latency": 92.5, "Median Update Latency": 89.5, "Tail Update Latency": 142.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 591067.7, "Average Read Latency": 21240.4, "Median Read Latency": 13162.0, "Tail Read Latency": 250648.8, "Average Update Latency": 21243.8, "Median Update Latency": 13138.5, "Tail Update Latency": 247645.8}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 200072.3, "Average Read Latency": 88.7, "Median Read Latency": 85.3, "Tail Read Latency": 138.9, "Average Update Latency": 92.4, "Median Update Latency": 88.5, "Tail Update Latency": 143.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 481232.7, "Average Read Latency": 22700.1, "Median Read Latency": 12996.6, "Tail Read Latency": 259052.4, "Average Update Latency": 22775.5, "Median Update Latency": 13002.3, "Tail Update Latency": 259508.6}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499992.1, "Average Read Latency": 6241.1, "Median Read Latency": 306.7, "Tail Read Latency": 12520.0, "Average Update Latency": 6136.1, "Median Update Latency": 296.4, "Tail Update Latency": 12519.4}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 100040.2, "Average Read Latency": 97.2, "Median Read Latency": 91.6, "Tail Read Latency": 137.3, "Average Update Latency": 101.2, "Median Update Latency": 95.2, "Tail Update Latency": 143.1}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 99975.3, "Average Read Latency": 100.3, "Median Read Latency": 93.0, "Tail Read Latency": 141.3, "Average Update Latency": 111.2, "Median Update Latency": 96.5, "Tail Update Latency": 148.9}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 507283.1, "Average Read Latency": 26625.7, "Median Read Latency": 17284.3, "Tail Read Latency": 278792.4, "Average Update Latency": 27570.4, "Median Update Latency": 17347.6, "Tail Update Latency": 286627.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 400006.7, "Average Read Latency": 446.7, "Median Read Latency": 130.2, "Tail Read Latency": 7936.4, "Average Update Latency": 534.0, "Median Update Latency": 133.0, "Tail Update Latency": 9307.2}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 99964.4, "Average Read Latency": 98.2, "Median Read Latency": 92.6, "Tail Read Latency": 159.8, "Average Update Latency": 103.2, "Median Update Latency": 96.9, "Tail Update Latency": 167.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 516477.1, "Average Read Latency": 28259.9, "Median Read Latency": 18883.1, "Tail Read Latency": 285995.9, "Average Update Latency": 29188.6, "Median Update Latency": 19032.2, "Tail Update Latency": 297574.3}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 299970.5, "Average Read Latency": 112.0, "Median Read Latency": 98.1, "Tail Read Latency": 247.2, "Average Update Latency": 114.5, "Median Update Latency": 101.8, "Tail Update Latency": 252.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 400046.7, "Average Read Latency": 394.4, "Median Read Latency": 130.8, "Tail Read Latency": 6972.3, "Average Update Latency": 465.4, "Median Update Latency": 133.0, "Tail Update Latency": 8283.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 511452.0, "Average Read Latency": 29471.1, "Median Read Latency": 15455.8, "Tail Read Latency": 363620.8, "Average Update Latency": 30212.1, "Median Update Latency": 15580.3, "Tail Update Latency": 379373.4}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 563901.6, "Average Read Latency": 18021.8, "Median Read Latency": 7991.7, "Tail Read Latency": 241978.7, "Average Update Latency": 17997.3, "Median Update Latency": 8063.6, "Tail Update Latency": 244812.0}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 508562.5, "Average Read Latency": 27365.3, "Median Read Latency": 17124.7, "Tail Read Latency": 279188.1, "Average Update Latency": 27981.1, "Median Update Latency": 17157.4, "Tail Update Latency": 282790.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 485273.0, "Average Read Latency": 23125.3, "Median Read Latency": 13099.0, "Tail Read Latency": 260145.4, "Average Update Latency": 23238.0, "Median Update Latency": 13095.2, "Tail Update Latency": 260391.9}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 299980.9, "Average Read Latency": 129.6, "Median Read Latency": 98.8, "Tail Read Latency": 273.2, "Average Update Latency": 153.7, "Median Update Latency": 101.1, "Tail Update Latency": 296.8}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 300001.1, "Average Read Latency": 101.5, "Median Read Latency": 94.6, "Tail Read Latency": 189.0, "Average Update Latency": 103.9, "Median Update Latency": 97.6, "Tail Update Latency": 190.6}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 299966.4, "Average Read Latency": 111.0, "Median Read Latency": 99.0, "Tail Read Latency": 250.8, "Average Update Latency": 115.0, "Median Update Latency": 102.8, "Tail Update Latency": 255.2}]] -
doc/theses/thierry_delisle_PhD/thesis/data/yield.jax
r12df6fe r4520b77e 1 [["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 10 -t 2400", {"Duration (ms)": 10030.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 415071979.0, "Ops per second": 41507197.0, "ns per ops": 24.0, "Ops per threads": 172946.0, "Ops per procs": 17294665.0, "Ops/sec/procs": 1729466.0, "ns per ops/procs": 579.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 10 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 868181095.0, "Ops per second": 86818109.5, "ns per ops": 11.53, "Ops per threads": 361742.0, "Ops per procs": 36174212.0, "Ops/sec/procs": 3617421.23, "ns per ops/procs": 276.64}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 10 -t 100", {"Duration (ms)": 10099.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 90502272.0, "Ops per second": 9050227.0, "ns per ops": 111.0, "Ops per threads": 905022.0, "Ops per procs": 90502272.0, "Ops/sec/procs": 9050227.0, "ns per ops/procs": 111.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 10 -t 100", {"Duration (ms)": 10008.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 100521509.0, "Ops per second": 10043710.22, "ns per ops": 99.56, "Ops per threads": 1005215.0, "Ops per procs": 100521509.0, "Ops/sec/procs": 10043710.22, "ns per ops/procs": 99.56}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 10 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 335861578.0, "Ops per second": 33586157.8, "ns per ops": 29.84, "Ops per threads": 419826.0, "Ops per procs": 41982697.0, "Ops/sec/procs": 4198269.72, "ns per ops/procs": 238.69}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 10 -t 800", {"Duration (ms)": 10099.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 336458246.0, "Ops per second": 33645824.0, "ns per ops": 30.0, "Ops per threads": 420572.0, "Ops per procs": 42057280.0, "Ops/sec/procs": 4205728.0, "ns per ops/procs": 240.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 10 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 863132609.0, "Ops per second": 86313260.9, "ns per ops": 11.59, "Ops per threads": 359638.0, "Ops per procs": 35963858.0, "Ops/sec/procs": 3596385.87, "ns per ops/procs": 278.27}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 10 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 644981830.0, "Ops per second": 64498183.0, "ns per ops": 15.54, "Ops per threads": 403113.0, "Ops per procs": 40311364.0, "Ops/sec/procs": 4031136.44, "ns per ops/procs": 248.71}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 10 -t 1600", {"Duration (ms)": 10022.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 1001843527.0, "Ops per second": 99961538.2, "ns per ops": 10.0, "Ops per threads": 626152.0, "Ops per procs": 62615220.0, "Ops/sec/procs": 6247596.14, "ns per ops/procs": 160.06}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 10 -t 2400", {"Duration (ms)": 10021.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1448950383.0, "Ops per second": 144584592.02, "ns per ops": 6.92, "Ops per threads": 603729.0, "Ops per procs": 60372932.0, "Ops/sec/procs": 6024358.0, "ns per ops/procs": 165.99}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 10 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 67367876.0, "Ops per second": 6736787.6, "ns per ops": 148.69, "Ops per threads": 673678.0, "Ops per procs": 67367876.0, "Ops/sec/procs": 6736787.6, "ns per ops/procs": 148.69}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 10 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 635515991.0, "Ops per second": 63551599.1, "ns per ops": 15.77, "Ops per threads": 397197.0, "Ops per procs": 39719749.0, "Ops/sec/procs": 3971974.94, "ns per ops/procs": 252.34}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 10 -t 1600", {"Duration (ms)": 10001.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 647292406.0, "Ops per second": 64729240.0, "ns per ops": 15.0, "Ops per threads": 404557.0, "Ops per procs": 40455775.0, "Ops/sec/procs": 4045577.0, "ns per ops/procs": 247.0}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 10 -t 800", {"Duration (ms)": 10002.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 32040808.0, "Ops per second": 3203363.64, "ns per ops": 312.17, "Ops per threads": 40051.0, "Ops per procs": 4005101.0, "Ops/sec/procs": 400420.45, "ns per ops/procs": 2497.37}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 10 -t 2400", {"Duration (ms)": 10003.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 23453819.0, "Ops per second": 2344620.16, "ns per ops": 426.51, "Ops per threads": 9772.0, "Ops per procs": 977242.0, "Ops/sec/procs": 97692.51, "ns per ops/procs": 10236.2}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 10 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 67463939.0, "Ops per second": 6746393.9, "ns per ops": 148.47, "Ops per threads": 674639.0, "Ops per procs": 67463939.0, "Ops/sec/procs": 6746393.9, "ns per ops/procs": 148.47}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 10 -t 800", {"Duration (ms)": 10009.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 447365602.0, "Ops per second": 44693347.97, "ns per ops": 22.37, "Ops per threads": 559207.0, "Ops per procs": 55920700.0, "Ops/sec/procs": 5586668.5, "ns per ops/procs": 179.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 10 -t 1600", {"Duration (ms)": 10022.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 1004323666.0, "Ops per second": 100208984.11, "ns per ops": 9.98, "Ops per threads": 627702.0, "Ops per procs": 62770229.0, "Ops/sec/procs": 6263061.51, "ns per ops/procs": 159.67}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 10 -t 2400", {"Duration (ms)": 10022.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1438830223.0, "Ops per second": 143560196.99, "ns per ops": 6.97, "Ops per threads": 599512.0, "Ops per procs": 59951259.0, "Ops/sec/procs": 5981674.87, "ns per ops/procs": 167.18}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 10 -t 1600", {"Duration (ms)": 10002.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 26637182.0, "Ops per second": 2663052.8, "ns per ops": 375.51, "Ops per threads": 16648.0, "Ops per procs": 1664823.0, "Ops/sec/procs": 166440.8, "ns per ops/procs": 6008.14}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 10 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 638755972.0, "Ops per second": 63875597.2, "ns per ops": 15.7, "Ops per threads": 399222.0, "Ops per procs": 39922248.0, "Ops/sec/procs": 3992224.83, "ns per ops/procs": 251.13}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 10 -t 2400", {"Duration (ms)": 10005.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 430182652.0, "Ops per second": 43018265.0, "ns per ops": 23.0, "Ops per threads": 179242.0, "Ops per procs": 17924277.0, "Ops/sec/procs": 1792427.0, "ns per ops/procs": 558.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 10 -t 100", {"Duration (ms)": 10008.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 100472124.0, "Ops per second": 10038792.53, "ns per ops": 99.61, "Ops per threads": 1004721.0, "Ops per procs": 100472124.0, "Ops/sec/procs": 10038792.53, "ns per ops/procs": 99.61}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 10 -t 100", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 117008332.0, "Ops per second": 11700304.5, "ns per ops": 85.47, "Ops per threads": 1170083.0, "Ops per procs": 117008332.0, "Ops/sec/procs": 11700304.5, "ns per ops/procs": 85.47}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 10 -t 2400", {"Duration (ms)": 10003.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 23810780.0, "Ops per second": 2380314.39, "ns per ops": 420.11, "Ops per threads": 9921.0, "Ops per procs": 992115.0, "Ops/sec/procs": 99179.77, "ns per ops/procs": 10082.7}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 10 -t 1600", {"Duration (ms)": 10000.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 675450930.0, "Ops per second": 67545093.0, "ns per ops": 14.0, "Ops per threads": 422156.0, "Ops per procs": 42215683.0, "Ops/sec/procs": 4221568.0, "ns per ops/procs": 236.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 10 -t 100", {"Duration (ms)": 10008.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 100428805.0, "Ops per second": 10034445.55, "ns per ops": 99.66, "Ops per threads": 1004288.0, "Ops per procs": 100428805.0, "Ops/sec/procs": 10034445.55, "ns per ops/procs": 99.66}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 10 -t 100", {"Duration (ms)": 10099.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 90311107.0, "Ops per second": 9031110.0, "ns per ops": 111.0, "Ops per threads": 903111.0, "Ops per procs": 90311107.0, "Ops/sec/procs": 9031110.0, "ns per ops/procs": 111.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 10 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 333502891.0, "Ops per second": 33350289.1, "ns per ops": 30.05, "Ops per threads": 416878.0, "Ops per procs": 41687861.0, "Ops/sec/procs": 4168786.14, "ns per ops/procs": 240.38}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 10 -t 800", {"Duration (ms)": 10002.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 32147984.0, "Ops per second": 3214143.7, "ns per ops": 311.12, "Ops per threads": 40184.0, "Ops per procs": 4018498.0, "Ops/sec/procs": 401767.96, "ns per ops/procs": 2489.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 10 -t 1600", {"Duration (ms)": 10003.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 689066173.0, "Ops per second": 68906617.0, "ns per ops": 14.0, "Ops per threads": 430666.0, "Ops per procs": 43066635.0, "Ops/sec/procs": 4306663.0, "ns per ops/procs": 232.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 10 -t 800", {"Duration (ms)": 10019.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 441418651.0, "Ops per second": 44056605.57, "ns per ops": 22.7, "Ops per threads": 551773.0, "Ops per procs": 55177331.0, "Ops/sec/procs": 5507075.7, "ns per ops/procs": 181.58}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 10 -t 1600", {"Duration (ms)": 10028.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 999658036.0, "Ops per second": 99685104.34, "ns per ops": 10.03, "Ops per threads": 624786.0, "Ops per procs": 62478627.0, "Ops/sec/procs": 6230319.02, "ns per ops/procs": 160.51}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 10 -t 1600", {"Duration (ms)": 10002.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 26737174.0, "Ops per second": 2672964.85, "ns per ops": 374.12, "Ops per threads": 16710.0, "Ops per procs": 1671073.0, "Ops/sec/procs": 167060.3, "ns per ops/procs": 5985.86}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 10 -t 100", {"Duration (ms)": 10099.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 90695862.0, "Ops per second": 9069586.0, "ns per ops": 111.0, "Ops per threads": 906958.0, "Ops per procs": 90695862.0, "Ops/sec/procs": 9069586.0, "ns per ops/procs": 111.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 10 -t 2400", {"Duration (ms)": 10004.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1440698903.0, "Ops per second": 144010330.78, "ns per ops": 6.94, "Ops per threads": 600291.0, "Ops per procs": 60029120.0, "Ops/sec/procs": 6000430.45, "ns per ops/procs": 166.65}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 10 -t 2400", {"Duration (ms)": 10003.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 23253629.0, "Ops per second": 2324527.32, "ns per ops": 430.19, "Ops per threads": 9689.0, "Ops per procs": 968901.0, "Ops/sec/procs": 96855.3, "ns per ops/procs": 10324.68}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 10 -t 100", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 116842959.0, "Ops per second": 11683781.88, "ns per ops": 85.59, "Ops per threads": 1168429.0, "Ops per procs": 116842959.0, "Ops/sec/procs": 11683781.88, "ns per ops/procs": 85.59}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 10 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 67109099.0, "Ops per second": 6710909.9, "ns per ops": 149.26, "Ops per threads": 671090.0, "Ops per procs": 67109099.0, "Ops/sec/procs": 6710909.9, "ns per ops/procs": 149.26}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 10 -t 100", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 116630659.0, "Ops per second": 11662547.92, "ns per ops": 85.74, "Ops per threads": 1166306.0, "Ops per procs": 116630659.0, "Ops/sec/procs": 11662547.92, "ns per ops/procs": 85.74}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 10 -t 800", {"Duration (ms)": 10009.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 438143011.0, "Ops per second": 43771074.82, "ns per ops": 22.85, "Ops per threads": 547678.0, "Ops per procs": 54767876.0, "Ops/sec/procs": 5471384.35, "ns per ops/procs": 182.77}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 10 -t 1600", {"Duration (ms)": 10002.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 26832358.0, "Ops per second": 2682510.65, "ns per ops": 372.79, "Ops per threads": 16770.0, "Ops per procs": 1677022.0, "Ops/sec/procs": 167656.92, "ns per ops/procs": 5964.56}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 10 -t 800", {"Duration (ms)": 10100.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 357826049.0, "Ops per second": 35782604.0, "ns per ops": 28.0, "Ops per threads": 447282.0, "Ops per procs": 44728256.0, "Ops/sec/procs": 4472825.0, "ns per ops/procs": 225.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 10 -t 800", {"Duration (ms)": 10100.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 331894279.0, "Ops per second": 33189427.0, "ns per ops": 30.0, "Ops per threads": 414867.0, "Ops per procs": 41486784.0, "Ops/sec/procs": 4148678.0, "ns per ops/procs": 243.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 10 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 335906841.0, "Ops per second": 33590684.1, "ns per ops": 29.83, "Ops per threads": 419883.0, "Ops per procs": 41988355.0, "Ops/sec/procs": 4198835.51, "ns per ops/procs": 238.65}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 10 -t 800", {"Duration (ms)": 10002.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 31669651.0, "Ops per second": 3166283.11, "ns per ops": 315.83, "Ops per threads": 39587.0, "Ops per procs": 3958706.0, "Ops/sec/procs": 395785.39, "ns per ops/procs": 2526.62}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 10 -t 2400", {"Duration (ms)": 10005.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 431374888.0, "Ops per second": 43137488.0, "ns per ops": 23.0, "Ops per threads": 179739.0, "Ops per procs": 17973953.0, "Ops/sec/procs": 1797395.0, "ns per ops/procs": 556.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 10 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 859381490.0, "Ops per second": 85938149.0, "ns per ops": 11.64, "Ops per threads": 358075.0, "Ops per procs": 35807562.0, "Ops/sec/procs": 3580756.21, "ns per ops/procs": 279.37}]]1 [["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30013.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1524198901.0, "Ops per second": 50806630.0, "ns per ops": 19.0, "Ops per threads": 635082.0, "Ops per procs": 63508287.0, "Ops/sec/procs": 2116942.0, "ns per ops/procs": 472.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30021.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1647763187.0, "Ops per second": 54925439.0, "ns per ops": 18.0, "Ops per threads": 686567.0, "Ops per procs": 68656799.0, "Ops/sec/procs": 2288559.0, "ns per ops/procs": 437.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1286467979.0, "Ops per second": 42841170.98, "ns per ops": 23.34, "Ops per threads": 1608084.0, "Ops per procs": 160808497.0, "Ops/sec/procs": 5355146.37, "ns per ops/procs": 186.74}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 217569556.0, "Ops per second": 7252318.53, "ns per ops": 138.12, "Ops per threads": 2175695.0, "Ops per procs": 217569556.0, "Ops/sec/procs": 7252318.53, "ns per ops/procs": 138.12}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30100.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 529747506.0, "Ops per second": 17658250.0, "ns per ops": 56.0, "Ops per threads": 73576.0, "Ops per procs": 7357604.0, "Ops/sec/procs": 245253.0, "ns per ops/procs": 4091.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3459578347.0, "Ops per second": 115196108.04, "ns per ops": 8.68, "Ops per threads": 2162236.0, "Ops per procs": 216223646.0, "Ops/sec/procs": 7199756.75, "ns per ops/procs": 138.89}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 370889307.0, "Ops per second": 12362976.0, "ns per ops": 81.0, "Ops per threads": 1854446.0, "Ops per procs": 185444653.0, "Ops/sec/procs": 6181488.0, "ns per ops/procs": 162.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30092.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 10383429506.0, "Ops per second": 345045607.23, "ns per ops": 2.9, "Ops per threads": 1442142.0, "Ops per procs": 144214298.0, "Ops/sec/procs": 4792300.1, "ns per ops/procs": 208.67}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30017.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 10433330828.0, "Ops per second": 347573509.01, "ns per ops": 2.88, "Ops per threads": 1449073.0, "Ops per procs": 144907372.0, "Ops/sec/procs": 4827409.85, "ns per ops/procs": 207.15}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4304000687.0, "Ops per second": 143466689.57, "ns per ops": 6.98, "Ops per threads": 896666.0, "Ops per procs": 89666680.0, "Ops/sec/procs": 2988889.37, "ns per ops/procs": 335.16}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30009.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 71476691.0, "Ops per second": 2381809.29, "ns per ops": 419.85, "Ops per threads": 29781.0, "Ops per procs": 2978195.0, "Ops/sec/procs": 99242.05, "ns per ops/procs": 10076.37}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2141199531.0, "Ops per second": 71373317.7, "ns per ops": 14.05, "Ops per threads": 1338249.0, "Ops per procs": 133824970.0, "Ops/sec/procs": 4460832.36, "ns per ops/procs": 224.75}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6503076181.0, "Ops per second": 216769206.03, "ns per ops": 4.63, "Ops per threads": 903205.0, "Ops per procs": 90320502.0, "Ops/sec/procs": 3010683.42, "ns per ops/procs": 333.15}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17574119536.0, "Ops per second": 585803984.53, "ns per ops": 1.71, "Ops per threads": 915318.0, "Ops per procs": 91531872.0, "Ops/sec/procs": 3051062.42, "ns per ops/procs": 328.06}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 560317381.0, "Ops per second": 18677246.0, "ns per ops": 53.0, "Ops per threads": 1400793.0, "Ops per procs": 140079345.0, "Ops/sec/procs": 4669311.0, "ns per ops/procs": 214.0}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30007.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 77369142.0, "Ops per second": 2578291.11, "ns per ops": 387.85, "Ops per threads": 48355.0, "Ops per procs": 4835571.0, "Ops/sec/procs": 161143.19, "ns per ops/procs": 6205.66}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 971524584.0, "Ops per second": 32384152.0, "ns per ops": 30.0, "Ops per threads": 1214405.0, "Ops per procs": 121440573.0, "Ops/sec/procs": 4048019.0, "ns per ops/procs": 247.0}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30022.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 67484348.0, "Ops per second": 2247786.04, "ns per ops": 444.88, "Ops per threads": 14059.0, "Ops per procs": 1405923.0, "Ops/sec/procs": 46828.88, "ns per ops/procs": 21354.35}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2149923279.0, "Ops per second": 71664109.3, "ns per ops": 13.99, "Ops per threads": 1343702.0, "Ops per procs": 134370204.0, "Ops/sec/procs": 4479006.83, "ns per ops/procs": 223.84}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30081.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6536575073.0, "Ops per second": 217292656.37, "ns per ops": 4.6, "Ops per threads": 1361786.0, "Ops per procs": 136178647.0, "Ops/sec/procs": 4526930.34, "ns per ops/procs": 220.9}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30033.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6584661335.0, "Ops per second": 219241547.4, "ns per ops": 4.56, "Ops per threads": 1371804.0, "Ops per procs": 137180444.0, "Ops/sec/procs": 4567532.24, "ns per ops/procs": 218.94}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 72081291.0, "Ops per second": 2402125.61, "ns per ops": 416.3, "Ops per threads": 30033.0, "Ops per procs": 3003387.0, "Ops/sec/procs": 100088.57, "ns per ops/procs": 9991.15}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 217360154.0, "Ops per second": 7245338.47, "ns per ops": 138.25, "Ops per threads": 2173601.0, "Ops per procs": 217360154.0, "Ops/sec/procs": 7245338.47, "ns per ops/procs": 138.25}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 388046191.0, "Ops per second": 12934873.0, "ns per ops": 77.0, "Ops per threads": 1940230.0, "Ops per procs": 194023095.0, "Ops/sec/procs": 6467436.0, "ns per ops/procs": 155.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4312137554.0, "Ops per second": 143737918.47, "ns per ops": 6.97, "Ops per threads": 898361.0, "Ops per procs": 89836199.0, "Ops/sec/procs": 2994539.97, "ns per ops/procs": 334.65}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17533818565.0, "Ops per second": 584460618.83, "ns per ops": 1.71, "Ops per threads": 913219.0, "Ops per procs": 91321971.0, "Ops/sec/procs": 3044065.72, "ns per ops/procs": 328.79}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30032.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 301189491.0, "Ops per second": 10039649.0, "ns per ops": 99.0, "Ops per threads": 20915.0, "Ops per procs": 2091593.0, "Ops/sec/procs": 69719.0, "ns per ops/procs": 14358.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 568098502.0, "Ops per second": 18936616.73, "ns per ops": 52.9, "Ops per threads": 1420246.0, "Ops per procs": 142024625.0, "Ops/sec/procs": 4734154.18, "ns per ops/procs": 211.62}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30087.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 30178268.0, "Ops per second": 1003033.39, "ns per ops": 996.98, "Ops per threads": 2095.0, "Ops per procs": 209571.0, "Ops/sec/procs": 6965.51, "ns per ops/procs": 143564.51}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2162319177.0, "Ops per second": 72077305.9, "ns per ops": 13.91, "Ops per threads": 1351449.0, "Ops per procs": 135144948.0, "Ops/sec/procs": 4504831.62, "ns per ops/procs": 222.55}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30034.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 27481947.0, "Ops per second": 915020.5, "ns per ops": 1092.87, "Ops per threads": 1431.0, "Ops per procs": 143135.0, "Ops/sec/procs": 4765.73, "ns per ops/procs": 209831.37}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30018.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4404828820.0, "Ops per second": 146737094.38, "ns per ops": 6.81, "Ops per threads": 1835345.0, "Ops per procs": 183534534.0, "Ops/sec/procs": 6114045.6, "ns per ops/procs": 163.56}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6583419059.0, "Ops per second": 219447301.97, "ns per ops": 4.56, "Ops per threads": 914363.0, "Ops per procs": 91436375.0, "Ops/sec/procs": 3047879.19, "ns per ops/procs": 328.19}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30070.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 572622583.0, "Ops per second": 19087419.0, "ns per ops": 52.0, "Ops per threads": 79530.0, "Ops per procs": 7953091.0, "Ops/sec/procs": 265103.0, "ns per ops/procs": 3780.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30060.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6561452892.0, "Ops per second": 218275581.67, "ns per ops": 4.58, "Ops per threads": 1366969.0, "Ops per procs": 136696935.0, "Ops/sec/procs": 4547407.95, "ns per ops/procs": 219.91}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 364297806.0, "Ops per second": 12143260.0, "ns per ops": 82.0, "Ops per threads": 1821489.0, "Ops per procs": 182148903.0, "Ops/sec/procs": 6071630.0, "ns per ops/procs": 165.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30032.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6559306663.0, "Ops per second": 218406116.22, "ns per ops": 4.58, "Ops per threads": 1366522.0, "Ops per procs": 136652222.0, "Ops/sec/procs": 4550127.42, "ns per ops/procs": 219.77}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30007.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 77847861.0, "Ops per second": 2594262.52, "ns per ops": 385.47, "Ops per threads": 48654.0, "Ops per procs": 4865491.0, "Ops/sec/procs": 162141.41, "ns per ops/procs": 6167.46}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30016.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13237635607.0, "Ops per second": 441012358.7, "ns per ops": 2.27, "Ops per threads": 1378920.0, "Ops per procs": 137892037.0, "Ops/sec/procs": 4593878.74, "ns per ops/procs": 217.68}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30080.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 297542805.0, "Ops per second": 9918093.0, "ns per ops": 101.0, "Ops per threads": 20662.0, "Ops per procs": 2066269.0, "Ops/sec/procs": 68875.0, "ns per ops/procs": 14557.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 12837710040.0, "Ops per second": 427923668.0, "ns per ops": 2.34, "Ops per threads": 891507.0, "Ops per procs": 89150764.0, "Ops/sec/procs": 2971692.14, "ns per ops/procs": 336.84}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30090.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 25926148.0, "Ops per second": 861595.2, "ns per ops": 1160.64, "Ops per threads": 1350.0, "Ops per procs": 135032.0, "Ops/sec/procs": 4487.48, "ns per ops/procs": 222842.47}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30019.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13238180866.0, "Ops per second": 440987305.78, "ns per ops": 2.27, "Ops per threads": 1378977.0, "Ops per procs": 137897717.0, "Ops/sec/procs": 4593617.77, "ns per ops/procs": 217.69}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 92582575.0, "Ops per second": 3085440.51, "ns per ops": 324.1, "Ops per threads": 115728.0, "Ops per procs": 11572821.0, "Ops/sec/procs": 385680.06, "ns per ops/procs": 2592.82}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 69824862.0, "Ops per second": 2326904.32, "ns per ops": 429.76, "Ops per threads": 29093.0, "Ops per procs": 2909369.0, "Ops/sec/procs": 96954.35, "ns per ops/procs": 10314.13}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 174858150.0, "Ops per second": 5827747.59, "ns per ops": 171.59, "Ops per threads": 874290.0, "Ops per procs": 87429075.0, "Ops/sec/procs": 2913873.79, "ns per ops/procs": 343.19}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30032.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 35747088.0, "Ops per second": 1190289.87, "ns per ops": 840.13, "Ops per threads": 4964.0, "Ops per procs": 496487.0, "Ops/sec/procs": 16531.8, "ns per ops/procs": 60489.47}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30020.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 68229333.0, "Ops per second": 2272724.7, "ns per ops": 440.0, "Ops per threads": 14214.0, "Ops per procs": 1421444.0, "Ops/sec/procs": 47348.43, "ns per ops/procs": 21120.02}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 574557348.0, "Ops per second": 19151911.6, "ns per ops": 52.31, "Ops per threads": 1436393.0, "Ops per procs": 143639337.0, "Ops/sec/procs": 4787977.9, "ns per ops/procs": 209.24}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 176296287.0, "Ops per second": 5875653.96, "ns per ops": 170.19, "Ops per threads": 881481.0, "Ops per procs": 88148143.0, "Ops/sec/procs": 2937826.98, "ns per ops/procs": 340.39}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 704355144.0, "Ops per second": 23455563.61, "ns per ops": 42.63, "Ops per threads": 1760887.0, "Ops per procs": 176088786.0, "Ops/sec/procs": 5863890.9, "ns per ops/procs": 170.54}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 164333836.0, "Ops per second": 5476981.0, "ns per ops": 182.58, "Ops per threads": 821669.0, "Ops per procs": 82166918.0, "Ops/sec/procs": 2738490.5, "ns per ops/procs": 365.16}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 10372581494.0, "Ops per second": 344628717.75, "ns per ops": 2.9, "Ops per threads": 1440636.0, "Ops per procs": 144063631.0, "Ops/sec/procs": 4786509.97, "ns per ops/procs": 208.92}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30005.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 116666322.0, "Ops per second": 3888227.48, "ns per ops": 257.19, "Ops per threads": 291665.0, "Ops per procs": 29166580.0, "Ops/sec/procs": 972056.87, "ns per ops/procs": 1028.75}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30062.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 545115531.0, "Ops per second": 18170517.0, "ns per ops": 55.0, "Ops per threads": 56782.0, "Ops per procs": 5678286.0, "Ops/sec/procs": 189276.0, "ns per ops/procs": 5294.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 215846142.0, "Ops per second": 7194871.4, "ns per ops": 139.22, "Ops per threads": 2158461.0, "Ops per procs": 215846142.0, "Ops/sec/procs": 7194871.4, "ns per ops/procs": 139.22}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30014.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6699494079.0, "Ops per second": 223211162.78, "ns per ops": 4.48, "Ops per threads": 1395727.0, "Ops per procs": 139572793.0, "Ops/sec/procs": 4650232.56, "ns per ops/procs": 215.04}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30013.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6644053587.0, "Ops per second": 221366729.01, "ns per ops": 4.52, "Ops per threads": 1384177.0, "Ops per procs": 138417783.0, "Ops/sec/procs": 4611806.85, "ns per ops/procs": 216.83}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 217512137.0, "Ops per second": 7250404.57, "ns per ops": 138.15, "Ops per threads": 2175121.0, "Ops per procs": 217512137.0, "Ops/sec/procs": 7250404.57, "ns per ops/procs": 138.15}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30014.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 533202066.0, "Ops per second": 17773402.0, "ns per ops": 56.0, "Ops per threads": 55541.0, "Ops per procs": 5554188.0, "Ops/sec/procs": 185139.0, "ns per ops/procs": 5403.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6584977971.0, "Ops per second": 219499265.7, "ns per ops": 4.56, "Ops per threads": 914580.0, "Ops per procs": 91458027.0, "Ops/sec/procs": 3048600.91, "ns per ops/procs": 328.54}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8219635670.0, "Ops per second": 273987855.67, "ns per ops": 3.65, "Ops per threads": 856212.0, "Ops per procs": 85621204.0, "Ops/sec/procs": 2854040.16, "ns per ops/procs": 350.73}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30028.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 27715502.0, "Ops per second": 922966.54, "ns per ops": 1083.46, "Ops per threads": 1443.0, "Ops per procs": 144351.0, "Ops/sec/procs": 4807.12, "ns per ops/procs": 208024.88}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30023.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1653659453.0, "Ops per second": 55121981.0, "ns per ops": 18.0, "Ops per threads": 689024.0, "Ops per procs": 68902477.0, "Ops/sec/procs": 2296749.0, "ns per ops/procs": 435.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 12874643435.0, "Ops per second": 429154781.17, "ns per ops": 2.33, "Ops per threads": 894072.0, "Ops per procs": 89407246.0, "Ops/sec/procs": 2980241.54, "ns per ops/procs": 335.97}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 11894714528.0, "Ops per second": 396490484.27, "ns per ops": 2.53, "Ops per threads": 826021.0, "Ops per procs": 82602184.0, "Ops/sec/procs": 2753406.14, "ns per ops/procs": 363.96}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1006859672.0, "Ops per second": 33561989.07, "ns per ops": 29.86, "Ops per threads": 1258574.0, "Ops per procs": 125857459.0, "Ops/sec/procs": 4195248.63, "ns per ops/procs": 238.86}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 991623799.0, "Ops per second": 33054126.0, "ns per ops": 30.0, "Ops per threads": 1239529.0, "Ops per procs": 123952974.0, "Ops/sec/procs": 4131765.0, "ns per ops/procs": 242.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30032.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1160982442.0, "Ops per second": 38699414.0, "ns per ops": 25.0, "Ops per threads": 241871.0, "Ops per procs": 24187134.0, "Ops/sec/procs": 806237.0, "ns per ops/procs": 1241.0}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 349890312.0, "Ops per second": 11662521.11, "ns per ops": 85.74, "Ops per threads": 3498903.0, "Ops per procs": 349890312.0, "Ops/sec/procs": 11662521.11, "ns per ops/procs": 85.74}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30004.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 115009338.0, "Ops per second": 3833011.98, "ns per ops": 260.89, "Ops per threads": 287523.0, "Ops per procs": 28752334.0, "Ops/sec/procs": 958253.0, "ns per ops/procs": 1043.57}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 71525924.0, "Ops per second": 2383581.27, "ns per ops": 419.54, "Ops per threads": 29802.0, "Ops per procs": 2980246.0, "Ops/sec/procs": 99315.89, "ns per ops/procs": 10068.88}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30033.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1304952512.0, "Ops per second": 43449417.0, "ns per ops": 23.02, "Ops per threads": 1631190.0, "Ops per procs": 163119064.0, "Ops/sec/procs": 5431177.12, "ns per ops/procs": 184.12}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17509225918.0, "Ops per second": 583640863.93, "ns per ops": 1.71, "Ops per threads": 911938.0, "Ops per procs": 91193884.0, "Ops/sec/procs": 3039796.17, "ns per ops/procs": 329.21}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30099.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2755726891.0, "Ops per second": 91857563.0, "ns per ops": 10.0, "Ops per threads": 1722329.0, "Ops per procs": 172232930.0, "Ops/sec/procs": 5741097.0, "ns per ops/procs": 174.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30032.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 566048145.0, "Ops per second": 18868271.0, "ns per ops": 53.0, "Ops per threads": 78617.0, "Ops per procs": 7861779.0, "Ops/sec/procs": 262059.0, "ns per ops/procs": 3820.0}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30023.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 67180919.0, "Ops per second": 2237640.77, "ns per ops": 446.9, "Ops per threads": 13996.0, "Ops per procs": 1399602.0, "Ops/sec/procs": 46617.52, "ns per ops/procs": 21451.16}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30021.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 68243807.0, "Ops per second": 2273163.72, "ns per ops": 439.92, "Ops per threads": 14217.0, "Ops per procs": 1421745.0, "Ops/sec/procs": 47357.58, "ns per ops/procs": 21115.94}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 173556314.0, "Ops per second": 5784366.21, "ns per ops": 172.88, "Ops per threads": 867781.0, "Ops per procs": 86778157.0, "Ops/sec/procs": 2892183.1, "ns per ops/procs": 345.76}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 345203759.0, "Ops per second": 11506316.41, "ns per ops": 86.91, "Ops per threads": 3452037.0, "Ops per procs": 345203759.0, "Ops/sec/procs": 11506316.41, "ns per ops/procs": 86.91}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30023.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1539132659.0, "Ops per second": 51304421.0, "ns per ops": 19.0, "Ops per threads": 641305.0, "Ops per procs": 64130527.0, "Ops/sec/procs": 2137684.0, "ns per ops/procs": 468.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30010.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13457284769.0, "Ops per second": 448426408.99, "ns per ops": 2.23, "Ops per threads": 1401800.0, "Ops per procs": 140180049.0, "Ops/sec/procs": 4671108.43, "ns per ops/procs": 214.08}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30004.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 116149365.0, "Ops per second": 3871014.15, "ns per ops": 258.33, "Ops per threads": 290373.0, "Ops per procs": 29037341.0, "Ops/sec/procs": 967753.54, "ns per ops/procs": 1033.32}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30067.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 565377700.0, "Ops per second": 18845923.0, "ns per ops": 53.0, "Ops per threads": 78524.0, "Ops per procs": 7852468.0, "Ops/sec/procs": 261748.0, "ns per ops/procs": 3828.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30015.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6545324868.0, "Ops per second": 218067123.67, "ns per ops": 4.59, "Ops per threads": 1363609.0, "Ops per procs": 136360934.0, "Ops/sec/procs": 4543065.08, "ns per ops/procs": 220.12}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 529328681.0, "Ops per second": 17644289.0, "ns per ops": 56.0, "Ops per threads": 1323321.0, "Ops per procs": 132332170.0, "Ops/sec/procs": 4411072.0, "ns per ops/procs": 227.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30029.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1299808609.0, "Ops per second": 43285088.47, "ns per ops": 23.1, "Ops per threads": 1624760.0, "Ops per procs": 162476076.0, "Ops/sec/procs": 5410636.06, "ns per ops/procs": 184.82}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 269706300.0, "Ops per second": 8990210.0, "ns per ops": 111.0, "Ops per threads": 2697063.0, "Ops per procs": 269706300.0, "Ops/sec/procs": 8990210.0, "ns per ops/procs": 111.0}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30006.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 115361100.0, "Ops per second": 3844592.71, "ns per ops": 260.11, "Ops per threads": 288402.0, "Ops per procs": 28840275.0, "Ops/sec/procs": 961148.18, "ns per ops/procs": 1040.42}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30022.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1595728560.0, "Ops per second": 53190952.0, "ns per ops": 18.0, "Ops per threads": 664886.0, "Ops per procs": 66488690.0, "Ops/sec/procs": 2216289.0, "ns per ops/procs": 451.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30013.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 568764921.0, "Ops per second": 18958830.0, "ns per ops": 52.0, "Ops per threads": 78995.0, "Ops per procs": 7899512.0, "Ops/sec/procs": 263317.0, "ns per ops/procs": 3799.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 335204988.0, "Ops per second": 11173499.6, "ns per ops": 89.65, "Ops per threads": 1676024.0, "Ops per procs": 167602494.0, "Ops/sec/procs": 5586749.8, "ns per ops/procs": 179.3}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 999871313.0, "Ops per second": 33329043.77, "ns per ops": 30.06, "Ops per threads": 1249839.0, "Ops per procs": 124983914.0, "Ops/sec/procs": 4166130.47, "ns per ops/procs": 240.52}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 12899837825.0, "Ops per second": 429994594.17, "ns per ops": 2.33, "Ops per threads": 895822.0, "Ops per procs": 89582207.0, "Ops/sec/procs": 2986073.57, "ns per ops/procs": 335.23}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2165533500.0, "Ops per second": 72184450.0, "ns per ops": 13.89, "Ops per threads": 1353458.0, "Ops per procs": 135345843.0, "Ops/sec/procs": 4511528.12, "ns per ops/procs": 222.24}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30093.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 30159503.0, "Ops per second": 1002192.21, "ns per ops": 997.81, "Ops per threads": 2094.0, "Ops per procs": 209440.0, "Ops/sec/procs": 6959.67, "ns per ops/procs": 143685.01}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 336553015.0, "Ops per second": 11218433.83, "ns per ops": 89.29, "Ops per threads": 1682765.0, "Ops per procs": 168276507.0, "Ops/sec/procs": 5609216.92, "ns per ops/procs": 178.58}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30026.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 547684755.0, "Ops per second": 18256158.0, "ns per ops": 54.0, "Ops per threads": 57050.0, "Ops per procs": 5705049.0, "Ops/sec/procs": 190168.0, "ns per ops/procs": 5263.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 697104205.0, "Ops per second": 23214199.82, "ns per ops": 43.08, "Ops per threads": 1742760.0, "Ops per procs": 174276051.0, "Ops/sec/procs": 5803549.96, "ns per ops/procs": 172.31}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299462395.0, "Ops per second": 9973371.28, "ns per ops": 100.27, "Ops per threads": 2994623.0, "Ops per procs": 299462395.0, "Ops/sec/procs": 9973371.28, "ns per ops/procs": 100.27}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30023.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 67280432.0, "Ops per second": 2240953.69, "ns per ops": 446.24, "Ops per threads": 14016.0, "Ops per procs": 1401675.0, "Ops/sec/procs": 46686.54, "ns per ops/procs": 21419.45}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 485823476.0, "Ops per second": 16179526.59, "ns per ops": 61.81, "Ops per threads": 2429117.0, "Ops per procs": 242911738.0, "Ops/sec/procs": 8089763.29, "ns per ops/procs": 123.61}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30019.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 25963521091.0, "Ops per second": 864896561.64, "ns per ops": 1.16, "Ops per threads": 1352266.0, "Ops per procs": 135226672.0, "Ops/sec/procs": 4504669.59, "ns per ops/procs": 221.99}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30034.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19369228022.0, "Ops per second": 644899836.24, "ns per ops": 1.55, "Ops per threads": 1345085.0, "Ops per procs": 134508527.0, "Ops/sec/procs": 4478471.09, "ns per ops/procs": 223.29}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30008.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4414485942.0, "Ops per second": 147105461.64, "ns per ops": 6.8, "Ops per threads": 1839369.0, "Ops per procs": 183936914.0, "Ops/sec/procs": 6129394.23, "ns per ops/procs": 163.15}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17587304113.0, "Ops per second": 586243470.43, "ns per ops": 1.71, "Ops per threads": 916005.0, "Ops per procs": 91600542.0, "Ops/sec/procs": 3053351.41, "ns per ops/procs": 328.02}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17543900619.0, "Ops per second": 584796687.3, "ns per ops": 1.71, "Ops per threads": 913744.0, "Ops per procs": 91374482.0, "Ops/sec/procs": 3045816.08, "ns per ops/procs": 328.58}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30079.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1186976381.0, "Ops per second": 39565879.0, "ns per ops": 25.0, "Ops per threads": 247286.0, "Ops per procs": 24728674.0, "Ops/sec/procs": 824289.0, "ns per ops/procs": 1216.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4347986546.0, "Ops per second": 144932884.87, "ns per ops": 6.92, "Ops per threads": 905830.0, "Ops per procs": 90583053.0, "Ops/sec/procs": 3019435.1, "ns per ops/procs": 331.94}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 270388993.0, "Ops per second": 9012966.0, "ns per ops": 111.0, "Ops per threads": 2703889.0, "Ops per procs": 270388993.0, "Ops/sec/procs": 9012966.0, "ns per ops/procs": 111.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17412434022.0, "Ops per second": 580414467.4, "ns per ops": 1.72, "Ops per threads": 906897.0, "Ops per procs": 90689760.0, "Ops/sec/procs": 3022992.02, "ns per ops/procs": 331.0}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30087.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 29583910.0, "Ops per second": 983247.31, "ns per ops": 1017.04, "Ops per threads": 2054.0, "Ops per procs": 205443.0, "Ops/sec/procs": 6828.11, "ns per ops/procs": 146453.49}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30039.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19515054264.0, "Ops per second": 649645791.68, "ns per ops": 1.54, "Ops per threads": 1355212.0, "Ops per procs": 135521210.0, "Ops/sec/procs": 4511429.11, "ns per ops/procs": 221.66}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30009.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4412239360.0, "Ops per second": 147030392.4, "ns per ops": 6.8, "Ops per threads": 1838433.0, "Ops per procs": 183843306.0, "Ops/sec/procs": 6126266.35, "ns per ops/procs": 163.23}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30010.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13217325817.0, "Ops per second": 440428122.31, "ns per ops": 2.27, "Ops per threads": 1376804.0, "Ops per procs": 137680477.0, "Ops/sec/procs": 4587792.94, "ns per ops/procs": 217.97}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30029.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1300168515.0, "Ops per second": 43297084.69, "ns per ops": 23.1, "Ops per threads": 1625210.0, "Ops per procs": 162521064.0, "Ops/sec/procs": 5412135.59, "ns per ops/procs": 184.77}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6771178328.0, "Ops per second": 225705944.27, "ns per ops": 4.44, "Ops per threads": 940441.0, "Ops per procs": 94044143.0, "Ops/sec/procs": 3134804.78, "ns per ops/procs": 319.94}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 383461877.0, "Ops per second": 12782062.0, "ns per ops": 78.0, "Ops per threads": 1917309.0, "Ops per procs": 191730938.0, "Ops/sec/procs": 6391031.0, "ns per ops/procs": 156.0}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30035.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 38278725.0, "Ops per second": 1274451.24, "ns per ops": 784.65, "Ops per threads": 5316.0, "Ops per procs": 531648.0, "Ops/sec/procs": 17700.71, "ns per ops/procs": 56494.9}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30053.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 303872293.0, "Ops per second": 10129076.0, "ns per ops": 98.0, "Ops per threads": 15826.0, "Ops per procs": 1582668.0, "Ops/sec/procs": 52755.0, "ns per ops/procs": 18989.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30069.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26036089498.0, "Ops per second": 865853597.63, "ns per ops": 1.15, "Ops per threads": 1356046.0, "Ops per procs": 135604632.0, "Ops/sec/procs": 4509654.15, "ns per ops/procs": 221.75}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30030.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 800021843.0, "Ops per second": 26640256.82, "ns per ops": 37.54, "Ops per threads": 2000054.0, "Ops per procs": 200005460.0, "Ops/sec/procs": 6660064.2, "ns per ops/procs": 150.15}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1007439218.0, "Ops per second": 33581307.27, "ns per ops": 29.84, "Ops per threads": 1259299.0, "Ops per procs": 125929902.0, "Ops/sec/procs": 4197663.41, "ns per ops/procs": 238.72}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30035.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 38226755.0, "Ops per second": 1272709.38, "ns per ops": 785.73, "Ops per threads": 5309.0, "Ops per procs": 530927.0, "Ops/sec/procs": 17676.52, "ns per ops/procs": 56572.22}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30028.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299429575.0, "Ops per second": 9971572.41, "ns per ops": 100.29, "Ops per threads": 2994295.0, "Ops per procs": 299429575.0, "Ops/sec/procs": 9971572.41, "ns per ops/procs": 100.29}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30061.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 35252285.0, "Ops per second": 1172665.91, "ns per ops": 852.76, "Ops per threads": 3672.0, "Ops per procs": 367211.0, "Ops/sec/procs": 12215.27, "ns per ops/procs": 81864.75}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 169106678.0, "Ops per second": 5636041.71, "ns per ops": 177.43, "Ops per threads": 845533.0, "Ops per procs": 84553339.0, "Ops/sec/procs": 2818020.86, "ns per ops/procs": 354.86}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30044.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 278525958.0, "Ops per second": 9284198.0, "ns per ops": 107.0, "Ops per threads": 14506.0, "Ops per procs": 1450656.0, "Ops/sec/procs": 48355.0, "ns per ops/procs": 20711.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30028.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 251196986.0, "Ops per second": 8373232.0, "ns per ops": 119.0, "Ops per threads": 13083.0, "Ops per procs": 1308317.0, "Ops/sec/procs": 43610.0, "ns per ops/procs": 22952.0}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30043.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 37280827.0, "Ops per second": 1240892.9, "ns per ops": 805.87, "Ops per threads": 5177.0, "Ops per procs": 517789.0, "Ops/sec/procs": 17234.62, "ns per ops/procs": 58022.73}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30035.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26996048.0, "Ops per second": 898809.77, "ns per ops": 1112.58, "Ops per threads": 1406.0, "Ops per procs": 140604.0, "Ops/sec/procs": 4681.3, "ns per ops/procs": 213615.84}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30008.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 70945239.0, "Ops per second": 2364181.03, "ns per ops": 422.98, "Ops per threads": 29560.0, "Ops per procs": 2956051.0, "Ops/sec/procs": 98507.54, "ns per ops/procs": 10151.51}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30022.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 66809145.0, "Ops per second": 2225286.21, "ns per ops": 449.38, "Ops per threads": 13918.0, "Ops per procs": 1391857.0, "Ops/sec/procs": 46360.13, "ns per ops/procs": 21570.26}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2151566581.0, "Ops per second": 71718886.03, "ns per ops": 13.98, "Ops per threads": 1344729.0, "Ops per procs": 134472911.0, "Ops/sec/procs": 4482430.38, "ns per ops/procs": 223.68}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2828724374.0, "Ops per second": 94290812.0, "ns per ops": 10.0, "Ops per threads": 1767952.0, "Ops per procs": 176795273.0, "Ops/sec/procs": 5893175.0, "ns per ops/procs": 170.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 365069018.0, "Ops per second": 12168967.0, "ns per ops": 82.0, "Ops per threads": 1825345.0, "Ops per procs": 182534509.0, "Ops/sec/procs": 6084483.0, "ns per ops/procs": 164.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30018.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1556623413.0, "Ops per second": 51887447.0, "ns per ops": 19.0, "Ops per threads": 648593.0, "Ops per procs": 64859308.0, "Ops/sec/procs": 2161976.0, "ns per ops/procs": 462.0}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30079.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 30497368.0, "Ops per second": 1013900.28, "ns per ops": 986.29, "Ops per threads": 2117.0, "Ops per procs": 211787.0, "Ops/sec/procs": 7040.97, "ns per ops/procs": 142025.8}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30031.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 791011332.0, "Ops per second": 26339024.45, "ns per ops": 37.97, "Ops per threads": 1977528.0, "Ops per procs": 197752833.0, "Ops/sec/procs": 6584756.11, "ns per ops/procs": 151.87}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2694408531.0, "Ops per second": 89813617.7, "ns per ops": 11.14, "Ops per threads": 1122670.0, "Ops per procs": 112267022.0, "Ops/sec/procs": 3742234.07, "ns per ops/procs": 267.42}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30018.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13326946475.0, "Ops per second": 443958746.08, "ns per ops": 2.25, "Ops per threads": 1388223.0, "Ops per procs": 138822359.0, "Ops/sec/procs": 4624570.27, "ns per ops/procs": 216.24}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6511517837.0, "Ops per second": 217050594.57, "ns per ops": 4.62, "Ops per threads": 904377.0, "Ops per procs": 90437747.0, "Ops/sec/procs": 3014591.59, "ns per ops/procs": 332.69}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30019.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13422215978.0, "Ops per second": 447122884.72, "ns per ops": 2.24, "Ops per threads": 1398147.0, "Ops per procs": 139814749.0, "Ops/sec/procs": 4657530.05, "ns per ops/procs": 214.71}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 360946437.0, "Ops per second": 12031547.0, "ns per ops": 83.0, "Ops per threads": 1804732.0, "Ops per procs": 180473218.0, "Ops/sec/procs": 6015773.0, "ns per ops/procs": 166.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30075.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 255143382.0, "Ops per second": 8504779.0, "ns per ops": 117.0, "Ops per threads": 13288.0, "Ops per procs": 1328871.0, "Ops/sec/procs": 44295.0, "ns per ops/procs": 22632.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 216476131.0, "Ops per second": 7215871.03, "ns per ops": 138.81, "Ops per threads": 2164761.0, "Ops per procs": 216476131.0, "Ops/sec/procs": 7215871.03, "ns per ops/procs": 138.81}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 573837539.0, "Ops per second": 19127917.97, "ns per ops": 52.38, "Ops per threads": 1434593.0, "Ops per procs": 143459384.0, "Ops/sec/procs": 4781979.49, "ns per ops/procs": 209.51}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30020.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1545856268.0, "Ops per second": 51528542.0, "ns per ops": 19.0, "Ops per threads": 644106.0, "Ops per procs": 64410677.0, "Ops/sec/procs": 2147022.0, "ns per ops/procs": 466.0}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30053.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 37391209.0, "Ops per second": 1244153.88, "ns per ops": 803.76, "Ops per threads": 3894.0, "Ops per procs": 389491.0, "Ops/sec/procs": 12959.94, "ns per ops/procs": 77160.87}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 559445957.0, "Ops per second": 18648198.0, "ns per ops": 53.0, "Ops per threads": 1398614.0, "Ops per procs": 139861489.0, "Ops/sec/procs": 4662049.0, "ns per ops/procs": 215.0}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30008.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 77851018.0, "Ops per second": 2594310.48, "ns per ops": 385.46, "Ops per threads": 48656.0, "Ops per procs": 4865688.0, "Ops/sec/procs": 162144.41, "ns per ops/procs": 6167.34}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 607309218.0, "Ops per second": 20243640.0, "ns per ops": 49.0, "Ops per threads": 1518273.0, "Ops per procs": 151827304.0, "Ops/sec/procs": 5060910.0, "ns per ops/procs": 198.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30034.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 281236181.0, "Ops per second": 9374539.0, "ns per ops": 106.0, "Ops per threads": 14647.0, "Ops per procs": 1464771.0, "Ops/sec/procs": 48825.0, "ns per ops/procs": 20504.0}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 171050294.0, "Ops per second": 5700820.52, "ns per ops": 175.41, "Ops per threads": 855251.0, "Ops per procs": 85525147.0, "Ops/sec/procs": 2850410.26, "ns per ops/procs": 350.83}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4321021836.0, "Ops per second": 144034061.2, "ns per ops": 6.95, "Ops per threads": 900212.0, "Ops per procs": 90021288.0, "Ops/sec/procs": 3000709.61, "ns per ops/procs": 333.84}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2797133090.0, "Ops per second": 93237769.0, "ns per ops": 10.0, "Ops per threads": 1748208.0, "Ops per procs": 174820818.0, "Ops/sec/procs": 5827360.0, "ns per ops/procs": 172.0}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 92265303.0, "Ops per second": 3074837.2, "ns per ops": 325.22, "Ops per threads": 115331.0, "Ops per procs": 11533162.0, "Ops/sec/procs": 384354.65, "ns per ops/procs": 2601.76}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1001541798.0, "Ops per second": 33384726.0, "ns per ops": 30.0, "Ops per threads": 1251927.0, "Ops per procs": 125192724.0, "Ops/sec/procs": 4173090.0, "ns per ops/procs": 240.0}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30052.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 35506377.0, "Ops per second": 1181494.29, "ns per ops": 846.39, "Ops per threads": 3698.0, "Ops per procs": 369858.0, "Ops/sec/procs": 12307.23, "ns per ops/procs": 81253.04}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30018.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1509160725.0, "Ops per second": 50305357.0, "ns per ops": 19.0, "Ops per threads": 628816.0, "Ops per procs": 62881696.0, "Ops/sec/procs": 2096056.0, "ns per ops/procs": 477.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 978248788.0, "Ops per second": 32608292.0, "ns per ops": 30.0, "Ops per threads": 1222810.0, "Ops per procs": 122281098.0, "Ops/sec/procs": 4076036.0, "ns per ops/procs": 246.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2810121973.0, "Ops per second": 93670732.0, "ns per ops": 10.0, "Ops per threads": 1756326.0, "Ops per procs": 175632623.0, "Ops/sec/procs": 5854420.0, "ns per ops/procs": 171.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 331706692.0, "Ops per second": 11056889.73, "ns per ops": 90.6, "Ops per threads": 1658533.0, "Ops per procs": 165853346.0, "Ops/sec/procs": 5528444.87, "ns per ops/procs": 181.19}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30034.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1309950234.0, "Ops per second": 43614812.91, "ns per ops": 22.93, "Ops per threads": 1637437.0, "Ops per procs": 163743779.0, "Ops/sec/procs": 5451851.61, "ns per ops/procs": 183.42}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30016.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1180007889.0, "Ops per second": 39333596.0, "ns per ops": 25.0, "Ops per threads": 245834.0, "Ops per procs": 24583497.0, "Ops/sec/procs": 819449.0, "ns per ops/procs": 1221.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30045.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 10311705105.0, "Ops per second": 343199526.15, "ns per ops": 2.91, "Ops per threads": 1432181.0, "Ops per procs": 143218126.0, "Ops/sec/procs": 4766660.09, "ns per ops/procs": 209.79}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30041.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4414409225.0, "Ops per second": 146942927.24, "ns per ops": 6.81, "Ops per threads": 1839337.0, "Ops per procs": 183933717.0, "Ops/sec/procs": 6122621.97, "ns per ops/procs": 163.33}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30003.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 31346185.0, "Ops per second": 1044749.34, "ns per ops": 957.17, "Ops per threads": 2176.0, "Ops per procs": 217681.0, "Ops/sec/procs": 7255.2, "ns per ops/procs": 137832.1}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30035.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 37364068.0, "Ops per second": 1243978.01, "ns per ops": 803.87, "Ops per threads": 5189.0, "Ops per procs": 518945.0, "Ops/sec/procs": 17277.47, "ns per ops/procs": 57878.84}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30050.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 35595973.0, "Ops per second": 1184536.93, "ns per ops": 844.21, "Ops per threads": 3707.0, "Ops per procs": 370791.0, "Ops/sec/procs": 12338.93, "ns per ops/procs": 81044.33}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2699624606.0, "Ops per second": 89987486.87, "ns per ops": 11.12, "Ops per threads": 1124843.0, "Ops per procs": 112484358.0, "Ops/sec/procs": 3749478.62, "ns per ops/procs": 266.91}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 567910440.0, "Ops per second": 18930348.0, "ns per ops": 52.92, "Ops per threads": 1419776.0, "Ops per procs": 141977610.0, "Ops/sec/procs": 4732587.0, "ns per ops/procs": 211.69}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30024.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 67632749.0, "Ops per second": 2252599.99, "ns per ops": 443.93, "Ops per threads": 14090.0, "Ops per procs": 1409015.0, "Ops/sec/procs": 46929.17, "ns per ops/procs": 21308.71}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3088647104.0, "Ops per second": 102843887.76, "ns per ops": 9.72, "Ops per threads": 1930404.0, "Ops per procs": 193040444.0, "Ops/sec/procs": 6427742.98, "ns per ops/procs": 155.58}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 349649534.0, "Ops per second": 11654494.62, "ns per ops": 85.8, "Ops per threads": 3496495.0, "Ops per procs": 349649534.0, "Ops/sec/procs": 11654494.62, "ns per ops/procs": 85.8}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 92701693.0, "Ops per second": 3089388.15, "ns per ops": 323.69, "Ops per threads": 115877.0, "Ops per procs": 11587711.0, "Ops/sec/procs": 386173.52, "ns per ops/procs": 2589.51}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 91218961.0, "Ops per second": 3040015.27, "ns per ops": 328.95, "Ops per threads": 114023.0, "Ops per procs": 11402370.0, "Ops/sec/procs": 380001.91, "ns per ops/procs": 2631.57}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 350614032.0, "Ops per second": 11686635.0, "ns per ops": 85.57, "Ops per threads": 3506140.0, "Ops per procs": 350614032.0, "Ops/sec/procs": 11686635.0, "ns per ops/procs": 85.57}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 702400984.0, "Ops per second": 23390439.48, "ns per ops": 42.75, "Ops per threads": 1756002.0, "Ops per procs": 175600246.0, "Ops/sec/procs": 5847609.87, "ns per ops/procs": 171.01}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17463824977.0, "Ops per second": 582127499.23, "ns per ops": 1.72, "Ops per threads": 909574.0, "Ops per procs": 90957421.0, "Ops/sec/procs": 3031914.06, "ns per ops/procs": 330.33}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30045.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 18658595968.0, "Ops per second": 621016849.74, "ns per ops": 1.61, "Ops per threads": 1295735.0, "Ops per procs": 129573583.0, "Ops/sec/procs": 4312617.01, "ns per ops/procs": 231.88}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30080.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 30133198.0, "Ops per second": 1001735.27, "ns per ops": 998.27, "Ops per threads": 2092.0, "Ops per procs": 209258.0, "Ops/sec/procs": 6956.49, "ns per ops/procs": 143750.55}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 572745261.0, "Ops per second": 19091508.7, "ns per ops": 52.48, "Ops per threads": 1431863.0, "Ops per procs": 143186315.0, "Ops/sec/procs": 4772877.17, "ns per ops/procs": 209.9}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30098.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 542125939.0, "Ops per second": 18070864.0, "ns per ops": 55.0, "Ops per threads": 1355314.0, "Ops per procs": 135531484.0, "Ops/sec/procs": 4517716.0, "ns per ops/procs": 222.0}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30036.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26178263.0, "Ops per second": 871534.5, "ns per ops": 1147.4, "Ops per threads": 1363.0, "Ops per procs": 136345.0, "Ops/sec/procs": 4539.24, "ns per ops/procs": 220301.09}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30028.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 811741140.0, "Ops per second": 27032679.12, "ns per ops": 36.99, "Ops per threads": 2029352.0, "Ops per procs": 202935285.0, "Ops/sec/procs": 6758169.78, "ns per ops/procs": 147.97}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30004.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 115821491.0, "Ops per second": 3860121.04, "ns per ops": 259.06, "Ops per threads": 289553.0, "Ops per procs": 28955372.0, "Ops/sec/procs": 965030.26, "ns per ops/procs": 1036.24}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 270551675.0, "Ops per second": 9018389.0, "ns per ops": 111.0, "Ops per threads": 2705516.0, "Ops per procs": 270551675.0, "Ops/sec/procs": 9018389.0, "ns per ops/procs": 111.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 217092907.0, "Ops per second": 7236430.23, "ns per ops": 138.42, "Ops per threads": 2170929.0, "Ops per procs": 217092907.0, "Ops/sec/procs": 7236430.23, "ns per ops/procs": 138.42}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 269937444.0, "Ops per second": 8997914.0, "ns per ops": 111.0, "Ops per threads": 2699374.0, "Ops per procs": 269937444.0, "Ops/sec/procs": 8997914.0, "ns per ops/procs": 111.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30063.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 510376965.0, "Ops per second": 17012565.0, "ns per ops": 58.0, "Ops per threads": 53164.0, "Ops per procs": 5316426.0, "Ops/sec/procs": 177214.0, "ns per ops/procs": 5654.0}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30007.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 76519123.0, "Ops per second": 2549976.03, "ns per ops": 392.16, "Ops per threads": 47824.0, "Ops per procs": 4782445.0, "Ops/sec/procs": 159373.5, "ns per ops/procs": 6274.57}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 12918569183.0, "Ops per second": 430618972.77, "ns per ops": 2.32, "Ops per threads": 897122.0, "Ops per procs": 89712285.0, "Ops/sec/procs": 2990409.53, "ns per ops/procs": 334.67}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 538511026.0, "Ops per second": 17950367.0, "ns per ops": 55.0, "Ops per threads": 1346277.0, "Ops per procs": 134627756.0, "Ops/sec/procs": 4487591.0, "ns per ops/procs": 223.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 217345802.0, "Ops per second": 7244860.07, "ns per ops": 138.26, "Ops per threads": 2173458.0, "Ops per procs": 217345802.0, "Ops/sec/procs": 7244860.07, "ns per ops/procs": 138.26}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 486527044.0, "Ops per second": 16202834.39, "ns per ops": 61.72, "Ops per threads": 2432635.0, "Ops per procs": 243263522.0, "Ops/sec/procs": 8101417.19, "ns per ops/procs": 123.44}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 71746552.0, "Ops per second": 2390933.52, "ns per ops": 418.25, "Ops per threads": 29894.0, "Ops per procs": 2989439.0, "Ops/sec/procs": 99622.23, "ns per ops/procs": 10037.92}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2153986137.0, "Ops per second": 71799537.9, "ns per ops": 13.96, "Ops per threads": 1346241.0, "Ops per procs": 134624133.0, "Ops/sec/procs": 4487471.12, "ns per ops/procs": 223.4}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 349640207.0, "Ops per second": 11654185.15, "ns per ops": 85.81, "Ops per threads": 3496402.0, "Ops per procs": 349640207.0, "Ops/sec/procs": 11654185.15, "ns per ops/procs": 85.81}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299407971.0, "Ops per second": 9971691.25, "ns per ops": 100.28, "Ops per threads": 2994079.0, "Ops per procs": 299407971.0, "Ops/sec/procs": 9971691.25, "ns per ops/procs": 100.28}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 573012305.0, "Ops per second": 19100410.17, "ns per ops": 52.45, "Ops per threads": 1432530.0, "Ops per procs": 143253076.0, "Ops/sec/procs": 4775102.54, "ns per ops/procs": 209.81}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30019.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 10207381314.0, "Ops per second": 340028445.75, "ns per ops": 2.94, "Ops per threads": 1417691.0, "Ops per procs": 141769184.0, "Ops/sec/procs": 4722617.3, "ns per ops/procs": 211.75}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30007.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 77874930.0, "Ops per second": 2595178.56, "ns per ops": 385.33, "Ops per threads": 48671.0, "Ops per procs": 4867183.0, "Ops/sec/procs": 162198.66, "ns per ops/procs": 6165.28}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 708499112.0, "Ops per second": 23593405.41, "ns per ops": 42.38, "Ops per threads": 1771247.0, "Ops per procs": 177124778.0, "Ops/sec/procs": 5898351.35, "ns per ops/procs": 169.54}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2663316260.0, "Ops per second": 88777208.67, "ns per ops": 11.27, "Ops per threads": 1109715.0, "Ops per procs": 110971510.0, "Ops/sec/procs": 3699050.36, "ns per ops/procs": 270.53}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 982783160.0, "Ops per second": 32759438.0, "ns per ops": 30.0, "Ops per threads": 1228478.0, "Ops per procs": 122847895.0, "Ops/sec/procs": 4094929.0, "ns per ops/procs": 244.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8246065297.0, "Ops per second": 274868843.23, "ns per ops": 3.64, "Ops per threads": 858965.0, "Ops per procs": 85896513.0, "Ops/sec/procs": 2863217.12, "ns per ops/procs": 349.55}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30056.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 35715015.0, "Ops per second": 1188272.57, "ns per ops": 841.56, "Ops per threads": 3720.0, "Ops per procs": 372031.0, "Ops/sec/procs": 12377.84, "ns per ops/procs": 80789.55}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 372506043.0, "Ops per second": 12416868.0, "ns per ops": 80.0, "Ops per threads": 1862530.0, "Ops per procs": 186253021.0, "Ops/sec/procs": 6208434.0, "ns per ops/procs": 161.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 978886452.0, "Ops per second": 32629548.0, "ns per ops": 30.0, "Ops per threads": 1223608.0, "Ops per procs": 122360806.0, "Ops/sec/procs": 4078693.0, "ns per ops/procs": 245.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299508245.0, "Ops per second": 9975232.01, "ns per ops": 100.25, "Ops per threads": 2995082.0, "Ops per procs": 299508245.0, "Ops/sec/procs": 9975232.01, "ns per ops/procs": 100.25}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30009.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4397799197.0, "Ops per second": 146549191.72, "ns per ops": 6.82, "Ops per threads": 1832416.0, "Ops per procs": 183241633.0, "Ops/sec/procs": 6106216.32, "ns per ops/procs": 163.77}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17424804343.0, "Ops per second": 580826811.43, "ns per ops": 1.72, "Ops per threads": 907541.0, "Ops per procs": 90754189.0, "Ops/sec/procs": 3025139.64, "ns per ops/procs": 330.67}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30019.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 9385054038.0, "Ops per second": 312633942.54, "ns per ops": 3.2, "Ops per threads": 1303479.0, "Ops per procs": 130347972.0, "Ops/sec/procs": 4342138.09, "ns per ops/procs": 230.3}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 174061683.0, "Ops per second": 5801181.58, "ns per ops": 172.38, "Ops per threads": 870308.0, "Ops per procs": 87030841.0, "Ops/sec/procs": 2900590.79, "ns per ops/procs": 344.76}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3039151800.0, "Ops per second": 101195271.99, "ns per ops": 9.88, "Ops per threads": 1899469.0, "Ops per procs": 189946987.0, "Ops/sec/procs": 6324704.5, "ns per ops/procs": 158.11}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30004.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 116413585.0, "Ops per second": 3879825.08, "ns per ops": 257.74, "Ops per threads": 291033.0, "Ops per procs": 29103396.0, "Ops/sec/procs": 969956.27, "ns per ops/procs": 1030.97}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 12829337546.0, "Ops per second": 427644584.87, "ns per ops": 2.34, "Ops per threads": 890926.0, "Ops per procs": 89092621.0, "Ops/sec/procs": 2969754.06, "ns per ops/procs": 337.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30040.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 308240183.0, "Ops per second": 10274672.0, "ns per ops": 97.0, "Ops per threads": 21405.0, "Ops per procs": 2140556.0, "Ops/sec/procs": 71351.0, "ns per ops/procs": 14034.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30049.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13299459770.0, "Ops per second": 442589169.85, "ns per ops": 2.26, "Ops per threads": 1385360.0, "Ops per procs": 138536039.0, "Ops/sec/procs": 4610303.85, "ns per ops/procs": 216.91}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 70589301.0, "Ops per second": 2352367.35, "ns per ops": 425.1, "Ops per threads": 29412.0, "Ops per procs": 2941220.0, "Ops/sec/procs": 98015.31, "ns per ops/procs": 10202.49}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1290010246.0, "Ops per second": 42959087.85, "ns per ops": 23.28, "Ops per threads": 1612512.0, "Ops per procs": 161251280.0, "Ops/sec/procs": 5369885.98, "ns per ops/procs": 186.22}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2155474503.0, "Ops per second": 71849150.1, "ns per ops": 13.95, "Ops per threads": 1347171.0, "Ops per procs": 134717156.0, "Ops/sec/procs": 4490571.88, "ns per ops/procs": 223.26}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 350919650.0, "Ops per second": 11696823.89, "ns per ops": 85.49, "Ops per threads": 3509196.0, "Ops per procs": 350919650.0, "Ops/sec/procs": 11696823.89, "ns per ops/procs": 85.49}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30009.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4401647247.0, "Ops per second": 146676381.04, "ns per ops": 6.82, "Ops per threads": 1834019.0, "Ops per procs": 183401968.0, "Ops/sec/procs": 6111515.88, "ns per ops/procs": 163.63}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30040.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 9905402895.0, "Ops per second": 329731241.62, "ns per ops": 3.03, "Ops per threads": 1375750.0, "Ops per procs": 137575040.0, "Ops/sec/procs": 4579600.58, "ns per ops/procs": 218.36}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30022.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 67840378.0, "Ops per second": 2259629.87, "ns per ops": 442.55, "Ops per threads": 14133.0, "Ops per procs": 1413341.0, "Ops/sec/procs": 47075.62, "ns per ops/procs": 21242.42}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2681256868.0, "Ops per second": 89375228.93, "ns per ops": 11.2, "Ops per threads": 1117190.0, "Ops per procs": 111719036.0, "Ops/sec/procs": 3723967.87, "ns per ops/procs": 268.73}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30022.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 68093389.0, "Ops per second": 2268049.08, "ns per ops": 440.91, "Ops per threads": 14186.0, "Ops per procs": 1418612.0, "Ops/sec/procs": 47251.02, "ns per ops/procs": 21163.56}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30008.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4405399335.0, "Ops per second": 146803211.03, "ns per ops": 6.81, "Ops per threads": 1835583.0, "Ops per procs": 183558305.0, "Ops/sec/procs": 6116800.46, "ns per ops/procs": 163.48}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 92162624.0, "Ops per second": 3071389.69, "ns per ops": 325.59, "Ops per threads": 115203.0, "Ops per procs": 11520328.0, "Ops/sec/procs": 383923.71, "ns per ops/procs": 2604.68}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17486311136.0, "Ops per second": 582877037.87, "ns per ops": 1.72, "Ops per threads": 910745.0, "Ops per procs": 91074537.0, "Ops/sec/procs": 3035817.91, "ns per ops/procs": 329.66}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3252965246.0, "Ops per second": 108432174.0, "ns per ops": 9.0, "Ops per threads": 2033103.0, "Ops per procs": 203310327.0, "Ops/sec/procs": 6777010.0, "ns per ops/procs": 148.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 217445495.0, "Ops per second": 7248183.17, "ns per ops": 138.2, "Ops per threads": 2174454.0, "Ops per procs": 217445495.0, "Ops/sec/procs": 7248183.17, "ns per ops/procs": 138.2}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3043208981.0, "Ops per second": 101330187.63, "ns per ops": 9.87, "Ops per threads": 1902005.0, "Ops per procs": 190200561.0, "Ops/sec/procs": 6333136.73, "ns per ops/procs": 157.9}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2141436686.0, "Ops per second": 71381222.87, "ns per ops": 14.05, "Ops per threads": 1338397.0, "Ops per procs": 133839792.0, "Ops/sec/procs": 4461326.43, "ns per ops/procs": 224.72}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30083.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 303708261.0, "Ops per second": 10123608.0, "ns per ops": 99.0, "Ops per threads": 21090.0, "Ops per procs": 2109085.0, "Ops/sec/procs": 70302.0, "ns per ops/procs": 14263.0}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30024.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 67045787.0, "Ops per second": 2233044.45, "ns per ops": 447.82, "Ops per threads": 13967.0, "Ops per procs": 1396787.0, "Ops/sec/procs": 46521.76, "ns per ops/procs": 21495.32}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1001205925.0, "Ops per second": 33373530.83, "ns per ops": 30.03, "Ops per threads": 1251507.0, "Ops per procs": 125150740.0, "Ops/sec/procs": 4171691.35, "ns per ops/procs": 240.21}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30053.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 27343618.0, "Ops per second": 909833.94, "ns per ops": 1099.1, "Ops per threads": 1424.0, "Ops per procs": 142414.0, "Ops/sec/procs": 4738.72, "ns per ops/procs": 211027.52}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 350074019.0, "Ops per second": 11668647.36, "ns per ops": 85.7, "Ops per threads": 3500740.0, "Ops per procs": 350074019.0, "Ops/sec/procs": 11668647.36, "ns per ops/procs": 85.7}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8372281010.0, "Ops per second": 279076033.67, "ns per ops": 3.59, "Ops per threads": 872112.0, "Ops per procs": 87211260.0, "Ops/sec/procs": 2907042.02, "ns per ops/procs": 344.32}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30035.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19268798135.0, "Ops per second": 641526705.9, "ns per ops": 1.56, "Ops per threads": 1338110.0, "Ops per procs": 133811098.0, "Ops/sec/procs": 4455046.57, "ns per ops/procs": 224.46}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30030.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1510903974.0, "Ops per second": 50313117.06, "ns per ops": 19.88, "Ops per threads": 1888629.0, "Ops per procs": 188862996.0, "Ops/sec/procs": 6289139.63, "ns per ops/procs": 159.0}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 350034883.0, "Ops per second": 11667331.15, "ns per ops": 85.71, "Ops per threads": 3500348.0, "Ops per procs": 350034883.0, "Ops/sec/procs": 11667331.15, "ns per ops/procs": 85.71}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8252311625.0, "Ops per second": 275077054.17, "ns per ops": 3.64, "Ops per threads": 859615.0, "Ops per procs": 85961579.0, "Ops/sec/procs": 2865385.98, "ns per ops/procs": 349.32}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30018.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1468188245.0, "Ops per second": 48939608.0, "ns per ops": 20.0, "Ops per threads": 611745.0, "Ops per procs": 61174510.0, "Ops/sec/procs": 2039150.0, "ns per ops/procs": 490.0}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30005.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 116152967.0, "Ops per second": 3871104.73, "ns per ops": 258.32, "Ops per threads": 290382.0, "Ops per procs": 29038241.0, "Ops/sec/procs": 967776.18, "ns per ops/procs": 1033.3}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30051.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 37072410.0, "Ops per second": 1233619.55, "ns per ops": 810.62, "Ops per threads": 3861.0, "Ops per procs": 386170.0, "Ops/sec/procs": 12850.2, "ns per ops/procs": 77819.78}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 963511212.0, "Ops per second": 32117040.0, "ns per ops": 31.0, "Ops per threads": 1204389.0, "Ops per procs": 120438901.0, "Ops/sec/procs": 4014630.0, "ns per ops/procs": 249.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 270603008.0, "Ops per second": 9020100.0, "ns per ops": 111.0, "Ops per threads": 2706030.0, "Ops per procs": 270603008.0, "Ops/sec/procs": 9020100.0, "ns per ops/procs": 111.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3068902860.0, "Ops per second": 102186998.61, "ns per ops": 9.79, "Ops per threads": 1918064.0, "Ops per procs": 191806428.0, "Ops/sec/procs": 6386687.41, "ns per ops/procs": 156.58}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1297897729.0, "Ops per second": 43221548.4, "ns per ops": 23.14, "Ops per threads": 1622372.0, "Ops per procs": 162237216.0, "Ops/sec/procs": 5402693.55, "ns per ops/procs": 185.09}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30022.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1178027412.0, "Ops per second": 39267580.0, "ns per ops": 25.0, "Ops per threads": 245422.0, "Ops per procs": 24542237.0, "Ops/sec/procs": 818074.0, "ns per ops/procs": 1223.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30093.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 567998867.0, "Ops per second": 18933295.0, "ns per ops": 52.0, "Ops per threads": 78888.0, "Ops per procs": 7888873.0, "Ops/sec/procs": 262962.0, "ns per ops/procs": 3814.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30002.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 481160799.0, "Ops per second": 16038693.0, "ns per ops": 62.0, "Ops per threads": 50120.0, "Ops per procs": 5012091.0, "Ops/sec/procs": 167069.0, "ns per ops/procs": 5986.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30022.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13384142942.0, "Ops per second": 445809117.88, "ns per ops": 2.24, "Ops per threads": 1394181.0, "Ops per procs": 139418155.0, "Ops/sec/procs": 4643844.98, "ns per ops/procs": 215.34}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30095.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1188572330.0, "Ops per second": 39619077.0, "ns per ops": 25.0, "Ops per threads": 247619.0, "Ops per procs": 24761923.0, "Ops/sec/procs": 825397.0, "ns per ops/procs": 1215.0}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30075.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 29355503.0, "Ops per second": 976064.37, "ns per ops": 1024.52, "Ops per threads": 2038.0, "Ops per procs": 203857.0, "Ops/sec/procs": 6778.22, "ns per ops/procs": 147531.25}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30013.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6595538242.0, "Ops per second": 219749469.79, "ns per ops": 4.55, "Ops per threads": 1374070.0, "Ops per procs": 137407046.0, "Ops/sec/procs": 4578113.95, "ns per ops/procs": 218.43}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 382865455.0, "Ops per second": 12762181.0, "ns per ops": 78.0, "Ops per threads": 1914327.0, "Ops per procs": 191432727.0, "Ops/sec/procs": 6381090.0, "ns per ops/procs": 157.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1295926247.0, "Ops per second": 43157123.48, "ns per ops": 23.17, "Ops per threads": 1619907.0, "Ops per procs": 161990780.0, "Ops/sec/procs": 5394640.44, "ns per ops/procs": 185.37}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30083.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 30049104.0, "Ops per second": 998866.13, "ns per ops": 1001.14, "Ops per threads": 2086.0, "Ops per procs": 208674.0, "Ops/sec/procs": 6936.57, "ns per ops/procs": 144163.46}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6540959836.0, "Ops per second": 218031994.53, "ns per ops": 4.6, "Ops per threads": 908466.0, "Ops per procs": 90846664.0, "Ops/sec/procs": 3028222.15, "ns per ops/procs": 331.3}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8275384530.0, "Ops per second": 275846151.0, "ns per ops": 3.63, "Ops per threads": 862019.0, "Ops per procs": 86201922.0, "Ops/sec/procs": 2873397.41, "ns per ops/procs": 348.34}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6613284996.0, "Ops per second": 220442833.2, "ns per ops": 4.55, "Ops per threads": 918511.0, "Ops per procs": 91851180.0, "Ops/sec/procs": 3061706.02, "ns per ops/procs": 327.58}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30030.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 791398457.0, "Ops per second": 26353253.78, "ns per ops": 37.95, "Ops per threads": 1978496.0, "Ops per procs": 197849614.0, "Ops/sec/procs": 6588313.45, "ns per ops/procs": 151.78}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4303560752.0, "Ops per second": 143452025.07, "ns per ops": 6.99, "Ops per threads": 896575.0, "Ops per procs": 89657515.0, "Ops/sec/procs": 2988583.86, "ns per ops/procs": 335.32}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30041.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 477748721.0, "Ops per second": 15924957.0, "ns per ops": 62.0, "Ops per threads": 49765.0, "Ops per procs": 4976549.0, "Ops/sec/procs": 165884.0, "ns per ops/procs": 6036.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30000.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 25929877451.0, "Ops per second": 864306119.25, "ns per ops": 1.16, "Ops per threads": 1350514.0, "Ops per procs": 135051445.0, "Ops/sec/procs": 4501594.37, "ns per ops/procs": 222.14}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 12714377039.0, "Ops per second": 423812567.97, "ns per ops": 2.36, "Ops per threads": 882942.0, "Ops per procs": 88294284.0, "Ops/sec/procs": 2943142.83, "ns per ops/procs": 340.37}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 519560100.0, "Ops per second": 17318670.0, "ns per ops": 57.0, "Ops per threads": 1298900.0, "Ops per procs": 129890025.0, "Ops/sec/procs": 4329667.0, "ns per ops/procs": 231.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4298449246.0, "Ops per second": 143281641.53, "ns per ops": 6.99, "Ops per threads": 895510.0, "Ops per procs": 89551025.0, "Ops/sec/procs": 2985034.2, "ns per ops/procs": 335.61}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6695817528.0, "Ops per second": 223193917.6, "ns per ops": 4.49, "Ops per threads": 929974.0, "Ops per procs": 92997465.0, "Ops/sec/procs": 3099915.52, "ns per ops/procs": 323.6}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30005.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 115736875.0, "Ops per second": 3857227.01, "ns per ops": 259.25, "Ops per threads": 289342.0, "Ops per procs": 28934218.0, "Ops/sec/procs": 964306.75, "ns per ops/procs": 1037.01}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6714223964.0, "Ops per second": 223807465.47, "ns per ops": 4.48, "Ops per threads": 932531.0, "Ops per procs": 93253110.0, "Ops/sec/procs": 3108437.02, "ns per ops/procs": 322.57}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30005.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 116275535.0, "Ops per second": 3875205.13, "ns per ops": 258.05, "Ops per threads": 290688.0, "Ops per procs": 29068883.0, "Ops/sec/procs": 968801.28, "ns per ops/procs": 1032.2}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30013.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6577379630.0, "Ops per second": 219146454.29, "ns per ops": 4.56, "Ops per threads": 1370287.0, "Ops per procs": 137028742.0, "Ops/sec/procs": 4565551.13, "ns per ops/procs": 219.03}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30033.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 36817811.0, "Ops per second": 1225887.78, "ns per ops": 815.74, "Ops per threads": 5113.0, "Ops per procs": 511358.0, "Ops/sec/procs": 17026.22, "ns per ops/procs": 58732.95}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30005.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 115958602.0, "Ops per second": 3864634.08, "ns per ops": 258.76, "Ops per threads": 289896.0, "Ops per procs": 28989650.0, "Ops/sec/procs": 966158.52, "ns per ops/procs": 1035.03}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2976291630.0, "Ops per second": 99209721.0, "ns per ops": 10.0, "Ops per threads": 1860182.0, "Ops per procs": 186018226.0, "Ops/sec/procs": 6200607.0, "ns per ops/procs": 161.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6847414597.0, "Ops per second": 228247153.23, "ns per ops": 4.39, "Ops per threads": 951029.0, "Ops per procs": 95102980.0, "Ops/sec/procs": 3170099.35, "ns per ops/procs": 316.39}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6610959293.0, "Ops per second": 220365309.77, "ns per ops": 4.55, "Ops per threads": 918188.0, "Ops per procs": 91818879.0, "Ops/sec/procs": 3060629.3, "ns per ops/procs": 327.8}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 988546494.0, "Ops per second": 32951549.0, "ns per ops": 30.0, "Ops per threads": 1235683.0, "Ops per procs": 123568311.0, "Ops/sec/procs": 4118943.0, "ns per ops/procs": 243.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30082.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 308800652.0, "Ops per second": 10293355.0, "ns per ops": 97.0, "Ops per threads": 21444.0, "Ops per procs": 2144448.0, "Ops/sec/procs": 71481.0, "ns per ops/procs": 14028.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30000.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2738996987.0, "Ops per second": 91299899.0, "ns per ops": 10.0, "Ops per threads": 1711873.0, "Ops per procs": 171187311.0, "Ops/sec/procs": 5706243.0, "ns per ops/procs": 175.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30030.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 302581737.0, "Ops per second": 10086057.0, "ns per ops": 99.0, "Ops per threads": 21012.0, "Ops per procs": 2101262.0, "Ops/sec/procs": 70042.0, "ns per ops/procs": 14291.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 367874906.0, "Ops per second": 12262496.0, "ns per ops": 81.0, "Ops per threads": 1839374.0, "Ops per procs": 183937453.0, "Ops/sec/procs": 6131248.0, "ns per ops/procs": 163.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2149808346.0, "Ops per second": 71660278.2, "ns per ops": 13.99, "Ops per threads": 1343630.0, "Ops per procs": 134363021.0, "Ops/sec/procs": 4478767.39, "ns per ops/procs": 223.84}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30019.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13325165177.0, "Ops per second": 443879465.78, "ns per ops": 2.25, "Ops per threads": 1388038.0, "Ops per procs": 138803803.0, "Ops/sec/procs": 4623744.44, "ns per ops/procs": 216.27}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8257302160.0, "Ops per second": 275243405.33, "ns per ops": 3.64, "Ops per threads": 860135.0, "Ops per procs": 86013564.0, "Ops/sec/procs": 2867118.81, "ns per ops/procs": 349.07}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30022.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1666434192.0, "Ops per second": 55547806.0, "ns per ops": 18.0, "Ops per threads": 694347.0, "Ops per procs": 69434758.0, "Ops/sec/procs": 2314491.0, "ns per ops/procs": 432.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30013.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6644268971.0, "Ops per second": 221376298.11, "ns per ops": 4.52, "Ops per threads": 1384222.0, "Ops per procs": 138422270.0, "Ops/sec/procs": 4612006.21, "ns per ops/procs": 216.83}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1290971825.0, "Ops per second": 42990994.31, "ns per ops": 23.26, "Ops per threads": 1613714.0, "Ops per procs": 161371478.0, "Ops/sec/procs": 5373874.29, "ns per ops/procs": 186.09}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1003869427.0, "Ops per second": 33462314.23, "ns per ops": 29.94, "Ops per threads": 1254836.0, "Ops per procs": 125483678.0, "Ops/sec/procs": 4182789.28, "ns per ops/procs": 239.51}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30036.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26362845654.0, "Ops per second": 877699420.98, "ns per ops": 1.14, "Ops per threads": 1373064.0, "Ops per procs": 137306487.0, "Ops/sec/procs": 4571351.15, "ns per ops/procs": 218.75}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30007.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 76555594.0, "Ops per second": 2551217.2, "ns per ops": 391.97, "Ops per threads": 47847.0, "Ops per procs": 4784724.0, "Ops/sec/procs": 159451.07, "ns per ops/procs": 6271.52}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8408962324.0, "Ops per second": 280298744.13, "ns per ops": 3.57, "Ops per threads": 875933.0, "Ops per procs": 87593357.0, "Ops/sec/procs": 2919778.58, "ns per ops/procs": 342.57}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30017.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1643857302.0, "Ops per second": 54795243.0, "ns per ops": 18.0, "Ops per threads": 684940.0, "Ops per procs": 68494054.0, "Ops/sec/procs": 2283135.0, "ns per ops/procs": 438.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2675621715.0, "Ops per second": 89187390.5, "ns per ops": 11.22, "Ops per threads": 1114842.0, "Ops per procs": 111484238.0, "Ops/sec/procs": 3716141.27, "ns per ops/procs": 269.3}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3216712754.0, "Ops per second": 107223758.0, "ns per ops": 9.0, "Ops per threads": 2010445.0, "Ops per procs": 201044547.0, "Ops/sec/procs": 6701484.0, "ns per ops/procs": 149.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30033.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26533414767.0, "Ops per second": 883470981.63, "ns per ops": 1.13, "Ops per threads": 1381948.0, "Ops per procs": 138194868.0, "Ops/sec/procs": 4601411.36, "ns per ops/procs": 217.32}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 172679605.0, "Ops per second": 5755134.74, "ns per ops": 173.76, "Ops per threads": 863398.0, "Ops per procs": 86339802.0, "Ops/sec/procs": 2877567.37, "ns per ops/procs": 347.52}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30019.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13278680385.0, "Ops per second": 442339690.0, "ns per ops": 2.26, "Ops per threads": 1383195.0, "Ops per procs": 138319587.0, "Ops/sec/procs": 4607705.1, "ns per ops/procs": 217.03}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 70719875.0, "Ops per second": 2356743.76, "ns per ops": 424.31, "Ops per threads": 29466.0, "Ops per procs": 2946661.0, "Ops/sec/procs": 98197.66, "ns per ops/procs": 10183.54}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 174574523.0, "Ops per second": 5818329.19, "ns per ops": 171.87, "Ops per threads": 872872.0, "Ops per procs": 87287261.0, "Ops/sec/procs": 2909164.59, "ns per ops/procs": 343.74}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 361373327.0, "Ops per second": 12045777.0, "ns per ops": 83.0, "Ops per threads": 1806866.0, "Ops per procs": 180686663.0, "Ops/sec/procs": 6022888.0, "ns per ops/procs": 166.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4301756707.0, "Ops per second": 143391890.23, "ns per ops": 6.99, "Ops per threads": 896199.0, "Ops per procs": 89619931.0, "Ops/sec/procs": 2987331.05, "ns per ops/procs": 335.43}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30004.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 116696195.0, "Ops per second": 3889245.3, "ns per ops": 257.12, "Ops per threads": 291740.0, "Ops per procs": 29174048.0, "Ops/sec/procs": 972311.32, "ns per ops/procs": 1028.48}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 576241887.0, "Ops per second": 19208062.9, "ns per ops": 52.16, "Ops per threads": 1440604.0, "Ops per procs": 144060471.0, "Ops/sec/procs": 4802015.72, "ns per ops/procs": 208.63}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 570796620.0, "Ops per second": 19026554.0, "ns per ops": 52.65, "Ops per threads": 1426991.0, "Ops per procs": 142699155.0, "Ops/sec/procs": 4756638.5, "ns per ops/procs": 210.62}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17625659352.0, "Ops per second": 587521978.4, "ns per ops": 1.7, "Ops per threads": 918003.0, "Ops per procs": 91800309.0, "Ops/sec/procs": 3060010.3, "ns per ops/procs": 327.06}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2684266965.0, "Ops per second": 89475565.5, "ns per ops": 11.18, "Ops per threads": 1118444.0, "Ops per procs": 111844456.0, "Ops/sec/procs": 3728148.56, "ns per ops/procs": 268.42}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30072.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 547108049.0, "Ops per second": 18236934.0, "ns per ops": 54.0, "Ops per threads": 56990.0, "Ops per procs": 5699042.0, "Ops/sec/procs": 189968.0, "ns per ops/procs": 5276.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30039.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 524310865.0, "Ops per second": 17477028.0, "ns per ops": 57.0, "Ops per threads": 72820.0, "Ops per procs": 7282095.0, "Ops/sec/procs": 242736.0, "ns per ops/procs": 4125.0}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30053.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 27368966.0, "Ops per second": 910682.79, "ns per ops": 1098.08, "Ops per threads": 1425.0, "Ops per procs": 142546.0, "Ops/sec/procs": 4743.14, "ns per ops/procs": 210830.82}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 962217287.0, "Ops per second": 32073909.57, "ns per ops": 31.24, "Ops per threads": 1202771.0, "Ops per procs": 120277160.0, "Ops/sec/procs": 4009238.7, "ns per ops/procs": 249.94}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1000018912.0, "Ops per second": 33333963.0, "ns per ops": 30.0, "Ops per threads": 1250023.0, "Ops per procs": 125002364.0, "Ops/sec/procs": 4166745.0, "ns per ops/procs": 240.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 412371457.0, "Ops per second": 13745715.0, "ns per ops": 72.0, "Ops per threads": 2061857.0, "Ops per procs": 206185728.0, "Ops/sec/procs": 6872857.0, "ns per ops/procs": 145.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30025.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19358363497.0, "Ops per second": 644720941.04, "ns per ops": 1.55, "Ops per threads": 1344330.0, "Ops per procs": 134433079.0, "Ops/sec/procs": 4477228.76, "ns per ops/procs": 223.35}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 174345760.0, "Ops per second": 5810707.24, "ns per ops": 172.1, "Ops per threads": 871728.0, "Ops per procs": 87172880.0, "Ops/sec/procs": 2905353.62, "ns per ops/procs": 344.19}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 272927616.0, "Ops per second": 9097587.0, "ns per ops": 109.0, "Ops per threads": 14214.0, "Ops per procs": 1421498.0, "Ops/sec/procs": 47383.0, "ns per ops/procs": 21108.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 980627977.0, "Ops per second": 32687599.0, "ns per ops": 30.0, "Ops per threads": 1225784.0, "Ops per procs": 122578497.0, "Ops/sec/procs": 4085949.0, "ns per ops/procs": 245.0}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 92399309.0, "Ops per second": 3079344.79, "ns per ops": 324.74, "Ops per threads": 115499.0, "Ops per procs": 11549913.0, "Ops/sec/procs": 384918.1, "ns per ops/procs": 2597.96}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30087.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 309556111.0, "Ops per second": 10318537.0, "ns per ops": 97.0, "Ops per threads": 21496.0, "Ops per procs": 2149695.0, "Ops/sec/procs": 71656.0, "ns per ops/procs": 13996.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30098.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 515388449.0, "Ops per second": 17179614.0, "ns per ops": 58.0, "Ops per threads": 1288471.0, "Ops per procs": 128847112.0, "Ops/sec/procs": 4294903.0, "ns per ops/procs": 233.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8346728396.0, "Ops per second": 278224279.87, "ns per ops": 3.6, "Ops per threads": 869450.0, "Ops per procs": 86945087.0, "Ops/sec/procs": 2898169.58, "ns per ops/procs": 345.37}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 334311117.0, "Ops per second": 11143703.9, "ns per ops": 89.89, "Ops per threads": 1671555.0, "Ops per procs": 167155558.0, "Ops/sec/procs": 5571851.95, "ns per ops/procs": 179.78}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299475679.0, "Ops per second": 9974102.29, "ns per ops": 100.26, "Ops per threads": 2994756.0, "Ops per procs": 299475679.0, "Ops/sec/procs": 9974102.29, "ns per ops/procs": 100.26}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 92544140.0, "Ops per second": 3084150.07, "ns per ops": 324.24, "Ops per threads": 115680.0, "Ops per procs": 11568017.0, "Ops/sec/procs": 385518.76, "ns per ops/procs": 2593.91}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30007.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 77951649.0, "Ops per second": 2597750.78, "ns per ops": 384.95, "Ops per threads": 48719.0, "Ops per procs": 4871978.0, "Ops/sec/procs": 162359.42, "ns per ops/procs": 6159.17}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4353691148.0, "Ops per second": 145123038.27, "ns per ops": 6.9, "Ops per threads": 907018.0, "Ops per procs": 90701898.0, "Ops/sec/procs": 3023396.63, "ns per ops/procs": 331.25}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30023.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1176270030.0, "Ops per second": 39209001.0, "ns per ops": 25.0, "Ops per threads": 245056.0, "Ops per procs": 24505625.0, "Ops/sec/procs": 816854.0, "ns per ops/procs": 1225.0}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30081.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 30192306.0, "Ops per second": 1003678.39, "ns per ops": 996.34, "Ops per threads": 2096.0, "Ops per procs": 209668.0, "Ops/sec/procs": 6969.99, "ns per ops/procs": 143472.25}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30072.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 31096460.0, "Ops per second": 1034040.74, "ns per ops": 967.08, "Ops per threads": 2159.0, "Ops per procs": 215947.0, "Ops/sec/procs": 7180.84, "ns per ops/procs": 139259.5}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 988741684.0, "Ops per second": 32958056.0, "ns per ops": 30.0, "Ops per threads": 1235927.0, "Ops per procs": 123592710.0, "Ops/sec/procs": 4119757.0, "ns per ops/procs": 243.0}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 350976210.0, "Ops per second": 11698706.7, "ns per ops": 85.48, "Ops per threads": 3509762.0, "Ops per procs": 350976210.0, "Ops/sec/procs": 11698706.7, "ns per ops/procs": 85.48}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299621592.0, "Ops per second": 9978998.31, "ns per ops": 100.21, "Ops per threads": 2996215.0, "Ops per procs": 299621592.0, "Ops/sec/procs": 9978998.31, "ns per ops/procs": 100.21}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30042.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6650326242.0, "Ops per second": 221362970.14, "ns per ops": 4.52, "Ops per threads": 1385484.0, "Ops per procs": 138548463.0, "Ops/sec/procs": 4611728.54, "ns per ops/procs": 216.84}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 702808972.0, "Ops per second": 23404093.71, "ns per ops": 42.73, "Ops per threads": 1757022.0, "Ops per procs": 175702243.0, "Ops/sec/procs": 5851023.43, "ns per ops/procs": 170.91}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1000235346.0, "Ops per second": 33341178.2, "ns per ops": 30.06, "Ops per threads": 1250294.0, "Ops per procs": 125029418.0, "Ops/sec/procs": 4167647.27, "ns per ops/procs": 240.44}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30037.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 36499611.0, "Ops per second": 1215136.24, "ns per ops": 822.95, "Ops per threads": 5069.0, "Ops per procs": 506939.0, "Ops/sec/procs": 16876.89, "ns per ops/procs": 59252.62}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30075.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 528292623.0, "Ops per second": 17609754.0, "ns per ops": 56.0, "Ops per threads": 55030.0, "Ops per procs": 5503048.0, "Ops/sec/procs": 183434.0, "ns per ops/procs": 5465.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 574938700.0, "Ops per second": 19164623.33, "ns per ops": 52.27, "Ops per threads": 1437346.0, "Ops per procs": 143734675.0, "Ops/sec/procs": 4791155.83, "ns per ops/procs": 209.1}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30008.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 70673156.0, "Ops per second": 2355130.83, "ns per ops": 424.6, "Ops per threads": 29447.0, "Ops per procs": 2944714.0, "Ops/sec/procs": 98130.45, "ns per ops/procs": 10190.52}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30036.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6562052651.0, "Ops per second": 218466309.3, "ns per ops": 4.58, "Ops per threads": 1367094.0, "Ops per procs": 136709430.0, "Ops/sec/procs": 4551381.44, "ns per ops/procs": 219.71}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 337053380.0, "Ops per second": 11235112.67, "ns per ops": 89.16, "Ops per threads": 1685266.0, "Ops per procs": 168526690.0, "Ops/sec/procs": 5617556.33, "ns per ops/procs": 178.32}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2790951216.0, "Ops per second": 93031707.0, "ns per ops": 10.0, "Ops per threads": 1744344.0, "Ops per procs": 174434451.0, "Ops/sec/procs": 5814481.0, "ns per ops/procs": 172.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1300875461.0, "Ops per second": 43320854.8, "ns per ops": 23.08, "Ops per threads": 1626094.0, "Ops per procs": 162609432.0, "Ops/sec/procs": 5415106.85, "ns per ops/procs": 184.67}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4342696510.0, "Ops per second": 144756550.33, "ns per ops": 6.92, "Ops per threads": 904728.0, "Ops per procs": 90472843.0, "Ops/sec/procs": 3015761.47, "ns per ops/procs": 332.3}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 473983539.0, "Ops per second": 15785069.32, "ns per ops": 63.35, "Ops per threads": 2369917.0, "Ops per procs": 236991769.0, "Ops/sec/procs": 7892534.66, "ns per ops/procs": 126.7}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17529044306.0, "Ops per second": 584301476.87, "ns per ops": 1.71, "Ops per threads": 912971.0, "Ops per procs": 91297105.0, "Ops/sec/procs": 3043236.86, "ns per ops/procs": 328.7}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 573205504.0, "Ops per second": 19106850.13, "ns per ops": 52.44, "Ops per threads": 1433013.0, "Ops per procs": 143301376.0, "Ops/sec/procs": 4776712.53, "ns per ops/procs": 209.74}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30008.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 69372506.0, "Ops per second": 2311767.32, "ns per ops": 432.57, "Ops per threads": 28905.0, "Ops per procs": 2890521.0, "Ops/sec/procs": 96323.64, "ns per ops/procs": 10381.67}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30025.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19233004223.0, "Ops per second": 640563998.33, "ns per ops": 1.56, "Ops per threads": 1335625.0, "Ops per procs": 133562529.0, "Ops/sec/procs": 4448361.1, "ns per ops/procs": 224.8}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1301031154.0, "Ops per second": 43326146.3, "ns per ops": 23.08, "Ops per threads": 1626288.0, "Ops per procs": 162628894.0, "Ops/sec/procs": 5415768.29, "ns per ops/procs": 184.65}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 12910075292.0, "Ops per second": 430335843.07, "ns per ops": 2.33, "Ops per threads": 896533.0, "Ops per procs": 89653300.0, "Ops/sec/procs": 2988443.35, "ns per ops/procs": 335.23}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30008.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 9633967581.0, "Ops per second": 321041722.12, "ns per ops": 3.11, "Ops per threads": 1338051.0, "Ops per procs": 133805105.0, "Ops/sec/procs": 4458912.81, "ns per ops/procs": 224.27}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2159388340.0, "Ops per second": 71979611.33, "ns per ops": 13.93, "Ops per threads": 1349617.0, "Ops per procs": 134961771.0, "Ops/sec/procs": 4498725.71, "ns per ops/procs": 222.84}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 976780212.0, "Ops per second": 32559340.0, "ns per ops": 30.0, "Ops per threads": 1220975.0, "Ops per procs": 122097526.0, "Ops/sec/procs": 4069917.0, "ns per ops/procs": 246.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30036.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 584109589.0, "Ops per second": 19470319.0, "ns per ops": 51.0, "Ops per threads": 81126.0, "Ops per procs": 8112633.0, "Ops/sec/procs": 270421.0, "ns per ops/procs": 3702.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 215611963.0, "Ops per second": 7187065.43, "ns per ops": 139.37, "Ops per threads": 2156119.0, "Ops per procs": 215611963.0, "Ops/sec/procs": 7187065.43, "ns per ops/procs": 139.37}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30057.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 36630816.0, "Ops per second": 1218686.02, "ns per ops": 820.56, "Ops per threads": 3815.0, "Ops per procs": 381571.0, "Ops/sec/procs": 12694.65, "ns per ops/procs": 78773.37}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 12821176245.0, "Ops per second": 427372541.5, "ns per ops": 2.35, "Ops per threads": 890359.0, "Ops per procs": 89035946.0, "Ops/sec/procs": 2967864.87, "ns per ops/procs": 337.88}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 29270409.0, "Ops per second": 972512.08, "ns per ops": 1028.26, "Ops per threads": 2032.0, "Ops per procs": 203266.0, "Ops/sec/procs": 6753.56, "ns per ops/procs": 148070.14}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30081.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 282414574.0, "Ops per second": 9413819.0, "ns per ops": 106.0, "Ops per threads": 14709.0, "Ops per procs": 1470909.0, "Ops/sec/procs": 49030.0, "ns per ops/procs": 20450.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30030.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26483770602.0, "Ops per second": 881883434.65, "ns per ops": 1.13, "Ops per threads": 1379363.0, "Ops per procs": 137936305.0, "Ops/sec/procs": 4593142.89, "ns per ops/procs": 217.72}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30058.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 561391341.0, "Ops per second": 18713044.0, "ns per ops": 53.0, "Ops per threads": 77971.0, "Ops per procs": 7797101.0, "Ops/sec/procs": 259903.0, "ns per ops/procs": 3855.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30029.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 301079582.0, "Ops per second": 10035986.0, "ns per ops": 99.0, "Ops per threads": 20908.0, "Ops per procs": 2090830.0, "Ops/sec/procs": 69694.0, "ns per ops/procs": 14362.0}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30008.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 77675228.0, "Ops per second": 2588458.25, "ns per ops": 386.33, "Ops per threads": 48547.0, "Ops per procs": 4854701.0, "Ops/sec/procs": 161778.64, "ns per ops/procs": 6181.29}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30052.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 34923119.0, "Ops per second": 1162056.99, "ns per ops": 860.54, "Ops per threads": 3637.0, "Ops per procs": 363782.0, "Ops/sec/procs": 12104.76, "ns per ops/procs": 82612.13}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8182194669.0, "Ops per second": 272739822.3, "ns per ops": 3.67, "Ops per threads": 852311.0, "Ops per procs": 85231194.0, "Ops/sec/procs": 2841039.82, "ns per ops/procs": 352.26}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30092.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 546810906.0, "Ops per second": 18227030.0, "ns per ops": 55.0, "Ops per threads": 75945.0, "Ops per procs": 7594595.0, "Ops/sec/procs": 253153.0, "ns per ops/procs": 3962.0}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 88460656.0, "Ops per second": 2948031.14, "ns per ops": 339.21, "Ops per threads": 110575.0, "Ops per procs": 11057582.0, "Ops/sec/procs": 368503.89, "ns per ops/procs": 2713.68}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 364225864.0, "Ops per second": 12140862.0, "ns per ops": 82.0, "Ops per threads": 1821129.0, "Ops per procs": 182112932.0, "Ops/sec/procs": 6070431.0, "ns per ops/procs": 165.0}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30007.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 74170081.0, "Ops per second": 2471692.91, "ns per ops": 404.58, "Ops per threads": 46356.0, "Ops per procs": 4635630.0, "Ops/sec/procs": 154480.81, "ns per ops/procs": 6473.3}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 92864386.0, "Ops per second": 3094837.28, "ns per ops": 323.12, "Ops per threads": 116080.0, "Ops per procs": 11608048.0, "Ops/sec/procs": 386854.66, "ns per ops/procs": 2584.95}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30011.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 10977715818.0, "Ops per second": 365786257.02, "ns per ops": 2.73, "Ops per threads": 1524682.0, "Ops per procs": 152468275.0, "Ops/sec/procs": 5080364.68, "ns per ops/procs": 196.84}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30050.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26345980189.0, "Ops per second": 876731674.71, "ns per ops": 1.14, "Ops per threads": 1372186.0, "Ops per procs": 137218646.0, "Ops/sec/procs": 4566310.81, "ns per ops/procs": 219.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 336283854.0, "Ops per second": 11209461.8, "ns per ops": 89.36, "Ops per threads": 1681419.0, "Ops per procs": 168141927.0, "Ops/sec/procs": 5604730.9, "ns per ops/procs": 178.73}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1007386081.0, "Ops per second": 33579536.03, "ns per ops": 29.84, "Ops per threads": 1259232.0, "Ops per procs": 125923260.0, "Ops/sec/procs": 4197442.0, "ns per ops/procs": 238.73}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 573189382.0, "Ops per second": 19106312.73, "ns per ops": 52.43, "Ops per threads": 1432973.0, "Ops per procs": 143297345.0, "Ops/sec/procs": 4776578.18, "ns per ops/procs": 209.74}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 171043498.0, "Ops per second": 5700596.47, "ns per ops": 175.42, "Ops per threads": 855217.0, "Ops per procs": 85521749.0, "Ops/sec/procs": 2850298.24, "ns per ops/procs": 350.84}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1004519903.0, "Ops per second": 33483996.77, "ns per ops": 29.93, "Ops per threads": 1255649.0, "Ops per procs": 125564987.0, "Ops/sec/procs": 4185499.6, "ns per ops/procs": 239.41}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3202094125.0, "Ops per second": 106736470.0, "ns per ops": 9.0, "Ops per threads": 2001308.0, "Ops per procs": 200130882.0, "Ops/sec/procs": 6671029.0, "ns per ops/procs": 150.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30029.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 488656852.0, "Ops per second": 16272514.04, "ns per ops": 61.45, "Ops per threads": 2443284.0, "Ops per procs": 244328426.0, "Ops/sec/procs": 8136257.02, "ns per ops/procs": 122.91}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30025.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 67700097.0, "Ops per second": 2254774.21, "ns per ops": 443.5, "Ops per threads": 14104.0, "Ops per procs": 1410418.0, "Ops/sec/procs": 46974.46, "ns per ops/procs": 21288.16}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30049.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 34692859.0, "Ops per second": 1154516.51, "ns per ops": 866.16, "Ops per threads": 3613.0, "Ops per procs": 361383.0, "Ops/sec/procs": 12026.21, "ns per ops/procs": 83151.69}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8359133119.0, "Ops per second": 278637770.63, "ns per ops": 3.59, "Ops per threads": 870743.0, "Ops per procs": 87074303.0, "Ops/sec/procs": 2902476.78, "ns per ops/procs": 344.81}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30100.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1194760295.0, "Ops per second": 39825343.0, "ns per ops": 25.0, "Ops per threads": 248908.0, "Ops per procs": 24890839.0, "Ops/sec/procs": 829694.0, "ns per ops/procs": 1209.0}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 346417706.0, "Ops per second": 11546777.72, "ns per ops": 86.6, "Ops per threads": 3464177.0, "Ops per procs": 346417706.0, "Ops/sec/procs": 11546777.72, "ns per ops/procs": 86.6}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2802330650.0, "Ops per second": 93411021.0, "ns per ops": 10.0, "Ops per threads": 1751456.0, "Ops per procs": 175145665.0, "Ops/sec/procs": 5838188.0, "ns per ops/procs": 171.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30050.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 10388316941.0, "Ops per second": 345699924.9, "ns per ops": 2.89, "Ops per threads": 1442821.0, "Ops per procs": 144282179.0, "Ops/sec/procs": 4801387.85, "ns per ops/procs": 208.27}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30062.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 25759491108.0, "Ops per second": 856850845.73, "ns per ops": 1.17, "Ops per threads": 1341640.0, "Ops per procs": 134164016.0, "Ops/sec/procs": 4462764.82, "ns per ops/procs": 224.08}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 270648307.0, "Ops per second": 9021610.0, "ns per ops": 111.0, "Ops per threads": 2706483.0, "Ops per procs": 270648307.0, "Ops/sec/procs": 9021610.0, "ns per ops/procs": 111.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30042.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19502856105.0, "Ops per second": 649178427.41, "ns per ops": 1.54, "Ops per threads": 1354365.0, "Ops per procs": 135436500.0, "Ops/sec/procs": 4508183.52, "ns per ops/procs": 221.82}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299499043.0, "Ops per second": 9974911.65, "ns per ops": 100.25, "Ops per threads": 2994990.0, "Ops per procs": 299499043.0, "Ops/sec/procs": 9974911.65, "ns per ops/procs": 100.25}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 349357017.0, "Ops per second": 11644743.35, "ns per ops": 85.88, "Ops per threads": 3493570.0, "Ops per procs": 349357017.0, "Ops/sec/procs": 11644743.35, "ns per ops/procs": 85.88}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8304008885.0, "Ops per second": 276800296.17, "ns per ops": 3.62, "Ops per threads": 865000.0, "Ops per procs": 86500092.0, "Ops/sec/procs": 2883336.42, "ns per ops/procs": 347.16}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 485390736.0, "Ops per second": 16165047.22, "ns per ops": 61.86, "Ops per threads": 2426953.0, "Ops per procs": 242695368.0, "Ops/sec/procs": 8082523.61, "ns per ops/procs": 123.72}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299519355.0, "Ops per second": 9975570.24, "ns per ops": 100.24, "Ops per threads": 2995193.0, "Ops per procs": 299519355.0, "Ops/sec/procs": 9975570.24, "ns per ops/procs": 100.24}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299779664.0, "Ops per second": 9984303.75, "ns per ops": 100.16, "Ops per threads": 2997796.0, "Ops per procs": 299779664.0, "Ops/sec/procs": 9984303.75, "ns per ops/procs": 100.16}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30007.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 78073630.0, "Ops per second": 2601798.32, "ns per ops": 384.35, "Ops per threads": 48796.0, "Ops per procs": 4879601.0, "Ops/sec/procs": 162612.39, "ns per ops/procs": 6149.59}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2714447483.0, "Ops per second": 90481582.77, "ns per ops": 11.06, "Ops per threads": 1131019.0, "Ops per procs": 113101978.0, "Ops/sec/procs": 3770065.95, "ns per ops/procs": 265.44}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 518622064.0, "Ops per second": 17287402.0, "ns per ops": 58.0, "Ops per threads": 1296555.0, "Ops per procs": 129655516.0, "Ops/sec/procs": 4321850.0, "ns per ops/procs": 232.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 11877509648.0, "Ops per second": 395916988.27, "ns per ops": 2.53, "Ops per threads": 824827.0, "Ops per procs": 82482705.0, "Ops/sec/procs": 2749423.53, "ns per ops/procs": 364.34}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30082.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 505199363.0, "Ops per second": 16839978.0, "ns per ops": 59.0, "Ops per threads": 52624.0, "Ops per procs": 5262493.0, "Ops/sec/procs": 175416.0, "ns per ops/procs": 5716.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 298148005.0, "Ops per second": 9929939.68, "ns per ops": 100.71, "Ops per threads": 2981480.0, "Ops per procs": 298148005.0, "Ops/sec/procs": 9929939.68, "ns per ops/procs": 100.71}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30029.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 482445065.0, "Ops per second": 16065878.57, "ns per ops": 62.24, "Ops per threads": 2412225.0, "Ops per procs": 241222532.0, "Ops/sec/procs": 8032939.28, "ns per ops/procs": 124.49}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30017.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1668126380.0, "Ops per second": 55604212.0, "ns per ops": 17.0, "Ops per threads": 695052.0, "Ops per procs": 69505265.0, "Ops/sec/procs": 2316842.0, "ns per ops/procs": 431.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30010.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26487109928.0, "Ops per second": 882590502.56, "ns per ops": 1.13, "Ops per threads": 1379536.0, "Ops per procs": 137953697.0, "Ops/sec/procs": 4596825.53, "ns per ops/procs": 217.54}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 217854950.0, "Ops per second": 7261831.67, "ns per ops": 137.94, "Ops per threads": 2178549.0, "Ops per procs": 217854950.0, "Ops/sec/procs": 7261831.67, "ns per ops/procs": 137.94}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30009.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1176618768.0, "Ops per second": 39220625.0, "ns per ops": 25.0, "Ops per threads": 245128.0, "Ops per procs": 24512891.0, "Ops/sec/procs": 817096.0, "ns per ops/procs": 1224.0}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30043.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26981924.0, "Ops per second": 898100.45, "ns per ops": 1113.46, "Ops per threads": 1405.0, "Ops per procs": 140530.0, "Ops/sec/procs": 4677.61, "ns per ops/procs": 213784.55}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3051709063.0, "Ops per second": 101614959.71, "ns per ops": 9.84, "Ops per threads": 1907318.0, "Ops per procs": 190731816.0, "Ops/sec/procs": 6350934.98, "ns per ops/procs": 157.46}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30069.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 302175582.0, "Ops per second": 10072519.0, "ns per ops": 99.0, "Ops per threads": 20984.0, "Ops per procs": 2098441.0, "Ops/sec/procs": 69948.0, "ns per ops/procs": 14329.0}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26884355.0, "Ops per second": 893232.16, "ns per ops": 1119.53, "Ops per threads": 1400.0, "Ops per procs": 140022.0, "Ops/sec/procs": 4652.25, "ns per ops/procs": 214949.72}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30070.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 278552837.0, "Ops per second": 9285094.0, "ns per ops": 107.0, "Ops per threads": 14507.0, "Ops per procs": 1450796.0, "Ops/sec/procs": 48359.0, "ns per ops/procs": 20726.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1296881289.0, "Ops per second": 43189057.01, "ns per ops": 23.15, "Ops per threads": 1621101.0, "Ops per procs": 162110161.0, "Ops/sec/procs": 5398632.13, "ns per ops/procs": 185.23}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4309728344.0, "Ops per second": 143657611.47, "ns per ops": 6.97, "Ops per threads": 897860.0, "Ops per procs": 89786007.0, "Ops/sec/procs": 2992866.91, "ns per ops/procs": 334.73}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3097172880.0, "Ops per second": 103127005.02, "ns per ops": 9.7, "Ops per threads": 1935733.0, "Ops per procs": 193573305.0, "Ops/sec/procs": 6445437.81, "ns per ops/procs": 155.15}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 483149542.0, "Ops per second": 16090398.09, "ns per ops": 62.15, "Ops per threads": 2415747.0, "Ops per procs": 241574771.0, "Ops/sec/procs": 8045199.05, "ns per ops/procs": 124.3}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2151165578.0, "Ops per second": 71705519.27, "ns per ops": 13.98, "Ops per threads": 1344478.0, "Ops per procs": 134447848.0, "Ops/sec/procs": 4481594.95, "ns per ops/procs": 223.7}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30007.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 78848322.0, "Ops per second": 2627612.5, "ns per ops": 380.57, "Ops per threads": 49280.0, "Ops per procs": 4928020.0, "Ops/sec/procs": 164225.78, "ns per ops/procs": 6089.18}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30026.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19181919121.0, "Ops per second": 638834415.49, "ns per ops": 1.57, "Ops per threads": 1332077.0, "Ops per procs": 133207771.0, "Ops/sec/procs": 4436350.11, "ns per ops/procs": 225.41}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30087.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 11263735948.0, "Ops per second": 374369363.3, "ns per ops": 2.67, "Ops per threads": 1564407.0, "Ops per procs": 156440777.0, "Ops/sec/procs": 5199574.49, "ns per ops/procs": 192.32}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3066538493.0, "Ops per second": 102108974.84, "ns per ops": 9.79, "Ops per threads": 1916586.0, "Ops per procs": 191658655.0, "Ops/sec/procs": 6381810.93, "ns per ops/procs": 156.7}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4287144838.0, "Ops per second": 142904827.93, "ns per ops": 7.01, "Ops per threads": 893155.0, "Ops per procs": 89315517.0, "Ops/sec/procs": 2977183.92, "ns per ops/procs": 336.48}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30009.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4400191769.0, "Ops per second": 146628903.8, "ns per ops": 6.82, "Ops per threads": 1833413.0, "Ops per procs": 183341323.0, "Ops/sec/procs": 6109537.66, "ns per ops/procs": 163.68}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30078.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 584224891.0, "Ops per second": 19474163.0, "ns per ops": 51.0, "Ops per threads": 81142.0, "Ops per procs": 8114234.0, "Ops/sec/procs": 270474.0, "ns per ops/procs": 3706.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30021.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13194211533.0, "Ops per second": 439497928.75, "ns per ops": 2.28, "Ops per threads": 1374397.0, "Ops per procs": 137439703.0, "Ops/sec/procs": 4578103.42, "ns per ops/procs": 218.43}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30026.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19381279124.0, "Ops per second": 645467493.61, "ns per ops": 1.55, "Ops per threads": 1345922.0, "Ops per procs": 134592216.0, "Ops/sec/procs": 4482413.15, "ns per ops/procs": 223.09}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 479769286.0, "Ops per second": 15977743.65, "ns per ops": 62.59, "Ops per threads": 2398846.0, "Ops per procs": 239884643.0, "Ops/sec/procs": 7988871.82, "ns per ops/procs": 125.17}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 366345710.0, "Ops per second": 12211523.0, "ns per ops": 82.0, "Ops per threads": 1831728.0, "Ops per procs": 183172855.0, "Ops/sec/procs": 6105761.0, "ns per ops/procs": 164.0}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30054.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 35279040.0, "Ops per second": 1173827.13, "ns per ops": 851.91, "Ops per threads": 3674.0, "Ops per procs": 367490.0, "Ops/sec/procs": 12227.37, "ns per ops/procs": 81783.76}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1005001530.0, "Ops per second": 33500051.0, "ns per ops": 29.91, "Ops per threads": 1256251.0, "Ops per procs": 125625191.0, "Ops/sec/procs": 4187506.38, "ns per ops/procs": 239.28}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30010.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1587819639.0, "Ops per second": 52927321.0, "ns per ops": 18.0, "Ops per threads": 661591.0, "Ops per procs": 66159151.0, "Ops/sec/procs": 2205305.0, "ns per ops/procs": 453.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30014.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 10523171981.0, "Ops per second": 350599599.11, "ns per ops": 2.85, "Ops per threads": 1461551.0, "Ops per procs": 146155166.0, "Ops/sec/procs": 4869438.88, "ns per ops/procs": 205.36}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2686169832.0, "Ops per second": 89538994.4, "ns per ops": 11.18, "Ops per threads": 1119237.0, "Ops per procs": 111923743.0, "Ops/sec/procs": 3730791.43, "ns per ops/procs": 268.21}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30009.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4397115121.0, "Ops per second": 146525156.57, "ns per ops": 6.82, "Ops per threads": 1832131.0, "Ops per procs": 183213130.0, "Ops/sec/procs": 6105214.86, "ns per ops/procs": 163.79}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 172736097.0, "Ops per second": 5757057.79, "ns per ops": 173.7, "Ops per threads": 863680.0, "Ops per procs": 86368048.0, "Ops/sec/procs": 2878528.9, "ns per ops/procs": 347.4}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 12285650420.0, "Ops per second": 409521680.67, "ns per ops": 2.44, "Ops per threads": 853170.0, "Ops per procs": 85317016.0, "Ops/sec/procs": 2843900.56, "ns per ops/procs": 352.07}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299632060.0, "Ops per second": 9979331.8, "ns per ops": 100.21, "Ops per threads": 2996320.0, "Ops per procs": 299632060.0, "Ops/sec/procs": 9979331.8, "ns per ops/procs": 100.21}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3017442937.0, "Ops per second": 100473086.74, "ns per ops": 9.95, "Ops per threads": 1885901.0, "Ops per procs": 188590183.0, "Ops/sec/procs": 6279567.92, "ns per ops/procs": 159.25}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30025.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4400478567.0, "Ops per second": 146559753.57, "ns per ops": 6.82, "Ops per threads": 1833532.0, "Ops per procs": 183353273.0, "Ops/sec/procs": 6106656.4, "ns per ops/procs": 163.76}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 526845365.0, "Ops per second": 17561512.0, "ns per ops": 57.0, "Ops per threads": 1317113.0, "Ops per procs": 131711341.0, "Ops/sec/procs": 4390378.0, "ns per ops/procs": 228.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30048.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 264138657.0, "Ops per second": 8804621.0, "ns per ops": 113.0, "Ops per threads": 13757.0, "Ops per procs": 1375722.0, "Ops/sec/procs": 45857.0, "ns per ops/procs": 21842.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2744843579.0, "Ops per second": 91494785.97, "ns per ops": 10.94, "Ops per threads": 1143684.0, "Ops per procs": 114368482.0, "Ops/sec/procs": 3812282.75, "ns per ops/procs": 262.51}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 350398388.0, "Ops per second": 11679453.78, "ns per ops": 85.62, "Ops per threads": 3503983.0, "Ops per procs": 350398388.0, "Ops/sec/procs": 11679453.78, "ns per ops/procs": 85.62}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 12685559739.0, "Ops per second": 422851991.3, "ns per ops": 2.37, "Ops per threads": 880941.0, "Ops per procs": 88094164.0, "Ops/sec/procs": 2936472.16, "ns per ops/procs": 340.92}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30001.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1192178672.0, "Ops per second": 39739289.0, "ns per ops": 25.0, "Ops per threads": 248370.0, "Ops per procs": 24837055.0, "Ops/sec/procs": 827901.0, "ns per ops/procs": 1207.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 217423880.0, "Ops per second": 7247462.67, "ns per ops": 138.21, "Ops per threads": 2174238.0, "Ops per procs": 217423880.0, "Ops/sec/procs": 7247462.67, "ns per ops/procs": 138.21}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30027.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 10020193384.0, "Ops per second": 333703893.35, "ns per ops": 3.0, "Ops per threads": 1391693.0, "Ops per procs": 139169352.0, "Ops/sec/procs": 4634776.3, "ns per ops/procs": 215.76}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30012.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6646731060.0, "Ops per second": 221464222.73, "ns per ops": 4.52, "Ops per threads": 1384735.0, "Ops per procs": 138473563.0, "Ops/sec/procs": 4613837.97, "ns per ops/procs": 216.74}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30032.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 299723626.0, "Ops per second": 9990787.0, "ns per ops": 100.0, "Ops per threads": 20814.0, "Ops per procs": 2081414.0, "Ops/sec/procs": 69380.0, "ns per ops/procs": 14428.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30099.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2742834949.0, "Ops per second": 91427831.0, "ns per ops": 10.0, "Ops per threads": 1714271.0, "Ops per procs": 171427184.0, "Ops/sec/procs": 5714239.0, "ns per ops/procs": 175.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30014.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 573687309.0, "Ops per second": 19122910.0, "ns per ops": 52.0, "Ops per threads": 79678.0, "Ops per procs": 7967879.0, "Ops/sec/procs": 265595.0, "ns per ops/procs": 3766.0}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30007.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 85820934.0, "Ops per second": 2860019.98, "ns per ops": 349.65, "Ops per threads": 107276.0, "Ops per procs": 10727616.0, "Ops/sec/procs": 357502.5, "ns per ops/procs": 2797.18}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 535172143.0, "Ops per second": 17839071.0, "ns per ops": 56.0, "Ops per threads": 1337930.0, "Ops per procs": 133793035.0, "Ops/sec/procs": 4459767.0, "ns per ops/procs": 224.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30018.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13280603684.0, "Ops per second": 442411026.33, "ns per ops": 2.26, "Ops per threads": 1383396.0, "Ops per procs": 138339621.0, "Ops/sec/procs": 4608448.19, "ns per ops/procs": 216.99}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30082.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26499472584.0, "Ops per second": 880884889.05, "ns per ops": 1.14, "Ops per threads": 1380180.0, "Ops per procs": 138018086.0, "Ops/sec/procs": 4587942.13, "ns per ops/procs": 217.96}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30029.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1296315438.0, "Ops per second": 43168684.8, "ns per ops": 23.16, "Ops per threads": 1620394.0, "Ops per procs": 162039429.0, "Ops/sec/procs": 5396085.6, "ns per ops/procs": 185.32}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30061.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 585523309.0, "Ops per second": 19517443.0, "ns per ops": 51.0, "Ops per threads": 81322.0, "Ops per procs": 8132268.0, "Ops/sec/procs": 271075.0, "ns per ops/procs": 3696.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2763750592.0, "Ops per second": 92125019.73, "ns per ops": 10.86, "Ops per threads": 1151562.0, "Ops per procs": 115156274.0, "Ops/sec/procs": 3838542.49, "ns per ops/procs": 260.69}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 334891744.0, "Ops per second": 11163058.13, "ns per ops": 89.74, "Ops per threads": 1674458.0, "Ops per procs": 167445872.0, "Ops/sec/procs": 5581529.07, "ns per ops/procs": 179.47}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2681805686.0, "Ops per second": 89393522.87, "ns per ops": 11.19, "Ops per threads": 1117419.0, "Ops per procs": 111741903.0, "Ops/sec/procs": 3724730.12, "ns per ops/procs": 268.67}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 270599155.0, "Ops per second": 9019971.0, "ns per ops": 111.0, "Ops per threads": 2705991.0, "Ops per procs": 270599155.0, "Ops/sec/procs": 9019971.0, "ns per ops/procs": 111.0}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30008.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 77894503.0, "Ops per second": 2595767.64, "ns per ops": 385.24, "Ops per threads": 48684.0, "Ops per procs": 4868406.0, "Ops/sec/procs": 162235.48, "ns per ops/procs": 6163.88}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30008.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 70605030.0, "Ops per second": 2352863.11, "ns per ops": 425.01, "Ops per threads": 29418.0, "Ops per procs": 2941876.0, "Ops/sec/procs": 98035.96, "ns per ops/procs": 10200.34}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 93245507.0, "Ops per second": 3107522.12, "ns per ops": 321.8, "Ops per threads": 116556.0, "Ops per procs": 11655688.0, "Ops/sec/procs": 388440.26, "ns per ops/procs": 2574.4}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4254187189.0, "Ops per second": 141806239.63, "ns per ops": 7.06, "Ops per threads": 886288.0, "Ops per procs": 88628899.0, "Ops/sec/procs": 2954296.66, "ns per ops/procs": 338.86}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30067.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 310910959.0, "Ops per second": 10363698.0, "ns per ops": 96.0, "Ops per threads": 21591.0, "Ops per procs": 2159103.0, "Ops/sec/procs": 71970.0, "ns per ops/procs": 13926.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 298676742.0, "Ops per second": 9947506.94, "ns per ops": 100.53, "Ops per threads": 2986767.0, "Ops per procs": 298676742.0, "Ops/sec/procs": 9947506.94, "ns per ops/procs": 100.53}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30025.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 67298031.0, "Ops per second": 2241391.86, "ns per ops": 446.15, "Ops per threads": 14020.0, "Ops per procs": 1402042.0, "Ops/sec/procs": 46695.66, "ns per ops/procs": 21415.26}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 93205040.0, "Ops per second": 3106176.4, "ns per ops": 321.94, "Ops per threads": 116506.0, "Ops per procs": 11650630.0, "Ops/sec/procs": 388272.05, "ns per ops/procs": 2575.51}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30040.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3075471853.0, "Ops per second": 102376332.91, "ns per ops": 9.77, "Ops per threads": 1922169.0, "Ops per procs": 192216990.0, "Ops/sec/procs": 6398520.81, "ns per ops/procs": 156.29}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 480427696.0, "Ops per second": 15999753.5, "ns per ops": 62.5, "Ops per threads": 2402138.0, "Ops per procs": 240213848.0, "Ops/sec/procs": 7999876.75, "ns per ops/procs": 125.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 270075695.0, "Ops per second": 9002523.0, "ns per ops": 111.0, "Ops per threads": 2700756.0, "Ops per procs": 270075695.0, "Ops/sec/procs": 9002523.0, "ns per ops/procs": 111.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30070.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 504985815.0, "Ops per second": 16832860.0, "ns per ops": 59.0, "Ops per threads": 52602.0, "Ops per procs": 5260268.0, "Ops/sec/procs": 175342.0, "ns per ops/procs": 5716.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 351510662.0, "Ops per second": 11717022.0, "ns per ops": 85.0, "Ops per threads": 1757553.0, "Ops per procs": 175755331.0, "Ops/sec/procs": 5858511.0, "ns per ops/procs": 171.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 418604168.0, "Ops per second": 13953472.0, "ns per ops": 71.0, "Ops per threads": 2093020.0, "Ops per procs": 209302084.0, "Ops/sec/procs": 6976736.0, "ns per ops/procs": 143.0}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30031.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 27010124.0, "Ops per second": 899395.94, "ns per ops": 1111.86, "Ops per threads": 1406.0, "Ops per procs": 140677.0, "Ops/sec/procs": 4684.35, "ns per ops/procs": 213476.61}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30029.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 288757282.0, "Ops per second": 9625242.0, "ns per ops": 103.0, "Ops per threads": 20052.0, "Ops per procs": 2005258.0, "Ops/sec/procs": 66841.0, "ns per ops/procs": 14975.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2684856479.0, "Ops per second": 89495215.97, "ns per ops": 11.18, "Ops per threads": 1118690.0, "Ops per procs": 111869019.0, "Ops/sec/procs": 3728967.33, "ns per ops/procs": 268.32}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8264274278.0, "Ops per second": 275475809.27, "ns per ops": 3.63, "Ops per threads": 860861.0, "Ops per procs": 86086190.0, "Ops/sec/procs": 2869539.68, "ns per ops/procs": 348.76}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 270181513.0, "Ops per second": 9006050.0, "ns per ops": 111.0, "Ops per threads": 2701815.0, "Ops per procs": 270181513.0, "Ops/sec/procs": 9006050.0, "ns per ops/procs": 111.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 333451226.0, "Ops per second": 11115040.87, "ns per ops": 90.12, "Ops per threads": 1667256.0, "Ops per procs": 166725613.0, "Ops/sec/procs": 5557520.43, "ns per ops/procs": 180.24}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2155600530.0, "Ops per second": 71853351.0, "ns per ops": 13.95, "Ops per threads": 1347250.0, "Ops per procs": 134725033.0, "Ops/sec/procs": 4490834.44, "ns per ops/procs": 223.25}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30062.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6610751065.0, "Ops per second": 219903365.57, "ns per ops": 4.55, "Ops per threads": 1377239.0, "Ops per procs": 137723980.0, "Ops/sec/procs": 4581320.12, "ns per ops/procs": 218.28}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30086.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 579985671.0, "Ops per second": 19332855.0, "ns per ops": 51.0, "Ops per threads": 80553.0, "Ops per procs": 8055356.0, "Ops/sec/procs": 268511.0, "ns per ops/procs": 3735.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 215803072.0, "Ops per second": 7193435.73, "ns per ops": 139.24, "Ops per threads": 2158030.0, "Ops per procs": 215803072.0, "Ops/sec/procs": 7193435.73, "ns per ops/procs": 139.24}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 169260575.0, "Ops per second": 5641150.98, "ns per ops": 177.27, "Ops per threads": 846302.0, "Ops per procs": 84630287.0, "Ops/sec/procs": 2820575.49, "ns per ops/procs": 354.54}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30086.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 30308257.0, "Ops per second": 1007372.67, "ns per ops": 992.68, "Ops per threads": 2104.0, "Ops per procs": 210474.0, "Ops/sec/procs": 6995.64, "ns per ops/procs": 142946.11}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2744244016.0, "Ops per second": 91474800.0, "ns per ops": 10.0, "Ops per threads": 1715152.0, "Ops per procs": 171515251.0, "Ops/sec/procs": 5717175.0, "ns per ops/procs": 175.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 702457229.0, "Ops per second": 23392347.47, "ns per ops": 42.75, "Ops per threads": 1756143.0, "Ops per procs": 175614307.0, "Ops/sec/procs": 5848086.87, "ns per ops/procs": 171.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30009.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4399289794.0, "Ops per second": 146598264.72, "ns per ops": 6.82, "Ops per threads": 1833037.0, "Ops per procs": 183303741.0, "Ops/sec/procs": 6108261.03, "ns per ops/procs": 163.71}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2147276090.0, "Ops per second": 71575869.67, "ns per ops": 14.01, "Ops per threads": 1342047.0, "Ops per procs": 134204755.0, "Ops/sec/procs": 4473491.85, "ns per ops/procs": 224.11}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30030.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 811215293.0, "Ops per second": 27013334.98, "ns per ops": 37.02, "Ops per threads": 2028038.0, "Ops per procs": 202803823.0, "Ops/sec/procs": 6753333.74, "ns per ops/procs": 148.08}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30039.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 67528123.0, "Ops per second": 2248014.17, "ns per ops": 444.84, "Ops per threads": 14068.0, "Ops per procs": 1406835.0, "Ops/sec/procs": 46833.63, "ns per ops/procs": 21352.18}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 567385338.0, "Ops per second": 18912844.6, "ns per ops": 52.97, "Ops per threads": 1418463.0, "Ops per procs": 141846334.0, "Ops/sec/procs": 4728211.15, "ns per ops/procs": 211.89}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1004869135.0, "Ops per second": 33495637.83, "ns per ops": 29.92, "Ops per threads": 1256086.0, "Ops per procs": 125608641.0, "Ops/sec/procs": 4186954.73, "ns per ops/procs": 239.32}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30019.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 574509430.0, "Ops per second": 19150314.0, "ns per ops": 52.0, "Ops per threads": 79792.0, "Ops per procs": 7979297.0, "Ops/sec/procs": 265976.0, "ns per ops/procs": 3762.0}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 347726400.0, "Ops per second": 11590371.11, "ns per ops": 86.28, "Ops per threads": 3477264.0, "Ops per procs": 347726400.0, "Ops/sec/procs": 11590371.11, "ns per ops/procs": 86.28}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8294203179.0, "Ops per second": 276473439.3, "ns per ops": 3.62, "Ops per threads": 863979.0, "Ops per procs": 86397949.0, "Ops/sec/procs": 2879931.66, "ns per ops/procs": 347.52}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30060.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 25989130042.0, "Ops per second": 864557771.72, "ns per ops": 1.16, "Ops per threads": 1353600.0, "Ops per procs": 135360052.0, "Ops/sec/procs": 4502905.06, "ns per ops/procs": 222.08}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 479352322.0, "Ops per second": 15963998.87, "ns per ops": 62.64, "Ops per threads": 2396761.0, "Ops per procs": 239676161.0, "Ops/sec/procs": 7981999.43, "ns per ops/procs": 125.28}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299299007.0, "Ops per second": 9968179.52, "ns per ops": 100.32, "Ops per threads": 2992990.0, "Ops per procs": 299299007.0, "Ops/sec/procs": 9968179.52, "ns per ops/procs": 100.32}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1179053071.0, "Ops per second": 39301769.0, "ns per ops": 25.0, "Ops per threads": 245636.0, "Ops per procs": 24563605.0, "Ops/sec/procs": 818786.0, "ns per ops/procs": 1225.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30025.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19790979469.0, "Ops per second": 659136298.08, "ns per ops": 1.52, "Ops per threads": 1374373.0, "Ops per procs": 137437357.0, "Ops/sec/procs": 4577335.4, "ns per ops/procs": 218.47}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8316002091.0, "Ops per second": 277200069.7, "ns per ops": 3.61, "Ops per threads": 866250.0, "Ops per procs": 86625021.0, "Ops/sec/procs": 2887500.73, "ns per ops/procs": 346.66}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 70546539.0, "Ops per second": 2350926.65, "ns per ops": 425.36, "Ops per threads": 29394.0, "Ops per procs": 2939439.0, "Ops/sec/procs": 97955.28, "ns per ops/procs": 10208.74}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30033.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 25733348837.0, "Ops per second": 856830788.03, "ns per ops": 1.17, "Ops per threads": 1340278.0, "Ops per procs": 134027858.0, "Ops/sec/procs": 4462660.35, "ns per ops/procs": 224.08}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30009.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1177628415.0, "Ops per second": 39254280.0, "ns per ops": 25.0, "Ops per threads": 245339.0, "Ops per procs": 24533925.0, "Ops/sec/procs": 817797.0, "ns per ops/procs": 1223.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30030.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1147486229.0, "Ops per second": 38249540.0, "ns per ops": 26.0, "Ops per threads": 239059.0, "Ops per procs": 23905963.0, "Ops/sec/procs": 796865.0, "ns per ops/procs": 1256.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17564439800.0, "Ops per second": 585481326.67, "ns per ops": 1.71, "Ops per threads": 914814.0, "Ops per procs": 91481457.0, "Ops/sec/procs": 3049381.91, "ns per ops/procs": 328.19}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30025.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 302169540.0, "Ops per second": 10072318.0, "ns per ops": 99.0, "Ops per threads": 20983.0, "Ops per procs": 2098399.0, "Ops/sec/procs": 69946.0, "ns per ops/procs": 14308.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30033.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3036380768.0, "Ops per second": 101101461.76, "ns per ops": 9.89, "Ops per threads": 1897737.0, "Ops per procs": 189773798.0, "Ops/sec/procs": 6318841.36, "ns per ops/procs": 158.26}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30017.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1554120722.0, "Ops per second": 51804024.0, "ns per ops": 19.0, "Ops per threads": 647550.0, "Ops per procs": 64755030.0, "Ops/sec/procs": 2158501.0, "ns per ops/procs": 463.0}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30004.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 115550611.0, "Ops per second": 3851071.98, "ns per ops": 259.67, "Ops per threads": 288876.0, "Ops per procs": 28887652.0, "Ops/sec/procs": 962767.99, "ns per ops/procs": 1038.67}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 92028333.0, "Ops per second": 3066952.6, "ns per ops": 326.06, "Ops per threads": 115035.0, "Ops per procs": 11503541.0, "Ops/sec/procs": 383369.07, "ns per ops/procs": 2608.45}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30035.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 290688763.0, "Ops per second": 9689625.0, "ns per ops": 103.0, "Ops per threads": 15140.0, "Ops per procs": 1514003.0, "Ops/sec/procs": 50466.0, "ns per ops/procs": 19838.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2079126941.0, "Ops per second": 69304231.0, "ns per ops": 14.0, "Ops per threads": 866302.0, "Ops per procs": 86630289.0, "Ops/sec/procs": 2887676.0, "ns per ops/procs": 347.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30008.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4384437315.0, "Ops per second": 146104326.17, "ns per ops": 6.84, "Ops per threads": 1826848.0, "Ops per procs": 182684888.0, "Ops/sec/procs": 6087680.26, "ns per ops/procs": 164.27}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30022.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 10250267009.0, "Ops per second": 341423701.74, "ns per ops": 2.93, "Ops per threads": 1423648.0, "Ops per procs": 142364819.0, "Ops/sec/procs": 4741995.86, "ns per ops/procs": 210.88}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4293843882.0, "Ops per second": 143128129.4, "ns per ops": 7.0, "Ops per threads": 894550.0, "Ops per procs": 89455080.0, "Ops/sec/procs": 2981836.03, "ns per ops/procs": 336.09}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30084.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 29408377.0, "Ops per second": 977525.35, "ns per ops": 1022.99, "Ops per threads": 2042.0, "Ops per procs": 204224.0, "Ops/sec/procs": 6788.37, "ns per ops/procs": 147310.76}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1008042353.0, "Ops per second": 33601411.77, "ns per ops": 29.82, "Ops per threads": 1260052.0, "Ops per procs": 126005294.0, "Ops/sec/procs": 4200176.47, "ns per ops/procs": 238.57}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 999947535.0, "Ops per second": 33331584.5, "ns per ops": 30.06, "Ops per threads": 1249934.0, "Ops per procs": 124993441.0, "Ops/sec/procs": 4166448.06, "ns per ops/procs": 240.5}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30004.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 113446676.0, "Ops per second": 3780934.96, "ns per ops": 264.48, "Ops per threads": 283616.0, "Ops per procs": 28361669.0, "Ops/sec/procs": 945233.74, "ns per ops/procs": 1057.94}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 11889810957.0, "Ops per second": 396327031.9, "ns per ops": 2.53, "Ops per threads": 825681.0, "Ops per procs": 82568131.0, "Ops/sec/procs": 2752271.05, "ns per ops/procs": 363.97}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30023.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 533886713.0, "Ops per second": 17796223.0, "ns per ops": 56.0, "Ops per threads": 55613.0, "Ops per procs": 5561319.0, "Ops/sec/procs": 185377.0, "ns per ops/procs": 5398.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13282632623.0, "Ops per second": 442613220.45, "ns per ops": 2.26, "Ops per threads": 1383607.0, "Ops per procs": 138360756.0, "Ops/sec/procs": 4610554.38, "ns per ops/procs": 216.89}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 573493703.0, "Ops per second": 19116456.77, "ns per ops": 52.41, "Ops per threads": 1433734.0, "Ops per procs": 143373425.0, "Ops/sec/procs": 4779114.19, "ns per ops/procs": 209.63}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30008.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4422531922.0, "Ops per second": 147374144.76, "ns per ops": 6.79, "Ops per threads": 1842721.0, "Ops per procs": 184272163.0, "Ops/sec/procs": 6140589.37, "ns per ops/procs": 162.85}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 983324555.0, "Ops per second": 32777485.0, "ns per ops": 30.0, "Ops per threads": 1229155.0, "Ops per procs": 122915569.0, "Ops/sec/procs": 4097185.0, "ns per ops/procs": 244.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 270874159.0, "Ops per second": 9029138.0, "ns per ops": 111.0, "Ops per threads": 2708741.0, "Ops per procs": 270874159.0, "Ops/sec/procs": 9029138.0, "ns per ops/procs": 111.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30076.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 537517678.0, "Ops per second": 17917255.0, "ns per ops": 55.0, "Ops per threads": 55991.0, "Ops per procs": 5599142.0, "Ops/sec/procs": 186638.0, "ns per ops/procs": 5371.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4282166915.0, "Ops per second": 142738897.17, "ns per ops": 7.02, "Ops per threads": 892118.0, "Ops per procs": 89211810.0, "Ops/sec/procs": 2973727.02, "ns per ops/procs": 336.88}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8145873107.0, "Ops per second": 271529103.57, "ns per ops": 3.69, "Ops per threads": 848528.0, "Ops per procs": 84852844.0, "Ops/sec/procs": 2828428.16, "ns per ops/procs": 353.89}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30062.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 34056218.0, "Ops per second": 1132858.36, "ns per ops": 882.72, "Ops per threads": 3547.0, "Ops per procs": 354752.0, "Ops/sec/procs": 11800.61, "ns per ops/procs": 84741.4}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2154014618.0, "Ops per second": 71800487.27, "ns per ops": 13.96, "Ops per threads": 1346259.0, "Ops per procs": 134625913.0, "Ops/sec/procs": 4487530.45, "ns per ops/procs": 223.41}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 332954171.0, "Ops per second": 11098472.37, "ns per ops": 90.26, "Ops per threads": 1664770.0, "Ops per procs": 166477085.0, "Ops/sec/procs": 5549236.18, "ns per ops/procs": 180.51}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30011.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19506168645.0, "Ops per second": 649954989.52, "ns per ops": 1.54, "Ops per threads": 1354595.0, "Ops per procs": 135459504.0, "Ops/sec/procs": 4513576.32, "ns per ops/procs": 221.55}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 999930904.0, "Ops per second": 33331030.13, "ns per ops": 30.06, "Ops per threads": 1249913.0, "Ops per procs": 124991363.0, "Ops/sec/procs": 4166378.77, "ns per ops/procs": 240.5}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 485155621.0, "Ops per second": 16157211.1, "ns per ops": 61.89, "Ops per threads": 2425778.0, "Ops per procs": 242577810.0, "Ops/sec/procs": 8078605.55, "ns per ops/procs": 123.78}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299438418.0, "Ops per second": 9972893.03, "ns per ops": 100.27, "Ops per threads": 2994384.0, "Ops per procs": 299438418.0, "Ops/sec/procs": 9972893.03, "ns per ops/procs": 100.27}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30032.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 37138094.0, "Ops per second": 1236606.75, "ns per ops": 808.66, "Ops per threads": 5158.0, "Ops per procs": 515806.0, "Ops/sec/procs": 17175.09, "ns per ops/procs": 58223.85}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6678019467.0, "Ops per second": 222600648.9, "ns per ops": 4.5, "Ops per threads": 927502.0, "Ops per procs": 92750270.0, "Ops/sec/procs": 3091675.68, "ns per ops/procs": 324.28}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2665104048.0, "Ops per second": 88836801.6, "ns per ops": 11.26, "Ops per threads": 1110460.0, "Ops per procs": 111046002.0, "Ops/sec/procs": 3701533.4, "ns per ops/procs": 270.34}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30053.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 35414910.0, "Ops per second": 1178395.21, "ns per ops": 848.61, "Ops per threads": 3689.0, "Ops per procs": 368905.0, "Ops/sec/procs": 12274.95, "ns per ops/procs": 81466.73}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30100.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1163622259.0, "Ops per second": 38787408.0, "ns per ops": 25.0, "Ops per threads": 242421.0, "Ops per procs": 24242130.0, "Ops/sec/procs": 808071.0, "ns per ops/procs": 1241.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30036.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26074416281.0, "Ops per second": 868104933.82, "ns per ops": 1.15, "Ops per threads": 1358042.0, "Ops per procs": 135804251.0, "Ops/sec/procs": 4521379.86, "ns per ops/procs": 221.17}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 350202248.0, "Ops per second": 11672920.95, "ns per ops": 85.67, "Ops per threads": 3502022.0, "Ops per procs": 350202248.0, "Ops/sec/procs": 11672920.95, "ns per ops/procs": 85.67}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30028.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 806648777.0, "Ops per second": 26863110.92, "ns per ops": 37.23, "Ops per threads": 2016621.0, "Ops per procs": 201662194.0, "Ops/sec/procs": 6715777.73, "ns per ops/procs": 148.9}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 70771600.0, "Ops per second": 2358478.89, "ns per ops": 424.0, "Ops per threads": 29488.0, "Ops per procs": 2948816.0, "Ops/sec/procs": 98269.95, "ns per ops/procs": 10176.05}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30047.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 539646607.0, "Ops per second": 17988220.0, "ns per ops": 55.0, "Ops per threads": 56213.0, "Ops per procs": 5621318.0, "Ops/sec/procs": 187377.0, "ns per ops/procs": 5345.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30060.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26548208301.0, "Ops per second": 883152161.55, "ns per ops": 1.13, "Ops per threads": 1382719.0, "Ops per procs": 138271918.0, "Ops/sec/procs": 4599750.84, "ns per ops/procs": 217.4}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30038.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 37153256.0, "Ops per second": 1236863.47, "ns per ops": 808.5, "Ops per threads": 5160.0, "Ops per procs": 516017.0, "Ops/sec/procs": 17178.66, "ns per ops/procs": 58211.76}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30030.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19172572735.0, "Ops per second": 638435015.6, "ns per ops": 1.57, "Ops per threads": 1331428.0, "Ops per procs": 133142866.0, "Ops/sec/procs": 4433576.5, "ns per ops/procs": 225.55}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2753865741.0, "Ops per second": 91795524.0, "ns per ops": 10.0, "Ops per threads": 1721166.0, "Ops per procs": 172116608.0, "Ops/sec/procs": 5737220.0, "ns per ops/procs": 174.0}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30051.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 38417538.0, "Ops per second": 1278375.59, "ns per ops": 782.24, "Ops per threads": 4001.0, "Ops per procs": 400182.0, "Ops/sec/procs": 13316.41, "ns per ops/procs": 75095.3}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 92027342.0, "Ops per second": 3066920.21, "ns per ops": 326.06, "Ops per threads": 115034.0, "Ops per procs": 11503417.0, "Ops/sec/procs": 383365.03, "ns per ops/procs": 2608.48}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30024.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19387973398.0, "Ops per second": 645732280.53, "ns per ops": 1.55, "Ops per threads": 1346387.0, "Ops per procs": 134638704.0, "Ops/sec/procs": 4484251.95, "ns per ops/procs": 223.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2157486354.0, "Ops per second": 71916211.8, "ns per ops": 13.94, "Ops per threads": 1348428.0, "Ops per procs": 134842897.0, "Ops/sec/procs": 4494763.24, "ns per ops/procs": 223.06}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 217681114.0, "Ops per second": 7256037.13, "ns per ops": 138.04, "Ops per threads": 2176811.0, "Ops per procs": 217681114.0, "Ops/sec/procs": 7256037.13, "ns per ops/procs": 138.04}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30043.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 27159902.0, "Ops per second": 904016.99, "ns per ops": 1106.17, "Ops per threads": 1414.0, "Ops per procs": 141457.0, "Ops/sec/procs": 4708.42, "ns per ops/procs": 212385.39}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30008.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4793108137.0, "Ops per second": 159725333.41, "ns per ops": 6.26, "Ops per threads": 1997128.0, "Ops per procs": 199712839.0, "Ops/sec/procs": 6655222.23, "ns per ops/procs": 150.26}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30013.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 10001271677.0, "Ops per second": 333222464.46, "ns per ops": 3.0, "Ops per threads": 1389065.0, "Ops per procs": 138906551.0, "Ops/sec/procs": 4628089.78, "ns per ops/procs": 216.07}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30029.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 483396719.0, "Ops per second": 16097287.79, "ns per ops": 62.12, "Ops per threads": 2416983.0, "Ops per procs": 241698359.0, "Ops/sec/procs": 8048643.89, "ns per ops/procs": 124.24}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30027.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 255041569.0, "Ops per second": 8501385.0, "ns per ops": 117.0, "Ops per threads": 13283.0, "Ops per procs": 1328341.0, "Ops/sec/procs": 44278.0, "ns per ops/procs": 22605.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 490960528.0, "Ops per second": 16350485.28, "ns per ops": 61.16, "Ops per threads": 2454802.0, "Ops per procs": 245480264.0, "Ops/sec/procs": 8175242.64, "ns per ops/procs": 122.32}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6697007580.0, "Ops per second": 223233586.0, "ns per ops": 4.49, "Ops per threads": 930139.0, "Ops per procs": 93013994.0, "Ops/sec/procs": 3100466.47, "ns per ops/procs": 323.31}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30043.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 27448783.0, "Ops per second": 913624.12, "ns per ops": 1094.54, "Ops per threads": 1429.0, "Ops per procs": 142962.0, "Ops/sec/procs": 4758.46, "ns per ops/procs": 210152.07}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30030.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 27524426.0, "Ops per second": 916562.62, "ns per ops": 1091.03, "Ops per threads": 1433.0, "Ops per procs": 143356.0, "Ops/sec/procs": 4773.76, "ns per ops/procs": 209478.32}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 575628066.0, "Ops per second": 19187602.2, "ns per ops": 52.21, "Ops per threads": 1439070.0, "Ops per procs": 143907016.0, "Ops/sec/procs": 4796900.55, "ns per ops/procs": 208.85}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 528599994.0, "Ops per second": 17619999.0, "ns per ops": 56.0, "Ops per threads": 1321499.0, "Ops per procs": 132149998.0, "Ops/sec/procs": 4404999.0, "ns per ops/procs": 227.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6693199029.0, "Ops per second": 223106634.3, "ns per ops": 4.48, "Ops per threads": 929610.0, "Ops per procs": 92961097.0, "Ops/sec/procs": 3098703.25, "ns per ops/procs": 322.86}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 12486125326.0, "Ops per second": 416204177.53, "ns per ops": 2.41, "Ops per threads": 867092.0, "Ops per procs": 86709203.0, "Ops/sec/procs": 2890306.79, "ns per ops/procs": 346.45}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30005.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 117092278.0, "Ops per second": 3902412.65, "ns per ops": 256.25, "Ops per threads": 292730.0, "Ops per procs": 29273069.0, "Ops/sec/procs": 975603.16, "ns per ops/procs": 1025.01}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299408297.0, "Ops per second": 9971938.18, "ns per ops": 100.28, "Ops per threads": 2994082.0, "Ops per procs": 299408297.0, "Ops/sec/procs": 9971938.18, "ns per ops/procs": 100.28}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30038.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 37143498.0, "Ops per second": 1236550.2, "ns per ops": 808.7, "Ops per threads": 5158.0, "Ops per procs": 515881.0, "Ops/sec/procs": 17174.31, "ns per ops/procs": 58226.51}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30022.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 68551005.0, "Ops per second": 2283313.45, "ns per ops": 437.96, "Ops per threads": 14281.0, "Ops per procs": 1428145.0, "Ops/sec/procs": 47569.03, "ns per ops/procs": 21022.08}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30032.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 804988871.0, "Ops per second": 26803652.6, "ns per ops": 37.31, "Ops per threads": 2012472.0, "Ops per procs": 201247217.0, "Ops/sec/procs": 6700913.15, "ns per ops/procs": 149.23}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30085.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 30707766.0, "Ops per second": 1020699.68, "ns per ops": 979.72, "Ops per threads": 2132.0, "Ops per procs": 213248.0, "Ops/sec/procs": 7088.19, "ns per ops/procs": 141079.7}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 217498036.0, "Ops per second": 7249934.53, "ns per ops": 138.16, "Ops per threads": 2174980.0, "Ops per procs": 217498036.0, "Ops/sec/procs": 7249934.53, "ns per ops/procs": 138.16}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30022.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 68110234.0, "Ops per second": 2268607.06, "ns per ops": 440.8, "Ops per threads": 14189.0, "Ops per procs": 1418963.0, "Ops/sec/procs": 47262.65, "ns per ops/procs": 21158.36}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30034.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19510235438.0, "Ops per second": 649600679.95, "ns per ops": 1.54, "Ops per threads": 1354877.0, "Ops per procs": 135487746.0, "Ops/sec/procs": 4511115.83, "ns per ops/procs": 221.67}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30060.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 262968720.0, "Ops per second": 8765624.0, "ns per ops": 114.0, "Ops per threads": 13696.0, "Ops per procs": 1369628.0, "Ops/sec/procs": 45654.0, "ns per ops/procs": 21947.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 334372952.0, "Ops per second": 11145765.07, "ns per ops": 89.87, "Ops per threads": 1671864.0, "Ops per procs": 167186476.0, "Ops/sec/procs": 5572882.53, "ns per ops/procs": 179.75}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 269758522.0, "Ops per second": 8991950.0, "ns per ops": 111.0, "Ops per threads": 2697585.0, "Ops per procs": 269758522.0, "Ops/sec/procs": 8991950.0, "ns per ops/procs": 111.0}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30004.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 115591471.0, "Ops per second": 3852412.37, "ns per ops": 259.58, "Ops per threads": 288978.0, "Ops per procs": 28897867.0, "Ops/sec/procs": 963103.09, "ns per ops/procs": 1038.31}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3288989751.0, "Ops per second": 109632991.0, "ns per ops": 9.0, "Ops per threads": 2055618.0, "Ops per procs": 205561859.0, "Ops/sec/procs": 6852061.0, "ns per ops/procs": 146.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30003.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1159910709.0, "Ops per second": 38663690.0, "ns per ops": 25.0, "Ops per threads": 241648.0, "Ops per procs": 24164806.0, "Ops/sec/procs": 805493.0, "ns per ops/procs": 1241.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 483515597.0, "Ops per second": 16102644.29, "ns per ops": 62.1, "Ops per threads": 2417577.0, "Ops per procs": 241757798.0, "Ops/sec/procs": 8051322.15, "ns per ops/procs": 124.2}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30007.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 77529497.0, "Ops per second": 2583661.68, "ns per ops": 387.05, "Ops per threads": 48455.0, "Ops per procs": 4845593.0, "Ops/sec/procs": 161478.85, "ns per ops/procs": 6192.76}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30008.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 70815152.0, "Ops per second": 2359875.05, "ns per ops": 423.75, "Ops per threads": 29506.0, "Ops per procs": 2950631.0, "Ops/sec/procs": 98328.13, "ns per ops/procs": 10170.03}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 270801846.0, "Ops per second": 9026728.0, "ns per ops": 111.0, "Ops per threads": 2708018.0, "Ops per procs": 270801846.0, "Ops/sec/procs": 9026728.0, "ns per ops/procs": 111.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 488679686.0, "Ops per second": 16274628.62, "ns per ops": 61.45, "Ops per threads": 2443398.0, "Ops per procs": 244339843.0, "Ops/sec/procs": 8137314.31, "ns per ops/procs": 122.89}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30019.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13305714690.0, "Ops per second": 443237595.7, "ns per ops": 2.26, "Ops per threads": 1386011.0, "Ops per procs": 138601194.0, "Ops/sec/procs": 4617058.29, "ns per ops/procs": 216.59}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2733613742.0, "Ops per second": 91120458.07, "ns per ops": 10.98, "Ops per threads": 1139005.0, "Ops per procs": 113900572.0, "Ops/sec/procs": 3796685.75, "ns per ops/procs": 263.58}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30040.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 490976716.0, "Ops per second": 16365890.0, "ns per ops": 61.0, "Ops per threads": 51143.0, "Ops per procs": 5114340.0, "Ops/sec/procs": 170478.0, "ns per ops/procs": 5873.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30085.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 245221764.0, "Ops per second": 8174058.0, "ns per ops": 122.0, "Ops per threads": 12771.0, "Ops per procs": 1277196.0, "Ops/sec/procs": 42573.0, "ns per ops/procs": 23555.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3455233451.0, "Ops per second": 115051162.18, "ns per ops": 8.69, "Ops per threads": 2159520.0, "Ops per procs": 215952090.0, "Ops/sec/procs": 7190697.64, "ns per ops/procs": 139.07}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 574882406.0, "Ops per second": 19162746.87, "ns per ops": 52.28, "Ops per threads": 1437206.0, "Ops per procs": 143720601.0, "Ops/sec/procs": 4790686.72, "ns per ops/procs": 209.13}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 217067968.0, "Ops per second": 7235598.93, "ns per ops": 138.43, "Ops per threads": 2170679.0, "Ops per procs": 217067968.0, "Ops/sec/procs": 7235598.93, "ns per ops/procs": 138.43}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30074.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 286710280.0, "Ops per second": 9557009.0, "ns per ops": 104.0, "Ops per threads": 19910.0, "Ops per procs": 1991043.0, "Ops/sec/procs": 66368.0, "ns per ops/procs": 15105.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4317209688.0, "Ops per second": 143906989.6, "ns per ops": 6.96, "Ops per threads": 899418.0, "Ops per procs": 89941868.0, "Ops/sec/procs": 2998062.28, "ns per ops/procs": 334.16}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1004382727.0, "Ops per second": 33479424.23, "ns per ops": 29.93, "Ops per threads": 1255478.0, "Ops per procs": 125547840.0, "Ops/sec/procs": 4184928.03, "ns per ops/procs": 239.43}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 331584692.0, "Ops per second": 11052823.07, "ns per ops": 90.63, "Ops per threads": 1657923.0, "Ops per procs": 165792346.0, "Ops/sec/procs": 5526411.53, "ns per ops/procs": 181.25}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30036.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 38456856.0, "Ops per second": 1280357.15, "ns per ops": 781.03, "Ops per threads": 5341.0, "Ops per procs": 534123.0, "Ops/sec/procs": 17782.74, "ns per ops/procs": 56234.31}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30007.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 78186611.0, "Ops per second": 2605561.25, "ns per ops": 383.79, "Ops per threads": 48866.0, "Ops per procs": 4886663.0, "Ops/sec/procs": 162847.58, "ns per ops/procs": 6140.71}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30020.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1180176331.0, "Ops per second": 39339211.0, "ns per ops": 25.0, "Ops per threads": 245870.0, "Ops per procs": 24587006.0, "Ops/sec/procs": 819566.0, "ns per ops/procs": 1221.0}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30034.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 34900735.0, "Ops per second": 1162012.41, "ns per ops": 860.58, "Ops per threads": 4847.0, "Ops per procs": 484732.0, "Ops/sec/procs": 16139.06, "ns per ops/procs": 61961.47}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30027.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1296625679.0, "Ops per second": 43180803.78, "ns per ops": 23.16, "Ops per threads": 1620782.0, "Ops per procs": 162078209.0, "Ops/sec/procs": 5397600.47, "ns per ops/procs": 185.27}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17479516685.0, "Ops per second": 582650556.17, "ns per ops": 1.72, "Ops per threads": 910391.0, "Ops per procs": 91039149.0, "Ops/sec/procs": 3034638.31, "ns per ops/procs": 329.82}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30034.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 38266043.0, "Ops per second": 1274055.89, "ns per ops": 784.89, "Ops per threads": 5314.0, "Ops per procs": 531472.0, "Ops/sec/procs": 17695.22, "ns per ops/procs": 56512.43}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 350417405.0, "Ops per second": 11680094.41, "ns per ops": 85.62, "Ops per threads": 3504174.0, "Ops per procs": 350417405.0, "Ops/sec/procs": 11680094.41, "ns per ops/procs": 85.62}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30023.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 25986237.0, "Ops per second": 865526.71, "ns per ops": 1155.37, "Ops per threads": 1353.0, "Ops per procs": 135344.0, "Ops/sec/procs": 4507.95, "ns per ops/procs": 221830.24}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 270860982.0, "Ops per second": 9028699.0, "ns per ops": 111.0, "Ops per threads": 2708609.0, "Ops per procs": 270860982.0, "Ops/sec/procs": 9028699.0, "ns per ops/procs": 111.0}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30089.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 30303531.0, "Ops per second": 1007112.56, "ns per ops": 992.94, "Ops per threads": 2104.0, "Ops per procs": 210441.0, "Ops/sec/procs": 6993.84, "ns per ops/procs": 142983.02}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 519447542.0, "Ops per second": 17314918.0, "ns per ops": 57.0, "Ops per threads": 1298618.0, "Ops per procs": 129861885.0, "Ops/sec/procs": 4328729.0, "ns per ops/procs": 231.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6572757122.0, "Ops per second": 219091904.07, "ns per ops": 4.58, "Ops per threads": 912882.0, "Ops per procs": 91288293.0, "Ops/sec/procs": 3042943.11, "ns per ops/procs": 329.68}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30033.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3087456370.0, "Ops per second": 102801800.75, "ns per ops": 9.73, "Ops per threads": 1929660.0, "Ops per procs": 192966023.0, "Ops/sec/procs": 6425112.55, "ns per ops/procs": 155.64}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 337720130.0, "Ops per second": 11257337.67, "ns per ops": 88.98, "Ops per threads": 1688600.0, "Ops per procs": 168860065.0, "Ops/sec/procs": 5628668.83, "ns per ops/procs": 177.96}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 172674644.0, "Ops per second": 5754927.43, "ns per ops": 173.76, "Ops per threads": 863373.0, "Ops per procs": 86337322.0, "Ops/sec/procs": 2877463.72, "ns per ops/procs": 347.53}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30092.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 269026620.0, "Ops per second": 8967554.0, "ns per ops": 111.0, "Ops per threads": 14011.0, "Ops per procs": 1401180.0, "Ops/sec/procs": 46706.0, "ns per ops/procs": 21476.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2710328762.0, "Ops per second": 90344292.07, "ns per ops": 11.08, "Ops per threads": 1129303.0, "Ops per procs": 112930365.0, "Ops/sec/procs": 3764345.5, "ns per ops/procs": 265.85}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30062.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 291063483.0, "Ops per second": 9702116.0, "ns per ops": 103.0, "Ops per threads": 15159.0, "Ops per procs": 1515955.0, "Ops/sec/procs": 50531.0, "ns per ops/procs": 19831.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30098.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 534444288.0, "Ops per second": 17814809.0, "ns per ops": 56.0, "Ops per threads": 1336110.0, "Ops per procs": 133611072.0, "Ops/sec/procs": 4453702.0, "ns per ops/procs": 225.0}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 71343500.0, "Ops per second": 2377482.75, "ns per ops": 420.61, "Ops per threads": 29726.0, "Ops per procs": 2972645.0, "Ops/sec/procs": 99061.78, "ns per ops/procs": 10094.71}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30052.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 39004624.0, "Ops per second": 1297866.8, "ns per ops": 770.5, "Ops per threads": 4062.0, "Ops per procs": 406298.0, "Ops/sec/procs": 13519.45, "ns per ops/procs": 73967.53}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30060.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6587665814.0, "Ops per second": 219143567.0, "ns per ops": 4.56, "Ops per threads": 1372430.0, "Ops per procs": 137243037.0, "Ops/sec/procs": 4565490.98, "ns per ops/procs": 219.03}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 526574779.0, "Ops per second": 17552492.0, "ns per ops": 57.0, "Ops per threads": 1316436.0, "Ops per procs": 131643694.0, "Ops/sec/procs": 4388123.0, "ns per ops/procs": 228.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 968778073.0, "Ops per second": 32292602.0, "ns per ops": 31.0, "Ops per threads": 1210972.0, "Ops per procs": 121097259.0, "Ops/sec/procs": 4036575.0, "ns per ops/procs": 248.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 340896526.0, "Ops per second": 11363217.53, "ns per ops": 88.15, "Ops per threads": 1704482.0, "Ops per procs": 170448263.0, "Ops/sec/procs": 5681608.77, "ns per ops/procs": 176.31}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17511846247.0, "Ops per second": 583728208.23, "ns per ops": 1.71, "Ops per threads": 912075.0, "Ops per procs": 91207532.0, "Ops/sec/procs": 3040251.08, "ns per ops/procs": 329.21}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30020.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13250068414.0, "Ops per second": 441368038.69, "ns per ops": 2.27, "Ops per threads": 1380215.0, "Ops per procs": 138021545.0, "Ops/sec/procs": 4597583.74, "ns per ops/procs": 217.51}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30049.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 286605671.0, "Ops per second": 9553522.0, "ns per ops": 104.0, "Ops per threads": 19903.0, "Ops per procs": 1990317.0, "Ops/sec/procs": 66343.0, "ns per ops/procs": 15097.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 338634971.0, "Ops per second": 11287832.37, "ns per ops": 88.74, "Ops per threads": 1693174.0, "Ops per procs": 169317485.0, "Ops/sec/procs": 5643916.18, "ns per ops/procs": 177.49}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17523008688.0, "Ops per second": 584100289.6, "ns per ops": 1.71, "Ops per threads": 912656.0, "Ops per procs": 91265670.0, "Ops/sec/procs": 3042189.01, "ns per ops/procs": 329.07}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30035.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 34367923.0, "Ops per second": 1144227.36, "ns per ops": 873.95, "Ops per threads": 4773.0, "Ops per procs": 477332.0, "Ops/sec/procs": 15892.05, "ns per ops/procs": 62924.56}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 270480115.0, "Ops per second": 9016003.0, "ns per ops": 111.0, "Ops per threads": 2704801.0, "Ops per procs": 270480115.0, "Ops/sec/procs": 9016003.0, "ns per ops/procs": 111.0}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30041.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26134723.0, "Ops per second": 869965.18, "ns per ops": 1149.47, "Ops per threads": 1361.0, "Ops per procs": 136118.0, "Ops/sec/procs": 4531.07, "ns per ops/procs": 220698.49}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30048.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 541756814.0, "Ops per second": 18058560.0, "ns per ops": 55.0, "Ops per threads": 56433.0, "Ops per procs": 5643300.0, "Ops/sec/procs": 188110.0, "ns per ops/procs": 5324.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 12990094182.0, "Ops per second": 433003139.4, "ns per ops": 2.31, "Ops per threads": 902089.0, "Ops per procs": 90208987.0, "Ops/sec/procs": 3006966.25, "ns per ops/procs": 332.75}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30005.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 93246285.0, "Ops per second": 3107597.38, "ns per ops": 321.79, "Ops per threads": 116557.0, "Ops per procs": 11655785.0, "Ops/sec/procs": 388449.67, "ns per ops/procs": 2574.34}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30008.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4457966086.0, "Ops per second": 148555742.28, "ns per ops": 6.73, "Ops per threads": 1857485.0, "Ops per procs": 185748586.0, "Ops/sec/procs": 6189822.6, "ns per ops/procs": 161.56}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30007.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 76549671.0, "Ops per second": 2551027.74, "ns per ops": 392.0, "Ops per threads": 47843.0, "Ops per procs": 4784354.0, "Ops/sec/procs": 159439.23, "ns per ops/procs": 6271.98}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30036.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 809363848.0, "Ops per second": 26946424.54, "ns per ops": 37.11, "Ops per threads": 2023409.0, "Ops per procs": 202340962.0, "Ops/sec/procs": 6736606.13, "ns per ops/procs": 148.44}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 333260541.0, "Ops per second": 11108684.7, "ns per ops": 90.17, "Ops per threads": 1666302.0, "Ops per procs": 166630270.0, "Ops/sec/procs": 5554342.35, "ns per ops/procs": 180.33}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 168121705.0, "Ops per second": 5603235.32, "ns per ops": 178.47, "Ops per threads": 840608.0, "Ops per procs": 84060852.0, "Ops/sec/procs": 2801617.66, "ns per ops/procs": 356.94}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30031.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3447339587.0, "Ops per second": 114790724.23, "ns per ops": 8.71, "Ops per threads": 2154587.0, "Ops per procs": 215458724.0, "Ops/sec/procs": 7174420.26, "ns per ops/procs": 139.38}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30067.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 38263625.0, "Ops per second": 1272604.57, "ns per ops": 785.79, "Ops per threads": 3985.0, "Ops per procs": 398579.0, "Ops/sec/procs": 13256.3, "ns per ops/procs": 75435.84}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 270400191.0, "Ops per second": 9013339.0, "ns per ops": 111.0, "Ops per threads": 2704001.0, "Ops per procs": 270400191.0, "Ops/sec/procs": 9013339.0, "ns per ops/procs": 111.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30023.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26353755125.0, "Ops per second": 877770057.87, "ns per ops": 1.14, "Ops per threads": 1372591.0, "Ops per procs": 137259141.0, "Ops/sec/procs": 4571719.05, "ns per ops/procs": 218.74}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3080009942.0, "Ops per second": 102555720.62, "ns per ops": 9.75, "Ops per threads": 1925006.0, "Ops per procs": 192500621.0, "Ops/sec/procs": 6409732.54, "ns per ops/procs": 156.01}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 980730642.0, "Ops per second": 32691021.0, "ns per ops": 30.0, "Ops per threads": 1225913.0, "Ops per procs": 122591330.0, "Ops/sec/procs": 4086377.0, "ns per ops/procs": 245.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30061.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19515832426.0, "Ops per second": 649191089.89, "ns per ops": 1.54, "Ops per threads": 1355266.0, "Ops per procs": 135526614.0, "Ops/sec/procs": 4508271.46, "ns per ops/procs": 221.81}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30038.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 34167210.0, "Ops per second": 1137456.97, "ns per ops": 879.15, "Ops per threads": 4745.0, "Ops per procs": 474544.0, "Ops/sec/procs": 15798.01, "ns per ops/procs": 63299.1}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30031.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 795254987.0, "Ops per second": 26480577.0, "ns per ops": 37.76, "Ops per threads": 1988137.0, "Ops per procs": 198813746.0, "Ops/sec/procs": 6620144.25, "ns per ops/procs": 151.05}]] -
doc/theses/thierry_delisle_PhD/thesis/data/yield.low.jax
r12df6fe r4520b77e 1 [["rdq-yield- cfa", "./rdq-yield-cfa -p 24 -d 10 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 198228606.0, "Ops per second": 19822860.6, "ns per ops": 50.49, "Ops per threads": 8259525.0, "Ops per procs": 8259525.0, "Ops/sec/procs": 825952.53, "ns per ops/procs": 1211.87}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 10 -t 1", {"Duration (ms)": 10100.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 91771391.0, "Ops per second": 9177139.0, "ns per ops": 110.0, "Ops per threads": 91771391.0, "Ops per procs": 91771391.0, "Ops/sec/procs": 9177139.0, "ns per ops/procs": 110.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 10 -t 16", {"Duration (ms)": 10099.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 1155463759.0, "Ops per second": 115546375.0, "ns per ops": 8.0, "Ops per threads": 72216484.0, "Ops per procs": 72216484.0, "Ops/sec/procs": 7221648.0, "ns per ops/procs": 139.0}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 10 -t 16", {"Duration (ms)": 10001.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 17081410.0, "Ops per second": 1707820.12, "ns per ops": 585.54, "Ops per threads": 1067588.0, "Ops per procs": 1067588.0, "Ops/sec/procs": 106738.76, "ns per ops/procs": 9368.67}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 10 -t 8", {"Duration (ms)": 10007.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 2151927291.0, "Ops per second": 215027860.62, "ns per ops": 4.65, "Ops per threads": 268990911.0, "Ops per procs": 268990911.0, "Ops/sec/procs": 26878482.58, "ns per ops/procs": 37.2}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 10 -t 24", {"Duration (ms)": 10099.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 1281636563.0, "Ops per second": 128163656.0, "ns per ops": 7.0, "Ops per threads": 53401523.0, "Ops per procs": 53401523.0, "Ops/sec/procs": 5340152.0, "ns per ops/procs": 189.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 10 -t 24", {"Duration (ms)": 10004.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 5317671032.0, "Ops per second": 531537767.14, "ns per ops": 1.88, "Ops per threads": 221569626.0, "Ops per procs": 221569626.0, "Ops/sec/procs": 22147406.96, "ns per ops/procs": 45.15}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 10 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 158323555.0, "Ops per second": 15832355.5, "ns per ops": 63.29, "Ops per threads": 19790444.0, "Ops per procs": 19790444.0, "Ops/sec/procs": 1979044.44, "ns per ops/procs": 506.3}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 10 -t 8", {"Duration (ms)": 10001.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 27128459.0, "Ops per second": 2712537.66, "ns per ops": 368.66, "Ops per threads": 3391057.0, "Ops per procs": 3391057.0, "Ops/sec/procs": 339067.21, "ns per ops/procs": 2949.27}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 10 -t 8", {"Duration (ms)": 10001.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 27155837.0, "Ops per second": 2715305.28, "ns per ops": 368.28, "Ops per threads": 3394479.0, "Ops per procs": 3394479.0, "Ops/sec/procs": 339413.16, "ns per ops/procs": 2946.26}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 10 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 211249329.0, "Ops per second": 21124932.9, "ns per ops": 47.45, "Ops per threads": 13203083.0, "Ops per procs": 13203083.0, "Ops/sec/procs": 1320308.31, "ns per ops/procs": 759.17}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 10 -t 1", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 85555889.0, "Ops per second": 8555216.69, "ns per ops": 116.89, "Ops per threads": 85555889.0, "Ops per procs": 85555889.0, "Ops/sec/procs": 8555216.69, "ns per ops/procs": 116.89}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 10 -t 8", {"Duration (ms)": 10099.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 390829055.0, "Ops per second": 39082905.0, "ns per ops": 25.0, "Ops per threads": 48853631.0, "Ops per procs": 48853631.0, "Ops/sec/procs": 4885363.0, "ns per ops/procs": 206.0}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 10 -t 24", {"Duration (ms)": 10002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 13250872.0, "Ops per second": 1324722.09, "ns per ops": 754.88, "Ops per threads": 552119.0, "Ops per procs": 552119.0, "Ops/sec/procs": 55196.75, "ns per ops/procs": 18117.01}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 10 -t 16", {"Duration (ms)": 10099.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 1000850284.0, "Ops per second": 100085028.0, "ns per ops": 10.0, "Ops per threads": 62553142.0, "Ops per procs": 62553142.0, "Ops/sec/procs": 6255314.0, "ns per ops/procs": 161.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 10 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 184091475.0, "Ops per second": 18409147.5, "ns per ops": 54.36, "Ops per threads": 7670478.0, "Ops per procs": 7670478.0, "Ops/sec/procs": 767047.81, "ns per ops/procs": 1304.54}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 10 -t 1", {"Duration (ms)": 10007.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 292489865.0, "Ops per second": 29227283.49, "ns per ops": 34.21, "Ops per threads": 292489865.0, "Ops per procs": 292489865.0, "Ops/sec/procs": 29227283.49, "ns per ops/procs": 34.21}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 10 -t 24", {"Duration (ms)": 10002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 14063200.0, "Ops per second": 1406005.33, "ns per ops": 711.23, "Ops per threads": 585966.0, "Ops per procs": 585966.0, "Ops/sec/procs": 58583.56, "ns per ops/procs": 17069.64}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 10 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 162528481.0, "Ops per second": 16252848.1, "ns per ops": 61.66, "Ops per threads": 20316060.0, "Ops per procs": 20316060.0, "Ops/sec/procs": 2031606.01, "ns per ops/procs": 493.26}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 10 -t 16", {"Duration (ms)": 10008.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3965938528.0, "Ops per second": 396248257.59, "ns per ops": 2.52, "Ops per threads": 247871158.0, "Ops per procs": 247871158.0, "Ops/sec/procs": 24765516.1, "ns per ops/procs": 40.38}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 10 -t 16", {"Duration (ms)": 10009.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 4048953063.0, "Ops per second": 404492768.97, "ns per ops": 2.47, "Ops per threads": 253059566.0, "Ops per procs": 253059566.0, "Ops/sec/procs": 25280798.06, "ns per ops/procs": 39.56}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 10 -t 24", {"Duration (ms)": 10004.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 5311054327.0, "Ops per second": 530869875.38, "ns per ops": 1.88, "Ops per threads": 221293930.0, "Ops per procs": 221293930.0, "Ops/sec/procs": 22119578.14, "ns per ops/procs": 45.21}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 10 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 193683806.0, "Ops per second": 19368380.6, "ns per ops": 51.76, "Ops per threads": 12105237.0, "Ops per procs": 12105237.0, "Ops/sec/procs": 1210523.79, "ns per ops/procs": 828.15}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 10 -t 16", {"Duration (ms)": 10001.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 16763469.0, "Ops per second": 1676051.66, "ns per ops": 596.64, "Ops per threads": 1047716.0, "Ops per procs": 1047716.0, "Ops/sec/procs": 104753.23, "ns per ops/procs": 9546.25}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 10 -t 24", {"Duration (ms)": 10099.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 1250273189.0, "Ops per second": 125027318.0, "ns per ops": 8.0, "Ops per threads": 52094716.0, "Ops per procs": 52094716.0, "Ops/sec/procs": 5209471.0, "ns per ops/procs": 193.0}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 10 -t 8", {"Duration (ms)": 10001.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 26753255.0, "Ops per second": 2675042.69, "ns per ops": 373.83, "Ops per threads": 3344156.0, "Ops per procs": 3344156.0, "Ops/sec/procs": 334380.34, "ns per ops/procs": 2990.61}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 10 -t 16", {"Duration (ms)": 10099.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 1139181136.0, "Ops per second": 113918113.0, "ns per ops": 8.0, "Ops per threads": 71198821.0, "Ops per procs": 71198821.0, "Ops/sec/procs": 7119882.0, "ns per ops/procs": 141.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 10 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 148345422.0, "Ops per second": 14834542.2, "ns per ops": 67.54, "Ops per threads": 18543177.0, "Ops per procs": 18543177.0, "Ops/sec/procs": 1854317.77, "ns per ops/procs": 540.32}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 10 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 76054104.0, "Ops per second": 7605410.4, "ns per ops": 131.71, "Ops per threads": 76054104.0, "Ops per procs": 76054104.0, "Ops/sec/procs": 7605410.4, "ns per ops/procs": 131.71}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 10 -t 1", {"Duration (ms)": 10007.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 292635742.0, "Ops per second": 29241803.8, "ns per ops": 34.2, "Ops per threads": 292635742.0, "Ops per procs": 292635742.0, "Ops/sec/procs": 29241803.8, "ns per ops/procs": 34.2}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 10 -t 24", {"Duration (ms)": 10001.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 5304170687.0, "Ops per second": 530361478.44, "ns per ops": 1.89, "Ops per threads": 221007111.0, "Ops per procs": 221007111.0, "Ops/sec/procs": 22098394.93, "ns per ops/procs": 45.25}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 10 -t 16", {"Duration (ms)": 10009.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 4047689095.0, "Ops per second": 404367842.39, "ns per ops": 2.47, "Ops per threads": 252980568.0, "Ops per procs": 252980568.0, "Ops/sec/procs": 25272990.15, "ns per ops/procs": 39.57}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 10 -t 1", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 85548399.0, "Ops per second": 8554476.24, "ns per ops": 116.9, "Ops per threads": 85548399.0, "Ops per procs": 85548399.0, "Ops/sec/procs": 8554476.24, "ns per ops/procs": 116.9}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 10 -t 1", {"Duration (ms)": 10100.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 91474395.0, "Ops per second": 9147439.0, "ns per ops": 110.0, "Ops per threads": 91474395.0, "Ops per procs": 91474395.0, "Ops/sec/procs": 9147439.0, "ns per ops/procs": 110.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 10 -t 24", {"Duration (ms)": 10099.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 1289349577.0, "Ops per second": 128934957.0, "ns per ops": 7.0, "Ops per threads": 53722899.0, "Ops per procs": 53722899.0, "Ops/sec/procs": 5372289.0, "ns per ops/procs": 187.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 10 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 227319382.0, "Ops per second": 22731938.2, "ns per ops": 44.02, "Ops per threads": 9471640.0, "Ops per procs": 9471640.0, "Ops/sec/procs": 947164.09, "ns per ops/procs": 1056.48}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 10 -t 16", {"Duration (ms)": 10001.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 16769801.0, "Ops per second": 1676661.26, "ns per ops": 596.42, "Ops per threads": 1048112.0, "Ops per procs": 1048112.0, "Ops/sec/procs": 104791.33, "ns per ops/procs": 9542.77}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 10 -t 8", {"Duration (ms)": 10007.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 2148355210.0, "Ops per second": 214670482.89, "ns per ops": 4.66, "Ops per threads": 268544401.0, "Ops per procs": 268544401.0, "Ops/sec/procs": 26833810.36, "ns per ops/procs": 37.27}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 10 -t 8", {"Duration (ms)": 10007.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 2151532871.0, "Ops per second": 214988947.76, "ns per ops": 4.65, "Ops per threads": 268941608.0, "Ops per procs": 268941608.0, "Ops/sec/procs": 26873618.47, "ns per ops/procs": 37.21}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 10 -t 1", {"Duration (ms)": 10009.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 292690252.0, "Ops per second": 29242303.95, "ns per ops": 34.2, "Ops per threads": 292690252.0, "Ops per procs": 292690252.0, "Ops/sec/procs": 29242303.95, "ns per ops/procs": 34.2}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 10 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 75801333.0, "Ops per second": 7580133.3, "ns per ops": 132.15, "Ops per threads": 75801333.0, "Ops per procs": 75801333.0, "Ops/sec/procs": 7580133.3, "ns per ops/procs": 132.15}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 10 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 221926675.0, "Ops per second": 22192667.5, "ns per ops": 45.18, "Ops per threads": 13870417.0, "Ops per procs": 13870417.0, "Ops/sec/procs": 1387041.72, "ns per ops/procs": 722.81}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 10 -t 1", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 84740180.0, "Ops per second": 8473654.06, "ns per ops": 118.01, "Ops per threads": 84740180.0, "Ops per procs": 84740180.0, "Ops/sec/procs": 8473654.06, "ns per ops/procs": 118.01}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 10 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 73281534.0, "Ops per second": 7328153.4, "ns per ops": 136.67, "Ops per threads": 73281534.0, "Ops per procs": 73281534.0, "Ops/sec/procs": 7328153.4, "ns per ops/procs": 136.67}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 10 -t 8", {"Duration (ms)": 10099.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 388708305.0, "Ops per second": 38870830.0, "ns per ops": 25.0, "Ops per threads": 48588538.0, "Ops per procs": 48588538.0, "Ops/sec/procs": 4858853.0, "ns per ops/procs": 207.0}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 10 -t 24", {"Duration (ms)": 10002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 13787158.0, "Ops per second": 1378423.2, "ns per ops": 725.47, "Ops per threads": 574464.0, "Ops per procs": 574464.0, "Ops/sec/procs": 57434.3, "ns per ops/procs": 17411.2}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 10 -t 8", {"Duration (ms)": 10099.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 398849975.0, "Ops per second": 39884997.0, "ns per ops": 25.0, "Ops per threads": 49856246.0, "Ops per procs": 49856246.0, "Ops/sec/procs": 4985624.0, "ns per ops/procs": 202.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 10 -t 1", {"Duration (ms)": 10100.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 91905024.0, "Ops per second": 9190502.0, "ns per ops": 109.0, "Ops per threads": 91905024.0, "Ops per procs": 91905024.0, "Ops/sec/procs": 9190502.0, "ns per ops/procs": 109.0}]]1 [["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 889852155.0, "Ops per second": 29639661.51, "ns per ops": 33.74, "Ops per threads": 889852155.0, "Ops per procs": 889852155.0, "Ops/sec/procs": 29639661.51, "ns per ops/procs": 33.74}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3473254370.0, "Ops per second": 115775145.0, "ns per ops": 8.0, "Ops per threads": 217078398.0, "Ops per procs": 217078398.0, "Ops/sec/procs": 7235946.0, "ns per ops/procs": 138.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3722441212.0, "Ops per second": 124081373.0, "ns per ops": 8.0, "Ops per threads": 155101717.0, "Ops per procs": 155101717.0, "Ops/sec/procs": 5170057.0, "ns per ops/procs": 194.0}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 257259497.0, "Ops per second": 8574979.85, "ns per ops": 116.62, "Ops per threads": 257259497.0, "Ops per procs": 257259497.0, "Ops/sec/procs": 8574979.85, "ns per ops/procs": 116.62}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 502702816.0, "Ops per second": 16756760.0, "ns per ops": 59.0, "Ops per threads": 251351408.0, "Ops per procs": 251351408.0, "Ops/sec/procs": 8378380.0, "ns per ops/procs": 119.0}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 176907596.0, "Ops per second": 5896444.54, "ns per ops": 169.59, "Ops per threads": 44226899.0, "Ops per procs": 44226899.0, "Ops/sec/procs": 1474111.14, "ns per ops/procs": 678.37}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6541318807.0, "Ops per second": 217879411.62, "ns per ops": 4.59, "Ops per threads": 817664850.0, "Ops per procs": 817664850.0, "Ops/sec/procs": 27234926.45, "ns per ops/procs": 36.72}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 396676387.0, "Ops per second": 13222546.0, "ns per ops": 75.0, "Ops per threads": 4132045.0, "Ops per procs": 4132045.0, "Ops/sec/procs": 137734.0, "ns per ops/procs": 7283.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 951729276.0, "Ops per second": 31724309.0, "ns per ops": 31.0, "Ops per threads": 237932319.0, "Ops per procs": 237932319.0, "Ops/sec/procs": 7931077.0, "ns per ops/procs": 126.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30004.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 60723683946.0, "Ops per second": 2023798082.97, "ns per ops": 0.49, "Ops per threads": 421692249.0, "Ops per procs": 421692249.0, "Ops/sec/procs": 14054153.35, "ns per ops/procs": 71.15}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 702876508.0, "Ops per second": 23429216.93, "ns per ops": 42.71, "Ops per threads": 29286521.0, "Ops per procs": 29286521.0, "Ops/sec/procs": 976217.37, "ns per ops/procs": 1025.07}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6549353222.0, "Ops per second": 218145788.68, "ns per ops": 4.58, "Ops per threads": 818669152.0, "Ops per procs": 818669152.0, "Ops/sec/procs": 27268223.59, "ns per ops/procs": 36.67}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30023.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 890273934.0, "Ops per second": 29653009.25, "ns per ops": 33.72, "Ops per threads": 890273934.0, "Ops per procs": 890273934.0, "Ops/sec/procs": 29653009.25, "ns per ops/procs": 33.72}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3769704964.0, "Ops per second": 125656832.0, "ns per ops": 7.0, "Ops per threads": 157071040.0, "Ops per procs": 157071040.0, "Ops/sec/procs": 5235701.0, "ns per ops/procs": 191.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30006.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 36872783303.0, "Ops per second": 1228841381.09, "ns per ops": 0.81, "Ops per threads": 512121990.0, "Ops per procs": 512121990.0, "Ops/sec/procs": 17067241.4, "ns per ops/procs": 58.59}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 238262157.0, "Ops per second": 7942071.9, "ns per ops": 126.12, "Ops per threads": 238262157.0, "Ops per procs": 238262157.0, "Ops/sec/procs": 7942071.9, "ns per ops/procs": 126.12}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30033.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 16808610.0, "Ops per second": 559671.31, "ns per ops": 1786.76, "Ops per threads": 87544.0, "Ops per procs": 87544.0, "Ops/sec/procs": 2914.95, "ns per ops/procs": 343058.5}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 411004165.0, "Ops per second": 13700138.0, "ns per ops": 73.0, "Ops per threads": 5708391.0, "Ops per procs": 5708391.0, "Ops/sec/procs": 190279.0, "ns per ops/procs": 5272.0}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30012.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 374725709.0, "Ops per second": 12485591.75, "ns per ops": 80.09, "Ops per threads": 187362854.0, "Ops per procs": 187362854.0, "Ops/sec/procs": 6242795.88, "ns per ops/procs": 160.18}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3767820262.0, "Ops per second": 125594008.0, "ns per ops": 7.0, "Ops per threads": 156992510.0, "Ops per procs": 156992510.0, "Ops/sec/procs": 5233083.0, "ns per ops/procs": 191.0}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 247973966.0, "Ops per second": 8265475.83, "ns per ops": 120.99, "Ops per threads": 247973966.0, "Ops per procs": 247973966.0, "Ops/sec/procs": 8265475.83, "ns per ops/procs": 120.99}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30020.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41130963.0, "Ops per second": 1370094.58, "ns per ops": 729.88, "Ops per threads": 856895.0, "Ops per procs": 856895.0, "Ops/sec/procs": 28543.64, "ns per ops/procs": 35034.08}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30024.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1777690362.0, "Ops per second": 59207833.56, "ns per ops": 16.89, "Ops per threads": 888845181.0, "Ops per procs": 888845181.0, "Ops/sec/procs": 29603916.78, "ns per ops/procs": 33.78}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 254630037.0, "Ops per second": 8487327.25, "ns per ops": 117.82, "Ops per threads": 254630037.0, "Ops per procs": 254630037.0, "Ops/sec/procs": 8487327.25, "ns per ops/procs": 117.82}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20372375734.0, "Ops per second": 678949732.8, "ns per ops": 1.47, "Ops per threads": 424424494.0, "Ops per procs": 424424494.0, "Ops/sec/procs": 14144786.1, "ns per ops/procs": 70.7}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 1864949024.0, "Ops per second": 62164967.47, "ns per ops": 16.1, "Ops per threads": 12951034.0, "Ops per procs": 12951034.0, "Ops/sec/procs": 431701.16, "ns per ops/procs": 2318.72}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3779158451.0, "Ops per second": 125971948.0, "ns per ops": 7.0, "Ops per threads": 157464935.0, "Ops per procs": 157464935.0, "Ops/sec/procs": 5248831.0, "ns per ops/procs": 191.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1162225781.0, "Ops per second": 38740859.37, "ns per ops": 25.86, "Ops per threads": 24213037.0, "Ops per procs": 24213037.0, "Ops/sec/procs": 807101.24, "ns per ops/procs": 1241.13}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30045.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 22340031.0, "Ops per second": 743542.67, "ns per ops": 1344.91, "Ops per threads": 232708.0, "Ops per procs": 232708.0, "Ops/sec/procs": 7745.24, "ns per ops/procs": 129111.62}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 398470357.0, "Ops per second": 13282345.0, "ns per ops": 75.0, "Ops per threads": 4150732.0, "Ops per procs": 4150732.0, "Ops/sec/procs": 138357.0, "ns per ops/procs": 7251.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 375397731.0, "Ops per second": 12513257.7, "ns per ops": 80.06, "Ops per threads": 93849432.0, "Ops per procs": 93849432.0, "Ops/sec/procs": 3128314.42, "ns per ops/procs": 320.25}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 82739253.0, "Ops per second": 2757670.25, "ns per ops": 362.62, "Ops per threads": 10342406.0, "Ops per procs": 10342406.0, "Ops/sec/procs": 344708.78, "ns per ops/procs": 2901.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 399645982.0, "Ops per second": 13321532.0, "ns per ops": 75.0, "Ops per threads": 5550638.0, "Ops per procs": 5550638.0, "Ops/sec/procs": 185021.0, "ns per ops/procs": 5422.0}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 255875103.0, "Ops per second": 8528827.31, "ns per ops": 117.25, "Ops per threads": 255875103.0, "Ops per procs": 255875103.0, "Ops/sec/procs": 8528827.31, "ns per ops/procs": 117.25}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 421438583.0, "Ops per second": 14047952.0, "ns per ops": 71.0, "Ops per threads": 5853313.0, "Ops per procs": 5853313.0, "Ops/sec/procs": 195110.0, "ns per ops/procs": 5141.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30098.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 243308048.0, "Ops per second": 8110268.0, "ns per ops": 123.0, "Ops per threads": 1267229.0, "Ops per procs": 1267229.0, "Ops/sec/procs": 42240.0, "ns per ops/procs": 23751.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 771634067.0, "Ops per second": 25721135.0, "ns per ops": 39.0, "Ops per threads": 16075709.0, "Ops per procs": 16075709.0, "Ops/sec/procs": 535856.0, "ns per ops/procs": 1872.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1291039134.0, "Ops per second": 43034637.8, "ns per ops": 23.28, "Ops per threads": 13448324.0, "Ops per procs": 13448324.0, "Ops/sec/procs": 448277.48, "ns per ops/procs": 2235.01}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 965155439.0, "Ops per second": 32171847.0, "ns per ops": 31.0, "Ops per threads": 241288859.0, "Ops per procs": 241288859.0, "Ops/sec/procs": 8042961.0, "ns per ops/procs": 124.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 251825179.0, "Ops per second": 8394172.0, "ns per ops": 119.0, "Ops per threads": 1311589.0, "Ops per procs": 1311589.0, "Ops/sec/procs": 43719.0, "ns per ops/procs": 22947.0}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 250624138.0, "Ops per second": 8353794.15, "ns per ops": 119.71, "Ops per threads": 250624138.0, "Ops per procs": 250624138.0, "Ops/sec/procs": 8353794.15, "ns per ops/procs": 119.71}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3359759630.0, "Ops per second": 111902858.15, "ns per ops": 8.94, "Ops per threads": 839939907.0, "Ops per procs": 839939907.0, "Ops/sec/procs": 27975714.54, "ns per ops/procs": 35.75}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2232644337.0, "Ops per second": 74421477.9, "ns per ops": 13.48, "Ops per threads": 11628355.0, "Ops per procs": 11628355.0, "Ops/sec/procs": 387611.86, "ns per ops/procs": 2587.6}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30031.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 23197743.0, "Ops per second": 772459.21, "ns per ops": 1294.57, "Ops per threads": 322190.0, "Ops per procs": 322190.0, "Ops/sec/procs": 10728.6, "ns per ops/procs": 93208.81}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 238282805.0, "Ops per second": 7942760.17, "ns per ops": 126.11, "Ops per threads": 238282805.0, "Ops per procs": 238282805.0, "Ops/sec/procs": 7942760.17, "ns per ops/procs": 126.11}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1201336438.0, "Ops per second": 40044547.0, "ns per ops": 25.0, "Ops per threads": 150167054.0, "Ops per procs": 150167054.0, "Ops/sec/procs": 5005568.0, "ns per ops/procs": 200.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3364298371.0, "Ops per second": 112053341.17, "ns per ops": 8.92, "Ops per threads": 841074592.0, "Ops per procs": 841074592.0, "Ops/sec/procs": 28013335.29, "ns per ops/procs": 35.7}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16130033153.0, "Ops per second": 537618974.67, "ns per ops": 1.86, "Ops per threads": 672084714.0, "Ops per procs": 672084714.0, "Ops/sec/procs": 22400790.61, "ns per ops/procs": 44.64}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 42073776.0, "Ops per second": 1402110.33, "ns per ops": 713.21, "Ops per threads": 1753074.0, "Ops per procs": 1753074.0, "Ops/sec/procs": 58421.26, "ns per ops/procs": 17117.06}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40553263457.0, "Ops per second": 1351544284.8, "ns per ops": 0.74, "Ops per threads": 422429827.0, "Ops per procs": 422429827.0, "Ops/sec/procs": 14078586.3, "ns per ops/procs": 71.03}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 693466465.0, "Ops per second": 23115548.83, "ns per ops": 43.37, "Ops per threads": 43341654.0, "Ops per procs": 43341654.0, "Ops/sec/procs": 1444721.8, "ns per ops/procs": 693.99}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 328179340.0, "Ops per second": 10939311.33, "ns per ops": 91.57, "Ops per threads": 164089670.0, "Ops per procs": 164089670.0, "Ops/sec/procs": 5469655.67, "ns per ops/procs": 183.14}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 245572420.0, "Ops per second": 8185747.0, "ns per ops": 122.0, "Ops per threads": 1279023.0, "Ops per procs": 1279023.0, "Ops/sec/procs": 42634.0, "ns per ops/procs": 23531.0}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 80126376.0, "Ops per second": 2670590.88, "ns per ops": 374.45, "Ops per threads": 10015797.0, "Ops per procs": 10015797.0, "Ops/sec/procs": 333823.86, "ns per ops/procs": 2995.59}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1156647665.0, "Ops per second": 38554922.0, "ns per ops": 26.0, "Ops per threads": 144580958.0, "Ops per procs": 144580958.0, "Ops/sec/procs": 4819365.0, "ns per ops/procs": 208.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 325100242.0, "Ops per second": 10836674.0, "ns per ops": 92.0, "Ops per threads": 2257640.0, "Ops per procs": 2257640.0, "Ops/sec/procs": 75254.0, "ns per ops/procs": 13331.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20500362035.0, "Ops per second": 683242117.28, "ns per ops": 1.46, "Ops per threads": 427090875.0, "Ops per procs": 427090875.0, "Ops/sec/procs": 14234210.78, "ns per ops/procs": 70.25}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 931934137.0, "Ops per second": 31064471.23, "ns per ops": 32.21, "Ops per threads": 12943529.0, "Ops per procs": 12943529.0, "Ops/sec/procs": 431450.99, "ns per ops/procs": 2319.24}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1778507963.0, "Ops per second": 59237572.95, "ns per ops": 16.88, "Ops per threads": 889253981.0, "Ops per procs": 889253981.0, "Ops/sec/procs": 29618786.48, "ns per ops/procs": 33.76}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30035.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 23945848.0, "Ops per second": 797262.66, "ns per ops": 1254.29, "Ops per threads": 332581.0, "Ops per procs": 332581.0, "Ops/sec/procs": 11073.09, "ns per ops/procs": 90309.01}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 176673601.0, "Ops per second": 5888637.2, "ns per ops": 169.82, "Ops per threads": 44168400.0, "Ops per procs": 44168400.0, "Ops/sec/procs": 1472159.3, "ns per ops/procs": 679.27}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 519890881.0, "Ops per second": 17329696.03, "ns per ops": 57.83, "Ops per threads": 64986360.0, "Ops per procs": 64986360.0, "Ops/sec/procs": 2166212.0, "ns per ops/procs": 462.61}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 382377675.0, "Ops per second": 12745922.0, "ns per ops": 78.0, "Ops per threads": 5310801.0, "Ops per procs": 5310801.0, "Ops/sec/procs": 177026.0, "ns per ops/procs": 5667.0}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 41480101.0, "Ops per second": 1382320.91, "ns per ops": 723.42, "Ops per threads": 1728337.0, "Ops per procs": 1728337.0, "Ops/sec/procs": 57596.7, "ns per ops/procs": 17362.1}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 960084042.0, "Ops per second": 32002801.0, "ns per ops": 31.0, "Ops per threads": 240021010.0, "Ops per procs": 240021010.0, "Ops/sec/procs": 8000700.0, "ns per ops/procs": 125.0}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 256833265.0, "Ops per second": 8560770.12, "ns per ops": 116.81, "Ops per threads": 256833265.0, "Ops per procs": 256833265.0, "Ops/sec/procs": 8560770.12, "ns per ops/procs": 116.81}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30018.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 17086190.0, "Ops per second": 569181.77, "ns per ops": 1756.91, "Ops per threads": 88990.0, "Ops per procs": 88990.0, "Ops/sec/procs": 2964.49, "ns per ops/procs": 337326.33}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30046.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 22839735.0, "Ops per second": 760140.19, "ns per ops": 1315.55, "Ops per threads": 237913.0, "Ops per procs": 237913.0, "Ops/sec/procs": 7918.13, "ns per ops/procs": 126292.49}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3797745125.0, "Ops per second": 126591504.0, "ns per ops": 7.0, "Ops per threads": 158239380.0, "Ops per procs": 158239380.0, "Ops/sec/procs": 5274646.0, "ns per ops/procs": 190.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30006.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 60489888044.0, "Ops per second": 2015910225.95, "ns per ops": 0.5, "Ops per threads": 420068666.0, "Ops per procs": 420068666.0, "Ops/sec/procs": 13999376.57, "ns per ops/procs": 71.43}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3767189742.0, "Ops per second": 125572991.0, "ns per ops": 7.0, "Ops per threads": 156966239.0, "Ops per procs": 156966239.0, "Ops/sec/procs": 5232207.0, "ns per ops/procs": 191.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1356653996.0, "Ops per second": 45221799.87, "ns per ops": 22.13, "Ops per threads": 14131812.0, "Ops per procs": 14131812.0, "Ops/sec/procs": 471060.42, "ns per ops/procs": 2124.52}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30020.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41531128.0, "Ops per second": 1383405.11, "ns per ops": 722.85, "Ops per threads": 865231.0, "Ops per procs": 865231.0, "Ops/sec/procs": 28820.94, "ns per ops/procs": 34696.99}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1139045543.0, "Ops per second": 37968184.77, "ns per ops": 26.41, "Ops per threads": 23730115.0, "Ops per procs": 23730115.0, "Ops/sec/procs": 791003.85, "ns per ops/procs": 1267.48}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3728242645.0, "Ops per second": 124274754.0, "ns per ops": 8.0, "Ops per threads": 155343443.0, "Ops per procs": 155343443.0, "Ops/sec/procs": 5178114.0, "ns per ops/procs": 193.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30025.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3363753608.0, "Ops per second": 112030042.33, "ns per ops": 8.93, "Ops per threads": 840938402.0, "Ops per procs": 840938402.0, "Ops/sec/procs": 28007510.58, "ns per ops/procs": 35.7}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16122956518.0, "Ops per second": 537382067.51, "ns per ops": 1.86, "Ops per threads": 671789854.0, "Ops per procs": 671789854.0, "Ops/sec/procs": 22390919.48, "ns per ops/procs": 44.66}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2278604593.0, "Ops per second": 75953486.43, "ns per ops": 13.18, "Ops per threads": 11867732.0, "Ops per procs": 11867732.0, "Ops/sec/procs": 395591.08, "ns per ops/procs": 2529.9}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 273966591.0, "Ops per second": 9132219.0, "ns per ops": 109.0, "Ops per threads": 273966591.0, "Ops per procs": 273966591.0, "Ops/sec/procs": 9132219.0, "ns per ops/procs": 109.0}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 171446640.0, "Ops per second": 5714401.35, "ns per ops": 175.0, "Ops per threads": 42861660.0, "Ops per procs": 42861660.0, "Ops/sec/procs": 1428600.34, "ns per ops/procs": 699.99}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 82634041134.0, "Ops per second": 2753962580.65, "ns per ops": 0.36, "Ops per threads": 430385630.0, "Ops per procs": 430385630.0, "Ops/sec/procs": 14343555.11, "ns per ops/procs": 69.72}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30010.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 383277144.0, "Ops per second": 12771429.2, "ns per ops": 78.3, "Ops per threads": 191638572.0, "Ops per procs": 191638572.0, "Ops/sec/procs": 6385714.6, "ns per ops/procs": 156.6}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 49621904.0, "Ops per second": 1653734.91, "ns per ops": 604.69, "Ops per threads": 3101369.0, "Ops per procs": 3101369.0, "Ops/sec/procs": 103358.43, "ns per ops/procs": 9675.07}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6548668042.0, "Ops per second": 218123209.49, "ns per ops": 4.58, "Ops per threads": 818583505.0, "Ops per procs": 818583505.0, "Ops/sec/procs": 27265401.19, "ns per ops/procs": 36.68}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 870741487.0, "Ops per second": 29024716.23, "ns per ops": 34.49, "Ops per threads": 12093631.0, "Ops per procs": 12093631.0, "Ops/sec/procs": 403121.06, "ns per ops/procs": 2483.08}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1776660318.0, "Ops per second": 59175556.71, "ns per ops": 16.9, "Ops per threads": 888330159.0, "Ops per procs": 888330159.0, "Ops/sec/procs": 29587778.35, "ns per ops/procs": 33.8}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30034.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 23546545.0, "Ops per second": 783989.31, "ns per ops": 1275.53, "Ops per threads": 327035.0, "Ops per procs": 327035.0, "Ops/sec/procs": 10888.74, "ns per ops/procs": 91837.99}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 891236355.0, "Ops per second": 29685896.1, "ns per ops": 33.69, "Ops per threads": 891236355.0, "Ops per procs": 891236355.0, "Ops/sec/procs": 29685896.1, "ns per ops/procs": 33.69}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 238168520.0, "Ops per second": 7938950.67, "ns per ops": 126.17, "Ops per threads": 238168520.0, "Ops per procs": 238168520.0, "Ops/sec/procs": 7938950.67, "ns per ops/procs": 126.17}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 273308619.0, "Ops per second": 9110287.0, "ns per ops": 110.0, "Ops per threads": 273308619.0, "Ops per procs": 273308619.0, "Ops/sec/procs": 9110287.0, "ns per ops/procs": 110.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 323490675.0, "Ops per second": 10783022.5, "ns per ops": 92.9, "Ops per threads": 161745337.0, "Ops per procs": 161745337.0, "Ops/sec/procs": 5391511.25, "ns per ops/procs": 185.8}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30021.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41810318.0, "Ops per second": 1392690.2, "ns per ops": 718.03, "Ops per threads": 871048.0, "Ops per procs": 871048.0, "Ops/sec/procs": 29014.38, "ns per ops/procs": 34465.67}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 738357213.0, "Ops per second": 24611907.1, "ns per ops": 40.66, "Ops per threads": 30764883.0, "Ops per procs": 30764883.0, "Ops/sec/procs": 1025496.13, "ns per ops/procs": 975.84}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 891467219.0, "Ops per second": 29693523.64, "ns per ops": 33.68, "Ops per threads": 891467219.0, "Ops per procs": 891467219.0, "Ops/sec/procs": 29693523.64, "ns per ops/procs": 33.68}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6535924139.0, "Ops per second": 217698192.95, "ns per ops": 4.59, "Ops per threads": 816990517.0, "Ops per procs": 816990517.0, "Ops/sec/procs": 27212274.12, "ns per ops/procs": 36.75}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1212303508.0, "Ops per second": 40410116.0, "ns per ops": 24.0, "Ops per threads": 151537938.0, "Ops per procs": 151537938.0, "Ops/sec/procs": 5051264.0, "ns per ops/procs": 198.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16123963392.0, "Ops per second": 537416353.43, "ns per ops": 1.86, "Ops per threads": 671831808.0, "Ops per procs": 671831808.0, "Ops/sec/procs": 22392348.06, "ns per ops/procs": 44.66}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 274111231.0, "Ops per second": 9137041.0, "ns per ops": 109.0, "Ops per threads": 274111231.0, "Ops per procs": 274111231.0, "Ops/sec/procs": 9137041.0, "ns per ops/procs": 109.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 243698698.0, "Ops per second": 8123289.0, "ns per ops": 123.0, "Ops per threads": 1269264.0, "Ops per procs": 1269264.0, "Ops/sec/procs": 42308.0, "ns per ops/procs": 23712.0}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30021.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41590028.0, "Ops per second": 1385322.44, "ns per ops": 721.85, "Ops per threads": 866458.0, "Ops per procs": 866458.0, "Ops/sec/procs": 28860.88, "ns per ops/procs": 34648.97}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1311557022.0, "Ops per second": 43718567.4, "ns per ops": 22.91, "Ops per threads": 13662052.0, "Ops per procs": 13662052.0, "Ops/sec/procs": 455401.74, "ns per ops/procs": 2199.13}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 244388706.0, "Ops per second": 8146290.0, "ns per ops": 123.0, "Ops per threads": 1272857.0, "Ops per procs": 1272857.0, "Ops/sec/procs": 42428.0, "ns per ops/procs": 23645.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40662293816.0, "Ops per second": 1355191942.97, "ns per ops": 0.74, "Ops per threads": 423565560.0, "Ops per procs": 423565560.0, "Ops/sec/procs": 14116582.74, "ns per ops/procs": 70.84}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30039.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 82025063003.0, "Ops per second": 2730556097.42, "ns per ops": 0.37, "Ops per threads": 427213869.0, "Ops per procs": 427213869.0, "Ops/sec/procs": 14221646.34, "ns per ops/procs": 70.32}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 50391343.0, "Ops per second": 1679377.76, "ns per ops": 595.46, "Ops per threads": 3149458.0, "Ops per procs": 3149458.0, "Ops/sec/procs": 104961.11, "ns per ops/procs": 9527.34}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 1950177290.0, "Ops per second": 65005909.67, "ns per ops": 15.39, "Ops per threads": 13542897.0, "Ops per procs": 13542897.0, "Ops/sec/procs": 451429.93, "ns per ops/procs": 2216.19}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 41856262.0, "Ops per second": 1394855.36, "ns per ops": 716.92, "Ops per threads": 1744010.0, "Ops per procs": 1744010.0, "Ops/sec/procs": 58118.97, "ns per ops/procs": 17206.09}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6553115104.0, "Ops per second": 218270444.84, "ns per ops": 4.58, "Ops per threads": 819139388.0, "Ops per procs": 819139388.0, "Ops/sec/procs": 27283805.61, "ns per ops/procs": 36.65}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 172709755.0, "Ops per second": 5756537.11, "ns per ops": 173.72, "Ops per threads": 43177438.0, "Ops per procs": 43177438.0, "Ops/sec/procs": 1439134.28, "ns per ops/procs": 694.86}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 36598765378.0, "Ops per second": 1219807153.36, "ns per ops": 0.82, "Ops per threads": 508316185.0, "Ops per procs": 508316185.0, "Ops/sec/procs": 16941766.02, "ns per ops/procs": 59.03}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 36064065805.0, "Ops per second": 1201988042.74, "ns per ops": 0.83, "Ops per threads": 500889802.0, "Ops per procs": 500889802.0, "Ops/sec/procs": 16694278.37, "ns per ops/procs": 59.9}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 405844548.0, "Ops per second": 13528151.0, "ns per ops": 74.0, "Ops per threads": 5636729.0, "Ops per procs": 5636729.0, "Ops/sec/procs": 187890.0, "ns per ops/procs": 5339.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 237095678.0, "Ops per second": 7903189.27, "ns per ops": 126.74, "Ops per threads": 237095678.0, "Ops per procs": 237095678.0, "Ops/sec/procs": 7903189.27, "ns per ops/procs": 126.74}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 377332289.0, "Ops per second": 12577742.97, "ns per ops": 79.65, "Ops per threads": 94333072.0, "Ops per procs": 94333072.0, "Ops/sec/procs": 3144435.74, "ns per ops/procs": 318.61}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 81963368.0, "Ops per second": 2731803.55, "ns per ops": 366.06, "Ops per threads": 10245421.0, "Ops per procs": 10245421.0, "Ops/sec/procs": 341475.44, "ns per ops/procs": 2928.47}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 274226943.0, "Ops per second": 9140898.0, "ns per ops": 109.0, "Ops per threads": 274226943.0, "Ops per procs": 274226943.0, "Ops/sec/procs": 9140898.0, "ns per ops/procs": 109.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 735934385.0, "Ops per second": 24531146.17, "ns per ops": 40.79, "Ops per threads": 30663932.0, "Ops per procs": 30663932.0, "Ops/sec/procs": 1022131.09, "ns per ops/procs": 979.05}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1778046636.0, "Ops per second": 59222237.82, "ns per ops": 16.89, "Ops per threads": 889023318.0, "Ops per procs": 889023318.0, "Ops/sec/procs": 29611118.91, "ns per ops/procs": 33.77}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 705492901.0, "Ops per second": 23516430.03, "ns per ops": 42.63, "Ops per threads": 44093306.0, "Ops per procs": 44093306.0, "Ops/sec/procs": 1469776.88, "ns per ops/procs": 682.14}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2369247162.0, "Ops per second": 78974905.4, "ns per ops": 12.68, "Ops per threads": 12339828.0, "Ops per procs": 12339828.0, "Ops/sec/procs": 411327.63, "ns per ops/procs": 2434.49}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 257115322.0, "Ops per second": 8570162.33, "ns per ops": 116.68, "Ops per threads": 257115322.0, "Ops per procs": 257115322.0, "Ops/sec/procs": 8570162.33, "ns per ops/procs": 116.68}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30051.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 82873046554.0, "Ops per second": 2757686443.97, "ns per ops": 0.36, "Ops per threads": 431630450.0, "Ops per procs": 431630450.0, "Ops/sec/procs": 14362950.23, "ns per ops/procs": 69.62}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3364586288.0, "Ops per second": 112062628.38, "ns per ops": 8.92, "Ops per threads": 841146572.0, "Ops per procs": 841146572.0, "Ops/sec/procs": 28015657.09, "ns per ops/procs": 35.69}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 478815200.0, "Ops per second": 15960506.0, "ns per ops": 62.0, "Ops per threads": 6650211.0, "Ops per procs": 6650211.0, "Ops/sec/procs": 221673.0, "ns per ops/procs": 4525.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30003.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20753536441.0, "Ops per second": 691697855.12, "ns per ops": 1.45, "Ops per threads": 432365342.0, "Ops per procs": 432365342.0, "Ops/sec/procs": 14410371.98, "ns per ops/procs": 69.39}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 335968912.0, "Ops per second": 11198963.73, "ns per ops": 89.44, "Ops per threads": 167984456.0, "Ops per procs": 167984456.0, "Ops/sec/procs": 5599481.87, "ns per ops/procs": 178.89}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30033.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 23092176.0, "Ops per second": 768883.0, "ns per ops": 1300.59, "Ops per threads": 320724.0, "Ops per procs": 320724.0, "Ops/sec/procs": 10678.93, "ns per ops/procs": 93642.34}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 960812478.0, "Ops per second": 32027082.0, "ns per ops": 31.0, "Ops per threads": 240203119.0, "Ops per procs": 240203119.0, "Ops/sec/procs": 8006770.0, "ns per ops/procs": 125.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 494793419.0, "Ops per second": 16493113.0, "ns per ops": 60.0, "Ops per threads": 247396709.0, "Ops per procs": 247396709.0, "Ops/sec/procs": 8246556.0, "ns per ops/procs": 121.0}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 40951635.0, "Ops per second": 1364719.32, "ns per ops": 732.75, "Ops per threads": 1706318.0, "Ops per procs": 1706318.0, "Ops/sec/procs": 56863.3, "ns per ops/procs": 17586.03}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2447749744.0, "Ops per second": 81591658.13, "ns per ops": 12.26, "Ops per threads": 12748696.0, "Ops per procs": 12748696.0, "Ops/sec/procs": 424956.55, "ns per ops/procs": 2354.42}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 254536773.0, "Ops per second": 8484220.38, "ns per ops": 117.87, "Ops per threads": 254536773.0, "Ops per procs": 254536773.0, "Ops/sec/procs": 8484220.38, "ns per ops/procs": 117.87}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 503002458.0, "Ops per second": 16766748.0, "ns per ops": 59.0, "Ops per threads": 251501229.0, "Ops per procs": 251501229.0, "Ops/sec/procs": 8383374.0, "ns per ops/procs": 119.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30098.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 336119170.0, "Ops per second": 11203972.0, "ns per ops": 89.0, "Ops per threads": 2334160.0, "Ops per procs": 2334160.0, "Ops/sec/procs": 77805.0, "ns per ops/procs": 12894.0}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 50869827.0, "Ops per second": 1695341.3, "ns per ops": 589.85, "Ops per threads": 3179364.0, "Ops per procs": 3179364.0, "Ops/sec/procs": 105958.83, "ns per ops/procs": 9437.63}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 929695127.0, "Ops per second": 30989837.57, "ns per ops": 32.29, "Ops per threads": 12912432.0, "Ops per procs": 12912432.0, "Ops/sec/procs": 430414.41, "ns per ops/procs": 2324.94}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 167695277.0, "Ops per second": 5589364.85, "ns per ops": 178.91, "Ops per threads": 41923819.0, "Ops per procs": 41923819.0, "Ops/sec/procs": 1397341.21, "ns per ops/procs": 715.64}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 50648284.0, "Ops per second": 1687967.71, "ns per ops": 592.43, "Ops per threads": 3165517.0, "Ops per procs": 3165517.0, "Ops/sec/procs": 105497.98, "ns per ops/procs": 9478.85}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20575090198.0, "Ops per second": 685734711.01, "ns per ops": 1.46, "Ops per threads": 428647712.0, "Ops per procs": 428647712.0, "Ops/sec/procs": 14286139.81, "ns per ops/procs": 70.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 419290999.0, "Ops per second": 13976366.0, "ns per ops": 71.0, "Ops per threads": 4367614.0, "Ops per procs": 4367614.0, "Ops/sec/procs": 145587.0, "ns per ops/procs": 6891.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 401164809.0, "Ops per second": 13372160.0, "ns per ops": 75.0, "Ops per threads": 4178800.0, "Ops per procs": 4178800.0, "Ops/sec/procs": 139293.0, "ns per ops/procs": 7202.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 887600299.0, "Ops per second": 29564908.13, "ns per ops": 33.82, "Ops per threads": 887600299.0, "Ops per procs": 887600299.0, "Ops/sec/procs": 29564908.13, "ns per ops/procs": 33.82}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2444559914.0, "Ops per second": 81485330.47, "ns per ops": 12.29, "Ops per threads": 12732082.0, "Ops per procs": 12732082.0, "Ops/sec/procs": 424402.76, "ns per ops/procs": 2359.23}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1164348098.0, "Ops per second": 38811603.0, "ns per ops": 25.0, "Ops per threads": 145543512.0, "Ops per procs": 145543512.0, "Ops/sec/procs": 4851450.0, "ns per ops/procs": 206.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2472165596.0, "Ops per second": 82405519.87, "ns per ops": 12.15, "Ops per threads": 12875862.0, "Ops per procs": 12875862.0, "Ops/sec/procs": 429195.42, "ns per ops/procs": 2331.85}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 242653000.0, "Ops per second": 8088433.0, "ns per ops": 124.0, "Ops per threads": 1263817.0, "Ops per procs": 1263817.0, "Ops/sec/procs": 42127.0, "ns per ops/procs": 23815.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 693765601.0, "Ops per second": 23125520.03, "ns per ops": 43.35, "Ops per threads": 43360350.0, "Ops per procs": 43360350.0, "Ops/sec/procs": 1445345.0, "ns per ops/procs": 693.67}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 700309211.0, "Ops per second": 23343640.37, "ns per ops": 42.95, "Ops per threads": 43769325.0, "Ops per procs": 43769325.0, "Ops/sec/procs": 1458977.52, "ns per ops/procs": 687.21}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1153639106.0, "Ops per second": 38454636.87, "ns per ops": 26.05, "Ops per threads": 24034148.0, "Ops per procs": 24034148.0, "Ops/sec/procs": 801138.27, "ns per ops/procs": 1250.4}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30020.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41036132.0, "Ops per second": 1366916.53, "ns per ops": 731.57, "Ops per threads": 854919.0, "Ops per procs": 854919.0, "Ops/sec/procs": 28477.43, "ns per ops/procs": 35115.53}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6549726502.0, "Ops per second": 218159557.03, "ns per ops": 4.58, "Ops per threads": 818715812.0, "Ops per procs": 818715812.0, "Ops/sec/procs": 27269944.63, "ns per ops/procs": 36.67}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1304871853.0, "Ops per second": 43495728.43, "ns per ops": 22.99, "Ops per threads": 13592415.0, "Ops per procs": 13592415.0, "Ops/sec/procs": 453080.5, "ns per ops/procs": 2207.14}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30047.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 23686948.0, "Ops per second": 788314.75, "ns per ops": 1268.53, "Ops per threads": 246739.0, "Ops per procs": 246739.0, "Ops/sec/procs": 8211.61, "ns per ops/procs": 121778.77}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 257044465.0, "Ops per second": 8567804.83, "ns per ops": 116.72, "Ops per threads": 257044465.0, "Ops per procs": 257044465.0, "Ops/sec/procs": 8567804.83, "ns per ops/procs": 116.72}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 965034247.0, "Ops per second": 32167808.23, "ns per ops": 31.12, "Ops per threads": 13403253.0, "Ops per procs": 13403253.0, "Ops/sec/procs": 446775.11, "ns per ops/procs": 2240.31}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 238199800.0, "Ops per second": 7939993.33, "ns per ops": 126.15, "Ops per threads": 238199800.0, "Ops per procs": 238199800.0, "Ops/sec/procs": 7939993.33, "ns per ops/procs": 126.15}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 42132557.0, "Ops per second": 1404067.59, "ns per ops": 712.22, "Ops per threads": 1755523.0, "Ops per procs": 1755523.0, "Ops/sec/procs": 58502.82, "ns per ops/procs": 17093.19}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1165908437.0, "Ops per second": 38863614.0, "ns per ops": 25.0, "Ops per threads": 24289759.0, "Ops per procs": 24289759.0, "Ops/sec/procs": 809658.0, "ns per ops/procs": 1239.0}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 51491247.0, "Ops per second": 1716062.37, "ns per ops": 582.73, "Ops per threads": 3218202.0, "Ops per procs": 3218202.0, "Ops/sec/procs": 107253.9, "ns per ops/procs": 9323.67}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 82692441.0, "Ops per second": 2756078.92, "ns per ops": 362.83, "Ops per threads": 10336555.0, "Ops per procs": 10336555.0, "Ops/sec/procs": 344509.86, "ns per ops/procs": 2902.67}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30034.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 23870619.0, "Ops per second": 794761.08, "ns per ops": 1258.24, "Ops per threads": 331536.0, "Ops per procs": 331536.0, "Ops/sec/procs": 11038.35, "ns per ops/procs": 90593.26}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 233550520.0, "Ops per second": 7785017.0, "ns per ops": 128.0, "Ops per threads": 1216408.0, "Ops per procs": 1216408.0, "Ops/sec/procs": 40546.0, "ns per ops/procs": 24742.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 770751083.0, "Ops per second": 25691702.0, "ns per ops": 39.0, "Ops per threads": 16057314.0, "Ops per procs": 16057314.0, "Ops/sec/procs": 535243.0, "ns per ops/procs": 1874.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 949326496.0, "Ops per second": 31644216.0, "ns per ops": 31.0, "Ops per threads": 237331624.0, "Ops per procs": 237331624.0, "Ops/sec/procs": 7911054.0, "ns per ops/procs": 126.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16125482034.0, "Ops per second": 537465781.95, "ns per ops": 1.86, "Ops per threads": 671895084.0, "Ops per procs": 671895084.0, "Ops/sec/procs": 22394407.58, "ns per ops/procs": 44.65}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16129089459.0, "Ops per second": 537586664.1, "ns per ops": 1.86, "Ops per threads": 672045394.0, "Ops per procs": 672045394.0, "Ops/sec/procs": 22399444.34, "ns per ops/procs": 44.64}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30020.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41949190.0, "Ops per second": 1397363.36, "ns per ops": 715.63, "Ops per threads": 873941.0, "Ops per procs": 873941.0, "Ops/sec/procs": 29111.74, "ns per ops/procs": 34350.41}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30068.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 60905750190.0, "Ops per second": 2025589354.18, "ns per ops": 0.49, "Ops per threads": 422956598.0, "Ops per procs": 422956598.0, "Ops/sec/procs": 14066592.74, "ns per ops/procs": 71.09}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20524861242.0, "Ops per second": 684059410.1, "ns per ops": 1.46, "Ops per threads": 427601275.0, "Ops per procs": 427601275.0, "Ops/sec/procs": 14251237.71, "ns per ops/procs": 70.17}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 257418267.0, "Ops per second": 8580270.03, "ns per ops": 116.55, "Ops per threads": 257418267.0, "Ops per procs": 257418267.0, "Ops/sec/procs": 8580270.03, "ns per ops/procs": 116.55}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1217827675.0, "Ops per second": 40594255.0, "ns per ops": 24.0, "Ops per threads": 25371409.0, "Ops per procs": 25371409.0, "Ops/sec/procs": 845713.0, "ns per ops/procs": 1186.0}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30027.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 16274906.0, "Ops per second": 541991.01, "ns per ops": 1845.05, "Ops per threads": 84765.0, "Ops per procs": 84765.0, "Ops/sec/procs": 2822.87, "ns per ops/procs": 354249.42}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30020.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41438718.0, "Ops per second": 1380338.33, "ns per ops": 724.46, "Ops per threads": 863306.0, "Ops per procs": 863306.0, "Ops/sec/procs": 28757.05, "ns per ops/procs": 34774.08}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 333522567.0, "Ops per second": 11117418.9, "ns per ops": 90.1, "Ops per threads": 166761283.0, "Ops per procs": 166761283.0, "Ops/sec/procs": 5558709.45, "ns per ops/procs": 180.21}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16121834865.0, "Ops per second": 537345482.41, "ns per ops": 1.86, "Ops per threads": 671743119.0, "Ops per procs": 671743119.0, "Ops/sec/procs": 22389395.1, "ns per ops/procs": 44.66}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3363180156.0, "Ops per second": 112016276.5, "ns per ops": 8.93, "Ops per threads": 840795039.0, "Ops per procs": 840795039.0, "Ops/sec/procs": 28004069.13, "ns per ops/procs": 35.71}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30008.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 362578008.0, "Ops per second": 12082395.93, "ns per ops": 82.77, "Ops per threads": 181289004.0, "Ops per procs": 181289004.0, "Ops/sec/procs": 6041197.96, "ns per ops/procs": 165.53}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30004.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 35712485756.0, "Ops per second": 1190248920.91, "ns per ops": 0.84, "Ops per threads": 496006746.0, "Ops per procs": 496006746.0, "Ops/sec/procs": 16531235.01, "ns per ops/procs": 60.49}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 505015476.0, "Ops per second": 16833849.0, "ns per ops": 59.0, "Ops per threads": 252507738.0, "Ops per procs": 252507738.0, "Ops/sec/procs": 8416924.0, "ns per ops/procs": 119.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 312144947.0, "Ops per second": 10404831.0, "ns per ops": 96.0, "Ops per threads": 2167673.0, "Ops per procs": 2167673.0, "Ops/sec/procs": 72255.0, "ns per ops/procs": 13884.0}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30012.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 368676823.0, "Ops per second": 12284255.2, "ns per ops": 81.41, "Ops per threads": 184338411.0, "Ops per procs": 184338411.0, "Ops/sec/procs": 6142127.6, "ns per ops/procs": 162.81}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 256563825.0, "Ops per second": 8551789.05, "ns per ops": 116.93, "Ops per threads": 256563825.0, "Ops per procs": 256563825.0, "Ops/sec/procs": 8551789.05, "ns per ops/procs": 116.93}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 446722161.0, "Ops per second": 14890738.0, "ns per ops": 67.0, "Ops per threads": 3102237.0, "Ops per procs": 3102237.0, "Ops/sec/procs": 103407.0, "ns per ops/procs": 9701.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 60804532717.0, "Ops per second": 2026469742.87, "ns per ops": 0.49, "Ops per threads": 422253699.0, "Ops per procs": 422253699.0, "Ops/sec/procs": 14072706.55, "ns per ops/procs": 71.06}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2308509229.0, "Ops per second": 76950307.63, "ns per ops": 13.04, "Ops per threads": 12023485.0, "Ops per procs": 12023485.0, "Ops/sec/procs": 400782.85, "ns per ops/procs": 2503.42}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 41521839.0, "Ops per second": 1383705.95, "ns per ops": 722.7, "Ops per threads": 1730076.0, "Ops per procs": 1730076.0, "Ops/sec/procs": 57654.41, "ns per ops/procs": 17344.73}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 956931459.0, "Ops per second": 31897715.0, "ns per ops": 31.0, "Ops per threads": 239232864.0, "Ops per procs": 239232864.0, "Ops/sec/procs": 7974428.0, "ns per ops/procs": 125.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 700783115.0, "Ops per second": 23359437.17, "ns per ops": 42.84, "Ops per threads": 29199296.0, "Ops per procs": 29199296.0, "Ops/sec/procs": 973309.88, "ns per ops/procs": 1028.15}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1358001930.0, "Ops per second": 45266731.0, "ns per ops": 22.13, "Ops per threads": 14145853.0, "Ops per procs": 14145853.0, "Ops/sec/procs": 471528.45, "ns per ops/procs": 2124.41}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 364152363.0, "Ops per second": 12138412.0, "ns per ops": 82.0, "Ops per threads": 2528835.0, "Ops per procs": 2528835.0, "Ops/sec/procs": 84294.0, "ns per ops/procs": 11901.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3353352707.0, "Ops per second": 111778423.0, "ns per ops": 8.0, "Ops per threads": 209584544.0, "Ops per procs": 209584544.0, "Ops/sec/procs": 6986151.0, "ns per ops/procs": 143.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30004.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 62092838229.0, "Ops per second": 2069466995.4, "ns per ops": 0.48, "Ops per threads": 431200265.0, "Ops per procs": 431200265.0, "Ops/sec/procs": 14371298.58, "ns per ops/procs": 69.58}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30006.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 81200074933.0, "Ops per second": 2706062194.05, "ns per ops": 0.37, "Ops per threads": 422917056.0, "Ops per procs": 422917056.0, "Ops/sec/procs": 14094073.93, "ns per ops/procs": 70.95}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 698917861.0, "Ops per second": 23297262.03, "ns per ops": 43.04, "Ops per threads": 43682366.0, "Ops per procs": 43682366.0, "Ops/sec/procs": 1456078.88, "ns per ops/procs": 688.57}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 329706297.0, "Ops per second": 10990209.0, "ns per ops": 91.0, "Ops per threads": 2289627.0, "Ops per procs": 2289627.0, "Ops/sec/procs": 76320.0, "ns per ops/procs": 13145.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 36351777409.0, "Ops per second": 1211569108.97, "ns per ops": 0.83, "Ops per threads": 504885797.0, "Ops per procs": 504885797.0, "Ops/sec/procs": 16827348.74, "ns per ops/procs": 59.43}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 1863902454.0, "Ops per second": 62130081.8, "ns per ops": 16.1, "Ops per threads": 12943767.0, "Ops per procs": 12943767.0, "Ops/sec/procs": 431458.9, "ns per ops/procs": 2318.47}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30021.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41128250.0, "Ops per second": 1369939.44, "ns per ops": 729.96, "Ops per threads": 856838.0, "Ops per procs": 856838.0, "Ops/sec/procs": 28540.4, "ns per ops/procs": 35038.05}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1160409379.0, "Ops per second": 38680312.63, "ns per ops": 25.9, "Ops per threads": 24175195.0, "Ops per procs": 24175195.0, "Ops/sec/procs": 805839.85, "ns per ops/procs": 1243.09}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6548506400.0, "Ops per second": 218117920.07, "ns per ops": 4.58, "Ops per threads": 818563300.0, "Ops per procs": 818563300.0, "Ops/sec/procs": 27264740.01, "ns per ops/procs": 36.68}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30008.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 359153452.0, "Ops per second": 11968537.15, "ns per ops": 83.55, "Ops per threads": 179576726.0, "Ops per procs": 179576726.0, "Ops/sec/procs": 5984268.57, "ns per ops/procs": 167.1}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30037.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 21928745.0, "Ops per second": 730044.26, "ns per ops": 1369.78, "Ops per threads": 304565.0, "Ops per procs": 304565.0, "Ops/sec/procs": 10139.5, "ns per ops/procs": 98624.16}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16132875565.0, "Ops per second": 537711775.3, "ns per ops": 1.86, "Ops per threads": 672203148.0, "Ops per procs": 672203148.0, "Ops/sec/procs": 22404657.3, "ns per ops/procs": 44.63}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30028.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 35576856468.0, "Ops per second": 1184750774.79, "ns per ops": 0.84, "Ops per threads": 494123006.0, "Ops per procs": 494123006.0, "Ops/sec/procs": 16454871.87, "ns per ops/procs": 60.77}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30026.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 16706652.0, "Ops per second": 556394.7, "ns per ops": 1797.29, "Ops per threads": 87013.0, "Ops per procs": 87013.0, "Ops/sec/procs": 2897.89, "ns per ops/procs": 345078.77}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1366701155.0, "Ops per second": 45556705.17, "ns per ops": 21.95, "Ops per threads": 14236470.0, "Ops per procs": 14236470.0, "Ops/sec/procs": 474549.01, "ns per ops/procs": 2107.38}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 953111551.0, "Ops per second": 31770385.0, "ns per ops": 31.0, "Ops per threads": 238277887.0, "Ops per procs": 238277887.0, "Ops/sec/procs": 7942596.0, "ns per ops/procs": 126.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6544217566.0, "Ops per second": 217975526.07, "ns per ops": 4.59, "Ops per threads": 818027195.0, "Ops per procs": 818027195.0, "Ops/sec/procs": 27246940.76, "ns per ops/procs": 36.7}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3361815801.0, "Ops per second": 111970800.61, "ns per ops": 8.93, "Ops per threads": 840453950.0, "Ops per procs": 840453950.0, "Ops/sec/procs": 27992700.15, "ns per ops/procs": 35.72}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1159015029.0, "Ops per second": 38633834.0, "ns per ops": 25.0, "Ops per threads": 144876878.0, "Ops per procs": 144876878.0, "Ops/sec/procs": 4829229.0, "ns per ops/procs": 207.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40526868169.0, "Ops per second": 1350676682.6, "ns per ops": 0.74, "Ops per threads": 422154876.0, "Ops per procs": 422154876.0, "Ops/sec/procs": 14069548.78, "ns per ops/procs": 71.08}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 384696066.0, "Ops per second": 12823202.0, "ns per ops": 78.0, "Ops per threads": 4007250.0, "Ops per procs": 4007250.0, "Ops/sec/procs": 133575.0, "ns per ops/procs": 7510.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 237080549.0, "Ops per second": 7902684.97, "ns per ops": 126.75, "Ops per threads": 237080549.0, "Ops per procs": 237080549.0, "Ops/sec/procs": 7902684.97, "ns per ops/procs": 126.75}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3359880470.0, "Ops per second": 111905895.32, "ns per ops": 8.94, "Ops per threads": 839970117.0, "Ops per procs": 839970117.0, "Ops/sec/procs": 27976473.83, "ns per ops/procs": 35.74}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30098.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 507364277.0, "Ops per second": 16912142.0, "ns per ops": 59.0, "Ops per threads": 253682138.0, "Ops per procs": 253682138.0, "Ops/sec/procs": 8456071.0, "ns per ops/procs": 118.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3482154065.0, "Ops per second": 116071802.0, "ns per ops": 8.0, "Ops per threads": 217634629.0, "Ops per procs": 217634629.0, "Ops/sec/procs": 7254487.0, "ns per ops/procs": 138.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30098.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 501896899.0, "Ops per second": 16729896.0, "ns per ops": 59.0, "Ops per threads": 250948449.0, "Ops per procs": 250948449.0, "Ops/sec/procs": 8364948.0, "ns per ops/procs": 119.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 891401856.0, "Ops per second": 29691317.68, "ns per ops": 33.68, "Ops per threads": 891401856.0, "Ops per procs": 891401856.0, "Ops/sec/procs": 29691317.68, "ns per ops/procs": 33.68}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 963700255.0, "Ops per second": 32123341.0, "ns per ops": 31.0, "Ops per threads": 240925063.0, "Ops per procs": 240925063.0, "Ops/sec/procs": 8030835.0, "ns per ops/procs": 124.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1142283678.0, "Ops per second": 38076122.6, "ns per ops": 26.3, "Ops per threads": 23797576.0, "Ops per procs": 23797576.0, "Ops/sec/procs": 793252.55, "ns per ops/procs": 1262.43}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30023.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6548101533.0, "Ops per second": 218098917.49, "ns per ops": 4.59, "Ops per threads": 818512691.0, "Ops per procs": 818512691.0, "Ops/sec/procs": 27262364.69, "ns per ops/procs": 36.68}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20523803844.0, "Ops per second": 684023298.63, "ns per ops": 1.46, "Ops per threads": 427579246.0, "Ops per procs": 427579246.0, "Ops/sec/procs": 14250485.39, "ns per ops/procs": 70.17}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40304128035.0, "Ops per second": 1343270023.26, "ns per ops": 0.74, "Ops per threads": 419834667.0, "Ops per procs": 419834667.0, "Ops/sec/procs": 13992396.08, "ns per ops/procs": 71.47}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1132111010.0, "Ops per second": 37737033.0, "ns per ops": 26.0, "Ops per threads": 141513876.0, "Ops per procs": 141513876.0, "Ops/sec/procs": 4717129.0, "ns per ops/procs": 212.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 80922991380.0, "Ops per second": 2696976160.26, "ns per ops": 0.37, "Ops per threads": 421473913.0, "Ops per procs": 421473913.0, "Ops/sec/procs": 14046750.83, "ns per ops/procs": 71.19}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 734650729.0, "Ops per second": 24488357.63, "ns per ops": 40.86, "Ops per threads": 30610447.0, "Ops per procs": 30610447.0, "Ops/sec/procs": 1020348.23, "ns per ops/procs": 980.74}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30004.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 62334983274.0, "Ops per second": 2077499018.1, "ns per ops": 0.48, "Ops per threads": 432881828.0, "Ops per procs": 432881828.0, "Ops/sec/procs": 14427076.51, "ns per ops/procs": 69.31}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 503700806.0, "Ops per second": 16790026.0, "ns per ops": 59.0, "Ops per threads": 251850403.0, "Ops per procs": 251850403.0, "Ops/sec/procs": 8395013.0, "ns per ops/procs": 119.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1226221846.0, "Ops per second": 40874061.0, "ns per ops": 24.0, "Ops per threads": 25546288.0, "Ops per procs": 25546288.0, "Ops/sec/procs": 851542.0, "ns per ops/procs": 1178.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 378336887.0, "Ops per second": 12611229.57, "ns per ops": 79.44, "Ops per threads": 94584221.0, "Ops per procs": 94584221.0, "Ops/sec/procs": 3152807.39, "ns per ops/procs": 317.74}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30056.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 21286222.0, "Ops per second": 708217.45, "ns per ops": 1412.0, "Ops per threads": 221731.0, "Ops per procs": 221731.0, "Ops/sec/procs": 7377.27, "ns per ops/procs": 135551.59}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3363860316.0, "Ops per second": 112038521.53, "ns per ops": 8.93, "Ops per threads": 840965079.0, "Ops per procs": 840965079.0, "Ops/sec/procs": 28009630.38, "ns per ops/procs": 35.7}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 273854923.0, "Ops per second": 9128497.0, "ns per ops": 109.0, "Ops per threads": 273854923.0, "Ops per procs": 273854923.0, "Ops/sec/procs": 9128497.0, "ns per ops/procs": 109.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1282470798.0, "Ops per second": 42749026.6, "ns per ops": 23.45, "Ops per threads": 13359070.0, "Ops per procs": 13359070.0, "Ops/sec/procs": 445302.36, "ns per ops/procs": 2250.89}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1137060418.0, "Ops per second": 37902013.0, "ns per ops": 26.0, "Ops per threads": 142132552.0, "Ops per procs": 142132552.0, "Ops/sec/procs": 4737751.0, "ns per ops/procs": 211.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 530568869.0, "Ops per second": 17685628.97, "ns per ops": 56.66, "Ops per threads": 66321108.0, "Ops per procs": 66321108.0, "Ops/sec/procs": 2210703.62, "ns per ops/procs": 453.26}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 326655188.0, "Ops per second": 10888506.27, "ns per ops": 92.0, "Ops per threads": 163327594.0, "Ops per procs": 163327594.0, "Ops/sec/procs": 5444253.13, "ns per ops/procs": 183.99}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1175532140.0, "Ops per second": 39184404.0, "ns per ops": 25.0, "Ops per threads": 146941517.0, "Ops per procs": 146941517.0, "Ops/sec/procs": 4898050.0, "ns per ops/procs": 204.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 955851501.0, "Ops per second": 31861716.0, "ns per ops": 31.0, "Ops per threads": 238962875.0, "Ops per procs": 238962875.0, "Ops/sec/procs": 7965429.0, "ns per ops/procs": 125.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 238834366.0, "Ops per second": 7961145.0, "ns per ops": 126.0, "Ops per threads": 1243928.0, "Ops per procs": 1243928.0, "Ops/sec/procs": 41464.0, "ns per ops/procs": 24195.0}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 80386295.0, "Ops per second": 2679232.73, "ns per ops": 373.24, "Ops per threads": 10048286.0, "Ops per procs": 10048286.0, "Ops/sec/procs": 334904.09, "ns per ops/procs": 2985.93}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2418744593.0, "Ops per second": 80624819.77, "ns per ops": 12.44, "Ops per threads": 12597628.0, "Ops per procs": 12597628.0, "Ops/sec/procs": 419920.94, "ns per ops/procs": 2388.95}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1164582962.0, "Ops per second": 38819432.07, "ns per ops": 25.81, "Ops per threads": 24262145.0, "Ops per procs": 24262145.0, "Ops/sec/procs": 808738.17, "ns per ops/procs": 1239.06}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1316171007.0, "Ops per second": 43872366.9, "ns per ops": 22.83, "Ops per threads": 13710114.0, "Ops per procs": 13710114.0, "Ops/sec/procs": 457003.82, "ns per ops/procs": 2191.77}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30026.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 15557318.0, "Ops per second": 518116.7, "ns per ops": 1930.07, "Ops per threads": 81027.0, "Ops per procs": 81027.0, "Ops/sec/procs": 2698.52, "ns per ops/procs": 370572.88}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 949722698.0, "Ops per second": 31657423.27, "ns per ops": 31.61, "Ops per threads": 13190593.0, "Ops per procs": 13190593.0, "Ops/sec/procs": 439686.43, "ns per ops/procs": 2275.64}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30046.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 23467027.0, "Ops per second": 781032.95, "ns per ops": 1280.36, "Ops per threads": 244448.0, "Ops per procs": 244448.0, "Ops/sec/procs": 8135.76, "ns per ops/procs": 122914.15}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 502342197.0, "Ops per second": 16744739.0, "ns per ops": 59.0, "Ops per threads": 251171098.0, "Ops per procs": 251171098.0, "Ops/sec/procs": 8372369.0, "ns per ops/procs": 119.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1171331506.0, "Ops per second": 39044383.53, "ns per ops": 25.66, "Ops per threads": 24402739.0, "Ops per procs": 24402739.0, "Ops/sec/procs": 813424.66, "ns per ops/procs": 1231.45}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30070.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 19037717.0, "Ops per second": 633105.88, "ns per ops": 1579.51, "Ops per threads": 132206.0, "Ops per procs": 132206.0, "Ops/sec/procs": 4396.57, "ns per ops/procs": 227450.11}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 503884590.0, "Ops per second": 16796153.0, "ns per ops": 59.0, "Ops per threads": 251942295.0, "Ops per procs": 251942295.0, "Ops/sec/procs": 8398076.0, "ns per ops/procs": 119.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 82705773932.0, "Ops per second": 2756383947.93, "ns per ops": 0.36, "Ops per threads": 430759239.0, "Ops per procs": 430759239.0, "Ops/sec/procs": 14356166.4, "ns per ops/procs": 69.66}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 382424356.0, "Ops per second": 12747478.53, "ns per ops": 78.59, "Ops per threads": 95606089.0, "Ops per procs": 95606089.0, "Ops/sec/procs": 3186869.63, "ns per ops/procs": 314.37}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1774269050.0, "Ops per second": 59096210.11, "ns per ops": 16.92, "Ops per threads": 887134525.0, "Ops per procs": 887134525.0, "Ops/sec/procs": 29548105.05, "ns per ops/procs": 33.84}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3808919653.0, "Ops per second": 126963988.0, "ns per ops": 7.0, "Ops per threads": 158704985.0, "Ops per procs": 158704985.0, "Ops/sec/procs": 5290166.0, "ns per ops/procs": 189.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1370954985.0, "Ops per second": 45698499.5, "ns per ops": 21.92, "Ops per threads": 14280781.0, "Ops per procs": 14280781.0, "Ops/sec/procs": 476026.04, "ns per ops/procs": 2104.32}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30035.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 15950474.0, "Ops per second": 531058.37, "ns per ops": 1883.03, "Ops per threads": 83075.0, "Ops per procs": 83075.0, "Ops/sec/procs": 2765.93, "ns per ops/procs": 361542.18}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30006.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 36254488447.0, "Ops per second": 1208218075.42, "ns per ops": 0.83, "Ops per threads": 503534561.0, "Ops per procs": 503534561.0, "Ops/sec/procs": 16780806.6, "ns per ops/procs": 59.59}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3437633131.0, "Ops per second": 114587771.0, "ns per ops": 8.0, "Ops per threads": 214852070.0, "Ops per procs": 214852070.0, "Ops/sec/procs": 7161735.0, "ns per ops/procs": 140.0}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 81885149.0, "Ops per second": 2729200.52, "ns per ops": 366.41, "Ops per threads": 10235643.0, "Ops per procs": 10235643.0, "Ops/sec/procs": 341150.06, "ns per ops/procs": 2931.26}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1777536066.0, "Ops per second": 59204924.96, "ns per ops": 16.89, "Ops per threads": 888768033.0, "Ops per procs": 888768033.0, "Ops/sec/procs": 29602462.48, "ns per ops/procs": 33.78}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 81456622.0, "Ops per second": 2714901.28, "ns per ops": 368.34, "Ops per threads": 10182077.0, "Ops per procs": 10182077.0, "Ops/sec/procs": 339362.66, "ns per ops/procs": 2946.7}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 80922442.0, "Ops per second": 2697105.32, "ns per ops": 370.77, "Ops per threads": 10115305.0, "Ops per procs": 10115305.0, "Ops/sec/procs": 337138.17, "ns per ops/procs": 2966.14}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 330239971.0, "Ops per second": 11007999.03, "ns per ops": 91.0, "Ops per threads": 165119985.0, "Ops per procs": 165119985.0, "Ops/sec/procs": 5503999.52, "ns per ops/procs": 182.0}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 42360808.0, "Ops per second": 1411686.2, "ns per ops": 708.37, "Ops per threads": 1765033.0, "Ops per procs": 1765033.0, "Ops/sec/procs": 58820.26, "ns per ops/procs": 17000.95}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 726435101.0, "Ops per second": 24214503.37, "ns per ops": 41.33, "Ops per threads": 30268129.0, "Ops per procs": 30268129.0, "Ops/sec/procs": 1008937.64, "ns per ops/procs": 991.8}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20435343445.0, "Ops per second": 681074958.49, "ns per ops": 1.47, "Ops per threads": 425736321.0, "Ops per procs": 425736321.0, "Ops/sec/procs": 14189061.64, "ns per ops/procs": 70.48}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30049.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 23441495.0, "Ops per second": 780089.75, "ns per ops": 1281.9, "Ops per threads": 244182.0, "Ops per procs": 244182.0, "Ops/sec/procs": 8125.93, "ns per ops/procs": 123062.76}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 50425264.0, "Ops per second": 1680528.72, "ns per ops": 595.05, "Ops per threads": 3151579.0, "Ops per procs": 3151579.0, "Ops/sec/procs": 105033.05, "ns per ops/procs": 9520.81}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 956675341.0, "Ops per second": 31889178.0, "ns per ops": 31.0, "Ops per threads": 239168835.0, "Ops per procs": 239168835.0, "Ops/sec/procs": 7972294.0, "ns per ops/procs": 125.0}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 246407455.0, "Ops per second": 8213240.97, "ns per ops": 121.75, "Ops per threads": 246407455.0, "Ops per procs": 246407455.0, "Ops/sec/procs": 8213240.97, "ns per ops/procs": 121.75}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 703303357.0, "Ops per second": 23443445.23, "ns per ops": 42.77, "Ops per threads": 43956459.0, "Ops per procs": 43956459.0, "Ops/sec/procs": 1465215.33, "ns per ops/procs": 684.24}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1386631804.0, "Ops per second": 46221060.13, "ns per ops": 21.67, "Ops per threads": 14444081.0, "Ops per procs": 14444081.0, "Ops/sec/procs": 481469.38, "ns per ops/procs": 2080.54}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30075.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 18612214.0, "Ops per second": 618856.49, "ns per ops": 1615.88, "Ops per threads": 129251.0, "Ops per procs": 129251.0, "Ops/sec/procs": 4297.61, "ns per ops/procs": 232687.23}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 376796011.0, "Ops per second": 12559867.03, "ns per ops": 79.76, "Ops per threads": 94199002.0, "Ops per procs": 94199002.0, "Ops/sec/procs": 3139966.76, "ns per ops/procs": 319.05}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2215871406.0, "Ops per second": 73862380.2, "ns per ops": 13.54, "Ops per threads": 11540996.0, "Ops per procs": 11540996.0, "Ops/sec/procs": 384699.9, "ns per ops/procs": 2600.61}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30098.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 346938793.0, "Ops per second": 11564626.0, "ns per ops": 86.0, "Ops per threads": 2409297.0, "Ops per procs": 2409297.0, "Ops/sec/procs": 80309.0, "ns per ops/procs": 12492.0}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 49611498.0, "Ops per second": 1653390.09, "ns per ops": 604.82, "Ops per threads": 3100718.0, "Ops per procs": 3100718.0, "Ops/sec/procs": 103336.88, "ns per ops/procs": 9677.09}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 173991025.0, "Ops per second": 5799241.73, "ns per ops": 172.44, "Ops per threads": 43497756.0, "Ops per procs": 43497756.0, "Ops/sec/procs": 1449810.43, "ns per ops/procs": 689.75}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 702211795.0, "Ops per second": 23407059.83, "ns per ops": 42.83, "Ops per threads": 43888237.0, "Ops per procs": 43888237.0, "Ops/sec/procs": 1462941.24, "ns per ops/procs": 685.31}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 325031003.0, "Ops per second": 10834366.77, "ns per ops": 92.46, "Ops per threads": 162515501.0, "Ops per procs": 162515501.0, "Ops/sec/procs": 5417183.38, "ns per ops/procs": 184.92}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1161883016.0, "Ops per second": 38729433.87, "ns per ops": 25.86, "Ops per threads": 24205896.0, "Ops per procs": 24205896.0, "Ops/sec/procs": 806863.21, "ns per ops/procs": 1241.48}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 936052697.0, "Ops per second": 31201756.57, "ns per ops": 32.08, "Ops per threads": 13000731.0, "Ops per procs": 13000731.0, "Ops/sec/procs": 433357.73, "ns per ops/procs": 2309.4}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2413101733.0, "Ops per second": 80436724.43, "ns per ops": 12.45, "Ops per threads": 12568238.0, "Ops per procs": 12568238.0, "Ops/sec/procs": 418941.27, "ns per ops/procs": 2390.75}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20603097241.0, "Ops per second": 686669407.51, "ns per ops": 1.46, "Ops per threads": 429231192.0, "Ops per procs": 429231192.0, "Ops/sec/procs": 14305612.66, "ns per ops/procs": 69.9}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 2006973583.0, "Ops per second": 66899119.43, "ns per ops": 14.97, "Ops per threads": 13937316.0, "Ops per procs": 13937316.0, "Ops/sec/procs": 464577.22, "ns per ops/procs": 2156.13}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 60826178045.0, "Ops per second": 2027193281.28, "ns per ops": 0.49, "Ops per threads": 422404014.0, "Ops per procs": 422404014.0, "Ops/sec/procs": 14077731.12, "ns per ops/procs": 71.03}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 672455485.0, "Ops per second": 22415182.83, "ns per ops": 44.73, "Ops per threads": 42028467.0, "Ops per procs": 42028467.0, "Ops/sec/procs": 1400948.93, "ns per ops/procs": 715.66}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 380749870.0, "Ops per second": 12691662.0, "ns per ops": 79.0, "Ops per threads": 3966144.0, "Ops per procs": 3966144.0, "Ops/sec/procs": 132204.0, "ns per ops/procs": 7588.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 501706079.0, "Ops per second": 16723535.0, "ns per ops": 59.0, "Ops per threads": 250853039.0, "Ops per procs": 250853039.0, "Ops/sec/procs": 8361767.0, "ns per ops/procs": 119.0}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30084.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 18660871.0, "Ops per second": 620277.51, "ns per ops": 1612.18, "Ops per threads": 129589.0, "Ops per procs": 129589.0, "Ops/sec/procs": 4307.48, "ns per ops/procs": 232154.15}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 382664257.0, "Ops per second": 12755475.23, "ns per ops": 78.54, "Ops per threads": 95666064.0, "Ops per procs": 95666064.0, "Ops/sec/procs": 3188868.81, "ns per ops/procs": 314.17}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 254494409.0, "Ops per second": 8482801.12, "ns per ops": 117.89, "Ops per threads": 254494409.0, "Ops per procs": 254494409.0, "Ops/sec/procs": 8482801.12, "ns per ops/procs": 117.89}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30036.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 22723307.0, "Ops per second": 756533.28, "ns per ops": 1321.82, "Ops per threads": 315601.0, "Ops per procs": 315601.0, "Ops/sec/procs": 10507.41, "ns per ops/procs": 95170.96}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 401945436.0, "Ops per second": 13398181.0, "ns per ops": 74.0, "Ops per threads": 4186931.0, "Ops per procs": 4186931.0, "Ops/sec/procs": 139564.0, "ns per ops/procs": 7188.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 887394383.0, "Ops per second": 29557843.22, "ns per ops": 33.83, "Ops per threads": 887394383.0, "Ops per procs": 887394383.0, "Ops/sec/procs": 29557843.22, "ns per ops/procs": 33.83}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 689711535.0, "Ops per second": 22990384.5, "ns per ops": 43.61, "Ops per threads": 43106970.0, "Ops per procs": 43106970.0, "Ops/sec/procs": 1436899.03, "ns per ops/procs": 697.71}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 531772924.0, "Ops per second": 17725764.13, "ns per ops": 56.53, "Ops per threads": 66471615.0, "Ops per procs": 66471615.0, "Ops/sec/procs": 2215720.52, "ns per ops/procs": 452.25}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30021.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41380083.0, "Ops per second": 1378351.09, "ns per ops": 725.5, "Ops per threads": 862085.0, "Ops per procs": 862085.0, "Ops/sec/procs": 28715.65, "ns per ops/procs": 34824.22}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2413888038.0, "Ops per second": 80462934.6, "ns per ops": 12.46, "Ops per threads": 12572333.0, "Ops per procs": 12572333.0, "Ops/sec/procs": 419077.78, "ns per ops/procs": 2393.09}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 890899234.0, "Ops per second": 29674609.02, "ns per ops": 33.7, "Ops per threads": 890899234.0, "Ops per procs": 890899234.0, "Ops/sec/procs": 29674609.02, "ns per ops/procs": 33.7}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30034.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 22807884.0, "Ops per second": 759395.34, "ns per ops": 1316.84, "Ops per threads": 316776.0, "Ops per procs": 316776.0, "Ops/sec/procs": 10547.16, "ns per ops/procs": 94812.27}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 238363211.0, "Ops per second": 7945440.37, "ns per ops": 126.05, "Ops per threads": 238363211.0, "Ops per procs": 238363211.0, "Ops/sec/procs": 7945440.37, "ns per ops/procs": 126.05}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1203744303.0, "Ops per second": 40124810.0, "ns per ops": 25.0, "Ops per threads": 150468037.0, "Ops per procs": 150468037.0, "Ops/sec/procs": 5015601.0, "ns per ops/procs": 200.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 739910348.0, "Ops per second": 24663678.27, "ns per ops": 40.57, "Ops per threads": 30829597.0, "Ops per procs": 30829597.0, "Ops/sec/procs": 1027653.26, "ns per ops/procs": 973.78}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12304900422.0, "Ops per second": 409800280.92, "ns per ops": 2.44, "Ops per threads": 769056276.0, "Ops per procs": 769056276.0, "Ops/sec/procs": 25612517.56, "ns per ops/procs": 39.04}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 738187159.0, "Ops per second": 24606238.63, "ns per ops": 40.67, "Ops per threads": 30757798.0, "Ops per procs": 30757798.0, "Ops/sec/procs": 1025259.94, "ns per ops/procs": 976.04}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 886506146.0, "Ops per second": 29550204.87, "ns per ops": 33.94, "Ops per threads": 12312585.0, "Ops per procs": 12312585.0, "Ops/sec/procs": 410419.51, "ns per ops/procs": 2443.35}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 330092202.0, "Ops per second": 11003073.4, "ns per ops": 91.04, "Ops per threads": 165046101.0, "Ops per procs": 165046101.0, "Ops/sec/procs": 5501536.7, "ns per ops/procs": 182.08}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3360950559.0, "Ops per second": 111941499.31, "ns per ops": 8.93, "Ops per threads": 840237639.0, "Ops per procs": 840237639.0, "Ops/sec/procs": 27985374.83, "ns per ops/procs": 35.73}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3427984171.0, "Ops per second": 114266139.0, "ns per ops": 8.0, "Ops per threads": 214249010.0, "Ops per procs": 214249010.0, "Ops/sec/procs": 7141633.0, "ns per ops/procs": 140.0}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30020.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41363722.0, "Ops per second": 1377829.9, "ns per ops": 725.78, "Ops per threads": 861744.0, "Ops per procs": 861744.0, "Ops/sec/procs": 28704.79, "ns per ops/procs": 34837.39}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 961838983.0, "Ops per second": 32061299.0, "ns per ops": 31.0, "Ops per threads": 240459745.0, "Ops per procs": 240459745.0, "Ops/sec/procs": 8015324.0, "ns per ops/procs": 125.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 396457961.0, "Ops per second": 13215265.0, "ns per ops": 75.0, "Ops per threads": 5506360.0, "Ops per procs": 5506360.0, "Ops/sec/procs": 183545.0, "ns per ops/procs": 5466.0}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 81871155.0, "Ops per second": 2728727.51, "ns per ops": 366.47, "Ops per threads": 10233894.0, "Ops per procs": 10233894.0, "Ops/sec/procs": 341090.94, "ns per ops/procs": 2931.77}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 174483274.0, "Ops per second": 5815634.68, "ns per ops": 171.95, "Ops per threads": 43620818.0, "Ops per procs": 43620818.0, "Ops/sec/procs": 1453908.67, "ns per ops/procs": 687.8}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30086.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 18328820.0, "Ops per second": 609202.5, "ns per ops": 1641.49, "Ops per threads": 127283.0, "Ops per procs": 127283.0, "Ops/sec/procs": 4230.57, "ns per ops/procs": 236374.6}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30010.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 378740247.0, "Ops per second": 12620437.32, "ns per ops": 79.24, "Ops per threads": 189370123.0, "Ops per procs": 189370123.0, "Ops/sec/procs": 6310218.66, "ns per ops/procs": 158.47}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 736910864.0, "Ops per second": 24563695.47, "ns per ops": 40.74, "Ops per threads": 30704619.0, "Ops per procs": 30704619.0, "Ops/sec/procs": 1023487.31, "ns per ops/procs": 977.75}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30078.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 18368051.0, "Ops per second": 610676.84, "ns per ops": 1637.53, "Ops per threads": 127555.0, "Ops per procs": 127555.0, "Ops/sec/procs": 4240.81, "ns per ops/procs": 235803.93}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 274167236.0, "Ops per second": 9138907.0, "ns per ops": 109.0, "Ops per threads": 274167236.0, "Ops per procs": 274167236.0, "Ops/sec/procs": 9138907.0, "ns per ops/procs": 109.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12303388003.0, "Ops per second": 409749540.96, "ns per ops": 2.44, "Ops per threads": 768961750.0, "Ops per procs": 768961750.0, "Ops/sec/procs": 25609346.31, "ns per ops/procs": 39.05}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 384419062.0, "Ops per second": 12813968.73, "ns per ops": 78.18, "Ops per threads": 96104765.0, "Ops per procs": 96104765.0, "Ops/sec/procs": 3203492.18, "ns per ops/procs": 312.71}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30012.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 374120069.0, "Ops per second": 12465499.4, "ns per ops": 80.22, "Ops per threads": 187060034.0, "Ops per procs": 187060034.0, "Ops/sec/procs": 6232749.7, "ns per ops/procs": 160.44}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 698535511.0, "Ops per second": 23284517.03, "ns per ops": 43.06, "Ops per threads": 43658469.0, "Ops per procs": 43658469.0, "Ops/sec/procs": 1455282.31, "ns per ops/procs": 688.9}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20559185447.0, "Ops per second": 685206207.77, "ns per ops": 1.46, "Ops per threads": 428316363.0, "Ops per procs": 428316363.0, "Ops/sec/procs": 14275129.33, "ns per ops/procs": 70.05}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 325978966.0, "Ops per second": 10865965.53, "ns per ops": 92.19, "Ops per threads": 162989483.0, "Ops per procs": 162989483.0, "Ops/sec/procs": 5432982.77, "ns per ops/procs": 184.37}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30028.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 15641578.0, "Ops per second": 520891.58, "ns per ops": 1919.79, "Ops per threads": 81466.0, "Ops per procs": 81466.0, "Ops/sec/procs": 2712.98, "ns per ops/procs": 368598.78}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3403721538.0, "Ops per second": 113457384.0, "ns per ops": 8.0, "Ops per threads": 212732596.0, "Ops per procs": 212732596.0, "Ops/sec/procs": 7091086.0, "ns per ops/procs": 141.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 60344930574.0, "Ops per second": 2011138742.72, "ns per ops": 0.5, "Ops per threads": 419062017.0, "Ops per procs": 419062017.0, "Ops/sec/procs": 13966241.27, "ns per ops/procs": 71.6}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30004.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 60495926986.0, "Ops per second": 2016239964.57, "ns per ops": 0.5, "Ops per threads": 420110604.0, "Ops per procs": 420110604.0, "Ops/sec/procs": 14001666.42, "ns per ops/procs": 71.42}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3365744385.0, "Ops per second": 112101597.59, "ns per ops": 8.92, "Ops per threads": 841436096.0, "Ops per procs": 841436096.0, "Ops/sec/procs": 28025399.4, "ns per ops/procs": 35.68}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 697027879.0, "Ops per second": 23234262.63, "ns per ops": 43.15, "Ops per threads": 43564242.0, "Ops per procs": 43564242.0, "Ops/sec/procs": 1452141.41, "ns per ops/procs": 690.41}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30008.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 367234658.0, "Ops per second": 12237506.11, "ns per ops": 81.72, "Ops per threads": 183617329.0, "Ops per procs": 183617329.0, "Ops/sec/procs": 6118753.06, "ns per ops/procs": 163.43}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40609908938.0, "Ops per second": 1353446043.43, "ns per ops": 0.74, "Ops per threads": 423019884.0, "Ops per procs": 423019884.0, "Ops/sec/procs": 14098396.29, "ns per ops/procs": 70.93}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 889556517.0, "Ops per second": 29629780.27, "ns per ops": 33.75, "Ops per threads": 889556517.0, "Ops per procs": 889556517.0, "Ops/sec/procs": 29629780.27, "ns per ops/procs": 33.75}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 889887164.0, "Ops per second": 29640739.36, "ns per ops": 33.74, "Ops per threads": 889887164.0, "Ops per procs": 889887164.0, "Ops/sec/procs": 29640739.36, "ns per ops/procs": 33.74}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3422244889.0, "Ops per second": 114074829.0, "ns per ops": 8.0, "Ops per threads": 213890305.0, "Ops per procs": 213890305.0, "Ops/sec/procs": 7129676.0, "ns per ops/procs": 140.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12301427091.0, "Ops per second": 409683414.62, "ns per ops": 2.44, "Ops per threads": 768839193.0, "Ops per procs": 768839193.0, "Ops/sec/procs": 25605213.41, "ns per ops/procs": 39.05}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1172134800.0, "Ops per second": 39071160.0, "ns per ops": 25.0, "Ops per threads": 146516850.0, "Ops per procs": 146516850.0, "Ops/sec/procs": 4883895.0, "ns per ops/procs": 205.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16127425693.0, "Ops per second": 537535476.27, "ns per ops": 1.86, "Ops per threads": 671976070.0, "Ops per procs": 671976070.0, "Ops/sec/procs": 22397311.51, "ns per ops/procs": 44.65}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 657632371.0, "Ops per second": 21921079.03, "ns per ops": 45.74, "Ops per threads": 41102023.0, "Ops per procs": 41102023.0, "Ops/sec/procs": 1370067.44, "ns per ops/procs": 731.78}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 387702267.0, "Ops per second": 12923408.0, "ns per ops": 77.0, "Ops per threads": 4038565.0, "Ops per procs": 4038565.0, "Ops/sec/procs": 134618.0, "ns per ops/procs": 7452.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 330257453.0, "Ops per second": 11008581.77, "ns per ops": 91.0, "Ops per threads": 165128726.0, "Ops per procs": 165128726.0, "Ops/sec/procs": 5504290.88, "ns per ops/procs": 181.99}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 318940675.0, "Ops per second": 10631355.0, "ns per ops": 94.0, "Ops per threads": 2214865.0, "Ops per procs": 2214865.0, "Ops/sec/procs": 73828.0, "ns per ops/procs": 13588.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1174698380.0, "Ops per second": 39156612.67, "ns per ops": 25.61, "Ops per threads": 24472882.0, "Ops per procs": 24472882.0, "Ops/sec/procs": 815762.76, "ns per ops/procs": 1229.15}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 42292996.0, "Ops per second": 1409426.51, "ns per ops": 709.51, "Ops per threads": 1762208.0, "Ops per procs": 1762208.0, "Ops/sec/procs": 58726.1, "ns per ops/procs": 17028.2}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 936977216.0, "Ops per second": 31232573.87, "ns per ops": 32.04, "Ops per threads": 13013572.0, "Ops per procs": 13013572.0, "Ops/sec/procs": 433785.75, "ns per ops/procs": 2306.94}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 235986345.0, "Ops per second": 7866211.0, "ns per ops": 127.0, "Ops per threads": 1229095.0, "Ops per procs": 1229095.0, "Ops/sec/procs": 40969.0, "ns per ops/procs": 24487.0}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30013.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 16563392.0, "Ops per second": 551860.84, "ns per ops": 1812.05, "Ops per threads": 86267.0, "Ops per procs": 86267.0, "Ops/sec/procs": 2874.28, "ns per ops/procs": 347913.8}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 383207221.0, "Ops per second": 12773574.03, "ns per ops": 78.43, "Ops per threads": 95801805.0, "Ops per procs": 95801805.0, "Ops/sec/procs": 3193393.51, "ns per ops/procs": 313.73}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 238049034.0, "Ops per second": 7934967.8, "ns per ops": 126.23, "Ops per threads": 238049034.0, "Ops per procs": 238049034.0, "Ops/sec/procs": 7934967.8, "ns per ops/procs": 126.23}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30024.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1774650100.0, "Ops per second": 59107686.84, "ns per ops": 16.92, "Ops per threads": 887325050.0, "Ops per procs": 887325050.0, "Ops/sec/procs": 29553843.42, "ns per ops/procs": 33.84}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3358987399.0, "Ops per second": 111876244.37, "ns per ops": 8.94, "Ops per threads": 839746849.0, "Ops per procs": 839746849.0, "Ops/sec/procs": 27969061.09, "ns per ops/procs": 35.75}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 954279709.0, "Ops per second": 31809323.0, "ns per ops": 31.0, "Ops per threads": 238569927.0, "Ops per procs": 238569927.0, "Ops/sec/procs": 7952330.0, "ns per ops/procs": 126.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40539858236.0, "Ops per second": 1351102215.96, "ns per ops": 0.74, "Ops per threads": 422290189.0, "Ops per procs": 422290189.0, "Ops/sec/procs": 14073981.42, "ns per ops/procs": 71.05}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3746216497.0, "Ops per second": 124873883.0, "ns per ops": 8.0, "Ops per threads": 156092354.0, "Ops per procs": 156092354.0, "Ops/sec/procs": 5203078.0, "ns per ops/procs": 192.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 705964202.0, "Ops per second": 23532140.07, "ns per ops": 42.52, "Ops per threads": 29415175.0, "Ops per procs": 29415175.0, "Ops/sec/procs": 980505.84, "ns per ops/procs": 1020.5}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 81509007.0, "Ops per second": 2716669.49, "ns per ops": 368.1, "Ops per threads": 10188625.0, "Ops per procs": 10188625.0, "Ops/sec/procs": 339583.69, "ns per ops/procs": 2944.78}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 1944822373.0, "Ops per second": 64827412.43, "ns per ops": 15.43, "Ops per threads": 13505710.0, "Ops per procs": 13505710.0, "Ops/sec/procs": 450190.36, "ns per ops/procs": 2221.8}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 500486501.0, "Ops per second": 16682883.0, "ns per ops": 60.0, "Ops per threads": 250243250.0, "Ops per procs": 250243250.0, "Ops/sec/procs": 8341441.0, "ns per ops/procs": 120.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 393969200.0, "Ops per second": 13132306.0, "ns per ops": 76.0, "Ops per threads": 5471794.0, "Ops per procs": 5471794.0, "Ops/sec/procs": 182393.0, "ns per ops/procs": 5500.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 237568791.0, "Ops per second": 7918959.7, "ns per ops": 126.48, "Ops per threads": 237568791.0, "Ops per procs": 237568791.0, "Ops/sec/procs": 7918959.7, "ns per ops/procs": 126.48}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 378808074.0, "Ops per second": 12626935.0, "ns per ops": 79.0, "Ops per threads": 3945917.0, "Ops per procs": 3945917.0, "Ops/sec/procs": 131530.0, "ns per ops/procs": 7627.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30004.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 36246923243.0, "Ops per second": 1208057285.46, "ns per ops": 0.83, "Ops per threads": 503429489.0, "Ops per procs": 503429489.0, "Ops/sec/procs": 16778573.41, "ns per ops/procs": 59.6}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30020.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 40879516.0, "Ops per second": 1361717.8, "ns per ops": 734.37, "Ops per threads": 851656.0, "Ops per procs": 851656.0, "Ops/sec/procs": 28369.12, "ns per ops/procs": 35249.59}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 242264383.0, "Ops per second": 8075479.0, "ns per ops": 124.0, "Ops per threads": 1261793.0, "Ops per procs": 1261793.0, "Ops/sec/procs": 42059.0, "ns per ops/procs": 23852.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 765241141.0, "Ops per second": 25508038.0, "ns per ops": 39.0, "Ops per threads": 15942523.0, "Ops per procs": 15942523.0, "Ops/sec/procs": 531417.0, "ns per ops/procs": 1887.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30039.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 80819318854.0, "Ops per second": 2690449627.18, "ns per ops": 0.37, "Ops per threads": 420933952.0, "Ops per procs": 420933952.0, "Ops/sec/procs": 14012758.47, "ns per ops/procs": 71.36}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1332124468.0, "Ops per second": 44404148.93, "ns per ops": 22.54, "Ops per threads": 13876296.0, "Ops per procs": 13876296.0, "Ops/sec/procs": 462543.22, "ns per ops/procs": 2163.73}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30021.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41158601.0, "Ops per second": 1370980.41, "ns per ops": 729.41, "Ops per threads": 857470.0, "Ops per procs": 857470.0, "Ops/sec/procs": 28562.09, "ns per ops/procs": 35011.44}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30033.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 21819025.0, "Ops per second": 726496.38, "ns per ops": 1376.47, "Ops per threads": 303042.0, "Ops per procs": 303042.0, "Ops/sec/procs": 10090.23, "ns per ops/procs": 99105.79}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 381725118.0, "Ops per second": 12724170.6, "ns per ops": 78.74, "Ops per threads": 95431279.0, "Ops per procs": 95431279.0, "Ops/sec/procs": 3181042.65, "ns per ops/procs": 314.95}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 502987252.0, "Ops per second": 16766241.0, "ns per ops": 59.0, "Ops per threads": 251493626.0, "Ops per procs": 251493626.0, "Ops/sec/procs": 8383120.0, "ns per ops/procs": 119.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30024.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1774927754.0, "Ops per second": 59115235.59, "ns per ops": 16.92, "Ops per threads": 887463877.0, "Ops per procs": 887463877.0, "Ops/sec/procs": 29557617.8, "ns per ops/procs": 33.83}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 42439912.0, "Ops per second": 1414295.05, "ns per ops": 707.07, "Ops per threads": 1768329.0, "Ops per procs": 1768329.0, "Ops/sec/procs": 58928.96, "ns per ops/procs": 16969.58}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 695135177.0, "Ops per second": 23171172.57, "ns per ops": 43.27, "Ops per threads": 43445948.0, "Ops per procs": 43445948.0, "Ops/sec/procs": 1448198.29, "ns per ops/procs": 692.31}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30015.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 16348225.0, "Ops per second": 544656.1, "ns per ops": 1836.02, "Ops per threads": 85147.0, "Ops per procs": 85147.0, "Ops/sec/procs": 2836.75, "ns per ops/procs": 352516.02}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1389241838.0, "Ops per second": 46308061.27, "ns per ops": 21.63, "Ops per threads": 14471269.0, "Ops per procs": 14471269.0, "Ops/sec/procs": 482375.64, "ns per ops/procs": 2076.11}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 78809696.0, "Ops per second": 2626688.73, "ns per ops": 380.71, "Ops per threads": 9851212.0, "Ops per procs": 9851212.0, "Ops/sec/procs": 328336.09, "ns per ops/procs": 3045.66}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 409626256.0, "Ops per second": 13654208.0, "ns per ops": 73.0, "Ops per threads": 5689253.0, "Ops per procs": 5689253.0, "Ops/sec/procs": 189641.0, "ns per ops/procs": 5290.0}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30009.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 355511006.0, "Ops per second": 11846693.09, "ns per ops": 84.41, "Ops per threads": 177755503.0, "Ops per procs": 177755503.0, "Ops/sec/procs": 5923346.54, "ns per ops/procs": 168.82}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 36063966964.0, "Ops per second": 1201975754.72, "ns per ops": 0.83, "Ops per threads": 500888430.0, "Ops per procs": 500888430.0, "Ops/sec/procs": 16694107.7, "ns per ops/procs": 59.9}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1776649613.0, "Ops per second": 59174924.93, "ns per ops": 16.9, "Ops per threads": 888324806.0, "Ops per procs": 888324806.0, "Ops/sec/procs": 29587462.46, "ns per ops/procs": 33.8}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 273613234.0, "Ops per second": 9120441.0, "ns per ops": 110.0, "Ops per threads": 273613234.0, "Ops per procs": 273613234.0, "Ops/sec/procs": 9120441.0, "ns per ops/procs": 110.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30020.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 82646608444.0, "Ops per second": 2753046449.31, "ns per ops": 0.36, "Ops per threads": 430451085.0, "Ops per procs": 430451085.0, "Ops/sec/procs": 14338783.59, "ns per ops/procs": 69.74}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1193775714.0, "Ops per second": 39792523.0, "ns per ops": 25.0, "Ops per threads": 24870327.0, "Ops per procs": 24870327.0, "Ops/sec/procs": 829010.0, "ns per ops/procs": 1210.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1775673154.0, "Ops per second": 59142695.83, "ns per ops": 16.91, "Ops per threads": 887836577.0, "Ops per procs": 887836577.0, "Ops/sec/procs": 29571347.92, "ns per ops/procs": 33.82}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 704100677.0, "Ops per second": 23470022.57, "ns per ops": 42.72, "Ops per threads": 44006292.0, "Ops per procs": 44006292.0, "Ops/sec/procs": 1466876.41, "ns per ops/procs": 683.48}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 890389999.0, "Ops per second": 29657673.94, "ns per ops": 33.72, "Ops per threads": 890389999.0, "Ops per procs": 890389999.0, "Ops/sec/procs": 29657673.94, "ns per ops/procs": 33.72}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 531303989.0, "Ops per second": 17710132.97, "ns per ops": 56.58, "Ops per threads": 66412998.0, "Ops per procs": 66412998.0, "Ops/sec/procs": 2213766.62, "ns per ops/procs": 452.62}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 174426599.0, "Ops per second": 5813712.29, "ns per ops": 172.01, "Ops per threads": 43606649.0, "Ops per procs": 43606649.0, "Ops/sec/procs": 1453428.07, "ns per ops/procs": 688.03}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6545518838.0, "Ops per second": 218017307.43, "ns per ops": 4.59, "Ops per threads": 818189854.0, "Ops per procs": 818189854.0, "Ops/sec/procs": 27252163.43, "ns per ops/procs": 36.69}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 81890729.0, "Ops per second": 2729387.58, "ns per ops": 366.38, "Ops per threads": 10236341.0, "Ops per procs": 10236341.0, "Ops/sec/procs": 341173.45, "ns per ops/procs": 2931.06}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 237773575.0, "Ops per second": 7925785.0, "ns per ops": 126.0, "Ops per threads": 1238404.0, "Ops per procs": 1238404.0, "Ops/sec/procs": 41280.0, "ns per ops/procs": 24303.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 531303622.0, "Ops per second": 17710120.73, "ns per ops": 56.58, "Ops per threads": 66412952.0, "Ops per procs": 66412952.0, "Ops/sec/procs": 2213765.09, "ns per ops/procs": 452.64}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 61006310436.0, "Ops per second": 2033154085.57, "ns per ops": 0.49, "Ops per threads": 423654933.0, "Ops per procs": 423654933.0, "Ops/sec/procs": 14119125.59, "ns per ops/procs": 70.83}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40225893481.0, "Ops per second": 1340671875.22, "ns per ops": 0.75, "Ops per threads": 419019723.0, "Ops per procs": 419019723.0, "Ops/sec/procs": 13965332.03, "ns per ops/procs": 71.61}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3749375848.0, "Ops per second": 124979194.0, "ns per ops": 8.0, "Ops per threads": 156223993.0, "Ops per procs": 156223993.0, "Ops/sec/procs": 5207466.0, "ns per ops/procs": 192.0}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30032.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 23815098.0, "Ops per second": 792989.61, "ns per ops": 1261.05, "Ops per threads": 330765.0, "Ops per procs": 330765.0, "Ops/sec/procs": 11013.74, "ns per ops/procs": 90795.64}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12306292168.0, "Ops per second": 409841491.6, "ns per ops": 2.44, "Ops per threads": 769143260.0, "Ops per procs": 769143260.0, "Ops/sec/procs": 25615093.22, "ns per ops/procs": 39.04}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1160728481.0, "Ops per second": 38690949.37, "ns per ops": 25.89, "Ops per threads": 24181843.0, "Ops per procs": 24181843.0, "Ops/sec/procs": 806061.45, "ns per ops/procs": 1242.75}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30031.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 23045610.0, "Ops per second": 767393.47, "ns per ops": 1303.11, "Ops per threads": 320077.0, "Ops per procs": 320077.0, "Ops/sec/procs": 10658.24, "ns per ops/procs": 93824.1}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2418487606.0, "Ops per second": 80616253.53, "ns per ops": 12.43, "Ops per threads": 12596289.0, "Ops per procs": 12596289.0, "Ops/sec/procs": 419876.32, "ns per ops/procs": 2385.75}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 957727191.0, "Ops per second": 31924239.7, "ns per ops": 31.33, "Ops per threads": 13301766.0, "Ops per procs": 13301766.0, "Ops/sec/procs": 443392.22, "ns per ops/procs": 2255.56}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30082.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 18603557.0, "Ops per second": 618418.07, "ns per ops": 1617.03, "Ops per threads": 129191.0, "Ops per procs": 129191.0, "Ops/sec/procs": 4294.57, "ns per ops/procs": 232852.19}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 174561461.0, "Ops per second": 5818207.17, "ns per ops": 171.87, "Ops per threads": 43640365.0, "Ops per procs": 43640365.0, "Ops/sec/procs": 1454551.79, "ns per ops/procs": 687.5}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1173130857.0, "Ops per second": 39104361.0, "ns per ops": 25.0, "Ops per threads": 146641357.0, "Ops per procs": 146641357.0, "Ops/sec/procs": 4888045.0, "ns per ops/procs": 205.0}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 174495525.0, "Ops per second": 5816047.53, "ns per ops": 171.94, "Ops per threads": 43623881.0, "Ops per procs": 43623881.0, "Ops/sec/procs": 1454011.88, "ns per ops/procs": 687.75}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30007.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20248782161.0, "Ops per second": 674789936.04, "ns per ops": 1.48, "Ops per threads": 421849628.0, "Ops per procs": 421849628.0, "Ops/sec/procs": 14058123.67, "ns per ops/procs": 71.13}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30100.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 238985015.0, "Ops per second": 7966167.0, "ns per ops": 125.0, "Ops per threads": 1244713.0, "Ops per procs": 1244713.0, "Ops/sec/procs": 41490.0, "ns per ops/procs": 24182.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20579498891.0, "Ops per second": 685877923.96, "ns per ops": 1.46, "Ops per threads": 428739560.0, "Ops per procs": 428739560.0, "Ops/sec/procs": 14289123.42, "ns per ops/procs": 69.98}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30056.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 21755876.0, "Ops per second": 723843.54, "ns per ops": 1381.51, "Ops per threads": 226623.0, "Ops per procs": 226623.0, "Ops/sec/procs": 7540.04, "ns per ops/procs": 132625.35}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 2022419353.0, "Ops per second": 67413978.43, "ns per ops": 14.83, "Ops per threads": 14044578.0, "Ops per procs": 14044578.0, "Ops/sec/procs": 468152.63, "ns per ops/procs": 2136.17}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 274167645.0, "Ops per second": 9138921.0, "ns per ops": 109.0, "Ops per threads": 274167645.0, "Ops per procs": 274167645.0, "Ops/sec/procs": 9138921.0, "ns per ops/procs": 109.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 273408767.0, "Ops per second": 9113625.0, "ns per ops": 110.0, "Ops per threads": 273408767.0, "Ops per procs": 273408767.0, "Ops/sec/procs": 9113625.0, "ns per ops/procs": 110.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 273320398.0, "Ops per second": 9110679.0, "ns per ops": 110.0, "Ops per threads": 273320398.0, "Ops per procs": 273320398.0, "Ops/sec/procs": 9110679.0, "ns per ops/procs": 110.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 2118219103.0, "Ops per second": 70607303.43, "ns per ops": 14.18, "Ops per threads": 14709854.0, "Ops per procs": 14709854.0, "Ops/sec/procs": 490328.5, "ns per ops/procs": 2042.56}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 500144143.0, "Ops per second": 16671471.0, "ns per ops": 60.0, "Ops per threads": 250072071.0, "Ops per procs": 250072071.0, "Ops/sec/procs": 8335735.0, "ns per ops/procs": 120.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30030.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 81615394439.0, "Ops per second": 2717795093.69, "ns per ops": 0.37, "Ops per threads": 425080179.0, "Ops per procs": 425080179.0, "Ops/sec/procs": 14155182.78, "ns per ops/procs": 70.65}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 379353634.0, "Ops per second": 12645121.13, "ns per ops": 79.23, "Ops per threads": 94838408.0, "Ops per procs": 94838408.0, "Ops/sec/procs": 3161280.28, "ns per ops/procs": 316.91}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30048.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 21389907.0, "Ops per second": 711850.28, "ns per ops": 1404.79, "Ops per threads": 222811.0, "Ops per procs": 222811.0, "Ops/sec/procs": 7415.11, "ns per ops/procs": 134859.82}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3444065143.0, "Ops per second": 114802171.0, "ns per ops": 8.0, "Ops per threads": 215254071.0, "Ops per procs": 215254071.0, "Ops/sec/procs": 7175135.0, "ns per ops/procs": 139.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 2070830134.0, "Ops per second": 69027671.13, "ns per ops": 14.53, "Ops per threads": 14380764.0, "Ops per procs": 14380764.0, "Ops/sec/procs": 479358.83, "ns per ops/procs": 2092.25}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 379567633.0, "Ops per second": 12652254.0, "ns per ops": 79.0, "Ops per threads": 5271772.0, "Ops per procs": 5271772.0, "Ops/sec/procs": 175725.0, "ns per ops/procs": 5709.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 326529542.0, "Ops per second": 10884318.07, "ns per ops": 92.03, "Ops per threads": 163264771.0, "Ops per procs": 163264771.0, "Ops/sec/procs": 5442159.03, "ns per ops/procs": 184.06}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 890751530.0, "Ops per second": 29669253.25, "ns per ops": 33.7, "Ops per threads": 890751530.0, "Ops per procs": 890751530.0, "Ops/sec/procs": 29669253.25, "ns per ops/procs": 33.7}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 50471064.0, "Ops per second": 1682036.43, "ns per ops": 594.52, "Ops per threads": 3154441.0, "Ops per procs": 3154441.0, "Ops/sec/procs": 105127.28, "ns per ops/procs": 9512.28}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30020.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 16126200.0, "Ops per second": 537170.11, "ns per ops": 1861.61, "Ops per threads": 83990.0, "Ops per procs": 83990.0, "Ops/sec/procs": 2797.76, "ns per ops/procs": 357428.67}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 49543458.0, "Ops per second": 1651133.1, "ns per ops": 605.64, "Ops per threads": 3096466.0, "Ops per procs": 3096466.0, "Ops/sec/procs": 103195.82, "ns per ops/procs": 9690.32}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12296210730.0, "Ops per second": 409512541.44, "ns per ops": 2.44, "Ops per threads": 768513170.0, "Ops per procs": 768513170.0, "Ops/sec/procs": 25594533.84, "ns per ops/procs": 39.07}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1152573305.0, "Ops per second": 38419110.17, "ns per ops": 26.07, "Ops per threads": 24011943.0, "Ops per procs": 24011943.0, "Ops/sec/procs": 800398.13, "ns per ops/procs": 1251.41}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 48210996.0, "Ops per second": 1606716.17, "ns per ops": 622.39, "Ops per threads": 3013187.0, "Ops per procs": 3013187.0, "Ops/sec/procs": 100419.76, "ns per ops/procs": 9958.2}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1183351473.0, "Ops per second": 39445049.0, "ns per ops": 25.0, "Ops per threads": 147918934.0, "Ops per procs": 147918934.0, "Ops/sec/procs": 4930631.0, "ns per ops/procs": 203.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 889816582.0, "Ops per second": 29638582.86, "ns per ops": 33.74, "Ops per threads": 889816582.0, "Ops per procs": 889816582.0, "Ops/sec/procs": 29638582.86, "ns per ops/procs": 33.74}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16123063532.0, "Ops per second": 537385169.3, "ns per ops": 1.86, "Ops per threads": 671794313.0, "Ops per procs": 671794313.0, "Ops/sec/procs": 22391048.72, "ns per ops/procs": 44.66}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 521242541.0, "Ops per second": 17374751.37, "ns per ops": 57.67, "Ops per threads": 65155317.0, "Ops per procs": 65155317.0, "Ops/sec/procs": 2171843.92, "ns per ops/procs": 461.4}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3385180274.0, "Ops per second": 112839342.0, "ns per ops": 8.0, "Ops per threads": 211573767.0, "Ops per procs": 211573767.0, "Ops/sec/procs": 7052458.0, "ns per ops/procs": 142.0}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30009.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 369480530.0, "Ops per second": 12311957.13, "ns per ops": 81.22, "Ops per threads": 184740265.0, "Ops per procs": 184740265.0, "Ops/sec/procs": 6155978.57, "ns per ops/procs": 162.44}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1382805332.0, "Ops per second": 46093511.07, "ns per ops": 21.75, "Ops per threads": 14404222.0, "Ops per procs": 14404222.0, "Ops/sec/procs": 480140.74, "ns per ops/procs": 2088.47}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1184710756.0, "Ops per second": 39490358.0, "ns per ops": 25.0, "Ops per threads": 148088844.0, "Ops per procs": 148088844.0, "Ops/sec/procs": 4936294.0, "ns per ops/procs": 203.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3359727702.0, "Ops per second": 111901052.58, "ns per ops": 8.94, "Ops per threads": 839931925.0, "Ops per procs": 839931925.0, "Ops/sec/procs": 27975263.15, "ns per ops/procs": 35.75}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 82715081086.0, "Ops per second": 2756659484.65, "ns per ops": 0.36, "Ops per threads": 430807713.0, "Ops per procs": 430807713.0, "Ops/sec/procs": 14357601.48, "ns per ops/procs": 69.65}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 1868741135.0, "Ops per second": 62291371.17, "ns per ops": 16.06, "Ops per threads": 12977368.0, "Ops per procs": 12977368.0, "Ops/sec/procs": 432578.97, "ns per ops/procs": 2312.56}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30081.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 17645216.0, "Ops per second": 586580.71, "ns per ops": 1704.8, "Ops per threads": 122536.0, "Ops per procs": 122536.0, "Ops/sec/procs": 4073.48, "ns per ops/procs": 245490.51}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12309109652.0, "Ops per second": 409939203.26, "ns per ops": 2.44, "Ops per threads": 769319353.0, "Ops per procs": 769319353.0, "Ops/sec/procs": 25621200.2, "ns per ops/procs": 39.03}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 502996240.0, "Ops per second": 16766541.0, "ns per ops": 59.0, "Ops per threads": 251498120.0, "Ops per procs": 251498120.0, "Ops/sec/procs": 8383270.0, "ns per ops/procs": 119.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 962326289.0, "Ops per second": 32077542.0, "ns per ops": 31.0, "Ops per threads": 240581572.0, "Ops per procs": 240581572.0, "Ops/sec/procs": 8019385.0, "ns per ops/procs": 125.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 238061139.0, "Ops per second": 7935371.3, "ns per ops": 126.23, "Ops per threads": 238061139.0, "Ops per procs": 238061139.0, "Ops/sec/procs": 7935371.3, "ns per ops/procs": 126.23}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 2029644255.0, "Ops per second": 67654808.5, "ns per ops": 14.8, "Ops per threads": 14094751.0, "Ops per procs": 14094751.0, "Ops/sec/procs": 469825.06, "ns per ops/procs": 2130.58}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 981719760.0, "Ops per second": 32723992.0, "ns per ops": 30.6, "Ops per threads": 13634996.0, "Ops per procs": 13634996.0, "Ops/sec/procs": 454499.89, "ns per ops/procs": 2202.88}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3431947123.0, "Ops per second": 114398237.0, "ns per ops": 8.0, "Ops per threads": 214496695.0, "Ops per procs": 214496695.0, "Ops/sec/procs": 7149889.0, "ns per ops/procs": 140.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20203249068.0, "Ops per second": 673339997.22, "ns per ops": 1.49, "Ops per threads": 420901022.0, "Ops per procs": 420901022.0, "Ops/sec/procs": 14027916.61, "ns per ops/procs": 71.29}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30011.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 60668652182.0, "Ops per second": 2021484078.04, "ns per ops": 0.49, "Ops per threads": 421310084.0, "Ops per procs": 421310084.0, "Ops/sec/procs": 14038083.88, "ns per ops/procs": 71.23}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30015.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 16702950.0, "Ops per second": 556479.07, "ns per ops": 1797.01, "Ops per threads": 86994.0, "Ops per procs": 86994.0, "Ops/sec/procs": 2898.33, "ns per ops/procs": 345026.45}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 327745331.0, "Ops per second": 10924844.0, "ns per ops": 91.0, "Ops per threads": 2276009.0, "Ops per procs": 2276009.0, "Ops/sec/procs": 75866.0, "ns per ops/procs": 13223.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30020.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 887917201.0, "Ops per second": 29577248.45, "ns per ops": 33.81, "Ops per threads": 887917201.0, "Ops per procs": 887917201.0, "Ops/sec/procs": 29577248.45, "ns per ops/procs": 33.81}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30076.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 18712387.0, "Ops per second": 622156.73, "ns per ops": 1607.31, "Ops per threads": 129947.0, "Ops per procs": 129947.0, "Ops/sec/procs": 4320.53, "ns per ops/procs": 231452.93}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 532914059.0, "Ops per second": 17763801.97, "ns per ops": 56.41, "Ops per threads": 66614257.0, "Ops per procs": 66614257.0, "Ops/sec/procs": 2220475.25, "ns per ops/procs": 451.25}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 249383256.0, "Ops per second": 8312775.0, "ns per ops": 120.0, "Ops per threads": 1298871.0, "Ops per procs": 1298871.0, "Ops/sec/procs": 43295.0, "ns per ops/procs": 23171.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 328564086.0, "Ops per second": 10952136.2, "ns per ops": 91.46, "Ops per threads": 164282043.0, "Ops per procs": 164282043.0, "Ops/sec/procs": 5476068.1, "ns per ops/procs": 182.92}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1213881441.0, "Ops per second": 40462714.0, "ns per ops": 24.0, "Ops per threads": 25289196.0, "Ops per procs": 25289196.0, "Ops/sec/procs": 842973.0, "ns per ops/procs": 1190.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 734610415.0, "Ops per second": 24487013.83, "ns per ops": 40.87, "Ops per threads": 30608767.0, "Ops per procs": 30608767.0, "Ops/sec/procs": 1020292.24, "ns per ops/procs": 980.76}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 237606973.0, "Ops per second": 7920232.43, "ns per ops": 126.47, "Ops per threads": 237606973.0, "Ops per procs": 237606973.0, "Ops/sec/procs": 7920232.43, "ns per ops/procs": 126.47}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30004.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 35733770062.0, "Ops per second": 1190951814.74, "ns per ops": 0.84, "Ops per threads": 496302361.0, "Ops per procs": 496302361.0, "Ops/sec/procs": 16540997.43, "ns per ops/procs": 60.46}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 995724709.0, "Ops per second": 33190823.63, "ns per ops": 30.19, "Ops per threads": 13829509.0, "Ops per procs": 13829509.0, "Ops/sec/procs": 460983.66, "ns per ops/procs": 2173.94}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30004.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 61628879596.0, "Ops per second": 2053972688.7, "ns per ops": 0.49, "Ops per threads": 427978330.0, "Ops per procs": 427978330.0, "Ops/sec/procs": 14263699.23, "ns per ops/procs": 70.11}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30076.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 18965050.0, "Ops per second": 630562.45, "ns per ops": 1585.89, "Ops per threads": 131701.0, "Ops per procs": 131701.0, "Ops/sec/procs": 4378.91, "ns per ops/procs": 228367.55}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30076.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 19923076.0, "Ops per second": 662414.33, "ns per ops": 1509.63, "Ops per threads": 138354.0, "Ops per procs": 138354.0, "Ops/sec/procs": 4600.1, "ns per ops/procs": 217386.6}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 36289262638.0, "Ops per second": 1209493305.18, "ns per ops": 0.83, "Ops per threads": 504017536.0, "Ops per procs": 504017536.0, "Ops/sec/procs": 16798518.13, "ns per ops/procs": 59.53}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30011.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 370811148.0, "Ops per second": 12355617.38, "ns per ops": 80.93, "Ops per threads": 185405574.0, "Ops per procs": 185405574.0, "Ops/sec/procs": 6177808.69, "ns per ops/procs": 161.87}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 371421804.0, "Ops per second": 12380726.0, "ns per ops": 81.0, "Ops per threads": 3868977.0, "Ops per procs": 3868977.0, "Ops/sec/procs": 128965.0, "ns per ops/procs": 7779.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 275609630.0, "Ops per second": 9186987.0, "ns per ops": 109.0, "Ops per threads": 1913955.0, "Ops per procs": 1913955.0, "Ops/sec/procs": 63798.0, "ns per ops/procs": 15725.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1169420060.0, "Ops per second": 38980668.67, "ns per ops": 25.7, "Ops per threads": 24362917.0, "Ops per procs": 24362917.0, "Ops/sec/procs": 812097.26, "ns per ops/procs": 1233.56}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20203700999.0, "Ops per second": 673355580.16, "ns per ops": 1.49, "Ops per threads": 420910437.0, "Ops per procs": 420910437.0, "Ops/sec/procs": 14028241.25, "ns per ops/procs": 71.28}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 954200118.0, "Ops per second": 31806670.6, "ns per ops": 31.48, "Ops per threads": 13252779.0, "Ops per procs": 13252779.0, "Ops/sec/procs": 441759.31, "ns per ops/procs": 2266.76}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30078.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 19171207.0, "Ops per second": 637379.12, "ns per ops": 1568.92, "Ops per threads": 133133.0, "Ops per procs": 133133.0, "Ops/sec/procs": 4426.24, "ns per ops/procs": 225925.19}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16129219825.0, "Ops per second": 537591184.22, "ns per ops": 1.86, "Ops per threads": 672050826.0, "Ops per procs": 672050826.0, "Ops/sec/procs": 22399632.68, "ns per ops/procs": 44.64}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 170932506.0, "Ops per second": 5697270.9, "ns per ops": 175.52, "Ops per threads": 42733126.0, "Ops per procs": 42733126.0, "Ops/sec/procs": 1424317.72, "ns per ops/procs": 702.09}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12299929004.0, "Ops per second": 409633650.09, "ns per ops": 2.44, "Ops per threads": 768745562.0, "Ops per procs": 768745562.0, "Ops/sec/procs": 25602103.13, "ns per ops/procs": 39.06}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 377732229.0, "Ops per second": 12591074.3, "ns per ops": 79.57, "Ops per threads": 94433057.0, "Ops per procs": 94433057.0, "Ops/sec/procs": 3147768.58, "ns per ops/procs": 318.28}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16120558283.0, "Ops per second": 537303998.4, "ns per ops": 1.86, "Ops per threads": 671689928.0, "Ops per procs": 671689928.0, "Ops/sec/procs": 22387666.6, "ns per ops/procs": 44.67}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40207830812.0, "Ops per second": 1340033754.8, "ns per ops": 0.75, "Ops per threads": 418831570.0, "Ops per procs": 418831570.0, "Ops/sec/procs": 13958684.95, "ns per ops/procs": 71.64}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 238379230.0, "Ops per second": 7945974.33, "ns per ops": 126.06, "Ops per threads": 238379230.0, "Ops per procs": 238379230.0, "Ops/sec/procs": 7945974.33, "ns per ops/procs": 126.06}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2279849630.0, "Ops per second": 75994987.67, "ns per ops": 13.19, "Ops per threads": 11874216.0, "Ops per procs": 11874216.0, "Ops/sec/procs": 395807.23, "ns per ops/procs": 2533.38}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3729361781.0, "Ops per second": 124312059.0, "ns per ops": 8.0, "Ops per threads": 155390074.0, "Ops per procs": 155390074.0, "Ops/sec/procs": 5179669.0, "ns per ops/procs": 193.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30023.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6548784160.0, "Ops per second": 218123552.32, "ns per ops": 4.58, "Ops per threads": 818598020.0, "Ops per procs": 818598020.0, "Ops/sec/procs": 27265444.04, "ns per ops/procs": 36.68}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1219832040.0, "Ops per second": 40661068.0, "ns per ops": 24.0, "Ops per threads": 25413167.0, "Ops per procs": 25413167.0, "Ops/sec/procs": 847105.0, "ns per ops/procs": 1184.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40404458473.0, "Ops per second": 1346603321.5, "ns per ops": 0.74, "Ops per threads": 420879775.0, "Ops per procs": 420879775.0, "Ops/sec/procs": 14027117.93, "ns per ops/procs": 71.29}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1174515056.0, "Ops per second": 39150501.0, "ns per ops": 25.0, "Ops per threads": 146814382.0, "Ops per procs": 146814382.0, "Ops/sec/procs": 4893812.0, "ns per ops/procs": 205.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12302667751.0, "Ops per second": 409723290.18, "ns per ops": 2.44, "Ops per threads": 768916734.0, "Ops per procs": 768916734.0, "Ops/sec/procs": 25607705.64, "ns per ops/procs": 39.05}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 50257627.0, "Ops per second": 1674948.98, "ns per ops": 597.03, "Ops per threads": 3141101.0, "Ops per procs": 3141101.0, "Ops/sec/procs": 104684.31, "ns per ops/procs": 9552.53}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12307510045.0, "Ops per second": 409886376.88, "ns per ops": 2.44, "Ops per threads": 769219377.0, "Ops per procs": 769219377.0, "Ops/sec/procs": 25617898.56, "ns per ops/procs": 39.04}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 81570219580.0, "Ops per second": 2718536861.12, "ns per ops": 0.37, "Ops per threads": 424844893.0, "Ops per procs": 424844893.0, "Ops/sec/procs": 14159046.15, "ns per ops/procs": 70.63}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 274089555.0, "Ops per second": 9136318.0, "ns per ops": 109.0, "Ops per threads": 274089555.0, "Ops per procs": 274089555.0, "Ops/sec/procs": 9136318.0, "ns per ops/procs": 109.0}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30010.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 373040681.0, "Ops per second": 12430543.61, "ns per ops": 80.45, "Ops per threads": 186520340.0, "Ops per procs": 186520340.0, "Ops/sec/procs": 6215271.8, "ns per ops/procs": 160.89}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1161090246.0, "Ops per second": 38703008.2, "ns per ops": 25.88, "Ops per threads": 24189380.0, "Ops per procs": 24189380.0, "Ops/sec/procs": 806312.67, "ns per ops/procs": 1242.37}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30032.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 23384424.0, "Ops per second": 778624.81, "ns per ops": 1284.32, "Ops per threads": 324783.0, "Ops per procs": 324783.0, "Ops/sec/procs": 10814.23, "ns per ops/procs": 92470.72}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30030.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 60723622931.0, "Ops per second": 2022066714.02, "ns per ops": 0.49, "Ops per threads": 421691825.0, "Ops per procs": 421691825.0, "Ops/sec/procs": 14042129.96, "ns per ops/procs": 71.21}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 50465233.0, "Ops per second": 1681844.42, "ns per ops": 594.59, "Ops per threads": 3154077.0, "Ops per procs": 3154077.0, "Ops/sec/procs": 105115.28, "ns per ops/procs": 9513.37}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6548802705.0, "Ops per second": 218126645.96, "ns per ops": 4.58, "Ops per threads": 818600338.0, "Ops per procs": 818600338.0, "Ops/sec/procs": 27265830.75, "ns per ops/procs": 36.68}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 80533481901.0, "Ops per second": 2683963177.18, "ns per ops": 0.37, "Ops per threads": 419445218.0, "Ops per procs": 419445218.0, "Ops/sec/procs": 13978974.88, "ns per ops/procs": 71.54}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 81962152799.0, "Ops per second": 2731588527.93, "ns per ops": 0.37, "Ops per threads": 426886212.0, "Ops per procs": 426886212.0, "Ops/sec/procs": 14227023.58, "ns per ops/procs": 70.29}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 80620004.0, "Ops per second": 2687014.58, "ns per ops": 372.16, "Ops per threads": 10077500.0, "Ops per procs": 10077500.0, "Ops/sec/procs": 335876.82, "ns per ops/procs": 2977.28}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 36350491505.0, "Ops per second": 1211526057.59, "ns per ops": 0.83, "Ops per threads": 504867937.0, "Ops per procs": 504867937.0, "Ops/sec/procs": 16826750.8, "ns per ops/procs": 59.43}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30023.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 891090667.0, "Ops per second": 29679429.79, "ns per ops": 33.69, "Ops per threads": 891090667.0, "Ops per procs": 891090667.0, "Ops/sec/procs": 29679429.79, "ns per ops/procs": 33.69}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 1796870976.0, "Ops per second": 59895699.2, "ns per ops": 16.72, "Ops per threads": 12478270.0, "Ops per procs": 12478270.0, "Ops/sec/procs": 415942.36, "ns per ops/procs": 2407.95}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3774729287.0, "Ops per second": 125824309.0, "ns per ops": 7.0, "Ops per threads": 157280386.0, "Ops per procs": 157280386.0, "Ops/sec/procs": 5242679.0, "ns per ops/procs": 191.0}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30035.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 22601781.0, "Ops per second": 752501.27, "ns per ops": 1328.9, "Ops per threads": 313913.0, "Ops per procs": 313913.0, "Ops/sec/procs": 10451.41, "ns per ops/procs": 95680.9}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 245713714.0, "Ops per second": 8190457.0, "ns per ops": 122.0, "Ops per threads": 1279758.0, "Ops per procs": 1279758.0, "Ops/sec/procs": 42658.0, "ns per ops/procs": 23518.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1770587430.0, "Ops per second": 58973071.78, "ns per ops": 16.96, "Ops per threads": 885293715.0, "Ops per procs": 885293715.0, "Ops/sec/procs": 29486535.89, "ns per ops/procs": 33.91}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 277533293.0, "Ops per second": 9251109.0, "ns per ops": 108.0, "Ops per threads": 1927314.0, "Ops per procs": 1927314.0, "Ops/sec/procs": 64243.0, "ns per ops/procs": 15616.0}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30049.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 22074260.0, "Ops per second": 734586.11, "ns per ops": 1361.31, "Ops per threads": 229940.0, "Ops per procs": 229940.0, "Ops/sec/procs": 7651.94, "ns per ops/procs": 130685.84}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 174751034.0, "Ops per second": 5824573.05, "ns per ops": 171.69, "Ops per threads": 43687758.0, "Ops per procs": 43687758.0, "Ops/sec/procs": 1456143.26, "ns per ops/procs": 686.75}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30049.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 23944893.0, "Ops per second": 796836.21, "ns per ops": 1254.96, "Ops per threads": 249425.0, "Ops per procs": 249425.0, "Ops/sec/procs": 8300.38, "ns per ops/procs": 120476.45}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1171974525.0, "Ops per second": 39065817.5, "ns per ops": 25.66, "Ops per threads": 24416135.0, "Ops per procs": 24416135.0, "Ops/sec/procs": 813871.2, "ns per ops/procs": 1231.66}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 255154695.0, "Ops per second": 8504816.84, "ns per ops": 117.58, "Ops per threads": 255154695.0, "Ops per procs": 255154695.0, "Ops/sec/procs": 8504816.84, "ns per ops/procs": 117.58}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1774632957.0, "Ops per second": 59107981.34, "ns per ops": 16.92, "Ops per threads": 887316478.0, "Ops per procs": 887316478.0, "Ops/sec/procs": 29553990.67, "ns per ops/procs": 33.84}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30098.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 243905722.0, "Ops per second": 8130190.0, "ns per ops": 123.0, "Ops per threads": 1270342.0, "Ops per procs": 1270342.0, "Ops/sec/procs": 42344.0, "ns per ops/procs": 23693.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 774762764.0, "Ops per second": 25825425.0, "ns per ops": 38.0, "Ops per threads": 16140890.0, "Ops per procs": 16140890.0, "Ops/sec/procs": 538029.0, "ns per ops/procs": 1864.0}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 254608045.0, "Ops per second": 8486592.95, "ns per ops": 117.83, "Ops per threads": 254608045.0, "Ops per procs": 254608045.0, "Ops/sec/procs": 8486592.95, "ns per ops/procs": 117.83}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16125063037.0, "Ops per second": 537455946.52, "ns per ops": 1.86, "Ops per threads": 671877626.0, "Ops per procs": 671877626.0, "Ops/sec/procs": 22393997.77, "ns per ops/procs": 44.65}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30036.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 20643005.0, "Ops per second": 687254.32, "ns per ops": 1455.07, "Ops per threads": 286708.0, "Ops per procs": 286708.0, "Ops/sec/procs": 9545.2, "ns per ops/procs": 104764.71}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40506295310.0, "Ops per second": 1350010754.12, "ns per ops": 0.74, "Ops per threads": 421940576.0, "Ops per procs": 421940576.0, "Ops/sec/procs": 14062612.02, "ns per ops/procs": 71.11}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 390866582.0, "Ops per second": 13028886.0, "ns per ops": 77.0, "Ops per threads": 4071526.0, "Ops per procs": 4071526.0, "Ops/sec/procs": 135717.0, "ns per ops/procs": 7392.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3809163774.0, "Ops per second": 126972125.0, "ns per ops": 7.0, "Ops per threads": 158715157.0, "Ops per procs": 158715157.0, "Ops/sec/procs": 5290505.0, "ns per ops/procs": 189.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1170675486.0, "Ops per second": 39022516.0, "ns per ops": 25.0, "Ops per threads": 146334435.0, "Ops per procs": 146334435.0, "Ops/sec/procs": 4877814.0, "ns per ops/procs": 205.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 375686385.0, "Ops per second": 12522879.0, "ns per ops": 80.0, "Ops per threads": 2608933.0, "Ops per procs": 2608933.0, "Ops/sec/procs": 86964.0, "ns per ops/procs": 11536.0}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30033.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 22374358.0, "Ops per second": 744982.97, "ns per ops": 1342.31, "Ops per threads": 310754.0, "Ops per procs": 310754.0, "Ops/sec/procs": 10346.99, "ns per ops/procs": 96646.5}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 392570318.0, "Ops per second": 13085677.0, "ns per ops": 76.0, "Ops per threads": 5452365.0, "Ops per procs": 5452365.0, "Ops/sec/procs": 181745.0, "ns per ops/procs": 5520.0}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 50279346.0, "Ops per second": 1675644.74, "ns per ops": 596.79, "Ops per threads": 3142459.0, "Ops per procs": 3142459.0, "Ops/sec/procs": 104727.8, "ns per ops/procs": 9548.56}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3768065044.0, "Ops per second": 125602168.0, "ns per ops": 7.0, "Ops per threads": 157002710.0, "Ops per procs": 157002710.0, "Ops/sec/procs": 5233423.0, "ns per ops/procs": 191.0}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30029.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 15850717.0, "Ops per second": 527835.07, "ns per ops": 1894.53, "Ops per threads": 82555.0, "Ops per procs": 82555.0, "Ops/sec/procs": 2749.14, "ns per ops/procs": 363749.98}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30020.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41675700.0, "Ops per second": 1388226.26, "ns per ops": 720.34, "Ops per threads": 868243.0, "Ops per procs": 868243.0, "Ops/sec/procs": 28921.38, "ns per ops/procs": 34576.5}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 734897875.0, "Ops per second": 24496595.83, "ns per ops": 40.86, "Ops per threads": 30620744.0, "Ops per procs": 30620744.0, "Ops/sec/procs": 1020691.49, "ns per ops/procs": 980.75}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 82728752519.0, "Ops per second": 2757105721.8, "ns per ops": 0.36, "Ops per threads": 430878919.0, "Ops per procs": 430878919.0, "Ops/sec/procs": 14359925.63, "ns per ops/procs": 69.64}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30019.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 16478480.0, "Ops per second": 548929.06, "ns per ops": 1821.73, "Ops per threads": 85825.0, "Ops per procs": 85825.0, "Ops/sec/procs": 2859.01, "ns per ops/procs": 349771.97}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1293440944.0, "Ops per second": 43114698.13, "ns per ops": 23.24, "Ops per threads": 13473343.0, "Ops per procs": 13473343.0, "Ops/sec/procs": 449111.44, "ns per ops/procs": 2231.47}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30004.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 81661498.0, "Ops per second": 2721631.26, "ns per ops": 367.43, "Ops per threads": 10207687.0, "Ops per procs": 10207687.0, "Ops/sec/procs": 340203.91, "ns per ops/procs": 2939.41}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 1960168369.0, "Ops per second": 65338945.63, "ns per ops": 15.34, "Ops per threads": 13612280.0, "Ops per procs": 13612280.0, "Ops/sec/procs": 453742.68, "ns per ops/procs": 2209.1}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3765507913.0, "Ops per second": 125516930.0, "ns per ops": 7.0, "Ops per threads": 156896163.0, "Ops per procs": 156896163.0, "Ops/sec/procs": 5229872.0, "ns per ops/procs": 191.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30067.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 83036308473.0, "Ops per second": 2761681866.55, "ns per ops": 0.36, "Ops per threads": 432480773.0, "Ops per procs": 432480773.0, "Ops/sec/procs": 14383759.72, "ns per ops/procs": 69.52}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12315497386.0, "Ops per second": 410150552.35, "ns per ops": 2.44, "Ops per threads": 769718586.0, "Ops per procs": 769718586.0, "Ops/sec/procs": 25634409.52, "ns per ops/procs": 39.01}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12304100575.0, "Ops per second": 409772087.55, "ns per ops": 2.44, "Ops per threads": 769006285.0, "Ops per procs": 769006285.0, "Ops/sec/procs": 25610755.47, "ns per ops/procs": 39.05}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3362465265.0, "Ops per second": 111992448.08, "ns per ops": 8.93, "Ops per threads": 840616316.0, "Ops per procs": 840616316.0, "Ops/sec/procs": 27998112.02, "ns per ops/procs": 35.72}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 276620952.0, "Ops per second": 9220698.0, "ns per ops": 108.0, "Ops per threads": 1920978.0, "Ops per procs": 1920978.0, "Ops/sec/procs": 64032.0, "ns per ops/procs": 15668.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12259652464.0, "Ops per second": 408291721.55, "ns per ops": 2.45, "Ops per threads": 766228279.0, "Ops per procs": 766228279.0, "Ops/sec/procs": 25518232.6, "ns per ops/procs": 39.19}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 735195431.0, "Ops per second": 24506514.37, "ns per ops": 40.84, "Ops per threads": 30633142.0, "Ops per procs": 30633142.0, "Ops/sec/procs": 1021104.77, "ns per ops/procs": 980.1}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 1762372728.0, "Ops per second": 58745757.6, "ns per ops": 17.03, "Ops per threads": 12238699.0, "Ops per procs": 12238699.0, "Ops/sec/procs": 407956.65, "ns per ops/procs": 2451.82}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 238205503.0, "Ops per second": 7940183.43, "ns per ops": 126.15, "Ops per threads": 238205503.0, "Ops per procs": 238205503.0, "Ops/sec/procs": 7940183.43, "ns per ops/procs": 126.15}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 273773706.0, "Ops per second": 9125790.0, "ns per ops": 109.0, "Ops per threads": 273773706.0, "Ops per procs": 273773706.0, "Ops/sec/procs": 9125790.0, "ns per ops/procs": 109.0}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30011.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 365464714.0, "Ops per second": 12177618.57, "ns per ops": 82.12, "Ops per threads": 182732357.0, "Ops per procs": 182732357.0, "Ops/sec/procs": 6088809.29, "ns per ops/procs": 164.24}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 41222872249.0, "Ops per second": 1373881145.98, "ns per ops": 0.73, "Ops per threads": 429404919.0, "Ops per procs": 429404919.0, "Ops/sec/procs": 14311261.94, "ns per ops/procs": 69.88}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30053.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 21820837.0, "Ops per second": 726076.7, "ns per ops": 1377.26, "Ops per threads": 227300.0, "Ops per procs": 227300.0, "Ops/sec/procs": 7563.3, "ns per ops/procs": 132217.44}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1180102488.0, "Ops per second": 39336749.6, "ns per ops": 25.46, "Ops per threads": 24585468.0, "Ops per procs": 24585468.0, "Ops/sec/procs": 819515.62, "ns per ops/procs": 1222.29}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 389502485.0, "Ops per second": 12983416.0, "ns per ops": 77.0, "Ops per threads": 5409756.0, "Ops per procs": 5409756.0, "Ops/sec/procs": 180325.0, "ns per ops/procs": 5563.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12259461830.0, "Ops per second": 408287332.77, "ns per ops": 2.45, "Ops per threads": 766216364.0, "Ops per procs": 766216364.0, "Ops/sec/procs": 25517958.3, "ns per ops/procs": 39.19}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3428043429.0, "Ops per second": 114268114.0, "ns per ops": 8.0, "Ops per threads": 214252714.0, "Ops per procs": 214252714.0, "Ops/sec/procs": 7141757.0, "ns per ops/procs": 140.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6549072846.0, "Ops per second": 218136743.72, "ns per ops": 4.58, "Ops per threads": 818634105.0, "Ops per procs": 818634105.0, "Ops/sec/procs": 27267092.96, "ns per ops/procs": 36.67}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 333295365.0, "Ops per second": 11109845.5, "ns per ops": 90.17, "Ops per threads": 166647682.0, "Ops per procs": 166647682.0, "Ops/sec/procs": 5554922.75, "ns per ops/procs": 180.33}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 1979138187.0, "Ops per second": 65971272.9, "ns per ops": 15.19, "Ops per threads": 13744015.0, "Ops per procs": 13744015.0, "Ops/sec/procs": 458133.84, "ns per ops/procs": 2187.53}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 374484658.0, "Ops per second": 12482821.93, "ns per ops": 80.26, "Ops per threads": 93621164.0, "Ops per procs": 93621164.0, "Ops/sec/procs": 3120705.48, "ns per ops/procs": 321.04}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 869533479.0, "Ops per second": 28984449.3, "ns per ops": 34.57, "Ops per threads": 12076853.0, "Ops per procs": 12076853.0, "Ops/sec/procs": 402561.8, "ns per ops/procs": 2488.99}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6548264549.0, "Ops per second": 218108494.76, "ns per ops": 4.58, "Ops per threads": 818533068.0, "Ops per procs": 818533068.0, "Ops/sec/procs": 27263561.84, "ns per ops/procs": 36.68}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40994346475.0, "Ops per second": 1366270585.15, "ns per ops": 0.73, "Ops per threads": 427024442.0, "Ops per procs": 427024442.0, "Ops/sec/procs": 14231985.26, "ns per ops/procs": 70.26}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30047.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 22479031.0, "Ops per second": 748104.76, "ns per ops": 1336.71, "Ops per threads": 234156.0, "Ops per procs": 234156.0, "Ops/sec/procs": 7792.76, "ns per ops/procs": 128324.27}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20562252776.0, "Ops per second": 685305729.99, "ns per ops": 1.46, "Ops per threads": 428380266.0, "Ops per procs": 428380266.0, "Ops/sec/procs": 14277202.71, "ns per ops/procs": 70.04}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16128747560.0, "Ops per second": 537575583.44, "ns per ops": 1.86, "Ops per threads": 672031148.0, "Ops per procs": 672031148.0, "Ops/sec/procs": 22398982.64, "ns per ops/procs": 44.64}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1206770025.0, "Ops per second": 40225667.0, "ns per ops": 24.0, "Ops per threads": 25141042.0, "Ops per procs": 25141042.0, "Ops/sec/procs": 838034.0, "ns per ops/procs": 1197.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 273741770.0, "Ops per second": 9124725.0, "ns per ops": 109.0, "Ops per threads": 273741770.0, "Ops per procs": 273741770.0, "Ops/sec/procs": 9124725.0, "ns per ops/procs": 109.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1341431751.0, "Ops per second": 44714391.7, "ns per ops": 22.4, "Ops per threads": 13973247.0, "Ops per procs": 13973247.0, "Ops/sec/procs": 465774.91, "ns per ops/procs": 2150.72}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 533432907.0, "Ops per second": 17781096.9, "ns per ops": 56.36, "Ops per threads": 66679113.0, "Ops per procs": 66679113.0, "Ops/sec/procs": 2222637.11, "ns per ops/procs": 450.87}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16118064891.0, "Ops per second": 537218956.53, "ns per ops": 1.86, "Ops per threads": 671586037.0, "Ops per procs": 671586037.0, "Ops/sec/procs": 22384123.19, "ns per ops/procs": 44.67}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 396848421.0, "Ops per second": 13228280.0, "ns per ops": 75.0, "Ops per threads": 5511783.0, "Ops per procs": 5511783.0, "Ops/sec/procs": 183726.0, "ns per ops/procs": 5460.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12259535357.0, "Ops per second": 408290170.13, "ns per ops": 2.45, "Ops per threads": 766220959.0, "Ops per procs": 766220959.0, "Ops/sec/procs": 25518135.63, "ns per ops/procs": 39.19}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3424657532.0, "Ops per second": 114155251.0, "ns per ops": 8.0, "Ops per threads": 214041095.0, "Ops per procs": 214041095.0, "Ops/sec/procs": 7134703.0, "ns per ops/procs": 140.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1221519267.0, "Ops per second": 40717308.0, "ns per ops": 24.0, "Ops per threads": 25448318.0, "Ops per procs": 25448318.0, "Ops/sec/procs": 848277.0, "ns per ops/procs": 1182.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 672790248.0, "Ops per second": 22426341.6, "ns per ops": 44.7, "Ops per threads": 42049390.0, "Ops per procs": 42049390.0, "Ops/sec/procs": 1401646.35, "ns per ops/procs": 715.24}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 401818666.0, "Ops per second": 13393955.0, "ns per ops": 74.0, "Ops per threads": 5580814.0, "Ops per procs": 5580814.0, "Ops/sec/procs": 186027.0, "ns per ops/procs": 5393.0}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30071.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 19291025.0, "Ops per second": 641495.1, "ns per ops": 1558.86, "Ops per threads": 133965.0, "Ops per procs": 133965.0, "Ops/sec/procs": 4454.83, "ns per ops/procs": 224475.6}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 961052463.0, "Ops per second": 32035082.0, "ns per ops": 31.0, "Ops per threads": 240263115.0, "Ops per procs": 240263115.0, "Ops/sec/procs": 8008770.0, "ns per ops/procs": 125.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 426283101.0, "Ops per second": 14209436.0, "ns per ops": 70.0, "Ops per threads": 4440448.0, "Ops per procs": 4440448.0, "Ops/sec/procs": 148014.0, "ns per ops/procs": 6778.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 527777636.0, "Ops per second": 17592587.87, "ns per ops": 56.96, "Ops per threads": 65972204.0, "Ops per procs": 65972204.0, "Ops/sec/procs": 2199073.48, "ns per ops/procs": 455.68}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 42074502.0, "Ops per second": 1402126.6, "ns per ops": 713.2, "Ops per threads": 1753104.0, "Ops per procs": 1753104.0, "Ops/sec/procs": 58421.94, "ns per ops/procs": 17116.86}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 42287868.0, "Ops per second": 1409248.52, "ns per ops": 709.6, "Ops per threads": 1761994.0, "Ops per procs": 1761994.0, "Ops/sec/procs": 58718.69, "ns per ops/procs": 17030.35}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30020.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 40756339.0, "Ops per second": 1357614.84, "ns per ops": 736.59, "Ops per threads": 849090.0, "Ops per procs": 849090.0, "Ops/sec/procs": 28283.64, "ns per ops/procs": 35356.13}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 539016587.0, "Ops per second": 17967219.57, "ns per ops": 55.77, "Ops per threads": 67377073.0, "Ops per procs": 67377073.0, "Ops/sec/procs": 2245902.45, "ns per ops/procs": 446.17}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 533657448.0, "Ops per second": 17788581.6, "ns per ops": 56.33, "Ops per threads": 66707181.0, "Ops per procs": 66707181.0, "Ops/sec/procs": 2223572.7, "ns per ops/procs": 450.66}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30004.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 35748206043.0, "Ops per second": 1191435275.01, "ns per ops": 0.84, "Ops per threads": 496502861.0, "Ops per procs": 496502861.0, "Ops/sec/procs": 16547712.15, "ns per ops/procs": 60.43}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 61345494458.0, "Ops per second": 2044499886.57, "ns per ops": 0.49, "Ops per threads": 426010378.0, "Ops per procs": 426010378.0, "Ops/sec/procs": 14197915.88, "ns per ops/procs": 70.43}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 42013391.0, "Ops per second": 1400100.06, "ns per ops": 714.23, "Ops per threads": 1750557.0, "Ops per procs": 1750557.0, "Ops/sec/procs": 58337.5, "ns per ops/procs": 17141.63}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3363680534.0, "Ops per second": 112032672.3, "ns per ops": 8.93, "Ops per threads": 840920133.0, "Ops per procs": 840920133.0, "Ops/sec/procs": 28008168.08, "ns per ops/procs": 35.7}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 329807385.0, "Ops per second": 10993579.5, "ns per ops": 91.12, "Ops per threads": 164903692.0, "Ops per procs": 164903692.0, "Ops/sec/procs": 5496789.75, "ns per ops/procs": 182.24}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 173205579.0, "Ops per second": 5773046.79, "ns per ops": 173.22, "Ops per threads": 43301394.0, "Ops per procs": 43301394.0, "Ops/sec/procs": 1443261.7, "ns per ops/procs": 692.88}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 273745418.0, "Ops per second": 9124847.0, "ns per ops": 109.0, "Ops per threads": 273745418.0, "Ops per procs": 273745418.0, "Ops/sec/procs": 9124847.0, "ns per ops/procs": 109.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1220724391.0, "Ops per second": 40690813.0, "ns per ops": 24.0, "Ops per threads": 25431758.0, "Ops per procs": 25431758.0, "Ops/sec/procs": 847725.0, "ns per ops/procs": 1183.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3339007521.0, "Ops per second": 111300250.0, "ns per ops": 9.0, "Ops per threads": 208687970.0, "Ops per procs": 208687970.0, "Ops/sec/procs": 6956265.0, "ns per ops/procs": 144.0}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30050.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 22661144.0, "Ops per second": 754099.87, "ns per ops": 1326.08, "Ops per threads": 236053.0, "Ops per procs": 236053.0, "Ops/sec/procs": 7855.21, "ns per ops/procs": 127304.09}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 173803669.0, "Ops per second": 5792971.75, "ns per ops": 172.62, "Ops per threads": 43450917.0, "Ops per procs": 43450917.0, "Ops/sec/procs": 1448242.94, "ns per ops/procs": 690.49}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 972577162.0, "Ops per second": 32419238.73, "ns per ops": 30.85, "Ops per threads": 13508016.0, "Ops per procs": 13508016.0, "Ops/sec/procs": 450267.2, "ns per ops/procs": 2221.4}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30026.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 16516154.0, "Ops per second": 550047.32, "ns per ops": 1818.03, "Ops per threads": 86021.0, "Ops per procs": 86021.0, "Ops/sec/procs": 2864.83, "ns per ops/procs": 349060.88}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3414525310.0, "Ops per second": 113817510.0, "ns per ops": 8.0, "Ops per threads": 213407831.0, "Ops per procs": 213407831.0, "Ops/sec/procs": 7113594.0, "ns per ops/procs": 141.0}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 171767210.0, "Ops per second": 5725092.13, "ns per ops": 174.67, "Ops per threads": 42941802.0, "Ops per procs": 42941802.0, "Ops/sec/procs": 1431273.03, "ns per ops/procs": 698.68}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12289721432.0, "Ops per second": 409292377.36, "ns per ops": 2.44, "Ops per threads": 768107589.0, "Ops per procs": 768107589.0, "Ops/sec/procs": 25580773.58, "ns per ops/procs": 39.09}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 238035663.0, "Ops per second": 7934522.1, "ns per ops": 126.24, "Ops per threads": 238035663.0, "Ops per procs": 238035663.0, "Ops/sec/procs": 7934522.1, "ns per ops/procs": 126.24}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 728681806.0, "Ops per second": 24289393.53, "ns per ops": 41.2, "Ops per threads": 30361741.0, "Ops per procs": 30361741.0, "Ops/sec/procs": 1012058.06, "ns per ops/procs": 988.79}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1776933036.0, "Ops per second": 59184901.43, "ns per ops": 16.9, "Ops per threads": 888466518.0, "Ops per procs": 888466518.0, "Ops/sec/procs": 29592450.72, "ns per ops/procs": 33.79}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2497804715.0, "Ops per second": 83260157.17, "ns per ops": 12.01, "Ops per threads": 13009399.0, "Ops per procs": 13009399.0, "Ops/sec/procs": 433646.65, "ns per ops/procs": 2306.42}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 533189745.0, "Ops per second": 17772991.5, "ns per ops": 56.38, "Ops per threads": 66648718.0, "Ops per procs": 66648718.0, "Ops/sec/procs": 2221623.94, "ns per ops/procs": 451.05}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 536483869.0, "Ops per second": 17882795.63, "ns per ops": 56.04, "Ops per threads": 67060483.0, "Ops per procs": 67060483.0, "Ops/sec/procs": 2235349.45, "ns per ops/procs": 448.3}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 360644730.0, "Ops per second": 12021491.0, "ns per ops": 83.0, "Ops per threads": 3756715.0, "Ops per procs": 3756715.0, "Ops/sec/procs": 125223.0, "ns per ops/procs": 8011.0}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 80140488.0, "Ops per second": 2671028.2, "ns per ops": 374.39, "Ops per threads": 10017561.0, "Ops per procs": 10017561.0, "Ops/sec/procs": 333878.52, "ns per ops/procs": 2995.1}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 361304154.0, "Ops per second": 12043471.0, "ns per ops": 83.0, "Ops per threads": 3763584.0, "Ops per procs": 3763584.0, "Ops/sec/procs": 125452.0, "ns per ops/procs": 7997.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 528322152.0, "Ops per second": 17610738.4, "ns per ops": 56.9, "Ops per threads": 66040269.0, "Ops per procs": 66040269.0, "Ops/sec/procs": 2201342.3, "ns per ops/procs": 455.22}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1219707927.0, "Ops per second": 40656930.0, "ns per ops": 24.0, "Ops per threads": 25410581.0, "Ops per procs": 25410581.0, "Ops/sec/procs": 847019.0, "ns per ops/procs": 1184.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 399589107.0, "Ops per second": 13319636.0, "ns per ops": 75.0, "Ops per threads": 5549848.0, "Ops per procs": 5549848.0, "Ops/sec/procs": 184994.0, "ns per ops/procs": 5423.0}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30051.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 22185943.0, "Ops per second": 738259.5, "ns per ops": 1354.54, "Ops per threads": 231103.0, "Ops per procs": 231103.0, "Ops/sec/procs": 7690.2, "ns per ops/procs": 130035.58}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 51196499.0, "Ops per second": 1706220.62, "ns per ops": 586.09, "Ops per threads": 3199781.0, "Ops per procs": 3199781.0, "Ops/sec/procs": 106638.79, "ns per ops/procs": 9377.45}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 379863297.0, "Ops per second": 12662109.9, "ns per ops": 79.12, "Ops per threads": 94965824.0, "Ops per procs": 94965824.0, "Ops/sec/procs": 3165527.48, "ns per ops/procs": 316.49}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 500061662.0, "Ops per second": 16668722.0, "ns per ops": 60.0, "Ops per threads": 250030831.0, "Ops per procs": 250030831.0, "Ops/sec/procs": 8334361.0, "ns per ops/procs": 120.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3360941149.0, "Ops per second": 111942207.63, "ns per ops": 8.93, "Ops per threads": 840235287.0, "Ops per procs": 840235287.0, "Ops/sec/procs": 27985551.91, "ns per ops/procs": 35.73}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 331581223.0, "Ops per second": 11052707.43, "ns per ops": 90.63, "Ops per threads": 165790611.0, "Ops per procs": 165790611.0, "Ops/sec/procs": 5526353.72, "ns per ops/procs": 181.27}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 378356527.0, "Ops per second": 12611884.23, "ns per ops": 79.43, "Ops per threads": 94589131.0, "Ops per procs": 94589131.0, "Ops/sec/procs": 3152971.06, "ns per ops/procs": 317.73}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20543753459.0, "Ops per second": 684688201.29, "ns per ops": 1.46, "Ops per threads": 427994863.0, "Ops per procs": 427994863.0, "Ops/sec/procs": 14264337.53, "ns per ops/procs": 70.1}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 300341804.0, "Ops per second": 10011393.0, "ns per ops": 100.0, "Ops per threads": 2085706.0, "Ops per procs": 2085706.0, "Ops/sec/procs": 69523.0, "ns per ops/procs": 14430.0}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30025.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 16685764.0, "Ops per second": 555716.38, "ns per ops": 1799.48, "Ops per threads": 86905.0, "Ops per procs": 86905.0, "Ops/sec/procs": 2894.36, "ns per ops/procs": 345499.99}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30047.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 22249563.0, "Ops per second": 740482.27, "ns per ops": 1350.47, "Ops per threads": 231766.0, "Ops per procs": 231766.0, "Ops/sec/procs": 7713.36, "ns per ops/procs": 129645.24}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30025.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1776909132.0, "Ops per second": 59180357.91, "ns per ops": 16.9, "Ops per threads": 888454566.0, "Ops per procs": 888454566.0, "Ops/sec/procs": 29590178.95, "ns per ops/procs": 33.79}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 41570420.0, "Ops per second": 1385327.78, "ns per ops": 721.85, "Ops per threads": 1732100.0, "Ops per procs": 1732100.0, "Ops/sec/procs": 57721.99, "ns per ops/procs": 17324.42}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30004.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 35798455306.0, "Ops per second": 1193117443.01, "ns per ops": 0.84, "Ops per threads": 497200768.0, "Ops per procs": 497200768.0, "Ops/sec/procs": 16571075.6, "ns per ops/procs": 60.35}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 50443329.0, "Ops per second": 1681108.89, "ns per ops": 594.85, "Ops per threads": 3152708.0, "Ops per procs": 3152708.0, "Ops/sec/procs": 105069.31, "ns per ops/procs": 9517.53}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16129323078.0, "Ops per second": 537595137.66, "ns per ops": 1.86, "Ops per threads": 672055128.0, "Ops per procs": 672055128.0, "Ops/sec/procs": 22399797.4, "ns per ops/procs": 44.64}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40796600651.0, "Ops per second": 1359647638.29, "ns per ops": 0.74, "Ops per threads": 424964590.0, "Ops per procs": 424964590.0, "Ops/sec/procs": 14162996.23, "ns per ops/procs": 70.61}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30083.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 18531845.0, "Ops per second": 616018.36, "ns per ops": 1623.33, "Ops per threads": 128693.0, "Ops per procs": 128693.0, "Ops/sec/procs": 4277.91, "ns per ops/procs": 233759.27}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 41686852.0, "Ops per second": 1389210.12, "ns per ops": 719.83, "Ops per threads": 1736952.0, "Ops per procs": 1736952.0, "Ops/sec/procs": 57883.76, "ns per ops/procs": 17276.0}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30007.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 368114720.0, "Ops per second": 12267288.09, "ns per ops": 81.52, "Ops per threads": 184057360.0, "Ops per procs": 184057360.0, "Ops/sec/procs": 6133644.04, "ns per ops/procs": 163.04}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30088.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 17569186.0, "Ops per second": 583922.1, "ns per ops": 1712.56, "Ops per threads": 122008.0, "Ops per procs": 122008.0, "Ops/sec/procs": 4055.01, "ns per ops/procs": 246608.24}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3406107324.0, "Ops per second": 113536910.0, "ns per ops": 8.0, "Ops per threads": 212881707.0, "Ops per procs": 212881707.0, "Ops/sec/procs": 7096056.0, "ns per ops/procs": 141.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1240172589.0, "Ops per second": 41339086.0, "ns per ops": 24.0, "Ops per threads": 25836928.0, "Ops per procs": 25836928.0, "Ops/sec/procs": 861230.0, "ns per ops/procs": 1164.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 274033303.0, "Ops per second": 9134443.0, "ns per ops": 109.0, "Ops per threads": 274033303.0, "Ops per procs": 274033303.0, "Ops/sec/procs": 9134443.0, "ns per ops/procs": 109.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 379797876.0, "Ops per second": 12659929.2, "ns per ops": 79.13, "Ops per threads": 94949469.0, "Ops per procs": 94949469.0, "Ops/sec/procs": 3164982.3, "ns per ops/procs": 316.52}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 947802972.0, "Ops per second": 31593432.0, "ns per ops": 31.0, "Ops per threads": 236950743.0, "Ops per procs": 236950743.0, "Ops/sec/procs": 7898358.0, "ns per ops/procs": 127.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 704265830.0, "Ops per second": 23475527.67, "ns per ops": 42.63, "Ops per threads": 29344409.0, "Ops per procs": 29344409.0, "Ops/sec/procs": 978146.99, "ns per ops/procs": 1023.14}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30006.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 36436065977.0, "Ops per second": 1214290982.74, "ns per ops": 0.82, "Ops per threads": 506056471.0, "Ops per procs": 506056471.0, "Ops/sec/procs": 16865152.54, "ns per ops/procs": 59.29}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 42560075.0, "Ops per second": 1418324.29, "ns per ops": 705.06, "Ops per threads": 1773336.0, "Ops per procs": 1773336.0, "Ops/sec/procs": 59096.85, "ns per ops/procs": 16921.38}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30085.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 18232395.0, "Ops per second": 606014.58, "ns per ops": 1650.13, "Ops per threads": 126613.0, "Ops per procs": 126613.0, "Ops/sec/procs": 4208.43, "ns per ops/procs": 237618.05}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 41500410604.0, "Ops per second": 1383115313.23, "ns per ops": 0.72, "Ops per threads": 432295943.0, "Ops per procs": 432295943.0, "Ops/sec/procs": 14407451.18, "ns per ops/procs": 69.41}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 1920391366.0, "Ops per second": 64013045.53, "ns per ops": 15.65, "Ops per threads": 13336051.0, "Ops per procs": 13336051.0, "Ops/sec/procs": 444535.04, "ns per ops/procs": 2253.59}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 272589597.0, "Ops per second": 9086319.0, "ns per ops": 110.0, "Ops per threads": 1892983.0, "Ops per procs": 1892983.0, "Ops/sec/procs": 63099.0, "ns per ops/procs": 15899.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 535423186.0, "Ops per second": 17847439.53, "ns per ops": 56.14, "Ops per threads": 66927898.0, "Ops per procs": 66927898.0, "Ops/sec/procs": 2230929.94, "ns per ops/procs": 449.15}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6537955914.0, "Ops per second": 217766086.7, "ns per ops": 4.59, "Ops per threads": 817244489.0, "Ops per procs": 817244489.0, "Ops/sec/procs": 27220760.84, "ns per ops/procs": 36.74}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1777758592.0, "Ops per second": 59212349.67, "ns per ops": 16.89, "Ops per threads": 888879296.0, "Ops per procs": 888879296.0, "Ops/sec/procs": 29606174.83, "ns per ops/procs": 33.78}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30021.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41139988.0, "Ops per second": 1370342.35, "ns per ops": 729.74, "Ops per threads": 857083.0, "Ops per procs": 857083.0, "Ops/sec/procs": 28548.8, "ns per ops/procs": 35027.74}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30010.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 367420990.0, "Ops per second": 12242963.44, "ns per ops": 81.68, "Ops per threads": 183710495.0, "Ops per procs": 183710495.0, "Ops/sec/procs": 6121481.72, "ns per ops/procs": 163.36}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2341231403.0, "Ops per second": 78041046.77, "ns per ops": 12.83, "Ops per threads": 12193913.0, "Ops per procs": 12193913.0, "Ops/sec/procs": 406463.79, "ns per ops/procs": 2462.41}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30061.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40915153648.0, "Ops per second": 1361064496.69, "ns per ops": 0.73, "Ops per threads": 426199517.0, "Ops per procs": 426199517.0, "Ops/sec/procs": 14177755.17, "ns per ops/procs": 70.53}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 238301806.0, "Ops per second": 7943393.53, "ns per ops": 126.1, "Ops per threads": 238301806.0, "Ops per procs": 238301806.0, "Ops/sec/procs": 7943393.53, "ns per ops/procs": 126.1}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 399959519.0, "Ops per second": 13331983.0, "ns per ops": 75.0, "Ops per threads": 4166244.0, "Ops per procs": 4166244.0, "Ops/sec/procs": 138874.0, "ns per ops/procs": 7224.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 923251633.0, "Ops per second": 30775054.43, "ns per ops": 32.5, "Ops per threads": 12822939.0, "Ops per procs": 12822939.0, "Ops/sec/procs": 427431.31, "ns per ops/procs": 2339.86}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 61347909654.0, "Ops per second": 2044285055.62, "ns per ops": 0.49, "Ops per threads": 426027150.0, "Ops per procs": 426027150.0, "Ops/sec/procs": 14196424.0, "ns per ops/procs": 70.44}]] -
doc/theses/thierry_delisle_PhD/thesis/glossary.tex
r12df6fe r4520b77e 14 14 % Definitions 15 15 16 \longnewglossaryentry{ thrd}17 {name={ thread}}16 \longnewglossaryentry{at} 17 {name={Thread},text={thread}} 18 18 { 19 Threads created and managed inside user-space. Each thread has its own stack and its own thread of execution. User-level threads are invisible to the underlying operating system.19 A thread is an independent sequential execution path through a program. Each thread is scheduled for execution separately and independently from other threads. Systems offer one or more concrete implementations of this concept, \eg \gls{kthrd}, \gls{job}, task. However, most of the concepts of scheduling are independent of the particular implementations of the thread representation. For this reason, this document uses the term \gls{at} to mean any of these representation that meets the general definition. 20 20 21 \textit{Synonyms : User threads, Lightweight threads, Green threads, Virtual threads, Tasks.}21 \textit{Synonyms : Tasks, Jobs, Blocks.} 22 22 } 23 23 24 24 \longnewglossaryentry{proc} 25 {name={ processor}}25 {name={Processor},text={processor}} 26 26 { 27 Entity that executes a \gls{at}, \ie the resource being scheduled by the scheduler. In kernel-level threading, \ats are kernel threads and \procs are the \glspl{hthrd} on which the kernel threads are scheduled. In user-level threading and thread pools, \procs are kernel threads. 27 28 29 \textit{Synonyms : Server, Worker.} 28 30 } 29 31 30 32 \longnewglossaryentry{rQ} 31 {name={ ready-queue}}33 {name={Ready Queue}, text={ready-queue}} 32 34 { 33 35 Data structure holding \ats that are ready to \glslink{atrun}{run}. Often a \glsxtrshort{fifo} queue for fairness, but can take many different forms, \eg binary tree and priority queue are also common. 34 36 } 35 37 36 38 \longnewglossaryentry{uthrding} 37 {name={ user-level threading}}39 {name={User-Level Threading},text={user-level threading}} 38 40 { 39 41 Threading model where a scheduler runs in users space and maps threads managed and created inside the user-space onto \glspl{kthrd}. 40 42 41 43 \textit{Synonyms : User threads, Lightweight threads, Green threads, Virtual threads, Tasks.} … … 43 45 44 46 \longnewglossaryentry{rmr} 45 {name={ remote memory reference}}47 {name={Remote Memory Reference},text={remote memory reference}} 46 48 { 47 49 A memory reference to an address not in the current \gls{hthrd}'s cache is a remote reference. Memory references that \emph{are} in the current \gls{hthrd}'s cache is a \newterm{local} memory reference. For example, a cache line that must be updated from the any cache on another socket, or from RAM in a \glsxtrshort{numa} context. 48 50 } 49 51 … … 51 53 52 54 \longnewglossaryentry{hthrd} 53 {name={ hardware thread}}55 {name={Hardware Threading},text={hardware thread}} 54 56 { 55 Threads representing the underlying hardware directly, \eg the CPU core, or hyper-thread if the hardware supports multiple threads of execution per core. The number of hardware threads is considered to be always fixed to a specific number determined by the hardware.57 Threads representing the underlying hardware, \eg a CPU core or hyper-thread, if the hardware supports multiple threads of execution per core. The number of hardware threads present is fixed on any given computer. 56 58 57 \textit{Synonyms : }59 \textit{Synonyms : Core, Hyper-Thread, Processing Unit, CPU.} 58 60 } 59 61 60 62 \longnewglossaryentry{kthrd} 61 {name={ kernel-level thread}}63 {name={Kernel-Level Thread},text={kernel-level thread}} 62 64 { 63 Threads created and managed inside kernel -space. Eachthread has its own stack and its own thread of execution. Kernel-level threads are owned, managed and scheduled by the underlying operating system.65 Threads created and managed inside kernel space. Each kernel thread has its own stack and its own thread of execution. Kernel-level threads are owned, managed and scheduled by the underlying operating system. 64 66 65 67 \textit{Synonyms : OS threads, Hardware threads, Physical threads.} … … 67 69 68 70 \longnewglossaryentry{fiber} 69 {name={ fiber}}71 {name={Fiber},text={fiber}} 70 72 { 71 Fibers are non-preemptive user-level threads. They share most of the c aracteristics of user-level threads except that they cannot be preempted by another fiber.73 Fibers are non-preemptive user-level threads. They share most of the characteristics of user-level threads except that they cannot be preempted by another fiber. 72 74 73 75 \textit{Synonyms : Tasks.} … … 75 77 76 78 \longnewglossaryentry{job} 77 {name={ job}}79 {name={Job},text={job}} 78 80 { 79 81 Unit of work, often sent to a thread pool or worker pool to be executed. Has neither its own stack nor its own thread of execution. … … 83 85 84 86 \longnewglossaryentry{pool} 85 {name={ thread-pool}}87 {name={Thread Pool},text={thread-pool}} 86 88 { 87 Group of homogene uous threads that loop executing units of works after another.89 Group of homogeneous threads that loop executing units of works. Often executing \glspl{jobs}. 88 90 89 \textit{Synonyms : }91 \textit{Synonyms : Executor.} 90 92 } 91 93 92 94 \longnewglossaryentry{preemption} 93 {name={ preemption}}95 {name={Preemption},text={preemption}} 94 96 { 95 97 Involuntary context switch imposed on threads at a given rate. … … 98 100 } 99 101 100 101 102 \longnewglossaryentry{at}103 {name={task}}104 {105 Abstract object representing an unit of work. Systems will offer one or more concrete implementations of this concept (\eg \gls{kthrd}, \gls{job}), however, most of the concept of schedulings are independent of the particular implementations of the work representation. For this reason, this document use the term \Gls{at} to mean any representation and not one in particular.106 }107 108 102 \longnewglossaryentry{atsched} 109 103 {name={Scheduling a \gls{at}}} 110 104 { 111 Scheduling a n \gls{at} refers to the act of notifying the scheduler that a task is ready to be ran. When representing the scheduler as a queue of tasks, scheduling is the act of pushing a task onto the end of the queue. This doesn't necesserily means the task will ever be allocated CPU time (\gls{atrun}), for example, if the system terminates abruptly, scheduled \glspl{at} will probablynever run.105 Scheduling a \at refers to notifying the scheduler that a \at is ready to run. When representing the scheduler as a queue of \ats, scheduling is the act of pushing a \at onto the end of the queue. This operation does not necessarily mean the \at is guaranteed CPU time (\gls{atrun}), \eg if the program terminates abruptly, scheduled \glspl{at} never run. 112 106 113 \textit{Synonyms : None.}107 \textit{Synonyms : Unparking.} 114 108 } 115 109 … … 117 111 {name={Running a \gls{at}}} 118 112 { 119 Running a n \gls{at} refers to the act of allocating CPU time to a task that is ready to run. When representing the scheduler as a queue of tasks, running is the act of poping a task from the front of the queue and putting it onto a \gls{proc}. The \gls{at} can than accomplish some or all of the work it is programmed to do.113 Running a \at refers to allocating CPU time to a \at that is ready to run. When representing the scheduler as a queue of \ats, running is the act of popping a \at from the front of the queue and putting it onto a \gls{proc}. The \gls{at} can then accomplish some or all of the work it is programmed to do. 120 114 121 115 \textit{Synonyms : None.} … … 123 117 124 118 \longnewglossaryentry{atmig} 125 {name={ migration of \gls{at}}}119 {name={\Glspl{at} Migration}} 126 120 { 127 Migration refers to the idea of an \gls{at} running on a different worker/processor than the last time it was run. It is generally preferable to minimise migration as it incurs cost but any load balancing among workersrequires some amount of migration.121 Migration refers to the idea of an \gls{at} running on a different \proc than the last time it was run. It is generally preferable to minimize migration as it incurs cost but any load balancing among \proc requires some amount of migration. 128 122 129 123 \textit{Synonyms : None.} … … 131 125 132 126 \longnewglossaryentry{atpass} 133 {name={ overtaking \gls{at}}}127 {name={Overtaking \gls{at}}} 134 128 { 135 129 When representing the scheduler as a queue of \glspl{at}, overtaking is the act breaking the FIFO-ness of the queue by moving a \gls{at} in front of some other \gls{at} when it arrived after. This remains true for schedulers that do not use a FIFO queue, when the order in which the \glspl{at} are \glslink{atsched}{scheduled} and \glslink{atrun}{run} in a different order. A \gls{at} is said to \emph{overtake} another if it is run \emph{before} but was \emph{scheduled} after the other \gls{at}. … … 139 133 140 134 \longnewglossaryentry{atblock} 141 {name={ Blocking an \gls{at}}}135 {name={\Gls{at} Blocking}} 142 136 { 143 Blocking an abstract task refers to the act of taking a task that us running on a CPU off the CPU. Unless no other task is ready, this action is generally immediately followed by running an other task.137 \Gls{at} blocking means taking a running \at off a CPU. Unless no other \at is ready, this action is immediately followed by running another \at. 144 138 145 \textit{Synonyms : None.}139 \textit{Synonyms : Parking.} 146 140 } 147 141 … … 149 143 {name={Running to completion}} 150 144 { 151 Running to completion refers to the entire sequence of : being scheduled, running and blocking, for a given task.145 Running to completion refers to the entire sequence of : being scheduled, running and blocking, for a given \at. 152 146 153 147 See also \gls{atsched}, \gls{atrun}, \gls{atblock} … … 157 151 158 152 \longnewglossaryentry{load} 159 {name={System Load} }153 {name={System Load},text={load}} 160 154 { 161 The load is refers to the rate at which \glspl{at} are \glslink{atsched}{scheduled} versus the rate at which they are \glslink{atrun}{run}. When \glspl{at} are being scheduled faster than they are run, the system is considered \emph{overloaded}. When \glspl{at} are being run faster than they are scheduled, the system is considered \emph{underloaded}. Conrrespondingly, if both rates are equal, the system is considered \emph{loaded}. Note that the system is considered loaded only of the rate at which \glspl{at} are scheduled/run is non-zero, otherwise the system is empty, it has no load. 155 The system load refers to the rate at which \glspl{at} are \glslink{atsched}{scheduled} versus the rate at which they are \glslink{atrun}{run}. When \glspl{at} are being scheduled faster than they are run, the system is considered \emph{overloaded}. When \glspl{at} are being run faster than they are scheduled, the system is considered \emph{underloaded}. Correspondingly, if both rates are equal, the system is considered \emph{loaded}. Note the system is considered loaded only if the rate at which \glspl{at} are scheduled/run is non-zero, otherwise the system is empty, \ie it has no load. 156 157 \textit{Synonyms : CPU Load, System Load.} 162 158 } 163 159 -
doc/theses/thierry_delisle_PhD/thesis/local.bib
r12df6fe r4520b77e 429 429 } 430 430 431 @inproceedings{Albers12, 432 author = {Susanne Albers and Antonios Antoniadis}, 433 title = {Race to Idle: New Algorithms for Speed Scaling with a Sleep State}, 434 booktitle = {Proceedings of the 2012 Annual ACM-SIAM Symposium on Discrete Algorithms (SODA)}, 435 doi = {10.1137/1.9781611973099.100}, 436 URL = {https://epubs.siam.org/doi/abs/10.1137/1.9781611973099.100}, 437 eprint = {https://epubs.siam.org/doi/pdf/10.1137/1.9781611973099.100}, 438 year = 2012, 439 month = jan, 440 pages = {1266-1285}, 441 } 442 443 @inproceedings{atikoglu2012workload, 444 title={Workload analysis of a large-scale key-value store}, 445 author={Atikoglu, Berk and Xu, Yuehai and Frachtenberg, Eitan and Jiang, Song and Paleczny, Mike}, 446 booktitle={Proceedings of the 12th ACM SIGMETRICS/PERFORMANCE joint international conference on Measurement and Modeling of Computer Systems}, 447 pages={53--64}, 448 year={2012} 449 } 450 451 @article{schillings1996engineering, 452 title={Be engineering insights: Benaphores}, 453 author={Schillings, Benoit}, 454 journal={Be Newsletters}, 455 volume={1}, 456 number={26}, 457 year={1996} 458 } 459 460 % Trevor's relaxed FIFO list 461 @inproceedings{alistarh2018relaxed, 462 title={Relaxed schedulers can efficiently parallelize iterative algorithms}, 463 author={Alistarh, Dan and Brown, Trevor and Kopinsky, Justin and Nadiradze, Giorgi}, 464 booktitle={Proceedings of the 2018 ACM Symposium on Principles of Distributed Computing}, 465 pages={377--386}, 466 year={2018} 467 } 468 469 @article{zhuravlev2012survey, 470 title={Survey of energy-cognizant scheduling techniques}, 471 author={Zhuravlev, Sergey and Saez, Juan Carlos and Blagodurov, Sergey and Fedorova, Alexandra and Prieto, Manuel}, 472 journal={IEEE Transactions on Parallel and Distributed Systems}, 473 volume={24}, 474 number={7}, 475 pages={1447--1464}, 476 year={2012}, 477 publisher={IEEE} 478 } 479 480 @article{vikranth2013topology, 481 title={Topology aware task stealing for on-chip NUMA multi-core processors}, 482 author={Vikranth, BRWACRR and Wankar, Rajeev and Rao, C Raghavendra}, 483 journal={Procedia Computer Science}, 484 volume={18}, 485 pages={379--388}, 486 year={2013}, 487 publisher={Elsevier} 488 } 489 490 @inproceedings{min2011hierarchical, 491 title={Hierarchical work stealing on manycore clusters}, 492 author={Min, Seung-Jai and Iancu, Costin and Yelick, Katherine}, 493 booktitle={Fifth Conference on Partitioned Global Address Space Programming Models (PGAS11)}, 494 volume={625}, 495 year={2011}, 496 organization={Citeseer} 497 } 498 499 @article{ribic2014energy, 500 title={Energy-efficient work-stealing language runtimes}, 501 author={Ribic, Haris and Liu, Yu David}, 502 journal={ACM SIGARCH Computer Architecture News}, 503 volume={42}, 504 number={1}, 505 pages={513--528}, 506 year={2014}, 507 publisher={ACM New York, NY, USA} 508 } 509 510 @inproceedings{torng2016asymmetry, 511 title={Asymmetry-aware work-stealing runtimes}, 512 author={Torng, Christopher and Wang, Moyang and Batten, Christopher}, 513 booktitle={2016 ACM/IEEE 43rd Annual International Symposium on Computer Architecture (ISCA)}, 514 pages={40--52}, 515 year={2016}, 516 organization={IEEE} 517 } 518 431 519 % -------------------------------------------------- 432 520 % ULE FreeBSD scheduler … … 524 612 title = {Mach Scheduling and Thread Interfaces - Kernel Programming Guide}, 525 613 organization = {Apple Inc.}, 526 howPublish = {\href{https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/scheduler/scheduler.html}{https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/scheduler/scheduler.html}} 614 note = {\href{https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/scheduler/scheduler.html}{https://\-developer.apple.com/\-library/archive/\-documentation/\-Darwin/\-Conceptual/\-KernelProgramming/\-scheduler/\-scheduler.html}} 615 } 616 617 @misc{MemcachedThreading, 618 author = {Oracle}, 619 title = {MySQL 5.6 Reference Manual Including MySQL NDB Cluster 7.3-7.4 Reference Guide}, 620 howpublished = {\href{https://docs.oracle.com/cd/E17952_01/mysql-5.6-en/ha-memcached-using-threads.html}{https://docs.oracle.com/\-cd/E17952\_01/\-mysql-5.6-en/\-ha-memcached-using-threads.html}}, 621 note = "[Online; accessed 5-August-2022]" 527 622 } 528 623 … … 582 677 } 583 678 679 @misc{apache, 680 key = {Apache Software Foundation}, 681 title = {{T}he {A}pache Web Server}, 682 howpublished = {\href{http://httpd.apache.org}{http://\-httpd.apache.org}}, 683 note = "[Online; accessed 6-June-2022]" 684 } 685 686 @misc{memcached, 687 key = {Brad Fitzpatrick}, 688 title = {{M}emcached}, 689 year = {2003}, 690 howpublished = {\href{http://httpd.apache.org}{http://\-httpd.apache.org}}, 691 note = "[Online; accessed 6-June-2022]" 692 } 693 694 @misc{libuv, 695 author = {libuv team}, 696 title = {libuv: Asynchronous I/O made simple.}, 697 howpublished = {\href{https://libuv.org/}{https://\-libuv.org/}}, 698 note = "[Online; accessed 5-August-2022]" 699 } 700 701 @misc{SeriallyReusable, 702 author = {IBM}, 703 title = {Serially reusable programs}, 704 month = mar, 705 howpublished= {\href{https://www.ibm.com/docs/en/ztpf/1.1.0.15?topic=structures-serially-reusable-programs}{https://www.ibm.com/\-docs/\-en/\-ztpf/\-1.1.0.15?\-topic=structures\--serially\--reusable-programs}}, 706 year = 2021, 707 } 708 709 @misc{GITHUB:mutilate, 710 title = {Mutilate: high-performance memcached load generator }, 711 author = { Jacob Leverich }, 712 howpublished = {\href{https://github.com/leverich/mutilate}{https://\-github.com/\-leverich/\-mutilate}}, 713 version = {Change-Id: d65c6ef7c2f78ae05a9db3e37d7f6ddff1c0af64} 714 } 715 716 @misc{GITHUB:SchedulingBenchmarks, 717 title = {Scheduling Benchmarks}, 718 author = {Thierry Delisle}, 719 howpublished = {\href{https://github.com/cforall/SchedulingBenchmarks_PhD22}{https://\-github.com/\-cforall/\-SchedulingBenchmarks\_\-PhD22}}, 720 } 721 722 % -------------------------------------------------- 723 % Tech documents 724 @techreport{rfc:tcp, 725 title={Transmission control protocol}, 726 author={Postel, Jon}, 727 year={1981} 728 } 729 730 @manual{win:priority, 731 key = {TaskSettings Priority}, 732 title = {TaskSettings.Priority property}, 733 year = "2020", 734 month = "September", 735 howpublished = {\href{https://docs.microsoft.com/en-us/windows/win32/taskschd/tasksettings-priority}{https://\-docs.microsoft.com/\-en-us/\-windows/\-win32/\-taskschd/\-tasksettings-priority}}, 736 note = "[Online; accessed 5-August-2022]" 737 } 738 739 @manual{win:overlap, 740 key = {Synchronous and Asynchronous IO}, 741 title = {Synchronous and Asynchronous I\/O}, 742 year = "2021", 743 month = "March", 744 howpublished = {\href{https://docs.microsoft.com/en-us/windows/win32/fileio/synchronous-and-asynchronous-i-o}{https://\-docs.microsoft.com/\-en-us/\-windows/\-win32/\-fileio/\-synchronous-and-asynchronous-i-o}}, 745 note = "[Online; accessed 5-August-2022]" 746 } 747 748 @book{russinovich2009windows, 749 title={Windows Internals}, 750 author={Russinovich, M.E. and Solomon, D.A. and Ionescu, A.}, 751 isbn={9780735625303}, 752 lccn={2009927697}, 753 series={Developer Reference Series}, 754 url={https://books.google.ca/books?id=SfglSQAACAAJ}, 755 year={2009}, 756 publisher={Microsoft Press} 757 } 758 759 @manual{apple:gcd, 760 key = {Grand Central Dispatch}, 761 title = {Grand Central Dispatch}, 762 year = "2022", 763 author = {Apple Inc.}, 764 howpublished = {https://developer.apple.com/documentation/DISPATCH}, 765 note = "[Online; accessed 5-August-2022]" 766 } 767 768 @techreport{apple:gcd2, 769 key = {Grand Central Dispatch}, 770 title = {Grand Central Dispatch, A better way to do multicore.}, 771 year = "2009", 772 month = "August", 773 author = {Apple Inc.}, 774 howpublished = {\href{http://web.archive.org/web/20090920043909/http://images.apple.com/macosx/technology/docs/GrandCentral_TB_brief_20090903.pdf}{http://web.archive.org/web/20090920043909/http://\-images.apple.com/\-macosx/\-technology/\-docs/\-GrandCentral\_TB\_brief\_20090903.pdf}}, 775 note = "[Online; accessed 5-August-2022]" 776 } 777 778 584 779 % -------------------------------------------------- 585 780 % Man Pages … … 619 814 } 620 815 816 @manual{MAN:sendfile, 817 key = "sendfile", 818 title = "sendfile(2) Linux User's Manual", 819 year = "2017", 820 month = "September", 821 } 822 823 @manual{MAN:splice, 824 key = "splice", 825 title = "splice(2) Linux User's Manual", 826 year = "2019", 827 month = "May", 828 } 829 830 @manual{MAN:eventfd, 831 key = "eventfd", 832 title = "eventfd(2) Linux User's Manual", 833 year = "2019", 834 month = "MArch", 835 } 836 621 837 @manual{MAN:aio, 622 838 key = "aio", … … 624 840 year = "2019", 625 841 month = "March", 842 } 843 844 @manual{MAN:bash, 845 title = {Bash Reference Manual}, 846 author = {Chet Ramey and Brian Fox}, 847 year = "2020", 848 month = "December", 849 version = {5,1}, 850 howpublished = {\href{https://www.gnu.org/software/bash/manual/bash.pdf}{https://\-www.gnu.org/\-software/\-bash/\-manual/\-bash.pdf}} 626 851 } 627 852 … … 635 860 } 636 861 862 637 863 % -------------------------------------------------- 638 864 % Wikipedia Entries … … 709 935 } 710 936 711 % RMR notes : 712 % [05/04, 12:36] Trevor Brown 713 % i don't know where rmr complexity was first introduced, but there are many many many papers that use the term and define it 714 % [05/04, 12:37] Trevor Brown 715 % here's one paper that uses the term a lot and links to many others that use it... might trace it to something useful there https://drops.dagstuhl.de/opus/volltexte/2021/14832/pdf/LIPIcs-DISC-2021-30.pdf 716 % [05/04, 12:37] Trevor Brown 717 % another option might be to cite a textbook 718 % [05/04, 12:42] Trevor Brown 719 % but i checked two textbooks in the area i'm aware of and i don't see a definition of rmr complexity in either 720 % [05/04, 12:42] Trevor Brown 721 % this one has a nice statement about the prevelance of rmr complexity, as well as some rough definition 722 % [05/04, 12:42] Trevor Brown 723 % https://dl.acm.org/doi/pdf/10.1145/3465084.3467938 724 725 % Race to idle notes : 726 % [13/04, 16:56] Martin Karsten 727 % I don't have a citation. Google brings up this one, which might be good: 728 % 729 % https://doi.org/10.1137/1.9781611973099.100 730 731 937 @misc{wiki:ma, 938 author = "{Wikipedia contributors}", 939 title = "Bin packing problem --- {W}ikipedia{,} The Free Encyclopedia", 940 year = "2022", 941 howpublished = "\href{https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average}{https://\-en.wikipedia.org/\-wiki/\-Moving\_average\#Exponential\_moving\_average}", 942 note = "[Online; accessed 5-August-2022]" 943 } 944 945 @misc{wiki:jni, 946 author = "{Wikipedia contributors}", 947 title = "Java Native Interface --- {W}ikipedia{,} The Free Encyclopedia", 948 year = "2021", 949 howpublished = "\href{https://en.wikipedia.org/wiki/Java_Native_Interface}{https://\-en.wikipedia.org/\-wiki/\-Java\_Native\_Interface}", 950 note = "[Online; accessed 5-August-2022]" 951 } 952 953 @misc{wiki:zipf, 954 author = "{Wikipedia contributors}", 955 title = "Zipf's law --- {W}ikipedia{,} The Free Encyclopedia", 956 year = "2021", 957 howpublished = "\href{https://en.wikipedia.org/wiki/Zipf%27s_law}{https://\-en.wikipedia.org/\-wiki/\-Zipf\%27s\-\_law}", 958 note = "[Online; accessed 5-August-2022]" 959 } 960 961 @misc{wiki:htm, 962 author = "{Wikipedia contributors}", 963 title = "Transactional memory --- {W}ikipedia{,} The Free Encyclopedia", 964 year = "2022", 965 howpublished = "\href{https://en.wikipedia.org/wiki/Zipf%27s_law}{https://\-en.wikipedia.org/\-wiki/\-Zipf\%27s\-\_law}", 966 note = "[Online; accessed 7-September-2022]" 967 } 968 969 @inproceedings{Pai99Flash, 970 contributer = {pabuhr@watmsg}, 971 author = {Vivek S. Pai and Peter Druschel and Willy Zwaenepoel}, 972 title = {{F}lash: An efficient and portable {W}eb server}, 973 booktitle = {Proceedings of the 1999 USENIX Annual Technical Conference}, 974 organization= {USENIX Association}, 975 address = {Monterey, California, U.S.A.}, 976 month = jun, 977 year = {1999}, 978 } 979 980 @inproceedings{Behren03, 981 contributer = {pabuhr@watmsg}, 982 author = {Rob von Behren and Jeremy Condit and Feng Zhou and George C. Necula and Eric Brewer}, 983 title = {Capriccio: Scalable Threads for Internet Services}, 984 booktitle = {Proceedings of the 19th ACM Symposium on Operating Systems Principles}, 985 year = {2003}, 986 pages = {268-281}, 987 location = {Bolton Landing, NY, USA}, 988 publisher = {ACM Press}, 989 address = {New York, NY, USA}, 990 } 991 992 @article{Welsh01, 993 contributer = {pabuhr@plg}, 994 author = {Welsh, Matt and Culler, David and Brewer, Eric}, 995 title = {{SEDA}: An Architecture for Well-conditioned, Scalable Internet Services}, 996 journal = {SIGOPS Oper. Syst. Rev.}, 997 volume = {35}, 998 number = {5}, 999 month = oct, 1000 year = {2001}, 1001 pages = {230--243}, 1002 numpages = {14}, 1003 publisher = {ACM}, 1004 address = {New York, NY, USA}, 1005 } 1006 1007 @inproceedings{Harji12, 1008 keywords = {web server, architecture, multi-core}, 1009 contributer = {pabuhr@plg}, 1010 author = {Ashif S. Harji and Peter A. Buhr and Tim Brecht}, 1011 title = {Comparing High-Performance Multi-core Web-Server Architectures}, 1012 booktitle = {Proceedings of the 5th Annual International Systems and Storage Conference}, 1013 series = {SYSTOR '12}, 1014 publisher = {ACM}, 1015 address = {New York, NY, USA}, 1016 location = {Haifa, Israel}, 1017 month = jun, 1018 year = 2012, 1019 articleno = 1, 1020 pages = {1:1--1:12}, 1021 } 1022 1023 1024 @inproceedings{Barford98, 1025 title = {Generating Representative Web Workloads for Network and Server Performance Evaluation}, 1026 author = {Paul Barford and Mark Crovella}, 1027 booktitle = {Proc. of ACM SIGMETRICS 1998}, 1028 address = {Madison, Wis.}, 1029 year = {1998} 1030 } 1031 1032 @article{httperf, 1033 author = {David Mosberger and Tai Jin}, 1034 title = {httperf Tool for Measuring Web Server Performance}, 1035 journal = {ACM SIGMETRICS}, 1036 volume = {26}, 1037 number = {3}, 1038 year = {1998}, 1039 optissn = {0163-5999}, 1040 pages = {31-37}, 1041 optdoi = {http://doi.acm.org/10.1145/306225.306235}, 1042 publisher = {ACM Press}, 1043 address = {New York, NY, USA}, 1044 } 1045 1046 % -------------------------------------------------- 1047 % True Misc 732 1048 @misc{AIORant, 733 1049 author = "Linus Torvalds", … … 739 1055 } 740 1056 741 @misc{apache, 742 key = {Apache Software Foundation}, 743 title = {{T}he {A}pache Web Server}, 744 howpublished = {\href{http://httpd.apache.org}{http://\-httpd.apache.org}}, 745 note = "[Online; accessed 6-June-2022]" 746 } 747 748 @misc{SeriallyReusable, 749 author = {IBM}, 750 title = {Serially reusable programs}, 751 month = mar, 752 howpublished= {\href{https://www.ibm.com/docs/en/ztpf/1.1.0.15?topic=structures-serially-reusable-programs}{https://www.ibm.com/\-docs/\-en/\-ztpf/\-1.1.0.15?\-topic=structures\--serially\--reusable-programs}}, 753 year = 2021, 754 } 755 756 @inproceedings{Albers12, 757 author = {Susanne Albers and Antonios Antoniadis}, 758 title = {Race to Idle: New Algorithms for Speed Scaling with a Sleep State}, 759 booktitle = {Proceedings of the 2012 Annual ACM-SIAM Symposium on Discrete Algorithms (SODA)}, 760 doi = {10.1137/1.9781611973099.100}, 761 URL = {https://epubs.siam.org/doi/abs/10.1137/1.9781611973099.100}, 762 eprint = {https://epubs.siam.org/doi/pdf/10.1137/1.9781611973099.100}, 763 year = 2012, 764 month = jan, 765 pages = {1266-1285}, 766 } 1057 @misc{xkcd:dynamicentropy, 1058 author = "Randall Munroe", 1059 title = "2318: Dynamic Entropy", 1060 year = "2020", 1061 month = "June", 1062 howpublished = "\href{https://xkcd.com/2318/}", 1063 note = "[Online; accessed 10-June-2020]" 1064 } 1065 1066 @misc{xkcd:cloud, 1067 author = "Randall Munroe", 1068 title = "908: The Cloud", 1069 year = "2011", 1070 month = "June", 1071 howpublished = "\href{https://xkcd.com/908/}", 1072 note = "[Online; accessed 25-August-2022]" 1073 } 1074 1075 @misc{go:safepoints, 1076 author = "The Go Programming Language", 1077 title = "src/runtime/preempt.go", 1078 howpublished = {\href{https://go.dev/src/runtime/preempt.go}}, 1079 note = "[Online; accessed 5-August-2022]" 1080 } 1081 1082 @misc{go:cgo, 1083 author = "The Go Programming Language", 1084 title = "cgo", 1085 howpublished = {\href{https://pkg.go.dev/cmd/cgo}}, 1086 note = "[Online; accessed 5-August-2022]" 1087 } 1088 1089 @article{reese2008nginx, 1090 title = {NGINX: the high-performance web server and reverse proxy}, 1091 author = {Reese, Will}, 1092 journal = {Linux Journal}, 1093 volume = {2008}, 1094 number = {173}, 1095 pages = {2}, 1096 year = {2008}, 1097 publisher = {Belltown Media} 1098 } 1099 1100 @phdthesis{Harji10, 1101 author = {Ashif Harji}, 1102 title = {Performance Comparison of Uniprocessor and Multiprocessor Web Server Architectures}, 1103 school = {University of Waterloo}, 1104 year = 2010, 1105 month = feb, 1106 address = {Waterloo, Ontario, Canada, N2L 3G1}, 1107 note = {\textsf{http://uwspace.uwaterloo.ca/\-bitstream/\-10012/\-5040/\-1/\-Harji\_thesis.pdf}}, 1108 } -
doc/theses/thierry_delisle_PhD/thesis/text/core.tex
r12df6fe r4520b77e 2 2 3 3 Before discussing scheduling in general, where it is important to address systems that are changing states, this document discusses scheduling in a somewhat ideal scenario, where the system has reached a steady state. 4 For this purpose, a steady state is loosely defined as a state where there are always \ glspl{thrd}ready to run and the system has the resources necessary to accomplish the work, \eg, enough workers.4 For this purpose, a steady state is loosely defined as a state where there are always \ats ready to run and the system has the resources necessary to accomplish the work, \eg, enough workers. 5 5 In short, the system is neither overloaded nor underloaded. 6 6 7 7 It is important to discuss the steady state first because it is the easiest case to handle and, relatedly, the case in which the best performance is to be expected. 8 As such, when the system is either overloaded or underloaded, a common approach is to try to adapt the system to this new loadand return to the steady state, \eg, by adding or removing workers.8 As such, when the system is either overloaded or underloaded, a common approach is to try to adapt the system to this new \gls{load} and return to the steady state, \eg, by adding or removing workers. 9 9 Therefore, flaws in scheduling the steady state tend to be pervasive in all states. 10 10 11 11 \section{Design Goals} 12 As with most of the design decisions behind \CFA, an important goal is to match the expectation of the programmer according to their execution mental -model.13 To match expectations, the design must offer the programmer sufficient guarantees so that, as long as they respect the execution mental -model, the system also respects this model.14 15 For threading, a simple and common execution mental -model is the ``Ideal multi-tasking CPU'':16 17 \begin{displayquote}[Linux CFS\cit {https://www.kernel.org/doc/Documentation/scheduler/sched-design-CFS.txt}]18 {[The]} `` Ideal multi-tasking CPU'' is a (non-existent :-)) CPU that has 100\% physical power and which can run each task at precise equal speed, in parallel, each at [an equal fraction of the] speed. For example: if there are 2 tasks running, then it runs each at 50\% physical power --- i.e., actually in parallel.12 As with most of the design decisions behind \CFA, an important goal is to match the expectation of the programmer according to their execution mental model. 13 To match expectations, the design must offer the programmer sufficient guarantees so that, as long as they respect the execution mental model, the system also respects this model. 14 15 For threading, a simple and common execution mental model is the ``ideal multitasking CPU'': 16 17 \begin{displayquote}[Linux CFS\cite{MAN:linux/cfs}] 18 {[The]} ``ideal multi-tasking CPU'' is a (non-existent :-)) CPU that has 100\% physical power and which can run each task at precise equal speed, in parallel, each at [an equal fraction of the] speed. For example: if there are 2 running tasks, then it runs each at 50\% physical power --- i.e., actually in parallel. 19 19 \label{q:LinuxCFS} 20 20 \end{displayquote} 21 21 22 Applied to threads, this model states that every ready \gls{thrd} immediately runs in parallel with all other ready \glspl{thrd}. While a strict implementation of this model is not feasible, programmers still have expectations about scheduling that come from this model.23 24 In general, the expectation at the cent er of this model is that ready \glspl{thrd}do not interfere with each other but simply share the hardware.25 This assumption makes it easier to reason about threading because ready \ glspl{thrd}can be thought of in isolation and the effect of the scheduler can be virtually ignored.26 This expectation of \ gls{thrd}independence means the scheduler is expected to offer two guarantees:22 Applied to \ats, this model states that every ready \at immediately runs in parallel with all other ready \ats. While a strict implementation of this model is not feasible, programmers still have expectations about scheduling that come from this model. 23 24 In general, the expectation at the centre of this model is that ready \ats do not interfere with each other but simply share the hardware. 25 This assumption makes it easier to reason about threading because ready \ats can be thought of in isolation and the effect of the scheduler can be virtually ignored. 26 This expectation of \at independence means the scheduler is expected to offer two guarantees: 27 27 \begin{enumerate} 28 \item A fairness guarantee: a \ gls{thrd}that is ready to run is not prevented by another thread.29 \item A performance guarantee: a \ gls{thrd}that wants to start or stop running is not prevented by other threads wanting to do the same.28 \item A fairness guarantee: a \at that is ready to run is not prevented by another thread. 29 \item A performance guarantee: a \at that wants to start or stop running is not prevented by other threads wanting to do the same. 30 30 \end{enumerate} 31 31 32 32 It is important to note that these guarantees are expected only up to a point. 33 \Glspl{ thrd} that are ready to run should not be prevented to doso, but they still share the limited hardware resources.34 Therefore, the guarantee is considered respected if a \ gls{thrd}gets access to a \emph{fair share} of the hardware resources, even if that share is very small.33 \Glspl{at} that are ready to run should not be prevented from doing so, but they still share the limited hardware resources. 34 Therefore, the guarantee is considered respected if a \at gets access to a \emph{fair share} of the hardware resources, even if that share is very small. 35 35 36 36 Similar to the performance guarantee, the lack of interference among threads is only relevant up to a point. … … 40 40 This demonstration can be made by comparing applications built in \CFA to applications built with other languages or other models. 41 41 Recall programmer expectation is that the impact of the scheduler can be ignored. 42 Therefore, if the cost of scheduling is competitive to other popular languages, the guarantee is considerachieved.42 Therefore, if the cost of scheduling is competitive with other popular languages, the guarantee is considered achieved. 43 43 More precisely the scheduler should be: 44 44 \begin{itemize} … … 53 53 In any running system, a \proc can stop dequeuing \ats if it starts running a \at that never blocks. 54 54 Without preemption, traditional work-stealing schedulers do not have starvation freedom in this case. 55 Now this requirement begs the question, what about preemption?56 Generally speaking preemption happens on the timescale of several milliseconds, which brings us to the next requirement: ``fast'' load balancing.55 Now, this requirement begs the question, what about preemption? 56 Generally speaking, preemption happens on the timescale of several milliseconds, which brings us to the next requirement: ``fast'' load balancing. 57 57 58 58 \paragraph{Fast load balancing} means that load balancing should happen faster than preemption would normally allow. 59 For interactive applications that need to run at 60, 90 ,120 frames per second, \ats having to wait for several milliseconds to run are effectively starved.59 For interactive applications that need to run at 60, 90 or 120 frames per second, \ats having to wait for several milliseconds to run are effectively starved. 60 60 Therefore load-balancing should be done at a faster pace, one that can detect starvation at the microsecond scale. 61 With that said, this is a much fuzzier requirement since it depends on the number of \procs, the number of \ats and the general loadof the system.61 With that said, this is a much fuzzier requirement since it depends on the number of \procs, the number of \ats and the general \gls{load} of the system. 62 62 63 63 \subsection{Fairness vs Scheduler Locality} \label{fairnessvlocal} … … 68 68 69 69 For a scheduler, having good locality, \ie, having the data local to each \gls{hthrd}, generally conflicts with fairness. 70 Indeed, good locality often requires avoiding the movement of cache lines, while fairness requires dynamically moving a \ gls{thrd}, and as consequence cache lines, to a \gls{hthrd} that is currently available.71 Note that this section discusses \emph{internal locality}, \ie, the locality of the data used by the scheduler versus \emph{external locality}, \ie, how the data used by the application is affected by scheduling.70 Indeed, good locality often requires avoiding the movement of cache lines, while fairness requires dynamically moving a \at, and as consequence cache lines, to a \gls{hthrd} that is currently available. 71 Note that this section discusses \emph{internal locality}, \ie, the locality of the data used by the scheduler versus \emph{external locality}, \ie, how scheduling affects the locality of the application's data. 72 72 External locality is a much more complicated subject and is discussed in the next section. 73 73 74 74 However, I claim that in practice it is possible to strike a balance between fairness and performance because these goals do not necessarily overlap temporally. 75 75 Figure~\ref{fig:fair} shows a visual representation of this behaviour. 76 As mentioned, some unfairness is acceptable; therefore it is desirable to have an algorithm that prioritizes cache locality as long as thread delay does not exceed the execution mental -model.76 As mentioned, some unfairness is acceptable; therefore it is desirable to have an algorithm that prioritizes cache locality as long as thread delay does not exceed the execution mental model. 77 77 78 78 \begin{figure} … … 80 80 \input{fairness.pstex_t} 81 81 \vspace*{-10pt} 82 \caption[Fairness vs Locality graph]{Rule of thumb Fairness vs Locality graph \smallskip\newline The importance of Fairness and Locality while a ready \ gls{thrd} awaits running is shown as the time the ready \gls{thrd} waits increases, Ready Time, the chances that its data is still in cache decreases, Locality.83 At the same time, the need for fairness increases since other \ glspl{thrd}may have the chance to run many times, breaking the fairness model.82 \caption[Fairness vs Locality graph]{Rule of thumb Fairness vs Locality graph \smallskip\newline The importance of Fairness and Locality while a ready \at awaits running is shown as the time the ready \at waits increases (Ready Time) the chances that its data is still in cache decreases (Locality). 83 At the same time, the need for fairness increases since other \ats may have the chance to run many times, breaking the fairness model. 84 84 Since the actual values and curves of this graph can be highly variable, the graph is an idealized representation of the two opposing goals.} 85 85 \label{fig:fair} … … 92 92 \subsubsection{Scalability} 93 93 The most basic performance challenge of a scheduler is scalability. 94 Given a large number of \procs and an even larger number of \ats, scalability measures how fast \procs can enqueue and dequeue s\ats.95 One could expect that doubling the number of \procs would double the rate at which \ats are dequeued, but contention on the internal data structure of the scheduler can lead to worstimprovements.96 While the ready -queue itself can be sharded to alleviate the main source of contention, auxiliary scheduling features, \eg counting ready \ats, can also be sources of contention.94 Given a large number of \procs and an even larger number of \ats, scalability measures how fast \procs can enqueue and dequeue \ats. 95 One could expect that doubling the number of \procs would double the rate at which \ats are dequeued, but contention on the internal data structure of the scheduler can diminish the improvements. 96 While the ready queue itself can be sharded to alleviate the main source of contention, auxiliary scheduling features, \eg counting ready \ats, can also be sources of contention. 97 97 98 98 \subsubsection{Migration Cost} 99 Another important source of scheduling latency is migration.99 Another important source of scheduling latency is \glslink{atmig}{migration}. 100 100 A \at migrates if it executes on two different \procs consecutively, which is the process discussed in \ref{fairnessvlocal}. 101 101 Migrations can have many different causes, but in certain programs, it can be impossible to limit migration. … … 108 108 The problem is a single point of contention when adding/removing \ats. 109 109 As shown in the evaluation sections, most production schedulers do scale when adding \glspl{hthrd}. 110 The solution to this problem is to shard the ready -queue: create multiple \emph{subqueues} forming the logical ready-queue and the subqueues are accessed by multiple \glspl{hthrd} without interfering.110 The solution to this problem is to shard the ready queue: create multiple \emph{sub-queues} forming the logical ready-queue and the sub-queues are accessed by multiple \glspl{hthrd} without interfering. 111 111 112 112 Before going into the design of \CFA's scheduler, it is relevant to discuss two sharding solutions that served as the inspiration scheduler in this thesis. … … 114 114 \subsection{Work-Stealing} 115 115 116 As mentioned in \ref{existing:workstealing}, a popular sharding approach for the ready -queue is work-stealing.117 In this approach, each \gls{proc} has its own local sub queue and \glspl{proc} only access each other's subqueue if they run out of work on their local ready-queue.116 As mentioned in \ref{existing:workstealing}, a popular sharding approach for the ready queue is work-stealing. 117 In this approach, each \gls{proc} has its own local sub-queue and \glspl{proc} only access each other's sub-queue if they run out of work on their local ready-queue. 118 118 The interesting aspect of work stealing happens in the steady-state scheduling case, \ie all \glspl{proc} have work and no load balancing is needed. 119 119 In this case, work stealing is close to optimal scheduling: it can achieve perfect locality and have no contention. 120 120 On the other hand, work-stealing schedulers only attempt to do load-balancing when a \gls{proc} runs out of work. 121 121 This means that the scheduler never balances unfair loads unless they result in a \gls{proc} running out of work. 122 Chapter~\ref{microbench} shows that pathological caseswork stealing can lead to indefinite starvation.123 124 Based on these observation , the conclusion is that a \emph{perfect} scheduler should behave similarto work-stealing in the steady-state case, but load balance proactively when the need arises.122 Chapter~\ref{microbench} shows that, in pathological cases, work stealing can lead to indefinite starvation. 123 124 Based on these observations, the conclusion is that a \emph{perfect} scheduler should behave similarly to work-stealing in the steady-state case, but load balance proactively when the need arises. 125 125 126 126 \subsection{Relaxed-FIFO} 127 A different scheduling approach is to create a ``relaxed-FIFO'' queue, as in \ todo{cite Trevor's paper}.128 This approach forgoes any ownership between \gls{proc} and sub queue, and simply creates a pool of ready-queues from which \glspl{proc} pick.127 A different scheduling approach is to create a ``relaxed-FIFO'' queue, as in \cite{alistarh2018relaxed}. 128 This approach forgoes any ownership between \gls{proc} and sub-queue, and simply creates a pool of sub-queues from which \glspl{proc} pick. 129 129 Scheduling is performed as follows: 130 130 \begin{itemize} 131 131 \item 132 All sub queues are protected by TryLocks.133 \item 134 Timestamps are added to each element of a sub queue.135 \item 136 A \gls{proc} randomly tests readyqueues until it has acquired one or two queues.137 \item 138 If two queues are acquired, the older of the two \ats at the front the acquired queues is dequeued.139 \item 140 Otherwise the \atsfrom the single queue is dequeued.132 All sub-queues are protected by TryLocks. 133 \item 134 Timestamps are added to each element of a sub-queue. 135 \item 136 A \gls{proc} randomly tests sub-queues until it has acquired one or two queues. 137 \item 138 If two queues are acquired, the older of the two \ats is dequeued from the front of the acquired queues. 139 \item 140 Otherwise, the \at from the single queue is dequeued. 141 141 \end{itemize} 142 142 The result is a queue that has both good scalability and sufficient fairness. 143 143 The lack of ownership ensures that as long as one \gls{proc} is still able to repeatedly dequeue elements, it is unlikely any element will delay longer than any other element. 144 This guarantee contrasts with work-stealing, where a \gls{proc} with a long sub queue results in unfairness for its \ats in comparison to a \gls{proc} with a short subqueue.144 This guarantee contrasts with work-stealing, where a \gls{proc} with a long sub-queue results in unfairness for its \ats in comparison to a \gls{proc} with a short sub-queue. 145 145 This unfairness persists until a \gls{proc} runs out of work and steals. 146 146 147 An important aspect s of this scheme's fairness approach is that the timestamps make it possible to evaluate how long elements have been on the queue.147 An important aspect of this scheme's fairness approach is that the timestamps make it possible to evaluate how long elements have been in the queue. 148 148 However, \glspl{proc} eagerly search for these older elements instead of focusing on specific queues, which negatively affects locality. 149 149 … … 152 152 153 153 \section{Relaxed-FIFO++} 154 The inherent fairness and good performance with many \ats , makesthe relaxed-FIFO queue a good candidate to form the basis of a new scheduler.154 The inherent fairness and good performance with many \ats make the relaxed-FIFO queue a good candidate to form the basis of a new scheduler. 155 155 The problem case is workloads where the number of \ats is barely greater than the number of \procs. 156 In these situations, the wide sharding of the ready queue means most of its sub queues are empty.157 Furthermore, the non-empty sub queues are unlikely to hold more than one item.158 The consequence is that a random dequeue operation is likely to pick an empty sub queue, resulting in an unbounded number of selections.159 This state is generally unstable: each sub queue is likely to frequently toggle between being empty and nonempty.160 Indeed, when the number of \ats is \emph{equal} to the number of \procs, every pop operation is expected to empty a sub queue and every push is expected to add to an empty subqueue.161 In the worst case, a check of the sub queues sees all are empty or full.156 In these situations, the wide sharding of the ready queue means most of its sub-queues are empty. 157 Furthermore, the non-empty sub-queues are unlikely to hold more than one item. 158 The consequence is that a random dequeue operation is likely to pick an empty sub-queue, resulting in an unbounded number of selections. 159 This state is generally unstable: each sub-queue is likely to frequently toggle between being empty and nonempty. 160 Indeed, when the number of \ats is \emph{equal} to the number of \procs, every pop operation is expected to empty a sub-queue and every push is expected to add to an empty sub-queue. 161 In the worst case, a check of the sub-queues sees all are empty or full. 162 162 163 163 As this is the most obvious challenge, it is worth addressing first. 164 The obvious solution is to supplement each sharded sub queue with data that indicates if the queue is empty/nonempty to simplify finding nonempty queues, \ie ready \glspl{at}.165 This sharded data can be organized in different forms, \eg a bitmask or a binary tree that tracks the nonempty sub queues.164 The obvious solution is to supplement each sharded sub-queue with data that indicates if the queue is empty/nonempty to simplify finding nonempty queues, \ie ready \glspl{at}. 165 This sharded data can be organized in different forms, \eg a bitmask or a binary tree that tracks the nonempty sub-queues. 166 166 Specifically, many modern architectures have powerful bitmask manipulation instructions or searching a binary tree has good Big-O complexity. 167 However, precisely tracking nonempty sub queues is problematic.168 The reason is that the sub queues are initially sharded with a width presumably chosen to avoid contention.169 However, tracking which ready queue is nonempty is only useful if the tracking data is dense, \ie denser than the sharded sub queues.170 Otherwise, it does not provide useful information because reading this new data structure risks being as costly as simply picking a sub queue at random.171 But if the tracking mechanism \emph{is} denser than the shared sub queues, than constant updates invariably create a new source of contention.167 However, precisely tracking nonempty sub-queues is problematic. 168 The reason is that the sub-queues are initially sharded with a width presumably chosen to avoid contention. 169 However, tracking which ready queue is nonempty is only useful if the tracking data is dense, \ie denser than the sharded sub-queues. 170 Otherwise, it does not provide useful information because reading this new data structure risks being as costly as simply picking a sub-queue at random. 171 But if the tracking mechanism \emph{is} denser than the shared sub-queues, then constant updates invariably create a new source of contention. 172 172 Early experiments with this approach showed that randomly picking, even with low success rates, is often faster than bit manipulations or tree walks. 173 173 174 174 The exception to this rule is using local tracking. 175 If each \proc locally keeps track of empty sub queues, than this can be done with a very dense data structure without introducing a new source of contention.175 If each \proc locally keeps track of empty sub-queues, then this can be done with a very dense data structure without introducing a new source of contention. 176 176 However, the consequence of local tracking is that the information is incomplete. 177 Each \proc is only aware of the last state it saw about each sub queue so this information quickly becomes stale.177 Each \proc is only aware of the last state it saw about each sub-queue so this information quickly becomes stale. 178 178 Even on systems with low \gls{hthrd} count, \eg 4 or 8, this approach can quickly lead to the local information being no better than the random pick. 179 179 This result is due in part to the cost of maintaining information and its poor quality. 180 180 181 However, using a very low cost but inaccurate approach for local tracking can actuallybe beneficial.182 If the local tracking is no more costly than a random pick, th an \emph{any} improvement to the success rate, however low it is, leads to a performance benefits.183 This suggests t o the following approach:184 185 \subsection{Dynamic Entropy}\cit {https://xkcd.com/2318/}186 The Relaxed-FIFO approach can be made to handle the case of mostly empty sub queues by tweaking the \glsxtrlong{prng}.187 The \glsxtrshort{prng} state can be seen as containing a list of all the future sub queues that will be accessed.188 While this concept is not particularly useful on its own, the consequence is that if the \glsxtrshort{prng} algorithm can be run \emph{backwards}, then the state also contains a list of all the sub queues that were accessed.189 Luckily, bidirectional \glsxtrshort{prng} algorithms do exist, \eg some Linear Congruential Generators\cit {https://en.wikipedia.org/wiki/Linear\_congruential\_generator} support running the algorithm backwards while offering good quality and performance.181 However, using a very low-cost but inaccurate approach for local tracking can still be beneficial. 182 If the local tracking is no more costly than a random pick, then \emph{any} improvement to the success rate, however low it is, leads to a performance benefit. 183 This suggests the following approach: 184 185 \subsection{Dynamic Entropy}\cite{xkcd:dynamicentropy} 186 The Relaxed-FIFO approach can be made to handle the case of mostly empty sub-queues by tweaking the \glsxtrlong{prng}. 187 The \glsxtrshort{prng} state can be seen as containing a list of all the future sub-queues that will be accessed. 188 While this concept is not particularly useful on its own, the consequence is that if the \glsxtrshort{prng} algorithm can be run \emph{backwards}, then the state also contains a list of all the sub-queues that were accessed. 189 Luckily, bidirectional \glsxtrshort{prng} algorithms do exist, \eg some Linear Congruential Generators\cite{wiki:lcg} support running the algorithm backwards while offering good quality and performance. 190 190 This particular \glsxtrshort{prng} can be used as follows: 191 191 \begin{itemize} 192 192 \item 193 Each \proc maintains two \glsxtrshort{prng} states, refer eed to as $F$ and $B$.194 \item 195 When a \proc attempts to dequeue a \at, it picks a sub queue by running $B$ backwards.196 \item 197 When a \proc attempts to enqueue a \at, it runs $F$ forward picking a sub queue to enqueue to.198 If the enqueue is successful, thestate $B$ is overwritten with the content of $F$.193 Each \proc maintains two \glsxtrshort{prng} states, referred to as $F$ and $B$. 194 \item 195 When a \proc attempts to dequeue a \at, it picks a sub-queue by running $B$ backwards. 196 \item 197 When a \proc attempts to enqueue a \at, it runs $F$ forward picking a sub-queue to enqueue to. 198 If the enqueue is successful, state $B$ is overwritten with the content of $F$. 199 199 \end{itemize} 200 200 The result is that each \proc tends to dequeue \ats that it has itself enqueued. 201 When most sub queues are empty, this technique increases the odds of finding \ats atvery low cost, while also offering an improvement on locality in many cases.201 When most sub-queues are empty, this technique increases the odds of finding \ats at a very low cost, while also offering an improvement on locality in many cases. 202 202 203 203 Tests showed this approach performs better than relaxed-FIFO in many cases. 204 204 However, it is still not competitive with work-stealing algorithms. 205 205 The fundamental problem is that the constant randomness limits how much locality the scheduler offers. 206 This becomes problematic both because the scheduler is likely to get cache misses on internal data -structures and because migrations become frequent.206 This becomes problematic both because the scheduler is likely to get cache misses on internal data structures and because migrations become frequent. 207 207 Therefore, the attempt to modify the relaxed-FIFO algorithm to behave more like work stealing did not pan out. 208 208 The alternative is to do it the other way around. 209 209 210 \section{Work Stealing++} 210 \section{Work Stealing++}\label{helping} 211 211 To add stronger fairness guarantees to work stealing a few changes are needed. 212 First, the relaxed-FIFO algorithm has fundamentally better fairness because each \proc always monitors all sub queues.212 First, the relaxed-FIFO algorithm has fundamentally better fairness because each \proc always monitors all sub-queues. 213 213 Therefore, the work-stealing algorithm must be prepended with some monitoring. 214 Before attempting to dequeue from a \proc's sub queue, the \proc must make some effort to ensure other subqueues are not being neglected.214 Before attempting to dequeue from a \proc's sub-queue, the \proc must make some effort to ensure other sub-queues are not being neglected. 215 215 To make this possible, \procs must be able to determine which \at has been on the ready queue the longest. 216 216 Second, the relaxed-FIFO approach needs timestamps for each \at to make this possible. … … 219 219 \centering 220 220 \input{base.pstex_t} 221 \caption[Base \CFA design]{Base \CFA design \smallskip\newline A pool of sub queues offers the sharding, two per \glspl{proc}.222 Each \gls{proc} can access all of the sub queues.221 \caption[Base \CFA design]{Base \CFA design \smallskip\newline A pool of sub-queues offers the sharding, two per \proc. 222 Each \gls{proc} can access all of the sub-queues. 223 223 Each \at is timestamped when enqueued.} 224 224 \label{fig:base} … … 226 226 227 227 Figure~\ref{fig:base} shows the algorithm structure. 228 This structure is similar to classic work-stealing except the sub queues are placed in an array so \procs can access them in constant time.228 This structure is similar to classic work-stealing except the sub-queues are placed in an array so \procs can access them in constant time. 229 229 Sharding width can be adjusted based on contention. 230 230 Note, as an optimization, the TS of a \at is stored in the \at in front of it, so the first TS is in the array and the last \at has no TS. 231 231 This organization keeps the highly accessed front TSs directly in the array. 232 When a \proc attempts to dequeue a \at, it first picks a random remote sub queue and compares its timestamp to the timestamps of its local subqueue(s).232 When a \proc attempts to dequeue a \at, it first picks a random remote sub-queue and compares its timestamp to the timestamps of its local sub-queue(s). 233 233 The oldest waiting \at is dequeued to provide global fairness. 234 234 235 However, this na\"ive implement edhas performance problems.235 However, this na\"ive implementation has performance problems. 236 236 First, it is necessary to have some damping effect on helping. 237 237 Random effects like cache misses and preemption can add spurious but short bursts of latency negating the attempt to help. 238 These bursts can cause increased migrations and make this work stealing approach slowdown to the level of relaxed-FIFO.238 These bursts can cause increased migrations and make this work-stealing approach slow down to the level of relaxed-FIFO. 239 239 240 240 \begin{figure} 241 241 \centering 242 242 \input{base_avg.pstex_t} 243 \caption[\CFA design with Moving Average]{\CFA design with Moving Average \smallskip\newline A moving average is added to each sub queue.}243 \caption[\CFA design with Moving Average]{\CFA design with Moving Average \smallskip\newline A moving average is added to each sub-queue.} 244 244 \label{fig:base-ma} 245 245 \end{figure} 246 246 247 A simple solution to this problem is to use an exponential moving average\cit {https://en.wikipedia.org/wiki/Moving\_average\#Exponential\_moving\_average} (MA) instead of a raw timestamps,shown in Figure~\ref{fig:base-ma}.248 Note , this is more complex because the \at at the head of a subqueue is still waiting, so its wait time has not ended.249 Therefore, the exponential moving average is a ctually an exponential movingaverage of how long each dequeued \at has waited.250 To compare sub queues, the timestamp at the head must be compared to the current time, yielding the best-case wait-time for the \at at the head of the queue.247 A simple solution to this problem is to use an exponential moving average\cite{wiki:ma} (MA) instead of a raw timestamp, as shown in Figure~\ref{fig:base-ma}. 248 Note that this is more complex because the \at at the head of a sub-queue is still waiting, so its wait time has not ended. 249 Therefore, the exponential moving average is an average of how long each dequeued \at has waited. 250 To compare sub-queues, the timestamp at the head must be compared to the current time, yielding the best-case wait time for the \at at the head of the queue. 251 251 This new waiting is averaged with the stored average. 252 To further limit migration, a bias can be added to a local subqueue, where a remote subqueue is helped only if its moving average is more than $X$ times the local subqueue's average.252 To further limit \glslink{atmig}{migrations}, a bias can be added to a local sub-queue, where a remote sub-queue is helped only if its moving average is more than $X$ times the local sub-queue's average. 253 253 Tests for this approach indicate the choice of the weight for the moving average or the bias is not important, \ie weights and biases of similar \emph{magnitudes} have similar effects. 254 254 255 255 With these additions to work stealing, scheduling can be made as fair as the relaxed-FIFO approach, avoiding the majority of unnecessary migrations. 256 Unfortunately, the work to achieve fairness has a performance cost, especially when the workload is inherently fair, and hence, there is only short-term or no starvation.257 The problem is that the constant polling, \ie reads, of remote sub queues generally entail a cache miss because the TSs are constantly being updated, \ie, writes.258 To make things worst, remote sub queues that are very active, \ie \ats are frequently enqueued and dequeued from them, lead to higher chances that polling will incur a cache-miss.259 Conversely, the active sub queues do not benefit much from helping since starvation is already a non-issue.260 This puts this algorithm in the awkward situation of paying for a cost that is largely unnecessary.261 The good news is that this problem can be mitigated 262 263 \subsection{Redundant Timestamps} 264 The problem with polling remote sub queues is that correctness is critical.265 There must be a consensus among \procs on which sub queues hold which \ats, as the \ats are in constant motion.266 Furthermore, since timestamps are use for fairness, it is critical to haveconsensus on which \at is the oldest.267 However, when deciding if a remote sub queue is worth polling, correctness is less of a problem.268 Since the only requirement is that a sub queue is eventually polled, some data staleness is acceptable.256 Unfortunately, the work to achieve fairness has a performance cost, especially when the workload is inherently fair, and hence, there is only short-term unfairness or no starvation. 257 The problem is that the constant polling, \ie reads, of remote sub-queues generally entails cache misses because the TSs are constantly being updated, \ie, writes. 258 To make things worst, remote sub-queues that are very active, \ie \ats are frequently enqueued and dequeued from them, lead to higher chances that polling will incur a cache-miss. 259 Conversely, the active sub-queues do not benefit much from helping since starvation is already a non-issue. 260 This puts this algorithm in the awkward situation of paying for a largely unnecessary cost. 261 The good news is that this problem can be mitigated. 262 263 \subsection{Redundant Timestamps}\label{relaxedtimes} 264 The problem with polling remote sub-queues is that correctness is critical. 265 There must be a consensus among \procs on which sub-queues hold which \ats, as the \ats are in constant motion. 266 Furthermore, since timestamps are used for fairness, it is critical to have a consensus on which \at is the oldest. 267 However, when deciding if a remote sub-queue is worth polling, correctness is less of a problem. 268 Since the only requirement is that a sub-queue is eventually polled, some data staleness is acceptable. 269 269 This leads to a situation where stale timestamps are only problematic in some cases. 270 Furthermore, stale timestamps can be desirable since lower freshness requirements mean lesscache invalidations.270 Furthermore, stale timestamps can be desirable since lower freshness requirements mean fewer cache invalidations. 271 271 272 272 Figure~\ref{fig:base-ts2} shows a solution with a second array containing a copy of the timestamps and average. 273 This copy is updated \emph{after} the sub queue's critical sections using relaxed atomics.273 This copy is updated \emph{after} the sub-queue's critical sections using relaxed atomics. 274 274 \Glspl{proc} now check if polling is needed by comparing the copy of the remote timestamp instead of the actual timestamp. 275 275 The result is that since there is no fencing, the writes can be buffered in the hardware and cause fewer cache invalidations. … … 279 279 \input{base_ts2.pstex_t} 280 280 \caption[\CFA design with Redundant Timestamps]{\CFA design with Redundant Timestamps \smallskip\newline An array is added containing a copy of the timestamps. 281 These timestamps are written to with relaxed atomics, so there is no order among concurrent memory accesses, leading to fewer cache invalidations.}281 These timestamps are written-to with relaxed atomics, so there is no order among concurrent memory accesses, leading to fewer cache invalidations.} 282 282 \label{fig:base-ts2} 283 283 \end{figure} … … 285 285 The correctness argument is somewhat subtle. 286 286 The data used for deciding whether or not to poll a queue can be stale as long as it does not cause starvation. 287 Therefore, it is acceptable if stale data makes queues appear older than they reallyare but appearing fresher can be a problem.288 For the timestamps, this means missing writes to the timestamp is acceptablesince they make the head \at look older.287 Therefore, it is acceptable if stale data makes queues appear older than they are but appearing fresher can be a problem. 288 For the timestamps, this means it is acceptable to miss writes to the timestamp since they make the head \at look older. 289 289 For the moving average, as long as the operations are just atomic reads/writes, the average is guaranteed to yield a value that is between the oldest and newest values written. 290 Therefore, this unprotected read of the timestamp and average satisf ythe limited correctness that is required.290 Therefore, this unprotected read of the timestamp and average satisfies the limited correctness that is required. 291 291 292 292 With redundant timestamps, this scheduling algorithm achieves both the fairness and performance requirements on most machines. 293 293 The problem is that the cost of polling and helping is not necessarily consistent across each \gls{hthrd}. 294 For example , on machines with a CPU containing multiple hyperthreads and cores and multiple CPU sockets, cache misses can be satisfied from the caches onsame (local) CPU, or by a CPU on a different (remote) socket.294 For example on machines with a CPU containing multiple hyper threads and cores and multiple CPU sockets, cache misses can be satisfied from the caches on the same (local) CPU, or by a CPU on a different (remote) socket. 295 295 Cache misses satisfied by a remote CPU have significantly higher latency than from the local CPU. 296 296 However, these delays are not specific to systems with multiple CPUs. … … 313 313 In Figure~\ref{fig:cache-share}, all cache misses are either private to a CPU or shared with another CPU. 314 314 This means latency due to cache misses is fairly consistent. 315 In contrast, in Figure~\ref{fig:cache-noshare} misses in the L2 cache can be satisfied by either instance of L3 cache.315 In contrast, in Figure~\ref{fig:cache-noshare} misses in the L2 cache can be satisfied by either instance of the L3 cache. 316 316 However, the memory-access latency to the remote L3 is higher than the memory-access latency to the local L3. 317 317 The impact of these different designs on this algorithm is that scheduling only scales well on architectures with a wide L3 cache, similar to Figure~\ref{fig:cache-share}, and less well on architectures with many narrower L3 cache instances, similar to Figure~\ref{fig:cache-noshare}. 318 Hence, as the number of L3 instances grow , so too does the chance that the random helping causes significant cache latency.319 The solution is for the scheduler be aware of the cache topology.318 Hence, as the number of L3 instances grows, so too does the chance that the random helping causes significant cache latency. 319 The solution is for the scheduler to be aware of the cache topology. 320 320 321 321 \subsection{Per CPU Sharding} … … 323 323 Unfortunately, there is no portable way to discover cache topology, and it is outside the scope of this thesis to solve this problem. 324 324 This work uses the cache topology information from Linux's @/sys/devices/system/cpu@ directory. 325 This leaves the challenge of matching \procs to cache structure, or more precisely identifying which sub queues of the ready queue are local to which subcomponents of the cache structure.326 Once a match ing is generated, the helping algorithm is changed to add bias so that \procs more often help subqueues local to the same cache substructure.\footnote{325 This leaves the challenge of matching \procs to cache structure, or more precisely identifying which sub-queues of the ready queue are local to which subcomponents of the cache structure. 326 Once a match is generated, the helping algorithm is changed to add bias so that \procs more often help sub-queues local to the same cache substructure.\footnote{ 327 327 Note that like other biases mentioned in this section, the actual bias value does not appear to need precise tuning.} 328 328 329 The simplest approach for mapping sub queues to cache structure is to statically tie subqueues to CPUs.330 Instead of having each sub queue local to a specific \proc, the system is initialized with subqueues for each hardware hyperthread/core up front.331 Then \procs dequeue and enqueue by first asking which CPU id they are executing on, in order to identify which subqueues are the local ones.329 The simplest approach for mapping sub-queues to cache structure is to statically tie sub-queues to CPUs. 330 Instead of having each sub-queue local to a specific \proc, the system is initialized with sub-queues for each hardware hyperthread/core up front. 331 Then \procs dequeue and enqueue by first asking which CPU id they are executing on, to identify which sub-queues are the local ones. 332 332 \Glspl{proc} can get the CPU id from @sched_getcpu@ or @librseq@. 333 333 334 334 This approach solves the performance problems on systems with topologies with narrow L3 caches, similar to Figure \ref{fig:cache-noshare}. 335 335 However, it can still cause some subtle fairness problems in systems with few \procs and many \glspl{hthrd}. 336 In this case, the large number of sub queues and the bias against subqueues tied to different cache substructures make it unlikely that every subqueue is picked.337 To make things worst, the small number of \procs mean that few helping attempts are made.338 This combination of low selection and few helping attempts allow a \at to become stranded on a sub queue for a long time until it gets randomly helped.339 On a system with 2 \procs, 256 \glspl{hthrd} with narrow cache sharing, and a 100:1 bias, it can actuallytake multiple seconds for a \at to get dequeued from a remote queue.340 Therefore, a more dynamic match ing of subqueues to cache instanceis needed.336 In this case, the large number of sub-queues and the bias against sub-queues tied to different cache substructures make it unlikely that every sub-queue is picked. 337 To make things worst, the small number of \procs means that few helping attempts are made. 338 This combination of low selection and few helping attempts allow a \at to become stranded on a sub-queue for a long time until it gets randomly helped. 339 On a system with 2 \procs, 256 \glspl{hthrd} with narrow cache sharing, and a 100:1 bias, it can take multiple seconds for a \at to get dequeued from a remote queue. 340 Therefore, a more dynamic match of sub-queues to cache instances is needed. 341 341 342 342 \subsection{Topological Work Stealing} 343 343 \label{s:TopologicalWorkStealing} 344 The refore, the approach used in the \CFA scheduler is to have per-\proc subqueues, but have an explicit data-structure track which cache substructure each subqueue is tied to.344 The approach used in the \CFA scheduler is to have per-\proc sub-queues, but have an explicit data structure to track which cache substructure each sub-queue is tied to. 345 345 This tracking requires some finesse because reading this data structure must lead to fewer cache misses than not having the data structure in the first place. 346 A key element howeveris that, like the timestamps for helping, reading the cache instance mapping only needs to give the correct result \emph{often enough}.346 A key element, however, is that, like the timestamps for helping, reading the cache instance mapping only needs to give the correct result \emph{often enough}. 347 347 Therefore the algorithm can be built as follows: before enqueueing or dequeuing a \at, each \proc queries the CPU id and the corresponding cache instance. 348 Since sub queues are tied to \procs, each \proc can then update the cache instance mapped to the local subqueue(s).349 To avoid unnecessary cache line invalidation, the map is only written to if the mapping changes.348 Since sub-queues are tied to \procs, each \proc can then update the cache instance mapped to the local sub-queue(s). 349 To avoid unnecessary cache line invalidation, the map is only written-to if the mapping changes. 350 350 351 351 This scheduler is used in the remainder of the thesis for managing CPU execution, but additional scheduling is needed to handle long-term blocking and unblocking, such as I/O. -
doc/theses/thierry_delisle_PhD/thesis/text/eval_macro.tex
r12df6fe r4520b77e 1 1 \chapter{Macro-Benchmarks}\label{macrobench} 2 3 \section{Static Web-Server} 4 5 In Memory Plain Text 6 7 Networked ZIPF 8 9 Nginx : 5Gb still good, 4Gb starts to suffer 10 11 Cforall : 10Gb too high, 4 Gb too low 2 The previous chapter demonstrated the \CFA scheduler achieves its equivalent performance goal in small and controlled \at-scheduling scenarios. 3 The next step is to demonstrate performance stays true in more realistic and complete scenarios. 4 Therefore, this chapter exercises both \at and I/O scheduling using two flavours of web servers that demonstrate \CFA performs competitively compared to web servers used in production environments. 5 6 Web servers are chosen because they offer fairly simple applications that perform complex I/O, both network and disk, and are useful as standalone products. 7 Furthermore, web servers are generally amenable to parallelization since their workloads are mostly homogeneous. 8 Therefore, web servers offer a stringent performance benchmark for \CFA. 9 Indeed, existing web servers have close to optimal performance, while the homogeneity of the workload means fairness may not be a problem. 10 As such, these experiments should highlight the overhead due to any \CFA fairness cost in realistic scenarios. 12 11 13 12 \section{Memcached} 13 Memcached~\cite{memcached} is an in-memory key-value store used in many production environments, \eg \cite{atikoglu2012workload}. 14 The Memcached server is so popular there exists a full-featured front-end for performance testing, called @mutilate@~\cite{GITHUB:mutilate}. 15 Experimenting on Memcached allows for a simple test of the \CFA runtime as a whole, exercising the scheduler, the idle-sleep mechanism, as well as the \io subsystem for sockets. 16 Note that this experiment does not exercise the \io subsystem with regard to disk operations because Memcached is an in-memory server. 14 17 15 18 \subsection{Benchmark Environment} 16 These experiments are run on a cluster of homogenous Supermicro SYS-6017R-TDF compute nodes with the following characteristics: 19 The Memcached experiments are run on a cluster of homogeneous Supermicro SYS-6017R-TDF compute nodes with the following characteristics. 20 \begin{itemize} 21 \item 17 22 The server runs Ubuntu 20.04.3 LTS on top of Linux Kernel 5.11.0-34. 23 \item 18 24 Each node has 2 Intel(R) Xeon(R) CPU E5-2620 v2 running at 2.10GHz. 19 These CPUs have 6 cores per CPUs and 2 \glspl{hthrd} per core, for a total of 24 \glspl{hthrd}. 20 The cpus each have 384 KB, 3 MB and 30 MB of L1, L2 and L3 caches respectively. 21 Each node is connected to the network through a Mellanox 10 Gigabit Ethernet port. 22 The network route uses 1 Mellanox SX1012 10/40 Gigabit Ethernet cluster switch. 23 24 25 \item 26 Each CPU has 6 cores and 2 \glspl{hthrd} per core, for a total of 24 \glspl{hthrd}. 27 \item 28 A CPU has 384 KB, 3 MB and 30 MB of L1, L2 and L3 caches, respectively. 29 \item 30 The compute nodes are connected to the network through a Mellanox 10 Gigabit Ethernet port. 31 \item 32 Network routing is performed by a Mellanox SX1012 10/40 Gigabit Ethernet switch. 33 \end{itemize} 34 35 \subsection{Memcached threading}\label{memcd:thrd} 36 Memcached can be built to use multiple threads in addition to its @libevent@ subsystem to handle requests. 37 When enabled, the threading implementation operates as follows~\cite[\S~16.2.2.8]{MemcachedThreading}: 38 \begin{itemize} 39 \item 40 Threading is handled by wrapping functions within the code to provide basic protection from updating the same global structures at the same time. 41 \item 42 Each thread uses its own instance of the @libevent@ to help improve performance. 43 \item 44 TCP/IP connections are handled with a single thread listening on the TCP/IP socket. 45 Each connection is then distributed to one of the active threads on a simple round-robin basis. 46 Each connection then operates solely within this thread while the connection remains open. 47 \item 48 For UDP connections, all the threads listen to a single UDP socket for incoming requests. 49 Threads that are not currently dealing with another request ignore the incoming packet. 50 One of the remaining, non-busy, threads reads the request and sends the response. 51 This implementation can lead to increased CPU \gls{load} as threads wake from sleep to potentially process the request. 52 \end{itemize} 53 Here, Memcached is based on an event-based web server architecture~\cite{Pai99Flash}, using \gls{kthrd}ing to run multiple largely independent event engines, and if needed, spinning up additional kernel threads to handle blocking I/O. 54 Alternative web server architectures are: 55 \begin{itemize} 56 \item 57 pipeline~\cite{Welsh01}, where the event engine is subdivided into multiple stages and the stages are connected with asynchronous buffers, where the final stage has multiple threads to handle blocking I/O. 58 \item 59 thread-per-connection~\cite{apache,Behren03}, where each incoming connection is served by a single \at in a strict 1-to-1 pairing, using the thread stack to hold the event state and folding the event engine implicitly into the threading runtime with its nonblocking I/O mechanism. 60 \end{itemize} 61 Both pipelining and thread-per-connection add flexibility to the implementation, as the serving logic can now block without halting the event engine~\cite{Harji12}. 62 63 However, \gls{kthrd}ing in Memcached is not amenable to this work, which is based on \gls{uthrding}. 64 While it is feasible to layer one user thread per kernel thread, it is not meaningful as it fails to exercise the user runtime; 65 it simply adds extra scheduling overhead over the kernel threading. 66 Hence, there is no direct way to compare Memcached using a kernel-level runtime with a user-level runtime. 67 68 Fortunately, there exists a recent port of Memcached to \gls{uthrding} based on the libfibre~\cite{DBLP:journals/pomacs/KarstenB20} \gls{uthrding} library. 69 This port did all of the heavy-lifting, making it straightforward to replace the libfibre user-threading with the \gls{uthrding} in \CFA. 70 It is now possible to compare the original kernel-threading Memcached with both user-threading runtimes in libfibre and \CFA. 71 72 As such, this Memcached experiment compares 3 different variations of Memcached: 73 \begin{itemize} 74 \item \emph{vanilla}: the official release of Memcached, version~1.6.9. 75 \item \emph{fibre}: a modification of vanilla using the thread-per-connection model on top of the libfibre runtime. 76 \item \emph{cfa}: a modification of the fibre web server that replaces the libfibre runtime with \CFA. 77 \end{itemize} 78 79 \subsection{Throughput} \label{memcd:tput} 80 This experiment is done by having the clients establish 15,360 total connections, which persist for the duration of the experiment. 81 The clients then send read and write queries with only 3\% writes (updates), attempting to follow a desired query rate, and the server responds to the desired rate as best as possible. 82 Figure~\ref{fig:memcd:rate:qps} shows the 3 server versions at different client rates, ``Target \underline{Q}ueries \underline{P}er \underline{S}econd'', and the actual rate, ``Actual QPS'', for all three web servers. 83 84 Like the experimental setup in Chapter~\ref{microbench}, each experiment is run 15 times, and for each client rate, the measured web server rate is plotted. 85 The solid line represents the median while the dashed and dotted lines represent the maximum and minimum respectively. 86 For rates below 500K queries per second, all three web servers match the client rate. 87 Beyond 500K, the web servers cannot match the client rate. 88 During this interval, vanilla Memcached achieves the highest web server throughput, with libfibre and \CFA slightly lower but very similar throughput. 89 Overall the performance of all three web servers is very similar, especially considering that at 500K the servers have reached saturation, which is discussed more in the next section. 25 90 26 91 \begin{figure} 27 92 \centering 28 \input{result.memcd.updt.qps.pstex_t} 29 \caption[Churn Benchmark : Throughput on Intel]{Churn Benchmark : Throughput on Intel\smallskip\newline Description} 30 \label{fig:memcd:updt:qps} 93 \resizebox{0.83\linewidth}{!}{\input{result.memcd.rate.qps.pstex_t}} 94 \caption[Memcached Benchmark: Throughput]{Memcached Benchmark: Throughput\smallskip\newline Desired vs Actual query rate for 15,360 connections. Target QPS is the query rate that the clients are attempting to maintain and Actual QPS is the rate at which the server can respond.} 95 \label{fig:memcd:rate:qps} 96 %\end{figure} 97 \bigskip 98 %\begin{figure} 99 \centering 100 \resizebox{0.83\linewidth}{!}{\input{result.memcd.rate.99th.pstex_t}} 101 \caption[Memcached Benchmark: 99th Percentile Latency]{Memcached Benchmark: 99th Percentile Latency\smallskip\newline 99th Percentile of the response latency as a function of \emph{desired} query rate for 15,360 connections. } 102 \label{fig:memcd:rate:tail} 31 103 \end{figure} 104 105 \subsection{Tail Latency} 106 Another popular performance metric is \newterm{tail} latency, which indicates some notion of fairness among requests across the experiment, \ie do some requests wait longer than other requests for service? 107 Since many web applications rely on a combination of different queries made in parallel, the latency of the slowest response, \ie tail latency, can dictate a performance perception. 108 Figure~\ref{fig:memcd:rate:tail} shows the 99th percentile latency results for the same Memcached experiment. 109 110 Again, each experiment is run 15 times with the median, maximum and minimum plotted with different lines. 111 As expected, the latency starts low and increases as the server gets close to saturation, at which point, the latency increases dramatically because the web servers cannot keep up with the connection rate so client requests are disproportionally delayed. 112 Because of this dramatic increase, the Y-axis is presented using a log scale. 113 Note that the graph shows the \emph{target} query rate, the actual response rate is given in Figure~\ref{fig:memcd:rate:qps} as this is the same underlying experiment. 114 115 For all three servers, the saturation point is reached before 500K queries per second, which is when throughput starts to decline among the web servers. 116 In this experiment, all three web servers are much more distinguishable than in the throughput experiment. 117 Vanilla Memcached achieves the lowest latency until 600K, after which all the web servers are struggling to respond to client requests. 118 \CFA begins to decline at 600K, indicating some bottleneck after saturation. 119 Overall, all three web servers achieve microsecond latencies and the increases in latency mostly follow each other. 120 121 \subsection{Update rate} 122 Since Memcached is effectively a simple database, the cache information can be written to concurrently by multiple queries. 123 And since writes can significantly affect performance, it is interesting to see how varying the update rate affects performance. 124 Figure~\ref{fig:memcd:updt} shows the results for the same experiment as the throughput and latency experiment but increasing the update percentage to 5\%, 10\% and 50\%, respectively, versus the original 3\% update percentage. 125 126 \begin{figure} 127 \hspace{-15pt} 128 \subfloat[][\CFA: Throughput]{ 129 \resizebox{0.5\linewidth}{!}{ 130 \input{result.memcd.forall.qps.pstex_t} 131 } 132 \label{fig:memcd:updt:forall:qps} 133 } 134 \subfloat[][\CFA: Latency]{ 135 \resizebox{0.52\linewidth}{!}{ 136 \input{result.memcd.forall.lat.pstex_t} 137 } 138 \label{fig:memcd:updt:forall:lat} 139 } 140 141 \hspace{-15pt} 142 \subfloat[][LibFibre: Throughput]{ 143 \resizebox{0.5\linewidth}{!}{ 144 \input{result.memcd.fibre.qps.pstex_t} 145 } 146 \label{fig:memcd:updt:fibre:qps} 147 } 148 \subfloat[][LibFibre: Latency]{ 149 \resizebox{0.52\linewidth}{!}{ 150 \input{result.memcd.fibre.lat.pstex_t} 151 } 152 \label{fig:memcd:updt:fibre:lat} 153 } 154 155 \hspace{-15pt} 156 \subfloat[][Vanilla: Throughput]{ 157 \resizebox{0.5\linewidth}{!}{ 158 \input{result.memcd.vanilla.qps.pstex_t} 159 } 160 \label{fig:memcd:updt:vanilla:qps} 161 } 162 \subfloat[][Vanilla: Latency]{ 163 \resizebox{0.52\linewidth}{!}{ 164 \input{result.memcd.vanilla.lat.pstex_t} 165 } 166 \label{fig:memcd:updt:vanilla:lat} 167 } 168 \caption[Throughput and Latency results at different update rates (percentage of writes).]{Throughput and Latency results at different update rates (percentage of writes).\smallskip\newline On the left, throughput as Desired vs Actual query rate. 169 Target QPS is the query rate that the clients are attempting to maintain and Actual QPS is the rate at which the server can respond. 170 On the right, tail latency, \ie 99th Percentile of the response latency as a function of \emph{desired} query rate. 171 For throughput, higher is better, for tail-latency, lower is better. 172 Each series represent 15 independent runs, the dashed lines are the maximums of each series while the solid lines are the median and the dotted lines are the minimums.} 173 All runs have 15,360 client connections. 174 \label{fig:memcd:updt} 175 \end{figure} 176 177 In the end, this experiment mostly demonstrates that the performance of Memcached is affected very little by the update rate. 178 Indeed, since values read/written can be bigger than what can be read/written atomically, a lock must be acquired while the value is read. 179 Hence, I believe the underlying locking pattern for reads and writes is fairly similar, if not the same. 180 These results suggest Memcached does not attempt to optimize reads/writes using a readers-writer lock to protect each value and instead just relies on having a sufficient number of keys to limit contention. 181 In the end, the update experiment shows that \CFA is achieving equivalent performance. 182 183 \section{Static Web-Server} 184 The Memcached experiment does not exercise two key aspects of the \io subsystem: accept\-ing new connections and interacting with disks. 185 On the other hand, a web server servicing static web pages does stress both accepting connections and disk \io by accepting tens of thousands of client requests per second where these requests return static data serviced from the file-system cache or disk.\footnote{ 186 web servers servicing dynamic requests, which read from multiple locations and construct a response, are not as interesting since creating the response takes more time and does not exercise the runtime in a meaningfully different way.} 187 The static web server experiment compares NGINX~\cite{nginx} with a custom \CFA-based web server developed for this experiment. 188 189 \subsection{NGINX threading} 190 NGINX is a high-performance, \emph{full-service}, event-driven web server. 191 It can handle both static and dynamic web content, as well as serve as a reverse proxy and a load balancer~\cite{reese2008nginx}. 192 This wealth of capabilities comes with a variety of potential configurations, dictating available features and performance. 193 The NGINX server runs a master process that performs operations such as reading configuration files, binding to ports, and controlling worker processes. 194 When running as a static web server, it uses an event-driven architecture to service incoming requests. 195 Incoming connections are assigned a \emph{stackless} HTTP state machine and worker processes can handle thousands of these state machines. 196 For the following experiment, NGINX is configured to use @epoll@ to listen for events on these state machines and have each worker process independently accept new connections. 197 Because of the realities of Linux, see Subsection~\ref{ononblock}, NGINX also maintains a pool of auxiliary threads to handle blocking \io. 198 The configuration can set the number of worker processes desired, as well as the size of the auxiliary pool. 199 However, for the following experiments, NGINX is configured to let the master process decide the appropriate number of threads. 200 201 \subsection{\CFA web server} 202 The \CFA web server is a straightforward thread-per-connection web server, where a fixed number of \ats are created upfront. 203 Each \at calls @accept@, through @io_uring@, on the listening port and handles the incoming connection once accepted. 204 Most of the implementation is fairly straightforward; 205 however, the inclusion of file \io found an @io_uring@ problem that required an unfortunate workaround. 206 207 Normally, web servers use @sendfile@~\cite{MAN:sendfile} to send files over a socket because it performs a direct move in the kernel from the file-system cache to the NIC, eliminating reading/writing the file into the web server. 208 While @io_uring@ does not support @sendfile@, it does support @splice@~\cite{MAN:splice}, which is strictly more powerful. 209 However, because of how Linux implements file \io, see Subsection~\ref{ononblock}, @io_uring@ must delegate splice calls to worker threads \emph{inside} the kernel. 210 As of Linux 5.13, @io_uring@ had no mechanism to restrict the number of worker threads, and therefore, when tens of thousands of splice requests are made, it correspondingly creates tens of thousands of internal \glspl{kthrd}. 211 Such a high number of \glspl{kthrd} slows Linux significantly. 212 Rather than abandon the experiment, the \CFA web server was switched to @sendfile@. 213 214 Starting with \emph{blocking} @sendfile@, \CFA achieves acceptable performance until saturation is reached. 215 At saturation, latency increases and client connections begin to timeout. 216 As these clients close their connection, the server must close its corresponding side without delay so the OS can reclaim the resources used by these connections. 217 Indeed, until the server connection is closed, the connection lingers in the CLOSE-WAIT TCP state~\cite{rfc:tcp} and the TCP buffers are preserved. 218 However, this poses a problem using blocking @sendfile@ calls: 219 when @sendfile@ blocks, the \proc rather than the \at blocks, preventing other connections from closing their sockets. 220 The call can block if there is insufficient memory, which can be caused by having too many connections in the CLOSE-WAIT state.\footnote{ 221 \lstinline{sendfile} can always block even in nonblocking mode if the file to be sent is not in the file-system cache, because Linux does not provide nonblocking disk I/O.} 222 This effect results in a negative feedback loop where more timeouts lead to more @sendfile@ calls running out of resources. 223 224 Normally, this problem is addressed by using @select@/@epoll@ to wait for sockets to have sufficient resources. 225 However, since @io_uring@ does not support @sendfile@ but does respect non\-blocking semantics, marking all sockets as non-blocking effectively circumvents the @io_uring@ subsystem entirely: 226 all calls simply immediately return @EAGAIN@ and all asynchronicity is lost. 227 228 Switching the entire \CFA runtime to @epoll@ for this experiment is unrealistic and does not help in the evaluation of the \CFA runtime. 229 For this reason, the \CFA web server sets and resets the @O_NONBLOCK@ flag before and after any calls to @sendfile@. 230 However, when the nonblocking @sendfile@ returns @EAGAIN@, the \CFA server cannot block the \at because its I/O subsystem uses @io_uring@. 231 Therefore, the \at spins performing the @sendfile@, yields if the call returns @EAGAIN@ and retries in these cases. 232 233 Interestingly, Linux 5.15 @io_uring@ introduces the ability to limit the number of worker threads that are created through the @IORING_REGISTER_IOWQ_MAX_WORKERS@ option. 234 Presumably, this limit would prevent the explosion of \glspl{kthrd}, which justified using @sendfile@ over @io_uring@ and @splice@. 235 However, recall from Section~\ref{iouring} that @io_uring@ maintains two pools of workers: bounded workers and unbounded workers. 236 For a web server, the unbounded workers should handle accepts and reads on sockets, and the bounded workers should handle reading files from disk. 237 This setup allows fine-grained control over the number of workers needed for each operation type and presumably leads to good performance. 238 239 However, @io_uring@ must contend with another reality of Linux: the versatility of @splice@. 240 Indeed, @splice@ can be used both for reading and writing to or from any type of file descriptor. 241 This generality makes it ambiguous which pool @io_uring@ should delegate @splice@ calls to. 242 In the case of splicing from a socket to a pipe, @splice@ behaves like an unbounded operation, but when splicing from a regular file to a pipe, @splice@ becomes a bounded operation. 243 To make things more complicated, @splice@ can read from a pipe and write to a regular file. 244 In this case, the read is an unbounded operation but the write is a bounded one. 245 This leaves @io_uring@ in a difficult situation where it can be very difficult to delegate splice operations to the appropriate type of worker. 246 Since there is little or no context available to @io_uring@, it seems to always delegate @splice@ operations to the unbounded workers. 247 This decision is unfortunate for this specific experiment since it prevents the web server from limiting the number of parallel calls to @splice@ without affecting the performance of @read@ or @accept@. 248 For this reason, the @sendfile@ approach described above is still the most performant solution in Linux 5.15. 249 250 One possible workaround is to create more @io_uring@ instances so @splice@ operations can be issued to a different instance than the @read@ and @accept@ operations. 251 However, I do not believe this solution is appropriate in general; 252 it simply replaces my current web server hack with a different, equivalent hack. 253 254 \subsection{Benchmark Environment} 255 Unlike the Memcached experiment, the web server experiment is run on a heterogeneous environment. 256 \begin{itemize} 257 \item 258 The server runs Ubuntu 20.04.4 LTS on top of Linux Kernel 5.13.0-52. 259 \item 260 The server computer has four AMD Opteron\texttrademark Processor 6380 with 16 cores running at 2.5GHz, for a total of 64 \glspl{hthrd}. 261 \item 262 The computer is booted with only 8 CPUs enabled, which is sufficient to achieve line rate. 263 \item 264 Each CPU has 64 KB, 256 KiB and 8 MB of L1, L2 and L3 caches respectively. 265 \item 266 The computer is booted with only 25GB of memory to restrict the file-system cache. 267 \end{itemize} 268 There are 8 client machines. 269 \begin{itemize} 270 \item 271 A client runs a 2.6.11-1 SMP Linux kernel, which permits each client load generator to run on a separate CPU. 272 \item 273 It has two 2.8 GHz Xeon CPUs, and four one-gigabit Ethernet cards. 274 \item 275 Network routing is performed by an HP 2530 10 Gigabit Ethernet switch. 276 \item 277 A client machine runs two copies of the workload generator. 278 \end{itemize} 279 The clients and network are sufficiently provisioned to drive the server to saturation and beyond. 280 Hence, any server effects are attributable solely to the runtime system and web server. 281 Finally, without restricting the server hardware resources, it is impossible to determine if a runtime system or the web server using it has any specific design restrictions, \eg using space to reduce time. 282 Trying to determine these restrictions with large numbers of processors or memory simply means running equally large experiments, which take longer and are harder to set up. 283 284 \subsection{Throughput} 285 To measure web server throughput, the server computer is loaded with 21,600 files, sharded across 650 directories, occupying about 2.2GB of disk, distributed over the server's RAID-5 4-drives to achieve high throughput for disk I/O. 286 The clients run httperf~\cite{httperf} to request a set of static files. 287 The httperf load generator is used with session files to simulate a large number of users and to implement a partially open-loop system. 288 This permits httperf to produce overload conditions, generate multiple requests from persistent HTTP/1.1 connections, and include both active and inactive off periods to model browser processing times and user think times~\cite{Barford98}. 289 290 The experiments are run with 16 clients, each running a copy of httperf (one copy per CPU), requiring a set of 16 log files with requests conforming to a Zipf distribution. 291 This distribution is representative of users accessing static data through a web browser. 292 Each request reads a file name from its trace, establishes a connection, performs an HTTP GET request for the file name, receives the file data, closes the connection, and repeats the process. 293 Some trace elements have multiple file names that are read across a persistent connection. 294 A client times out if the server does not complete a request within 10 seconds. 295 296 An experiment consists of running a server with request rates ranging from 10,000 to 70,000 requests per second; 297 each rate takes about 5 minutes to complete. 298 There are 20 seconds of idle time between rates and between experiments to allow connections in the TIME-WAIT state to clear. 299 Server throughput is measured both at peak and after saturation (\ie after peak). 300 Peak indicates the level of client requests the server can handle and after peak indicates if a server degrades gracefully. 301 Throughput is measured by aggregating the results from httperf for all the clients. 302 303 This experiment can be done for two workload scenarios by reconfiguring the server with different amounts of memory: 25 GB and 2.5 GB. 304 The two workloads correspond to in-memory and disk-I/O respectively. 305 Due to the Zipf distribution, only a small amount of memory is needed to service a significant percentage of requests. 306 Table~\ref{t:CumulativeMemory} shows the cumulative memory required to satisfy the specified percentage of requests; e.g., 95\% of the requests come from 126.5 MB of the file set and 95\% of the requests are for files less than or equal to 51,200 bytes. 307 Interestingly, with 2.5 GB of memory, significant disk-I/O occurs. 308 309 \begin{table} 310 \caption{Cumulative memory for requests by file size} 311 \label{t:CumulativeMemory} 312 \begin{tabular}{r|rrrrrrrr} 313 \% Requests & 10 & 30 & 50 & 70 & 80 & 90 & \textbf{95} & 100 \\ 314 Memory (MB) & 0.5 & 1.5 & 8.4 & 12.2 & 20.1 & 94.3 & \textbf{126.5} & 2,291.6 \\ 315 File Size (B) & 409 & 716 & 4,096 & 5,120 & 7,168 & 40,960 & \textbf{51,200} & 921,600 316 \end{tabular} 317 \end{table} 32 318 33 319 \begin{figure} 34 320 \centering 35 \input{result.memcd.updt.lat.pstex_t} 36 \caption[Churn Benchmark : Throughput on Intel]{Churn Benchmark : Throughput on Intel\smallskip\newline Description} 37 \label{fig:memcd:updt:lat} 321 \subfloat[][Throughput]{ 322 \resizebox{0.85\linewidth}{!}{\input{result.swbsrv.25gb.pstex_t}} 323 \label{fig:swbsrv:ops} 324 } 325 326 \subfloat[][Rate of Errors]{ 327 \resizebox{0.85\linewidth}{!}{\input{result.swbsrv.25gb.err.pstex_t}} 328 \label{fig:swbsrv:err} 329 } 330 \caption[Static web server Benchmark: Throughput]{Static web server Benchmark: Throughput\smallskip\newline Throughput vs request rate for short-lived connections.} 331 \label{fig:swbsrv} 38 332 \end{figure} 39 333 40 \begin{figure} 41 \centering 42 \input{result.memcd.rate.qps.pstex_t} 43 \caption[Churn Benchmark : Throughput on Intel]{Churn Benchmark : Throughput on Intel\smallskip\newline Description} 44 \label{fig:memcd:rate:qps} 45 \end{figure} 46 47 \begin{figure} 48 \centering 49 \input{result.memcd.rate.99th.pstex_t} 50 \caption[Churn Benchmark : Throughput on Intel]{Churn Benchmark : Throughput on Intel\smallskip\newline Description} 51 \label{fig:memcd:rate:tail} 52 \end{figure} 334 Figure~\ref{fig:swbsrv} shows the results comparing \CFA to NGINX in terms of throughput. 335 These results are fairly straightforward. 336 Both servers achieve the same throughput until around 57,500 requests per second. 337 Since the clients are asking for the same files, the fact that the throughput matches exactly is expected as long as both servers are able to serve the request rate. 338 Once the saturation point is reached, both servers are still very close. 339 NGINX achieves slightly better throughput. 340 However, Figure~\ref{fig:swbsrv:err} shows the rate of errors, a gross approximation of tail latency, where \CFA achieves notably fewer errors once the servers reach saturation. 341 This suggests \CFA is slightly fairer with less throughput, while NGINX sacrifices fairness for more throughput. 342 This experiment demonstrates that the \CFA web server is able to match the performance of NGINX up to and beyond the saturation point of the machine. 343 344 \subsection{Disk Operations} 345 With 25GB of memory, the entire experimental file-set plus the web server and OS fit in memory. 346 If memory is constrained, the OS must evict files from the file cache, which causes @sendfile@ to read from disk.\footnote{ 347 For the in-memory experiments, the file-system cache was warmed by running an experiment three times before measuring started to ensure all files are in the file-system cache.} 348 web servers can behave very differently once file I/O begins and increases. 349 Hence, prior work~\cite{Harji10} suggests running both kinds of experiments to test overall web server performance. 350 351 However, after reducing memory to 2.5GB, the problem with @splice@ and @io_uring@ rears its ugly head again. 352 Indeed, in the in-memory configuration, replacing @splice@ with calls to @sendfile@ works because the bounded side basically never blocks. 353 Like @splice@, @sendfile@ is in a situation where the read side requires bounded blocking, \eg reading from a regular file, while the write side requires unbounded blocking, \eg blocking until the socket is available for writing. 354 The unbounded side can be handled by yielding when it returns @EAGAIN@, as mentioned above, but this trick does not work for the bounded side. 355 The only solution for the bounded side is to spawn more threads and let these handle the blocking. 356 357 Supporting this case in the web server would require creating more \procs or creating a dedicated thread pool. 358 However, I felt this kind of modification moves too far away from my goal of evaluating the \CFA runtime, \ie it begins writing another runtime system; 359 hence, I decided to forgo experiments on low-memory performance. -
doc/theses/thierry_delisle_PhD/thesis/text/eval_micro.tex
r12df6fe r4520b77e 1 1 \chapter{Micro-Benchmarks}\label{microbench} 2 2 3 The first step in evaluating this work is to test-out small controlled cases to ensure the basics work properly. 4 This chapter presents five different experimental setup, evaluating some of the basic features of \CFA's scheduler. 5 6 \section{Benchmark Environment} 3 The first step in evaluating this work is to test small controlled cases to ensure the basics work properly. 4 This chapter presents five different experimental setups for evaluating the basic features of the \CFA, libfibre~\cite{libfibre}, Go, and Tokio~\cite{Tokio} schedulers. 5 All of these systems have a \gls{uthrding} model. 6 The goal of this chapter is to show that the \CFA scheduler obtains equivalent performance to other, less fair, schedulers through the different experiments. 7 Note that only the code of the \CFA tests is shown; 8 all tests in the other systems are functionally identical and available online~\cite{GITHUB:SchedulingBenchmarks}. 9 10 \section{Benchmark Environment}\label{microenv} 11 7 12 All benchmarks are run on two distinct hardware platforms. 8 13 \begin{description} 9 14 \item[AMD] is a server with two AMD EPYC 7662 CPUs and 256GB of DDR4 RAM. 10 The EPYC CPU has 64 cores with 2 \glspl{hthrd} per core, for 128 \glspl{hthrd} per socket with 2 sockets for a total of 256 \glspl{hthrd}.15 The EPYC CPU has 64 cores with 2 \glspl{hthrd} per core, for a total of 128 \glspl{hthrd} per socket with 2 sockets for a total of 256 \glspl{hthrd}. 11 16 Each CPU has 4 MB, 64 MB and 512 MB of L1, L2 and L3 caches, respectively. 12 Each L1 and L2 instance areonly shared by \glspl{hthrd} on a given core, but each L3 instance is shared by 4 cores, therefore 8 \glspl{hthrd}.17 Each L1 and L2 instance is only shared by \glspl{hthrd} on a given core, but each L3 instance is shared by 4 cores, therefore 8 \glspl{hthrd}. 13 18 The server runs Ubuntu 20.04.2 LTS on top of Linux Kernel 5.8.0-55. 14 19 … … 20 25 \end{description} 21 26 22 For all benchmarks, @taskset@ is used to limit the experiment to 1 NUMA Node with no hyper threading. 23 If more \glspl{hthrd} are needed, then 1 NUMA Node with hyperthreading is used. 24 If still more \glspl{hthrd} are needed, then the experiment is limited to as few NUMA Nodes as needed. 25 26 The limited sharing of the last-level cache on the AMD machine is markedly different than the Intel machine. 27 Indeed, while on both architectures L2 cache misses that are served by L3 caches on a different CPU incur a significant latency, on the AMD it is also the case that cache misses served by a different L3 instance on the same CPU still incur high latency. 28 29 30 \section{Cycling latency} 27 For all benchmarks, @taskset@ is used to limit the experiment to 1 NUMA node with no hyperthreading. 28 If more \glspl{hthrd} are needed, then 1 NUMA node with hyperthreading is used. 29 If still more \glspl{hthrd} are needed, then the experiment is limited to as few NUMA nodes as needed. 30 For the Intel machine, this means that from 1 to 24 \procs one socket and \emph{no} hyperthreading is used, and from 25 to 48 \procs still only one socket is used but \emph{with} hyperthreading. 31 This pattern is repeated between 49 and 96, between 97 and 144, and between 145 and 192. 32 On AMD, the same algorithm is used, but the machine only has 2 sockets. 33 So hyperthreading\footnote{ 34 Hyperthreading normally refers specifically to the technique used by Intel, however, it is often used generically to refer to any equivalent feature.} 35 is used when the \proc count reaches 65 and 193. 36 37 The limited sharing of the last-level cache on the AMD machine is markedly different from the Intel machine. 38 Indeed, while on both architectures L2 cache misses that are served by L3 caches on a different CPU incur a significant latency, on the AMD it is also the case that cache misses served by a different L3 instance on the same CPU also incur high latency. 39 40 \section{Experimental setup} 41 42 Each experiment is run 15 times varying the number of processors depending on the two different computers. 43 All experiments gather throughput data and secondary data for scalability or latency. 44 The data is graphed using a solid, a dashed, and a dotted line, representing the median, maximum and minimum results respectively, where the minimum/maximum lines are referred to as the \emph{extremes}.\footnote{ 45 An alternative display is to use error bars with min/max as the bottom/top for the bar. 46 However, this approach is not truly an error bar around a mean value and I felt the connected lines are easier to read.} 47 This graph presentation offers an overview of the distribution of the results for each experiment. 48 49 For each experiment, four graphs are generated showing traditional throughput on the top row and \newterm{scalability} or \newterm{latency} on the bottom row (peek ahead to Figure~\ref{fig:cycle:jax}). 50 Scalability uses the same data as throughput but the Y-axis is calculated as the number of \procs over the throughput. 51 In this representation, perfect scalability should appear as a horizontal line, \eg, if doubling the number of \procs doubles the throughput, then the relation stays the same. 52 53 The left column shows results for hundreds of \ats per \proc, enough to always keep every \proc busy. 54 The right column shows results for very few \ats per \proc, where the ready queues are expected to be near empty most of the time. 55 The distinction between many and few \ats is meaningful because the idle sleep subsystem is expected to matter only in the right column, where spurious effects can cause a \proc to run out of work temporarily. 56 57 \section{Cycle} 58 59 The most basic evaluation of any ready queue is the latency needed to push and pop one element from the ready queue. 60 Since these two operations also describe a @yield@ operation, many systems use this operation as the fundamental benchmark. 61 However, yielding can be treated as a special case by optimizing it away since the number of ready \ats does not change. 62 Hence, systems that perform this optimization have an artificial performance benefit because the yield becomes a \emph{nop}. 63 For this reason, I designed a different push/pop benchmark, called \newterm{Cycle Benchmark}. 64 This benchmark arranges several \ats into a ring, as seen in Figure~\ref{fig:cycle}, where the ring is a circular singly-linked list. 65 At runtime, each \at unparks the next \at before \glslink{atblock}{parking} itself. 66 Unparking the next \at pushes that \at onto the ready queue while the ensuing \park leads to a \at being popped from the ready queue. 67 31 68 \begin{figure} 32 69 \centering 33 70 \input{cycle.pstex_t} 34 \caption[Cycle benchmark]{Cycle benchmark\smallskip\newline Each \ gls{at} unparks the next \gls{at} in the cycle before parkingitself.}71 \caption[Cycle benchmark]{Cycle benchmark\smallskip\newline Each \at unparks the next \at in the cycle before \glslink{atblock}{parking} itself.} 35 72 \label{fig:cycle} 36 73 \end{figure} 37 The most basic evaluation of any ready queue is to evaluate the latency needed to push and pop one element from the ready queue. 38 Since these two operation also describe a @yield@ operation, many systems use this operation as the most basic benchmark. 39 However, yielding can be treated as a special case by optimizing it away (dead code) since the number of ready \glspl{at} does not change. 40 Not all systems perform this optimization, but those that do have an artificial performance benefit because the yield becomes a \emph{nop}. 41 For this reason, I chose a different first benchmark, called \newterm{Cycle Benchmark}. 42 This benchmark arranges a number of \glspl{at} into a ring, as seen in Figure~\ref{fig:cycle}, where the ring is a circular singly-linked list. 43 At runtime, each \gls{at} unparks the next \gls{at} before parking itself. 44 Unparking the next \gls{at} pushes that \gls{at} onto the ready queue as does the ensuing park. 45 46 Hence, the underlying runtime cannot rely on the number of ready \glspl{at} staying constant over the duration of the experiment. 47 In fact, the total number of \glspl{at} waiting on the ready queue is expected to vary because of the race between the next \gls{at} unparking and the current \gls{at} parking. 48 That is, the runtime cannot anticipate that the current task will immediately park. 49 As well, the size of the cycle is also decided based on this race, \eg a small cycle may see the chain of unparks go full circle before the first \gls{at} parks because of time-slicing or multiple \procs. 50 Every runtime system must handle this race and cannot optimized away the ready-queue pushes and pops. 51 To prevent any attempt of silently omitting ready-queue operations, the ring of \glspl{at} is made big enough so the \glspl{at} have time to fully park before being unparked again. 52 (Note, an unpark is like a V on a semaphore, so the subsequent park (P) may not block.) 74 75 Therefore, the underlying runtime cannot rely on the number of ready \ats staying constant over the duration of the experiment. 76 In fact, the total number of \ats waiting on the ready queue is expected to vary because of the race between the next \at \glslink{atsched}{unparking} and the current \at \glslink{atblock}{parking}. 77 That is, the runtime cannot anticipate that the current task immediately parks. 78 As well, the size of the cycle is also decided based on this race, \eg a small cycle may see the chain of unparks go full circle before the first \at parks because of time-slicing or multiple \procs. 79 If this happens, the scheduler push and pop are avoided and the results of the experiment are skewed. 80 (Note, an \unpark is like a V on a semaphore, so the subsequent \park (P) may not block.) 81 Every runtime system must handle this race and cannot optimize away the ready-queue pushes and pops. 82 To prevent any attempt of silently omitting ready-queue operations, the ring of \ats is made big enough so the \ats have time to fully \park before being unparked again. 53 83 Finally, to further mitigate any underlying push/pop optimizations, especially on SMP machines, multiple rings are created in the experiment. 54 84 55 To avoid this benchmark being affected by idle-sleep handling, the number of rings is multiple times greater than the number of \glspl{proc}. 56 This design avoids the case where one of the \glspl{proc} runs out of work because of the variation on the number of ready \glspl{at} mentioned above. 57 58 Figure~\ref{fig:cycle:code} shows the pseudo code for this benchmark. 59 There is additional complexity to handle termination (not shown), which requires a binary semaphore or a channel instead of raw @park@/@unpark@ and carefully picking the order of the @P@ and @V@ with respect to the loop condition. 85 Figure~\ref{fig:cycle:code} shows the pseudo code for this benchmark, where each cycle has 5 \ats. 86 There is additional complexity to handle termination (not shown), which requires a binary semaphore or a channel instead of raw \park/\unpark and carefully picking the order of the @P@ and @V@ with respect to the loop condition. 60 87 61 88 \begin{figure} … … 64 91 count := 0 65 92 for { 93 @this.next.wake()@ 66 94 @wait()@ 67 @this.next.wake()@68 95 count ++ 69 96 if must_stop() { break } … … 72 99 } 73 100 \end{cfa} 74 \caption[Cycle Benchmark : Pseudo Code]{Cycle Benchmark: Pseudo Code}101 \caption[Cycle Benchmark: Pseudo Code]{Cycle Benchmark: Pseudo Code} 75 102 \label{fig:cycle:code} 103 \bigskip 104 \subfloat[][Throughput, 100 cycles per \proc]{ 105 \resizebox{0.5\linewidth}{!}{ 106 \input{result.cycle.jax.ops.pstex_t} 107 } 108 \label{fig:cycle:jax:ops} 109 } 110 \subfloat[][Throughput, 1 cycle per \proc]{ 111 \resizebox{0.5\linewidth}{!}{ 112 \input{result.cycle.low.jax.ops.pstex_t} 113 } 114 \label{fig:cycle:jax:low:ops} 115 } 116 117 \subfloat[][Scalability, 100 cycles per \proc]{ 118 \resizebox{0.5\linewidth}{!}{ 119 \input{result.cycle.jax.ns.pstex_t} 120 } 121 \label{fig:cycle:jax:ns} 122 } 123 \subfloat[][Scalability, 1 cycle per \proc]{ 124 \resizebox{0.5\linewidth}{!}{ 125 \input{result.cycle.low.jax.ns.pstex_t} 126 } 127 \label{fig:cycle:jax:low:ns} 128 } 129 \caption[Cycle Benchmark on Intel]{Cycle Benchmark on Intel\smallskip\newline Throughput and scalability as a function of \proc count, 5 \ats per cycle, and different cycle counts. 130 For throughput, higher is better, for scalability, lower is better. 131 Each series represent 15 independent runs, the dashed lines are the maximums of each series while the solid lines are the median and the dotted lines are the minimums.} 132 \label{fig:cycle:jax} 133 \end{figure} 134 135 \begin{figure} 136 \subfloat[][Throughput, 100 cycles per \proc]{ 137 \resizebox{0.5\linewidth}{!}{ 138 \input{result.cycle.nasus.ops.pstex_t} 139 } 140 \label{fig:cycle:nasus:ops} 141 } 142 \subfloat[][Throughput, 1 cycle per \proc]{ 143 \resizebox{0.5\linewidth}{!}{ 144 \input{result.cycle.low.nasus.ops.pstex_t} 145 } 146 \label{fig:cycle:nasus:low:ops} 147 } 148 149 \subfloat[][Scalability, 100 cycles per \proc]{ 150 \resizebox{0.5\linewidth}{!}{ 151 \input{result.cycle.nasus.ns.pstex_t} 152 } 153 \label{fig:cycle:nasus:ns} 154 } 155 \subfloat[][Scalability, 1 cycle per \proc]{ 156 \resizebox{0.5\linewidth}{!}{ 157 \input{result.cycle.low.nasus.ns.pstex_t} 158 } 159 \label{fig:cycle:nasus:low:ns} 160 } 161 \caption[Cycle Benchmark on AMD]{Cycle Benchmark on AMD\smallskip\newline Throughput and scalability as a function of \proc count, 5 \ats per cycle, and different cycle counts. 162 For throughput, higher is better, for scalability, lower is better. 163 Each series represent 15 independent runs, the dashed lines are the maximums of each series while the solid lines are the median and the dotted lines are the minimums.} 164 \label{fig:cycle:nasus} 76 165 \end{figure} 77 166 78 167 \subsection{Results} 79 Figure~\ref{fig:cycle:jax} shows the throughput as a function of \proc count, where each run uses 100 cycles per \proc and 5 \ats per cycle. 80 81 \begin{figure} 82 \subfloat[][Throughput, 100 \ats per \proc]{ 83 \resizebox{0.5\linewidth}{!}{ 84 \input{result.cycle.jax.ops.pstex_t} 85 } 86 \label{fig:cycle:jax:ops} 87 } 88 \subfloat[][Throughput, 1 \ats per \proc]{ 89 \resizebox{0.5\linewidth}{!}{ 90 \input{result.cycle.low.jax.ops.pstex_t} 91 } 92 \label{fig:cycle:jax:low:ops} 93 } 94 95 \subfloat[][Latency, 100 \ats per \proc]{ 96 \resizebox{0.5\linewidth}{!}{ 97 \input{result.cycle.jax.ns.pstex_t} 98 } 99 100 } 101 \subfloat[][Latency, 1 \ats per \proc]{ 102 \resizebox{0.5\linewidth}{!}{ 103 \input{result.cycle.low.jax.ns.pstex_t} 104 } 105 \label{fig:cycle:jax:low:ns} 106 } 107 \caption[Cycle Benchmark on Intel]{Cycle Benchmark on Intel\smallskip\newline Throughput as a function of \proc count with 100 cycles per \proc and 5 \ats per cycle.} 108 \label{fig:cycle:jax} 109 \end{figure} 110 111 \todo{results discussion} 168 169 Figures~\ref{fig:cycle:jax} and \ref{fig:cycle:nasus} show the results for the cycle experiment on Intel and AMD, respectively. 170 Looking at the left column on Intel, Figures~\ref{fig:cycle:jax:ops} and \ref{fig:cycle:jax:ns} show the results for 100 cycles of 5 \ats for each \proc. 171 \CFA, Go and Tokio all obtain effectively the same throughput performance. 172 Libfibre is slightly behind in this case but still scales decently. 173 As a result of the \gls{kthrd} placement, additional \procs from 25 to 48 offer less performance improvement for all runtimes, which can be seen as a flattening of the line. 174 This effect even causes a decrease in throughput in libfibre's case. 175 As expected, this pattern repeats between \proc count 72 and 96. 176 177 Looking next at the right column on Intel, Figures~\ref{fig:cycle:jax:low:ops} and \ref{fig:cycle:jax:low:ns} show the results for 1 cycle of 5 \ats for each \proc. 178 \CFA and Tokio obtain very similar results overall, but Tokio shows more variations in the results. 179 Go achieves slightly better performance than \CFA and Tokio, but all three display significantly worst performance compared to the left column. 180 This decrease in performance is likely due to the additional overhead of the idle-sleep mechanism. 181 This can either be the result of \procs actually running out of work or simply additional overhead from tracking whether or not there is work available. 182 Indeed, unlike the left column, it is likely that the ready queue is transiently empty, which likely triggers additional synchronization steps. 183 Interestingly, libfibre achieves better performance with 1 cycle. 184 185 Looking now at the results for the AMD architecture, Figure~\ref{fig:cycle:nasus}, the results are overall similar to the Intel results, but with close to double the performance, slightly increased variation, and some differences in the details. 186 Note the maximum of the Y-axis on Intel and AMD differ significantly. 187 Looking at the left column on AMD, Figures~\ref{fig:cycle:nasus:ops} and \ref{fig:cycle:nasus:ns} all 4 runtimes achieve very similar throughput and scalability. 188 However, as the number of \procs grows higher, the results on AMD show notably more variability than on Intel. 189 The different performance improvements and plateaus are due to cache topology and appear at the expected: \proc counts of 64, 128 and 192, for the same reasons as on Intel. 190 Looking next at the right column on AMD, Figures~\ref{fig:cycle:nasus:low:ops} and \ref{fig:cycle:nasus:low:ns}, Tokio and Go have the same throughput performance, while \CFA is slightly slower. 191 This result is different than on Intel, where Tokio behaved like \CFA rather than behaving like Go. 192 Again, the same performance increase for libfibre is visible when running fewer \ats. 193 Note, I did not investigate the libfibre performance boost for 1 cycle in this experiment. 194 195 The conclusion from both architectures is that all of the compared runtimes have fairly equivalent performance for this micro-benchmark. 196 Clearly, the pathological case with 1 cycle per \proc can affect fairness algorithms managing mostly idle processors, \eg \CFA, but only at high core counts. 197 In this case, \emph{any} helping is likely to cause a cascade of \procs running out of work and attempting to steal. 198 For this experiment, the \CFA scheduler has achieved the goal of obtaining equivalent performance to other, less fair, schedulers. 112 199 113 200 \section{Yield} 114 For completion, the classic yield benchmark is included. 115 This benchmark is simpler than the cycle test: it creates many \glspl{at} that call @yield@. 201 202 For completeness, the classic yield benchmark is included. 203 Here, the throughput is dominated by the mechanism used to handle the @yield@ function. 204 Figure~\ref{fig:yield:code} shows pseudo code for this benchmark, where the cycle @wait/next.wake@ is replaced by @yield@. 116 205 As mentioned, this benchmark may not be representative because of optimization shortcuts in @yield@. 117 The only interesting variable in this benchmark is the number of \glspl{at} per \glspl{proc}, where ratios close to 1 means the ready queue(s) can be empty. 118 This scenario can put a strain on the idle-sleep handling compared to scenarios where there is plenty of work. 119 Figure~\ref{fig:yield:code} shows pseudo code for this benchmark, where the @wait/next.wake@ is replaced by @yield@. 206 The only interesting variable in this benchmark is the number of \ats per \procs, where ratios close to 1 means the ready queue(s) can be empty, which again puts a strain on the idle-sleep handling. 120 207 121 208 \begin{figure} … … 131 218 } 132 219 \end{cfa} 133 \caption[Yield Benchmark : Pseudo Code]{Yield Benchmark: Pseudo Code}220 \caption[Yield Benchmark: Pseudo Code]{Yield Benchmark: Pseudo Code} 134 221 \label{fig:yield:code} 222 %\end{figure} 223 \bigskip 224 %\begin{figure} 225 \subfloat[][Throughput, 100 \ats per \proc]{ 226 \resizebox{0.5\linewidth}{!}{ 227 \input{result.yield.jax.ops.pstex_t} 228 } 229 \label{fig:yield:jax:ops} 230 } 231 \subfloat[][Throughput, 1 \at per \proc]{ 232 \resizebox{0.5\linewidth}{!}{ 233 \input{result.yield.low.jax.ops.pstex_t} 234 } 235 \label{fig:yield:jax:low:ops} 236 } 237 238 \subfloat[][Scalability, 100 \ats per \proc]{ 239 \resizebox{0.5\linewidth}{!}{ 240 \input{result.yield.jax.ns.pstex_t} 241 } 242 \label{fig:yield:jax:ns} 243 } 244 \subfloat[][Scalability, 1 \at per \proc]{ 245 \resizebox{0.5\linewidth}{!}{ 246 \input{result.yield.low.jax.ns.pstex_t} 247 } 248 \label{fig:yield:jax:low:ns} 249 } 250 \caption[Yield Benchmark on Intel]{Yield Benchmark on Intel\smallskip\newline Throughput and scalability as a function of \proc count. 251 For throughput, higher is better, for scalability, lower is better. 252 Each series represent 15 independent runs, the dashed lines are the maximums of each series while the solid lines are the median and the dotted lines are the minimums.} 253 \label{fig:yield:jax} 135 254 \end{figure} 136 255 137 256 \subsection{Results} 138 257 139 Figure~\ref{fig:yield:jax} shows the throughput as a function of \proc count, where each run uses 100 \ats per \proc. 258 Figures~\ref{fig:yield:jax} and \ref{fig:yield:nasus} show the results for the yield experiment on Intel and AMD, respectively. 259 Looking at the left column on Intel, Figures~\ref{fig:yield:jax:ops} and \ref{fig:yield:jax:ns} show the results for 100 \ats for each \proc. 260 Note that the Y-axis on this graph is twice as large as the Intel cycle graph. 261 A visual glance between the left columns of the cycle and yield graphs confirms my claim that the yield benchmark is unreliable. 262 \CFA has no special handling for @yield@, but this experiment requires less synchronization than the @cycle@ experiment. 263 Hence, the @yield@ throughput and scalability graphs have similar shapes to the corresponding @cycle@ graphs. 264 The only difference is slightly better performance for @yield@ because of less synchronization. 265 Libfibre has special handling for @yield@ using the fact that the number of ready fibres does not change, and therefore, bypassing the idle-sleep mechanism entirely. 266 Hence, libfibre behaves very differently in the cycle and yield benchmarks, with a 4 times increase in performance on the left column. 267 Go has special handling for @yield@ by putting a yielding goroutine on a secondary global ready-queue, giving it a lower priority. 268 The result is that multiple \glspl{hthrd} contend for the global queue and performance suffers drastically. 269 Hence, Go behaves very differently in the cycle and yield benchmarks, with a complete performance collapse in @yield@. 270 Tokio has a similar performance collapse after 16 processors, and therefore, its special @yield@ handling is probably related to a Go-like scheduler problem and/or a \CFA idle-sleep problem. 271 (I did not dig through the Rust code to ascertain the exact reason for the collapse.) 272 Note that since there is no communication among \ats, locality problems are much less likely than for the cycle benchmark. 273 This lack of communication is probably why the plateaus due to topology are not present. 274 275 Looking next at the right column on Intel, Figures~\ref{fig:yield:jax:low:ops} and \ref{fig:yield:jax:low:ns} show the results for 1 \at for each \proc. 276 As for @cycle@, \CFA's cost of idle sleep comes into play in a very significant way in Figure~\ref{fig:yield:jax:low:ns}, where the scaling is not flat. 277 This result is to be expected since fewer \ats mean \procs are more likely to run out of work. 278 On the other hand, when only running 1 \at per \proc, libfibre optimizes further and forgoes the context switch entirely. 279 This results in libfibre outperforming other runtimes, even more, achieving 8 times more throughput than for @cycle@. 280 Finally, Go and Tokio's performance collapse is still the same with fewer \ats. 281 The only exception is Tokio running on 24 \procs, deepening the mystery of its yielding mechanism further. 140 282 141 283 \begin{figure} 142 284 \subfloat[][Throughput, 100 \ats per \proc]{ 143 285 \resizebox{0.5\linewidth}{!}{ 144 \input{result.yield.jax.ops.pstex_t} 145 } 146 \label{fig:yield:jax:ops} 147 } 148 \subfloat[][Throughput, 1 \ats per \proc]{ 149 \resizebox{0.5\linewidth}{!}{ 150 \input{result.yield.low.jax.ops.pstex_t} 151 } 152 \label{fig:yield:jax:low:ops} 153 } 154 155 \subfloat[][Latency, 100 \ats per \proc]{ 156 \resizebox{0.5\linewidth}{!}{ 157 \input{result.yield.jax.ns.pstex_t} 158 } 159 \label{fig:yield:jax:ns} 160 } 161 \subfloat[][Latency, 1 \ats per \proc]{ 162 \resizebox{0.5\linewidth}{!}{ 163 \input{result.yield.low.jax.ns.pstex_t} 164 } 165 \label{fig:yield:jax:low:ns} 166 } 167 \caption[Yield Benchmark on Intel]{Yield Benchmark on Intel\smallskip\newline Throughput as a function of \proc count, using 1 \ats per \proc.} 168 \label{fig:yield:jax} 169 \end{figure} 170 171 \todo{results discussion} 286 \input{result.yield.nasus.ops.pstex_t} 287 } 288 \label{fig:yield:nasus:ops} 289 } 290 \subfloat[][Throughput, 1 \at per \proc]{ 291 \resizebox{0.5\linewidth}{!}{ 292 \input{result.yield.low.nasus.ops.pstex_t} 293 } 294 \label{fig:yield:nasus:low:ops} 295 } 296 297 \subfloat[][Scalability, 100 \ats per \proc]{ 298 \resizebox{0.5\linewidth}{!}{ 299 \input{result.yield.nasus.ns.pstex_t} 300 } 301 \label{fig:yield:nasus:ns} 302 } 303 \subfloat[][Scalability, 1 \at per \proc]{ 304 \resizebox{0.5\linewidth}{!}{ 305 \input{result.yield.low.nasus.ns.pstex_t} 306 } 307 \label{fig:yield:nasus:low:ns} 308 } 309 \caption[Yield Benchmark on AMD]{Yield Benchmark on AMD\smallskip\newline Throughput and scalability as a function of \proc count. 310 For throughput, higher is better, for scalability, lower is better. 311 Each series represent 15 independent runs, the dashed lines are the maximums of each series while the solid lines are the median and the dotted lines are the minimums.} 312 \label{fig:yield:nasus} 313 \end{figure} 314 315 Looking now at the results for the AMD architecture, Figure~\ref{fig:yield:nasus}, the results again show a story that is overall similar to the results on the Intel, with increased variation and some differences in the details. 316 Note that the maximum of the Y-axis on Intel and AMD differ less in @yield@ than @cycle@. 317 Looking at the left column first, Figures~\ref{fig:yield:nasus:ops} and \ref{fig:yield:nasus:ns}, \CFA achieves very similar throughput and scaling. 318 Libfibre still outpaces all other runtimes, but it encounters a performance hit at 64 \procs. 319 This anomaly suggests some amount of communication between the \procs that the Intel machine is able to mask where the AMD is not once hyperthreading is needed. 320 Go and Tokio still display the same performance collapse as on Intel. 321 Looking next at the right column on AMD, Figures~\ref{fig:yield:nasus:low:ops} and \ref{fig:yield:nasus:low:ns}, all runtime systems effectively behave the same as they did on the Intel machine. 322 At the high \ats count, the only difference is Libfibre's scaling and this difference disappears on the right column. 323 This behaviour suggests whatever communication issue it encountered on the left is completely circumvented on the right. 324 325 It is difficult to draw conclusions for this benchmark when runtime systems treat @yield@ so differently. 326 The win for \CFA is its consistency between the cycle and yield benchmarks making it simpler for programmers to use and understand, \ie the \CFA semantics match with programmer intuition. 327 172 328 173 329 \section{Churn} 174 The Cycle and Yield benchmark represent an \emph{easy} scenario for a scheduler, \eg an embarrassingly parallel application. 175 In these benchmarks, \glspl{at} can be easily partitioned over the different \glspl{proc} upfront and none of the \glspl{at} communicate with each other. 176 177 The Churn benchmark represents more chaotic execution, where there is no relation between the last \gls{proc} on which a \gls{at} ran and blocked and the \gls{proc} that subsequently unblocks it. 178 With processor-specific ready-queues, when a \gls{at} is unblocked by a different \gls{proc} that means the unblocking \gls{proc} must either ``steal'' the \gls{at} from another processor or find it on a global queue. 179 This dequeuing results in either contention on the remote queue and/or \glspl{rmr} on \gls{at} data structure. 180 In either case, this benchmark aims to highlight how each scheduler handles these cases, since both cases can lead to performance degradation if not handled correctly. 330 331 The Cycle and Yield benchmarks represent an \emph{easy} scenario for a scheduler, \eg an embarrassingly parallel application. 332 In these benchmarks \ats can be easily partitioned over the different \procs upfront and none of the \ats communicate with each other. 333 334 The Churn benchmark represents more chaotic executions, where there is more communication among \ats but no relationship between the last \proc on which a \at ran and blocked, and the \proc that subsequently unblocks it. 335 With processor-specific ready-queues, when a \at is unblocked by a different \proc that means the unblocking \proc must either ``steal'' the \at from another processor or find it on a remote queue. 336 This dequeuing results in either contention on the remote queue and/or \glspl{rmr} on the \at data structure. 337 Hence, this benchmark has performance dominated by the cache traffic as \procs are constantly accessing each other's data. 338 In either case, this benchmark aims to measure how well a scheduler handles these cases since both cases can lead to performance degradation if not handled correctly. 181 339 182 340 This benchmark uses a fixed-size array of counting semaphores. 183 Each \gls{at} picks a random semaphore, @V@s it to unblock any \at waiting, and then @P@s on the semaphore. 184 This creates a flow where \glspl{at} push each other out of the semaphores before being pushed out themselves. 185 For this benchmark to work, the number of \glspl{at} must be equal or greater than the number of semaphores plus the number of \glspl{proc}. 186 Note, the nature of these semaphores mean the counter can go beyond 1, which can lead to nonblocking calls to @P@. 341 Each \at picks a random semaphore, @V@s it to unblock any waiting \at, and then @P@s (maybe blocks) the \at on the semaphore. 342 This creates a flow where \ats push each other out of the semaphores before being pushed out themselves. 343 For this benchmark to work, the number of \ats must be equal to or greater than the number of semaphores plus the number of \procs; 344 \eg if there are 10 semaphores and 5 \procs, but only 3 \ats, all 3 \ats can block (P) on a random semaphore and now there are no \ats to unblock (V) them. 345 Note that the nature of these semaphores means the counter can go beyond 1, which can lead to nonblocking calls to @P@. 187 346 Figure~\ref{fig:churn:code} shows pseudo code for this benchmark, where the @yield@ is replaced by @V@ and @P@. 188 347 … … 201 360 } 202 361 \end{cfa} 203 \caption[Churn Benchmark : Pseudo Code]{Churn Benchmark: Pseudo Code}362 \caption[Churn Benchmark: Pseudo Code]{Churn Benchmark: Pseudo Code} 204 363 \label{fig:churn:code} 364 %\end{figure} 365 \bigskip 366 %\begin{figure} 367 \subfloat[][Throughput, 100 \ats per \proc]{ 368 \resizebox{0.5\linewidth}{!}{ 369 \input{result.churn.jax.ops.pstex_t} 370 } 371 \label{fig:churn:jax:ops} 372 } 373 \subfloat[][Throughput, 2 \ats per \proc]{ 374 \resizebox{0.5\linewidth}{!}{ 375 \input{result.churn.low.jax.ops.pstex_t} 376 } 377 \label{fig:churn:jax:low:ops} 378 } 379 380 \subfloat[][Scalability, 100 \ats per \proc]{ 381 \resizebox{0.5\linewidth}{!}{ 382 \input{result.churn.jax.ns.pstex_t} 383 } 384 \label{fig:churn:jax:ns} 385 } 386 \subfloat[][Scalability, 2 \ats per \proc]{ 387 \resizebox{0.5\linewidth}{!}{ 388 \input{result.churn.low.jax.ns.pstex_t} 389 } 390 \label{fig:churn:jax:low:ns} 391 } 392 \caption[Churn Benchmark on Intel]{Churn Benchmark on Intel\smallskip\newline Throughput and scalability as a function of \proc count. 393 For throughput, higher is better, for scalability, lower is better. 394 Each series represent 15 independent runs, the dashed lines are the maximums of each series while the solid lines are the median and the dotted lines are the minimums.} 395 \label{fig:churn:jax} 205 396 \end{figure} 206 397 207 398 \subsection{Results} 208 Figure~\ref{fig:churn:jax} shows the throughput as a function of \proc count, where each run uses 100 cycles per \proc and 5 \ats per cycle. 399 400 Figures~\ref{fig:churn:jax} and Figure~\ref{fig:churn:nasus} show the results for the churn experiment on Intel and AMD, respectively. 401 Looking at the left column on Intel, Figures~\ref{fig:churn:jax:ops} and \ref{fig:churn:jax:ns} show the results for 100 \ats for each \proc, and all runtimes obtain fairly similar throughput for most \proc counts. 402 \CFA does very well on a single \proc but quickly loses its advantage over the other runtimes. 403 As expected, it scales decently up to 48 \procs, drops from 48 to 72 \procs, and then plateaus. 404 Tokio achieves very similar performance to \CFA, with the starting boost, scaling decently until 48 \procs, drops from 48 to 72 \procs, and starts increasing again to 192 \procs. 405 Libfibre obtains effectively the same results as Tokio with slightly less scaling, \ie the scaling curve is the same but with slightly lower values. 406 Finally, Go gets the most peculiar results, scaling worst than other runtimes until 48 \procs. 407 At 72 \procs, the results of the Go runtime vary significantly, sometimes scaling sometimes plateauing. 408 However, beyond this point Go keeps this level of variation but does not scale further in any of the runs. 409 410 Throughput and scalability are notably worst for all runtimes than the previous benchmarks since there is inherently more communication between processors. 411 Indeed, none of the runtimes reach 40 million operations per second while in the cycle benchmark all but libfibre reached 400 million operations per second. 412 Figures~\ref{fig:churn:jax:ns} and \ref{fig:churn:jax:low:ns} show that for all \proc counts, all runtimes produce poor scaling. 413 However, once the number of \glspl{hthrd} goes beyond a single socket, at 48 \procs, scaling goes from bad to worst and performance completely ceases to improve. 414 At this point, the benchmark is dominated by inter-socket communication costs for all runtimes. 415 416 An interesting aspect to note here is that the runtimes differ in how they handle this situation. 417 Indeed, when a \proc unparks a \at that was last run on a different \proc, the \at could be appended to the ready queue of the local \proc or to the ready queue of the remote \proc, which previously ran the \at. 418 \CFA, Tokio and Go all use the approach of \glslink{atsched}{unparking} to the local \proc, while Libfibre unparks to the remote \proc. 419 In this particular benchmark, the inherent chaos of the benchmark, in addition to the small memory footprint, means neither approach wins over the other. 420 421 Looking next at the right column on Intel, Figures~\ref{fig:churn:jax:low:ops} and \ref{fig:churn:jax:low:ns} show the results for 1 \at for each \proc, and many of the differences between the runtimes disappear. 422 \CFA outperforms other runtimes by a minuscule margin. 423 Libfibre follows very closely behind with basically the same performance and scaling. 424 Tokio maintains effectively the same curve shapes as \CFA and libfibre, but it incurs extra costs for all \proc counts. 425 While Go maintains overall similar results to the others, it again encounters significant variation at high \proc counts. 426 Inexplicably resulting in super-linear scaling for some runs, \ie the scalability curves display a negative slope. 427 428 Interestingly, unlike the cycle benchmark, running with fewer \ats does not produce drastically different results. 429 In fact, the overall throughput stays almost exactly the same on the left and right columns. 209 430 210 431 \begin{figure} 211 432 \subfloat[][Throughput, 100 \ats per \proc]{ 212 433 \resizebox{0.5\linewidth}{!}{ 213 \input{result.churn.jax.ops.pstex_t} 214 } 215 \label{fig:churn:jax:ops} 216 } 217 \subfloat[][Throughput, 1 \ats per \proc]{ 218 \resizebox{0.5\linewidth}{!}{ 219 \input{result.churn.low.jax.ops.pstex_t} 220 } 221 \label{fig:churn:jax:low:ops} 222 } 223 224 \subfloat[][Latency, 100 \ats per \proc]{ 225 \resizebox{0.5\linewidth}{!}{ 226 \input{result.churn.jax.ns.pstex_t} 227 } 228 229 } 230 \subfloat[][Latency, 1 \ats per \proc]{ 231 \resizebox{0.5\linewidth}{!}{ 232 \input{result.churn.low.jax.ns.pstex_t} 233 } 234 \label{fig:churn:jax:low:ns} 235 } 236 \caption[Churn Benchmark on Intel]{\centering Churn Benchmark on Intel\smallskip\newline Throughput and latency of the Churn on the benchmark on the Intel machine. 237 Throughput is the total operation per second across all cores. Latency is the duration of each operation.} 238 \label{fig:churn:jax} 239 \end{figure} 240 241 \todo{results discussion} 434 \input{result.churn.nasus.ops.pstex_t} 435 } 436 \label{fig:churn:nasus:ops} 437 } 438 \subfloat[][Throughput, 2 \ats per \proc]{ 439 \resizebox{0.5\linewidth}{!}{ 440 \input{result.churn.low.nasus.ops.pstex_t} 441 } 442 \label{fig:churn:nasus:low:ops} 443 } 444 445 \subfloat[][Scalability, 100 \ats per \proc]{ 446 \resizebox{0.5\linewidth}{!}{ 447 \input{result.churn.nasus.ns.pstex_t} 448 } 449 \label{fig:churn:nasus:ns} 450 } 451 \subfloat[][Scalability, 2 \ats per \proc]{ 452 \resizebox{0.5\linewidth}{!}{ 453 \input{result.churn.low.nasus.ns.pstex_t} 454 } 455 \label{fig:churn:nasus:low:ns} 456 } 457 \caption[Churn Benchmark on AMD]{Churn Benchmark on AMD\smallskip\newline Throughput and scalability as a function of \proc count. 458 For throughput, higher is better, for scalability, lower is better. 459 Each series represent 15 independent runs, the dashed lines are the maximums of each series while the solid lines are the median and the dotted lines are the minimums.} 460 \label{fig:churn:nasus} 461 \end{figure} 462 463 464 Looking now at the results for the AMD architecture, Figure~\ref{fig:churn:nasus}, the results show a somewhat different story. 465 Looking at the left column first, Figures~\ref{fig:churn:nasus:ops} and \ref{fig:churn:nasus:ns}, \CFA, Libfibre and Tokio all produce decent scalability. 466 \CFA suffers particularly from larger variations at higher \proc counts, but largely outperforms the other runtimes. 467 Go still produces intriguing results in this case and even more intriguingly, the results have fairly low variation. 468 469 One possible explanation for Go's difference is that it has very few available concurrent primitives, so a channel is substituted for a semaphore. 470 On paper, a semaphore can be replaced by a channel, and with zero-sized objects passed through the channel, equivalent performance could be expected. 471 However, in practice, there are implementation differences between the two, \eg if the semaphore count can get somewhat high so objects accumulate in the channel. 472 Note that this substitution is also made in the cycle benchmark; 473 however, in that context, it did not have a notable impact. 474 475 A second possible explanation is that Go may use the heap when allocating variables based on the result of the escape analysis of the code. 476 It is possible for variables that could be placed on the stack to instead be placed on the heap. 477 This placement could cause extra pointer chasing in the benchmark, heightening locality effects. 478 Depending on how the heap is structured, this could also lead to false sharing. 479 I did not investigate what causes these unusual results. 480 481 Looking next at the right column, Figures~\ref{fig:churn:nasus:low:ops} and \ref{fig:churn:nasus:low:ns}, as for Intel, all runtimes obtain overall similar throughput between the left and right column. 482 \CFA, Libfibre and Tokio all have very close results. 483 Go still suffers from poor scalability but is now unusual in a different way. 484 While it obtains effectively constant performance regardless of \proc count, this ``sequential'' performance is higher than the other runtimes for low \proc count. 485 Up to 32 \procs, after which the other runtimes manage to outscale Go. 486 487 In conclusion, the objective of this benchmark is to demonstrate that \glslink{atsched}{unparking} \ats from remote \procs does not cause too much contention on the local queues. 488 Indeed, the fact that most runtimes achieve some scaling between various \proc counts demonstrates migrations do not need to be serialized. 489 Again these results demonstrate that \CFA achieves satisfactory performance compared to the other runtimes. 242 490 243 491 \section{Locality} 244 492 245 \todo{code, setup, results} 493 As mentioned in the churn benchmark, when \glslink{atsched}{unparking} a \at, it is possible to either \unpark to the local or remote ready-queue.\footnote{ 494 It is also possible to \unpark to a third unrelated ready-queue, but without additional knowledge about the situation, it is likely to degrade performance.} 495 The locality experiment includes two variations of the churn benchmark, where a data array is added. 496 In both variations, before @V@ing the semaphore, each \at calls a @work@ function which increments random cells inside the data array. 497 In the noshare variation, the array is not passed on and each thread continuously accesses its private array. 498 In the share variation, the array is passed to another thread via the semaphore's shadow queue (each blocking thread can save a word of user data in its blocking node), transferring ownership of the array to the woken thread. 499 Figure~\ref{fig:locality:code} shows the pseudo code for this benchmark. 500 501 The objective here is to highlight the different decisions made by the runtime when \glslink{atsched}{unparking}. 502 Since each thread unparks a random semaphore, it means that it is unlikely that a \at is unparked from the last \proc it ran on. 503 In the noshare variation, \glslink{atsched}{unparking} the \at on the local \proc is an appropriate choice since the data was last modified on that \proc. 504 In the shared variation, \glslink{atsched}{unparking} the \at on a remote \proc is an appropriate choice. 505 506 The expectation for this benchmark is to see a performance inversion, where runtimes fare notably better in the variation which matches their \glslink{atsched}{unparking} policy. 507 This decision should lead to \CFA, Go and Tokio achieving better performance in the share variation while libfibre achieves better performance in noshare. 508 Indeed, \CFA, Go and Tokio have the default policy of \glslink{atsched}{unparking} \ats on the local \proc, whereas libfibre has the default policy of \glslink{atsched}{unparking} \ats wherever they last ran. 509 510 \begin{figure} 511 \newsavebox{\myboxA} 512 \newsavebox{\myboxB} 513 514 \begin{lrbox}{\myboxA} 515 \begin{cfa}[tabsize=3] 516 Thread.main() { 517 count := 0 518 for { 519 r := random() % len(spots) 520 // go through the array 521 @work( a )@ 522 523 spots[r].V() 524 spots[r].P() 525 count ++ 526 if must_stop() { break } 527 } 528 global.count += count 529 } 530 \end{cfa} 531 \end{lrbox} 532 533 \begin{lrbox}{\myboxB} 534 \begin{cfa}[tabsize=3] 535 Thread.main() { 536 count := 0 537 for { 538 r := random() % len(spots) 539 // go through the array 540 @work( a )@ 541 // pass array to next thread 542 spots[r].V( @a@ ) 543 @a = @spots[r].P() 544 count ++ 545 if must_stop() { break } 546 } 547 global.count += count 548 } 549 \end{cfa} 550 \end{lrbox} 551 552 \subfloat[Noshare]{\label{fig:locality:code:T1}\usebox\myboxA} 553 \hspace{3pt} 554 \vrule 555 \hspace{3pt} 556 \subfloat[Share]{\label{fig:locality:code:T2}\usebox\myboxB} 557 558 \caption[Locality Benchmark: Pseudo Code]{Locality Benchmark: Pseudo Code} 559 \label{fig:locality:code} 560 \end{figure} 561 562 \subsection{Results} 563 564 Figures~\ref{fig:locality:jax} and \ref{fig:locality:nasus} show the results for the locality experiment on Intel and AMD, respectively. 565 In both cases, the graphs on the left column show the results for the share variation and the graphs on the right column show the results for the noshare. 566 Looking at the left column on Intel, Figures~\ref{fig:locality:jax:share:ops} and \ref{fig:locality:jax:share:ns} show the results for the share variation. 567 \CFA and Tokio slightly outperform libfibre, as expected, based on their \ats placement approach. 568 \CFA and Tokio both \unpark locally and do not suffer cache misses on the transferred array. 569 Libfibre, on the other hand, unparks remotely, and as such the unparked \at is likely to miss on the shared data. 570 Go trails behind in this experiment, presumably for the same reasons that were observable in the churn benchmark. 571 Otherwise, the results are similar to the churn benchmark, with lower throughput due to the array processing. 572 As for most previous results, all runtimes suffer a performance hit after 48 \procs, which is the socket boundary, and climb again from 96 to 192 \procs. 573 574 \begin{figure} 575 \subfloat[][Throughput share]{ 576 \resizebox{0.5\linewidth}{!}{ 577 \input{result.locality.share.jax.ops.pstex_t} 578 } 579 \label{fig:locality:jax:share:ops} 580 } 581 \subfloat[][Throughput noshare]{ 582 \resizebox{0.5\linewidth}{!}{ 583 \input{result.locality.noshare.jax.ops.pstex_t} 584 } 585 \label{fig:locality:jax:noshare:ops} 586 } 587 588 \subfloat[][Scalability share]{ 589 \resizebox{0.5\linewidth}{!}{ 590 \input{result.locality.share.jax.ns.pstex_t} 591 } 592 \label{fig:locality:jax:share:ns} 593 } 594 \subfloat[][Scalability noshare]{ 595 \resizebox{0.5\linewidth}{!}{ 596 \input{result.locality.noshare.jax.ns.pstex_t} 597 } 598 \label{fig:locality:jax:noshare:ns} 599 } 600 \caption[Locality Benchmark on Intel]{Locality Benchmark on Intel\smallskip\newline Throughput and scalability as a function of \proc count. 601 For throughput, higher is better, for scalability, lower is better. 602 Each series represent 15 independent runs, the dashed lines are the maximums of each series while the solid lines are the median and the dotted lines are the minimums.} 603 \label{fig:locality:jax} 604 \end{figure} 605 606 \begin{figure} 607 \subfloat[][Throughput share]{ 608 \resizebox{0.5\linewidth}{!}{ 609 \input{result.locality.share.nasus.ops.pstex_t} 610 } 611 \label{fig:locality:nasus:share:ops} 612 } 613 \subfloat[][Throughput noshare]{ 614 \resizebox{0.5\linewidth}{!}{ 615 \input{result.locality.noshare.nasus.ops.pstex_t} 616 } 617 \label{fig:locality:nasus:noshare:ops} 618 } 619 620 \subfloat[][Scalability share]{ 621 \resizebox{0.5\linewidth}{!}{ 622 \input{result.locality.share.nasus.ns.pstex_t} 623 } 624 \label{fig:locality:nasus:share:ns} 625 } 626 \subfloat[][Scalability noshare]{ 627 \resizebox{0.5\linewidth}{!}{ 628 \input{result.locality.noshare.nasus.ns.pstex_t} 629 } 630 \label{fig:locality:nasus:noshare:ns} 631 } 632 \caption[Locality Benchmark on AMD]{Locality Benchmark on AMD\smallskip\newline Throughput and scalability as a function of \proc count. 633 For throughput, higher is better, for scalability, lower is better. 634 Each series represent 15 independent runs, the dashed lines are the maximums of each series while the solid lines are the median and the dotted lines are the minimums.} 635 \label{fig:locality:nasus} 636 \end{figure} 637 638 Looking at the right column on Intel, Figures~\ref{fig:locality:jax:noshare:ops} and \ref{fig:locality:jax:noshare:ns} show the results for the noshare variation. 639 The graphs show the expected performance inversion where libfibre now outperforms \CFA and Tokio. 640 Indeed, in this case, unparking remotely means the unparked \at is less likely to suffer a cache miss on the array, which leaves the \at data structure and the remote queue as the only source of likely cache misses. 641 Results show both are amortized fairly well in this case. 642 \CFA and Tokio both \unpark locally and as a result, suffer a marginal performance degradation from the cache miss on the array. 643 644 Looking at the results for the AMD architecture, Figure~\ref{fig:locality:nasus}, shows results similar to the Intel. 645 Again the overall performance is higher and slightly more variation is visible. 646 Looking at the left column first, Figures~\ref{fig:locality:nasus:share:ops} and \ref{fig:locality:nasus:share:ns}, \CFA and Tokio still outperform libfibre, this time more significantly. 647 This advantage is expected from the AMD server with its smaller and narrower caches that magnify the costs of processing the array. 648 Go still has the same poor performance as on Intel. 649 650 Finally looking at the right column, Figures~\ref{fig:locality:nasus:noshare:ops} and \ref{fig:locality:nasus:noshare:ns}, like on Intel, the same performance inversion is present between libfibre and \CFA/Tokio. 651 Go still has the same poor performance. 652 653 Overall, this benchmark mostly demonstrates the two options available when \glslink{atsched}{unparking} a \at. 654 Depending on the workload, either of these options can be the appropriate one. 655 Since it is prohibitively difficult to dynamically detect which approach is appropriate, all runtimes much choose one of the two and live with the consequences. 656 657 Once again, these experiments demonstrate that \CFA achieves equivalent performance to the other runtimes, in this case matching the faster Tokio rather than Go, which is trailing behind. 246 658 247 659 \section{Transfer} 248 660 The last benchmark is more of an experiment than a benchmark. 249 661 It tests the behaviour of the schedulers for a misbehaved workload. 250 In this workload, one of the \gls{at}is selected at random to be the leader.251 The leader then spins in a tight loop until it has observed that all other \ glspl{at}have acknowledged its leadership.252 The leader \ gls{at} then picks a new \gls{at} to be the ``spinner''and the cycle repeats.253 The benchmark comes in two flavours for the non-leader \glspl{at}:662 In this workload, one \at is selected at random to be the leader. 663 The leader then spins in a tight loop until it has observed that all other \ats have acknowledged its leadership. 664 The leader \at then picks a new \at to be the next leader and the cycle repeats. 665 The benchmark comes in two variations for the non-leader \ats: 254 666 once they acknowledged the leader, they either block on a semaphore or spin yielding. 255 256 The experiment is designed to evaluate the short-term load-balancing of a scheduler. 257 Indeed, schedulers where the runnable \glspl{at} are partitioned on the \glspl{proc} may need to balance the \glspl{at} for this experiment to terminate. 258 This problem occurs because the spinning \gls{at} is effectively preventing the \gls{proc} from running any other \glspl{thrd}. 259 In the semaphore flavour, the number of runnable \glspl{at} eventually dwindles down to only the leader. 260 This scenario is a simpler case to handle for schedulers since \glspl{proc} eventually run out of work. 261 In the yielding flavour, the number of runnable \glspl{at} stays constant. 262 This scenario is a harder case to handle because corrective measures must be taken even when work is available. 263 Note, runtime systems with preemption circumvent this problem by forcing the spinner to yield. 264 265 \todo{code, setup, results} 667 Figure~\ref{fig:transfer:code} shows pseudo code for this benchmark. 266 668 267 669 \begin{figure} … … 273 675 return 274 676 } 275 276 677 // Wait for everyone to acknowledge my leadership 277 678 start: = timeNow() … … 282 683 } 283 684 } 284 285 685 // pick next leader 286 686 leader := threads[ prng() % len(threads) ] 287 288 // wake every one 687 // wake everyone 289 688 if ! exhaust { 290 689 for t in threads { … … 293 692 } 294 693 } 295 296 694 Thread.wait() { 297 695 this.idx_seen := lead_idx … … 299 697 else { yield() } 300 698 } 301 302 699 Thread.main() { 303 700 while !done { … … 307 704 } 308 705 \end{cfa} 309 \caption[Transfer Benchmark : Pseudo Code]{Transfer Benchmark: Pseudo Code}706 \caption[Transfer Benchmark: Pseudo Code]{Transfer Benchmark: Pseudo Code} 310 707 \label{fig:transfer:code} 311 708 \end{figure} 312 709 710 The experiment is designed to evaluate the short-term load balancing of a scheduler. 711 Indeed, schedulers where the runnable \ats are partitioned on the \procs may need to balance the \ats for this experiment to terminate. 712 This problem occurs because the spinning \at is effectively preventing the \proc from running any other \at. 713 In the semaphore variation, the number of runnable \ats eventually dwindles to only the leader. 714 This scenario is a simpler case to handle for schedulers since \procs eventually run out of work. 715 In the yielding variation, the number of runnable \ats stays constant. 716 This scenario is a harder case to handle because corrective measures must be taken even when work is available. 717 Note that runtimes with preemption circumvent this problem by forcing the spinner to yield. 718 In \CFA preemption was disabled as it only obfuscates the results. 719 I am not aware of a method to disable preemption in Go. 720 721 In both variations, the experiment effectively measures how long it takes for all \ats to run once after a given synchronization point. 722 In an ideal scenario where the scheduler is strictly FIFO, every thread would run once after the synchronization and therefore the delay between leaders would be given by, $(CSL + SL) / (NP - 1)$, 723 where $CSL$ is the context-switch latency, $SL$ is the cost for enqueueing and dequeuing a \at, and $NP$ is the number of \procs. 724 However, if the scheduler allows \ats to run many times before other \ats can run once, this delay increases. 725 The semaphore version is an approximation of strictly FIFO scheduling, where none of the \ats \emph{attempt} to run more than once. 726 The benchmark effectively provides the fairness guarantee in this case. 727 In the yielding version, however, the benchmark provides no such guarantee, which means the scheduler has full responsibility and any unfairness is measurable. 728 729 While this is an artificial scenario, in real life it requires only a few simple pieces. 730 The yielding version simply creates a scenario where a \at runs uninterrupted in a saturated system and the starvation has an easily measured impact. 731 Hence, \emph{any} \at that runs uninterrupted for a significant time in a saturated system could lead to this kind of starvation. 732 313 733 \subsection{Results} 314 Figure~\ref{fig:transfer:jax} shows the throughput as a function of \proc count, where each run uses 100 cycles per \proc and 5 \ats per cycle. 315 316 \todo{results discussion} 734 735 \begin{table} 736 \caption[Transfer Benchmark on Intel and AMD]{Transfer Benchmark on Intel and AMD\smallskip\newline Average measurement of how long it takes for all \ats to acknowledge the leader \at. 737 DNC stands for ``did not complete'', meaning that after 5 seconds of a new leader being decided, some \ats still had not acknowledged the new leader.} 738 \label{fig:transfer:res} 739 \setlength{\extrarowheight}{2pt} 740 \setlength{\tabcolsep}{5pt} 741 \begin{centering} 742 \begin{tabular}{r | c | c | c | c | c | c | c | c} 743 Machine & \multicolumn{4}{c |}{Intel} & \multicolumn{4}{c}{AMD} \\ 744 \cline{2-9} 745 Variation & \multicolumn{2}{c|}{Park} & \multicolumn{2}{c |}{Yield} & \multicolumn{2}{c|}{Park} & \multicolumn{2}{c}{Yield} \\ 746 \cline{2-9} 747 \procs & 2 & 192 & 2 & 192 & 2 & 256 & 2 & 256 \\ 748 \hline 749 \CFA & 106 $\mu$s & ~19.9 ms & 68.4 $\mu$s & ~1.2 ms & 174 $\mu$s & ~28.4 ms & 78.8~~$\mu$s& ~~1.21 ms \\ 750 libfibre & 127 $\mu$s & ~33.5 ms & DNC & DNC & 156 $\mu$s & ~36.7 ms & DNC & DNC \\ 751 Go & 106 $\mu$s & ~64.0 ms & 24.6 ms & 74.3 ms & 271 $\mu$s & 121.6 ms & ~~1.21~ms & 117.4 ms \\ 752 Tokio & 289 $\mu$s & 180.6 ms & DNC & DNC & 157 $\mu$s & 111.0 ms & DNC & DNC 753 \end{tabular} 754 \end{centering} 755 \end{table} 756 757 Table~\ref{fig:transfer:res} shows the result for the transfer benchmark with 2 \procs and all \procs on the computer, where each experiment runs 100 \ats per \proc. 758 Note that the results here are only meaningful as a coarse measurement of fairness, beyond which small cost differences in the runtime and concurrent primitives begin to matter. 759 As such, data points within the same order of magnitude are considered equal. 760 That is, the takeaway of this experiment is the presence of very large differences. 761 The semaphore variation is denoted ``Park'', where the number of \ats dwindles as the new leader is acknowledged. 762 The yielding variation is denoted ``Yield''. 763 The experiment is only run for a few and many \procs since scaling is not the focus of this experiment. 764 765 The first two columns show the results for the semaphore variation on Intel. 766 While there are some differences in latencies, \CFA is consistently the fastest and Tokio the slowest, all runtimes achieve fairly close results. 767 Again, this experiment is meant to highlight major differences so latencies within $10\times$ of each other are considered equal. 768 769 Looking at the next two columns, the results for the yield variation on Intel, the story is very different. 770 \CFA achieves better latencies, presumably due to no synchronization with the yield. 771 Go does complete the experiment, but with drastically higher latency: 772 latency at 2 \procs is $350\times$ higher than \CFA and $70\times$ higher at 192 \procs. 773 This difference is because Go has a classic work-stealing scheduler, but it adds coarse-grain preemption 774 , which interrupts the spinning leader after a period. 775 Neither Libfibre nor Tokio complete the experiment. 776 Both runtimes also use classical work-stealing scheduling without preemption, and therefore, none of the work queues are ever emptied so no load balancing occurs. 777 778 Looking now at the results for the AMD architecture, the results show effectively the same story. 779 The first two columns show all runtime obtaining results well within $10\times$ of each other. 780 The next two columns again show \CFA producing low latencies, while Go still has notably higher latency but the difference is less drastic on 2 \procs, where it produces a $15\times$ difference as opposed to a $100\times$ difference on 256 \procs. 781 Neither Libfibre nor Tokio complete the experiment. 782 783 This experiment clearly demonstrates that \CFA achieves significantly better fairness. 784 The semaphore variation serves as a control, where all runtimes are expected to transfer leadership fairly quickly. 785 Since \ats block after acknowledging the leader, this experiment effectively measures how quickly \procs can steal \ats from the \proc running the leader. 786 Table~\ref{fig:transfer:res} shows that while Go and Tokio are slower using the semaphore, all runtimes achieve decent latency. 787 788 However, the yielding variation shows an entirely different picture. 789 Since libfibre and Tokio have a traditional work-stealing scheduler, \procs that have \ats on their local queues never steal from other \procs. 790 The result is that the experiment simply does not complete for these runtimes. 791 Without \procs stealing from the \proc running the leader, the experiment cannot terminate. 792 Go manages to complete the experiment because it adds preemption on top of classic work-stealing. 793 However, since preemption is fairly infrequent, it achieves significantly worst performance. 794 In contrast, \CFA achieves equivalent performance in both variations, demonstrating very good fairness. 795 Interestingly \CFA achieves better delays in the yielding version than the semaphore version, however, that is likely due to fairness being equivalent but removing the cost of the semaphores and idle sleep. -
doc/theses/thierry_delisle_PhD/thesis/text/existing.tex
r12df6fe r4520b77e 5 5 6 6 In general, \emph{selecting} a scheduling algorithm depends on how much information is available to the scheduler. 7 Workloads that are well -known, consistent, and homogeneous can benefit from a scheduler that is optimized to use this information, while ill-defined, inconsistent, heterogeneous workloads require general non-optimal algorithms.7 Workloads that are well known, consistent, and homogeneous can benefit from a scheduler that is optimized to use this information, while ill-defined, inconsistent, heterogeneous workloads require general non-optimal algorithms. 8 8 A secondary aspect is how much information can be gathered versus how much information must be given as part of the scheduler input. 9 9 This information adds to the spectrum of scheduling algorithms, going from static schedulers that are well informed from the start, to schedulers that gather most of the information needed, to schedulers that can only rely on very limited information. 10 Note, this description includes both information about each request s, \eg time to complete or resources needed, and information about the relationships among request, \eg whether or not some requestmust be completed before another request starts.11 12 Scheduling physical resources, \eg in an assembly line, is generally amenable to using well-informed scheduling , since information can be gathered much faster than the physical resources can be assigned and workloads are likely to stay stable for long periods of time.10 Note, this description includes both information about each request, \eg time to complete or resources needed, and information about the relationships among requests, \eg whether some requests must be completed before another request starts. 11 12 Scheduling physical resources, \eg in an assembly line, is generally amenable to using well-informed scheduling since information can be gathered much faster than the physical resources can be assigned and workloads are likely to stay stable for long periods. 13 13 When a faster pace is needed and changes are much more frequent gathering information on workloads, up-front or live, can become much more limiting and more general schedulers are needed. 14 14 15 15 \section{Naming Convention} 16 Scheduling has been studied by various communities concentrating on different incarnation of the same problems.17 As a result, there are no standard naming conventions for scheduling that is respected across these communities.16 Scheduling has been studied by various communities concentrating on different incarnations of the same problems. 17 As a result, there are no standard naming conventions for scheduling that are respected across these communities. 18 18 This document uses the term \newterm{\Gls{at}} to refer to the abstract objects being scheduled and the term \newterm{\Gls{proc}} to refer to the concrete objects executing these \ats. 19 19 20 20 \section{Static Scheduling} 21 \newterm{Static schedulers} require \ats dependencies and costs be explicitly and exhaustively specified prior to scheduling.21 \newterm{Static schedulers} require \ats dependencies and costs to be explicitly and exhaustively specified prior to scheduling. 22 22 The scheduler then processes this input ahead of time and produces a \newterm{schedule} the system follows during execution. 23 23 This approach is popular in real-time systems since the need for strong guarantees justifies the cost of determining and supplying this information. 24 In general, static schedulers are less relevant to this project because they require input from the programmers that the programming language does not have as part of its concurrency semantic.24 In general, static schedulers are less relevant to this project because they require input from the programmers that the \CFA programming language does not have as part of its concurrency semantics. 25 25 Specifying this information explicitly adds a significant burden to the programmer and reduces flexibility. 26 26 For this reason, the \CFA scheduler does not require this information. 27 27 28 28 \section{Dynamic Scheduling} 29 \newterm{Dynamic schedulers} determine \at sdependencies and costs during scheduling, if at all.30 Hence, unlike static scheduling, \at s dependencies are conditional and detected at runtime.31 This detection takes the form of observing new \ats (s) in the system and determining dependencies from their behaviour, including suspending or halting a \atsthat dynamically detects unfulfilled dependencies.32 Furthermore, each \at shas the responsibility of adding dependent \ats back into the system once dependencies are fulfilled.29 \newterm{Dynamic schedulers} determine \at dependencies and costs during scheduling, if at all. 30 Hence, unlike static scheduling, \at dependencies are conditional and detected at runtime. 31 This detection takes the form of observing new \ats in the system and determining dependencies from their behaviour, including suspending or halting a \at that dynamically detects unfulfilled dependencies. 32 Furthermore, each \at has the responsibility of adding dependent \ats back into the system once dependencies are fulfilled. 33 33 As a consequence, the scheduler often has an incomplete view of the system, seeing only \ats with no pending dependencies. 34 34 35 35 \subsection{Explicitly Informed Dynamic Schedulers} 36 While dynamic schedulers may not have an exhaustive list of dependencies for a \ats, some information may be available about each \ats, \eg expected duration, required resources, relative importance, \etc. 37 When available, a scheduler can then use this information to direct the scheduling decisions. \cit{Examples of schedulers with more information} 38 However, most programmers do not determine or even \emph{predict} this information; 39 at best, the scheduler has only some imprecise information provided by the programmer, \eg, indicating a \ats takes approximately 3--7 seconds to complete, rather than exactly 5 seconds. 40 Providing this kind of information is a significant programmer burden especially if the information does not scale with the number of \ats and their complexity. 41 For example, providing an exhaustive list of files read by 5 \ats is an easier requirement then providing an exhaustive list of memory addresses accessed by 10,000 independent \ats. 36 While dynamic schedulers may not have an exhaustive list of dependencies for a \at, some information may be available about each \at, \eg expected duration, required resources, relative importance, \etc. 37 When available, a scheduler can then use this information to direct the scheduling decisions. 38 For example, when scheduling in a cloud computing context, \ats will commonly have extra information that was manually entered, \eg caps on compute time or \io usage. 39 However, in the context of user-level threading, most programmers do not determine or even \emph{predict} this information; 40 at best, the scheduler has only some imprecise information provided by the programmer, \eg, indicating a \at takes approximately 3--7 seconds to complete, rather than exactly 5 seconds. 41 Providing this kind of information is a significant programmer burden, especially if the information does not scale with the number of \ats and their complexity. 42 For example, providing an exhaustive list of files read by 5 \ats is an easier requirement than providing an exhaustive list of memory addresses accessed by 10,000 independent \ats. 42 43 43 44 Since the goal of this thesis is to provide a scheduler as a replacement for \CFA's existing \emph{uninformed} scheduler, explicitly informed schedulers are less relevant to this project. Nevertheless, some strategies are worth mentioning. … … 45 46 \subsubsection{Priority Scheduling} 46 47 Common information used by schedulers to direct their algorithm is priorities. 47 Each \at s is given a priorityand higher-priority \ats are preferred to lower-priority ones.48 The simplest priority scheduling algorithm is to require that every \at shave a distinct pre-established priority and always run the available \ats with the highest priority.48 Each \at is given a priority, and higher-priority \ats are preferred to lower-priority ones. 49 The simplest priority scheduling algorithm is to require that every \at have a distinct pre-established priority and always run the available \ats with the highest priority. 49 50 Asking programmers to provide an exhaustive set of unique priorities can be prohibitive when the system has a large number of \ats. 50 It can therefore be desirable for schedulers to support \ats with identical priorities and/or automatically set ting and adjustingpriorities for \ats.51 It can therefore be desirable for schedulers to support \ats with identical priorities and/or automatically set and adjust priorities for \ats. 51 52 Most common operating systems use some variant on priorities with overlaps and dynamic priority adjustments. 52 For example, Microsoft Windows uses a pair of priorities 53 \cit{https://docs.microsoft.com/en-us/windows/win32/procthread/scheduling-priorities,https://docs.microsoft.com/en-us/windows/win32/taskschd/taskschedulerschema-priority-settingstype-element}, one specified by users out of ten possible options and one adjusted by the system. 53 For example, Microsoft Windows uses a pair of priorities~\cite{win:priority}, one specified by users out of ten possible options and one adjusted by the system. 54 54 55 55 \subsection{Uninformed and Self-Informed Dynamic Schedulers} 56 Several scheduling algorithms do not require programmers to provide additional information on each \at s, and insteadmake scheduling decisions based solely on internal state and/or information implicitly gathered by the scheduler.56 Several scheduling algorithms do not require programmers to provide additional information on each \at, and instead, make scheduling decisions based solely on internal state and/or information implicitly gathered by the scheduler. 57 57 58 58 59 59 \subsubsection{Feedback Scheduling} 60 As mentioned, schedulers may also gather information about each \at sto direct their decisions.60 As mentioned, schedulers may also gather information about each \at to direct their decisions. 61 61 This design effectively moves the scheduler into the realm of \newterm{Control Theory}~\cite{wiki:controltheory}. 62 62 This information gathering does not generally involve programmers, and as such, does not increase programmer burden the same way explicitly provided information may. 63 However, some feedback schedulers do allow programmers to offer additional information on certain \ats, in orderto direct scheduling decisions.64 The important distinction being whether or notthe scheduler can function without this additional information.63 However, some feedback schedulers do allow programmers to offer additional information on certain \ats, to direct scheduling decisions. 64 The important distinction is whether the scheduler can function without this additional information. 65 65 66 66 67 67 \section{Work Stealing}\label{existing:workstealing} 68 One of the most popular scheduling algorithm in practice (see~\ref{existing:prod}) is work stealing.69 This idea, introduce by \cite{DBLP:conf/fpca/BurtonS81}, effectively has each worker process its local \ats first,but allows the possibility for other workers to steal local \ats if they run out of \ats.70 \cite{DBLP:conf/focs/Blumofe94} introduced the more familiar incarnation of this, where each worker s has a queue of \ats and workers without \ats steal \ats from random workers\footnote{The Burton and Sleep algorithm had trees of \ats and stealonly among neighbours.}.71 Blumofe and Leiserson also prove worst case space and time requirements for well-structured computations.68 One of the most popular scheduling algorithms in practice (see~\ref{existing:prod}) is work stealing. 69 This idea, introduced by \cite{DBLP:conf/fpca/BurtonS81}, effectively has each worker process its local \ats first but allows the possibility for other workers to steal local \ats if they run out of \ats. 70 \cite{DBLP:conf/focs/Blumofe94} introduced the more familiar incarnation of this, where each worker has a queue of \ats and workers without \ats steal \ats from random workers\footnote{The Burton and Sleep algorithm has trees of \ats and steals only among neighbours.}. 71 Blumofe and Leiserson also prove worst-case space and time requirements for well-structured computations. 72 72 73 73 Many variations of this algorithm have been proposed over the years~\cite{DBLP:journals/ijpp/YangH18}, both optimizations of existing implementations and approaches that account for new metrics. … … 77 77 In general, fine granularity is better for load balancing and coarse granularity reduces communication overhead. 78 78 The best performance generally means finding a middle ground between the two. 79 Several methods can be employed, but I believe these are less relevant for threads, which are generally explicit and more coarse grained. 80 81 \paragraph{Task Placement} Since modern computers rely heavily on cache hierarchies\cit{Do I need a citation for this}, migrating \ats from one core to another can be . \cite{DBLP:journals/tpds/SquillanteL93} 82 83 \todo{The survey is not great on this subject} 84 85 \paragraph{Complex Machine Architecture} Another aspect that has been examined is how well work stealing is applicable to different machine architectures. 79 Several methods can be employed, but I believe these are less relevant for threads, which are generally explicit and more coarse-grained. 80 81 \paragraph{Task Placement} Another aspect of work stealing that has been studied extensively is the mapping between \at and \proc. 82 In its simplest form, work stealing assumes that all \procs are interchangeable and therefore the mapping between \at and \proc is not interesting. 83 However, in real-life architectures there are contexts where different \procs can have different characteristics, which makes some mapping more interesting than others. 84 A common example where this is statically true is architectures with \glsxtrshort{numa}. 85 In these cases, it can be relevant to change the scheduler to be cognizant of the topology~\cite{vikranth2013topology,min2011hierarchical}. 86 Another example is energy usage, where the scheduler is modified to optimize for energy efficiency in addition/instead of performance~\cite{ribic2014energy,torng2016asymmetry}. 87 88 \paragraph{Complex Machine Architecture} Another aspect that has been examined is how applicable work stealing is to different machine architectures. 89 This is arguably strongly related to Task Placement but extends into more heterogeneous architectures. 90 As \CFA offers no particular support for heterogeneous architecture, this is also an area that is less relevant to this thesis. 91 Although it could be an interesting avenue for future work. 86 92 87 93 \subsection{Theoretical Results} 88 There is also a large body of research on the theoretical aspects of work stealing. These evaluate, for example, the cost of migration~\cite{DBLP:conf/sigmetrics/SquillanteN91,DBLP:journals/pe/EagerLZ86}, how affinity affects performance~\cite{DBLP:journals/tpds/SquillanteL93,DBLP:journals/mst/AcarBB02,DBLP:journals/ipl/SuksompongLS16} and theoretical models for heterogeneous systems~\cite{DBLP:journals/jpdc/MirchandaneyTS90,DBLP:journals/mst/BenderR02,DBLP:conf/sigmetrics/GastG10}.94 There is also a large body of research on the theoretical aspects of work stealing. These evaluate, for example, the cost of \glslink{atmig}{migration}~\cite{DBLP:conf/sigmetrics/SquillanteN91,DBLP:journals/pe/EagerLZ86}, how affinity affects performance~\cite{DBLP:journals/tpds/SquillanteL93,DBLP:journals/mst/AcarBB02,DBLP:journals/ipl/SuksompongLS16} and theoretical models for heterogeneous systems~\cite{DBLP:journals/jpdc/MirchandaneyTS90,DBLP:journals/mst/BenderR02,DBLP:conf/sigmetrics/GastG10}. 89 95 \cite{DBLP:journals/jacm/BlellochGM99} examines the space bounds of work stealing and \cite{DBLP:journals/siamcomp/BerenbrinkFG03} shows that for under-loaded systems, the scheduler completes its computations in finite time, \ie is \newterm{stable}. 90 Others show that work stealing is applicableto various scheduling contexts~\cite{DBLP:journals/mst/AroraBP01,DBLP:journals/anor/TchiboukdjianGT13,DBLP:conf/isaac/TchiboukdjianGTRB10,DBLP:conf/ppopp/AgrawalLS10,DBLP:conf/spaa/AgrawalFLSSU14}.96 Others show that work stealing applies to various scheduling contexts~\cite{DBLP:journals/mst/AroraBP01,DBLP:journals/anor/TchiboukdjianGT13,DBLP:conf/isaac/TchiboukdjianGTRB10,DBLP:conf/ppopp/AgrawalLS10,DBLP:conf/spaa/AgrawalFLSSU14}. 91 97 \cite{DBLP:conf/ipps/ColeR13} also studied how randomized work-stealing affects false sharing among \ats. 92 98 93 However, as \cite{DBLP:journals/ijpp/YangH18} highlights, it is worth mentioning that this theoretical research has mainly focused on ``fully -strict'' computations, \ie workloads that can be fully represented with a direct acyclic graph.94 It is unclear how well these distributions represent workloads in real world scenarios.99 However, as \cite{DBLP:journals/ijpp/YangH18} highlights, it is worth mentioning that this theoretical research has mainly focused on ``fully strict'' computations, \ie workloads that can be fully represented with a direct acyclic graph. 100 It is unclear how well these distributions represent workloads in real-world scenarios. 95 101 96 102 \section{Preemption} 97 103 One last aspect of scheduling is preemption since many schedulers rely on it for some of their guarantees. 98 104 Preemption is the idea of interrupting \ats that have been running too long, effectively injecting suspend points into the application. 99 There are multiple techniques to achieve this effect but they all aim to guarantee that the suspend points in a \atsare never further apart than some fixed duration.100 While this helps schedulers guarantee that no \ats unfairly monopolize sa worker, preemption can effectively be added to any scheduler.101 Therefore, the only interesting aspect of preemption for the design of scheduling is whether or notto require it.105 There are multiple techniques to achieve this effect, but they all aim to guarantee that the suspend points in a \at are never further apart than some fixed duration. 106 While this helps schedulers guarantee that no \ats unfairly monopolize a worker, preemption can effectively be added to any scheduler. 107 Therefore, the only interesting aspect of preemption for the design of scheduling is whether to require it. 102 108 103 109 \section{Production Schedulers}\label{existing:prod} … … 105 111 While these schedulers do not necessarily represent the most recent advances in scheduling, they are what is generally accessible to programmers. 106 112 As such, I believe these schedulers are at least as relevant as those presented in published work. 107 Schedulers that operate in kernel space and inuser space are considered, as both can offer relevant insight for this project.113 Both Schedulers that operate in kernel space and user space are considered, as both can offer relevant insight for this project. 108 114 However, real-time schedulers are not considered, as these have constraints that are much stricter than what is needed for this project. 109 115 110 116 \subsection{Operating System Schedulers} 111 Operating System Schedulers tend to be fairly complex as they generally support some amount of real -time, aim to balance interactive and non-interactive \ats and support multiple users sharing hardware without requiring these users to cooperate.117 Operating System Schedulers tend to be fairly complex as they generally support some amount of real time, aim to balance interactive and non-interactive \ats and support multiple users sharing hardware without requiring these users to cooperate. 112 118 Here are more details on a few schedulers used in the common operating systems: Linux, FreeBSD, Microsoft Windows and Apple's OS X. 113 The information is less complete for operating systems with closed source.119 The information is less complete for closed source operating systems. 114 120 115 121 \paragraph{Linux's CFS} 116 122 The default scheduler used by Linux, the Completely Fair Scheduler~\cite{MAN:linux/cfs,MAN:linux/cfs2}, is a feedback scheduler based on CPU time. 117 123 For each processor, it constructs a Red-Black tree of \ats waiting to run, ordering them by the amount of CPU time used. 118 The \at sthat has used the least CPU time is scheduled.124 The \at that has used the least CPU time is scheduled. 119 125 It also supports the concept of \newterm{Nice values}, which are effectively multiplicative factors on the CPU time used. 120 The ordering of \ats is also affected by a group based notion of fairness, where \ats belonging to groups having used less CPU time are preferred to \ats belonging to groups having used more CPU time.121 Linux achieves load-balancing by regularly monitoring the system state~\cite{MAN:linux/cfs/balancing} and using some heuristic on the load, currently CPU time used in the last millisecond plus a decayed version of the previous time slots~\cite{MAN:linux/cfs/pelt}.122 123 \cite{DBLP:conf/eurosys/LoziLFGQF16} shows that Linux's CFS also does work stealing to balance the workload of each processors, but the paper argues this aspect can be improved significantly.124 The issues highlighted stem from Linux's need to support fairness across \ats \emph{and} across users\footnote{Enforcing fairness across users means that given two users, one with a single \at s and the other with one thousand \ats, the user with a single \ats does not receive onethousandth of the CPU time.}, increasing the complexity.125 126 Linux also offers a FIFO scheduler, a real-time scheduler, which runs the highest-priority \ats, and a round-robin scheduler, which is an extension of the FIFO -scheduler that adds fixed time slices. \cite{MAN:linux/sched}126 The ordering of \ats is also affected by a group-based notion of fairness, where \ats belonging to groups having used less CPU time are preferred to \ats belonging to groups having used more CPU time. 127 Linux achieves load-balancing by regularly monitoring the system state~\cite{MAN:linux/cfs/balancing} and using some heuristic on the \gls{load}, currently CPU time used in the last millisecond plus a decayed version of the previous time slots~\cite{MAN:linux/cfs/pelt}. 128 129 \cite{DBLP:conf/eurosys/LoziLFGQF16} shows that Linux's CFS also does work stealing to balance the workload of each \proc, but the paper argues this aspect can be improved significantly. 130 The issues highlighted stem from Linux's need to support fairness across \ats \emph{and} across users\footnote{Enforcing fairness across users means that given two users, one with a single \at and the other with one thousand \ats, the user with a single \at does not receive one-thousandth of the CPU time.}, increasing the complexity. 131 132 Linux also offers a FIFO scheduler, a real-time scheduler, which runs the highest-priority \ats, and a round-robin scheduler, which is an extension of the FIFO scheduler that adds fixed time slices. \cite{MAN:linux/sched} 127 133 128 134 \paragraph{FreeBSD} 129 135 The ULE scheduler used in FreeBSD\cite{DBLP:conf/bsdcon/Roberson03} is a feedback scheduler similar to Linux's CFS. 130 136 It uses different data structures and heuristics but also schedules according to some combination of CPU time used and niceness values. 131 It also periodically balances the load of the system (according to a different heuristic) ,but uses a simpler work stealing approach.137 It also periodically balances the load of the system (according to a different heuristic) but uses a simpler work stealing approach. 132 138 133 139 \paragraph{Windows(OS)} 134 140 Microsoft's Operating System's Scheduler~\cite{MAN:windows/scheduler} is a feedback scheduler with priorities. 135 141 It supports 32 levels of priorities, some of which are reserved for real-time and privileged applications. 136 It schedules \ats based on the highest priorities (lowest number) and how much CPU time each \at shas used.142 It schedules \ats based on the highest priorities (lowest number) and how much CPU time each \at has used. 137 143 The scheduler may also temporarily adjust priorities after certain effects like the completion of I/O requests. 138 144 139 \todo{load balancing} 145 In~\cite{russinovich2009windows}, Chapter 1 section 2.3 ``Processes, Threads, and Jobs'' discusses the scheduling policy more in-depth. 146 Multicore scheduling is based on a combination of priorities and \proc preference. 147 Each \at is assigned an initial processor using a round-robin policy, called the \at's \newterm{ideal} \proc. 148 \Glspl{at} are distributed among the \procs according to their priority, preferring to match \ats to their ideal \proc and then to the last \proc they ran on. 149 This approach is a variation of work stealing, where the stealing \proc restores the \at to its original \proc after running it, but mixed with priorities. 140 150 141 151 \paragraph{Apple OS X} … … 149 159 \end{displayquote} 150 160 151 \todo{load balancing} 161 There is very little documentation on the internals of this scheduler. 162 However, the documentation does describe a feature set that is very similar to the Windows and Linux OS schedulers. 163 Presumably, this means that the internals are also fairly similar overall. 152 164 153 165 \subsection{User-Level Schedulers} 154 By comparison, user level schedulers tend to be simpler, gatheringfewer metrics and avoid complex notions of fairness. Part of the simplicity is due to the fact that all \ats have the same user, and therefore cooperation is both feasible and probable.166 By comparison, user-level schedulers tend to be simpler, gather fewer metrics and avoid complex notions of fairness. Part of the simplicity is due to the fact that all \ats have the same user, and therefore cooperation is both feasible and probable. 155 167 156 168 \paragraph{Go}\label{GoSafePoint} 157 169 Go's scheduler uses a randomized work-stealing algorithm that has a global run-queue (\emph{GRQ}) and each processor (\emph{P}) has both a fixed-size run-queue (\emph{LRQ}) and a high-priority next ``chair'' holding a single element~\cite{GITHUB:go,YTUBE:go}. 158 Preemption is present, but only at safe -points,~\cit{https://go.dev/src/runtime/preempt.go} which are inserted detection codeat various frequent access boundaries.170 Preemption is present, but only at safe points,~\cite{go:safepoints} which are detection code inserted at various frequent access boundaries. 159 171 160 172 The algorithm is as follows : … … 172 184 Erlang is a functional language that supports concurrency in the form of processes: threads that share no data. 173 185 It uses a kind of round-robin scheduler, with a mix of work sharing and stealing to achieve load balancing~\cite{:erlang}, where under-loaded workers steal from other workers, but overloaded workers also push work to other workers. 174 This migration logic is directed by monitoring logic that evaluates the load a few times per seconds.186 This \glslink{atmig}{migration} logic is directed by monitoring logic that evaluates the load a few times per second. 175 187 176 188 \paragraph{Intel\textregistered ~Threading Building Blocks} 177 189 \newterm{Thread Building Blocks} (TBB) is Intel's task parallelism \cite{wiki:taskparallel} framework. 178 It runs \newterm{jobs}, which are uninterrupt able \ats that must always run to completion, on a pool of worker threads.190 It runs \newterm{jobs}, which are uninterruptible \ats that must always run to completion, on a pool of worker threads. 179 191 TBB's scheduler is a variation of randomized work-stealing that also supports higher-priority graph-like dependencies~\cite{MAN:tbb/scheduler}. 180 It schedules \ats as follows (where \textit{t} is the last \at scompleted):192 It schedules \ats as follows (where \textit{t} is the last \at completed): 181 193 \begin{displayquote} 182 194 \begin{enumerate} 183 195 \item The task returned by \textit{t}@.execute()@ 184 196 \item The successor of t if \textit{t} was its last completed predecessor. 185 \item A task popped from the end of the thread's own deque.186 \item A task with a ffinity for the thread.197 \item A task popped from the end of the thread's own queue. 198 \item A task with an affinity for the thread. 187 199 \item A task popped from approximately the beginning of the shared queue. 188 \item A task popped from the beginning of another randomly chosen thread's deque.200 \item A task popped from the beginning of another randomly chosen thread's queue. 189 201 \end{enumerate} 190 202 … … 199 211 200 212 \paragraph{Grand Central Dispatch} 201 An Apple \cit{Official GCD source} API that offers task parallelism~\cite{wiki:taskparallel}.213 An Apple~\cite{apple:gcd} API that offers task parallelism~\cite{wiki:taskparallel}. 202 214 Its distinctive aspect is multiple ``Dispatch Queues'', some of which are created by programmers. 203 215 Each queue has its own local ordering guarantees, \eg \ats on queue $A$ are executed in \emph{FIFO} order. 204 216 205 \todo{load balancing and scheduling} 206 207 % http://web.archive.org/web/20090920043909/http://images.apple.com/macosx/technology/docs/GrandCentral_TB_brief_20090903.pdf 208 209 In terms of semantics, the Dispatch Queues seem to be very similar to Intel\textregistered ~TBB @execute()@ and predecessor semantics. 217 While the documentation only gives limited insight into the scheduling and load balancing approach, \cite{apple:gcd2} suggests a fairly classic approach. 218 Each \proc has a queue of \ats to run, called \newterm{blocks}, which are drained in \glsxtrshort{fifo}. 219 GCD also has secondary queues, called \newterm{Dispatch Queues}, with clear ordering, where executing a block ends up scheduling more blocks. 220 In terms of semantics, these Dispatch Queues seem to be very similar to Intel\textregistered ~TBB \lstinline{execute()} and predecessor semantics. 221 222 The similarity of API and semantics between GCD and Intel\textregistered ~TBB suggest the underlying scheduling algorithms are similar. 210 223 211 224 \paragraph{LibFibre} 212 LibFibre~\cite{DBLP:journals/pomacs/KarstenB20} is a light -weight user-level threading framework developed at the University of Waterloo.213 Similarly to Go, it uses a variation of work stealing with a global queue that ishigher priority than stealing.225 LibFibre~\cite{DBLP:journals/pomacs/KarstenB20} is a lightweight user-level threading framework developed at the University of Waterloo. 226 Similarly to Go, it uses a variation of work stealing with a global queue that has a higher priority than stealing. 214 227 Unlike Go, it does not have the high-priority next ``chair'' and does not use randomized work-stealing. -
doc/theses/thierry_delisle_PhD/thesis/text/front.tex
r12df6fe r4520b77e 39 39 \vspace*{2.0cm} 40 40 41 Waterloo, Ontario, Canada, 202 1\\42 43 \vspace*{1.0cm} 44 45 \copyright\ Thierry Delisle 202 1\\41 Waterloo, Ontario, Canada, 2022 \\ 42 43 \vspace*{1.0cm} 44 45 \copyright\ Thierry Delisle 2022 \\ 46 46 \end{center} 47 47 \end{titlepage} … … 60 60 \noindent 61 61 The following served on the Examining Committee for this thesis. The decision of the Examining Committee is by majority vote. 62 \todo{External Examiners} 63 \bigskip 64 65 \ noindent66 \begin{tabbing} 67 Internal-External Member: \= \kill % using longest text to define tab length68 External Examiner: \> TBD\\69 \> TBD\\62 \bigskip 63 64 \noindent 65 \begin{tabbing} 66 Internal-External Member: \= \kill % using longest text to define tab length 67 External Examiner: \> Doug Lea \\ 68 \> Professor, Computer Science Department \\ 69 \> State University of New York at Oswego \\ 70 70 \end{tabbing} 71 71 \bigskip … … 96 96 \begin{tabbing} 97 97 Internal-External Member: \= \kill % using longest text to define tab length 98 Internal-External Member: \> TBD\\99 \> TBD\\98 Internal-External Member: \> Patrick Lam \\ 99 \> Associate Professor, Department of Electrical and Computer Engineering \\ 100 100 \> University of Waterloo \\ 101 101 \end{tabbing} … … 106 106 % D E C L A R A T I O N P A G E 107 107 % ------------------------------- 108 % The following is a sample De laration Page as provided by the GSO108 % The following is a sample Declaration Page as provided by the GSO 109 109 % December 13th, 2006. It is designed for an electronic thesis. 110 110 \noindent … … 123 123 \begin{center}\textbf{Abstract}\end{center} 124 124 125 This is the abstract. 126 127 Vulputate minim vel consequat praesent at vel iusto et, ex delenit, esse euismod luptatum augue ut sit et eu vel augue autem feugiat, quis ad dolore. Nulla vel, laoreet lobortis te commodo elit qui aliquam enim ex iriure ea ullamcorper nostrud lorem, lorem laoreet eu ex ut vel in zzril wisi quis. Nisl in autem praesent dignissim, sit vel aliquam at te, vero dolor molestie consequat. 128 129 Tation iriure sed wisi feugait odio dolore illum duis in accumsan velit illum consequat consequat ipsum molestie duis duis ut ullamcorper. Duis exerci odio blandit vero dolore eros odio amet et nisl in nostrud consequat iusto eum suscipit autem vero. Iusto dolore exerci, ut erat ex, magna in facilisis duis amet feugait augue accumsan zzril delenit aliquip dignissim at. Nisl molestie nibh, vulputate feugait nibh luptatum ea delenit nostrud dolore minim veniam odio volutpat delenit nulla accumsan eum vero ullamcorper eum. Augue velit veniam, dolor, exerci ea feugiat nulla molestie, veniam nonummy nulla dolore tincidunt, consectetuer dolore nulla ipsum commodo. 130 131 At nostrud lorem, lorem laoreet eu ex ut vel in zzril wisi. Suscipit consequat in autem praesent dignissim, sit vel aliquam at te, vero dolor molestie consequat eros tation facilisi diam dolor. Odio luptatum dolor in facilisis et facilisi et adipiscing suscipit eu iusto praesent enim, euismod consectetuer feugait duis. Odio veniam et iriure ad qui nonummy aliquip at qui augue quis vel diam, nulla. Autem exerci tation iusto, hendrerit et, tation esse consequat ut velit te dignissim eu esse eros facilisis lobortis, lobortis hendrerit esse dignissim nisl. Nibh nulla minim vel consequat praesent at vel iusto et, ex delenit, esse euismod luptatum. 132 133 Ut eum vero ullamcorper eum ad velit veniam, dolor, exerci ea feugiat nulla molestie, veniam nonummy nulla. Elit tincidunt, consectetuer dolore nulla ipsum commodo, ut, at qui blandit suscipit accumsan feugiat vel praesent. In dolor, ea elit suscipit nisl blandit hendrerit zzril. Sit enim, et dolore blandit illum enim duis feugiat velit consequat iriure sed wisi feugait odio dolore illum duis. Et accumsan velit illum consequat consequat ipsum molestie duis duis ut ullamcorper nulla exerci odio blandit vero dolore eros odio amet et. 134 135 In augue quis vel diam, nulla dolore exerci tation iusto, hendrerit et, tation esse consequat ut velit. Duis dignissim eu esse eros facilisis lobortis, lobortis hendrerit esse dignissim nisl illum nulla minim vel consequat praesent at vel iusto et, ex delenit, esse euismod. Nulla augue ut sit et eu vel augue autem feugiat, quis ad dolore te vel, laoreet lobortis te commodo elit qui aliquam enim ex iriure. Ut ullamcorper nostrud lorem, lorem laoreet eu ex ut vel in zzril wisi quis consequat in autem praesent dignissim, sit vel. Dolore at te, vero dolor molestie consequat eros tation facilisi diam. Feugait augue luptatum dolor in facilisis et facilisi et adipiscing suscipit eu iusto praesent enim, euismod consectetuer feugait duis vulputate veniam et. 136 137 Ad eros odio amet et nisl in nostrud consequat iusto eum suscipit autem vero enim dolore exerci, ut. Esse ex, magna in facilisis duis amet feugait augue accumsan zzril. Lobortis aliquip dignissim at, in molestie nibh, vulputate feugait nibh luptatum ea delenit nostrud dolore minim veniam odio. Euismod delenit nulla accumsan eum vero ullamcorper eum ad velit veniam. Quis, exerci ea feugiat nulla molestie, veniam nonummy nulla. Elit tincidunt, consectetuer dolore nulla ipsum commodo, ut, at qui blandit suscipit accumsan feugiat vel praesent. 138 139 Dolor zzril wisi quis consequat in autem praesent dignissim, sit vel aliquam at te, vero. Duis molestie consequat eros tation facilisi diam dolor augue. Dolore dolor in facilisis et facilisi et adipiscing suscipit eu iusto praesent enim, euismod consectetuer feugait duis vulputate. 125 User-Level threading (M:N) is gaining popularity over kernel-level threading (1:1) in many programming languages. 126 The user threading approach is often a better mechanism to express complex concurrent applications by efficiently running 10,000+ threads on multicore systems. 127 Indeed, over-partitioning into small work-units with user threading significantly eases load bal\-ancing, while simultaneously providing advanced synchronization and mutual exclusion capabilities. 128 To manage these high levels of concurrency, the underlying runtime must efficiently schedule many user threads across a few kernel threads; 129 which begs the question of how many kernel threads are needed and should the number be dynamically reevaluated. 130 Furthermore, scheduling must prevent kernel threads from blocking, otherwise user-thread parallelism drops. 131 When user-threading parallelism does drop, how and when should idle \glspl{kthrd} be put to sleep to avoid wasting CPU resources. 132 Finally, the scheduling system must provide fairness to prevent a user thread from monopolizing a kernel thread; 133 otherwise, other user threads can experience short/long term starvation or kernel threads can deadlock waiting for events to occur on busy kernel threads. 134 135 This thesis analyses multiple scheduler systems, where each system attempts to fulfill the requirements for user-level threading. 136 The predominant technique for managing high levels of concurrency is sharding the ready queue with one queue per \gls{kthrd} and using some form of work stealing/sharing to dynamically rebalance workload shifts. 137 Preventing kernel blocking is accomplished by transforming kernel locks and I/O operations into user-level operations that do not block the kernel thread or spin up new kernel threads to manage the blocking. 138 Fairness is handled through preemption and/or ad-hoc solutions, which leads to coarse-grained fairness with some pathological cases. 139 140 After examining, selecting and testing specific approaches to these scheduling issues, a complete implementation was created and tested in the \CFA (C-for-all) runtime system. 141 \CFA is a modern extension of C using user-level threading as its fundamental threading model. 142 As one of its primary goals, \CFA aims to offer increased safety and productivity without sacrificing performance. 143 The new scheduler achieves this goal by demonstrating equivalent performance to work-stealing schedulers while offering better fairness. 144 The implementation uses several optimizations that successfully balance the cost of fairness against performance; 145 some of these optimizations rely on interesting hardware optimizations present on modern CPUs. 146 The new scheduler also includes support for implicit nonblocking \io, allowing applications to have more user-threads blocking on \io operations than there are \glspl{kthrd}. 147 The implementation is based on @io_uring@, a recent addition to the Linux kernel, and achieves the same performance and fairness as systems using @select@, @epoll@, \etc. 148 To complete the scheduler, an idle sleep mechanism is implemented that significantly reduces wasted CPU cycles, which are then available outside the application. 140 149 141 150 \cleardoublepage … … 146 155 \begin{center}\textbf{Acknowledgements}\end{center} 147 156 148 \todo{Acknowledgements} 157 I would like to thank my supervisor, Professor Peter Buhr, for his guidance through my degree as well as the editing of this document. 158 159 I would like to thank Professors Martin Karsten and Trevor Brown, for reading my thesis and providing helpful feedback. 160 161 Thanks to Andrew Beach, Michael Brooks, Colby Parsons, Mubeen Zulfiqar, Fangren Yu and Jiada Liang for their work on the \CFA project as well as all the discussions which have helped me concretize the ideas in this thesis. 162 163 Finally, I acknowledge that this has been possible thanks to the financial help offered by the David R. Cheriton School of Computer Science and the corporate partnership with Huawei Ltd. 149 164 \cleardoublepage 150 165 … … 164 179 \phantomsection % allows hyperref to link to the correct page 165 180 181 % L I S T O F F I G U R E S 182 % ----------------------------- 183 \addcontentsline{toc}{chapter}{List of Figures} 184 \listoffigures 185 \cleardoublepage 186 \phantomsection % allows hyperref to link to the correct page 187 166 188 % L I S T O F T A B L E S 167 189 % --------------------------- … … 171 193 \phantomsection % allows hyperref to link to the correct page 172 194 173 % L I S T O F F I G U R E S174 % -----------------------------175 \addcontentsline{toc}{chapter}{List of Figures}176 \listoffigures177 \cleardoublepage178 \phantomsection % allows hyperref to link to the correct page179 180 195 % GLOSSARIES (Lists of definitions, abbreviations, symbols, etc. provided by the glossaries-extra package) 181 196 % ----------------------------- … … 184 199 \phantomsection % allows hyperref to link to the correct page 185 200 186 % TODOs and missing citations187 % -----------------------------188 \listofcits189 \listoftodos190 \cleardoublepage191 \phantomsection % allows hyperref to link to the correct page192 193 194 201 % Change page numbering back to Arabic numerals 195 202 \pagenumbering{arabic} -
doc/theses/thierry_delisle_PhD/thesis/text/intro.tex
r12df6fe r4520b77e 1 1 \chapter{Introduction}\label{intro} 2 \section{\CFA programming language}3 2 4 The \CFA programming language~\cite{cfa:frontpage,cfa:typesystem} extends the C programming language by adding modern safety and productivity features, while maintaining backwards compatibility. 5 Among its productivity features, \CFA supports user-level threading~\cite{Delisle21} allowing programmers to write modern concurrent and parallel programs. 6 My previous master's thesis on concurrent in \CFA focused on features and interfaces. 7 This Ph.D.\ thesis focuses on performance, introducing \glsxtrshort{api} changes only when required by performance considerations. 8 Specifically, this work concentrates on scheduling and \glsxtrshort{io}. 9 Prior to this work, the \CFA runtime used a strict \glsxtrshort{fifo} \gls{rQ} and no \glsxtrshort{io} capabilities at the user-thread level\footnote{C supports \glsxtrshort{io} capabilities at the kernel level, which means blocking operations block kernel threads where blocking user-level threads whould be more appropriate for \CFA.}. 3 \Gls{uthrding} (M:N) is gaining popularity over kernel-level threading (1:1) in many programming languages. 4 The user threading approach is often a better mechanism to express complex concurrent applications by efficiently running 10,000+ threads on multicore systems. 5 Indeed, over-partitioning into small work units with user threading significantly eases load bal\-ancing, while simultaneously providing advanced synchronization and mutual exclusion capabilities. 6 To manage these high levels of concurrency, the underlying runtime must efficiently schedule many user threads across a few kernel threads; 7 which begs the question of how many kernel threads are needed and should the number be dynamically reevaluated. 8 Furthermore, scheduling must prevent kernel threads from blocking, otherwise user-thread parallelism drops. 9 When user-threading parallelism does drop, how and when should idle kernel-threads be put to sleep to avoid wasting CPU resources. 10 Finally, the scheduling system must provide fairness to prevent a user thread from monopolizing a kernel thread; 11 otherwise, other user threads can experience short/long term starvation or kernel threads can deadlock waiting for events to occur on busy kernel threads. 10 12 11 As a research project, this work builds exclusively on newer versions of the Linux operating-system and gcc/clang compilers. 12 While \CFA is released, supporting older versions of Linux ($<$~Ubuntu 16.04) and gcc/clang compilers ($<$~gcc 6.0) is not a goal of this work. 13 This thesis analyzes multiple scheduler systems, where each system attempts to fulfill the requirements for \gls{uthrding}. 14 The predominant technique for managing high levels of concurrency is sharding the ready queue with one queue per kernel thread and using some form of work stealing/sharing to dynamically rebalance workload shifts. 15 Preventing kernel blocking is accomplished by transforming kernel locks and I/O operations into user-level operations that do not block the kernel thread or spin up new kernel threads to manage the blocking. 16 Fairness is handled through preemption and/or ad hoc solutions, which leads to coarse-grained fairness with some pathological cases. 13 17 14 \section{Scheduling} 15 Computer systems share multiple resources across many threads of execution, even on single user computers like laptops or smartphones. 16 On a computer system with multiple processors and work units, there exists the problem of mapping work onto processors in an efficient manner, called \newterm{scheduling}. 17 These systems are normally \newterm{open}, meaning new work arrives from an external source or is spawned from an existing work unit. 18 On a computer system, the scheduler takes a sequence of work requests in the form of threads and attempts to complete the work, subject to performance objectives, such as resource utilization. 19 A general-purpose dynamic-scheduler for an open system cannot anticipate future work requests, so its performance is rarely optimal. 20 With complete knowledge of arrive order and work, creating an optimal solution still effectively needs solving the bin packing problem\cite{wiki:binpak}. 21 However, optimal solutions are often not required. 22 Schedulers do produce excellent solutions, whitout needing optimality, by taking advantage of regularities in work patterns. 18 After examining, testing and selecting specific approaches to these scheduling issues, a completely new scheduler was created and tested in the \CFA (C-for-all) user-threading runtime system. 19 The goal of the new scheduler is to offer increased safety and productivity without sacrificing performance. 20 The quality of the new scheduler is demonstrated by comparing it with other user-threading work-stealing schedulers with, the aim of showing equivalent or better performance while offering better fairness. 23 21 24 Scheduling occurs at discreet points when there are transitions in a system. 25 For example, a thread cycles through the following transitions during its execution. 22 Chapter~\ref{intro} defines scheduling and its general goals. 23 Chapter~\ref{existing} discusses how scheduler implementations attempt to achieve these goals, but all implementations optimize some workloads better than others. 24 Chapter~\ref{cfaruntime} presents the relevant aspects of the \CFA runtime system that have a significant effect on the new scheduler design and implementation. 25 Chapter~\ref{core} analyses different scheduler approaches while looking for scheduler mechanisms that provide both performance and fairness. 26 Chapter~\ref{userio} covers the complex mechanisms that must be used to achieve nonblocking I/O to prevent the blocking of \glspl{kthrd}. 27 Chapter~\ref{practice} presents the mechanisms needed to adjust the amount of parallelism, both manually and automatically. 28 Chapters~\ref{microbench} and~\ref{macrobench} present micro and macro benchmarks used to evaluate and compare the new scheduler with similar schedulers. 29 30 31 \section{Scheduling}\label{sched} 32 Computer systems share multiple resources across many threads of execution, even on single-user computers like laptops or smartphones. 33 On a computer system with multiple processors and work units (routines, coroutines, threads, programs, \etc), there exists the problem of mapping many different kinds of work units onto many different kinds of processors efficiently, called \newterm{scheduling}. 34 Scheduling systems are normally \newterm{open}, meaning new work arrives from an external source or is randomly spawned from an existing work unit. 35 In general, work units without threads, like routines and coroutines, are self-scheduling, while work units with threads, like tasks and programs, are scheduled. 36 For scheduled work-units, a scheduler takes a sequence of threads and attempts to run them to completion, subject to shared resource restrictions and utilization. 37 In an open system, a general-purpose dynamic scheduler cannot anticipate work requests, so its performance is rarely optimal. 38 Even with complete knowledge of arrival order and work, creating an optimal solution is a bin packing problem~\cite{wiki:binpak}. 39 However, optimal solutions are often not required: schedulers often produce excellent solutions, without needing optimality, by taking advantage of regularities in work patterns. 40 41 Scheduling occurs at discrete points when there are transitions in a system. 42 For example, a \at cycles through the following transitions during its execution. 26 43 \begin{center} 27 44 \input{executionStates.pstex_t} 28 45 \end{center} 29 These \newterm{state transition}s are initiated in response to events (\Index{interrupt}s):46 These \newterm{state transition}s are initiated in response to events, \eg blocking, interrupts, errors: 30 47 \begin{itemize} 31 48 \item 32 49 entering the system (new $\rightarrow$ ready) 33 50 \item 51 scheduler assigns a \at to a computing resource, \eg CPU (ready $\rightarrow$ running) 52 \item 34 53 timer alarm for preemption (running $\rightarrow$ ready) 35 54 \item 36 long term delay versus spinning (running $\rightarrow$ blocked)55 long-term delay versus spinning (running $\rightarrow$ blocked) 37 56 \item 38 blocking ends, \ienetwork or I/O completion (blocked $\rightarrow$ ready)57 completion of delay, \eg network or I/O completion (blocked $\rightarrow$ ready) 39 58 \item 40 normal completion or error, \ie segment fault (running $\rightarrow$ halted) 41 \item 42 scheduler assigns a thread to a resource (ready $\rightarrow$ running) 59 normal completion or error, \eg segment fault (running $\rightarrow$ halted) 43 60 \end{itemize} 44 Key to scheduling is that a thread cannot bypass the ``ready'' state during a transition so the scheduler maintains complete control of the system.61 Key to scheduling is that a \at cannot bypass the ``ready'' state during a transition so the scheduler maintains complete control of the system, \ie no self-scheduling among threads. 45 62 46 63 When the workload exceeds the capacity of the processors, \ie work cannot be executed immediately, it is placed on a queue for subsequent service, called a \newterm{ready queue}. 47 64 Ready queues organize threads for scheduling, which indirectly organizes the work to be performed. 48 The structure of ready queues can take many different forms. 49 Where simple examples include single-queue multi-server (SQMS) and the multi-queue multi-server (MQMS). 65 The structure of ready queues can take many different forms, where the basic two are the single-queue multi-server (SQMS) and the multi-queue multi-server (MQMS). 50 66 \begin{center} 51 67 \begin{tabular}{l|l} … … 55 71 \end{tabular} 56 72 \end{center} 57 Beyond these two schedulers are a host of options, \ ie adding an optional global, shared queue to MQMS.73 Beyond these two schedulers are a host of options, \eg adding a global shared queue to MQMS or adding multiple private queues with distinct characteristics. 58 74 59 The three major optimization criteria for a scheduler are:75 Once there are multiple resources and ready queues, a scheduler is faced with three major optimization criteria: 60 76 \begin{enumerate}[leftmargin=*] 61 77 \item … … 68 84 69 85 \noindent 70 Essentially, all multi -processor computers have non-uniform memory access (NUMA), with one or more quantized steps to access data at different levels in the memory hierarchy.86 Essentially, all multiprocessor computers have non-uniform memory access (NUMA), with one or more quantized steps to access data at different levels in the memory hierarchy. 71 87 When a system has a large number of independently executing threads, affinity becomes difficult because of \newterm{thread churn}. 72 That is, threads must be scheduled on multiple processors to obtain high processorsutilization because the number of threads $\ggg$ processors.88 That is, threads must be scheduled on different processors to obtain high processor utilization because the number of threads $\ggg$ processors. 73 89 74 90 \item 75 \newterm{contention}: safe access of shared objects by multiple processors requires mutual exclusion in some form, generally locking\footnote{ 76 Lock-free data-structures do not involve locking but incurr similar costs to achieve mutual exclusion.} 77 78 \noindent 79 Mutual exclusion cost and latency increases significantly with the number of processors accessing a shared object. 91 \newterm{contention}: safe access of shared objects by multiple processors requires mutual exclusion in some form, generally locking.\footnote{ 92 Lock-free data-structures do not involve locking but incur similar costs to achieve mutual exclusion.} 93 Mutual exclusion cost and latency increase significantly with the number of processors access\-ing a shared object. 80 94 \end{enumerate} 81 95 82 Nevertheless, schedulers are a series of compromises, occasionally with some static or dynamic tuning parameters to enhance specific patterns. 83 Scheduling is a zero-sum game as computer processors normally have a fixed, maximum number of cycles per unit time\footnote{Frequency scaling and turbot boost add a degree of complexity that can be ignored in this discussion without loss of generality.}. 84 SQMS has perfect load-balancing but poor affinity and high contention by the processors, because of the single queue. 85 MQMS has poor load-balancing but perfect affinity and no contention, because each processor has its own queue. 96 Scheduling is a zero-sum game as computer processors normally have a fixed, maximum number of cycles per unit time.\footnote{ 97 Frequency scaling and turbo-boost add a degree of complexity that can be ignored in this discussion without loss of generality.} 98 Hence, schedulers are a series of compromises, occasionally with some static or dynamic tuning parameters to enhance specific workload patterns. 99 For example, SQMS has perfect load-balancing but poor affinity and high contention by the processors, because of the single queue. 100 While MQMS has poor load-balancing but perfect affinity and no contention, because each processor has its own queue. 86 101 87 Significant research effort has also looked at load sharing/stealing among queues, when a ready queue is too long or short, respectively.102 Significant research effort has looked at load balancing by stealing/sharing work units among queues: when a ready queue is too short or long, respectively, load stealing/sharing schedulers attempt to push/pull work units to/from other ready queues. 88 103 These approaches attempt to perform better load-balancing at the cost of affinity and contention. 89 Load sharing/stealing schedulers attempt to push/pull work units to/from other ready queues 104 However, \emph{all} approaches come at a cost, but not all compromises are necessarily equivalent, especially across workloads. 105 Hence, some schedulers perform very well for specific workloads, while others offer acceptable performance over a wider range of workloads. 90 106 91 Note however that while any change comes at a cost, hence the zero-sum game, not all compromises are necessarily equivalent. 92 Some schedulers can perform very well only in very specific workload scenarios, others might offer acceptable performance but be applicable to a wider range of workloads. 93 Since \CFA attempts to improve the safety and productivity of C, the scheduler presented in this thesis attempts to achieve the same goals. 94 More specifically, safety and productivity for scheduling means supporting a wide range of workloads so that programmers can rely on progress guarantees (safety) and more easily achieve acceptable performance (productivity). 107 \section{\CFA programming language} 95 108 109 The \CFA programming language~\cite{Cforall,Moss18} extends the C programming language by adding modern safety and productivity features, while maintaining backwards compatibility. 110 Among its productivity features, \CFA supports \gls{uthrding}~\cite{Delisle21} as its fundamental threading model allowing programmers to easily write modern concurrent and parallel programs. 111 My previous master's thesis on concurrency in \CFA focused on features and interfaces~\cite{Delisle18}. 112 This Ph.D.\ thesis focuses on performance, introducing \glsxtrshort{api} changes only when required by performance considerations. 113 Specifically, this work concentrates on advanced thread and \glsxtrshort{io} scheduling. 114 Prior to this work, the \CFA runtime used a strict SQMS \gls{rQ} and provided no nonblocking \glsxtrshort{io} capabilities at the user-thread level.\footnote{ 115 C/\CC only support \glsxtrshort{io} capabilities at the kernel level, which means many \io operations block \glspl{kthrd} reducing parallelism at the user level.} 116 117 Since \CFA attempts to improve the safety and productivity of C, the new scheduler presented in this thesis attempts to achieve the same goals. 118 More specifically, safety and productivity for scheduling mean supporting a wide range of workloads so that programmers can rely on progress guarantees (safety) and more easily achieve acceptable performance (productivity). 119 The new scheduler also includes support for implicit nonblocking \io, allowing applications to have more user-threads blocking on \io operations than there are \glspl{kthrd}. 120 To complete the scheduler, an idle sleep mechanism is implemented that significantly reduces wasted CPU cycles, which are then available outside the application. 121 122 As a research project, this work builds exclusively on newer versions of the Linux operating system and gcc/clang compilers. 123 The new scheduler implementation uses several optimizations to successfully balance the cost of fairness against performance; 124 some of these optimizations rely on interesting hardware optimizations only present on modern CPUs. 125 The \io implementation is based on the @io_uring@ kernel interface, a recent addition to the Linux kernel, because it purports to handle nonblocking \emph{file} and network \io. 126 This decision allowed an interesting performance and fairness comparison with other threading systems using @select@, @epoll@, \etc. 127 While the current \CFA release supports older versions of Linux ($\ge$~Ubuntu 16.04) and gcc/clang compilers ($\ge$~gcc 6.0), it is not the purpose of this project to find workarounds in these older systems to provide backwards compatibility. 128 The hope is that these new features will soon become mainstream features. 96 129 97 130 \section{Contributions}\label{s:Contributions} 98 This work provides the following contributions in the area of user-level scheduling in an advanced programming-language runtime-system:131 This work provides the following scheduling contributions for advanced \gls{uthrding} runtime systems: 99 132 \begin{enumerate}[leftmargin=*] 100 133 \item 101 134 A scalable scheduling algorithm that offers progress guarantees. 102 135 \item 136 Support for user-level \glsxtrshort{io} capabilities based on Linux's @io_uring@. 137 \item 103 138 An algorithm for load-balancing and idle sleep of processors, including NUMA awareness. 104 139 \item 105 Support for user-level \glsxtrshort{io} capabilities based on Linux's @io_uring@. 140 A mechanism for adding fairness on top of MQMS algorithm through helping, used both for scalable scheduling algorithm and the user-level \glsxtrshort{io}. 141 \item 142 An optimization of the helping mechanism for load balancing to reduce scheduling costs. 143 \item 144 An optimization for the alternative relaxed-list for load balancing to reduce scheduling costs in embarrassingly parallel cases. 106 145 \end{enumerate} -
doc/theses/thierry_delisle_PhD/thesis/text/io.tex
r12df6fe r4520b77e 1 \chapter{User Level \io} 2 As mentioned in Section~\ref{prev:io}, user-level \io requires multiplexing the \io operations of many \ glspl{thrd}onto fewer \glspl{proc} using asynchronous \io operations.3 Different operating systems offer various forms of asynchronous operations and, as mentioned in Chapter~\ref{intro}, this work is exclusively focused on the Linux operating -system.1 \chapter{User Level \io}\label{userio} 2 As mentioned in Section~\ref{prev:io}, user-level \io requires multiplexing the \io operations of many \ats onto fewer \glspl{proc} using asynchronous \io operations. 3 Different operating systems offer various forms of asynchronous operations and, as mentioned in Chapter~\ref{intro}, this work is exclusively focused on the Linux operating system. 4 4 5 5 \section{Kernel Interface} 6 6 Since this work fundamentally depends on operating-system support, the first step of this design is to discuss the available interfaces and pick one (or more) as the foundation for the non-blocking \io subsystem in this work. 7 7 8 \subsection{\lstinline{O_NONBLOCK}} 8 \subsection{\lstinline{O_NONBLOCK}}\label{ononblock} 9 9 In Linux, files can be opened with the flag @O_NONBLOCK@~\cite{MAN:open} (or @SO_NONBLOCK@~\cite{MAN:accept}, the equivalent for sockets) to use the file descriptors in ``nonblocking mode''. 10 10 In this mode, ``Neither the @open()@ nor any subsequent \io operations on the [opened file descriptor] will cause the calling process to wait''~\cite{MAN:open}. … … 13 13 In this context, ready means \emph{some} operation can be performed without blocking. 14 14 It does not mean an operation returning \lstinline{EAGAIN} succeeds on the next try. 15 For example, a ready read may only return a subset of requested bytes and the read must be issue sagain for the remaining bytes, at which point it may return \lstinline{EAGAIN}.}16 This mechanism is also crucial in determining when all \ glspl{thrd}are blocked and the application \glspl{kthrd} can now block.15 For example, a ready read may only return a subset of requested bytes and the read must be issued again for the remaining bytes, at which point it may return \lstinline{EAGAIN}.} 16 This mechanism is also crucial in determining when all \ats are blocked and the application \glspl{kthrd} can now block. 17 17 18 18 There are three options to monitor file descriptors in Linux:\footnote{ 19 19 For simplicity, this section omits \lstinline{pselect} and \lstinline{ppoll}. 20 The difference between these system calls and \lstinline{select} and \lstinline{poll}, respectively, is not relevant for this discussion.} ,20 The difference between these system calls and \lstinline{select} and \lstinline{poll}, respectively, is not relevant for this discussion.} 21 21 @select@~\cite{MAN:select}, @poll@~\cite{MAN:poll} and @epoll@~\cite{MAN:epoll}. 22 22 All three of these options offer a system call that blocks a \gls{kthrd} until at least one of many file descriptors becomes ready. … … 30 30 Hence, if one \gls{kthrd} is managing the select calls, other threads can only add/remove to/from the manager's interest set through synchronized calls to update the interest set. 31 31 However, these changes are only reflected when the manager makes its next call to @select@. 32 Note, it is possible for the manager thread to never unblock if its current interest set never changes, \eg the sockets/pipes/ ttys it is waiting on never get data again.32 Note, it is possible for the manager thread to never unblock if its current interest set never changes, \eg the sockets/pipes/TTYs it is waiting on never get data again. 33 33 Often the I/O manager has a timeout, polls, or is sent a signal on changes to mitigate this problem. 34 35 \begin{comment}36 From: Tim Brecht <brecht@uwaterloo.ca>37 Subject: Re: FD sets38 Date: Wed, 6 Jul 2022 00:29:41 +000039 40 Large number of open files41 --------------------------42 43 In order to be able to use more than the default number of open file44 descriptors you may need to:45 46 o increase the limit on the total number of open files /proc/sys/fs/file-max47 (on Linux systems)48 49 o increase the size of FD_SETSIZE50 - the way I often do this is to figure out which include file __FD_SETSIZE51 is defined in, copy that file into an appropriate directory in ./include,52 and then modify it so that if you use -DBIGGER_FD_SETSIZE the larger size53 gets used54 55 For example on a RH 9.0 distribution I've copied56 /usr/include/bits/typesizes.h into ./include/i386-linux/bits/typesizes.h57 58 Then I modify typesizes.h to look something like:59 60 #ifdef BIGGER_FD_SETSIZE61 #define __FD_SETSIZE 3276762 #else63 #define __FD_SETSIZE 102464 #endif65 66 Note that the since I'm moving and testing the userver on may different67 machines the Makefiles are set up to use -I ./include/$(HOSTTYPE)68 69 This way if you redefine the FD_SETSIZE it will get used instead of the70 default original file.71 \end{comment}72 34 73 35 \paragraph{\lstinline{poll}} is the next oldest option, and takes as input an array of structures containing the FD numbers rather than their position in an array of bits, allowing a more compact input for interest sets that contain widely spaced FDs. 74 36 For small interest sets with densely packed FDs, the @select@ bit mask can take less storage, and hence, copy less information into the kernel. 75 Furthermore, @poll@ is non-destructive, so the array of structures does not have to be re-initialize on every call.76 Like @select@, @poll@ suffers from the limitation that the interest set cannot be changed by other \gls {kthrd}, while a manager thread is blocked in @poll@.37 Furthermore, @poll@ is non-destructive, so the array of structures does not have to be re-initialized on every call. 38 Like @select@, @poll@ suffers from the limitation that the interest set cannot be changed by other \glspl{kthrd}, while a manager thread is blocked in @poll@. 77 39 78 40 \paragraph{\lstinline{epoll}} follows after @poll@, and places the interest set in the kernel rather than the application, where it is managed by an internal \gls{kthrd}. … … 84 46 However, all three of these I/O systems have limitations. 85 47 The @man@ page for @O_NONBLOCK@ mentions that ``[@O_NONBLOCK@] has no effect for regular files and block devices'', which means none of these three system calls are viable multiplexing strategies for these types of \io operations. 86 Furthermore, @epoll@ has been shown to have problems with pipes and ttys~\cit{Peter's examples in some fashion}. 48 Furthermore, TTYs can also be tricky to use since they can take different forms based on how the command is executed. 49 For example, @epoll@ rejects FDs pointing to regular files or block devices, which includes @stdin@ when using shell redirections~\cite[\S~3.6]{MAN:bash}, but does not reject shell pipelines~\cite[\S~3.2.3]{MAN:bash}, which includes pipelines into @stdin@. 87 50 Finally, none of these are useful solutions for multiplexing \io operations that do not have a corresponding file descriptor and can be awkward for operations using multiple file descriptors. 88 51 … … 90 53 An alternative to @O_NONBLOCK@ is the AIO interface. 91 54 Its interface lets programmers enqueue operations to be performed asynchronously by the kernel. 92 Completions of these operations can be communicated in various ways: either by spawning a new \gls{kthrd}, sending a Linux signal, or by polling for completion of one or more operation.93 For this work, spawning a new \gls{kthrd} is counter -productive but a related solution is discussed in Section~\ref{io:morethreads}.94 Using interrupt s handlers can also lead to fairly complicated interactions between subsystems and hasnon-trivial cost.55 Completions of these operations can be communicated in various ways: either by spawning a new \gls{kthrd}, sending a Linux signal, or polling for completion of one or more operations. 56 For this work, spawning a new \gls{kthrd} is counterproductive but a related solution is discussed in Section~\ref{io:morethreads}. 57 Using interrupt handlers can also lead to fairly complicated interactions between subsystems and has a non-trivial cost. 95 58 Leaving polling for completion, which is similar to the previous system calls. 96 59 AIO only supports read and write operations to file descriptors, it does not have the same limitation as @O_NONBLOCK@, \ie, the file descriptors can be regular files and blocked devices. 97 60 It also supports batching multiple operations in a single system call. 98 61 99 AIO offers two different approaches to polling: @aio_error@ can be used as a spinning form of polling, returning @EINPROGRESS@ until the operation is completed, and @aio_suspend@ can be used similarly to @select@, @poll@ or @epoll@, to wait until one or more requests have completed.100 For the purpose of\io multiplexing, @aio_suspend@ is the best interface.62 AIO offers two different approaches to polling: @aio_error@ can be used as a spinning form of polling, returning @EINPROGRESS@ until the operation is completed, and @aio_suspend@ can be used similarly to @select@, @poll@ or @epoll@, to wait until one or more requests have been completed. 63 For \io multiplexing, @aio_suspend@ is the best interface. 101 64 However, even if AIO requests can be submitted concurrently, @aio_suspend@ suffers from the same limitation as @select@ and @poll@, \ie, the interest set cannot be dynamically changed while a call to @aio_suspend@ is in progress. 102 AIO also suffers from the limitation of specifying which requests have completed, \ie programmers have to poll each request in the interest set using @aio_error@ to identify the completed requests.65 AIO also suffers from the limitation of specifying which requests have been completed, \ie programmers have to poll each request in the interest set using @aio_error@ to identify the completed requests. 103 66 This limitation means that, like @select@ and @poll@ but not @epoll@, the time needed to examine polling results increases based on the total number of requests monitored, not the number of completed requests. 104 67 Finally, AIO does not seem to be a popular interface, which I believe is due in part to this poor polling interface. … … 124 87 in 125 88 ``some kind of arbitrary \textit{queue up asynchronous system call} model''. 126 This description is actuallyquite close to the interface described in the next section.89 This description is quite close to the interface described in the next section. 127 90 128 91 \subsection{\lstinline{io_uring}} … … 135 98 In addition to supporting reads and writes to any file descriptor like AIO, it supports other operations like @open@, @close@, @fsync@, @accept@, @connect@, @send@, @recv@, @splice@, \etc. 136 99 137 On top of these, @io_uring@ adds many extras like avoiding copies between the kernel and user -space using shared memory, allowing different mechanisms to communicate with device drivers, and supporting chains of requests, \ie, requests that automatically trigger followup requests on completion.100 On top of these, @io_uring@ adds many extras like avoiding copies between the kernel and user space using shared memory, allowing different mechanisms to communicate with device drivers, and supporting chains of requests, \ie, requests that automatically trigger follow-up requests on completion. 138 101 139 102 \subsection{Extra Kernel Threads}\label{io:morethreads} 140 Finally, if the operating system does not offer a satisfactory form of asynchronous \io operations, an ad -hoc solution is to create a pool of \glspl{kthrd} and delegate operations to it to avoid blocking \glspl{proc}, which is a compromise for multiplexing.141 In the worst case, where all \ glspl{thrd}are consistently blocking on \io, it devolves into 1-to-1 threading.142 However, regardless of the frequency of \io operations, it achieves the fundamental goal of not blocking \glspl{proc} when \ glspl{thrd}are ready to run.143 This approach is used by languages like Go \cit{Go}, frameworks like libuv\cit{libuv}, and web servers like Apache~\cite{apache} and Nginx~\cite{nginx}, since it has the advantage that it can easily be used across multiple operating systems.103 Finally, if the operating system does not offer a satisfactory form of asynchronous \io operations, an ad hoc solution is to create a pool of \glspl{kthrd} and delegate operations to it to avoid blocking \glspl{proc}, which is a compromise for multiplexing. 104 In the worst case, where all \ats are consistently blocking on \io, it devolves into 1-to-1 threading. 105 However, regardless of the frequency of \io operations, it achieves the fundamental goal of not blocking \glspl{proc} when \ats are ready to run. 106 This approach is used by languages like Go~\cite{GITHUB:go}, frameworks like libuv~\cite{libuv}, and web servers like Apache~\cite{apache} and NGINX~\cite{nginx}, since it has the advantage that it can easily be used across multiple operating systems. 144 107 This advantage is especially relevant for languages like Go, which offer a homogeneous \glsxtrshort{api} across all platforms. 145 As opposed to C, which has a very limited standard apifor \io, \eg, the C standard library has no networking.108 As opposed to C, which has a very limited standard \glsxtrshort{api} for \io, \eg, the C standard library has no networking. 146 109 147 110 \subsection{Discussion} 148 111 These options effectively fall into two broad camps: waiting for \io to be ready versus waiting for \io to complete. 149 112 All operating systems that support asynchronous \io must offer an interface along one of these lines, but the details vary drastically. 150 For example, Free BSD offers @kqueue@~\cite{MAN:bsd/kqueue}, which behaves similarly to @epoll@, but with some small quality of use improvements, while Windows (Win32)~\cit {https://docs.microsoft.com/en-us/windows/win32/fileio/synchronous-and-asynchronous-i-o} offers ``overlapped I/O'', which handles submissions similarly to @O_NONBLOCK@ with extra flags on the synchronous system call, but waits for completion events, similarly to @io_uring@.113 For example, Free BSD offers @kqueue@~\cite{MAN:bsd/kqueue}, which behaves similarly to @epoll@, but with some small quality of use improvements, while Windows (Win32)~\cite{win:overlap} offers ``overlapped I/O'', which handles submissions similarly to @O_NONBLOCK@ with extra flags on the synchronous system call, but waits for completion events, similarly to @io_uring@. 151 114 152 115 For this project, I selected @io_uring@, in large parts because of its generality. 153 While @epoll@ has been shown to be a good solution for socket \io (\cite{ DBLP:journals/pomacs/KarstenB20}), @io_uring@'s transparent support for files, pipes, and more complex operations, like @splice@ and @tee@, make it a better choice as the foundation for a general \io subsystem.116 While @epoll@ has been shown to be a good solution for socket \io (\cite{Karsten20}), @io_uring@'s transparent support for files, pipes, and more complex operations, like @splice@ and @tee@, make it a better choice as the foundation for a general \io subsystem. 154 117 155 118 \section{Event-Engine} 156 119 An event engine's responsibility is to use the kernel interface to multiplex many \io operations onto few \glspl{kthrd}. 157 In concrete terms, this means \ glspl{thrd} enter the engine through an interface, the event engine then starts an operation and parks the calling \glspl{thrd}, returning control to the \gls{proc}.158 The parked \ glspl{thrd} are then rescheduled by the event engine once the desired operation hascompleted.159 160 \subsection{\lstinline{io_uring} in depth} 120 In concrete terms, this means \ats enter the engine through an interface, the event engine then starts an operation and parks the calling \ats, returning control to the \gls{proc}. 121 The parked \ats are then rescheduled by the event engine once the desired operation has been completed. 122 123 \subsection{\lstinline{io_uring} in depth}\label{iouring} 161 124 Before going into details on the design of my event engine, more details on @io_uring@ usage are presented, each important in the design of the engine. 162 125 Figure~\ref{fig:iouring} shows an overview of an @io_uring@ instance. … … 171 134 \centering 172 135 \input{io_uring.pstex_t} 173 \caption[Overview of \lstinline{io_uring}]{Overview of \lstinline{io_uring} \smallskip\newline Two ring buffer are used to communicate with the kernel, one for completions~(right) and one for submissions~(left). The submission ring indexes into a pre-allocated array (denoted \emph{S}) instead.}136 \caption[Overview of \lstinline{io_uring}]{Overview of \lstinline{io_uring} \smallskip\newline Two ring buffers are used to communicate with the kernel, one for completions~(right) and one for submissions~(left). The submission ring indexes into a pre-allocated array (denoted \emph{S}) instead.} 174 137 \label{fig:iouring} 175 138 \end{figure} … … 184 147 \item 185 148 The SQE is filled according to the desired operation. 186 This step is straight forward.187 The only detail worth mentioning is that SQEs have a @user_data@ field that must be filled in orderto match submission and completion entries.149 This step is straightforward. 150 The only detail worth mentioning is that SQEs have a @user_data@ field that must be filled to match submission and completion entries. 188 151 \item 189 152 The SQE is submitted to the submission ring by appending the index of the SQE to the ring following regular ring buffer steps: \lstinline{buffer[head] = item; head++}. … … 207 170 208 171 The @io_uring_enter@ system call is protected by a lock inside the kernel. 209 This protection means that concurrent call to @io_uring_enter@ using the same instance are possible, but there is no performance gained from parallel calls to @io_uring_enter@.172 This protection means that concurrent calls to @io_uring_enter@ using the same instance are possible, but there is no performance gained from parallel calls to @io_uring_enter@. 210 173 It is possible to do the first three submission steps in parallel; 211 174 however, doing so requires careful synchronization. … … 216 179 This restriction means \io request bursts may have to be subdivided and submitted in chunks at a later time. 217 180 181 An important detail to keep in mind is that just like ``The cloud is just someone else's computer''\cite{xkcd:cloud}, asynchronous operations are just operations using someone else's threads. 182 Indeed, asynchronous operations can require computation time to complete, which means that if this time is not taken from the thread that triggered the asynchronous operation, it must be taken from some other threads. 183 In this case, the @io_uring@ operations that cannot be handled directly in the system call must be delegated to some other \gls{kthrd}. 184 To this end, @io_uring@ maintains multiple \glspl{kthrd} inside the kernel that are not exposed to the user. 185 Three kinds of operations that can need the \glspl{kthrd}: 186 187 \paragraph{Operations using} @IOSQE_ASYNC@. 188 This is a straightforward case, users can explicitly set the @IOSQE_ASYNC@ flag on an SQE to specify that it \emph{must} be delegated to a different \gls{kthrd}. 189 190 \paragraph{Bounded operations.} 191 This is also a fairly simple case. As mentioned earlier in this chapter, [@O_NONBLOCK@] has no effect for regular files and block devices. 192 @io_uring@ must also take this reality into account by delegating operations on regular files and block devices. 193 In fact, @io_uring@ maintains a pool of \glspl{kthrd} dedicated to these operations, which are referred to as \newterm{bounded workers}. 194 195 \paragraph{Unbounded operations that must be retried.} 196 While operations like reads on sockets can return @EAGAIN@ instead of blocking the \gls{kthrd}, in the case these operations return @EAGAIN@ they must be retried by @io_uring@ once the data is available on the socket. 197 Since this retry cannot necessarily be done in the system call, @io_uring@ must delegate these calls to a \gls{kthrd}. 198 @io_uring@ maintains a separate pool for these operations. 199 The \glspl{kthrd} in this pool are referred to as \newterm{unbounded workers}. 200 Unbounded workers are also responsible for handling operations using @IOSQE_ASYNC@. 201 202 @io_uring@ implicitly spawns and joins both the bounded and unbounded workers based on its evaluation of the needs of the workload. 203 This effectively encapsulates the work that is needed when using @epoll@. 204 Indeed, @io_uring@ does not change Linux's underlying handling of \io operations, it simply offers an asynchronous \glsxtrshort{api} on top of the existing system. 205 206 218 207 \subsection{Multiplexing \io: Submission} 219 208 220 The submission side is the most complicated aspect of @io_uring@ and the completion side effectively follows from the design decisions made in the submission side.209 The submission side is the most complicated aspect of @io_uring@ and the completion side effectively follows from the design decisions made on the submission side. 221 210 While there is freedom in designing the submission side, there are some realities of @io_uring@ that must be taken into account. 222 211 It is possible to do the first steps of submission in parallel; … … 229 218 As described in Chapter~\ref{practice}, this does not translate into constant CPU usage.}. 230 219 Note that once an operation completes, there is nothing that ties it to the @io_uring@ instance that handled it. 231 There is nothing preventing a new operation with, \eg the same file descriptors toa different @io_uring@ instance.220 Nothing preventing a new operation, with for example the same file descriptor, to use a different @io_uring@ instance. 232 221 233 222 A complicating aspect of submission is @io_uring@'s support for chains of operations, where the completion of an operation triggers the submission of the next operation on the link. … … 237 226 Support for this feature can be fulfilled simply by supporting arbitrary user code between allocation and submission. 238 227 239 Similar to scheduling, sharding @io_uring@ instances can be done privately, \ie, one instance per \ glspl{proc}, in decoupled pools, \ie, a pool of \glspl{proc} usea pool of @io_uring@ instances without one-to-one coupling between any given instance and any given \gls{proc}, or some mix of the two.228 Similar to scheduling, sharding @io_uring@ instances can be done privately, \ie, one instance per \proc, in decoupled pools, \ie, a pool of \procs using a pool of @io_uring@ instances without one-to-one coupling between any given instance and any given \gls{proc}, or some mix of the two. 240 229 These three sharding approaches are analyzed. 241 230 242 231 \subsubsection{Private Instances} 243 232 The private approach creates one ring instance per \gls{proc}, \ie one-to-one coupling. 244 This alleviates the need for synchronization on the submissions, requiring only that \ glspl{thrd}are not time-sliced during submission steps.245 This requirement is the same as accessing @thread_local@ variables, where a \ gls{thrd}is accessing kernel-thread data, is time-sliced, and continues execution on another kernel thread but is now accessing the wrong data.246 This failure is the serially reusable problem~\cite{SeriallyReusable}.247 Hence, allocated SQEs must be submitted to the same ring on the same \gls{proc}, which effectively forces the application to submit SQEs in allocation order.\footnote{248 To remove this requirement, a \ gls{thrd} needs the ability to ``yield to a specific \gls{proc}'', \ie,park with the guarantee it unparks on a specific \gls{proc}, \ie the \gls{proc} attached to the correct ring.}233 This alleviates the need for synchronization on the submissions, requiring only that \ats are not time-sliced during submission steps. 234 This requirement is the same as accessing @thread_local@ variables, where a \at is accessing kernel-thread data, is time-sliced, and continues execution on another kernel thread but is now accessing the wrong data. 235 This failure is the \newterm{serially reusable problem}~\cite{SeriallyReusable}. 236 Hence, allocated SQEs must be submitted to the same ring on the same \gls{proc}, which effectively forces the application to submit SQEs in order of allocation.\footnote{ 237 To remove this requirement, a \at needs the ability to ``yield to a specific \gls{proc}'', \ie, \park with the guarantee it unparks on a specific \gls{proc}, \ie the \gls{proc} attached to the correct ring.} 249 238 From the subsystem's point of view, the allocation and submission are sequential, greatly simplifying both. 250 239 In this design, allocation and submission form a partitioned ring buffer as shown in Figure~\ref{fig:pring}. 251 Once added to the ring buffer, the attached \gls{proc} has a significant amount of flexibility with regard sto when to perform the system call.252 Possible options are: when the \gls{proc} runs out of \ glspl{thrd} to run, after running a given number of \glspl{thrd}, \etc.240 Once added to the ring buffer, the attached \gls{proc} has a significant amount of flexibility with regard to when to perform the system call. 241 Possible options are: when the \gls{proc} runs out of \ats to run, after running a given number of \ats, \etc. 253 242 254 243 \begin{figure} 255 244 \centering 256 245 \input{pivot_ring.pstex_t} 257 \caption[Partitioned ring buffer]{Partitioned ring buffer \smallskip\newline Allocated sqes are append ingto the first partition.246 \caption[Partitioned ring buffer]{Partitioned ring buffer \smallskip\newline Allocated sqes are appended to the first partition. 258 247 When submitting, the partition is advanced. 259 248 The kernel considers the partition as the head of the ring.} … … 262 251 263 252 This approach has the advantage that it does not require much of the synchronization needed in a shared approach. 264 However, this benefit means \ glspl{thrd} submitting \io operations have less flexibility: they cannotpark or yield, and several exceptional cases are handled poorly.265 Instances running out of SQEs cannot run \ glspl{thrd}wanting to do \io operations.266 In this case, the \io \ gls{thrd}needs to be moved to a different \gls{proc}, and the only current way of achieving this is to @yield()@ hoping to be scheduled on a different \gls{proc} with free SQEs, which is not guaranteed.253 However, this benefit means \ats submitting \io operations have less flexibility: they cannot \park or yield, and several exceptional cases are handled poorly. 254 Instances running out of SQEs cannot run \ats wanting to do \io operations. 255 In this case, the \io \at needs to be moved to a different \gls{proc}, and the only current way of achieving this is to @yield()@ hoping to be scheduled on a different \gls{proc} with free SQEs, which is not guaranteed. 267 256 268 257 A more involved version of this approach tries to solve these problems using a pattern called \newterm{helping}. 269 \ Glspl{thrd} that cannot submit \io operations, either because of an allocation failure or migrationto a different \gls{proc} between allocation and submission, create an \io object and add it to a list of pending submissions per \gls{proc} and a list of pending allocations, probably per cluster.270 While there is still the strong coupling between \glspl{proc} and @io_uring@ instances, these data structures allow moving \glspl{thrd}to a specific \gls{proc}, when the current \gls{proc} cannot fulfill the \io request.271 272 Imagine a simple scenario with two \ glspl{thrd} on two \glspl{proc}, where one \gls{thrd} submits an \io operation and then sets a flag, while the other \gls{thrd}spins until the flag is set.273 Assume both \ glspl{thrd} are running on the same \gls{proc}, and the \io \gls{thrd} is preempted between allocation and submission, moved to the second \gls{proc}, and the original \gls{proc} starts running the spinning \gls{thrd}.274 In this case, the helping solution has the \io \ gls{thrd}append an \io object to the submission list of the first \gls{proc}, where the allocation was made.275 No other \gls{proc} can help the \ gls{thrd}since @io_uring@ instances are strongly coupled to \glspl{proc}.276 However, the \io \gls{proc} is unable to help because it is executing the spinning \ gls{thrd}resulting in a deadlock.277 While this example is artificial, in the presence of many \ glspl{thrd}, it is possible for this problem toarise ``in the wild''.258 \ats that cannot submit \io operations, either because of an allocation failure or \glslink{atmig}{migration} to a different \gls{proc} between allocation and submission, create an \io object and add it to a list of pending submissions per \gls{proc} and a list of pending allocations, probably per cluster. 259 While there is still a strong coupling between \glspl{proc} and @io_uring@ instances, these data structures allow moving \ats to a specific \gls{proc}, when the current \gls{proc} cannot fulfill the \io request. 260 261 Imagine a simple scenario with two \ats on two \glspl{proc}, where one \at submits an \io operation and then sets a flag, while the other \at spins until the flag is set. 262 Assume both \ats are running on the same \gls{proc}, and the \io \at is preempted between allocation and submission, moved to the second \gls{proc}, and the original \gls{proc} starts running the spinning \at. 263 In this case, the helping solution has the \io \at append an \io object to the submission list of the first \gls{proc}, where the allocation was made. 264 No other \gls{proc} can help the \at since @io_uring@ instances are strongly coupled to \glspl{proc}. 265 However, the \io \gls{proc} is unable to help because it is executing the spinning \at resulting in a deadlock. 266 While this example is artificial, in the presence of many \ats, this problem can arise ``in the wild''. 278 267 Furthermore, this pattern is difficult to reliably detect and avoid. 279 Once in this situation, the only escape is to interrupt ed the spinning \gls{thrd}, either directly or via some regular preemption, \eg time slicing.280 Having to interrupt \ glspl{thrd}for this purpose is costly, the latency can be large between interrupts, and the situation may be hard to detect.268 Once in this situation, the only escape is to interrupt the spinning \at, either directly or via some regular preemption, \eg time slicing. 269 Having to interrupt \ats for this purpose is costly, the latency can be large between interrupts, and the situation may be hard to detect. 281 270 Interrupts are needed here entirely because the \gls{proc} is tied to an instance it is not using. 282 Therefore, a more satisfying solution is for the \ gls{thrd}submitting the operation to notice that the instance is unused and simply go ahead and use it.271 Therefore, a more satisfying solution is for the \at submitting the operation to notice that the instance is unused and simply go ahead and use it. 283 272 This approach is presented shortly. 284 273 285 274 \subsubsection{Public Instances} 286 275 The public approach creates decoupled pools of @io_uring@ instances and processors, \ie without one-to-one coupling. 287 \ Glspl{thrd}attempting an \io operation pick one of the available instances and submit the operation to that instance.288 Since there is no coupling between @io_uring@ instances and \glspl{proc} in this approach, \ glspl{thrd}running on more than one \gls{proc} can attempt to submit to the same instance concurrently.276 \ats attempting an \io operation pick one of the available instances and submit the operation to that instance. 277 Since there is no coupling between @io_uring@ instances and \glspl{proc} in this approach, \ats running on more than one \gls{proc} can attempt to submit to the same instance concurrently. 289 278 Because @io_uring@ effectively sets the amount of sharding needed to avoid contention on its internal locks, performance in this approach is based on two aspects: 290 279 \begin{itemize} … … 293 282 \item 294 283 The scheme to route \io requests to specific @io_uring@ instances does not introduce contention. 295 This aspect has anoversized importance because it comes into play before the sharding of instances, and as such, all \glspl{hthrd} can contend on the routing algorithm.284 This aspect has oversized importance because it comes into play before the sharding of instances, and as such, all \glspl{hthrd} can contend on the routing algorithm. 296 285 \end{itemize} 297 286 298 287 Allocation in this scheme is fairly easy. 299 Free SQEs, \ie, SQEs that are not currently being used to represent a request, can be written to safely and have a field called @user_data@ that the kernel only reads to copy to @cqe@s.300 Allocation also requires no ordering guaranteeas all free SQEs are interchangeable.288 Free SQEs, \ie, SQEs that are not currently being used to represent a request, can be written-to safely and have a field called @user_data@ that the kernel only reads to copy to CQEs. 289 Allocation also does not require ordering guarantees as all free SQEs are interchangeable. 301 290 The only added complexity is that the number of SQEs is fixed, which means allocation can fail. 302 291 303 Allocation failures need to be pushed to a routing algorithm: \ glspl{thrd}attempting \io operations must not be directed to @io_uring@ instances without sufficient SQEs available.304 Furthermore, the routing algorithm should block operations up -front,if none of the instances have available SQEs.305 306 Once an SQE is allocated, \ glspl{thrd} insert the \io request information,and keep track of the SQE index and the instance it belongs to.307 308 Once an SQE is filled in, it is added to the submission ring buffer, an operation that is not thread -safe, and then the kernel must be notified using the @io_uring_enter@ system call.309 The submission ring buffer is the same size as the pre-allocated SQE buffer, therefore pushing to the ring buffer cannot fail because it would mean a \lstinline{sqe}multiple times in the ring buffer, which is undefined behaviour.310 However, as mentioned, the system call itself can fail with the expectation that it can be retried once some submitted operations complete.292 Allocation failures need to be pushed to a routing algorithm: \ats attempting \io operations must not be directed to @io_uring@ instances without sufficient SQEs available. 293 Furthermore, the routing algorithm should block operations upfront if none of the instances have available SQEs. 294 295 Once an SQE is allocated, \ats insert the \io request information and keep track of the SQE index and the instance it belongs to. 296 297 Once an SQE is filled in, it is added to the submission ring buffer, an operation that is not thread safe, and then the kernel must be notified using the @io_uring_enter@ system call. 298 The submission ring buffer is the same size as the pre-allocated SQE buffer, therefore pushing to the ring buffer cannot fail because it would mean an SQE multiple times in the ring buffer, which is undefined behaviour. 299 However, as mentioned, the system call itself can fail with the expectation that it can be retried once some submitted operations are complete. 311 300 312 301 Since multiple SQEs can be submitted to the kernel at once, it is important to strike a balance between batching and latency. 313 Operations that are ready to be submitted should be batched together in few system calls, but at the same time, operations should not be left pending for long period of times before being submitted.314 Balancing submission can be handled by either designating one of the submitting \ glspl{thrd} as the being responsible for the system call for the current batch of SQEs or by having some other party regularly submitting all ready SQEs, \eg, the poller \gls{thrd}mentioned later in this section.315 316 Ideally, when multiple \ glspl{thrd} attempt to submit operations to the same @io_uring@ instance, all requests should be batched together and one of the \glspl{thrd}is designated to do the system call on behalf of the others, called the \newterm{submitter}.302 Operations that are ready to be submitted should be batched together in few system calls, but at the same time, operations should not be left pending for long periods before being submitted. 303 Balancing submission can be handled by either designating one of the submitting \ats as the \at responsible for the system call for the current batch of SQEs or by having some other party regularly submit all ready SQEs, \eg, the poller \at mentioned later in this section. 304 305 Ideally, when multiple \ats attempt to submit operations to the same @io_uring@ instance, all requests should be batched together and one of the \ats is designated to do the system call on behalf of the others, called the \newterm{submitter}. 317 306 However, in practice, \io requests must be handed promptly so there is a need to guarantee everything missed by the current submitter is seen by the next one. 318 Indeed, as long as there is a ``next'' submitter, \ glspl{thrd}submitting new \io requests can move on, knowing that some future system call includes their request.319 Once the system call is done, the submitter must also free SQEs so that the allocator can reuse dthem.320 321 Finally, the completion side is much simpler since the @io_uring@ system -call enforces a natural synchronization point.322 Polling simply needs to regularly do the system call, go through the produced CQEs and communicate the result back to the originating \ glspl{thrd}.323 Since CQEs only own a signed 32 bit result, in addition to the copy of the @user_data@ field, all that is needed to communicate the result is a simple future~\cite{wiki:future}.307 Indeed, as long as there is a ``next'' submitter, \ats submitting new \io requests can move on, knowing that some future system call includes their request. 308 Once the system call is done, the submitter must also free SQEs so that the allocator can reuse them. 309 310 Finally, the completion side is much simpler since the @io_uring@ system call enforces a natural synchronization point. 311 Polling simply needs to regularly do the system call, go through the produced CQEs and communicate the result back to the originating \ats. 312 Since CQEs only own a signed 32-bit result, in addition to the copy of the @user_data@ field, all that is needed to communicate the result is a simple future~\cite{wiki:future}. 324 313 If the submission side does not designate submitters, polling can also submit all SQEs as it is polling events. 325 A simple approach to polling is to allocate a \ gls{thrd} per @io_uring@ instance and simply let the poller \glspl{thrd}poll their respective instances when scheduled.314 A simple approach to polling is to allocate a \at per @io_uring@ instance and simply let the poller \ats poll their respective instances when scheduled. 326 315 327 316 With the pool of SEQ instances approach, the big advantage is that it is fairly flexible. 328 It does not impose restrictions on what \ glspl{thrd}submitting \io operations can and cannot do between allocations and submissions.317 It does not impose restrictions on what \ats submitting \io operations can and cannot do between allocations and submissions. 329 318 It also can gracefully handle running out of resources, SQEs or the kernel returning @EBUSY@. 330 The down side to this approach is that many of the steps used for submitting need complex synchronization to work properly.331 The routing and allocation algorithm needs to keep track of which ring instances have available SQEs, block incoming requests if no instance is available, prevent barging if \ glspl{thrd}are already queued up waiting for SQEs and handle SQEs being freed.319 The downside to this approach is that many of the steps used for submitting need complex synchronization to work properly. 320 The routing and allocation algorithm needs to keep track of which ring instances have available SQEs, block incoming requests if no instance is available, prevent barging if \ats are already queued up waiting for SQEs and handle SQEs being freed. 332 321 The submission side needs to safely append SQEs to the ring buffer, correctly handle chains, make sure no SQE is dropped or left pending forever, notify the allocation side when SQEs can be reused, and handle the kernel returning @EBUSY@. 333 All this synchronization has a significant cost, and compared to the private-instance approach,this synchronization is entirely overhead.322 Compared to the private-instance approach, all this synchronization has a significant cost this synchronization is entirely overhead. 334 323 335 324 \subsubsection{Instance borrowing} 336 325 Both of the prior approaches have undesirable aspects that stem from tight or loose coupling between @io_uring@ and \glspl{proc}. 337 326 The first approach suffers from tight coupling causing problems when a \gls{proc} does not benefit from the coupling. 338 The second approach suffers from loose coupling causing operations to have synchronization overhead, which tighter coupling avoids.327 The second approach suffers from loose couplings causing operations to have synchronization overhead, which tighter coupling avoids. 339 328 When \glspl{proc} are continuously issuing \io operations, tight coupling is valuable since it avoids synchronization costs. 340 329 However, in unlikely failure cases or when \glspl{proc} are not using their instances, tight coupling is no longer advantageous. … … 344 333 345 334 In this approach, each cluster, see Figure~\ref{fig:system}, owns a pool of @io_uring@ instances managed by an \newterm{arbiter}. 346 When a \ gls{thrd}attempts to issue an \io operation, it ask for an instance from the arbiter and issues requests to that instance.347 This instance is now bound to the \gls{proc} the \ gls{thrd}is running on.348 This binding is kept until the arbiter decides to revoke it, taking back the instance and reverting the \gls{proc} to its initial state with respect to \io.335 When a \at attempts to issue an \io operation, it ask for an instance from the arbiter and issues requests to that instance. 336 This instance is now bound to the \gls{proc} the \at is running on. 337 This binding is kept until the arbiter decides to revoke it, taking back the instance and reverting the \gls{proc} to its initial \io state. 349 338 This tight coupling means that synchronization can be minimal since only one \gls{proc} can use the instance at a time, akin to the private instances approach. 350 339 However, it differs in that revocation by the arbiter means this approach does not suffer from the deadlock scenario described above. … … 354 343 \item The current \gls{proc} does not hold an instance. 355 344 \item The current instance does not have sufficient SQEs to satisfy the request. 356 \item The current \gls{proc} has a wrong instance, this happens if the submitting \ gls{thrd}context-switched between allocation and submission, called \newterm{external submissions}.345 \item The current \gls{proc} has a wrong instance, this happens if the submitting \at context-switched between allocation and submission, called \newterm{external submissions}. 357 346 \end{enumerate} 358 347 However, even when the arbiter is not directly needed, \glspl{proc} need to make sure that their instance ownership is not being revoked, which is accomplished by a lock-\emph{less} handshake.\footnote{ 359 Note the handshake is not lock \emph{free} since it lacks the proper progress guarantee.}348 Note the handshake is not lock-\emph{free} since it lacks the proper progress guarantee.} 360 349 A \gls{proc} raises a local flag before using its borrowed instance and checks if the instance is marked as revoked or if the arbiter has raised its flag. 361 350 If not, it proceeds, otherwise it delegates the operation to the arbiter. … … 363 352 364 353 Correspondingly, before revoking an instance, the arbiter marks the instance and then waits for the \gls{proc} using it to lower its local flag. 365 Only then does it reclaim the instance and potentially assign it to an other \gls{proc}.354 Only then does it reclaim the instance and potentially assign it to another \gls{proc}. 366 355 367 356 The arbiter maintains four lists around which it makes its decisions: … … 380 369 381 370 \paragraph{Pending Allocations} are handled by the arbiter when it has available instances and can directly hand over the instance and satisfy the request. 382 Otherwise, it must hold on to the list of threads until SQEs are made available again.371 Otherwise, it must hold on to the list of threads until SQEs are made available again. 383 372 This handling is more complex when an allocation requires multiple SQEs, since the arbiter must make a decision between satisfying requests in FIFO ordering or for fewer SQEs. 384 373 385 374 While an arbiter has the potential to solve many of the problems mentioned above, it also introduces a significant amount of complexity. 386 Tracking which processors are borrowing which instances and which instances have SQEs available ends -up adding a significant synchronization prelude to any I/O operation.375 Tracking which processors are borrowing which instances and which instances have SQEs available ends up adding a significant synchronization prelude to any I/O operation. 387 376 Any submission must start with a handshake that pins the currently borrowed instance, if available. 388 377 An attempt to allocate is then made, but the arbiter can concurrently be attempting to allocate from the same instance from a different \gls{hthrd}. 389 378 Once the allocation is completed, the submission must check that the instance is still burrowed before attempting to flush. 390 379 These synchronization steps turn out to have a similar cost to the multiple shared-instances approach. 391 Furthermore, if the number of instances does not match the number of processors actively submitting I/O, the system can fall into a state where instances are constantly being revoked and end -up cycling the processors, which leads to significant cache deterioration.380 Furthermore, if the number of instances does not match the number of processors actively submitting I/O, the system can fall into a state where instances are constantly being revoked and end up cycling the processors, which leads to significant cache deterioration. 392 381 For these reasons, this approach, which sounds promising on paper, does not improve on the private instance approach in practice. 393 394 \subsubsection{Private Instances V2}395 396 % Verbs of this design397 398 % Allocation: obtaining an sqe from which to fill in the io request, enforces the io instance to use since it must be the one which provided the sqe. Must interact with the arbiter if the instance does not have enough sqe for the allocation. (Typical allocation will ask for only one sqe, but chained sqe must be allocated from the same context so chains of sqe must be allocated in bulks)399 400 % Submission: simply adds the sqe(s) to some data structure to communicate that they are ready to go. This operation can't fail because there are as many spots in the submit buffer than there are sqes. Must interact with the arbiter only if the thread was moved between the allocation and the submission.401 402 % Flushing: Taking all the sqes that were submitted and making them visible to the kernel, also counting them in order to figure out what to_submit should be. Must be thread-safe with submission. Has to interact with the Arbiter if there are external submissions. Can't simply use a protected queue because adding to the array is not safe if the ring is still available for submitters. Flushing must therefore: check if there are external pending requests if so, ask the arbiter to flush otherwise use the fast flush operation.403 404 % Collect: Once the system call is done, it returns how many sqes were consumed by the system. These must be freed for allocation. Must interact with the arbiter to notify that things are now ready.405 406 % Handle: process all the produced cqe. No need to interact with any of the submission operations or the arbiter.407 408 409 % alloc():410 % proc.io->in_use = true, __ATOMIC_ACQUIRE411 % if cltr.io.flag || !proc.io || proc.io->flag:412 % return alloc_slow(cltr.io, proc.io)413 414 % a = alloc_fast(proc.io)415 % if a:416 % proc.io->in_use = false, __ATOMIC_RELEASE417 % return a418 419 % return alloc_slow(cltr.io)420 421 % alloc_fast()422 % left = proc.io->submit_q.free.tail - proc.io->submit_q.free.head423 % if num_entries - left < want:424 % return None425 426 % a = ready[head]427 % head = head + 1, __ATOMIC_RELEASE428 429 % alloc_slow()430 % cltr.io.flag = true, __ATOMIC_ACQUIRE431 % while(proc.io && proc.io->in_use) pause;432 433 434 435 % submit(a):436 % proc.io->in_use = true, __ATOMIC_ACQUIRE437 % if cltr.io.flag || proc.io != alloc.io || proc.io->flag:438 % return submit_slow(cltr.io)439 440 % submit_fast(proc.io, a)441 % proc.io->in_use = false, __ATOMIC_RELEASE442 443 % polling()444 % loop:445 % yield446 % flush()447 % io_uring_enter448 % collect449 % handle()450 382 451 383 \section{Interface} 452 384 The last important part of the \io subsystem is its interface. 453 There are multiple approaches thatcan be offered to programmers, each with advantages and disadvantages.454 The new \io subsystem can replace the C runtime API or extend it, and in the lat er case, the interface can go from very similar to vastly different.385 Multiple approaches can be offered to programmers, each with advantages and disadvantages. 386 The new \io subsystem can replace the C runtime API or extend it, and in the latter case, the interface can go from very similar to vastly different. 455 387 The following sections discuss some useful options using @read@ as an example. 456 The standard Linux interface for C is :388 The standard Linux interface for C is: 457 389 \begin{cfa} 458 390 ssize_t read(int fd, void *buf, size_t count); … … 466 398 However, this approach also entails a plethora of subtle technical challenges, which generally boils down to making a perfect replacement. 467 399 If the \CFA interface replaces only \emph{some} of the calls to glibc, then this can easily lead to esoteric concurrency bugs. 468 Since the gcc ecosystem sdoes not offer a scheme for perfect replacement, this approach was rejected as being laudable but infeasible.400 Since the gcc ecosystem does not offer a scheme for perfect replacement, this approach was rejected as being laudable but infeasible. 469 401 470 402 \subsection{Synchronous Extension} … … 477 409 It comes with the caveat that any code attempting to use it must be recompiled, which is a problem considering the amount of existing legacy C binaries. 478 410 However, it has the advantage of implementation simplicity. 479 Finally, there is a certain irony to using a blocking synchronous interface sfor a feature often referred to as ``non-blocking'' \io.411 Finally, there is a certain irony to using a blocking synchronous interface for a feature often referred to as ``non-blocking'' \io. 480 412 481 413 \subsection{Asynchronous Extension} … … 505 437 This offers more flexibility to users wanting to fully utilize all of the @io_uring@ features. 506 438 However, it is not the most user-friendly option. 507 It obviously imposes a strong dependency between user code and @io_uring@ but at the same time restrict ingusers to usages that are compatible with how \CFA internally uses @io_uring@.439 It obviously imposes a strong dependency between user code and @io_uring@ but at the same time restricts users to usages that are compatible with how \CFA internally uses @io_uring@. -
doc/theses/thierry_delisle_PhD/thesis/text/practice.tex
r12df6fe r4520b77e 16 16 } // delete 4 kernel threads 17 17 \end{cfa} 18 Dynamically allocated processors can be deleted a nany time, \ie their lifetime exceeds the block of creation.18 Dynamically allocated processors can be deleted at any time, \ie their lifetime exceeds the block of creation. 19 19 The consequence is that the scheduler and \io subsystems must know when these \procs come in and out of existence and roll them into the appropriate scheduling algorithms. 20 20 21 21 \section{Manual Resizing} 22 22 Manual resizing is expected to be a rare operation. 23 Programmers normally create/delete processors on a cluster sat startup/teardown.23 Programmers normally create/delete processors on a cluster at startup/teardown. 24 24 Therefore, dynamically changing the number of \procs is an appropriate moment to allocate or free resources to match the new state. 25 25 As such, all internal scheduling arrays that are sized based on the number of \procs need to be @realloc@ed. 26 This requirement also means any references into these arrays, \eg pointers or indexes, may need to be updated if elements are moved for compaction or forany other reason.26 This requirement also means any references into these arrays, \eg pointers or indexes, may need to be updated if elements are moved for compaction or any other reason. 27 27 28 28 There are no performance requirements, within reason, for resizing since it is expected to be rare. 29 29 However, this operation has strict correctness requirements since updating and idle sleep can easily lead to deadlocks. 30 It should also avoid as much as possible any effect on performance when the number of \procs remain constant.30 It should also avoid as much as possible any effect on performance when the number of \procs remains constant. 31 31 This later requirement prohibits naive solutions, like simply adding a global lock to the ready-queue arrays. 32 32 33 33 \subsection{Read-Copy-Update} 34 34 One solution is to use the Read-Copy-Update pattern~\cite{wiki:rcu}. 35 In this pattern, resizing is done by creating a copy of the internal data structures, \eg see Figure~\ref{fig:base-ts2}, updating the copy with the desired changes, and then attempt an Indiana Jones Switch to replace the original with the copy.35 In this pattern, resizing is done by creating a copy of the internal data structures, \eg see Figure~\ref{fig:base-ts2}, updating the copy with the desired changes, and then attempting an Indiana Jones Switch to replace the original with the copy. 36 36 This approach has the advantage that it may not need any synchronization to do the switch. 37 37 However, there is a race where \procs still use the original data structure after the copy is switched. 38 This race not only requires adding a memory-reclamation scheme, it also requires that operations made on the stale original version are eventually moved to the copy.38 This race not only requires adding a memory-reclamation scheme, but it also requires that operations made on the stale original version are eventually moved to the copy. 39 39 40 40 Specifically, the original data structure must be kept until all \procs have witnessed the change. … … 42 42 If all operations need synchronization, then the overall cost of this technique is likely to be similar to an uncontended lock approach. 43 43 In addition to the classic challenge of memory reclamation, transferring the original data to the copy before reclaiming it poses additional challenges. 44 Especially merging sub queues while having a minimal impact on fairness and locality.45 46 For example, given a linked -list, having a node enqueued onto the original and new list is not necessarily a problem depending on the chosen list structure.44 Especially merging sub-queues while having a minimal impact on fairness and locality. 45 46 For example, given a linked list, having a node enqueued onto the original and new list is not necessarily a problem depending on the chosen list structure. 47 47 If the list supports arbitrary insertions, then inconsistencies in the tail pointer do not break the list; 48 48 however, ordering may not be preserved. … … 55 55 A simpler approach is to use a \newterm{Readers-Writer Lock}~\cite{wiki:rwlock}, where the resizing requires acquiring the lock as a writer while simply enqueueing/dequeuing \ats requires acquiring the lock as a reader. 56 56 Using a Readers-Writer lock solves the problem of dynamically resizing and leaves the challenge of finding or building a lock with sufficient good read-side performance. 57 Since this approach is not a very complex challenge and an ad -hoc solution is perfectly acceptable, building a Readers-Writer lock was the path taken.57 Since this approach is not a very complex challenge and an ad hoc solution is perfectly acceptable, building a Readers-Writer lock was the path taken. 58 58 59 59 To maximize reader scalability, readers should not contend with each other when attempting to acquire and release a critical section. 60 To achieve this goal requires each reader to have its own memory to mark as locked and unlocked. 61 The read acquire possibly waits for a writer to finish the critical section and then acquires a reader's local spinlock. 62 The write acquire acquires the global lock, guaranteeing mutual exclusion among writers, and then acquires each of the local reader locks. 63 Acquiring all the local read locks guarantees mutual exclusion among the readers and the writer, while the wait on the read side prevents readers from continuously starving the writer. 64 60 Achieving this goal requires that each reader have its own memory to mark as locked and unlocked. 61 The read-acquire possibly waits for a writer to finish the critical section and then acquires a reader's local spinlock. 62 The writer acquires the global lock, guaranteeing mutual exclusion among writers, and then acquires each of the local reader locks. 63 Acquiring all the local read-locks guarantees mutual exclusion among the readers and the writer, while the wait on the read side prevents readers from continuously starving the writer. 65 64 Figure~\ref{f:SpecializedReadersWriterLock} shows the outline for this specialized readers-writer lock. 66 65 The lock in nonblocking, so both readers and writers spin while the lock is held. 67 \todo{finish explanation} 66 This very wide sharding strategy means that readers have very good locality since they only ever need to access two memory locations. 68 67 69 68 \begin{figure} … … 99 98 \section{Idle-Sleep}\label{idlesleep} 100 99 While manual resizing of \procs is expected to be rare, the number of \ats can vary significantly over an application's lifetime, which means there are times when there are too few or too many \procs. 101 For this work, it is the program er's responsibility to manually create \procs, so if there are too few \procs, the application must address this issue.100 For this work, it is the programmer's responsibility to manually create \procs, so if there are too few \procs, the application must address this issue. 102 101 This leaves too many \procs when there are not enough \ats for all the \procs to be useful. 103 102 These idle \procs cannot be removed because their lifetime is controlled by the application, and only the application knows when the number of \ats may increase or decrease. … … 109 108 Because idle sleep is spurious, this data structure has strict performance requirements, in addition to strict correctness requirements. 110 109 Next, some mechanism is needed to block \glspl{kthrd}, \eg @pthread_cond_wait@ on a pthread semaphore. 111 The complexity here is to support \at parking and unparking, user-level locking, timers, \io operations, and all other \CFA features with minimal complexity.110 The complexity here is to support \at \glslink{atblock}{parking} and \glslink{atsched}{unparking}, user-level locking, timers, \io operations, and all other \CFA features with minimal complexity. 112 111 Finally, the scheduler needs a heuristic to determine when to block and unblock an appropriate number of \procs. 113 112 However, this third challenge is outside the scope of this thesis because developing a general heuristic is complex enough to justify its own work. 114 113 Therefore, the \CFA scheduler simply follows the ``Race-to-Idle''~\cite{Albers12} approach where a sleeping \proc is woken any time a \at becomes ready and \procs go to idle sleep anytime they run out of work. 115 An interesting sub-part of this heuristic is what to do with bursts of \ats that become ready. 116 Since waking up a sleeping \proc can have notable latency, it is possible multiple \ats become ready while a single \proc is waking up. 117 This facts begs the question, if many \procs are available, how many should be woken? 118 If the ready \ats will run longer than the wake-up latency, waking one \proc per \at will offer maximum parallelisation. 119 If the ready \ats will run for a short very short time, waking many \procs may be wasteful. 114 115 An interesting subpart of this heuristic is what to do with bursts of \ats that become ready. 116 Since waking up a sleeping \proc can have notable latency, multiple \ats may become ready while a single \proc is waking up. 117 This fact begs the question, if many \procs are available, how many should be woken? 118 If the ready \ats will run longer than the wake-up latency, waking one \proc per \at will offer maximum parallelization. 119 If the ready \ats will run for a very short time, waking many \procs may be wasteful. 120 120 As mentioned, a heuristic to handle these complex cases is outside the scope of this thesis, the behaviour of the scheduler in this particular case is left unspecified. 121 121 122 122 \section{Sleeping} 123 As usual, the corner -stone of any feature related to the kernel is the choice of system call.123 As usual, the cornerstone of any feature related to the kernel is the choice of system call. 124 124 In terms of blocking a \gls{kthrd} until some event occurs, the Linux kernel has many available options. 125 125 126 126 \subsection{\lstinline{pthread_mutex}/\lstinline{pthread_cond}} 127 The classic option is to use some combination of the pthread mutual exclusion and synchronization locks, allowing a safe park/unpark of a \gls{kthrd} to/from a @pthread_cond@.127 The classic option is to use some combination of the pthread mutual exclusion and synchronization locks, allowing a safe \park/\unpark of a \gls{kthrd} to/from a @pthread_cond@. 128 128 While this approach works for \glspl{kthrd} waiting among themselves, \io operations do not provide a mechanism to signal @pthread_cond@s. 129 For \io results to wake a \proc waiting on a @pthread_cond@ means a different \gls pl{kthrd} must be woken up first, which then signals the \proc.129 For \io results to wake a \proc waiting on a @pthread_cond@ means a different \gls{kthrd} must be woken up first, which then signals the \proc. 130 130 131 131 \subsection{\lstinline{io_uring} and Epoll} … … 137 137 138 138 \subsection{Event FDs} 139 Another interesting approach is to use an event file descriptor\cit {eventfd}.139 Another interesting approach is to use an event file descriptor\cite{MAN:eventfd}. 140 140 This Linux feature is a file descriptor that behaves like \io, \ie, uses @read@ and @write@, but also behaves like a semaphore. 141 Indeed, all reads and writes must use aword-sized values, \ie 64 or 32 bits.142 Writes \emph{add} their values to a buffer using arithmetic addition versus buffer append, and reads zero out the buffer and return the buffer values so far.\footnote{141 Indeed, all reads and writes must use word-sized values, \ie 64 or 32 bits. 142 Writes \emph{add} their values to a buffer using arithmetic addition versus buffer append, and reads zero-out the buffer and return the buffer values so far.\footnote{ 143 143 This behaviour is without the \lstinline{EFD_SEMAPHORE} flag, which changes the behaviour of \lstinline{read} but is not needed for this work.} 144 144 If a read is made while the buffer is already 0, the read blocks until a non-0 value is added. … … 148 148 149 149 \section{Tracking Sleepers} 150 Tracking which \procs are in idle sleep requires a data structure holding all the sleeping \procs, but more importantly it requires a concurrent \emph{handshake} so that no \at is stranded on a ready-queue with no active \proc.150 Tracking which \procs are in idle sleep requires a data structure holding all the sleeping \procs, but more importantly, it requires a concurrent \emph{handshake} so that no \at is stranded on a ready queue with no active \proc. 151 151 The classic challenge occurs when a \at is made ready while a \proc is going to sleep: there is a race where the new \at may not see the sleeping \proc and the sleeping \proc may not see the ready \at. 152 152 Since \ats can be made ready by timers, \io operations, or other events outside a cluster, this race can occur even if the \proc going to sleep is the only \proc awake. … … 154 154 155 155 The handshake closing the race is done with both the notifier and the idle \proc executing two ordered steps. 156 The notifier first make sure the newly ready \at is visible to \procs searching for \ats, and then attemptto notify an idle \proc.156 The notifier first makes sure the newly ready \at is visible to \procs searching for \ats, and then attempts to notify an idle \proc. 157 157 On the other side, \procs make themselves visible as idle \procs and then search for any \ats they may have missed. 158 158 Unlike regular work-stealing, this search must be exhaustive to make sure that pre-existing \at is missed. 159 159 These steps from both sides guarantee that if the search misses a newly ready \at, then the notifier is guaranteed to see at least one idle \proc. 160 Convers ly, if the notifier does not see any idle \proc, then a \proc is guaranteed to find the new \at in its exhaustive search.160 Conversely, if the notifier does not see any idle \proc, then a \proc is guaranteed to find the new \at in its exhaustive search. 161 161 162 162 Furthermore, the ``Race-to-Idle'' approach means that there may be contention on the data structure tracking sleepers. 163 Contention can be tolerated for \procs attempting to sleep or wake -up because these \procs are not doing useful work, and therefore, not contributing to overall performance.163 Contention can be tolerated for \procs attempting to sleep or wake up because these \procs are not doing useful work, and therefore, not contributing to overall performance. 164 164 However, notifying, checking if a \proc must be woken-up, and doing so if needed, can significantly affect overall performance and must be low cost. 165 165 166 166 \subsection{Sleepers List} 167 167 Each cluster maintains a list of idle \procs, organized as a stack. 168 This ordering allows \procs at the tail to stay in idle sleep for extended period of times while those at the head of the list wake-up for bursts of activity.168 This ordering allows \procs at the tail to stay in idle sleep for extended periods while those at the head of the list wake up for bursts of activity. 169 169 Because of unbalanced performance requirements, the algorithm tracking sleepers is designed to have idle \procs handle as much of the work as possible. 170 170 The idle \procs maintain the stack of sleepers among themselves and notifying a sleeping \proc takes as little work as possible. … … 173 173 174 174 This approach also simplifies notification. 175 Indeed, \procs not only need to be notif y when a new \at is readied, but also mustbe notified during manual resizing, so the \gls{kthrd} can be joined.175 Indeed, \procs not only need to be notified when a new \at is readied, but must also be notified during manual resizing, so the \gls{kthrd} can be joined. 176 176 These requirements mean whichever entity removes idle \procs from the sleeper list must be able to do so in any order. 177 177 Using a simple lock over this data structure makes the removal much simpler than using a lock-free data structure. 178 The single lock also means the notification process simply needs to wake -up the desired idle \proc, using @pthread_cond_signal@, @write@ on an @fd@, \etc, and the \proc handles the rest.178 The single lock also means the notification process simply needs to wake up the desired idle \proc, using @pthread_cond_signal@, @write@ on an @fd@, \etc, and the \proc handles the rest. 179 179 180 180 \subsection{Reducing Latency} 181 As mentioned in this section, \procs going to sleep for extremely short periods of timeis likely in certain scenarios.182 Therefore, the latency of doing a system call to read from and writ ing to an event @fd@ can negatively affect overall performance in a notable way.181 As mentioned in this section, \procs going to sleep for extremely short periods is likely in certain scenarios. 182 Therefore, the latency of doing a system call to read from and write to an event @fd@ can negatively affect overall performance notably. 183 183 Hence, it is important to reduce latency and contention of the notification as much as possible. 184 184 Figure~\ref{fig:idle1} shows the basic idle-sleep data structure. … … 205 205 The woken \proc then updates the atomic pointer, while it is updating the head of the list, as it removes itself from the list. 206 206 Notifiers that obtained a @NULL@ in the exchange simply move on knowing that another notifier is already waking a \proc. 207 This behaviour is equivalent to having multiple notifier write to the @fd@ since reads consume all previous writes.208 Note that with and without this atomic pointer, bursts of notification can lead to an unspecified number of \procs being woken up, depending on how the arrival notification compares with tthe latency of \procs waking up.207 This behaviour is equivalent to having multiple notifiers write to the @fd@ since reads consume all previous writes. 208 Note that with and without this atomic pointer, bursts of notification can lead to an unspecified number of \procs being woken up, depending on how the arrival notification compares with the latency of \procs waking up. 209 209 As mentioned in section~\ref{idlesleep}, there is no optimal approach to handle these bursts. 210 210 It is therefore difficult to justify the cost of any extra synchronization here. … … 217 217 \end{figure} 218 218 219 The next optimization is to avoid the latency of the event @fd@, which can be done by adding what is effectively a binary benaphore\cit {benaphore} in front of the event @fd@.220 The benaphore over the event @fd@ logically provides a three state flag to avoid unnecessary system calls, where the states are expressed explicitin Figure~\ref{fig:idle:state}.221 A \proc begins its idle sleep by adding itself to the idle list before searching for a n\at.219 The next optimization is to avoid the latency of the event @fd@, which can be done by adding what is effectively a binary benaphore\cite{schillings1996engineering} in front of the event @fd@. 220 The benaphore over the event @fd@ logically provides a three-state flag to avoid unnecessary system calls, where the states are expressed explicitly in Figure~\ref{fig:idle:state}. 221 A \proc begins its idle sleep by adding itself to the idle list before searching for a \at. 222 222 In the process of adding itself to the idle list, it sets the state flag to @SEARCH@. 223 223 If no \ats can be found during the search, the \proc then confirms it is going to sleep by atomically swapping the state to @SLEEP@. 224 224 If the previous state is still @SEARCH@, then the \proc does read the event @fd@. 225 Meanwhile, notifiers atomically exchange the state to @AWAKE@ state.225 Meanwhile, notifiers atomically exchange the state to the @AWAKE@ state. 226 226 If the previous state is @SLEEP@, then the notifier must write to the event @fd@. 227 227 However, if the notify arrives almost immediately after the \proc marks itself idle, then both reads and writes on the event @fd@ can be omitted, which reduces latency notably. 228 These extensions lead sto the final data structure shown in Figure~\ref{fig:idle}.228 These extensions lead to the final data structure shown in Figure~\ref{fig:idle}. 229 229 230 230 \begin{figure} 231 231 \centering 232 232 \input{idle_state.pstex_t} 233 \caption[Improved Idle-Sleep Latency]{Improved Idle-Sleep Latency \smallskip\newline A three state flag is added to the event \lstinline{fd}.}233 \caption[Improved Idle-Sleep Latency]{Improved Idle-Sleep Latency \smallskip\newline A three-state flag is added to the event \lstinline{fd}.} 234 234 \label{fig:idle:state} 235 235 \end{figure} -
doc/theses/thierry_delisle_PhD/thesis/text/runtime.tex
r12df6fe r4520b77e 1 \chapter{\CFA Runtime} 1 \chapter{\CFA Runtime}\label{cfaruntime} 2 2 This chapter presents an overview of the capabilities of the \CFA runtime prior to this thesis work. 3 3 4 4 \section{C Threading} 5 5 6 \Celeven introduced threading features, such the @_Thread_local@ storage class, and libraries @stdatomic.h@ and @threads.h@.6 \Celeven introduced threading features, such as the @_Thread_local@ storage class, and libraries @stdatomic.h@ and @threads.h@. 7 7 Interestingly, almost a decade after the \Celeven standard, the most recent versions of gcc, clang, and msvc do not support the \Celeven include @threads.h@, indicating no interest in the C11 concurrency approach (possibly because of the recent effort to add concurrency to \CC). 8 8 While the \Celeven standard does not state a threading model, the historical association with pthreads suggests implementations would adopt kernel-level threading (1:1)~\cite{ThreadModel}, as for \CC. … … 13 13 \section{M:N Threading}\label{prev:model} 14 14 15 Threading in \CFA is based on \Gls{uthrding}, where \ glspl{thrd} are the representation of a unit of work. As such, \CFA programmers should expect these units to be fairly inexpensive, \ie programmers should be able to create a large number of \glspl{thrd} and switch among \glspl{thrd} liberally without many concerns for performance.15 Threading in \CFA is based on \Gls{uthrding}, where \ats are the representation of a unit of work. As such, \CFA programmers should expect these units to be fairly inexpensive, \ie programmers should be able to create a large number of \ats and switch among \ats liberally without many performance concerns. 16 16 17 The \CFA M:N threading model sis implemented using many user-level threads mapped onto fewer \glspl{kthrd}.17 The \CFA M:N threading model is implemented using many user-level threads mapped onto fewer \glspl{kthrd}. 18 18 The user-level threads have the same semantic meaning as a \glspl{kthrd} in the 1:1 model: they represent an independent thread of execution with its own stack. 19 The difference is that user-level threads do not have a corresponding object in the kernel; they are handled by the runtime in user space and scheduled onto \glspl{kthrd}, referred to as \glspl{proc} in this document. \Glspl{proc} run a \ gls{thrd} until it context switches out, it then chooses a different \gls{thrd}to run.19 The difference is that user-level threads do not have a corresponding object in the kernel; they are handled by the runtime in user space and scheduled onto \glspl{kthrd}, referred to as \glspl{proc} in this document. \Glspl{proc} run a \at until it context switches out, it then chooses a different \at to run. 20 20 21 21 \section{Clusters} 22 22 \CFA allows the option to group user-level threading, in the form of clusters. 23 Both \ glspl{thrd}and \glspl{proc} belong to a specific cluster.24 \Glspl{ thrd} are only scheduled onto \glspl{proc} in the same cluster and scheduling is done independently of other clusters.23 Both \ats and \glspl{proc} belong to a specific cluster. 24 \Glspl{at} are only scheduled onto \glspl{proc} in the same cluster and scheduling is done independently of other clusters. 25 25 Figure~\ref{fig:system} shows an overview of the \CFA runtime, which allows programmers to tightly control parallelism. 26 26 It also opens the door to handling effects like NUMA, by pinning clusters to a specific NUMA node\footnote{This capability is not currently implemented in \CFA, but the only hurdle left is creating a generic interface for CPU masks.}. … … 30 30 \input{system.pstex_t} 31 31 \end{center} 32 \caption[Overview of the \CFA runtime]{Overview of the \CFA runtime \newline \Glspl{ thrd} are scheduled inside a particular cluster and run on the \glspl{proc} that belong to the cluster. The discrete-event manager, which handles preemption and timeout, is a \gls{proc} that lives outside any cluster and does not run \glspl{thrd}.}32 \caption[Overview of the \CFA runtime]{Overview of the \CFA runtime \newline \Glspl{at} are scheduled inside a particular cluster and run on the \glspl{proc} that belong to the cluster. The discrete-event manager, which handles preemption and timeout, is a \gls{proc} that lives outside any cluster and does not run \ats.} 33 33 \label{fig:system} 34 34 \end{figure} … … 38 38 39 39 \section{\glsxtrshort{io}}\label{prev:io} 40 Prior to this work, the \CFA runtime did not add any particular support for \glsxtrshort{io} operations. While all \glsxtrshort{io} operations available in C are available in \CFA, \glsxtrshort{io} operations are designed for the POSIX threading model~\cite{pthreads}. Using these 1:1 threading operations in an M:N threading model means \glsxtrshort{io} operations block \glspl{proc} instead of \ glspl{thrd}. While this can work in certain cases, it limits the number of concurrent operations to the number of \glspl{proc} rather than \glspl{thrd}. It also means deadlock can occur because all \glspl{proc} are blocked even if at least one \gls{thrd}is ready to run. A simple example of this type of deadlock would be as follows:40 Prior to this work, the \CFA runtime did not add any particular support for \glsxtrshort{io} operations. While all \glsxtrshort{io} operations available in C are available in \CFA, \glsxtrshort{io} operations are designed for the POSIX threading model~\cite{pthreads}. Using these 1:1 threading operations in an M:N threading model means \glsxtrshort{io} operations block \glspl{proc} instead of \ats. While this can work in certain cases, it limits the number of concurrent operations to the number of \glspl{proc} rather than \ats. It also means deadlock can occur because all \glspl{proc} are blocked even if at least one \at is ready to run. A simple example of this type of deadlock would be as follows: 41 41 42 42 \begin{quote} 43 Given a simple network program with 2 \ glspl{thrd} and a single \gls{proc}, one \gls{thrd} sends network requests to a server and the other \gls{thrd}waits for a response from the server.44 If the second \ gls{thrd}races ahead, it may wait for responses to requests that have not been sent yet.45 In theory, this should not be a problem, even if the second \ gls{thrd} waits, because the first \gls{thrd}is still ready to run and should be able to get CPU time to send the request.46 With M:N threading, while the first \ gls{thrd} is ready, the lone \gls{proc} \emph{cannot} run the first \gls{thrd} if it is blocked in the \glsxtrshort{io} operation of the second \gls{thrd}.47 If this happen , the system is in a synchronization deadlock\footnote{In this example, the deadlock could be resolved if the server sends unprompted messages to the client.43 Given a simple network program with 2 \ats and a single \gls{proc}, one \at sends network requests to a server and the other \at waits for a response from the server. 44 If the second \at races ahead, it may wait for responses to requests that have not been sent yet. 45 In theory, this should not be a problem, even if the second \at waits, because the first \at is still ready to run and should be able to get CPU time to send the request. 46 With M:N threading, while the first \at is ready, the lone \gls{proc} \emph{cannot} run the first \at if it is blocked in the \glsxtrshort{io} operation of the second \at. 47 If this happens, the system is in a synchronization deadlock\footnote{In this example, the deadlock could be resolved if the server sends unprompted messages to the client. 48 48 However, this solution is neither general nor appropriate even in this simple case.}. 49 49 \end{quote} 50 50 51 Therefore, one of the objective of this work is to introduce \emph{User-Level \glsxtrshort{io}}, which like \glslink{uthrding}{User-Level \emph{Threading}}, blocks \glspl{thrd} rather than \glspl{proc} when doing \glsxtrshort{io} operations.52 This feature entails multiplexing the \glsxtrshort{io} operations of many \ glspl{thrd}onto fewer \glspl{proc}.51 Therefore, one of the objectives of this work is to introduce \emph{User-Level \glsxtrshort{io}}, which like \glslink{uthrding}{User-Level \emph{Threading}}, blocks \ats rather than \glspl{proc} when doing \glsxtrshort{io} operations. 52 This feature entails multiplexing the \glsxtrshort{io} operations of many \ats onto fewer \glspl{proc}. 53 53 The multiplexing requires a single \gls{proc} to execute multiple \glsxtrshort{io} operations in parallel. 54 54 This requirement cannot be done with operations that block \glspl{proc}, \ie \glspl{kthrd}, since the first operation would prevent starting new operations for its blocking duration. … … 60 60 All functions defined by this volume of POSIX.1-2017 shall be thread-safe, except that the following functions need not be thread-safe. ... (list of 70+ excluded functions) 61 61 \end{quote} 62 Only UNIX @man@ pages identify whether or not a library function is threadsafe, and hence, may block on a pthreads lock or system call; hence interoperability with UNIX library functions is a challenge for an M:N threading model.62 Only UNIX @man@ pages identify whether a library function is thread-safe, and hence, may block on a pthreads lock or system call; hence interoperability with UNIX library functions is a challenge for an M:N threading model. 63 63 64 Languages like Go and Java, which have strict interoperability with C\cit {JNI, GoLang with C}, can control operations in C by ``sandboxing'' them, \eg a blocking function may be delegated to a \gls{kthrd}. Sandboxing may help towards guaranteeing that the kind of deadlock mentioned above does not occur.64 Languages like Go and Java, which have strict interoperability with C\cite{wiki:jni,go:cgo}, can control operations in C by ``sandboxing'' them, \eg a blocking function may be delegated to a \gls{kthrd}. Sandboxing may help towards guaranteeing that the kind of deadlock mentioned above does not occur. 65 65 66 66 As mentioned in Section~\ref{intro}, \CFA is binary compatible with C and, as such, must support all C library functions. Furthermore, interoperability can happen at the function-call level, inline code, or C and \CFA translation units linked together. This fine-grained interoperability between C and \CFA has two consequences: … … 72 72 Therefore, it is possible calls to an unknown library function can block a \gls{kthrd} leading to deadlocks in \CFA's M:N threading model, which would not occur in a traditional 1:1 threading model. 73 73 Currently, all M:N thread systems interacting with UNIX without sandboxing suffer from this problem but manage to work very well in the majority of applications. 74 Therefore, a complete solution to this problem is outside the scope of this thesis.\footnote{\CFA does provide a pthreads emulation, so any library function using embedded pthreads locks areredirected to \CFA user-level locks. This capability further reduces the chances of blocking a \gls{kthrd}.}74 Therefore, a complete solution to this problem is outside the scope of this thesis.\footnote{\CFA does provide a pthreads emulation, so any library function using embedded pthreads locks is redirected to \CFA user-level locks. This capability further reduces the chances of blocking a \gls{kthrd}.} -
doc/theses/thierry_delisle_PhD/thesis/thesis.tex
r12df6fe r4520b77e 84 84 \usepackage{subcaption} 85 85 \usepackage{comment} % Removes large sections of the document. 86 \usepackage{array} 86 87 87 88 % Hyperlinks make it very easy to navigate an electronic document. … … 210 211 \newcommand\proc{\gls{proc}\xspace}% 211 212 \newcommand\procs{\glspl{proc}\xspace}% 213 \newcommand\park{\glslink{atblock}{park}\xspace}% 214 \newcommand\unpark{\glslink{atsched}{unpark}\xspace}% 212 215 213 216 %====================================================================== … … 247 250 \input{text/eval_macro.tex} 248 251 \part{Conclusion \& Annexes} 252 \input{text/conclusion.tex} 253 249 254 250 255 %---------------------------------------------------------------------- … … 280 285 % Appendices 281 286 282 % The \appendix statement indicates the beginning of the appendices.283 \appendix284 % Add an un-numbered title page before the appendices and a line in the Table of Contents285 \chapter*{APPENDICES}286 \addcontentsline{toc}{chapter}{APPENDICES}287 % Appendices are just more chapters, with different labeling (letters instead of numbers).288 % ======================================================================289 \chapter[PDF Plots From Matlab]{Matlab Code for Making a PDF Plot}290 \label{AppendixA}291 % Tip 4: Example of how to get a shorter chapter title for the Table of Contents292 % ======================================================================293 \section{Using the GUI}294 Properties of Matab plots can be adjusted from the plot window via a graphical interface. Under the Desktop menu in the Figure window, select the Property Editor. You may also want to check the Plot Browser and Figure Palette for more tools. To adjust properties of the axes, look under the Edit menu and select Axes Properties.295 296 To set the figure size and to save as PDF or other file formats, click the Export Setup button in the figure Property Editor.297 298 \section{From the Command Line}299 All figure properties can also be manipulated from the command line. Here's an example:300 \begin{verbatim}301 x=[0:0.1:pi];302 hold on % Plot multiple traces on one figure303 plot(x,sin(x))304 plot(x,cos(x),'--r')305 plot(x,tan(x),'.-g')306 title('Some Trig Functions Over 0 to \pi') % Note LaTeX markup!307 legend('{\it sin}(x)','{\it cos}(x)','{\it tan}(x)')308 hold off309 set(gca,'Ylim',[-3 3]) % Adjust Y limits of "current axes"310 set(gcf,'Units','inches') % Set figure size units of "current figure"311 set(gcf,'Position',[0,0,6,4]) % Set figure width (6 in.) and height (4 in.)312 cd n:\thesis\plots % Select where to save313 print -dpdf plot.pdf % Save as PDF314 \end{verbatim}287 % % The \appendix statement indicates the beginning of the appendices. 288 % \appendix 289 % % Add an un-numbered title page before the appendices and a line in the Table of Contents 290 % \chapter*{APPENDICES} 291 % \addcontentsline{toc}{chapter}{APPENDICES} 292 % % Appendices are just more chapters, with different labeling (letters instead of numbers). 293 % %====================================================================== 294 % \chapter[PDF Plots From Matlab]{Matlab Code for Making a PDF Plot} 295 % \label{AppendixA} 296 % % Tip 4: Example of how to get a shorter chapter title for the Table of Contents 297 % %====================================================================== 298 % \section{Using the GUI} 299 % Properties of Matab plots can be adjusted from the plot window via a graphical interface. Under the Desktop menu in the Figure window, select the Property Editor. You may also want to check the Plot Browser and Figure Palette for more tools. To adjust properties of the axes, look under the Edit menu and select Axes Properties. 300 301 % To set the figure size and to save as PDF or other file formats, click the Export Setup button in the figure Property Editor. 302 303 % \section{From the Command Line} 304 % All figure properties can also be manipulated from the command line. Here's an example: 305 % \begin{verbatim} 306 % x=[0:0.1:pi]; 307 % hold on % Plot multiple traces on one figure 308 % plot(x,sin(x)) 309 % plot(x,cos(x),'--r') 310 % plot(x,tan(x),'.-g') 311 % title('Some Trig Functions Over 0 to \pi') % Note LaTeX markup! 312 % legend('{\it sin}(x)','{\it cos}(x)','{\it tan}(x)') 313 % hold off 314 % set(gca,'Ylim',[-3 3]) % Adjust Y limits of "current axes" 315 % set(gcf,'Units','inches') % Set figure size units of "current figure" 316 % set(gcf,'Position',[0,0,6,4]) % Set figure width (6 in.) and height (4 in.) 317 % cd n:\thesis\plots % Select where to save 318 % print -dpdf plot.pdf % Save as PDF 319 % \end{verbatim} 315 320 316 321 % GLOSSARIES (Lists of definitions, abbreviations, symbols, etc. provided by the glossaries-extra package) -
doc/user/user.tex
r12df6fe r4520b77e 11 11 %% Created On : Wed Apr 6 14:53:29 2016 12 12 %% Last Modified By : Peter A. Buhr 13 %% Last Modified On : Mon Feb 14 17:20:39202214 %% Update Count : 5 38213 %% Last Modified On : Mon Aug 22 23:43:30 2022 14 %% Update Count : 5503 15 15 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 16 16 … … 964 964 965 965 \begin{figure} 966 \begin{tabular}{@{}l@{\hspace{ 25pt}}|l@{}}967 \multicolumn{1}{@{}c@{\hspace{ 25pt}}|}{loop control} & \multicolumn{1}{c@{}}{output} \\966 \begin{tabular}{@{}l@{\hspace{40pt}}|l@{}} 967 \multicolumn{1}{@{}c@{\hspace{40pt}}|}{loop control} & \multicolumn{1}{c@{}}{output} \\ 968 968 \hline 969 969 \begin{cfa} 970 while ®($\,$)® { sout | "empty"; break; } 971 do { sout | "empty"; break; } while ®($\,$)®; 972 for ®($\,$)® { sout | "empty"; break; } 973 for ( ®0® ) { sout | "A"; } sout | "zero"; 974 for ( ®1® ) { sout | "A"; } 975 for ( ®10® ) { sout | "A"; } 976 for ( ®= 10® ) { sout | "A"; } 977 for ( ®1 ~= 10 ~ 2® ) { sout | "B"; } 978 for ( ®10 -~= 1 ~ 2® ) { sout | "C"; } 979 for ( ®0.5 ~ 5.5® ) { sout | "D"; } 980 for ( ®5.5 -~ 0.5® ) { sout | "E"; } 981 for ( ®i; 10® ) { sout | i; } 982 for ( ®i; = 10® ) { sout | i; } 983 for ( ®i; 1 ~= 10 ~ 2® ) { sout | i; } 984 for ( ®i; 10 -~= 1 ~ 2® ) { sout | i; } 985 for ( ®i; 0.5 ~ 5.5® ) { sout | i; } 986 for ( ®i; 5.5 -~ 0.5® ) { sout | i; } 987 for ( ®ui; 2u ~= 10u ~ 2u® ) { sout | ui; } 988 for ( ®ui; 10u -~= 2u ~ 2u® ) { sout | ui; } 970 while () { sout | "empty"; break; } 971 do { sout | "empty"; break; } while (); 972 for () { sout | "empty"; break; } $\C[3in]{sout | nl | nlOff;}$ 973 974 for ( 0 ) { sout | "A"; } sout | "zero"; $\C{sout | nl;}$ 975 for ( 1 ) { sout | "A"; } $\C{sout | nl;}$ 976 for ( 10 ) { sout | "A"; } $\C{sout | nl;}$ 977 for ( ~= 10 ) { sout | "A"; } $\C{sout | nl;}$ 978 for ( 1 ~= 10 ~ 2 ) { sout | "B"; } $\C{sout | nl;}$ 979 for ( 1 -~= 10 ~ 2 ) { sout | "C"; } $\C{sout | nl;}$ 980 for ( 0.5 ~ 5.5 ) { sout | "D"; } $\C{sout | nl;}$ 981 for ( 0.5 -~ 5.5 ) { sout | "E"; } $\C{sout | nl;}$ 982 for ( i; 10 ) { sout | i; } $\C{sout | nl;}$ 983 for ( i; ~= 10 ) { sout | i; } $\C{sout | nl;}$ 984 for ( i; 1 ~= 10 ~ 2 ) { sout | i; } $\C{sout | nl;}$ 985 for ( i; 1 -~= 10 ~ 2 ) { sout | i; } $\C{sout | nl;}$ 986 for ( i; 0.5 ~ 5.5 ) { sout | i; } $\C{sout | nl;}$ 987 for ( i; 0.5 -~ 5.5 ) { sout | i; } $\C{sout | nl;}$ 988 for ( ui; 2u ~= 10u ~ 2u ) { sout | ui; } $\C{sout | nl;}$ 989 for ( ui; 2u -~= 10u ~ 2u ) { sout | ui; } $\C{sout | nl | nl | nl;}$ 990 989 991 enum { N = 10 }; 990 for ( ®N® ) { sout | "N"; } 991 for ( ®i; N® ) { sout | i; } 992 for ( ®i; N -~ 0® ) { sout | i; } 993 const int start = 3, comp = 10, inc = 2; 994 for ( ®i; start ~ comp ~ inc + 1® ) { sout | i; } 995 for ( i; 1 ~ ®@® ) { if ( i > 10 ) break; sout | i; } 996 for ( i; 10 -~ ®@® ) { if ( i < 0 ) break; sout | i; } 997 for ( i; 2 ~ ®@® ~ 2 ) { if ( i > 10 ) break; sout | i; } 998 for ( i; 2.1 ~ ®@® ~ ®@® ) { if ( i > 10.5 ) break; sout | i; i += 1.7; } 999 for ( i; 10 -~ ®@® ~ 2 ) { if ( i < 0 ) break; sout | i; } 1000 for ( i; 12.1 ~ ®@® ~ ®@® ) { if ( i < 2.5 ) break; sout | i; i -= 1.7; } 1001 for ( i; 5 ®:® j; -5 ~ @ ) { sout | i | j; } 1002 for ( i; 5 ®:® j; -5 -~ @ ) { sout | i | j; } 1003 for ( i; 5 ®:® j; -5 ~ @ ~ 2 ) { sout | i | j; } 1004 for ( i; 5 ®:® j; -5 -~ @ ~ 2 ) { sout | i | j; } 1005 for ( i; 5 ®:® j; -5 ~ @ ) { sout | i | j; } 1006 for ( i; 5 ®:® j; -5 -~ @ ) { sout | i | j; } 1007 for ( i; 5 ®:® j; -5 ~ @ ~ 2 ) { sout | i | j; } 1008 for ( i; 5 ®:® j; -5 -~ @ ~ 2 ) { sout | i | j; } 1009 for ( i; 5 ®:® j; -5 -~ @ ~ 2 ®:® k; 1.5 ~ @ ) { sout | i | j | k; } 1010 for ( i; 5 ®:® j; -5 -~ @ ~ 2 ®:® k; 1.5 ~ @ ) { sout | i | j | k; } 1011 for ( i; 5 ®:® k; 1.5 ~ @ ®:® j; -5 -~ @ ~ 2 ) { sout | i | j | k; } 992 for ( N ) { sout | "N"; } $\C{sout | nl;}$ 993 for ( i; N ) { sout | i; } $\C{sout | nl;}$ 994 for ( i; -~ N ) { sout | i; } $\C{sout | nl | nl | nl;}$ 995 996 const int low = 3, high = 10, inc = 2; 997 for ( i; low ~ high ~ inc + 1 ) { sout | i; } $\C{sout | nl;}$ 998 for ( i; 1 ~ @ ) { if ( i > 10 ) break; sout | i; } $\C{sout | nl;}$ 999 for ( i; @ -~ 10 ) { if ( i < 0 ) break; sout | i; } $\C{sout | nl;}$ 1000 for ( i; 2 ~ @ ~ 2 ) { if ( i > 10 ) break; sout | i; } $\C{sout | nl;}$ 1001 for ( i; 2.1 ~ @ ~ @ ) { if ( i > 10.5 ) break; sout | i; i += 1.7; } $\C{sout | nl;}$ 1002 for ( i; @ -~ 10 ~ 2 ) { if ( i < 0 ) break; sout | i; } $\C{sout | nl;}$ 1003 for ( i; 12.1 ~ @ ~ @ ) { if ( i < 2.5 ) break; sout | i; i -= 1.7; } $\C{sout | nl;}$ 1004 for ( i; 5 : j; -5 ~ @ ) { sout | i | j; } $\C{sout | nl;}$ 1005 for ( i; 5 : j; @ -~ -5 ) { sout | i | j; } $\C{sout | nl;}$ 1006 for ( i; 5 : j; -5 ~ @ ~ 2 ) { sout | i | j; } $\C{sout | nl;}$ 1007 for ( i; 5 : j; @ -~ -5 ~ 2 ) { sout | i | j; } $\C{sout | nl;}$ 1008 for ( i; 5 : j; -5 ~ @ ) { sout | i | j; } $\C{sout | nl;}$ 1009 for ( i; 5 : j; @ -~ -5 ) { sout | i | j; } $\C{sout | nl;}$ 1010 for ( i; 5 : j; -5 ~ @ ~ 2 ) { sout | i | j; } $\C{sout | nl;}$ 1011 for ( i; 5 : j; @ -~ -5 ~ 2 ) { sout | i | j; } $\C{sout | nl;}$ 1012 for ( i; 5 : j; @ -~ -5 ~ 2 : k; 1.5 ~ @ ) { sout | i | j | k; } $\C{sout | nl;}$ 1013 for ( i; 5 : j; @ -~ -5 ~ 2 : k; 1.5 ~ @ ) { sout | i | j | k; } $\C{sout | nl;}$ 1014 for ( i; 5 : k; 1.5 ~ @ : j; @ -~ -5 ~ 2 ) { sout | i | j | k; } $\C{sout | nl;}\CRT$ 1012 1015 \end{cfa} 1013 1016 & … … 1016 1019 empty 1017 1020 empty 1021 1018 1022 zero 1019 1023 A … … 1033 1037 10 8 6 4 2 1034 1038 1039 1035 1040 N N N N N N N N N N 1036 1041 0 1 2 3 4 5 6 7 8 9 1037 1042 10 9 8 7 6 5 4 3 2 1 1043 1038 1044 1039 1045 3 6 9 … … 1073 1079 1074 1080 Looping a fixed number of times, possibly with a loop index, occurs frequently. 1075 \CFA condenses simply looping to facilitate coding speed and safety. 1076 The \Indexc{for}, \Indexc{while}, and \Indexc{do} loop-control is augmented as follows \see{examples in \VRef[Figure]{f:LoopControlExamples}}: 1077 \begin{itemize}[itemsep=0pt] 1078 \item 1079 ©0© is the implicit start value; 1080 \item 1081 ©1© is the implicit increment value. 1082 \item 1083 The up-to range uses operator ©+=© for increment; 1084 \item 1085 The down-to range uses operator ©-=© for decrement. 1086 \item 1087 The loop index is polymorphic in the type of the comparison value N (when the start value is implicit) or the start value M. 1088 \begin{cfa} 1089 for ( i; ®5® ) $\C[2.5in]{// typeof(5) i; 5 is comparison value}$ 1090 for ( i; ®1.5®~5.5~0.5 ) $\C{// typeof(1.5) i; 1.5 is start value}$ 1091 \end{cfa} 1092 \item 1093 An empty conditional implies comparison value of ©1© (true). 1081 \CFA condenses simply looping to facilitate coding speed and safety~\see{examples in \VRef[Figure]{f:LoopControlExamples}}. 1082 1083 The \Indexc{for}, \Indexc{while}, and \Indexc{do} loop-control allow an empty conditional, which implies a comparison value of ©1© (true). 1094 1084 \begin{cfa} 1095 1085 while ( ®/*empty*/® ) $\C{// while ( true )}$ … … 1097 1087 do ... while ( ®/*empty*/® ) $\C{// do ... while ( true )}$ 1098 1088 \end{cfa} 1099 \item 1100 A comparison N is implicit up-to exclusive range [0,N\R{)}. 1089 1090 The ©for© control has 4 new loop-control operators that are not overloadable: 1091 \begin{description}[itemsep=0pt,parsep=0pt] 1092 \item 1093 \Indexc{\~} (tilde) \Index{up-to exclusive range}, 1094 \item 1095 \Indexc{\~=} (tilde equal) \Index{up-to inclusive range}, 1096 \item 1097 \Indexc{-\~} (minus tilde) \Index{down-to exclusive range}, 1098 \item 1099 \Indexc{-\~=} (minus tilde equal) \Index{down-to inclusive range}. 1100 \end{description} 1101 1102 The ©for© index components, low (L), high (H), and increment (I), are optional. 1103 If missing: 1104 \begin{itemize}[itemsep=0pt,parsep=0pt] 1105 \item 1106 \Indexc{0} is the implicit low value. 1107 \item 1108 \Indexc{1} is the implicit increment value. 1109 \item 1110 The up-to range uses operator \Indexc{+=} for increment. 1111 \item 1112 The down-to range uses operator \Indexc{-=} for decrement. 1113 \end{itemize} 1114 1115 If no type is specified for the loop index, it is the type of the high value H (when the low value is implicit) or the low value L. 1116 \begin{cfa} 1117 for ( ®5® ) $\C{// typeof(5) anonymous-index; 5 is high value}$ 1118 for ( i; ®1.5® ~ 5.5 ) $\C{// typeof(1.5) i; 1.5 is low value}$ 1119 for ( ®int i®; 0 ~ 10 ~ 2 ) $\C{// int i; type is explicit}$ 1120 \end{cfa} 1121 1122 The following are examples for constructing different for-control: 1123 \begin{itemize}[itemsep=0pt] 1124 \item 1125 H is implicit up-to exclusive range [0,H\R{)}. 1101 1126 \begin{cfa} 1102 1127 for ( ®5® ) $\C{// for ( typeof(5) i; i < 5; i += 1 )}$ 1103 1128 \end{cfa} 1104 1129 \item 1105 A comparison ©=© N is implicit up-to inclusive range [0,N\R{]}.1106 \begin{cfa} 1107 for ( ® =®5 ) $\C{// for ( typeof(5) i; i <= 5; i += 1 )}$1108 \end{cfa} 1109 \item 1110 The up-to range M ©~©\index{~@©~©} N means exclusive range [M,N\R{)}.1111 \begin{cfa} 1112 for ( 1 ®~®5 ) $\C{// for ( typeof(1) i = 1; i < 5; i += 1 )}$1113 \end{cfa} 1114 \item 1115 The up-to range M ©~=©\index{~=@©~=©} N means inclusive range [M,N\R{]}.1116 \begin{cfa} 1117 for ( 1 ®~=®5 ) $\C{// for ( typeof(1) i = 1; i <= 5; i += 1 )}$1118 \end{cfa} 1119 \item 1120 The down-to range M ©-~©\index{-~@©-~©} N means exclusive range [N,M\R{)}.1121 \begin{cfa} 1122 for ( 1 ®-~®5 ) $\C{// for ( typeof(1) i = 5; i > 0; i -= 1 )}$1123 \end{cfa} 1124 \item 1125 The down-to range M ©-~=©\index{-~=@©-~=©} N means inclusive range [N,M\R{]}.1126 \begin{cfa} 1127 for ( 1 ®-~=®5 ) $\C{// for ( typeof(1) i = 5; i >= 0; i -= 1 )}$1130 ©~=© H is implicit up-to inclusive range [0,H\R{]}. 1131 \begin{cfa} 1132 for ( ®~=® 5 ) $\C{// for ( typeof(5) i; i <= 5; i += 1 )}$ 1133 \end{cfa} 1134 \item 1135 L ©~©\index{~@©~©} H is explicit up-to exclusive range [L,H\R{)}. 1136 \begin{cfa} 1137 for ( 1 ®~® 5 ) $\C{// for ( typeof(1) i = 1; i < 5; i += 1 )}$ 1138 \end{cfa} 1139 \item 1140 L ©~=©\index{~=@©~=©} H is explicit up-to inclusive range [L,H\R{]}. 1141 \begin{cfa} 1142 for ( 1 ®~=® 5 ) $\C{// for ( typeof(1) i = 1; i <= 5; i += 1 )}$ 1143 \end{cfa} 1144 \item 1145 L ©-~©\index{-~@©-~©} H is explicit down-to exclusive range [H,L\R{)}, where L and H are implicitly interchanged to make the range down-to. 1146 \begin{cfa} 1147 for ( 1 ®-~® 5 ) $\C{// for ( typeof(1) i = 5; i > 0; i -= 1 )}$ 1148 \end{cfa} 1149 \item 1150 L ©-~=©\index{-~=@©-~=©} H is explicit down-to inclusive range [H,L\R{]}, where L and H are implicitly interchanged to make the range down-to. 1151 \begin{cfa} 1152 for ( 1 ®-~=® 5 ) $\C{// for ( typeof(1) i = 5; i >= 0; i -= 1 )}$ 1128 1153 \end{cfa} 1129 1154 \item 1130 1155 ©@© means put nothing in this field. 1131 1156 \begin{cfa} 1132 for ( 1~®@®~2 ) $\C{// for ( typeof(1) i = 1; /*empty*/; i += 2 )}$ 1133 \end{cfa} 1134 \item 1135 ©:© means start another index. 1136 \begin{cfa} 1137 for ( i; 5 ®:® j; 2~12~3 ) $\C{// for ( typeof(i) i = 1, j = 2; i < 5 \&\& j < 12; i += 1, j += 3 )}\CRT$ 1157 for ( i; 1 ~ ®@® ~ 2 ) $\C{// for ( typeof(1) i = 1; \R{/* empty */}; i += 2 )}$ 1158 for ( i; 1 ~ 10 ~ ®@® ) $\C{// for ( typeof(1) i = 1; i < 10; \R{/* empty */} )}$ 1159 for ( i; 1 ~ ®@® ~ ®@® ) $\C{// for ( typeof(1) i = 1; /*empty*/; \R{/* empty */} )}$ 1160 \end{cfa} 1161 L cannot be elided for the up-to range, \lstinline{@ ~ 5}, and H for the down-to range, \lstinline{1 -~ @}, because then the loop index is uninitialized. 1162 Similarly, the high value cannot be elided is an anonymous loop index (©1 ~ @©), as there is no index to stop the loop. 1163 \item 1164 ©:© means low another index. 1165 \begin{cfa} 1166 for ( i; 5 ®:® j; 2 ~ 12 ~ 3 ) $\C{// for ( typeof(i) i = 1, j = 2; i < 5 \&\& j < 12; i += 1, j += 3 )}$ 1138 1167 \end{cfa} 1139 1168 \end{itemize} 1169 \R{Warning}: specifying the down-to range maybe unexcepted because the loop control \emph{implicitly} switches the L and H values (and toggles the increment/decrement for I): 1170 \begin{cfa} 1171 for ( i; 1 ~ 10 ) ${\C[1.5in]{// up range}$ 1172 for ( i; 1 -~ 10 ) ${\C{// down range}$ 1173 for ( i; ®10 -~ 1® ) ${\C{// \R{WRONG down range!}}\CRT}$ 1174 \end{cfa} 1175 The reason for this sematics is that the range direction can be toggled by adding/removing the minus, ©'-'©, versus interchanging the L and H expressions, which has a greater chance of introducing errors. 1140 1176 1141 1177 … … 4794 4830 int id; 4795 4831 float size; 4796 Parts * optionalParts;4832 int * optionalint; 4797 4833 }; 4798 4834 … … 4801 4837 // Subsequent arguments can be specified for initialization 4802 4838 4803 void ?{}( Widget &w) { // default constructor4839 void ?{}( Widget & w ) { $\C{// default constructor}$ 4804 4840 w.id = -1; 4805 4841 w.size = 0.0; 4806 w.optional Parts = 0;4842 w.optionalint = 0p; 4807 4843 } 4808 4844 4809 4845 // constructor with values (does not need to include all fields) 4810 void ?{}( Widget &w, int id, float size) {4846 void ?{}( Widget & w, int id, float size ) { 4811 4847 w.id = id; 4812 4848 w.size = size; 4813 w.optional Parts = 0;4814 } 4815 4816 // ^? is the destructor operator identifier4817 void ^? (Widget &w) { // destructor4849 w.optionalint = 0p; 4850 } 4851 4852 // ^?{} is the destructor operator identifier 4853 void ^?{}( Widget & w ) { $\C{// destructor}$ 4818 4854 w.id = 0; 4819 4855 w.size = 0.0; 4820 if (w.optionalParts != 0) { 4821 // This is the only pointer to optionalParts, free it 4822 free(w.optionalParts); 4823 w.optionalParts = 0; 4856 if ( w.optionalint != 0p ) { 4857 free( w.optionalint ); 4858 w.optionalint = 0p; 4824 4859 } 4825 4860 } 4826 4861 4827 Widget baz; // reserve space only 4828 Widget foo{}; // calls default constructor 4829 Widget bar{23, 2.45}; // calls constructor with values 4830 baz{24, 0.91}; // calls constructor with values 4831 ?{}(baz, 24, 0.91}; // explicit call to constructor 4832 ^bar; // explicit call to destructor 4833 ^?(bar); // explicit call to destructor 4862 Widget baz; $\C{// reserve space only}$ 4863 Widget foo{}; $\C{// calls default constructor}$ 4864 Widget bar{ 23, 2.45 }; $\C{// calls constructor with values}$ 4865 baz{ 24, 0.91 }; $\C{// calls constructor with values}$ 4866 ?{}( baz, 24, 0.91 ); $\C{// explicit call to constructor}$ 4867 ^?{} (bar ); $\C{// explicit call to destructor}$ 4834 4868 \end{cfa} 4835 4869 \caption{Constructors and Destructors} -
driver/Makefile.am
r12df6fe r4520b77e 19 19 20 20 # applies to both programs 21 AM_CXXFLAGS = @HOST_FLAGS@ -Wall -Wextra -Werror=return-type -O2 -g -std=c++1 4-I${abs_top_srcdir}/src -I${abs_top_srcdir}/src/include21 AM_CXXFLAGS = @HOST_FLAGS@ -Wall -Wextra -Werror=return-type -O2 -g -std=c++17 -I${abs_top_srcdir}/src -I${abs_top_srcdir}/src/include 22 22 23 23 # don't install cfa directly -
driver/cfa.cc
r12df6fe r4520b77e 53 53 return arg.substr( 0, pre.size() ) == pre; 54 54 } // prefix 55 56 static inline bool ends_with(const string & str, const string & sfix) {57 if (sfix.size() > str.size()) return false;58 return std::equal(str.rbegin(), str.rbegin() + sfix.size(), sfix.rbegin(), sfix.rend());59 }60 55 61 56 // check if string has suffix -
libcfa/prelude/Makefile.am
r12df6fe r4520b77e 50 50 51 51 prelude.cfa : prelude-gen.cc 52 ${AM_V_GEN}${CXX} ${AM_CXXFLAGS} ${CXXFLAGS} ${AM_CFLAGS} ${<} -o prelude-gen -Wall -Wextra -O2 -g -std=c++1 452 ${AM_V_GEN}${CXX} ${AM_CXXFLAGS} ${CXXFLAGS} ${AM_CFLAGS} ${<} -o prelude-gen -Wall -Wextra -O2 -g -std=c++17 53 53 @./prelude-gen > ${@} 54 54 @rm ./prelude-gen … … 76 76 77 77 if ENABLE_DISTCC 78 distribution: @LOCAL_CFACC@ @LOCAL_CC1@ @CFACPP@ gcc-builtins.cf builtins.cf extras.cf prelude.cfa bootloader.c $(srcdir)/../../tools/build/push2dist.sh78 distribution: @LOCAL_CFACC@ @LOCAL_CC1@ @CFACPP@ defines.hfa gcc-builtins.cf builtins.cf extras.cf prelude.cfa bootloader.c $(srcdir)/../../tools/build/push2dist.sh 79 79 ${AM_V_GEN}$(srcdir)/../../tools/build/push2dist.sh @CFADIR_HASH@ @DIST_BWLIMIT@ 80 80 @echo "Dummy file to track distribution to remote hosts" > ${@} -
libcfa/prelude/defines.hfa.in
r12df6fe r4520b77e 141 141 142 142 /* Defined if io_uring support is present when compiling libcfathread and 143 supports the flag IORING_REGISTER_IOWQ_MAX_WORKERS. */ 144 #undef CFA_HAVE_IORING_REGISTER_IOWQ_MAX_WORKERS 145 146 /* Defined if io_uring support is present when compiling libcfathread and 143 147 supports the flag IORING_SETUP_ATTACH_WQ. */ 144 148 #undef CFA_HAVE_IORING_SETUP_ATTACH_WQ -
libcfa/src/Makefile.am
r12df6fe r4520b77e 186 186 if ENABLE_DISTCC 187 187 188 ../prelude/distribution: @LOCAL_CFACC@ @LOCAL_CC1@ @CFACPP@ ../prelude/ gcc-builtins.cf ../prelude/builtins.cf ../prelude/extras.cf ../prelude/prelude.cfa ../prelude/bootloader.c $(srcdir)/../../tools/build/push2dist.sh188 ../prelude/distribution: @LOCAL_CFACC@ @LOCAL_CC1@ @CFACPP@ ../prelude/defines.hfa ../prelude/gcc-builtins.cf ../prelude/builtins.cf ../prelude/extras.cf ../prelude/prelude.cfa ../prelude/bootloader.c $(srcdir)/../../tools/build/push2dist.sh 189 189 @+make -C ../prelude distribution 190 190 -
libcfa/src/bits/defs.hfa
r12df6fe r4520b77e 24 24 #define likely(x) __builtin_expect(!!(x), 1) 25 25 #define unlikely(x) __builtin_expect(!!(x), 0) 26 #define thread_local _Thread_local27 26 28 27 typedef void (*fptr_t)(); … … 37 36 #endif 38 37 38 39 #if defined(__has_attribute) 40 #if !__has_attribute(__noclone__) 41 #define ATTRIBUTE_NOCLONE 42 #endif 43 #endif 44 #ifndef ATTRIBUTE_NOCLONE 45 #define ATTRIBUTE_NOCLONE __attribute__((__noclone__)) 46 #endif 47 39 48 #define libcfa_public __attribute__((visibility("default"))) 49 #define libcfa_nopreempt __attribute__((section("cfatext_nopreempt"))) __attribute__((__noinline__)) ATTRIBUTE_NOCLONE 50 51 struct __cfa_nopreempt_region { 52 void * start; 53 void * stop; 54 }; 40 55 41 56 #ifdef __cforall -
libcfa/src/bits/locks.hfa
r12df6fe r4520b77e 32 32 extern void disable_interrupts() OPTIONAL_THREAD; 33 33 extern void enable_interrupts( bool poll = true ) OPTIONAL_THREAD; 34 extern bool poll_interrupts() OPTIONAL_THREAD; 34 35 #define __cfaabi_dbg_record_lock(x, y) 35 36 } -
libcfa/src/concurrency/io.cfa
r12df6fe r4520b77e 83 83 }; 84 84 85 static $io_context * __ioarbiter_allocate( $io_arbiter& this, __u32 idxs[], __u32 want );86 static void __ioarbiter_submit( $io_context* , __u32 idxs[], __u32 have, bool lazy );87 static void __ioarbiter_flush ( $io_context& );88 static inline void __ioarbiter_notify( $io_context& ctx );85 static io_context$ * __ioarbiter_allocate( io_arbiter$ & this, __u32 idxs[], __u32 want ); 86 static void __ioarbiter_submit( io_context$ * , __u32 idxs[], __u32 have, bool lazy ); 87 static void __ioarbiter_flush ( io_context$ & ); 88 static inline void __ioarbiter_notify( io_context$ & ctx ); 89 89 //============================================================================================= 90 90 // I/O Polling 91 91 //============================================================================================= 92 static inline unsigned __flush( struct $io_context& );93 static inline __u32 __release_sqes( struct $io_context& );92 static inline unsigned __flush( struct io_context$ & ); 93 static inline __u32 __release_sqes( struct io_context$ & ); 94 94 extern void __kernel_unpark( thread$ * thrd, unpark_hint ); 95 95 96 static void ioring_syscsll( struct $io_context& ctx, unsigned int min_comp, unsigned int flags ) {96 static void ioring_syscsll( struct io_context$ & ctx, unsigned int min_comp, unsigned int flags ) { 97 97 __STATS__( true, io.calls.flush++; ) 98 98 int ret; … … 132 132 } 133 133 134 static bool try_acquire( $io_context* ctx ) __attribute__((nonnull(1))) {134 static bool try_acquire( io_context$ * ctx ) __attribute__((nonnull(1))) { 135 135 /* paranoid */ verify( ! __preemption_enabled() ); 136 136 /* paranoid */ verify( ready_schedule_islocked() ); … … 153 153 } 154 154 155 static bool __cfa_do_drain( $io_context* ctx, cluster * cltr ) __attribute__((nonnull(1, 2))) {155 static bool __cfa_do_drain( io_context$ * ctx, cluster * cltr ) __attribute__((nonnull(1, 2))) { 156 156 /* paranoid */ verify( ! __preemption_enabled() ); 157 157 /* paranoid */ verify( ready_schedule_islocked() ); … … 213 213 214 214 cluster * const cltr = proc->cltr; 215 $io_context* const ctx = proc->io.ctx;215 io_context$ * const ctx = proc->io.ctx; 216 216 /* paranoid */ verify( cltr ); 217 217 /* paranoid */ verify( ctx ); … … 241 241 else { 242 242 const unsigned target = proc->io.target; 243 /* paranoid */ verify( io.tscs[target].t v != ULLONG_MAX );243 /* paranoid */ verify( io.tscs[target].t.tv != ULLONG_MAX ); 244 244 HELP: if(target < ctxs_count) { 245 245 const unsigned long long cutoff = calc_cutoff(ctsc, ctx->cq.id, ctxs_count, io.data, io.tscs, __shard_factor.io); 246 const unsigned long long age = moving_average(ctsc, io.tscs[target].t v, io.tscs[target].ma);246 const unsigned long long age = moving_average(ctsc, io.tscs[target].t.tv, io.tscs[target].t.ma); 247 247 __cfadbg_print_safe(io, "Kernel I/O: Help attempt on %u from %u, age %'llu vs cutoff %'llu, %s\n", target, ctx->cq.id, age, cutoff, age > cutoff ? "yes" : "no"); 248 248 if(age <= cutoff) break HELP; … … 278 278 /* paranoid */ verify( proc->io.ctx ); 279 279 280 $io_context& ctx = *proc->io.ctx;280 io_context$ & ctx = *proc->io.ctx; 281 281 282 282 __ioarbiter_flush( ctx ); … … 312 312 // Allocation 313 313 // for user's convenience fill the sqes from the indexes 314 static inline void __fill(struct io_uring_sqe * out_sqes[], __u32 want, __u32 idxs[], struct $io_context* ctx) {314 static inline void __fill(struct io_uring_sqe * out_sqes[], __u32 want, __u32 idxs[], struct io_context$ * ctx) { 315 315 struct io_uring_sqe * sqes = ctx->sq.sqes; 316 316 for(i; want) { … … 322 322 // Try to directly allocate from the a given context 323 323 // Not thread-safe 324 static inline bool __alloc(struct $io_context* ctx, __u32 idxs[], __u32 want) {324 static inline bool __alloc(struct io_context$ * ctx, __u32 idxs[], __u32 want) { 325 325 __sub_ring_t & sq = ctx->sq; 326 326 const __u32 mask = *sq.mask; … … 349 349 // for convenience, return both the index and the pointer to the sqe 350 350 // sqe == &sqes[idx] 351 struct $io_context* cfa_io_allocate(struct io_uring_sqe * sqes[], __u32 idxs[], __u32 want) libcfa_public {351 struct io_context$ * cfa_io_allocate(struct io_uring_sqe * sqes[], __u32 idxs[], __u32 want) libcfa_public { 352 352 // __cfadbg_print_safe(io, "Kernel I/O : attempting to allocate %u\n", want); 353 353 354 354 disable_interrupts(); 355 355 processor * proc = __cfaabi_tls.this_processor; 356 $io_context* ctx = proc->io.ctx;356 io_context$ * ctx = proc->io.ctx; 357 357 /* paranoid */ verify( __cfaabi_tls.this_processor ); 358 358 /* paranoid */ verify( ctx ); … … 378 378 enable_interrupts(); 379 379 380 $io_arbiter* ioarb = proc->cltr->io.arbiter;380 io_arbiter$ * ioarb = proc->cltr->io.arbiter; 381 381 /* paranoid */ verify( ioarb ); 382 382 383 383 // __cfadbg_print_safe(io, "Kernel I/O : falling back on arbiter for allocation\n"); 384 384 385 struct $io_context* ret = __ioarbiter_allocate(*ioarb, idxs, want);385 struct io_context$ * ret = __ioarbiter_allocate(*ioarb, idxs, want); 386 386 387 387 // __cfadbg_print_safe(io, "Kernel I/O : slow allocation completed from ring %d\n", ret->fd); … … 393 393 //============================================================================================= 394 394 // submission 395 static inline void __submit_only( struct $io_context* ctx, __u32 idxs[], __u32 have) {395 static inline void __submit_only( struct io_context$ * ctx, __u32 idxs[], __u32 have) { 396 396 // We can proceed to the fast path 397 397 // Get the right objects … … 414 414 } 415 415 416 static inline void __submit( struct $io_context* ctx, __u32 idxs[], __u32 have, bool lazy) {416 static inline void __submit( struct io_context$ * ctx, __u32 idxs[], __u32 have, bool lazy) { 417 417 __sub_ring_t & sq = ctx->sq; 418 418 __submit_only(ctx, idxs, have); … … 428 428 } 429 429 430 void cfa_io_submit( struct $io_context* inctx, __u32 idxs[], __u32 have, bool lazy ) __attribute__((nonnull (1))) libcfa_public {430 void cfa_io_submit( struct io_context$ * inctx, __u32 idxs[], __u32 have, bool lazy ) __attribute__((nonnull (1))) libcfa_public { 431 431 // __cfadbg_print_safe(io, "Kernel I/O : attempting to submit %u (%s)\n", have, lazy ? "lazy" : "eager"); 432 432 433 433 disable_interrupts(); 434 __STATS__( true, if(!lazy) io.submit.eagr += 1; ) 434 435 processor * proc = __cfaabi_tls.this_processor; 435 $io_context* ctx = proc->io.ctx;436 io_context$ * ctx = proc->io.ctx; 436 437 /* paranoid */ verify( __cfaabi_tls.this_processor ); 437 438 /* paranoid */ verify( ctx ); … … 464 465 // by io_uring 465 466 // This cannot be done by multiple threads 466 static __u32 __release_sqes( struct $io_context& ctx ) {467 static __u32 __release_sqes( struct io_context$ & ctx ) { 467 468 const __u32 mask = *ctx.sq.mask; 468 469 … … 537 538 } 538 539 539 static $io_context * __ioarbiter_allocate( $io_arbiter& this, __u32 idxs[], __u32 want ) {540 static io_context$ * __ioarbiter_allocate( io_arbiter$ & this, __u32 idxs[], __u32 want ) { 540 541 // __cfadbg_print_safe(io, "Kernel I/O : arbiter allocating\n"); 541 542 … … 556 557 } 557 558 558 static void __ioarbiter_notify( $io_arbiter & this, $io_context* ctx ) {559 static void __ioarbiter_notify( io_arbiter$ & this, io_context$ * ctx ) { 559 560 /* paranoid */ verify( !empty(this.pending.queue) ); 560 561 … … 586 587 } 587 588 588 static void __ioarbiter_notify( $io_context& ctx ) {589 static void __ioarbiter_notify( io_context$ & ctx ) { 589 590 if(!empty( ctx.arbiter->pending )) { 590 591 __ioarbiter_notify( *ctx.arbiter, &ctx ); … … 593 594 594 595 // Simply append to the pending 595 static void __ioarbiter_submit( $io_context* ctx, __u32 idxs[], __u32 have, bool lazy ) {596 static void __ioarbiter_submit( io_context$ * ctx, __u32 idxs[], __u32 have, bool lazy ) { 596 597 __cfadbg_print_safe(io, "Kernel I/O : submitting %u from the arbiter to context %u\n", have, ctx->fd); 597 598 … … 617 618 } 618 619 619 static void __ioarbiter_flush( $io_context& ctx ) {620 static void __ioarbiter_flush( io_context$ & ctx ) { 620 621 if(!empty( ctx.ext_sq )) { 621 622 __STATS__( false, io.flush.external += 1; ) … … 641 642 #if defined(CFA_WITH_IO_URING_IDLE) 642 643 bool __kernel_read(processor * proc, io_future_t & future, iovec & iov, int fd) { 643 $io_context* ctx = proc->io.ctx;644 io_context$ * ctx = proc->io.ctx; 644 645 /* paranoid */ verify( ! __preemption_enabled() ); 645 646 /* paranoid */ verify( proc == __cfaabi_tls.this_processor ); -
libcfa/src/concurrency/io/call.cfa.in
r12df6fe r4520b77e 34 34 #include "kernel.hfa" 35 35 #include "io/types.hfa" 36 #include "stats.hfa" 36 37 37 38 //============================================================================================= … … 74 75 ; 75 76 76 extern struct $io_context* cfa_io_allocate(struct io_uring_sqe * out_sqes[], __u32 out_idxs[], __u32 want) __attribute__((nonnull (1,2)));77 extern void cfa_io_submit( struct $io_context* in_ctx, __u32 in_idxs[], __u32 have, bool lazy ) __attribute__((nonnull (1,2)));77 extern struct io_context$ * cfa_io_allocate(struct io_uring_sqe * out_sqes[], __u32 out_idxs[], __u32 want) __attribute__((nonnull (1,2))); 78 extern void cfa_io_submit( struct io_context$ * in_ctx, __u32 in_idxs[], __u32 have, bool lazy ) __attribute__((nonnull (1,2))); 78 79 #endif 79 80 … … 199 200 __u32 idx; 200 201 struct io_uring_sqe * sqe; 201 struct $io_context * ctx = cfa_io_allocate( &sqe, &idx, 1 ); 202 202 struct io_context$ * ctx = cfa_io_allocate( &sqe, &idx, 1 ); 203 204 memset(sqe, 0, sizeof(*sqe)); 203 205 sqe->opcode = IORING_OP_{op}; 206 sqe->flags = sflags; 204 207 sqe->user_data = (uintptr_t)&future; 205 sqe->flags = sflags; 206 sqe->ioprio = 0; 207 sqe->fd = 0; 208 sqe->off = 0; 209 sqe->addr = 0; 210 sqe->len = 0; 211 sqe->fsync_flags = 0; 212 sqe->__pad2[0] = 0; 213 sqe->__pad2[1] = 0; 214 sqe->__pad2[2] = 0;{body} 208 {body} 215 209 216 210 asm volatile("": : :"memory"); … … 226 220 async_{name}( future, {args}, submit_flags ); 227 221 228 wait( future ); 222 __attribute__((unused)) bool parked; 223 parked = wait( future ); 224 __STATS__(false, if(!parked) io.submit.nblk += 1; ) 229 225 if( future.result < 0 ) {{ 230 226 errno = -future.result; -
libcfa/src/concurrency/io/setup.cfa
r12df6fe r4520b77e 28 28 void ?{}(io_context_params & this) libcfa_public {} 29 29 30 void ?{}( $io_context& this, struct cluster & cl) {}31 void ^?{}( $io_context& this) {}30 void ?{}(io_context$ & this, struct cluster & cl) {} 31 void ^?{}(io_context$ & this) {} 32 32 33 33 void __cfa_io_start( processor * proc ) {} … … 37 37 void __cfa_io_stop ( processor * proc ) {} 38 38 39 $io_arbiter* create(void) { return 0p; }40 void destroy( $io_arbiter*) {}39 io_arbiter$ * create(void) { return 0p; } 40 void destroy(io_arbiter$ *) {} 41 41 42 42 #else … … 105 105 106 106 107 static void __io_uring_setup ( $io_context& this, const io_context_params & params_in, int procfd );108 static void __io_uring_teardown( $io_context& this );109 static void __epoll_register( $io_context& ctx);110 static void __epoll_unregister( $io_context& ctx);111 void __ioarbiter_register( $io_arbiter & mutex, $io_context& ctx );112 void __ioarbiter_unregister( $io_arbiter & mutex, $io_context& ctx );113 114 void ?{}( $io_context& this, processor * proc, struct cluster & cl) {107 static void __io_uring_setup ( io_context$ & this, const io_context_params & params_in, int procfd ); 108 static void __io_uring_teardown( io_context$ & this ); 109 static void __epoll_register(io_context$ & ctx); 110 static void __epoll_unregister(io_context$ & ctx); 111 void __ioarbiter_register( io_arbiter$ & mutex, io_context$ & ctx ); 112 void __ioarbiter_unregister( io_arbiter$ & mutex, io_context$ & ctx ); 113 114 void ?{}(io_context$ & this, processor * proc, struct cluster & cl) { 115 115 /* paranoid */ verify( cl.io.arbiter ); 116 116 this.proc = proc; … … 122 122 } 123 123 124 void ^?{}( $io_context& this) {124 void ^?{}(io_context$ & this) { 125 125 __cfadbg_print_safe(io_core, "Kernel I/O : tearing down io_context %u\n", this.fd); 126 126 … … 129 129 } 130 130 131 static void __io_uring_setup( $io_context& this, const io_context_params & params_in, int procfd ) {131 static void __io_uring_setup( io_context$ & this, const io_context_params & params_in, int procfd ) { 132 132 // Step 1 : call to setup 133 133 struct io_uring_params params; … … 228 228 229 229 #if !defined(CFA_WITH_IO_URING_IDLE) 230 { 230 231 // Step 4 : eventfd 231 // io_uring_register is so f*cking slow on some machine that it232 // will never succeed if preemption isn't hard blocked233 232 __cfadbg_print_safe(io_core, "Kernel I/O : registering %d for completion with ring %d\n", procfd, fd); 234 233 … … 239 238 240 239 __cfadbg_print_safe(io_core, "Kernel I/O : registered %d for completion with ring %d\n", procfd, fd); 241 #endif 240 } 241 #endif 242 243 // TODO: implement a proper version of this. 244 // I have not found a better maximum that works in general but users should be able to configure it 245 // the same way they configure other I/O options 246 // #if defined(CFA_HAVE_IORING_REGISTER_IOWQ_MAX_WORKERS) 247 // { 248 // // Step 5 : max worker count 249 // __cfadbg_print_safe(io_core, "Kernel I/O : lmiting max workers for ring %d\n", fd); 250 251 // unsigned int maxes[2]; 252 // maxes[0] = 64; // max number of bounded workers (Regular files / block) 253 // maxes[1] = 64; // max number of unbounded workers (IOSQE_ASYNC) 254 // int ret = syscall( __NR_io_uring_register, fd, IORING_REGISTER_IOWQ_MAX_WORKERS, maxes, 2); 255 // if (ret < 0) { 256 // abort("KERNEL ERROR: IO_URING MAX WORKER REGISTER - %s\n", strerror(errno)); 257 // } 258 259 // __cfadbg_print_safe(io_core, "Kernel I/O : lmited max workers for ring %d\n", fd); 260 // } 261 // #endif 242 262 243 263 // some paranoid checks … … 257 277 } 258 278 259 static void __io_uring_teardown( $io_context& this ) {279 static void __io_uring_teardown( io_context$ & this ) { 260 280 // Shutdown the io rings 261 281 struct __sub_ring_t & sq = this.sq; … … 300 320 // I/O Context Sleep 301 321 //============================================================================================= 302 // static inline void __epoll_ctl( $io_context& ctx, int op, const char * error) {322 // static inline void __epoll_ctl(io_context$ & ctx, int op, const char * error) { 303 323 // struct epoll_event ev; 304 324 // ev.events = EPOLLIN | EPOLLONESHOT; … … 310 330 // } 311 331 312 // static void __epoll_register( $io_context& ctx) {332 // static void __epoll_register(io_context$ & ctx) { 313 333 // __epoll_ctl(ctx, EPOLL_CTL_ADD, "ADD"); 314 334 // } 315 335 316 // static void __epoll_unregister( $io_context& ctx) {336 // static void __epoll_unregister(io_context$ & ctx) { 317 337 // // Read the current epoch so we know when to stop 318 338 // size_t curr = __atomic_load_n(&iopoll.epoch, __ATOMIC_SEQ_CST); … … 333 353 // } 334 354 335 // void __ioctx_prepare_block( $io_context& ctx) {355 // void __ioctx_prepare_block(io_context$ & ctx) { 336 356 // __cfadbg_print_safe(io_core, "Kernel I/O - epoll : Re-arming io poller %d (%p)\n", ctx.fd, &ctx); 337 357 // __epoll_ctl(ctx, EPOLL_CTL_MOD, "REARM"); … … 342 362 // I/O Context Misc Setup 343 363 //============================================================================================= 344 void ?{}( $io_arbiter& this ) {364 void ?{}( io_arbiter$ & this ) { 345 365 this.pending.empty = true; 346 366 } 347 367 348 void ^?{}( $io_arbiter &this ) {}349 350 $io_arbiter* create(void) {368 void ^?{}( io_arbiter$ & mutex this ) {} 369 370 io_arbiter$ * create(void) { 351 371 return new(); 352 372 } 353 void destroy( $io_arbiter* arbiter) {373 void destroy(io_arbiter$ * arbiter) { 354 374 delete(arbiter); 355 375 } -
libcfa/src/concurrency/io/types.hfa
r12df6fe r4520b77e 33 33 34 34 struct processor; 35 monitor $io_arbiter;35 monitor io_arbiter$; 36 36 37 37 //----------------------------------------------------------------------- … … 125 125 126 126 127 struct __attribute__((aligned( 128))) $io_context{128 $io_arbiter* arbiter;127 struct __attribute__((aligned(64))) io_context$ { 128 io_arbiter$ * arbiter; 129 129 processor * proc; 130 130 … … 137 137 }; 138 138 139 static inline unsigned long long ts( $io_context*& this) {139 static inline unsigned long long ts(io_context$ *& this) { 140 140 const __u32 head = *this->cq.head; 141 141 const __u32 tail = *this->cq.tail; … … 150 150 __u32 * idxs; 151 151 __u32 want; 152 $io_context* ctx;152 io_context$ * ctx; 153 153 }; 154 154 155 struct __attribute__((aligned(128))) $io_arbiter{155 monitor __attribute__((aligned(64))) io_arbiter$ { 156 156 __outstanding_io_queue pending; 157 157 }; … … 186 186 #endif 187 187 188 // void __ioctx_prepare_block( $io_context& ctx);188 // void __ioctx_prepare_block(io_context$ & ctx); 189 189 #endif -
libcfa/src/concurrency/iofwd.hfa
r12df6fe r4520b77e 49 49 50 50 struct cluster; 51 struct $io_context;51 struct io_context$; 52 52 53 53 struct iovec; … … 82 82 //---------- 83 83 // underlying calls 84 extern struct $io_context* cfa_io_allocate(struct io_uring_sqe * out_sqes[], __u32 out_idxs[], __u32 want) __attribute__((nonnull (1,2)));85 extern void cfa_io_submit( struct $io_context* in_ctx, __u32 in_idxs[], __u32 have, bool lazy ) __attribute__((nonnull (1,2)));84 extern struct io_context$ * cfa_io_allocate(struct io_uring_sqe * out_sqes[], __u32 out_idxs[], __u32 want) __attribute__((nonnull (1,2))); 85 extern void cfa_io_submit( struct io_context$ * in_ctx, __u32 in_idxs[], __u32 have, bool lazy ) __attribute__((nonnull (1,2))); 86 86 87 87 //---------- -
libcfa/src/concurrency/kernel.cfa
r12df6fe r4520b77e 305 305 RUNNING: while(true) { 306 306 thrd_dst->preempted = __NO_PREEMPTION; 307 thrd_dst->state = Active;308 307 309 308 // Update global state 310 309 kernelTLS().this_thread = thrd_dst; 310 311 // Update the state after setting this_thread 312 // so that the debugger can find all active threads 313 // in tls storage 314 thrd_dst->state = Active; 311 315 312 316 /* paranoid */ verify( ! __preemption_enabled() ); … … 335 339 /* paranoid */ verify( ! __preemption_enabled() ); 336 340 337 // Reset global state338 kernelTLS().this_thread = 0p;339 340 341 // We just finished running a thread, there are a few things that could have happened. 341 342 // 1 - Regular case : the thread has blocked and now one has scheduled it yet. … … 346 347 347 348 if(unlikely(thrd_dst->preempted != __NO_PREEMPTION)) { 349 // Reset the this_thread now that we know 350 // the state isn't active anymore 351 kernelTLS().this_thread = 0p; 352 348 353 // The thread was preempted, reschedule it and reset the flag 349 354 schedule_thread$( thrd_dst, UNPARK_LOCAL ); … … 352 357 353 358 if(unlikely(thrd_dst->state == Halting)) { 359 // Reset the this_thread now that we know 360 // the state isn't active anymore 361 kernelTLS().this_thread = 0p; 362 354 363 // The thread has halted, it should never be scheduled/run again 355 364 // finish the thread … … 360 369 /* paranoid */ verify( thrd_dst->state == Active ); 361 370 thrd_dst->state = Blocked; 371 372 // Reset the this_thread now that we know 373 // the state isn't active anymore 374 kernelTLS().this_thread = 0p; 362 375 363 376 // set state of processor coroutine to active and the thread to inactive -
libcfa/src/concurrency/kernel.hfa
r12df6fe r4520b77e 35 35 // I/O 36 36 struct cluster; 37 struct $io_context;38 struct $io_arbiter;37 struct io_context$; 38 struct io_arbiter$; 39 39 40 40 struct io_context_params { … … 83 83 84 84 // Wrapper around kernel threads 85 struct __attribute__((aligned( 128))) processor {85 struct __attribute__((aligned(64))) processor { 86 86 // Cluster from which to get threads 87 87 struct cluster * cltr; … … 113 113 114 114 struct { 115 $io_context* ctx;115 io_context$ * ctx; 116 116 unsigned target; 117 117 volatile bool pending; … … 171 171 172 172 // Intrusives lanes which are used by the ready queue 173 struct __attribute__((aligned(128))) __intrusive_lane_t;173 union __attribute__((aligned(64))) __intrusive_lane_t; 174 174 void ?{}(__intrusive_lane_t & this); 175 175 void ^?{}(__intrusive_lane_t & this); 176 176 177 177 // Aligned timestamps which are used by the ready queue and io subsystem 178 struct __attribute__((aligned(128))) __timestamp_t { 179 volatile unsigned long long tv; 180 volatile unsigned long long ma; 181 }; 182 183 static inline void ?{}(__timestamp_t & this) { this.tv = 0; this.ma = 0; } 178 union __attribute__((aligned(64))) __timestamp_t { 179 struct { 180 volatile unsigned long long tv; 181 volatile unsigned long long ma; 182 } t; 183 char __padding[192]; 184 }; 185 186 static inline void ?{}(__timestamp_t & this) { this.t.tv = 0; this.t.ma = 0; } 184 187 static inline void ^?{}(__timestamp_t &) {} 185 188 … … 212 215 //----------------------------------------------------------------------------- 213 216 // Cluster 214 struct __attribute__((aligned( 128))) cluster {217 struct __attribute__((aligned(64))) cluster { 215 218 struct { 216 219 struct { … … 227 230 struct { 228 231 // Array of $io_ 229 $io_context** data;232 io_context$ ** data; 230 233 231 234 // Time since subqueues were processed … … 264 267 265 268 struct { 266 $io_arbiter* arbiter;269 io_arbiter$ * arbiter; 267 270 io_context_params params; 268 271 } io; -
libcfa/src/concurrency/kernel/cluster.cfa
r12df6fe r4520b77e 93 93 //======================================================================= 94 94 void ?{}(__scheduler_RWLock_t & this) { 95 this. max = __max_processors();96 this. alloc = 0;97 this. ready = 0;98 this. data = alloc(this.max);99 this. write_lock = false;100 101 /*paranoid*/ verify(__atomic_is_lock_free(sizeof(this. alloc), &this.alloc));102 /*paranoid*/ verify(__atomic_is_lock_free(sizeof(this. ready), &this.ready));95 this.lock.max = __max_processors(); 96 this.lock.alloc = 0; 97 this.lock.ready = 0; 98 this.lock.data = alloc(this.lock.max); 99 this.lock.write_lock = false; 100 101 /*paranoid*/ verify(__atomic_is_lock_free(sizeof(this.lock.alloc), &this.lock.alloc)); 102 /*paranoid*/ verify(__atomic_is_lock_free(sizeof(this.lock.ready), &this.lock.ready)); 103 103 104 104 } 105 105 void ^?{}(__scheduler_RWLock_t & this) { 106 free(this. data);106 free(this.lock.data); 107 107 } 108 108 … … 110 110 //======================================================================= 111 111 // Lock-Free registering/unregistering of threads 112 unsigned register_proc_id( void ) with( *__scheduler_lock) {112 unsigned register_proc_id( void ) with(__scheduler_lock.lock) { 113 113 __kernel_rseq_register(); 114 114 … … 132 132 } 133 133 134 if(max <= alloc) abort("Trying to create more than %ud processors", __scheduler_lock ->max);134 if(max <= alloc) abort("Trying to create more than %ud processors", __scheduler_lock.lock.max); 135 135 136 136 // Step - 2 : F&A to get a new spot in the array. 137 137 uint_fast32_t n = __atomic_fetch_add(&alloc, 1, __ATOMIC_SEQ_CST); 138 if(max <= n) abort("Trying to create more than %ud processors", __scheduler_lock ->max);138 if(max <= n) abort("Trying to create more than %ud processors", __scheduler_lock.lock.max); 139 139 140 140 // Step - 3 : Mark space as used and then publish it. … … 154 154 } 155 155 156 void unregister_proc_id( unsigned id ) with( *__scheduler_lock) {156 void unregister_proc_id( unsigned id ) with(__scheduler_lock.lock) { 157 157 /* paranoid */ verify(id < ready); 158 158 /* paranoid */ verify(id == kernelTLS().sched_id); … … 169 169 // Writer side : acquire when changing the ready queue, e.g. adding more 170 170 // queues or removing them. 171 uint_fast32_t ready_mutate_lock( void ) with( *__scheduler_lock) {171 uint_fast32_t ready_mutate_lock( void ) with(__scheduler_lock.lock) { 172 172 /* paranoid */ verify( ! __preemption_enabled() ); 173 173 … … 196 196 } 197 197 198 void ready_mutate_unlock( uint_fast32_t last_s ) with( *__scheduler_lock) {198 void ready_mutate_unlock( uint_fast32_t last_s ) with(__scheduler_lock.lock) { 199 199 /* paranoid */ verify( ! __preemption_enabled() ); 200 200 … … 229 229 for( idx ; lanes_count ) { 230 230 __intrusive_lane_t & sl = readyQ.data[idx]; 231 assert(!readyQ.data[idx].l ock);231 assert(!readyQ.data[idx].l.lock); 232 232 233 233 if(is_empty(sl)) { 234 assert( sl. anchor.next == 0p );235 assert( sl. anchor.ts == MAX );236 assert( mock_head(sl) == sl. prev );234 assert( sl.l.anchor.next == 0p ); 235 assert( sl.l.anchor.ts == MAX ); 236 assert( mock_head(sl) == sl.l.prev ); 237 237 } else { 238 assert( sl. anchor.next != 0p );239 assert( sl. anchor.ts != MAX );240 assert( mock_head(sl) != sl. prev );238 assert( sl.l.anchor.next != 0p ); 239 assert( sl.l.anchor.ts != MAX ); 240 assert( mock_head(sl) != sl.l.prev ); 241 241 } 242 242 } … … 249 249 static inline void fix(__intrusive_lane_t & ll) { 250 250 if(is_empty(ll)) { 251 verify(ll. anchor.next == 0p);252 ll. prev = mock_head(ll);251 verify(ll.l.anchor.next == 0p); 252 ll.l.prev = mock_head(ll); 253 253 } 254 254 } … … 278 278 279 279 #if defined(CFA_HAVE_LINUX_IO_URING_H) 280 static void assign_io( $io_context** data, size_t count, dlist(processor) & list) {280 static void assign_io(io_context$ ** data, size_t count, dlist(processor) & list) { 281 281 processor * it = &list`first; 282 282 while(it) { … … 299 299 tscs = alloc(count, tscs`realloc); 300 300 for(i; count) { 301 tscs[i].t v = rdtscl();302 tscs[i]. ma = 0;301 tscs[i].t.tv = rdtscl(); 302 tscs[i].t.ma = 0; 303 303 } 304 304 } … … 400 400 for( idx; ncount ~ ocount) { 401 401 // Lock is not strictly needed but makes checking invariants much easier 402 __attribute__((unused)) bool locked = __atomic_try_acquire(&readyQ.data[idx].l ock);402 __attribute__((unused)) bool locked = __atomic_try_acquire(&readyQ.data[idx].l.lock); 403 403 verify(locked); 404 404 … … 418 418 419 419 // Unlock the lane 420 __atomic_unlock(&readyQ.data[idx].l ock);420 __atomic_unlock(&readyQ.data[idx].l.lock); 421 421 422 422 // TODO print the queue statistics here … … 467 467 } 468 468 469 #define nested_offsetof(type, field) ((off_t)(&(((type*)0)-> field))) 470 469 471 // Ctor 470 472 void ?{}( __intrusive_lane_t & this ) { 471 this.l ock = false;472 this. prev = mock_head(this);473 this. anchor.next = 0p;474 this. anchor.ts = MAX;473 this.l.lock = false; 474 this.l.prev = mock_head(this); 475 this.l.anchor.next = 0p; 476 this.l.anchor.ts = MAX; 475 477 #if !defined(__CFA_NO_STATISTICS__) 476 this. cnt = 0;478 this.l.cnt = 0; 477 479 #endif 478 480 479 481 // We add a boat-load of assertions here because the anchor code is very fragile 480 /* paranoid */ _Static_assert( offsetof( thread$, link ) == offsetof(__intrusive_lane_t,anchor) );481 /* paranoid */ verify( offsetof( thread$, link ) == offsetof(__intrusive_lane_t,anchor) );482 /* paranoid */ verify( ((uintptr_t)( mock_head(this) ) + offsetof( thread$, link )) == (uintptr_t)(&this. anchor) );483 /* paranoid */ verify( &mock_head(this)->link.next == &this. anchor.next );484 /* paranoid */ verify( &mock_head(this)->link.ts == &this. anchor.ts );482 /* paranoid */ _Static_assert( offsetof( thread$, link ) == nested_offsetof(__intrusive_lane_t, l.anchor) ); 483 /* paranoid */ verify( offsetof( thread$, link ) == nested_offsetof(__intrusive_lane_t, l.anchor) ); 484 /* paranoid */ verify( ((uintptr_t)( mock_head(this) ) + offsetof( thread$, link )) == (uintptr_t)(&this.l.anchor) ); 485 /* paranoid */ verify( &mock_head(this)->link.next == &this.l.anchor.next ); 486 /* paranoid */ verify( &mock_head(this)->link.ts == &this.l.anchor.ts ); 485 487 /* paranoid */ verify( mock_head(this)->link.next == 0p ); 486 488 /* paranoid */ verify( mock_head(this)->link.ts == MAX ); 487 /* paranoid */ verify( mock_head(this) == this.prev ); 488 /* paranoid */ verify( __alignof__(__intrusive_lane_t) == 128 ); 489 /* paranoid */ verify( __alignof__(this) == 128 ); 490 /* paranoid */ verifyf( ((intptr_t)(&this) % 128) == 0, "Expected address to be aligned %p %% 128 == %zd", &this, ((intptr_t)(&this) % 128) ); 491 } 489 /* paranoid */ verify( mock_head(this) == this.l.prev ); 490 /* paranoid */ verify( __alignof__(__intrusive_lane_t) == 64 ); 491 /* paranoid */ verify( __alignof__(this) == 64 ); 492 /* paranoid */ verifyf( ((intptr_t)(&this) % 64) == 0, "Expected address to be aligned %p %% 64 == %zd", &this, ((intptr_t)(&this) % 64) ); 493 } 494 495 #undef nested_offsetof 492 496 493 497 // Dtor is trivial 494 498 void ^?{}( __intrusive_lane_t & this ) { 495 499 // Make sure the list is empty 496 /* paranoid */ verify( this. anchor.next == 0p );497 /* paranoid */ verify( this. anchor.ts == MAX );498 /* paranoid */ verify( mock_head(this) == this.prev );500 /* paranoid */ verify( this.l.anchor.next == 0p ); 501 /* paranoid */ verify( this.l.anchor.ts == MAX ); 502 /* paranoid */ verify( mock_head(this) == this.l.prev ); 499 503 } 500 504 -
libcfa/src/concurrency/kernel/cluster.hfa
r12df6fe r4520b77e 24 24 // Calc moving average based on existing average, before and current time. 25 25 static inline unsigned long long moving_average(unsigned long long currtsc, unsigned long long instsc, unsigned long long old_avg) { 26 /* paranoid */ verifyf( currtsc < 45000000000000000, "Suspiciously large current time: %'llu (%llx)\n", currtsc, currtsc );27 /* paranoid */ verifyf( instsc < 45000000000000000, "Suspiciously large insert time: %'llu (%llx)\n", instsc, instsc );28 26 /* paranoid */ verifyf( old_avg < 15000000000000, "Suspiciously large previous average: %'llu (%llx)\n", old_avg, old_avg ); 29 27 … … 39 37 if (ts_next == ULLONG_MAX) return; 40 38 unsigned long long now = rdtscl(); 41 unsigned long long pma = __atomic_load_n(&tscs[ idx ]. ma, __ATOMIC_RELAXED);42 __atomic_store_n(&tscs[ idx ].t v, ts_next, __ATOMIC_RELAXED);43 __atomic_store_n(&tscs[ idx ]. ma, moving_average(now, ts_prev, pma), __ATOMIC_RELAXED);39 unsigned long long pma = __atomic_load_n(&tscs[ idx ].t.ma, __ATOMIC_RELAXED); 40 __atomic_store_n(&tscs[ idx ].t.tv, ts_next, __ATOMIC_RELAXED); 41 __atomic_store_n(&tscs[ idx ].t.ma, moving_average(now, ts_prev, pma), __ATOMIC_RELAXED); 44 42 } 45 43 … … 61 59 if(ptsc != ULLONG_MAX) { 62 60 /* paranoid */ verify( start + i < count ); 63 unsigned long long tsc = moving_average(ctsc, ptsc, tscs[start + i]. ma);61 unsigned long long tsc = moving_average(ctsc, ptsc, tscs[start + i].t.ma); 64 62 if(tsc > max) max = tsc; 65 63 } -
libcfa/src/concurrency/kernel/fwd.hfa
r12df6fe r4520b77e 35 35 extern "C" { 36 36 extern "Cforall" { 37 extern __attribute__((aligned( 128))) thread_localstruct KernelThreadData {37 extern __attribute__((aligned(64))) __thread struct KernelThreadData { 38 38 struct thread$ * volatile this_thread; 39 39 struct processor * volatile this_processor; -
libcfa/src/concurrency/kernel/private.hfa
r12df6fe r4520b77e 88 88 #elif defined(CFA_HAVE_LINUX_RSEQ_H) 89 89 extern "Cforall" { 90 extern __attribute__((aligned( 128))) thread_localvolatile struct rseq __cfaabi_rseq;90 extern __attribute__((aligned(64))) __thread volatile struct rseq __cfaabi_rseq; 91 91 } 92 92 #else … … 139 139 //----------------------------------------------------------------------------- 140 140 // I/O 141 $io_arbiter* create(void);142 void destroy( $io_arbiter*);141 io_arbiter$ * create(void); 142 void destroy(io_arbiter$ *); 143 143 144 144 //======================================================================= … … 161 161 // Blocking acquire 162 162 static inline void __atomic_acquire(volatile bool * ll) { 163 /* paranoid */ verify( ! __preemption_enabled() ); 164 /* paranoid */ verify(ll); 165 163 166 while( __builtin_expect(__atomic_exchange_n(ll, (bool)true, __ATOMIC_SEQ_CST), false) ) { 164 167 while(__atomic_load_n(ll, (int)__ATOMIC_RELAXED)) … … 166 169 } 167 170 /* paranoid */ verify(*ll); 171 /* paranoid */ verify( ! __preemption_enabled() ); 168 172 } 169 173 170 174 // Non-Blocking acquire 171 175 static inline bool __atomic_try_acquire(volatile bool * ll) { 176 /* paranoid */ verify( ! __preemption_enabled() ); 177 /* paranoid */ verify(ll); 178 172 179 return !__atomic_exchange_n(ll, (bool)true, __ATOMIC_SEQ_CST); 173 180 } … … 175 182 // Release 176 183 static inline void __atomic_unlock(volatile bool * ll) { 184 /* paranoid */ verify( ! __preemption_enabled() ); 185 /* paranoid */ verify(ll); 177 186 /* paranoid */ verify(*ll); 178 187 __atomic_store_n(ll, (bool)false, __ATOMIC_RELEASE); … … 184 193 // have been hard-coded to for the ready-queue for 185 194 // simplicity and performance 186 struct __scheduler_RWLock_t { 187 // total cachelines allocated 188 unsigned int max; 189 190 // cachelines currently in use 191 volatile unsigned int alloc; 192 193 // cachelines ready to itereate over 194 // (!= to alloc when thread is in second half of doregister) 195 volatile unsigned int ready; 196 197 // writer lock 198 volatile bool write_lock; 199 200 // data pointer 201 volatile bool * volatile * data; 195 union __attribute__((aligned(64))) __scheduler_RWLock_t { 196 struct { 197 __attribute__((aligned(64))) char padding; 198 199 // total cachelines allocated 200 __attribute__((aligned(64))) unsigned int max; 201 202 // cachelines currently in use 203 volatile unsigned int alloc; 204 205 // cachelines ready to itereate over 206 // (!= to alloc when thread is in second half of doregister) 207 volatile unsigned int ready; 208 209 // writer lock 210 volatile bool write_lock; 211 212 // data pointer 213 volatile bool * volatile * data; 214 } lock; 215 char pad[192]; 202 216 }; 203 217 … … 205 219 void ^?{}(__scheduler_RWLock_t & this); 206 220 207 extern __scheduler_RWLock_t *__scheduler_lock;221 extern __scheduler_RWLock_t __scheduler_lock; 208 222 209 223 //----------------------------------------------------------------------- 210 224 // Reader side : acquire when using the ready queue to schedule but not 211 225 // creating/destroying queues 212 static inline void ready_schedule_lock(void) with( *__scheduler_lock) {226 static inline void ready_schedule_lock(void) with(__scheduler_lock.lock) { 213 227 /* paranoid */ verify( ! __preemption_enabled() ); 214 228 /* paranoid */ verify( ! kernelTLS().in_sched_lock ); … … 235 249 } 236 250 237 static inline void ready_schedule_unlock(void) with( *__scheduler_lock) {251 static inline void ready_schedule_unlock(void) with(__scheduler_lock.lock) { 238 252 /* paranoid */ verify( ! __preemption_enabled() ); 239 253 /* paranoid */ verify( data[kernelTLS().sched_id] == &kernelTLS().sched_lock ); … … 256 270 257 271 static inline bool ready_mutate_islocked() { 258 return __scheduler_lock ->write_lock;272 return __scheduler_lock.lock.write_lock; 259 273 } 260 274 #endif -
libcfa/src/concurrency/kernel/startup.cfa
r12df6fe r4520b77e 113 113 KERNEL_STORAGE(thread$, mainThread); 114 114 KERNEL_STORAGE(__stack_t, mainThreadCtx); 115 KERNEL_STORAGE(__scheduler_RWLock_t, __scheduler_lock);115 // KERNEL_STORAGE(__scheduler_RWLock_t, __scheduler_lock); 116 116 KERNEL_STORAGE(eventfd_t, mainIdleEventFd); 117 117 KERNEL_STORAGE(io_future_t, mainIdleFuture); … … 123 123 processor * mainProcessor; 124 124 thread$ * mainThread; 125 __scheduler_RWLock_t * __scheduler_lock;126 125 127 126 extern "C" { … … 134 133 //----------------------------------------------------------------------------- 135 134 // Global state 136 thread_localstruct KernelThreadData __cfaabi_tls __attribute__ ((tls_model ( "initial-exec" ))) @= {135 __thread struct KernelThreadData __cfaabi_tls __attribute__ ((tls_model ( "initial-exec" ))) @= { 137 136 NULL, // cannot use 0p 138 137 NULL, … … 148 147 }; 149 148 149 __scheduler_RWLock_t __scheduler_lock @= { 0 }; 150 150 151 #if defined(CFA_HAVE_LINUX_LIBRSEQ) 151 152 // No data needed 152 153 #elif defined(CFA_HAVE_LINUX_RSEQ_H) 153 154 extern "Cforall" { 154 __attribute__((aligned( 128))) thread_localvolatile struct rseq __cfaabi_rseq @= {155 __attribute__((aligned(64))) __thread volatile struct rseq __cfaabi_rseq @= { 155 156 .cpu_id : RSEQ_CPU_ID_UNINITIALIZED, 156 157 }; … … 198 199 199 200 // Initialize the global scheduler lock 200 __scheduler_lock = (__scheduler_RWLock_t*)&storage___scheduler_lock;201 ( *__scheduler_lock){};201 // __scheduler_lock = (__scheduler_RWLock_t*)&storage___scheduler_lock; 202 (__scheduler_lock){}; 202 203 203 204 // Initialize the main cluster … … 336 337 ^(*mainCluster){}; 337 338 338 ^( *__scheduler_lock){};339 ^(__scheduler_lock){}; 339 340 340 341 ^(__cfa_dbg_global_clusters.list){}; -
libcfa/src/concurrency/preemption.cfa
r12df6fe r4520b77e 238 238 //---------- 239 239 // special case for preemption since used often 240 __attribute__((optimize("no-reorder-blocks"))) bool __preemption_enabled() libcfa_ public {240 __attribute__((optimize("no-reorder-blocks"))) bool __preemption_enabled() libcfa_nopreempt libcfa_public { 241 241 // create a assembler label before 242 242 // marked as clobber all to avoid movement … … 272 272 } 273 273 274 extern "C" { 275 __attribute__((visibility("hidden"))) extern void * const __start_cfatext_nopreempt; 276 __attribute__((visibility("hidden"))) extern void * const __stop_cfatext_nopreempt; 277 278 extern const __cfa_nopreempt_region __libcfa_nopreempt; 279 __attribute__((visibility("protected"))) const __cfa_nopreempt_region __libcfathrd_nopreempt @= { 280 (void * const)&__start_cfatext_nopreempt, 281 (void * const)&__stop_cfatext_nopreempt 282 }; 283 } 284 285 static inline bool __cfaabi_in( void * const ip, const struct __cfa_nopreempt_region & const region ) { 286 return ip >= region.start && ip <= region.stop; 287 } 288 274 289 275 290 //---------- 276 291 // Get data from the TLS block 277 292 // struct asm_region __cfaasm_get; 278 uintptr_t __cfatls_get( unsigned long int offset ) __attribute__((__noinline__, visibility("default"))); //no inline to avoid problems293 uintptr_t __cfatls_get( unsigned long int offset ) libcfa_nopreempt libcfa_public; //no inline to avoid problems 279 294 uintptr_t __cfatls_get( unsigned long int offset ) { 280 295 // create a assembler label before … … 295 310 extern "C" { 296 311 // Disable interrupts by incrementing the counter 297 __attribute__((__noinline__, visibility("default"))) void disable_interrupts()libcfa_public {312 void disable_interrupts() libcfa_nopreempt libcfa_public { 298 313 // create a assembler label before 299 314 // marked as clobber all to avoid movement … … 326 341 // Enable interrupts by decrementing the counter 327 342 // If counter reaches 0, execute any pending __cfactx_switch 328 void enable_interrupts( bool poll ) libcfa_ public {343 void enable_interrupts( bool poll ) libcfa_nopreempt libcfa_public { 329 344 // Cache the processor now since interrupts can start happening after the atomic store 330 345 processor * proc = __cfaabi_tls.this_processor; … … 358 373 } 359 374 } 375 376 // Check whether or not there is pending preemption 377 // force_yield( __POLL_PREEMPTION ) if appropriate 378 // return true if the thread was in an interruptable state 379 // i.e. on a real processor and not in the kernel 380 // (can return true even if no preemption was pending) 381 bool poll_interrupts() libcfa_public { 382 // Cache the processor now since interrupts can start happening after the atomic store 383 processor * proc = publicTLS_get( this_processor ); 384 if ( ! proc ) return false; 385 if ( ! __preemption_enabled() ) return false; 386 387 with( __cfaabi_tls.preemption_state ){ 388 // Signal the compiler that a fence is needed but only for signal handlers 389 __atomic_signal_fence(__ATOMIC_RELEASE); 390 if( proc->pending_preemption ) { 391 proc->pending_preemption = false; 392 force_yield( __POLL_PREEMPTION ); 393 } 394 } 395 396 return true; 397 } 360 398 } 361 399 … … 463 501 464 502 //----------------------------------------------------------------------------- 465 // Some assembly required466 #if defined( __i386 )467 #ifdef __PIC__468 #define RELOC_PRELUDE( label ) \469 "calll .Lcfaasm_prelude_" #label "$pb\n\t" \470 ".Lcfaasm_prelude_" #label "$pb:\n\t" \471 "popl %%eax\n\t" \472 ".Lcfaasm_prelude_" #label "_end:\n\t" \473 "addl $_GLOBAL_OFFSET_TABLE_+(.Lcfaasm_prelude_" #label "_end-.Lcfaasm_prelude_" #label "$pb), %%eax\n\t"474 #define RELOC_PREFIX ""475 #define RELOC_SUFFIX "@GOT(%%eax)"476 #else477 #define RELOC_PREFIX "$"478 #define RELOC_SUFFIX ""479 #endif480 #define __cfaasm_label( label ) struct asm_region label = \481 ({ \482 struct asm_region region; \483 asm( \484 RELOC_PRELUDE( label ) \485 "movl " RELOC_PREFIX "__cfaasm_" #label "_before" RELOC_SUFFIX ", %[vb]\n\t" \486 "movl " RELOC_PREFIX "__cfaasm_" #label "_after" RELOC_SUFFIX ", %[va]\n\t" \487 : [vb]"=r"(region.before), [va]"=r"(region.after) \488 ); \489 region; \490 });491 #elif defined( __x86_64 )492 #ifdef __PIC__493 #define RELOC_PREFIX ""494 #define RELOC_SUFFIX "@GOTPCREL(%%rip)"495 #else496 #define RELOC_PREFIX "$"497 #define RELOC_SUFFIX ""498 #endif499 #define __cfaasm_label( label ) struct asm_region label = \500 ({ \501 struct asm_region region; \502 asm( \503 "movq " RELOC_PREFIX "__cfaasm_" #label "_before" RELOC_SUFFIX ", %[vb]\n\t" \504 "movq " RELOC_PREFIX "__cfaasm_" #label "_after" RELOC_SUFFIX ", %[va]\n\t" \505 : [vb]"=r"(region.before), [va]"=r"(region.after) \506 ); \507 region; \508 });509 #elif defined( __aarch64__ )510 #ifdef __PIC__511 // Note that this works only for gcc512 #define __cfaasm_label( label ) struct asm_region label = \513 ({ \514 struct asm_region region; \515 asm( \516 "adrp %[vb], _GLOBAL_OFFSET_TABLE_" "\n\t" \517 "ldr %[vb], [%[vb], #:gotpage_lo15:__cfaasm_" #label "_before]" "\n\t" \518 "adrp %[va], _GLOBAL_OFFSET_TABLE_" "\n\t" \519 "ldr %[va], [%[va], #:gotpage_lo15:__cfaasm_" #label "_after]" "\n\t" \520 : [vb]"=r"(region.before), [va]"=r"(region.after) \521 ); \522 region; \523 });524 #else525 #error this is not the right thing to do526 /*527 #define __cfaasm_label( label ) struct asm_region label = \528 ({ \529 struct asm_region region; \530 asm( \531 "adrp %[vb], __cfaasm_" #label "_before" "\n\t" \532 "add %[vb], %[vb], :lo12:__cfaasm_" #label "_before" "\n\t" \533 "adrp %[va], :got:__cfaasm_" #label "_after" "\n\t" \534 "add %[va], %[va], :lo12:__cfaasm_" #label "_after" "\n\t" \535 : [vb]"=r"(region.before), [va]"=r"(region.after) \536 ); \537 region; \538 });539 */540 #endif541 #else542 #error unknown hardware architecture543 #endif544 545 503 // KERNEL ONLY 546 504 // Check if a __cfactx_switch signal handler shoud defer … … 548 506 // If false : preemption is unsafe and marked as pending 549 507 static inline bool preemption_ready( void * ip ) { 550 // Get all the region for which it is not safe to preempt551 __cfaasm_label( get );552 __cfaasm_label( check );553 __cfaasm_label( dsable );554 // __cfaasm_label( debug );555 556 508 // Check if preemption is safe 557 509 bool ready = true; 558 if( __cfaasm_in( ip, get ) ) { ready = false; goto EXIT; }; 559 if( __cfaasm_in( ip, check ) ) { ready = false; goto EXIT; }; 560 if( __cfaasm_in( ip, dsable ) ) { ready = false; goto EXIT; }; 561 // if( __cfaasm_in( ip, debug ) ) { ready = false; goto EXIT; }; 510 if( __cfaabi_in( ip, __libcfa_nopreempt ) ) { ready = false; goto EXIT; }; 511 if( __cfaabi_in( ip, __libcfathrd_nopreempt ) ) { ready = false; goto EXIT; }; 512 562 513 if( !__cfaabi_tls.preemption_state.enabled) { ready = false; goto EXIT; }; 563 514 if( __cfaabi_tls.preemption_state.in_progress ) { ready = false; goto EXIT; }; … … 643 594 // Kernel Signal Handlers 644 595 //============================================================================================= 645 __cfaabi_dbg_debug_do( static thread_localvoid * last_interrupt = 0; )596 __cfaabi_dbg_debug_do( static __thread void * last_interrupt = 0; ) 646 597 647 598 // Context switch signal handler -
libcfa/src/concurrency/ready_queue.cfa
r12df6fe r4520b77e 81 81 /* paranoid */ verify( i < lanes_count ); 82 82 // If we can't lock it retry 83 } while( !__atomic_try_acquire( &readyQ.data[i].l ock ) );83 } while( !__atomic_try_acquire( &readyQ.data[i].l.lock ) ); 84 84 } else { 85 85 do { 86 86 i = __tls_rand() % lanes_count; 87 } while( !__atomic_try_acquire( &readyQ.data[i].l ock ) );87 } while( !__atomic_try_acquire( &readyQ.data[i].l.lock ) ); 88 88 } 89 89 } else { … … 93 93 /* paranoid */ verify( i < lanes_count ); 94 94 // If we can't lock it retry 95 } while( !__atomic_try_acquire( &readyQ.data[i].l ock ) );95 } while( !__atomic_try_acquire( &readyQ.data[i].l.lock ) ); 96 96 } 97 97 … … 100 100 101 101 // Unlock and return 102 __atomic_unlock( &readyQ.data[i].l ock );102 __atomic_unlock( &readyQ.data[i].l.lock ); 103 103 104 104 #if !defined(__CFA_NO_STATISTICS__) … … 136 136 else { 137 137 const unsigned target = proc->rdq.target; 138 __cfadbg_print_safe(ready_queue, "Kernel : %u considering helping %u, tcsc %llu\n", this, target, readyQ.tscs[target].t v);139 /* paranoid */ verify( readyQ.tscs[target].t v != ULLONG_MAX );138 __cfadbg_print_safe(ready_queue, "Kernel : %u considering helping %u, tcsc %llu\n", this, target, readyQ.tscs[target].t.tv); 139 /* paranoid */ verify( readyQ.tscs[target].t.tv != ULLONG_MAX ); 140 140 if(target < lanes_count) { 141 141 const unsigned long long cutoff = calc_cutoff(ctsc, proc->rdq.id, lanes_count, cltr->sched.readyQ.data, cltr->sched.readyQ.tscs, __shard_factor.readyq); 142 const unsigned long long age = moving_average(ctsc, readyQ.tscs[target].t v, readyQ.tscs[target].ma);142 const unsigned long long age = moving_average(ctsc, readyQ.tscs[target].t.tv, readyQ.tscs[target].t.ma); 143 143 __cfadbg_print_safe(ready_queue, "Kernel : Help attempt on %u from %u, age %'llu vs cutoff %'llu, %s\n", target, this, age, cutoff, age > cutoff ? "yes" : "no"); 144 144 if(age > cutoff) { … … 188 188 189 189 // If we can't get the lock retry 190 if( !__atomic_try_acquire(&lane.l ock) ) {190 if( !__atomic_try_acquire(&lane.l.lock) ) { 191 191 return 0p; 192 192 } … … 194 194 // If list is empty, unlock and retry 195 195 if( is_empty(lane) ) { 196 __atomic_unlock(&lane.l ock);196 __atomic_unlock(&lane.l.lock); 197 197 return 0p; 198 198 } … … 206 206 /* paranoid */ verify(thrd); 207 207 /* paranoid */ verify(ts_next); 208 /* paranoid */ verify(lane.l ock);208 /* paranoid */ verify(lane.l.lock); 209 209 210 210 // Unlock and return 211 __atomic_unlock(&lane.l ock);211 __atomic_unlock(&lane.l.lock); 212 212 213 213 // Update statistics -
libcfa/src/concurrency/ready_subqueue.hfa
r12df6fe r4520b77e 6 6 7 7 // Intrusives lanes which are used by the relaxed ready queue 8 struct __attribute__((aligned(128))) __intrusive_lane_t { 9 struct thread$ * prev; 8 union __attribute__((aligned(64))) __intrusive_lane_t { 9 struct { 10 struct thread$ * prev; 10 11 11 // spin lock protecting the queue12 volatile bool lock;12 // spin lock protecting the queue 13 volatile bool lock; 13 14 14 __thread_desc_link anchor;15 __thread_desc_link anchor; 15 16 16 #if !defined(__CFA_NO_STATISTICS__) 17 unsigned cnt; 18 #endif 17 #if !defined(__CFA_NO_STATISTICS__) 18 unsigned cnt; 19 #endif 20 } l; 21 char __padding[192]; 19 22 }; 20 23 … … 22 25 static inline thread$ * mock_head(const __intrusive_lane_t & this) { 23 26 thread$ * rhead = (thread$ *)( 24 (uintptr_t)( &this. anchor ) - __builtin_offsetof( thread$, link )27 (uintptr_t)( &this.l.anchor ) - __builtin_offsetof( thread$, link ) 25 28 ); 26 29 return rhead; … … 30 33 // returns true of lane was empty before push, false otherwise 31 34 static inline void push( __intrusive_lane_t & this, thread$ * node ) { 32 /* paranoid */ verify( this.l ock );35 /* paranoid */ verify( this.l.lock ); 33 36 /* paranoid */ verify( node->link.next == 0p ); 34 37 /* paranoid */ verify( __atomic_load_n(&node->link.ts, __ATOMIC_RELAXED) == MAX ); 35 /* paranoid */ verify( this. prev->link.next == 0p );36 /* paranoid */ verify( __atomic_load_n(&this. prev->link.ts, __ATOMIC_RELAXED) == MAX );37 if( this. anchor.next == 0p ) {38 /* paranoid */ verify( this. anchor.next == 0p );39 /* paranoid */ verify( __atomic_load_n(&this. anchor.ts, __ATOMIC_RELAXED) == MAX );40 /* paranoid */ verify( __atomic_load_n(&this. anchor.ts, __ATOMIC_RELAXED) != 0 );41 /* paranoid */ verify( this. prev == mock_head( this ) );38 /* paranoid */ verify( this.l.prev->link.next == 0p ); 39 /* paranoid */ verify( __atomic_load_n(&this.l.prev->link.ts, __ATOMIC_RELAXED) == MAX ); 40 if( this.l.anchor.next == 0p ) { 41 /* paranoid */ verify( this.l.anchor.next == 0p ); 42 /* paranoid */ verify( __atomic_load_n(&this.l.anchor.ts, __ATOMIC_RELAXED) == MAX ); 43 /* paranoid */ verify( __atomic_load_n(&this.l.anchor.ts, __ATOMIC_RELAXED) != 0 ); 44 /* paranoid */ verify( this.l.prev == mock_head( this ) ); 42 45 } else { 43 /* paranoid */ verify( this. anchor.next != 0p );44 /* paranoid */ verify( __atomic_load_n(&this. anchor.ts, __ATOMIC_RELAXED) != MAX );45 /* paranoid */ verify( __atomic_load_n(&this. anchor.ts, __ATOMIC_RELAXED) != 0 );46 /* paranoid */ verify( this. prev != mock_head( this ) );46 /* paranoid */ verify( this.l.anchor.next != 0p ); 47 /* paranoid */ verify( __atomic_load_n(&this.l.anchor.ts, __ATOMIC_RELAXED) != MAX ); 48 /* paranoid */ verify( __atomic_load_n(&this.l.anchor.ts, __ATOMIC_RELAXED) != 0 ); 49 /* paranoid */ verify( this.l.prev != mock_head( this ) ); 47 50 } 48 51 49 52 // Get the relevant nodes locally 50 this. prev->link.next = node;51 __atomic_store_n(&this. prev->link.ts, rdtscl(), __ATOMIC_RELAXED);52 this. prev = node;53 this.l.prev->link.next = node; 54 __atomic_store_n(&this.l.prev->link.ts, rdtscl(), __ATOMIC_RELAXED); 55 this.l.prev = node; 53 56 #if !defined(__CFA_NO_STATISTICS__) 54 this. cnt++;57 this.l.cnt++; 55 58 #endif 56 59 } … … 60 63 // returns true of lane was empty before push, false otherwise 61 64 static inline [* thread$, unsigned long long] pop( __intrusive_lane_t & this ) { 62 /* paranoid */ verify( this.l ock );63 /* paranoid */ verify( this. anchor.next != 0p );64 /* paranoid */ verify( __atomic_load_n(&this. anchor.ts, __ATOMIC_RELAXED) != MAX );65 /* paranoid */ verify( __atomic_load_n(&this. anchor.ts, __ATOMIC_RELAXED) != 0 );65 /* paranoid */ verify( this.l.lock ); 66 /* paranoid */ verify( this.l.anchor.next != 0p ); 67 /* paranoid */ verify( __atomic_load_n(&this.l.anchor.ts, __ATOMIC_RELAXED) != MAX ); 68 /* paranoid */ verify( __atomic_load_n(&this.l.anchor.ts, __ATOMIC_RELAXED) != 0 ); 66 69 67 70 // Get the relevant nodes locally 68 thread$ * node = this. anchor.next;69 this. anchor.next = node->link.next;70 __atomic_store_n(&this. anchor.ts, __atomic_load_n(&node->link.ts, __ATOMIC_RELAXED), __ATOMIC_RELAXED);71 bool is_empty = this. anchor.next == 0p;71 thread$ * node = this.l.anchor.next; 72 this.l.anchor.next = node->link.next; 73 __atomic_store_n(&this.l.anchor.ts, __atomic_load_n(&node->link.ts, __ATOMIC_RELAXED), __ATOMIC_RELAXED); 74 bool is_empty = this.l.anchor.next == 0p; 72 75 node->link.next = 0p; 73 76 __atomic_store_n(&node->link.ts, ULLONG_MAX, __ATOMIC_RELAXED); 74 77 #if !defined(__CFA_NO_STATISTICS__) 75 this. cnt--;78 this.l.cnt--; 76 79 #endif 77 80 78 81 // Update head time stamp 79 if(is_empty) this. prev = mock_head( this );82 if(is_empty) this.l.prev = mock_head( this ); 80 83 81 unsigned long long ats = __atomic_load_n(&this. anchor.ts, __ATOMIC_RELAXED);84 unsigned long long ats = __atomic_load_n(&this.l.anchor.ts, __ATOMIC_RELAXED); 82 85 /* paranoid */ verify( node->link.next == 0p ); 83 86 /* paranoid */ verify( __atomic_load_n(&node->link.ts , __ATOMIC_RELAXED) == MAX ); … … 90 93 // Check whether or not list is empty 91 94 static inline bool is_empty(__intrusive_lane_t & this) { 92 return this. anchor.next == 0p;95 return this.l.anchor.next == 0p; 93 96 } 94 97 … … 96 99 static inline unsigned long long ts(__intrusive_lane_t & this) { 97 100 // Cannot verify 'emptiness' here since it may not be locked 98 /* paranoid */ verify(this. anchor.ts != 0);99 /* paranoid */ static_assert(__atomic_always_lock_free(sizeof(this. anchor.ts), &this.anchor.ts));100 return __atomic_load_n(&this. anchor.ts, __ATOMIC_RELAXED);101 /* paranoid */ verify(this.l.anchor.ts != 0); 102 /* paranoid */ static_assert(__atomic_always_lock_free(sizeof(this.l.anchor.ts), &this.l.anchor.ts)); 103 return __atomic_load_n(&this.l.anchor.ts, __ATOMIC_RELAXED); 101 104 } -
libcfa/src/concurrency/stats.cfa
r12df6fe r4520b77e 46 46 stats->io.submit.fast = 0; 47 47 stats->io.submit.slow = 0; 48 stats->io.submit.eagr = 0; 49 stats->io.submit.nblk = 0; 48 50 stats->io.flush.external = 0; 49 51 stats->io.flush.dirty = 0; … … 116 118 tally_one( &cltr->io.submit.fast , &proc->io.submit.fast ); 117 119 tally_one( &cltr->io.submit.slow , &proc->io.submit.slow ); 120 tally_one( &cltr->io.submit.eagr , &proc->io.submit.eagr ); 121 tally_one( &cltr->io.submit.nblk , &proc->io.submit.nblk ); 118 122 tally_one( &cltr->io.flush.external , &proc->io.flush.external ); 119 123 tally_one( &cltr->io.flush.dirty , &proc->io.flush.dirty ); … … 197 201 sstr | "fast," | eng3(io.submit.slow) | "slow (" | ws(3, 3, avgfasts) | "%)" | nonl; 198 202 } 203 sstr | " - eager" | eng3(io.submit.eagr) | nonl; 204 sstr | " - no-wait" | eng3(io.submit.nblk) | nonl; 199 205 sstr | nl; 200 206 -
libcfa/src/concurrency/stats.hfa
r12df6fe r4520b77e 92 92 volatile uint64_t fast; 93 93 volatile uint64_t slow; 94 volatile uint64_t eagr; 95 volatile uint64_t nblk; 94 96 } submit; 95 97 struct { … … 130 132 #endif 131 133 132 struct __attribute__((aligned( 128))) __stats_t {134 struct __attribute__((aligned(64))) __stats_t { 133 135 __stats_readyQ_t ready; 134 136 #if defined(CFA_HAVE_LINUX_IO_URING_H) -
libcfa/src/iostream.cfa
r12df6fe r4520b77e 10 10 // Created On : Wed May 27 17:56:53 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jan 19 08:15:53202213 // Update Count : 135 212 // Last Modified On : Thu Aug 25 18:05:49 2022 13 // Update Count : 1354 14 14 // 15 15 … … 197 197 fmt( os, "%s", buf ); \ 198 198 if ( isfinite( val ) ) { /* if number, print decimal point when no fraction or exponent */ \ 199 for ( i nt i = 0;; i += 1) { \199 for ( i; 0 ~ @ ) { \ 200 200 if ( i == len ) { fmt( os, "." ); break; } \ 201 201 if ( buf[i] == '.' || buf[i] == 'e' || buf[i] == 'E' ) break; /* decimal point or scientific ? */ \ -
libcfa/src/rational.cfa
r12df6fe r4520b77e 10 10 // Created On : Wed Apr 6 17:54:28 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : T ue Jul 20 16:30:06 202113 // Update Count : 19 312 // Last Modified On : Thu Aug 25 18:09:58 2022 13 // Update Count : 194 14 14 // 15 15 … … 26 26 // rationals. alternative: https://en.wikipedia.org/wiki/Binary_GCD_algorithm 27 27 static T gcd( T a, T b ) { 28 for ( ;; ) {// Euclid's algorithm28 for () { // Euclid's algorithm 29 29 T r = a % b; 30 30 if ( r == (T){0} ) break; … … 246 246 247 247 // find terms until denom gets too big 248 for ( ;;) {248 for () { 249 249 ai = convert( f ); 250 250 if ( ! (m10 * ai + m11 <= md) ) break; -
libcfa/src/startup.cfa
r12df6fe r4520b77e 41 41 } // __cfaabi_appready_shutdown 42 42 43 void disable_interrupts() __attribute__(( weak )) libcfa_public {} 44 void enable_interrupts() __attribute__(( weak )) libcfa_public {} 43 void disable_interrupts() __attribute__(( weak )) libcfa_nopreempt libcfa_public {} 44 void enable_interrupts() __attribute__(( weak )) libcfa_nopreempt libcfa_public {} 45 bool poll_interrupts() __attribute__(( weak )) libcfa_nopreempt libcfa_public { return false; } 46 47 __attribute__((visibility("hidden"))) extern void * const __start_cfatext_nopreempt; 48 __attribute__((visibility("hidden"))) extern void * const __stop_cfatext_nopreempt; 49 50 __attribute__((visibility("protected"))) const __cfa_nopreempt_region __libcfa_nopreempt @= { 51 (void * const)&__start_cfatext_nopreempt, 52 (void * const)&__stop_cfatext_nopreempt 53 }; 45 54 46 55 -
libcfa/src/stdlib.cfa
r12df6fe r4520b77e 10 10 // Created On : Thu Jan 28 17:10:29 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Feb 10 22:41:39202213 // Update Count : 60 212 // Last Modified On : Thu Aug 25 22:41:14 2022 13 // Update Count : 604 14 14 // 15 15 … … 35 35 T * anew( size_t dim, TT p ) { 36 36 T * arr = alloc( dim ); 37 for ( unsigned int i = 0; i < dim; i += 1) {37 for ( i; dim ) { 38 38 (arr[i]){ p }; // run constructor 39 39 } // for … … 45 45 if ( arr ) { // ignore null 46 46 size_t dim = malloc_size( arr ) / sizeof( T ); 47 for ( i nt i = dim - 1; i >= 0; i -= 1 ) {// reverse allocation order, must be unsigned47 for ( i; 0 -~= dim - 1 ) { // reverse allocation order, must be unsigned 48 48 ^(arr[i]){}; // run destructor 49 49 } // for … … 56 56 if ( arr ) { // ignore null 57 57 size_t dim = malloc_size( arr ) / sizeof( T ); 58 for ( i nt i = dim - 1; i >= 0; i -= 1 ) {// reverse allocation order, must be unsigned58 for ( i; 0 -~= dim - 1 ) { // reverse allocation order, must be unsigned 59 59 ^(arr[i]){}; // run destructor 60 60 } // for -
libcfa/src/stdlib.hfa
r12df6fe r4520b77e 10 10 // Created On : Thu Jan 28 17:12:35 2016 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Apr 18 17:57:36 202213 // Update Count : 64 412 // Last Modified On : Thu Aug 25 18:07:06 2022 13 // Update Count : 645 14 14 // 15 15 … … 192 192 memset( (char *)ptr + copy_end, (int)Fill.c, Dim * size - copy_end ); 193 193 } else if ( Fill.tag == 't' ) { 194 for ( i nt i = copy_end; i < Dim * size; i +=size ) {194 for ( i; copy_end ~ Dim * size ~ size ) { 195 195 #pragma GCC diagnostic push 196 196 #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" -
src/AST/Decl.hpp
r12df6fe r4520b77e 108 108 ObjectDecl( const CodeLocation & loc, const std::string & name, const Type * type, 109 109 const Init * init = nullptr, Storage::Classes storage = {}, 110 Linkage::Spec linkage = Linkage::C , const Expr * bitWd = nullptr,110 Linkage::Spec linkage = Linkage::Cforall, const Expr * bitWd = nullptr, 111 111 std::vector< ptr<Attribute> > && attrs = {}, Function::Specs fs = {} ) 112 112 : DeclWithType( loc, name, storage, linkage, std::move(attrs), fs ), type( type ), … … 143 143 FunctionDecl( const CodeLocation & loc, const std::string & name, std::vector<ptr<TypeDecl>>&& forall, 144 144 std::vector<ptr<DeclWithType>>&& params, std::vector<ptr<DeclWithType>>&& returns, 145 CompoundStmt * stmts, Storage::Classes storage = {}, Linkage::Spec linkage = Linkage::C ,145 CompoundStmt * stmts, Storage::Classes storage = {}, Linkage::Spec linkage = Linkage::Cforall, 146 146 std::vector<ptr<Attribute>>&& attrs = {}, Function::Specs fs = {}, bool isVarArgs = false); 147 147 … … 149 149 std::vector<ptr<TypeDecl>>&& forall, std::vector<ptr<DeclWithType>>&& assertions, 150 150 std::vector<ptr<DeclWithType>>&& params, std::vector<ptr<DeclWithType>>&& returns, 151 CompoundStmt * stmts, Storage::Classes storage = {}, Linkage::Spec linkage = Linkage::C ,151 CompoundStmt * stmts, Storage::Classes storage = {}, Linkage::Spec linkage = Linkage::Cforall, 152 152 std::vector<ptr<Attribute>>&& attrs = {}, Function::Specs fs = {}, bool isVarArgs = false); 153 153 … … 217 217 218 218 /// convenience accessor to match Type::isComplete() 219 bool isComplete() { return sized; }219 bool isComplete() const { return sized; } 220 220 221 221 const Decl * accept( Visitor & v ) const override { return v.visit( this ); } -
src/AST/DeclReplacer.cpp
r12df6fe r4520b77e 9 9 // Author : Aaron B. Moss 10 10 // Created On : Wed May 8 13:00:00 2019 11 // Last Modified By : A aron B. Moss12 // Last Modified On : Wed May 8 13:00:00 201913 // Update Count : 111 // Last Modified By : Andrew Beach 12 // Last Modified On : Thr Sep 15 11:55:00 2022 13 // Update Count : 2 14 14 // 15 15 16 16 #include "DeclReplacer.hpp" 17 17 18 #include "Expr.hpp" 19 #include "Pass.hpp" 18 20 #include "Type.hpp" 19 20 #include "Pass.hpp"21 21 22 22 namespace ast { 23 23 24 24 namespace DeclReplacer { 25 namespace {26 struct DeclReplacer {27 private:28 const DeclMap & declMap;29 const TypeMap & typeMap;30 bool debug;31 25 32 public: 33 DeclReplacer(const DeclMap & declMap, const TypeMap & typeMap, bool debug) 34 : declMap( declMap ), typeMap( typeMap ), debug( debug ) 35 {} 26 namespace { 27 struct DeclReplacer { 28 private: 29 const DeclMap & declMap; 30 const TypeMap & typeMap; 31 bool debug; 36 32 37 const ast::VariableExpr * previsit( const ast::VariableExpr * ); 38 const ast::TypeInstType * previsit( const ast::TypeInstType * ); 39 }; 33 public: 34 DeclReplacer( const DeclMap & declMap, const TypeMap & typeMap, bool debug ) 35 : declMap( declMap ), typeMap( typeMap ), debug( debug ) 36 {} 40 37 41 struct VarExprReplacer { 42 private: 43 const ExprMap & exprMap; 44 45 public: 46 VarExprReplacer(const ExprMap & exprMap): exprMap (exprMap) {} 38 const ast::VariableExpr * previsit( const ast::VariableExpr * ); 39 const ast::TypeInstType * previsit( const ast::TypeInstType * ); 40 }; 47 41 48 const Expr * postvisit (const VariableExpr *); 49 }; 42 struct VarExprReplacer { 43 private: 44 const ExprMap & exprMap; 45 46 public: 47 VarExprReplacer( const ExprMap & exprMap ) : exprMap( exprMap ) {} 48 49 const Expr * postvisit( const VariableExpr * ); 50 }; 51 } // namespace 52 53 const ast::Node * replace( const ast::Node * node, const DeclMap & declMap, const TypeMap & typeMap, bool debug ) { 54 if(!node) return nullptr; 55 Pass<DeclReplacer> replacer = { declMap, typeMap, debug }; 56 return node->accept( replacer ); 57 } 58 59 const ast::Node * replace( const ast::Node * node, const DeclMap & declMap, bool debug ) { 60 TypeMap typeMap; 61 return replace( node, declMap, typeMap, debug ); 62 } 63 64 const ast::Node * replace( const ast::Node * node, const TypeMap & typeMap, bool debug ) { 65 DeclMap declMap; 66 return replace( node, declMap, typeMap, debug ); 67 } 68 69 const ast::Node * replace( const ast::Node * node, const ExprMap & exprMap ) { 70 Pass<VarExprReplacer> replacer = {exprMap}; 71 return node->accept( replacer ); 72 } 73 74 namespace { 75 // replace variable with new node from decl map 76 const ast::VariableExpr * DeclReplacer::previsit( const VariableExpr * varExpr ) { 77 // xxx - assertions and parameters aren't accounted for in this... (i.e. they aren't inserted into the map when it's made, only DeclStmts are) 78 if ( !declMap.count( varExpr->var ) ) return varExpr; 79 80 auto replacement = declMap.at( varExpr->var ); 81 if ( debug ) { 82 std::cerr << "replacing variable reference: " 83 << (void*)varExpr->var.get() << " " << varExpr->var 84 << " with " << (void*)replacement << " " << replacement 85 << std::endl; 86 } 87 auto nexpr = mutate(varExpr); 88 nexpr->var = replacement; 89 return nexpr; 50 90 } 51 91 52 const ast::Node * replace( const ast::Node * node, const DeclMap & declMap, const TypeMap & typeMap, bool debug ) { 53 if(!node) return nullptr; 54 Pass<DeclReplacer> replacer = { declMap, typeMap, debug }; 55 return node->accept( replacer ); 92 const TypeInstType * DeclReplacer::previsit( const TypeInstType * inst ) { 93 if ( !typeMap.count( inst->base ) ) return inst; 94 95 auto replacement = typeMap.at( inst->base ); 96 if ( debug ) { 97 std::cerr << "replacing type reference: " 98 << (void*)inst->base.get() << " " << inst->base 99 << " with " << (void*)replacement << " " << replacement 100 << std::endl; 101 } 102 auto ninst = mutate(inst); 103 ninst->base = replacement; 104 return ninst; 56 105 } 57 106 58 const ast::Node * replace( const ast::Node * node, const DeclMap & declMap, bool debug) {59 TypeMap typeMap;60 return replace( node, declMap, typeMap, debug);107 const Expr * VarExprReplacer::postvisit( const VariableExpr * expr ) { 108 if ( !exprMap.count( expr->var ) ) return expr; 109 return exprMap.at( expr->var ); 61 110 } 111 } // namespace 62 112 63 const ast::Node * replace( const ast::Node * node, const TypeMap & typeMap, bool debug ) { 64 DeclMap declMap; 65 return replace( node, declMap, typeMap, debug ); 66 } 113 } // namespace DeclReplacer 67 114 68 const ast::Node * replace( const ast::Node * node, const ExprMap & exprMap) { 69 Pass<VarExprReplacer> replacer = {exprMap}; 70 return node->accept( replacer ); 71 } 72 73 namespace { 74 // replace variable with new node from decl map 75 const ast::VariableExpr * DeclReplacer::previsit( const VariableExpr * varExpr ) { 76 // xxx - assertions and parameters aren't accounted for in this... (i.e. they aren't inserted into the map when it's made, only DeclStmts are) 77 if ( !declMap.count( varExpr->var ) ) return varExpr; 78 79 auto replacement = declMap.at( varExpr->var ); 80 if ( debug ) { 81 std::cerr << "replacing variable reference: " 82 << (void*)varExpr->var.get() << " " << varExpr->var 83 << " with " << (void*)replacement << " " << replacement 84 << std::endl; 85 } 86 auto nexpr = mutate(varExpr); 87 nexpr->var = replacement; 88 return nexpr; 89 } 90 91 const TypeInstType * DeclReplacer::previsit( const TypeInstType * inst ) { 92 if ( !typeMap.count( inst->base ) ) return inst; 93 94 auto replacement = typeMap.at( inst->base ); 95 if ( debug ) { 96 std::cerr << "replacing type reference: " 97 << (void*)inst->base.get() << " " << inst->base 98 << " with " << (void*)replacement << " " << replacement 99 << std::endl; 100 } 101 auto ninst = mutate(inst); 102 ninst->base = replacement; 103 return ninst; 104 } 105 106 const Expr * VarExprReplacer::postvisit( const VariableExpr * expr ) { 107 if (!exprMap.count(expr->var)) return expr; 108 109 return exprMap.at(expr->var); 110 } 111 112 } 113 } 114 115 } 115 } // namespace ast 116 116 117 117 // Local Variables: // -
src/AST/Pass.hpp
r12df6fe r4520b77e 328 328 struct PureVisitor {}; 329 329 330 struct WithCodeLocation { 331 const CodeLocation * location = nullptr; 332 }; 333 330 334 /// Keep track of the polymorphic const TypeSubstitution * typeSubs for the current expression. 331 335 struct WithConstTypeSubstitution { -
src/AST/Pass.impl.hpp
r12df6fe r4520b77e 25 25 #define VISIT_START( node ) \ 26 26 using namespace ast; \ 27 /* back-up the last known code location */ \ 28 __attribute__((unused)) auto loc_guard = ast::__pass::make_location_guard( core, node, 0 ); \ 27 29 /* back-up the visit children */ \ 28 30 __attribute__((unused)) ast::__pass::visit_children_guard guard1( ast::__pass::visit_children(core, 0) ); \ … … 597 599 guard_symtab guard { *this }; 598 600 // implicit add __func__ identifier as specified in the C manual 6.4.2.2 601 // This is a C name and so has C linkage. 599 602 static ast::ptr< ast::ObjectDecl > func{ new ast::ObjectDecl{ 600 603 CodeLocation{}, "__func__", … … 602 605 new ast::BasicType{ ast::BasicType::Char, ast::CV::Const }, 603 606 nullptr, VariableLen, DynamicDim 604 } 607 }, 608 nullptr, 609 ast::Storage::Classes(), 610 ast::Linkage::C, 605 611 } }; 606 612 __pass::symtab::addId( core, 0, func ); -
src/AST/Pass.proto.hpp
r12df6fe r4520b77e 326 326 } 327 327 328 template< typename core_t, typename node_t > 329 static auto make_location_guard( core_t & core, node_t * node, int ) 330 -> decltype( node->location, ValueGuardPtr<const CodeLocation *>( &core.location ) ) { 331 ValueGuardPtr<const CodeLocation *> guard( &core.location ); 332 core.location = &node->location; 333 return guard; 334 } 335 336 template< typename core_t, typename node_t > 337 static auto make_location_guard( core_t &, node_t *, long ) -> int { 338 return 0; 339 } 340 328 341 // Another feature of the templated visitor is that it calls beginScope()/endScope() for compound statement. 329 342 // All passes which have such functions are assumed desire this behaviour -
src/AST/Print.cpp
r12df6fe r4520b77e 33 33 { 34 34 return array<C,sizeof...(T)>{ 35 forward<T>(values)...35 std::forward<T>(values)... 36 36 }; 37 37 } … … 86 86 87 87 static constexpr auto StorageClasses = make_array<const char*>( 88 "extern", "static", "auto", "register", "_ Thread_local"88 "extern", "static", "auto", "register", "__thread", "_Thread_local" 89 89 ); 90 90 … … 215 215 ++indent; 216 216 ptrToEnum->base->accept( *this ); 217 --indent; 217 --indent; 218 218 } 219 219 … … 1634 1634 // if the wrong size is specified 1635 1635 constexpr array<const char*, 3> Printer::Names::FuncSpecifiers; 1636 constexpr array<const char*, 5> Printer::Names::StorageClasses;1636 constexpr array<const char*, 6> Printer::Names::StorageClasses; 1637 1637 constexpr array<const char*, 6> Printer::Names::Qualifiers; 1638 1638 } -
src/AST/StorageClasses.hpp
r12df6fe r4520b77e 24 24 /// Bitflags for storage classes 25 25 enum { 26 Extern = 1 << 0, 27 Static = 1 << 1, 28 Auto = 1 << 2, 29 Register = 1 << 3, 30 ThreadLocal = 1 << 4, 31 NumClasses = 5 26 Extern = 1 << 0, 27 Static = 1 << 1, 28 Auto = 1 << 2, 29 Register = 1 << 3, 30 ThreadLocalGcc = 1 << 4, 31 ThreadLocalC11 = 1 << 5, 32 NumClasses = 6 32 33 }; 33 34 … … 37 38 unsigned int val; 38 39 struct { 39 bool is_extern : 1; 40 bool is_static : 1; 41 bool is_auto : 1; 42 bool is_register : 1; 43 bool is_threadlocal : 1; 40 bool is_extern : 1; 41 bool is_static : 1; 42 bool is_auto : 1; 43 bool is_register : 1; 44 bool is_threadlocalGcc : 1; 45 bool is_threadlocalC11 : 1; 44 46 }; 45 47 … … 48 50 49 51 constexpr class_flags( unsigned int val = 0 ) : val(val) {} 52 53 bool is_threadlocal_any() { return this->is_threadlocalC11 || this->is_threadlocalGcc; } 50 54 }; 51 55 -
src/AST/Type.cpp
r12df6fe r4520b77e 143 143 TraitInstType::TraitInstType( 144 144 const TraitDecl * b, CV::Qualifiers q, std::vector<ptr<Attribute>>&& as ) 145 : BaseInstType( b->name, q, move(as) ), base( b ) {}145 : BaseInstType( b->name, q, std::move(as) ), base( b ) {} 146 146 147 147 // --- TypeInstType … … 149 149 TypeInstType::TypeInstType( const TypeDecl * b, 150 150 CV::Qualifiers q, std::vector<ptr<Attribute>> && as ) 151 : BaseInstType( b->name, q, move(as) ), base( b ), kind( b->kind ) {}151 : BaseInstType( b->name, q, std::move(as) ), base( b ), kind( b->kind ) {} 152 152 153 153 void TypeInstType::set_base( const TypeDecl * b ) { … … 161 161 162 162 TupleType::TupleType( std::vector<ptr<Type>> && ts, CV::Qualifiers q ) 163 : Type( q ), types( move(ts) ), members() {163 : Type( q ), types( std::move(ts) ), members() { 164 164 // This constructor is awkward. `TupleType` needs to contain objects so that members can be 165 165 // named, but members without initializer nodes end up getting constructors, which breaks -
src/AST/Type.hpp
r12df6fe r4520b77e 83 83 template< enum Node::ref_type ref_t > 84 84 void reset_qualifiers( ptr_base< Type, ref_t > & p, CV::Qualifiers q = {} ) { 85 if ( p->qualifiers .val != q.val) p.get_and_mutate()->qualifiers = q;85 if ( p->qualifiers != q ) p.get_and_mutate()->qualifiers = q; 86 86 } 87 87 … … 89 89 template< enum Node::ref_type ref_t > 90 90 void add_qualifiers( ptr_base< Type, ref_t > & p, CV::Qualifiers q ) { 91 if ( ( p->qualifiers .val & q.val ) != q.val) p.get_and_mutate()->qualifiers |= q;91 if ( ( p->qualifiers & q ) != q ) p.get_and_mutate()->qualifiers |= q; 92 92 } 93 93 … … 95 95 template< enum Node::ref_type ref_t > 96 96 void remove_qualifiers( ptr_base< Type, ref_t > & p, CV::Qualifiers q ) { 97 if ( ( p->qualifiers .val & q.val) != 0 ) p.get_and_mutate()->qualifiers -= q;97 if ( ( p->qualifiers & q ) != 0 ) p.get_and_mutate()->qualifiers -= q; 98 98 } 99 99 -
src/Common/Eval.cc
r12df6fe r4520b77e 10 10 // Created On : Mon May 18 07:44:20 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 1 08:41:03202213 // Update Count : 11 712 // Last Modified On : Sat Aug 6 12:11:59 2022 13 // Update Count : 119 14 14 // 15 15 … … 217 217 value = arg1.first * arg2.first; 218 218 } else if (fname == "?/?") { 219 value = arg1.first / arg2.first;219 if ( arg2.first ) value = arg1.first / arg2.first; 220 220 } else if (fname == "?%?") { 221 value = arg1.first % arg2.first;221 if ( arg2.first ) value = arg1.first % arg2.first; 222 222 } else if (fname == "?<<?") { 223 223 value = arg1.first << arg2.first; -
src/Common/ScopedMap.h
r12df6fe r4520b77e 10 10 // Created On : Wed Dec 2 11:37:00 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon May 21 15:22:40 201813 // Update Count : 312 // Last Modified On : Tue Feb 15 08:41:28 2022 13 // Update Count : 5 14 14 // 15 15 … … 36 36 37 37 template<typename N> 38 Scope(N && n) : map(), note(std::forward<N>(n)) {}38 Scope(N && n) : map(), note(std::forward<N>(n)) {} 39 39 40 40 Scope() = default; 41 Scope(const Scope &) = default;42 Scope(Scope &&) = default;43 Scope & operator= (const Scope&) = default;44 Scope & operator= (Scope&&) = default;41 Scope(const Scope &) = default; 42 Scope(Scope &&) = default; 43 Scope & operator= (const Scope &) = default; 44 Scope & operator= (Scope &&) = default; 45 45 }; 46 46 typedef std::vector< Scope > ScopeList; … … 58 58 typedef typename MapType::const_pointer const_pointer; 59 59 60 class iterator : public std::iterator< std::bidirectional_iterator_tag, 61 value_type > { 60 class iterator : public std::iterator< std::bidirectional_iterator_tag, value_type > { 62 61 friend class ScopedMap; 63 62 friend class const_iterator; … … 72 71 73 72 /// Increments on invalid 74 iterator & next_valid() {73 iterator & next_valid() { 75 74 if ( ! is_valid() ) { ++(*this); } 76 75 return *this; … … 78 77 79 78 /// Decrements on invalid 80 iterator & prev_valid() {79 iterator & prev_valid() { 81 80 if ( ! is_valid() ) { --(*this); } 82 81 return *this; 83 82 } 84 83 85 iterator(scope_list & _scopes, const wrapped_iterator &_it, size_type inLevel)84 iterator(scope_list & _scopes, const wrapped_iterator & _it, size_type inLevel) 86 85 : scopes(&_scopes), it(_it), level(inLevel) {} 87 86 public: 88 iterator(const iterator & that) : scopes(that.scopes), it(that.it), level(that.level) {}89 iterator & operator= (const iterator &that) {87 iterator(const iterator & that) : scopes(that.scopes), it(that.it), level(that.level) {} 88 iterator & operator= (const iterator & that) { 90 89 scopes = that.scopes; level = that.level; it = that.it; 91 90 return *this; … … 95 94 pointer operator-> () const { return it.operator->(); } 96 95 97 iterator & operator++ () {96 iterator & operator++ () { 98 97 if ( it == (*scopes)[level].map.end() ) { 99 98 if ( level == 0 ) return *this; … … 107 106 iterator operator++ (int) { iterator tmp = *this; ++(*this); return tmp; } 108 107 109 iterator & operator-- () {108 iterator & operator-- () { 110 109 // may fail if this is the begin iterator; allowed by STL spec 111 110 if ( it == (*scopes)[level].map.begin() ) { … … 118 117 iterator operator-- (int) { iterator tmp = *this; --(*this); return tmp; } 119 118 120 bool operator== (const iterator & that) const {119 bool operator== (const iterator & that) const { 121 120 return scopes == that.scopes && level == that.level && it == that.it; 122 121 } 123 bool operator!= (const iterator & that) const { return !( *this == that ); }122 bool operator!= (const iterator & that) const { return !( *this == that ); } 124 123 125 124 size_type get_level() const { return level; } 126 125 127 Note & get_note() { return (*scopes)[level].note; }128 const Note & get_note() const { return (*scopes)[level].note; }126 Note & get_note() { return (*scopes)[level].note; } 127 const Note & get_note() const { return (*scopes)[level].note; } 129 128 130 129 private: … … 148 147 149 148 /// Increments on invalid 150 const_iterator & next_valid() {149 const_iterator & next_valid() { 151 150 if ( ! is_valid() ) { ++(*this); } 152 151 return *this; … … 154 153 155 154 /// Decrements on invalid 156 const_iterator & prev_valid() {155 const_iterator & prev_valid() { 157 156 if ( ! is_valid() ) { --(*this); } 158 157 return *this; 159 158 } 160 159 161 const_iterator(scope_list const & _scopes, const wrapped_const_iterator &_it, size_type inLevel)160 const_iterator(scope_list const & _scopes, const wrapped_const_iterator & _it, size_type inLevel) 162 161 : scopes(&_scopes), it(_it), level(inLevel) {} 163 162 public: 164 const_iterator(const iterator & that) : scopes(that.scopes), it(that.it), level(that.level) {}165 const_iterator(const const_iterator & that) : scopes(that.scopes), it(that.it), level(that.level) {}166 const_iterator & operator= (const iterator &that) {163 const_iterator(const iterator & that) : scopes(that.scopes), it(that.it), level(that.level) {} 164 const_iterator(const const_iterator & that) : scopes(that.scopes), it(that.it), level(that.level) {} 165 const_iterator & operator= (const iterator & that) { 167 166 scopes = that.scopes; level = that.level; it = that.it; 168 167 return *this; 169 168 } 170 const_iterator & operator= (const const_iterator &that) {169 const_iterator & operator= (const const_iterator & that) { 171 170 scopes = that.scopes; level = that.level; it = that.it; 172 171 return *this; … … 176 175 const_pointer operator-> () { return it.operator->(); } 177 176 178 const_iterator & operator++ () {177 const_iterator & operator++ () { 179 178 if ( it == (*scopes)[level].map.end() ) { 180 179 if ( level == 0 ) return *this; … … 188 187 const_iterator operator++ (int) { const_iterator tmp = *this; ++(*this); return tmp; } 189 188 190 const_iterator & operator-- () {189 const_iterator & operator-- () { 191 190 // may fail if this is the begin iterator; allowed by STL spec 192 191 if ( it == (*scopes)[level].map.begin() ) { … … 199 198 const_iterator operator-- (int) { const_iterator tmp = *this; --(*this); return tmp; } 200 199 201 bool operator== (const const_iterator & that) const {200 bool operator== (const const_iterator & that) const { 202 201 return scopes == that.scopes && level == that.level && it == that.it; 203 202 } 204 bool operator!= (const const_iterator & that) const { return !( *this == that ); }203 bool operator!= (const const_iterator & that) const { return !( *this == that ); } 205 204 206 205 size_type get_level() const { return level; } 207 206 208 const Note & get_note() const { return (*scopes)[level].note; }207 const Note & get_note() const { return (*scopes)[level].note; } 209 208 210 209 private: … … 221 220 // Starts a new scope with the given note 222 221 template<typename N> 223 void beginScope( N && n ) {222 void beginScope( N && n ) { 224 223 scopes.emplace_back( std::forward<N>(n) ); 225 224 } … … 236 235 /// Constructs with a given note on the outermost scope 237 236 template<typename N> 238 ScopedMap( N && n ) : scopes() { beginScope(std::forward<N>(n)); }237 ScopedMap( N && n ) : scopes() { beginScope(std::forward<N>(n)); } 239 238 240 239 iterator begin() { return iterator(scopes, scopes.back().map.begin(), currentScope()).next_valid(); } … … 249 248 250 249 /// Gets the note at the given scope 251 Note & getNote() { return scopes.back().note; }252 const Note & getNote() const { return scopes.back().note; }253 Note & getNote( size_type i ) { return scopes[i].note; }254 const Note & getNote( size_type i ) const { return scopes[i].note; }250 Note & getNote() { return scopes.back().note; } 251 const Note & getNote() const { return scopes.back().note; } 252 Note & getNote( size_type i ) { return scopes[i].note; } 253 const Note & getNote( size_type i ) const { return scopes[i].note; } 255 254 256 255 /// Finds the given key in the outermost scope it occurs; returns end() for none such 257 iterator find( const Key & key ) {256 iterator find( const Key & key ) { 258 257 for ( size_type i = scopes.size() - 1; ; --i ) { 259 258 typename MapType::iterator val = scopes[i].map.find( key ); … … 263 262 return end(); 264 263 } 265 const_iterator find( const Key & key ) const {264 const_iterator find( const Key & key ) const { 266 265 return const_iterator( const_cast< ScopedMap< Key, Value, Note >* >(this)->find( key ) ); 267 266 } 268 267 269 268 /// Finds the given key in the provided scope; returns end() for none such 270 iterator findAt( size_type scope, const Key & key ) {269 iterator findAt( size_type scope, const Key & key ) { 271 270 typename MapType::iterator val = scopes[scope].map.find( key ); 272 271 if ( val != scopes[scope].map.end() ) return iterator( scopes, val, scope ); 273 272 return end(); 274 273 } 275 const_iterator findAt( size_type scope, const Key & key ) const {274 const_iterator findAt( size_type scope, const Key & key ) const { 276 275 return const_iterator( const_cast< ScopedMap< Key, Value, Note >* >(this)->findAt( scope, key ) ); 277 276 } 278 277 279 278 /// Finds the given key in the outermost scope inside the given scope where it occurs 280 iterator findNext( const_iterator & it, const Key &key ) {279 iterator findNext( const_iterator & it, const Key & key ) { 281 280 if ( it.level == 0 ) return end(); 282 281 for ( size_type i = it.level - 1; ; --i ) { … … 287 286 return end(); 288 287 } 289 const_iterator findNext( const_iterator & it, const Key &key ) const {288 const_iterator findNext( const_iterator & it, const Key & key ) const { 290 289 return const_iterator( const_cast< ScopedMap< Key, Value, Note >* >(this)->findNext( it, key ) ); 291 290 } … … 293 292 /// Inserts the given key-value pair into the outermost scope 294 293 template< typename value_type_t > 295 std::pair< iterator, bool > insert( value_type_t && value ) {294 std::pair< iterator, bool > insert( value_type_t && value ) { 296 295 std::pair< typename MapType::iterator, bool > res = scopes.back().map.insert( std::forward<value_type_t>( value ) ); 297 296 return std::make_pair( iterator(scopes, std::move( res.first ), scopes.size()-1), std::move( res.second ) ); … … 299 298 300 299 template< typename value_type_t > 301 std::pair< iterator, bool > insert( iterator at, value_type_t && value ) {302 MapType & scope = (*at.scopes)[ at.level ].map;300 std::pair< iterator, bool > insert( iterator at, value_type_t && value ) { 301 MapType & scope = (*at.scopes)[ at.level ].map; 303 302 std::pair< typename MapType::iterator, bool > res = scope.insert( std::forward<value_type_t>( value ) ); 304 303 return std::make_pair( iterator(scopes, std::move( res.first ), at.level), std::move( res.second ) ); … … 306 305 307 306 template< typename value_t > 308 std::pair< iterator, bool > insert( const Key & key, value_t&& value ) { return insert( std::make_pair( key, std::forward<value_t>( value ) ) ); }307 std::pair< iterator, bool > insert( const Key & key, value_t && value ) { return insert( std::make_pair( key, std::forward<value_t>( value ) ) ); } 309 308 310 309 template< typename value_type_t > 311 std::pair< iterator, bool > insertAt( size_type scope, value_type_t && value ) {310 std::pair< iterator, bool > insertAt( size_type scope, value_type_t && value ) { 312 311 std::pair< typename MapType::iterator, bool > res = scopes.at(scope).map.insert( std::forward<value_type_t>( value ) ); 313 312 return std::make_pair( iterator(scopes, std::move( res.first ), scope), std::move( res.second ) ); … … 315 314 316 315 template< typename value_t > 317 std::pair< iterator, bool > insertAt( size_type scope, const Key & key, value_t&& value ) {316 std::pair< iterator, bool > insertAt( size_type scope, const Key & key, value_t && value ) { 318 317 return insertAt( scope, std::make_pair( key, std::forward<value_t>( value ) ) ); 319 318 } 320 319 321 Value & operator[] ( const Key &key ) {320 Value & operator[] ( const Key & key ) { 322 321 iterator slot = find( key ); 323 322 if ( slot != end() ) return slot->second; … … 326 325 327 326 iterator erase( iterator pos ) { 328 MapType & scope = (*pos.scopes)[ pos.level ].map;329 const typename iterator::wrapped_iterator & new_it = scope.erase( pos.it );327 MapType & scope = (*pos.scopes)[ pos.level ].map; 328 const typename iterator::wrapped_iterator & new_it = scope.erase( pos.it ); 330 329 iterator it( *pos.scopes, new_it, pos.level ); 331 330 return it.next_valid(); 332 331 } 333 332 334 size_type count( const Key & key ) const {333 size_type count( const Key & key ) const { 335 334 size_type c = 0; 336 335 auto it = find( key ); … … 344 343 return c; 345 344 } 346 347 345 }; 348 346 -
src/Common/utility.h
r12df6fe r4520b77e 322 322 323 323 ValueGuardPtr(T * inRef) : old( inRef ? *inRef : T() ), ref(inRef) {} 324 ValueGuardPtr(const ValueGuardPtr& other) = delete; 325 ValueGuardPtr(ValueGuardPtr&& other) : old(other.old), ref(other.ref) { other.ref = nullptr; } 324 326 ~ValueGuardPtr() { if( ref ) *ref = old; } 325 327 }; -
src/CompilationState.cc
r12df6fe r4520b77e 31 31 genproto = false, 32 32 deterministic_output = false, 33 useNewAST = CFA_USE_NEW_AST,33 useNewAST = true, 34 34 nomainp = false, 35 35 parsep = false, -
src/Concurrency/Keywords.cc
r12df6fe r4520b77e 508 508 ObjectDecl * vtable_object = Virtual::makeVtableForward( 509 509 "_default_vtable_object_declaration", 510 vtable_decl->makeInst( move( poly_args ) ) );510 vtable_decl->makeInst( std::move( poly_args ) ) ); 511 511 declsToAddBefore.push_back( vtable_object ); 512 512 declsToAddBefore.push_back( … … 681 681 void lock (monitor_t & this) { 682 682 lock(get_monitor(this)); 683 } 683 } 684 684 */ 685 685 FunctionDecl * lock_decl = new FunctionDecl( … … 700 700 CompoundStmt * lock_statement = new CompoundStmt(); 701 701 lock_statement->push_back( 702 new ExprStmt( 702 new ExprStmt( 703 703 new UntypedExpr ( 704 704 new NameExpr( "lock" ), … … 716 716 void unlock (monitor_t & this) { 717 717 unlock(get_monitor(this)); 718 } 718 } 719 719 */ 720 720 FunctionDecl * unlock_decl = new FunctionDecl( … … 736 736 737 737 unlock_statement->push_back( 738 new ExprStmt( 738 new ExprStmt( 739 739 new UntypedExpr( 740 740 new NameExpr( "unlock" ), … … 746 746 ); 747 747 unlock_decl->set_statements( unlock_statement ); 748 748 749 749 // pushes routines to declsToAddAfter to add at a later time 750 750 declsToAddAfter.push_back( lock_decl ); … … 1054 1054 assert( !thread_guard_decl ); 1055 1055 thread_guard_decl = decl; 1056 } 1056 } 1057 1057 else if ( decl->name == "__mutex_stmt_lock_guard" && decl->body ) { 1058 1058 assert( !lock_guard_decl ); … … 1206 1206 new NameExpr( "__get_mutexstmt_lock_type" ), 1207 1207 { args.front()->clone() } 1208 ) 1208 ) 1209 1209 ) 1210 1210 ), … … 1225 1225 1226 1226 StructInstType * lock_guard_struct = new StructInstType( noQualifiers, lock_guard_decl ); 1227 TypeExpr * lock_type_expr = new TypeExpr( 1227 TypeExpr * lock_type_expr = new TypeExpr( 1228 1228 new TypeofType( noQualifiers, new UntypedExpr( 1229 1229 new NameExpr( "__get_mutexstmt_lock_type" ), 1230 1230 { args.front()->clone() } 1231 ) 1232 ) 1231 ) 1232 ) 1233 1233 ); 1234 1234 -
src/Concurrency/KeywordsNew.cpp
r12df6fe r4520b77e 398 398 new ast::ReferenceType( vtable_object->type, ast::CV::Const ), 399 399 new ast::SingleInit( location, 400 new ast::VariableExpr( location, vtable_object ) ), 401 ast::Storage::Classes(), 402 ast::Linkage::Cforall 400 new ast::VariableExpr( location, vtable_object ) ) 403 401 ) 404 402 ); … … 471 469 location, 472 470 "this", 473 new ast::ReferenceType( new ast::StructInstType( decl ) ), 474 nullptr, 475 ast::Storage::Classes(), 476 ast::Linkage::Cforall 471 new ast::ReferenceType( new ast::StructInstType( decl ) ) 477 472 ); 478 473 … … 480 475 location, 481 476 "ret", 482 new ast::PointerType( new ast::StructInstType( type_decl ) ), 483 nullptr, 484 ast::Storage::Classes(), 485 ast::Linkage::Cforall 477 new ast::PointerType( new ast::StructInstType( type_decl ) ) 486 478 ); 487 479 … … 530 522 location, 531 523 field_name, 532 new ast::StructInstType( type_decl ), 533 nullptr, 534 ast::Storage::Classes(), 535 ast::Linkage::Cforall 524 new ast::StructInstType( type_decl ) 536 525 ); 537 526 … … 577 566 location, 578 567 "this", 579 new ast::ReferenceType( new ast::StructInstType( decl ) ), 580 nullptr, 581 ast::Storage::Classes(), 582 ast::Linkage::Cforall 568 new ast::ReferenceType( new ast::StructInstType( decl ) ) 583 569 ); 584 570 … … 1077 1063 ) } 1078 1064 ) 1079 ), 1080 ast::Storage::Classes(), 1081 ast::Linkage::Cforall 1065 ) 1082 1066 ); 1083 1067 … … 1107 1091 {}, 1108 1092 ast::MaybeConstruct 1109 ), 1110 ast::Storage::Classes(), 1111 ast::Linkage::Cforall 1093 ) 1112 1094 )) 1113 1095 ); … … 1161 1143 } 1162 1144 ) 1163 ), 1164 ast::Storage::Classes(), 1165 ast::Linkage::Cforall 1145 ) 1166 1146 ); 1167 1147 … … 1190 1170 {}, 1191 1171 ast::MaybeConstruct 1192 ), 1193 ast::Storage::Classes(), 1194 ast::Linkage::Cforall 1172 ) 1195 1173 )) 1196 1174 ); … … 1296 1274 } 1297 1275 ) 1298 ), 1299 ast::Storage::Classes(), 1300 ast::Linkage::Cforall 1276 ) 1301 1277 ); 1302 1278 … … 1370 1346 {}, 1371 1347 ast::MaybeConstruct 1372 ), 1373 ast::Storage::Classes(), 1374 ast::Linkage::Cforall 1348 ) 1375 1349 ) 1376 1350 ) … … 1513 1487 {}, 1514 1488 ast::MaybeConstruct 1515 ), 1516 ast::Storage::Classes(), 1517 ast::Linkage::Cforall 1489 ) 1518 1490 ) 1519 1491 )); -
src/Concurrency/WaitforNew.cpp
r12df6fe r4520b77e 101 101 namespace { 102 102 103 class GenerateWaitForCore :103 class GenerateWaitForCore final : 104 104 public ast::WithSymbolTable, public ast::WithConstTranslationUnit { 105 105 const ast::FunctionDecl * decl_waitfor = nullptr; -
src/ControlStruct/ExceptDeclNew.cpp
r12df6fe r4520b77e 110 110 "parent", 111 111 new ast::PointerType( 112 new ast::StructInstType( "__cfavir_type_info", ast::CV::Const ) ), 113 nullptr, 114 ast::Storage::Classes(), 115 ast::Linkage::Cforall 112 new ast::StructInstType( "__cfavir_type_info", ast::CV::Const ) ) 116 113 ) ); 117 114 decl->body = true; … … 166 163 location, 167 164 "__cfavir_typeid", 168 new ast::PointerType( typeIdType ), 169 nullptr, 170 ast::Storage::Classes(), 171 ast::Linkage::Cforall 165 new ast::PointerType( typeIdType ) 172 166 ); 173 167 ast::ObjectDecl * size = new ast::ObjectDecl( 174 168 location, 175 169 "size", 176 new ast::TypeInstType( "size_t", ast::TypeDecl::Dtype ), 177 nullptr, 178 ast::Storage::Classes(), 179 ast::Linkage::Cforall 170 new ast::TypeInstType( "size_t", ast::TypeDecl::Dtype ) 180 171 ); 181 172 ast::ObjectDecl * copy = new ast::ObjectDecl( 182 173 location, 183 174 "copy", 184 new ast::PointerType( createCopyFuncType( exceptionName, params ) ), 185 nullptr, 186 ast::Storage::Classes(), 187 ast::Linkage::Cforall 175 new ast::PointerType( createCopyFuncType( exceptionName, params ) ) 188 176 ); 189 177 ast::ObjectDecl * dtor = new ast::ObjectDecl( 190 178 location, 191 179 "^?{}", 192 new ast::PointerType( createDtorFuncType( exceptionName, params ) ), 193 nullptr, 194 ast::Storage::Classes(), 195 ast::Linkage::Cforall 180 new ast::PointerType( createDtorFuncType( exceptionName, params ) ) 196 181 ); 197 182 ast::ObjectDecl * msg = new ast::ObjectDecl( 198 183 location, 199 184 "msg", 200 new ast::PointerType( createMsgFuncType( exceptionName, params ) ), 201 nullptr, 202 ast::Storage::Classes(), 203 ast::Linkage::Cforall 185 new ast::PointerType( createMsgFuncType( exceptionName, params ) ) 204 186 ); 205 187 ast::StructDecl * decl = new ast::StructDecl( … … 229 211 "virtual_table", 230 212 new ast::PointerType( 231 createVTableInstType( exceptionName, params ) ), 232 nullptr, 233 ast::Storage::Classes(), 234 ast::Linkage::Cforall 213 createVTableInstType( exceptionName, params ) ) 235 214 ) ); 236 215 for ( ast::ptr<ast::Decl> const & member : members ) { … … 289 268 "this", 290 269 new ast::PointerType( 291 createExceptionInstType( exceptionName, params ) ), 292 nullptr, 293 ast::Storage::Classes(), 294 ast::Linkage::Cforall 270 createExceptionInstType( exceptionName, params ) ) 295 271 ), 296 272 new ast::ObjectDecl( … … 298 274 "that", 299 275 new ast::PointerType( 300 createExceptionInstType( exceptionName, params ) ), 301 nullptr, 302 ast::Storage::Classes(), 303 ast::Linkage::Cforall 276 createExceptionInstType( exceptionName, params ) ) 304 277 ), 305 278 }, 306 279 { 307 new ast::ObjectDecl( 308 location, 309 "", 310 new ast::VoidType(), 311 nullptr, 312 ast::Storage::Classes(), 313 ast::Linkage::Cforall 314 ), 280 new ast::ObjectDecl( location, "", new ast::VoidType() ), 315 281 }, 316 282 new ast::CompoundStmt( location, { … … 366 332 "this", 367 333 new ast::PointerType( 368 createExceptionInstType( exceptionName, params ) ), 369 nullptr, 370 ast::Storage::Classes(), 371 ast::Linkage::Cforall 334 createExceptionInstType( exceptionName, params ) ) 372 335 ), 373 336 }, … … 377 340 "", 378 341 new ast::PointerType( 379 new ast::BasicType( ast::BasicType::Char, ast::CV::Const ) ), 380 nullptr, 381 ast::Storage::Classes(), 382 ast::Linkage::Cforall 342 new ast::BasicType( ast::BasicType::Char, ast::CV::Const ) ) 383 343 ), 384 344 }, … … 432 392 tableName, 433 393 createVTableInstType( exceptionName, params ), 434 new ast::ListInit( location, std::move( inits ), std::move( dsigs ) ), 435 ast::Storage::Classes(), 436 ast::Linkage::Cforall 394 new ast::ListInit( location, std::move( inits ), std::move( dsigs ) ) 437 395 ); 438 396 } -
src/ControlStruct/ExceptTranslateNew.cpp
r12df6fe r4520b77e 32 32 } 33 33 34 class TranslateThrowsCore : public ast::WithGuards {34 class TranslateThrowsCore final : public ast::WithGuards { 35 35 const ast::ObjectDecl * terminateHandlerExcept; 36 36 enum Context { NoHandler, TerHandler, ResHandler } currentContext; … … 136 136 137 137 138 class TryMutatorCore {138 class TryMutatorCore final { 139 139 // The built in types used in translation. 140 140 const ast::StructDecl * except_decl; … … 190 190 location, 191 191 "__handler_index", 192 new ast::BasicType(ast::BasicType::SignedInt), 193 nullptr, //init 194 ast::Storage::Classes{}, 195 ast::Linkage::Cforall 192 new ast::BasicType( ast::BasicType::SignedInt ) 196 193 ); 197 194 } … … 203 200 location, 204 201 "__exception_inst", 205 new ast::PointerType( 206 new ast::StructInstType( except_decl ) 207 ), 208 nullptr, //init 209 ast::Storage::Classes{}, 210 ast::Linkage::Cforall 202 new ast::PointerType( new ast::StructInstType( except_decl ) ) 211 203 ); 212 204 } -
src/ControlStruct/LabelFixer.cc
r12df6fe r4520b77e 119 119 120 120 // Builds a table that maps a label to its defining statement. 121 std::map<Label, Statement * > * LabelFixer::resolveJumps() throw ( SemanticErrorException ){121 std::map<Label, Statement * > * LabelFixer::resolveJumps() { 122 122 std::map< Label, Statement * > *ret = new std::map< Label, Statement * >(); 123 123 for ( std::map< Label, Entry * >::iterator i = labelTable.begin(); i != labelTable.end(); ++i ) { -
src/ControlStruct/LabelFixer.h
r12df6fe r4520b77e 33 33 LabelFixer( LabelGenerator *gen = 0 ); 34 34 35 std::map < Label, Statement * > *resolveJumps() throw ( SemanticErrorException );35 std::map < Label, Statement * > *resolveJumps(); 36 36 37 37 // Declarations -
src/ControlStruct/MLEMutator.cc
r12df6fe r4520b77e 141 141 142 142 143 Statement *MultiLevelExitMutator::postmutate( BranchStmt *branchStmt ) 144 throw ( SemanticErrorException ) { 143 Statement *MultiLevelExitMutator::postmutate( BranchStmt *branchStmt ) { 145 144 std::string originalTarget = branchStmt->originalTarget; 146 145 -
src/ControlStruct/MLEMutator.h
r12df6fe r4520b77e 41 41 42 42 void premutate( CompoundStmt *cmpndStmt ); 43 Statement * postmutate( BranchStmt *branchStmt ) throw ( SemanticErrorException );43 Statement * postmutate( BranchStmt *branchStmt ); 44 44 void premutate( WhileDoStmt *whileDoStmt ); 45 45 Statement * postmutate( WhileDoStmt *whileDoStmt ); -
src/GenPoly/GenPoly.cc
r12df6fe r4520b77e 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Wed Jun 29 21:45:53 201613 // Update Count : 1 411 // Last Modified By : Andrew Beach 12 // Last Modified On : Wed Sep 14 9:24:00 2022 13 // Update Count : 15 14 14 // 15 15 … … 83 83 } 84 84 85 bool hasDynParams( const std::vector<ast::ptr<ast::Expr>> & params, const TyVarMap &tyVars, const ast::TypeSubstitution *typeSubs ) { 86 for ( ast::ptr<ast::Expr> const & param : params ) { 87 auto paramType = param.as<ast::TypeExpr>(); 88 assertf( paramType, "Aggregate parameters should be type expressions." ); 89 if ( isDynType( paramType->type, tyVars, typeSubs ) ) { 90 return true; 91 } 92 } 93 return false; 94 } 95 85 96 /// Checks a parameter list for inclusion of polymorphic parameters; will substitute according to env if present 86 97 bool includesPolyParams( std::list< Expression* >& params, const TypeSubstitution *env ) { … … 198 209 } 199 210 return 0; 211 } 212 213 const ast::BaseInstType *isDynType( const ast::Type *type, const TyVarMap &tyVars, const ast::TypeSubstitution *typeSubs ) { 214 type = replaceTypeInst( type, typeSubs ); 215 216 if ( auto inst = dynamic_cast<ast::TypeInstType const *>( type ) ) { 217 auto var = tyVars.find( inst->name ); 218 if ( var != tyVars.end() && var->second.isComplete ) { 219 return inst; 220 } 221 } else if ( auto inst = dynamic_cast<ast::StructInstType const *>( type ) ) { 222 if ( hasDynParams( inst->params, tyVars, typeSubs ) ) { 223 return inst; 224 } 225 } else if ( auto inst = dynamic_cast<ast::UnionInstType const *>( type ) ) { 226 if ( hasDynParams( inst->params, tyVars, typeSubs ) ) { 227 return inst; 228 } 229 } 230 return nullptr; 200 231 } 201 232 … … 378 409 inline D* as( B* p ) { return reinterpret_cast<D*>(p); } 379 410 411 template<typename D, typename B> 412 inline D const * as( B const * p ) { 413 return reinterpret_cast<D const *>( p ); 414 } 415 380 416 /// Flattens a declaration list 381 417 template<typename Output> … … 391 427 for ( Type* ty : src ) { 392 428 ResolvExpr::flatten( ty, out ); 429 } 430 } 431 432 void flattenList( vector<ast::ptr<ast::Type>> const & src, 433 vector<ast::ptr<ast::Type>> & out ) { 434 for ( auto const & type : src ) { 435 ResolvExpr::flatten( type, out ); 393 436 } 394 437 } … … 409 452 // if ( is<VoidType>( aparam->get_type() ) || is<VoidType>( bparam->get_type() ) ) continue; 410 453 if ( ! typesPolyCompatible( aparam->get_type(), bparam->get_type() ) ) return false; 454 } 455 456 return true; 457 } 458 459 bool paramListsPolyCompatible( 460 std::vector<ast::ptr<ast::Expr>> const & lparams, 461 std::vector<ast::ptr<ast::Expr>> const & rparams ) { 462 if ( lparams.size() != rparams.size() ) { 463 return false; 464 } 465 466 for ( auto lparam = lparams.begin(), rparam = rparams.begin() ; 467 lparam != lparams.end() ; ++lparam, ++rparam ) { 468 ast::TypeExpr const * lexpr = lparam->as<ast::TypeExpr>(); 469 assertf( lexpr, "Aggregate parameters should be type expressions" ); 470 ast::TypeExpr const * rexpr = rparam->as<ast::TypeExpr>(); 471 assertf( rexpr, "Aggregate parameters should be type expressions" ); 472 473 // xxx - might need to let VoidType be a wildcard here too; could have some voids 474 // stuffed in for dtype-statics. 475 // if ( is<VoidType>( lexpr->type() ) || is<VoidType>( bparam->get_type() ) ) continue; 476 if ( !typesPolyCompatible( lexpr->type, rexpr->type ) ) { 477 return false; 478 } 411 479 } 412 480 … … 505 573 } 506 574 575 bool typesPolyCompatible( ast::Type const * lhs, ast::Type const * rhs ) { 576 type_index const lid = typeid(*lhs); 577 578 // Polymorphic types always match: 579 if ( type_index(typeid(ast::TypeInstType)) == lid ) return true; 580 581 type_index const rid = typeid(*rhs); 582 if ( type_index(typeid(ast::TypeInstType)) == rid ) return true; 583 584 // All other types only match if they are the same type: 585 if ( lid != rid ) return false; 586 587 // So remaining types can be examined case by case. 588 // Recurse through type structure (conditions borrowed from Unify.cc). 589 590 if ( type_index(typeid(ast::BasicType)) == lid ) { 591 return as<ast::BasicType>(lhs)->kind == as<ast::BasicType>(rhs)->kind; 592 } else if ( type_index(typeid(ast::PointerType)) == lid ) { 593 ast::PointerType const * l = as<ast::PointerType>(lhs); 594 ast::PointerType const * r = as<ast::PointerType>(rhs); 595 596 // void pointers should match any other pointer type. 597 return is<ast::VoidType>( l->base.get() ) 598 || is<ast::VoidType>( r->base.get() ) 599 || typesPolyCompatible( l->base.get(), r->base.get() ); 600 } else if ( type_index(typeid(ast::ReferenceType)) == lid ) { 601 ast::ReferenceType const * l = as<ast::ReferenceType>(lhs); 602 ast::ReferenceType const * r = as<ast::ReferenceType>(rhs); 603 604 // void references should match any other reference type. 605 return is<ast::VoidType>( l->base.get() ) 606 || is<ast::VoidType>( r->base.get() ) 607 || typesPolyCompatible( l->base.get(), r->base.get() ); 608 } else if ( type_index(typeid(ast::ArrayType)) == lid ) { 609 ast::ArrayType const * l = as<ast::ArrayType>(lhs); 610 ast::ArrayType const * r = as<ast::ArrayType>(rhs); 611 612 if ( l->isVarLen ) { 613 if ( !r->isVarLen ) return false; 614 } else { 615 if ( r->isVarLen ) return false; 616 617 auto lc = l->dimension.as<ast::ConstantExpr>(); 618 auto rc = r->dimension.as<ast::ConstantExpr>(); 619 if ( lc && rc && lc->intValue() != rc->intValue() ) { 620 return false; 621 } 622 } 623 624 return typesPolyCompatible( l->base.get(), r->base.get() ); 625 } else if ( type_index(typeid(ast::FunctionType)) == lid ) { 626 ast::FunctionType const * l = as<ast::FunctionType>(lhs); 627 ast::FunctionType const * r = as<ast::FunctionType>(rhs); 628 629 std::vector<ast::ptr<ast::Type>> lparams, rparams; 630 flattenList( l->params, lparams ); 631 flattenList( r->params, rparams ); 632 if ( lparams.size() != rparams.size() ) return false; 633 for ( unsigned i = 0; i < lparams.size(); ++i ) { 634 if ( !typesPolyCompatible( lparams[i], rparams[i] ) ) return false; 635 } 636 637 std::vector<ast::ptr<ast::Type>> lrets, rrets; 638 flattenList( l->returns, lrets ); 639 flattenList( r->returns, rrets ); 640 if ( lrets.size() != rrets.size() ) return false; 641 for ( unsigned i = 0; i < lrets.size(); ++i ) { 642 if ( !typesPolyCompatible( lrets[i], rrets[i] ) ) return false; 643 } 644 return true; 645 } else if ( type_index(typeid(ast::StructInstType)) == lid ) { 646 ast::StructInstType const * l = as<ast::StructInstType>(lhs); 647 ast::StructInstType const * r = as<ast::StructInstType>(rhs); 648 649 if ( l->name != r->name ) return false; 650 return paramListsPolyCompatible( l->params, r->params ); 651 } else if ( type_index(typeid(ast::UnionInstType)) == lid ) { 652 ast::UnionInstType const * l = as<ast::UnionInstType>(lhs); 653 ast::UnionInstType const * r = as<ast::UnionInstType>(rhs); 654 655 if ( l->name != r->name ) return false; 656 return paramListsPolyCompatible( l->params, r->params ); 657 } else if ( type_index(typeid(ast::EnumInstType)) == lid ) { 658 ast::EnumInstType const * l = as<ast::EnumInstType>(lhs); 659 ast::EnumInstType const * r = as<ast::EnumInstType>(rhs); 660 661 return l->name == r->name; 662 } else if ( type_index(typeid(ast::TraitInstType)) == lid ) { 663 ast::TraitInstType const * l = as<ast::TraitInstType>(lhs); 664 ast::TraitInstType const * r = as<ast::TraitInstType>(rhs); 665 666 return l->name == r->name; 667 } else if ( type_index(typeid(ast::TupleType)) == lid ) { 668 ast::TupleType const * l = as<ast::TupleType>(lhs); 669 ast::TupleType const * r = as<ast::TupleType>(rhs); 670 671 std::vector<ast::ptr<ast::Type>> ltypes, rtypes; 672 flattenList( l->types, ( ltypes ) ); 673 flattenList( r->types, ( rtypes ) ); 674 if ( ltypes.size() != rtypes.size() ) return false; 675 676 for ( unsigned i = 0 ; i < ltypes.size() ; ++i ) { 677 if ( !typesPolyCompatible( ltypes[i], rtypes[i] ) ) return false; 678 } 679 return true; 680 // The remaining types (VoidType, VarArgsType, ZeroType & OneType) 681 // have no variation so will always be equal. 682 } else { 683 return true; 684 } 685 } 686 507 687 namespace { 508 688 // temporary hack to avoid re-implementing anything related to TyVarMap -
src/GenPoly/GenPoly.h
r12df6fe r4520b77e 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Sat Jul 22 09:22:57 201713 // Update Count : 711 // Last Modified By : Andrew Beach 12 // Last Modified On : Fri Aug 19 16:03:00 2022 13 // Update Count : 8 14 14 // 15 15 … … 27 27 namespace GenPoly { 28 28 29 // TODO Via some tricks this works for ast::TypeDecl::Data as well. 29 30 typedef ErasableScopedMap< std::string, TypeDecl::Data > TyVarMap; 31 30 32 /// Replaces a TypeInstType by its referrent in the environment, if applicable 31 33 Type* replaceTypeInst( Type* type, const TypeSubstitution* env ); … … 41 43 /// returns dynamic-layout type if is dynamic-layout type in tyVars, NULL otherwise; will look up substitution in env if provided 42 44 ReferenceToType *isDynType( Type *type, const TyVarMap &tyVars, const TypeSubstitution *env = 0 ); 45 const ast::BaseInstType *isDynType( const ast::Type *type, const TyVarMap &tyVars, const ast::TypeSubstitution *typeSubs = 0 ); 43 46 44 47 /// true iff function has dynamic-layout return type under the given type variable map … … 83 86 /// true iff types are structurally identical, where TypeInstType's match any type. 84 87 bool typesPolyCompatible( Type *aty, Type *bty ); 88 bool typesPolyCompatible( ast::Type const * lhs, ast::Type const * rhs ); 85 89 86 90 /// true if arg requires boxing given exprTyVars -
src/GenPoly/InstantiateGeneric.h
r12df6fe r4520b77e 19 19 20 20 class Declaration; 21 namespace ast { 22 class TranslationUnit; 23 } 21 24 22 25 namespace GenPoly { 23 /// Replaces all generic types that have static layout with concrete instantiations. 24 /// Types with concrete values for otype parameters will be template-expanded, while 25 /// dtype and ftype parameters will be replaced by the appropriate void type. 26 void instantiateGeneric( std::list< Declaration* > &translationUnit ); 26 /// Replaces all generic types that have static layout with concrete 27 /// instantiations. Types with concrete values for otype parameters will be 28 /// template-expanded, while dtype and ftype parameters will be replaced by 29 /// the appropriate void type. 30 void instantiateGeneric( std::list< Declaration* > &translationUnit ); 31 void instantiateGeneric( ast::TranslationUnit & translationUnit ); 27 32 } // namespace GenPoly 28 33 -
src/GenPoly/ScrubTyVars.cc
r12df6fe r4520b77e 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Thu Mar 16 15:44:27 201713 // Update Count : 311 // Last Modified By : Andrew Beach 12 // Last Modified On : Fri Aug 19 16:10:00 2022 13 // Update Count : 4 14 14 // 15 15 16 16 #include <utility> // for pair 17 17 18 #include "AST/Pass.hpp" 18 19 #include "GenPoly.h" // for mangleType, TyVarMap, alignof... 19 20 #include "GenPoly/ErasableScopedMap.h" // for ErasableScopedMap<>::const_it... 20 21 #include "ScrubTyVars.h" 22 #include "SymTab/Mangler.h" // for mangle, typeMode 21 23 #include "SynTree/Declaration.h" // for TypeDecl, TypeDecl::Data, Typ... 22 24 #include "SynTree/Expression.h" // for Expression (ptr only), NameExpr … … 112 114 return pointer; 113 115 } 116 117 namespace { 118 119 enum class ScrubMode { 120 FromMap, 121 DynamicFromMap, 122 All, 123 }; 124 125 struct ScrubTypeVars : 126 public ast::WithGuards, 127 public ast::WithShortCircuiting, 128 public ast::WithVisitorRef<ScrubTypeVars> { 129 130 ScrubTypeVars( ScrubMode m, TyVarMap const * tv ) : 131 mode ( m ), typeVars( tv ) {} 132 133 void previsit( ast::TypeInstType const * ) { visit_children = false; } 134 void previsit( ast::StructInstType const * ) { visit_children = false; } 135 void previsit( ast::UnionInstType const * ) { visit_children = false; } 136 void previsit( ast::SizeofExpr const * expr ) { primeBaseScrub( expr->type ); } 137 void previsit( ast::AlignofExpr const * expr ) { primeBaseScrub( expr->type ); } 138 void previsit( ast::PointerType const * type ) { primeBaseScrub( type->base ); } 139 140 ast::Type const * postvisit( ast::TypeInstType const * type ); 141 ast::Type const * postvisit( ast::StructInstType const * type ); 142 ast::Type const * postvisit( ast::UnionInstType const * type ); 143 ast::Expr const * postvisit( ast::SizeofExpr const * expr ); 144 ast::Expr const * postvisit( ast::AlignofExpr const * expr ); 145 ast::Type const * postvisit( ast::PointerType const * type ); 146 147 private: 148 ScrubMode const mode; 149 /// Type varriables to scrub. 150 TyVarMap const * const typeVars; 151 /// Value cached by primeBaseScrub. 152 ast::Type const * dynType = nullptr; 153 154 /// Returns the type if it should be scrubbed, nullptr otherwise. 155 ast::Type const * shouldScrub( ast::Type const * type ) { 156 switch ( mode ) { 157 case ScrubMode::FromMap: 158 return isPolyType( type, *typeVars ); 159 case ScrubMode::DynamicFromMap: 160 return isDynType( type, *typeVars ); 161 case ScrubMode::All: 162 return isPolyType( type ); 163 default: 164 assertf( false, "Invalid ScrubMode in shouldScrub." ); 165 throw; 166 } 167 } 168 169 void primeBaseScrub( ast::Type const * type ) { 170 // Need to determine whether type needs to be scrubbed to 171 // determine whether automatic recursion is necessary. 172 if ( ast::Type const * t = shouldScrub( type ) ) { 173 visit_children = false; 174 GuardValue( dynType ) = t; 175 } 176 } 177 178 ast::Type const * postvisitAggregateType( 179 ast::BaseInstType const * type ) { 180 if ( !shouldScrub( type ) ) return type; 181 return new ast::PointerType( new ast::VoidType( type->qualifiers ) ); 182 } 183 }; 184 185 ast::Type const * ScrubTypeVars::postvisit( ast::TypeInstType const * type ) { 186 // This implies that mode == ScrubMode::All. 187 if ( !typeVars ) { 188 if ( ast::TypeDecl::Ftype == type->kind ) { 189 return new ast::PointerType( 190 new ast::FunctionType( ast::FixedArgs ) ); 191 } else { 192 return new ast::PointerType( 193 new ast::VoidType( type->qualifiers ) ); 194 } 195 } 196 197 auto typeVar = typeVars->find( type->name ); 198 if ( typeVar == typeVars->end() ) { 199 return type; 200 } 201 202 switch ( typeVar->second.kind ) { 203 case ast::TypeDecl::Dtype: 204 case ast::TypeDecl::Ttype: 205 return new ast::PointerType( 206 new ast::VoidType( type->qualifiers ) ); 207 case ast::TypeDecl::Ftype: 208 return new ast::PointerType( 209 new ast::FunctionType( ast::VariableArgs ) ); 210 default: 211 assertf( false, 212 "Unhandled type variable kind: %d", typeVar->second.kind ); 213 throw; // Just in case the assert is removed, stop here. 214 } 215 } 216 217 ast::Type const * ScrubTypeVars::postvisit( ast::StructInstType const * type ) { 218 return postvisitAggregateType( type ); 219 } 220 221 ast::Type const * ScrubTypeVars::postvisit( ast::UnionInstType const * type ) { 222 return postvisitAggregateType( type ); 223 } 224 225 ast::Expr const * ScrubTypeVars::postvisit( ast::SizeofExpr const * expr ) { 226 // sizeof( T ) becomes the _sizeof_T parameter. 227 if ( dynType ) { 228 return new ast::NameExpr( expr->location, 229 sizeofName( Mangle::mangle( dynType, Mangle::typeMode() ) ) ); 230 } else { 231 return expr; 232 } 233 } 234 235 ast::Expr const * ScrubTypeVars::postvisit( ast::AlignofExpr const * expr ) { 236 // alignof( T ) becomes the _alignof_T parameter. 237 if ( dynType ) { 238 return new ast::NameExpr( expr->location, 239 alignofName( Mangle::mangle( dynType, Mangle::typeMode() ) ) ); 240 } else { 241 return expr; 242 } 243 } 244 245 ast::Type const * ScrubTypeVars::postvisit( ast::PointerType const * type ) { 246 if ( dynType ) { 247 ast::Type * ret = ast::mutate( dynType->accept( *visitor ) ); 248 ret->qualifiers |= type->qualifiers; 249 return ret; 250 } else { 251 return type; 252 } 253 } 254 255 const ast::Node * scrubTypeVarsBase( 256 const ast::Node * target, 257 ScrubMode mode, const TyVarMap * typeVars ) { 258 if ( ScrubMode::All == mode ) { 259 assert( nullptr == typeVars ); 260 } else { 261 assert( nullptr != typeVars ); 262 } 263 ast::Pass<ScrubTypeVars> visitor( mode, typeVars ); 264 return target->accept( visitor ); 265 } 266 267 } // namespace 268 269 template<> 270 ast::Node const * scrubAllTypeVars<ast::Node>( const ast::Node * target ) { 271 return scrubTypeVarsBase( target, ScrubMode::All, nullptr ); 272 } 273 114 274 } // namespace GenPoly 115 275 -
src/GenPoly/ScrubTyVars.h
r12df6fe r4520b77e 9 9 // Author : Richard C. Bilson 10 10 // Created On : Mon May 18 07:44:20 2015 11 // Last Modified By : Peter A. Buhr12 // Last Modified On : Sat Jul 22 09:21:47 201713 // Update Count : 211 // Last Modified By : Andrew Beach 12 // Last Modified On : Fri Aug 19 14:14:00 2022 13 // Update Count : 3 14 14 // 15 15 … … 18 18 #include <cassert> // for assert 19 19 20 #include "AST/Fwd.hpp" // for Node 20 21 #include "Common/PassVisitor.h" 21 22 #include "GenPoly.h" // for TyVarMap, isPolyType, isDynType … … 108 109 } 109 110 111 /// For all polymorphic types, replaces generic types, with the appropriate 112 /// void type, and sizeof/alignof expressions with the proper variable. 113 template<typename node_t> 114 node_t const * scrubAllTypeVars( node_t const * target ) { 115 return strict_dynamic_cast<node_t const *>( scrubAllTypeVars<ast::Node>( target ) ); 116 } 117 118 template<> 119 ast::Node const * scrubAllTypeVars<ast::Node>( const ast::Node * target ); 120 110 121 } // namespace GenPoly 111 122 -
src/GenPoly/Specialize.h
r12df6fe r4520b77e 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // Specialize.h -- 7 // Specialize.h -- Generate thunks to specialize polymorphic functions. 8 8 // 9 9 // Author : Richard C. Bilson … … 17 17 18 18 #include <list> // for list 19 #include "AST/TranslationUnit.hpp"20 19 21 20 class Declaration; 21 namespace ast { 22 class TranslationUnit; 23 } 22 24 23 25 namespace GenPoly { -
src/GenPoly/SpecializeNew.cpp
r12df6fe r4520b77e 5 5 // file "LICENCE" distributed with Cforall. 6 6 // 7 // SpecializeNew.cpp -- 7 // SpecializeNew.cpp -- Generate thunks to specialize polymorphic functions. 8 8 // 9 9 // Author : Andrew Beach … … 201 201 *formal, *actual, getInferredParams( expr ) ); 202 202 } 203 //for ( auto pair : group_iterate( formal->params, mut->args ) ) {204 // const ast::ptr<ast::Type> & formal = std::get<0>( pair );205 // ast::ptr<ast::Expr> & actual = std::get<1>( pair );206 // *actual = doSpecialization( (*actual)->location, *formal, *actual, getInferredParams( expr ) );207 //}208 203 return mut; 209 204 } … … 227 222 } 228 223 229 // Restructures the arguments to match the structure of the formal parameters 230 // of the actual function. [begin, end) are the exploded arguments. 231 template<typename Iterator, typename OutIterator> 232 void structureArg( const CodeLocation & location, const ast::Type * type, 233 Iterator & begin, Iterator end, OutIterator out ) { 234 if ( auto tuple = dynamic_cast<const ast::TupleType *>( type ) ) { 235 std::vector<ast::ptr<ast::Expr>> exprs; 236 for ( const ast::Type * t : *tuple ) { 237 structureArg( location, t, begin, end, std::back_inserter( exprs ) ); 238 } 239 *out++ = new ast::TupleExpr( location, std::move( exprs ) ); 240 } else { 241 assertf( begin != end, "reached the end of the arguments while structuring" ); 242 *out++ = *begin++; 243 } 244 } 245 246 #if 0 224 // Restructures arguments to match the structure of the formal parameters 225 // of the actual function. Returns the next structured argument. 247 226 template<typename Iterator> 248 227 const ast::Expr * structureArg( 249 228 const CodeLocation& location, const ast::ptr<ast::Type> & type, 250 229 Iterator & begin, const Iterator & end ) { 251 if ( auto tuple = type ->as<ast::TupleType>() ) {230 if ( auto tuple = type.as<ast::TupleType>() ) { 252 231 std::vector<ast::ptr<ast::Expr>> exprs; 253 for ( const ast:: Type *t : *tuple ) {232 for ( const ast::ptr<ast::Type> & t : *tuple ) { 254 233 exprs.push_back( structureArg( location, t, begin, end ) ); 255 234 } … … 260 239 } 261 240 } 262 #endif 263 264 namespace { 265 struct TypeInstFixer : public ast::WithShortCircuiting { 266 std::map<const ast::TypeDecl *, std::pair<int, int>> typeMap; 267 268 void previsit(const ast::TypeDecl *) { visit_children = false; } 269 const ast::TypeInstType * postvisit(const ast::TypeInstType * typeInst) { 270 if (typeMap.count(typeInst->base)) { 271 ast::TypeInstType * newInst = mutate(typeInst); 272 newInst->expr_id = typeMap[typeInst->base].first; 273 newInst->formal_usage = typeMap[typeInst->base].second; 274 return newInst; 275 } 276 return typeInst; 277 } 278 }; 279 } 241 242 struct TypeInstFixer final : public ast::WithShortCircuiting { 243 std::map<const ast::TypeDecl *, std::pair<int, int>> typeMap; 244 245 void previsit(const ast::TypeDecl *) { visit_children = false; } 246 const ast::TypeInstType * postvisit(const ast::TypeInstType * typeInst) { 247 if (typeMap.count(typeInst->base)) { 248 ast::TypeInstType * newInst = mutate(typeInst); 249 auto const & pair = typeMap[typeInst->base]; 250 newInst->expr_id = pair.first; 251 newInst->formal_usage = pair.second; 252 return newInst; 253 } 254 return typeInst; 255 } 256 }; 280 257 281 258 const ast::Expr * SpecializeCore::createThunkFunction( … … 291 268 // Must replace only occurrences of type variables 292 269 // that occure free in the thunk's type. 293 //ast::TypeSubstitution::ApplyResult<ast::FunctionType>294 // typeSubs->applyFree( newType );295 270 auto result = typeSubs->applyFree( newType ); 296 271 newType = result.node.release(); … … 300 275 using DeclVector = std::vector<ast::ptr<ast::TypeDecl>>; 301 276 302 //const std::string & thunkName = thunkNamer.newName();303 //UniqueName paramNamer(thunkName + "Param");304 277 UniqueName paramNamer( paramPrefix ); 305 278 306 //auto toParamDecl = [&location, ¶mNamer]( const ast::Type * type ) {307 // return new ast::ObjectDecl(308 // location, paramNamer.newName(), ast::deepCopy( type ) );309 //};310 311 279 // Create new thunk with same signature as formal type. 312 313 // std::map<const ast::TypeDecl *, std::pair<int, int>> typeMap;314 280 ast::Pass<TypeInstFixer> fixer; 315 281 for (const auto & kv : newType->forall) { 316 282 if (fixer.core.typeMap.count(kv->base)) { 317 std::cerr << location << ' ' << kv->base->name << ' ' << kv->expr_id << '_' << kv->formal_usage << ',' 318 << fixer.core.typeMap[kv->base].first << '_' << fixer.core.typeMap[kv->base].second << std::endl; 283 std::cerr << location << ' ' << kv->base->name 284 << ' ' << kv->expr_id << '_' << kv->formal_usage 285 << ',' << fixer.core.typeMap[kv->base].first 286 << '_' << fixer.core.typeMap[kv->base].second << std::endl; 319 287 assertf(false, "multiple formals in specialize"); 320 288 } … … 322 290 fixer.core.typeMap[kv->base] = std::make_pair(kv->expr_id, kv->formal_usage); 323 291 } 324 } 292 } 325 293 326 294 ast::CompoundStmt * thunkBody = new ast::CompoundStmt( location ); … … 345 313 ); 346 314 347 // thunkFunc->accept(fixer);348 315 thunkFunc->fixUniqueId(); 349 350 351 316 352 317 // Thunks may be generated and not used, avoid them. … … 375 340 // Name each thunk parameter and explode it. 376 341 // These are then threaded back into the actual function call. 377 //param->name = paramNamer.newName();378 342 ast::DeclWithType * mutParam = ast::mutate( param.get() ); 379 // - Should be renamed earlier. -380 //mutParam->name = paramNamer.newName();381 343 explodeSimple( location, new ast::VariableExpr( location, mutParam ), 382 344 std::back_inserter( args ) ); … … 388 350 argBegin = args.begin(), argEnd = args.end(); 389 351 for ( const auto & actualArg : actualType->params ) { 390 structureArg( location, actualArg.get(), argBegin, argEnd,391 st d::back_inserter( app->args) );352 app->args.push_back( 353 structureArg( location, actualArg.get(), argBegin, argEnd ) ); 392 354 } 393 355 assertf( argBegin == argEnd, "Did not structure all arguments." ); … … 469 431 // Create thunks for the inferred parameters. 470 432 // This is not needed for intrinsic calls, because they aren't 471 // actually passed 472 // 473 // need to handle explicit params before inferred params so that 474 // explicit params do not recieve a changed set of inferParams (and 475 // change them again) alternatively, if order starts to matter then 476 // copy appExpr's inferParams and pass them to handleExplicitParams. 433 // actually passed to the function. It needs to handle explicit params 434 // before inferred params so that explicit params do not recieve a 435 // changed set of inferParams (and change them again). 436 // Alternatively, if order starts to matter then copy expr's inferParams 437 // and pass them to handleExplicitParams. 477 438 ast::ApplicationExpr * mut = handleExplicitParams( expr ); 478 439 if ( !mut->inferred.hasParams() ) { … … 500 461 if ( specialized != expr->arg ) { 501 462 // Assume that the specialization incorporates the cast. 502 std::cerr << expr <<std::endl;503 463 return specialized; 504 464 } else { -
src/GenPoly/module.mk
r12df6fe r4520b77e 27 27 GenPoly/FindFunction.cc \ 28 28 GenPoly/FindFunction.h \ 29 GenPoly/InstantiateGenericNew.cpp \ 29 30 GenPoly/InstantiateGeneric.cc \ 30 31 GenPoly/InstantiateGeneric.h \ -
src/InitTweak/FixInitNew.cpp
r12df6fe r4520b77e 595 595 if ( arg && isIntrinsicCallExpr( dtor ) ) { 596 596 return new ast::CommaExpr(loc, arg, new ast::VariableExpr(loc, ret ) ); 597 // return;598 597 } 599 598 … … 654 653 if ( ! result->isVoid() ) { 655 654 static UniqueName retNamer("_tmp_cp_ret"); 656 // result = result->clone();657 655 auto subResult = env->apply( result ).node; 658 656 auto ret = new ast::ObjectDecl(loc, retNamer.newName(), subResult, nullptr ); … … 833 831 } 834 832 835 // stmtsToAddBefore.splice( stmtsToAddBefore.end(), fixer.pass.stmtsToAddBefore );836 // stmtsToAddAfter.splice( stmtsToAddAfter.end(), fixer.pass.stmtsToAddAfter );837 833 unqMap[mutExpr->id] = mutExpr; 838 834 } else { … … 1349 1345 auto tmp = new ast::ObjectDecl(loc, tempNamer.newName(), callExpr->args.front()->result ); 1350 1346 declsToAddBefore.push_back( tmp ); 1351 // delete ctorExpr;1352 1347 1353 1348 // build assignment and replace constructor's first argument with new temporary -
src/InitTweak/InitTweak.cc
r12df6fe r4520b77e 27 27 #include "AST/Stmt.hpp" 28 28 #include "AST/Type.hpp" 29 #include "CodeGen/OperatorTable.h" // for isConstructor, isDestructor, isCto... 29 30 #include "Common/PassVisitor.h" 30 31 #include "Common/SemanticError.h" // for SemanticError … … 770 771 std::list< Expression * > callExprs; 771 772 collectCtorDtorCalls( stmt, callExprs ); 772 // if ( callExprs.empty() ) return false; // xxx - do I still need this check?773 773 return std::all_of( callExprs.begin(), callExprs.end(), pred); 774 774 } … … 901 901 } else if ( VariableExpr * varExpr = dynamic_cast< VariableExpr * >( func ) ) { 902 902 return varExpr->get_var()->get_name(); 903 } else if ( CastExpr * castExpr = dynamic_cast< CastExpr * >( func ) ) {903 } else if ( CastExpr * castExpr = dynamic_cast< CastExpr * >( func ) ) { 904 904 return funcName( castExpr->get_arg() ); 905 905 } else if ( MemberExpr * memberExpr = dynamic_cast< MemberExpr * >( func ) ) { … … 923 923 } else if ( const ast::VariableExpr * varExpr = dynamic_cast< const ast::VariableExpr * >( func ) ) { 924 924 return varExpr->var->name; 925 } else if ( const ast::CastExpr * castExpr = dynamic_cast< const ast::CastExpr * >( func ) ) {925 } else if ( const ast::CastExpr * castExpr = dynamic_cast< const ast::CastExpr * >( func ) ) { 926 926 return funcName( castExpr->arg ); 927 927 } else if ( const ast::MemberExpr * memberExpr = dynamic_cast< const ast::MemberExpr * >( func ) ) { … … 991 991 992 992 Type * isPointerType( Type * type ) { 993 if ( getPointerBase( type ) ) return type; 994 else return nullptr; 993 return getPointerBase( type ) ? type : nullptr; 995 994 } 996 995 … … 1014 1013 src = new AddressExpr( src ); 1015 1014 } 1016 // src = new CastExpr( src, new ReferenceType( noQualifiers, src->result->stripReferences()->clone() ) );1017 1015 } 1018 1016 return new ApplicationExpr( VariableExpr::functionPointer( assign ), { dst, src } ); … … 1167 1165 } 1168 1166 1169 bool isConstructor( const std::string & str ) { return str == "?{}"; }1170 bool isDestructor( const std::string & str ) { return str == "^?{}"; }1171 bool isAssignment( const std::string & str ) { return str == "?=?"; }1172 bool isCtorDtor( const std::string & str ) { return isConstructor( str ) || isDestructor( str ); }1173 bool isCtorDtorAssign( const std::string & str ) { return isCtorDtor( str ) || isAssignment( str ); }1174 1175 1167 const FunctionDecl * isCopyFunction( const Declaration * decl, const std::string & fname ) { 1176 1168 const FunctionDecl * function = dynamic_cast< const FunctionDecl * >( decl ); … … 1192 1184 1193 1185 bool isAssignment( const ast::FunctionDecl * decl ) { 1194 return isAssignment( decl->name ) && isCopyFunction( decl );1186 return CodeGen::isAssignment( decl->name ) && isCopyFunction( decl ); 1195 1187 } 1196 1188 1197 1189 bool isDestructor( const ast::FunctionDecl * decl ) { 1198 return isDestructor( decl->name );1190 return CodeGen::isDestructor( decl->name ); 1199 1191 } 1200 1192 1201 1193 bool isDefaultConstructor( const ast::FunctionDecl * decl ) { 1202 return isConstructor( decl->name ) && 1 == decl->params.size();1194 return CodeGen::isConstructor( decl->name ) && 1 == decl->params.size(); 1203 1195 } 1204 1196 1205 1197 bool isCopyConstructor( const ast::FunctionDecl * decl ) { 1206 return isConstructor( decl->name ) && 2 == decl->params.size();1198 return CodeGen::isConstructor( decl->name ) && 2 == decl->params.size(); 1207 1199 } 1208 1200 … … 1222 1214 } 1223 1215 const FunctionDecl * isDestructor( const Declaration * decl ) { 1224 if ( isDestructor( decl->name ) ) {1216 if ( CodeGen::isDestructor( decl->name ) ) { 1225 1217 return dynamic_cast< const FunctionDecl * >( decl ); 1226 1218 } … … 1228 1220 } 1229 1221 const FunctionDecl * isDefaultConstructor( const Declaration * decl ) { 1230 if ( isConstructor( decl->name ) ) {1222 if ( CodeGen::isConstructor( decl->name ) ) { 1231 1223 if ( const FunctionDecl * func = dynamic_cast< const FunctionDecl * >( decl ) ) { 1232 1224 if ( func->type->parameters.size() == 1 ) { … … 1249 1241 static const char * const tlsd_section = ".tdata" ASM_COMMENT; 1250 1242 void addDataSectionAttribute( ObjectDecl * objDecl ) { 1251 const bool is_tls = objDecl->get_storageClasses().is_threadlocal ;1243 const bool is_tls = objDecl->get_storageClasses().is_threadlocal_any(); 1252 1244 const char * section = is_tls ? tlsd_section : data_section; 1253 1245 objDecl->attributes.push_back(new Attribute("section", { … … 1257 1249 1258 1250 void addDataSectionAttribute( ast::ObjectDecl * objDecl ) { 1259 const bool is_tls = objDecl->storage.is_threadlocal ;1251 const bool is_tls = objDecl->storage.is_threadlocal_any(); 1260 1252 const char * section = is_tls ? tlsd_section : data_section; 1261 1253 objDecl->attributes.push_back(new ast::Attribute("section", { -
src/Makefile.am
r12df6fe r4520b77e 71 71 EXTRA_DIST = include/cassert include/optional BasicTypes-gen.cc 72 72 73 AM_CXXFLAGS = @HOST_FLAGS@ -Wno-deprecated -Wall -Wextra -Werror=return-type -DDEBUG_ALL -I./Parser -I$(srcdir)/Parser -I$(srcdir)/include -DYY_NO_INPUT -O3 -g -std=c++1 4$(TCMALLOCFLAG)73 AM_CXXFLAGS = @HOST_FLAGS@ -Wno-deprecated -Wall -Wextra -Werror=return-type -DDEBUG_ALL -I./Parser -I$(srcdir)/Parser -I$(srcdir)/include -DYY_NO_INPUT -O3 -g -std=c++17 $(TCMALLOCFLAG) 74 74 AM_LDFLAGS = @HOST_FLAGS@ -Xlinker -export-dynamic 75 75 ARFLAGS = cr -
src/Parser/DeclarationNode.cc
r12df6fe r4520b77e 10 10 // Created On : Sat May 16 12:34:05 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jul 14 17:36:57 202113 // Update Count : 11 5412 // Last Modified On : Mon Aug 8 17:07:00 2022 13 // Update Count : 1185 14 14 // 15 15 … … 128 128 if ( name ) { 129 129 os << *name << ": "; 130 } else {131 os << "unnamed: ";132 130 } // if 133 131 … … 154 152 initializer->printOneLine( os ); 155 153 os << " maybe constructed? " << initializer->get_maybeConstructed(); 156 157 } // if 154 } // if 155 156 for ( Attribute * attr: reverseIterate( attributes ) ) { 157 os << string( indent + 2, ' ' ) << "attr " << attr->name.c_str(); 158 } // for 158 159 159 160 os << endl; … … 243 244 newnode->type = new TypeData( TypeData::Aggregate ); 244 245 newnode->type->aggregate.kind = kind; 245 newnode->type->aggregate.name = name == nullptr ? new string( DeclarationNode::anonymous.newName() ) : name;246 newnode->type->aggregate.name = name == nullptr ? new string( DeclarationNode::anonymous.newName() ) : name; 246 247 newnode->type->aggregate.actuals = actuals; 247 248 newnode->type->aggregate.fields = fields; … … 262 263 newnode->type->enumeration.typed = typed; 263 264 if ( base && base->type) { 264 newnode->type->base = base->type; 265 newnode->type->base = base->type; 265 266 } // if 266 267 … … 504 505 } // for 505 506 // src is the new item being added and has a single bit 506 } else if ( ! src->storageClasses.is_threadlocal ) { // conflict ?507 } else if ( ! src->storageClasses.is_threadlocal_any() ) { // conflict ? 507 508 appendError( error, string( "conflicting " ) + Type::StorageClassesNames[storageClasses.ffs()] + 508 509 " & " + Type::StorageClassesNames[src->storageClasses.ffs()] ); … … 518 519 storageClasses |= q->storageClasses; 519 520 520 for ( Attribute * attr: reverseIterate( q->attributes ) ) {521 for ( Attribute * attr: reverseIterate( q->attributes ) ) { 521 522 attributes.push_front( attr->clone() ); 522 523 } // for … … 683 684 } // if 684 685 delete o; 686 685 687 return this; 686 688 } -
src/Parser/TypeData.cc
r12df6fe r4520b77e 9 9 // Author : Rodolfo G. Esteves 10 10 // Created On : Sat May 16 15:12:51 2015 11 // Last Modified By : Henry Xue12 // Last Modified On : Tue Jul 20 04:10:50 202113 // Update Count : 67 311 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue May 10 22:36:52 2022 13 // Update Count : 677 14 14 // 15 15 … … 283 283 if ( signedness != DeclarationNode::NoSignedness ) os << DeclarationNode::signednessNames[ signedness ] << " "; 284 284 if ( length != DeclarationNode::NoLength ) os << DeclarationNode::lengthNames[ length ] << " "; 285 if ( complextype == DeclarationNode::NoComplexType ) { // basic type 286 assert( basictype != DeclarationNode::NoBasicType ); 287 os << DeclarationNode::basicTypeNames[ basictype ] << " "; 288 } else { // complex type 289 // handle double _Complex 290 if ( basictype != DeclarationNode::NoBasicType ) os << DeclarationNode::basicTypeNames[ basictype ] << " "; 291 os << DeclarationNode::complexTypeNames[ complextype ] << " "; 292 } // if 285 if ( complextype != DeclarationNode::NoComplexType ) os << DeclarationNode::complexTypeNames[ complextype ] << " "; 286 if ( basictype != DeclarationNode::NoBasicType ) os << DeclarationNode::basicTypeNames[ basictype ] << " "; 293 287 break; 294 288 case Pointer: … … 437 431 __attribute__((fallthrough)); 438 432 #endif 433 // FALL THROUGH 439 434 case Typeof: 440 435 os << "type-of expression "; … … 442 437 typeexpr->print( os, indent + 2 ); 443 438 } // if 439 break; 440 case Vtable: 441 os << "vtable"; 444 442 break; 445 443 case Builtin: -
src/Parser/TypeData.h
r12df6fe r4520b77e 10 10 // Created On : Sat May 16 15:18:36 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed Jul 14 17:44:05 202113 // Update Count : 20 212 // Last Modified On : Tue May 10 22:18:49 2022 13 // Update Count : 203 14 14 // 15 15 … … 27 27 struct TypeData { 28 28 enum Kind { Basic, Pointer, Reference, Array, Function, Aggregate, AggregateInst, Enum, EnumConstant, Symbolic, 29 SymbolicInst, Tuple, Typeof, Basetypeof, Vtable, Builtin, GlobalScope, Qualified, Unknown };29 SymbolicInst, Tuple, Basetypeof, Typeof, Vtable, Builtin, GlobalScope, Qualified, Unknown }; 30 30 31 31 struct Aggregate_t { -
src/Parser/TypedefTable.cc
r12df6fe r4520b77e 10 10 // Created On : Sat May 16 15:20:13 2015 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Wed May 19 08:30:14 202113 // Update Count : 2 6212 // Last Modified On : Tue Feb 15 08:27:24 2022 13 // Update Count : 275 14 14 // 15 15 … … 18 18 #include <cassert> // for assert 19 19 #include <iostream> 20 using namespace std; 20 21 21 22 #if 0 … … 28 29 29 30 debugPrint( 30 static const char *kindName( int kind ) {31 switch ( kind ) {32 case IDENTIFIER: return "identifier";33 case TYPEDIMname: return "typedim";34 case TYPEDEFname: return "typedef";35 case TYPEGENname: return "typegen";36 default:37 cerr << "Error: cfa-cpp internal error, invalid kind of identifier" << endl;38 abort();39 } // switch40 } // kindName41 ) 31 static const char *kindName( int kind ) { 32 switch ( kind ) { 33 case IDENTIFIER: return "identifier"; 34 case TYPEDIMname: return "typedim"; 35 case TYPEDEFname: return "typedef"; 36 case TYPEGENname: return "typegen"; 37 default: 38 cerr << "Error: cfa-cpp internal error, invalid kind of identifier" << endl; 39 abort(); 40 } // switch 41 } // kindName 42 ); 42 43 43 44 TypedefTable::~TypedefTable() { … … 80 81 81 82 void TypedefTable::addToScope( const string & identifier, int kind, const char * locn __attribute__((unused)) ) { 82 autoscope = kindTable.currentScope();83 KindTable::size_type scope = kindTable.currentScope(); 83 84 debugPrint( cerr << "Adding current at " << locn << " " << identifier << " as " << kindName( kind ) << " scope " << scope << endl ); 84 85 kindTable.insertAt( scope, identifier, kind ); … … 86 87 87 88 void TypedefTable::addToEnclosingScope( const string & identifier, int kind, const char * locn __attribute__((unused)) ) { 88 autoscope = kindTable.currentScope() - 1 - kindTable.getNote( kindTable.currentScope() - 1 ).level;89 // autoscope = level - kindTable.getNote( kindTable.currentScope() - 1 ).level;89 KindTable::size_type scope = kindTable.currentScope() - 1 - kindTable.getNote( kindTable.currentScope() - 1 ).level; 90 // size_type scope = level - kindTable.getNote( kindTable.currentScope() - 1 ).level; 90 91 debugPrint( cerr << "Adding enclosing at " << locn << " " << identifier << " as " << kindName( kind ) << " scope " << scope << " level " << level << " note " << kindTable.getNote( kindTable.currentScope() - 1 ).level << endl ); 91 autoret = kindTable.insertAt( scope, identifier, kind );92 pair< KindTable::iterator, bool > ret = kindTable.insertAt( scope, identifier, kind ); 92 93 if ( ! ret.second ) ret.first->second = kind; // exists => update 93 94 } // TypedefTable::addToEnclosingScope -
src/Parser/lex.ll
r12df6fe r4520b77e 10 10 * Created On : Sat Sep 22 08:58:10 2001 11 11 * Last Modified By : Peter A. Buhr 12 * Last Modified On : Sun Jun 20 18:41:09 202113 * Update Count : 7 5912 * Last Modified On : Tue Aug 30 18:39:54 2022 13 * Update Count : 760 14 14 */ 15 15 … … 314 314 switch { KEYWORD_RETURN(SWITCH); } 315 315 thread { KEYWORD_RETURN(THREAD); } // C11 316 _Thread_local { KEYWORD_RETURN(THREADLOCAL); } // C11 316 __thread { KEYWORD_RETURN(THREADLOCALGCC); } // GCC 317 _Thread_local { KEYWORD_RETURN(THREADLOCALC11); } // C11 317 318 throw { KEYWORD_RETURN(THROW); } // CFA 318 319 throwResume { KEYWORD_RETURN(THROWRESUME); } // CFA -
src/Parser/parser.yy
r12df6fe r4520b77e 10 10 // Created On : Sat Sep 1 20:22:55 2001 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Fri Jul 1 15:35:08 202213 // Update Count : 5 40512 // Last Modified On : Sat Aug 27 13:21:28 2022 13 // Update Count : 5661 14 14 // 15 15 … … 58 58 59 59 // lex uses __null in a boolean context, it's fine. 60 #pragma GCC diagnostic ignored "-Wpragmas" 60 61 #pragma GCC diagnostic ignored "-Wparentheses-equality" 62 #pragma GCC diagnostic warning "-Wpragmas" 61 63 62 64 extern DeclarationNode * parseTree; … … 197 199 } // fieldDecl 198 200 201 #define NEW_ZERO new ExpressionNode( build_constantInteger( *new string( "0" ) ) ) 202 #define NEW_ONE new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) 203 #define UPDOWN( compop, left, right ) (compop == OperKinds::LThan || compop == OperKinds::LEThan ? left : right) 204 #define MISSING_ANON_FIELD "Missing loop fields with an anonymous loop index is meaningless as loop index is unavailable in loop body." 205 #define MISSING_LOW "Missing low value for up-to range so index is uninitialized." 206 #define MISSING_HIGH "Missing high value for down-to range so index is uninitialized." 207 208 ForCtrl * forCtrl( DeclarationNode * index, ExpressionNode * start, enum OperKinds compop, ExpressionNode * comp, ExpressionNode * inc ) { 209 if ( index->initializer ) { 210 SemanticError( yylloc, "Direct initialization disallowed. Use instead: type var; initialization ~ comparison ~ increment." ); 211 } // if 212 if ( index->next ) { 213 SemanticError( yylloc, "Multiple loop indexes disallowed in for-loop declaration." ); 214 } // if 215 return new ForCtrl( index->addInitializer( new InitializerNode( start ) ), 216 // NULL comp/inc => leave blank 217 comp ? new ExpressionNode( build_binary_val( compop, new ExpressionNode( build_varref( new string( *index->name ) ) ), comp ) ) : nullptr, 218 inc ? new ExpressionNode( build_binary_val( compop == OperKinds::LThan || compop == OperKinds::LEThan ? // choose += or -= for upto/downto 219 OperKinds::PlusAssn : OperKinds::MinusAssn, new ExpressionNode( build_varref( new string( *index->name ) ) ), inc ) ) : nullptr ); 220 } // forCtrl 221 199 222 ForCtrl * forCtrl( ExpressionNode * type, string * index, ExpressionNode * start, enum OperKinds compop, ExpressionNode * comp, ExpressionNode * inc ) { 200 223 ConstantExpr * constant = dynamic_cast<ConstantExpr *>(type->expr.get()); … … 206 229 distAttr( DeclarationNode::newTypeof( type, true ), DeclarationNode::newName( index )->addInitializer( new InitializerNode( start ) ) ), 207 230 // NULL comp/inc => leave blank 208 comp ? new ExpressionNode( build_binary_val( compop, new ExpressionNode( build_varref( new string( *index ) ) ), comp ) ) : 0,231 comp ? new ExpressionNode( build_binary_val( compop, new ExpressionNode( build_varref( new string( *index ) ) ), comp ) ) : nullptr, 209 232 inc ? new ExpressionNode( build_binary_val( compop == OperKinds::LThan || compop == OperKinds::LEThan ? // choose += or -= for upto/downto 210 OperKinds::PlusAssn : OperKinds::MinusAssn, new ExpressionNode( build_varref( new string( *index ) ) ), inc ) ) : 0);233 OperKinds::PlusAssn : OperKinds::MinusAssn, new ExpressionNode( build_varref( new string( *index ) ) ), inc ) ) : nullptr ); 211 234 } // forCtrl 212 235 … … 272 295 %token TYPEDEF 273 296 %token EXTERN STATIC AUTO REGISTER 274 %token THREADLOCAL //C11297 %token THREADLOCALGCC THREADLOCALC11 // GCC, C11 275 298 %token INLINE FORTRAN // C99, extension ISO/IEC 9899:1999 Section J.5.9(1) 276 299 %token NORETURN // C11 … … 346 369 %type<ifctl> conditional_declaration 347 370 %type<fctl> for_control_expression for_control_expression_list 348 %type<compop> inclexcl371 %type<compop> updown updowneq downupdowneq 349 372 %type<en> subrange 350 373 %type<decl> asm_name_opt … … 1239 1262 iteration_statement: 1240 1263 WHILE '(' ')' statement %prec THEN // CFA => while ( 1 ) 1241 { $$ = new StatementNode( build_while( new CondCtl( nullptr, new ExpressionNode( build_constantInteger( *new string( "1" ) ) )), maybe_build_compound( $4 ) ) ); }1264 { $$ = new StatementNode( build_while( new CondCtl( nullptr, NEW_ONE ), maybe_build_compound( $4 ) ) ); } 1242 1265 | WHILE '(' ')' statement ELSE statement // CFA 1243 1266 { 1244 $$ = new StatementNode( build_while( new CondCtl( nullptr, new ExpressionNode( build_constantInteger( *new string( "1" ) ) )), maybe_build_compound( $4 ) ) );1267 $$ = new StatementNode( build_while( new CondCtl( nullptr, NEW_ONE ), maybe_build_compound( $4 ) ) ); 1245 1268 SemanticWarning( yylloc, Warning::SuperfluousElse, "" ); 1246 1269 } … … 1250 1273 { $$ = new StatementNode( build_while( $3, maybe_build_compound( $5 ), $7 ) ); } 1251 1274 | DO statement WHILE '(' ')' ';' // CFA => do while( 1 ) 1252 { $$ = new StatementNode( build_do_while( new ExpressionNode( build_constantInteger( *new string( "1" ) ) ), maybe_build_compound( $2 ) ) ); }1275 { $$ = new StatementNode( build_do_while( NEW_ONE, maybe_build_compound( $2 ) ) ); } 1253 1276 | DO statement WHILE '(' ')' ELSE statement // CFA 1254 1277 { 1255 $$ = new StatementNode( build_do_while( new ExpressionNode( build_constantInteger( *new string( "1" ) ) ), maybe_build_compound( $2 ) ) );1278 $$ = new StatementNode( build_do_while( NEW_ONE, maybe_build_compound( $2 ) ) ); 1256 1279 SemanticWarning( yylloc, Warning::SuperfluousElse, "" ); 1257 1280 } … … 1304 1327 { $$ = new ForCtrl( $1, $2, $4 ); } 1305 1328 1306 | comma_expression // CFA 1307 { $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), new ExpressionNode( build_constantInteger( *new string( "0" ) ) ), 1308 OperKinds::LThan, $1->clone(), new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); } 1309 | '=' comma_expression // CFA 1310 { $$ = forCtrl( $2, new string( DeclarationNode::anonymous.newName() ), new ExpressionNode( build_constantInteger( *new string( "0" ) ) ), 1311 OperKinds::LEThan, $2->clone(), new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); } 1312 | comma_expression inclexcl comma_expression // CFA 1313 { $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), $1->clone(), $2, $3, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); } 1314 | comma_expression inclexcl comma_expression '~' comma_expression // CFA 1315 { $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), $1->clone(), $2, $3, $5 ); } 1316 | comma_expression ';' // CFA 1317 { $$ = forCtrl( new ExpressionNode( build_constantInteger( *new string( "0u" ) ) ), $1, nullptr, OperKinds::LThan, nullptr, nullptr ); } 1329 | '@' ';' comma_expression // CFA, empty loop-index 1330 { $$ = new ForCtrl( (ExpressionNode *)nullptr, $3, nullptr ); } 1331 | '@' ';' comma_expression ';' comma_expression // CFA, empty loop-index 1332 { $$ = new ForCtrl( (ExpressionNode *)nullptr, $3, $5 ); } 1333 1334 | comma_expression // CFA, anonymous loop-index 1335 { $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), NEW_ZERO, OperKinds::LThan, $1->clone(), NEW_ONE ); } 1336 | downupdowneq comma_expression // CFA, anonymous loop-index 1337 { $$ = forCtrl( $2, new string( DeclarationNode::anonymous.newName() ), UPDOWN( $1, NEW_ZERO, $2->clone() ), $1, UPDOWN( $1, $2->clone(), NEW_ZERO ), NEW_ONE ); } 1338 1339 | comma_expression updowneq comma_expression // CFA, anonymous loop-index 1340 { $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), UPDOWN( $2, $1->clone(), $3 ), $2, UPDOWN( $2, $3->clone(), $1->clone() ), NEW_ONE ); } 1341 | '@' updowneq comma_expression // CFA, anonymous loop-index 1342 { 1343 if ( $2 == OperKinds::LThan || $2 == OperKinds::LEThan ) { SemanticError( yylloc, MISSING_LOW ); $$ = nullptr; } 1344 else $$ = forCtrl( $3, new string( DeclarationNode::anonymous.newName() ), $3->clone(), $2, nullptr, NEW_ONE ); 1345 } 1346 | comma_expression updowneq '@' // CFA, anonymous loop-index 1347 { 1348 if ( $2 == OperKinds::LThan || $2 == OperKinds::LEThan ) { SemanticError( yylloc, MISSING_ANON_FIELD ); $$ = nullptr; } 1349 else { SemanticError( yylloc, MISSING_HIGH ); $$ = nullptr; } 1350 } 1351 | comma_expression updowneq comma_expression '~' comma_expression // CFA, anonymous loop-index 1352 { $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), UPDOWN( $2, $1->clone(), $3 ), $2, UPDOWN( $2, $3->clone(), $1->clone() ), $5 ); } 1353 | '@' updowneq comma_expression '~' comma_expression // CFA, anonymous loop-index 1354 { 1355 if ( $2 == OperKinds::LThan || $2 == OperKinds::LEThan ) { SemanticError( yylloc, MISSING_LOW ); $$ = nullptr; } 1356 else $$ = forCtrl( $3, new string( DeclarationNode::anonymous.newName() ), $3->clone(), $2, nullptr, $5 ); 1357 } 1358 | comma_expression updowneq '@' '~' comma_expression // CFA, anonymous loop-index 1359 { 1360 if ( $2 == OperKinds::LThan || $2 == OperKinds::LEThan ) { SemanticError( yylloc, MISSING_ANON_FIELD ); $$ = nullptr; } 1361 else { SemanticError( yylloc, MISSING_HIGH ); $$ = nullptr; } 1362 } 1363 | comma_expression updowneq comma_expression '~' '@' // CFA, error 1364 { SemanticError( yylloc, MISSING_ANON_FIELD ); $$ = nullptr; } 1365 | '@' updowneq '@' // CFA, error 1366 { SemanticError( yylloc, MISSING_ANON_FIELD ); $$ = nullptr; } 1367 | '@' updowneq comma_expression '~' '@' // CFA, error 1368 { SemanticError( yylloc, MISSING_ANON_FIELD ); $$ = nullptr; } 1369 | comma_expression updowneq '@' '~' '@' // CFA, error 1370 { SemanticError( yylloc, MISSING_ANON_FIELD ); $$ = nullptr; } 1371 | '@' updowneq '@' '~' '@' // CFA, error 1372 { SemanticError( yylloc, MISSING_ANON_FIELD ); $$ = nullptr; } 1373 1318 1374 | comma_expression ';' comma_expression // CFA 1319 { $$ = forCtrl( $3, $1, new ExpressionNode( build_constantInteger( *new string( "0" ) ) ), 1320 OperKinds::LThan, $3->clone(), new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); } 1321 | comma_expression ';' '=' comma_expression // CFA 1322 { $$ = forCtrl( $4, $1, new ExpressionNode( build_constantInteger( *new string( "0" ) ) ), 1323 OperKinds::LEThan, $4->clone(), new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); } 1324 | comma_expression ';' comma_expression inclexcl comma_expression // CFA 1325 { $$ = forCtrl( $3, $1, $3->clone(), $4, $5, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); } 1326 | comma_expression ';' comma_expression inclexcl comma_expression '~' comma_expression // CFA 1327 { $$ = forCtrl( $3, $1, $3->clone(), $4, $5, $7 ); } 1375 { $$ = forCtrl( $3, $1, NEW_ZERO, OperKinds::LThan, $3->clone(), NEW_ONE ); } 1376 | comma_expression ';' downupdowneq comma_expression // CFA 1377 { $$ = forCtrl( $4, $1, UPDOWN( $3, NEW_ZERO, $4->clone() ), $3, UPDOWN( $3, $4->clone(), NEW_ZERO ), NEW_ONE ); } 1378 1379 | comma_expression ';' comma_expression updowneq comma_expression // CFA 1380 { $$ = forCtrl( $3, $1, UPDOWN( $4, $3->clone(), $5 ), $4, UPDOWN( $4, $5->clone(), $3->clone() ), NEW_ONE ); } 1381 | comma_expression ';' '@' updowneq comma_expression // CFA 1382 { 1383 if ( $4 == OperKinds::LThan || $4 == OperKinds::LEThan ) { SemanticError( yylloc, MISSING_LOW ); $$ = nullptr; } 1384 else $$ = forCtrl( $5, $1, $5->clone(), $4, nullptr, NEW_ONE ); 1385 } 1386 | comma_expression ';' comma_expression updowneq '@' // CFA 1387 { 1388 if ( $4 == OperKinds::GThan || $4 == OperKinds::GEThan ) { SemanticError( yylloc, MISSING_HIGH ); $$ = nullptr; } 1389 else if ( $4 == OperKinds::LEThan ) { SemanticError( yylloc, "Equality with missing high value is meaningless. Use \"~\"." ); $$ = nullptr; } 1390 else $$ = forCtrl( $3, $1, $3->clone(), $4, nullptr, NEW_ONE ); 1391 } 1392 | comma_expression ';' '@' updowneq '@' // CFA, error 1393 { SemanticError( yylloc, "Missing low/high value for up/down-to range so index is uninitialized." ); $$ = nullptr; } 1394 1395 | comma_expression ';' comma_expression updowneq comma_expression '~' comma_expression // CFA 1396 { $$ = forCtrl( $3, $1, UPDOWN( $4, $3->clone(), $5 ), $4, UPDOWN( $4, $5->clone(), $3->clone() ), $7 ); } 1397 | comma_expression ';' '@' updowneq comma_expression '~' comma_expression // CFA, error 1398 { 1399 if ( $4 == OperKinds::LThan || $4 == OperKinds::LEThan ) { SemanticError( yylloc, MISSING_LOW ); $$ = nullptr; } 1400 else $$ = forCtrl( $5, $1, $5->clone(), $4, nullptr, $7 ); 1401 } 1402 | comma_expression ';' comma_expression updowneq '@' '~' comma_expression // CFA 1403 { 1404 if ( $4 == OperKinds::GThan || $4 == OperKinds::GEThan ) { SemanticError( yylloc, MISSING_HIGH ); $$ = nullptr; } 1405 else if ( $4 == OperKinds::LEThan ) { SemanticError( yylloc, "Equality with missing high value is meaningless. Use \"~\"." ); $$ = nullptr; } 1406 else $$ = forCtrl( $3, $1, $3->clone(), $4, nullptr, $7 ); 1407 } 1408 | comma_expression ';' comma_expression updowneq comma_expression '~' '@' // CFA 1409 { $$ = forCtrl( $3, $1, UPDOWN( $4, $3->clone(), $5 ), $4, UPDOWN( $4, $5->clone(), $3->clone() ), nullptr ); } 1410 | comma_expression ';' '@' updowneq comma_expression '~' '@' // CFA, error 1411 { 1412 if ( $4 == OperKinds::LThan || $4 == OperKinds::LEThan ) { SemanticError( yylloc, MISSING_LOW ); $$ = nullptr; } 1413 else $$ = forCtrl( $5, $1, $5->clone(), $4, nullptr, nullptr ); 1414 } 1415 | comma_expression ';' comma_expression updowneq '@' '~' '@' // CFA 1416 { 1417 if ( $4 == OperKinds::GThan || $4 == OperKinds::GEThan ) { SemanticError( yylloc, MISSING_HIGH ); $$ = nullptr; } 1418 else if ( $4 == OperKinds::LEThan ) { SemanticError( yylloc, "Equality with missing high value is meaningless. Use \"~\"." ); $$ = nullptr; } 1419 else $$ = forCtrl( $3, $1, $3->clone(), $4, nullptr, nullptr ); 1420 } 1421 | comma_expression ';' '@' updowneq '@' '~' '@' // CFA 1422 { SemanticError( yylloc, "Missing low/high value for up/down-to range so index is uninitialized." ); $$ = nullptr; } 1423 1424 | declaration comma_expression // CFA 1425 { $$ = forCtrl( $1, NEW_ZERO, OperKinds::LThan, $2, NEW_ONE ); } 1426 | declaration downupdowneq comma_expression // CFA 1427 { $$ = forCtrl( $1, UPDOWN( $2, NEW_ZERO, $3 ), $2, UPDOWN( $2, $3->clone(), NEW_ZERO ), NEW_ONE ); } 1428 1429 | declaration comma_expression updowneq comma_expression // CFA 1430 { $$ = forCtrl( $1, UPDOWN( $3, $2->clone(), $4 ), $3, UPDOWN( $3, $4->clone(), $2->clone() ), NEW_ONE ); } 1431 | declaration '@' updowneq comma_expression // CFA 1432 { 1433 if ( $3 == OperKinds::LThan || $3 == OperKinds::LEThan ) { SemanticError( yylloc, MISSING_LOW ); $$ = nullptr; } 1434 else $$ = forCtrl( $1, $4, $3, nullptr, NEW_ONE ); 1435 } 1436 | declaration comma_expression updowneq '@' // CFA 1437 { 1438 if ( $3 == OperKinds::GThan || $3 == OperKinds::GEThan ) { SemanticError( yylloc, MISSING_HIGH ); $$ = nullptr; } 1439 else if ( $3 == OperKinds::LEThan ) { SemanticError( yylloc, "Equality with missing high value is meaningless. Use \"~\"." ); $$ = nullptr; } 1440 else $$ = forCtrl( $1, $2, $3, nullptr, NEW_ONE ); 1441 } 1442 1443 | declaration comma_expression updowneq comma_expression '~' comma_expression // CFA 1444 { $$ = forCtrl( $1, UPDOWN( $3, $2, $4 ), $3, UPDOWN( $3, $4->clone(), $2->clone() ), $6 ); } 1445 | declaration '@' updowneq comma_expression '~' comma_expression // CFA 1446 { 1447 if ( $3 == OperKinds::LThan || $3 == OperKinds::LEThan ) { SemanticError( yylloc, MISSING_LOW ); $$ = nullptr; } 1448 else $$ = forCtrl( $1, $4, $3, nullptr, $6 ); 1449 } 1450 | declaration comma_expression updowneq '@' '~' comma_expression // CFA 1451 { 1452 if ( $3 == OperKinds::GThan || $3 == OperKinds::GEThan ) { SemanticError( yylloc, MISSING_HIGH ); $$ = nullptr; } 1453 else if ( $3 == OperKinds::LEThan ) { SemanticError( yylloc, "Equality with missing high value is meaningless. Use \"~\"." ); $$ = nullptr; } 1454 else $$ = forCtrl( $1, $2, $3, nullptr, $6 ); 1455 } 1456 | declaration comma_expression updowneq comma_expression '~' '@' // CFA 1457 { $$ = forCtrl( $1, UPDOWN( $3, $2, $4 ), $3, UPDOWN( $3, $4->clone(), $2->clone() ), nullptr ); } 1458 | declaration '@' updowneq comma_expression '~' '@' // CFA 1459 { 1460 if ( $3 == OperKinds::LThan || $3 == OperKinds::LEThan ) { SemanticError( yylloc, MISSING_LOW ); $$ = nullptr; } 1461 else $$ = forCtrl( $1, $4, $3, nullptr, nullptr ); 1462 } 1463 | declaration comma_expression updowneq '@' '~' '@' // CFA 1464 { 1465 if ( $3 == OperKinds::GThan || $3 == OperKinds::GEThan ) { SemanticError( yylloc, MISSING_HIGH ); $$ = nullptr; } 1466 else if ( $3 == OperKinds::LEThan ) { SemanticError( yylloc, "Equality with missing high value is meaningless. Use \"~\"." ); $$ = nullptr; } 1467 else $$ = forCtrl( $1, $2, $3, nullptr, nullptr ); 1468 } 1469 | declaration '@' updowneq '@' '~' '@' // CFA, error 1470 { SemanticError( yylloc, "Missing low/high value for up/down-to range so index is uninitialized." ); $$ = nullptr; } 1328 1471 1329 1472 | comma_expression ';' TYPEDEFname // CFA, array type 1330 1473 { 1331 SemanticError( yylloc, "Array interator is currently unimplemented." ); $$ = nullptr; 1332 $$ = forCtrl( new ExpressionNode( build_varref( $3 ) ), $1, nullptr, OperKinds::Range, nullptr, nullptr ); 1333 } 1334 1335 // There is a S/R conflicit if ~ and -~ are factored out. 1336 | comma_expression ';' comma_expression '~' '@' // CFA 1337 { $$ = forCtrl( $3, $1, $3->clone(), OperKinds::LThan, nullptr, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); } 1338 | comma_expression ';' comma_expression ErangeDown '@' // CFA 1339 { $$ = forCtrl( $3, $1, $3->clone(), OperKinds::GThan, nullptr, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); } 1340 | comma_expression ';' comma_expression '~' '@' '~' comma_expression // CFA 1341 { $$ = forCtrl( $3, $1, $3->clone(), OperKinds::LThan, nullptr, $7 ); } 1342 | comma_expression ';' comma_expression ErangeDown '@' '~' comma_expression // CFA 1343 { $$ = forCtrl( $3, $1, $3->clone(), OperKinds::GThan, nullptr, $7 ); } 1344 | comma_expression ';' comma_expression '~' '@' '~' '@' // CFA 1345 { $$ = forCtrl( $3, $1, $3->clone(), OperKinds::LThan, nullptr, nullptr ); } 1474 SemanticError( yylloc, "Type iterator is currently unimplemented." ); $$ = nullptr; 1475 //$$ = forCtrl( new ExpressionNode( build_varref( $3 ) ), $1, nullptr, OperKinds::Range, nullptr, nullptr ); 1476 } 1477 | comma_expression ';' downupdowneq TYPEDEFname // CFA, array type 1478 { 1479 if ( $3 == OperKinds::LEThan || $3 == OperKinds::GEThan ) { SemanticError( yylloc, "All enumation ranges are equal (all values). Remove \"=~\"." ); $$ = nullptr; } 1480 SemanticError( yylloc, "Type iterator is currently unimplemented." ); $$ = nullptr; 1481 } 1346 1482 ; 1347 1483 1348 inclexcl: 1484 downupdowneq: 1485 ErangeDown 1486 { $$ = OperKinds::GThan; } 1487 | ErangeUpEq 1488 { $$ = OperKinds::LEThan; } 1489 | ErangeDownEq 1490 { $$ = OperKinds::GEThan; } 1491 ; 1492 1493 updown: 1349 1494 '~' 1350 1495 { $$ = OperKinds::LThan; } 1496 | ErangeDown 1497 { $$ = OperKinds::GThan; } 1498 ; 1499 1500 updowneq: 1501 updown 1351 1502 | ErangeUpEq 1352 1503 { $$ = OperKinds::LEThan; } 1353 | ErangeDown1354 { $$ = OperKinds::GThan; }1355 1504 | ErangeDownEq 1356 1505 { $$ = OperKinds::GEThan; } … … 1935 2084 | REGISTER 1936 2085 { $$ = DeclarationNode::newStorageClass( Type::Register ); } 1937 | THREADLOCAL // C11 1938 { $$ = DeclarationNode::newStorageClass( Type::Threadlocal ); } 2086 | THREADLOCALGCC // GCC 2087 { $$ = DeclarationNode::newStorageClass( Type::ThreadlocalGcc ); } 2088 | THREADLOCALC11 // C11 2089 { $$ = DeclarationNode::newStorageClass( Type::ThreadlocalC11 ); } 1939 2090 // Put function specifiers here to simplify parsing rules, but separate them semantically. 1940 2091 | INLINE // C99 -
src/ResolvExpr/CandidateFinder.cpp
r12df6fe r4520b77e 269 269 unsigned nextArg, unsigned tupleStart = 0, Cost cost = Cost::zero, 270 270 unsigned nextExpl = 0, unsigned explAlt = 0 ) 271 : parent(parent), expr( expr ), cost( cost ), env( move( env ) ), need(move( need ) ),272 have( move( have ) ), open(move( open ) ), nextArg( nextArg ), tupleStart( tupleStart ),271 : parent(parent), expr( expr ), cost( cost ), env( std::move( env ) ), need( std::move( need ) ), 272 have( std::move( have ) ), open( std::move( open ) ), nextArg( nextArg ), tupleStart( tupleStart ), 273 273 nextExpl( nextExpl ), explAlt( explAlt ) {} 274 274 … … 276 276 const ArgPack & o, ast::TypeEnvironment && env, ast::AssertionSet && need, 277 277 ast::AssertionSet && have, ast::OpenVarSet && open, unsigned nextArg, Cost added ) 278 : parent( o.parent ), expr( o.expr ), cost( o.cost + added ), env( move( env ) ),279 need( move( need ) ), have( move( have ) ), open(move( open ) ), nextArg( nextArg ),278 : parent( o.parent ), expr( o.expr ), cost( o.cost + added ), env( std::move( env ) ), 279 need( std::move( need ) ), have( std::move( have ) ), open( std::move( open ) ), nextArg( nextArg ), 280 280 tupleStart( o.tupleStart ), nextExpl( 0 ), explAlt( 0 ) {} 281 281 … … 301 301 // reset pack to appropriate tuple 302 302 std::vector< ast::ptr< ast::Expr > > exprv( exprs.begin(), exprs.end() ); 303 expr = new ast::TupleExpr{ expr->location, move( exprv ) };303 expr = new ast::TupleExpr{ expr->location, std::move( exprv ) }; 304 304 tupleStart = pack->tupleStart - 1; 305 305 parent = pack->parent; … … 404 404 newResult.open, symtab ) 405 405 ) { 406 finalResults.emplace_back( move( newResult ) );406 finalResults.emplace_back( std::move( newResult ) ); 407 407 } 408 408 … … 423 423 if ( expl.exprs.empty() ) { 424 424 results.emplace_back( 425 results[i], move( env ), copy( results[i].need ),426 copy( results[i].have ), move( open ), nextArg + 1, expl.cost );425 results[i], std::move( env ), copy( results[i].need ), 426 copy( results[i].have ), std::move( open ), nextArg + 1, expl.cost ); 427 427 428 428 continue; … … 431 431 // add new result 432 432 results.emplace_back( 433 i, expl.exprs.front(), move( env ), copy( results[i].need ),434 copy( results[i].have ), move( open ), nextArg + 1, nTuples,433 i, expl.exprs.front(), std::move( env ), copy( results[i].need ), 434 copy( results[i].have ), std::move( open ), nextArg + 1, nTuples, 435 435 expl.cost, expl.exprs.size() == 1 ? 0 : 1, j ); 436 436 } … … 444 444 // splice final results onto results 445 445 for ( std::size_t i = 0; i < finalResults.size(); ++i ) { 446 results.emplace_back( move( finalResults[i] ) );446 results.emplace_back( std::move( finalResults[i] ) ); 447 447 } 448 448 return ! finalResults.empty(); … … 478 478 479 479 results.emplace_back( 480 i, expr, move( env ), move( need ), move( have ),move( open ), nextArg,480 i, expr, std::move( env ), std::move( need ), std::move( have ), std::move( open ), nextArg, 481 481 nTuples, Cost::zero, nextExpl, results[i].explAlt ); 482 482 } … … 494 494 if ( unify( paramType, cnst->result, env, need, have, open, symtab ) ) { 495 495 results.emplace_back( 496 i, new ast::DefaultArgExpr{ cnst->location, cnst }, move( env ),497 move( need ), move( have ),move( open ), nextArg, nTuples );496 i, new ast::DefaultArgExpr{ cnst->location, cnst }, std::move( env ), 497 std::move( need ), std::move( have ), std::move( open ), nextArg, nTuples ); 498 498 } 499 499 } … … 516 516 if ( expl.exprs.empty() ) { 517 517 results.emplace_back( 518 results[i], move( env ), move( need ), move( have ),move( open ),518 results[i], std::move( env ), std::move( need ), std::move( have ), std::move( open ), 519 519 nextArg + 1, expl.cost ); 520 520 … … 538 538 // add new result 539 539 results.emplace_back( 540 i, expr, move( env ), move( need ), move( have ),move( open ),540 i, expr, std::move( env ), std::move( need ), std::move( have ), std::move( open ), 541 541 nextArg + 1, nTuples, expl.cost, expl.exprs.size() == 1 ? 0 : 1, j ); 542 542 } … … 576 576 restructureCast( idx, toType->getComponent( i ), isGenerated ) ); 577 577 } 578 return new ast::TupleExpr{ arg->location, move( components ) };578 return new ast::TupleExpr{ arg->location, std::move( components ) }; 579 579 } else { 580 580 // handle normally … … 672 672 } 673 673 std::vector< ast::ptr< ast::Expr > > vargs( args.begin(), args.end() ); 674 appExpr->args = move( vargs );674 appExpr->args = std::move( vargs ); 675 675 // build and validate new candidate 676 676 auto newCand = … … 783 783 if ( expl.exprs.empty() ) { 784 784 results.emplace_back( 785 results[i], move( env ), copy( results[i].need ),786 copy( results[i].have ), move( open ), nextArg + 1,785 results[i], std::move( env ), copy( results[i].need ), 786 copy( results[i].have ), std::move( open ), nextArg + 1, 787 787 expl.cost ); 788 788 … … 792 792 // add new result 793 793 results.emplace_back( 794 i, expl.exprs.front(), move( env ), copy( results[i].need ),795 copy( results[i].have ), move( open ), nextArg + 1, 0, expl.cost,794 i, expl.exprs.front(), std::move( env ), copy( results[i].need ), 795 copy( results[i].have ), std::move( open ), nextArg + 1, 0, expl.cost, 796 796 expl.exprs.size() == 1 ? 0 : 1, j ); 797 797 } … … 843 843 // as a member expression 844 844 addAnonConversions( newCand ); 845 candidates.emplace_back( move( newCand ) );845 candidates.emplace_back( std::move( newCand ) ); 846 846 } 847 847 } … … 991 991 funcE.emplace_back( *func, symtab ); 992 992 } 993 argExpansions.emplace_front( move( funcE ) );993 argExpansions.emplace_front( std::move( funcE ) ); 994 994 995 995 for ( const CandidateRef & op : opFinder ) { … … 1035 1035 if ( cvtCost != Cost::infinity ) { 1036 1036 withFunc->cvtCost = cvtCost; 1037 candidates.emplace_back( move( withFunc ) );1038 } 1039 } 1040 found = move( candidates );1037 candidates.emplace_back( std::move( withFunc ) ); 1038 } 1039 } 1040 found = std::move( candidates ); 1041 1041 1042 1042 // use a new list so that candidates are not examined by addAnonConversions twice … … 1136 1136 CandidateRef newCand = std::make_shared<Candidate>( 1137 1137 restructureCast( cand->expr, toType, castExpr->isGenerated ), 1138 copy( cand->env ), move( open ),move( need ), cand->cost,1138 copy( cand->env ), std::move( open ), std::move( need ), cand->cost, 1139 1139 cand->cost + thisCost ); 1140 1140 inferParameters( newCand, matches ); … … 1290 1290 // as a name expression 1291 1291 addAnonConversions( newCand ); 1292 candidates.emplace_back( move( newCand ) );1292 candidates.emplace_back( std::move( newCand ) ); 1293 1293 } 1294 1294 } … … 1399 1399 new ast::LogicalExpr{ 1400 1400 logicalExpr->location, r1->expr, r2->expr, logicalExpr->isAnd }, 1401 move( env ), move( open ),move( need ), r1->cost + r2->cost );1401 std::move( env ), std::move( open ), std::move( need ), r1->cost + r2->cost ); 1402 1402 } 1403 1403 } … … 1457 1457 // output candidate 1458 1458 CandidateRef newCand = std::make_shared<Candidate>( 1459 newExpr, move( env ), move( open ),move( need ), cost );1459 newExpr, std::move( env ), std::move( open ), std::move( need ), cost ); 1460 1460 inferParameters( newCand, candidates ); 1461 1461 } … … 1524 1524 // add candidate 1525 1525 CandidateRef newCand = std::make_shared<Candidate>( 1526 newExpr, move( env ), move( open ),move( need ),1526 newExpr, std::move( env ), std::move( open ), std::move( need ), 1527 1527 r1->cost + r2->cost ); 1528 1528 inferParameters( newCand, candidates ); … … 1553 1553 1554 1554 addCandidate( 1555 new ast::TupleExpr{ tupleExpr->location, move( exprs ) },1556 move( env ), move( open ),move( need ), sumCost( subs ) );1555 new ast::TupleExpr{ tupleExpr->location, std::move( exprs ) }, 1556 std::move( env ), std::move( open ), std::move( need ), sumCost( subs ) ); 1557 1557 } 1558 1558 } … … 1640 1640 initExpr->location, restructureCast( cand->expr, toType ), 1641 1641 initAlt.designation }, 1642 move(env), move( open ),move( need ), cand->cost, thisCost );1642 std::move(env), std::move( open ), std::move( need ), cand->cost, thisCost ); 1643 1643 inferParameters( newCand, matches ); 1644 1644 } … … 1773 1773 cand->env.applyFree( newResult ); 1774 1774 cand->expr = ast::mutate_field( 1775 cand->expr.get(), &ast::Expr::result, move( newResult ) );1775 cand->expr.get(), &ast::Expr::result, std::move( newResult ) ); 1776 1776 1777 1777 out.emplace_back( cand ); … … 1859 1859 1860 1860 auto oldsize = candidates.size(); 1861 candidates = move( pruned );1861 candidates = std::move( pruned ); 1862 1862 1863 1863 PRINT( -
src/ResolvExpr/Resolver.cc
r12df6fe r4520b77e 1542 1542 } 1543 1543 1544 1545 1544 const ast::StaticAssertDecl * Resolver_new::previsit( 1546 1545 const ast::StaticAssertDecl * assertDecl … … 1554 1553 const PtrType * handlePtrType( const PtrType * type, const ResolveContext & context ) { 1555 1554 if ( type->dimension ) { 1556 ast::ptr< ast::Type > sizeType = context.global.sizeType;1555 const ast::Type * sizeType = context.global.sizeType.get(); 1557 1556 ast::ptr< ast::Expr > dimension = findSingleExpression( type->dimension, sizeType, context ); 1558 1557 assertf(dimension->env->empty(), "array dimension expr has nonempty env"); 1559 1558 dimension.get_and_mutate()->env = nullptr; 1560 ast::mutate_field( 1561 type, &PtrType::dimension, 1562 dimension); 1559 ast::mutate_field( type, &PtrType::dimension, dimension ); 1563 1560 } 1564 1561 return type; -
src/SymTab/Autogen.cc
r12df6fe r4520b77e 258 258 } 259 259 260 /// 260 /// Given type T, generate type of default ctor/dtor, i.e. function type void (*) (T &). 261 261 ast::FunctionDecl * genDefaultFunc(const CodeLocation loc, const std::string fname, const ast::Type * paramType, bool maybePolymorphic) { 262 262 std::vector<ast::ptr<ast::TypeDecl>> typeParams; 263 263 if (maybePolymorphic) typeParams = getGenericParams(paramType); 264 264 auto dstParam = new ast::ObjectDecl(loc, "_dst", new ast::ReferenceType(paramType), nullptr, {}, ast::Linkage::Cforall); 265 return new ast::FunctionDecl(loc, fname, std::move(typeParams), {dstParam}, {}, new ast::CompoundStmt(loc) );265 return new ast::FunctionDecl(loc, fname, std::move(typeParams), {dstParam}, {}, new ast::CompoundStmt(loc), {}, ast::Linkage::Cforall); 266 266 } 267 267 -
src/SynTree/Statement.cc
r12df6fe r4520b77e 105 105 }; 106 106 107 BranchStmt::BranchStmt( Label target, Type type ) throw ( SemanticErrorException ):107 BranchStmt::BranchStmt( Label target, Type type ) : 108 108 Statement(), originalTarget( target ), target( target ), computedTarget( nullptr ), type( type ) { 109 109 //actually this is a syntactic error signaled by the parser … … 113 113 } 114 114 115 BranchStmt::BranchStmt( Expression * computedTarget, Type type ) throw ( SemanticErrorException ):115 BranchStmt::BranchStmt( Expression * computedTarget, Type type ) : 116 116 Statement(), computedTarget( computedTarget ), type( type ) { 117 117 if ( type != BranchStmt::Goto || computedTarget == nullptr ) { … … 211 211 } 212 212 213 CaseStmt::CaseStmt( Expression * condition, const list<Statement *> & statements, bool deflt ) throw ( SemanticErrorException ):213 CaseStmt::CaseStmt( Expression * condition, const list<Statement *> & statements, bool deflt ) : 214 214 Statement(), condition( condition ), stmts( statements ), _isDefault( deflt ) { 215 215 if ( isDefault() && condition != nullptr ) SemanticError( condition, "default case with condition: " ); … … 575 575 } 576 576 577 MutexStmt::MutexStmt( Statement * stmt, const list<Expression *> mutexObjs ) 577 MutexStmt::MutexStmt( Statement * stmt, const list<Expression *> mutexObjs ) 578 578 : Statement(), stmt( stmt ), mutexObjs( mutexObjs ) { } 579 579 -
src/SynTree/Statement.h
r12df6fe r4520b77e 200 200 std::list<Statement *> stmts; 201 201 202 CaseStmt( Expression * conditions, const std::list<Statement *> & stmts, bool isdef = false ) throw (SemanticErrorException);202 CaseStmt( Expression * conditions, const std::list<Statement *> & stmts, bool isdef = false ); 203 203 CaseStmt( const CaseStmt & other ); 204 204 virtual ~CaseStmt(); … … 289 289 Type type; 290 290 291 BranchStmt( Label target, Type ) throw (SemanticErrorException);292 BranchStmt( Expression * computedTarget, Type ) throw (SemanticErrorException);291 BranchStmt( Label target, Type ); 292 BranchStmt( Expression * computedTarget, Type ); 293 293 294 294 Label get_originalTarget() { return originalTarget; } -
src/SynTree/Type.cc
r12df6fe r4520b77e 80 80 // These must remain in the same order as the corresponding bit fields. 81 81 const char * Type::FuncSpecifiersNames[] = { "inline", "_Noreturn", "fortran" }; 82 const char * Type::StorageClassesNames[] = { "extern", "static", "auto", "register", "_ Thread_local" };82 const char * Type::StorageClassesNames[] = { "extern", "static", "auto", "register", "__thread", "_Thread_local" }; 83 83 const char * Type::QualifiersNames[] = { "const", "restrict", "volatile", "mutex", "_Atomic" }; 84 84 -
src/SynTree/Type.h
r12df6fe r4520b77e 84 84 }; // FuncSpecifiers 85 85 86 enum { Extern = 1 << 0, Static = 1 << 1, Auto = 1 << 2, Register = 1 << 3, Threadlocal = 1 << 4, NumStorageClass = 5};86 enum { Extern = 1 << 0, Static = 1 << 1, Auto = 1 << 2, Register = 1 << 3, ThreadlocalGcc = 1 << 4, ThreadlocalC11 = 1 << 5, NumStorageClass = 6 }; 87 87 static const char * StorageClassesNames[]; 88 88 union StorageClasses { … … 93 93 bool is_auto : 1; 94 94 bool is_register : 1; 95 bool is_threadlocal : 1; 95 bool is_threadlocalGcc : 1; 96 bool is_threadlocalC11 : 1; 96 97 }; 97 98 … … 100 101 // equality (==, !=) works implicitly on first field "val", relational operations are undefined. 101 102 BFCommon( StorageClasses, NumStorageClass ) 103 104 bool is_threadlocal_any() { return this->is_threadlocalC11 || this->is_threadlocalGcc; } 102 105 }; // StorageClasses 103 106 -
src/Tuples/TupleExpansionNew.cpp
r12df6fe r4520b77e 9 9 // Author : Henry Xue 10 10 // Created On : Mon Aug 23 15:36:09 2021 11 // Last Modified By : Henry Xue12 // Last Modified On : Mon Aug 23 15:36:09 202113 // Update Count : 111 // Last Modified By : Andrew Beach 12 // Last Modified On : Mon Aug 15 17:00:00 2022 13 // Update Count : 3 14 14 // 15 15 16 16 #include "Tuples.h" 17 17 18 #include "AST/Pass.hpp" 19 #include "Common/ScopedMap.h" 20 18 21 namespace Tuples { 22 19 23 namespace { 20 struct MemberTupleExpander final : public ast::WithShortCircuiting, public ast::WithVisitorRef< MemberTupleExpander > { 21 void previsit( const ast::UntypedMemberExpr * ) { visit_children = false; } 22 const ast::Expr * postvisit( const ast::UntypedMemberExpr * memberExpr ); 23 }; 24 struct UniqueExprExpander final : public ast::WithDeclsToAdd<> { 25 const ast::Expr * postvisit( const ast::UniqueExpr * unqExpr ); 26 std::map< int, ast::ptr<ast::Expr> > decls; // not vector, because order added may not be increasing order 27 }; 24 25 struct MemberTupleExpander final : public ast::WithShortCircuiting, public ast::WithVisitorRef< MemberTupleExpander > { 26 void previsit( const ast::UntypedMemberExpr * ) { visit_children = false; } 27 const ast::Expr * postvisit( const ast::UntypedMemberExpr * memberExpr ); 28 }; 29 30 struct UniqueExprExpander final : public ast::WithDeclsToAdd<> { 31 const ast::Expr * postvisit( const ast::UniqueExpr * unqExpr ); 32 std::map< int, ast::ptr<ast::Expr> > decls; // not vector, because order added may not be increasing order 33 }; 34 35 /// given a expression representing the member and an expression representing the aggregate, 36 /// reconstructs a flattened UntypedMemberExpr with the right precedence 37 const ast::Expr * reconstructMemberExpr( const ast::Expr * member, const ast::Expr * aggr, const CodeLocation & loc ) { 38 if ( auto memberExpr = dynamic_cast< const ast::UntypedMemberExpr * >( member ) ) { 39 // construct a new UntypedMemberExpr with the correct structure , and recursively 40 // expand that member expression. 41 ast::Pass< MemberTupleExpander > expander; 42 auto inner = new ast::UntypedMemberExpr( loc, memberExpr->aggregate, aggr ); 43 auto newMemberExpr = new ast::UntypedMemberExpr( loc, memberExpr->member, inner ); 44 return newMemberExpr->accept( expander ); 45 } else { 46 // not a member expression, so there is nothing to do but attach and return 47 return new ast::UntypedMemberExpr( loc, member, aggr ); 48 } 49 } 50 51 const ast::Expr * MemberTupleExpander::postvisit( const ast::UntypedMemberExpr * memberExpr ) { 52 const CodeLocation loc = memberExpr->location; 53 if ( auto tupleExpr = memberExpr->member.as< ast::UntypedTupleExpr >() ) { 54 auto mutExpr = mutate( tupleExpr ); 55 ast::ptr< ast::Expr > aggr = memberExpr->aggregate->accept( *visitor ); 56 // aggregate expressions which might be impure must be wrapped in unique expressions 57 if ( Tuples::maybeImpureIgnoreUnique( memberExpr->aggregate ) ) aggr = new ast::UniqueExpr( loc, aggr ); 58 for ( auto & expr : mutExpr->exprs ) { 59 expr = reconstructMemberExpr( expr, aggr, loc ); 60 } 61 return mutExpr; 62 } else { 63 // there may be a tuple expr buried in the aggregate 64 return new ast::UntypedMemberExpr( loc, memberExpr->member, memberExpr->aggregate->accept( *visitor ) ); 65 } 66 } 67 68 const ast::Expr * UniqueExprExpander::postvisit( const ast::UniqueExpr * unqExpr ) { 69 const CodeLocation loc = unqExpr->location; 70 const int id = unqExpr->id; 71 72 // on first time visiting a unique expr with a particular ID, generate the expression that replaces all UniqueExprs with that ID, 73 // and lookup on subsequent hits. This ensures that all unique exprs with the same ID reference the same variable. 74 if ( ! decls.count( id ) ) { 75 ast::ptr< ast::Expr > assignUnq; 76 const ast::VariableExpr * var = unqExpr->var; 77 if ( unqExpr->object ) { 78 // an object was generated to represent this unique expression -- it should be added to the list of declarations now 79 declsToAddBefore.push_back( unqExpr->object.as< ast::Decl >() ); 80 // deep copy required due to unresolved issues with UniqueExpr 81 assignUnq = ast::UntypedExpr::createAssign( loc, var, unqExpr->expr ); 82 } else { 83 const auto commaExpr = unqExpr->expr.strict_as< ast::CommaExpr >(); 84 assignUnq = commaExpr->arg1; 85 } 86 auto finished = new ast::ObjectDecl( loc, toString( "_unq", id, "_finished_" ), new ast::BasicType( ast::BasicType::Kind::Bool ), 87 new ast::SingleInit( loc, ast::ConstantExpr::from_int( loc, 0 ) ), {}, ast::Linkage::Cforall ); 88 declsToAddBefore.push_back( finished ); 89 // (finished ? _unq_expr_N : (_unq_expr_N = <unqExpr->get_expr()>, finished = 1, _unq_expr_N)) 90 // This pattern ensures that each unique expression is evaluated once, regardless of evaluation order of the generated C code. 91 auto assignFinished = ast::UntypedExpr::createAssign( loc, new ast::VariableExpr( loc, finished ), 92 ast::ConstantExpr::from_int( loc, 1 ) ); 93 auto condExpr = new ast::ConditionalExpr( loc, new ast::VariableExpr( loc, finished ), var, 94 new ast::CommaExpr( loc, new ast::CommaExpr( loc, assignUnq, assignFinished ), var ) ); 95 condExpr->result = var->result; 96 condExpr->env = unqExpr->env; 97 decls[id] = condExpr; 98 } 99 return ast::deepCopy(decls[id].get()); 100 } 101 102 /// Replaces Tuple Assign & Index Expressions, and Tuple Types. 103 struct TupleMainExpander final : 104 public ast::WithGuards, 105 public ast::WithVisitorRef<TupleMainExpander>, 106 public ast::WithDeclsToAdd<> { 107 ast::Expr const * postvisit( ast::TupleAssignExpr const * expr ) { 108 // Just move the env on the new top level expression. 109 return ast::mutate_field( expr->stmtExpr.get(), 110 &ast::TupleAssignExpr::env, expr->env.get() ); 111 } 112 113 void previsit( ast::ParseNode const * node ) { 114 GuardValue( location ) = &node->location; 115 } 116 117 void previsit( ast::CompoundStmt const * stmt ) { 118 previsit( (ast::ParseNode const *)stmt ); 119 GuardScope( typeMap ); 120 } 121 122 ast::Expr const * postvisit( ast::Expr const * expr ) { 123 if ( nullptr == expr->env ) { 124 return expr; 125 } 126 // TypeSubstitutions are never visited in the new Pass template, 127 // so it is done manually here, where all types have to be replaced. 128 return ast::mutate_field( expr, &ast::Expr::env, 129 expr->env->accept( *visitor ) ); 130 } 131 132 ast::Type const * postvisit( ast::TupleType const * type ) { 133 assert( location ); 134 unsigned tupleSize = type->size(); 135 if ( !typeMap.count( tupleSize ) ) { 136 ast::StructDecl * decl = new ast::StructDecl( *location, 137 toString( "_tuple", tupleSize, "_" ) 138 ); 139 decl->body = true; 140 141 for ( size_t i = 0 ; i < tupleSize ; ++i ) { 142 ast::TypeDecl * typeParam = new ast::TypeDecl( *location, 143 toString( "tuple_param_", tupleSize, "_", i ), 144 ast::Storage::Classes(), 145 nullptr, 146 ast::TypeDecl::Dtype, 147 true 148 ); 149 ast::ObjectDecl * member = new ast::ObjectDecl( *location, 150 toString( "field_", i ), 151 new ast::TypeInstType( typeParam ) 152 ); 153 decl->params.push_back( typeParam ); 154 decl->members.push_back( member ); 155 } 156 157 // Empty structures are not standard C. Add a dummy field to 158 // empty tuples to silence warnings when a compound literal 159 // `_tuple0_` is created. 160 if ( tupleSize == 0 ) { 161 decl->members.push_back( 162 new ast::ObjectDecl( *location, 163 "dummy", 164 new ast::BasicType( ast::BasicType::SignedInt ), 165 nullptr, 166 ast::Storage::Classes(), 167 // Does this have to be a C linkage? 168 ast::Linkage::C 169 ) 170 ); 171 } 172 typeMap[tupleSize] = decl; 173 declsToAddBefore.push_back( decl ); 174 } 175 176 ast::StructDecl const * decl = typeMap[ tupleSize ]; 177 ast::StructInstType * newType = 178 new ast::StructInstType( decl, type->qualifiers ); 179 for ( auto pair : group_iterate( type->types, decl->params ) ) { 180 ast::Type const * t = std::get<0>( pair ); 181 newType->params.push_back( 182 new ast::TypeExpr( *location, ast::deepCopy( t ) ) ); 183 } 184 return newType; 185 } 186 187 ast::Expr const * postvisit( ast::TupleIndexExpr const * expr ) { 188 CodeLocation const & location = expr->location; 189 ast::Expr const * tuple = expr->tuple.get(); 190 assert( tuple ); 191 unsigned int index = expr->index; 192 ast::TypeSubstitution const * env = expr->env.get(); 193 194 if ( auto tupleExpr = dynamic_cast<ast::TupleExpr const *>( tuple ) ) { 195 // Optimization: If it is a definitely pure tuple expr, 196 // then it can reduce to the only relevant component. 197 if ( !maybeImpureIgnoreUnique( tupleExpr ) ) { 198 assert( index < tupleExpr->exprs.size() ); 199 ast::ptr<ast::Expr> const & expr = 200 *std::next( tupleExpr->exprs.begin(), index ); 201 ast::Expr * ret = ast::mutate( expr.get() ); 202 ret->env = env; 203 return ret; 204 } 205 } 206 207 auto type = tuple->result.strict_as<ast::StructInstType>(); 208 ast::StructDecl const * structDecl = type->base; 209 assert( index < structDecl->members.size() ); 210 ast::ptr<ast::Decl> const & member = 211 *std::next( structDecl->members.begin(), index ); 212 ast::MemberExpr * memberExpr = new ast::MemberExpr( location, 213 member.strict_as<ast::DeclWithType>(), tuple ); 214 memberExpr->env = env; 215 return memberExpr; 216 } 217 private: 218 ScopedMap< int, ast::StructDecl const * > typeMap; 219 CodeLocation const * location = nullptr; 220 }; 221 222 ast::Expr const * replaceTupleExpr( 223 CodeLocation const & location, 224 ast::Type const * result, 225 std::vector<ast::ptr<ast::Expr>> const & exprs, 226 ast::TypeSubstitution const * env ) { 227 assert( result ); 228 // A void result: It doesn't need to produce a value for cascading, 229 // just output a chain of comma exprs. 230 if ( result->isVoid() ) { 231 assert( !exprs.empty() ); 232 std::vector<ast::ptr<ast::Expr>>::const_iterator iter = exprs.begin(); 233 ast::Expr * expr = new ast::CastExpr( *iter++ ); 234 for ( ; iter != exprs.end() ; ++iter ) { 235 expr = new ast::CommaExpr( location, 236 expr, new ast::CastExpr( *iter ) ); 237 } 238 expr->env = env; 239 return expr; 240 // Typed tuple expression: Produce a compound literal which performs 241 // each of the expressions as a distinct part of its initializer. The 242 // produced compound literal may be used as part of another expression. 243 } else { 244 auto inits = map_range<std::vector<ast::ptr<ast::Init>>>( exprs, 245 []( ast::Expr const * expr ) { 246 return new ast::SingleInit( expr->location, expr ); 247 } 248 ); 249 ast::Expr * expr = new ast::CompoundLiteralExpr( location, 250 result, new ast::ListInit( location, std::move( inits ) ) ); 251 expr->env = env; 252 return expr; 253 } 254 } 255 256 struct TupleExprExpander final { 257 ast::Expr const * postvisit( ast::TupleExpr const * expr ) { 258 return replaceTupleExpr( expr->location, 259 expr->result, expr->exprs, expr->env ); 260 } 261 }; 262 28 263 } // namespace 29 264 … … 32 267 } 33 268 34 namespace {35 namespace {36 /// given a expression representing the member and an expression representing the aggregate,37 /// reconstructs a flattened UntypedMemberExpr with the right precedence38 const ast::Expr * reconstructMemberExpr( const ast::Expr * member, const ast::Expr * aggr, const CodeLocation & loc ) {39 if ( auto memberExpr = dynamic_cast< const ast::UntypedMemberExpr * >( member ) ) {40 // construct a new UntypedMemberExpr with the correct structure , and recursively41 // expand that member expression.42 ast::Pass< MemberTupleExpander > expander;43 auto inner = new ast::UntypedMemberExpr( loc, memberExpr->aggregate, aggr );44 auto newMemberExpr = new ast::UntypedMemberExpr( loc, memberExpr->member, inner );45 //delete memberExpr;46 return newMemberExpr->accept( expander );47 } else {48 // not a member expression, so there is nothing to do but attach and return49 return new ast::UntypedMemberExpr( loc, member, aggr );50 }51 }52 }53 54 const ast::Expr * MemberTupleExpander::postvisit( const ast::UntypedMemberExpr * memberExpr ) {55 const CodeLocation loc = memberExpr->location;56 if ( auto tupleExpr = memberExpr->member.as< ast::UntypedTupleExpr >() ) {57 auto mutExpr = mutate( tupleExpr );58 ast::ptr< ast::Expr > aggr = memberExpr->aggregate->accept( *visitor );59 // aggregate expressions which might be impure must be wrapped in unique expressions60 if ( Tuples::maybeImpureIgnoreUnique( memberExpr->aggregate ) ) aggr = new ast::UniqueExpr( loc, aggr );61 for ( auto & expr : mutExpr->exprs ) {62 expr = reconstructMemberExpr( expr, aggr, loc );63 }64 //delete aggr;65 return mutExpr;66 } else {67 // there may be a tuple expr buried in the aggregate68 return new ast::UntypedMemberExpr( loc, memberExpr->member, memberExpr->aggregate->accept( *visitor ) );69 }70 }71 } // namespace72 73 269 void expandUniqueExpr( ast::TranslationUnit & translationUnit ) { 74 270 ast::Pass< UniqueExprExpander >::run( translationUnit ); 75 271 } 76 272 77 namespace { 78 const ast::Expr * UniqueExprExpander::postvisit( const ast::UniqueExpr * unqExpr ) { 79 const CodeLocation loc = unqExpr->location; 80 const int id = unqExpr->id; 81 82 // on first time visiting a unique expr with a particular ID, generate the expression that replaces all UniqueExprs with that ID, 83 // and lookup on subsequent hits. This ensures that all unique exprs with the same ID reference the same variable. 84 if ( ! decls.count( id ) ) { 85 ast::ptr< ast::Expr > assignUnq; 86 const ast::VariableExpr * var = unqExpr->var; 87 if ( unqExpr->object ) { 88 // an object was generated to represent this unique expression -- it should be added to the list of declarations now 89 declsToAddBefore.push_back( unqExpr->object.as< ast::Decl >() ); 90 // deep copy required due to unresolved issues with UniqueExpr 91 assignUnq = ast::UntypedExpr::createAssign( loc, var, unqExpr->expr ); 92 } else { 93 const auto commaExpr = unqExpr->expr.strict_as< ast::CommaExpr >(); 94 assignUnq = commaExpr->arg1; 95 } 96 auto finished = new ast::ObjectDecl( loc, toString( "_unq", id, "_finished_" ), new ast::BasicType( ast::BasicType::Kind::Bool ), 97 new ast::SingleInit( loc, ast::ConstantExpr::from_int( loc, 0 ) ), {}, ast::Linkage::Cforall ); 98 declsToAddBefore.push_back( finished ); 99 // (finished ? _unq_expr_N : (_unq_expr_N = <unqExpr->get_expr()>, finished = 1, _unq_expr_N)) 100 // This pattern ensures that each unique expression is evaluated once, regardless of evaluation order of the generated C code. 101 auto assignFinished = ast::UntypedExpr::createAssign( loc, new ast::VariableExpr( loc, finished ), 102 ast::ConstantExpr::from_int( loc, 1 ) ); 103 auto condExpr = new ast::ConditionalExpr( loc, new ast::VariableExpr( loc, finished ), var, 104 new ast::CommaExpr( loc, new ast::CommaExpr( loc, assignUnq, assignFinished ), var ) ); 105 condExpr->result = var->result; 106 condExpr->env = unqExpr->env; 107 decls[id] = condExpr; 108 } 109 //delete unqExpr; 110 return ast::deepCopy(decls[id].get()); 111 } 112 } // namespace 273 void expandTuples( ast::TranslationUnit & translationUnit ) { 274 // These can't just be combined simply (there might be a way with work). 275 ast::Pass<TupleMainExpander>::run( translationUnit ); 276 ast::Pass<TupleExprExpander>::run( translationUnit ); 277 } 278 113 279 } // namespace Tuples -
src/Tuples/Tuples.h
r12df6fe r4520b77e 32 32 void handleTupleAssignment( ResolvExpr::AlternativeFinder & currentFinder, UntypedExpr * assign, 33 33 std::vector< ResolvExpr::AlternativeFinder >& args ); 34 void handleTupleAssignment( 35 ResolvExpr::CandidateFinder & finder, const ast::UntypedExpr * assign, 34 void handleTupleAssignment( 35 ResolvExpr::CandidateFinder & finder, const ast::UntypedExpr * assign, 36 36 std::vector< ResolvExpr::CandidateFinder > & args ); 37 37 … … 43 43 /// replaces tuple-related elements, such as TupleType, TupleExpr, TupleAssignExpr, etc. 44 44 void expandTuples( std::list< Declaration * > & translationUnit ); 45 void expandTuples( ast::TranslationUnit & translaionUnit ); 45 46 46 47 /// replaces UniqueExprs with a temporary variable and one call -
src/Validate/Autogen.cpp
r12df6fe r4520b77e 377 377 ast::ObjectDecl * FuncGenerator::dstParam() const { 378 378 return new ast::ObjectDecl( getLocation(), "_dst", 379 new ast::ReferenceType( ast::deepCopy( type ) ), 380 nullptr, {}, ast::Linkage::Cforall ); 379 new ast::ReferenceType( ast::deepCopy( type ) ) ); 381 380 } 382 381 383 382 ast::ObjectDecl * FuncGenerator::srcParam() const { 384 383 return new ast::ObjectDecl( getLocation(), "_src", 385 ast::deepCopy( type ), 386 nullptr, {}, ast::Linkage::Cforall ); 384 ast::deepCopy( type ) ); 387 385 } 388 386 … … 436 434 ast::ObjectDecl * param = new ast::ObjectDecl( 437 435 getLocation(), member->name, paramType ); 438 param->linkage = ast::Linkage::Cforall;439 436 for ( auto & attr : member->attributes ) { 440 437 if ( attr->isValidOnFuncParam() ) { -
src/Virtual/ExpandCasts.cc
r12df6fe r4520b77e 10 10 // Created On : Mon Jul 24 13:59:00 2017 11 11 // Last Modified By : Andrew Beach 12 // Last Modified On : Fri Jul 31 10:29:00 202013 // Update Count : 412 // Last Modified On : Thu Aug 11 12:06:00 2022 13 // Update Count : 5 14 14 // 15 15 … … 20 20 #include <string> // for string, allocator, operator==, ope... 21 21 22 #include "AST/Decl.hpp" 23 #include "AST/Expr.hpp" 24 #include "AST/Pass.hpp" 22 25 #include "Common/PassVisitor.h" // for PassVisitor 23 26 #include "Common/ScopedMap.h" // for ScopedMap … … 32 35 namespace Virtual { 33 36 34 static bool is_prefix( const std::string & prefix, const std::string& entire ) { 37 namespace { 38 39 bool is_prefix( const std::string & prefix, const std::string& entire ) { 35 40 size_t const p_size = prefix.size(); 36 41 return (p_size < entire.size() && prefix == entire.substr(0, p_size)); 37 42 } 38 43 39 staticbool is_type_id_object( const ObjectDecl * objectDecl ) {44 bool is_type_id_object( const ObjectDecl * objectDecl ) { 40 45 const std::string & objectName = objectDecl->name; 41 46 return is_prefix( "__cfatid_", objectName ); 47 } 48 49 bool is_type_id_object( const ast::ObjectDecl * decl ) { 50 return is_prefix( "__cfatid_", decl->name ); 42 51 } 43 52 … … 124 133 } 125 134 } 126 127 namespace {128 135 129 136 /// Better error locations for generated casts. … … 229 236 } 230 237 231 } // namespace232 233 238 Expression * VirtualCastCore::postmutate( VirtualCastExpr * castExpr ) { 234 239 assertf( castExpr->result, "Virtual Cast target not found before expansion." ); … … 265 270 } 266 271 267 void expandCasts( std::list< Declaration * > & translationUnit ) { 268 PassVisitor<VirtualCastCore> translator; 269 mutateAll( translationUnit, translator ); 270 } 271 } 272 /// Better error locations for generated casts. 273 // TODO: Does the improved distribution of code locations make this unneeded? 274 CodeLocation castLocation( const ast::VirtualCastExpr * castExpr ) { 275 if ( castExpr->location.isSet() ) { 276 return castExpr->location; 277 } else if ( castExpr->arg->location.isSet() ) { 278 return castExpr->arg->location; 279 } else { 280 return CodeLocation(); 281 } 282 } 283 284 [[noreturn]] void castError( ast::VirtualCastExpr const * castExpr, std::string const & message ) { 285 SemanticError( castLocation( castExpr ), message ); 286 } 287 288 class TypeIdTable final { 289 ScopedMap<std::string, ast::ObjectDecl const *> instances; 290 public: 291 void enterScope() { instances.beginScope(); } 292 void leaveScope() { instances.endScope(); } 293 294 // Attempt to insert an instance into the map. If there is a conflict, 295 // returns the previous declaration for error messages. 296 ast::ObjectDecl const * insert( ast::ObjectDecl const * typeIdDecl ) { 297 std::string const & mangledName = 298 Mangle::mangle( typeIdDecl->type, Mangle::typeMode() ); 299 ast::ObjectDecl const *& value = instances[ mangledName ]; 300 if ( value ) { 301 if ( typeIdDecl->storage.is_extern ) { 302 return nullptr; 303 } else if ( !value->storage.is_extern ) { 304 return value; 305 } 306 } 307 value = typeIdDecl; 308 return nullptr; 309 } 310 311 ast::ObjectDecl const * lookup( ast::Type const * typeIdType ) { 312 std::string const & mangledName = 313 Mangle::mangle( typeIdType, Mangle::typeMode() ); 314 auto const it = instances.find( mangledName ); 315 return ( instances.end() == it ) ? nullptr : it->second; 316 } 317 }; 318 319 struct ExpandCastsCore final { 320 void previsit( ast::FunctionDecl const * decl ); 321 void previsit( ast::StructDecl const * decl ); 322 void previsit( ast::ObjectDecl const * decl ); 323 ast::Expr const * postvisit( ast::VirtualCastExpr const * expr ); 324 325 ast::CastExpr const * cast_to_type_id( 326 ast::Expr const * expr, unsigned int level_of_indirection ); 327 328 ast::FunctionDecl const * vcast_decl = nullptr; 329 ast::StructDecl const * info_decl = nullptr; 330 331 TypeIdTable symtab; 332 }; 333 334 void ExpandCastsCore::previsit( ast::FunctionDecl const * decl ) { 335 if ( !vcast_decl && "__cfavir_virtual_cast" == decl->name ) { 336 vcast_decl = decl; 337 } 338 } 339 340 void ExpandCastsCore::previsit( ast::StructDecl const * decl ) { 341 if ( !info_decl && decl->body && "__cfavir_type_info" == decl->name ) { 342 info_decl = decl; 343 } 344 } 345 346 void ExpandCastsCore::previsit( ast::ObjectDecl const * decl ) { 347 if ( is_type_id_object( decl ) ) { 348 // Multiple definitions should be fine because of linkonce. 349 symtab.insert( decl ); 350 } 351 } 352 353 /// Get the base type from a pointer or reference. 354 ast::Type const * getBaseType( ast::ptr<ast::Type> const & type ) { 355 if ( auto target = type.as<ast::PointerType>() ) { 356 return target->base.get(); 357 } else if ( auto target = type.as<ast::ReferenceType>() ) { 358 return target->base.get(); 359 } else { 360 return nullptr; 361 } 362 } 363 364 /// Copy newType, but give the copy the params of the oldType. 365 ast::StructInstType * polyCopy( 366 ast::StructInstType const * oldType, 367 ast::StructInstType const * newType ) { 368 assert( oldType->params.size() == newType->params.size() ); 369 ast::StructInstType * retType = ast::deepCopy( newType ); 370 if ( ! oldType->params.empty() ) { 371 retType->params.clear(); 372 for ( auto oldParams : oldType->params ) { 373 retType->params.push_back( ast::deepCopy( oldParams ) ); 374 } 375 } 376 return retType; 377 } 378 379 /// Follow the "head" field of the structure to get the type that is pointed 380 /// to by that field. 381 ast::StructInstType const * followHeadPointerType( 382 CodeLocation const & errorLocation, 383 ast::StructInstType const * oldType, 384 std::string const & fieldName ) { 385 ast::StructDecl const * oldDecl = oldType->base; 386 assert( oldDecl ); 387 388 // Helper function for throwing semantic errors. 389 auto throwError = [&fieldName, &errorLocation, &oldDecl]( 390 std::string const & message ) { 391 std::string const & context = "While following head pointer of " + 392 oldDecl->name + " named '" + fieldName + "': "; 393 SemanticError( errorLocation, context + message ); 394 }; 395 396 if ( oldDecl->members.empty() ) { 397 throwError( "Type has no fields." ); 398 } 399 ast::ptr<ast::Decl> const & memberDecl = oldDecl->members.front(); 400 assert( memberDecl ); 401 ast::ObjectDecl const * fieldDecl = memberDecl.as<ast::ObjectDecl>(); 402 assert( fieldDecl ); 403 if ( fieldName != fieldDecl->name ) { 404 throwError( "Head field did not have expected name." ); 405 } 406 407 ast::ptr<ast::Type> const & fieldType = fieldDecl->type; 408 if ( nullptr == fieldType ) { 409 throwError( "Could not get head field." ); 410 } 411 auto ptrType = fieldType.as<ast::PointerType>(); 412 if ( nullptr == ptrType ) { 413 throwError( "First field is not a pointer type." ); 414 } 415 assert( ptrType->base ); 416 auto newType = ptrType->base.as<ast::StructInstType>(); 417 if ( nullptr == newType ) { 418 throwError( "First field does not point to a structure type." ); 419 } 420 421 return polyCopy( oldType, newType ); 422 } 423 424 /// Get the type-id type from a virtual type. 425 ast::StructInstType const * getTypeIdType( 426 CodeLocation const & errorLocation, 427 ast::Type const * type ) { 428 auto typeInst = dynamic_cast<ast::StructInstType const *>( type ); 429 if ( nullptr == typeInst ) { 430 return nullptr; 431 } 432 ast::ptr<ast::StructInstType> tableInst = 433 followHeadPointerType( errorLocation, typeInst, "virtual_table" ); 434 if ( nullptr == tableInst ) { 435 return nullptr; 436 } 437 ast::StructInstType const * typeIdInst = 438 followHeadPointerType( errorLocation, tableInst, "__cfavir_typeid" ); 439 return typeIdInst; 440 } 441 442 ast::Expr const * ExpandCastsCore::postvisit( 443 ast::VirtualCastExpr const * expr ) { 444 assertf( expr->result, "Virtual cast target not found before expansion." ); 445 446 assert( vcast_decl ); 447 assert( info_decl ); 448 449 ast::Type const * base_type = getBaseType( expr->result ); 450 if ( nullptr == base_type ) { 451 castError( expr, "Virtual cast target must be a pointer or reference type." ); 452 } 453 ast::StructInstType const * type_id_type = 454 getTypeIdType( castLocation( expr ), base_type ); 455 if ( nullptr == type_id_type ) { 456 castError( expr, "Ill formed virtual cast target type." ); 457 } 458 ast::ObjectDecl const * type_id = symtab.lookup( type_id_type ); 459 if ( nullptr == type_id ) { 460 // I'm trying to give a different error for polymorpic types as 461 // different things can go wrong there. 462 if ( type_id_type->params.empty() ) { 463 castError( expr, "Virtual cast does not target a virtual type." ); 464 } else { 465 castError( expr, "Virtual cast does not target a type with a " 466 "type id (possible missing virtual table)." ); 467 } 468 } 469 470 return new ast::CastExpr( expr->location, 471 new ast::ApplicationExpr( expr->location, 472 ast::VariableExpr::functionPointer( expr->location, vcast_decl ), 473 { 474 cast_to_type_id( 475 new ast::AddressExpr( expr->location, 476 new ast::VariableExpr( expr->location, type_id ) ), 477 1 ), 478 cast_to_type_id( expr->arg, 2 ), 479 } 480 ), 481 ast::deepCopy( expr->result ) 482 ); 483 } 484 485 ast::CastExpr const * ExpandCastsCore::cast_to_type_id( 486 ast::Expr const * expr, unsigned int level_of_indirection ) { 487 assert( info_decl ); 488 ast::Type * type = new ast::StructInstType( info_decl, ast::CV::Const ); 489 for ( unsigned int i = 0 ; i < level_of_indirection ; ++i ) { 490 type = new ast::PointerType( type ); 491 } 492 return new ast::CastExpr( expr->location, expr, type ); 493 } 494 495 } // namespace 496 497 void expandCasts( std::list< Declaration * > & translationUnit ) { 498 PassVisitor<VirtualCastCore> translator; 499 mutateAll( translationUnit, translator ); 500 } 501 502 void expandCasts( ast::TranslationUnit & translationUnit ) { 503 ast::Pass<ExpandCastsCore>::run( translationUnit ); 504 } 505 506 } // namespace Virtual -
src/Virtual/ExpandCasts.h
r12df6fe r4520b77e 10 10 // Created On : Mon Jul 24 13:54:00 2017 11 11 // Last Modified By : Andrew Beach 12 // Last Modified On : Tus Jul 25 14:51:00 201713 // Update Count : 012 // Last Modified On : Fri Jul 29 14:40:00 2022 13 // Update Count : 1 14 14 // 15 15 … … 19 19 20 20 class Declaration; 21 namespace ast { 22 class TranslationUnit; 23 } 21 24 22 25 namespace Virtual { 23 void expandCasts( std::list< Declaration * > & translationUnit ); 24 // Breaks all virtual cast nodes up into translatable nodes. 26 void expandCasts( std::list< Declaration * > & translationUnit ); 27 void expandCasts( ast::TranslationUnit & translationUnit ); 28 // Breaks all virtual cast nodes up into translatable nodes. 25 29 26 // Later this might just set some information so it can happen at CodeGen.30 // Later this might just set some information so it can happen at CodeGen. 27 31 28 32 } -
src/config.h.in
r12df6fe r4520b77e 27 27 /* Location of cfa install. */ 28 28 #undef CFA_PREFIX 29 30 /* Sets whether or not to use the new-ast, this is adefault value and can be31 overrided by --old-ast and --new-ast */32 #undef CFA_USE_NEW_AST33 29 34 30 /* Major.Minor */ -
src/main.cc
r12df6fe r4520b77e 10 10 // Created On : Fri May 15 23:12:02 2015 11 11 // Last Modified By : Andrew Beach 12 // Last Modified On : Mon Jul 18 11:08:00 202213 // Update Count : 67 612 // Last Modified On : Thu Sep 15 13:58:00 2022 13 // Update Count : 678 14 14 // 15 15 … … 38 38 #include "CodeGen/Generate.h" // for generate 39 39 #include "CodeGen/LinkOnce.h" // for translateLinkOnce 40 #include "CodeTools/DeclStats.h" // for printDeclStats41 #include "CodeTools/ResolvProtoDump.h" // for dumpAsResolvProto42 40 #include "CodeTools/TrackLoc.h" // for fillLocations 43 41 #include "Common/CodeLocationTools.hpp" // for forceFillCodeLocations … … 45 43 #include "Common/DeclStats.hpp" // for printDeclStats 46 44 #include "Common/ResolvProtoDump.hpp" // for dumpAsResolverProto 47 #include "Common/Stats.h" 48 #include "Common/PassVisitor.h" 49 #include "Common/SemanticError.h" // for SemanticError 45 #include "Common/Stats.h" // for Stats 50 46 #include "Common/UnimplementedError.h" // for UnimplementedError 51 47 #include "Common/utility.h" // for deleteAll, filter, printAll … … 53 49 #include "Concurrency/Waitfor.h" // for generateWaitfor 54 50 #include "ControlStruct/ExceptDecl.h" // for translateExcept 55 #include "ControlStruct/ExceptTranslate.h" // for translate EHM51 #include "ControlStruct/ExceptTranslate.h" // for translateThrows, translat... 56 52 #include "ControlStruct/FixLabels.hpp" // for fixLabels 57 53 #include "ControlStruct/HoistControlDecls.hpp" // hoistControlDecls 58 #include "ControlStruct/Mutate.h" // for mutate59 54 #include "GenPoly/Box.h" // for box 60 55 #include "GenPoly/InstantiateGeneric.h" // for instantiateGeneric … … 66 61 #include "Parser/ParseNode.h" // for DeclarationNode, buildList 67 62 #include "Parser/TypedefTable.h" // for TypedefTable 68 #include "ResolvExpr/AlternativePrinter.h" // for AlternativePrinter69 63 #include "ResolvExpr/CandidatePrinter.hpp" // for printCandidates 70 64 #include "ResolvExpr/Resolver.h" // for resolve 71 #include "SymTab/Validate.h" // for validate72 #include "SymTab/ValidateType.h" // for linkReferenceToTypes73 65 #include "SynTree/LinkageSpec.h" // for Spec, Cforall, Intrinsic 74 66 #include "SynTree/Declaration.h" // for Declaration 75 #include "SynTree/Visitor.h" // for acceptAll76 67 #include "Tuples/Tuples.h" // for expandMemberTuples, expan... 77 68 #include "Validate/Autogen.hpp" // for autogenerateRoutines … … 330 321 Stats::Time::StopBlock(); 331 322 332 if( useNewAST ) { 333 if (Stats::Counters::enabled) { 334 ast::pass_visitor_stats.avg = Stats::Counters::build<Stats::Counters::AverageCounter<double>>("Average Depth - New"); 335 ast::pass_visitor_stats.max = Stats::Counters::build<Stats::Counters::MaxCounter<double>>("Max depth - New"); 336 } 337 auto transUnit = convert( move( translationUnit ) ); 338 339 forceFillCodeLocations( transUnit ); 340 341 PASS( "Translate Exception Declarations", ControlStruct::translateExcept( transUnit ) ); 342 if ( exdeclp ) { 343 dump( move( transUnit ) ); 344 return EXIT_SUCCESS; 345 } 346 347 PASS( "Verify Ctor, Dtor & Assign", Validate::verifyCtorDtorAssign( transUnit ) ); 348 PASS( "Hoist Type Decls", Validate::hoistTypeDecls( transUnit ) ); 349 // Hoist Type Decls pulls some declarations out of contexts where 350 // locations are not tracked. Perhaps they should be, but for now 351 // the full fill solves it. 352 forceFillCodeLocations( transUnit ); 353 354 PASS( "Replace Typedefs", Validate::replaceTypedef( transUnit ) ); 355 PASS( "Fix Return Types", Validate::fixReturnTypes( transUnit ) ); 356 PASS( "Enum and Pointer Decay", Validate::decayEnumsAndPointers( transUnit ) ); 357 358 PASS( "Link Reference To Types", Validate::linkReferenceToTypes( transUnit ) ); 359 360 PASS( "Fix Qualified Types", Validate::fixQualifiedTypes( transUnit ) ); 361 PASS( "Hoist Struct", Validate::hoistStruct( transUnit ) ); 362 PASS( "Eliminate Typedef", Validate::eliminateTypedef( transUnit ) ); 363 PASS( "Validate Generic Parameters", Validate::fillGenericParameters( transUnit ) ); 364 PASS( "Translate Dimensions", Validate::translateDimensionParameters( transUnit ) ); 365 PASS( "Check Function Returns", Validate::checkReturnStatements( transUnit ) ); 366 PASS( "Fix Return Statements", InitTweak::fixReturnStatements( transUnit ) ); 367 PASS( "Implement Concurrent Keywords", Concurrency::implementKeywords( transUnit ) ); 368 PASS( "Forall Pointer Decay", Validate::decayForallPointers( transUnit ) ); 369 PASS( "Hoist Control Declarations", ControlStruct::hoistControlDecls( transUnit ) ); 370 371 PASS( "Generate Autogen Routines", Validate::autogenerateRoutines( transUnit ) ); 372 373 PASS( "Implement Mutex", Concurrency::implementMutex( transUnit ) ); 374 PASS( "Implement Thread Start", Concurrency::implementThreadStarter( transUnit ) ); 375 PASS( "Compound Literal", Validate::handleCompoundLiterals( transUnit ) ); 376 PASS( "Set Length From Initializer", Validate::setLengthFromInitializer( transUnit ) ); 377 PASS( "Find Global Decls", Validate::findGlobalDecls( transUnit ) ); 378 PASS( "Fix Label Address", Validate::fixLabelAddresses( transUnit ) ); 379 380 if ( symtabp ) { 381 return EXIT_SUCCESS; 382 } // if 383 384 if ( expraltp ) { 385 ResolvExpr::printCandidates( transUnit ); 386 return EXIT_SUCCESS; 387 } // if 388 389 if ( validp ) { 390 dump( move( transUnit ) ); 391 return EXIT_SUCCESS; 392 } // if 393 394 PASS( "Translate Throws", ControlStruct::translateThrows( transUnit ) ); 395 PASS( "Fix Labels", ControlStruct::fixLabels( transUnit ) ); 396 PASS( "Fix Names", CodeGen::fixNames( transUnit ) ); 397 PASS( "Gen Init", InitTweak::genInit( transUnit ) ); 398 PASS( "Expand Member Tuples" , Tuples::expandMemberTuples( transUnit ) ); 399 400 if ( libcfap ) { 401 // Generate the bodies of cfa library functions. 402 LibCfa::makeLibCfa( transUnit ); 403 } // if 404 405 if ( declstatsp ) { 406 printDeclStats( transUnit ); 407 return EXIT_SUCCESS; 408 } // if 409 410 if ( bresolvep ) { 411 dump( move( transUnit ) ); 412 return EXIT_SUCCESS; 413 } // if 414 415 if ( resolvprotop ) { 416 dumpAsResolverProto( transUnit ); 417 return EXIT_SUCCESS; 418 } // if 419 420 PASS( "Resolve", ResolvExpr::resolve( transUnit ) ); 421 if ( exprp ) { 422 dump( move( transUnit ) ); 423 return EXIT_SUCCESS; 424 } // if 425 426 forceFillCodeLocations( transUnit ); 427 428 PASS( "Fix Init", InitTweak::fix(transUnit, buildingLibrary())); 429 430 // fix ObjectDecl - replaces ConstructorInit nodes 431 if ( ctorinitp ) { 432 dump( move( transUnit ) ); 433 return EXIT_SUCCESS; 434 } // if 435 436 // Currently not working due to unresolved issues with UniqueExpr 437 PASS( "Expand Unique Expr", Tuples::expandUniqueExpr( transUnit ) ); // xxx - is this the right place for this? want to expand ASAP so tha, sequent passes don't need to worry about double-visiting a unique expr - needs to go after InitTweak::fix so that copy constructed return declarations are reused 438 439 PASS( "Translate Tries", ControlStruct::translateTries( transUnit ) ); 440 PASS( "Gen Waitfor", Concurrency::generateWaitFor( transUnit ) ); 441 PASS( "Convert Specializations", GenPoly::convertSpecializations( transUnit ) ); // needs to happen before tuple types are expanded 442 443 444 translationUnit = convert( move( transUnit ) ); 445 } else { 446 PASS( "Translate Exception Declarations", ControlStruct::translateExcept( translationUnit ) ); 447 if ( exdeclp ) { 448 dump( translationUnit ); 449 return EXIT_SUCCESS; 450 } // if 451 452 // add the assignment statement after the initialization of a type parameter 453 PASS( "Validate", SymTab::validate( translationUnit ) ); 454 455 if ( symtabp ) { 456 deleteAll( translationUnit ); 457 return EXIT_SUCCESS; 458 } // if 459 460 if ( expraltp ) { 461 PassVisitor<ResolvExpr::AlternativePrinter> printer( cout ); 462 acceptAll( translationUnit, printer ); 463 return EXIT_SUCCESS; 464 } // if 465 466 if ( validp ) { 467 dump( translationUnit ); 468 return EXIT_SUCCESS; 469 } // if 470 471 PASS( "Translate Throws", ControlStruct::translateThrows( translationUnit ) ); 472 PASS( "Fix Labels", ControlStruct::fixLabels( translationUnit ) ); 473 PASS( "Fix Names", CodeGen::fixNames( translationUnit ) ); 474 PASS( "Gen Init", InitTweak::genInit( translationUnit ) ); 475 PASS( "Expand Member Tuples" , Tuples::expandMemberTuples( translationUnit ) ); 476 477 if ( libcfap ) { 478 // Generate the bodies of cfa library functions. 479 LibCfa::makeLibCfa( translationUnit ); 480 } // if 481 482 if ( declstatsp ) { 483 CodeTools::printDeclStats( translationUnit ); 484 deleteAll( translationUnit ); 485 return EXIT_SUCCESS; 486 } // if 487 488 if ( bresolvep ) { 489 dump( translationUnit ); 490 return EXIT_SUCCESS; 491 } // if 492 493 CodeTools::fillLocations( translationUnit ); 494 495 if ( resolvprotop ) { 496 CodeTools::dumpAsResolvProto( translationUnit ); 497 return EXIT_SUCCESS; 498 } // if 499 500 PASS( "Resolve", ResolvExpr::resolve( translationUnit ) ); 501 if ( exprp ) { 502 dump( translationUnit ); 503 return EXIT_SUCCESS; 504 } 505 506 PASS( "Fix Init", InitTweak::fix( translationUnit, buildingLibrary() ) ); 507 508 // fix ObjectDecl - replaces ConstructorInit nodes 509 if ( ctorinitp ) { 510 dump ( translationUnit ); 511 return EXIT_SUCCESS; 512 } // if 513 514 PASS( "Expand Unique Expr", Tuples::expandUniqueExpr( translationUnit ) ); // xxx - is this the right place for this? want to expand ASAP so tha, sequent passes don't need to worry about double-visiting a unique expr - needs to go after InitTweak::fix so that copy constructed return declarations are reused 515 PASS( "Translate Tries", ControlStruct::translateTries( translationUnit ) ); 516 PASS( "Gen Waitfor", Concurrency::generateWaitFor( translationUnit ) ); 517 PASS( "Convert Specializations", GenPoly::convertSpecializations( translationUnit ) ); // needs to happen before tuple types are expanded 518 323 if (Stats::Counters::enabled) { 324 ast::pass_visitor_stats.avg = Stats::Counters::build<Stats::Counters::AverageCounter<double>>("Average Depth - New"); 325 ast::pass_visitor_stats.max = Stats::Counters::build<Stats::Counters::MaxCounter<double>>("Max depth - New"); 519 326 } 520 521 522 // PASS( "Convert Specializations", GenPoly::convertSpecializations( translationUnit ) ); // needs to happen before tuple types are expanded 523 524 PASS( "Expand Tuples", Tuples::expandTuples( translationUnit ) ); // xxx - is this the right place for this? 327 auto transUnit = convert( std::move( translationUnit ) ); 328 329 forceFillCodeLocations( transUnit ); 330 331 PASS( "Translate Exception Declarations", ControlStruct::translateExcept( transUnit ) ); 332 if ( exdeclp ) { 333 dump( std::move( transUnit ) ); 334 return EXIT_SUCCESS; 335 } 336 337 PASS( "Verify Ctor, Dtor & Assign", Validate::verifyCtorDtorAssign( transUnit ) ); 338 PASS( "Hoist Type Decls", Validate::hoistTypeDecls( transUnit ) ); 339 // Hoist Type Decls pulls some declarations out of contexts where 340 // locations are not tracked. Perhaps they should be, but for now 341 // the full fill solves it. 342 forceFillCodeLocations( transUnit ); 343 344 PASS( "Replace Typedefs", Validate::replaceTypedef( transUnit ) ); 345 PASS( "Fix Return Types", Validate::fixReturnTypes( transUnit ) ); 346 PASS( "Enum and Pointer Decay", Validate::decayEnumsAndPointers( transUnit ) ); 347 348 PASS( "Link Reference To Types", Validate::linkReferenceToTypes( transUnit ) ); 349 350 PASS( "Fix Qualified Types", Validate::fixQualifiedTypes( transUnit ) ); 351 PASS( "Hoist Struct", Validate::hoistStruct( transUnit ) ); 352 PASS( "Eliminate Typedef", Validate::eliminateTypedef( transUnit ) ); 353 PASS( "Validate Generic Parameters", Validate::fillGenericParameters( transUnit ) ); 354 PASS( "Translate Dimensions", Validate::translateDimensionParameters( transUnit ) ); 355 PASS( "Check Function Returns", Validate::checkReturnStatements( transUnit ) ); 356 PASS( "Fix Return Statements", InitTweak::fixReturnStatements( transUnit ) ); 357 PASS( "Implement Concurrent Keywords", Concurrency::implementKeywords( transUnit ) ); 358 PASS( "Forall Pointer Decay", Validate::decayForallPointers( transUnit ) ); 359 PASS( "Hoist Control Declarations", ControlStruct::hoistControlDecls( transUnit ) ); 360 361 PASS( "Generate Autogen Routines", Validate::autogenerateRoutines( transUnit ) ); 362 363 PASS( "Implement Mutex", Concurrency::implementMutex( transUnit ) ); 364 PASS( "Implement Thread Start", Concurrency::implementThreadStarter( transUnit ) ); 365 PASS( "Compound Literal", Validate::handleCompoundLiterals( transUnit ) ); 366 PASS( "Set Length From Initializer", Validate::setLengthFromInitializer( transUnit ) ); 367 PASS( "Find Global Decls", Validate::findGlobalDecls( transUnit ) ); 368 PASS( "Fix Label Address", Validate::fixLabelAddresses( transUnit ) ); 369 370 if ( symtabp ) { 371 return EXIT_SUCCESS; 372 } // if 373 374 if ( expraltp ) { 375 ResolvExpr::printCandidates( transUnit ); 376 return EXIT_SUCCESS; 377 } // if 378 379 if ( validp ) { 380 dump( std::move( transUnit ) ); 381 return EXIT_SUCCESS; 382 } // if 383 384 PASS( "Translate Throws", ControlStruct::translateThrows( transUnit ) ); 385 PASS( "Fix Labels", ControlStruct::fixLabels( transUnit ) ); 386 PASS( "Fix Names", CodeGen::fixNames( transUnit ) ); 387 PASS( "Gen Init", InitTweak::genInit( transUnit ) ); 388 PASS( "Expand Member Tuples" , Tuples::expandMemberTuples( transUnit ) ); 389 390 if ( libcfap ) { 391 // Generate the bodies of cfa library functions. 392 LibCfa::makeLibCfa( transUnit ); 393 } // if 394 395 if ( declstatsp ) { 396 printDeclStats( transUnit ); 397 return EXIT_SUCCESS; 398 } // if 399 400 if ( bresolvep ) { 401 dump( std::move( transUnit ) ); 402 return EXIT_SUCCESS; 403 } // if 404 405 if ( resolvprotop ) { 406 dumpAsResolverProto( transUnit ); 407 return EXIT_SUCCESS; 408 } // if 409 410 PASS( "Resolve", ResolvExpr::resolve( transUnit ) ); 411 if ( exprp ) { 412 dump( std::move( transUnit ) ); 413 return EXIT_SUCCESS; 414 } // if 415 416 forceFillCodeLocations( transUnit ); 417 418 PASS( "Fix Init", InitTweak::fix(transUnit, buildingLibrary())); 419 420 // fix ObjectDecl - replaces ConstructorInit nodes 421 if ( ctorinitp ) { 422 dump( std::move( transUnit ) ); 423 return EXIT_SUCCESS; 424 } // if 425 426 // Currently not working due to unresolved issues with UniqueExpr 427 PASS( "Expand Unique Expr", Tuples::expandUniqueExpr( transUnit ) ); // xxx - is this the right place for this? want to expand ASAP so tha, sequent passes don't need to worry about double-visiting a unique expr - needs to go after InitTweak::fix so that copy constructed return declarations are reused 428 429 PASS( "Translate Tries", ControlStruct::translateTries( transUnit ) ); 430 PASS( "Gen Waitfor", Concurrency::generateWaitFor( transUnit ) ); 431 432 // Needs to happen before tuple types are expanded. 433 PASS( "Convert Specializations", GenPoly::convertSpecializations( transUnit ) ); 434 435 PASS( "Expand Tuples", Tuples::expandTuples( transUnit ) ); 525 436 526 437 if ( tuplep ) { 527 dump( translationUnit ); 528 return EXIT_SUCCESS; 529 } // if 530 531 PASS( "Virtual Expand Casts", Virtual::expandCasts( translationUnit ) ); // Must come after translateEHM 532 533 PASS( "Instantiate Generics", GenPoly::instantiateGeneric( translationUnit ) ); 438 dump( std::move( transUnit ) ); 439 return EXIT_SUCCESS; 440 } // if 441 442 // Must come after Translate Tries. 443 PASS( "Virtual Expand Casts", Virtual::expandCasts( transUnit ) ); 444 445 PASS( "Instantiate Generics", GenPoly::instantiateGeneric( transUnit ) ); 446 447 translationUnit = convert( std::move( transUnit ) ); 448 534 449 if ( genericsp ) { 535 450 dump( translationUnit ); … … 614 529 615 530 616 static const char optstring[] = ":c:ghlLmNnpd OAP:S:twW:D:";531 static const char optstring[] = ":c:ghlLmNnpdP:S:twW:D:"; 617 532 618 533 enum { PreludeDir = 128 }; … … 628 543 { "prototypes", no_argument, nullptr, 'p' }, 629 544 { "deterministic-out", no_argument, nullptr, 'd' }, 630 { "old-ast", no_argument, nullptr, 'O'},631 { "new-ast", no_argument, nullptr, 'A'},632 545 { "print", required_argument, nullptr, 'P' }, 633 546 { "prelude-dir", required_argument, nullptr, PreludeDir }, … … 651 564 "do not generate prelude prototypes => prelude not printed", // -p 652 565 "only print deterministic output", // -d 653 "Use the old-ast", // -O654 "Use the new-ast", // -A655 566 "print", // -P 656 567 "<directory> prelude directory for debug/nodebug", // no flag … … 761 672 deterministic_output = true; 762 673 break; 763 case 'O': // don't print non-deterministic output764 useNewAST = false;765 break;766 case 'A': // don't print non-deterministic output767 useNewAST = true;768 break;769 674 case 'P': // print options 770 675 for ( int i = 0;; i += 1 ) { … … 883 788 884 789 static void dump( ast::TranslationUnit && transUnit, ostream & out ) { 885 std::list< Declaration * > translationUnit = convert( move( transUnit ) );790 std::list< Declaration * > translationUnit = convert( std::move( transUnit ) ); 886 791 dump( translationUnit, out ); 887 792 } -
tests/.expect/declarationSpecifier.arm64.txt
r12df6fe r4520b77e 735 735 } 736 736 static volatile const struct __anonymous15 _X3x36KVS13__anonymous15_1; 737 _Thread_local signed int _X3x37i_1; 738 __thread signed int _X3x38i_1; 737 739 static inline volatile const signed int _X3f11Fi___1(); 738 740 static inline volatile const signed int _X3f12Fi___1(); -
tests/.expect/declarationSpecifier.x64.txt
r12df6fe r4520b77e 735 735 } 736 736 static volatile const struct __anonymous15 _X3x36KVS13__anonymous15_1; 737 _Thread_local signed int _X3x37i_1; 738 __thread signed int _X3x38i_1; 737 739 static inline volatile const signed int _X3f11Fi___1(); 738 740 static inline volatile const signed int _X3f12Fi___1(); -
tests/.expect/declarationSpecifier.x86.txt
r12df6fe r4520b77e 735 735 } 736 736 static volatile const struct __anonymous15 _X3x36KVS13__anonymous15_1; 737 _Thread_local signed int _X3x37i_1; 738 __thread signed int _X3x38i_1; 737 739 static inline volatile const signed int _X3f11Fi___1(); 738 740 static inline volatile const signed int _X3f12Fi___1(); -
tests/.expect/loop_else.txt
r12df6fe r4520b77e 33 33 0 1 2 3 4 5 6 7 8 9 else 34 34 0 1 2 3 4 5 6 7 8 9 10 else 35 10 9 8 7 6 5 4 3 2 1 else35 10 9 8 7 6 5 4 3 2 1 0 else 36 36 37 37 3 6 9 else 38 39 (0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)else40 (0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)else41 42 (0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)else43 (0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)else44 (0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)(10 10)else45 (0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)(10 10)else46 47 (10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)else48 (10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)else49 (10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)(0 0)else50 (10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)(0 0)else51 38 52 39 0 -5 1 -4 2 -3 3 -2 4 -1 5 0 6 1 7 2 8 3 9 4 else … … 63 50 0 -5 1.5 1 -7 2.5 2 -9 3.5 3 -11 4.5 4 -13 5.5 5 -15 6.5 6 -17 7.5 7 -19 8.5 8 -21 9.5 9 -23 10.5 else 64 51 0 -5 1.5 1 -7 2.5 2 -9 3.5 3 -11 4.5 4 -13 5.5 5 -15 6.5 6 -17 7.5 7 -19 8.5 8 -21 9.5 9 -23 10.5 else 52 (0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)else 53 (0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)else 54 55 (0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)else 56 (0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)else 57 (0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)(10 10)else 58 (0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)(10 10)else 59 60 (10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)else 61 (10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)else 62 (10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)(0 0)else 63 (10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)(0 0)else 64 -
tests/.expect/loopctrl.txt
r12df6fe r4520b77e 31 31 0 1 2 3 4 5 6 7 8 9 32 32 0 1 2 3 4 5 6 7 8 9 10 33 10 9 8 7 6 5 4 3 2 1 33 10 9 8 7 6 5 4 3 2 1 0 34 34 35 35 3 6 9 36 37 (0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)38 (0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)39 40 (0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)41 (0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)42 (0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)(10 10)43 (0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)(10 10)44 45 (10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)46 (10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)47 (10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)(0 0)48 (10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)(0 0)49 36 50 37 0 -5 1 -4 2 -3 3 -2 4 -1 5 0 6 1 7 2 8 3 9 4 … … 61 48 0 -5 1.5 1 -7 2.5 2 -9 3.5 3 -11 4.5 4 -13 5.5 5 -15 6.5 6 -17 7.5 7 -19 8.5 8 -21 9.5 9 -23 10.5 62 49 0 -5 1.5 1 -7 2.5 2 -9 3.5 3 -11 4.5 4 -13 5.5 5 -15 6.5 6 -17 7.5 7 -19 8.5 8 -21 9.5 9 -23 10.5 50 (0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9) 51 (0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9) 52 53 (0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9) 54 (0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9) 55 (0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)(10 10) 56 (0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)(10 10) 57 58 (10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1) 59 (10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1) 60 (10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)(0 0) 61 (10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)(0 0) 62 63 A A A A A A A A A A 64 B B B B B B B B B B B 65 C C C C C C C C C C 66 D D D D D D D D D D D 67 A A A A A A A A A A 68 B B B B B B B B B B B 69 C C C C C C C C C C 70 D D D D D D D D D D D 71 A A A A A 72 B B B B B B 73 C C C C C 74 D D D D D D 75 0 1 2 3 4 5 6 7 8 9 76 0 1 2 3 4 5 6 7 8 9 10 77 10 9 8 7 6 5 4 3 2 1 78 10 9 8 7 6 5 4 3 2 1 0 79 0 1 2 3 4 5 6 7 8 9 80 0 1 2 3 4 5 6 7 8 9 10 81 10 9 8 7 6 5 4 3 2 1 82 10 9 8 7 6 5 4 3 2 1 0 83 0 2 4 6 8 84 0 2 4 6 8 10 85 10 8 6 4 2 86 10 8 6 4 2 0 87 0 1 2 3 4 5 6 7 8 9 88 0 1 2 3 4 5 6 7 8 9 89 0 1 2 3 4 5 6 7 8 9 10 90 10 9 8 7 6 5 4 3 2 1 91 10 9 8 7 6 5 4 3 2 1 0 92 0 1 2 3 4 5 6 7 8 9 93 0 1 2 3 4 5 6 7 8 9 10 94 10 9 8 7 6 5 4 3 2 1 95 10 9 8 7 6 5 4 3 2 1 0 96 0 2 4 6 8 97 0 2 4 6 8 10 98 10 8 6 4 2 99 10 8 6 4 2 0 100 0 1 2 3 4 5 6 7 8 9 101 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 102 0 2 4 6 8 103 0 -2 -4 -6 -8 104 0 1 2 3 4 5 6 7 8 9 105 0 2 4 6 8 106 0 -2 -4 -6 -8 107 0 2 4 6 8 108 0 -2 -4 -6 -8 109 0 1 2 3 4 5 6 7 8 9 -
tests/Makefile.am
r12df6fe r4520b77e 54 54 55 55 # adjust CC to current flags 56 CC = LC_ALL=C $(if $(DISTCC_CFA_PATH),distcc $(DISTCC_CFA_PATH) ${ARCH_FLAGS} ${AST_FLAGS},$(TARGET_CFA) ${DEBUG_FLAGS} ${ARCH_FLAGS} ${AST_FLAGS})56 CC = LC_ALL=C $(if $(DISTCC_CFA_PATH),distcc $(DISTCC_CFA_PATH) ${ARCH_FLAGS} ,$(TARGET_CFA) ${DEBUG_FLAGS} ${ARCH_FLAGS}) 57 57 CFACC = $(CC) 58 58 … … 61 61 62 62 # adjusted CC but without the actual distcc call 63 CFACCLOCAL = $(if $(DISTCC_CFA_PATH),$(DISTCC_CFA_PATH) ${ARCH_FLAGS} ${AST_FLAGS},$(TARGET_CFA) ${DEBUG_FLAGS} ${ARCH_FLAGS} ${AST_FLAGS})63 CFACCLOCAL = $(if $(DISTCC_CFA_PATH),$(DISTCC_CFA_PATH) ${ARCH_FLAGS} ,$(TARGET_CFA) ${DEBUG_FLAGS} ${ARCH_FLAGS}) 64 64 CFACCLINK = $(CFACCLOCAL) -quiet $(if $(test), 2> $(test), ) $($(shell echo "${@}_FLAGSLD" | sed 's/-\|\//_/g')) 65 65 -
tests/concurrent/clib.c
r12df6fe r4520b77e 8 8 } 9 9 10 thread_local struct drand48_data buffer = { 0 };10 _Thread_local struct drand48_data buffer = { 0 }; 11 11 int myrand() { 12 12 long int result; -
tests/concurrent/clib_tls.c
r12df6fe r4520b77e 14 14 15 15 16 thread_localint checkval = 0xBAADF00D;16 __thread int checkval = 0xBAADF00D; 17 17 18 18 void init(void * ) { -
tests/concurrent/park/contention.cfa
r12df6fe r4520b77e 2 2 #include <thread.hfa> 3 3 4 thread_localdrand48_data buffer = { 0 };4 __thread drand48_data buffer = { 0 }; 5 5 int myrand() { 6 6 long int result; -
tests/config.py.in
r12df6fe r4520b77e 9 9 HOSTARCH = "@host_cpu@" 10 10 DISTRIBUTE = @HAS_DISTCC@ 11 NEWAST = @DEFAULT_NEW_AST@ -
tests/declarationSpecifier.cfa
r12df6fe r4520b77e 1 // 1 // 2 2 // Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo 3 3 // 4 4 // The contents of this file are covered under the licence agreement in the 5 5 // file "LICENCE" distributed with Cforall. 6 // 7 // declarationSpecifier.cfa -- 8 // 6 // 7 // declarationSpecifier.cfa -- 8 // 9 9 // Author : Peter A. Buhr 10 10 // Created On : Wed Aug 17 08:21:04 2016 … … 12 12 // Last Modified On : Tue Apr 30 18:20:36 2019 13 13 // Update Count : 4 14 // 14 // 15 15 16 16 typedef short int Int; … … 51 51 struct { Int i; } const static volatile x35; 52 52 struct { Int i; } const volatile static x36; 53 54 _Thread_local int x37; 55 __thread int x38; 53 56 54 57 static inline const volatile int f11(); -
tests/heap.cfa
r12df6fe r4520b77e 10 10 // Created On : Tue Nov 6 17:54:56 2018 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Dec 15 12:11:51 202013 // Update Count : 7912 // Last Modified On : Wed Aug 10 09:57:01 2022 13 // Update Count : 86 14 14 // 15 15 … … 26 26 // return __CFA_DEFAULT_PREEMPTION__; 27 27 // } 28 29 size_t default_heap_expansion() {30 return 10 * 1024 * 1024;31 } // default_heap_expansion32 33 size_t default_mmap_start() {34 return 512 * 1024 + 1;35 } // default_mmap_start36 28 37 29 thread Worker { … … 66 58 for ( k; i ) locns[i][k] = '\345'; 67 59 } // for 68 for ( i; NoOfAllocs - 1 -~= 0) {60 for ( i; -~= NoOfAllocs - 1 ) { 69 61 //sout | (void *)locns[i]; 70 62 for ( k; i ) if ( locns[i][k] != '\345' ) abort( "new/delete corrupt storage2" ); … … 99 91 100 92 for ( i; NoOfMmaps ) { 101 size_t s = i + default_mmap_start(); // cross over point93 size_t s = i + malloc_mmap_start(); // cross over point 102 94 char * area = (char *)malloc( s ); 103 95 area[0] = '\345'; area[s - 1] = '\345'; // fill first/last … … 107 99 108 100 for ( i; NoOfMmaps ) { 109 size_t s = i + default_mmap_start(); // cross over point101 size_t s = i + malloc_mmap_start(); // cross over point 110 102 locns[i] = (char *)malloc( s ); 111 103 locns[i][0] = '\345'; locns[i][s - 1] = '\345'; // fill first/last … … 113 105 } // for 114 106 for ( i; NoOfMmaps ) { 115 size_t s = i + default_mmap_start(); // cross over point107 size_t s = i + malloc_mmap_start(); // cross over point 116 108 if ( locns[i][0] != '\345' || locns[i][s - 1] != '\345' || 117 109 locns[i][malloc_usable_size( locns[i] ) - 1] != '\345' ) abort( "malloc/free corrupt storage" ); … … 151 143 152 144 for ( i; NoOfMmaps ) { 153 size_t s = i + default_mmap_start(); // cross over point145 size_t s = i + malloc_mmap_start(); // cross over point 154 146 char * area = (char *)calloc( 1, s ); 155 147 if ( area[0] != '\0' || area[s - 1] != '\0' ) abort( "calloc/free corrupt storage4.1" ); … … 162 154 163 155 for ( i; NoOfMmaps ) { 164 size_t s = i + default_mmap_start(); // cross over point156 size_t s = i + malloc_mmap_start(); // cross over point 165 157 locns[i] = (char *)calloc( 1, s ); 166 158 if ( locns[i][0] != '\0' || locns[i][s - 1] != '\0' || … … 171 163 } // for 172 164 for ( i; NoOfMmaps ) { 173 size_t s = i + default_mmap_start(); // cross over point165 size_t s = i + malloc_mmap_start(); // cross over point 174 166 if ( locns[i][0] != '\345' || locns[i][s - 1] != '\345' || 175 167 locns[i][malloc_usable_size( locns[i] ) - 1] != '\345' ) abort( "calloc/free corrupt storage6" ); … … 198 190 //sout | alignments[a]; 199 191 for ( i; 1 ~ NoOfMmaps ) { 200 size_t s = i + default_mmap_start(); // cross over point192 size_t s = i + malloc_mmap_start(); // cross over point 201 193 char * area = (char *)memalign( a, s ); 202 194 //sout | i | area; … … 232 224 for ( i; 2 ~ NoOfAllocs ~ 12 ) { 233 225 // initial N byte allocation 234 size_t s = i + default_mmap_start(); // cross over point226 size_t s = i + malloc_mmap_start(); // cross over point 235 227 char * area = (char *)malloc( s ); 236 228 area[0] = '\345'; area[s - 1] = '\345'; // fill first/penultimate byte … … 269 261 for ( i; 2 ~ NoOfAllocs ~ 12 ) { 270 262 // initial N byte allocation 271 size_t s = i + default_mmap_start(); // cross over point263 size_t s = i + malloc_mmap_start(); // cross over point 272 264 char * area = (char *)malloc( s ); 273 265 area[0] = '\345'; area[s - 1] = '\345'; // fill first/penultimate byte … … 307 299 for ( i; 1 ~ 10_000 ~ 12 ) { 308 300 // initial N byte allocation 309 size_t s = i + default_mmap_start(); // cross over point301 size_t s = i + malloc_mmap_start(); // cross over point 310 302 char * area = (char *)calloc( 1, s ); 311 303 if ( area[0] != '\0' || area[s - 1] != '\0' || … … 481 473 482 474 int main() { 483 const unsigned int NoOfWorkers = 4;475 enum { NoOfWorkers = 4 }; 484 476 { 485 477 processor processors[NoOfWorkers - 1] __attribute__(( unused )); // more than one processor -
tests/io/away_fair.cfa
r12df6fe r4520b77e 60 60 struct io_uring_sqe * sqe; 61 61 __u32 idx; 62 struct $io_context* ctx = cfa_io_allocate(&sqe, &idx, 1);62 struct io_context$ * ctx = cfa_io_allocate(&sqe, &idx, 1); 63 63 64 64 zero_sqe(sqe); -
tests/io/comp_fair.cfa
r12df6fe r4520b77e 27 27 28 28 struct { 29 barrier & bar;30 int pipe[2];29 barrier & bar; 30 int pipe[2]; 31 31 32 32 } globals; … … 65 65 thread Reader {}; 66 66 void main(Reader & this) { 67 bool do_read = has_user_level_blocking( (fptr_t)async_read ); 67 char thrash[1]; 68 bool do_read = has_user_level_blocking( (fptr_t)async_read ); 68 69 69 for(TIMES) { 70 io_future_t f; 71 if ( do_read ) { 72 char thrash[1]; 73 async_read(f, globals.pipe[0], thrash, 1, 0); 74 } else { 75 fulfil(f, 0); // If we don't have user-level blocking just play along 76 } 70 for(TIMES) { 71 io_future_t f; 72 if ( do_read ) { 73 async_read(f, globals.pipe[0], thrash, 1, 0); 74 } else { 75 fulfil(f, 0); // If we don't have user-level blocking just play along 76 } 77 77 78 block( globals.bar );78 block( globals.bar ); 79 79 80 80 yield( prng( this, 15 ) ); 81 81 82 unsigned i = __atomic_add_fetch( &counter, 1, __ATOMIC_SEQ_CST );82 unsigned i = __atomic_add_fetch( &counter, 1, __ATOMIC_SEQ_CST ); 83 83 if(0 == (i % 100)) sout | i; 84 84 85 wait( f );85 wait( f ); 86 86 87 if(f.result < 0)88 abort | "Read error" | -f.result | ":" | strerror(-f.result);87 if(f.result < 0) 88 abort | "Read error" | -f.result | ":" | strerror(-f.result); 89 89 90 block( globals.bar );91 }90 block( globals.bar ); 91 } 92 92 } 93 93 … … 97 97 thread Writer {}; 98 98 void main(Writer & this) { 99 for(TIMES) {100 block( globals.bar );99 for(TIMES) { 100 block( globals.bar ); 101 101 102 sleep( 1`us );102 sleep( 1`us ); 103 103 104 char buf[1] = { '+' };105 int ret = write( globals.pipe[1], buf, 1 );106 if(ret < 0)107 abort | "Write error" | errno | ":" | strerror(errno);104 char buf[1] = { '+' }; 105 int ret = write( globals.pipe[1], buf, 1 ); 106 if(ret < 0) 107 abort | "Write error" | errno | ":" | strerror(errno); 108 108 109 block( globals.bar );110 }109 block( globals.bar ); 110 } 111 111 } 112 112 … … 122 122 123 123 int main() { 124 barrier bar = { 2 };125 &globals.bar = &bar;126 int ret = pipe(globals.pipe);127 if(ret != 0)128 abort | "Pipe error" | errno | ":" | strerror(errno);124 barrier bar = { 2 }; 125 &globals.bar = &bar; 126 int ret = pipe(globals.pipe); 127 if(ret != 0) 128 abort | "Pipe error" | errno | ":" | strerror(errno); 129 129 130 130 processor p; … … 134 134 Spinner s; 135 135 Reader ior; 136 Writer iow;136 Writer iow; 137 137 } 138 138 sout | "done"; -
tests/loop_else.cfa
r12df6fe r4520b77e 20 20 21 21 int main() { 22 sout | nlOff; // turn off auto newline 23 while () { sout | "empty"; break; } else { sout | "else"; } sout | nl; 24 do { sout | "empty"; break; } while () else { sout | "else"; } sout | nl; 25 for () { sout | "empty"; break; } else { sout | "else"; } sout | nl | nl; 22 // Test some loop options. 26 23 27 do { sout | "false"; } while (false) else { sout | "else"; } sout | nl | nl; 24 sout | nlOff; // turn off auto newline 25 while () { sout | "empty"; break; } else { sout | "else"; } sout | nl; 26 do { sout | "empty"; break; } while () else { sout | "else"; } sout | nl; 27 for () { sout | "empty"; break; } else { sout | "else"; } sout | nl | nl; 28 28 29 for ( 0 ) { sout | "A"; } else { sout | "else"; } sout | "zero" | nl; 29 do { sout | "false"; } while (false) else { sout | "else"; } sout | nl | nl; 30 31 for ( 0 ) { sout | "A"; } else { sout | "else"; } sout | "zero" | nl; 30 32 for ( 1 ) { sout | "A"; } else { sout | "else"; } sout | nl; 31 for ( 10 ) { sout | "A"; } else { sout | "else"; } sout | nl;32 for ( = 10 ) { sout | "A"; } else { sout | "else"; } sout | nl;33 for ( 10 ) { sout | "A"; } else { sout | "else"; } sout | nl; 34 for ( ~= 10 ) { sout | "A"; } else { sout | "else"; } sout | nl; 33 35 for ( 1 ~= 10 ~ 2 ) { sout | "B"; } else { sout | "else"; } sout | nl; 34 for ( 1 0 -~= 1~ 2 ) { sout | "C"; } else { sout | "else"; } sout | nl;36 for ( 1 -~= 10 ~ 2 ) { sout | "C"; } else { sout | "else"; } sout | nl; 35 37 for ( 0.5 ~ 5.5 ) { sout | "D"; } else { sout | "else"; } sout | nl; 36 for ( 5.5 -~ 0.5 ) { sout | "E"; } else { sout | "else"; } sout | nl | nl;38 for ( 0.5 -~ 5.5 ) { sout | "E"; } else { sout | "else"; } sout | nl | nl; 37 39 38 40 for ( i; 10 ) { sout | i; } else { sout | "else"; } sout | nl; 39 for ( i; = 10 ) { sout | i; } else { sout | "else"; } sout | nl;41 for ( i; ~= 10 ) { sout | i; } else { sout | "else"; } sout | nl; 40 42 for ( i; 1 ~= 10 ~ 2 ) { sout | i; } else { sout | "else"; } sout | nl; 41 for ( i; 1 0 -~= 1~ 2 ) { sout | i; } else { sout | "else"; } sout | nl;43 for ( i; 1 -~= 10 ~ 2 ) { sout | i; } else { sout | "else"; } sout | nl; 42 44 for ( i; 0.5 ~ 5.5 ) { sout | i; } else { sout | "else"; } sout | nl; 43 for ( i; 5.5 -~ 0.5 ) { sout | i; } else { sout | "else"; } sout | nl;45 for ( i; 0.5 -~ 5.5 ) { sout | i; } else { sout | "else"; } sout | nl; 44 46 for ( ui; 2u ~= 10u ~ 2u ) { sout | ui; } else { sout | "else"; } sout | nl; 45 for ( ui; 10u -~= 2u ~ 2u ) { sout | ui; } else { sout | "else"; } sout | nl | nl;47 for ( ui; 2u -~= 10u ~ 2u ) { sout | ui; } else { sout | "else"; } sout | nl | nl; 46 48 47 49 // @ means do nothing … … 50 52 sout | i; 51 53 } else { sout | "else"; } sout | nl; 52 for ( i; 10 -~ @) {54 for ( i; @ -~ 10 ) { 53 55 if ( i < 0 ) break; 54 56 sout | i; … … 63 65 i += 1.7; 64 66 } else { sout | "else"; } sout | nl; 65 for ( i; 10 -~ @~ 2 ) {67 for ( i; @ -~ 10 ~ 2 ) { 66 68 if ( i < 0 ) break; 67 69 sout | i; … … 76 78 for ( N ) { sout | "N"; } else { sout | "else"; } sout | nl; 77 79 for ( i; N ) { sout | i; } else { sout | "else"; } sout | nl; 78 for ( i; = N ) { sout | i; } else { sout | "else"; } sout | nl;79 for ( i; N -~ 0) { sout | i; } else { sout | "else"; } sout | nl | nl;80 for ( i; ~= N ) { sout | i; } else { sout | "else"; } sout | nl; 81 for ( i; -~= N ) { sout | i; } else { sout | "else"; } sout | nl | nl; 80 82 81 83 const int start = 3, comp = 10, inc = 2; 82 84 for ( i; start ~ comp ~ inc + 1 ) { sout | i; } else { sout | "else"; } sout | nl | nl; 85 86 for ( i; 10 : j; -5 ~ @ ) { sout | i | j; } else { sout | "else"; } sout | nl; 87 for ( i; 10 : j; @ -~ -5 ) { sout | i | j; } else { sout | "else"; } sout | nl; 88 for ( i; 10 : j; -5 ~ @ ~ 2 ) { sout | i | j; } else { sout | "else"; } sout | nl; 89 for ( i; 10 : j; @ -~ -5 ~ 2 ) { sout | i | j; } else { sout | "else"; } sout | nl | nl; 90 91 for ( j; -5 ~ @ : i; 10 ) { sout | i | j; } else { sout | "else"; } sout | nl; 92 for ( j; @ -~ -5 : i; 10 ) { sout | i | j; } else { sout | "else"; } sout | nl; 93 for ( j; -5 ~ @ ~ 2 : i; 10 ) { sout | i | j; } else { sout | "else"; } sout | nl; 94 for ( j; @ -~ -5 ~ 2 : i; 10 ) { sout | i | j; } else { sout | "else"; } sout | nl | nl; 95 96 for ( j; @ -~ -5 ~ 2 : i; 10 : k; 1.5 ~ @ ) { sout | i | j | k; } else { sout | "else"; } sout | nl; 97 for ( j; @ -~ -5 ~ 2 : k; 1.5 ~ @ : i; 10 ) { sout | i | j | k; } else { sout | "else"; } sout | nl; 98 for ( k; 1.5 ~ @ : j; @ -~ -5 ~ 2 : i; 10 ) { sout | i | j | k; } else { sout | "else"; } sout | nl; 83 99 84 100 for ( S s = (S){0}; s < (S){10,10}; s += (S){1} ) { sout | s; } else { sout | "else"; } sout | nl; … … 90 106 for ( s; (S){0} ~= (S){10,10} ~ (S){1} ) { sout | s; } else { sout | "else"; } sout | nl; 91 107 sout | nl; 92 for ( s; (S){10,10} -~ (S){0} ) { sout | s; } else { sout | "else"; } sout | nl; 93 for ( s; (S){10,10} -~ (S){0} ~ (S){1} ) { sout | s; } else { sout | "else"; } sout | nl; 94 for ( s; (S){10,10} -~= (S){0} ) { sout | s; } else { sout | "else"; } sout | nl; 95 for ( s; (S){10,10} -~= (S){0} ~ (S){1} ) { sout | s; } else { sout | "else"; } sout | nl | nl; 96 97 for ( i; 10 : j; -5 ~ @ ) { sout | i | j; } else { sout | "else"; } sout | nl; 98 for ( i; 10 : j; -5 -~ @ ) { sout | i | j; } else { sout | "else"; } sout | nl; 99 for ( i; 10 : j; -5 ~ @ ~ 2 ) { sout | i | j; } else { sout | "else"; } sout | nl; 100 for ( i; 10 : j; -5 -~ @ ~ 2 ) { sout | i | j; } else { sout | "else"; } sout | nl | nl; 101 102 for ( j; -5 ~ @ : i; 10 ) { sout | i | j; } else { sout | "else"; } sout | nl; 103 for ( j; -5 -~ @ : i; 10 ) { sout | i | j; } else { sout | "else"; } sout | nl; 104 for ( j; -5 ~ @ ~ 2 : i; 10 ) { sout | i | j; } else { sout | "else"; } sout | nl; 105 for ( j; -5 -~ @ ~ 2 : i; 10 ) { sout | i | j; } else { sout | "else"; } sout | nl | nl; 106 107 for ( j; -5 -~ @ ~ 2 : i; 10 : k; 1.5 ~ @ ) { sout | i | j | k; } else { sout | "else"; } sout | nl; 108 for ( j; -5 -~ @ ~ 2 : k; 1.5 ~ @ : i; 10 ) { sout | i | j | k; } else { sout | "else"; } sout | nl; 109 for ( k; 1.5 ~ @ : j; -5 -~ @ ~ 2 : i; 10 ) { sout | i | j | k; } else { sout | "else"; } sout | nl; 108 for ( s; (S){0} -~ (S){10,10} ) { sout | s; } else { sout | "else"; } sout | nl; 109 for ( s; (S){0} -~ (S){10,10} ~ (S){1} ) { sout | s; } else { sout | "else"; } sout | nl; 110 for ( s; (S){0} -~= (S){10,10} ) { sout | s; } else { sout | "else"; } sout | nl; 111 for ( s; (S){0} -~= (S){10,10} ~ (S){1} ) { sout | s; } else { sout | "else"; } sout | nl | nl; 110 112 } -
tests/loopctrl.cfa
r12df6fe r4520b77e 10 10 // Created On : Wed Aug 8 18:32:59 2018 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Thu Dec 12 17:55:26 201913 // Update Count : 1 0812 // Last Modified On : Thu Aug 11 23:04:35 2022 13 // Update Count : 160 14 14 // 15 15 16 16 #include <fstream.hfa> 17 18 void fred() { 19 // Test all possible loop syntax. 20 21 int s = 0, c = 10, i = 2; 22 23 for ( c ) { sout | "A"; } sout | nl; 24 for ( ~= c ) { sout | "B"; } sout | nl; 25 for ( -~ c ) { sout | "C"; } sout | nl; 26 for ( -~= c ) { sout | "D"; } sout | nl; 27 28 for ( s ~ c ) { sout | "A"; } sout | nl; 29 for ( s ~= c ) { sout | "B"; } sout | nl; 30 for ( s -~ c ) { sout | "C"; } sout | nl; 31 for ( s -~= c ) { sout | "D"; } sout | nl; 32 33 for ( s ~ c ~ i ) { sout | "A"; } sout | nl; 34 for ( s ~= c ~ i ) { sout | "B"; } sout | nl; 35 for ( s -~ c ~ i ) { sout | "C"; } sout | nl; 36 for ( s -~= c ~ i ) { sout | "D"; } sout | nl; 37 38 for ( j; c ) { sout | j; } sout | nl; 39 for ( j; ~= c ) { sout | j; } sout | nl; 40 for ( j; -~ c ) { sout | j; } sout | nl; 41 for ( j; -~= c ) { sout | j; } sout | nl; 42 43 for ( j; s ~ c ) { sout | j; } sout | nl; 44 for ( j; s ~= c ) { sout | j; } sout | nl; 45 for ( j; s -~ c ) { sout | j; } sout | nl; 46 for ( j; s -~= c ) { sout | j; } sout | nl; 47 48 for ( j; s ~ c ~ i ) { sout | j; } sout | nl; 49 for ( j; s ~= c ~ i ) { sout | j; } sout | nl; 50 for ( j; s -~ c ~ i ) { sout | j; } sout | nl; 51 for ( j; s -~= c ~ i ) { sout | j; } sout | nl; 52 53 // CANNOT DIRECTLY INITIALIZE INDEX VARIABLE, ONLY SINGLE LOOP INDEX VARIABLE IN DECLARATION 54 55 for ( j; c ) { sout | j; } sout | nl; 56 for ( int j; c ) { sout | j; } sout | nl; 57 for ( int j; ~= c ) { sout | j; } sout | nl; 58 for ( int j; -~ c ) { sout | j; } sout | nl; 59 for ( int j; -~= c ) { sout | j; } sout | nl; 60 61 for ( int j; s ~ c ) { sout | j; } sout | nl; 62 for ( int j; s ~= c ) { sout | j; } sout | nl; 63 for ( int j; s -~ c ) { sout | j; } sout | nl; 64 for ( int j; s -~= c ) { sout | j; } sout | nl; 65 66 for ( int j; s ~ c ~ i ) { sout | j; } sout | nl; 67 for ( int j; s ~= c ~ i ) { sout | j; } sout | nl; 68 for ( int j; s -~ c ~ i ) { sout | j; } sout | nl; 69 for ( int j; s -~= c ~ i ) { sout | j; } sout | nl; 70 71 for ( j; s ~ @ ) { if ( j == 10 ) break; sout | j; } sout | nl; 72 for ( j; @ -~ s ) { if ( j == -10 ) break; sout | j; } sout | nl; 73 for ( j; s ~ @ ~ i ) { if ( j == 10 ) break; sout | j; } sout | nl; 74 for ( j; @ -~ s ~ i ) { if ( j == -10 ) break; sout | j; } sout | nl; 75 for ( j; s ~ @ ~ @ ) { if ( j == 10 ) break; sout | j; j += 1; } sout | nl; 76 77 for ( int j; s ~ @ ) { if ( j == 10 ) break; sout | j; j += 1; } sout | nl; 78 for ( int j; @ -~ s ) { if ( j == -10 ) break; sout | j; j -= 1; } sout | nl; 79 for ( int j; s ~ @ ~ i ) { if ( j == 10 ) break; sout | j; } sout | nl; 80 for ( int j; @ -~ s ~ i ) { if ( j == -10 ) break; sout | j; } sout | nl; 81 for ( int j; s ~ @ ~ @ ) { if ( j == 10 ) break; sout | j; j += 1; } sout | nl; 82 83 // enum E { A, B, C, D }; 84 // for ( e; A ~= C ) { sout | j; } 85 // for ( e; A ~= D ) { sout | j; } 86 // for ( e; A -~= D ~ 2 ) { sout | j; } 87 // for ( e; E ) { sout | j; } 88 // for ( e; -~ E ) { sout | j; } 89 } 17 90 18 91 struct S { int i, j; }; … … 35 108 36 109 int main() { 110 // Test some loop options. 111 37 112 sout | nlOff; // turn off auto newline 38 113 while () { sout | "empty"; break; } sout | nl; … … 43 118 for ( 1 ) { sout | "A"; } sout | nl; 44 119 for ( 10 ) { sout | "A"; } sout | nl; 45 for ( = 10 ) { sout | "A"; } sout | nl;120 for ( ~= 10 ) { sout | "A"; } sout | nl; 46 121 for ( 1 ~= 10 ~ 2 ) { sout | "B"; } sout | nl; 47 for ( 1 0 -~= 1~ 2 ) { sout | "C"; } sout | nl;122 for ( 1 -~= 10 ~ 2 ) { sout | "C"; } sout | nl; 48 123 for ( 0.5 ~ 5.5 ) { sout | "D"; } sout | nl; 49 for ( 5.5 -~ 0.5 ) { sout | "E"; } sout | nl | nl;124 for ( 0.5 -~ 5.5 ) { sout | "E"; } sout | nl | nl; 50 125 51 126 for ( i; 10 ) { sout | i; } sout | nl; 52 for ( i; = 10 ) { sout | i; } sout | nl;127 for ( i; ~= 10 ) { sout | i; } sout | nl; 53 128 for ( i; 1 ~= 10 ~ 2 ) { sout | i; } sout | nl; 54 for ( i; 1 0 -~= 1~ 2 ) { sout | i; } sout | nl;129 for ( i; 1 -~= 10 ~ 2 ) { sout | i; } sout | nl; 55 130 for ( i; 0.5 ~ 5.5 ) { sout | i; } sout | nl; 56 for ( i; 5.5 -~ 0.5 ) { sout | i; } sout | nl;131 for ( i; 0.5 -~ 5.5 ) { sout | i; } sout | nl; 57 132 for ( ui; 2u ~= 10u ~ 2u ) { sout | ui; } sout | nl; 58 for ( ui; 10u -~= 2u ~ 2u ) { sout | ui; } sout | nl | nl;133 for ( ui; 2u -~= 10u ~ 2u ) { sout | ui; } sout | nl | nl; 59 134 60 135 // @ means do nothing … … 63 138 sout | i; 64 139 } sout | nl; 65 for ( i; 10 -~ @) {140 for ( i; @ -~ 10 ) { 66 141 if ( i < 0 ) break; 67 142 sout | i; … … 76 151 i += 1.7; 77 152 } sout | nl; 78 for ( i; 10 -~ @~ 2 ) {153 for ( i; @ -~ 10 ~ 2 ) { 79 154 if ( i < 0 ) break; 80 155 sout | i; … … 89 164 for ( N ) { sout | "N"; } sout | nl; 90 165 for ( i; N ) { sout | i; } sout | nl; 91 for ( i; = N ) { sout | i; } sout | nl;92 for ( i; N -~ 0) { sout | i; } sout | nl | nl;166 for ( i; ~= N ) { sout | i; } sout | nl; 167 for ( i; -~= N ) { sout | i; } sout | nl | nl; 93 168 94 169 const int start = 3, comp = 10, inc = 2; 95 170 for ( i; start ~ comp ~ inc + 1 ) { sout | i; } sout | nl | nl; 171 172 for ( i; 10 : j; -5 ~ @ ) { sout | i | j; } sout | nl; 173 for ( i; 10 : j; @ -~ -5 ) { sout | i | j; } sout | nl; 174 for ( i; 10 : j; -5 ~ @ ~ 2 ) { sout | i | j; } sout | nl; 175 for ( i; 10 : j; @ -~ -5 ~ 2 ) { sout | i | j; } sout | nl | nl; 176 177 for ( j; -5 ~ @ : i; 10 ) { sout | i | j; } sout | nl; 178 for ( j; @ -~ -5 : i; 10 ) { sout | i | j; } sout | nl; 179 for ( j; -5 ~ @ ~ 2 : i; 10 ) { sout | i | j; } sout | nl; 180 for ( j; @ -~ -5 ~ 2 : i; 10 ) { sout | i | j; } sout | nl | nl; 181 182 for ( j; @ -~ -5 ~ 2 : i; 10 : k; 1.5 ~ @ ) { sout | i | j | k; } sout | nl; 183 for ( j; @ -~ -5 ~ 2 : k; 1.5 ~ @ : i; 10 ) { sout | i | j | k; } sout | nl; 184 for ( k; 1.5 ~ @ : j; @ -~ -5 ~ 2 : i; 10 ) { sout | i | j | k; } sout | nl; 96 185 97 186 for ( S s = (S){0}; s < (S){10,10}; s += (S){1} ) { sout | s; } sout | nl; … … 103 192 for ( s; (S){0} ~= (S){10,10} ~ (S){1} ) { sout | s; } sout | nl; 104 193 sout | nl; 105 for ( s; (S){10,10} -~ (S){0} ) { sout | s; } sout | nl; 106 for ( s; (S){10,10} -~ (S){0} ~ (S){1} ) { sout | s; } sout | nl; 107 for ( s; (S){10,10} -~= (S){0} ) { sout | s; } sout | nl; 108 for ( s; (S){10,10} -~= (S){0} ~ (S){1} ) { sout | s; } sout | nl | nl; 109 110 for ( i; 10 : j; -5 ~ @ ) { sout | i | j; } sout | nl; 111 for ( i; 10 : j; -5 -~ @ ) { sout | i | j; } sout | nl; 112 for ( i; 10 : j; -5 ~ @ ~ 2 ) { sout | i | j; } sout | nl; 113 for ( i; 10 : j; -5 -~ @ ~ 2 ) { sout | i | j; } sout | nl | nl; 114 115 for ( j; -5 ~ @ : i; 10 ) { sout | i | j; } sout | nl; 116 for ( j; -5 -~ @ : i; 10 ) { sout | i | j; } sout | nl; 117 for ( j; -5 ~ @ ~ 2 : i; 10 ) { sout | i | j; } sout | nl; 118 for ( j; -5 -~ @ ~ 2 : i; 10 ) { sout | i | j; } sout | nl | nl; 119 120 for ( j; -5 -~ @ ~ 2 : i; 10 : k; 1.5 ~ @ ) { sout | i | j | k; } sout | nl; 121 for ( j; -5 -~ @ ~ 2 : k; 1.5 ~ @ : i; 10 ) { sout | i | j | k; } sout | nl; 122 for ( k; 1.5 ~ @ : j; -5 -~ @ ~ 2 : i; 10 ) { sout | i | j | k; } sout | nl; 194 for ( s; (S){0} -~ (S){10,10} ) { sout | s; } sout | nl; 195 for ( s; (S){0} -~ (S){10,10} ~ (S){1} ) { sout | s; } sout | nl; 196 for ( s; (S){0} -~= (S){10,10} ) { sout | s; } sout | nl; 197 for ( s; (S){0} -~= (S){10,10} ~ (S){1} ) { sout | s; } sout | nl | nl; 198 199 fred(); 123 200 } 124 201 -
tests/pybin/settings.py
r12df6fe r4520b77e 97 97 self.path = "debug" if value else "nodebug" 98 98 99 class AST:100 def __init__(self, ast):101 if ast == "new":102 self.target = ast103 self.string = "New AST"104 self.flags = """AST_FLAGS=-XCFA,--new-ast"""105 elif ast == "old":106 self.target = ast107 self.string = "Old AST"108 self.flags = """AST_FLAGS=-XCFA,--old-ast"""109 elif ast == None:110 self.target = "new" if config.NEWAST else "old"111 self.string = "Default AST (%s)" % self.target112 self.flags = """AST_FLAGS="""113 else:114 print("""ERROR: Invalid ast configuration, must be "old", "new" or left unspecified, was %s""" % (value), file=sys.stderr)115 sys.exit(1)116 117 def filter(self, tests):118 119 return [test for test in tests if not test.astv or self.target == test.astv]120 121 99 class Install: 122 100 def __init__(self, value): … … 141 119 142 120 def init( options ): 143 global all_ast144 121 global all_arch 145 122 global all_debug 146 123 global all_install 147 global ast148 124 global arch 149 125 global debug … … 160 136 global timeout2gdb 161 137 162 all_ast = [AST(o) for o in list(dict.fromkeys(options.ast ))] if options.ast else [AST(None)]163 138 all_arch = [Architecture(o) for o in list(dict.fromkeys(options.arch ))] if options.arch else [Architecture(None)] 164 139 all_debug = [Debug(o) for o in list(dict.fromkeys(options.debug ))] -
tests/pybin/test_run.py
r12df6fe r4520b77e 11 11 self.path = '' 12 12 self.arch = '' 13 self.astv = ''14 13 15 14 def toString(self): 16 return "{:25s} ({:5s} arch , {:s} ast: {:s})".format( self.name, self.arch if self.arch else "Any", self.astv if self.astvelse "Any", self.target() )15 return "{:25s} ({:5s} arch: {:s})".format( self.name, self.arch if self.arch else "Any", self.target() ) 17 16 18 17 def prepare(self): … … 22 21 def expect(self): 23 22 arch = '' if not self.arch else ".%s" % self.arch 24 astv = '' if not self.astv else ".nast" if self.astv == "new" else ".oast" 25 return os.path.normpath( os.path.join(settings.SRCDIR , self.path, ".expect", "%s%s%s.txt" % (self.name,astv,arch)) ) 23 return os.path.normpath( os.path.join(settings.SRCDIR , self.path, ".expect", "%s%s.txt" % (self.name,arch)) ) 26 24 27 25 def error_log(self): … … 58 56 59 57 @staticmethod 60 def new_target(target, arch , astv):58 def new_target(target, arch): 61 59 test = Test() 62 60 test.name = os.path.basename(target) 63 61 test.path = os.path.relpath (os.path.dirname(target), settings.SRCDIR) 64 62 test.arch = arch.target if arch else '' 65 test.astv = astv.target if astv else ''66 63 return test 67 64 -
tests/pybin/tools.py
r12df6fe r4520b77e 182 182 '-s' if silent else None, 183 183 test_param, 184 settings.ast.flags,185 184 settings.arch.flags, 186 185 settings.debug.flags, -
tests/quotedKeyword.cfa
r12df6fe r4520b77e 31 31 ``__int128, ``__label__, ``long, ``lvalue, ``_Noreturn, ``__builtin_offsetof, ``otype, ``register, ``restrict, 32 32 ``__restrict, ``__restrict__, ``return, ``short, ``signed, ``__signed, ``__signed__, ``sizeof, ``static, 33 ``_Static_assert, ``struct, ``switch, ``_ Thread_local, ``throw, ``throwResume, ``trait, ``try, ``typedef,33 ``_Static_assert, ``struct, ``switch, ``_thread, ``_Thread_local, ``throw, ``throwResume, ``trait, ``try, ``typedef, 34 34 ``typeof, ``__typeof, ``__typeof__, ``union, ``unsigned, ``__builtin_va_list, ``void, ``volatile, ``__volatile, 35 35 ``__volatile__, ``while; -
tests/test.py
r12df6fe r4520b77e 23 23 24 24 def match_test(path): 25 match = re.search("^%s\/([\w\/\-_]*).expect\/([\w\-_]+)(\. nast|\.oast)?(\.[\w\-_]+)?\.txt$" % settings.SRCDIR, path)25 match = re.search("^%s\/([\w\/\-_]*).expect\/([\w\-_]+)(\.[\w\-_]+)?\.txt$" % settings.SRCDIR, path) 26 26 if match : 27 27 test = Test() 28 28 test.name = match.group(2) 29 29 test.path = match.group(1) 30 test.arch = match.group(4)[1:] if match.group(4) else None 31 32 astv = match.group(3)[1:] if match.group(3) else None 33 if astv == 'oast': 34 test.astv = 'old' 35 elif astv == 'nast': 36 test.astv = 'new' 37 elif astv: 38 print('ERROR: "%s", expect file has astv but it is not "nast" or "oast"' % testname, file=sys.stderr) 39 sys.exit(1) 30 test.arch = match.group(3)[1:] if match.group(3) else None 40 31 41 32 expected.append(test) … … 81 72 # this is a valid name, let's check if it already exists 82 73 found = [test for test in all_tests if canonical_path( test.target() ) == testname] 83 setup = itertools.product(settings.all_arch if options.arch else [None] , settings.all_ast if options.ast else [None])74 setup = itertools.product(settings.all_arch if options.arch else [None]) 84 75 if not found: 85 # it's a new name, create it according to the name and specified architecture /ast version86 tests.extend( [Test.new_target(testname, arch , ast) for arch, astin setup] )76 # it's a new name, create it according to the name and specified architecture 77 tests.extend( [Test.new_target(testname, arch) for arch in setup] ) 87 78 elif len(found) == 1 and not found[0].arch: 88 79 # we found a single test, the user better be wanting to create a cross platform test 89 80 if options.arch: 90 81 print('ERROR: "%s", test has no specified architecture but --arch was specified, ignoring it' % testname, file=sys.stderr) 91 elif options.ast:92 print('ERROR: "%s", test has no specified ast version but --ast was specified, ignoring it' % testname, file=sys.stderr)93 82 else: 94 83 tests.append( found[0] ) 95 84 else: 96 85 # this test is already cross platform, just add a test for each platform the user asked 97 tests.extend( [Test.new_target(testname, arch , ast) for arch, astin setup] )86 tests.extend( [Test.new_target(testname, arch) for arch in setup] ) 98 87 99 88 # print a warning if it users didn't ask for a specific architecture … … 102 91 print('WARNING: "%s", test has architecture specific expected files but --arch was not specified, regenerating only for current host' % testname, file=sys.stderr) 103 92 104 105 # print a warning if it users didn't ask for a specific ast version106 found_astv = [f.astv for f in found if f.astv]107 if found_astv and not options.ast:108 print('WARNING: "%s", test has ast version specific expected files but --ast was not specified, regenerating only for current ast' % testname, file=sys.stderr)109 110 93 else : 111 94 print('ERROR: "%s", tests are not allowed to end with a C/C++/CFA extension, ignoring it' % testname, file=sys.stderr) … … 127 110 # create a parser with the arguments for the tests script 128 111 parser = argparse.ArgumentParser(description='Script which runs cforall tests') 129 parser.add_argument('--ast', help='Test for specific ast', type=comma_separated(str), default=None)130 112 parser.add_argument('--arch', help='Test for specific architecture', type=comma_separated(str), default=None) 131 113 parser.add_argument('--debug', help='Run all tests in debug or release', type=comma_separated(yes_no), default='yes') … … 351 333 352 334 # print the possible options 353 print("-h --help --debug --dry-run --list --a st=new --ast=old --arch --all --regenerate-expected --archive-errors --install --timeout --global-timeout --timeout-with-gdb -j --jobs -I --include -E --exclude --continue ", end='')335 print("-h --help --debug --dry-run --list --arch --all --regenerate-expected --archive-errors --install --timeout --global-timeout --timeout-with-gdb -j --jobs -I --include -E --exclude --continue ", end='') 354 336 print(" ".join(map(lambda t: "%s" % (t.target()), tests))) 355 337 … … 422 404 # for each build configurations, run the test 423 405 with Timed() as total_dur: 424 for ast, arch, debug, install in itertools.product(settings.all_ast, settings.all_arch, settings.all_debug, settings.all_install): 425 settings.ast = ast 406 for arch, debug, install in itertools.product(settings.all_arch, settings.all_debug, settings.all_install): 426 407 settings.arch = arch 427 408 settings.debug = debug … … 430 411 # filter out the tests for a different architecture 431 412 # tests are the same across debug/install 432 local_tests = settings.ast.filter( tests ) 433 local_tests = settings.arch.filter( local_tests ) 413 local_tests = settings.arch.filter( tests ) 434 414 435 415 # check the build configuration works … … 438 418 439 419 # print configuration 440 print('%s %i tests on %i cores (%s :%s- %s)' % (420 print('%s %i tests on %i cores (%s - %s)' % ( 441 421 'Regenerating' if settings.generating else 'Running', 442 422 len(local_tests), 443 423 jobs, 444 settings.ast.string,445 424 settings.arch.string, 446 425 settings.debug.string
Note:
See TracChangeset
for help on using the changeset viewer.