Changes in / [4520b77e:12df6fe]


Ignore:
Files:
83 added
55 deleted
151 edited

Legend:

Unmodified
Added
Removed
  • Jenkins/FullBuild

    r4520b77e r12df6fe  
    1818
    1919                                parallel (
    20                                         gcc_08_x86_new: { trigger_build( 'gcc-10',  'x86' ) },
    21                                         gcc_07_x86_new: { trigger_build( 'gcc-9',   'x86' ) },
     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' ) },
    2223                                        gcc_10_x64_new: { trigger_build( 'gcc-10',  'x64' ) },
    2324                                        gcc_09_x64_new: { trigger_build( 'gcc-9',   'x64' ) },
  • Jenkinsfile

    r4520b77e r12df6fe  
    103103                        }
    104104
    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}"
     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}"
    106108
    107109                        // Configure libcfa
     
    150152                sh 'ulimit -a'
    151153
    152                 jopt = '-j $(nproc)'
    153 
    154                 Tools.BuildStage('Test: Debug', true) {
     154                Tools.BuildStage('Test: short', !Settings.RunAllTests) {
    155155                        dir (BuildDir) {
    156156                                //Run the tests from the tests directory
    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"""
     157                                sh "make --no-print-directory -C tests archiveerrors=${BuildDir}/tests/crashes/short"
    158158                        }
    159159                }
    160160
    161                 Tools.BuildStage('Test: Release', Settings.RunAllTests) {
     161                Tools.BuildStage('Test: full', Settings.RunAllTests) {
    162162                        dir (BuildDir) {
    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"""
     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"""
    165170                        }
    166171                }
     
    276281        public final CC_Desc Compiler
    277282        public final Arch_Desc Architecture
     283        public final Boolean NewAST
    278284        public final Boolean RunAllTests
    279285        public final Boolean RunBenchmark
     
    333339
    334340                this.IsSandbox          = (branch == "jenkins-sandbox")
     341                this.NewAST             = param.NewAST
    335342                this.RunAllTests        = param.RunAllTests
    336343                this.RunBenchmark       = param.RunBenchmark
     
    342349                this.DescShort = "${ this.Compiler.name }:${ this.Architecture.name }${full}"
    343350
     351                final ast = this.NewAST ? "New AST" : "Old AST"
    344352                this.DescLong = """Compiler              : ${ this.Compiler.name } (${ this.Compiler.CXX }/${ this.Compiler.CC })
     353AST Version             : ${ ast.toString() }
    345354Architecture            : ${ this.Architecture.name }
    346355Arc Flags               : ${ this.Architecture.flags }
     
    381390                                ],                                                                                              \
    382391                                [$class: 'BooleanParameterDefinition',                                                  \
    383                                         description: 'If false, the test suite is only ran in debug',   \
     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',              \
    384398                                        name: 'RunAllTests',                                                            \
    385399                                        defaultValue: false,                                                            \
  • benchmark/basic/tls_fetch_add.c

    r4520b77e r12df6fe  
    77// thread_local Boolean. This means the entire protocol is just to "mov" instructions making it extremely cheap.
    88
    9 __thread volatile bool value;
     9#define thread_local _Thread_local
     10
     11thread_local volatile bool value;
    1012
    1113void __attribute__((noinline)) do_call() {
  • benchmark/io/http/main.cfa

    r4520b77e r12df6fe  
    163163        {
    164164                int pipe_cnt = options.clopts.nworkers * 2;
    165                 // int pipe_cnt = 0;
    166165                int pipe_off;
    167166                int * fds;
     
    303302                                        sout | "done";
    304303
    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 
    313304                                        sout | "Stopping accept threads..." | nonl; flush( sout );
    314305                                        for(i; nacceptors) {
     
    355346                                        }
    356347                                        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                                         }
    365348
    366349                                        sout | "Stopping connection threads..." | nonl; flush( sout );
     
    403386        }
    404387        sout | "done";
     388
     389        //===================
     390        // Close Files
     391        if( options.file_cache.path ) {
     392                sout | "Closing open files..." | nonl; flush( sout );
     393                close_cache();
     394                sout | "done";
     395        }
    405396}
    406397
  • benchmark/io/http/printer.cfa

    r4520b77e r12df6fe  
    22#include "options.hfa"
    33
    4 #include <clock.hfa>
    54#include <fstream.hfa>
    65#include <stats.hfa>
     
    2322        to.maxfd = max( to.maxfd, from.maxfd);
    2423        to.close += from.close; from.close = 0;
    25         to.error += from.error; from.error = 0;
    2624        to.calls += from.calls; from.calls = 0;
    27         to.eagain += from.eagain; from.eagain = 0;
    2825        to.tries += from.tries; from.tries = 0;
    2926        to.header += from.header; from.header = 0;
     
    8380                        uint64_t accp_open = this.stats.accpt.accepts;
    8481                        uint64_t accp_clse = this.stats.send.close;
    85                         uint64_t accp_errs = this.stats.send.error;
    8682                        uint64_t accp_live = accp_open - accp_clse;
    8783
    88                         sout | "-----" | time() | "-----";
    8984                        sout | "----- Acceptor Stats -----";
    90                         sout | "accepts : " | eng3(accp_open) |"opened," | eng3(accp_clse) |"closed," | eng3(accp_live) |"live," | eng3(accp_errs) |"errors";
     85                        sout | "accepts : " | eng3(accp_open) |"opened," | eng3(accp_clse) |"closed," | eng3(accp_live) |"live";
    9186                        sout | "accept  : " | eng3(this.stats.accpt.accepts) | "calls," | eng3(this.stats.accpt.eagains) | "eagains," | eng3(this.stats.accpt.creates) | " thrds";
    9287                        sout | nl;
     
    9489                        sout | "----- Connection Stats -----";
    9590                        sout | "max fd    : " | this.stats.send.maxfd;
    96                         sout | "sendfile  : " | eng3(calls) | "calls," | eng3(tries) | "tries (" | ratio | " try/call)," | eng3(this.stats.send.eagain) | "eagains";
     91                        sout | "sendfile  : " | eng3(calls) | "calls," | eng3(tries) | "tries (" | ratio | " try/call)";
    9792                        sout | "            " | eng3(header) | "header," | eng3(splcin) | "splice in," | eng3(splcot) | "splice out";
    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                         // }
     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                        }
    10398                }
    10499
  • benchmark/io/http/printer.hfa

    r4520b77e r12df6fe  
    1212        volatile uint64_t maxfd;
    1313        volatile uint64_t close;
    14         volatile uint64_t error;
    1514        volatile uint64_t calls;
    16         volatile uint64_t eagain;
    1715        volatile uint64_t tries;
    1816        volatile uint64_t header;
  • benchmark/io/http/protocol.cfa

    r4520b77e r12df6fe  
    1818extern "C" {
    1919      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);
    2120        // #include <linux/io_uring.h>
    2221}
     
    3029#define PLAINTEXT_MEMCPY
    3130#define PLAINTEXT_NOCOPY
    32 // #define LINKED_IO
    33 #define TRUE_SENDFILE
     31#define LINKED_IO
    3432
    3533static inline __s32 wait_res( io_future_t & this ) {
     
    7371                int ret = cfa_send(fd, it, len, 0, CFA_IO_LAZY);
    7472                if( ret < 0 ) {
    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                         }
     73                        if( errno == ECONNRESET || errno == EPIPE ) { close(fd); return -ECONNRESET; }
     74                        if( errno == EAGAIN || errno == EWOULDBLOCK) return -EAGAIN;
    8075
    8176                        abort( "'answer error' error: (%d) %s\n", (int)errno, strerror(errno) );
     
    8984}
    9085
    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 // }
     86int 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}
    9691
    9792static int fill_header(char * it, size_t size) {
     
    109104}
    110105
    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;
     106#if defined(PLAINTEXT_NOCOPY)
     107int 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
     112int 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)
     128int 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
     142int 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
     150int answer_empty( int fd ) {
     151        return answer_header(fd, 0);
     152}
     153
     154static 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) );
     176                        }
     177                        in_pipe -= ret;
     178                }
     179
     180        }
     181        return count;
     182}
     183
     184enum FSM_STATE {
     185        Initial,
     186        Retry,
     187        Error,
     188        Done,
     189};
     190
     191struct FSM_Result {
     192        FSM_STATE state;
     193        int error;
     194};
     195
     196static inline void ?{}(FSM_Result & this) { this.state = Initial; this.error = 0; }
     197static inline bool is_error(FSM_Result & this) { return Error == this.state; }
     198static inline bool is_done(FSM_Result & this) { return Done == this.state; }
     199
     200static inline int error(FSM_Result & this, int error) {
     201        this.error = error;
     202        this.state = Error;
     203        return error;
     204}
     205
     206static inline int done(FSM_Result & this) {
     207        this.state = Done;
     208        return 0;
     209}
     210
     211static inline int retry(FSM_Result & this) {
     212        this.state = Retry;
     213        return 0;
     214}
     215
     216static 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 header
     229generator header_g {
     230        io_future_t f;
     231        const char * next;
     232        int fd; size_t len;
     233        FSM_Result res;
     234};
     235
     236static 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
     242static 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
     252static 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
     260static 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 read
     292        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 file
     299struct 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
     306static 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;
    161312        STATS: for(i; zipf_cnts) {
    162                 if(count <= zipf_sizes[i]) {
    163                         zipf_idx = i;
     313                if(len <= zipf_sizes[i]) {
     314                        this.zipf_idx = i;
    164315                        break STATS;
    165316                }
    166317        }
    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) );
    191                         }
    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 
    241         return count;
    242 }
    243 
    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 // }
     318        if(this.zipf_idx < 0) mutex(serr) serr | "SPLICE IN" | len | " greated than biggest zipf file";
     319}
     320
     321static 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
     334static 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 read
     370        this.len -= this.f.result;
     371        this.off += this.f.result;
     372        reset(this.f);
     373        return retry(this.res);
     374}
     375
     376generator splice_out_g {
     377        io_future_t f;
     378        int pipe; int fd; size_t len;
     379        FSM_Result res;
     380};
     381
     382static 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
     388static 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
     401static 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
     409static 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
     440SHORT_WRITE:
     441        stats.splcot++;
     442
     443        // It must be a Short Write
     444        this.len -= this.f.result;
     445        reset(this.f);
     446        return retry(this.res);
     447}
    508448
    509449int answer_sendfile( int pipe[2], int fd, int ans_fd, size_t fsize, sendfile_stats_t & stats ) {
    510450        stats.calls++;
    511451        #if defined(LINKED_IO)
    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;
     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;
    568507        #else
     508                stats.tries++;
    569509                int ret = answer_header(fd, fsize);
    570                 if( ret < 0 ) { return ret; }
    571                 return sendfile(pipe, fd, ans_fd, fsize, stats);
     510                if( ret < 0 ) { close(fd); return ret; }
     511                return sendfile(pipe, fd, ans_fd, fsize);
    572512        #endif
    573513}
     
    588528                }
    589529                // int ret = read(fd, (void*)it, count);
    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                 }
     530                if(ret == 0 ) return [OK200, true, 0, 0];
    595531                if(ret < 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                         }
     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]; }
    601535                        abort( "read error: (%d) %s\n", (int)errno, strerror(errno) );
    602536                }
  • benchmark/io/http/protocol.hfa

    r4520b77e r12df6fe  
    1818int code_val(HttpCode code);
    1919
    20 // int answer_error( int fd, HttpCode code );
    21 // int answer_plaintext( int fd );
    22 // int answer_empty( int fd );
     20int answer_error( int fd, HttpCode code );
     21int answer_plaintext( int fd );
     22int answer_empty( int fd );
    2323int answer_sendfile( int pipe[2], int fd, int ans_fd, size_t count, struct sendfile_stats_t & );
    2424
  • benchmark/io/http/socket.cfa

    r4520b77e r12df6fe  
    88        #include <sys/socket.h>
    99        #include <netinet/in.h>
    10         #include <netinet/tcp.h>
    1110}
    1211
     
    3433        }
    3534
    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 
    4435        if(options.socket.reuseport) {
     36                int value = 1;
    4537                // if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (const void*)&on, sizeof(on)))
    4638                //      abort( "setsockopt SO_REUSEADDR error: (%d) %s\n", (int)errno, strerror(errno) );
    47                 if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEPORT, &on, sizeof(on)) < 0)
     39                if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEPORT, &value, sizeof(int)) < 0)
    4840                        abort( "setsockopt SO_REUSEPORT error: (%d) %s\n", (int)errno, strerror(errno) );
    4941        }
  • benchmark/io/http/worker.cfa

    r4520b77e r12df6fe  
    1414#include "filecache.hfa"
    1515
    16 static const unsigned long long period = 5_000_000;
    17 
    1816//=============================================================================================
    1917// Generic connection handling
     
    3331
    3432                // if we are done, break out of the loop
    35                 if( closed ) {
    36                         if( code != OK200 ) this.stats.sendfile.error++;
    37                         break REQUEST;
    38                 }
     33                if( closed ) break REQUEST;
    3934
    4035                // If this wasn't a request retrun 400
    4136                if( code != OK200 ) {
    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                 // }
     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 header
     56                        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                }
    6762
    6863                if( options.log ) {
     
    7368
    7469                if( !options.file_cache.path ) {
    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;
     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;
    8377                }
    8478
     
    9084                // If we can't find the file, return 404
    9185                if( ans_fd < 0 ) {
    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;
     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;
    10093                }
    10194
    10295                // Send the desired file
    10396                int ret = answer_sendfile( this.pipe, fd, ans_fd, count, this.stats.sendfile );
    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                 }
     97                if( ret == -ECONNRESET ) break REQUEST;
    11198
    11299                if( options.log ) mutex(sout) sout | "=== Answer sent ===";
    113100        }
    114101
    115         this.stats.sendfile.close++;
    116 
    117102        if (stats_thrd) {
    118                 // unsigned long long next = rdtscl();
    119                 // if(next > (last + period)) {
     103                unsigned long long next = rdtscl();
     104                if(next > (last + 500000000)) {
    120105                        if(try_lock(stats_thrd->stats.lock __cfaabi_dbg_ctx2)) {
    121106                                push(this.stats.sendfile, stats_thrd->stats.send);
    122107                                unlock(stats_thrd->stats.lock);
    123                                 // last = next;
    124                         }
    125                 // }
     108                                last = next;
     109                        }
     110                }
    126111        }
    127112}
     
    145130                if( options.log ) mutex(sout) sout | "=== Accepting connection ===";
    146131                int fd = cfa_accept4( this.sockfd, this.[addr, addrlen, flags], CFA_IO_LAZY );
    147                 if(fd <= 0) {
     132                if(fd < 0) {
    148133                        if( errno == ECONNABORTED ) break;
    149134                        if( this.done && (errno == EINVAL || errno == EBADF) ) break;
    150                         abort( "accept error %d: (%d) %s\n", fd, (int)errno, strerror(errno) );
     135                        abort( "accept error: (%d) %s\n", (int)errno, strerror(errno) );
    151136                }
    152137                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                 }
    159138
    160139                if( options.log ) mutex(sout) sout | "=== New connection" | fd | "" | ", waiting for requests ===";
     
    162141                char buffer[len];
    163142                handle_connection( this.conn, fd, buffer, len, 0p, last );
    164                 this.conn.stats.sendfile.maxfd = max(this.conn.stats.sendfile.maxfd, fd);
    165143
    166144                if( options.log ) mutex(sout) sout | "=== Connection closed ===";
     
    184162        /* paranoid */ assert( this.conn.pipe[0] != -1 );
    185163        /* 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;
    188164        for() {
    189165                size_t len = options.socket.buflen;
     
    197173                if( options.log ) mutex(sout) sout | "=== Waiting new connection ===";
    198174                handle_connection( this.conn, p.out.fd, buffer, len, &p.f, last );
     175
     176                if( options.log ) mutex(sout) sout | "=== Connection closed ===";
    199177                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++;
    202 
    203                 if( options.log ) mutex(sout) sout | "=== Connection closed ===";
    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);
     178        }
    209179}
    210180
     
    228198
    229199static inline void push_connection( Acceptor & this, int fd ) {
    230         this.stats.accepts++;
    231200        PendingRead * p = 0p;
    232201        for() {
     
    234203                p = pop(*this.queue);
    235204                if(p) break;
    236                 // abort( "Too few threads" );
    237205                yield();
    238206                this.stats.creates++;
     
    244212
    245213// #define ACCEPT_SPIN
    246 #define ACCEPT_ONE
    247 // #define ACCEPT_MANY
     214#define ACCEPT_MANY
    248215
    249216void main( Acceptor & this ) {
     
    265232                        abort( "accept error: (%d) %s\n", (int)errno, strerror(errno) );
    266233                }
     234                this.stats.accepts++;
    267235
    268236                if(this.done) return;
     
    274242                if (stats_thrd) {
    275243                        unsigned long long next = rdtscl();
    276                         if(next > (last + period)) {
     244                        if(next > (last + 500000000)) {
    277245                                if(try_lock(stats_thrd->stats.lock)) {
    278246                                        push(this.stats, stats_thrd->stats.accpt);
     
    281249                                }
    282250                        }
    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                         // }
    313251                }
    314252
     
    331269                if (stats_thrd) {
    332270                        unsigned long long next = rdtscl();
    333                         if(next > (last + period)) {
     271                        if(next > (last + 500000000)) {
    334272                                if(try_lock(stats_thrd->stats.lock __cfaabi_dbg_ctx2)) {
    335273                                        push(this.stats, stats_thrd->stats.accpt);
     
    346284                                int fd = get_res(res);
    347285                                reset(res);
     286                                this.stats.accepts++;
    348287                                if(fd < 0) {
    349288                                        if( errno == ECONNABORTED ) continue;
     
    380319#error no accept algorithm specified
    381320#endif
    382         lock(stats_thrd->stats.lock);
    383         push(this.stats, stats_thrd->stats.accpt);
    384         unlock(stats_thrd->stats.lock);
    385 }
     321}
  • benchmark/io/http/worker.hfa

    r4520b77e r12df6fe  
    3434        int flags;
    3535        volatile bool done;
    36         acceptor_stats_t stats;
    3736};
    3837void ?{}( AcceptWorker & this);
  • benchmark/plot.py

    r4520b77e r12df6fe  
    1414import math
    1515import numpy
    16 import os
    1716import re
    1817import statistics
    1918import sys
    20 import time
    2119
    22 import matplotlib
    2320import matplotlib.pyplot as plt
    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"
     21from matplotlib.ticker import EngFormatter
    3322
    3423class Field:
    35         def __init__(self, unit, _min, _log, _name=None, _factor=1.0):
     24        def __init__(self, unit, _min, _log, _name=None):
    3625                self.unit = unit
    3726                self.min  = _min
    3827                self.log  = _log
    3928                self.name = _name
    40                 self.factor = _factor
    4129
    4230field_names = {
    4331        "ns per ops"            : Field('ns'    , 0, False),
    44         "Number of processors"  : Field(''      , 1, "exact"),
     32        "Number of processors"  : Field(''      , 1, False),
    4533        "Ops per procs"         : Field('Ops'   , 0, False),
    4634        "Ops per threads"       : Field('Ops'   , 0, False),
    47         "ns per ops/procs"      : Field(''      , 0, False, _name = "ns $\\times$ (Processor $/$ Total Ops)" ),
     35        "ns per ops/procs"      : Field(''    , 0, False, _name = "Latency (ns $/$ (Processor $\\times$ Operation))" ),
    4836        "Number of threads"     : Field(''      , 1, False),
    4937        "Total Operations(ops)" : Field('Ops'   , 0, False),
    5038        "Ops/sec/procs"         : Field('Ops'   , 0, False),
    5139        "Total blocks"          : Field('Blocks', 0, False),
    52         "Ops per second"        : Field(''      , 0, False),
     40        "Ops per second"        : Field(''   , 0, False),
    5341        "Cycle size (# thrds)"  : Field('thrd'  , 1, False),
    5442        "Duration (ms)"         : Field('ms'    , 0, False),
    5543        "Target QPS"            : Field(''      , 0, False),
    5644        "Actual QPS"            : 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),
     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),
    6752}
    6853
    69 def plot(in_data, x, y, options, prefix):
     54def plot(in_data, x, y, options):
    7055        fig, ax = plt.subplots()
    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
     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
    7559
    7660        print("Preparing Data")
     
    7862        for entry in in_data:
    7963                name = entry[0]
    80                 if options.filter and not name.startswith(options.filter):
    81                         continue
    82 
    8364                if not name in series:
    8465                        series[name] = {'x':[], 'y':[]}
     
    8970                if x in entry[2] and y in entry[2]:
    9071                        xval = entry[2][x]
    91                         yval = entry[2][y] * field_names[y].factor
     72                        yval = entry[2][y]
    9273                        series[name]['x'].append(xval)
    9374                        series[name]['y'].append(yval)
     
    11798        for name, data in sorted(series.items()):
    11899                _col = next(colors)
    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)
     100                plt.scatter(data['x'], data['y'], color=_col, label=name, marker='x')
     101                plt.plot(lines[name]['x'], lines[name]['min'], '--', color=_col)
    122102                plt.plot(lines[name]['x'], lines[name]['max'], '--', color=_col)
    123103                plt.plot(lines[name]['x'], lines[name]['med'], '-', color=_col)
     
    139119        elif field_names[x].log:
    140120                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)
    148121        else:
    149122                plt.xlim(field_names[x].min, mx + 0.25)
    150123
     124        ax.yaxis.set_major_formatter( EngFormatter(unit=field_names[y].unit) )
    151125        if options.logy:
    152126                ax.set_yscale('log')
     
    156130                plt.ylim(field_names[y].min, options.MaxY if options.MaxY else my*1.2)
    157131
    158         ax.yaxis.set_major_formatter( EngFormatter(unit=field_names[y].unit) )
    159 
    160132        plt.legend(loc='upper left')
    161133
    162134        print("Results Ready")
    163         start = time.time()
    164135        if options.out:
    165136                plt.savefig(options.out, bbox_inches='tight')
    166137        else:
    167138                plt.show()
    168         end = time.time()
    169         print("Took {}".format(fmtDur(end - start)))
    170139
    171140
     
    181150        parser.add_argument('--logy', action='store_true', help="if set, makes the y-axis logscale")
    182151        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")
    184152
    185153        options =  parser.parse_args()
    186 
    187         # if not options.out:
    188         #       matplotlib.use('SVG')
    189154
    190155        # ================================================================================
     
    208173                        fields.add(label)
    209174
    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 
    217175        if not options.out :
    218176                print(series)
     
    235193
    236194
    237         plot(data, wantx, wanty, options, prefix)
     195        plot(data, wantx, wanty, options)
  • benchmark/process-mutilate.py

    r4520b77e r12df6fe  
    109109        # checking if it is a file
    110110        if os.path.isfile(f):
    111                 match = re.search("({})\.([0-9]+)\.([0-9]+)\.([0-9]+)".format(names_re), filename)
    112                 print(filename, match)
     111                match = re.search("({})\.([0-9]+)\.([0-9]+)".format(names_re), filename)
    113112                try:
    114                         series = "{}-{}%".format(match[1], match[3])
     113                        series = match[1]
    115114                        rate = match[2]
    116                         rep = match[4]
     115                        rep = match[3]
    117116                except:
    118117                        continue
  • benchmark/readyQ/churn.go

    r4520b77e r12df6fe  
    7272                for i := range spots {
    7373                        select {
    74                         case <- spots[i]:
    75                         default:
    76                         }
    77                         select {
    7874                        case spots[i] <- (struct {}{}):
    7975                        default:
  • benchmark/readyQ/locality.cfa

    r4520b77e r12df6fe  
    273273        }
    274274
    275         setlocale( LC_NUMERIC, getenv( "LANG" ) );
    276275        printf("Duration (ms)          : %'lf\n", (end - start)`dms);
    277276        printf("Number of processors   : %'d\n", nprocs);
     
    279278        printf("Total Operations(ops)  : %'15llu\n", global_count);
    280279        printf("Work size (64bit words): %'15u\n", wsize);
    281         printf("Data sharing           : %s\n", share ? "On" : "Off");
    282280        printf("Total Operations(ops)  : %'15llu\n", global_count);
    283281        printf("Total G Migrations     : %'15llu\n", global_gmigs);
  • benchmark/readyQ/locality.cpp

    r4520b77e r12df6fe  
    283283        printf("Number of spots        : %'d\n", nspots);
    284284        printf("Work size (64bit words): %'15u\n", wsize);
    285         printf("Data sharing           : %s\n", share ? "On" : "Off");
    286285        printf("Total Operations(ops)  : %'15llu\n", global_count);
    287286        printf("Total G Migrations     : %'15llu\n", global_gmigs);
  • benchmark/readyQ/locality.go

    r4520b77e r12df6fe  
    286286        // Print with nice 's, i.e. 1'000'000 instead of 1000000
    287287        p := message.NewPrinter(language.English)
    288         p.Printf("Duration (ms)          : %d\n", delta.Milliseconds());
     288        p.Printf("Duration (ms)          : %f\n", delta.Milliseconds());
    289289        p.Printf("Number of processors   : %d\n", nprocs);
    290290        p.Printf("Number of threads      : %d\n", nthreads);
    291291        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         }
    297292        p.Printf("Total Operations(ops)  : %15d\n", results.count)
    298293        p.Printf("Total G Migrations     : %15d\n", results.gmigs)
  • benchmark/readyQ/locality.rs

    r4520b77e r12df6fe  
    346346        println!("Number of threads      : {}", (nthreads).to_formatted_string(&Locale::en));
    347347        println!("Work size (64bit words): {}", (wsize).to_formatted_string(&Locale::en));
    348         println!("Data sharing           : {}", if share { "On" } else { "Off" });
    349348        println!("Total Operations(ops)  : {:>15}", (results.count).to_formatted_string(&Locale::en));
    350349        println!("Total G Migrations     : {:>15}", (results.gmigs).to_formatted_string(&Locale::en));
  • benchmark/readyQ/rq_bench.hfa

    r4520b77e r12df6fe  
    11#include <clock.hfa>
    22#include <kernel.hfa>
    3 #include <locale.h>
    43#include <parseargs.hfa>
    54#include <stdio.h>
  • benchmark/readyQ/transfer.cfa

    r4520b77e r12df6fe  
    179179        sout | "Threads parking on wait : " | (exhaust ? "yes" : "no");
    180180        sout | "Rechecking              : " | rechecks;
    181         sout | "us per transfer         : " | (end - start)`dus / lead_idx;
     181        sout | "ns per transfer         : " | (end - start)`dms / lead_idx;
    182182
    183183
  • benchmark/readyQ/transfer.go

    r4520b77e r12df6fe  
    244244        p.Printf("Threads parking on wait : %s\n", ws)
    245245        p.Printf("Rechecking              : %d\n", rechecks )
    246         p.Printf("ms per transfer         : %f\n", float64(delta.Milliseconds()) / float64(leader.idx) )
    247 }
     246        p.Printf("ns per transfer         : %f\n", float64(delta.Nanoseconds()) / float64(leader.idx) )
     247}
  • benchmark/rmit.py

    r4520b77e r12df6fe  
    2222
    2323def 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 result
     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 result
    3434
    3535class DependentOpt:
     
    184184                        range(145, 193) : "0-95,96-191",
    185185                },
    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                 },
    195186        }
    196187
    197         host = socket.gethostname()
    198         if host in known_hosts:
     188        if (host := socket.gethostname()) in known_hosts:
    199189                taskset_maps = known_hosts[host]
    200190                return True
     
    233223        parser.add_argument('--trials', help='Number of trials to run per combinaison', type=int, default=3)
    234224        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)
    236225        parser.add_argument('command', metavar='command', type=str, nargs=1, help='the command prefix to run')
    237226        parser.add_argument('candidates', metavar='candidates', type=str, nargs='*', help='the candidate suffix to run')
     
    288277        # ================================================================================
    289278        # 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)
    296279
    297280        # Add tasksets
  • configure.ac

    r4520b77e r12df6fe  
    2424#Trasforming cc1 will break compilation
    2525M4CFA_PROGRAM_NAME
     26
     27#==============================================================================
     28# New AST toggling support
     29AH_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])
     30DEFAULT_NEW_AST="True"
     31AC_ARG_ENABLE(new-ast,
     32        [  --enable-new-ast     whether or not to use new ast as the default AST algorithm],
     33        [case "${enableval}" in
     34                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])
     38AC_DEFINE_UNQUOTED([CFA_USE_NEW_AST], $newast)
     39AC_SUBST(DEFAULT_NEW_AST)
    2640
    2741#==============================================================================
     
    125139                \'--enable-gprofiler=*) ;;
    126140                \'--disable-gprofiler) ;;
     141
     142                # skip the target hosts
     143                \'--enable-new-ast=*) ;;
     144                \'--disable-new-ast) ;;
    127145
    128146                # skip this, it only causes problems
  • doc/LaTeXmacros/lstlang.sty

    r4520b77e r12df6fe  
    118118                inline, __inline, __inline__, __int128, int128, __label__, monitor, mutex, _Noreturn, one_t, or,
    119119                otype, restrict, __restrict, __restrict__, recover, report, __signed, __signed__, _Static_assert, suspend,
    120                 thread, __thread, _Thread_local, throw, throwResume, timeout, trait, try, ttype, typeof, __typeof, __typeof__,
     120                thread, _Thread_local, throw, throwResume, timeout, trait, try, ttype, typeof, __typeof, __typeof__,
    121121                virtual, __volatile, __volatile__, waitfor, when, with, zero_t,
    122122    },
  • doc/bibliography/pl.bib

    r4520b77e r12df6fe  
    37573757    series      = {Innovative Technology},
    37583758    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}},
    37703759}
    37713760
     
    78487837}
    78497838
    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 
    78587839@misc{Bumbulis90,
    78597840    keywords    = {parameter inference, ForceN},
     
    81718152    doi         = {10.1145/3379483},
    81728153    journal     = {Proc. ACM Meas. Anal. Comput. Syst.},
    8173     month       = jun,
     8154    month       = mar,
    81748155    numpages    = {30},
    81758156}
  • doc/theses/thierry_delisle_PhD/.gitignore

    r4520b77e r12df6fe  
    2020thesis/fig/*.fig.bak
    2121thesis/thesis.pdf
    22 thesis/thesis.tty
    2322thesis/thesis.ps
    2423
  • doc/theses/thierry_delisle_PhD/thesis/Makefile

    r4520b77e r12df6fe  
    1111LaTeX  = TEXINPUTS=${TeXLIB} && export TEXINPUTS && latex -halt-on-error -output-directory=${Build}
    1212BibTeX = BIBINPUTS=${TeXLIB} && export BIBINPUTS && bibtex
    13 DeTeX = TEXINPUTS=${TeXLIB} && export TEXINPUTS && detex -r
    1413
    1514MAKEFLAGS = --no-print-directory # --silent
     
    2726        eval_micro \
    2827        eval_macro \
    29         conclusion \
    3028}}
    3129
    32 FIGURES = base \
     30FIGURES = ${addsuffix .tex, \
     31}
     32
     33PICTURES = ${addsuffix .pstex, \
     34        base \
    3335        base_avg \
    3436        base_ts2 \
     
    5254        cycle \
    5355        result.cycle.jax.ops \
    54         result.cycle.nasus.ops \
    5556        result.yield.jax.ops \
    56         result.yield.nasus.ops \
    5757        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 \
    6358        result.cycle.jax.ns \
    64         result.cycle.nasus.ns \
    6559        result.yield.jax.ns \
    66         result.yield.nasus.ns \
    6760        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 \
    7361        result.cycle.low.jax.ops \
    74         result.cycle.low.nasus.ops \
    7562        result.yield.low.jax.ops \
    76         result.yield.low.nasus.ops \
    7763        result.churn.low.jax.ops \
    78         result.churn.low.nasus.ops \
    7964        result.cycle.low.jax.ns \
    80         result.cycle.low.nasus.ns \
    8165        result.yield.low.jax.ns \
    82         result.yield.low.nasus.ns \
    8366        result.churn.low.jax.ns \
    84         result.churn.low.nasus.ns \
     67        result.memcd.updt.qps \
     68        result.memcd.updt.lat \
    8569        result.memcd.rate.qps \
    8670        result.memcd.rate.99th \
    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} }
     71        SQMS \
     72}
    9873
    9974PROGRAMS = ${addsuffix .tex, \
     
    10580## Define the documents that need to be made.
    10681all: thesis.pdf
    107 build/thesis.dvi: ${TEXTS} ${PICTURES} thesis.tex glossary.tex local.bib ${LaTMac}/common.tex ${LaTMac}/common.sty ${BibRep}/pl.bib
     82thesis.pdf: ${TEXTS} ${FIGURES} ${PICTURES} thesis.tex glossary.tex local.bib ${LaTMac}/common.tex ${LaTMac}/common.sty ${BibRep}/pl.bib
    10883
    10984DOCUMENT = thesis.pdf
     
    145120        ${LaTeX} $<
    146121
    147 %.tty: build/%.dvi
    148         dvi2tty -w132 $< > $@
    149 
    150122## Define the default recipes.
    151123
     
    172144        python3 $< $@
    173145
    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
     146cycle_jax_ops_FLAGS = --MaxY=120000000
     147cycle_low_jax_ops_FLAGS = --MaxY=120000000
     148cycle_jax_ns_FLAGS = --MaxY=2000
     149cycle_low_jax_ns_FLAGS = --MaxY=2000
    178150
    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
     151yield_jax_ops_FLAGS = --MaxY=150000000
     152yield_low_jax_ops_FLAGS = --MaxY=150000000
     153yield_jax_ns_FLAGS = --MaxY=1500
     154yield_low_jax_ns_FLAGS = --MaxY=1500
    183155
    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}
     156build/result.%.ns.svg : data/% Makefile | ${Build}
    215157        ../../../../benchmark/plot.py -f $< -o $@ -y "ns per ops/procs" $($(subst .,_,$*)_ns_FLAGS)
    216158
    217 build/result.%.ops.svg : data/% Makefile ../../../../benchmark/plot.py | ${Build}
     159build/result.%.ops.svg : data/% Makefile | ${Build}
    218160        ../../../../benchmark/plot.py -f $< -o $@ -y "Ops per second" $($(subst .,_,$*)_ops_FLAGS)
    219161
    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
     162build/result.memcd.updt.qps.svg : data/memcd.updt Makefile | ${Build}
     163        ../../../../benchmark/plot.py -f $< -o $@ -y "Actual QPS" -x "Update Ratio"
    222164
    223 build/result.memcd.rate.99th.svg : data/memcd.rate Makefile ../../../../benchmark/plot.py | ${Build}
     165build/result.memcd.updt.lat.svg : data/memcd.updt Makefile | ${Build}
     166        ../../../../benchmark/plot.py -f $< -o $@ -y "Average Read Latency" -x "Update Ratio"
     167
     168build/result.memcd.rate.qps.svg : data/memcd.rate Makefile | ${Build}
     169        ../../../../benchmark/plot.py -f $< -o $@ -y "Actual QPS" -x "Target QPS"
     170
     171build/result.memcd.rate.99th.svg : data/memcd.rate Makefile | ${Build}
    224172        ../../../../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"
    252173
    253174## pstex with inverted colors
  • doc/theses/thierry_delisle_PhD/thesis/data/churn.jax

    r4520b77e r12df6fe  
    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}]]
     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}]]
  • doc/theses/thierry_delisle_PhD/thesis/data/churn.low.jax

    r4520b77e r12df6fe  
    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}]]
     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}]]
  • doc/theses/thierry_delisle_PhD/thesis/data/cycle.jax

    r4520b77e r12df6fe  
    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}]]
     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}]]
  • doc/theses/thierry_delisle_PhD/thesis/data/cycle.low.jax

    r4520b77e r12df6fe  
    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}]]
     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}]]
  • doc/theses/thierry_delisle_PhD/thesis/data/memcd.rate

    r4520b77e r12df6fe  
    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}]]
     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}]]
  • doc/theses/thierry_delisle_PhD/thesis/data/memcd.updt

    r4520b77e r12df6fe  
    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}]]
     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}]]
  • doc/theses/thierry_delisle_PhD/thesis/data/yield.jax

    r4520b77e r12df6fe  
    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}]]
     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}]]
  • doc/theses/thierry_delisle_PhD/thesis/data/yield.low.jax

    r4520b77e r12df6fe  
    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}]]
     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}]]
  • doc/theses/thierry_delisle_PhD/thesis/glossary.tex

    r4520b77e r12df6fe  
    1414% Definitions
    1515
    16 \longnewglossaryentry{at}
    17 {name={Thread},text={thread}}
     16\longnewglossaryentry{thrd}
     17{name={thread}}
    1818{
    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.
     19Threads 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.
    2020
    21 \textit{Synonyms : Tasks, Jobs, Blocks.}
     21\textit{Synonyms : User threads, Lightweight threads, Green threads, Virtual threads, Tasks.}
    2222}
    2323
    2424\longnewglossaryentry{proc}
    25 {name={Processor},text={processor}}
     25{name={processor}}
    2626{
    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.
    2827
    29 \textit{Synonyms : Server, Worker.}
    3028}
    3129
    3230\longnewglossaryentry{rQ}
    33 {name={Ready Queue}, text={ready-queue}}
     31{name={ready-queue}}
    3432{
    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.
     33
    3634}
    3735
    3836\longnewglossaryentry{uthrding}
    39 {name={User-Level Threading},text={user-level threading}}
     37{name={user-level threading}}
    4038{
    41 Threading model where a scheduler runs in users space and maps threads managed and created inside the user-space onto \glspl{kthrd}.
     39
    4240
    4341\textit{Synonyms : User threads, Lightweight threads, Green threads, Virtual threads, Tasks.}
     
    4543
    4644\longnewglossaryentry{rmr}
    47 {name={Remote Memory Reference},text={remote memory reference}}
     45{name={remote memory reference}}
    4846{
    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.
     47
    5048}
    5149
     
    5351
    5452\longnewglossaryentry{hthrd}
    55 {name={Hardware Threading},text={hardware thread}}
     53{name={hardware thread}}
    5654{
    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.
     55Threads 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.
    5856
    59 \textit{Synonyms : Core, Hyper-Thread, Processing Unit, CPU.}
     57\textit{Synonyms : }
    6058}
    6159
    6260\longnewglossaryentry{kthrd}
    63 {name={Kernel-Level Thread},text={kernel-level thread}}
     61{name={kernel-level thread}}
    6462{
    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.
     63Threads created and managed inside kernel-space. Each thread has its own stack and its own thread of execution. Kernel-level threads are owned, managed and scheduled by the underlying operating system.
    6664
    6765\textit{Synonyms : OS threads, Hardware threads, Physical threads.}
     
    6967
    7068\longnewglossaryentry{fiber}
    71 {name={Fiber},text={fiber}}
     69{name={fiber}}
    7270{
    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.
     71Fibers are non-preemptive user-level threads. They share most of the caracteristics of user-level threads except that they cannot be preempted by another fiber.
    7472
    7573\textit{Synonyms : Tasks.}
     
    7775
    7876\longnewglossaryentry{job}
    79 {name={Job},text={job}}
     77{name={job}}
    8078{
    8179Unit 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.
     
    8583
    8684\longnewglossaryentry{pool}
    87 {name={Thread Pool},text={thread-pool}}
     85{name={thread-pool}}
    8886{
    89 Group of homogeneous threads that loop executing units of works. Often executing \glspl{jobs}.
     87Group of homogeneuous threads that loop executing units of works after another.
    9088
    91 \textit{Synonyms : Executor.}
     89\textit{Synonyms : }
    9290}
    9391
    9492\longnewglossaryentry{preemption}
    95 {name={Preemption},text={preemption}}
     93{name={preemption}}
    9694{
    9795Involuntary context switch imposed on threads at a given rate.
     
    10098}
    10199
     100
     101
     102\longnewglossaryentry{at}
     103{name={task}}
     104{
     105Abstract 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
    102108\longnewglossaryentry{atsched}
    103109{name={Scheduling a \gls{at}}}
    104110{
    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.
     111Scheduling an \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 probably never run.
    106112
    107 \textit{Synonyms : Unparking.}
     113\textit{Synonyms : None.}
    108114}
    109115
     
    111117{name={Running a \gls{at}}}
    112118{
    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.
     119Running an \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.
    114120
    115121\textit{Synonyms : None.}
     
    117123
    118124\longnewglossaryentry{atmig}
    119 {name={\Glspl{at} Migration}}
     125{name={migration of \gls{at}}}
    120126{
    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.
     127Migration 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 workers requires some amount of migration.
    122128
    123129\textit{Synonyms : None.}
     
    125131
    126132\longnewglossaryentry{atpass}
    127 {name={Overtaking \gls{at}}}
     133{name={overtaking \gls{at}}}
    128134{
    129135When 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}.
     
    133139
    134140\longnewglossaryentry{atblock}
    135 {name={\Gls{at} Blocking}}
     141{name={Blocking an \gls{at}}}
    136142{
    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.
     143Blocking 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.
    138144
    139 \textit{Synonyms : Parking.}
     145\textit{Synonyms : None.}
    140146}
    141147
     
    143149{name={Running to completion}}
    144150{
    145 Running to completion refers to the entire sequence of : being scheduled, running and blocking, for a given \at.
     151Running to completion refers to the entire sequence of : being scheduled, running and blocking, for a given task.
    146152
    147153See also \gls{atsched}, \gls{atrun}, \gls{atblock}
     
    151157
    152158\longnewglossaryentry{load}
    153 {name={System Load},text={load}}
     159{name={System Load}}
    154160{
    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.}
     161The 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.
    158162}
    159163
  • doc/theses/thierry_delisle_PhD/thesis/local.bib

    r4520b77e r12df6fe  
    429429}
    430430
    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 
    519431% --------------------------------------------------
    520432% ULE FreeBSD scheduler
     
    612524  title = {Mach Scheduling and Thread Interfaces - Kernel Programming Guide},
    613525  organization = {Apple Inc.},
    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]"
     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}}
    622527}
    623528
     
    677582}
    678583
    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 
    779584% --------------------------------------------------
    780585% Man Pages
     
    814619}
    815620
    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 
    837621@manual{MAN:aio,
    838622  key        = "aio",
     
    840624  year       = "2019",
    841625  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}}
    851626}
    852627
     
    860635}
    861636
    862 
    863637% --------------------------------------------------
    864638% Wikipedia Entries
     
    935709}
    936710
    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
     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
    1048732@misc{AIORant,
    1049733  author = "Linus Torvalds",
     
    1055739}
    1056740
    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 }
     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}
  • doc/theses/thierry_delisle_PhD/thesis/text/core.tex

    r4520b77e r12df6fe  
    22
    33Before 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 \ats ready to run and the system has the resources necessary to accomplish the work, \eg, enough workers.
     4For 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.
    55In short, the system is neither overloaded nor underloaded.
    66
    77It 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 \gls{load} and return to the steady state, \eg, by adding or removing workers.
     8As such, when the system is either overloaded or underloaded, a common approach is to try to adapt the system to this new load and return to the steady state, \eg, by adding or removing workers.
    99Therefore, flaws in scheduling the steady state tend to be pervasive in all states.
    1010
    1111\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 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.
     12As 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.
     13To 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
     15For 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.
    1919        \label{q:LinuxCFS}
    2020\end{displayquote}
    2121
    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:
     22Applied 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
     24In general, the expectation at the center of this model is that ready \glspl{thrd} do not interfere with each other but simply share the hardware.
     25This 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.
     26This expectation of \gls{thrd} independence means the scheduler is expected to offer two guarantees:
    2727\begin{enumerate}
    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.
     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.
    3030\end{enumerate}
    3131
    3232It is important to note that these guarantees are expected only up to a point.
    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.
     33\Glspl{thrd} that are ready to run should not be prevented to do so, but they still share the limited hardware resources.
     34Therefore, 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.
    3535
    3636Similar to the performance guarantee, the lack of interference among threads is only relevant up to a point.
     
    4040This demonstration can be made by comparing applications built in \CFA to applications built with other languages or other models.
    4141Recall programmer expectation is that the impact of the scheduler can be ignored.
    42 Therefore, if the cost of scheduling is competitive with other popular languages, the guarantee is considered achieved.
     42Therefore, if the cost of scheduling is competitive to other popular languages, the guarantee is consider achieved.
    4343More precisely the scheduler should be:
    4444\begin{itemize}
     
    5353In any running system, a \proc can stop dequeuing \ats if it starts running a \at that never blocks.
    5454Without 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.
     55Now this requirement begs the question, what about preemption?
     56Generally speaking preemption happens on the timescale of several milliseconds, which brings us to the next requirement: ``fast'' load balancing.
    5757
    5858\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 or 120 frames per second, \ats having to wait for several milliseconds to run are effectively starved.
     59For 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.
    6060Therefore 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 \gls{load} of the system.
     61With that said, this is a much fuzzier requirement since it depends on the number of \procs, the number of \ats and the general load of the system.
    6262
    6363\subsection{Fairness vs Scheduler Locality} \label{fairnessvlocal}
     
    6868
    6969For 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 \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.
     70Indeed, 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.
     71Note 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.
    7272External locality is a much more complicated subject and is discussed in the next section.
    7373
    7474However, I claim that in practice it is possible to strike a balance between fairness and performance because these goals do not necessarily overlap temporally.
    7575Figure~\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.
     76As 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.
    7777
    7878\begin{figure}
     
    8080        \input{fairness.pstex_t}
    8181        \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 \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.
     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.
    8484        Since the actual values and curves of this graph can be highly variable, the graph is an idealized representation of the two opposing goals.}
    8585        \label{fig:fair}
     
    9292\subsubsection{Scalability}
    9393The 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 \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.
     94Given a large number of \procs and an even larger number of \ats, scalability measures how fast \procs can enqueue and dequeues \ats.
     95One 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 worst improvements.
     96While 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.
    9797
    9898\subsubsection{Migration Cost}
    99 Another important source of scheduling latency is \glslink{atmig}{migration}.
     99Another important source of scheduling latency is migration.
    100100A \at migrates if it executes on two different \procs consecutively, which is the process discussed in \ref{fairnessvlocal}.
    101101Migrations can have many different causes, but in certain programs, it can be impossible to limit migration.
     
    108108The problem is a single point of contention when adding/removing \ats.
    109109As 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{sub-queues} forming the logical ready-queue and the sub-queues are accessed by multiple \glspl{hthrd} without interfering.
     110The 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.
    111111
    112112Before 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.
     
    114114\subsection{Work-Stealing}
    115115
    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.
     116As mentioned in \ref{existing:workstealing}, a popular sharding approach for the ready-queue is work-stealing.
     117In this approach, each \gls{proc} has its own local subqueue and \glspl{proc} only access each other's subqueue if they run out of work on their local ready-queue.
    118118The interesting aspect of work stealing happens in the steady-state scheduling case, \ie all \glspl{proc} have work and no load balancing is needed.
    119119In this case, work stealing is close to optimal scheduling: it can achieve perfect locality and have no contention.
    120120On the other hand, work-stealing schedulers only attempt to do load-balancing when a \gls{proc} runs out of work.
    121121This 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, 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.
     122Chapter~\ref{microbench} shows that pathological cases work stealing can lead to indefinite starvation.
     123
     124Based on these observation, the conclusion is that a \emph{perfect} scheduler should behave similar to work-stealing in the steady-state case, but load balance proactively when the need arises.
    125125
    126126\subsection{Relaxed-FIFO}
    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.
     127A different scheduling approach is to create a ``relaxed-FIFO'' queue, as in \todo{cite Trevor's paper}.
     128This approach forgoes any ownership between \gls{proc} and subqueue, and simply creates a pool of ready-queues from which \glspl{proc} pick.
    129129Scheduling is performed as follows:
    130130\begin{itemize}
    131131\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 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.
     132All subqueues are protected by TryLocks.
     133\item
     134Timestamps are added to each element of a subqueue.
     135\item
     136A \gls{proc} randomly tests ready queues until it has acquired one or two queues.
     137\item
     138If two queues are acquired, the older of the two \ats at the front the acquired queues is dequeued.
     139\item
     140Otherwise the \ats from the single queue is dequeued.
    141141\end{itemize}
    142142The result is a queue that has both good scalability and sufficient fairness.
    143143The 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 sub-queue.
     144This guarantee contrasts with work-stealing, where a \gls{proc} with a long subqueue results in unfairness for its \ats in comparison to a \gls{proc} with a short subqueue.
    145145This unfairness persists until a \gls{proc} runs out of work and steals.
    146146
    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.
     147An important aspects of this scheme's fairness approach is that the timestamps make it possible to evaluate how long elements have been on the queue.
    148148However, \glspl{proc} eagerly search for these older elements instead of focusing on specific queues, which negatively affects locality.
    149149
     
    152152
    153153\section{Relaxed-FIFO++}
    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.
     154The inherent fairness and good performance with many \ats, makes the relaxed-FIFO queue a good candidate to form the basis of a new scheduler.
    155155The 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 sub-queue.
    161 In the worst case, a check of the sub-queues sees all are empty or full.
     156In these situations, the wide sharding of the ready queue means most of its subqueues are empty.
     157Furthermore, the non-empty subqueues are unlikely to hold more than one item.
     158The consequence is that a random dequeue operation is likely to pick an empty subqueue, resulting in an unbounded number of selections.
     159This state is generally unstable: each subqueue is likely to frequently toggle between being empty and nonempty.
     160Indeed, when the number of \ats is \emph{equal} to the number of \procs, every pop operation is expected to empty a subqueue and every push is expected to add to an empty subqueue.
     161In the worst case, a check of the subqueues sees all are empty or full.
    162162
    163163As 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.
     164The obvious solution is to supplement each sharded subqueue with data that indicates if the queue is empty/nonempty to simplify finding nonempty queues, \ie ready \glspl{at}.
     165This sharded data can be organized in different forms, \eg a bitmask or a binary tree that tracks the nonempty subqueues.
    166166Specifically, 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, then constant updates invariably create a new source of contention.
     167However, precisely tracking nonempty subqueues is problematic.
     168The reason is that the subqueues are initially sharded with a width presumably chosen to avoid contention.
     169However, tracking which ready queue is nonempty is only useful if the tracking data is dense, \ie denser than the sharded subqueues.
     170Otherwise, it does not provide useful information because reading this new data structure risks being as costly as simply picking a subqueue at random.
     171But if the tracking mechanism \emph{is} denser than the shared subqueues, than constant updates invariably create a new source of contention.
    172172Early experiments with this approach showed that randomly picking, even with low success rates, is often faster than bit manipulations or tree walks.
    173173
    174174The exception to this rule is using local tracking.
    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.
     175If each \proc locally keeps track of empty subqueues, than this can be done with a very dense data structure without introducing a new source of contention.
    176176However, 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.
     177Each \proc is only aware of the last state it saw about each subqueue so this information quickly becomes stale.
    178178Even 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.
    179179This result is due in part to the cost of maintaining information and its poor quality.
    180180
    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.
     181However, using a very low cost but inaccurate approach for local tracking can actually be beneficial.
     182If the local tracking is no more costly than a random pick, than \emph{any} improvement to the success rate, however low it is, leads to a performance benefits.
     183This suggests to the following approach:
     184
     185\subsection{Dynamic Entropy}\cit{https://xkcd.com/2318/}
     186The Relaxed-FIFO approach can be made to handle the case of mostly empty subqueues by tweaking the \glsxtrlong{prng}.
     187The \glsxtrshort{prng} state can be seen as containing a list of all the future subqueues that will be accessed.
     188While 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 subqueues that were accessed.
     189Luckily, 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.
    190190This particular \glsxtrshort{prng} can be used as follows:
    191191\begin{itemize}
    192192\item
    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$.
     193Each \proc maintains two \glsxtrshort{prng} states, refereed to as $F$ and $B$.
     194\item
     195When a \proc attempts to dequeue a \at, it picks a subqueue by running $B$ backwards.
     196\item
     197When a \proc attempts to enqueue a \at, it runs $F$ forward picking a subqueue to enqueue to.
     198If the enqueue is successful, the state $B$ is overwritten with the content of $F$.
    199199\end{itemize}
    200200The 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 at a very low cost, while also offering an improvement on locality in many cases.
     201When most subqueues are empty, this technique increases the odds of finding \ats at very low cost, while also offering an improvement on locality in many cases.
    202202
    203203Tests showed this approach performs better than relaxed-FIFO in many cases.
    204204However, it is still not competitive with work-stealing algorithms.
    205205The 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.
     206This becomes problematic both because the scheduler is likely to get cache misses on internal data-structures and because migrations become frequent.
    207207Therefore, the attempt to modify the relaxed-FIFO algorithm to behave more like work stealing did not pan out.
    208208The alternative is to do it the other way around.
    209209
    210 \section{Work Stealing++}\label{helping}
     210\section{Work Stealing++}
    211211To 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.
     212First, the relaxed-FIFO algorithm has fundamentally better fairness because each \proc always monitors all subqueues.
    213213Therefore, 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 sub-queues are not being neglected.
     214Before attempting to dequeue from a \proc's subqueue, the \proc must make some effort to ensure other subqueues are not being neglected.
    215215To make this possible, \procs must be able to determine which \at has been on the ready queue the longest.
    216216Second, the relaxed-FIFO approach needs timestamps for each \at to make this possible.
     
    219219        \centering
    220220        \input{base.pstex_t}
    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.
     221        \caption[Base \CFA design]{Base \CFA design \smallskip\newline A pool of subqueues offers the sharding, two per \glspl{proc}.
     222        Each \gls{proc} can access all of the subqueues.
    223223        Each \at is timestamped when enqueued.}
    224224        \label{fig:base}
     
    226226
    227227Figure~\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.
     228This structure is similar to classic work-stealing except the subqueues are placed in an array so \procs can access them in constant time.
    229229Sharding width can be adjusted based on contention.
    230230Note, 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.
    231231This 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 sub-queue(s).
     232When a \proc attempts to dequeue a \at, it first picks a random remote subqueue and compares its timestamp to the timestamps of its local subqueue(s).
    233233The oldest waiting \at is dequeued to provide global fairness.
    234234
    235 However, this na\"ive implementation has performance problems.
     235However, this na\"ive implemented has performance problems.
    236236First, it is necessary to have some damping effect on helping.
    237237Random 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 slow down to the level of relaxed-FIFO.
     238These bursts can cause increased migrations and make this work stealing approach slowdown to the level of relaxed-FIFO.
    239239
    240240\begin{figure}
    241241        \centering
    242242        \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 subqueue.}
    244244        \label{fig:base-ma}
    245245\end{figure}
    246246
    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.
     247A 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}.
     248Note, this is more complex because the \at at the head of a subqueue is still waiting, so its wait time has not ended.
     249Therefore, the exponential moving average is actually an exponential moving average of how long each dequeued \at has waited.
     250To compare subqueues, 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.
    251251This new waiting is averaged with the stored 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.
     252To 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.
    253253Tests 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.
    254254
    255255With 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 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.
     256Unfortunately, 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.
     257The problem is that the constant polling, \ie reads, of remote subqueues generally entail a cache miss because the TSs are constantly being updated, \ie, writes.
     258To make things worst, remote subqueues that are very active, \ie \ats are frequently enqueued and dequeued from them, lead to higher chances that polling will incur a cache-miss.
     259Conversely, the active subqueues do not benefit much from helping since starvation is already a non-issue.
     260This puts this algorithm in the awkward situation of paying for a cost that is largely unnecessary.
     261The good news is that this problem can be mitigated
     262
     263\subsection{Redundant Timestamps}
     264The problem with polling remote subqueues is that correctness is critical.
     265There must be a consensus among \procs on which subqueues hold which \ats, as the \ats are in constant motion.
     266Furthermore, since timestamps are use for fairness, it is critical to have consensus on which \at is the oldest.
     267However, when deciding if a remote subqueue is worth polling, correctness is less of a problem.
     268Since the only requirement is that a subqueue is eventually polled, some data staleness is acceptable.
    269269This 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 fewer cache invalidations.
     270Furthermore, stale timestamps can be desirable since lower freshness requirements mean less cache invalidations.
    271271
    272272Figure~\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.
     273This copy is updated \emph{after} the subqueue's critical sections using relaxed atomics.
    274274\Glspl{proc} now check if polling is needed by comparing the copy of the remote timestamp instead of the actual timestamp.
    275275The result is that since there is no fencing, the writes can be buffered in the hardware and cause fewer cache invalidations.
     
    279279        \input{base_ts2.pstex_t}
    280280        \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.}
    282282        \label{fig:base-ts2}
    283283\end{figure}
     
    285285The correctness argument is somewhat subtle.
    286286The 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 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.
     287Therefore, it is acceptable if stale data makes queues appear older than they really are but appearing fresher can be a problem.
     288For the timestamps, this means missing writes to the timestamp is acceptable since they make the head \at look older.
    289289For 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 satisfies the limited correctness that is required.
     290Therefore, this unprotected read of the timestamp and average satisfy the limited correctness that is required.
    291291
    292292With redundant timestamps, this scheduling algorithm achieves both the fairness and performance requirements on most machines.
    293293The 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 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.
     294For example, on machines with a CPU containing multiple hyperthreads and cores and multiple CPU sockets, cache misses can be satisfied from the caches on same (local) CPU, or by a CPU on a different (remote) socket.
    295295Cache misses satisfied by a remote CPU have significantly higher latency than from the local CPU.
    296296However, these delays are not specific to systems with multiple CPUs.
     
    313313In Figure~\ref{fig:cache-share}, all cache misses are either private to a CPU or shared with another CPU.
    314314This 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 the L3 cache.
     315In contrast, in Figure~\ref{fig:cache-noshare} misses in the L2 cache can be satisfied by either instance of L3 cache.
    316316However, the memory-access latency to the remote L3 is higher than the memory-access latency to the local L3.
    317317The 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 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.
     318Hence, as the number of L3 instances grow, so too does the chance that the random helping causes significant cache latency.
     319The solution is for the scheduler be aware of the cache topology.
    320320
    321321\subsection{Per CPU Sharding}
     
    323323Unfortunately, there is no portable way to discover cache topology, and it is outside the scope of this thesis to solve this problem.
    324324This 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 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{
     325This leaves the challenge of matching \procs to cache structure, or more precisely identifying which subqueues of the ready queue are local to which subcomponents of the cache structure.
     326Once a matching is generated, the helping algorithm is changed to add bias so that \procs more often help subqueues local to the same cache substructure.\footnote{
    327327Note that like other biases mentioned in this section, the actual bias value does not appear to need precise tuning.}
    328328
    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.
     329The simplest approach for mapping subqueues to cache structure is to statically tie subqueues to CPUs.
     330Instead of having each subqueue local to a specific \proc, the system is initialized with subqueues for each hardware hyperthread/core up front.
     331Then \procs dequeue and enqueue by first asking which CPU id they are executing on, in order to identify which subqueues are the local ones.
    332332\Glspl{proc} can get the CPU id from @sched_getcpu@ or @librseq@.
    333333
    334334This approach solves the performance problems on systems with topologies with narrow L3 caches, similar to Figure \ref{fig:cache-noshare}.
    335335However, 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 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.
     336In this case, the large number of subqueues and the bias against subqueues tied to different cache substructures make it unlikely that every subqueue is picked.
     337To make things worst, the small number of \procs mean that few helping attempts are made.
     338This combination of low selection and few helping attempts allow a \at to become stranded on a subqueue for a long time until it gets randomly helped.
     339On a system with 2 \procs, 256 \glspl{hthrd} with narrow cache sharing, and a 100:1 bias, it can actually take multiple seconds for a \at to get dequeued from a remote queue.
     340Therefore, a more dynamic matching of subqueues to cache instance is needed.
    341341
    342342\subsection{Topological Work Stealing}
    343343\label{s:TopologicalWorkStealing}
    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.
     344Therefore, 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.
    345345This 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, however, is that, like the timestamps for helping, reading the cache instance mapping only needs to give the correct result \emph{often enough}.
     346A 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}.
    347347Therefore 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 sub-queue(s).
    349 To avoid unnecessary cache line invalidation, the map is only written-to if the mapping changes.
     348Since subqueues are tied to \procs, each \proc can then update the cache instance mapped to the local subqueue(s).
     349To avoid unnecessary cache line invalidation, the map is only written to if the mapping changes.
    350350
    351351This 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

    r4520b77e r12df6fe  
    11\chapter{Macro-Benchmarks}\label{macrobench}
    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.
    52
    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.
     3\section{Static Web-Server}
     4
     5In Memory Plain Text
     6
     7Networked ZIPF
     8
     9Nginx : 5Gb still good, 4Gb starts to suffer
     10
     11Cforall : 10Gb too high, 4 Gb too low
    1112
    1213\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.
    1714
    1815\subsection{Benchmark Environment}
    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
     16These experiments are run on a cluster of homogenous Supermicro SYS-6017R-TDF compute nodes with the following characteristics:
    2217The server runs Ubuntu 20.04.3 LTS on top of Linux Kernel 5.11.0-34.
    23 \item
    2418Each node has 2 Intel(R) Xeon(R) CPU E5-2620 v2 running at 2.10GHz.
    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}
     19These CPUs have 6 cores per CPUs and 2 \glspl{hthrd} per core, for a total of 24 \glspl{hthrd}.
     20The cpus each have 384 KB, 3 MB and 30 MB of L1, L2 and L3 caches respectively.
     21Each node is connected to the network through a Mellanox 10 Gigabit Ethernet port.
     22The network route uses 1 Mellanox SX1012 10/40 Gigabit Ethernet cluster switch.
    3423
    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}.
    6224
    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.
    9025
    9126\begin{figure}
    9227        \centering
    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}
     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}
    10331\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}
    31832
    31933\begin{figure}
    32034        \centering
    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}
     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}
    33238\end{figure}
    33339
    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.
     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}
    34346
    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.
     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}
  • doc/theses/thierry_delisle_PhD/thesis/text/eval_micro.tex

    r4520b77e r12df6fe  
    11\chapter{Micro-Benchmarks}\label{microbench}
    22
    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 
     3The first step in evaluating this work is to test-out small controlled cases to ensure the basics work properly.
     4This chapter presents five different experimental setup, evaluating some of the basic features of \CFA's scheduler.
     5
     6\section{Benchmark Environment}
    127All benchmarks are run on two distinct hardware platforms.
    138\begin{description}
    149\item[AMD] is a server with two AMD EPYC 7662 CPUs and 256GB of DDR4 RAM.
    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}.
     10The 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}.
    1611Each CPU has 4 MB, 64 MB and 512 MB of L1, L2 and L3 caches, respectively.
    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}.
     12Each L1 and L2 instance are only shared by \glspl{hthrd} on a given core, but each L3 instance is shared by 4 cores, therefore 8 \glspl{hthrd}.
    1813The server runs Ubuntu 20.04.2 LTS on top of Linux Kernel 5.8.0-55.
    1914
     
    2520\end{description}
    2621
    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 
     22For all benchmarks, @taskset@ is used to limit the experiment to 1 NUMA Node with no hyper threading.
     23If more \glspl{hthrd} are needed, then 1 NUMA Node with hyperthreading is used.
     24If still more \glspl{hthrd} are needed, then the experiment is limited to as few NUMA Nodes as needed.
     25
     26The limited sharing of the last-level cache on the AMD machine is markedly different than the Intel machine.
     27Indeed, 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}
    6831\begin{figure}
    6932        \centering
    7033        \input{cycle.pstex_t}
    71         \caption[Cycle benchmark]{Cycle benchmark\smallskip\newline Each \at unparks the next \at in the cycle before \glslink{atblock}{parking} itself.}
     34        \caption[Cycle benchmark]{Cycle benchmark\smallskip\newline Each \gls{at} unparks the next \gls{at} in the cycle before parking itself.}
    7235        \label{fig:cycle}
    7336\end{figure}
    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.
     37The most basic evaluation of any ready queue is to evaluate the latency needed to push and pop one element from the ready queue.
     38Since these two operation also describe a @yield@ operation, many systems use this operation as the most basic benchmark.
     39However, yielding can be treated as a special case by optimizing it away (dead code) since the number of ready \glspl{at} does not change.
     40Not all systems perform this optimization, but those that do have an artificial performance benefit because the yield becomes a \emph{nop}.
     41For this reason, I chose a different first benchmark, called \newterm{Cycle Benchmark}.
     42This 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.
     43At runtime, each \gls{at} unparks the next \gls{at} before parking itself.
     44Unparking the next \gls{at} pushes that \gls{at} onto the ready queue as does the ensuing park.
     45
     46Hence, the underlying runtime cannot rely on the number of ready \glspl{at} staying constant over the duration of the experiment.
     47In 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.
     48That is, the runtime cannot anticipate that the current task will immediately park.
     49As 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.
     50Every runtime system must handle this race and cannot optimized away the ready-queue pushes and pops.
     51To 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.)
    8353Finally, to further mitigate any underlying push/pop optimizations, especially on SMP machines, multiple rings are created in the experiment.
    8454
    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.
     55To avoid this benchmark being affected by idle-sleep handling, the number of rings is multiple times greater than the number of \glspl{proc}.
     56This 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
     58Figure~\ref{fig:cycle:code} shows the pseudo code for this benchmark.
     59There 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.
    8760
    8861\begin{figure}
     
    9164        count := 0
    9265        for {
     66                @wait()@
    9367                @this.next.wake()@
    94                 @wait()@
    9568                count ++
    9669                if must_stop() { break }
     
    9972}
    10073\end{cfa}
    101 \caption[Cycle Benchmark: Pseudo Code]{Cycle Benchmark: Pseudo Code}
     74\caption[Cycle Benchmark : Pseudo Code]{Cycle Benchmark : Pseudo Code}
    10275\label{fig:cycle:code}
    103 \bigskip
    104         \subfloat[][Throughput, 100 cycles per \proc]{
     76\end{figure}
     77
     78\subsection{Results}
     79Figure~\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]{
    10583                \resizebox{0.5\linewidth}{!}{
    10684                        \input{result.cycle.jax.ops.pstex_t}
     
    10886                \label{fig:cycle:jax:ops}
    10987        }
    110         \subfloat[][Throughput, 1 cycle per \proc]{
     88        \subfloat[][Throughput, 1 \ats per \proc]{
    11189                \resizebox{0.5\linewidth}{!}{
    11290                        \input{result.cycle.low.jax.ops.pstex_t}
     
    11593        }
    11694
    117         \subfloat[][Scalability, 100 cycles per \proc]{
     95        \subfloat[][Latency, 100 \ats per \proc]{
    11896                \resizebox{0.5\linewidth}{!}{
    11997                        \input{result.cycle.jax.ns.pstex_t}
    12098                }
    121                 \label{fig:cycle:jax:ns}
    122         }
    123         \subfloat[][Scalability, 1 cycle per \proc]{
     99
     100        }
     101        \subfloat[][Latency, 1 \ats per \proc]{
    124102                \resizebox{0.5\linewidth}{!}{
    125103                        \input{result.cycle.low.jax.ns.pstex_t}
     
    127105                \label{fig:cycle:jax:low:ns}
    128106        }
    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.}
     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.}
    132108        \label{fig:cycle:jax}
    133109\end{figure}
    134110
    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}
    165 \end{figure}
    166 
    167 \subsection{Results}
    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.
     111\todo{results discussion}
    199112
    200113\section{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@.
     114For completion, the classic yield benchmark is included.
     115This benchmark is simpler than the cycle test: it creates many \glspl{at} that call @yield@.
    205116As mentioned, this benchmark may not be representative because of optimization shortcuts in @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.
     117The 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.
     118This scenario can put a strain on the idle-sleep handling compared to scenarios where there is plenty of work.
     119Figure~\ref{fig:yield:code} shows pseudo code for this benchmark, where the @wait/next.wake@ is replaced by @yield@.
    207120
    208121\begin{figure}
     
    218131}
    219132\end{cfa}
    220 \caption[Yield Benchmark: Pseudo Code]{Yield Benchmark: Pseudo Code}
     133\caption[Yield Benchmark : Pseudo Code]{Yield Benchmark : Pseudo Code}
    221134\label{fig:yield:code}
    222 %\end{figure}
    223 \bigskip
    224 %\begin{figure}
     135\end{figure}
     136
     137\subsection{Results}
     138
     139Figure~\ref{fig:yield:jax} shows the throughput as a function of \proc count, where each run uses 100 \ats per \proc.
     140
     141\begin{figure}
    225142        \subfloat[][Throughput, 100 \ats per \proc]{
    226143                \resizebox{0.5\linewidth}{!}{
     
    229146                \label{fig:yield:jax:ops}
    230147        }
    231         \subfloat[][Throughput, 1 \at per \proc]{
     148        \subfloat[][Throughput, 1 \ats per \proc]{
    232149                \resizebox{0.5\linewidth}{!}{
    233150                \input{result.yield.low.jax.ops.pstex_t}
     
    236153        }
    237154
    238         \subfloat[][Scalability, 100 \ats per \proc]{
     155        \subfloat[][Latency, 100 \ats per \proc]{
    239156                \resizebox{0.5\linewidth}{!}{
    240157                \input{result.yield.jax.ns.pstex_t}
     
    242159                \label{fig:yield:jax:ns}
    243160        }
    244         \subfloat[][Scalability, 1 \at per \proc]{
     161        \subfloat[][Latency, 1 \ats per \proc]{
    245162                \resizebox{0.5\linewidth}{!}{
    246163                \input{result.yield.low.jax.ns.pstex_t}
     
    248165                \label{fig:yield:jax:low:ns}
    249166        }
    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.}
     167        \caption[Yield Benchmark on Intel]{Yield Benchmark on Intel\smallskip\newline Throughput as a function of \proc count, using 1 \ats per \proc.}
    253168        \label{fig:yield:jax}
    254169\end{figure}
    255170
    256 \subsection{Results}
    257 
    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.
    282 
    283 \begin{figure}
    284         \subfloat[][Throughput, 100 \ats per \proc]{
    285                 \resizebox{0.5\linewidth}{!}{
    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 
     171\todo{results discussion}
    328172
    329173\section{Churn}
    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.
     174The Cycle and Yield benchmark represent an \emph{easy} scenario for a scheduler, \eg an embarrassingly parallel application.
     175In 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
     177The 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.
     178With 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.
     179This dequeuing results in either contention on the remote queue and/or \glspl{rmr} on \gls{at} data structure.
     180In 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.
    339181
    340182This benchmark uses a fixed-size array of counting semaphores.
    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@.
     183Each \gls{at} picks a random semaphore, @V@s it to unblock any \at waiting, and then @P@s on the semaphore.
     184This creates a flow where \glspl{at} push each other out of the semaphores before being pushed out themselves.
     185For 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}.
     186Note, the nature of these semaphores mean the counter can go beyond 1, which can lead to nonblocking calls to @P@.
    346187Figure~\ref{fig:churn:code} shows pseudo code for this benchmark, where the @yield@ is replaced by @V@ and @P@.
    347188
     
    360201}
    361202\end{cfa}
    362 \caption[Churn Benchmark: Pseudo Code]{Churn Benchmark: Pseudo Code}
     203\caption[Churn Benchmark : Pseudo Code]{Churn Benchmark : Pseudo Code}
    363204\label{fig:churn:code}
    364 %\end{figure}
    365 \bigskip
    366 %\begin{figure}
     205\end{figure}
     206
     207\subsection{Results}
     208Figure~\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.
     209
     210\begin{figure}
    367211        \subfloat[][Throughput, 100 \ats per \proc]{
    368212                \resizebox{0.5\linewidth}{!}{
     
    371215                \label{fig:churn:jax:ops}
    372216        }
    373         \subfloat[][Throughput, 2 \ats per \proc]{
     217        \subfloat[][Throughput, 1 \ats per \proc]{
    374218                \resizebox{0.5\linewidth}{!}{
    375219                        \input{result.churn.low.jax.ops.pstex_t}
     
    378222        }
    379223
    380         \subfloat[][Scalability, 100 \ats per \proc]{
     224        \subfloat[][Latency, 100 \ats per \proc]{
    381225                \resizebox{0.5\linewidth}{!}{
    382226                        \input{result.churn.jax.ns.pstex_t}
    383227                }
    384                 \label{fig:churn:jax:ns}
    385         }
    386         \subfloat[][Scalability, 2 \ats per \proc]{
     228
     229        }
     230        \subfloat[][Latency, 1 \ats per \proc]{
    387231                \resizebox{0.5\linewidth}{!}{
    388232                        \input{result.churn.low.jax.ns.pstex_t}
     
    390234                \label{fig:churn:jax:low:ns}
    391235        }
    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.}
     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.}
    395238        \label{fig:churn:jax}
    396239\end{figure}
    397240
    398 \subsection{Results}
    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.
    430 
    431 \begin{figure}
    432         \subfloat[][Throughput, 100 \ats per \proc]{
    433                 \resizebox{0.5\linewidth}{!}{
    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.
     241\todo{results discussion}
    490242
    491243\section{Locality}
    492244
    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.
     245\todo{code, setup, results}
    658246
    659247\section{Transfer}
    660248The last benchmark is more of an experiment than a benchmark.
    661249It tests the behaviour of the schedulers for a misbehaved workload.
    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:
     250In this workload, one of the \gls{at} is selected at random to be the leader.
     251The leader then spins in a tight loop until it has observed that all other \glspl{at} have acknowledged its leadership.
     252The leader \gls{at} then picks a new \gls{at} to be the ``spinner'' and the cycle repeats.
     253The benchmark comes in two flavours for the non-leader \glspl{at}:
    666254once they acknowledged the leader, they either block on a semaphore or spin yielding.
    667 Figure~\ref{fig:transfer:code} shows pseudo code for this benchmark.
     255
     256The experiment is designed to evaluate the short-term load-balancing of a scheduler.
     257Indeed, schedulers where the runnable \glspl{at} are partitioned on the \glspl{proc} may need to balance the \glspl{at} for this experiment to terminate.
     258This problem occurs because the spinning \gls{at} is effectively preventing the \gls{proc} from running any other \glspl{thrd}.
     259In the semaphore flavour, the number of runnable \glspl{at} eventually dwindles down to only the leader.
     260This scenario is a simpler case to handle for schedulers since \glspl{proc} eventually run out of work.
     261In the yielding flavour, the number of runnable \glspl{at} stays constant.
     262This scenario is a harder case to handle because corrective measures must be taken even when work is available.
     263Note, runtime systems with preemption circumvent this problem by forcing the spinner to yield.
     264
     265\todo{code, setup, results}
    668266
    669267\begin{figure}
     
    675273                return
    676274        }
     275
    677276        // Wait for everyone to acknowledge my leadership
    678277        start: = timeNow()
     
    683282                }
    684283        }
     284
    685285        // pick next leader
    686286        leader := threads[ prng() % len(threads) ]
    687         // wake everyone
     287
     288        // wake every one
    688289        if ! exhaust {
    689290                for t in threads {
     
    692293        }
    693294}
     295
    694296Thread.wait() {
    695297        this.idx_seen := lead_idx
     
    697299        else { yield() }
    698300}
     301
    699302Thread.main() {
    700303        while !done  {
     
    704307}
    705308\end{cfa}
    706 \caption[Transfer Benchmark: Pseudo Code]{Transfer Benchmark: Pseudo Code}
     309\caption[Transfer Benchmark : Pseudo Code]{Transfer Benchmark : Pseudo Code}
    707310\label{fig:transfer:code}
    708311\end{figure}
    709312
    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 
    733313\subsection{Results}
    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.
     314Figure~\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}
  • doc/theses/thierry_delisle_PhD/thesis/text/existing.tex

    r4520b77e r12df6fe  
    55
    66In 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.
     7Workloads 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.
    88A secondary aspect is how much information can be gathered versus how much information must be given as part of the scheduler input.
    99This 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, \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.
     10Note, this description includes both information about each requests, \eg time to complete or resources needed, and information about the relationships among request, \eg whether or not some request must be completed before another request starts.
     11
     12Scheduling 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.
    1313When 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.
    1414
    1515\section{Naming Convention}
    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.
     16Scheduling has been studied by various communities concentrating on different incarnation of the same problems.
     17As a result, there are no standard naming conventions for scheduling that is respected across these communities.
    1818This 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.
    1919
    2020\section{Static Scheduling}
    21 \newterm{Static schedulers} require \ats dependencies and costs to be explicitly and exhaustively specified prior to scheduling.
     21\newterm{Static schedulers} require \ats dependencies and costs be explicitly and exhaustively specified prior to scheduling.
    2222The scheduler then processes this input ahead of time and produces a \newterm{schedule} the system follows during execution.
    2323This 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 \CFA programming language does not have as part of its concurrency semantics.
     24In 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.
    2525Specifying this information explicitly adds a significant burden to the programmer and reduces flexibility.
    2626For this reason, the \CFA scheduler does not require this information.
    2727
    2828\section{Dynamic Scheduling}
    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.
     29\newterm{Dynamic schedulers} determine \ats dependencies and costs during scheduling, if at all.
     30Hence, unlike static scheduling, \ats dependencies are conditional and detected at runtime.
     31This detection takes the form of observing new \ats(s) in the system and determining dependencies from their behaviour, including suspending or halting a \ats that dynamically detects unfulfilled dependencies.
     32Furthermore, each \ats has the responsibility of adding dependent \ats back into the system once dependencies are fulfilled.
    3333As a consequence, the scheduler often has an incomplete view of the system, seeing only \ats with no pending dependencies.
    3434
    3535\subsection{Explicitly Informed Dynamic Schedulers}
    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.
     36While 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.
     37When available, a scheduler can then use this information to direct the scheduling decisions. \cit{Examples of schedulers with more information}
     38However, most programmers do not determine or even \emph{predict} this information;
     39at 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.
     40Providing this kind of information is a significant programmer burden especially if the information does not scale with the number of \ats and their complexity.
     41For 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.
    4342
    4443Since 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.
     
    4645\subsubsection{Priority Scheduling}
    4746Common information used by schedulers to direct their algorithm is priorities.
    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.
     47Each \ats is given a priority and higher-priority \ats are preferred to lower-priority ones.
     48The simplest priority scheduling algorithm is to require that every \ats have a distinct pre-established priority and always run the available \ats with the highest priority.
    5049Asking programmers to provide an exhaustive set of unique priorities can be prohibitive when the system has a large number of \ats.
    51 It can therefore be desirable for schedulers to support \ats with identical priorities and/or automatically set and adjust priorities for \ats.
     50It can therefore be desirable for schedulers to support \ats with identical priorities and/or automatically setting and adjusting priorities for \ats.
    5251Most common operating systems use some variant on priorities with overlaps and dynamic priority adjustments.
    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.
     52For 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.
    5454
    5555\subsection{Uninformed and Self-Informed Dynamic Schedulers}
    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.
     56Several scheduling algorithms do not require programmers to provide additional information on each \ats, and instead make scheduling decisions based solely on internal state and/or information implicitly gathered by the scheduler.
    5757
    5858
    5959\subsubsection{Feedback Scheduling}
    60 As mentioned, schedulers may also gather information about each \at to direct their decisions.
     60As mentioned, schedulers may also gather information about each \ats to direct their decisions.
    6161This design effectively moves the scheduler into the realm of \newterm{Control Theory}~\cite{wiki:controltheory}.
    6262This 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, to direct scheduling decisions.
    64 The important distinction is whether the scheduler can function without this additional information.
     63However, some feedback schedulers do allow programmers to offer additional information on certain \ats, in order to direct scheduling decisions.
     64The important distinction being whether or not the scheduler can function without this additional information.
    6565
    6666
    6767\section{Work Stealing}\label{existing:workstealing}
    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.
     68One of the most popular scheduling algorithm in practice (see~\ref{existing:prod}) is work stealing.
     69This 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 workers 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 steal only among neighbours.}.
     71Blumofe and Leiserson also prove worst case space and time requirements for well-structured computations.
    7272
    7373Many 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.
     
    7777In general, fine granularity is better for load balancing and coarse granularity reduces communication overhead.
    7878The 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} 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.
     79Several 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.
    9286
    9387\subsection{Theoretical Results}
    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}.
     88There 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}.
    9589\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}.
    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}.
     90Others show that work stealing is applicable 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}.
    9791\cite{DBLP:conf/ipps/ColeR13} also studied how randomized work-stealing affects false sharing among \ats.
    9892
    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.
     93However, 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.
     94It is unclear how well these distributions represent workloads in real world scenarios.
    10195
    10296\section{Preemption}
    10397One last aspect of scheduling is preemption since many schedulers rely on it for some of their guarantees.
    10498Preemption is the idea of interrupting \ats that have been running too long, effectively injecting suspend points into the application.
    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.
     99There are multiple techniques to achieve this effect but they all aim to guarantee that the suspend points in a \ats are never further apart than some fixed duration.
     100While this helps schedulers guarantee that no \ats unfairly monopolizes a worker, preemption can effectively be added to any scheduler.
     101Therefore, the only interesting aspect of preemption for the design of scheduling is whether or not to require it.
    108102
    109103\section{Production Schedulers}\label{existing:prod}
     
    111105While these schedulers do not necessarily represent the most recent advances in scheduling, they are what is generally accessible to programmers.
    112106As such, I believe these schedulers are at least as relevant as those presented in published work.
    113 Both Schedulers that operate in kernel space and user space are considered, as both can offer relevant insight for this project.
     107Schedulers that operate in kernel space and in user space are considered, as both can offer relevant insight for this project.
    114108However, real-time schedulers are not considered, as these have constraints that are much stricter than what is needed for this project.
    115109
    116110\subsection{Operating System Schedulers}
    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.
     111Operating 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.
    118112Here are more details on a few schedulers used in the common operating systems: Linux, FreeBSD, Microsoft Windows and Apple's OS X.
    119 The information is less complete for closed source operating systems.
     113The information is less complete for operating systems with closed source.
    120114
    121115\paragraph{Linux's CFS}
    122116The default scheduler used by Linux, the Completely Fair Scheduler~\cite{MAN:linux/cfs,MAN:linux/cfs2}, is a feedback scheduler based on CPU time.
    123117For each processor, it constructs a Red-Black tree of \ats waiting to run, ordering them by the amount of CPU time used.
    124 The \at that has used the least CPU time is scheduled.
     118The \ats that has used the least CPU time is scheduled.
    125119It also supports the concept of \newterm{Nice values}, which are effectively multiplicative factors on the CPU time used.
    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}
     120The 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.
     121Linux 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.
     124The 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 \ats and the other with one thousand \ats, the user with a single \ats does not receive one thousandth of the CPU time.}, increasing the complexity.
     125
     126Linux 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}
    133127
    134128\paragraph{FreeBSD}
    135129The ULE scheduler used in FreeBSD\cite{DBLP:conf/bsdcon/Roberson03} is a feedback scheduler similar to Linux's CFS.
    136130It uses different data structures and heuristics but also schedules according to some combination of CPU time used and niceness values.
    137 It also periodically balances the load of the system (according to a different heuristic) but uses a simpler work stealing approach.
     131It also periodically balances the load of the system (according to a different heuristic), but uses a simpler work stealing approach.
    138132
    139133\paragraph{Windows(OS)}
    140134Microsoft's Operating System's Scheduler~\cite{MAN:windows/scheduler} is a feedback scheduler with priorities.
    141135It supports 32 levels of priorities, some of which are reserved for real-time and privileged applications.
    142 It schedules \ats based on the highest priorities (lowest number) and how much CPU time each \at has used.
     136It schedules \ats based on the highest priorities (lowest number) and how much CPU time each \ats has used.
    143137The scheduler may also temporarily adjust priorities after certain effects like the completion of I/O requests.
    144138
    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.
     139\todo{load balancing}
    150140
    151141\paragraph{Apple OS X}
     
    159149\end{displayquote}
    160150
    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.
     151\todo{load balancing}
    164152
    165153\subsection{User-Level Schedulers}
    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.
     154By comparison, user level schedulers tend to be simpler, gathering 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.
    167155
    168156\paragraph{Go}\label{GoSafePoint}
    169157Go'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}.
    170 Preemption is present, but only at safe points,~\cite{go:safepoints} which are detection code inserted at various frequent access boundaries.
     158Preemption is present, but only at safe-points,~\cit{https://go.dev/src/runtime/preempt.go} which are inserted detection code at various frequent access boundaries.
    171159
    172160The algorithm is as follows :
     
    184172Erlang is a functional language that supports concurrency in the form of processes: threads that share no data.
    185173It 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.
    186 This \glslink{atmig}{migration} logic is directed by monitoring logic that evaluates the load a few times per second.
     174This migration logic is directed by monitoring logic that evaluates the load a few times per seconds.
    187175
    188176\paragraph{Intel\textregistered ~Threading Building Blocks}
    189177\newterm{Thread Building Blocks} (TBB) is Intel's task parallelism \cite{wiki:taskparallel} framework.
    190 It runs \newterm{jobs}, which are uninterruptible \ats that must always run to completion, on a pool of worker threads.
     178It runs \newterm{jobs}, which are uninterruptable \ats that must always run to completion, on a pool of worker threads.
    191179TBB's scheduler is a variation of randomized work-stealing that also supports higher-priority graph-like dependencies~\cite{MAN:tbb/scheduler}.
    192 It schedules \ats as follows (where \textit{t} is the last \at completed):
     180It schedules \ats as follows (where \textit{t} is the last \ats completed):
    193181\begin{displayquote}
    194182        \begin{enumerate}
    195183                \item The task returned by \textit{t}@.execute()@
    196184                \item The successor of t if \textit{t} was its last completed predecessor.
    197                 \item A task popped from the end of the thread's own queue.
    198                 \item A task with an affinity for the thread.
     185                \item A task popped from the end of the thread's own deque.
     186                \item A task with affinity for the thread.
    199187                \item A task popped from approximately the beginning of the shared queue.
    200                 \item A task popped from the beginning of another randomly chosen thread's queue.
     188                \item A task popped from the beginning of another randomly chosen thread's deque.
    201189        \end{enumerate}
    202190
     
    211199
    212200\paragraph{Grand Central Dispatch}
    213 An Apple~\cite{apple:gcd} API that offers task parallelism~\cite{wiki:taskparallel}.
     201An Apple\cit{Official GCD source} API that offers task parallelism~\cite{wiki:taskparallel}.
    214202Its distinctive aspect is multiple ``Dispatch Queues'', some of which are created by programmers.
    215203Each queue has its own local ordering guarantees, \eg \ats on queue $A$ are executed in \emph{FIFO} order.
    216204
    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.
     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
     209In terms of semantics, the Dispatch Queues seem to be very similar to Intel\textregistered ~TBB @execute()@ and predecessor semantics.
    223210
    224211\paragraph{LibFibre}
    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.
     212LibFibre~\cite{DBLP:journals/pomacs/KarstenB20} is a light-weight user-level threading framework developed at the University of Waterloo.
     213Similarly to Go, it uses a variation of work stealing with a global queue that is higher priority than stealing.
    227214Unlike 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

    r4520b77e r12df6fe  
    3939                \vspace*{2.0cm}
    4040
    41                 Waterloo, Ontario, Canada, 2022 \\
     41                Waterloo, Ontario, Canada, 2021 \\
    4242
    4343                \vspace*{1.0cm}
    4444
    45                 \copyright\ Thierry Delisle 2022 \\
     45                \copyright\ Thierry Delisle 2021 \\
    4646        \end{center}
    4747\end{titlepage}
     
    6060\noindent
    6161        The following served on the Examining Committee for this thesis. The decision of the Examining Committee is by majority vote.
     62        \todo{External Examiners}
    6263\bigskip
    6364
     
    6566\begin{tabbing}
    6667        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 \\
     68        External Examiner: \>  TBD \\
     69        \> TBD \\
    7070\end{tabbing}
    7171\bigskip
     
    9696\begin{tabbing}
    9797        Internal-External Member: \=  \kill % using longest text to define tab length
    98         Internal-External Member: \> Patrick Lam \\
    99         \> Associate Professor, Department of Electrical and Computer Engineering \\
     98        Internal-External Member: \> TBD \\
     99        \> TBD \\
    100100        \> University of Waterloo \\
    101101\end{tabbing}
     
    106106% D E C L A R A T I O N   P A G E
    107107% -------------------------------
    108 % The following is a sample Declaration Page as provided by the GSO
     108% The following is a sample Delaration Page as provided by the GSO
    109109% December 13th, 2006.  It is designed for an electronic thesis.
    110110\noindent
     
    123123\begin{center}\textbf{Abstract}\end{center}
    124124
    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.
     125This is the abstract.
    134126
    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.
     127Vulputate 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.
    139128
    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.
     129Tation 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
     131At 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
     133Ut 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
     135In 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
     137Ad 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
     139Dolor 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.
    149140
    150141\cleardoublepage
     
    155146\begin{center}\textbf{Acknowledgements}\end{center}
    156147
    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.
     148\todo{Acknowledgements}
    164149\cleardoublepage
    165150
     
    179164\phantomsection    % allows hyperref to link to the correct page
    180165
     166% L I S T   O F   T A B L E S
     167% ---------------------------
     168\addcontentsline{toc}{chapter}{List of Tables}
     169\listoftables
     170\cleardoublepage
     171\phantomsection         % allows hyperref to link to the correct page
     172
    181173% L I S T   O F   F I G U R E S
    182174% -----------------------------
    183175\addcontentsline{toc}{chapter}{List of Figures}
    184176\listoffigures
    185 \cleardoublepage
    186 \phantomsection         % allows hyperref to link to the correct page
    187 
    188 % L I S T   O F   T A B L E S
    189 % ---------------------------
    190 \addcontentsline{toc}{chapter}{List of Tables}
    191 \listoftables
    192177\cleardoublepage
    193178\phantomsection         % allows hyperref to link to the correct page
     
    199184\phantomsection         % allows hyperref to link to the correct page
    200185
     186% TODOs and missing citations
     187% -----------------------------
     188\listofcits
     189\listoftodos
     190\cleardoublepage
     191\phantomsection         % allows hyperref to link to the correct page
     192
     193
    201194% Change page numbering back to Arabic numerals
    202195\pagenumbering{arabic}
  • doc/theses/thierry_delisle_PhD/thesis/text/intro.tex

    r4520b77e r12df6fe  
    11\chapter{Introduction}\label{intro}
     2\section{\CFA programming language}
    23
    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.
     4The \CFA programming language~\cite{cfa:frontpage,cfa:typesystem} extends the C programming language by adding modern safety and productivity features, while maintaining backwards compatibility.
     5Among its productivity features, \CFA supports user-level threading~\cite{Delisle21} allowing programmers to write modern concurrent and parallel programs.
     6My previous master's thesis on concurrent in \CFA focused on features and interfaces.
     7This Ph.D.\ thesis focuses on performance, introducing \glsxtrshort{api} changes only when required by performance considerations.
     8Specifically, this work concentrates on scheduling and \glsxtrshort{io}.
     9Prior 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.}.
    1210
    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.
     11As a research project, this work builds exclusively on newer versions of the Linux operating-system and gcc/clang compilers.
     12While \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.
    1713
    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.
     14\section{Scheduling}
     15Computer systems share multiple resources across many threads of execution, even on single user computers like laptops or smartphones.
     16On 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}.
     17These systems are normally \newterm{open}, meaning new work arrives from an external source or is spawned from an existing work unit.
     18On 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.
     19A general-purpose dynamic-scheduler for an open system cannot anticipate future work requests, so its performance is rarely optimal.
     20With complete knowledge of arrive order and work, creating an optimal solution still effectively needs solving the bin packing problem\cite{wiki:binpak}.
     21However, optimal solutions are often not required.
     22Schedulers do produce excellent solutions, whitout needing optimality, by taking advantage of regularities in work patterns.
    2123
    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.
     24Scheduling occurs at discreet points when there are transitions in a system.
     25For example, a thread cycles through the following transitions during its execution.
    4326\begin{center}
    4427\input{executionStates.pstex_t}
    4528\end{center}
    46 These \newterm{state transition}s are initiated in response to events, \eg blocking, interrupts, errors:
     29These \newterm{state transition}s are initiated in response to events (\Index{interrupt}s):
    4730\begin{itemize}
    4831\item
    4932entering the system (new $\rightarrow$ ready)
    5033\item
    51 scheduler assigns a \at to a computing resource, \eg CPU (ready $\rightarrow$ running)
    52 \item
    5334timer alarm for preemption (running $\rightarrow$ ready)
    5435\item
    55 long-term delay versus spinning (running $\rightarrow$ blocked)
     36long term delay versus spinning (running $\rightarrow$ blocked)
    5637\item
    57 completion of delay, \eg network or I/O completion (blocked $\rightarrow$ ready)
     38blocking ends, \ie network or I/O completion (blocked $\rightarrow$ ready)
    5839\item
    59 normal completion or error, \eg segment fault (running $\rightarrow$ halted)
     40normal completion or error, \ie segment fault (running $\rightarrow$ halted)
     41\item
     42scheduler assigns a thread to a resource (ready $\rightarrow$ running)
    6043\end{itemize}
    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.
     44Key to scheduling is that a thread cannot bypass the ``ready'' state during a transition so the scheduler maintains complete control of the system.
    6245
    6346When 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}.
    6447Ready queues organize threads for scheduling, which indirectly organizes the work to be performed.
    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).
     48The structure of ready queues can take many different forms.
     49Where simple examples include single-queue multi-server (SQMS) and the multi-queue multi-server (MQMS).
    6650\begin{center}
    6751\begin{tabular}{l|l}
     
    7155\end{tabular}
    7256\end{center}
    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.
     57Beyond these two schedulers are a host of options, \ie adding an optional global, shared queue to MQMS.
    7458
    75 Once there are multiple resources and ready queues, a scheduler is faced with three major optimization criteria:
     59The three major optimization criteria for a scheduler are:
    7660\begin{enumerate}[leftmargin=*]
    7761\item
     
    8468
    8569\noindent
    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.
     70Essentially, 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.
    8771When a system has a large number of independently executing threads, affinity becomes difficult because of \newterm{thread churn}.
    88 That is, threads must be scheduled on different processors to obtain high processor utilization because the number of threads $\ggg$ processors.
     72That is, threads must be scheduled on multiple processors to obtain high processors utilization because the number of threads $\ggg$ processors.
    8973
    9074\item
    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.
     75\newterm{contention}: safe access of shared objects by multiple processors requires mutual exclusion in some form, generally locking\footnote{
     76Lock-free data-structures do not involve locking but incurr similar costs to achieve mutual exclusion.}
     77
     78\noindent
     79Mutual exclusion cost and latency increases significantly with the number of processors accessing a shared object.
    9480\end{enumerate}
    9581
    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.
     82Nevertheless, schedulers are a series of compromises, occasionally with some static or dynamic tuning parameters to enhance specific patterns.
     83Scheduling 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.}.
     84SQMS has perfect load-balancing but poor affinity and high contention by the processors, because of the single queue.
     85MQMS has poor load-balancing but perfect affinity and no contention, because each processor has its own queue.
    10186
    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.
     87Significant research effort has also looked at load sharing/stealing among queues, when a ready queue is too long or short, respectively.
    10388These approaches attempt to perform better load-balancing at the cost of affinity and contention.
    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.
     89Load sharing/stealing schedulers attempt to push/pull work units to/from other ready queues
    10690
    107 \section{\CFA programming language}
     91Note however that while any change comes at a cost, hence the zero-sum game, not all compromises are necessarily equivalent.
     92Some 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.
     93Since \CFA attempts to improve the safety and productivity of C, the scheduler presented in this thesis attempts to achieve the same goals.
     94More 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).
    10895
    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.
    12996
    13097\section{Contributions}\label{s:Contributions}
    131 This work provides the following scheduling contributions for advanced \gls{uthrding} runtime systems:
     98This work provides the following contributions in the area of user-level scheduling in an advanced programming-language runtime-system:
    13299\begin{enumerate}[leftmargin=*]
    133100\item
    134101A scalable scheduling algorithm that offers progress guarantees.
    135102\item
    136 Support for user-level \glsxtrshort{io} capabilities based on Linux's @io_uring@.
    137 \item
    138103An algorithm for load-balancing and idle sleep of processors, including NUMA awareness.
    139104\item
    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.
     105Support for user-level \glsxtrshort{io} capabilities based on Linux's @io_uring@.
    145106\end{enumerate}
  • doc/theses/thierry_delisle_PhD/thesis/text/io.tex

    r4520b77e r12df6fe  
    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.
     1\chapter{User Level \io}
     2As 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.
     3Different 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.
    44
    55\section{Kernel Interface}
    66Since 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.
    77
    8 \subsection{\lstinline{O_NONBLOCK}}\label{ononblock}
     8\subsection{\lstinline{O_NONBLOCK}}
    99In 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''.
    1010In 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}.
     
    1313In this context, ready means \emph{some} operation can be performed without blocking.
    1414It 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 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.
     15For example, a ready read may only return a subset of requested bytes and the read must be issues again for the remaining bytes, at which point it may return \lstinline{EAGAIN}.}
     16This mechanism is also crucial in determining when all \glspl{thrd} are blocked and the application \glspl{kthrd} can now block.
    1717
    1818There are three options to monitor file descriptors in Linux:\footnote{
    1919For 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.}
     20The difference between these system calls and \lstinline{select} and \lstinline{poll}, respectively, is not relevant for this discussion.},
    2121@select@~\cite{MAN:select}, @poll@~\cite{MAN:poll} and @epoll@~\cite{MAN:epoll}.
    2222All three of these options offer a system call that blocks a \gls{kthrd} until at least one of many file descriptors becomes ready.
     
    3030Hence, 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.
    3131However, 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.
     32Note, 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.
    3333Often the I/O manager has a timeout, polls, or is sent a signal on changes to mitigate this problem.
     34
     35\begin{comment}
     36From: Tim Brecht <brecht@uwaterloo.ca>
     37Subject: Re: FD sets
     38Date: Wed, 6 Jul 2022 00:29:41 +0000
     39
     40Large number of open files
     41--------------------------
     42
     43In order to be able to use more than the default number of open file
     44descriptors you may need to:
     45
     46o increase the limit on the total number of open files /proc/sys/fs/file-max
     47  (on Linux systems)
     48
     49o increase the size of FD_SETSIZE
     50  - the way I often do this is to figure out which include file __FD_SETSIZE
     51    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 size
     53    gets used
     54
     55  For example on a RH 9.0 distribution I've copied
     56  /usr/include/bits/typesizes.h into ./include/i386-linux/bits/typesizes.h
     57
     58  Then I modify typesizes.h to look something like:
     59
     60  #ifdef BIGGER_FD_SETSIZE
     61  #define __FD_SETSIZE            32767
     62  #else
     63  #define __FD_SETSIZE            1024
     64  #endif
     65
     66  Note that the since I'm moving and testing the userver on may different
     67  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 the
     70  default original file.
     71\end{comment}
    3472
    3573\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.
    3674For small interest sets with densely packed FDs, the @select@ bit mask can take less storage, and hence, copy less information into the kernel.
    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@.
     75Furthermore, @poll@ is non-destructive, so the array of structures does not have to be re-initialize on every call.
     76Like @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@.
    3977
    4078\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}.
     
    4684However, all three of these I/O systems have limitations.
    4785The @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.
    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@.
     86Furthermore, @epoll@ has been shown to have problems with pipes and ttys~\cit{Peter's examples in some fashion}.
    5087Finally, 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.
    5188
     
    5390An alternative to @O_NONBLOCK@ is the AIO interface.
    5491Its interface lets programmers enqueue operations to be performed asynchronously by the kernel.
    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.
     92Completions 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.
     93For this work, spawning a new \gls{kthrd} is counter-productive but a related solution is discussed in Section~\ref{io:morethreads}.
     94Using interrupts handlers can also lead to fairly complicated interactions between subsystems and has non-trivial cost.
    5895Leaving polling for completion, which is similar to the previous system calls.
    5996AIO 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.
    6097It also supports batching multiple operations in a single system call.
    6198
    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.
     99AIO 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.
     100For the purpose of \io multiplexing, @aio_suspend@ is the best interface.
    64101However, 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.
    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.
     102AIO 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.
    66103This 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.
    67104Finally, AIO does not seem to be a popular interface, which I believe is due in part to this poor polling interface.
     
    87124in
    88125``some kind of arbitrary \textit{queue up asynchronous system call} model''.
    89 This description is quite close to the interface described in the next section.
     126This description is actually quite close to the interface described in the next section.
    90127
    91128\subsection{\lstinline{io_uring}}
     
    98135In 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.
    99136
    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.
     137On 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.
    101138
    102139\subsection{Extra Kernel Threads}\label{io:morethreads}
    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.
     140Finally, 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.
     141In the worst case, where all \glspl{thrd} are consistently blocking on \io, it devolves into 1-to-1 threading.
     142However, regardless of the frequency of \io operations, it achieves the fundamental goal of not blocking \glspl{proc} when \glspl{thrd} are ready to run.
     143This 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.
    107144This advantage is especially relevant for languages like Go, which offer a homogeneous \glsxtrshort{api} across all platforms.
    108 As opposed to C, which has a very limited standard \glsxtrshort{api} for \io, \eg, the C standard library has no networking.
     145As opposed to C, which has a very limited standard api for \io, \eg, the C standard library has no networking.
    109146
    110147\subsection{Discussion}
    111148These options effectively fall into two broad camps: waiting for \io to be ready versus waiting for \io to complete.
    112149All operating systems that support asynchronous \io must offer an interface along one of these lines, but the details vary drastically.
    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@.
     150For 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@.
    114151
    115152For this project, I selected @io_uring@, in large parts because of its generality.
    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.
     153While @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.
    117154
    118155\section{Event-Engine}
    119156An event engine's responsibility is to use the kernel interface to multiplex many \io operations onto few \glspl{kthrd}.
    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}
     157In 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}.
     158The parked \glspl{thrd} are then rescheduled by the event engine once the desired operation has completed.
     159
     160\subsection{\lstinline{io_uring} in depth}
    124161Before 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.
    125162Figure~\ref{fig:iouring} shows an overview of an @io_uring@ instance.
     
    134171        \centering
    135172        \input{io_uring.pstex_t}
    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.}
     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.}
    137174        \label{fig:iouring}
    138175\end{figure}
     
    147184\item
    148185The SQE is filled according to the desired operation.
    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.
     186This step is straight forward.
     187The only detail worth mentioning is that SQEs have a @user_data@ field that must be filled in order to match submission and completion entries.
    151188\item
    152189The 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++}.
     
    170207
    171208The @io_uring_enter@ system call is protected by a lock inside the kernel.
    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@.
     209This 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@.
    173210It is possible to do the first three submission steps in parallel;
    174211however, doing so requires careful synchronization.
     
    179216This restriction means \io request bursts may have to be subdivided and submitted in chunks at a later time.
    180217
    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 
    207218\subsection{Multiplexing \io: Submission}
    208219
    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.
     220The 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.
    210221While there is freedom in designing the submission side, there are some realities of @io_uring@ that must be taken into account.
    211222It is possible to do the first steps of submission in parallel;
     
    218229As described in Chapter~\ref{practice}, this does not translate into constant CPU usage.}.
    219230Note that once an operation completes, there is nothing that ties it to the @io_uring@ instance that handled it.
    220 Nothing preventing a new operation, with for example the same file descriptor, to use a different @io_uring@ instance.
     231There is nothing preventing a new operation with, \eg the same file descriptors to a different @io_uring@ instance.
    221232
    222233A 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.
     
    226237Support for this feature can be fulfilled simply by supporting arbitrary user code between allocation and submission.
    227238
    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.
     239Similar 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} use 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.
    229240These three sharding approaches are analyzed.
    230241
    231242\subsubsection{Private Instances}
    232243The private approach creates one ring instance per \gls{proc}, \ie one-to-one coupling.
    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.}
     244This alleviates the need for synchronization on the submissions, requiring only that \glspl{thrd} are not time-sliced during submission steps.
     245This 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.
     246This failure is the serially reusable problem~\cite{SeriallyReusable}.
     247Hence, 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{
     248To 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.}
    238249From the subsystem's point of view, the allocation and submission are sequential, greatly simplifying both.
    239250In this design, allocation and submission form a partitioned ring buffer as shown in Figure~\ref{fig:pring}.
    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.
     251Once added to the ring buffer, the attached \gls{proc} has a significant amount of flexibility with regards to when to perform the system call.
     252Possible options are: when the \gls{proc} runs out of \glspl{thrd} to run, after running a given number of \glspl{thrd}, \etc.
    242253
    243254\begin{figure}
    244255        \centering
    245256        \input{pivot_ring.pstex_t}
    246         \caption[Partitioned ring buffer]{Partitioned ring buffer \smallskip\newline Allocated sqes are appended to the first partition.
     257        \caption[Partitioned ring buffer]{Partitioned ring buffer \smallskip\newline Allocated sqes are appending to the first partition.
    247258        When submitting, the partition is advanced.
    248259        The kernel considers the partition as the head of the ring.}
     
    251262
    252263This approach has the advantage that it does not require much of the synchronization needed in a shared approach.
    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.
     264However, this benefit means \glspl{thrd} submitting \io operations have less flexibility: they cannot park or yield, and several exceptional cases are handled poorly.
     265Instances running out of SQEs cannot run \glspl{thrd} wanting to do \io operations.
     266In 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.
    256267
    257268A more involved version of this approach tries to solve these problems using a pattern called \newterm{helping}.
    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''.
     269\Glspl{thrd} that cannot submit \io operations, either because of an allocation failure or 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.
     270While 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
     272Imagine 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.
     273Assume 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}.
     274In 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.
     275No other \gls{proc} can help the \gls{thrd} since @io_uring@ instances are strongly coupled to \glspl{proc}.
     276However, the \io \gls{proc} is unable to help because it is executing the spinning \gls{thrd} resulting in a deadlock.
     277While this example is artificial, in the presence of many \glspl{thrd}, it is possible for this problem to arise ``in the wild''.
    267278Furthermore, this pattern is difficult to reliably detect and avoid.
    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.
     279Once in this situation, the only escape is to interrupted the spinning \gls{thrd}, either directly or via some regular preemption, \eg time slicing.
     280Having to interrupt \glspl{thrd} for this purpose is costly, the latency can be large between interrupts, and the situation may be hard to detect.
    270281Interrupts are needed here entirely because the \gls{proc} is tied to an instance it is not using.
    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.
     282Therefore, 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.
    272283This approach is presented shortly.
    273284
    274285\subsubsection{Public Instances}
    275286The public approach creates decoupled pools of @io_uring@ instances and processors, \ie without one-to-one coupling.
    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.
     287\Glspl{thrd} attempting an \io operation pick one of the available instances and submit the operation to that instance.
     288Since 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.
    278289Because @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:
    279290\begin{itemize}
     
    282293\item
    283294The scheme to route \io requests to specific @io_uring@ instances does not introduce contention.
    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.
     295This aspect has an oversized importance because it comes into play before the sharding of instances, and as such, all \glspl{hthrd} can contend on the routing algorithm.
    285296\end{itemize}
    286297
    287298Allocation in this scheme is fairly easy.
    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.
     299Free 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.
     300Allocation also requires no ordering guarantee as all free SQEs are interchangeable.
    290301The only added complexity is that the number of SQEs is fixed, which means allocation can fail.
    291302
    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.
     303Allocation 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.
     304Furthermore, the routing algorithm should block operations up-front, if none of the instances have available SQEs.
     305
     306Once 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
     308Once 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.
     309The 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.
     310However, as mentioned, the system call itself can fail with the expectation that it can be retried once some submitted operations complete.
    300311
    301312Since multiple SQEs can be submitted to the kernel at once, it is important to strike a balance between batching and latency.
    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}.
     313Operations 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.
     314Balancing 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
     316Ideally, 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}.
    306317However, 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.
    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}.
     318Indeed, 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.
     319Once the system call is done, the submitter must also free SQEs so that the allocator can reused them.
     320
     321Finally, the completion side is much simpler since the @io_uring@ system-call enforces a natural synchronization point.
     322Polling simply needs to regularly do the system call, go through the produced CQEs and communicate the result back to the originating \glspl{thrd}.
     323Since 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}.
    313324If the submission side does not designate submitters, polling can also submit all SQEs as it is polling events.
    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.
     325A 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.
    315326
    316327With the pool of SEQ instances approach, the big advantage is that it is fairly flexible.
    317 It does not impose restrictions on what \ats submitting \io operations can and cannot do between allocations and submissions.
     328It does not impose restrictions on what \glspl{thrd} submitting \io operations can and cannot do between allocations and submissions.
    318329It also can gracefully handle running out of resources, SQEs or the kernel returning @EBUSY@.
    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.
     330The down side to this approach is that many of the steps used for submitting need complex synchronization to work properly.
     331The 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.
    321332The 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@.
    322 Compared to the private-instance approach, all this synchronization has a significant cost this synchronization is entirely overhead.
     333All this synchronization has a significant cost, and compared to the private-instance approach, this synchronization is entirely overhead.
    323334
    324335\subsubsection{Instance borrowing}
    325336Both of the prior approaches have undesirable aspects that stem from tight or loose coupling between @io_uring@ and \glspl{proc}.
    326337The first approach suffers from tight coupling causing problems when a \gls{proc} does not benefit from the coupling.
    327 The second approach suffers from loose couplings causing operations to have synchronization overhead, which tighter coupling avoids.
     338The second approach suffers from loose coupling causing operations to have synchronization overhead, which tighter coupling avoids.
    328339When \glspl{proc} are continuously issuing \io operations, tight coupling is valuable since it avoids synchronization costs.
    329340However, in unlikely failure cases or when \glspl{proc} are not using their instances, tight coupling is no longer advantageous.
     
    333344
    334345In this approach, each cluster, see Figure~\ref{fig:system}, owns a pool of @io_uring@ instances managed by an \newterm{arbiter}.
    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.
     346When a \gls{thrd} attempts to issue an \io operation, it ask for an instance from the arbiter and issues requests to that instance.
     347This instance is now bound to the \gls{proc} the \gls{thrd} is running on.
     348This 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.
    338349This 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.
    339350However, it differs in that revocation by the arbiter means this approach does not suffer from the deadlock scenario described above.
     
    343354        \item The current \gls{proc} does not hold an instance.
    344355        \item The current instance does not have sufficient SQEs to satisfy the request.
    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}.
     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}.
    346357\end{enumerate}
    347358However, 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{
    348 Note the handshake is not lock-\emph{free} since it lacks the proper progress guarantee.}
     359Note the handshake is not lock \emph{free} since it lacks the proper progress guarantee.}
    349360A \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.
    350361If not, it proceeds, otherwise it delegates the operation to the arbiter.
     
    352363
    353364Correspondingly, before revoking an instance, the arbiter marks the instance and then waits for the \gls{proc} using it to lower its local flag.
    354 Only then does it reclaim the instance and potentially assign it to another \gls{proc}.
     365Only then does it reclaim the instance and potentially assign it to an other \gls{proc}.
    355366
    356367The arbiter maintains four lists around which it makes its decisions:
     
    369380
    370381\paragraph{Pending Allocations} are handled by the arbiter when it has available instances and can directly hand over the instance and satisfy the request.
    371 Otherwise, it must hold on to the list of threads until SQEs are made available again.
     382Otherwise, it must hold onto the list of threads until SQEs are made available again.
    372383This 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.
    373384
    374385While an arbiter has the potential to solve many of the problems mentioned above, it also introduces a significant amount of complexity.
    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.
     386Tracking which processors are borrowing which instances and which instances have SQEs available ends-up adding a significant synchronization prelude to any I/O operation.
    376387Any submission must start with a handshake that pins the currently borrowed instance, if available.
    377388An attempt to allocate is then made, but the arbiter can concurrently be attempting to allocate from the same instance from a different \gls{hthrd}.
    378389Once the allocation is completed, the submission must check that the instance is still burrowed before attempting to flush.
    379390These synchronization steps turn out to have a similar cost to the multiple shared-instances approach.
    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.
     391Furthermore, 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.
    381392For 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 design
     397
     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_ACQUIRE
     411%       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_RELEASE
     417%               return a
     418
     419%       return alloc_slow(cltr.io)
     420
     421% alloc_fast()
     422%       left = proc.io->submit_q.free.tail - proc.io->submit_q.free.head
     423%       if num_entries - left < want:
     424%               return None
     425
     426%       a = ready[head]
     427%       head = head + 1, __ATOMIC_RELEASE
     428
     429% alloc_slow()
     430%       cltr.io.flag = true, __ATOMIC_ACQUIRE
     431%       while(proc.io && proc.io->in_use) pause;
     432
     433
     434
     435% submit(a):
     436%       proc.io->in_use = true, __ATOMIC_ACQUIRE
     437%       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_RELEASE
     442
     443% polling()
     444%       loop:
     445%               yield
     446%               flush()
     447%               io_uring_enter
     448%               collect
     449%               handle()
    382450
    383451\section{Interface}
    384452The last important part of the \io subsystem is its interface.
    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.
     453There are multiple approaches that can be offered to programmers, each with advantages and disadvantages.
     454The new \io subsystem can replace the C runtime API or extend it, and in the later case, the interface can go from very similar to vastly different.
    387455The following sections discuss some useful options using @read@ as an example.
    388 The standard Linux interface for C is:
     456The standard Linux interface for C is :
    389457\begin{cfa}
    390458ssize_t read(int fd, void *buf, size_t count);
     
    398466However, this approach also entails a plethora of subtle technical challenges, which generally boils down to making a perfect replacement.
    399467If the \CFA interface replaces only \emph{some} of the calls to glibc, then this can easily lead to esoteric concurrency bugs.
    400 Since the gcc ecosystem does not offer a scheme for perfect replacement, this approach was rejected as being laudable but infeasible.
     468Since the gcc ecosystems does not offer a scheme for perfect replacement, this approach was rejected as being laudable but infeasible.
    401469
    402470\subsection{Synchronous Extension}
     
    409477It 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.
    410478However, it has the advantage of implementation simplicity.
    411 Finally, there is a certain irony to using a blocking synchronous interface for a feature often referred to as ``non-blocking'' \io.
     479Finally, there is a certain irony to using a blocking synchronous interfaces for a feature often referred to as ``non-blocking'' \io.
    412480
    413481\subsection{Asynchronous Extension}
     
    437505This offers more flexibility to users wanting to fully utilize all of the @io_uring@ features.
    438506However, it is not the most user-friendly option.
    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@.
     507It obviously imposes a strong dependency between user code and @io_uring@ but at the same time restricting users to usages that are compatible with how \CFA internally uses @io_uring@.
  • doc/theses/thierry_delisle_PhD/thesis/text/practice.tex

    r4520b77e r12df6fe  
    1616} // delete 4 kernel threads
    1717\end{cfa}
    18 Dynamically allocated processors can be deleted at any time, \ie their lifetime exceeds the block of creation.
     18Dynamically allocated processors can be deleted an any time, \ie their lifetime exceeds the block of creation.
    1919The 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.
    2020
    2121\section{Manual Resizing}
    2222Manual resizing is expected to be a rare operation.
    23 Programmers normally create/delete processors on a cluster at startup/teardown.
     23Programmers normally create/delete processors on a clusters at startup/teardown.
    2424Therefore, dynamically changing the number of \procs is an appropriate moment to allocate or free resources to match the new state.
    2525As 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 any other reason.
     26This requirement also means any references into these arrays, \eg pointers or indexes, may need to be updated if elements are moved for compaction or for any other reason.
    2727
    2828There are no performance requirements, within reason, for resizing since it is expected to be rare.
    2929However, 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 remains constant.
     30It should also avoid as much as possible any effect on performance when the number of \procs remain constant.
    3131This later requirement prohibits naive solutions, like simply adding a global lock to the ready-queue arrays.
    3232
    3333\subsection{Read-Copy-Update}
    3434One 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 attempting an Indiana Jones Switch to replace the original with the copy.
     35In 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.
    3636This approach has the advantage that it may not need any synchronization to do the switch.
    3737However, 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, but it also requires that operations made on the stale original version are eventually moved to the copy.
     38This 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.
    3939
    4040Specifically, the original data structure must be kept until all \procs have witnessed the change.
     
    4242If all operations need synchronization, then the overall cost of this technique is likely to be similar to an uncontended lock approach.
    4343In 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.
     44Especially merging subqueues while having a minimal impact on fairness and locality.
     45
     46For 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.
    4747If the list supports arbitrary insertions, then inconsistencies in the tail pointer do not break the list;
    4848however, ordering may not be preserved.
     
    5555A 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.
    5656Using 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.
     57Since 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.
    5858
    5959To maximize reader scalability, readers should not contend with each other when attempting to acquire and release a critical section.
    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.
     60To achieve this goal requires each reader to have its own memory to mark as locked and unlocked.
     61The read acquire possibly waits for a writer to finish the critical section and then acquires a reader's local spinlock.
     62The write acquire acquires the global lock, guaranteeing mutual exclusion among writers, and then acquires each of the local reader locks.
     63Acquiring 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
    6465Figure~\ref{f:SpecializedReadersWriterLock} shows the outline for this specialized readers-writer lock.
    6566The lock in nonblocking, so both readers and writers spin while the lock is held.
    66 This very wide sharding strategy means that readers have very good locality since they only ever need to access two memory locations.
     67\todo{finish explanation}
    6768
    6869\begin{figure}
     
    9899\section{Idle-Sleep}\label{idlesleep}
    99100While 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.
    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.
     101For this work, it is the programer's responsibility to manually create \procs, so if there are too few \procs, the application must address this issue.
    101102This leaves too many \procs when there are not enough \ats for all the \procs to be useful.
    102103These 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.
     
    108109Because idle sleep is spurious, this data structure has strict performance requirements, in addition to strict correctness requirements.
    109110Next, some mechanism is needed to block \glspl{kthrd}, \eg @pthread_cond_wait@ on a pthread semaphore.
    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.
     111The complexity here is to support \at parking and unparking, user-level locking, timers, \io operations, and all other \CFA features with minimal complexity.
    111112Finally, the scheduler needs a heuristic to determine when to block and unblock an appropriate number of \procs.
    112113However, this third challenge is outside the scope of this thesis because developing a general heuristic is complex enough to justify its own work.
    113114Therefore, 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.
    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.
     115An interesting sub-part of this heuristic is what to do with bursts of \ats that become ready.
     116Since waking up a sleeping \proc can have notable latency, it is possible multiple \ats become ready while a single \proc is waking up.
     117This facts begs the question, if many \procs are available, how many should be woken?
     118If the ready \ats will run longer than the wake-up latency, waking one \proc per \at will offer maximum parallelisation.
     119If the ready \ats will run for a short very short time, waking many \procs may be wasteful.
    120120As 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.
    121121
    122122\section{Sleeping}
    123 As usual, the cornerstone of any feature related to the kernel is the choice of system call.
     123As usual, the corner-stone of any feature related to the kernel is the choice of system call.
    124124In terms of blocking a \gls{kthrd} until some event occurs, the Linux kernel has many available options.
    125125
    126126\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@.
     127The 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@.
    128128While 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{kthrd} must be woken up first, which then signals the \proc.
     129For \io results to wake a \proc waiting on a @pthread_cond@ means a different \glspl{kthrd} must be woken up first, which then signals the \proc.
    130130
    131131\subsection{\lstinline{io_uring} and Epoll}
     
    137137
    138138\subsection{Event FDs}
    139 Another interesting approach is to use an event file descriptor\cite{MAN:eventfd}.
     139Another interesting approach is to use an event file descriptor\cit{eventfd}.
    140140This 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 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{
     141Indeed, all reads and writes must use a word-sized values, \ie 64 or 32 bits.
     142Writes \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{
    143143This behaviour is without the \lstinline{EFD_SEMAPHORE} flag, which changes the behaviour of \lstinline{read} but is not needed for this work.}
    144144If a read is made while the buffer is already 0, the read blocks until a non-0 value is added.
     
    148148
    149149\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.
     150Tracking 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.
    151151The 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.
    152152Since \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.
     
    154154
    155155The handshake closing the race is done with both the notifier and the idle \proc executing two ordered steps.
    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.
     156The notifier first make sure the newly ready \at is visible to \procs searching for \ats, and then attempt to notify an idle \proc.
    157157On the other side, \procs make themselves visible as idle \procs and then search for any \ats they may have missed.
    158158Unlike regular work-stealing, this search must be exhaustive to make sure that pre-existing \at is missed.
    159159These 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 Conversely, if the notifier does not see any idle \proc, then a \proc is guaranteed to find the new \at in its exhaustive search.
     160Conversly, if the notifier does not see any idle \proc, then a \proc is guaranteed to find the new \at in its exhaustive search.
    161161
    162162Furthermore, 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.
     163Contention 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.
    164164However, notifying, checking if a \proc must be woken-up, and doing so if needed, can significantly affect overall performance and must be low cost.
    165165
    166166\subsection{Sleepers List}
    167167Each 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 periods while those at the head of the list wake up for bursts of activity.
     168This 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.
    169169Because of unbalanced performance requirements, the algorithm tracking sleepers is designed to have idle \procs handle as much of the work as possible.
    170170The idle \procs maintain the stack of sleepers among themselves and notifying a sleeping \proc takes as little work as possible.
     
    173173
    174174This approach also simplifies notification.
    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.
     175Indeed, \procs not only need to be notify when a new \at is readied, but also must be notified during manual resizing, so the \gls{kthrd} can be joined.
    176176These requirements mean whichever entity removes idle \procs from the sleeper list must be able to do so in any order.
    177177Using 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.
     178The 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.
    179179
    180180\subsection{Reducing Latency}
    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.
     181As mentioned in this section, \procs going to sleep for extremely short periods of time is likely in certain scenarios.
     182Therefore, the latency of doing a system call to read from and writing to an event @fd@ can negatively affect overall performance in a notable way.
    183183Hence, it is important to reduce latency and contention of the notification as much as possible.
    184184Figure~\ref{fig:idle1} shows the basic idle-sleep data structure.
     
    205205The woken \proc then updates the atomic pointer, while it is updating the head of the list, as it removes itself from the list.
    206206Notifiers 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 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.
     207This behaviour is equivalent to having multiple notifier write to the @fd@ since reads consume all previous writes.
     208Note 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 witht the latency of \procs waking up.
    209209As mentioned in section~\ref{idlesleep}, there is no optimal approach to handle these bursts.
    210210It is therefore difficult to justify the cost of any extra synchronization here.
     
    217217\end{figure}
    218218
    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.
     219The 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@.
     220The benaphore over the event @fd@ logically provides a three state flag to avoid unnecessary system calls, where the states are expressed explicit in Figure~\ref{fig:idle:state}.
     221A \proc begins its idle sleep by adding itself to the idle list before searching for an \at.
    222222In the process of adding itself to the idle list, it sets the state flag to @SEARCH@.
    223223If no \ats can be found during the search, the \proc then confirms it is going to sleep by atomically swapping the state to @SLEEP@.
    224224If the previous state is still @SEARCH@, then the \proc does read the event @fd@.
    225 Meanwhile, notifiers atomically exchange the state to the @AWAKE@ state.
     225Meanwhile, notifiers atomically exchange the state to @AWAKE@ state.
    226226If the previous state is @SLEEP@, then the notifier must write to the event @fd@.
    227227However, 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 to the final data structure shown in Figure~\ref{fig:idle}.
     228These extensions leads to the final data structure shown in Figure~\ref{fig:idle}.
    229229
    230230\begin{figure}
    231231        \centering
    232232        \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}.}
    234234        \label{fig:idle:state}
    235235\end{figure}
  • doc/theses/thierry_delisle_PhD/thesis/text/runtime.tex

    r4520b77e r12df6fe  
    1 \chapter{\CFA Runtime}\label{cfaruntime}
     1\chapter{\CFA Runtime}
    22This chapter presents an overview of the capabilities of the \CFA runtime prior to this thesis work.
    33
    44\section{C Threading}
    55
    6 \Celeven introduced threading features, such as the @_Thread_local@ storage class, and libraries @stdatomic.h@ and @threads.h@.
     6\Celeven introduced threading features, such the @_Thread_local@ storage class, and libraries @stdatomic.h@ and @threads.h@.
    77Interestingly, 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).
    88While 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.
     
    1313\section{M:N Threading}\label{prev:model}
    1414
    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.
     15Threading 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.
    1616
    17 The \CFA M:N threading model is implemented using many user-level threads mapped onto fewer \glspl{kthrd}.
     17The \CFA M:N threading models is implemented using many user-level threads mapped onto fewer \glspl{kthrd}.
    1818The 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 \at until it context switches out, it then chooses a different \at to run.
     19The 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.
    2020
    2121\section{Clusters}
    2222\CFA allows the option to group user-level threading, in the form of 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.
     23Both \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.
    2525Figure~\ref{fig:system} shows an overview of the \CFA runtime, which allows programmers to tightly control parallelism.
    2626It 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.}.
     
    3030                \input{system.pstex_t}
    3131        \end{center}
    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.}
     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}.}
    3333        \label{fig:system}
    3434\end{figure}
     
    3838
    3939\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 \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:
     40Prior 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:
    4141
    4242\begin{quote}
    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.
     43Given 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.
     44If the second \gls{thrd} races ahead, it may wait for responses to requests that have not been sent yet.
     45In 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.
     46With 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}.
     47If 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.
    4848However, this solution is neither general nor appropriate even in this simple case.}.
    4949\end{quote}
    5050
    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}.
     51Therefore, 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} ope      rations.
     52This feature entails multiplexing the \glsxtrshort{io} operations of many \glspl{thrd} onto fewer \glspl{proc}.
    5353The multiplexing requires a single \gls{proc} to execute multiple \glsxtrshort{io} operations in parallel.
    5454This 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.
     
    6060All 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)
    6161\end{quote}
    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.
     62Only UNIX @man@ pages identify whether or not 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.
    6363
    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.
     64Languages 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.
    6565
    6666As 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:
     
    7272Therefore, 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.
    7373Currently, 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 is redirected to \CFA user-level locks. This capability further reduces the chances of blocking a \gls{kthrd}.}
     74Therefore, 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 are 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

    r4520b77e r12df6fe  
    8484\usepackage{subcaption}
    8585\usepackage{comment} % Removes large sections of the document.
    86 \usepackage{array}
    8786
    8887% Hyperlinks make it very easy to navigate an electronic document.
     
    211210\newcommand\proc{\gls{proc}\xspace}%
    212211\newcommand\procs{\glspl{proc}\xspace}%
    213 \newcommand\park{\glslink{atblock}{park}\xspace}%
    214 \newcommand\unpark{\glslink{atsched}{unpark}\xspace}%
    215212
    216213%======================================================================
     
    250247\input{text/eval_macro.tex}
    251248\part{Conclusion \& Annexes}
    252 \input{text/conclusion.tex}
    253 
    254249
    255250%----------------------------------------------------------------------
     
    285280% Appendices
    286281
    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}
     282% The \appendix statement indicates the beginning of the appendices.
     283\appendix
     284% Add an un-numbered title page before the appendices and a line in the Table of Contents
     285\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 Contents
     292%======================================================================
     293\section{Using the GUI}
     294Properties 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
     296To 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}
     299All figure properties can also be manipulated from the command line. Here's an example:
     300\begin{verbatim}
     301x=[0:0.1:pi];
     302hold on % Plot multiple traces on one figure
     303plot(x,sin(x))
     304plot(x,cos(x),'--r')
     305plot(x,tan(x),'.-g')
     306title('Some Trig Functions Over 0 to \pi') % Note LaTeX markup!
     307legend('{\it sin}(x)','{\it cos}(x)','{\it tan}(x)')
     308hold off
     309set(gca,'Ylim',[-3 3]) % Adjust Y limits of "current axes"
     310set(gcf,'Units','inches') % Set figure size units of "current figure"
     311set(gcf,'Position',[0,0,6,4]) % Set figure width (6 in.) and height (4 in.)
     312cd n:\thesis\plots % Select where to save
     313print -dpdf plot.pdf % Save as PDF
     314\end{verbatim}
    320315
    321316% GLOSSARIES (Lists of definitions, abbreviations, symbols, etc. provided by the glossaries-extra package)
  • doc/user/user.tex

    r4520b77e r12df6fe  
    1111%% Created On       : Wed Apr  6 14:53:29 2016
    1212%% Last Modified By : Peter A. Buhr
    13 %% Last Modified On : Mon Aug 22 23:43:30 2022
    14 %% Update Count     : 5503
     13%% Last Modified On : Mon Feb 14 17:20:39 2022
     14%% Update Count     : 5382
    1515%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1616
     
    964964
    965965\begin{figure}
    966 \begin{tabular}{@{}l@{\hspace{40pt}}|l@{}}
    967 \multicolumn{1}{@{}c@{\hspace{40pt}}|}{loop control} & \multicolumn{1}{c@{}}{output} \\
     966\begin{tabular}{@{}l@{\hspace{25pt}}|l@{}}
     967\multicolumn{1}{@{}c@{\hspace{25pt}}|}{loop control} & \multicolumn{1}{c@{}}{output} \\
    968968\hline
    969969\begin{cfa}
    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 
     970while ®($\,$)® { sout | "empty"; break; }
     971do { sout | "empty"; break; } while ®($\,$)®;
     972for ®($\,$)® { sout | "empty"; break; }
     973for ( ®0® ) { sout | "A"; } sout | "zero";
     974for ( ®1® ) { sout | "A"; }
     975for ( ®10® ) { sout | "A"; }
     976for ( ®= 10® ) { sout | "A"; }
     977for ( ®1 ~= 10 ~ 2® ) { sout | "B"; }
     978for ( ®10 -~= 1 ~ 2® ) { sout | "C"; }
     979for ( ®0.5 ~ 5.5® ) { sout | "D"; }
     980for ( ®5.5 -~ 0.5® ) { sout | "E"; }
     981for ( ®i; 10® ) { sout | i; }
     982for ( ®i; = 10® ) { sout | i; }
     983for ( ®i; 1 ~= 10 ~ 2® ) { sout | i; }
     984for ( ®i; 10 -~= 1 ~ 2® ) { sout | i; }
     985for ( ®i; 0.5 ~ 5.5® ) { sout | i; }
     986for ( ®i; 5.5 -~ 0.5® ) { sout | i; }
     987for ( ®ui; 2u ~= 10u ~ 2u® ) { sout | ui; }
     988for ( ®ui; 10u -~= 2u ~ 2u® ) { sout | ui; }
    991989enum { N = 10 };
    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$
     990for ( ®N® ) { sout | "N"; }
     991for ( ®i; N® ) { sout | i; }
     992for ( ®i; N -~ 0® ) { sout | i; }
     993const int start = 3, comp = 10, inc = 2;
     994for ( ®i; start ~ comp ~ inc + 1® ) { sout | i; }
     995for ( i; 1 ~ ®@® ) { if ( i > 10 ) break; sout | i; }
     996for ( i; 10 -~ ®@® ) { if ( i < 0 ) break; sout | i; }
     997for ( i; 2 ~ ®@® ~ 2 ) { if ( i > 10 ) break; sout | i; }
     998for ( i; 2.1 ~ ®@® ~ ®@® ) { if ( i > 10.5 ) break; sout | i; i += 1.7; }
     999for ( i; 10 -~ ®@® ~ 2 ) { if ( i < 0 ) break; sout | i; }
     1000for ( i; 12.1 ~ ®@® ~ ®@® ) { if ( i < 2.5 ) break; sout | i; i -= 1.7; }
     1001for ( i; 5 ®:® j; -5 ~ @ ) { sout | i | j; }
     1002for ( i; 5 ®:® j; -5 -~ @ ) { sout | i | j; }
     1003for ( i; 5 ®:® j; -5 ~ @ ~ 2 ) { sout | i | j; }
     1004for ( i; 5 ®:® j; -5 -~ @ ~ 2 ) { sout | i | j; }
     1005for ( i; 5 ®:® j; -5 ~ @ ) { sout | i | j; }
     1006for ( i; 5 ®:® j; -5 -~ @ ) { sout | i | j; }
     1007for ( i; 5 ®:® j; -5 ~ @ ~ 2 ) { sout | i | j; }
     1008for ( i; 5 ®:® j; -5 -~ @ ~ 2 ) { sout | i | j; }
     1009for ( i; 5 ®:® j; -5 -~ @ ~ 2 ®:® k; 1.5 ~ @ ) { sout | i | j | k; }
     1010for ( i; 5 ®:® j; -5 -~ @ ~ 2 ®:® k; 1.5 ~ @ ) { sout | i | j | k; }
     1011for ( i; 5 ®:® k; 1.5 ~ @ ®:® j; -5 -~ @ ~ 2 ) { sout | i | j | k; }
    10151012\end{cfa}
    10161013&
     
    10191016empty
    10201017empty
    1021 
    10221018zero
    10231019A
     
    1037103310 8 6 4 2
    10381034
    1039 
    10401035N N N N N N N N N N
    104110360 1 2 3 4 5 6 7 8 9
    1042103710 9 8 7 6 5 4 3 2 1
    1043 
    10441038
    104510393 6 9
     
    10791073
    10801074Looping a fixed number of times, possibly with a loop index, occurs frequently.
    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).
     1075\CFA condenses simply looping to facilitate coding speed and safety.
     1076The \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
     1083The up-to range uses operator ©+=© for increment;
     1084\item
     1085The down-to range uses operator ©-=© for decrement.
     1086\item
     1087The 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}
     1089for ( i; ®5® )                                  $\C[2.5in]{// typeof(5) i; 5 is comparison value}$
     1090for ( i; ®1.5®~5.5~0.5 )                $\C{// typeof(1.5) i; 1.5 is start value}$
     1091\end{cfa}
     1092\item
     1093An empty conditional implies comparison value of ©1© (true).
    10841094\begin{cfa}
    10851095while ( ®/*empty*/®  )                  $\C{// while ( true )}$
     
    10871097do ... while ( ®/*empty*/®  )    $\C{// do ... while ( true )}$
    10881098\end{cfa}
    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.
     1099\item
     1100A comparison N is implicit up-to exclusive range [0,N\R{)}.
     1101\begin{cfa}
     1102for ( ®5® )                                             $\C{// for ( typeof(5) i; i < 5; i += 1 )}$
     1103\end{cfa}
     1104\item
     1105A comparison ©=© N is implicit up-to inclusive range [0,N\R{]}.
     1106\begin{cfa}
     1107for ( ®=®5 )                                    $\C{// for ( typeof(5) i; i <= 5; i += 1 )}$
     1108\end{cfa}
     1109\item
     1110The up-to range M ©~©\index{~@©~©} N means exclusive range [M,N\R{)}.
     1111\begin{cfa}
     1112for ( 1®~®5 )                                   $\C{// for ( typeof(1) i = 1; i < 5; i += 1 )}$
     1113\end{cfa}
     1114\item
     1115The up-to range M ©~=©\index{~=@©~=©} N means inclusive range [M,N\R{]}.
     1116\begin{cfa}
     1117for ( 1®~=®5 )                                  $\C{// for ( typeof(1) i = 1; i <= 5; i += 1 )}$
     1118\end{cfa}
     1119\item
     1120The down-to range M ©-~©\index{-~@©-~©} N means exclusive range [N,M\R{)}.
     1121\begin{cfa}
     1122for ( 1®-~®5 )                                  $\C{// for ( typeof(1) i = 5; i > 0; i -= 1 )}$
     1123\end{cfa}
     1124\item
     1125The down-to range M ©-~=©\index{-~=@©-~=©} N means inclusive range [N,M\R{]}.
     1126\begin{cfa}
     1127for ( 1®-~=®5 )                                 $\C{// for ( typeof(1) i = 5; i >= 0; i -= 1 )}$
     1128\end{cfa}
     1129\item
     1130©@© means put nothing in this field.
     1131\begin{cfa}
     1132for ( 1~®@®~2 )                                 $\C{// for ( typeof(1) i = 1; /*empty*/; i += 2 )}$
     1133\end{cfa}
     1134\item
     1135©:© means start another index.
     1136\begin{cfa}
     1137for ( i; 5 ®:® j; 2~12~3 )              $\C{// for ( typeof(i) i = 1, j = 2; i < 5 \&\& j < 12; i += 1, j += 3 )}\CRT$
     1138\end{cfa}
    11131139\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{)}.
    1126 \begin{cfa}
    1127 for ( ®5® )                                             $\C{// for ( typeof(5) i; i < 5; i += 1 )}$
    1128 \end{cfa}
    1129 \item
    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 )}$
    1153 \end{cfa}
    1154 \item
    1155 ©@© means put nothing in this field.
    1156 \begin{cfa}
    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 )}$
    1167 \end{cfa}
    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.
    11761140
    11771141
     
    48304794        int id;
    48314795        float size;
    4832         int * optionalint;
     4796        Parts * optionalParts;
    48334797};
    48344798
     
    48374801// Subsequent arguments can be specified for initialization
    48384802
    4839 void ?{}( Widget & w ) { $\C{// default constructor}$
     4803void ?{}(Widget &w) { // default constructor
    48404804        w.id = -1;
    48414805        w.size = 0.0;
    4842         w.optionalint = 0p;
     4806        w.optionalParts = 0;
    48434807}
    48444808
    48454809// constructor with values (does not need to include all fields)
    4846 void ?{}( Widget & w, int id, float size ) {
     4810void ?{}(Widget &w, int id, float size) {
    48474811        w.id = id;
    48484812        w.size = size;
    4849         w.optionalint = 0p;
    4850 }
    4851 
    4852 // ^?{} is the destructor operator identifier
    4853 void ^?{}( Widget & w ) { $\C{// destructor}$
     4813        w.optionalParts = 0;
     4814}
     4815
     4816// ^? is the destructor operator identifier
     4817void ^?(Widget &w) { // destructor
    48544818        w.id = 0;
    48554819        w.size = 0.0;
    4856         if ( w.optionalint != 0p ) {
    4857                 free( w.optionalint );
    4858                 w.optionalint = 0p;
     4820        if (w.optionalParts != 0) {
     4821        // This is the only pointer to optionalParts, free it
     4822        free(w.optionalParts);
     4823        w.optionalParts = 0;
    48594824        }
    48604825}
    48614826
    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}$
     4827Widget baz; // reserve space only
     4828Widget foo{}; // calls default constructor
     4829Widget bar{23, 2.45}; // calls constructor with values
     4830baz{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
    48684834\end{cfa}
    48694835\caption{Constructors and Destructors}
  • driver/Makefile.am

    r4520b77e r12df6fe  
    1919
    2020# applies to both programs
    21 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
     21AM_CXXFLAGS = @HOST_FLAGS@ -Wall -Wextra -Werror=return-type -O2 -g -std=c++14 -I${abs_top_srcdir}/src -I${abs_top_srcdir}/src/include
    2222
    2323# don't install cfa directly
  • driver/cfa.cc

    r4520b77e r12df6fe  
    5353        return arg.substr( 0, pre.size() ) == pre;
    5454} // prefix
     55
     56static 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}
    5560
    5661// check if string has suffix
  • libcfa/prelude/Makefile.am

    r4520b77e r12df6fe  
    5050
    5151prelude.cfa : prelude-gen.cc
    52         ${AM_V_GEN}${CXX} ${AM_CXXFLAGS} ${CXXFLAGS} ${AM_CFLAGS} ${<} -o prelude-gen -Wall -Wextra -O2 -g -std=c++17
     52        ${AM_V_GEN}${CXX} ${AM_CXXFLAGS} ${CXXFLAGS} ${AM_CFLAGS} ${<} -o prelude-gen -Wall -Wextra -O2 -g -std=c++14
    5353        @./prelude-gen > ${@}
    5454        @rm ./prelude-gen
     
    7676
    7777if ENABLE_DISTCC
    78 distribution: @LOCAL_CFACC@ @LOCAL_CC1@ @CFACPP@ defines.hfa gcc-builtins.cf builtins.cf extras.cf prelude.cfa bootloader.c $(srcdir)/../../tools/build/push2dist.sh
     78distribution: @LOCAL_CFACC@ @LOCAL_CC1@ @CFACPP@ gcc-builtins.cf builtins.cf extras.cf prelude.cfa bootloader.c $(srcdir)/../../tools/build/push2dist.sh
    7979        ${AM_V_GEN}$(srcdir)/../../tools/build/push2dist.sh @CFADIR_HASH@ @DIST_BWLIMIT@
    8080        @echo "Dummy file to track distribution to remote hosts" > ${@}
  • libcfa/prelude/defines.hfa.in

    r4520b77e r12df6fe  
    141141
    142142/* 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
    147143   supports the flag IORING_SETUP_ATTACH_WQ. */
    148144#undef CFA_HAVE_IORING_SETUP_ATTACH_WQ
  • libcfa/src/Makefile.am

    r4520b77e r12df6fe  
    186186if ENABLE_DISTCC
    187187
    188 ../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
     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.sh
    189189        @+make -C ../prelude distribution
    190190
  • libcfa/src/bits/defs.hfa

    r4520b77e r12df6fe  
    2424#define likely(x)   __builtin_expect(!!(x), 1)
    2525#define unlikely(x) __builtin_expect(!!(x), 0)
     26#define thread_local _Thread_local
    2627
    2728typedef void (*fptr_t)();
     
    3637#endif
    3738
    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 
    4839#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 };
    5540
    5641#ifdef __cforall
  • libcfa/src/bits/locks.hfa

    r4520b77e r12df6fe  
    3232                extern void disable_interrupts() OPTIONAL_THREAD;
    3333                extern void enable_interrupts( bool poll = true ) OPTIONAL_THREAD;
    34                 extern bool poll_interrupts() OPTIONAL_THREAD;
    3534                #define __cfaabi_dbg_record_lock(x, y)
    3635        }
  • libcfa/src/concurrency/io.cfa

    r4520b77e r12df6fe  
    8383        };
    8484
    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 );
    8989//=============================================================================================
    9090// I/O Polling
    9191//=============================================================================================
    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 & );
    9494        extern void __kernel_unpark( thread$ * thrd, unpark_hint );
    9595
    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 ) {
    9797                __STATS__( true, io.calls.flush++; )
    9898                int ret;
     
    132132        }
    133133
    134         static bool try_acquire( io_context$ * ctx ) __attribute__((nonnull(1))) {
     134        static bool try_acquire( $io_context * ctx ) __attribute__((nonnull(1))) {
    135135                /* paranoid */ verify( ! __preemption_enabled() );
    136136                /* paranoid */ verify( ready_schedule_islocked() );
     
    153153        }
    154154
    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))) {
    156156                /* paranoid */ verify( ! __preemption_enabled() );
    157157                /* paranoid */ verify( ready_schedule_islocked() );
     
    213213
    214214                cluster * const cltr = proc->cltr;
    215                 io_context$ * const ctx = proc->io.ctx;
     215                $io_context * const ctx = proc->io.ctx;
    216216                /* paranoid */ verify( cltr );
    217217                /* paranoid */ verify( ctx );
     
    241241                        else {
    242242                                const unsigned target = proc->io.target;
    243                                 /* paranoid */ verify( io.tscs[target].t.tv != ULLONG_MAX );
     243                                /* paranoid */ verify( io.tscs[target].tv != ULLONG_MAX );
    244244                                HELP: if(target < ctxs_count) {
    245245                                        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.tv, io.tscs[target].t.ma);
     246                                        const unsigned long long age = moving_average(ctsc, io.tscs[target].tv, io.tscs[target].ma);
    247247                                        __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");
    248248                                        if(age <= cutoff) break HELP;
     
    278278                /* paranoid */ verify( proc->io.ctx );
    279279
    280                 io_context$ & ctx = *proc->io.ctx;
     280                $io_context & ctx = *proc->io.ctx;
    281281
    282282                __ioarbiter_flush( ctx );
     
    312312        // Allocation
    313313        // 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)  {
    315315                struct io_uring_sqe * sqes = ctx->sq.sqes;
    316316                for(i; want) {
     
    322322        // Try to directly allocate from the a given context
    323323        // 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) {
    325325                __sub_ring_t & sq = ctx->sq;
    326326                const __u32 mask  = *sq.mask;
     
    349349        // for convenience, return both the index and the pointer to the sqe
    350350        // 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 {
    352352                // __cfadbg_print_safe(io, "Kernel I/O : attempting to allocate %u\n", want);
    353353
    354354                disable_interrupts();
    355355                processor * proc = __cfaabi_tls.this_processor;
    356                 io_context$ * ctx = proc->io.ctx;
     356                $io_context * ctx = proc->io.ctx;
    357357                /* paranoid */ verify( __cfaabi_tls.this_processor );
    358358                /* paranoid */ verify( ctx );
     
    378378                enable_interrupts();
    379379
    380                 io_arbiter$ * ioarb = proc->cltr->io.arbiter;
     380                $io_arbiter * ioarb = proc->cltr->io.arbiter;
    381381                /* paranoid */ verify( ioarb );
    382382
    383383                // __cfadbg_print_safe(io, "Kernel I/O : falling back on arbiter for allocation\n");
    384384
    385                 struct io_context$ * ret = __ioarbiter_allocate(*ioarb, idxs, want);
     385                struct $io_context * ret = __ioarbiter_allocate(*ioarb, idxs, want);
    386386
    387387                // __cfadbg_print_safe(io, "Kernel I/O : slow allocation completed from ring %d\n", ret->fd);
     
    393393        //=============================================================================================
    394394        // 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) {
    396396                // We can proceed to the fast path
    397397                // Get the right objects
     
    414414        }
    415415
    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) {
    417417                __sub_ring_t & sq = ctx->sq;
    418418                __submit_only(ctx, idxs, have);
     
    428428        }
    429429
    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 {
    431431                // __cfadbg_print_safe(io, "Kernel I/O : attempting to submit %u (%s)\n", have, lazy ? "lazy" : "eager");
    432432
    433433                disable_interrupts();
    434                 __STATS__( true, if(!lazy) io.submit.eagr += 1; )
    435434                processor * proc = __cfaabi_tls.this_processor;
    436                 io_context$ * ctx = proc->io.ctx;
     435                $io_context * ctx = proc->io.ctx;
    437436                /* paranoid */ verify( __cfaabi_tls.this_processor );
    438437                /* paranoid */ verify( ctx );
     
    465464        // by io_uring
    466465        // This cannot be done by multiple threads
    467         static __u32 __release_sqes( struct io_context$ & ctx ) {
     466        static __u32 __release_sqes( struct $io_context & ctx ) {
    468467                const __u32 mask = *ctx.sq.mask;
    469468
     
    538537        }
    539538
    540         static io_context$ * __ioarbiter_allocate( io_arbiter$ & this, __u32 idxs[], __u32 want ) {
     539        static $io_context * __ioarbiter_allocate( $io_arbiter & this, __u32 idxs[], __u32 want ) {
    541540                // __cfadbg_print_safe(io, "Kernel I/O : arbiter allocating\n");
    542541
     
    557556        }
    558557
    559         static void __ioarbiter_notify( io_arbiter$ & this, io_context$ * ctx ) {
     558        static void __ioarbiter_notify( $io_arbiter & this, $io_context * ctx ) {
    560559                /* paranoid */ verify( !empty(this.pending.queue) );
    561560
     
    587586        }
    588587
    589         static void __ioarbiter_notify( io_context$ & ctx ) {
     588        static void __ioarbiter_notify( $io_context & ctx ) {
    590589                if(!empty( ctx.arbiter->pending )) {
    591590                        __ioarbiter_notify( *ctx.arbiter, &ctx );
     
    594593
    595594        // Simply append to the pending
    596         static void __ioarbiter_submit( io_context$ * ctx, __u32 idxs[], __u32 have, bool lazy ) {
     595        static void __ioarbiter_submit( $io_context * ctx, __u32 idxs[], __u32 have, bool lazy ) {
    597596                __cfadbg_print_safe(io, "Kernel I/O : submitting %u from the arbiter to context %u\n", have, ctx->fd);
    598597
     
    618617        }
    619618
    620         static void __ioarbiter_flush( io_context$ & ctx ) {
     619        static void __ioarbiter_flush( $io_context & ctx ) {
    621620                if(!empty( ctx.ext_sq )) {
    622621                        __STATS__( false, io.flush.external += 1; )
     
    642641        #if defined(CFA_WITH_IO_URING_IDLE)
    643642                bool __kernel_read(processor * proc, io_future_t & future, iovec & iov, int fd) {
    644                         io_context$ * ctx = proc->io.ctx;
     643                        $io_context * ctx = proc->io.ctx;
    645644                        /* paranoid */ verify( ! __preemption_enabled() );
    646645                        /* paranoid */ verify( proc == __cfaabi_tls.this_processor );
  • libcfa/src/concurrency/io/call.cfa.in

    r4520b77e r12df6fe  
    3434#include "kernel.hfa"
    3535#include "io/types.hfa"
    36 #include "stats.hfa"
    3736
    3837//=============================================================================================
     
    7574        ;
    7675
    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)));
     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)));
    7978#endif
    8079
     
    200199                __u32 idx;
    201200                struct io_uring_sqe * sqe;
    202                 struct io_context$ * ctx = cfa_io_allocate( &sqe, &idx, 1 );
    203 
    204                 memset(sqe, 0, sizeof(*sqe));
     201                struct $io_context * ctx = cfa_io_allocate( &sqe, &idx, 1 );
     202
    205203                sqe->opcode = IORING_OP_{op};
     204                sqe->user_data = (uintptr_t)&future;
    206205                sqe->flags = sflags;
    207                 sqe->user_data = (uintptr_t)&future;
    208                 {body}
     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}
    209215
    210216                asm volatile("": : :"memory");
     
    220226        async_{name}( future, {args}, submit_flags );
    221227
    222         __attribute__((unused)) bool parked;
    223         parked = wait( future );
    224         __STATS__(false, if(!parked) io.submit.nblk += 1; )
     228        wait( future );
    225229        if( future.result < 0 ) {{
    226230                errno = -future.result;
  • libcfa/src/concurrency/io/setup.cfa

    r4520b77e r12df6fe  
    2828        void ?{}(io_context_params & this) libcfa_public {}
    2929
    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) {}
    3232
    3333        void __cfa_io_start( processor * proc ) {}
     
    3737        void __cfa_io_stop ( processor * proc ) {}
    3838
    39         io_arbiter$ * create(void) { return 0p; }
    40         void destroy(io_arbiter$ *) {}
     39        $io_arbiter * create(void) { return 0p; }
     40        void destroy($io_arbiter *) {}
    4141
    4242#else
     
    105105
    106106
    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) {
    115115                /* paranoid */ verify( cl.io.arbiter );
    116116                this.proc = proc;
     
    122122        }
    123123
    124         void ^?{}(io_context$ & this) {
     124        void ^?{}($io_context & this) {
    125125                __cfadbg_print_safe(io_core, "Kernel I/O : tearing down io_context %u\n", this.fd);
    126126
     
    129129        }
    130130
    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 ) {
    132132                // Step 1 : call to setup
    133133                struct io_uring_params params;
     
    228228
    229229                #if !defined(CFA_WITH_IO_URING_IDLE)
    230                 {
    231230                        // Step 4 : eventfd
     231                        // io_uring_register is so f*cking slow on some machine that it
     232                        // will never succeed if preemption isn't hard blocked
    232233                        __cfadbg_print_safe(io_core, "Kernel I/O : registering %d for completion with ring %d\n", procfd, fd);
    233234
     
    238239
    239240                        __cfadbg_print_safe(io_core, "Kernel I/O : registered %d for completion with ring %d\n", procfd, fd);
    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
     241                #endif
    262242
    263243                // some paranoid checks
     
    277257        }
    278258
    279         static void __io_uring_teardown( io_context$ & this ) {
     259        static void __io_uring_teardown( $io_context & this ) {
    280260                // Shutdown the io rings
    281261                struct __sub_ring_t & sq = this.sq;
     
    320300// I/O Context Sleep
    321301//=============================================================================================
    322         // static inline void __epoll_ctl(io_context$ & ctx, int op, const char * error) {
     302        // static inline void __epoll_ctl($io_context & ctx, int op, const char * error) {
    323303        //      struct epoll_event ev;
    324304        //      ev.events = EPOLLIN | EPOLLONESHOT;
     
    330310        // }
    331311
    332         // static void __epoll_register(io_context$ & ctx) {
     312        // static void __epoll_register($io_context & ctx) {
    333313        //      __epoll_ctl(ctx, EPOLL_CTL_ADD, "ADD");
    334314        // }
    335315
    336         // static void __epoll_unregister(io_context$ & ctx) {
     316        // static void __epoll_unregister($io_context & ctx) {
    337317        //      // Read the current epoch so we know when to stop
    338318        //      size_t curr = __atomic_load_n(&iopoll.epoch, __ATOMIC_SEQ_CST);
     
    353333        // }
    354334
    355         // void __ioctx_prepare_block(io_context$ & ctx) {
     335        // void __ioctx_prepare_block($io_context & ctx) {
    356336        //      __cfadbg_print_safe(io_core, "Kernel I/O - epoll : Re-arming io poller %d (%p)\n", ctx.fd, &ctx);
    357337        //      __epoll_ctl(ctx, EPOLL_CTL_MOD, "REARM");
     
    362342// I/O Context Misc Setup
    363343//=============================================================================================
    364         void ?{}( io_arbiter$ & this ) {
     344        void ?{}( $io_arbiter & this ) {
    365345                this.pending.empty = true;
    366346        }
    367347
    368         void ^?{}( io_arbiter$ & mutex this ) {}
    369 
    370         io_arbiter$ * create(void) {
     348        void ^?{}( $io_arbiter & this ) {}
     349
     350        $io_arbiter * create(void) {
    371351                return new();
    372352        }
    373         void destroy(io_arbiter$ * arbiter) {
     353        void destroy($io_arbiter * arbiter) {
    374354                delete(arbiter);
    375355        }
  • libcfa/src/concurrency/io/types.hfa

    r4520b77e r12df6fe  
    3333
    3434        struct processor;
    35         monitor io_arbiter$;
     35        monitor $io_arbiter;
    3636
    3737        //-----------------------------------------------------------------------
     
    125125
    126126
    127         struct __attribute__((aligned(64))) io_context$ {
    128                 io_arbiter$ * arbiter;
     127        struct __attribute__((aligned(128))) $io_context {
     128                $io_arbiter * arbiter;
    129129                processor * proc;
    130130
     
    137137        };
    138138
    139         static inline unsigned long long ts(io_context$ *& this) {
     139        static inline unsigned long long ts($io_context *& this) {
    140140                const __u32 head = *this->cq.head;
    141141                const __u32 tail = *this->cq.tail;
     
    150150                __u32 * idxs;
    151151                __u32 want;
    152                 io_context$ * ctx;
     152                $io_context * ctx;
    153153        };
    154154
    155         monitor __attribute__((aligned(64))) io_arbiter$ {
     155        struct __attribute__((aligned(128))) $io_arbiter {
    156156                __outstanding_io_queue pending;
    157157        };
     
    186186        #endif
    187187
    188         // void __ioctx_prepare_block(io_context$ & ctx);
     188        // void __ioctx_prepare_block($io_context & ctx);
    189189#endif
  • libcfa/src/concurrency/iofwd.hfa

    r4520b77e r12df6fe  
    4949
    5050struct cluster;
    51 struct io_context$;
     51struct $io_context;
    5252
    5353struct iovec;
     
    8282//----------
    8383// 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)));
     84extern struct $io_context * cfa_io_allocate(struct io_uring_sqe * out_sqes[], __u32 out_idxs[], __u32 want)  __attribute__((nonnull (1,2)));
     85extern void cfa_io_submit( struct $io_context * in_ctx, __u32 in_idxs[], __u32 have, bool lazy ) __attribute__((nonnull (1,2)));
    8686
    8787//----------
  • libcfa/src/concurrency/kernel.cfa

    r4520b77e r12df6fe  
    305305        RUNNING:  while(true) {
    306306                thrd_dst->preempted = __NO_PREEMPTION;
     307                thrd_dst->state = Active;
    307308
    308309                // Update global state
    309310                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;
    315311
    316312                /* paranoid */ verify( ! __preemption_enabled() );
     
    339335                /* paranoid */ verify( ! __preemption_enabled() );
    340336
     337                // Reset global state
     338                kernelTLS().this_thread = 0p;
     339
    341340                // We just finished running a thread, there are a few things that could have happened.
    342341                // 1 - Regular case : the thread has blocked and now one has scheduled it yet.
     
    347346
    348347                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 
    353348                        // The thread was preempted, reschedule it and reset the flag
    354349                        schedule_thread$( thrd_dst, UNPARK_LOCAL );
     
    357352
    358353                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 
    363354                        // The thread has halted, it should never be scheduled/run again
    364355                        // finish the thread
     
    369360                /* paranoid */ verify( thrd_dst->state == Active );
    370361                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;
    375362
    376363                // set state of processor coroutine to active and the thread to inactive
  • libcfa/src/concurrency/kernel.hfa

    r4520b77e r12df6fe  
    3535// I/O
    3636struct cluster;
    37 struct io_context$;
    38 struct io_arbiter$;
     37struct $io_context;
     38struct $io_arbiter;
    3939
    4040struct io_context_params {
     
    8383
    8484// Wrapper around kernel threads
    85 struct __attribute__((aligned(64))) processor {
     85struct __attribute__((aligned(128))) processor {
    8686        // Cluster from which to get threads
    8787        struct cluster * cltr;
     
    113113
    114114        struct {
    115                 io_context$ * ctx;
     115                $io_context * ctx;
    116116                unsigned target;
    117117                volatile bool pending;
     
    171171
    172172// Intrusives lanes which are used by the ready queue
    173 union __attribute__((aligned(64))) __intrusive_lane_t;
     173struct __attribute__((aligned(128))) __intrusive_lane_t;
    174174void  ?{}(__intrusive_lane_t & this);
    175175void ^?{}(__intrusive_lane_t & this);
    176176
    177177// Aligned timestamps which are used by the ready queue and io subsystem
    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; }
     178struct __attribute__((aligned(128))) __timestamp_t {
     179        volatile unsigned long long tv;
     180        volatile unsigned long long ma;
     181};
     182
     183static inline void  ?{}(__timestamp_t & this) { this.tv = 0; this.ma = 0; }
    187184static inline void ^?{}(__timestamp_t &) {}
    188185
     
    215212//-----------------------------------------------------------------------------
    216213// Cluster
    217 struct __attribute__((aligned(64))) cluster {
     214struct __attribute__((aligned(128))) cluster {
    218215        struct {
    219216                struct {
     
    230227                struct {
    231228                        // Array of $io_
    232                         io_context$ ** data;
     229                        $io_context ** data;
    233230
    234231                        // Time since subqueues were processed
     
    267264
    268265        struct {
    269                 io_arbiter$ * arbiter;
     266                $io_arbiter * arbiter;
    270267                io_context_params params;
    271268        } io;
  • libcfa/src/concurrency/kernel/cluster.cfa

    r4520b77e r12df6fe  
    9393//=======================================================================
    9494void  ?{}(__scheduler_RWLock_t & this) {
    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));
     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));
    103103
    104104}
    105105void ^?{}(__scheduler_RWLock_t & this) {
    106         free(this.lock.data);
     106        free(this.data);
    107107}
    108108
     
    110110//=======================================================================
    111111// Lock-Free registering/unregistering of threads
    112 unsigned register_proc_id( void ) with(__scheduler_lock.lock) {
     112unsigned register_proc_id( void ) with(*__scheduler_lock) {
    113113        __kernel_rseq_register();
    114114
     
    132132        }
    133133
    134         if(max <= alloc) abort("Trying to create more than %ud processors", __scheduler_lock.lock.max);
     134        if(max <= alloc) abort("Trying to create more than %ud processors", __scheduler_lock->max);
    135135
    136136        // Step - 2 : F&A to get a new spot in the array.
    137137        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.lock.max);
     138        if(max <= n) abort("Trying to create more than %ud processors", __scheduler_lock->max);
    139139
    140140        // Step - 3 : Mark space as used and then publish it.
     
    154154}
    155155
    156 void unregister_proc_id( unsigned id ) with(__scheduler_lock.lock) {
     156void unregister_proc_id( unsigned id ) with(*__scheduler_lock) {
    157157        /* paranoid */ verify(id < ready);
    158158        /* paranoid */ verify(id == kernelTLS().sched_id);
     
    169169// Writer side : acquire when changing the ready queue, e.g. adding more
    170170//  queues or removing them.
    171 uint_fast32_t ready_mutate_lock( void ) with(__scheduler_lock.lock) {
     171uint_fast32_t ready_mutate_lock( void ) with(*__scheduler_lock) {
    172172        /* paranoid */ verify( ! __preemption_enabled() );
    173173
     
    196196}
    197197
    198 void ready_mutate_unlock( uint_fast32_t last_s ) with(__scheduler_lock.lock) {
     198void ready_mutate_unlock( uint_fast32_t last_s ) with(*__scheduler_lock) {
    199199        /* paranoid */ verify( ! __preemption_enabled() );
    200200
     
    229229                        for( idx ; lanes_count ) {
    230230                                __intrusive_lane_t & sl = readyQ.data[idx];
    231                                 assert(!readyQ.data[idx].l.lock);
     231                                assert(!readyQ.data[idx].lock);
    232232
    233233                                        if(is_empty(sl)) {
    234                                                 assert( sl.l.anchor.next == 0p );
    235                                                 assert( sl.l.anchor.ts   == MAX );
    236                                                 assert( mock_head(sl)  == sl.l.prev );
     234                                                assert( sl.anchor.next == 0p );
     235                                                assert( sl.anchor.ts   == MAX );
     236                                                assert( mock_head(sl)  == sl.prev );
    237237                                        } else {
    238                                                 assert( sl.l.anchor.next != 0p );
    239                                                 assert( sl.l.anchor.ts   != MAX );
    240                                                 assert( mock_head(sl)  != sl.l.prev );
     238                                                assert( sl.anchor.next != 0p );
     239                                                assert( sl.anchor.ts   != MAX );
     240                                                assert( mock_head(sl)  != sl.prev );
    241241                                        }
    242242                        }
     
    249249static inline void fix(__intrusive_lane_t & ll) {
    250250        if(is_empty(ll)) {
    251                 verify(ll.l.anchor.next == 0p);
    252                 ll.l.prev = mock_head(ll);
     251                verify(ll.anchor.next == 0p);
     252                ll.prev = mock_head(ll);
    253253        }
    254254}
     
    278278
    279279#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) {
    281281                processor * it = &list`first;
    282282                while(it) {
     
    299299        tscs = alloc(count, tscs`realloc);
    300300        for(i; count) {
    301                 tscs[i].t.tv = rdtscl();
    302                 tscs[i].t.ma = 0;
     301                tscs[i].tv = rdtscl();
     302                tscs[i].ma = 0;
    303303        }
    304304}
     
    400400                for( idx; ncount ~ ocount) {
    401401                        // Lock is not strictly needed but makes checking invariants much easier
    402                         __attribute__((unused)) bool locked = __atomic_try_acquire(&readyQ.data[idx].l.lock);
     402                        __attribute__((unused)) bool locked = __atomic_try_acquire(&readyQ.data[idx].lock);
    403403                        verify(locked);
    404404
     
    418418
    419419                        // Unlock the lane
    420                         __atomic_unlock(&readyQ.data[idx].l.lock);
     420                        __atomic_unlock(&readyQ.data[idx].lock);
    421421
    422422                        // TODO print the queue statistics here
     
    467467}
    468468
    469 #define nested_offsetof(type, field) ((off_t)(&(((type*)0)-> field)))
    470 
    471469// Ctor
    472470void ?{}( __intrusive_lane_t & this ) {
    473         this.l.lock = false;
    474         this.l.prev = mock_head(this);
    475         this.l.anchor.next = 0p;
    476         this.l.anchor.ts   = MAX;
     471        this.lock = false;
     472        this.prev = mock_head(this);
     473        this.anchor.next = 0p;
     474        this.anchor.ts   = MAX;
    477475        #if !defined(__CFA_NO_STATISTICS__)
    478                 this.l.cnt  = 0;
     476                this.cnt  = 0;
    479477        #endif
    480478
    481479        // We add a boat-load of assertions here because the anchor code is very fragile
    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   );
     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   );
    487485        /* paranoid */ verify( mock_head(this)->link.next == 0p );
    488486        /* paranoid */ verify( mock_head(this)->link.ts   == MAX );
    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
     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}
    496492
    497493// Dtor is trivial
    498494void ^?{}( __intrusive_lane_t & this ) {
    499495        // Make sure the list is empty
    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 );
     496        /* paranoid */ verify( this.anchor.next == 0p );
     497        /* paranoid */ verify( this.anchor.ts   == MAX );
     498        /* paranoid */ verify( mock_head(this)  == this.prev );
    503499}
    504500
  • libcfa/src/concurrency/kernel/cluster.hfa

    r4520b77e r12df6fe  
    2424// Calc moving average based on existing average, before and current time.
    2525static 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 );
    2628        /* paranoid */ verifyf( old_avg < 15000000000000, "Suspiciously large previous average: %'llu (%llx)\n", old_avg, old_avg );
    2729
     
    3739        if (ts_next == ULLONG_MAX) return;
    3840        unsigned long long now = rdtscl();
    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);
     41        unsigned long long pma = __atomic_load_n(&tscs[ idx ].ma, __ATOMIC_RELAXED);
     42        __atomic_store_n(&tscs[ idx ].tv, ts_next, __ATOMIC_RELAXED);
     43        __atomic_store_n(&tscs[ idx ].ma, moving_average(now, ts_prev, pma), __ATOMIC_RELAXED);
    4244}
    4345
     
    5961                if(ptsc != ULLONG_MAX) {
    6062                        /* paranoid */ verify( start + i < count );
    61                         unsigned long long tsc = moving_average(ctsc, ptsc, tscs[start + i].t.ma);
     63                        unsigned long long tsc = moving_average(ctsc, ptsc, tscs[start + i].ma);
    6264                        if(tsc > max) max = tsc;
    6365                }
  • libcfa/src/concurrency/kernel/fwd.hfa

    r4520b77e r12df6fe  
    3535extern "C" {
    3636        extern "Cforall" {
    37                 extern __attribute__((aligned(64))) __thread struct KernelThreadData {
     37                extern __attribute__((aligned(128))) thread_local struct KernelThreadData {
    3838                        struct thread$          * volatile this_thread;
    3939                        struct processor        * volatile this_processor;
  • libcfa/src/concurrency/kernel/private.hfa

    r4520b77e r12df6fe  
    8888#elif defined(CFA_HAVE_LINUX_RSEQ_H)
    8989        extern "Cforall" {
    90                 extern __attribute__((aligned(64))) __thread volatile struct rseq __cfaabi_rseq;
     90                extern __attribute__((aligned(128))) thread_local volatile struct rseq __cfaabi_rseq;
    9191        }
    9292#else
     
    139139//-----------------------------------------------------------------------------
    140140// I/O
    141 io_arbiter$ * create(void);
    142 void destroy(io_arbiter$ *);
     141$io_arbiter * create(void);
     142void destroy($io_arbiter *);
    143143
    144144//=======================================================================
     
    161161// Blocking acquire
    162162static inline void __atomic_acquire(volatile bool * ll) {
    163         /* paranoid */ verify( ! __preemption_enabled() );
    164         /* paranoid */ verify(ll);
    165 
    166163        while( __builtin_expect(__atomic_exchange_n(ll, (bool)true, __ATOMIC_SEQ_CST), false) ) {
    167164                while(__atomic_load_n(ll, (int)__ATOMIC_RELAXED))
     
    169166        }
    170167        /* paranoid */ verify(*ll);
    171         /* paranoid */ verify( ! __preemption_enabled() );
    172168}
    173169
    174170// Non-Blocking acquire
    175171static inline bool __atomic_try_acquire(volatile bool * ll) {
    176         /* paranoid */ verify( ! __preemption_enabled() );
    177         /* paranoid */ verify(ll);
    178 
    179172        return !__atomic_exchange_n(ll, (bool)true, __ATOMIC_SEQ_CST);
    180173}
     
    182175// Release
    183176static inline void __atomic_unlock(volatile bool * ll) {
    184         /* paranoid */ verify( ! __preemption_enabled() );
    185         /* paranoid */ verify(ll);
    186177        /* paranoid */ verify(*ll);
    187178        __atomic_store_n(ll, (bool)false, __ATOMIC_RELEASE);
     
    193184// have been hard-coded to for the ready-queue for
    194185// simplicity and performance
    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];
     186struct __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;
    216202};
    217203
     
    219205void ^?{}(__scheduler_RWLock_t & this);
    220206
    221 extern __scheduler_RWLock_t __scheduler_lock;
     207extern __scheduler_RWLock_t * __scheduler_lock;
    222208
    223209//-----------------------------------------------------------------------
    224210// Reader side : acquire when using the ready queue to schedule but not
    225211//  creating/destroying queues
    226 static inline void ready_schedule_lock(void) with(__scheduler_lock.lock) {
     212static inline void ready_schedule_lock(void) with(*__scheduler_lock) {
    227213        /* paranoid */ verify( ! __preemption_enabled() );
    228214        /* paranoid */ verify( ! kernelTLS().in_sched_lock );
     
    249235}
    250236
    251 static inline void ready_schedule_unlock(void) with(__scheduler_lock.lock) {
     237static inline void ready_schedule_unlock(void) with(*__scheduler_lock) {
    252238        /* paranoid */ verify( ! __preemption_enabled() );
    253239        /* paranoid */ verify( data[kernelTLS().sched_id] == &kernelTLS().sched_lock );
     
    270256
    271257        static inline bool ready_mutate_islocked() {
    272                 return __scheduler_lock.lock.write_lock;
     258                return __scheduler_lock->write_lock;
    273259        }
    274260#endif
  • libcfa/src/concurrency/kernel/startup.cfa

    r4520b77e r12df6fe  
    113113KERNEL_STORAGE(thread$,              mainThread);
    114114KERNEL_STORAGE(__stack_t,            mainThreadCtx);
    115 // KERNEL_STORAGE(__scheduler_RWLock_t, __scheduler_lock);
     115KERNEL_STORAGE(__scheduler_RWLock_t, __scheduler_lock);
    116116KERNEL_STORAGE(eventfd_t,            mainIdleEventFd);
    117117KERNEL_STORAGE(io_future_t,          mainIdleFuture);
     
    123123processor            * mainProcessor;
    124124thread$              * mainThread;
     125__scheduler_RWLock_t * __scheduler_lock;
    125126
    126127extern "C" {
     
    133134//-----------------------------------------------------------------------------
    134135// Global state
    135 __thread struct KernelThreadData __cfaabi_tls __attribute__ ((tls_model ( "initial-exec" ))) @= {
     136thread_local struct KernelThreadData __cfaabi_tls __attribute__ ((tls_model ( "initial-exec" ))) @= {
    136137        NULL,                                                                                           // cannot use 0p
    137138        NULL,
     
    147148};
    148149
    149 __scheduler_RWLock_t __scheduler_lock @= { 0 };
    150 
    151150#if   defined(CFA_HAVE_LINUX_LIBRSEQ)
    152151        // No data needed
    153152#elif defined(CFA_HAVE_LINUX_RSEQ_H)
    154153        extern "Cforall" {
    155                 __attribute__((aligned(64))) __thread volatile struct rseq __cfaabi_rseq @= {
     154                __attribute__((aligned(128))) thread_local volatile struct rseq __cfaabi_rseq @= {
    156155                        .cpu_id : RSEQ_CPU_ID_UNINITIALIZED,
    157156                };
     
    199198
    200199        // Initialize the global scheduler lock
    201         // __scheduler_lock = (__scheduler_RWLock_t*)&storage___scheduler_lock;
    202         (__scheduler_lock){};
     200        __scheduler_lock = (__scheduler_RWLock_t*)&storage___scheduler_lock;
     201        (*__scheduler_lock){};
    203202
    204203        // Initialize the main cluster
     
    337336        ^(*mainCluster){};
    338337
    339         ^(__scheduler_lock){};
     338        ^(*__scheduler_lock){};
    340339
    341340        ^(__cfa_dbg_global_clusters.list){};
  • libcfa/src/concurrency/preemption.cfa

    r4520b77e r12df6fe  
    238238//----------
    239239// special case for preemption since used often
    240 __attribute__((optimize("no-reorder-blocks"))) bool __preemption_enabled() libcfa_nopreempt libcfa_public {
     240__attribute__((optimize("no-reorder-blocks"))) bool __preemption_enabled() libcfa_public {
    241241        // create a assembler label before
    242242        // marked as clobber all to avoid movement
     
    272272}
    273273
    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 
    289274
    290275//----------
    291276// Get data from the TLS block
    292277// struct asm_region __cfaasm_get;
    293 uintptr_t __cfatls_get( unsigned long int offset ) libcfa_nopreempt libcfa_public; //no inline to avoid problems
     278uintptr_t __cfatls_get( unsigned long int offset ) __attribute__((__noinline__, visibility("default"))); //no inline to avoid problems
    294279uintptr_t __cfatls_get( unsigned long int offset ) {
    295280        // create a assembler label before
     
    310295extern "C" {
    311296        // Disable interrupts by incrementing the counter
    312         void disable_interrupts() libcfa_nopreempt libcfa_public {
     297        __attribute__((__noinline__, visibility("default"))) void disable_interrupts() libcfa_public {
    313298                // create a assembler label before
    314299                // marked as clobber all to avoid movement
     
    341326        // Enable interrupts by decrementing the counter
    342327        // If counter reaches 0, execute any pending __cfactx_switch
    343         void enable_interrupts( bool poll ) libcfa_nopreempt libcfa_public {
     328        void enable_interrupts( bool poll ) libcfa_public {
    344329                // Cache the processor now since interrupts can start happening after the atomic store
    345330                processor   * proc = __cfaabi_tls.this_processor;
     
    373358                }
    374359        }
    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         }
    398360}
    399361
     
    501463
    502464//-----------------------------------------------------------------------------
     465// Some assembly required
     466#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        #else
     477                #define RELOC_PREFIX "$"
     478                #define RELOC_SUFFIX ""
     479        #endif
     480        #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        #else
     496                #define RELOC_PREFIX "$"
     497                #define RELOC_SUFFIX ""
     498        #endif
     499        #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 gcc
     512                #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        #else
     525                #error this is not the right thing to do
     526                /*
     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        #endif
     541#else
     542        #error unknown hardware architecture
     543#endif
     544
    503545// KERNEL ONLY
    504546// Check if a __cfactx_switch signal handler shoud defer
     
    506548// If false : preemption is unsafe and marked as pending
    507549static inline bool preemption_ready( void * ip ) {
     550        // Get all the region for which it is not safe to preempt
     551        __cfaasm_label( get    );
     552        __cfaasm_label( check  );
     553        __cfaasm_label( dsable );
     554        // __cfaasm_label( debug  );
     555
    508556        // Check if preemption is safe
    509557        bool ready = true;
    510         if( __cfaabi_in( ip, __libcfa_nopreempt ) ) { ready = false; goto EXIT; };
    511         if( __cfaabi_in( ip, __libcfathrd_nopreempt ) ) { ready = false; goto EXIT; };
    512 
     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; };
    513562        if( !__cfaabi_tls.preemption_state.enabled) { ready = false; goto EXIT; };
    514563        if( __cfaabi_tls.preemption_state.in_progress ) { ready = false; goto EXIT; };
     
    594643// Kernel Signal Handlers
    595644//=============================================================================================
    596 __cfaabi_dbg_debug_do( static __thread void * last_interrupt = 0; )
     645__cfaabi_dbg_debug_do( static thread_local void * last_interrupt = 0; )
    597646
    598647// Context switch signal handler
  • libcfa/src/concurrency/ready_queue.cfa

    r4520b77e r12df6fe  
    8181                                /* paranoid */ verify( i < lanes_count );
    8282                                // If we can't lock it retry
    83                         } while( !__atomic_try_acquire( &readyQ.data[i].l.lock ) );
     83                        } while( !__atomic_try_acquire( &readyQ.data[i].lock ) );
    8484                } else {
    8585                        do {
    8686                                i = __tls_rand() % lanes_count;
    87                         } while( !__atomic_try_acquire( &readyQ.data[i].l.lock ) );
     87                        } while( !__atomic_try_acquire( &readyQ.data[i].lock ) );
    8888                }
    8989        } else {
     
    9393                        /* paranoid */ verify( i < lanes_count );
    9494                        // If we can't lock it retry
    95                 } while( !__atomic_try_acquire( &readyQ.data[i].l.lock ) );
     95                } while( !__atomic_try_acquire( &readyQ.data[i].lock ) );
    9696        }
    9797
     
    100100
    101101        // Unlock and return
    102         __atomic_unlock( &readyQ.data[i].l.lock );
     102        __atomic_unlock( &readyQ.data[i].lock );
    103103
    104104        #if !defined(__CFA_NO_STATISTICS__)
     
    136136        else {
    137137                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.tv);
    139                 /* paranoid */ verify( readyQ.tscs[target].t.tv != ULLONG_MAX );
     138                __cfadbg_print_safe(ready_queue, "Kernel : %u considering helping %u, tcsc %llu\n", this, target, readyQ.tscs[target].tv);
     139                /* paranoid */ verify( readyQ.tscs[target].tv != ULLONG_MAX );
    140140                if(target < lanes_count) {
    141141                        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.tv, readyQ.tscs[target].t.ma);
     142                        const unsigned long long age = moving_average(ctsc, readyQ.tscs[target].tv, readyQ.tscs[target].ma);
    143143                        __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");
    144144                        if(age > cutoff) {
     
    188188
    189189        // If we can't get the lock retry
    190         if( !__atomic_try_acquire(&lane.l.lock) ) {
     190        if( !__atomic_try_acquire(&lane.lock) ) {
    191191                return 0p;
    192192        }
     
    194194        // If list is empty, unlock and retry
    195195        if( is_empty(lane) ) {
    196                 __atomic_unlock(&lane.l.lock);
     196                __atomic_unlock(&lane.lock);
    197197                return 0p;
    198198        }
     
    206206        /* paranoid */ verify(thrd);
    207207        /* paranoid */ verify(ts_next);
    208         /* paranoid */ verify(lane.l.lock);
     208        /* paranoid */ verify(lane.lock);
    209209
    210210        // Unlock and return
    211         __atomic_unlock(&lane.l.lock);
     211        __atomic_unlock(&lane.lock);
    212212
    213213        // Update statistics
  • libcfa/src/concurrency/ready_subqueue.hfa

    r4520b77e r12df6fe  
    66
    77// Intrusives lanes which are used by the relaxed ready queue
    8 union __attribute__((aligned(64))) __intrusive_lane_t {
    9         struct {
    10                 struct thread$ * prev;
     8struct __attribute__((aligned(128))) __intrusive_lane_t {
     9        struct thread$ * prev;
    1110
    12                 // spin lock protecting the queue
    13                 volatile bool lock;
     11        // spin lock protecting the queue
     12        volatile bool lock;
    1413
    15                 __thread_desc_link anchor;
     14        __thread_desc_link anchor;
    1615
    17                 #if !defined(__CFA_NO_STATISTICS__)
    18                         unsigned cnt;
    19                 #endif
    20         } l;
    21         char __padding[192];
     16        #if !defined(__CFA_NO_STATISTICS__)
     17                unsigned cnt;
     18        #endif
    2219};
    2320
     
    2522static inline thread$ * mock_head(const __intrusive_lane_t & this) {
    2623        thread$ * rhead = (thread$ *)(
    27                 (uintptr_t)( &this.l.anchor ) - __builtin_offsetof( thread$, link )
     24                (uintptr_t)( &this.anchor ) - __builtin_offsetof( thread$, link )
    2825        );
    2926        return rhead;
     
    3330// returns true of lane was empty before push, false otherwise
    3431static inline void push( __intrusive_lane_t & this, thread$ * node ) {
    35         /* paranoid */ verify( this.l.lock );
     32        /* paranoid */ verify( this.lock );
    3633        /* paranoid */ verify( node->link.next == 0p );
    3734        /* paranoid */ verify( __atomic_load_n(&node->link.ts, __ATOMIC_RELAXED) == MAX  );
    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 ) );
     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 ) );
    4542        } else {
    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 ) );
     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 ) );
    5047        }
    5148
    5249        // Get the relevant nodes locally
    53         this.l.prev->link.next = node;
    54         __atomic_store_n(&this.l.prev->link.ts, rdtscl(), __ATOMIC_RELAXED);
    55         this.l.prev = node;
     50        this.prev->link.next = node;
     51        __atomic_store_n(&this.prev->link.ts, rdtscl(), __ATOMIC_RELAXED);
     52        this.prev = node;
    5653        #if !defined(__CFA_NO_STATISTICS__)
    57                 this.l.cnt++;
     54                this.cnt++;
    5855        #endif
    5956}
     
    6360// returns true of lane was empty before push, false otherwise
    6461static inline [* thread$, unsigned long long] pop( __intrusive_lane_t & this ) {
    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   );
     62        /* paranoid */ verify( this.lock );
     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   );
    6966
    7067        // Get the relevant nodes locally
    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;
     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;
    7572        node->link.next = 0p;
    7673        __atomic_store_n(&node->link.ts, ULLONG_MAX, __ATOMIC_RELAXED);
    7774        #if !defined(__CFA_NO_STATISTICS__)
    78                 this.l.cnt--;
     75                this.cnt--;
    7976        #endif
    8077
    8178        // Update head time stamp
    82         if(is_empty) this.l.prev = mock_head( this );
     79        if(is_empty) this.prev = mock_head( this );
    8380
    84         unsigned long long ats = __atomic_load_n(&this.l.anchor.ts, __ATOMIC_RELAXED);
     81        unsigned long long ats = __atomic_load_n(&this.anchor.ts, __ATOMIC_RELAXED);
    8582        /* paranoid */ verify( node->link.next == 0p );
    8683        /* paranoid */ verify( __atomic_load_n(&node->link.ts , __ATOMIC_RELAXED) == MAX );
     
    9390// Check whether or not list is empty
    9491static inline bool is_empty(__intrusive_lane_t & this) {
    95         return this.l.anchor.next == 0p;
     92        return this.anchor.next == 0p;
    9693}
    9794
     
    9996static inline unsigned long long ts(__intrusive_lane_t & this) {
    10097        // Cannot verify 'emptiness' here since it may not be locked
    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);
     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);
    104101}
  • libcfa/src/concurrency/stats.cfa

    r4520b77e r12df6fe  
    4646                        stats->io.submit.fast       = 0;
    4747                        stats->io.submit.slow       = 0;
    48                         stats->io.submit.eagr       = 0;
    49                         stats->io.submit.nblk       = 0;
    5048                        stats->io.flush.external    = 0;
    5149                        stats->io.flush.dirty       = 0;
     
    118116                        tally_one( &cltr->io.submit.fast      , &proc->io.submit.fast       );
    119117                        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       );
    122118                        tally_one( &cltr->io.flush.external   , &proc->io.flush.external    );
    123119                        tally_one( &cltr->io.flush.dirty      , &proc->io.flush.dirty       );
     
    201197                                        sstr | "fast," | eng3(io.submit.slow) | "slow (" | ws(3, 3, avgfasts) | "%)" | nonl;
    202198                                }
    203                                 sstr | " - eager" | eng3(io.submit.eagr) | nonl;
    204                                 sstr | " - no-wait" | eng3(io.submit.nblk) | nonl;
    205199                                sstr | nl;
    206200
  • libcfa/src/concurrency/stats.hfa

    r4520b77e r12df6fe  
    9292                                volatile uint64_t fast;
    9393                                volatile uint64_t slow;
    94                                 volatile uint64_t eagr;
    95                                 volatile uint64_t nblk;
    9694                        } submit;
    9795                        struct {
     
    132130        #endif
    133131
    134         struct __attribute__((aligned(64))) __stats_t {
     132        struct __attribute__((aligned(128))) __stats_t {
    135133                __stats_readyQ_t ready;
    136134                #if defined(CFA_HAVE_LINUX_IO_URING_H)
  • libcfa/src/iostream.cfa

    r4520b77e r12df6fe  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Aug 25 18:05:49 2022
    13 // Update Count     : 1354
     12// Last Modified On : Wed Jan 19 08:15:53 2022
     13// Update Count     : 1352
    1414//
    1515
     
    197197                        fmt( os, "%s", buf ); \
    198198                        if ( isfinite( val ) ) { /* if number, print decimal point when no fraction or exponent */ \
    199                                 for ( i; 0 ~ @ ) { \
     199                                for ( int i = 0;; i += 1 ) { \
    200200                                        if ( i == len ) { fmt( os, "." ); break; } \
    201201                                        if ( buf[i] == '.' || buf[i] == 'e' || buf[i] == 'E' ) break; /* decimal point or scientific ? */ \
  • libcfa/src/rational.cfa

    r4520b77e r12df6fe  
    1010// Created On       : Wed Apr  6 17:54:28 2016
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Aug 25 18:09:58 2022
    13 // Update Count     : 194
     12// Last Modified On : Tue Jul 20 16:30:06 2021
     13// Update Count     : 193
    1414//
    1515
     
    2626        // rationals.  alternative: https://en.wikipedia.org/wiki/Binary_GCD_algorithm
    2727        static T gcd( T a, T b ) {
    28                 for () {                                                                                // Euclid's algorithm
     28                for ( ;; ) {                                                                    // Euclid's algorithm
    2929                        T r = a % b;
    3030                  if ( r == (T){0} ) break;
     
    246246
    247247        // find terms until denom gets too big
    248         for () {
     248        for ( ;; ) {
    249249                ai = convert( f );
    250250          if ( ! (m10 * ai + m11 <= md) ) break;
  • libcfa/src/startup.cfa

    r4520b77e r12df6fe  
    4141        } // __cfaabi_appready_shutdown
    4242
    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         };
     43        void disable_interrupts() __attribute__(( weak )) libcfa_public {}
     44        void enable_interrupts() __attribute__(( weak )) libcfa_public {}
    5445
    5546
  • libcfa/src/stdlib.cfa

    r4520b77e r12df6fe  
    1010// Created On       : Thu Jan 28 17:10:29 2016
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Aug 25 22:41:14 2022
    13 // Update Count     : 604
     12// Last Modified On : Thu Feb 10 22:41:39 2022
     13// Update Count     : 602
    1414//
    1515
     
    3535T * anew( size_t dim, TT p ) {
    3636        T * arr = alloc( dim );
    37         for ( i; dim ) {
     37        for ( unsigned int i = 0; i < dim; i += 1 ) {
    3838                (arr[i]){ p };                                                                  // run constructor
    3939        } // for
     
    4545        if ( arr ) {                                                                            // ignore null
    4646                size_t dim = malloc_size( arr ) / sizeof( T );
    47                 for ( i; 0 -~= dim - 1 ) {                                              // reverse allocation order, must be unsigned
     47                for ( int i = dim - 1; i >= 0; i -= 1 ) {               // reverse allocation order, must be unsigned
    4848                        ^(arr[i]){};                                                            // run destructor
    4949                } // for
     
    5656        if ( arr ) {                                                                            // ignore null
    5757                size_t dim = malloc_size( arr ) / sizeof( T );
    58                 for ( i; 0 -~= dim - 1 ) {                                              // reverse allocation order, must be unsigned
     58                for ( int i = dim - 1; i >= 0; i -= 1 ) {               // reverse allocation order, must be unsigned
    5959                        ^(arr[i]){};                                                            // run destructor
    6060                } // for
  • libcfa/src/stdlib.hfa

    r4520b77e r12df6fe  
    1010// Created On       : Thu Jan 28 17:12:35 2016
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Aug 25 18:07:06 2022
    13 // Update Count     : 645
     12// Last Modified On : Mon Apr 18 17:57:36 2022
     13// Update Count     : 644
    1414//
    1515
     
    192192                        memset( (char *)ptr + copy_end, (int)Fill.c, Dim * size - copy_end );
    193193                } else if ( Fill.tag == 't' ) {
    194                         for ( i; copy_end ~ Dim * size ~ size ) {
     194                        for ( int i = copy_end; i < Dim * size; i += size ) {
    195195                                #pragma GCC diagnostic push
    196196                                #pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
  • src/AST/Decl.hpp

    r4520b77e r12df6fe  
    108108        ObjectDecl( const CodeLocation & loc, const std::string & name, const Type * type,
    109109                const Init * init = nullptr, Storage::Classes storage = {},
    110                 Linkage::Spec linkage = Linkage::Cforall, const Expr * bitWd = nullptr,
     110                Linkage::Spec linkage = Linkage::C, const Expr * bitWd = nullptr,
    111111                std::vector< ptr<Attribute> > && attrs = {}, Function::Specs fs = {} )
    112112        : DeclWithType( loc, name, storage, linkage, std::move(attrs), fs ), type( type ),
     
    143143        FunctionDecl( const CodeLocation & loc, const std::string & name, std::vector<ptr<TypeDecl>>&& forall,
    144144                std::vector<ptr<DeclWithType>>&& params, std::vector<ptr<DeclWithType>>&& returns,
    145                 CompoundStmt * stmts, Storage::Classes storage = {}, Linkage::Spec linkage = Linkage::Cforall,
     145                CompoundStmt * stmts, Storage::Classes storage = {}, Linkage::Spec linkage = Linkage::C,
    146146                std::vector<ptr<Attribute>>&& attrs = {}, Function::Specs fs = {}, bool isVarArgs = false);
    147147
     
    149149                std::vector<ptr<TypeDecl>>&& forall, std::vector<ptr<DeclWithType>>&& assertions,
    150150                std::vector<ptr<DeclWithType>>&& params, std::vector<ptr<DeclWithType>>&& returns,
    151                 CompoundStmt * stmts, Storage::Classes storage = {}, Linkage::Spec linkage = Linkage::Cforall,
     151                CompoundStmt * stmts, Storage::Classes storage = {}, Linkage::Spec linkage = Linkage::C,
    152152                std::vector<ptr<Attribute>>&& attrs = {}, Function::Specs fs = {}, bool isVarArgs = false);
    153153
     
    217217
    218218        /// convenience accessor to match Type::isComplete()
    219         bool isComplete() const { return sized; }
     219        bool isComplete() { return sized; }
    220220
    221221        const Decl * accept( Visitor & v ) const override { return v.visit( this ); }
  • src/AST/DeclReplacer.cpp

    r4520b77e r12df6fe  
    99// Author           : Aaron B. Moss
    1010// Created On       : Wed May 8 13:00:00 2019
    11 // Last Modified By : Andrew Beach
    12 // Last Modified On : Thr Sep 15 11:55:00 2022
    13 // Update Count     : 2
     11// Last Modified By : Aaron B. Moss
     12// Last Modified On : Wed May 8 13:00:00 2019
     13// Update Count     : 1
    1414//
    1515
    1616#include "DeclReplacer.hpp"
     17#include "Expr.hpp"
     18#include "Type.hpp"
    1719
    18 #include "Expr.hpp"
    1920#include "Pass.hpp"
    20 #include "Type.hpp"
    2121
    2222namespace ast {
    2323
    2424namespace DeclReplacer {
     25        namespace {
     26                struct DeclReplacer {
     27                private:
     28                        const DeclMap & declMap;
     29                        const TypeMap & typeMap;
     30                        bool debug;
    2531
    26 namespace {
    27         struct DeclReplacer {
    28         private:
    29                 const DeclMap & declMap;
    30                 const TypeMap & typeMap;
    31                 bool debug;
     32                public:
     33                        DeclReplacer(const DeclMap & declMap, const TypeMap & typeMap, bool debug)
     34                                : declMap( declMap ), typeMap( typeMap ), debug( debug )
     35                        {}
    3236
    33         public:
    34                 DeclReplacer( const DeclMap & declMap, const TypeMap & typeMap, bool debug )
    35                         : declMap( declMap ), typeMap( typeMap ), debug( debug )
    36                 {}
     37                        const ast::VariableExpr * previsit( const ast::VariableExpr * );
     38                        const ast::TypeInstType * previsit( const ast::TypeInstType * );
     39                };
    3740
    38                 const ast::VariableExpr * previsit( const ast::VariableExpr * );
    39                 const ast::TypeInstType * previsit( const ast::TypeInstType * );
    40         };
     41                struct VarExprReplacer {
     42                private:
     43                        const ExprMap & exprMap;
     44                       
     45                public:
     46                        VarExprReplacer(const ExprMap & exprMap): exprMap (exprMap) {}
    4147
    42         struct VarExprReplacer {
    43         private:
    44                 const ExprMap & exprMap;
     48                        const Expr * postvisit (const VariableExpr *);
     49                };
     50        }
    4551
    46         public:
    47                 VarExprReplacer( const ExprMap & exprMap ) : exprMap( exprMap ) {}
     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 );
     56        }
    4857
    49                 const Expr * postvisit( const VariableExpr * );
    50         };
    51 } // namespace
     58        const ast::Node * replace( const ast::Node * node, const DeclMap & declMap, bool debug ) {
     59                TypeMap typeMap;
     60                return replace( node, declMap, typeMap, debug );
     61        }
    5262
    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 );
     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        }
     67
     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        }
    57113}
    58114
    59 const ast::Node * replace( const ast::Node * node, const DeclMap & declMap, bool debug ) {
    60         TypeMap typeMap;
    61         return replace( node, declMap, typeMap, debug );
    62115}
    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;
    90         }
    91 
    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;
    105         }
    106 
    107         const Expr * VarExprReplacer::postvisit( const VariableExpr * expr ) {
    108                 if ( !exprMap.count( expr->var ) ) return expr;
    109                 return exprMap.at( expr->var );
    110         }
    111 } // namespace
    112 
    113 } // namespace DeclReplacer
    114 
    115 } // namespace ast
    116116
    117117// Local Variables: //
  • src/AST/Pass.hpp

    r4520b77e r12df6fe  
    328328struct PureVisitor {};
    329329
    330 struct WithCodeLocation {
    331         const CodeLocation * location = nullptr;
    332 };
    333 
    334330/// Keep track of the polymorphic const TypeSubstitution * typeSubs for the current expression.
    335331struct WithConstTypeSubstitution {
  • src/AST/Pass.impl.hpp

    r4520b77e r12df6fe  
    2525#define VISIT_START( node ) \
    2626        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 ); \
    2927        /* back-up the visit children */ \
    3028        __attribute__((unused)) ast::__pass::visit_children_guard guard1( ast::__pass::visit_children(core, 0) ); \
     
    599597                        guard_symtab guard { *this };
    600598                        // 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.
    602599                        static ast::ptr< ast::ObjectDecl > func{ new ast::ObjectDecl{
    603600                                CodeLocation{}, "__func__",
     
    605602                                        new ast::BasicType{ ast::BasicType::Char, ast::CV::Const },
    606603                                        nullptr, VariableLen, DynamicDim
    607                                 },
    608                                 nullptr,
    609                                 ast::Storage::Classes(),
    610                                 ast::Linkage::C,
     604                                }
    611605                        } };
    612606                        __pass::symtab::addId( core, 0, func );
  • src/AST/Pass.proto.hpp

    r4520b77e r12df6fe  
    326326        }
    327327
    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 
    341328        // Another feature of the templated visitor is that it calls beginScope()/endScope() for compound statement.
    342329        // All passes which have such functions are assumed desire this behaviour
  • src/AST/Print.cpp

    r4520b77e r12df6fe  
    3333{
    3434        return array<C,sizeof...(T)>{
    35                 std::forward<T>(values)...
     35                forward<T>(values)...
    3636        };
    3737}
     
    8686
    8787                static constexpr auto StorageClasses = make_array<const char*>(
    88                         "extern", "static", "auto", "register", "__thread", "_Thread_local"
     88                        "extern", "static", "auto", "register", "_Thread_local"
    8989                );
    9090
     
    215215                        ++indent;
    216216                        ptrToEnum->base->accept( *this );
    217                         --indent;
     217                        --indent; 
    218218                }
    219219
     
    16341634// if the wrong size is specified
    16351635constexpr array<const char*, 3> Printer::Names::FuncSpecifiers;
    1636 constexpr array<const char*, 6> Printer::Names::StorageClasses;
     1636constexpr array<const char*, 5> Printer::Names::StorageClasses;
    16371637constexpr array<const char*, 6> Printer::Names::Qualifiers;
    16381638}
  • src/AST/StorageClasses.hpp

    r4520b77e r12df6fe  
    2424        /// Bitflags for storage classes
    2525        enum {
    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
     26                Extern      = 1 << 0,
     27                Static      = 1 << 1,
     28                Auto        = 1 << 2,
     29                Register    = 1 << 3,
     30                ThreadLocal = 1 << 4,
     31                NumClasses       = 5
    3332        };
    3433
     
    3837                        unsigned int val;
    3938                        struct {
    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;
     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;
    4644                        };
    4745
     
    5048
    5149                constexpr class_flags( unsigned int val = 0 ) : val(val) {}
    52 
    53                 bool is_threadlocal_any() { return this->is_threadlocalC11 || this->is_threadlocalGcc; }
    5450        };
    5551
  • src/AST/Type.cpp

    r4520b77e r12df6fe  
    143143TraitInstType::TraitInstType(
    144144        const TraitDecl * b, CV::Qualifiers q, std::vector<ptr<Attribute>>&& as )
    145 : BaseInstType( b->name, q, std::move(as) ), base( b ) {}
     145: BaseInstType( b->name, q, move(as) ), base( b ) {}
    146146
    147147// --- TypeInstType
     
    149149TypeInstType::TypeInstType( const TypeDecl * b,
    150150        CV::Qualifiers q, std::vector<ptr<Attribute>> && as )
    151 : BaseInstType( b->name, q, std::move(as) ), base( b ), kind( b->kind ) {}
     151: BaseInstType( b->name, q, move(as) ), base( b ), kind( b->kind ) {}
    152152
    153153void TypeInstType::set_base( const TypeDecl * b ) {
     
    161161
    162162TupleType::TupleType( std::vector<ptr<Type>> && ts, CV::Qualifiers q )
    163 : Type( q ), types( std::move(ts) ), members() {
     163: Type( q ), types( move(ts) ), members() {
    164164        // This constructor is awkward. `TupleType` needs to contain objects so that members can be
    165165        // named, but members without initializer nodes end up getting constructors, which breaks
  • src/AST/Type.hpp

    r4520b77e r12df6fe  
    8383template< enum Node::ref_type ref_t >
    8484void reset_qualifiers( ptr_base< Type, ref_t > & p, CV::Qualifiers q = {} ) {
    85         if ( p->qualifiers != q ) p.get_and_mutate()->qualifiers = q;
     85        if ( p->qualifiers.val != q.val ) p.get_and_mutate()->qualifiers = q;
    8686}
    8787
     
    8989template< enum Node::ref_type ref_t >
    9090void add_qualifiers( ptr_base< Type, ref_t > & p, CV::Qualifiers q ) {
    91         if ( ( p->qualifiers & q ) != q ) p.get_and_mutate()->qualifiers |= q;
     91        if ( ( p->qualifiers.val & q.val ) != q.val ) p.get_and_mutate()->qualifiers |= q;
    9292}
    9393
     
    9595template< enum Node::ref_type ref_t >
    9696void remove_qualifiers( ptr_base< Type, ref_t > & p, CV::Qualifiers q ) {
    97         if ( ( p->qualifiers & q ) != 0 ) p.get_and_mutate()->qualifiers -= q;
     97        if ( ( p->qualifiers.val & q.val ) != 0 ) p.get_and_mutate()->qualifiers -= q;
    9898}
    9999
  • src/Common/Eval.cc

    r4520b77e r12df6fe  
    1010// Created On       : Mon May 18 07:44:20 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Aug  6 12:11:59 2022
    13 // Update Count     : 119
     12// Last Modified On : Fri Jul  1 08:41:03 2022
     13// Update Count     : 117
    1414//
    1515
     
    217217                                value = arg1.first * arg2.first;
    218218                        } else if (fname == "?/?") {
    219                                 if ( arg2.first ) value = arg1.first / arg2.first;
     219                                value = arg1.first / arg2.first;
    220220                        } else if (fname == "?%?") {
    221                                 if ( arg2.first ) value = arg1.first % arg2.first;
     221                                value = arg1.first % arg2.first;
    222222                        } else if (fname == "?<<?") {
    223223                                value = arg1.first << arg2.first;
  • src/Common/ScopedMap.h

    r4520b77e r12df6fe  
    1010// Created On       : Wed Dec 2 11:37:00 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Feb 15 08:41:28 2022
    13 // Update Count     : 5
     12// Last Modified On : Mon May 21 15:22:40 2018
     13// Update Count     : 3
    1414//
    1515
     
    3636
    3737                template<typename N>
    38                 Scope(N && n) : map(), note(std::forward<N>(n)) {}
     38                Scope(N&& n) : map(), note(std::forward<N>(n)) {}
    3939               
    4040                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;
    4545        };
    4646        typedef std::vector< Scope > ScopeList;
     
    5858        typedef typename MapType::const_pointer const_pointer;
    5959
    60         class iterator : public std::iterator< std::bidirectional_iterator_tag, value_type > {
     60        class iterator : public std::iterator< std::bidirectional_iterator_tag,
     61                                               value_type > {
    6162        friend class ScopedMap;
    6263        friend class const_iterator;
     
    7172
    7273                /// Increments on invalid
    73                 iterator & next_valid() {
     74                iterator& next_valid() {
    7475                        if ( ! is_valid() ) { ++(*this); }
    7576                        return *this;
     
    7778
    7879                /// Decrements on invalid
    79                 iterator & prev_valid() {
     80                iterator& prev_valid() {
    8081                        if ( ! is_valid() ) { --(*this); }
    8182                        return *this;
    8283                }
    8384
    84                 iterator(scope_list & _scopes, const wrapped_iterator & _it, size_type inLevel)
     85                iterator(scope_list &_scopes, const wrapped_iterator &_it, size_type inLevel)
    8586                        : scopes(&_scopes), it(_it), level(inLevel) {}
    8687        public:
    87                 iterator(const iterator & that) : scopes(that.scopes), it(that.it), level(that.level) {}
    88                 iterator & operator= (const iterator & that) {
     88                iterator(const iterator &that) : scopes(that.scopes), it(that.it), level(that.level) {}
     89                iterator& operator= (const iterator &that) {
    8990                        scopes = that.scopes; level = that.level; it = that.it;
    9091                        return *this;
     
    9495                pointer operator-> () const { return it.operator->(); }
    9596
    96                 iterator & operator++ () {
     97                iterator& operator++ () {
    9798                        if ( it == (*scopes)[level].map.end() ) {
    9899                                if ( level == 0 ) return *this;
     
    106107                iterator operator++ (int) { iterator tmp = *this; ++(*this); return tmp; }
    107108
    108                 iterator & operator-- () {
     109                iterator& operator-- () {
    109110                        // may fail if this is the begin iterator; allowed by STL spec
    110111                        if ( it == (*scopes)[level].map.begin() ) {
     
    117118                iterator operator-- (int) { iterator tmp = *this; --(*this); return tmp; }
    118119
    119                 bool operator== (const iterator & that) const {
     120                bool operator== (const iterator &that) const {
    120121                        return scopes == that.scopes && level == that.level && it == that.it;
    121122                }
    122                 bool operator!= (const iterator & that) const { return !( *this == that ); }
     123                bool operator!= (const iterator &that) const { return !( *this == that ); }
    123124
    124125                size_type get_level() const { return level; }
    125126
    126                 Note & get_note() { return (*scopes)[level].note; }
    127                 const Note & get_note() const { return (*scopes)[level].note; }
     127                Note& get_note() { return (*scopes)[level].note; }
     128                const Note& get_note() const { return (*scopes)[level].note; }
    128129
    129130        private:
     
    147148
    148149                /// Increments on invalid
    149                 const_iterator & next_valid() {
     150                const_iterator& next_valid() {
    150151                        if ( ! is_valid() ) { ++(*this); }
    151152                        return *this;
     
    153154
    154155                /// Decrements on invalid
    155                 const_iterator & prev_valid() {
     156                const_iterator& prev_valid() {
    156157                        if ( ! is_valid() ) { --(*this); }
    157158                        return *this;
    158159                }
    159160
    160                 const_iterator(scope_list const & _scopes, const wrapped_const_iterator & _it, size_type inLevel)
     161                const_iterator(scope_list const &_scopes, const wrapped_const_iterator &_it, size_type inLevel)
    161162                        : scopes(&_scopes), it(_it), level(inLevel) {}
    162163        public:
    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) {
     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) {
    166167                        scopes = that.scopes; level = that.level; it = that.it;
    167168                        return *this;
    168169                }
    169                 const_iterator & operator= (const const_iterator & that) {
     170                const_iterator& operator= (const const_iterator &that) {
    170171                        scopes = that.scopes; level = that.level; it = that.it;
    171172                        return *this;
     
    175176                const_pointer operator-> () { return it.operator->(); }
    176177
    177                 const_iterator & operator++ () {
     178                const_iterator& operator++ () {
    178179                        if ( it == (*scopes)[level].map.end() ) {
    179180                                if ( level == 0 ) return *this;
     
    187188                const_iterator operator++ (int) { const_iterator tmp = *this; ++(*this); return tmp; }
    188189
    189                 const_iterator & operator-- () {
     190                const_iterator& operator-- () {
    190191                        // may fail if this is the begin iterator; allowed by STL spec
    191192                        if ( it == (*scopes)[level].map.begin() ) {
     
    198199                const_iterator operator-- (int) { const_iterator tmp = *this; --(*this); return tmp; }
    199200
    200                 bool operator== (const const_iterator & that) const {
     201                bool operator== (const const_iterator &that) const {
    201202                        return scopes == that.scopes && level == that.level && it == that.it;
    202203                }
    203                 bool operator!= (const const_iterator & that) const { return !( *this == that ); }
     204                bool operator!= (const const_iterator &that) const { return !( *this == that ); }
    204205
    205206                size_type get_level() const { return level; }
    206207
    207                 const Note & get_note() const { return (*scopes)[level].note; }
     208                const Note& get_note() const { return (*scopes)[level].note; }
    208209
    209210        private:
     
    220221        // Starts a new scope with the given note
    221222        template<typename N>
    222         void beginScope( N && n ) {
     223        void beginScope( N&& n ) {
    223224                scopes.emplace_back( std::forward<N>(n) );
    224225        }
     
    235236        /// Constructs with a given note on the outermost scope
    236237        template<typename N>
    237         ScopedMap( N && n ) : scopes() { beginScope(std::forward<N>(n)); }
     238        ScopedMap( N&& n ) : scopes() { beginScope(std::forward<N>(n)); }
    238239
    239240        iterator begin() { return iterator(scopes, scopes.back().map.begin(), currentScope()).next_valid(); }
     
    248249
    249250        /// Gets the note at the given scope
    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; }
     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; }
    254255
    255256        /// Finds the given key in the outermost scope it occurs; returns end() for none such
    256         iterator find( const Key & key ) {
     257        iterator find( const Key &key ) {
    257258                for ( size_type i = scopes.size() - 1; ; --i ) {
    258259                        typename MapType::iterator val = scopes[i].map.find( key );
     
    262263                return end();
    263264        }
    264         const_iterator find( const Key & key ) const {
     265        const_iterator find( const Key &key ) const {
    265266                        return const_iterator( const_cast< ScopedMap< Key, Value, Note >* >(this)->find( key ) );
    266267        }
    267268
    268269        /// Finds the given key in the provided scope; returns end() for none such
    269         iterator findAt( size_type scope, const Key & key ) {
     270        iterator findAt( size_type scope, const Key& key ) {
    270271                typename MapType::iterator val = scopes[scope].map.find( key );
    271272                if ( val != scopes[scope].map.end() ) return iterator( scopes, val, scope );
    272273                return end();
    273274        }
    274         const_iterator findAt( size_type scope, const Key & key ) const {
     275        const_iterator findAt( size_type scope, const Key& key ) const {
    275276                return const_iterator( const_cast< ScopedMap< Key, Value, Note >* >(this)->findAt( scope, key ) );
    276277        }
    277278
    278279        /// Finds the given key in the outermost scope inside the given scope where it occurs
    279         iterator findNext( const_iterator & it, const Key & key ) {
     280        iterator findNext( const_iterator &it, const Key &key ) {
    280281                if ( it.level == 0 ) return end();
    281282                for ( size_type i = it.level - 1; ; --i ) {
     
    286287                return end();
    287288        }
    288         const_iterator findNext( const_iterator & it, const Key & key ) const {
     289        const_iterator findNext( const_iterator &it, const Key &key ) const {
    289290                        return const_iterator( const_cast< ScopedMap< Key, Value, Note >* >(this)->findNext( it, key ) );
    290291        }
     
    292293        /// Inserts the given key-value pair into the outermost scope
    293294        template< typename value_type_t >
    294         std::pair< iterator, bool > insert( value_type_t && value ) {
     295        std::pair< iterator, bool > insert( value_type_t&& value ) {
    295296                std::pair< typename MapType::iterator, bool > res = scopes.back().map.insert( std::forward<value_type_t>( value ) );
    296297                return std::make_pair( iterator(scopes, std::move( res.first ), scopes.size()-1), std::move( res.second ) );
     
    298299
    299300        template< typename value_type_t >
    300         std::pair< iterator, bool > insert( iterator at, value_type_t && value ) {
    301                 MapType & scope = (*at.scopes)[ at.level ].map;
     301        std::pair< iterator, bool > insert( iterator at, value_type_t&& value ) {
     302                MapType& scope = (*at.scopes)[ at.level ].map;
    302303                std::pair< typename MapType::iterator, bool > res = scope.insert( std::forward<value_type_t>( value ) );
    303304                return std::make_pair( iterator(scopes, std::move( res.first ), at.level), std::move( res.second ) );
     
    305306
    306307        template< typename value_t >
    307         std::pair< iterator, bool > insert( const Key & key, value_t && value ) { return insert( std::make_pair( key, std::forward<value_t>( value ) ) ); }
     308        std::pair< iterator, bool > insert( const Key &key, value_t&& value ) { return insert( std::make_pair( key, std::forward<value_t>( value ) ) ); }
    308309
    309310        template< typename value_type_t >
    310         std::pair< iterator, bool > insertAt( size_type scope, value_type_t && value ) {
     311        std::pair< iterator, bool > insertAt( size_type scope, value_type_t&& value ) {
    311312                std::pair< typename MapType::iterator, bool > res = scopes.at(scope).map.insert( std::forward<value_type_t>( value ) );
    312313                return std::make_pair( iterator(scopes, std::move( res.first ), scope), std::move( res.second ) );
     
    314315
    315316        template< typename value_t >
    316         std::pair< iterator, bool > insertAt( size_type scope, const Key & key, value_t && value ) {
     317        std::pair< iterator, bool > insertAt( size_type scope, const Key& key, value_t&& value ) {
    317318                return insertAt( scope, std::make_pair( key, std::forward<value_t>( value ) ) );
    318319        }
    319320
    320         Value & operator[] ( const Key & key ) {
     321        Value& operator[] ( const Key &key ) {
    321322                iterator slot = find( key );
    322323                if ( slot != end() ) return slot->second;
     
    325326
    326327        iterator erase( iterator pos ) {
    327                 MapType & scope = (*pos.scopes)[ pos.level ].map;
    328                 const typename iterator::wrapped_iterator & new_it = scope.erase( pos.it );
     328                MapType& scope = (*pos.scopes)[ pos.level ].map;
     329                const typename iterator::wrapped_iterator& new_it = scope.erase( pos.it );
    329330                iterator it( *pos.scopes, new_it, pos.level );
    330331                return it.next_valid();
    331332        }
    332333
    333         size_type count( const Key & key ) const {
     334        size_type count( const Key &key ) const {
    334335                size_type c = 0;
    335336                auto it = find( key );
     
    343344                return c;
    344345        }
     346
    345347};
    346348
  • src/Common/utility.h

    r4520b77e r12df6fe  
    322322
    323323        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; }
    326324        ~ValueGuardPtr() { if( ref ) *ref = old; }
    327325};
  • src/CompilationState.cc

    r4520b77e r12df6fe  
    3131        genproto = false,
    3232        deterministic_output = false,
    33         useNewAST = true,
     33        useNewAST = CFA_USE_NEW_AST,
    3434        nomainp = false,
    3535        parsep = false,
  • src/Concurrency/Keywords.cc

    r4520b77e r12df6fe  
    508508                ObjectDecl * vtable_object = Virtual::makeVtableForward(
    509509                        "_default_vtable_object_declaration",
    510                         vtable_decl->makeInst( std::move( poly_args ) ) );
     510                        vtable_decl->makeInst( move( poly_args ) ) );
    511511                declsToAddBefore.push_back( vtable_object );
    512512                declsToAddBefore.push_back(
     
    681681                        void lock (monitor_t & this) {
    682682                                lock(get_monitor(this));
    683                         }
     683                        }       
    684684                */
    685685                FunctionDecl * lock_decl = new FunctionDecl(
     
    700700                CompoundStmt * lock_statement = new CompoundStmt();
    701701                lock_statement->push_back(
    702                         new ExprStmt(
     702                        new ExprStmt( 
    703703                                new UntypedExpr (
    704704                                        new NameExpr( "lock" ),
     
    716716                        void unlock (monitor_t & this) {
    717717                                unlock(get_monitor(this));
    718                         }
     718                        }       
    719719                */
    720720                FunctionDecl * unlock_decl = new FunctionDecl(
     
    736736
    737737                unlock_statement->push_back(
    738                         new ExprStmt(
     738                        new ExprStmt( 
    739739                                new UntypedExpr(
    740740                                        new NameExpr( "unlock" ),
     
    746746                );
    747747                unlock_decl->set_statements( unlock_statement );
    748 
     748               
    749749                // pushes routines to declsToAddAfter to add at a later time
    750750                declsToAddAfter.push_back( lock_decl );
     
    10541054                        assert( !thread_guard_decl );
    10551055                        thread_guard_decl = decl;
    1056                 }
     1056                } 
    10571057                else if ( decl->name == "__mutex_stmt_lock_guard" && decl->body ) {
    10581058                        assert( !lock_guard_decl );
     
    12061206                                                        new NameExpr( "__get_mutexstmt_lock_type" ),
    12071207                                                        { args.front()->clone() }
    1208                                                 )
     1208                                                ) 
    12091209                                        )
    12101210                                ),
     
    12251225
    12261226                StructInstType * lock_guard_struct = new StructInstType( noQualifiers, lock_guard_decl );
    1227                 TypeExpr * lock_type_expr = new TypeExpr(
     1227                TypeExpr * lock_type_expr = new TypeExpr( 
    12281228                        new TypeofType( noQualifiers, new UntypedExpr(
    12291229                                new NameExpr( "__get_mutexstmt_lock_type" ),
    12301230                                { args.front()->clone() }
    1231                                 )
    1232                         )
     1231                                ) 
     1232                        ) 
    12331233                );
    12341234
  • src/Concurrency/KeywordsNew.cpp

    r4520b77e r12df6fe  
    398398                        new ast::ReferenceType( vtable_object->type, ast::CV::Const ),
    399399                        new ast::SingleInit( location,
    400                                 new ast::VariableExpr( location, vtable_object ) )
     400                                new ast::VariableExpr( location, vtable_object ) ),
     401                        ast::Storage::Classes(),
     402                        ast::Linkage::Cforall
    401403                )
    402404        );
     
    469471                location,
    470472                "this",
    471                 new ast::ReferenceType( new ast::StructInstType( decl ) )
     473                new ast::ReferenceType( new ast::StructInstType( decl ) ),
     474                nullptr,
     475                ast::Storage::Classes(),
     476                ast::Linkage::Cforall
    472477        );
    473478
     
    475480                location,
    476481                "ret",
    477                 new ast::PointerType( new ast::StructInstType( type_decl ) )
     482                new ast::PointerType( new ast::StructInstType( type_decl ) ),
     483                nullptr,
     484                ast::Storage::Classes(),
     485                ast::Linkage::Cforall
    478486        );
    479487
     
    522530                location,
    523531                field_name,
    524                 new ast::StructInstType( type_decl )
     532                new ast::StructInstType( type_decl ),
     533                nullptr,
     534                ast::Storage::Classes(),
     535                ast::Linkage::Cforall
    525536        );
    526537
     
    566577                location,
    567578                "this",
    568                 new ast::ReferenceType( new ast::StructInstType( decl ) )
     579                new ast::ReferenceType( new ast::StructInstType( decl ) ),
     580                nullptr,
     581                ast::Storage::Classes(),
     582                ast::Linkage::Cforall
    569583        );
    570584
     
    10631077                                ) }
    10641078                        )
    1065                 )
     1079                ),
     1080                ast::Storage::Classes(),
     1081                ast::Linkage::Cforall
    10661082        );
    10671083
     
    10911107                                {},
    10921108                                ast::MaybeConstruct
    1093                         )
     1109                        ),
     1110                        ast::Storage::Classes(),
     1111                        ast::Linkage::Cforall
    10941112                ))
    10951113        );
     
    11431161                                }
    11441162                        )
    1145                 )
     1163                ),
     1164                ast::Storage::Classes(),
     1165                ast::Linkage::Cforall
    11461166        );
    11471167
     
    11701190                                {},
    11711191                                ast::MaybeConstruct
    1172                         )
     1192                        ),
     1193                        ast::Storage::Classes(),
     1194                        ast::Linkage::Cforall
    11731195                ))
    11741196        );
     
    12741296                                }
    12751297                        )
    1276                 )
     1298                ),
     1299                ast::Storage::Classes(),
     1300                ast::Linkage::Cforall
    12771301        );
    12781302
     
    13461370                                        {},
    13471371                                        ast::MaybeConstruct
    1348                                 )
     1372                                ),
     1373                                ast::Storage::Classes(),
     1374                                ast::Linkage::Cforall
    13491375                        )
    13501376                )
     
    14871513                                {},
    14881514                                ast::MaybeConstruct
    1489                         )
     1515                        ),
     1516                        ast::Storage::Classes(),
     1517                        ast::Linkage::Cforall
    14901518                )
    14911519        ));
  • src/Concurrency/WaitforNew.cpp

    r4520b77e r12df6fe  
    101101namespace {
    102102
    103 class GenerateWaitForCore final :
     103class GenerateWaitForCore :
    104104                public ast::WithSymbolTable, public ast::WithConstTranslationUnit {
    105105        const ast::FunctionDecl * decl_waitfor    = nullptr;
  • src/ControlStruct/ExceptDeclNew.cpp

    r4520b77e r12df6fe  
    110110                "parent",
    111111                new ast::PointerType(
    112                         new ast::StructInstType( "__cfavir_type_info", ast::CV::Const ) )
     112                        new ast::StructInstType( "__cfavir_type_info", ast::CV::Const ) ),
     113                nullptr,
     114                ast::Storage::Classes(),
     115                ast::Linkage::Cforall
    113116        ) );
    114117        decl->body = true;
     
    163166                location,
    164167                "__cfavir_typeid",
    165                 new ast::PointerType( typeIdType )
     168                new ast::PointerType( typeIdType ),
     169                nullptr,
     170                ast::Storage::Classes(),
     171                ast::Linkage::Cforall
    166172        );
    167173        ast::ObjectDecl * size = new ast::ObjectDecl(
    168174                location,
    169175                "size",
    170                 new ast::TypeInstType( "size_t", ast::TypeDecl::Dtype )
     176                new ast::TypeInstType( "size_t", ast::TypeDecl::Dtype ),
     177                nullptr,
     178                ast::Storage::Classes(),
     179                ast::Linkage::Cforall
    171180        );
    172181        ast::ObjectDecl * copy = new ast::ObjectDecl(
    173182                location,
    174183                "copy",
    175                 new ast::PointerType( createCopyFuncType( exceptionName, params ) )
     184                new ast::PointerType( createCopyFuncType( exceptionName, params ) ),
     185                nullptr,
     186                ast::Storage::Classes(),
     187                ast::Linkage::Cforall
    176188        );
    177189        ast::ObjectDecl * dtor = new ast::ObjectDecl(
    178190                location,
    179191                "^?{}",
    180                 new ast::PointerType( createDtorFuncType( exceptionName, params ) )
     192                new ast::PointerType( createDtorFuncType( exceptionName, params ) ),
     193                nullptr,
     194                ast::Storage::Classes(),
     195                ast::Linkage::Cforall
    181196        );
    182197        ast::ObjectDecl * msg = new ast::ObjectDecl(
    183198                location,
    184199                "msg",
    185                 new ast::PointerType( createMsgFuncType( exceptionName, params ) )
     200                new ast::PointerType( createMsgFuncType( exceptionName, params ) ),
     201                nullptr,
     202                ast::Storage::Classes(),
     203                ast::Linkage::Cforall
    186204        );
    187205        ast::StructDecl * decl = new ast::StructDecl(
     
    211229                "virtual_table",
    212230                new ast::PointerType(
    213                         createVTableInstType( exceptionName, params ) )
     231                        createVTableInstType( exceptionName, params ) ),
     232                nullptr,
     233                ast::Storage::Classes(),
     234                ast::Linkage::Cforall
    214235        ) );
    215236        for ( ast::ptr<ast::Decl> const & member : members ) {
     
    268289                                "this",
    269290                                new ast::PointerType(
    270                                         createExceptionInstType( exceptionName, params ) )
     291                                        createExceptionInstType( exceptionName, params ) ),
     292                                nullptr,
     293                                ast::Storage::Classes(),
     294                                ast::Linkage::Cforall
    271295                        ),
    272296                        new ast::ObjectDecl(
     
    274298                                "that",
    275299                                new ast::PointerType(
    276                                         createExceptionInstType( exceptionName, params ) )
     300                                        createExceptionInstType( exceptionName, params ) ),
     301                                nullptr,
     302                                ast::Storage::Classes(),
     303                                ast::Linkage::Cforall
    277304                        ),
    278305                },
    279306                {
    280                         new ast::ObjectDecl( location, "", new ast::VoidType() ),
     307                        new ast::ObjectDecl(
     308                                location,
     309                                "",
     310                                new ast::VoidType(),
     311                                nullptr,
     312                                ast::Storage::Classes(),
     313                                ast::Linkage::Cforall
     314                        ),
    281315                },
    282316                new ast::CompoundStmt( location, {
     
    332366                                "this",
    333367                                new ast::PointerType(
    334                                         createExceptionInstType( exceptionName, params ) )
     368                                        createExceptionInstType( exceptionName, params ) ),
     369                                nullptr,
     370                                ast::Storage::Classes(),
     371                                ast::Linkage::Cforall
    335372                        ),
    336373                },
     
    340377                                "",
    341378                                new ast::PointerType(
    342                                         new ast::BasicType( ast::BasicType::Char, ast::CV::Const ) )
     379                                        new ast::BasicType( ast::BasicType::Char, ast::CV::Const ) ),
     380                                nullptr,
     381                                ast::Storage::Classes(),
     382                                ast::Linkage::Cforall
    343383                        ),
    344384                },
     
    392432                tableName,
    393433                createVTableInstType( exceptionName, params ),
    394                 new ast::ListInit( location, std::move( inits ), std::move( dsigs ) )
     434                new ast::ListInit( location, std::move( inits ), std::move( dsigs ) ),
     435                ast::Storage::Classes(),
     436                ast::Linkage::Cforall
    395437        );
    396438}
  • src/ControlStruct/ExceptTranslateNew.cpp

    r4520b77e r12df6fe  
    3232        }
    3333
    34 class TranslateThrowsCore final : public ast::WithGuards {
     34class TranslateThrowsCore : public ast::WithGuards {
    3535        const ast::ObjectDecl * terminateHandlerExcept;
    3636        enum Context { NoHandler, TerHandler, ResHandler } currentContext;
     
    136136
    137137
    138 class TryMutatorCore final {
     138class TryMutatorCore {
    139139        // The built in types used in translation.
    140140        const ast::StructDecl * except_decl;
     
    190190                location,
    191191                "__handler_index",
    192                 new ast::BasicType( ast::BasicType::SignedInt )
     192                new ast::BasicType(ast::BasicType::SignedInt),
     193                nullptr, //init
     194                ast::Storage::Classes{},
     195                ast::Linkage::Cforall
    193196                );
    194197}
     
    200203                location,
    201204                "__exception_inst",
    202                 new ast::PointerType( new ast::StructInstType( except_decl ) )
     205                new ast::PointerType(
     206                        new ast::StructInstType( except_decl )
     207                        ),
     208                nullptr, //init
     209                ast::Storage::Classes{},
     210                ast::Linkage::Cforall
    203211                );
    204212}
  • src/ControlStruct/LabelFixer.cc

    r4520b77e r12df6fe  
    119119
    120120// Builds a table that maps a label to its defining statement.
    121 std::map<Label, Statement * > * LabelFixer::resolveJumps() {
     121std::map<Label, Statement * > * LabelFixer::resolveJumps() throw ( SemanticErrorException ) {
    122122        std::map< Label, Statement * > *ret = new std::map< Label, Statement * >();
    123123        for ( std::map< Label, Entry * >::iterator i = labelTable.begin(); i != labelTable.end(); ++i ) {
  • src/ControlStruct/LabelFixer.h

    r4520b77e r12df6fe  
    3333        LabelFixer( LabelGenerator *gen = 0 );
    3434
    35         std::map < Label, Statement * > *resolveJumps();
     35        std::map < Label, Statement * > *resolveJumps() throw ( SemanticErrorException );
    3636
    3737        // Declarations
  • src/ControlStruct/MLEMutator.cc

    r4520b77e r12df6fe  
    141141
    142142
    143         Statement *MultiLevelExitMutator::postmutate( BranchStmt *branchStmt ) {
     143        Statement *MultiLevelExitMutator::postmutate( BranchStmt *branchStmt )
     144                        throw ( SemanticErrorException ) {
    144145                std::string originalTarget = branchStmt->originalTarget;
    145146
  • src/ControlStruct/MLEMutator.h

    r4520b77e r12df6fe  
    4141
    4242                void premutate( CompoundStmt *cmpndStmt );
    43                 Statement * postmutate( BranchStmt *branchStmt );
     43                Statement * postmutate( BranchStmt *branchStmt ) throw ( SemanticErrorException );
    4444                void premutate( WhileDoStmt *whileDoStmt );
    4545                Statement * postmutate( WhileDoStmt *whileDoStmt );
  • src/GenPoly/GenPoly.cc

    r4520b77e r12df6fe  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Andrew Beach
    12 // Last Modified On : Wed Sep 14  9:24:00 2022
    13 // Update Count     : 15
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Wed Jun 29 21:45:53 2016
     13// Update Count     : 14
    1414//
    1515
     
    8383                }
    8484
    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 
    9685                /// Checks a parameter list for inclusion of polymorphic parameters; will substitute according to env if present
    9786                bool includesPolyParams( std::list< Expression* >& params, const TypeSubstitution *env ) {
     
    209198                }
    210199                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;
    231200        }
    232201
     
    409378                inline D* as( B* p ) { return reinterpret_cast<D*>(p); }
    410379
    411                 template<typename D, typename B>
    412                 inline D const * as( B const * p ) {
    413                         return reinterpret_cast<D const *>( p );
    414                 }
    415 
    416380                /// Flattens a declaration list
    417381                template<typename Output>
     
    427391                        for ( Type* ty : src ) {
    428392                                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 );
    436393                        }
    437394                }
     
    452409                                // if ( is<VoidType>( aparam->get_type() ) || is<VoidType>( bparam->get_type() ) ) continue;
    453410                                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                                 }
    479411                        }
    480412
     
    573505        }
    574506
    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 
    687507        namespace {
    688508                // temporary hack to avoid re-implementing anything related to TyVarMap
  • src/GenPoly/GenPoly.h

    r4520b77e r12df6fe  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Andrew Beach
    12 // Last Modified On : Fri Aug 19 16:03:00 2022
    13 // Update Count     : 8
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Sat Jul 22 09:22:57 2017
     13// Update Count     : 7
    1414//
    1515
     
    2727namespace GenPoly {
    2828
    29         // TODO Via some tricks this works for ast::TypeDecl::Data as well.
    3029        typedef ErasableScopedMap< std::string, TypeDecl::Data > TyVarMap;
    31 
    3230        /// Replaces a TypeInstType by its referrent in the environment, if applicable
    3331        Type* replaceTypeInst( Type* type, const TypeSubstitution* env );
     
    4341        /// returns dynamic-layout type if is dynamic-layout type in tyVars, NULL otherwise; will look up substitution in env if provided
    4442        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 );
    4643
    4744        /// true iff function has dynamic-layout return type under the given type variable map
     
    8683        /// true iff types are structurally identical, where TypeInstType's match any type.
    8784        bool typesPolyCompatible( Type *aty, Type *bty );
    88         bool typesPolyCompatible( ast::Type const * lhs, ast::Type const * rhs );
    8985
    9086        /// true if arg requires boxing given exprTyVars
  • src/GenPoly/InstantiateGeneric.h

    r4520b77e r12df6fe  
    1919
    2020class Declaration;
    21 namespace ast {
    22         class TranslationUnit;
    23 }
    2421
    2522namespace GenPoly {
    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 );
     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 );
    3227} // namespace GenPoly
    3328
  • src/GenPoly/ScrubTyVars.cc

    r4520b77e r12df6fe  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Andrew Beach
    12 // Last Modified On : Fri Aug 19 16:10:00 2022
    13 // Update Count     : 4
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Thu Mar 16 15:44:27 2017
     13// Update Count     : 3
    1414//
    1515
    1616#include <utility>                      // for pair
    1717
    18 #include "AST/Pass.hpp"
    1918#include "GenPoly.h"                    // for mangleType, TyVarMap, alignof...
    2019#include "GenPoly/ErasableScopedMap.h"  // for ErasableScopedMap<>::const_it...
    2120#include "ScrubTyVars.h"
    22 #include "SymTab/Mangler.h"             // for mangle, typeMode
    2321#include "SynTree/Declaration.h"        // for TypeDecl, TypeDecl::Data, Typ...
    2422#include "SynTree/Expression.h"         // for Expression (ptr only), NameExpr
     
    114112                return pointer;
    115113        }
    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 
    274114} // namespace GenPoly
    275115
  • src/GenPoly/ScrubTyVars.h

    r4520b77e r12df6fe  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Andrew Beach
    12 // Last Modified On : Fri Aug 19 14:14:00 2022
    13 // Update Count     : 3
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Sat Jul 22 09:21:47 2017
     13// Update Count     : 2
    1414//
    1515
     
    1818#include <cassert>            // for assert
    1919
    20 #include "AST/Fwd.hpp"        // for Node
    2120#include "Common/PassVisitor.h"
    2221#include "GenPoly.h"          // for TyVarMap, isPolyType, isDynType
     
    109108        }
    110109
    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 
    121110} // namespace GenPoly
    122111
  • src/GenPoly/Specialize.h

    r4520b77e r12df6fe  
    55// file "LICENCE" distributed with Cforall.
    66//
    7 // Specialize.h -- Generate thunks to specialize polymorphic functions.
     7// Specialize.h --
    88//
    99// Author           : Richard C. Bilson
     
    1717
    1818#include <list>  // for list
     19#include "AST/TranslationUnit.hpp"
    1920
    2021class Declaration;
    21 namespace ast {
    22         class TranslationUnit;
    23 }
    2422
    2523namespace GenPoly {
  • src/GenPoly/SpecializeNew.cpp

    r4520b77e r12df6fe  
    55// file "LICENCE" distributed with Cforall.
    66//
    7 // SpecializeNew.cpp -- Generate thunks to specialize polymorphic functions.
     7// SpecializeNew.cpp --
    88//
    99// Author           : Andrew Beach
     
    201201                        *formal, *actual, getInferredParams( expr ) );
    202202        }
     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        //}
    203208        return mut;
    204209}
     
    222227}
    223228
    224 // Restructures arguments to match the structure of the formal parameters
    225 // of the actual function. Returns the next structured argument.
     229// Restructures the arguments to match the structure of the formal parameters
     230// of the actual function. [begin, end) are the exploded arguments.
     231template<typename Iterator, typename OutIterator>
     232void 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
    226247template<typename Iterator>
    227248const ast::Expr * structureArg(
    228249                const CodeLocation& location, const ast::ptr<ast::Type> & type,
    229250                Iterator & begin, const Iterator & end ) {
    230         if ( auto tuple = type.as<ast::TupleType>() ) {
     251        if ( auto tuple = type->as<ast::TupleType>() ) {
    231252                std::vector<ast::ptr<ast::Expr>> exprs;
    232                 for ( const ast::ptr<ast::Type> & t : *tuple ) {
     253                for ( const ast::Type * t : *tuple ) {
    233254                        exprs.push_back( structureArg( location, t, begin, end ) );
    234255                }
     
    239260        }
    240261}
    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 };
     262#endif
     263
     264namespace {
     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}
    257280
    258281const ast::Expr * SpecializeCore::createThunkFunction(
     
    268291                // Must replace only occurrences of type variables
    269292                // that occure free in the thunk's type.
     293                //ast::TypeSubstitution::ApplyResult<ast::FunctionType>
     294                //      typeSubs->applyFree( newType );
    270295                auto result = typeSubs->applyFree( newType );
    271296                newType = result.node.release();
     
    275300        using DeclVector = std::vector<ast::ptr<ast::TypeDecl>>;
    276301
     302        //const std::string & thunkName = thunkNamer.newName();
     303        //UniqueName paramNamer(thunkName + "Param");
    277304        UniqueName paramNamer( paramPrefix );
    278305
     306        //auto toParamDecl = [&location, &paramNamer]( const ast::Type * type ) {
     307        //      return new ast::ObjectDecl(
     308        //              location, paramNamer.newName(), ast::deepCopy( type ) );
     309        //};
     310
    279311        // Create new thunk with same signature as formal type.
     312
     313        // std::map<const ast::TypeDecl *, std::pair<int, int>> typeMap;
    280314        ast::Pass<TypeInstFixer> fixer;
    281315        for (const auto & kv : newType->forall) {
    282316                if (fixer.core.typeMap.count(kv->base)) {
    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;
     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;
    287319                        assertf(false, "multiple formals in specialize");
    288320                }
     
    290322                        fixer.core.typeMap[kv->base] = std::make_pair(kv->expr_id, kv->formal_usage);
    291323                }
    292         }
     324        } 
    293325
    294326        ast::CompoundStmt * thunkBody = new ast::CompoundStmt( location );
     
    313345                );
    314346
     347        // thunkFunc->accept(fixer);
    315348        thunkFunc->fixUniqueId();
     349
     350
    316351
    317352        // Thunks may be generated and not used, avoid them.
     
    340375                // Name each thunk parameter and explode it.
    341376                // These are then threaded back into the actual function call.
     377                //param->name = paramNamer.newName();
    342378                ast::DeclWithType * mutParam = ast::mutate( param.get() );
     379                // - Should be renamed earlier. -
     380                //mutParam->name = paramNamer.newName();
    343381                explodeSimple( location, new ast::VariableExpr( location, mutParam ),
    344382                        std::back_inserter( args ) );
     
    350388                argBegin = args.begin(), argEnd = args.end();
    351389        for ( const auto & actualArg : actualType->params ) {
    352                 app->args.push_back(
    353                         structureArg( location, actualArg.get(), argBegin, argEnd ) );
     390                structureArg( location, actualArg.get(), argBegin, argEnd,
     391                        std::back_inserter( app->args ) );
    354392        }
    355393        assertf( argBegin == argEnd, "Did not structure all arguments." );
     
    431469        // Create thunks for the inferred parameters.
    432470        // This is not needed for intrinsic calls, because they aren't
    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.
     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.
    438477        ast::ApplicationExpr * mut = handleExplicitParams( expr );
    439478        if ( !mut->inferred.hasParams() ) {
     
    461500        if ( specialized != expr->arg ) {
    462501                // Assume that the specialization incorporates the cast.
     502                std::cerr << expr <<std::endl;
    463503                return specialized;
    464504        } else {
  • src/GenPoly/module.mk

    r4520b77e r12df6fe  
    2727        GenPoly/FindFunction.cc \
    2828        GenPoly/FindFunction.h \
    29         GenPoly/InstantiateGenericNew.cpp \
    3029        GenPoly/InstantiateGeneric.cc \
    3130        GenPoly/InstantiateGeneric.h \
  • src/InitTweak/FixInitNew.cpp

    r4520b77e r12df6fe  
    595595                if ( arg && isIntrinsicCallExpr( dtor ) ) {
    596596                        return new ast::CommaExpr(loc, arg, new ast::VariableExpr(loc, ret ) );
     597                        // return;
    597598                }
    598599
     
    653654                if ( ! result->isVoid() ) {
    654655                        static UniqueName retNamer("_tmp_cp_ret");
     656                        // result = result->clone();
    655657                        auto subResult = env->apply( result ).node;
    656658                        auto ret = new ast::ObjectDecl(loc, retNamer.newName(), subResult, nullptr );
     
    831833                        }
    832834
     835                        // stmtsToAddBefore.splice( stmtsToAddBefore.end(), fixer.pass.stmtsToAddBefore );
     836                        // stmtsToAddAfter.splice( stmtsToAddAfter.end(), fixer.pass.stmtsToAddAfter );
    833837                        unqMap[mutExpr->id] = mutExpr;
    834838                } else {
     
    13451349                auto tmp = new ast::ObjectDecl(loc, tempNamer.newName(), callExpr->args.front()->result );
    13461350                declsToAddBefore.push_back( tmp );
     1351                // delete ctorExpr;
    13471352
    13481353                // build assignment and replace constructor's first argument with new temporary
  • src/InitTweak/InitTweak.cc

    r4520b77e r12df6fe  
    2727#include "AST/Stmt.hpp"
    2828#include "AST/Type.hpp"
    29 #include "CodeGen/OperatorTable.h" // for isConstructor, isDestructor, isCto...
    3029#include "Common/PassVisitor.h"
    3130#include "Common/SemanticError.h"  // for SemanticError
     
    771770                        std::list< Expression * > callExprs;
    772771                        collectCtorDtorCalls( stmt, callExprs );
     772                        // if ( callExprs.empty() ) return false; // xxx - do I still need this check?
    773773                        return std::all_of( callExprs.begin(), callExprs.end(), pred);
    774774                }
     
    901901                        } else if ( VariableExpr * varExpr = dynamic_cast< VariableExpr * >( func ) ) {
    902902                                return varExpr->get_var()->get_name();
    903                         } else if ( CastExpr * castExpr = dynamic_cast< CastExpr * >( func ) ) {
     903                        }       else if ( CastExpr * castExpr = dynamic_cast< CastExpr * >( func ) ) {
    904904                                return funcName( castExpr->get_arg() );
    905905                        } else if ( MemberExpr * memberExpr = dynamic_cast< MemberExpr * >( func ) ) {
     
    923923                        } else if ( const ast::VariableExpr * varExpr = dynamic_cast< const ast::VariableExpr * >( func ) ) {
    924924                                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 ) ) {
    926926                                return funcName( castExpr->arg );
    927927                        } else if ( const ast::MemberExpr * memberExpr = dynamic_cast< const ast::MemberExpr * >( func ) ) {
     
    991991
    992992        Type * isPointerType( Type * type ) {
    993                 return getPointerBase( type ) ? type : nullptr;
     993                if ( getPointerBase( type ) ) return type;
     994                else return nullptr;
    994995        }
    995996
     
    10131014                                src = new AddressExpr( src );
    10141015                        }
     1016                        // src = new CastExpr( src, new ReferenceType( noQualifiers, src->result->stripReferences()->clone() ) );
    10151017                }
    10161018                return new ApplicationExpr( VariableExpr::functionPointer( assign ), { dst, src } );
     
    11651167        }
    11661168
     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
    11671175        const FunctionDecl * isCopyFunction( const Declaration * decl, const std::string & fname ) {
    11681176                const FunctionDecl * function = dynamic_cast< const FunctionDecl * >( decl );
     
    11841192
    11851193bool isAssignment( const ast::FunctionDecl * decl ) {
    1186         return CodeGen::isAssignment( decl->name ) && isCopyFunction( decl );
     1194        return isAssignment( decl->name ) && isCopyFunction( decl );
    11871195}
    11881196
    11891197bool isDestructor( const ast::FunctionDecl * decl ) {
    1190         return CodeGen::isDestructor( decl->name );
     1198        return isDestructor( decl->name );
    11911199}
    11921200
    11931201bool isDefaultConstructor( const ast::FunctionDecl * decl ) {
    1194         return CodeGen::isConstructor( decl->name ) && 1 == decl->params.size();
     1202        return isConstructor( decl->name ) && 1 == decl->params.size();
    11951203}
    11961204
    11971205bool isCopyConstructor( const ast::FunctionDecl * decl ) {
    1198         return CodeGen::isConstructor( decl->name ) && 2 == decl->params.size();
     1206        return isConstructor( decl->name ) && 2 == decl->params.size();
    11991207}
    12001208
     
    12141222        }
    12151223        const FunctionDecl * isDestructor( const Declaration * decl ) {
    1216                 if ( CodeGen::isDestructor( decl->name ) ) {
     1224                if ( isDestructor( decl->name ) ) {
    12171225                        return dynamic_cast< const FunctionDecl * >( decl );
    12181226                }
     
    12201228        }
    12211229        const FunctionDecl * isDefaultConstructor( const Declaration * decl ) {
    1222                 if ( CodeGen::isConstructor( decl->name ) ) {
     1230                if ( isConstructor( decl->name ) ) {
    12231231                        if ( const FunctionDecl * func = dynamic_cast< const FunctionDecl * >( decl ) ) {
    12241232                                if ( func->type->parameters.size() == 1 ) {
     
    12411249        static const char * const tlsd_section = ".tdata" ASM_COMMENT;
    12421250        void addDataSectionAttribute( ObjectDecl * objDecl ) {
    1243                 const bool is_tls = objDecl->get_storageClasses().is_threadlocal_any();
     1251                const bool is_tls = objDecl->get_storageClasses().is_threadlocal;
    12441252                const char * section = is_tls ? tlsd_section : data_section;
    12451253                objDecl->attributes.push_back(new Attribute("section", {
     
    12491257
    12501258        void addDataSectionAttribute( ast::ObjectDecl * objDecl ) {
    1251                 const bool is_tls = objDecl->storage.is_threadlocal_any();
     1259                const bool is_tls = objDecl->storage.is_threadlocal;
    12521260                const char * section = is_tls ? tlsd_section : data_section;
    12531261                objDecl->attributes.push_back(new ast::Attribute("section", {
  • src/Makefile.am

    r4520b77e r12df6fe  
    7171EXTRA_DIST = include/cassert include/optional BasicTypes-gen.cc
    7272
    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)
     73AM_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++14 $(TCMALLOCFLAG)
    7474AM_LDFLAGS  = @HOST_FLAGS@ -Xlinker -export-dynamic
    7575ARFLAGS     = cr
  • src/Parser/DeclarationNode.cc

    r4520b77e r12df6fe  
    1010// Created On       : Sat May 16 12:34:05 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon Aug  8 17:07:00 2022
    13 // Update Count     : 1185
     12// Last Modified On : Wed Jul 14 17:36:57 2021
     13// Update Count     : 1154
    1414//
    1515
     
    128128        if ( name ) {
    129129                os << *name << ": ";
     130        } else {
     131                os << "unnamed: ";
    130132        } // if
    131133
     
    152154                initializer->printOneLine( os );
    153155                os << " maybe constructed? " << initializer->get_maybeConstructed();
    154         } // if
    155 
    156         for ( Attribute * attr: reverseIterate( attributes ) ) {
    157                 os << string( indent + 2, ' ' ) << "attr " << attr->name.c_str();
    158         } // for
     156
     157        } // if
    159158
    160159        os << endl;
     
    244243        newnode->type = new TypeData( TypeData::Aggregate );
    245244        newnode->type->aggregate.kind = kind;
    246         newnode->type->aggregate.name = name == nullptr ? new string( DeclarationNode::anonymous.newName() ) : name;
     245        newnode->type->aggregate.name =  name == nullptr ? new string( DeclarationNode::anonymous.newName() ) : name;
    247246        newnode->type->aggregate.actuals = actuals;
    248247        newnode->type->aggregate.fields = fields;
     
    263262        newnode->type->enumeration.typed = typed;
    264263        if ( base && base->type)  {
    265                 newnode->type->base = base->type;
     264                newnode->type->base = base->type;       
    266265        } // if
    267266
     
    505504                        } // for
    506505                        // src is the new item being added and has a single bit
    507                 } else if ( ! src->storageClasses.is_threadlocal_any() ) { // conflict ?
     506                } else if ( ! src->storageClasses.is_threadlocal ) { // conflict ?
    508507                        appendError( error, string( "conflicting " ) + Type::StorageClassesNames[storageClasses.ffs()] +
    509508                                                 " & " + Type::StorageClassesNames[src->storageClasses.ffs()] );
     
    519518        storageClasses |= q->storageClasses;
    520519
    521         for ( Attribute * attr: reverseIterate( q->attributes ) ) {
     520        for ( Attribute *attr: reverseIterate( q->attributes ) ) {
    522521                attributes.push_front( attr->clone() );
    523522        } // for
     
    684683        } // if
    685684        delete o;
    686 
    687685        return this;
    688686}
  • src/Parser/TypeData.cc

    r4520b77e r12df6fe  
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Sat May 16 15:12:51 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 10 22:36:52 2022
    13 // Update Count     : 677
     11// Last Modified By : Henry Xue
     12// Last Modified On : Tue Jul 20 04:10:50 2021
     13// Update Count     : 673
    1414//
    1515
     
    283283                if ( signedness != DeclarationNode::NoSignedness ) os << DeclarationNode::signednessNames[ signedness ] << " ";
    284284                if ( length != DeclarationNode::NoLength ) os << DeclarationNode::lengthNames[ length ] << " ";
    285                 if ( complextype != DeclarationNode::NoComplexType ) os << DeclarationNode::complexTypeNames[ complextype ] << " ";
    286                 if ( basictype != DeclarationNode::NoBasicType ) os << DeclarationNode::basicTypeNames[ basictype ] << " ";
     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
    287293                break;
    288294          case Pointer:
     
    431437                        __attribute__((fallthrough));
    432438                #endif
    433                 // FALL THROUGH
    434439          case Typeof:
    435440                os << "type-of expression ";
     
    437442                        typeexpr->print( os, indent + 2 );
    438443                } // if
    439                 break;
    440           case Vtable:
    441                 os << "vtable";
    442444                break;
    443445          case Builtin:
  • src/Parser/TypeData.h

    r4520b77e r12df6fe  
    1010// Created On       : Sat May 16 15:18:36 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue May 10 22:18:49 2022
    13 // Update Count     : 203
     12// Last Modified On : Wed Jul 14 17:44:05 2021
     13// Update Count     : 202
    1414//
    1515
     
    2727struct TypeData {
    2828        enum Kind { Basic, Pointer, Reference, Array, Function, Aggregate, AggregateInst, Enum, EnumConstant, Symbolic,
    29                                 SymbolicInst, Tuple, Basetypeof, Typeof, Vtable, Builtin, GlobalScope, Qualified, Unknown };
     29                                SymbolicInst, Tuple, Typeof, Basetypeof, Vtable, Builtin, GlobalScope, Qualified, Unknown };
    3030
    3131        struct Aggregate_t {
  • src/Parser/TypedefTable.cc

    r4520b77e r12df6fe  
    1010// Created On       : Sat May 16 15:20:13 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Feb 15 08:27:24 2022
    13 // Update Count     : 275
     12// Last Modified On : Wed May 19 08:30:14 2021
     13// Update Count     : 262
    1414//
    1515
     
    1818#include <cassert>                                                                              // for assert
    1919#include <iostream>
    20 using namespace std;
    2120
    2221#if 0
     
    2928
    3029debugPrint(
    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 );
     30static 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        } // switch
     40} // kindName
     41)
    4342
    4443TypedefTable::~TypedefTable() {
     
    8180
    8281void TypedefTable::addToScope( const string & identifier, int kind, const char * locn __attribute__((unused)) ) {
    83         KindTable::size_type scope = kindTable.currentScope();
     82        auto scope = kindTable.currentScope();
    8483        debugPrint( cerr << "Adding current at " << locn << " " << identifier << " as " << kindName( kind ) << " scope " << scope << endl );
    8584        kindTable.insertAt( scope, identifier, kind );
     
    8786
    8887void TypedefTable::addToEnclosingScope( const string & identifier, int kind, const char * locn __attribute__((unused)) ) {
    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;
     88        auto scope = kindTable.currentScope() - 1 - kindTable.getNote( kindTable.currentScope() - 1 ).level;
     89//      auto scope = level - kindTable.getNote( kindTable.currentScope() - 1 ).level;
    9190        debugPrint( cerr << "Adding enclosing at " << locn << " " << identifier << " as " << kindName( kind ) << " scope " << scope << " level " << level << " note " << kindTable.getNote( kindTable.currentScope() - 1 ).level << endl );
    92         pair< KindTable::iterator, bool > ret = kindTable.insertAt( scope, identifier, kind );
     91        auto ret = kindTable.insertAt( scope, identifier, kind );
    9392        if ( ! ret.second ) ret.first->second = kind;           // exists => update
    9493} // TypedefTable::addToEnclosingScope
  • src/Parser/lex.ll

    r4520b77e r12df6fe  
    1010 * Created On       : Sat Sep 22 08:58:10 2001
    1111 * Last Modified By : Peter A. Buhr
    12  * Last Modified On : Tue Aug 30 18:39:54 2022
    13  * Update Count     : 760
     12 * Last Modified On : Sun Jun 20 18:41:09 2021
     13 * Update Count     : 759
    1414 */
    1515
     
    314314switch                  { KEYWORD_RETURN(SWITCH); }
    315315thread                  { KEYWORD_RETURN(THREAD); }                             // C11
    316 __thread                { KEYWORD_RETURN(THREADLOCALGCC); }             // GCC
    317 _Thread_local   { KEYWORD_RETURN(THREADLOCALC11); }             // C11
     316_Thread_local   { KEYWORD_RETURN(THREADLOCAL); }                // C11
    318317throw                   { KEYWORD_RETURN(THROW); }                              // CFA
    319318throwResume             { KEYWORD_RETURN(THROWRESUME); }                // CFA
  • src/Parser/parser.yy

    r4520b77e r12df6fe  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Aug 27 13:21:28 2022
    13 // Update Count     : 5661
     12// Last Modified On : Fri Jul  1 15:35:08 2022
     13// Update Count     : 5405
    1414//
    1515
     
    5858
    5959// lex uses __null in a boolean context, it's fine.
    60 #pragma GCC diagnostic ignored "-Wpragmas"
    6160#pragma GCC diagnostic ignored "-Wparentheses-equality"
    62 #pragma GCC diagnostic warning "-Wpragmas"
    6361
    6462extern DeclarationNode * parseTree;
     
    199197} // fieldDecl
    200198
    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 
    222199ForCtrl * forCtrl( ExpressionNode * type, string * index, ExpressionNode * start, enum OperKinds compop, ExpressionNode * comp, ExpressionNode * inc ) {
    223200        ConstantExpr * constant = dynamic_cast<ConstantExpr *>(type->expr.get());
     
    229206                distAttr( DeclarationNode::newTypeof( type, true ), DeclarationNode::newName( index )->addInitializer( new InitializerNode( start ) ) ),
    230207                // NULL comp/inc => leave blank
    231                 comp ? new ExpressionNode( build_binary_val( compop, new ExpressionNode( build_varref( new string( *index ) ) ), comp ) ) : nullptr,
     208                comp ? new ExpressionNode( build_binary_val( compop, new ExpressionNode( build_varref( new string( *index ) ) ), comp ) ) : 0,
    232209                inc ? new ExpressionNode( build_binary_val( compop == OperKinds::LThan || compop == OperKinds::LEThan ? // choose += or -= for upto/downto
    233                                                         OperKinds::PlusAssn : OperKinds::MinusAssn, new ExpressionNode( build_varref( new string( *index ) ) ), inc ) ) : nullptr );
     210                                                        OperKinds::PlusAssn : OperKinds::MinusAssn, new ExpressionNode( build_varref( new string( *index ) ) ), inc ) ) : 0 );
    234211} // forCtrl
    235212
     
    295272%token TYPEDEF
    296273%token EXTERN STATIC AUTO REGISTER
    297 %token THREADLOCALGCC THREADLOCALC11                                            // GCC, C11
     274%token THREADLOCAL                                                                              // C11
    298275%token INLINE FORTRAN                                                                   // C99, extension ISO/IEC 9899:1999 Section J.5.9(1)
    299276%token NORETURN                                                                                 // C11
     
    369346%type<ifctl> conditional_declaration
    370347%type<fctl> for_control_expression              for_control_expression_list
    371 %type<compop> updown updowneq downupdowneq
     348%type<compop> inclexcl
    372349%type<en> subrange
    373350%type<decl> asm_name_opt
     
    12621239iteration_statement:
    12631240        WHILE '(' ')' statement                                                         %prec THEN // CFA => while ( 1 )
    1264                 { $$ = new StatementNode( build_while( new CondCtl( nullptr, NEW_ONE ), maybe_build_compound( $4 ) ) ); }
     1241                { $$ = new StatementNode( build_while( new CondCtl( nullptr, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ), maybe_build_compound( $4 ) ) ); }
    12651242        | WHILE '(' ')' statement ELSE statement                        // CFA
    12661243                {
    1267                         $$ = new StatementNode( build_while( new CondCtl( nullptr, NEW_ONE ), maybe_build_compound( $4 ) ) );
     1244                        $$ = new StatementNode( build_while( new CondCtl( nullptr, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ), maybe_build_compound( $4 ) ) );
    12681245                        SemanticWarning( yylloc, Warning::SuperfluousElse, "" );
    12691246                }
     
    12731250                { $$ = new StatementNode( build_while( $3, maybe_build_compound( $5 ), $7 ) ); }
    12741251        | DO statement WHILE '(' ')' ';'                                        // CFA => do while( 1 )
    1275                 { $$ = new StatementNode( build_do_while( NEW_ONE, maybe_build_compound( $2 ) ) ); }
     1252                { $$ = new StatementNode( build_do_while( new ExpressionNode( build_constantInteger( *new string( "1" ) ) ), maybe_build_compound( $2 ) ) ); }
    12761253        | DO statement WHILE '(' ')' ELSE statement                     // CFA
    12771254                {
    1278                         $$ = new StatementNode( build_do_while( NEW_ONE, maybe_build_compound( $2 ) ) );
     1255                        $$ = new StatementNode( build_do_while( new ExpressionNode( build_constantInteger( *new string( "1" ) ) ), maybe_build_compound( $2 ) ) );
    12791256                        SemanticWarning( yylloc, Warning::SuperfluousElse, "" );
    12801257                }
     
    13271304                { $$ = new ForCtrl( $1, $2, $4 ); }
    13281305
    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 
     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 ); }
    13741318        | comma_expression ';' comma_expression                         // CFA
    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; }
     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 ); }
    14711328
    14721329        | comma_expression ';' TYPEDEFname                                      // CFA, array type
    14731330                {
    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                 }
     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 ); }
    14821346        ;
    14831347
    1484 downupdowneq:
    1485         ErangeDown
    1486                 { $$ = OperKinds::GThan; }
     1348inclexcl:
     1349        '~'
     1350                { $$ = OperKinds::LThan; }
    14871351        | ErangeUpEq
    14881352                { $$ = OperKinds::LEThan; }
    1489         | ErangeDownEq
    1490                 { $$ = OperKinds::GEThan; }
    1491         ;
    1492 
    1493 updown:
    1494         '~'
    1495                 { $$ = OperKinds::LThan; }
    14961353        | ErangeDown
    14971354                { $$ = OperKinds::GThan; }
    1498         ;
    1499 
    1500 updowneq:
    1501         updown
    1502         | ErangeUpEq
    1503                 { $$ = OperKinds::LEThan; }
    15041355        | ErangeDownEq
    15051356                { $$ = OperKinds::GEThan; }
     
    20841935        | REGISTER
    20851936                { $$ = DeclarationNode::newStorageClass( Type::Register ); }
    2086         | THREADLOCALGCC                                                                                // GCC
    2087                 { $$ = DeclarationNode::newStorageClass( Type::ThreadlocalGcc ); }
    2088         | THREADLOCALC11                                                                                // C11
    2089                 { $$ = DeclarationNode::newStorageClass( Type::ThreadlocalC11 ); }
     1937        | THREADLOCAL                                                                           // C11
     1938                { $$ = DeclarationNode::newStorageClass( Type::Threadlocal ); }
    20901939                // Put function specifiers here to simplify parsing rules, but separate them semantically.
    20911940        | INLINE                                                                                        // C99
  • src/ResolvExpr/CandidateFinder.cpp

    r4520b77e r12df6fe  
    269269                        unsigned nextArg, unsigned tupleStart = 0, Cost cost = Cost::zero,
    270270                        unsigned nextExpl = 0, unsigned explAlt = 0 )
    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 ),
     271                : parent(parent), expr( expr ), cost( cost ), env( move( env ) ), need( move( need ) ),
     272                  have( move( have ) ), open( move( open ) ), nextArg( nextArg ), tupleStart( tupleStart ),
    273273                  nextExpl( nextExpl ), explAlt( explAlt ) {}
    274274
     
    276276                        const ArgPack & o, ast::TypeEnvironment && env, ast::AssertionSet && need,
    277277                        ast::AssertionSet && have, ast::OpenVarSet && open, unsigned nextArg, Cost added )
    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 ),
     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 ),
    280280                  tupleStart( o.tupleStart ), nextExpl( 0 ), explAlt( 0 ) {}
    281281
     
    301301                        // reset pack to appropriate tuple
    302302                        std::vector< ast::ptr< ast::Expr > > exprv( exprs.begin(), exprs.end() );
    303                         expr = new ast::TupleExpr{ expr->location, std::move( exprv ) };
     303                        expr = new ast::TupleExpr{ expr->location, move( exprv ) };
    304304                        tupleStart = pack->tupleStart - 1;
    305305                        parent = pack->parent;
     
    404404                                                                newResult.open, symtab )
    405405                                                ) {
    406                                                         finalResults.emplace_back( std::move( newResult ) );
     406                                                        finalResults.emplace_back( move( newResult ) );
    407407                                                }
    408408
     
    423423                                                if ( expl.exprs.empty() ) {
    424424                                                        results.emplace_back(
    425                                                                 results[i], std::move( env ), copy( results[i].need ),
    426                                                                 copy( results[i].have ), std::move( open ), nextArg + 1, expl.cost );
     425                                                                results[i], move( env ), copy( results[i].need ),
     426                                                                copy( results[i].have ), move( open ), nextArg + 1, expl.cost );
    427427
    428428                                                        continue;
     
    431431                                                // add new result
    432432                                                results.emplace_back(
    433                                                         i, expl.exprs.front(), std::move( env ), copy( results[i].need ),
    434                                                         copy( results[i].have ), std::move( open ), nextArg + 1, nTuples,
     433                                                        i, expl.exprs.front(), move( env ), copy( results[i].need ),
     434                                                        copy( results[i].have ), move( open ), nextArg + 1, nTuples,
    435435                                                        expl.cost, expl.exprs.size() == 1 ? 0 : 1, j );
    436436                                        }
     
    444444                        // splice final results onto results
    445445                        for ( std::size_t i = 0; i < finalResults.size(); ++i ) {
    446                                 results.emplace_back( std::move( finalResults[i] ) );
     446                                results.emplace_back( move( finalResults[i] ) );
    447447                        }
    448448                        return ! finalResults.empty();
     
    478478
    479479                                        results.emplace_back(
    480                                                 i, expr, std::move( env ), std::move( need ), std::move( have ), std::move( open ), nextArg,
     480                                                i, expr, move( env ), move( need ), move( have ), move( open ), nextArg,
    481481                                                nTuples, Cost::zero, nextExpl, results[i].explAlt );
    482482                                }
     
    494494                                        if ( unify( paramType, cnst->result, env, need, have, open, symtab ) ) {
    495495                                                results.emplace_back(
    496                                                         i, new ast::DefaultArgExpr{ cnst->location, cnst }, std::move( env ),
    497                                                         std::move( need ), std::move( have ), std::move( open ), nextArg, nTuples );
     496                                                        i, new ast::DefaultArgExpr{ cnst->location, cnst }, move( env ),
     497                                                        move( need ), move( have ), move( open ), nextArg, nTuples );
    498498                                        }
    499499                                }
     
    516516                                if ( expl.exprs.empty() ) {
    517517                                        results.emplace_back(
    518                                                 results[i], std::move( env ), std::move( need ), std::move( have ), std::move( open ),
     518                                                results[i], move( env ), move( need ), move( have ), move( open ),
    519519                                                nextArg + 1, expl.cost );
    520520
     
    538538                                        // add new result
    539539                                        results.emplace_back(
    540                                                 i, expr, std::move( env ), std::move( need ), std::move( have ), std::move( open ),
     540                                                i, expr, move( env ), move( need ), move( have ), move( open ),
    541541                                                nextArg + 1, nTuples, expl.cost, expl.exprs.size() == 1 ? 0 : 1, j );
    542542                                }
     
    576576                                        restructureCast( idx, toType->getComponent( i ), isGenerated ) );
    577577                        }
    578                         return new ast::TupleExpr{ arg->location, std::move( components ) };
     578                        return new ast::TupleExpr{ arg->location, move( components ) };
    579579                } else {
    580580                        // handle normally
     
    672672                        }
    673673                        std::vector< ast::ptr< ast::Expr > > vargs( args.begin(), args.end() );
    674                         appExpr->args = std::move( vargs );
     674                        appExpr->args = move( vargs );
    675675                        // build and validate new candidate
    676676                        auto newCand =
     
    783783                                                        if ( expl.exprs.empty() ) {
    784784                                                                results.emplace_back(
    785                                                                         results[i], std::move( env ), copy( results[i].need ),
    786                                                                         copy( results[i].have ), std::move( open ), nextArg + 1,
     785                                                                        results[i], move( env ), copy( results[i].need ),
     786                                                                        copy( results[i].have ), move( open ), nextArg + 1,
    787787                                                                        expl.cost );
    788788
     
    792792                                                        // add new result
    793793                                                        results.emplace_back(
    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,
     794                                                                i, expl.exprs.front(), move( env ), copy( results[i].need ),
     795                                                                copy( results[i].have ), move( open ), nextArg + 1, 0, expl.cost,
    796796                                                                expl.exprs.size() == 1 ? 0 : 1, j );
    797797                                                }
     
    843843                                // as a member expression
    844844                                addAnonConversions( newCand );
    845                                 candidates.emplace_back( std::move( newCand ) );
     845                                candidates.emplace_back( move( newCand ) );
    846846                        }
    847847                }
     
    991991                                        funcE.emplace_back( *func, symtab );
    992992                                }
    993                                 argExpansions.emplace_front( std::move( funcE ) );
     993                                argExpansions.emplace_front( move( funcE ) );
    994994
    995995                                for ( const CandidateRef & op : opFinder ) {
     
    10351035                                if ( cvtCost != Cost::infinity ) {
    10361036                                        withFunc->cvtCost = cvtCost;
    1037                                         candidates.emplace_back( std::move( withFunc ) );
    1038                                 }
    1039                         }
    1040                         found = std::move( candidates );
     1037                                        candidates.emplace_back( move( withFunc ) );
     1038                                }
     1039                        }
     1040                        found = move( candidates );
    10411041
    10421042                        // use a new list so that candidates are not examined by addAnonConversions twice
     
    11361136                                        CandidateRef newCand = std::make_shared<Candidate>(
    11371137                                                restructureCast( cand->expr, toType, castExpr->isGenerated ),
    1138                                                 copy( cand->env ), std::move( open ), std::move( need ), cand->cost,
     1138                                                copy( cand->env ), move( open ), move( need ), cand->cost,
    11391139                                                cand->cost + thisCost );
    11401140                                        inferParameters( newCand, matches );
     
    12901290                                // as a name expression
    12911291                                addAnonConversions( newCand );
    1292                                 candidates.emplace_back( std::move( newCand ) );
     1292                                candidates.emplace_back( move( newCand ) );
    12931293                        }
    12941294                }
     
    13991399                                                new ast::LogicalExpr{
    14001400                                                        logicalExpr->location, r1->expr, r2->expr, logicalExpr->isAnd },
    1401                                                 std::move( env ), std::move( open ), std::move( need ), r1->cost + r2->cost );
     1401                                                move( env ), move( open ), move( need ), r1->cost + r2->cost );
    14021402                                }
    14031403                        }
     
    14571457                                                        // output candidate
    14581458                                                        CandidateRef newCand = std::make_shared<Candidate>(
    1459                                                                 newExpr, std::move( env ), std::move( open ), std::move( need ), cost );
     1459                                                                newExpr, move( env ), move( open ), move( need ), cost );
    14601460                                                        inferParameters( newCand, candidates );
    14611461                                                }
     
    15241524                                                // add candidate
    15251525                                                CandidateRef newCand = std::make_shared<Candidate>(
    1526                                                         newExpr, std::move( env ), std::move( open ), std::move( need ),
     1526                                                        newExpr, move( env ), move( open ), move( need ),
    15271527                                                        r1->cost + r2->cost );
    15281528                                                inferParameters( newCand, candidates );
     
    15531553
    15541554                                addCandidate(
    1555                                         new ast::TupleExpr{ tupleExpr->location, std::move( exprs ) },
    1556                                         std::move( env ), std::move( open ), std::move( need ), sumCost( subs ) );
     1555                                        new ast::TupleExpr{ tupleExpr->location, move( exprs ) },
     1556                                        move( env ), move( open ), move( need ), sumCost( subs ) );
    15571557                        }
    15581558                }
     
    16401640                                                                initExpr->location, restructureCast( cand->expr, toType ),
    16411641                                                                initAlt.designation },
    1642                                                         std::move(env), std::move( open ), std::move( need ), cand->cost, thisCost );
     1642                                                        move(env), move( open ), move( need ), cand->cost, thisCost );
    16431643                                                inferParameters( newCand, matches );
    16441644                                        }
     
    17731773                cand->env.applyFree( newResult );
    17741774                cand->expr = ast::mutate_field(
    1775                         cand->expr.get(), &ast::Expr::result, std::move( newResult ) );
     1775                        cand->expr.get(), &ast::Expr::result, move( newResult ) );
    17761776
    17771777                out.emplace_back( cand );
     
    18591859
    18601860                auto oldsize = candidates.size();
    1861                 candidates = std::move( pruned );
     1861                candidates = move( pruned );
    18621862
    18631863                PRINT(
  • src/ResolvExpr/Resolver.cc

    r4520b77e r12df6fe  
    15421542        }
    15431543
     1544
    15441545        const ast::StaticAssertDecl * Resolver_new::previsit(
    15451546                const ast::StaticAssertDecl * assertDecl
     
    15531554        const PtrType * handlePtrType( const PtrType * type, const ResolveContext & context ) {
    15541555                if ( type->dimension ) {
    1555                         const ast::Type * sizeType = context.global.sizeType.get();
     1556                        ast::ptr< ast::Type > sizeType = context.global.sizeType;
    15561557                        ast::ptr< ast::Expr > dimension = findSingleExpression( type->dimension, sizeType, context );
    15571558                        assertf(dimension->env->empty(), "array dimension expr has nonempty env");
    15581559                        dimension.get_and_mutate()->env = nullptr;
    1559                         ast::mutate_field( type, &PtrType::dimension, dimension );
     1560                        ast::mutate_field(
     1561                                type, &PtrType::dimension,
     1562                                dimension);
    15601563                }
    15611564                return type;
  • src/SymTab/Autogen.cc

    r4520b77e r12df6fe  
    258258        }
    259259
    260         /// Given type T, generate type of default ctor/dtor, i.e. function type void (*) (T &).
     260        ///
    261261        ast::FunctionDecl * genDefaultFunc(const CodeLocation loc, const std::string fname, const ast::Type * paramType, bool maybePolymorphic) {
    262262                std::vector<ast::ptr<ast::TypeDecl>> typeParams;
    263263                if (maybePolymorphic) typeParams = getGenericParams(paramType);
    264264                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), {}, ast::Linkage::Cforall);
     265                return new ast::FunctionDecl(loc, fname, std::move(typeParams), {dstParam}, {}, new ast::CompoundStmt(loc));
    266266        }
    267267
  • src/SynTree/Statement.cc

    r4520b77e r12df6fe  
    105105};
    106106
    107 BranchStmt::BranchStmt( Label target, Type type ) :
     107BranchStmt::BranchStmt( Label target, Type type ) throw ( SemanticErrorException ) :
    108108        Statement(), originalTarget( target ), target( target ), computedTarget( nullptr ), type( type ) {
    109109        //actually this is a syntactic error signaled by the parser
     
    113113}
    114114
    115 BranchStmt::BranchStmt( Expression * computedTarget, Type type ) :
     115BranchStmt::BranchStmt( Expression * computedTarget, Type type ) throw ( SemanticErrorException ) :
    116116        Statement(), computedTarget( computedTarget ), type( type ) {
    117117        if ( type != BranchStmt::Goto || computedTarget == nullptr ) {
     
    211211}
    212212
    213 CaseStmt::CaseStmt( Expression * condition, const list<Statement *> & statements, bool deflt ) :
     213CaseStmt::CaseStmt( Expression * condition, const list<Statement *> & statements, bool deflt ) throw ( SemanticErrorException ) :
    214214                Statement(), condition( condition ), stmts( statements ), _isDefault( deflt ) {
    215215        if ( isDefault() && condition != nullptr ) SemanticError( condition, "default case with condition: " );
     
    575575}
    576576
    577 MutexStmt::MutexStmt( Statement * stmt, const list<Expression *> mutexObjs )
     577MutexStmt::MutexStmt( Statement * stmt, const list<Expression *> mutexObjs ) 
    578578        : Statement(), stmt( stmt ), mutexObjs( mutexObjs ) { }
    579579
  • src/SynTree/Statement.h

    r4520b77e r12df6fe  
    200200        std::list<Statement *> stmts;
    201201
    202         CaseStmt( Expression * conditions, const std::list<Statement *> & stmts, bool isdef = false );
     202        CaseStmt( Expression * conditions, const std::list<Statement *> & stmts, bool isdef = false ) throw (SemanticErrorException);
    203203        CaseStmt( const CaseStmt & other );
    204204        virtual ~CaseStmt();
     
    289289        Type type;
    290290
    291         BranchStmt( Label target, Type );
    292         BranchStmt( Expression * computedTarget, Type );
     291        BranchStmt( Label target, Type ) throw (SemanticErrorException);
     292        BranchStmt( Expression * computedTarget, Type ) throw (SemanticErrorException);
    293293
    294294        Label get_originalTarget() { return originalTarget; }
  • src/SynTree/Type.cc

    r4520b77e r12df6fe  
    8080// These must remain in the same order as the corresponding bit fields.
    8181const char * Type::FuncSpecifiersNames[] = { "inline", "_Noreturn", "fortran" };
    82 const char * Type::StorageClassesNames[] = { "extern", "static", "auto", "register", "__thread", "_Thread_local" };
     82const char * Type::StorageClassesNames[] = { "extern", "static", "auto", "register", "_Thread_local" };
    8383const char * Type::QualifiersNames[] = { "const", "restrict", "volatile", "mutex", "_Atomic" };
    8484
  • src/SynTree/Type.h

    r4520b77e r12df6fe  
    8484        }; // FuncSpecifiers
    8585
    86         enum { Extern = 1 << 0, Static = 1 << 1, Auto = 1 << 2, Register = 1 << 3, ThreadlocalGcc = 1 << 4, ThreadlocalC11 = 1 << 5, NumStorageClass = 6 };
     86        enum { Extern = 1 << 0, Static = 1 << 1, Auto = 1 << 2, Register = 1 << 3, Threadlocal = 1 << 4, NumStorageClass = 5 };
    8787        static const char * StorageClassesNames[];
    8888        union StorageClasses {
     
    9393                        bool is_auto : 1;
    9494                        bool is_register : 1;
    95                         bool is_threadlocalGcc : 1;
    96                         bool is_threadlocalC11 : 1;
     95                        bool is_threadlocal : 1;
    9796                };
    9897
     
    101100                // equality (==, !=) works implicitly on first field "val", relational operations are undefined.
    102101                BFCommon( StorageClasses, NumStorageClass )
    103 
    104                 bool is_threadlocal_any() { return this->is_threadlocalC11 || this->is_threadlocalGcc; }
    105102        }; // StorageClasses
    106103
  • src/Tuples/TupleExpansionNew.cpp

    r4520b77e r12df6fe  
    99// Author           : Henry Xue
    1010// Created On       : Mon Aug 23 15:36:09 2021
    11 // Last Modified By : Andrew Beach
    12 // Last Modified On : Mon Aug 15 17:00:00 2022
    13 // Update Count     : 3
     11// Last Modified By : Henry Xue
     12// Last Modified On : Mon Aug 23 15:36:09 2021
     13// Update Count     : 1
    1414//
    1515
    1616#include "Tuples.h"
    1717
    18 #include "AST/Pass.hpp"
    19 #include "Common/ScopedMap.h"
    20 
    2118namespace Tuples {
    22 
    2319namespace {
    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 
     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        };
    26328} // namespace
    26429
     
    26732}
    26833
     34namespace {
     35        namespace {
     36                /// given a expression representing the member and an expression representing the aggregate,
     37                /// reconstructs a flattened UntypedMemberExpr with the right precedence
     38                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 recursively
     41                                // 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 return
     49                                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 expressions
     60                        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 aggregate
     68                        return new ast::UntypedMemberExpr( loc, memberExpr->member, memberExpr->aggregate->accept( *visitor ) );
     69                }
     70        }
     71} // namespace
     72
    26973void expandUniqueExpr( ast::TranslationUnit & translationUnit ) {
    27074        ast::Pass< UniqueExprExpander >::run( translationUnit );
    27175}
    27276
    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 }
     77namespace {
     78        const ast::Expr * UniqueExprExpander::postvisit( const ast::UniqueExpr * unqExpr ) {
     79                const CodeLocation loc = unqExpr->location;
     80                const int id = unqExpr->id;
    27881
     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
    279113} // namespace Tuples
  • src/Tuples/Tuples.h

    r4520b77e r12df6fe  
    3232        void handleTupleAssignment( ResolvExpr::AlternativeFinder & currentFinder, UntypedExpr * assign,
    3333                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, 
    3636                std::vector< ResolvExpr::CandidateFinder > & args );
    3737
     
    4343        /// replaces tuple-related elements, such as TupleType, TupleExpr, TupleAssignExpr, etc.
    4444        void expandTuples( std::list< Declaration * > & translationUnit );
    45         void expandTuples( ast::TranslationUnit & translaionUnit );
    4645
    4746        /// replaces UniqueExprs with a temporary variable and one call
  • src/Validate/Autogen.cpp

    r4520b77e r12df6fe  
    377377ast::ObjectDecl * FuncGenerator::dstParam() const {
    378378        return new ast::ObjectDecl( getLocation(), "_dst",
    379                 new ast::ReferenceType( ast::deepCopy( type ) ) );
     379                new ast::ReferenceType( ast::deepCopy( type ) ),
     380                nullptr, {}, ast::Linkage::Cforall );
    380381}
    381382
    382383ast::ObjectDecl * FuncGenerator::srcParam() const {
    383384        return new ast::ObjectDecl( getLocation(), "_src",
    384                 ast::deepCopy( type ) );
     385                ast::deepCopy( type ),
     386                nullptr, {}, ast::Linkage::Cforall );
    385387}
    386388
     
    434436                ast::ObjectDecl * param = new ast::ObjectDecl(
    435437                        getLocation(), member->name, paramType );
     438                param->linkage = ast::Linkage::Cforall;
    436439                for ( auto & attr : member->attributes ) {
    437440                        if ( attr->isValidOnFuncParam() ) {
  • src/Virtual/ExpandCasts.cc

    r4520b77e r12df6fe  
    1010// Created On       : Mon Jul 24 13:59:00 2017
    1111// Last Modified By : Andrew Beach
    12 // Last Modified On : Thu Aug 11 12:06:00 2022
    13 // Update Count     : 5
     12// Last Modified On : Fri Jul 31 10:29:00 2020
     13// Update Count     : 4
    1414//
    1515
     
    2020#include <string>                  // for string, allocator, operator==, ope...
    2121
    22 #include "AST/Decl.hpp"
    23 #include "AST/Expr.hpp"
    24 #include "AST/Pass.hpp"
    2522#include "Common/PassVisitor.h"    // for PassVisitor
    2623#include "Common/ScopedMap.h"      // for ScopedMap
     
    3532namespace Virtual {
    3633
    37 namespace {
    38 
    39 bool is_prefix( const std::string & prefix, const std::string& entire ) {
     34static bool is_prefix( const std::string & prefix, const std::string& entire ) {
    4035        size_t const p_size = prefix.size();
    4136        return (p_size < entire.size() && prefix == entire.substr(0, p_size));
    4237}
    4338
    44 bool is_type_id_object( const ObjectDecl * objectDecl ) {
     39static bool is_type_id_object( const ObjectDecl * objectDecl ) {
    4540        const std::string & objectName = objectDecl->name;
    4641        return is_prefix( "__cfatid_", objectName );
    47 }
    48 
    49 bool is_type_id_object( const ast::ObjectDecl * decl ) {
    50         return is_prefix( "__cfatid_", decl->name );
    5142}
    5243
     
    133124                }
    134125        }
     126
     127        namespace {
    135128
    136129        /// Better error locations for generated casts.
     
    236229        }
    237230
     231        } // namespace
     232
    238233        Expression * VirtualCastCore::postmutate( VirtualCastExpr * castExpr ) {
    239234                assertf( castExpr->result, "Virtual Cast target not found before expansion." );
     
    270265        }
    271266
    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();
     267        void expandCasts( std::list< Declaration * > & translationUnit ) {
     268                PassVisitor<VirtualCastCore> translator;
     269                mutateAll( translationUnit, translator );
    281270        }
    282271}
    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

    r4520b77e r12df6fe  
    1010// Created On       : Mon Jul 24 13:54:00 2017
    1111// Last Modified By : Andrew Beach
    12 // Last Modified On : Fri Jul 29 14:40:00 2022
    13 // Update Count     : 1
     12// Last Modified On : Tus Jul 25 14:51:00 2017
     13// Update Count     : 0
    1414//
    1515
     
    1919
    2020class Declaration;
    21 namespace ast {
    22         class TranslationUnit;
    23 }
    2421
    2522namespace Virtual {
    26 void expandCasts( std::list< Declaration * > & translationUnit );
    27 void expandCasts( ast::TranslationUnit & translationUnit );
    28 // Breaks all virtual cast nodes up into translatable nodes.
     23        void expandCasts( std::list< Declaration * > & translationUnit );
     24        // Breaks all virtual cast nodes up into translatable nodes.
    2925
    30 // Later this might just set some information so it can happen at CodeGen.
     26        // Later this might just set some information so it can happen at CodeGen.
    3127
    3228}
  • src/config.h.in

    r4520b77e r12df6fe  
    2727/* Location of cfa install. */
    2828#undef CFA_PREFIX
     29
     30/* Sets whether or not to use the new-ast, this is adefault value and can be
     31   overrided by --old-ast and --new-ast */
     32#undef CFA_USE_NEW_AST
    2933
    3034/* Major.Minor */
  • src/main.cc

    r4520b77e r12df6fe  
    1010// Created On       : Fri May 15 23:12:02 2015
    1111// Last Modified By : Andrew Beach
    12 // Last Modified On : Thu Sep 15 13:58:00 2022
    13 // Update Count     : 678
     12// Last Modified On : Mon Jul 18 11:08:00 2022
     13// Update Count     : 676
    1414//
    1515
     
    3838#include "CodeGen/Generate.h"               // for generate
    3939#include "CodeGen/LinkOnce.h"               // for translateLinkOnce
     40#include "CodeTools/DeclStats.h"            // for printDeclStats
     41#include "CodeTools/ResolvProtoDump.h"      // for dumpAsResolvProto
    4042#include "CodeTools/TrackLoc.h"             // for fillLocations
    4143#include "Common/CodeLocationTools.hpp"     // for forceFillCodeLocations
     
    4345#include "Common/DeclStats.hpp"             // for printDeclStats
    4446#include "Common/ResolvProtoDump.hpp"       // for dumpAsResolverProto
    45 #include "Common/Stats.h"                   // for Stats
     47#include "Common/Stats.h"
     48#include "Common/PassVisitor.h"
     49#include "Common/SemanticError.h"           // for SemanticError
    4650#include "Common/UnimplementedError.h"      // for UnimplementedError
    4751#include "Common/utility.h"                 // for deleteAll, filter, printAll
     
    4953#include "Concurrency/Waitfor.h"            // for generateWaitfor
    5054#include "ControlStruct/ExceptDecl.h"       // for translateExcept
    51 #include "ControlStruct/ExceptTranslate.h"  // for translateThrows, translat...
     55#include "ControlStruct/ExceptTranslate.h"  // for translateEHM
    5256#include "ControlStruct/FixLabels.hpp"      // for fixLabels
    5357#include "ControlStruct/HoistControlDecls.hpp" //  hoistControlDecls
     58#include "ControlStruct/Mutate.h"           // for mutate
    5459#include "GenPoly/Box.h"                    // for box
    5560#include "GenPoly/InstantiateGeneric.h"     // for instantiateGeneric
     
    6166#include "Parser/ParseNode.h"               // for DeclarationNode, buildList
    6267#include "Parser/TypedefTable.h"            // for TypedefTable
     68#include "ResolvExpr/AlternativePrinter.h"  // for AlternativePrinter
    6369#include "ResolvExpr/CandidatePrinter.hpp"  // for printCandidates
    6470#include "ResolvExpr/Resolver.h"            // for resolve
     71#include "SymTab/Validate.h"                // for validate
     72#include "SymTab/ValidateType.h"            // for linkReferenceToTypes
    6573#include "SynTree/LinkageSpec.h"            // for Spec, Cforall, Intrinsic
    6674#include "SynTree/Declaration.h"            // for Declaration
     75#include "SynTree/Visitor.h"                // for acceptAll
    6776#include "Tuples/Tuples.h"                  // for expandMemberTuples, expan...
    6877#include "Validate/Autogen.hpp"             // for autogenerateRoutines
     
    321330                Stats::Time::StopBlock();
    322331
    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");
     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
    326519                }
    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 ) );
     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?
     525
     526                if ( tuplep ) {
     527                        dump( translationUnit );
    334528                        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 ) );
    436 
    437                 if ( tuplep ) {
    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 
     529                } // if
     530
     531                PASS( "Virtual Expand Casts", Virtual::expandCasts( translationUnit ) ); // Must come after translateEHM
     532
     533                PASS( "Instantiate Generics", GenPoly::instantiateGeneric( translationUnit ) );
    449534                if ( genericsp ) {
    450535                        dump( translationUnit );
     
    529614
    530615
    531 static const char optstring[] = ":c:ghlLmNnpdP:S:twW:D:";
     616static const char optstring[] = ":c:ghlLmNnpdOAP:S:twW:D:";
    532617
    533618enum { PreludeDir = 128 };
     
    543628        { "prototypes", no_argument, nullptr, 'p' },
    544629        { "deterministic-out", no_argument, nullptr, 'd' },
     630        { "old-ast", no_argument, nullptr, 'O'},
     631        { "new-ast", no_argument, nullptr, 'A'},
    545632        { "print", required_argument, nullptr, 'P' },
    546633        { "prelude-dir", required_argument, nullptr, PreludeDir },
     
    564651        "do not generate prelude prototypes => prelude not printed", // -p
    565652        "only print deterministic output",                  // -d
     653        "Use the old-ast",                                                                      // -O
     654        "Use the new-ast",                                                                      // -A
    566655        "print",                                                                                        // -P
    567656        "<directory> prelude directory for debug/nodebug",      // no flag
     
    672761                        deterministic_output = true;
    673762                        break;
     763                  case 'O':                                     // don't print non-deterministic output
     764                        useNewAST = false;
     765                        break;
     766                  case 'A':                                     // don't print non-deterministic output
     767                        useNewAST = true;
     768                        break;
    674769                  case 'P':                                                                             // print options
    675770                        for ( int i = 0;; i += 1 ) {
     
    788883
    789884static void dump( ast::TranslationUnit && transUnit, ostream & out ) {
    790         std::list< Declaration * > translationUnit = convert( std::move( transUnit ) );
     885        std::list< Declaration * > translationUnit = convert( move( transUnit ) );
    791886        dump( translationUnit, out );
    792887}
  • tests/.expect/declarationSpecifier.arm64.txt

    r4520b77e r12df6fe  
    735735}
    736736static volatile const struct __anonymous15 _X3x36KVS13__anonymous15_1;
    737 _Thread_local signed int _X3x37i_1;
    738 __thread signed int _X3x38i_1;
    739737static inline volatile const signed int _X3f11Fi___1();
    740738static inline volatile const signed int _X3f12Fi___1();
  • tests/.expect/declarationSpecifier.x64.txt

    r4520b77e r12df6fe  
    735735}
    736736static volatile const struct __anonymous15 _X3x36KVS13__anonymous15_1;
    737 _Thread_local signed int _X3x37i_1;
    738 __thread signed int _X3x38i_1;
    739737static inline volatile const signed int _X3f11Fi___1();
    740738static inline volatile const signed int _X3f12Fi___1();
  • tests/.expect/declarationSpecifier.x86.txt

    r4520b77e r12df6fe  
    735735}
    736736static volatile const struct __anonymous15 _X3x36KVS13__anonymous15_1;
    737 _Thread_local signed int _X3x37i_1;
    738 __thread signed int _X3x38i_1;
    739737static inline volatile const signed int _X3f11Fi___1();
    740738static inline volatile const signed int _X3f12Fi___1();
  • tests/.expect/loop_else.txt

    r4520b77e r12df6fe  
    33330 1 2 3 4 5 6 7 8 9 else
    34340 1 2 3 4 5 6 7 8 9 10 else
    35 10 9 8 7 6 5 4 3 2 1 0 else
     3510 9 8 7 6 5 4 3 2 1 else
    3636
    37373 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)else
     40(0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)else
     41
     42(0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)else
     43(0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)else
     44(0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)(10 10)else
     45(0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)(10 10)else
     46
     47(10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)else
     48(10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)else
     49(10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)(0 0)else
     50(10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)(0 0)else
    3851
    39520 -5 1 -4 2 -3 3 -2 4 -1 5 0 6 1 7 2 8 3 9 4 else
     
    50630 -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
    51640 -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

    r4520b77e r12df6fe  
    31310 1 2 3 4 5 6 7 8 9
    32320 1 2 3 4 5 6 7 8 9 10
    33 10 9 8 7 6 5 4 3 2 1 0
     3310 9 8 7 6 5 4 3 2 1
    3434
    35353 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)
    3649
    37500 -5 1 -4 2 -3 3 -2 4 -1 5 0 6 1 7 2 8 3 9 4
     
    48610 -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
    49620 -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

    r4520b77e r12df6fe  
    5454
    5555# adjust CC to current flags
    56 CC = LC_ALL=C $(if $(DISTCC_CFA_PATH),distcc $(DISTCC_CFA_PATH) ${ARCH_FLAGS} ,$(TARGET_CFA) ${DEBUG_FLAGS} ${ARCH_FLAGS})
     56CC = LC_ALL=C $(if $(DISTCC_CFA_PATH),distcc $(DISTCC_CFA_PATH) ${ARCH_FLAGS} ${AST_FLAGS},$(TARGET_CFA) ${DEBUG_FLAGS} ${ARCH_FLAGS} ${AST_FLAGS})
    5757CFACC = $(CC)
    5858
     
    6161
    6262# adjusted CC but without the actual distcc call
    63 CFACCLOCAL = $(if $(DISTCC_CFA_PATH),$(DISTCC_CFA_PATH) ${ARCH_FLAGS} ,$(TARGET_CFA) ${DEBUG_FLAGS} ${ARCH_FLAGS})
     63CFACCLOCAL = $(if $(DISTCC_CFA_PATH),$(DISTCC_CFA_PATH) ${ARCH_FLAGS} ${AST_FLAGS},$(TARGET_CFA) ${DEBUG_FLAGS} ${ARCH_FLAGS} ${AST_FLAGS})
    6464CFACCLINK = $(CFACCLOCAL) -quiet $(if $(test), 2> $(test), ) $($(shell echo "${@}_FLAGSLD" | sed 's/-\|\//_/g'))
    6565
  • tests/concurrent/clib.c

    r4520b77e r12df6fe  
    88}
    99
    10 _Thread_local struct drand48_data buffer = { 0 };
     10thread_local struct drand48_data buffer = { 0 };
    1111int myrand() {
    1212        long int result;
  • tests/concurrent/clib_tls.c

    r4520b77e r12df6fe  
    1414
    1515
    16 __thread int checkval = 0xBAADF00D;
     16thread_local int checkval = 0xBAADF00D;
    1717
    1818void init(void * ) {
  • tests/concurrent/park/contention.cfa

    r4520b77e r12df6fe  
    22#include <thread.hfa>
    33
    4 __thread drand48_data buffer = { 0 };
     4thread_local drand48_data buffer = { 0 };
    55int myrand() {
    66        long int result;
  • tests/config.py.in

    r4520b77e r12df6fe  
    99HOSTARCH = "@host_cpu@"
    1010DISTRIBUTE = @HAS_DISTCC@
     11NEWAST = @DEFAULT_NEW_AST@
  • tests/declarationSpecifier.cfa

    r4520b77e r12df6fe  
    1 //
     1// 
    22// Cforall Version 1.0.0 Copyright (C) 2016 University of Waterloo
    33//
    44// The contents of this file are covered under the licence agreement in the
    55// file "LICENCE" distributed with Cforall.
    6 //
    7 // declarationSpecifier.cfa --
    8 //
     6// 
     7// declarationSpecifier.cfa -- 
     8// 
    99// Author           : Peter A. Buhr
    1010// Created On       : Wed Aug 17 08:21:04 2016
     
    1212// Last Modified On : Tue Apr 30 18:20:36 2019
    1313// Update Count     : 4
    14 //
     14// 
    1515
    1616typedef short int Int;
     
    5151struct { Int i; } const static volatile x35;
    5252struct { Int i; } const volatile static x36;
    53 
    54 _Thread_local int x37;
    55 __thread int x38;
    5653
    5754static inline const volatile int f11();
  • tests/heap.cfa

    r4520b77e r12df6fe  
    1010// Created On       : Tue Nov  6 17:54:56 2018
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Aug 10 09:57:01 2022
    13 // Update Count     : 86
     12// Last Modified On : Tue Dec 15 12:11:51 2020
     13// Update Count     : 79
    1414//
    1515
     
    2626//      return __CFA_DEFAULT_PREEMPTION__;
    2727// }
     28
     29size_t default_heap_expansion() {
     30        return 10 * 1024 * 1024;
     31} // default_heap_expansion
     32
     33size_t default_mmap_start() {
     34        return 512 * 1024 + 1;
     35} // default_mmap_start
    2836
    2937thread Worker {
     
    5866                        for ( k; i ) locns[i][k] = '\345';
    5967                } // for
    60                 for ( i; -~= NoOfAllocs - 1 ) {
     68                for ( i; NoOfAllocs - 1 -~= 0 ) {
    6169                        //sout | (void *)locns[i];
    6270                        for ( k; i ) if ( locns[i][k] != '\345' ) abort( "new/delete corrupt storage2" );
     
    9199
    92100        for ( i; NoOfMmaps ) {
    93                 size_t s = i + malloc_mmap_start();                     // cross over point
     101                size_t s = i + default_mmap_start();                    // cross over point
    94102                char * area = (char *)malloc( s );
    95103                area[0] = '\345'; area[s - 1] = '\345';                 // fill first/last
     
    99107
    100108        for ( i; NoOfMmaps ) {
    101                 size_t s = i + malloc_mmap_start();                     // cross over point
     109                size_t s = i + default_mmap_start();                    // cross over point
    102110                locns[i] = (char *)malloc( s );
    103111                locns[i][0] = '\345'; locns[i][s - 1] = '\345'; // fill first/last
     
    105113        } // for
    106114        for ( i; NoOfMmaps ) {
    107                 size_t s = i + malloc_mmap_start();                     // cross over point
     115                size_t s = i + default_mmap_start();                    // cross over point
    108116                if ( locns[i][0] != '\345' || locns[i][s - 1] != '\345' ||
    109117                         locns[i][malloc_usable_size( locns[i] ) - 1] != '\345' ) abort( "malloc/free corrupt storage" );
     
    143151
    144152        for ( i; NoOfMmaps ) {
    145                 size_t s = i + malloc_mmap_start();                     // cross over point
     153                size_t s = i + default_mmap_start();                    // cross over point
    146154                char * area = (char *)calloc( 1, s );
    147155                if ( area[0] != '\0' || area[s - 1] != '\0' ) abort( "calloc/free corrupt storage4.1" );
     
    154162
    155163        for ( i; NoOfMmaps ) {
    156                 size_t s = i + malloc_mmap_start();                     // cross over point
     164                size_t s = i + default_mmap_start();                    // cross over point
    157165                locns[i] = (char *)calloc( 1, s );
    158166                if ( locns[i][0] != '\0' || locns[i][s - 1] != '\0' ||
     
    163171        } // for
    164172        for ( i; NoOfMmaps ) {
    165                 size_t s = i + malloc_mmap_start();                     // cross over point
     173                size_t s = i + default_mmap_start();                    // cross over point
    166174                if ( locns[i][0] != '\345' || locns[i][s - 1] != '\345' ||
    167175                         locns[i][malloc_usable_size( locns[i] ) - 1] != '\345' ) abort( "calloc/free corrupt storage6" );
     
    190198                //sout | alignments[a];
    191199                for ( i; 1 ~ NoOfMmaps ) {
    192                         size_t s = i + malloc_mmap_start();             // cross over point
     200                        size_t s = i + default_mmap_start();            // cross over point
    193201                        char * area = (char *)memalign( a, s );
    194202                        //sout | i | area;
     
    224232        for ( i; 2 ~ NoOfAllocs ~ 12 ) {
    225233                // initial N byte allocation
    226                 size_t s = i + malloc_mmap_start();                     // cross over point
     234                size_t s = i + default_mmap_start();                    // cross over point
    227235                char * area = (char *)malloc( s );
    228236                area[0] = '\345'; area[s - 1] = '\345';                 // fill first/penultimate byte
     
    261269        for ( i; 2 ~ NoOfAllocs ~ 12 ) {
    262270                // initial N byte allocation
    263                 size_t s = i + malloc_mmap_start();                     // cross over point
     271                size_t s = i + default_mmap_start();                    // cross over point
    264272                char * area = (char *)malloc( s );
    265273                area[0] = '\345'; area[s - 1] = '\345';                 // fill first/penultimate byte
     
    299307        for ( i; 1 ~ 10_000 ~ 12 ) {
    300308                // initial N byte allocation
    301                 size_t s = i + malloc_mmap_start();                     // cross over point
     309                size_t s = i + default_mmap_start();                    // cross over point
    302310                char * area = (char *)calloc( 1, s );
    303311                if ( area[0] != '\0' || area[s - 1] != '\0' ||
     
    473481
    474482int main() {
    475         enum { NoOfWorkers = 4 };
     483        const unsigned int NoOfWorkers = 4;
    476484        {
    477485                processor processors[NoOfWorkers - 1] __attribute__(( unused )); // more than one processor
  • tests/io/away_fair.cfa

    r4520b77e r12df6fe  
    6060                        struct io_uring_sqe * sqe;
    6161                        __u32 idx;
    62                         struct io_context$ * ctx = cfa_io_allocate(&sqe, &idx, 1);
     62                        struct $io_context * ctx = cfa_io_allocate(&sqe, &idx, 1);
    6363
    6464                        zero_sqe(sqe);
  • tests/io/comp_fair.cfa

    r4520b77e r12df6fe  
    2727
    2828struct {
    29         barrier & bar;
    30         int pipe[2];
     29      barrier & bar;
     30      int pipe[2];
    3131
    3232} globals;
     
    6565thread Reader {};
    6666void main(Reader & this) {
    67         char thrash[1];
    68         bool do_read = has_user_level_blocking( (fptr_t)async_read );
     67      bool do_read = has_user_level_blocking( (fptr_t)async_read );
    6968
    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                 }
     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            }
    7777
    78                 block( globals.bar );
     78            block( globals.bar );
    7979
    8080                yield( prng( this, 15 ) );
    8181
    82                 unsigned i = __atomic_add_fetch( &counter, 1, __ATOMIC_SEQ_CST );
     82            unsigned i = __atomic_add_fetch( &counter, 1, __ATOMIC_SEQ_CST );
    8383                if(0 == (i % 100)) sout | i;
    8484
    85                 wait( f );
     85            wait( f );
    8686
    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);
    8989
    90                 block( globals.bar );
    91         }
     90            block( globals.bar );
     91      }
    9292}
    9393
     
    9797thread Writer {};
    9898void main(Writer & this) {
    99         for(TIMES) {
    100                 block( globals.bar );
     99      for(TIMES) {
     100            block( globals.bar );
    101101
    102                 sleep( 1`us );
     102            sleep( 1`us );
    103103
    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);
    108108
    109                 block( globals.bar );
    110         }
     109            block( globals.bar );
     110      }
    111111}
    112112
     
    122122
    123123int 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);
    129129
    130130        processor p;
     
    134134                Spinner s;
    135135                Reader ior;
    136                 Writer iow;
     136            Writer iow;
    137137        }
    138138        sout | "done";
  • tests/loop_else.cfa

    r4520b77e r12df6fe  
    2020
    2121int main() {
    22         // Test some loop options.
     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;
    2326
    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;
     27    do { sout | "false"; } while (false) else { sout | "else"; }                                    sout | nl | nl;
    2828
    29         do { sout | "false"; } while (false) else { sout | "else"; }                                    sout | nl | nl;
    30 
    31         for ( 0 ) { sout | "A"; } else { sout | "else"; }                                                               sout | "zero" | nl;
     29        for ( 0 ) { sout | "A"; } else { sout | "else"; }                                                   sout | "zero" | nl;
    3230        for ( 1 ) { 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;
     31        for ( 10 ) { sout | "A"; } else { sout | "else"; }                                                          sout | nl;
     32        for ( = 10 ) { sout | "A"; } else { sout | "else"; }                                                    sout | nl;
    3533        for ( 1 ~= 10 ~ 2 ) { sout | "B"; } else { sout | "else"; }                                             sout | nl;
    36         for ( 1 -~= 10 ~ 2 ) { sout | "C"; } else { sout | "else"; }                                    sout | nl;
     34        for ( 10 -~= 1 ~ 2 ) { sout | "C"; } else { sout | "else"; }                                    sout | nl;
    3735        for ( 0.5 ~ 5.5 ) { sout | "D"; } else { sout | "else"; }                                               sout | nl;
    38         for ( 0.5 -~ 5.5 ) { sout | "E"; } else { sout | "else"; }                                              sout | nl | nl;
     36        for ( 5.5 -~ 0.5 ) { sout | "E"; } else { sout | "else"; }                                              sout | nl | nl;
    3937
    4038        for ( i; 10 ) { sout | i; } else { sout | "else"; }                                                             sout | nl;
    41         for ( i; ~= 10 ) { sout | i; } else { sout | "else"; }                                                  sout | nl;
     39        for ( i; = 10 ) { sout | i; } else { sout | "else"; }                                                   sout | nl;
    4240        for ( i; 1 ~= 10 ~ 2 ) { sout | i; } else { sout | "else"; }                                    sout | nl;
    43         for ( i; 1 -~= 10 ~ 2 ) { sout | i; } else { sout | "else"; }                                   sout | nl;
     41        for ( i; 10 -~= 1 ~ 2 ) { sout | i; } else { sout | "else"; }                                   sout | nl;
    4442        for ( i; 0.5 ~ 5.5 ) { sout | i; } else { sout | "else"; }                                              sout | nl;
    45         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;
    4644        for ( ui; 2u ~= 10u ~ 2u ) { sout | ui; } else { sout | "else"; }                               sout | nl;
    47         for ( ui; 2u -~= 10u ~ 2u ) { sout | ui; } else { sout | "else"; }                              sout | nl | nl;
     45        for ( ui; 10u -~= 2u ~ 2u ) { sout | ui; } else { sout | "else"; }                              sout | nl | nl;
    4846
    4947        // @ means do nothing
     
    5250                sout | i;
    5351        } else { sout | "else"; }                                                                                                               sout | nl;
    54         for ( i; @ -~ 10 ) {
     52        for ( i; 10 -~ @ ) {
    5553          if ( i < 0 ) break;
    5654                sout | i;
     
    6563                i += 1.7;
    6664        } else { sout | "else"; }                                                                                                               sout | nl;
    67         for ( i; @ -~ 10 ~ 2 ) {
     65        for ( i; 10 -~ @ ~ 2 ) {
    6866          if ( i < 0 ) break;
    6967                sout | i;
     
    7876        for ( N ) { sout | "N"; } else { sout | "else"; }                                                       sout | nl;
    7977        for ( i; N ) { sout | i; } else { sout | "else"; }                                                      sout | nl;
    80         for ( i; ~= N ) { sout | i; } else { sout | "else"; }                                           sout | nl;
    81         for ( i; -~= N ) { sout | i; } else { sout | "else"; }                                          sout | nl | 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;
    8280
    8381        const int start = 3, comp = 10, inc = 2;
    8482        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;
    9983
    10084        for ( S s = (S){0}; s < (S){10,10}; s += (S){1} ) { sout | s; } else { sout | "else"; } sout | nl;
     
    10690        for ( s; (S){0} ~= (S){10,10} ~ (S){1} ) { sout | s; } else { sout | "else"; } sout | nl;
    10791        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;
     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;
    112110}
  • tests/loopctrl.cfa

    r4520b77e r12df6fe  
    1010// Created On       : Wed Aug  8 18:32:59 2018
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Aug 11 23:04:35 2022
    13 // Update Count     : 160
     12// Last Modified On : Thu Dec 12 17:55:26 2019
     13// Update Count     : 108
    1414//
    1515
    1616#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 }
    9017
    9118struct S { int i, j; };
     
    10835
    10936int main() {
    110         // Test some loop options.
    111 
    11237        sout | nlOff;                                                                           // turn off auto newline
    11338        while () { sout | "empty"; break; }                                     sout | nl;
     
    11843        for ( 1 ) { sout | "A"; }                                                       sout | nl;
    11944        for ( 10 ) { sout | "A"; }                                                      sout | nl;
    120         for ( ~= 10 ) { sout | "A"; }                                           sout | nl;
     45        for ( = 10 ) { sout | "A"; }                                            sout | nl;
    12146        for ( 1 ~= 10 ~ 2 ) { sout | "B"; }                                     sout | nl;
    122         for ( 1 -~= 10 ~ 2 ) { sout | "C"; }                            sout | nl;
     47        for ( 10 -~= 1 ~ 2 ) { sout | "C"; }                            sout | nl;
    12348        for ( 0.5 ~ 5.5 ) { sout | "D"; }                                       sout | nl;
    124         for ( 0.5 -~ 5.5 ) { sout | "E"; }                                      sout | nl | nl;
     49        for ( 5.5 -~ 0.5 ) { sout | "E"; }                                      sout | nl | nl;
    12550
    12651        for ( i; 10 ) { sout | i; }                                                     sout | nl;
    127         for ( i; ~= 10 ) { sout | i; }                                          sout | nl;
     52        for ( i; = 10 ) { sout | i; }                                           sout | nl;
    12853        for ( i; 1 ~= 10 ~ 2 ) { sout | i; }                            sout | nl;
    129         for ( i; 1 -~= 10 ~ 2 ) { sout | i; }                           sout | nl;
     54        for ( i; 10 -~= 1 ~ 2 ) { sout | i; }                           sout | nl;
    13055        for ( i; 0.5 ~ 5.5 ) { sout | i; }                                      sout | nl;
    131         for ( i; 0.5 -~ 5.5 ) { sout | i; }                                     sout | nl;
     56        for ( i; 5.5 -~ 0.5 ) { sout | i; }                                     sout | nl;
    13257        for ( ui; 2u ~= 10u ~ 2u ) { sout | ui; }                       sout | nl;
    133         for ( ui; 2u -~= 10u ~ 2u ) { sout | ui; }                      sout | nl | nl;
     58        for ( ui; 10u -~= 2u ~ 2u ) { sout | ui; }                      sout | nl | nl;
    13459
    13560        // @ means do nothing
     
    13863                sout | i;
    13964        }                                                                                                       sout | nl;
    140         for ( i; @ -~ 10 ) {
     65        for ( i; 10 -~ @ ) {
    14166          if ( i < 0 ) break;
    14267                sout | i;
     
    15176                i += 1.7;
    15277        }                                                                                                       sout | nl;
    153         for ( i; @ -~ 10 ~ 2 ) {
     78        for ( i; 10 -~ @ ~ 2 ) {
    15479          if ( i < 0 ) break;
    15580                sout | i;
     
    16489        for ( N ) { sout | "N"; }                                                       sout | nl;
    16590        for ( i; N ) { sout | i; }                                                      sout | nl;
    166         for ( i; ~= N ) { sout | i; }                                           sout | nl;
    167         for ( i; -~= N ) { sout | i; }                                          sout | nl | nl;
     91        for ( i; = N ) { sout | i; }                                            sout | nl;
     92        for ( i; N -~ 0 ) { sout | i; }                                         sout | nl | nl;
    16893
    16994        const int start = 3, comp = 10, inc = 2;
    17095        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;
    18596
    18697        for ( S s = (S){0}; s < (S){10,10}; s += (S){1} ) { sout | s; } sout | nl;
     
    192103        for ( s; (S){0} ~= (S){10,10} ~ (S){1} ) { sout | s; } sout | nl;
    193104        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;
     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;
    198109
    199         fred();
     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;
    200123}
    201124
  • tests/pybin/settings.py

    r4520b77e r12df6fe  
    9797                self.path   = "debug" if value else "nodebug"
    9898
     99class AST:
     100        def __init__(self, ast):
     101                if ast == "new":
     102                        self.target = ast
     103                        self.string = "New AST"
     104                        self.flags  = """AST_FLAGS=-XCFA,--new-ast"""
     105                elif ast == "old":
     106                        self.target = ast
     107                        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.target
     112                        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
    99121class Install:
    100122        def __init__(self, value):
     
    119141
    120142def init( options ):
     143        global all_ast
    121144        global all_arch
    122145        global all_debug
    123146        global all_install
     147        global ast
    124148        global arch
    125149        global debug
     
    136160        global timeout2gdb
    137161
     162        all_ast      = [AST(o)          for o in list(dict.fromkeys(options.ast    ))] if options.ast  else [AST(None)]
    138163        all_arch     = [Architecture(o) for o in list(dict.fromkeys(options.arch   ))] if options.arch else [Architecture(None)]
    139164        all_debug    = [Debug(o)        for o in list(dict.fromkeys(options.debug  ))]
  • tests/pybin/test_run.py

    r4520b77e r12df6fe  
    1111                self.path = ''
    1212                self.arch = ''
     13                self.astv = ''
    1314
    1415        def toString(self):
    15                 return "{:25s} ({:5s} arch: {:s})".format( self.name, self.arch if self.arch else "Any", self.target() )
     16                return "{:25s} ({:5s} arch, {:s} ast: {:s})".format( self.name, self.arch if self.arch else "Any", self.astv if self.astv else "Any", self.target() )
    1617
    1718        def prepare(self):
     
    2122        def expect(self):
    2223                arch = '' if not self.arch else ".%s" % self.arch
    23                 return os.path.normpath( os.path.join(settings.SRCDIR  , self.path, ".expect", "%s%s.txt" % (self.name,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)) )
    2426
    2527        def error_log(self):
     
    5658
    5759        @staticmethod
    58         def new_target(target, arch):
     60        def new_target(target, arch, astv):
    5961                test = Test()
    6062                test.name = os.path.basename(target)
    6163                test.path = os.path.relpath (os.path.dirname(target), settings.SRCDIR)
    6264                test.arch = arch.target if arch else ''
     65                test.astv = astv.target if astv else ''
    6366                return test
    6467
  • tests/pybin/tools.py

    r4520b77e r12df6fe  
    182182                '-s' if silent else None,
    183183                test_param,
     184                settings.ast.flags,
    184185                settings.arch.flags,
    185186                settings.debug.flags,
  • tests/quotedKeyword.cfa

    r4520b77e r12df6fe  
    3131        ``__int128, ``__label__, ``long, ``lvalue, ``_Noreturn, ``__builtin_offsetof, ``otype, ``register, ``restrict,
    3232        ``__restrict, ``__restrict__, ``return, ``short, ``signed, ``__signed, ``__signed__, ``sizeof, ``static,
    33         ``_Static_assert, ``struct, ``switch, ``_thread, ``_Thread_local, ``throw, ``throwResume, ``trait, ``try, ``typedef,
     33        ``_Static_assert, ``struct, ``switch, ``_Thread_local, ``throw, ``throwResume, ``trait, ``try, ``typedef,
    3434        ``typeof, ``__typeof, ``__typeof__, ``union, ``unsigned, ``__builtin_va_list, ``void, ``volatile, ``__volatile,
    3535        ``__volatile__, ``while;
  • tests/test.py

    r4520b77e r12df6fe  
    2323
    2424        def match_test(path):
    25                 match = re.search("^%s\/([\w\/\-_]*).expect\/([\w\-_]+)(\.[\w\-_]+)?\.txt$" % settings.SRCDIR, path)
     25                match = re.search("^%s\/([\w\/\-_]*).expect\/([\w\-_]+)(\.nast|\.oast)?(\.[\w\-_]+)?\.txt$" % settings.SRCDIR, path)
    2626                if match :
    2727                        test = Test()
    2828                        test.name = match.group(2)
    2929                        test.path = match.group(1)
    30                         test.arch = match.group(3)[1:] if match.group(3) else None
     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)
    3140
    3241                        expected.append(test)
     
    7281                                # this is a valid name, let's check if it already exists
    7382                                found = [test for test in all_tests if canonical_path( test.target() ) == testname]
    74                                 setup = itertools.product(settings.all_arch if options.arch else [None])
     83                                setup = itertools.product(settings.all_arch if options.arch else [None], settings.all_ast if options.ast else [None])
    7584                                if not found:
    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] )
     85                                        # it's a new name, create it according to the name and specified architecture/ast version
     86                                        tests.extend( [Test.new_target(testname, arch, ast) for arch, ast in setup] )
    7887                                elif len(found) == 1 and not found[0].arch:
    7988                                        # we found a single test, the user better be wanting to create a cross platform test
    8089                                        if options.arch:
    8190                                                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)
    8293                                        else:
    8394                                                tests.append( found[0] )
    8495                                else:
    8596                                        # this test is already cross platform, just add a test for each platform the user asked
    86                                         tests.extend( [Test.new_target(testname, arch) for arch in setup] )
     97                                        tests.extend( [Test.new_target(testname, arch, ast) for arch, ast in setup] )
    8798
    8899                                        # print a warning if it users didn't ask for a specific architecture
     
    91102                                                print('WARNING: "%s", test has architecture specific expected files but --arch was not specified, regenerating only for current host' % testname, file=sys.stderr)
    92103
     104
     105                                        # print a warning if it users didn't ask for a specific ast version
     106                                        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
    93110                        else :
    94111                                print('ERROR: "%s", tests are not allowed to end with a C/C++/CFA extension, ignoring it' % testname, file=sys.stderr)
     
    110127        # create a parser with the arguments for the tests script
    111128        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)
    112130        parser.add_argument('--arch', help='Test for specific architecture', type=comma_separated(str), default=None)
    113131        parser.add_argument('--debug', help='Run all tests in debug or release', type=comma_separated(yes_no), default='yes')
     
    333351
    334352                # print the possible options
    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='')
     353                print("-h --help --debug --dry-run --list --ast=new --ast=old --arch --all --regenerate-expected --archive-errors --install --timeout --global-timeout --timeout-with-gdb -j --jobs -I --include -E --exclude --continue ", end='')
    336354                print(" ".join(map(lambda t: "%s" % (t.target()), tests)))
    337355
     
    404422        # for each build configurations, run the test
    405423        with Timed() as total_dur:
    406                 for arch, debug, install in itertools.product(settings.all_arch, settings.all_debug, settings.all_install):
     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
    407426                        settings.arch    = arch
    408427                        settings.debug   = debug
     
    411430                        # filter out the tests for a different architecture
    412431                        # tests are the same across debug/install
    413                         local_tests = settings.arch.filter( tests )
     432                        local_tests = settings.ast.filter( tests )
     433                        local_tests = settings.arch.filter( local_tests )
    414434
    415435                        # check the build configuration works
     
    418438
    419439                        # print configuration
    420                         print('%s %i tests on %i cores (%s - %s)' % (
     440                        print('%s %i tests on %i cores (%s:%s - %s)' % (
    421441                                'Regenerating' if settings.generating else 'Running',
    422442                                len(local_tests),
    423443                                jobs,
     444                                settings.ast.string,
    424445                                settings.arch.string,
    425446                                settings.debug.string
Note: See TracChangeset for help on using the changeset viewer.