Changes in / [12df6fe:4520b77e]


Ignore:
Files:
55 added
83 deleted
151 edited

Legend:

Unmodified
Added
Removed
  • Jenkins/FullBuild

    r12df6fe r4520b77e  
    1818
    1919                                parallel (
    20                                         gcc_08_x86_new: { trigger_build( 'gcc-8',   'x86' ) },
    21                                         gcc_07_x86_new: { trigger_build( 'gcc-7',   'x86' ) },
    22                                         gcc_06_x86_new: { trigger_build( 'gcc-6',   'x86' ) },
     20                                        gcc_08_x86_new: { trigger_build( 'gcc-10',  'x86' ) },
     21                                        gcc_07_x86_new: { trigger_build( 'gcc-9',   'x86' ) },
    2322                                        gcc_10_x64_new: { trigger_build( 'gcc-10',  'x64' ) },
    2423                                        gcc_09_x64_new: { trigger_build( 'gcc-9',   'x64' ) },
  • Jenkinsfile

    r12df6fe r4520b77e  
    103103                        }
    104104
    105                         ast = Settings.NewAST ? "--enable-new-ast" : "--disable-new-ast"
    106 
    107                         sh "${SrcDir}/configure CXX=${Settings.Compiler.CXX} CC=${Settings.Compiler.CC} ${Settings.Architecture.flags} AR=gcc-ar RANLIB=gcc-ranlib ${targets} ${ast} --quiet --prefix=${BuildDir}"
     105                        sh "${SrcDir}/configure CXX=${Settings.Compiler.CXX} CC=${Settings.Compiler.CC} ${Settings.Architecture.flags} AR=gcc-ar RANLIB=gcc-ranlib ${targets} --quiet --prefix=${BuildDir}"
    108106
    109107                        // Configure libcfa
     
    152150                sh 'ulimit -a'
    153151
    154                 Tools.BuildStage('Test: short', !Settings.RunAllTests) {
     152                jopt = '-j $(nproc)'
     153
     154                Tools.BuildStage('Test: Debug', true) {
    155155                        dir (BuildDir) {
    156156                                //Run the tests from the tests directory
    157                                 sh "make --no-print-directory -C tests archiveerrors=${BuildDir}/tests/crashes/short"
     157                                sh """make ${jopt} --no-print-directory -C tests timeouts="--timeout=600 --global-timeout=14400" all-tests debug=yes archiveerrors=${BuildDir}/tests/crashes/full-debug"""
    158158                        }
    159159                }
    160160
    161                 Tools.BuildStage('Test: full', Settings.RunAllTests) {
     161                Tools.BuildStage('Test: Release', Settings.RunAllTests) {
    162162                        dir (BuildDir) {
    163                                         jopt = '-j $(nproc)'
    164                                         if( Settings.Architecture.node == 'x86' ) {
    165                                                 jopt = '-j2'
    166                                         }
    167                                         //Run the tests from the tests directory
    168                                         sh """make ${jopt} --no-print-directory -C tests timeouts="--timeout=600 --global-timeout=14400" all-tests debug=yes archiveerrors=${BuildDir}/tests/crashes/full-debug"""
    169                                         sh """make ${jopt} --no-print-directory -C tests timeouts="--timeout=600 --global-timeout=14400" all-tests debug=no  archiveerrors=${BuildDir}/tests/crashes/full-nodebug"""
     163                                //Run the tests from the tests directory
     164                                sh """make ${jopt} --no-print-directory -C tests timeouts="--timeout=600 --global-timeout=14400" all-tests debug=no  archiveerrors=${BuildDir}/tests/crashes/full-nodebug"""
    170165                        }
    171166                }
     
    281276        public final CC_Desc Compiler
    282277        public final Arch_Desc Architecture
    283         public final Boolean NewAST
    284278        public final Boolean RunAllTests
    285279        public final Boolean RunBenchmark
     
    339333
    340334                this.IsSandbox          = (branch == "jenkins-sandbox")
    341                 this.NewAST             = param.NewAST
    342335                this.RunAllTests        = param.RunAllTests
    343336                this.RunBenchmark       = param.RunBenchmark
     
    349342                this.DescShort = "${ this.Compiler.name }:${ this.Architecture.name }${full}"
    350343
    351                 final ast = this.NewAST ? "New AST" : "Old AST"
    352344                this.DescLong = """Compiler              : ${ this.Compiler.name } (${ this.Compiler.CXX }/${ this.Compiler.CC })
    353 AST Version             : ${ ast.toString() }
    354345Architecture            : ${ this.Architecture.name }
    355346Arc Flags               : ${ this.Architecture.flags }
     
    390381                                ],                                                                                              \
    391382                                [$class: 'BooleanParameterDefinition',                                                  \
    392                                         description: 'If true, build compiler using new AST',           \
    393                                         name: 'NewAST',                                                                         \
    394                                         defaultValue: true,                                                             \
    395                                 ],                                                                                              \
    396                                 [$class: 'BooleanParameterDefinition',                                                  \
    397                                         description: 'If false, only the quick test suite is ran',              \
     383                                        description: 'If false, the test suite is only ran in debug',   \
    398384                                        name: 'RunAllTests',                                                            \
    399385                                        defaultValue: false,                                                            \
  • benchmark/basic/tls_fetch_add.c

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

    r12df6fe r4520b77e  
    163163        {
    164164                int pipe_cnt = options.clopts.nworkers * 2;
     165                // int pipe_cnt = 0;
    165166                int pipe_off;
    166167                int * fds;
     
    302303                                        sout | "done";
    303304
     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
    304313                                        sout | "Stopping accept threads..." | nonl; flush( sout );
    305314                                        for(i; nacceptors) {
     
    346355                                        }
    347356                                        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                                        }
    348365
    349366                                        sout | "Stopping connection threads..." | nonl; flush( sout );
     
    386403        }
    387404        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         }
    396405}
    397406
  • benchmark/io/http/printer.cfa

    r12df6fe r4520b77e  
    22#include "options.hfa"
    33
     4#include <clock.hfa>
    45#include <fstream.hfa>
    56#include <stats.hfa>
     
    2223        to.maxfd = max( to.maxfd, from.maxfd);
    2324        to.close += from.close; from.close = 0;
     25        to.error += from.error; from.error = 0;
    2426        to.calls += from.calls; from.calls = 0;
     27        to.eagain += from.eagain; from.eagain = 0;
    2528        to.tries += from.tries; from.tries = 0;
    2629        to.header += from.header; from.header = 0;
     
    8083                        uint64_t accp_open = this.stats.accpt.accepts;
    8184                        uint64_t accp_clse = this.stats.send.close;
     85                        uint64_t accp_errs = this.stats.send.error;
    8286                        uint64_t accp_live = accp_open - accp_clse;
    8387
     88                        sout | "-----" | time() | "-----";
    8489                        sout | "----- Acceptor Stats -----";
    85                         sout | "accepts : " | eng3(accp_open) |"opened," | eng3(accp_clse) |"closed," | eng3(accp_live) |"live";
     90                        sout | "accepts : " | eng3(accp_open) |"opened," | eng3(accp_clse) |"closed," | eng3(accp_live) |"live," | eng3(accp_errs) |"errors";
    8691                        sout | "accept  : " | eng3(this.stats.accpt.accepts) | "calls," | eng3(this.stats.accpt.eagains) | "eagains," | eng3(this.stats.accpt.creates) | " thrds";
    8792                        sout | nl;
     
    8994                        sout | "----- Connection Stats -----";
    9095                        sout | "max fd    : " | this.stats.send.maxfd;
    91                         sout | "sendfile  : " | eng3(calls) | "calls," | eng3(tries) | "tries (" | ratio | " try/call)";
     96                        sout | "sendfile  : " | eng3(calls) | "calls," | eng3(tries) | "tries (" | ratio | " try/call)," | eng3(this.stats.send.eagain) | "eagains";
    9297                        sout | "            " | eng3(header) | "header," | eng3(splcin) | "splice in," | eng3(splcot) | "splice out";
    93                         sout | " - zipf sizes:";
    94                         for(i; zipf_cnts) {
    95                                 double written = avgrd[i].calls > 0 ? ((double)avgrd[i].bytes) / avgrd[i].calls : 0;
    96                                 sout | "        " | zipf_sizes[i] | "bytes," | avgrd[i].calls | "shorts," | written | "written";
    97                         }
     98                        // sout | " - zipf sizes:";
     99                        // for(i; zipf_cnts) {
     100                        //      double written = avgrd[i].calls > 0 ? ((double)avgrd[i].bytes) / avgrd[i].calls : 0;
     101                        //      sout | "        " | zipf_sizes[i] | "bytes," | avgrd[i].calls | "shorts," | written | "written";
     102                        // }
    98103                }
    99104
  • benchmark/io/http/printer.hfa

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

    r12df6fe r4520b77e  
    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);
    2021        // #include <linux/io_uring.h>
    2122}
     
    2930#define PLAINTEXT_MEMCPY
    3031#define PLAINTEXT_NOCOPY
    31 #define LINKED_IO
     32// #define LINKED_IO
     33#define TRUE_SENDFILE
    3234
    3335static inline __s32 wait_res( io_future_t & this ) {
     
    7173                int ret = cfa_send(fd, it, len, 0, CFA_IO_LAZY);
    7274                if( ret < 0 ) {
    73                         if( errno == ECONNRESET || errno == EPIPE ) { close(fd); return -ECONNRESET; }
    74                         if( errno == EAGAIN || errno == EWOULDBLOCK) return -EAGAIN;
     75                        if( errno == ECONNRESET || errno == EPIPE || errno == EBADF ) {
     76                                ret = close(fd);
     77                                if( ret != 0 ) abort( "close in 'answer' error: (%d) %s\n", (int)errno, strerror(errno) );
     78                                return -ECONNRESET;
     79                        }
    7580
    7681                        abort( "'answer error' error: (%d) %s\n", (int)errno, strerror(errno) );
     
    8489}
    8590
    86 int answer_error( int fd, HttpCode code ) {
    87         /* paranoid */ assert( code < KNOWN_CODES && code != OK200 );
    88         int idx = (int)code;
    89         return answer( fd, http_msgs[idx]->msg, http_msgs[idx]->len );
    90 }
     91// int answer_error( int fd, HttpCode code ) {
     92//      /* paranoid */ assert( code < KNOWN_CODES && code != OK200 );
     93//      int idx = (int)code;
     94//      return answer( fd, http_msgs[idx]->msg, http_msgs[idx]->len );
     95// }
    9196
    9297static int fill_header(char * it, size_t size) {
     
    104109}
    105110
    106 #if defined(PLAINTEXT_NOCOPY)
    107 int answer_plaintext( int fd ) {
    108         return answer(fd, http_msgs[OK200_PlainText]->msg, http_msgs[OK200_PlainText]->len); // +1 cause snprintf doesn't count nullterminator
    109 }
    110 #elif defined(PLAINTEXT_MEMCPY)
    111 #define TEXTSIZE 15
    112 int answer_plaintext( int fd ) {
    113         char text[] = "Hello, World!\n\n";
    114         char ts[] = xstr(TEXTSIZE) " \n\n";
    115         _Static_assert(sizeof(text) - 1 == TEXTSIZE);
    116         char buffer[512 + TEXTSIZE];
    117         char * it = buffer;
    118         memcpy(it, http_msgs[OK200]->msg, http_msgs[OK200]->len);
    119         it += http_msgs[OK200]->len;
    120         int len = http_msgs[OK200]->len;
    121         memcpy(it, ts, sizeof(ts) - 1);
    122         it += sizeof(ts) - 1;
    123         len += sizeof(ts) - 1;
    124         memcpy(it, text, TEXTSIZE);
    125         return answer(fd, buffer, len + TEXTSIZE);
    126 }
    127 #elif defined(PLAINTEXT_1WRITE)
    128 int answer_plaintext( int fd ) {
    129         char text[] = "Hello, World!\n\n";
    130         char buffer[512 + sizeof(text)];
    131         char * it = buffer;
    132         memcpy(it, http_msgs[OK200]->msg, http_msgs[OK200]->len);
    133         it += http_msgs[OK200]->len;
    134         int len = http_msgs[OK200]->len;
    135         int r = snprintf(it, 512 - len, "%d \n\n", sizeof(text));
    136         it += r;
    137         len += r;
    138         memcpy(it, text, sizeof(text));
    139         return answer(fd, buffer, len + sizeof(text));
    140 }
    141 #else
    142 int answer_plaintext( int fd ) {
    143         char text[] = "Hello, World!\n\n";
    144         int ret = answer_header(fd, sizeof(text));
    145         if( ret < 0 ) return ret;
    146         return answer(fd, text, sizeof(text));
    147 }
    148 #endif
    149 
    150 int answer_empty( int fd ) {
    151         return answer_header(fd, 0);
    152 }
    153 
    154 static int sendfile( int pipe[2], int fd, int ans_fd, size_t count ) {
    155         unsigned sflags = SPLICE_F_MOVE; // | SPLICE_F_MORE;
    156         off_t offset = 0;
    157         ssize_t ret;
    158         SPLICE1: while(count > 0) {
    159                 ret = cfa_splice(ans_fd, &offset, pipe[1], 0p, count, sflags, CFA_IO_LAZY);
    160                 if( ret < 0 ) {
    161                         if( errno != EAGAIN && errno != EWOULDBLOCK) continue SPLICE1;
    162                         if( errno == ECONNRESET ) return -ECONNRESET;
    163                         if( errno == EPIPE ) return -EPIPE;
    164                         abort( "splice [0] error: (%d) %s\n", (int)errno, strerror(errno) );
    165                 }
    166 
    167                 count -= ret;
    168                 size_t in_pipe = ret;
    169                 SPLICE2: while(in_pipe > 0) {
    170                         ret = cfa_splice(pipe[0], 0p, fd, 0p, in_pipe, sflags, CFA_IO_LAZY);
    171                         if( ret < 0 ) {
    172                                 if( errno != EAGAIN && errno != EWOULDBLOCK) continue SPLICE2;
    173                                 if( errno == ECONNRESET ) return -ECONNRESET;
    174                                 if( errno == EPIPE ) return -EPIPE;
    175                                 abort( "splice [1] error: (%d) %s\n", (int)errno, strerror(errno) );
     111// #if defined(PLAINTEXT_NOCOPY)
     112// int answer_plaintext( int fd ) {
     113//      return answer(fd, http_msgs[OK200_PlainText]->msg, http_msgs[OK200_PlainText]->len); // +1 cause snprintf doesn't count nullterminator
     114// }
     115// #elif defined(PLAINTEXT_MEMCPY)
     116// #define TEXTSIZE 15
     117// int answer_plaintext( int fd ) {
     118//      char text[] = "Hello, World!\n\n";
     119//      char ts[] = xstr(TEXTSIZE) " \n\n";
     120//      _Static_assert(sizeof(text) - 1 == TEXTSIZE);
     121//      char buffer[512 + TEXTSIZE];
     122//      char * it = buffer;
     123//      memcpy(it, http_msgs[OK200]->msg, http_msgs[OK200]->len);
     124//      it += http_msgs[OK200]->len;
     125//      int len = http_msgs[OK200]->len;
     126//      memcpy(it, ts, sizeof(ts) - 1);
     127//      it += sizeof(ts) - 1;
     128//      len += sizeof(ts) - 1;
     129//      memcpy(it, text, TEXTSIZE);
     130//      return answer(fd, buffer, len + TEXTSIZE);
     131// }
     132// #elif defined(PLAINTEXT_1WRITE)
     133// int answer_plaintext( int fd ) {
     134//      char text[] = "Hello, World!\n\n";
     135//      char buffer[512 + sizeof(text)];
     136//      char * it = buffer;
     137//      memcpy(it, http_msgs[OK200]->msg, http_msgs[OK200]->len);
     138//      it += http_msgs[OK200]->len;
     139//      int len = http_msgs[OK200]->len;
     140//      int r = snprintf(it, 512 - len, "%d \n\n", sizeof(text));
     141//      it += r;
     142//      len += r;
     143//      memcpy(it, text, sizeof(text));
     144//      return answer(fd, buffer, len + sizeof(text));
     145// }
     146// #else
     147// int answer_plaintext( int fd ) {
     148//      char text[] = "Hello, World!\n\n";
     149//      int ret = answer_header(fd, sizeof(text));
     150//      if( ret < 0 ) return ret;
     151//      return answer(fd, text, sizeof(text));
     152// }
     153// #endif
     154
     155// int answer_empty( int fd ) {
     156//      return answer_header(fd, 0);
     157// }
     158
     159static int sendfile( int pipe[2], int fd, int ans_fd, size_t count, sendfile_stats_t & stats ) {
     160        int zipf_idx = -1;
     161        STATS: for(i; zipf_cnts) {
     162                if(count <= zipf_sizes[i]) {
     163                        zipf_idx = i;
     164                        break STATS;
     165                }
     166        }
     167        if(zipf_idx < 0) mutex(serr) serr | "SENDFILE" | count | " greated than biggest zipf file";
     168
     169        #if defined(TRUE_SENDFILE)
     170                off_t offset = 0;
     171                ssize_t ret;
     172                int flags = fcntl(fd, F_GETFL);
     173                if(flags < 0) abort("getfl in 'true sendfile' error: (%d) %s\n", (int)errno, strerror(errno) );
     174                ret = fcntl(fd, F_SETFL, flags | O_NONBLOCK);
     175                if(ret < 0) abort("setfl in 'true sendfile' error: (%d) %s\n", (int)errno, strerror(errno) );
     176
     177                while(count) {
     178                        ret = sendfile(fd, ans_fd, &offset, count);
     179                        if( ret <= 0 ) {
     180                                if( errno == EAGAIN || errno == EWOULDBLOCK ) {
     181                                        stats.eagain++;
     182                                        yield();
     183                                        continue;
     184                                }
     185                                if( errno == ECONNRESET || errno == EPIPE ) {
     186                                        ret = close(fd);
     187                                        if( ret != 0 ) abort( "close in 'true sendfile' error: (%d) %s\n", (int)errno, strerror(errno) );
     188                                        return -ECONNRESET;
     189                                }
     190                                abort( "sendfile error: %d (%d) %s\n", ret, (int)errno, strerror(errno) );
    176191                        }
    177                         in_pipe -= ret;
    178                 }
    179 
    180         }
     192                        count -= ret;
     193                        stats.splcin++;
     194                        if(count > 0) stats.avgrd[zipf_idx].calls++;
     195                        stats.avgrd[zipf_idx].bytes += ret;
     196                }
     197
     198                ret = fcntl(fd, F_SETFL, flags & ~O_NONBLOCK);
     199                if(ret < 0) abort("resetfl in 'true sendfile' error: (%d) %s\n", (int)errno, strerror(errno) );
     200        #else
     201                #error not implemented
     202                // unsigned sflags = SPLICE_F_MOVE; // | SPLICE_F_MORE;
     203                // off_t offset = 0;
     204                // ssize_t ret;
     205                // SPLICE1: while(count > 0) {
     206                //      stats.tries++;
     207                //      // ret = cfa_splice(ans_fd, &offset, pipe[1], 0p, count, sflags, CFA_IO_LAZY);
     208                //      ret = splice(ans_fd, &offset, pipe[1], 0p, count, sflags);
     209                //      if( ret <= 0 ) {
     210                //              if( errno == ECONNRESET || errno == EPIPE ) {
     211                //                      ret = close(fd);
     212                //                      if( ret != 0 ) abort( "close in 'sendfile splice in' error: (%d) %s\n", (int)errno, strerror(errno) );
     213                //                      return -ECONNRESET;
     214                //              }
     215                //              abort( "splice [0] error: %d (%d) %s\n", ret, (int)errno, strerror(errno) );
     216                //      }
     217                //      count -= ret;
     218                //      stats.splcin++;
     219                //      if(count > 0) stats.avgrd[zipf_idx].calls++;
     220                //      stats.avgrd[zipf_idx].bytes += ret;
     221
     222                //      size_t in_pipe = ret;
     223                //      SPLICE2: while(in_pipe > 0) {
     224                //              ret = cfa_splice(pipe[0], 0p, fd, 0p, in_pipe, sflags, CFA_IO_LAZY);
     225                //              // ret = splice(pipe[0], 0p, fd, 0p, in_pipe, sflags);
     226                //              if( ret <= 0 ) {
     227                //                      if( errno == ECONNRESET || errno == EPIPE ) {
     228                //                              ret = close(fd);
     229                //                              if( ret != 0 ) abort( "close in 'sendfile splice out' error: (%d) %s\n", (int)errno, strerror(errno) );
     230                //                              return -ECONNRESET;
     231                //                      }
     232                //                      abort( "splice [1] error: %d (%d) %s\n", ret, (int)errno, strerror(errno) );
     233                //              }
     234                //              stats.splcot++;
     235                //              in_pipe -= ret;
     236                //      }
     237
     238                // }
     239        #endif
     240
    181241        return count;
    182242}
    183243
    184 enum FSM_STATE {
    185         Initial,
    186         Retry,
    187         Error,
    188         Done,
    189 };
    190 
    191 struct FSM_Result {
    192         FSM_STATE state;
    193         int error;
    194 };
    195 
    196 static inline void ?{}(FSM_Result & this) { this.state = Initial; this.error = 0; }
    197 static inline bool is_error(FSM_Result & this) { return Error == this.state; }
    198 static inline bool is_done(FSM_Result & this) { return Done == this.state; }
    199 
    200 static inline int error(FSM_Result & this, int error) {
    201         this.error = error;
    202         this.state = Error;
    203         return error;
    204 }
    205 
    206 static inline int done(FSM_Result & this) {
    207         this.state = Done;
    208         return 0;
    209 }
    210 
    211 static inline int retry(FSM_Result & this) {
    212         this.state = Retry;
    213         return 0;
    214 }
    215 
    216 static inline int need(FSM_Result & this) {
    217         switch(this.state) {
    218                 case Initial:
    219                 case Retry:
    220                         return 1;
    221                 case Error:
    222                         if(this.error == 0) mutex(serr) serr | "State marked error but code is 0";
    223                 case Done:
    224                         return 0;
    225         }
    226 }
    227 
    228 // Generator that handles sending the header
    229 generator header_g {
    230         io_future_t f;
    231         const char * next;
    232         int fd; size_t len;
    233         FSM_Result res;
    234 };
    235 
    236 static inline void ?{}(header_g & this, int fd, const char * it, size_t len ) {
    237         this.next = it;
    238         this.fd = fd;
    239         this.len = len;
    240 }
    241 
    242 static inline void fill(header_g & this, struct io_uring_sqe * sqe) {
    243         zero_sqe(sqe);
    244         sqe->opcode = IORING_OP_SEND;
    245         sqe->user_data = (uintptr_t)&this.f;
    246         sqe->flags = IOSQE_IO_LINK;
    247         sqe->fd = this.fd;
    248         sqe->addr = (uintptr_t)this.next;
    249         sqe->len = this.len;
    250 }
    251 
    252 static inline int error(header_g & this, int error) {
    253         int ret = close(this.fd);
    254         if( ret != 0 ) {
    255                 mutex(serr) serr | "Failed to close fd" | errno;
    256         }
    257         return error(this.res, error);
    258 }
    259 
    260 static inline int wait_and_process(header_g & this, sendfile_stats_t & stats) {
    261         wait(this.f);
    262 
    263         // Did something crazy happen?
    264         if(this.f.result > this.len) {
    265                 mutex(serr) serr | "HEADER sent too much!";
    266                 return error(this, -ERANGE);
    267         }
    268 
    269         // Something failed?
    270         if(this.f.result < 0) {
    271                 int error = -this.f.result;
    272                 if( error == ECONNRESET ) return error(this, -ECONNRESET);
    273                 if( error == EPIPE ) return error(this, -EPIPE);
    274                 if( error == ECANCELED ) {
    275                         mutex(serr) serr | "HEADER was cancelled, WTF!";
    276                         return error(this, -ECONNRESET);
    277                 }
    278                 if( error == EAGAIN || error == EWOULDBLOCK) {
    279                         mutex(serr) serr | "HEADER got eagain, WTF!";
    280                         return error(this, -ECONNRESET);
    281                 }
    282         }
    283 
    284         // Done?
    285         if(this.f.result == this.len) {
    286                 return done(this.res);
    287         }
    288 
    289         stats.header++;
    290 
    291         // It must be a Short 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
    299 struct splice_in_t {
    300         io_future_t f;
    301         int fd; int pipe; size_t len; off_t off;
    302         short zipf_idx;
    303         FSM_Result res;
    304 };
    305 
    306 static inline void ?{}(splice_in_t & this, int fd, int pipe, size_t len) {
    307         this.fd = fd;
    308         this.pipe = pipe;
    309         this.len = len;
    310         this.off = 0;
    311         this.zipf_idx = -1;
    312         STATS: for(i; zipf_cnts) {
    313                 if(len <= zipf_sizes[i]) {
    314                         this.zipf_idx = i;
    315                         break STATS;
    316                 }
    317         }
    318         if(this.zipf_idx < 0) mutex(serr) serr | "SPLICE IN" | len | " greated than biggest zipf file";
    319 }
    320 
    321 static inline void fill(splice_in_t & this, struct io_uring_sqe * sqe) {
    322         zero_sqe(sqe);
    323         sqe->opcode = IORING_OP_SPLICE;
    324         sqe->user_data = (uintptr_t)&this.f;
    325         sqe->flags = 0;
    326         sqe->splice_fd_in = this.fd;
    327         sqe->splice_off_in = this.off;
    328         sqe->fd = this.pipe;
    329         sqe->off = (__u64)-1;
    330         sqe->len = this.len;
    331         sqe->splice_flags = SPLICE_F_MOVE;
    332 }
    333 
    334 static inline int wait_and_process(splice_in_t & this, sendfile_stats_t & stats ) {
    335         wait(this.f);
    336 
    337         // Something failed?
    338         if(this.f.result < 0) {
    339                 int error = -this.f.result;
    340                 if( error == ECONNRESET ) return error(this.res, -ECONNRESET);
    341                 if( error == EPIPE ) return error(this.res, -EPIPE);
    342                 if( error == ECANCELED ) {
    343                         mutex(serr) serr | "SPLICE IN was cancelled, WTF!";
    344                         return error(this.res, -ECONNRESET);
    345                 }
    346                 if( error == EAGAIN || error == EWOULDBLOCK) {
    347                         mutex(serr) serr | "SPLICE IN got eagain, WTF!";
    348                         return error(this.res, -ECONNRESET);
    349                 }
    350                 mutex(serr) serr | "SPLICE IN got" | error | ", WTF!";
    351                 return error(this.res, -ECONNRESET);
    352         }
    353 
    354         // Did something crazy happen?
    355         if(this.f.result > this.len) {
    356                 mutex(serr) serr | "SPLICE IN spliced too much!";
    357                 return error(this.res, -ERANGE);
    358         }
    359 
    360         // Done?
    361         if(this.f.result == this.len) {
    362                 return done(this.res);
    363         }
    364 
    365         stats.splcin++;
    366         stats.avgrd[this.zipf_idx].calls++;
    367         stats.avgrd[this.zipf_idx].bytes += this.f.result;
    368 
    369         // It must be a Short read
    370         this.len -= this.f.result;
    371         this.off += this.f.result;
    372         reset(this.f);
    373         return retry(this.res);
    374 }
    375 
    376 generator splice_out_g {
    377         io_future_t f;
    378         int pipe; int fd; size_t len;
    379         FSM_Result res;
    380 };
    381 
    382 static inline void ?{}(splice_out_g & this, int pipe, int fd, size_t len) {
    383         this.pipe = pipe;
    384         this.fd = fd;
    385         this.len = len;
    386 }
    387 
    388 static inline void fill(splice_out_g & this, struct io_uring_sqe * sqe) {
    389         zero_sqe(sqe);
    390         sqe->opcode = IORING_OP_SPLICE;
    391         sqe->user_data = (uintptr_t)&this.f;
    392         sqe->flags = 0;
    393         sqe->splice_fd_in = this.pipe;
    394         sqe->splice_off_in = (__u64)-1;
    395         sqe->fd = this.fd;
    396         sqe->off = (__u64)-1;
    397         sqe->len = this.len;
    398         sqe->splice_flags = SPLICE_F_MOVE;
    399 }
    400 
    401 static inline int error(splice_out_g & this, int error) {
    402         int ret = close(this.fd);
    403         if( ret != 0 ) {
    404                 mutex(serr) serr | "Failed to close fd" | errno;
    405         }
    406         return error(this.res, error);
    407 }
    408 
    409 static inline void wait_and_process(splice_out_g & this, sendfile_stats_t & stats ) {
    410         wait(this.f);
    411 
    412         // Something failed?
    413         if(this.f.result < 0) {
    414                 int error = -this.f.result;
    415                 if( error == ECONNRESET ) return error(this, -ECONNRESET);
    416                 if( error == EPIPE ) return error(this, -EPIPE);
    417                 if( error == ECANCELED ) {
    418                         this.f.result = 0;
    419                         goto SHORT_WRITE;
    420                 }
    421                 if( error == EAGAIN || error == EWOULDBLOCK) {
    422                         mutex(serr) serr | "SPLICE OUT got eagain, WTF!";
    423                         return error(this, -ECONNRESET);
    424                 }
    425                 mutex(serr) serr | "SPLICE OUT got" | error | ", WTF!";
    426                 return error(this, -ECONNRESET);
    427         }
    428 
    429         // Did something crazy happen?
    430         if(this.f.result > this.len) {
    431                 mutex(serr) serr | "SPLICE OUT spliced too much!" | this.f.result | ">" | this.len;
    432                 return error(this.res, -ERANGE);
    433         }
    434 
    435         // Done?
    436         if(this.f.result == this.len) {
    437                 return done(this.res);
    438         }
    439 
    440 SHORT_WRITE:
    441         stats.splcot++;
    442 
    443         // It must be a Short Write
    444         this.len -= this.f.result;
    445         reset(this.f);
    446         return retry(this.res);
    447 }
     244// enum FSM_STATE {
     245//      Initial,
     246//      Retry,
     247//      Error,
     248//      Done,
     249// };
     250
     251// struct FSM_Result {
     252//      FSM_STATE state;
     253//      int error;
     254// };
     255
     256// static inline void ?{}(FSM_Result & this) { this.state = Initial; this.error = 0; }
     257// static inline bool is_error(FSM_Result & this) { return Error == this.state; }
     258// static inline bool is_done(FSM_Result & this) { return Done == this.state; }
     259
     260// static inline int error(FSM_Result & this, int error) {
     261//      this.error = error;
     262//      this.state = Error;
     263//      return error;
     264// }
     265
     266// static inline int done(FSM_Result & this) {
     267//      this.state = Done;
     268//      return 0;
     269// }
     270
     271// static inline int retry(FSM_Result & this) {
     272//      this.state = Retry;
     273//      return 0;
     274// }
     275
     276// static inline int need(FSM_Result & this) {
     277//      switch(this.state) {
     278//              case Initial:
     279//              case Retry:
     280//                      return 1;
     281//              case Error:
     282//                      if(this.error == 0) mutex(serr) serr | "State marked error but code is 0";
     283//              case Done:
     284//                      return 0;
     285//      }
     286// }
     287
     288// // Generator that handles sending the header
     289// generator header_g {
     290//      io_future_t f;
     291//      const char * next;
     292//      int fd; size_t len;
     293//      FSM_Result res;
     294// };
     295
     296// static inline void ?{}(header_g & this, int fd, const char * it, size_t len ) {
     297//      this.next = it;
     298//      this.fd = fd;
     299//      this.len = len;
     300// }
     301
     302// static inline void fill(header_g & this, struct io_uring_sqe * sqe) {
     303//      zero_sqe(sqe);
     304//      sqe->opcode = IORING_OP_SEND;
     305//      sqe->user_data = (uintptr_t)&this.f;
     306//      sqe->flags = IOSQE_IO_LINK;
     307//      sqe->fd = this.fd;
     308//      sqe->addr = (uintptr_t)this.next;
     309//      sqe->len = this.len;
     310// }
     311
     312// static inline int error(header_g & this, int error) {
     313//      int ret = close(this.fd);
     314//      if( ret != 0 ) {
     315//              mutex(serr) serr | "Failed to close fd" | errno;
     316//      }
     317//      return error(this.res, error);
     318// }
     319
     320// static inline int wait_and_process(header_g & this, sendfile_stats_t & stats) {
     321//      wait(this.f);
     322
     323//      // Did something crazy happen?
     324//      if(this.f.result > this.len) {
     325//              mutex(serr) serr | "HEADER sent too much!";
     326//              return error(this, -ERANGE);
     327//      }
     328
     329//      // Something failed?
     330//      if(this.f.result < 0) {
     331//              int error = -this.f.result;
     332//              if( error == ECONNRESET ) return error(this, -ECONNRESET);
     333//              if( error == EPIPE ) return error(this, -EPIPE);
     334//              if( error == ECANCELED ) {
     335//                      mutex(serr) serr | "HEADER was cancelled, WTF!";
     336//                      return error(this, -ECONNRESET);
     337//              }
     338//              if( error == EAGAIN || error == EWOULDBLOCK) {
     339//                      mutex(serr) serr | "HEADER got eagain, WTF!";
     340//                      return error(this, -ECONNRESET);
     341//              }
     342//      }
     343
     344//      // Done?
     345//      if(this.f.result == this.len) {
     346//              return done(this.res);
     347//      }
     348
     349//      stats.header++;
     350
     351//      // It must be a Short read
     352//      this.len  -= this.f.result;
     353//      this.next += this.f.result;
     354//      reset(this.f);
     355//      return retry(this.res);
     356// }
     357
     358// // Generator that handles splicing in a file
     359// struct splice_in_t {
     360//      io_future_t f;
     361//      int fd; int pipe; size_t len; off_t off;
     362//      short zipf_idx;
     363//      FSM_Result res;
     364// };
     365
     366// static inline void ?{}(splice_in_t & this, int fd, int pipe, size_t len) {
     367//      this.fd = fd;
     368//      this.pipe = pipe;
     369//      this.len = len;
     370//      this.off = 0;
     371//      this.zipf_idx = -1;
     372//      STATS: for(i; zipf_cnts) {
     373//              if(len <= zipf_sizes[i]) {
     374//                      this.zipf_idx = i;
     375//                      break STATS;
     376//              }
     377//      }
     378//      if(this.zipf_idx < 0) mutex(serr) serr | "SPLICE IN" | len | " greated than biggest zipf file";
     379// }
     380
     381// static inline void fill(splice_in_t & this, struct io_uring_sqe * sqe) {
     382//      zero_sqe(sqe);
     383//      sqe->opcode = IORING_OP_SPLICE;
     384//      sqe->user_data = (uintptr_t)&this.f;
     385//      sqe->flags = 0;
     386//      sqe->splice_fd_in = this.fd;
     387//      sqe->splice_off_in = this.off;
     388//      sqe->fd = this.pipe;
     389//      sqe->off = (__u64)-1;
     390//      sqe->len = this.len;
     391//      sqe->splice_flags = SPLICE_F_MOVE;
     392// }
     393
     394// static inline int wait_and_process(splice_in_t & this, sendfile_stats_t & stats ) {
     395//      wait(this.f);
     396
     397//      // Something failed?
     398//      if(this.f.result < 0) {
     399//              int error = -this.f.result;
     400//              if( error == ECONNRESET ) return error(this.res, -ECONNRESET);
     401//              if( error == EPIPE ) return error(this.res, -EPIPE);
     402//              if( error == ECANCELED ) {
     403//                      mutex(serr) serr | "SPLICE IN was cancelled, WTF!";
     404//                      return error(this.res, -ECONNRESET);
     405//              }
     406//              if( error == EAGAIN || error == EWOULDBLOCK) {
     407//                      mutex(serr) serr | "SPLICE IN got eagain, WTF!";
     408//                      return error(this.res, -ECONNRESET);
     409//              }
     410//              mutex(serr) serr | "SPLICE IN got" | error | ", WTF!";
     411//              return error(this.res, -ECONNRESET);
     412//      }
     413
     414//      // Did something crazy happen?
     415//      if(this.f.result > this.len) {
     416//              mutex(serr) serr | "SPLICE IN spliced too much!";
     417//              return error(this.res, -ERANGE);
     418//      }
     419
     420//      // Done?
     421//      if(this.f.result == this.len) {
     422//              return done(this.res);
     423//      }
     424
     425//      stats.splcin++;
     426//      stats.avgrd[this.zipf_idx].calls++;
     427//      stats.avgrd[this.zipf_idx].bytes += this.f.result;
     428
     429//      // It must be a Short read
     430//      this.len -= this.f.result;
     431//      this.off += this.f.result;
     432//      reset(this.f);
     433//      return retry(this.res);
     434// }
     435
     436// generator splice_out_g {
     437//      io_future_t f;
     438//      int pipe; int fd; size_t len;
     439//      FSM_Result res;
     440// };
     441
     442// static inline void ?{}(splice_out_g & this, int pipe, int fd, size_t len) {
     443//      this.pipe = pipe;
     444//      this.fd = fd;
     445//      this.len = len;
     446// }
     447
     448// static inline void fill(splice_out_g & this, struct io_uring_sqe * sqe) {
     449//      zero_sqe(sqe);
     450//      sqe->opcode = IORING_OP_SPLICE;
     451//      sqe->user_data = (uintptr_t)&this.f;
     452//      sqe->flags = 0;
     453//      sqe->splice_fd_in = this.pipe;
     454//      sqe->splice_off_in = (__u64)-1;
     455//      sqe->fd = this.fd;
     456//      sqe->off = (__u64)-1;
     457//      sqe->len = this.len;
     458//      sqe->splice_flags = SPLICE_F_MOVE;
     459// }
     460
     461// static inline int error(splice_out_g & this, int error) {
     462//      int ret = close(this.fd);
     463//      if( ret != 0 ) {
     464//              mutex(serr) serr | "Failed to close fd" | errno;
     465//      }
     466//      return error(this.res, error);
     467// }
     468
     469// static inline void wait_and_process(splice_out_g & this, sendfile_stats_t & stats ) {
     470//      wait(this.f);
     471
     472//      // Something failed?
     473//      if(this.f.result < 0) {
     474//              int error = -this.f.result;
     475//              if( error == ECONNRESET ) return error(this, -ECONNRESET);
     476//              if( error == EPIPE ) return error(this, -EPIPE);
     477//              if( error == ECANCELED ) {
     478//                      this.f.result = 0;
     479//                      goto SHORT_WRITE;
     480//              }
     481//              if( error == EAGAIN || error == EWOULDBLOCK) {
     482//                      mutex(serr) serr | "SPLICE OUT got eagain, WTF!";
     483//                      return error(this, -ECONNRESET);
     484//              }
     485//              mutex(serr) serr | "SPLICE OUT got" | error | ", WTF!";
     486//              return error(this, -ECONNRESET);
     487//      }
     488
     489//      // Did something crazy happen?
     490//      if(this.f.result > this.len) {
     491//              mutex(serr) serr | "SPLICE OUT spliced too much!" | this.f.result | ">" | this.len;
     492//              return error(this.res, -ERANGE);
     493//      }
     494
     495//      // Done?
     496//      if(this.f.result == this.len) {
     497//              return done(this.res);
     498//      }
     499
     500// SHORT_WRITE:
     501//      stats.splcot++;
     502
     503//      // It must be a Short Write
     504//      this.len -= this.f.result;
     505//      reset(this.f);
     506//      return retry(this.res);
     507// }
    448508
    449509int answer_sendfile( int pipe[2], int fd, int ans_fd, size_t fsize, sendfile_stats_t & stats ) {
    450510        stats.calls++;
    451511        #if defined(LINKED_IO)
    452                 char buffer[512];
    453                 int len = fill_header(buffer, fsize);
    454                 header_g header = { fd, buffer, len };
    455                 splice_in_t splice_in = { ans_fd, pipe[1], fsize };
    456                 splice_out_g splice_out = { pipe[0], fd, fsize };
    457 
    458                 RETRY_LOOP: for() {
    459                         stats.tries++;
    460                         int have = need(header.res) + need(splice_in.res) + 1;
    461                         int idx = 0;
    462                         struct io_uring_sqe * sqes[3];
    463                         __u32 idxs[3];
    464                         struct $io_context * ctx = cfa_io_allocate(sqes, idxs, have);
    465 
    466                         if(need(splice_in.res)) { fill(splice_in, sqes[idx++]); }
    467                         if(need(   header.res)) { fill(header   , sqes[idx++]); }
    468                         fill(splice_out, sqes[idx]);
    469 
    470                         // Submit everything
    471                         asm volatile("": : :"memory");
    472                         cfa_io_submit( ctx, idxs, have, false );
    473 
    474                         // wait for the results
    475                         // Always wait for splice-in to complete as
    476                         // we may need to kill the connection if it fails
    477                         // If it already completed, this is a no-op
    478                         wait_and_process(splice_in, stats);
    479 
    480                         if(is_error(splice_in.res)) {
    481                                 if(splice_in.res.error == -EPIPE) return -ECONNRESET;
    482                                 mutex(serr) serr | "SPLICE IN failed with" | splice_in.res.error;
    483                                 close(fd);
    484                         }
    485 
    486                         // Process the other 2
    487                         wait_and_process(header, stats);
    488                         wait_and_process(splice_out, stats);
    489 
    490                         if(is_done(splice_out.res)) {
    491                                 break RETRY_LOOP;
    492                         }
    493 
    494                         // We need to wait for the completion if
    495                         // - both completed
    496                         // - the header failed
    497                         // -
    498 
    499                         if(  is_error(header.res)
    500                           || is_error(splice_in.res)
    501                           || is_error(splice_out.res)) {
    502                                 return -ECONNRESET;
    503                         }
    504                 }
    505 
    506                 return len + fsize;
     512                // char buffer[512];
     513                // int len = fill_header(buffer, fsize);
     514                // header_g header = { fd, buffer, len };
     515                // splice_in_t splice_in = { ans_fd, pipe[1], fsize };
     516                // splice_out_g splice_out = { pipe[0], fd, fsize };
     517
     518                // RETRY_LOOP: for() {
     519                //      stats.tries++;
     520                //      int have = need(header.res) + need(splice_in.res) + 1;
     521                //      int idx = 0;
     522                //      struct io_uring_sqe * sqes[3];
     523                //      __u32 idxs[3];
     524                //      struct io_context$ * ctx = cfa_io_allocate(sqes, idxs, have);
     525
     526                //      if(need(splice_in.res)) { fill(splice_in, sqes[idx++]); }
     527                //      if(need(   header.res)) { fill(header   , sqes[idx++]); }
     528                //      fill(splice_out, sqes[idx]);
     529
     530                //      // Submit everything
     531                //      asm volatile("": : :"memory");
     532                //      cfa_io_submit( ctx, idxs, have, false );
     533
     534                //      // wait for the results
     535                //      // Always wait for splice-in to complete as
     536                //      // we may need to kill the connection if it fails
     537                //      // If it already completed, this is a no-op
     538                //      wait_and_process(splice_in, stats);
     539
     540                //      if(is_error(splice_in.res)) {
     541                //              if(splice_in.res.error == -EPIPE) return -ECONNRESET;
     542                //              mutex(serr) serr | "SPLICE IN failed with" | splice_in.res.error;
     543                //              int ret = close(fd);
     544                //              if( ret != 0 ) abort( "close in 'answer sendfile' error: (%d) %s\n", (int)errno, strerror(errno) );
     545                //      }
     546
     547                //      // Process the other 2
     548                //      wait_and_process(header, stats);
     549                //      wait_and_process(splice_out, stats);
     550
     551                //      if(is_done(splice_out.res)) {
     552                //              break RETRY_LOOP;
     553                //      }
     554
     555                //      // We need to wait for the completion if
     556                //      // - both completed
     557                //      // - the header failed
     558                //      // -
     559
     560                //      if(  is_error(header.res)
     561                //        || is_error(splice_in.res)
     562                //        || is_error(splice_out.res)) {
     563                //              return -ECONNRESET;
     564                //      }
     565                // }
     566
     567                // return len + fsize;
    507568        #else
    508                 stats.tries++;
    509569                int ret = answer_header(fd, fsize);
    510                 if( ret < 0 ) { close(fd); return ret; }
    511                 return sendfile(pipe, fd, ans_fd, fsize);
     570                if( ret < 0 ) { return ret; }
     571                return sendfile(pipe, fd, ans_fd, fsize, stats);
    512572        #endif
    513573}
     
    528588                }
    529589                // int ret = read(fd, (void*)it, count);
    530                 if(ret == 0 ) return [OK200, true, 0, 0];
     590                if(ret == 0 ) {
     591                        ret = close(fd);
     592                        if( ret != 0 ) abort( "close in 'http read good' error: (%d) %s\n", (int)errno, strerror(errno) );
     593                        return [OK200, true, 0, 0];
     594                }
    531595                if(ret < 0 ) {
    532                         if( errno == EAGAIN || errno == EWOULDBLOCK) continue READ;
    533                         if( errno == ECONNRESET ) { close(fd); return [E408, true, 0, 0]; }
    534                         if( errno == EPIPE ) { close(fd); return [E408, true, 0, 0]; }
     596                        if( errno == ECONNRESET || errno == EPIPE ) {
     597                                ret = close(fd);
     598                                if( ret != 0 ) abort( "close in 'http read bad' error: (%d) %s\n", (int)errno, strerror(errno) );
     599                                return [E408, true, 0, 0];
     600                        }
    535601                        abort( "read error: (%d) %s\n", (int)errno, strerror(errno) );
    536602                }
  • benchmark/io/http/protocol.hfa

    r12df6fe r4520b77e  
    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 );
     20// int answer_error( int fd, HttpCode code );
     21// int answer_plaintext( int fd );
     22// int 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

    r12df6fe r4520b77e  
    88        #include <sys/socket.h>
    99        #include <netinet/in.h>
     10        #include <netinet/tcp.h>
    1011}
    1112
     
    3334        }
    3435
     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
    3544        if(options.socket.reuseport) {
    36                 int value = 1;
    3745                // if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (const void*)&on, sizeof(on)))
    3846                //      abort( "setsockopt SO_REUSEADDR error: (%d) %s\n", (int)errno, strerror(errno) );
    39                 if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEPORT, &value, sizeof(int)) < 0)
     47                if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEPORT, &on, sizeof(on)) < 0)
    4048                        abort( "setsockopt SO_REUSEPORT error: (%d) %s\n", (int)errno, strerror(errno) );
    4149        }
  • benchmark/io/http/worker.cfa

    r12df6fe r4520b77e  
    1414#include "filecache.hfa"
    1515
     16static const unsigned long long period = 5_000_000;
     17
    1618//=============================================================================================
    1719// Generic connection handling
     
    3133
    3234                // if we are done, break out of the loop
    33                 if( closed ) break REQUEST;
     35                if( closed ) {
     36                        if( code != OK200 ) this.stats.sendfile.error++;
     37                        break REQUEST;
     38                }
    3439
    3540                // If this wasn't a request retrun 400
    3641                if( code != OK200 ) {
    37                         sout | "=== Invalid Request :" | code_val(code) | "===";
    38                         answer_error(fd, code);
    39                         continue REQUEST;
    40                 }
    41 
    42                 if(0 == strncmp(file, "plaintext", min(name_size, sizeof("plaintext") ))) {
    43                         if( options.log ) mutex(sout) sout | "=== Request for /plaintext ===";
    44 
    45                         int ret = answer_plaintext(fd);
    46                         if( ret == -ECONNRESET ) break REQUEST;
    47 
    48                         if( options.log ) mutex(sout) sout | "=== Answer sent ===";
    49                         continue REQUEST;
    50                 }
    51 
    52                 if(0 == strncmp(file, "ping", min(name_size, sizeof("ping") ))) {
    53                         if( options.log ) mutex(sout) sout | "=== Request for /ping ===";
    54 
    55                         // Send the 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                 }
     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                // }
    6267
    6368                if( options.log ) {
     
    6873
    6974                if( !options.file_cache.path ) {
    70                         if( options.log ) {
    71                                 sout | "=== File Not Found (" | nonl;
    72                                 write(sout, file, name_size);
    73                                 sout | ") ===";
    74                         }
    75                         answer_error(fd, E405);
    76                         continue REQUEST;
     75                        // if( options.log ) {
     76                                serr | "=== File Not Found (" | nonl;
     77                                write(serr, file, name_size);
     78                                serr | ") ===";
     79                                abort();
     80                        // }
     81                        // answer_error(fd, E405);
     82                        // continue REQUEST;
    7783                }
    7884
     
    8490                // If we can't find the file, return 404
    8591                if( ans_fd < 0 ) {
    86                         if( options.log ) {
    87                                 sout | "=== File Not Found (" | nonl;
    88                                 write(sout, file, name_size);
    89                                 sout | ") ===";
    90                         }
    91                         answer_error(fd, E404);
    92                         continue REQUEST;
     92                        // if( options.log ) {
     93                                serr | "=== File Not Found 2 (" | nonl;
     94                                write(serr, file, name_size);
     95                                serr | ") ===";
     96                                abort();
     97                        // }
     98                        // answer_error(fd, E404);
     99                        // continue REQUEST;
    93100                }
    94101
    95102                // Send the desired file
    96103                int ret = answer_sendfile( this.pipe, fd, ans_fd, count, this.stats.sendfile );
    97                 if( ret == -ECONNRESET ) break REQUEST;
     104                if(ret < 0) {
     105                        if( ret == -ECONNABORTED ) { this.stats.sendfile.error++; break REQUEST; }
     106                        if( ret == -ECONNRESET ) { this.stats.sendfile.error++; break REQUEST; }
     107                        if( ret == -EPIPE ) { this.stats.sendfile.error++; break REQUEST; }
     108                        if( ret == -EBADF ) { this.stats.sendfile.error++; break REQUEST; }
     109                        abort( "answer sendfile error: %d (%d) %s\n", ret, (int)errno, strerror(errno) );
     110                }
    98111
    99112                if( options.log ) mutex(sout) sout | "=== Answer sent ===";
    100113        }
    101114
     115        this.stats.sendfile.close++;
     116
    102117        if (stats_thrd) {
    103                 unsigned long long next = rdtscl();
    104                 if(next > (last + 500000000)) {
     118                // unsigned long long next = rdtscl();
     119                // if(next > (last + period)) {
    105120                        if(try_lock(stats_thrd->stats.lock __cfaabi_dbg_ctx2)) {
    106121                                push(this.stats.sendfile, stats_thrd->stats.send);
    107122                                unlock(stats_thrd->stats.lock);
    108                                 last = next;
    109                         }
    110                 }
     123                                // last = next;
     124                        }
     125                // }
    111126        }
    112127}
     
    130145                if( options.log ) mutex(sout) sout | "=== Accepting connection ===";
    131146                int fd = cfa_accept4( this.sockfd, this.[addr, addrlen, flags], CFA_IO_LAZY );
    132                 if(fd < 0) {
     147                if(fd <= 0) {
    133148                        if( errno == ECONNABORTED ) break;
    134149                        if( this.done && (errno == EINVAL || errno == EBADF) ) break;
    135                         abort( "accept error: (%d) %s\n", (int)errno, strerror(errno) );
     150                        abort( "accept error %d: (%d) %s\n", fd, (int)errno, strerror(errno) );
    136151                }
    137152                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                }
    138159
    139160                if( options.log ) mutex(sout) sout | "=== New connection" | fd | "" | ", waiting for requests ===";
     
    141162                char buffer[len];
    142163                handle_connection( this.conn, fd, buffer, len, 0p, last );
     164                this.conn.stats.sendfile.maxfd = max(this.conn.stats.sendfile.maxfd, fd);
    143165
    144166                if( options.log ) mutex(sout) sout | "=== Connection closed ===";
     
    162184        /* paranoid */ assert( this.conn.pipe[0] != -1 );
    163185        /* 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;
    164188        for() {
    165189                size_t len = options.socket.buflen;
     
    173197                if( options.log ) mutex(sout) sout | "=== Waiting new connection ===";
    174198                handle_connection( this.conn, p.out.fd, buffer, len, &p.f, last );
     199                if(this.done) break;
     200                this.conn.stats.sendfile.maxfd = max(this.conn.stats.sendfile.maxfd, p.out.fd);
     201                this.conn.stats.sendfile.close++;
    175202
    176203                if( options.log ) mutex(sout) sout | "=== Connection closed ===";
    177                 if(this.done) break;
    178         }
     204        }
     205
     206        lock(stats_thrd->stats.lock __cfaabi_dbg_ctx2);
     207        push(this.conn.stats.sendfile, stats_thrd->stats.send);
     208        unlock(stats_thrd->stats.lock);
    179209}
    180210
     
    198228
    199229static inline void push_connection( Acceptor & this, int fd ) {
     230        this.stats.accepts++;
    200231        PendingRead * p = 0p;
    201232        for() {
     
    203234                p = pop(*this.queue);
    204235                if(p) break;
     236                // abort( "Too few threads" );
    205237                yield();
    206238                this.stats.creates++;
     
    212244
    213245// #define ACCEPT_SPIN
    214 #define ACCEPT_MANY
     246#define ACCEPT_ONE
     247// #define ACCEPT_MANY
    215248
    216249void main( Acceptor & this ) {
     
    232265                        abort( "accept error: (%d) %s\n", (int)errno, strerror(errno) );
    233266                }
    234                 this.stats.accepts++;
    235267
    236268                if(this.done) return;
     
    242274                if (stats_thrd) {
    243275                        unsigned long long next = rdtscl();
    244                         if(next > (last + 500000000)) {
     276                        if(next > (last + period)) {
    245277                                if(try_lock(stats_thrd->stats.lock)) {
    246278                                        push(this.stats, stats_thrd->stats.accpt);
     
    249281                                }
    250282                        }
     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                        // }
    251313                }
    252314
     
    269331                if (stats_thrd) {
    270332                        unsigned long long next = rdtscl();
    271                         if(next > (last + 500000000)) {
     333                        if(next > (last + period)) {
    272334                                if(try_lock(stats_thrd->stats.lock __cfaabi_dbg_ctx2)) {
    273335                                        push(this.stats, stats_thrd->stats.accpt);
     
    284346                                int fd = get_res(res);
    285347                                reset(res);
    286                                 this.stats.accepts++;
    287348                                if(fd < 0) {
    288349                                        if( errno == ECONNABORTED ) continue;
     
    319380#error no accept algorithm specified
    320381#endif
    321 }
     382        lock(stats_thrd->stats.lock);
     383        push(this.stats, stats_thrd->stats.accpt);
     384        unlock(stats_thrd->stats.lock);
     385}
  • benchmark/io/http/worker.hfa

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

    r12df6fe r4520b77e  
    1414import math
    1515import numpy
     16import os
    1617import re
    1718import statistics
    1819import sys
    19 
     20import time
     21
     22import matplotlib
    2023import matplotlib.pyplot as plt
    21 from matplotlib.ticker import EngFormatter
     24from matplotlib.ticker import EngFormatter, ScalarFormatter
     25
     26def 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"
    2233
    2334class Field:
    24         def __init__(self, unit, _min, _log, _name=None):
     35        def __init__(self, unit, _min, _log, _name=None, _factor=1.0):
    2536                self.unit = unit
    2637                self.min  = _min
    2738                self.log  = _log
    2839                self.name = _name
     40                self.factor = _factor
    2941
    3042field_names = {
    3143        "ns per ops"            : Field('ns'    , 0, False),
    32         "Number of processors"  : Field(''      , 1, False),
     44        "Number of processors"  : Field(''      , 1, "exact"),
    3345        "Ops per procs"         : Field('Ops'   , 0, False),
    3446        "Ops per threads"       : Field('Ops'   , 0, False),
    35         "ns per ops/procs"      : Field(''    , 0, False, _name = "Latency (ns $/$ (Processor $\\times$ Operation))" ),
     47        "ns per ops/procs"      : Field(''      , 0, False, _name = "ns $\\times$ (Processor $/$ Total Ops)" ),
    3648        "Number of threads"     : Field(''      , 1, False),
    3749        "Total Operations(ops)" : Field('Ops'   , 0, False),
    3850        "Ops/sec/procs"         : Field('Ops'   , 0, False),
    3951        "Total blocks"          : Field('Blocks', 0, False),
    40         "Ops per second"        : Field(''   , 0, False),
     52        "Ops per second"        : Field(''      , 0, False),
    4153        "Cycle size (# thrds)"  : Field('thrd'  , 1, False),
    4254        "Duration (ms)"         : Field('ms'    , 0, False),
    4355        "Target QPS"            : Field(''      , 0, False),
    4456        "Actual QPS"            : Field(''      , 0, False),
    45         "Average Read Latency"  : Field('us'    , 0, True),
    46         "Median Read Latency"   : Field('us'    , 0, True),
    47         "Tail Read Latency"     : Field('us'    , 0, True),
    48         "Average Update Latency": Field('us'    , 0, True),
    49         "Median Update Latency" : Field('us'    , 0, True),
    50         "Tail Update Latency"   : Field('us'    , 0, True),
    51         "Update Ratio"          : Field('\%'    , 0, False),
     57        "Average Read Latency"  : Field('s'     , 0, False, _factor = 0.000001),
     58        "Median Read Latency"   : Field('s'     , 0, True, _factor = 0.000001),
     59        "Tail Read Latency"     : Field('s'     , 0, True, _factor = 0.000001),
     60        "Average Update Latency": Field('s'     , 0, True, _factor = 0.000001),
     61        "Median Update Latency" : Field('s'     , 0, True, _factor = 0.000001),
     62        "Tail Update Latency"   : Field('s'     , 0, True, _factor = 0.000001),
     63        "Update Ratio"          : Field('%'   , 0, False),
     64        "Request Rate"          : Field('req/s' , 0, False),
     65        "Data Rate"             : Field('b/s'   , 0, False, _factor = 1000 * 1000, _name = "Response Throughput"),
     66        "Errors"                : Field('%'   , 0, False),
    5267}
    5368
    54 def plot(in_data, x, y, options):
     69def plot(in_data, x, y, options, prefix):
    5570        fig, ax = plt.subplots()
    56         colors = itertools.cycle(['#0095e3','#006cb4','#69df00','#0aa000','#fb0300','#e30002','#fd8f00','#ff7f00','#8f00d6','#4b009a','#ffff00','#b13f00'])
    57         series = {} # scatter data for each individual data point
    58         groups = {} # data points for x value
     71        colors  = itertools.cycle(['#006cb4','#0aa000','#ff6600','#8510a1','#0095e3','#fd8f00','#e30002','#8f00d6','#4b009a','#ffff00','#69df00','#fb0300','#b13f00'])
     72        markers = itertools.cycle(['x', '+', '1', '2', '3', '4'])
     73        series  = {} # scatter data for each individual data point
     74        groups  = {} # data points for x value
    5975
    6076        print("Preparing Data")
     
    6278        for entry in in_data:
    6379                name = entry[0]
     80                if options.filter and not name.startswith(options.filter):
     81                        continue
     82
    6483                if not name in series:
    6584                        series[name] = {'x':[], 'y':[]}
     
    7089                if x in entry[2] and y in entry[2]:
    7190                        xval = entry[2][x]
    72                         yval = entry[2][y]
     91                        yval = entry[2][y] * field_names[y].factor
    7392                        series[name]['x'].append(xval)
    7493                        series[name]['y'].append(yval)
     
    98117        for name, data in sorted(series.items()):
    99118                _col = next(colors)
    100                 plt.scatter(data['x'], data['y'], color=_col, label=name, marker='x')
    101                 plt.plot(lines[name]['x'], lines[name]['min'], '--', color=_col)
     119                _mrk = next(markers)
     120                plt.scatter(data['x'], data['y'], color=_col, label=name[len(prefix):], marker=_mrk)
     121                plt.plot(lines[name]['x'], lines[name]['min'], ':', color=_col)
    102122                plt.plot(lines[name]['x'], lines[name]['max'], '--', color=_col)
    103123                plt.plot(lines[name]['x'], lines[name]['med'], '-', color=_col)
     
    119139        elif field_names[x].log:
    120140                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)
    121148        else:
    122149                plt.xlim(field_names[x].min, mx + 0.25)
    123150
    124         ax.yaxis.set_major_formatter( EngFormatter(unit=field_names[y].unit) )
    125151        if options.logy:
    126152                ax.set_yscale('log')
     
    130156                plt.ylim(field_names[y].min, options.MaxY if options.MaxY else my*1.2)
    131157
     158        ax.yaxis.set_major_formatter( EngFormatter(unit=field_names[y].unit) )
     159
    132160        plt.legend(loc='upper left')
    133161
    134162        print("Results Ready")
     163        start = time.time()
    135164        if options.out:
    136165                plt.savefig(options.out, bbox_inches='tight')
    137166        else:
    138167                plt.show()
     168        end = time.time()
     169        print("Took {}".format(fmtDur(end - start)))
    139170
    140171
     
    150181        parser.add_argument('--logy', action='store_true', help="if set, makes the y-axis logscale")
    151182        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")
    152184
    153185        options =  parser.parse_args()
     186
     187        # if not options.out:
     188        #       matplotlib.use('SVG')
    154189
    155190        # ================================================================================
     
    173208                        fields.add(label)
    174209
     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
    175217        if not options.out :
    176218                print(series)
     
    193235
    194236
    195         plot(data, wantx, wanty, options)
     237        plot(data, wantx, wanty, options, prefix)
  • benchmark/process-mutilate.py

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

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

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

    r12df6fe r4520b77e  
    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");
    285286        printf("Total Operations(ops)  : %'15llu\n", global_count);
    286287        printf("Total G Migrations     : %'15llu\n", global_gmigs);
  • benchmark/readyQ/locality.go

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

    r12df6fe r4520b77e  
    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" });
    348349        println!("Total Operations(ops)  : {:>15}", (results.count).to_formatted_string(&Locale::en));
    349350        println!("Total G Migrations     : {:>15}", (results.gmigs).to_formatted_string(&Locale::en));
  • benchmark/readyQ/rq_bench.hfa

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

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

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

    r12df6fe r4520b77e  
    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                },
    186195        }
    187196
    188         if (host := socket.gethostname()) in known_hosts:
     197        host = socket.gethostname()
     198        if host in known_hosts:
    189199                taskset_maps = known_hosts[host]
    190200                return True
     
    223233        parser.add_argument('--trials', help='Number of trials to run per combinaison', type=int, default=3)
    224234        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)
    225236        parser.add_argument('command', metavar='command', type=str, nargs=1, help='the command prefix to run')
    226237        parser.add_argument('candidates', metavar='candidates', type=str, nargs='*', help='the candidate suffix to run')
     
    277288        # ================================================================================
    278289        # 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)
    279296
    280297        # Add tasksets
  • configure.ac

    r12df6fe r4520b77e  
    2424#Trasforming cc1 will break compilation
    2525M4CFA_PROGRAM_NAME
    26 
    27 #==============================================================================
    28 # New AST toggling support
    29 AH_TEMPLATE([CFA_USE_NEW_AST],[Sets whether or not to use the new-ast, this is adefault value and can be overrided by --old-ast and --new-ast])
    30 DEFAULT_NEW_AST="True"
    31 AC_ARG_ENABLE(new-ast,
    32         [  --enable-new-ast     whether or not to use new ast as the default AST algorithm],
    33         [case "${enableval}" 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])
    38 AC_DEFINE_UNQUOTED([CFA_USE_NEW_AST], $newast)
    39 AC_SUBST(DEFAULT_NEW_AST)
    4026
    4127#==============================================================================
     
    139125                \'--enable-gprofiler=*) ;;
    140126                \'--disable-gprofiler) ;;
    141 
    142                 # skip the target hosts
    143                 \'--enable-new-ast=*) ;;
    144                 \'--disable-new-ast) ;;
    145127
    146128                # skip this, it only causes problems
  • doc/LaTeXmacros/lstlang.sty

    r12df6fe r4520b77e  
    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_local, throw, throwResume, timeout, trait, try, ttype, typeof, __typeof, __typeof__,
     120                thread, __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

    r12df6fe r4520b77e  
    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}},
    37593770}
    37603771
     
    78377848}
    78387849
     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
    78397858@misc{Bumbulis90,
    78407859    keywords    = {parameter inference, ForceN},
     
    81528171    doi         = {10.1145/3379483},
    81538172    journal     = {Proc. ACM Meas. Anal. Comput. Syst.},
    8154     month       = mar,
     8173    month       = jun,
    81558174    numpages    = {30},
    81568175}
  • doc/theses/thierry_delisle_PhD/.gitignore

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

    r12df6fe r4520b77e  
    1111LaTeX  = TEXINPUTS=${TeXLIB} && export TEXINPUTS && latex -halt-on-error -output-directory=${Build}
    1212BibTeX = BIBINPUTS=${TeXLIB} && export BIBINPUTS && bibtex
     13DeTeX = TEXINPUTS=${TeXLIB} && export TEXINPUTS && detex -r
    1314
    1415MAKEFLAGS = --no-print-directory # --silent
     
    2627        eval_micro \
    2728        eval_macro \
     29        conclusion \
    2830}}
    2931
    30 FIGURES = ${addsuffix .tex, \
    31 }
    32 
    33 PICTURES = ${addsuffix .pstex, \
    34         base \
     32FIGURES = base \
    3533        base_avg \
    3634        base_ts2 \
     
    5452        cycle \
    5553        result.cycle.jax.ops \
     54        result.cycle.nasus.ops \
    5655        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 \
    5863        result.cycle.jax.ns \
     64        result.cycle.nasus.ns \
    5965        result.yield.jax.ns \
     66        result.yield.nasus.ns \
    6067        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 \
    6173        result.cycle.low.jax.ops \
     74        result.cycle.low.nasus.ops \
    6275        result.yield.low.jax.ops \
     76        result.yield.low.nasus.ops \
    6377        result.churn.low.jax.ops \
     78        result.churn.low.nasus.ops \
    6479        result.cycle.low.jax.ns \
     80        result.cycle.low.nasus.ns \
    6581        result.yield.low.jax.ns \
     82        result.yield.low.nasus.ns \
    6683        result.churn.low.jax.ns \
    67         result.memcd.updt.qps \
    68         result.memcd.updt.lat \
     84        result.churn.low.nasus.ns \
    6985        result.memcd.rate.qps \
    7086        result.memcd.rate.99th \
    71         SQMS \
    72 }
     87        result.memcd.forall.qps \
     88        result.memcd.forall.lat \
     89        result.memcd.fibre.qps \
     90        result.memcd.fibre.lat \
     91        result.memcd.vanilla.qps \
     92        result.memcd.vanilla.lat \
     93        result.swbsrv.25gb \
     94        result.swbsrv.25gb.err \
     95        SQMS
     96
     97PICTURES = ${addsuffix .pstex, ${FIGURES} }
    7398
    7499PROGRAMS = ${addsuffix .tex, \
     
    80105## Define the documents that need to be made.
    81106all: thesis.pdf
    82 thesis.pdf: ${TEXTS} ${FIGURES} ${PICTURES} thesis.tex glossary.tex local.bib ${LaTMac}/common.tex ${LaTMac}/common.sty ${BibRep}/pl.bib
     107build/thesis.dvi: ${TEXTS} ${PICTURES} thesis.tex glossary.tex local.bib ${LaTMac}/common.tex ${LaTMac}/common.sty ${BibRep}/pl.bib
    83108
    84109DOCUMENT = thesis.pdf
     
    120145        ${LaTeX} $<
    121146
     147%.tty: build/%.dvi
     148        dvi2tty -w132 $< > $@
     149
    122150## Define the default recipes.
    123151
     
    144172        python3 $< $@
    145173
    146 cycle_jax_ops_FLAGS = --MaxY=120000000
    147 cycle_low_jax_ops_FLAGS = --MaxY=120000000
    148 cycle_jax_ns_FLAGS = --MaxY=2000
    149 cycle_low_jax_ns_FLAGS = --MaxY=2000
    150 
    151 yield_jax_ops_FLAGS = --MaxY=150000000
    152 yield_low_jax_ops_FLAGS = --MaxY=150000000
    153 yield_jax_ns_FLAGS = --MaxY=1500
    154 yield_low_jax_ns_FLAGS = --MaxY=1500
    155 
    156 build/result.%.ns.svg : data/% Makefile | ${Build}
     174cycle_jax_ops_FLAGS = --MaxY=500000000
     175cycle_low_jax_ops_FLAGS = --MaxY=500000000
     176cycle_jax_ns_FLAGS = --MaxY=4000
     177cycle_low_jax_ns_FLAGS = --MaxY=4000
     178
     179cycle_nasus_ops_FLAGS = --MaxY=1250000000
     180cycle_low_nasus_ops_FLAGS = --MaxY=1250000000
     181cycle_nasus_ns_FLAGS = --MaxY=1500
     182cycle_low_nasus_ns_FLAGS = --MaxY=1500
     183
     184yield_jax_ops_FLAGS = --MaxY=1000000000
     185yield_low_jax_ops_FLAGS = --MaxY=1000000000
     186yield_jax_ns_FLAGS = --MaxY=4000
     187yield_low_jax_ns_FLAGS = --MaxY=4000
     188
     189yield_nasus_ops_FLAGS = --MaxY=1500000000
     190yield_low_nasus_ops_FLAGS = --MaxY=1500000000
     191yield_nasus_ns_FLAGS = --MaxY=1500
     192yield_low_nasus_ns_FLAGS = --MaxY=1500
     193
     194churn_jax_ops_FLAGS = --MaxY=50000000
     195churn_low_jax_ops_FLAGS = --MaxY=50000000
     196churn_jax_ns_FLAGS = --MaxY=10000
     197churn_low_jax_ns_FLAGS = --MaxY=10000
     198
     199churn_nasus_ops_FLAGS = --MaxY=75000000
     200churn_low_nasus_ops_FLAGS = --MaxY=75000000
     201churn_nasus_ns_FLAGS = --MaxY=5000
     202churn_low_nasus_ns_FLAGS = --MaxY=5000
     203
     204locality_share_jax_ops_FLAGS = --MaxY=40000000
     205locality_noshare_jax_ops_FLAGS = --MaxY=40000000
     206locality_share_jax_ns_FLAGS = --MaxY=10000
     207locality_noshare_jax_ns_FLAGS = --MaxY=10000
     208
     209locality_share_nasus_ops_FLAGS = --MaxY=60000000
     210locality_noshare_nasus_ops_FLAGS = --MaxY=60000000
     211locality_share_nasus_ns_FLAGS = --MaxY=10000
     212locality_noshare_nasus_ns_FLAGS = --MaxY=10000
     213
     214build/result.%.ns.svg : data/% Makefile ../../../../benchmark/plot.py | ${Build}
    157215        ../../../../benchmark/plot.py -f $< -o $@ -y "ns per ops/procs" $($(subst .,_,$*)_ns_FLAGS)
    158216
    159 build/result.%.ops.svg : data/% Makefile | ${Build}
     217build/result.%.ops.svg : data/% Makefile ../../../../benchmark/plot.py | ${Build}
    160218        ../../../../benchmark/plot.py -f $< -o $@ -y "Ops per second" $($(subst .,_,$*)_ops_FLAGS)
    161219
    162 build/result.memcd.updt.qps.svg : data/memcd.updt Makefile | ${Build}
    163         ../../../../benchmark/plot.py -f $< -o $@ -y "Actual QPS" -x "Update Ratio"
    164 
    165 build/result.memcd.updt.lat.svg : data/memcd.updt Makefile | ${Build}
    166         ../../../../benchmark/plot.py -f $< -o $@ -y "Average Read Latency" -x "Update Ratio"
    167 
    168 build/result.memcd.rate.qps.svg : data/memcd.rate Makefile | ${Build}
    169         ../../../../benchmark/plot.py -f $< -o $@ -y "Actual QPS" -x "Target QPS"
    170 
    171 build/result.memcd.rate.99th.svg : data/memcd.rate Makefile | ${Build}
     220build/result.memcd.rate.qps.svg : data/memcd.rate Makefile ../../../../benchmark/plot.py | ${Build}
     221        ../../../../benchmark/plot.py -f $< -o $@ -y "Actual QPS" -x "Target QPS" --MaxY=750000
     222
     223build/result.memcd.rate.99th.svg : data/memcd.rate Makefile ../../../../benchmark/plot.py | ${Build}
    172224        ../../../../benchmark/plot.py -f $< -o $@ -y "Tail Read Latency" -x "Target QPS"
     225
     226build/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
     229build/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
     232build/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
     235build/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
     238build/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
     241build/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
     244build/swbsrv.% : data/swbsrv.%.nginx data/swbsrv.%.cfa Makefile ../../../../benchmark/process-trun.py | ${Build}
     245        ../../../../benchmark/process-trun.py --out $@ $^
     246
     247build/result.swbsrv.%.svg : build/swbsrv.% Makefile ../../../../benchmark/plot.py | ${Build}
     248        ../../../../benchmark/plot.py -f $< -o $@ -y "Data Rate" -x "Request Rate"
     249
     250build/result.swbsrv.%.err.svg : build/swbsrv.% Makefile ../../../../benchmark/plot.py | ${Build}
     251        ../../../../benchmark/plot.py -f $< -o $@ -y "Errors" -x "Request Rate"
    173252
    174253## pstex with inverted colors
  • doc/theses/thierry_delisle_PhD/thesis/data/churn.jax

    r12df6fe r4520b77e  
    1 [["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 10 -t 100 -s 80", {"Duration (ms)": 10016.628354, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 80.0, "Total Operations(ops)": 103371393.0, "Total blocks": 42643001.0, "Ops per second": 10319978.87, "ns per ops": 96.9, "Ops per threads": 1033713.0, "Ops per procs": 103371393.0, "Ops/sec/procs": 10319978.87, "ns per ops/procs": 96.9}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 10 -t 800 -s 640", {"Duration (ms)": 10100.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 256473373.0, "Ops per second": 25647337.0, "ns per ops": 39.0, "Ops per threads": 320591.0, "Ops per procs": 32059171.0, "Ops/sec/procs": 3205917.0, "ns per ops/procs": 315.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 10 -t 1600 -s 1280", {"Duration (ms)": 10017.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 1280.0, "Total Operations(ops)": 76683227.0, "Total blocks": 27590624.0, "Ops per second": 7655096.57, "ns per ops": 130.63, "Ops per threads": 47927.0, "Ops per procs": 4792701.0, "Ops/sec/procs": 478443.54, "ns per ops/procs": 2090.11}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 10 -t 2400 -s 1920", {"Duration (ms)": 10001.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 1920.0, "Total Operations(ops)": 190480943.0, "Ops per second": 19045032.48, "ns per ops": 52.51, "Ops per threads": 79367.0, "Ops per procs": 7936705.0, "Ops/sec/procs": 793543.02, "ns per ops/procs": 1260.17}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 10 -t 1600 -s 1280", {"Duration (ms)": 10016.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 1280.0, "Total Operations(ops)": 76380433.0, "Total blocks": 27484490.0, "Ops per second": 7625307.92, "ns per ops": 131.14, "Ops per threads": 47737.0, "Ops per procs": 4773777.0, "Ops/sec/procs": 476581.75, "ns per ops/procs": 2098.28}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 10 -t 100 -s 80", {"Duration (ms)": 10099.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 73903563.0, "Ops per second": 7390356.0, "ns per ops": 136.0, "Ops per threads": 739035.0, "Ops per procs": 73903563.0, "Ops/sec/procs": 7390356.0, "ns per ops/procs": 136.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 10 -t 1600 -s 1280", {"Duration (ms)": 10000.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 469714305.0, "Ops per second": 46971430.0, "ns per ops": 21.0, "Ops per threads": 293571.0, "Ops per procs": 29357144.0, "Ops/sec/procs": 2935714.0, "ns per ops/procs": 340.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 10 -t 2400 -s 1920", {"Duration (ms)": 10001.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 653514397.0, "Ops per second": 65351439.0, "ns per ops": 15.0, "Ops per threads": 272297.0, "Ops per procs": 27229766.0, "Ops/sec/procs": 2722976.0, "ns per ops/procs": 367.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 10 -t 1600 -s 1280", {"Duration (ms)": 10001.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 1280.0, "Total Operations(ops)": 213476978.0, "Ops per second": 21344951.67, "ns per ops": 46.85, "Ops per threads": 133423.0, "Ops per procs": 13342311.0, "Ops/sec/procs": 1334059.48, "ns per ops/procs": 749.59}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 10 -t 1600 -s 1280", {"Duration (ms)": 10001.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 1280.0, "Total Operations(ops)": 214624132.0, "Ops per second": 21458252.32, "ns per ops": 46.6, "Ops per threads": 134140.0, "Ops per procs": 13414008.0, "Ops/sec/procs": 1341140.77, "ns per ops/procs": 745.63}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 10 -t 1600 -s 1280", {"Duration (ms)": 10025.783632, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 1280.0, "Total Operations(ops)": 550743553.0, "Total blocks": 240452132.0, "Ops per second": 54932718.8, "ns per ops": 18.2, "Ops per threads": 344214.0, "Ops per procs": 34421472.0, "Ops/sec/procs": 3433294.92, "ns per ops/procs": 291.27}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 10 -t 2400 -s 1920", {"Duration (ms)": 10026.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 1920.0, "Total Operations(ops)": 75322787.0, "Total blocks": 28388443.0, "Ops per second": 7512321.69, "ns per ops": 133.11, "Ops per threads": 31384.0, "Ops per procs": 3138449.0, "Ops/sec/procs": 313013.4, "ns per ops/procs": 3194.75}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 10 -t 100 -s 80", {"Duration (ms)": 10008.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 80.0, "Total Operations(ops)": 79715530.0, "Total blocks": 24912815.0, "Ops per second": 7964937.17, "ns per ops": 125.55, "Ops per threads": 797155.0, "Ops per procs": 79715530.0, "Ops/sec/procs": 7964937.17, "ns per ops/procs": 125.55}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 10 -t 100 -s 80", {"Duration (ms)": 10007.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 80.0, "Total Operations(ops)": 79751618.0, "Total blocks": 24924094.0, "Ops per second": 7968946.78, "ns per ops": 125.49, "Ops per threads": 797516.0, "Ops per procs": 79751618.0, "Ops/sec/procs": 7968946.78, "ns per ops/procs": 125.49}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 10 -t 100 -s 80", {"Duration (ms)": 10016.627702, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 80.0, "Total Operations(ops)": 100444522.0, "Total blocks": 42678977.0, "Ops per second": 10027778.31, "ns per ops": 99.72, "Ops per threads": 1004445.0, "Ops per procs": 100444522.0, "Ops/sec/procs": 10027778.31, "ns per ops/procs": 99.72}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 10 -t 2400 -s 1920", {"Duration (ms)": 10006.863438, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 1920.0, "Total Operations(ops)": 761548918.0, "Total blocks": 327474630.0, "Ops per second": 76102659.21, "ns per ops": 13.14, "Ops per threads": 317312.0, "Ops per procs": 31731204.0, "Ops/sec/procs": 3170944.13, "ns per ops/procs": 315.36}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 10 -t 1600 -s 1280", {"Duration (ms)": 10024.630415, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 1280.0, "Total Operations(ops)": 549456394.0, "Total blocks": 238577198.0, "Ops per second": 54810638.52, "ns per ops": 18.24, "Ops per threads": 343410.0, "Ops per procs": 34341024.0, "Ops/sec/procs": 3425664.91, "ns per ops/procs": 291.91}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 10 -t 2400 -s 1920", {"Duration (ms)": 10000.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 653669226.0, "Ops per second": 65366922.0, "ns per ops": 15.0, "Ops per threads": 272362.0, "Ops per procs": 27236217.0, "Ops/sec/procs": 2723621.0, "ns per ops/procs": 367.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 10 -t 1600 -s 1280", {"Duration (ms)": 10000.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 478747005.0, "Ops per second": 47874700.0, "ns per ops": 20.0, "Ops per threads": 299216.0, "Ops per procs": 29921687.0, "Ops/sec/procs": 2992168.0, "ns per ops/procs": 334.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 10 -t 800 -s 640", {"Duration (ms)": 10100.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 259926863.0, "Ops per second": 25992686.0, "ns per ops": 38.0, "Ops per threads": 324908.0, "Ops per procs": 32490857.0, "Ops/sec/procs": 3249085.0, "ns per ops/procs": 310.0}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 10 -t 2400 -s 1920", {"Duration (ms)": 10002.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 1920.0, "Total Operations(ops)": 186159297.0, "Ops per second": 18611771.03, "ns per ops": 53.73, "Ops per threads": 77566.0, "Ops per procs": 7756637.0, "Ops/sec/procs": 775490.46, "ns per ops/procs": 1289.51}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 10 -t 100 -s 80", {"Duration (ms)": 10007.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 80.0, "Total Operations(ops)": 79811057.0, "Total blocks": 24942609.0, "Ops per second": 7974829.0, "ns per ops": 125.39, "Ops per threads": 798110.0, "Ops per procs": 79811057.0, "Ops/sec/procs": 7974829.0, "ns per ops/procs": 125.39}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 10 -t 2400 -s 1920", {"Duration (ms)": 10041.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 1920.0, "Total Operations(ops)": 75138224.0, "Total blocks": 28316320.0, "Ops per second": 7483121.08, "ns per ops": 133.63, "Ops per threads": 31307.0, "Ops per procs": 3130759.0, "Ops/sec/procs": 311796.71, "ns per ops/procs": 3207.22}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 10 -t 1600 -s 1280", {"Duration (ms)": 10024.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 1280.0, "Total Operations(ops)": 76515053.0, "Total blocks": 27532672.0, "Ops per second": 7632511.21, "ns per ops": 131.02, "Ops per threads": 47821.0, "Ops per procs": 4782190.0, "Ops/sec/procs": 477031.95, "ns per ops/procs": 2096.3}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 10 -t 2400 -s 1920", {"Duration (ms)": 10026.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 1920.0, "Total Operations(ops)": 75360901.0, "Total blocks": 28401609.0, "Ops per second": 7515905.66, "ns per ops": 133.05, "Ops per threads": 31400.0, "Ops per procs": 3140037.0, "Ops/sec/procs": 313162.74, "ns per ops/procs": 3193.23}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 10 -t 100 -s 80", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 80.0, "Total Operations(ops)": 151314962.0, "Ops per second": 15129984.81, "ns per ops": 66.09, "Ops per threads": 1513149.0, "Ops per procs": 151314962.0, "Ops/sec/procs": 15129984.81, "ns per ops/procs": 66.09}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 10 -t 800 -s 640", {"Duration (ms)": 10011.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 640.0, "Total Operations(ops)": 79141078.0, "Total blocks": 29863613.0, "Ops per second": 7904875.43, "ns per ops": 126.5, "Ops per threads": 98926.0, "Ops per procs": 9892634.0, "Ops/sec/procs": 988109.43, "ns per ops/procs": 1012.03}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 10 -t 2400 -s 1920", {"Duration (ms)": 10001.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 1920.0, "Total Operations(ops)": 188556624.0, "Ops per second": 18852533.83, "ns per ops": 53.04, "Ops per threads": 78565.0, "Ops per procs": 7856526.0, "Ops/sec/procs": 785522.24, "ns per ops/procs": 1273.04}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 10 -t 800 -s 640", {"Duration (ms)": 10001.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 640.0, "Total Operations(ops)": 228229792.0, "Ops per second": 22820542.67, "ns per ops": 43.82, "Ops per threads": 285287.0, "Ops per procs": 28528724.0, "Ops/sec/procs": 2852567.83, "ns per ops/procs": 350.56}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 10 -t 800 -s 640", {"Duration (ms)": 10020.121849, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 640.0, "Total Operations(ops)": 302307497.0, "Total blocks": 128429554.0, "Ops per second": 30170042.0, "ns per ops": 33.15, "Ops per threads": 377884.0, "Ops per procs": 37788437.0, "Ops/sec/procs": 3771255.25, "ns per ops/procs": 265.16}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 10 -t 800 -s 640", {"Duration (ms)": 10001.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 640.0, "Total Operations(ops)": 226161389.0, "Ops per second": 22613570.5, "ns per ops": 44.22, "Ops per threads": 282701.0, "Ops per procs": 28270173.0, "Ops/sec/procs": 2826696.31, "ns per ops/procs": 353.77}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 10 -t 800 -s 640", {"Duration (ms)": 10017.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 640.0, "Total Operations(ops)": 78799007.0, "Total blocks": 29733108.0, "Ops per second": 7865960.45, "ns per ops": 127.13, "Ops per threads": 98498.0, "Ops per procs": 9849875.0, "Ops/sec/procs": 983245.06, "ns per ops/procs": 1017.04}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 10 -t 800 -s 640", {"Duration (ms)": 10005.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 640.0, "Total Operations(ops)": 226114608.0, "Ops per second": 22598888.16, "ns per ops": 44.25, "Ops per threads": 282643.0, "Ops per procs": 28264326.0, "Ops/sec/procs": 2824861.02, "ns per ops/procs": 354.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 10 -t 800 -s 640", {"Duration (ms)": 10019.343306, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 640.0, "Total Operations(ops)": 291933237.0, "Total blocks": 129498687.0, "Ops per second": 29136963.18, "ns per ops": 34.32, "Ops per threads": 364916.0, "Ops per procs": 36491654.0, "Ops/sec/procs": 3642120.4, "ns per ops/procs": 274.57}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 10 -t 800 -s 640", {"Duration (ms)": 10100.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 260279998.0, "Ops per second": 26027999.0, "ns per ops": 38.0, "Ops per threads": 325349.0, "Ops per procs": 32534999.0, "Ops/sec/procs": 3253499.0, "ns per ops/procs": 310.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 10 -t 2400 -s 1920", {"Duration (ms)": 10007.059222, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 1920.0, "Total Operations(ops)": 765662737.0, "Total blocks": 325286764.0, "Ops per second": 76512262.0, "ns per ops": 13.07, "Ops per threads": 319026.0, "Ops per procs": 31902614.0, "Ops/sec/procs": 3188010.92, "ns per ops/procs": 313.68}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 10 -t 100 -s 80", {"Duration (ms)": 10016.849943, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 80.0, "Total Operations(ops)": 96124027.0, "Total blocks": 44464161.0, "Ops per second": 9596233.1, "ns per ops": 104.21, "Ops per threads": 961240.0, "Ops per procs": 96124027.0, "Ops/sec/procs": 9596233.1, "ns per ops/procs": 104.21}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 10 -t 100 -s 80", {"Duration (ms)": 10099.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 74842673.0, "Ops per second": 7484267.0, "ns per ops": 134.0, "Ops per threads": 748426.0, "Ops per procs": 74842673.0, "Ops/sec/procs": 7484267.0, "ns per ops/procs": 134.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 10 -t 800 -s 640", {"Duration (ms)": 10016.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 640.0, "Total Operations(ops)": 80963737.0, "Total blocks": 30553569.0, "Ops per second": 8082674.95, "ns per ops": 123.72, "Ops per threads": 101204.0, "Ops per procs": 10120467.0, "Ops/sec/procs": 1010334.37, "ns per ops/procs": 989.77}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 10 -t 100 -s 80", {"Duration (ms)": 10099.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 73702204.0, "Ops per second": 7370220.0, "ns per ops": 137.0, "Ops per threads": 737022.0, "Ops per procs": 73702204.0, "Ops/sec/procs": 7370220.0, "ns per ops/procs": 137.0}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 10 -t 100 -s 80", {"Duration (ms)": 10001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 80.0, "Total Operations(ops)": 151011982.0, "Ops per second": 15099599.79, "ns per ops": 66.23, "Ops per threads": 1510119.0, "Ops per procs": 151011982.0, "Ops/sec/procs": 15099599.79, "ns per ops/procs": 66.23}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 10 -t 100 -s 80", {"Duration (ms)": 10001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 80.0, "Total Operations(ops)": 151419332.0, "Ops per second": 15140359.92, "ns per ops": 66.05, "Ops per threads": 1514193.0, "Ops per procs": 151419332.0, "Ops/sec/procs": 15140359.92, "ns per ops/procs": 66.05}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 10 -t 2400 -s 1920", {"Duration (ms)": 10001.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 648186982.0, "Ops per second": 64818698.0, "ns per ops": 15.0, "Ops per threads": 270077.0, "Ops per procs": 27007790.0, "Ops/sec/procs": 2700779.0, "ns per ops/procs": 370.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 10 -t 1600 -s 1280", {"Duration (ms)": 10001.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 1280.0, "Total Operations(ops)": 213886424.0, "Ops per second": 21385699.62, "ns per ops": 46.76, "Ops per threads": 133679.0, "Ops per procs": 13367901.0, "Ops/sec/procs": 1336606.23, "ns per ops/procs": 748.16}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 10 -t 1600 -s 1280", {"Duration (ms)": 10025.525505, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 1280.0, "Total Operations(ops)": 552853400.0, "Total blocks": 239647709.0, "Ops per second": 55144580.67, "ns per ops": 18.13, "Ops per threads": 345533.0, "Ops per procs": 34553337.0, "Ops/sec/procs": 3446536.29, "ns per ops/procs": 290.15}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 10 -t 800 -s 640", {"Duration (ms)": 10020.252098, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 640.0, "Total Operations(ops)": 295438407.0, "Total blocks": 128292778.0, "Ops per second": 29484129.15, "ns per ops": 33.92, "Ops per threads": 369298.0, "Ops per procs": 36929800.0, "Ops/sec/procs": 3685516.14, "ns per ops/procs": 271.33}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 10 -t 1600 -s 1280", {"Duration (ms)": 10000.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 476585040.0, "Ops per second": 47658504.0, "ns per ops": 20.0, "Ops per threads": 297865.0, "Ops per procs": 29786565.0, "Ops/sec/procs": 2978656.0, "ns per ops/procs": 335.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 10 -t 2400 -s 1920", {"Duration (ms)": 10007.127025, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 1920.0, "Total Operations(ops)": 777392421.0, "Total blocks": 323387255.0, "Ops per second": 77683876.61, "ns per ops": 12.87, "Ops per threads": 323913.0, "Ops per procs": 32391350.0, "Ops/sec/procs": 3236828.19, "ns per ops/procs": 308.94}]]
     1[["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30075.868301, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 289469263.0, "Total blocks": 99682524.0, "Ops per second": 9624635.28, "ns per ops": 103.9, "Ops per threads": 180918.0, "Ops per procs": 18091828.0, "Ops/sec/procs": 601539.7, "ns per ops/procs": 1662.4}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30046.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 403404059.0, "Total blocks": 211351282.0, "Ops per second": 13425814.66, "ns per ops": 74.48, "Ops per threads": 56028.0, "Ops per procs": 5602834.0, "Ops/sec/procs": 186469.65, "ns per ops/procs": 5362.8}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30049.411121, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1107942830.0, "Total blocks": 2274803.0, "Ops per second": 36870700.25, "ns per ops": 27.12, "Ops per threads": 11079428.0, "Ops per procs": 1107942830.0, "Ops/sec/procs": 36870700.25, "ns per ops/procs": 27.12}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30034.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 135875512.0, "Ops per second": 4523993.62, "ns per ops": 221.04, "Ops per threads": 169844.0, "Ops per procs": 16984439.0, "Ops/sec/procs": 565499.2, "ns per ops/procs": 1768.35}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30018.838212, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 554451137.0, "Total blocks": 217588854.0, "Ops per second": 18470106.44, "ns per ops": 54.14, "Ops per threads": 38503.0, "Ops per procs": 3850355.0, "Ops/sec/procs": 128264.63, "ns per ops/procs": 7796.38}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30050.100322, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 446584650.0, "Total blocks": 3589341.0, "Ops per second": 14861336.41, "ns per ops": 67.29, "Ops per threads": 2232923.0, "Ops per procs": 223292325.0, "Ops/sec/procs": 7430668.2, "ns per ops/procs": 134.58}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30065.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 165334540.0, "Ops per second": 5511151.0, "ns per ops": 181.0, "Ops per threads": 413336.0, "Ops per procs": 41333635.0, "Ops/sec/procs": 1377787.0, "ns per ops/procs": 727.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30067.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 85108311.0, "Total blocks": 42555241.0, "Ops per second": 2830560.64, "ns per ops": 353.29, "Ops per threads": 425541.0, "Ops per procs": 42554155.0, "Ops/sec/procs": 1415280.32, "ns per ops/procs": 706.57}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 135695877.0, "Ops per second": 4522969.22, "ns per ops": 221.09, "Ops per threads": 1356958.0, "Ops per procs": 135695877.0, "Ops/sec/procs": 4522969.22, "ns per ops/procs": 221.09}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.007864, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 460189920.0, "Total blocks": 6818419.0, "Ops per second": 15313626.82, "ns per ops": 65.3, "Ops per threads": 2300949.0, "Ops per procs": 230094960.0, "Ops/sec/procs": 7656813.41, "ns per ops/procs": 130.6}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30037.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 352510510.0, "Total blocks": 188865198.0, "Ops per second": 11735491.3, "ns per ops": 85.21, "Ops per threads": 146879.0, "Ops per procs": 14687937.0, "Ops/sec/procs": 488978.8, "ns per ops/procs": 2045.08}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.404585, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 420642103.0, "Total blocks": 4555781.0, "Ops per second": 13997419.05, "ns per ops": 71.44, "Ops per threads": 2103210.0, "Ops per procs": 210321051.0, "Ops/sec/procs": 6998709.52, "ns per ops/procs": 142.88}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 135981132.0, "Ops per second": 4532471.29, "ns per ops": 220.63, "Ops per threads": 1359811.0, "Ops per procs": 135981132.0, "Ops/sec/procs": 4532471.29, "ns per ops/procs": 220.63}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30050.010105, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1119014154.0, "Total blocks": 532914.0, "Ops per second": 37238395.26, "ns per ops": 26.85, "Ops per threads": 11190141.0, "Ops per procs": 1119014154.0, "Ops/sec/procs": 37238395.26, "ns per ops/procs": 26.85}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30022.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 117451105.0, "Ops per second": 3912118.28, "ns per ops": 255.62, "Ops per threads": 587255.0, "Ops per procs": 58725552.0, "Ops/sec/procs": 1956059.14, "ns per ops/procs": 511.23}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30037.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 276197417.0, "Total blocks": 140339441.0, "Ops per second": 9195171.06, "ns per ops": 108.75, "Ops per threads": 172623.0, "Ops per procs": 17262338.0, "Ops/sec/procs": 574698.19, "ns per ops/procs": 1740.04}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30090.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 477422266.0, "Total blocks": 253638280.0, "Ops per second": 15866309.74, "ns per ops": 63.03, "Ops per threads": 49731.0, "Ops per procs": 4973148.0, "Ops/sec/procs": 165274.06, "ns per ops/procs": 6050.56}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30007.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 192918672.0, "Ops per second": 6430622.0, "ns per ops": 155.0, "Ops per threads": 964593.0, "Ops per procs": 96459336.0, "Ops/sec/procs": 3215311.0, "ns per ops/procs": 311.0}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30037.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 466582279.0, "Ops per second": 15533280.4, "ns per ops": 64.38, "Ops per threads": 32401.0, "Ops per procs": 3240154.0, "Ops/sec/procs": 107870.0, "ns per ops/procs": 9270.42}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30047.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 435177105.0, "Ops per second": 14483172.02, "ns per ops": 69.05, "Ops per threads": 22665.0, "Ops per procs": 2266547.0, "Ops/sec/procs": 75433.19, "ns per ops/procs": 13256.76}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30057.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 169269650.0, "Ops per second": 5642321.0, "ns per ops": 177.0, "Ops per threads": 423174.0, "Ops per procs": 42317412.0, "Ops/sec/procs": 1410580.0, "ns per ops/procs": 710.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30042.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 263067114.0, "Total blocks": 135012656.0, "Ops per second": 8756384.01, "ns per ops": 114.2, "Ops per threads": 164416.0, "Ops per procs": 16441694.0, "Ops/sec/procs": 547274.0, "ns per ops/procs": 1827.24}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30021.800437, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 331747340.0, "Total blocks": 113949944.0, "Ops per second": 11050214.68, "ns per ops": 90.5, "Ops per threads": 138228.0, "Ops per procs": 13822805.0, "Ops/sec/procs": 460425.61, "ns per ops/procs": 2171.9}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 120106879.0, "Ops per second": 4000468.15, "ns per ops": 249.97, "Ops per threads": 600534.0, "Ops per procs": 60053439.0, "Ops/sec/procs": 2000234.08, "ns per ops/procs": 499.94}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30063.295621, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 493310516.0, "Total blocks": 182106727.0, "Ops per second": 16409063.14, "ns per ops": 60.94, "Ops per threads": 68515.0, "Ops per procs": 6851534.0, "Ops/sec/procs": 227903.65, "ns per ops/procs": 4387.82}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30054.86694, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 168373659.0, "Total blocks": 81452589.0, "Ops per second": 5602209.43, "ns per ops": 178.5, "Ops per threads": 420934.0, "Ops per procs": 42093414.0, "Ops/sec/procs": 1400552.36, "ns per ops/procs": 714.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30002.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 531062302.0, "Total blocks": 293639829.0, "Ops per second": 17700640.51, "ns per ops": 56.5, "Ops per threads": 110637.0, "Ops per procs": 11063797.0, "Ops/sec/procs": 368763.34, "ns per ops/procs": 2711.77}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30074.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 643735760.0, "Total blocks": 358621007.0, "Ops per second": 21404624.0, "ns per ops": 46.72, "Ops per threads": 44703.0, "Ops per procs": 4470387.0, "Ops/sec/procs": 148643.22, "ns per ops/procs": 6727.52}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30059.292145, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 223458642.0, "Total blocks": 89002774.0, "Ops per second": 7433928.95, "ns per ops": 134.52, "Ops per threads": 279323.0, "Ops per procs": 27932330.0, "Ops/sec/procs": 929241.12, "ns per ops/procs": 1076.15}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30072.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 405846975.0, "Total blocks": 213386180.0, "Ops per second": 13495463.54, "ns per ops": 74.1, "Ops per threads": 56367.0, "Ops per procs": 5636763.0, "Ops/sec/procs": 187436.99, "ns per ops/procs": 5335.13}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30001.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 809976443.0, "Ops per second": 26999214.0, "ns per ops": 37.0, "Ops per threads": 56248.0, "Ops per procs": 5624836.0, "Ops/sec/procs": 187494.0, "ns per ops/procs": 5333.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30081.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 389914473.0, "Total blocks": 206265278.0, "Ops per second": 12961862.65, "ns per ops": 77.15, "Ops per threads": 54154.0, "Ops per procs": 5415478.0, "Ops/sec/procs": 180025.87, "ns per ops/procs": 5554.76}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30024.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 492383427.0, "Ops per second": 16412780.0, "ns per ops": 60.0, "Ops per threads": 68386.0, "Ops per procs": 6838658.0, "Ops/sec/procs": 227955.0, "ns per ops/procs": 4390.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30021.931164, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 345016533.0, "Total blocks": 130363754.0, "Ops per second": 11492149.89, "ns per ops": 87.02, "Ops per threads": 143756.0, "Ops per procs": 14375688.0, "Ops/sec/procs": 478839.58, "ns per ops/procs": 2088.38}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30066.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 86178096.0, "Total blocks": 43090129.0, "Ops per second": 2866252.66, "ns per ops": 348.89, "Ops per threads": 430890.0, "Ops per procs": 43089048.0, "Ops/sec/procs": 1433126.33, "ns per ops/procs": 697.78}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30029.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 501676119.0, "Ops per second": 16722537.0, "ns per ops": 59.0, "Ops per threads": 69677.0, "Ops per procs": 6967723.0, "Ops/sec/procs": 232257.0, "ns per ops/procs": 4309.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30032.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 547129292.0, "Total blocks": 304012301.0, "Ops per second": 18217830.81, "ns per ops": 54.89, "Ops per threads": 113985.0, "Ops per procs": 11398526.0, "Ops/sec/procs": 379538.14, "ns per ops/procs": 2634.78}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30024.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 119733043.0, "Ops per second": 3987801.18, "ns per ops": 250.76, "Ops per threads": 598665.0, "Ops per procs": 59866521.0, "Ops/sec/procs": 1993900.59, "ns per ops/procs": 501.53}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30007.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 742058814.0, "Ops per second": 24735293.0, "ns per ops": 40.0, "Ops per threads": 154595.0, "Ops per procs": 15459558.0, "Ops/sec/procs": 515318.0, "ns per ops/procs": 1941.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30030.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 237302272.0, "Ops per second": 7902160.43, "ns per ops": 126.55, "Ops per threads": 148313.0, "Ops per procs": 14831392.0, "Ops/sec/procs": 493885.03, "ns per ops/procs": 2024.76}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30031.192223, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 559305025.0, "Total blocks": 216177017.0, "Ops per second": 18624136.56, "ns per ops": 53.69, "Ops per threads": 58260.0, "Ops per procs": 5826094.0, "Ops/sec/procs": 194001.42, "ns per ops/procs": 5154.6}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30050.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 373205153.0, "Ops per second": 12419293.9, "ns per ops": 80.52, "Ops per threads": 77751.0, "Ops per procs": 7775107.0, "Ops/sec/procs": 258735.29, "ns per ops/procs": 3864.95}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30040.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 262484921.0, "Ops per second": 8737744.14, "ns per ops": 114.45, "Ops per threads": 109368.0, "Ops per procs": 10936871.0, "Ops/sec/procs": 364072.67, "ns per ops/procs": 2746.7}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30095.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 391969440.0, "Total blocks": 207086302.0, "Ops per second": 13024362.64, "ns per ops": 76.78, "Ops per threads": 54440.0, "Ops per procs": 5444020.0, "Ops/sec/procs": 180893.93, "ns per ops/procs": 5528.1}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 547581273.0, "Total blocks": 304069398.0, "Ops per second": 18192857.66, "ns per ops": 54.97, "Ops per threads": 114079.0, "Ops per procs": 11407943.0, "Ops/sec/procs": 379017.87, "ns per ops/procs": 2638.4}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30030.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 377205011.0, "Total blocks": 205651915.0, "Ops per second": 12560654.76, "ns per ops": 79.61, "Ops per threads": 157168.0, "Ops per procs": 15716875.0, "Ops/sec/procs": 523360.61, "ns per ops/procs": 1910.73}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30030.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 419980931.0, "Ops per second": 13985201.06, "ns per ops": 71.5, "Ops per threads": 58330.0, "Ops per procs": 5833068.0, "Ops/sec/procs": 194238.9, "ns per ops/procs": 5148.3}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30037.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 157657898.0, "Ops per second": 5248725.07, "ns per ops": 190.52, "Ops per threads": 394144.0, "Ops per procs": 39414474.0, "Ops/sec/procs": 1312181.27, "ns per ops/procs": 762.09}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30060.564641, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 213642091.0, "Total blocks": 88395570.0, "Ops per second": 7107055.16, "ns per ops": 140.71, "Ops per threads": 267052.0, "Ops per procs": 26705261.0, "Ops/sec/procs": 888381.89, "ns per ops/procs": 1125.64}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30016.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 514011356.0, "Ops per second": 17133711.0, "ns per ops": 58.0, "Ops per threads": 214171.0, "Ops per procs": 21417139.0, "Ops/sec/procs": 713904.0, "ns per ops/procs": 1401.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30067.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 85940501.0, "Total blocks": 42971495.0, "Ops per second": 2858299.17, "ns per ops": 349.86, "Ops per threads": 429702.0, "Ops per procs": 42970250.0, "Ops/sec/procs": 1429149.58, "ns per ops/procs": 699.72}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30068.16394, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 461302988.0, "Total blocks": 170136777.0, "Ops per second": 15341907.44, "ns per ops": 65.18, "Ops per threads": 48052.0, "Ops per procs": 4805239.0, "Ops/sec/procs": 159811.54, "ns per ops/procs": 6257.37}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30034.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 157574300.0, "Ops per second": 5246454.88, "ns per ops": 190.6, "Ops per threads": 196967.0, "Ops per procs": 19696787.0, "Ops/sec/procs": 655806.86, "ns per ops/procs": 1524.84}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30046.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 483114499.0, "Ops per second": 16103816.0, "ns per ops": 62.0, "Ops per threads": 67099.0, "Ops per procs": 6709923.0, "Ops/sec/procs": 223664.0, "ns per ops/procs": 4477.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30013.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 779981371.0, "Total blocks": 408333976.0, "Ops per second": 25987538.56, "ns per ops": 38.48, "Ops per threads": 40624.0, "Ops per procs": 4062402.0, "Ops/sec/procs": 135351.76, "ns per ops/procs": 7388.16}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30060.675957, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 222215768.0, "Total blocks": 78217309.0, "Ops per second": 7392241.22, "ns per ops": 135.28, "Ops per threads": 277769.0, "Ops per procs": 27776971.0, "Ops/sec/procs": 924030.15, "ns per ops/procs": 1082.22}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 118927722.0, "Ops per second": 3961209.34, "ns per ops": 252.45, "Ops per threads": 594638.0, "Ops per procs": 59463861.0, "Ops/sec/procs": 1980604.67, "ns per ops/procs": 504.9}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30045.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 262011274.0, "Total blocks": 134446637.0, "Ops per second": 8720515.65, "ns per ops": 114.67, "Ops per threads": 163757.0, "Ops per procs": 16375704.0, "Ops/sec/procs": 545032.23, "ns per ops/procs": 1834.75}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30067.25622, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 562247067.0, "Total blocks": 210693052.0, "Ops per second": 18699646.65, "ns per ops": 53.48, "Ops per threads": 39044.0, "Ops per procs": 3904493.0, "Ops/sec/procs": 129858.66, "ns per ops/procs": 7700.68}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30026.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 463496302.0, "Ops per second": 15436388.94, "ns per ops": 64.78, "Ops per threads": 64374.0, "Ops per procs": 6437448.0, "Ops/sec/procs": 214394.29, "ns per ops/procs": 4664.3}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30100.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 477250158.0, "Total blocks": 253418567.0, "Ops per second": 15855387.09, "ns per ops": 63.07, "Ops per threads": 49713.0, "Ops per procs": 4971355.0, "Ops/sec/procs": 165160.28, "ns per ops/procs": 6054.73}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30038.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 158522221.0, "Ops per second": 5277258.49, "ns per ops": 189.49, "Ops per threads": 396305.0, "Ops per procs": 39630555.0, "Ops/sec/procs": 1319314.62, "ns per ops/procs": 757.97}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30016.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 967720382.0, "Ops per second": 32257346.0, "ns per ops": 31.0, "Ops per threads": 50402.0, "Ops per procs": 5040210.0, "Ops/sec/procs": 168007.0, "ns per ops/procs": 5955.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30002.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 821802839.0, "Ops per second": 27393427.0, "ns per ops": 36.0, "Ops per threads": 57069.0, "Ops per procs": 5706964.0, "Ops/sec/procs": 190232.0, "ns per ops/procs": 5257.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30091.886662, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 552173051.0, "Total blocks": 209027334.0, "Ops per second": 18349565.69, "ns per ops": 54.5, "Ops per threads": 38345.0, "Ops per procs": 3834535.0, "Ops/sec/procs": 127427.54, "ns per ops/procs": 7847.6}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30045.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 340551126.0, "Total blocks": 184661834.0, "Ops per second": 11334508.2, "ns per ops": 88.23, "Ops per threads": 141896.0, "Ops per procs": 14189630.0, "Ops/sec/procs": 472271.17, "ns per ops/procs": 2117.43}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30038.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 275334214.0, "Total blocks": 139677779.0, "Ops per second": 9165966.63, "ns per ops": 109.1, "Ops per threads": 172083.0, "Ops per procs": 17208388.0, "Ops/sec/procs": 572872.91, "ns per ops/procs": 1745.59}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30012.567786, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 638825140.0, "Total blocks": 246576238.0, "Ops per second": 21285254.38, "ns per ops": 46.98, "Ops per threads": 33272.0, "Ops per procs": 3327214.0, "Ops/sec/procs": 110860.7, "ns per ops/procs": 9020.33}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30014.099262, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 572321642.0, "Total blocks": 225997194.0, "Ops per second": 19068426.38, "ns per ops": 52.44, "Ops per threads": 59616.0, "Ops per procs": 5961683.0, "Ops/sec/procs": 198629.44, "ns per ops/procs": 5034.5}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30015.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 179041576.0, "Total blocks": 96279802.0, "Ops per second": 5965006.37, "ns per ops": 167.64, "Ops per threads": 223801.0, "Ops per procs": 22380197.0, "Ops/sec/procs": 745625.8, "ns per ops/procs": 1341.16}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30069.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 86037414.0, "Total blocks": 43019155.0, "Ops per second": 2861325.64, "ns per ops": 349.49, "Ops per threads": 430187.0, "Ops per procs": 43018707.0, "Ops/sec/procs": 1430662.82, "ns per ops/procs": 698.98}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192391162.0, "Total blocks": 0.0, "Ops per second": 6407286.05, "ns per ops": 156.07, "Ops per threads": 1923911.0, "Ops per procs": 192391162.0, "Ops/sec/procs": 6407286.05, "ns per ops/procs": 156.07}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30089.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 144193440.0, "Total blocks": 87209382.0, "Ops per second": 4792135.09, "ns per ops": 208.68, "Ops per threads": 360483.0, "Ops per procs": 36048360.0, "Ops/sec/procs": 1198033.77, "ns per ops/procs": 834.7}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30048.879489, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 292998484.0, "Total blocks": 115768461.0, "Ops per second": 9750729.11, "ns per ops": 102.56, "Ops per threads": 183124.0, "Ops per procs": 18312405.0, "Ops/sec/procs": 609420.57, "ns per ops/procs": 1640.9}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30054.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 303561759.0, "Total blocks": 159405536.0, "Ops per second": 10100263.0, "ns per ops": 99.01, "Ops per threads": 126484.0, "Ops per procs": 12648406.0, "Ops/sec/procs": 420844.29, "ns per ops/procs": 2376.18}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30008.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 190117539.0, "Ops per second": 6337251.0, "ns per ops": 157.0, "Ops per threads": 950587.0, "Ops per procs": 95058769.0, "Ops/sec/procs": 3168625.0, "ns per ops/procs": 315.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30003.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 742543456.0, "Ops per second": 24751448.0, "ns per ops": 40.0, "Ops per threads": 154696.0, "Ops per procs": 15469655.0, "Ops/sec/procs": 515655.0, "ns per ops/procs": 1939.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30018.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 184769861.0, "Ops per second": 6158995.0, "ns per ops": 162.0, "Ops per threads": 923849.0, "Ops per procs": 92384930.0, "Ops/sec/procs": 3079497.0, "ns per ops/procs": 324.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30028.672325, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 614702777.0, "Total blocks": 257279822.0, "Ops per second": 20470527.98, "ns per ops": 48.85, "Ops per threads": 32015.0, "Ops per procs": 3201576.0, "Ops/sec/procs": 106617.33, "ns per ops/procs": 9379.34}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30098.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 652534542.0, "Total blocks": 362925017.0, "Ops per second": 21680059.97, "ns per ops": 46.13, "Ops per threads": 45314.0, "Ops per procs": 4531489.0, "Ops/sec/procs": 150555.97, "ns per ops/procs": 6642.05}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30038.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 151569814.0, "Ops per second": 5045788.08, "ns per ops": 198.19, "Ops per threads": 189462.0, "Ops per procs": 18946226.0, "Ops/sec/procs": 630723.51, "ns per ops/procs": 1585.48}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30034.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 177032677.0, "Ops per second": 5901089.0, "ns per ops": 169.0, "Ops per threads": 885163.0, "Ops per procs": 88516338.0, "Ops/sec/procs": 2950544.0, "ns per ops/procs": 339.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30041.061808, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 547418122.0, "Total blocks": 213173108.0, "Ops per second": 18222329.34, "ns per ops": 54.88, "Ops per threads": 57022.0, "Ops per procs": 5702272.0, "Ops/sec/procs": 189815.93, "ns per ops/procs": 5268.26}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30017.932819, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 608493054.0, "Total blocks": 233286904.0, "Ops per second": 20270984.6, "ns per ops": 49.33, "Ops per threads": 31692.0, "Ops per procs": 3169234.0, "Ops/sec/procs": 105578.04, "ns per ops/procs": 9471.67}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30033.041615, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 569143989.0, "Total blocks": 212892830.0, "Ops per second": 18950594.36, "ns per ops": 52.77, "Ops per threads": 39523.0, "Ops per procs": 3952388.0, "Ops/sec/procs": 131601.35, "ns per ops/procs": 7598.71}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.236224, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 171437082.0, "Total blocks": 83008395.0, "Ops per second": 5704067.03, "ns per ops": 175.31, "Ops per threads": 428592.0, "Ops per procs": 42859270.0, "Ops/sec/procs": 1426016.76, "ns per ops/procs": 701.25}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30096.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 791936415.0, "Total blocks": 413079985.0, "Ops per second": 26313013.98, "ns per ops": 38.0, "Ops per threads": 41246.0, "Ops per procs": 4124668.0, "Ops/sec/procs": 137046.95, "ns per ops/procs": 7296.77}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30013.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 473926634.0, "Total blocks": 252360761.0, "Ops per second": 15790546.99, "ns per ops": 63.33, "Ops per threads": 49367.0, "Ops per procs": 4936735.0, "Ops/sec/procs": 164484.86, "ns per ops/procs": 6079.59}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30008.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 831437046.0, "Ops per second": 27714568.0, "ns per ops": 36.0, "Ops per threads": 57738.0, "Ops per procs": 5773868.0, "Ops/sec/procs": 192462.0, "ns per ops/procs": 5197.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30007.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 731867186.0, "Ops per second": 24395572.0, "ns per ops": 41.0, "Ops per threads": 152472.0, "Ops per procs": 15247233.0, "Ops/sec/procs": 508241.0, "ns per ops/procs": 1968.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30047.044654, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 506855883.0, "Total blocks": 199342292.0, "Ops per second": 16868743.29, "ns per ops": 59.28, "Ops per threads": 70396.0, "Ops per procs": 7039665.0, "Ops/sec/procs": 234288.1, "ns per ops/procs": 4268.25}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30089.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 546139586.0, "Total blocks": 303624999.0, "Ops per second": 18150711.36, "ns per ops": 55.09, "Ops per threads": 113779.0, "Ops per procs": 11377908.0, "Ops/sec/procs": 378139.82, "ns per ops/procs": 2644.52}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30052.757614, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 508109467.0, "Total blocks": 187018883.0, "Ops per second": 16907249.36, "ns per ops": 59.15, "Ops per threads": 35285.0, "Ops per procs": 3528537.0, "Ops/sec/procs": 117411.45, "ns per ops/procs": 8517.06}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30076.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 481753266.0, "Total blocks": 257794669.0, "Ops per second": 16017610.73, "ns per ops": 62.43, "Ops per threads": 50182.0, "Ops per procs": 5018263.0, "Ops/sec/procs": 166850.11, "ns per ops/procs": 5993.4}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192330844.0, "Total blocks": 0.0, "Ops per second": 6405264.01, "ns per ops": 156.12, "Ops per threads": 1923308.0, "Ops per procs": 192330844.0, "Ops/sec/procs": 6405264.01, "ns per ops/procs": 156.12}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30041.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 158173566.0, "Ops per second": 5265141.09, "ns per ops": 189.93, "Ops per threads": 395433.0, "Ops per procs": 39543391.0, "Ops/sec/procs": 1316285.27, "ns per ops/procs": 759.71}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 451340969.0, "Ops per second": 15044698.0, "ns per ops": 66.0, "Ops per threads": 4513409.0, "Ops per procs": 451340969.0, "Ops/sec/procs": 15044698.0, "ns per ops/procs": 66.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 740711879.0, "Ops per second": 24690395.0, "ns per ops": 40.0, "Ops per threads": 154314.0, "Ops per procs": 15431497.0, "Ops/sec/procs": 514383.0, "ns per ops/procs": 1944.0}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30034.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 257839981.0, "Ops per second": 8584782.57, "ns per ops": 116.49, "Ops per threads": 107433.0, "Ops per procs": 10743332.0, "Ops/sec/procs": 357699.27, "ns per ops/procs": 2795.64}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30080.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 167090878.0, "Ops per second": 5569695.0, "ns per ops": 180.0, "Ops per threads": 417727.0, "Ops per procs": 41772719.0, "Ops/sec/procs": 1392423.0, "ns per ops/procs": 720.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30027.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 235680912.0, "Ops per second": 7856030.0, "ns per ops": 127.0, "Ops per threads": 294601.0, "Ops per procs": 29460114.0, "Ops/sec/procs": 982003.0, "ns per ops/procs": 1019.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30048.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 346745926.0, "Ops per second": 11558197.0, "ns per ops": 86.0, "Ops per threads": 216716.0, "Ops per procs": 21671620.0, "Ops/sec/procs": 722387.0, "ns per ops/procs": 1386.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30054.787815, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 169134122.0, "Total blocks": 81717062.0, "Ops per second": 5627526.74, "ns per ops": 177.7, "Ops per threads": 422835.0, "Ops per procs": 42283530.0, "Ops/sec/procs": 1406881.68, "ns per ops/procs": 710.79}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 119444141.0, "Total blocks": 70913358.0, "Ops per second": 3981305.77, "ns per ops": 251.17, "Ops per threads": 298610.0, "Ops per procs": 29861035.0, "Ops/sec/procs": 995326.44, "ns per ops/procs": 1004.7}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30052.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 451097128.0, "Ops per second": 15010426.68, "ns per ops": 66.62, "Ops per threads": 23494.0, "Ops per procs": 2349464.0, "Ops/sec/procs": 78179.31, "ns per ops/procs": 12791.11}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.009121, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 155630767.0, "Total blocks": 74902749.0, "Ops per second": 5178197.3, "ns per ops": 193.12, "Ops per threads": 389076.0, "Ops per procs": 38907691.0, "Ops/sec/procs": 1294549.32, "ns per ops/procs": 772.47}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30014.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 179898963.0, "Total blocks": 97083310.0, "Ops per second": 5993667.18, "ns per ops": 166.84, "Ops per threads": 224873.0, "Ops per procs": 22487370.0, "Ops/sec/procs": 749208.4, "ns per ops/procs": 1334.74}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30042.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 462964646.0, "Ops per second": 15410093.65, "ns per ops": 64.89, "Ops per threads": 32150.0, "Ops per procs": 3215032.0, "Ops/sec/procs": 107014.54, "ns per ops/procs": 9344.52}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 136017441.0, "Ops per second": 4533693.75, "ns per ops": 220.57, "Ops per threads": 1360174.0, "Ops per procs": 136017441.0, "Ops/sec/procs": 4533693.75, "ns per ops/procs": 220.57}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30000.801374, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 602241809.0, "Total blocks": 231393908.0, "Ops per second": 20074190.74, "ns per ops": 49.82, "Ops per threads": 41822.0, "Ops per procs": 4182234.0, "Ops/sec/procs": 139404.1, "ns per ops/procs": 7173.39}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30077.170056, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 302491482.0, "Total blocks": 100342339.0, "Ops per second": 10057178.96, "ns per ops": 99.43, "Ops per threads": 189057.0, "Ops per procs": 18905717.0, "Ops/sec/procs": 628573.69, "ns per ops/procs": 1590.9}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30025.802496, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 651299967.0, "Total blocks": 252819757.0, "Ops per second": 21691342.54, "ns per ops": 46.1, "Ops per threads": 33921.0, "Ops per procs": 3392187.0, "Ops/sec/procs": 112975.74, "ns per ops/procs": 8851.46}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 480546377.0, "Total blocks": 256351561.0, "Ops per second": 15966347.57, "ns per ops": 62.63, "Ops per threads": 50056.0, "Ops per procs": 5005691.0, "Ops/sec/procs": 166316.12, "ns per ops/procs": 6012.65}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30059.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 455093120.0, "Ops per second": 15139780.69, "ns per ops": 66.05, "Ops per threads": 23702.0, "Ops per procs": 2370276.0, "Ops/sec/procs": 78853.02, "ns per ops/procs": 12681.82}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30088.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 548506764.0, "Total blocks": 305087653.0, "Ops per second": 18229893.33, "ns per ops": 54.85, "Ops per threads": 114272.0, "Ops per procs": 11427224.0, "Ops/sec/procs": 379789.44, "ns per ops/procs": 2633.04}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30091.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 217390397.0, "Ops per second": 7224355.57, "ns per ops": 138.42, "Ops per threads": 22644.0, "Ops per procs": 2264483.0, "Ops/sec/procs": 75253.7, "ns per ops/procs": 13288.38}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30080.820994, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 482545116.0, "Total blocks": 160774927.0, "Ops per second": 16041620.54, "ns per ops": 62.34, "Ops per threads": 67020.0, "Ops per procs": 6702015.0, "Ops/sec/procs": 222800.29, "ns per ops/procs": 4488.32}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30040.425328, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 526816921.0, "Total blocks": 188030181.0, "Ops per second": 17536932.82, "ns per ops": 57.02, "Ops per threads": 73169.0, "Ops per procs": 7316901.0, "Ops/sec/procs": 243568.51, "ns per ops/procs": 4105.62}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30067.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 86714804.0, "Total blocks": 43358228.0, "Ops per second": 2884008.01, "ns per ops": 346.74, "Ops per threads": 433574.0, "Ops per procs": 43357402.0, "Ops/sec/procs": 1442004.0, "ns per ops/procs": 693.48}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30052.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 342908792.0, "Ops per second": 11430293.0, "ns per ops": 87.0, "Ops per threads": 214317.0, "Ops per procs": 21431799.0, "Ops/sec/procs": 714393.0, "ns per ops/procs": 1402.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30022.478066, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 561022497.0, "Total blocks": 206691314.0, "Ops per second": 18686748.5, "ns per ops": 53.51, "Ops per threads": 58439.0, "Ops per procs": 5843984.0, "Ops/sec/procs": 194653.63, "ns per ops/procs": 5137.33}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30027.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192456278.0, "Total blocks": 0.0, "Ops per second": 6409439.04, "ns per ops": 156.02, "Ops per threads": 1924562.0, "Ops per procs": 192456278.0, "Ops/sec/procs": 6409439.04, "ns per ops/procs": 156.02}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30049.976466, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1120746778.0, "Total blocks": 0.0, "Ops per second": 37296095.03, "ns per ops": 26.81, "Ops per threads": 11207467.0, "Ops per procs": 1120746778.0, "Ops/sec/procs": 37296095.03, "ns per ops/procs": 26.81}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 135618943.0, "Ops per second": 4520400.35, "ns per ops": 221.22, "Ops per threads": 1356189.0, "Ops per procs": 135618943.0, "Ops/sec/procs": 4520400.35, "ns per ops/procs": 221.22}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30028.25305, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 582684618.0, "Total blocks": 226574014.0, "Ops per second": 19404546.01, "ns per ops": 51.53, "Ops per threads": 30348.0, "Ops per procs": 3034815.0, "Ops/sec/procs": 101065.34, "ns per ops/procs": 9894.59}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30047.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 501359108.0, "Ops per second": 16685407.89, "ns per ops": 59.93, "Ops per threads": 34816.0, "Ops per procs": 3481660.0, "Ops/sec/procs": 115870.89, "ns per ops/procs": 8630.3}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30036.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 263614039.0, "Ops per second": 8776537.16, "ns per ops": 113.94, "Ops per threads": 109839.0, "Ops per procs": 10983918.0, "Ops/sec/procs": 365689.05, "ns per ops/procs": 2734.56}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30042.074332, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 532703651.0, "Total blocks": 216174915.0, "Ops per second": 17731919.74, "ns per ops": 56.4, "Ops per threads": 55489.0, "Ops per procs": 5548996.0, "Ops/sec/procs": 184707.5, "ns per ops/procs": 5413.97}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30053.672303, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 464451139.0, "Total blocks": 173115687.0, "Ops per second": 15454056.14, "ns per ops": 64.71, "Ops per threads": 64507.0, "Ops per procs": 6450710.0, "Ops/sec/procs": 214639.67, "ns per ops/procs": 4658.97}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30021.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 168086601.0, "Total blocks": 91648059.0, "Ops per second": 5598887.94, "ns per ops": 178.61, "Ops per threads": 210108.0, "Ops per procs": 21010825.0, "Ops/sec/procs": 699860.99, "ns per ops/procs": 1428.86}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30009.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 942916985.0, "Ops per second": 31430566.0, "ns per ops": 31.0, "Ops per threads": 49110.0, "Ops per procs": 4911025.0, "Ops/sec/procs": 163700.0, "ns per ops/procs": 6110.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30041.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 359950147.0, "Ops per second": 11981714.25, "ns per ops": 83.46, "Ops per threads": 74989.0, "Ops per procs": 7498961.0, "Ops/sec/procs": 249619.05, "ns per ops/procs": 4006.1}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30027.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192314020.0, "Total blocks": 0.0, "Ops per second": 6404688.8, "ns per ops": 156.14, "Ops per threads": 1923140.0, "Ops per procs": 192314020.0, "Ops/sec/procs": 6404688.8, "ns per ops/procs": 156.14}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 452208584.0, "Ops per second": 15073619.0, "ns per ops": 66.0, "Ops per threads": 4522085.0, "Ops per procs": 452208584.0, "Ops/sec/procs": 15073619.0, "ns per ops/procs": 66.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 295585195.0, "Total blocks": 152177620.0, "Ops per second": 9842077.13, "ns per ops": 101.6, "Ops per threads": 184740.0, "Ops per procs": 18474074.0, "Ops/sec/procs": 615129.82, "ns per ops/procs": 1625.67}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30040.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 273945737.0, "Ops per second": 9119222.31, "ns per ops": 109.66, "Ops per threads": 114144.0, "Ops per procs": 11414405.0, "Ops/sec/procs": 379967.6, "ns per ops/procs": 2631.8}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 191993667.0, "Total blocks": 0.0, "Ops per second": 6394056.86, "ns per ops": 156.4, "Ops per threads": 1919936.0, "Ops per procs": 191993667.0, "Ops/sec/procs": 6394056.86, "ns per ops/procs": 156.4}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30008.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 518210242.0, "Total blocks": 286885761.0, "Ops per second": 17268828.94, "ns per ops": 57.91, "Ops per threads": 107960.0, "Ops per procs": 10796046.0, "Ops/sec/procs": 359767.27, "ns per ops/procs": 2779.57}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30013.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 639553962.0, "Ops per second": 21318465.0, "ns per ops": 46.0, "Ops per threads": 66620.0, "Ops per procs": 6662020.0, "Ops/sec/procs": 222067.0, "ns per ops/procs": 4505.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30028.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 489719637.0, "Ops per second": 16323987.0, "ns per ops": 61.0, "Ops per threads": 68016.0, "Ops per procs": 6801661.0, "Ops/sec/procs": 226722.0, "ns per ops/procs": 4414.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30027.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 191671927.0, "Total blocks": 0.0, "Ops per second": 6383289.63, "ns per ops": 156.66, "Ops per threads": 1916719.0, "Ops per procs": 191671927.0, "Ops/sec/procs": 6383289.63, "ns per ops/procs": 156.66}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30027.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192504355.0, "Total blocks": 0.0, "Ops per second": 6410970.93, "ns per ops": 155.98, "Ops per threads": 1925043.0, "Ops per procs": 192504355.0, "Ops/sec/procs": 6410970.93, "ns per ops/procs": 155.98}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30024.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 231851694.0, "Ops per second": 7728389.0, "ns per ops": 129.0, "Ops per threads": 289814.0, "Ops per procs": 28981461.0, "Ops/sec/procs": 966048.0, "ns per ops/procs": 1035.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30005.775649, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 609240005.0, "Total blocks": 240164763.0, "Ops per second": 20304091.19, "ns per ops": 49.25, "Ops per threads": 31731.0, "Ops per procs": 3173125.0, "Ops/sec/procs": 105750.47, "ns per ops/procs": 9456.22}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30072.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 168268969.0, "Ops per second": 5608965.0, "ns per ops": 178.0, "Ops per threads": 420672.0, "Ops per procs": 42067242.0, "Ops/sec/procs": 1402241.0, "ns per ops/procs": 714.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30077.876864, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 272143508.0, "Total blocks": 118417551.0, "Ops per second": 9047962.7, "ns per ops": 110.52, "Ops per threads": 170089.0, "Ops per procs": 17008969.0, "Ops/sec/procs": 565497.67, "ns per ops/procs": 1768.35}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30045.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 259502647.0, "Total blocks": 132377158.0, "Ops per second": 8636925.37, "ns per ops": 115.78, "Ops per threads": 162189.0, "Ops per procs": 16218915.0, "Ops/sec/procs": 539807.84, "ns per ops/procs": 1852.51}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30047.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 347070857.0, "Ops per second": 11569028.0, "ns per ops": 86.0, "Ops per threads": 216919.0, "Ops per procs": 21691928.0, "Ops/sec/procs": 723064.0, "ns per ops/procs": 1385.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30057.503941, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 769423491.0, "Total blocks": 268248863.0, "Ops per second": 25598382.77, "ns per ops": 39.06, "Ops per threads": 160296.0, "Ops per procs": 16029656.0, "Ops/sec/procs": 533299.64, "ns per ops/procs": 1875.12}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 135704117.0, "Ops per second": 4523252.62, "ns per ops": 221.08, "Ops per threads": 1357041.0, "Ops per procs": 135704117.0, "Ops/sec/procs": 4523252.62, "ns per ops/procs": 221.08}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30037.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 463027674.0, "Total blocks": 245950265.0, "Ops per second": 15414773.7, "ns per ops": 64.87, "Ops per threads": 48232.0, "Ops per procs": 4823204.0, "Ops/sec/procs": 160570.56, "ns per ops/procs": 6227.79}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192346573.0, "Total blocks": 0.0, "Ops per second": 6405831.54, "ns per ops": 156.11, "Ops per threads": 1923465.0, "Ops per procs": 192346573.0, "Ops/sec/procs": 6405831.54, "ns per ops/procs": 156.11}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30038.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 234525063.0, "Ops per second": 7817502.0, "ns per ops": 128.0, "Ops per threads": 293156.0, "Ops per procs": 29315632.0, "Ops/sec/procs": 977187.0, "ns per ops/procs": 1024.0}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30069.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 423733962.0, "Ops per second": 14091795.16, "ns per ops": 70.96, "Ops per threads": 22069.0, "Ops per procs": 2206947.0, "Ops/sec/procs": 73394.77, "ns per ops/procs": 13624.95}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30006.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 943871839.0, "Ops per second": 31462394.0, "ns per ops": 31.0, "Ops per threads": 49159.0, "Ops per procs": 4915999.0, "Ops/sec/procs": 163866.0, "ns per ops/procs": 6103.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30065.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 401282671.0, "Total blocks": 209757113.0, "Ops per second": 13347064.62, "ns per ops": 74.92, "Ops per threads": 55733.0, "Ops per procs": 5573370.0, "Ops/sec/procs": 185375.9, "ns per ops/procs": 5394.44}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30089.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 194062478.0, "Ops per second": 6449422.12, "ns per ops": 155.05, "Ops per threads": 20214.0, "Ops per procs": 2021484.0, "Ops/sec/procs": 67181.48, "ns per ops/procs": 14885.05}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30031.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 376673382.0, "Total blocks": 204648694.0, "Ops per second": 12542730.54, "ns per ops": 79.73, "Ops per threads": 156947.0, "Ops per procs": 15694724.0, "Ops/sec/procs": 522613.77, "ns per ops/procs": 1913.46}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30023.791539, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 577357851.0, "Total blocks": 220916223.0, "Ops per second": 19230011.31, "ns per ops": 52.0, "Ops per threads": 60141.0, "Ops per procs": 6014144.0, "Ops/sec/procs": 200312.62, "ns per ops/procs": 4992.2}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30025.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 498413708.0, "Ops per second": 16599659.51, "ns per ops": 60.24, "Ops per threads": 69224.0, "Ops per procs": 6922412.0, "Ops/sec/procs": 230550.83, "ns per ops/procs": 4337.44}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30032.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 477267436.0, "Ops per second": 15908914.0, "ns per ops": 62.0, "Ops per threads": 66287.0, "Ops per procs": 6628714.0, "Ops/sec/procs": 220957.0, "ns per ops/procs": 4530.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30015.095932, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 542409402.0, "Total blocks": 200376037.0, "Ops per second": 18071220.0, "ns per ops": 55.34, "Ops per threads": 37667.0, "Ops per procs": 3766731.0, "Ops/sec/procs": 125494.58, "ns per ops/procs": 7968.47}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30066.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 88691323.0, "Total blocks": 44346838.0, "Ops per second": 2949859.19, "ns per ops": 339.0, "Ops per threads": 443456.0, "Ops per procs": 44345661.0, "Ops/sec/procs": 1474929.59, "ns per ops/procs": 678.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30021.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 235271381.0, "Ops per second": 7842379.0, "ns per ops": 127.0, "Ops per threads": 294089.0, "Ops per procs": 29408922.0, "Ops/sec/procs": 980297.0, "ns per ops/procs": 1020.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30067.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 86589775.0, "Total blocks": 43295704.0, "Ops per second": 2879878.92, "ns per ops": 347.24, "Ops per threads": 432948.0, "Ops per procs": 43294887.0, "Ops/sec/procs": 1439939.46, "ns per ops/procs": 694.47}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30039.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 157275810.0, "Ops per second": 5235593.23, "ns per ops": 191.0, "Ops per threads": 393189.0, "Ops per procs": 39318952.0, "Ops/sec/procs": 1308898.31, "ns per ops/procs": 764.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30018.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 537187304.0, "Ops per second": 17906243.0, "ns per ops": 55.0, "Ops per threads": 74609.0, "Ops per procs": 7460934.0, "Ops/sec/procs": 248697.0, "ns per ops/procs": 4023.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30049.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 410198859.0, "Ops per second": 13673295.0, "ns per ops": 73.0, "Ops per threads": 56972.0, "Ops per procs": 5697206.0, "Ops/sec/procs": 189906.0, "ns per ops/procs": 5274.0}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30018.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 135609758.0, "Ops per second": 4517490.14, "ns per ops": 221.36, "Ops per threads": 1356097.0, "Ops per procs": 135609758.0, "Ops/sec/procs": 4517490.14, "ns per ops/procs": 221.36}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30030.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 135912705.0, "Ops per second": 4525845.86, "ns per ops": 220.95, "Ops per threads": 169890.0, "Ops per procs": 16989088.0, "Ops/sec/procs": 565730.73, "ns per ops/procs": 1767.63}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30059.186838, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 591341502.0, "Total blocks": 240808280.0, "Ops per second": 19672571.49, "ns per ops": 50.83, "Ops per threads": 30799.0, "Ops per procs": 3079903.0, "Ops/sec/procs": 102461.31, "ns per ops/procs": 9759.78}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30011.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 513935382.0, "Ops per second": 17131179.0, "ns per ops": 58.0, "Ops per threads": 214139.0, "Ops per procs": 21413974.0, "Ops/sec/procs": 713799.0, "ns per ops/procs": 1401.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30069.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 169664583.0, "Ops per second": 5655486.0, "ns per ops": 177.0, "Ops per threads": 424161.0, "Ops per procs": 42416145.0, "Ops/sec/procs": 1413871.0, "ns per ops/procs": 708.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30008.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 735226414.0, "Ops per second": 24507547.0, "ns per ops": 40.0, "Ops per threads": 153172.0, "Ops per procs": 15317216.0, "Ops/sec/procs": 510573.0, "ns per ops/procs": 1959.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30043.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 367589762.0, "Ops per second": 12235265.47, "ns per ops": 81.73, "Ops per threads": 76581.0, "Ops per procs": 7658120.0, "Ops/sec/procs": 254901.36, "ns per ops/procs": 3923.09}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30062.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 292524002.0, "Ops per second": 9730662.56, "ns per ops": 102.77, "Ops per threads": 30471.0, "Ops per procs": 3047125.0, "Ops/sec/procs": 101361.07, "ns per ops/procs": 9865.72}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30049.854582, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1117356623.0, "Total blocks": 541295.0, "Ops per second": 37183428.62, "ns per ops": 26.89, "Ops per threads": 11173566.0, "Ops per procs": 1117356623.0, "Ops/sec/procs": 37183428.62, "ns per ops/procs": 26.89}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.463425, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 174532517.0, "Total blocks": 77420246.0, "Ops per second": 5807014.67, "ns per ops": 172.21, "Ops per threads": 436331.0, "Ops per procs": 43633129.0, "Ops/sec/procs": 1451753.67, "ns per ops/procs": 688.82}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30007.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 804721400.0, "Ops per second": 26824046.0, "ns per ops": 37.0, "Ops per threads": 55883.0, "Ops per procs": 5588343.0, "Ops/sec/procs": 186278.0, "ns per ops/procs": 5369.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30039.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 352379233.0, "Total blocks": 188899480.0, "Ops per second": 11730709.37, "ns per ops": 85.25, "Ops per threads": 146824.0, "Ops per procs": 14682468.0, "Ops/sec/procs": 488779.56, "ns per ops/procs": 2045.91}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30031.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 745298310.0, "Ops per second": 24817103.8, "ns per ops": 40.29, "Ops per threads": 103513.0, "Ops per procs": 10351365.0, "Ops/sec/procs": 344682.0, "ns per ops/procs": 2901.22}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30057.587818, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 753153248.0, "Total blocks": 277437625.0, "Ops per second": 25057008.98, "ns per ops": 39.91, "Ops per threads": 156906.0, "Ops per procs": 15690692.0, "Ops/sec/procs": 522021.02, "ns per ops/procs": 1915.63}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30077.049798, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 279930883.0, "Total blocks": 118833631.0, "Ops per second": 9307125.69, "ns per ops": 107.44, "Ops per threads": 174956.0, "Ops per procs": 17495680.0, "Ops/sec/procs": 581695.36, "ns per ops/procs": 1719.11}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30006.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 492554279.0, "Total blocks": 271177508.0, "Ops per second": 16415134.88, "ns per ops": 60.92, "Ops per threads": 102615.0, "Ops per procs": 10261547.0, "Ops/sec/procs": 341981.98, "ns per ops/procs": 2924.13}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30042.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 270186784.0, "Ops per second": 8993519.71, "ns per ops": 111.19, "Ops per threads": 112577.0, "Ops per procs": 11257782.0, "Ops/sec/procs": 374729.99, "ns per ops/procs": 2668.59}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30049.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 476922708.0, "Total blocks": 254648631.0, "Ops per second": 15871400.38, "ns per ops": 63.01, "Ops per threads": 49679.0, "Ops per procs": 4967944.0, "Ops/sec/procs": 165327.09, "ns per ops/procs": 6048.62}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30016.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 175092827.0, "Total blocks": 94658239.0, "Ops per second": 5833198.71, "ns per ops": 171.43, "Ops per threads": 218866.0, "Ops per procs": 21886603.0, "Ops/sec/procs": 729149.84, "ns per ops/procs": 1371.46}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30099.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 121055033.0, "Total blocks": 71922876.0, "Ops per second": 4021787.04, "ns per ops": 248.65, "Ops per threads": 302637.0, "Ops per procs": 30263758.0, "Ops/sec/procs": 1005446.76, "ns per ops/procs": 994.58}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30061.767095, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 203423577.0, "Total blocks": 50138869.0, "Ops per second": 6766853.6, "ns per ops": 147.78, "Ops per threads": 254279.0, "Ops per procs": 25427947.0, "Ops/sec/procs": 845856.7, "ns per ops/procs": 1182.23}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30062.830094, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 769541797.0, "Total blocks": 240397440.0, "Ops per second": 25597782.86, "ns per ops": 39.07, "Ops per threads": 160321.0, "Ops per procs": 16032120.0, "Ops/sec/procs": 533287.14, "ns per ops/procs": 1875.16}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30027.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 239328763.0, "Ops per second": 7970194.84, "ns per ops": 125.47, "Ops per threads": 149580.0, "Ops per procs": 14958047.0, "Ops/sec/procs": 498137.18, "ns per ops/procs": 2007.48}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30053.292416, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 793906644.0, "Total blocks": 268063612.0, "Ops per second": 26416627.94, "ns per ops": 37.85, "Ops per threads": 165397.0, "Ops per procs": 16539721.0, "Ops/sec/procs": 550346.42, "ns per ops/procs": 1817.04}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 231626811.0, "Ops per second": 7714165.31, "ns per ops": 129.63, "Ops per threads": 144766.0, "Ops per procs": 14476675.0, "Ops/sec/procs": 482135.33, "ns per ops/procs": 2074.11}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30050.180731, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1110747707.0, "Total blocks": 1045067.0, "Ops per second": 36963095.73, "ns per ops": 27.05, "Ops per threads": 11107477.0, "Ops per procs": 1110747707.0, "Ops/sec/procs": 36963095.73, "ns per ops/procs": 27.05}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30037.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 479200609.0, "Ops per second": 15953480.65, "ns per ops": 62.68, "Ops per threads": 33277.0, "Ops per procs": 3327782.0, "Ops/sec/procs": 110788.06, "ns per ops/procs": 9026.24}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30078.047096, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 276181192.0, "Total blocks": 94937996.0, "Ops per second": 9182151.72, "ns per ops": 108.91, "Ops per threads": 172613.0, "Ops per procs": 17261324.0, "Ops/sec/procs": 573884.48, "ns per ops/procs": 1742.51}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30089.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 648332502.0, "Total blocks": 358320925.0, "Ops per second": 21546649.37, "ns per ops": 46.41, "Ops per threads": 45023.0, "Ops per procs": 4502309.0, "Ops/sec/procs": 149629.51, "ns per ops/procs": 6683.17}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30042.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 343918250.0, "Ops per second": 11463941.0, "ns per ops": 87.0, "Ops per threads": 214948.0, "Ops per procs": 21494890.0, "Ops/sec/procs": 716496.0, "ns per ops/procs": 1397.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30049.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 404418699.0, "Total blocks": 211869329.0, "Ops per second": 13458462.85, "ns per ops": 74.3, "Ops per threads": 56169.0, "Ops per procs": 5616926.0, "Ops/sec/procs": 186923.1, "ns per ops/procs": 5349.79}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.378865, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 426265933.0, "Total blocks": 4818223.0, "Ops per second": 14184571.53, "ns per ops": 70.5, "Ops per threads": 2131329.0, "Ops per procs": 213132966.0, "Ops/sec/procs": 7092285.76, "ns per ops/procs": 141.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 219693826.0, "Ops per second": 7315099.84, "ns per ops": 136.7, "Ops per threads": 137308.0, "Ops per procs": 13730864.0, "Ops/sec/procs": 457193.74, "ns per ops/procs": 2187.26}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30025.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 390490340.0, "Total blocks": 206369718.0, "Ops per second": 13005257.06, "ns per ops": 76.89, "Ops per threads": 54234.0, "Ops per procs": 5423476.0, "Ops/sec/procs": 180628.57, "ns per ops/procs": 5536.22}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30009.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 954160546.0, "Ops per second": 31805351.0, "ns per ops": 31.0, "Ops per threads": 49695.0, "Ops per procs": 4969586.0, "Ops/sec/procs": 165652.0, "ns per ops/procs": 6038.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.270372, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 171748150.0, "Total blocks": 76558879.0, "Ops per second": 5714410.41, "ns per ops": 175.0, "Ops per threads": 429370.0, "Ops per procs": 42937037.0, "Ops/sec/procs": 1428602.6, "ns per ops/procs": 699.98}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30036.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 256782541.0, "Ops per second": 8548923.51, "ns per ops": 116.97, "Ops per threads": 106992.0, "Ops per procs": 10699272.0, "Ops/sec/procs": 356205.15, "ns per ops/procs": 2807.37}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30076.621815, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 289636935.0, "Total blocks": 107925471.0, "Ops per second": 9629968.98, "ns per ops": 103.84, "Ops per threads": 181023.0, "Ops per procs": 18102308.0, "Ops/sec/procs": 601873.06, "ns per ops/procs": 1661.48}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30001.902455, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 671199924.0, "Total blocks": 198013052.0, "Ops per second": 22371912.08, "ns per ops": 44.7, "Ops per threads": 34958.0, "Ops per procs": 3495832.0, "Ops/sec/procs": 116520.38, "ns per ops/procs": 8582.19}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 738386333.0, "Ops per second": 24612877.0, "ns per ops": 40.0, "Ops per threads": 153830.0, "Ops per procs": 15383048.0, "Ops/sec/procs": 512768.0, "ns per ops/procs": 1950.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30024.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 499447604.0, "Total blocks": 274791411.0, "Ops per second": 16634693.36, "ns per ops": 60.12, "Ops per threads": 104051.0, "Ops per procs": 10405158.0, "Ops/sec/procs": 346556.11, "ns per ops/procs": 2885.54}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30011.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 466384275.0, "Total blocks": 248194693.0, "Ops per second": 15539952.32, "ns per ops": 64.35, "Ops per threads": 48581.0, "Ops per procs": 4858169.0, "Ops/sec/procs": 161874.5, "ns per ops/procs": 6177.63}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30096.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 393966189.0, "Total blocks": 208999071.0, "Ops per second": 13090312.59, "ns per ops": 76.39, "Ops per threads": 54717.0, "Ops per procs": 5471752.0, "Ops/sec/procs": 181809.9, "ns per ops/procs": 5500.25}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30018.470879, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 354622936.0, "Total blocks": 151202355.0, "Ops per second": 11813491.01, "ns per ops": 84.65, "Ops per threads": 147759.0, "Ops per procs": 14775955.0, "Ops/sec/procs": 492228.79, "ns per ops/procs": 2031.58}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30012.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 231714064.0, "Ops per second": 7723802.0, "ns per ops": 129.0, "Ops per threads": 289642.0, "Ops per procs": 28964258.0, "Ops/sec/procs": 965475.0, "ns per ops/procs": 1036.0}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 136125425.0, "Ops per second": 4537275.69, "ns per ops": 220.4, "Ops per threads": 1361254.0, "Ops per procs": 136125425.0, "Ops/sec/procs": 4537275.69, "ns per ops/procs": 220.4}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30069.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 87320189.0, "Total blocks": 43661832.0, "Ops per second": 2903903.05, "ns per ops": 344.36, "Ops per threads": 436600.0, "Ops per procs": 43660094.0, "Ops/sec/procs": 1451951.53, "ns per ops/procs": 688.73}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30032.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 141513531.0, "Ops per second": 4712036.54, "ns per ops": 212.22, "Ops per threads": 176891.0, "Ops per procs": 17689191.0, "Ops/sec/procs": 589004.57, "ns per ops/procs": 1697.78}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30093.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 136075473.0, "Total blocks": 82168602.0, "Ops per second": 4521756.28, "ns per ops": 221.15, "Ops per threads": 340188.0, "Ops per procs": 34018868.0, "Ops/sec/procs": 1130439.07, "ns per ops/procs": 884.61}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30020.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 617023066.0, "Ops per second": 20567435.0, "ns per ops": 48.0, "Ops per threads": 64273.0, "Ops per procs": 6427323.0, "Ops/sec/procs": 214244.0, "ns per ops/procs": 4670.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30015.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 594793614.0, "Ops per second": 19826453.0, "ns per ops": 50.0, "Ops per threads": 61957.0, "Ops per procs": 6195766.0, "Ops/sec/procs": 206525.0, "ns per ops/procs": 4844.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30054.795549, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 163341327.0, "Total blocks": 78951482.0, "Ops per second": 5434784.17, "ns per ops": 184.0, "Ops per threads": 408353.0, "Ops per procs": 40835331.0, "Ops/sec/procs": 1358696.04, "ns per ops/procs": 736.0}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30025.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 383677546.0, "Ops per second": 12778178.71, "ns per ops": 78.26, "Ops per threads": 53288.0, "Ops per procs": 5328854.0, "Ops/sec/procs": 177474.7, "ns per ops/procs": 5634.61}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30031.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 233318477.0, "Ops per second": 7769119.42, "ns per ops": 128.71, "Ops per threads": 145824.0, "Ops per procs": 14582404.0, "Ops/sec/procs": 485569.96, "ns per ops/procs": 2059.44}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30039.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 473085242.0, "Ops per second": 15748529.01, "ns per ops": 63.5, "Ops per threads": 32853.0, "Ops per procs": 3285314.0, "Ops/sec/procs": 109364.78, "ns per ops/procs": 9143.71}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30044.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 453054210.0, "Ops per second": 15079335.92, "ns per ops": 66.32, "Ops per threads": 31462.0, "Ops per procs": 3146209.0, "Ops/sec/procs": 104717.61, "ns per ops/procs": 9549.49}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30038.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 352775365.0, "Total blocks": 189008078.0, "Ops per second": 11744133.88, "ns per ops": 85.15, "Ops per threads": 146989.0, "Ops per procs": 14698973.0, "Ops/sec/procs": 489338.91, "ns per ops/procs": 2043.57}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30008.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 656225469.0, "Ops per second": 21874182.0, "ns per ops": 45.0, "Ops per threads": 68356.0, "Ops per procs": 6835681.0, "Ops/sec/procs": 227856.0, "ns per ops/procs": 4389.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30054.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 358041998.0, "Ops per second": 11912995.95, "ns per ops": 83.94, "Ops per threads": 74592.0, "Ops per procs": 7459208.0, "Ops/sec/procs": 248187.42, "ns per ops/procs": 4029.21}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30059.956024, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 193365852.0, "Total blocks": 89908380.0, "Ops per second": 6432672.48, "ns per ops": 155.46, "Ops per threads": 241707.0, "Ops per procs": 24170731.0, "Ops/sec/procs": 804084.06, "ns per ops/procs": 1243.65}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30066.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 346977362.0, "Ops per second": 11565912.0, "ns per ops": 86.0, "Ops per threads": 216860.0, "Ops per procs": 21686085.0, "Ops/sec/procs": 722869.0, "ns per ops/procs": 1386.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30032.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 376359195.0, "Total blocks": 204475334.0, "Ops per second": 12531863.41, "ns per ops": 79.8, "Ops per threads": 156816.0, "Ops per procs": 15681633.0, "Ops/sec/procs": 522160.98, "ns per ops/procs": 1915.12}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 828177850.0, "Ops per second": 27605928.0, "ns per ops": 36.0, "Ops per threads": 57512.0, "Ops per procs": 5751235.0, "Ops/sec/procs": 191707.0, "ns per ops/procs": 5217.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30074.157595, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 619584068.0, "Total blocks": 252404582.0, "Ops per second": 20601876.08, "ns per ops": 48.54, "Ops per threads": 32270.0, "Ops per procs": 3227000.0, "Ops/sec/procs": 107301.44, "ns per ops/procs": 9319.54}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30047.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 366337673.0, "Ops per second": 12192076.72, "ns per ops": 82.02, "Ops per threads": 76320.0, "Ops per procs": 7632034.0, "Ops/sec/procs": 254001.6, "ns per ops/procs": 3936.98}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30036.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 249713944.0, "Ops per second": 8313579.02, "ns per ops": 120.29, "Ops per threads": 104047.0, "Ops per procs": 10404747.0, "Ops/sec/procs": 346399.13, "ns per ops/procs": 2886.84}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30001.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 742514150.0, "Ops per second": 24750471.0, "ns per ops": 40.0, "Ops per threads": 154690.0, "Ops per procs": 15469044.0, "Ops/sec/procs": 515634.0, "ns per ops/procs": 1939.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30014.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 180155283.0, "Total blocks": 97171310.0, "Ops per second": 6002371.84, "ns per ops": 166.6, "Ops per threads": 225194.0, "Ops per procs": 22519410.0, "Ops/sec/procs": 750296.48, "ns per ops/procs": 1332.81}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30058.739471, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 687087586.0, "Total blocks": 253121511.0, "Ops per second": 22858163.65, "ns per ops": 43.75, "Ops per threads": 143143.0, "Ops per procs": 14314324.0, "Ops/sec/procs": 476211.74, "ns per ops/procs": 2099.91}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30016.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 500310026.0, "Ops per second": 16677000.0, "ns per ops": 59.0, "Ops per threads": 69487.0, "Ops per procs": 6948750.0, "Ops/sec/procs": 231625.0, "ns per ops/procs": 4319.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30077.053453, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 265505726.0, "Total blocks": 104141233.0, "Ops per second": 8827517.84, "ns per ops": 113.28, "Ops per threads": 165941.0, "Ops per procs": 16594107.0, "Ops/sec/procs": 551719.87, "ns per ops/procs": 1812.51}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30027.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 165879077.0, "Total blocks": 92004563.0, "Ops per second": 5524272.95, "ns per ops": 181.02, "Ops per threads": 207348.0, "Ops per procs": 20734884.0, "Ops/sec/procs": 690534.12, "ns per ops/procs": 1448.15}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 170553870.0, "Ops per second": 5685129.0, "ns per ops": 176.0, "Ops per threads": 852769.0, "Ops per procs": 85276935.0, "Ops/sec/procs": 2842564.0, "ns per ops/procs": 352.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30055.486464, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 742444148.0, "Total blocks": 286437952.0, "Ops per second": 24702449.88, "ns per ops": 40.48, "Ops per threads": 154675.0, "Ops per procs": 15467586.0, "Ops/sec/procs": 514634.37, "ns per ops/procs": 1943.13}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30035.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 230627504.0, "Ops per second": 7678597.24, "ns per ops": 130.23, "Ops per threads": 144142.0, "Ops per procs": 14414219.0, "Ops/sec/procs": 479912.33, "ns per ops/procs": 2083.71}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30042.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 247652629.0, "Ops per second": 8243310.41, "ns per ops": 121.31, "Ops per threads": 103188.0, "Ops per procs": 10318859.0, "Ops/sec/procs": 343471.27, "ns per ops/procs": 2911.45}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30075.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 345247541.0, "Ops per second": 11508251.0, "ns per ops": 87.0, "Ops per threads": 215779.0, "Ops per procs": 21577971.0, "Ops/sec/procs": 719265.0, "ns per ops/procs": 1393.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30042.402195, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 522252296.0, "Total blocks": 188986436.0, "Ops per second": 17383839.44, "ns per ops": 57.52, "Ops per threads": 54401.0, "Ops per procs": 5440128.0, "Ops/sec/procs": 181081.66, "ns per ops/procs": 5522.37}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30096.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 522357988.0, "Total blocks": 289308861.0, "Ops per second": 17356373.14, "ns per ops": 57.62, "Ops per threads": 108824.0, "Ops per procs": 10882458.0, "Ops/sec/procs": 361591.11, "ns per ops/procs": 2765.55}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30026.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 384484013.0, "Total blocks": 204994787.0, "Ops per second": 12804669.83, "ns per ops": 78.1, "Ops per threads": 160201.0, "Ops per procs": 16020167.0, "Ops/sec/procs": 533527.91, "ns per ops/procs": 1874.32}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30050.57081, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1113465592.0, "Total blocks": 1212188.0, "Ops per second": 37053059.63, "ns per ops": 26.99, "Ops per threads": 11134655.0, "Ops per procs": 1113465592.0, "Ops/sec/procs": 37053059.63, "ns per ops/procs": 26.99}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30024.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 517511941.0, "Ops per second": 17250398.0, "ns per ops": 58.0, "Ops per threads": 215629.0, "Ops per procs": 21562997.0, "Ops/sec/procs": 718766.0, "ns per ops/procs": 1392.0}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30045.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 501141157.0, "Ops per second": 16679310.82, "ns per ops": 59.95, "Ops per threads": 34801.0, "Ops per procs": 3480146.0, "Ops/sec/procs": 115828.55, "ns per ops/procs": 8633.45}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30036.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 141078685.0, "Ops per second": 4696913.58, "ns per ops": 212.91, "Ops per threads": 176348.0, "Ops per procs": 17634835.0, "Ops/sec/procs": 587114.2, "ns per ops/procs": 1703.25}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30024.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 119364820.0, "Ops per second": 3975596.5, "ns per ops": 251.53, "Ops per threads": 596824.0, "Ops per procs": 59682410.0, "Ops/sec/procs": 1987798.25, "ns per ops/procs": 503.07}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30006.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 951888821.0, "Ops per second": 31729627.0, "ns per ops": 31.0, "Ops per threads": 49577.0, "Ops per procs": 4957754.0, "Ops/sec/procs": 165258.0, "ns per ops/procs": 6052.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30049.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 358426982.0, "Ops per second": 11927753.93, "ns per ops": 83.84, "Ops per threads": 74672.0, "Ops per procs": 7467228.0, "Ops/sec/procs": 248494.87, "ns per ops/procs": 4024.23}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30019.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 238123079.0, "Ops per second": 7937435.0, "ns per ops": 126.0, "Ops per threads": 297653.0, "Ops per procs": 29765384.0, "Ops/sec/procs": 992179.0, "ns per ops/procs": 1008.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30035.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 377428648.0, "Total blocks": 205166543.0, "Ops per second": 12565965.66, "ns per ops": 79.58, "Ops per threads": 157261.0, "Ops per procs": 15726193.0, "Ops/sec/procs": 523581.9, "ns per ops/procs": 1909.92}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 452430119.0, "Ops per second": 15081003.0, "ns per ops": 66.0, "Ops per threads": 4524301.0, "Ops per procs": 452430119.0, "Ops/sec/procs": 15081003.0, "ns per ops/procs": 66.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30044.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 367058537.0, "Ops per second": 12216999.34, "ns per ops": 81.85, "Ops per threads": 76470.0, "Ops per procs": 7647052.0, "Ops/sec/procs": 254520.82, "ns per ops/procs": 3928.95}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30007.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 164365200.0, "Ops per second": 5478840.0, "ns per ops": 182.0, "Ops per threads": 821826.0, "Ops per procs": 82182600.0, "Ops/sec/procs": 2739420.0, "ns per ops/procs": 365.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30029.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 162935628.0, "Total blocks": 88209952.0, "Ops per second": 5425811.93, "ns per ops": 184.3, "Ops per threads": 203669.0, "Ops per procs": 20366953.0, "Ops/sec/procs": 678226.49, "ns per ops/procs": 1474.43}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30068.742026, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 460005926.0, "Total blocks": 170092753.0, "Ops per second": 15298475.93, "ns per ops": 65.37, "Ops per threads": 63889.0, "Ops per procs": 6388971.0, "Ops/sec/procs": 212478.83, "ns per ops/procs": 4706.35}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30067.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 85459203.0, "Total blocks": 42730388.0, "Ops per second": 2842272.02, "ns per ops": 351.83, "Ops per threads": 427296.0, "Ops per procs": 42729601.0, "Ops/sec/procs": 1421136.01, "ns per ops/procs": 703.66}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30033.576943, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 531179122.0, "Total blocks": 200084700.0, "Ops per second": 17686175.81, "ns per ops": 56.54, "Ops per threads": 55331.0, "Ops per procs": 5533115.0, "Ops/sec/procs": 184231.0, "ns per ops/procs": 5427.97}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30060.494061, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 219109131.0, "Total blocks": 86857554.0, "Ops per second": 7288939.78, "ns per ops": 137.19, "Ops per threads": 273886.0, "Ops per procs": 27388641.0, "Ops/sec/procs": 911117.47, "ns per ops/procs": 1097.55}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30059.343755, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 619506152.0, "Total blocks": 263340247.0, "Ops per second": 20609437.02, "ns per ops": 48.52, "Ops per threads": 32265.0, "Ops per procs": 3226594.0, "Ops/sec/procs": 107340.82, "ns per ops/procs": 9316.12}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30023.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 378573124.0, "Ops per second": 12609192.96, "ns per ops": 79.31, "Ops per threads": 52579.0, "Ops per procs": 5257960.0, "Ops/sec/procs": 175127.68, "ns per ops/procs": 5710.12}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30060.864769, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 223391313.0, "Total blocks": 74260522.0, "Ops per second": 7431300.29, "ns per ops": 134.57, "Ops per threads": 279239.0, "Ops per procs": 27923914.0, "Ops/sec/procs": 928912.54, "ns per ops/procs": 1076.53}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30068.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 85508644.0, "Total blocks": 42754807.0, "Ops per second": 2843752.92, "ns per ops": 351.65, "Ops per threads": 427543.0, "Ops per procs": 42754322.0, "Ops/sec/procs": 1421876.46, "ns per ops/procs": 703.3}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30057.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 781399165.0, "Total blocks": 409292388.0, "Ops per second": 25997237.34, "ns per ops": 38.47, "Ops per threads": 40697.0, "Ops per procs": 4069787.0, "Ops/sec/procs": 135402.28, "ns per ops/procs": 7385.4}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30033.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 466809940.0, "Total blocks": 251740744.0, "Ops per second": 15542735.76, "ns per ops": 64.34, "Ops per threads": 48626.0, "Ops per procs": 4862603.0, "Ops/sec/procs": 161903.5, "ns per ops/procs": 6176.52}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30038.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 266349874.0, "Ops per second": 8866835.76, "ns per ops": 112.78, "Ops per threads": 110979.0, "Ops per procs": 11097911.0, "Ops/sec/procs": 369451.49, "ns per ops/procs": 2706.72}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30033.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 476585549.0, "Ops per second": 15868300.2, "ns per ops": 63.02, "Ops per threads": 33096.0, "Ops per procs": 3309621.0, "Ops/sec/procs": 110196.53, "ns per ops/procs": 9074.7}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30077.520313, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 287610076.0, "Total blocks": 111335741.0, "Ops per second": 9562293.47, "ns per ops": 104.58, "Ops per threads": 179756.0, "Ops per procs": 17975629.0, "Ops/sec/procs": 597643.34, "ns per ops/procs": 1673.24}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30054.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 450240816.0, "Ops per second": 14980985.07, "ns per ops": 66.75, "Ops per threads": 23450.0, "Ops per procs": 2345004.0, "Ops/sec/procs": 78025.96, "ns per ops/procs": 12816.25}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30000.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 808637754.0, "Ops per second": 26954591.0, "ns per ops": 37.0, "Ops per threads": 56155.0, "Ops per procs": 5615539.0, "Ops/sec/procs": 187184.0, "ns per ops/procs": 5342.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30019.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 478985519.0, "Ops per second": 15966183.0, "ns per ops": 62.0, "Ops per threads": 66525.0, "Ops per procs": 6652576.0, "Ops/sec/procs": 221752.0, "ns per ops/procs": 4512.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30094.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 134669709.0, "Total blocks": 81548061.0, "Ops per second": 4474937.36, "ns per ops": 223.47, "Ops per threads": 336674.0, "Ops per procs": 33667427.0, "Ops/sec/procs": 1118734.34, "ns per ops/procs": 893.87}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30043.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 457643042.0, "Ops per second": 15254768.0, "ns per ops": 65.0, "Ops per threads": 63561.0, "Ops per procs": 6356153.0, "Ops/sec/procs": 211871.0, "ns per ops/procs": 4726.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30065.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 390891857.0, "Total blocks": 204639137.0, "Ops per second": 13001144.84, "ns per ops": 76.92, "Ops per threads": 54290.0, "Ops per procs": 5429053.0, "Ops/sec/procs": 180571.46, "ns per ops/procs": 5537.97}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30070.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 230166366.0, "Ops per second": 7654116.87, "ns per ops": 130.65, "Ops per threads": 23975.0, "Ops per procs": 2397566.0, "Ops/sec/procs": 79730.38, "ns per ops/procs": 12542.27}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30089.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 549967367.0, "Total blocks": 305764209.0, "Ops per second": 18278017.38, "ns per ops": 54.71, "Ops per threads": 114576.0, "Ops per procs": 11457653.0, "Ops/sec/procs": 380792.03, "ns per ops/procs": 2626.11}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.842073, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 463825195.0, "Total blocks": 1633655.0, "Ops per second": 15434168.52, "ns per ops": 64.79, "Ops per threads": 2319125.0, "Ops per procs": 231912597.0, "Ops/sec/procs": 7717084.26, "ns per ops/procs": 129.58}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 135740700.0, "Ops per second": 4524465.56, "ns per ops": 221.02, "Ops per threads": 1357407.0, "Ops per procs": 135740700.0, "Ops/sec/procs": 4524465.56, "ns per ops/procs": 221.02}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30016.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 513351055.0, "Ops per second": 17111701.0, "ns per ops": 58.0, "Ops per threads": 213896.0, "Ops per procs": 21389627.0, "Ops/sec/procs": 712987.0, "ns per ops/procs": 1403.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30029.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 468134438.0, "Ops per second": 15604481.0, "ns per ops": 64.0, "Ops per threads": 65018.0, "Ops per procs": 6501867.0, "Ops/sec/procs": 216728.0, "ns per ops/procs": 4618.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30019.744764, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 454810209.0, "Total blocks": 162129964.0, "Ops per second": 15150368.95, "ns per ops": 66.0, "Ops per threads": 63168.0, "Ops per procs": 6316808.0, "Ops/sec/procs": 210421.79, "ns per ops/procs": 4752.36}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30060.231485, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 222990655.0, "Total blocks": 79159547.0, "Ops per second": 7418128.34, "ns per ops": 134.8, "Ops per threads": 278738.0, "Ops per procs": 27873831.0, "Ops/sec/procs": 927266.04, "ns per ops/procs": 1078.44}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30082.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 170892636.0, "Ops per second": 5696421.0, "ns per ops": 176.0, "Ops per threads": 427231.0, "Ops per procs": 42723159.0, "Ops/sec/procs": 1424105.0, "ns per ops/procs": 704.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30066.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 411215360.0, "Total blocks": 217108217.0, "Ops per second": 13676744.98, "ns per ops": 73.12, "Ops per threads": 57113.0, "Ops per procs": 5711324.0, "Ops/sec/procs": 189954.79, "ns per ops/procs": 5264.41}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30056.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 642662612.0, "Total blocks": 357623141.0, "Ops per second": 21381510.19, "ns per ops": 46.77, "Ops per threads": 44629.0, "Ops per procs": 4462934.0, "Ops/sec/procs": 148482.71, "ns per ops/procs": 6734.79}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30003.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 869612823.0, "Ops per second": 28987094.0, "ns per ops": 34.0, "Ops per threads": 60389.0, "Ops per procs": 6038977.0, "Ops/sec/procs": 201299.0, "ns per ops/procs": 4968.0}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30043.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 477149279.0, "Ops per second": 15881995.13, "ns per ops": 62.96, "Ops per threads": 33135.0, "Ops per procs": 3313536.0, "Ops/sec/procs": 110291.63, "ns per ops/procs": 9066.87}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30091.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 169323833.0, "Ops per second": 5644127.0, "ns per ops": 177.0, "Ops per threads": 423309.0, "Ops per procs": 42330958.0, "Ops/sec/procs": 1411031.0, "ns per ops/procs": 710.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30020.889497, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 344088416.0, "Total blocks": 139568979.0, "Ops per second": 11461632.94, "ns per ops": 87.25, "Ops per threads": 143370.0, "Ops per procs": 14337017.0, "Ops/sec/procs": 477568.04, "ns per ops/procs": 2093.94}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30039.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 164782537.0, "Ops per second": 5492751.0, "ns per ops": 182.0, "Ops per threads": 823912.0, "Ops per procs": 82391268.0, "Ops/sec/procs": 2746375.0, "ns per ops/procs": 364.0}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30064.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 258846597.0, "Ops per second": 8609687.7, "ns per ops": 116.15, "Ops per threads": 26963.0, "Ops per procs": 2696318.0, "Ops/sec/procs": 89684.25, "ns per ops/procs": 11150.23}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30041.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 480145745.0, "Ops per second": 15982742.27, "ns per ops": 62.57, "Ops per threads": 33343.0, "Ops per procs": 3334345.0, "Ops/sec/procs": 110991.27, "ns per ops/procs": 9009.72}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30029.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 160980841.0, "Ops per second": 5360812.39, "ns per ops": 186.54, "Ops per threads": 201226.0, "Ops per procs": 20122605.0, "Ops/sec/procs": 670101.55, "ns per ops/procs": 1492.31}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30076.849866, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 316343276.0, "Total blocks": 100926465.0, "Ops per second": 10517832.73, "ns per ops": 95.08, "Ops per threads": 197714.0, "Ops per procs": 19771454.0, "Ops/sec/procs": 657364.55, "ns per ops/procs": 1521.23}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30018.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 589982108.0, "Ops per second": 19666070.0, "ns per ops": 50.0, "Ops per threads": 61456.0, "Ops per procs": 6145646.0, "Ops/sec/procs": 204854.0, "ns per ops/procs": 4884.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30049.838344, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1110677565.0, "Total blocks": 317674.0, "Ops per second": 36961182.7, "ns per ops": 27.06, "Ops per threads": 11106775.0, "Ops per procs": 1110677565.0, "Ops/sec/procs": 36961182.7, "ns per ops/procs": 27.06}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30057.484533, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 766502659.0, "Total blocks": 307607398.0, "Ops per second": 25501224.43, "ns per ops": 39.21, "Ops per threads": 159688.0, "Ops per procs": 15968805.0, "Ops/sec/procs": 531275.51, "ns per ops/procs": 1882.26}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30050.143632, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 401946525.0, "Total blocks": 11172385.0, "Ops per second": 13375860.36, "ns per ops": 74.76, "Ops per threads": 2009732.0, "Ops per procs": 200973262.0, "Ops/sec/procs": 6687930.18, "ns per ops/procs": 149.52}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30083.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 477181457.0, "Total blocks": 254139914.0, "Ops per second": 15862090.91, "ns per ops": 63.04, "Ops per threads": 49706.0, "Ops per procs": 4970640.0, "Ops/sec/procs": 165230.11, "ns per ops/procs": 6052.17}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.178084, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 179842184.0, "Total blocks": 80077451.0, "Ops per second": 5983733.77, "ns per ops": 167.12, "Ops per threads": 449605.0, "Ops per procs": 44960546.0, "Ops/sec/procs": 1495933.44, "ns per ops/procs": 668.48}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.572035, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 487583502.0, "Total blocks": 2941067.0, "Ops per second": 16224891.71, "ns per ops": 61.63, "Ops per threads": 2437917.0, "Ops per procs": 243791751.0, "Ops/sec/procs": 8112445.86, "ns per ops/procs": 123.27}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30013.466197, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 567640934.0, "Total blocks": 226738693.0, "Ops per second": 18912874.98, "ns per ops": 52.87, "Ops per threads": 39419.0, "Ops per procs": 3941950.0, "Ops/sec/procs": 131339.41, "ns per ops/procs": 7613.86}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30032.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 155858703.0, "Ops per second": 5189680.49, "ns per ops": 192.69, "Ops per threads": 194823.0, "Ops per procs": 19482337.0, "Ops/sec/procs": 648710.06, "ns per ops/procs": 1541.52}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30001.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 812147459.0, "Ops per second": 27071581.0, "ns per ops": 36.0, "Ops per threads": 56399.0, "Ops per procs": 5639912.0, "Ops/sec/procs": 187997.0, "ns per ops/procs": 5319.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30090.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 142650007.0, "Total blocks": 86186903.0, "Ops per second": 4740742.44, "ns per ops": 210.94, "Ops per threads": 356625.0, "Ops per procs": 35662501.0, "Ops/sec/procs": 1185185.61, "ns per ops/procs": 843.75}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30060.011506, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 207566751.0, "Total blocks": 91707738.0, "Ops per second": 6905078.89, "ns per ops": 144.82, "Ops per threads": 259458.0, "Ops per procs": 25945843.0, "Ops/sec/procs": 863134.86, "ns per ops/procs": 1158.57}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30049.671976, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1116289004.0, "Total blocks": 702656.0, "Ops per second": 37148126.11, "ns per ops": 26.92, "Ops per threads": 11162890.0, "Ops per procs": 1116289004.0, "Ops/sec/procs": 37148126.11, "ns per ops/procs": 26.92}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30084.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 167926652.0, "Ops per second": 5597555.0, "ns per ops": 179.0, "Ops per threads": 419816.0, "Ops per procs": 41981663.0, "Ops/sec/procs": 1399388.0, "ns per ops/procs": 716.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30023.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 490960501.0, "Ops per second": 16365350.0, "ns per ops": 61.0, "Ops per threads": 68188.0, "Ops per procs": 6818895.0, "Ops/sec/procs": 227296.0, "ns per ops/procs": 4403.0}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30034.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 145357155.0, "Ops per second": 4839649.52, "ns per ops": 206.63, "Ops per threads": 181696.0, "Ops per procs": 18169644.0, "Ops/sec/procs": 604956.19, "ns per ops/procs": 1653.01}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30054.311007, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 835586639.0, "Total blocks": 324277673.0, "Ops per second": 27802555.14, "ns per ops": 35.97, "Ops per threads": 174080.0, "Ops per procs": 17408054.0, "Ops/sec/procs": 579219.9, "ns per ops/procs": 1726.46}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30070.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 263499687.0, "Ops per second": 8762625.31, "ns per ops": 114.12, "Ops per threads": 27447.0, "Ops per procs": 2744788.0, "Ops/sec/procs": 91277.35, "ns per ops/procs": 10955.62}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30003.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 740597009.0, "Ops per second": 24686566.0, "ns per ops": 40.0, "Ops per threads": 154291.0, "Ops per procs": 15429104.0, "Ops/sec/procs": 514303.0, "ns per ops/procs": 1944.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30008.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 805841343.0, "Ops per second": 26861378.0, "ns per ops": 37.0, "Ops per threads": 55961.0, "Ops per procs": 5596120.0, "Ops/sec/procs": 186537.0, "ns per ops/procs": 5362.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30053.065594, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 591336177.0, "Total blocks": 220889235.0, "Ops per second": 19676401.24, "ns per ops": 50.82, "Ops per threads": 41065.0, "Ops per procs": 4106501.0, "Ops/sec/procs": 136641.68, "ns per ops/procs": 7318.41}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30049.377858, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1120425624.0, "Total blocks": 0.0, "Ops per second": 37286150.46, "ns per ops": 26.82, "Ops per threads": 11204256.0, "Ops per procs": 1120425624.0, "Ops/sec/procs": 37286150.46, "ns per ops/procs": 26.82}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30016.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 625526728.0, "Ops per second": 20850890.0, "ns per ops": 47.0, "Ops per threads": 65159.0, "Ops per procs": 6515903.0, "Ops/sec/procs": 217196.0, "ns per ops/procs": 4606.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30012.931045, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 331443924.0, "Total blocks": 145793501.0, "Ops per second": 11043370.72, "ns per ops": 90.55, "Ops per threads": 138101.0, "Ops per procs": 13810163.0, "Ops/sec/procs": 460140.45, "ns per ops/procs": 2173.25}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30100.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 521155976.0, "Total blocks": 288944128.0, "Ops per second": 17314003.57, "ns per ops": 57.76, "Ops per threads": 108574.0, "Ops per procs": 10857416.0, "Ops/sec/procs": 360708.41, "ns per ops/procs": 2772.32}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 452724846.0, "Ops per second": 15090828.0, "ns per ops": 66.0, "Ops per threads": 4527248.0, "Ops per procs": 452724846.0, "Ops/sec/procs": 15090828.0, "ns per ops/procs": 66.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30008.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 951310808.0, "Ops per second": 31710360.0, "ns per ops": 31.0, "Ops per threads": 49547.0, "Ops per procs": 4954743.0, "Ops/sec/procs": 165158.0, "ns per ops/procs": 6056.0}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30037.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 249924594.0, "Ops per second": 8320505.39, "ns per ops": 120.19, "Ops per threads": 104135.0, "Ops per procs": 10413524.0, "Ops/sec/procs": 346687.72, "ns per ops/procs": 2884.44}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30049.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 448206023.0, "Ops per second": 14915520.07, "ns per ops": 67.04, "Ops per threads": 23344.0, "Ops per procs": 2334406.0, "Ops/sec/procs": 77685.0, "ns per ops/procs": 12872.5}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30053.084024, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 491621059.0, "Total blocks": 179273006.0, "Ops per second": 16358422.94, "ns per ops": 61.13, "Ops per threads": 68280.0, "Ops per procs": 6828070.0, "Ops/sec/procs": 227200.32, "ns per ops/procs": 4401.4}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30032.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 474761664.0, "Ops per second": 15825388.0, "ns per ops": 63.0, "Ops per threads": 65939.0, "Ops per procs": 6593912.0, "Ops/sec/procs": 219797.0, "ns per ops/procs": 4554.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 735077833.0, "Ops per second": 24502594.0, "ns per ops": 40.0, "Ops per threads": 153141.0, "Ops per procs": 15314121.0, "Ops/sec/procs": 510470.0, "ns per ops/procs": 1959.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30036.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 159902036.0, "Ops per second": 5323675.74, "ns per ops": 187.84, "Ops per threads": 399755.0, "Ops per procs": 39975509.0, "Ops/sec/procs": 1330918.93, "ns per ops/procs": 751.36}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30041.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 478925356.0, "Total blocks": 254349774.0, "Ops per second": 15942197.34, "ns per ops": 62.73, "Ops per threads": 49888.0, "Ops per procs": 4988805.0, "Ops/sec/procs": 166064.56, "ns per ops/procs": 6021.76}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30033.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 239348939.0, "Ops per second": 7969351.87, "ns per ops": 125.48, "Ops per threads": 149593.0, "Ops per procs": 14959308.0, "Ops/sec/procs": 498084.49, "ns per ops/procs": 2007.69}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30018.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 513943973.0, "Ops per second": 17131465.0, "ns per ops": 58.0, "Ops per threads": 214143.0, "Ops per procs": 21414332.0, "Ops/sec/procs": 713811.0, "ns per ops/procs": 1401.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30099.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 478614404.0, "Total blocks": 255187330.0, "Ops per second": 15900860.85, "ns per ops": 62.89, "Ops per threads": 49855.0, "Ops per procs": 4985566.0, "Ops/sec/procs": 165633.97, "ns per ops/procs": 6037.41}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30065.031744, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 732699431.0, "Total blocks": 319546814.0, "Ops per second": 24370485.86, "ns per ops": 41.03, "Ops per threads": 152645.0, "Ops per procs": 15264571.0, "Ops/sec/procs": 507718.46, "ns per ops/procs": 1969.6}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30089.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 185536523.0, "Ops per second": 6166248.23, "ns per ops": 162.17, "Ops per threads": 19326.0, "Ops per procs": 1932672.0, "Ops/sec/procs": 64231.75, "ns per ops/procs": 15568.62}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30095.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 134579689.0, "Total blocks": 81410262.0, "Ops per second": 4471816.3, "ns per ops": 223.62, "Ops per threads": 336449.0, "Ops per procs": 33644922.0, "Ops/sec/procs": 1117954.08, "ns per ops/procs": 894.49}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 451373537.0, "Ops per second": 15045784.0, "ns per ops": 66.0, "Ops per threads": 4513735.0, "Ops per procs": 451373537.0, "Ops/sec/procs": 15045784.0, "ns per ops/procs": 66.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30090.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 166908692.0, "Ops per second": 5563623.0, "ns per ops": 180.0, "Ops per threads": 417271.0, "Ops per procs": 41727173.0, "Ops/sec/procs": 1390905.0, "ns per ops/procs": 721.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30058.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 305987617.0, "Total blocks": 161039141.0, "Ops per second": 10179882.02, "ns per ops": 98.23, "Ops per threads": 127494.0, "Ops per procs": 12749484.0, "Ops/sec/procs": 424161.75, "ns per ops/procs": 2357.59}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30070.675157, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 503314692.0, "Total blocks": 187854856.0, "Ops per second": 16737725.02, "ns per ops": 59.75, "Ops per threads": 69904.0, "Ops per procs": 6990481.0, "Ops/sec/procs": 232468.4, "ns per ops/procs": 4301.66}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30016.423058, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 355165171.0, "Total blocks": 127878616.0, "Ops per second": 11832361.58, "ns per ops": 84.51, "Ops per threads": 147985.0, "Ops per procs": 14798548.0, "Ops/sec/procs": 493015.07, "ns per ops/procs": 2028.34}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30034.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 296946101.0, "Total blocks": 152856332.0, "Ops per second": 9886708.71, "ns per ops": 101.15, "Ops per threads": 185591.0, "Ops per procs": 18559131.0, "Ops/sec/procs": 617919.29, "ns per ops/procs": 1618.33}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 119630943.0, "Total blocks": 71028216.0, "Ops per second": 3987496.44, "ns per ops": 250.78, "Ops per threads": 299077.0, "Ops per procs": 29907735.0, "Ops/sec/procs": 996874.11, "ns per ops/procs": 1003.14}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30006.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 755226118.0, "Total blocks": 393756066.0, "Ops per second": 25168817.08, "ns per ops": 39.73, "Ops per threads": 39334.0, "Ops per procs": 3933469.0, "Ops/sec/procs": 131087.59, "ns per ops/procs": 7628.49}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 452356781.0, "Ops per second": 15078559.0, "ns per ops": 66.0, "Ops per threads": 4523567.0, "Ops per procs": 452356781.0, "Ops/sec/procs": 15078559.0, "ns per ops/procs": 66.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30048.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 363583907.0, "Ops per second": 12099775.33, "ns per ops": 82.65, "Ops per threads": 75746.0, "Ops per procs": 7574664.0, "Ops/sec/procs": 252078.65, "ns per ops/procs": 3967.02}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30045.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 431315733.0, "Ops per second": 14355496.99, "ns per ops": 69.66, "Ops per threads": 22464.0, "Ops per procs": 2246436.0, "Ops/sec/procs": 74768.21, "ns per ops/procs": 13374.67}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30015.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 175768988.0, "Total blocks": 95091004.0, "Ops per second": 5855937.68, "ns per ops": 170.77, "Ops per threads": 219711.0, "Ops per procs": 21971123.0, "Ops/sec/procs": 731992.21, "ns per ops/procs": 1366.13}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 452511273.0, "Ops per second": 15083709.0, "ns per ops": 66.0, "Ops per threads": 4525112.0, "Ops per procs": 452511273.0, "Ops/sec/procs": 15083709.0, "ns per ops/procs": 66.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30024.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 790703852.0, "Total blocks": 414441834.0, "Ops per second": 26335340.35, "ns per ops": 37.97, "Ops per threads": 41182.0, "Ops per procs": 4118249.0, "Ops/sec/procs": 137163.23, "ns per ops/procs": 7290.58}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 238838970.0, "Ops per second": 7954222.99, "ns per ops": 125.72, "Ops per threads": 149274.0, "Ops per procs": 14927435.0, "Ops/sec/procs": 497138.94, "ns per ops/procs": 2011.51}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 452782784.0, "Ops per second": 15092759.0, "ns per ops": 66.0, "Ops per threads": 4527827.0, "Ops per procs": 452782784.0, "Ops/sec/procs": 15092759.0, "ns per ops/procs": 66.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30010.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 468608627.0, "Total blocks": 250290887.0, "Ops per second": 15614893.18, "ns per ops": 64.04, "Ops per threads": 48813.0, "Ops per procs": 4881339.0, "Ops/sec/procs": 162655.14, "ns per ops/procs": 6147.98}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30006.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 832938221.0, "Ops per second": 27764607.0, "ns per ops": 36.0, "Ops per threads": 57842.0, "Ops per procs": 5784293.0, "Ops/sec/procs": 192809.0, "ns per ops/procs": 5187.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30080.078891, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 480835061.0, "Total blocks": 171792926.0, "Ops per second": 15985166.22, "ns per ops": 62.56, "Ops per threads": 66782.0, "Ops per procs": 6678264.0, "Ops/sec/procs": 222016.2, "ns per ops/procs": 4504.18}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30006.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 802748698.0, "Ops per second": 26758289.0, "ns per ops": 37.0, "Ops per threads": 55746.0, "Ops per procs": 5574643.0, "Ops/sec/procs": 185821.0, "ns per ops/procs": 5382.0}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30075.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 214400594.0, "Ops per second": 7128768.62, "ns per ops": 140.28, "Ops per threads": 22333.0, "Ops per procs": 2233339.0, "Ops/sec/procs": 74258.01, "ns per ops/procs": 13466.56}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30077.344657, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 285088935.0, "Total blocks": 115785001.0, "Ops per second": 9478527.39, "ns per ops": 105.5, "Ops per threads": 178180.0, "Ops per procs": 17818058.0, "Ops/sec/procs": 592407.96, "ns per ops/procs": 1688.03}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30029.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 360209102.0, "Ops per second": 11995064.06, "ns per ops": 83.37, "Ops per threads": 50029.0, "Ops per procs": 5002904.0, "Ops/sec/procs": 166598.11, "ns per ops/procs": 6002.47}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30012.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 657821563.0, "Total blocks": 363593509.0, "Ops per second": 21918218.1, "ns per ops": 45.62, "Ops per threads": 45682.0, "Ops per procs": 4568205.0, "Ops/sec/procs": 152209.85, "ns per ops/procs": 6569.88}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30049.402969, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 484868012.0, "Total blocks": 187188844.0, "Ops per second": 16135695.36, "ns per ops": 61.97, "Ops per threads": 67342.0, "Ops per procs": 6734277.0, "Ops/sec/procs": 224106.88, "ns per ops/procs": 4462.16}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30008.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 657112261.0, "Total blocks": 367893813.0, "Ops per second": 21897380.46, "ns per ops": 45.67, "Ops per threads": 45632.0, "Ops per procs": 4563279.0, "Ops/sec/procs": 152065.14, "ns per ops/procs": 6576.13}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30035.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 297434874.0, "Total blocks": 152913106.0, "Ops per second": 9902936.14, "ns per ops": 100.98, "Ops per threads": 185896.0, "Ops per procs": 18589679.0, "Ops/sec/procs": 618933.51, "ns per ops/procs": 1615.68}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30049.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 371478488.0, "Ops per second": 12362097.21, "ns per ops": 80.89, "Ops per threads": 77391.0, "Ops per procs": 7739135.0, "Ops/sec/procs": 257543.69, "ns per ops/procs": 3882.84}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30074.867334, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 303702180.0, "Total blocks": 117366068.0, "Ops per second": 10098205.14, "ns per ops": 99.03, "Ops per threads": 189813.0, "Ops per procs": 18981386.0, "Ops/sec/procs": 631137.82, "ns per ops/procs": 1584.44}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30050.765525, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 495133409.0, "Total blocks": 2444537.0, "Ops per second": 16476565.58, "ns per ops": 60.69, "Ops per threads": 2475667.0, "Ops per procs": 247566704.0, "Ops/sec/procs": 8238282.79, "ns per ops/procs": 121.38}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30020.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 172000623.0, "Total blocks": 94983587.0, "Ops per second": 5729440.51, "ns per ops": 174.54, "Ops per threads": 215000.0, "Ops per procs": 21500077.0, "Ops/sec/procs": 716180.06, "ns per ops/procs": 1396.3}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30048.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 366642131.0, "Ops per second": 12201877.79, "ns per ops": 81.95, "Ops per threads": 76383.0, "Ops per procs": 7638377.0, "Ops/sec/procs": 254205.79, "ns per ops/procs": 3933.82}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30077.574266, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 570575370.0, "Total blocks": 221897889.0, "Ops per second": 18970125.88, "ns per ops": 52.71, "Ops per threads": 39623.0, "Ops per procs": 3962328.0, "Ops/sec/procs": 131736.99, "ns per ops/procs": 7590.88}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30071.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 306335124.0, "Ops per second": 10186851.85, "ns per ops": 98.17, "Ops per threads": 31909.0, "Ops per procs": 3190990.0, "Ops/sec/procs": 106113.04, "ns per ops/procs": 9423.91}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30054.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 343561467.0, "Ops per second": 11452048.0, "ns per ops": 87.0, "Ops per threads": 214725.0, "Ops per procs": 21472591.0, "Ops/sec/procs": 715753.0, "ns per ops/procs": 1399.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 452430132.0, "Ops per second": 15081004.0, "ns per ops": 66.0, "Ops per threads": 4524301.0, "Ops per procs": 452430132.0, "Ops/sec/procs": 15081004.0, "ns per ops/procs": 66.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 452372430.0, "Ops per second": 15079081.0, "ns per ops": 66.0, "Ops per threads": 4523724.0, "Ops per procs": 452372430.0, "Ops/sec/procs": 15079081.0, "ns per ops/procs": 66.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30029.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 214527315.0, "Ops per second": 7143932.22, "ns per ops": 139.98, "Ops per threads": 134079.0, "Ops per procs": 13407957.0, "Ops/sec/procs": 446495.76, "ns per ops/procs": 2239.66}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30066.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 391550239.0, "Total blocks": 206452565.0, "Ops per second": 13022893.06, "ns per ops": 76.79, "Ops per threads": 54381.0, "Ops per procs": 5438197.0, "Ops/sec/procs": 180873.51, "ns per ops/procs": 5528.73}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30029.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 564434169.0, "Ops per second": 18795708.24, "ns per ops": 53.2, "Ops per threads": 78393.0, "Ops per procs": 7839363.0, "Ops/sec/procs": 261051.5, "ns per ops/procs": 3830.66}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30012.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 507119225.0, "Ops per second": 16903974.0, "ns per ops": 59.0, "Ops per threads": 211299.0, "Ops per procs": 21129967.0, "Ops/sec/procs": 704332.0, "ns per ops/procs": 1420.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30011.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 649827554.0, "Ops per second": 21660918.0, "ns per ops": 46.0, "Ops per threads": 67690.0, "Ops per procs": 6769037.0, "Ops/sec/procs": 225634.0, "ns per ops/procs": 4433.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30058.874776, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 284073580.0, "Total blocks": 81955526.0, "Ops per second": 9450572.66, "ns per ops": 105.81, "Ops per threads": 177545.0, "Ops per procs": 17754598.0, "Ops/sec/procs": 590660.79, "ns per ops/procs": 1693.02}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30096.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 134932099.0, "Total blocks": 81668875.0, "Ops per second": 4483251.23, "ns per ops": 223.05, "Ops per threads": 337330.0, "Ops per procs": 33733024.0, "Ops/sec/procs": 1120812.81, "ns per ops/procs": 892.21}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 650179281.0, "Ops per second": 21672642.0, "ns per ops": 46.0, "Ops per threads": 67727.0, "Ops per procs": 6772700.0, "Ops/sec/procs": 225756.0, "ns per ops/procs": 4430.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30020.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 508029399.0, "Ops per second": 16934313.0, "ns per ops": 59.0, "Ops per threads": 211678.0, "Ops per procs": 21167891.0, "Ops/sec/procs": 705596.0, "ns per ops/procs": 1418.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30055.772759, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 784153747.0, "Total blocks": 326956548.0, "Ops per second": 26089954.61, "ns per ops": 38.33, "Ops per threads": 163365.0, "Ops per procs": 16336536.0, "Ops/sec/procs": 543540.72, "ns per ops/procs": 1839.79}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.820718, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 176906031.0, "Total blocks": 78353618.0, "Ops per second": 5885915.83, "ns per ops": 169.9, "Ops per threads": 442265.0, "Ops per procs": 44226507.0, "Ops/sec/procs": 1471478.96, "ns per ops/procs": 679.59}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30068.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 455192979.0, "Ops per second": 15138488.46, "ns per ops": 66.06, "Ops per threads": 23707.0, "Ops per procs": 2370796.0, "Ops/sec/procs": 78846.29, "ns per ops/procs": 12682.9}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 136537625.0, "Ops per second": 4551004.69, "ns per ops": 219.73, "Ops per threads": 1365376.0, "Ops per procs": 136537625.0, "Ops/sec/procs": 4551004.69, "ns per ops/procs": 219.73}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30007.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 622395356.0, "Ops per second": 20746511.0, "ns per ops": 48.0, "Ops per threads": 64832.0, "Ops per procs": 6483284.0, "Ops/sec/procs": 216109.0, "ns per ops/procs": 4628.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30034.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 149390621.0, "Ops per second": 4973885.77, "ns per ops": 201.05, "Ops per threads": 373476.0, "Ops per procs": 37347655.0, "Ops/sec/procs": 1243471.44, "ns per ops/procs": 804.2}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30022.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 512612954.0, "Ops per second": 17087098.0, "ns per ops": 58.0, "Ops per threads": 213588.0, "Ops per procs": 21358873.0, "Ops/sec/procs": 711962.0, "ns per ops/procs": 1405.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30027.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 652534102.0, "Total blocks": 362801914.0, "Ops per second": 21731442.83, "ns per ops": 46.02, "Ops per threads": 45314.0, "Ops per procs": 4531486.0, "Ops/sec/procs": 150912.8, "ns per ops/procs": 6626.34}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30072.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 393826396.0, "Total blocks": 208226830.0, "Ops per second": 13095979.9, "ns per ops": 76.36, "Ops per threads": 54698.0, "Ops per procs": 5469811.0, "Ops/sec/procs": 181888.61, "ns per ops/procs": 5497.87}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30063.774902, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 645099807.0, "Total blocks": 253168450.0, "Ops per second": 21457711.45, "ns per ops": 46.6, "Ops per threads": 33598.0, "Ops per procs": 3359894.0, "Ops/sec/procs": 111758.91, "ns per ops/procs": 8947.83}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30049.50978, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1120336443.0, "Total blocks": 0.0, "Ops per second": 37283018.96, "ns per ops": 26.82, "Ops per threads": 11203364.0, "Ops per procs": 1120336443.0, "Ops/sec/procs": 37283018.96, "ns per ops/procs": 26.82}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30061.110937, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 205495127.0, "Total blocks": 85125806.0, "Ops per second": 6835912.6, "ns per ops": 146.29, "Ops per threads": 256868.0, "Ops per procs": 25686890.0, "Ops/sec/procs": 854489.07, "ns per ops/procs": 1170.29}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30077.486964, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 285040559.0, "Total blocks": 110580079.0, "Ops per second": 9476874.16, "ns per ops": 105.52, "Ops per threads": 178150.0, "Ops per procs": 17815034.0, "Ops/sec/procs": 592304.63, "ns per ops/procs": 1688.32}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30017.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 173751775.0, "Total blocks": 93937021.0, "Ops per second": 5788322.53, "ns per ops": 172.76, "Ops per threads": 217189.0, "Ops per procs": 21718971.0, "Ops/sec/procs": 723540.32, "ns per ops/procs": 1382.09}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30049.633948, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1117951720.0, "Total blocks": 720451.0, "Ops per second": 37203505.44, "ns per ops": 26.88, "Ops per threads": 11179517.0, "Ops per procs": 1117951720.0, "Ops/sec/procs": 37203505.44, "ns per ops/procs": 26.88}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30052.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 464702027.0, "Ops per second": 15463081.11, "ns per ops": 64.67, "Ops per threads": 24203.0, "Ops per procs": 2420323.0, "Ops/sec/procs": 80536.88, "ns per ops/procs": 12416.67}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30087.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 210674621.0, "Ops per second": 7002029.83, "ns per ops": 142.82, "Ops per threads": 21945.0, "Ops per procs": 2194527.0, "Ops/sec/procs": 72937.81, "ns per ops/procs": 13710.31}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30067.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 86031081.0, "Total blocks": 43016291.0, "Ops per second": 2861308.6, "ns per ops": 349.49, "Ops per threads": 430155.0, "Ops per procs": 43015540.0, "Ops/sec/procs": 1430654.3, "ns per ops/procs": 698.98}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30031.917858, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 626411360.0, "Total blocks": 250783670.0, "Ops per second": 20858187.04, "ns per ops": 47.94, "Ops per threads": 32625.0, "Ops per procs": 3262559.0, "Ops/sec/procs": 108636.39, "ns per ops/procs": 9205.02}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30036.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 237167983.0, "Ops per second": 7905599.0, "ns per ops": 126.0, "Ops per threads": 296459.0, "Ops per procs": 29645997.0, "Ops/sec/procs": 988199.0, "ns per ops/procs": 1013.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30005.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 237453345.0, "Ops per second": 7915111.0, "ns per ops": 126.0, "Ops per threads": 296816.0, "Ops per procs": 29681668.0, "Ops/sec/procs": 989388.0, "ns per ops/procs": 1010.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30052.111716, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 434220164.0, "Total blocks": 1513985.0, "Ops per second": 14448906.89, "ns per ops": 69.21, "Ops per threads": 2171100.0, "Ops per procs": 217110082.0, "Ops/sec/procs": 7224453.44, "ns per ops/procs": 138.42}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30063.986202, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 765645683.0, "Total blocks": 265375583.0, "Ops per second": 25467204.44, "ns per ops": 39.27, "Ops per threads": 159509.0, "Ops per procs": 15950951.0, "Ops/sec/procs": 530566.76, "ns per ops/procs": 1884.78}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30098.633525, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 605018080.0, "Total blocks": 183793705.0, "Ops per second": 20101180.99, "ns per ops": 49.75, "Ops per threads": 42015.0, "Ops per procs": 4201514.0, "Ops/sec/procs": 139591.53, "ns per ops/procs": 7163.76}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30027.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 168515144.0, "Ops per second": 5612021.97, "ns per ops": 178.19, "Ops per threads": 210643.0, "Ops per procs": 21064393.0, "Ops/sec/procs": 701502.75, "ns per ops/procs": 1425.51}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30073.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 801123536.0, "Total blocks": 420555085.0, "Ops per second": 26638903.44, "ns per ops": 37.54, "Ops per threads": 41725.0, "Ops per procs": 4172518.0, "Ops/sec/procs": 138744.29, "ns per ops/procs": 7207.5}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30046.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 365855121.0, "Ops per second": 12176176.66, "ns per ops": 82.13, "Ops per threads": 76219.0, "Ops per procs": 7621981.0, "Ops/sec/procs": 253670.35, "ns per ops/procs": 3942.12}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 120702552.0, "Total blocks": 72431015.0, "Ops per second": 4023118.45, "ns per ops": 248.56, "Ops per threads": 301756.0, "Ops per procs": 30175638.0, "Ops/sec/procs": 1005779.61, "ns per ops/procs": 994.25}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30087.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 633597480.0, "Total blocks": 352075419.0, "Ops per second": 21058564.32, "ns per ops": 47.49, "Ops per threads": 43999.0, "Ops per procs": 4399982.0, "Ops/sec/procs": 146240.03, "ns per ops/procs": 6838.07}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 119367181.0, "Ops per second": 3975807.64, "ns per ops": 251.52, "Ops per threads": 596835.0, "Ops per procs": 59683590.0, "Ops/sec/procs": 1987903.82, "ns per ops/procs": 503.04}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30053.303684, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 161631564.0, "Total blocks": 78138735.0, "Ops per second": 5378162.94, "ns per ops": 185.94, "Ops per threads": 404078.0, "Ops per procs": 40407891.0, "Ops/sec/procs": 1344540.73, "ns per ops/procs": 743.75}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30033.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 462165593.0, "Ops per second": 15405519.0, "ns per ops": 64.0, "Ops per threads": 64189.0, "Ops per procs": 6418966.0, "Ops/sec/procs": 213965.0, "ns per ops/procs": 4678.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30045.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 359970193.0, "Ops per second": 11980775.68, "ns per ops": 83.47, "Ops per threads": 74993.0, "Ops per procs": 7499379.0, "Ops/sec/procs": 249599.49, "ns per ops/procs": 4006.42}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30061.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 172098736.0, "Ops per second": 5736624.0, "ns per ops": 174.0, "Ops per threads": 860493.0, "Ops per procs": 86049368.0, "Ops/sec/procs": 2868312.0, "ns per ops/procs": 349.0}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30048.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 461641412.0, "Ops per second": 15363033.39, "ns per ops": 65.09, "Ops per threads": 24043.0, "Ops per procs": 2404382.0, "Ops/sec/procs": 80015.8, "ns per ops/procs": 12497.53}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30091.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 169352572.0, "Ops per second": 5645085.0, "ns per ops": 177.0, "Ops per threads": 423381.0, "Ops per procs": 42338143.0, "Ops/sec/procs": 1411271.0, "ns per ops/procs": 710.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30021.801801, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 343745748.0, "Total blocks": 110778421.0, "Ops per second": 11449870.67, "ns per ops": 87.34, "Ops per threads": 143227.0, "Ops per procs": 14322739.0, "Ops/sec/procs": 477077.94, "ns per ops/procs": 2096.09}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30038.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 255137108.0, "Ops per second": 8493579.35, "ns per ops": 117.74, "Ops per threads": 106307.0, "Ops per procs": 10630712.0, "Ops/sec/procs": 353899.14, "ns per ops/procs": 2825.66}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30013.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 179724159.0, "Total blocks": 96901335.0, "Ops per second": 5988209.27, "ns per ops": 166.99, "Ops per threads": 224655.0, "Ops per procs": 22465519.0, "Ops/sec/procs": 748526.16, "ns per ops/procs": 1335.96}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30002.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 733554652.0, "Ops per second": 24451821.0, "ns per ops": 40.0, "Ops per threads": 152823.0, "Ops per procs": 15282388.0, "Ops/sec/procs": 509412.0, "ns per ops/procs": 1963.0}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30035.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 137606748.0, "Ops per second": 4581513.05, "ns per ops": 218.27, "Ops per threads": 172008.0, "Ops per procs": 17200843.0, "Ops/sec/procs": 572689.13, "ns per ops/procs": 1746.15}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30037.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 469389541.0, "Ops per second": 15626630.1, "ns per ops": 63.99, "Ops per threads": 32596.0, "Ops per procs": 3259649.0, "Ops/sec/procs": 108518.26, "ns per ops/procs": 9215.04}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30027.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 240536745.0, "Ops per second": 8010440.07, "ns per ops": 124.84, "Ops per threads": 150335.0, "Ops per procs": 15033546.0, "Ops/sec/procs": 500652.5, "ns per ops/procs": 1997.39}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30096.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 167663480.0, "Ops per second": 5588782.0, "ns per ops": 179.0, "Ops per threads": 419158.0, "Ops per procs": 41915870.0, "Ops/sec/procs": 1397195.0, "ns per ops/procs": 718.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30035.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 178235273.0, "Ops per second": 5941175.0, "ns per ops": 168.0, "Ops per threads": 891176.0, "Ops per procs": 89117636.0, "Ops/sec/procs": 2970587.0, "ns per ops/procs": 337.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30050.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 170033768.0, "Ops per second": 5667792.0, "ns per ops": 176.0, "Ops per threads": 425084.0, "Ops per procs": 42508442.0, "Ops/sec/procs": 1416948.0, "ns per ops/procs": 706.0}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30016.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 137649416.0, "Ops per second": 4585825.65, "ns per ops": 218.06, "Ops per threads": 1376494.0, "Ops per procs": 137649416.0, "Ops/sec/procs": 4585825.65, "ns per ops/procs": 218.06}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30022.116103, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 356190239.0, "Total blocks": 132527663.0, "Ops per second": 11864261.59, "ns per ops": 84.29, "Ops per threads": 148412.0, "Ops per procs": 14841259.0, "Ops/sec/procs": 494344.23, "ns per ops/procs": 2022.88}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30046.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 136881187.0, "Ops per second": 4555601.17, "ns per ops": 219.51, "Ops per threads": 1368811.0, "Ops per procs": 136881187.0, "Ops/sec/procs": 4555601.17, "ns per ops/procs": 219.51}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30086.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 656961846.0, "Total blocks": 366295621.0, "Ops per second": 21835958.29, "ns per ops": 45.8, "Ops per threads": 45622.0, "Ops per procs": 4562235.0, "Ops/sec/procs": 151638.6, "ns per ops/procs": 6594.63}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 135792295.0, "Ops per second": 4526179.95, "ns per ops": 220.94, "Ops per threads": 1357922.0, "Ops per procs": 135792295.0, "Ops/sec/procs": 4526179.95, "ns per ops/procs": 220.94}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30031.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 736769640.0, "Ops per second": 24533626.13, "ns per ops": 40.76, "Ops per threads": 102329.0, "Ops per procs": 10232911.0, "Ops/sec/procs": 340744.81, "ns per ops/procs": 2934.75}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30017.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 511819250.0, "Ops per second": 17060641.0, "ns per ops": 58.0, "Ops per threads": 213258.0, "Ops per procs": 21325802.0, "Ops/sec/procs": 710860.0, "ns per ops/procs": 1407.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30008.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 955728133.0, "Ops per second": 31857604.0, "ns per ops": 31.0, "Ops per threads": 49777.0, "Ops per procs": 4977750.0, "Ops/sec/procs": 165925.0, "ns per ops/procs": 6028.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30006.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 974543694.0, "Ops per second": 32484789.0, "ns per ops": 30.0, "Ops per threads": 50757.0, "Ops per procs": 5075748.0, "Ops/sec/procs": 169191.0, "ns per ops/procs": 5911.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30056.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 307116656.0, "Total blocks": 161436712.0, "Ops per second": 10217837.17, "ns per ops": 97.87, "Ops per threads": 127965.0, "Ops per procs": 12796527.0, "Ops/sec/procs": 425743.22, "ns per ops/procs": 2348.83}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30038.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 161436554.0, "Ops per second": 5374361.62, "ns per ops": 186.07, "Ops per threads": 403591.0, "Ops per procs": 40359138.0, "Ops/sec/procs": 1343590.4, "ns per ops/procs": 744.27}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30045.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 356327764.0, "Total blocks": 188651041.0, "Ops per second": 11859516.31, "ns per ops": 84.32, "Ops per threads": 148469.0, "Ops per procs": 14846990.0, "Ops/sec/procs": 494146.51, "ns per ops/procs": 2023.69}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30094.912645, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 532276715.0, "Total blocks": 208683163.0, "Ops per second": 17686601.1, "ns per ops": 56.54, "Ops per threads": 36963.0, "Ops per procs": 3696366.0, "Ops/sec/procs": 122823.62, "ns per ops/procs": 8141.76}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30050.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 370993004.0, "Ops per second": 12345632.42, "ns per ops": 81.0, "Ops per threads": 38645.0, "Ops per procs": 3864510.0, "Ops/sec/procs": 128600.34, "ns per ops/procs": 7776.03}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30083.575516, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 490128938.0, "Total blocks": 181074611.0, "Ops per second": 16292243.51, "ns per ops": 61.38, "Ops per threads": 68073.0, "Ops per procs": 6807346.0, "Ops/sec/procs": 226281.16, "ns per ops/procs": 4419.28}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30050.679337, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 416326850.0, "Total blocks": 8761134.0, "Ops per second": 13854157.68, "ns per ops": 72.18, "Ops per threads": 2081634.0, "Ops per procs": 208163425.0, "Ops/sec/procs": 6927078.84, "ns per ops/procs": 144.36}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30060.892739, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 225836807.0, "Total blocks": 56119540.0, "Ops per second": 7512644.72, "ns per ops": 133.11, "Ops per threads": 282296.0, "Ops per procs": 28229600.0, "Ops/sec/procs": 939080.59, "ns per ops/procs": 1064.87}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192522908.0, "Total blocks": 0.0, "Ops per second": 6411692.34, "ns per ops": 155.97, "Ops per threads": 1925229.0, "Ops per procs": 192522908.0, "Ops/sec/procs": 6411692.34, "ns per ops/procs": 155.97}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30098.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 636783071.0, "Total blocks": 355088910.0, "Ops per second": 21156817.58, "ns per ops": 47.27, "Ops per threads": 44221.0, "Ops per procs": 4422104.0, "Ops/sec/procs": 146922.34, "ns per ops/procs": 6806.32}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 168350134.0, "Total blocks": 91816218.0, "Ops per second": 5607492.03, "ns per ops": 178.33, "Ops per threads": 210437.0, "Ops per procs": 21043766.0, "Ops/sec/procs": 700936.5, "ns per ops/procs": 1426.66}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30087.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 192376565.0, "Ops per second": 6393857.42, "ns per ops": 156.4, "Ops per threads": 20039.0, "Ops per procs": 2003922.0, "Ops/sec/procs": 66602.68, "ns per ops/procs": 15014.41}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30033.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 212043987.0, "Ops per second": 7060346.63, "ns per ops": 141.64, "Ops per threads": 132527.0, "Ops per procs": 13252749.0, "Ops/sec/procs": 441271.66, "ns per ops/procs": 2266.18}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30045.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 483616726.0, "Ops per second": 16095966.07, "ns per ops": 62.13, "Ops per threads": 33584.0, "Ops per procs": 3358449.0, "Ops/sec/procs": 111777.54, "ns per ops/procs": 8946.34}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30055.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 345484092.0, "Ops per second": 11516136.0, "ns per ops": 86.0, "Ops per threads": 215927.0, "Ops per procs": 21592755.0, "Ops/sec/procs": 719758.0, "ns per ops/procs": 1391.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.97428, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 459641650.0, "Total blocks": 8602266.0, "Ops per second": 15294890.3, "ns per ops": 65.38, "Ops per threads": 2298208.0, "Ops per procs": 229820825.0, "Ops/sec/procs": 7647445.15, "ns per ops/procs": 130.76}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30046.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 489208923.0, "Ops per second": 16281941.96, "ns per ops": 61.42, "Ops per threads": 33972.0, "Ops per procs": 3397284.0, "Ops/sec/procs": 113069.04, "ns per ops/procs": 8844.15}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30029.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 156098140.0, "Ops per second": 5198109.26, "ns per ops": 192.38, "Ops per threads": 195122.0, "Ops per procs": 19512267.0, "Ops/sec/procs": 649763.66, "ns per ops/procs": 1539.02}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30049.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 250210439.0, "Total blocks": 127812747.0, "Ops per second": 8326659.57, "ns per ops": 120.1, "Ops per threads": 156381.0, "Ops per procs": 15638152.0, "Ops/sec/procs": 520416.22, "ns per ops/procs": 1921.54}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 191267483.0, "Ops per second": 6354615.15, "ns per ops": 157.37, "Ops per threads": 19923.0, "Ops per procs": 1992369.0, "Ops/sec/procs": 66193.91, "ns per ops/procs": 15107.13}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30048.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 405128175.0, "Total blocks": 212150874.0, "Ops per second": 13482295.02, "ns per ops": 74.17, "Ops per threads": 56267.0, "Ops per procs": 5626780.0, "Ops/sec/procs": 187254.1, "ns per ops/procs": 5340.34}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30028.212803, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 531021362.0, "Total blocks": 202286909.0, "Ops per second": 17684081.48, "ns per ops": 56.55, "Ops per threads": 55314.0, "Ops per procs": 5531472.0, "Ops/sec/procs": 184209.18, "ns per ops/procs": 5428.61}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 971737850.0, "Ops per second": 32391261.0, "ns per ops": 30.0, "Ops per threads": 50611.0, "Ops per procs": 5061134.0, "Ops/sec/procs": 168704.0, "ns per ops/procs": 5928.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30041.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 349955352.0, "Total blocks": 187554488.0, "Ops per second": 11649257.26, "ns per ops": 85.84, "Ops per threads": 145814.0, "Ops per procs": 14581473.0, "Ops/sec/procs": 485385.72, "ns per ops/procs": 2060.22}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30002.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 826261138.0, "Ops per second": 27542037.0, "ns per ops": 36.0, "Ops per threads": 57379.0, "Ops per procs": 5737924.0, "Ops/sec/procs": 191264.0, "ns per ops/procs": 5228.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30065.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 343355816.0, "Ops per second": 11445193.0, "ns per ops": 87.0, "Ops per threads": 214597.0, "Ops per procs": 21459738.0, "Ops/sec/procs": 715324.0, "ns per ops/procs": 1400.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.937598, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 171565227.0, "Total blocks": 75883485.0, "Ops per second": 5708197.47, "ns per ops": 175.19, "Ops per threads": 428913.0, "Ops per procs": 42891306.0, "Ops/sec/procs": 1427049.37, "ns per ops/procs": 700.75}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30015.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 513746235.0, "Ops per second": 17124874.0, "ns per ops": 58.0, "Ops per threads": 214060.0, "Ops per procs": 21406093.0, "Ops/sec/procs": 713536.0, "ns per ops/procs": 1402.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30068.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 785005185.0, "Total blocks": 411442585.0, "Ops per second": 26107484.95, "ns per ops": 38.3, "Ops per threads": 40885.0, "Ops per procs": 4088568.0, "Ops/sec/procs": 135976.48, "ns per ops/procs": 7354.21}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30058.567572, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 203968825.0, "Total blocks": 88742559.0, "Ops per second": 6785713.41, "ns per ops": 147.37, "Ops per threads": 254961.0, "Ops per procs": 25496103.0, "Ops/sec/procs": 848214.18, "ns per ops/procs": 1178.95}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30032.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 389924078.0, "Ops per second": 12983304.98, "ns per ops": 77.02, "Ops per threads": 54156.0, "Ops per procs": 5415612.0, "Ops/sec/procs": 180323.68, "ns per ops/procs": 5545.58}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30035.963074, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 572893968.0, "Total blocks": 234408896.0, "Ops per second": 19073600.76, "ns per ops": 52.43, "Ops per threads": 29838.0, "Ops per procs": 2983822.0, "Ops/sec/procs": 99341.67, "ns per ops/procs": 10066.27}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30030.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 179700422.0, "Ops per second": 5990014.0, "ns per ops": 167.0, "Ops per threads": 898502.0, "Ops per procs": 89850211.0, "Ops/sec/procs": 2995007.0, "ns per ops/procs": 334.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30020.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 512642615.0, "Ops per second": 17088087.0, "ns per ops": 58.0, "Ops per threads": 213601.0, "Ops per procs": 21360108.0, "Ops/sec/procs": 712003.0, "ns per ops/procs": 1405.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30022.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 771401796.0, "Total blocks": 404823619.0, "Ops per second": 25693853.24, "ns per ops": 38.92, "Ops per threads": 40177.0, "Ops per procs": 4017717.0, "Ops/sec/procs": 133822.15, "ns per ops/procs": 7472.61}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30061.184537, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 207395030.0, "Total blocks": 72728272.0, "Ops per second": 6899097.06, "ns per ops": 144.95, "Ops per threads": 259243.0, "Ops per procs": 25924378.0, "Ops/sec/procs": 862387.13, "ns per ops/procs": 1159.57}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30041.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 794657846.0, "Total blocks": 418198460.0, "Ops per second": 26452326.61, "ns per ops": 37.8, "Ops per threads": 41388.0, "Ops per procs": 4138842.0, "Ops/sec/procs": 137772.53, "ns per ops/procs": 7258.34}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30027.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192231095.0, "Total blocks": 0.0, "Ops per second": 6401915.57, "ns per ops": 156.2, "Ops per threads": 1922310.0, "Ops per procs": 192231095.0, "Ops/sec/procs": 6401915.57, "ns per ops/procs": 156.2}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30039.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 254701865.0, "Ops per second": 8478964.28, "ns per ops": 117.94, "Ops per threads": 106125.0, "Ops per procs": 10612577.0, "Ops/sec/procs": 353290.18, "ns per ops/procs": 2830.53}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30037.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 480215402.0, "Total blocks": 256972886.0, "Ops per second": 15987028.39, "ns per ops": 62.55, "Ops per threads": 50022.0, "Ops per procs": 5002243.0, "Ops/sec/procs": 166531.55, "ns per ops/procs": 6004.87}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30006.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 739950307.0, "Ops per second": 24665010.0, "ns per ops": 40.0, "Ops per threads": 154156.0, "Ops per procs": 15415631.0, "Ops/sec/procs": 513854.0, "ns per ops/procs": 1946.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30049.474963, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1120716566.0, "Total blocks": 115421.0, "Ops per second": 37295712.07, "ns per ops": 26.81, "Ops per threads": 11207165.0, "Ops per procs": 1120716566.0, "Ops/sec/procs": 37295712.07, "ns per ops/procs": 26.81}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30004.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 871876782.0, "Ops per second": 29062559.0, "ns per ops": 34.0, "Ops per threads": 60546.0, "Ops per procs": 6054699.0, "Ops/sec/procs": 201823.0, "ns per ops/procs": 4955.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30008.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 956532274.0, "Ops per second": 31884409.0, "ns per ops": 31.0, "Ops per threads": 49819.0, "Ops per procs": 4981938.0, "Ops/sec/procs": 166064.0, "ns per ops/procs": 6023.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30006.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 886060358.0, "Ops per second": 29535345.0, "ns per ops": 33.0, "Ops per threads": 61531.0, "Ops per procs": 6153196.0, "Ops/sec/procs": 205106.0, "ns per ops/procs": 4876.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30002.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 234699702.0, "Ops per second": 7823323.0, "ns per ops": 127.0, "Ops per threads": 293374.0, "Ops per procs": 29337462.0, "Ops/sec/procs": 977915.0, "ns per ops/procs": 1022.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30063.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 656149421.0, "Total blocks": 365153372.0, "Ops per second": 21825105.6, "ns per ops": 45.82, "Ops per threads": 45565.0, "Ops per procs": 4556593.0, "Ops/sec/procs": 151563.23, "ns per ops/procs": 6597.91}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.590616, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 177082160.0, "Total blocks": 78498505.0, "Ops per second": 5891821.0, "ns per ops": 169.73, "Ops per threads": 442705.0, "Ops per procs": 44270540.0, "Ops/sec/procs": 1472955.25, "ns per ops/procs": 678.91}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30032.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 145894469.0, "Ops per second": 4857860.16, "ns per ops": 205.85, "Ops per threads": 364736.0, "Ops per procs": 36473617.0, "Ops/sec/procs": 1214465.04, "ns per ops/procs": 823.41}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30031.724967, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 802530897.0, "Total blocks": 275581130.0, "Ops per second": 26722770.6, "ns per ops": 37.42, "Ops per threads": 167193.0, "Ops per procs": 16719393.0, "Ops/sec/procs": 556724.39, "ns per ops/procs": 1796.22}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30066.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 86442838.0, "Total blocks": 43222700.0, "Ops per second": 2875084.82, "ns per ops": 347.82, "Ops per threads": 432214.0, "Ops per procs": 43221419.0, "Ops/sec/procs": 1437542.41, "ns per ops/procs": 695.63}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30021.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 171212219.0, "Total blocks": 94581997.0, "Ops per second": 5702940.68, "ns per ops": 175.35, "Ops per threads": 214015.0, "Ops per procs": 21401527.0, "Ops/sec/procs": 712867.59, "ns per ops/procs": 1402.79}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.948068, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 441411390.0, "Total blocks": 419365.0, "Ops per second": 14688278.74, "ns per ops": 68.08, "Ops per threads": 2207056.0, "Ops per procs": 220705695.0, "Ops/sec/procs": 7344139.37, "ns per ops/procs": 136.16}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30025.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 763854440.0, "Total blocks": 401265880.0, "Ops per second": 25440578.08, "ns per ops": 39.31, "Ops per threads": 39784.0, "Ops per procs": 3978408.0, "Ops/sec/procs": 132503.01, "ns per ops/procs": 7547.0}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30026.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 527730164.0, "Ops per second": 17575521.8, "ns per ops": 56.9, "Ops per threads": 73295.0, "Ops per procs": 7329585.0, "Ops/sec/procs": 244104.47, "ns per ops/procs": 4096.61}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30033.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 146323851.0, "Ops per second": 4872075.55, "ns per ops": 205.25, "Ops per threads": 182904.0, "Ops per procs": 18290481.0, "Ops/sec/procs": 609009.44, "ns per ops/procs": 1642.01}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30015.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 649830829.0, "Ops per second": 21661027.0, "ns per ops": 46.0, "Ops per threads": 67690.0, "Ops per procs": 6769071.0, "Ops/sec/procs": 225635.0, "ns per ops/procs": 4434.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30051.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 340815091.0, "Ops per second": 11360503.0, "ns per ops": 88.0, "Ops per threads": 213009.0, "Ops per procs": 21300943.0, "Ops/sec/procs": 710031.0, "ns per ops/procs": 1410.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30012.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 644087155.0, "Ops per second": 21469571.0, "ns per ops": 46.0, "Ops per threads": 67092.0, "Ops per procs": 6709241.0, "Ops/sec/procs": 223641.0, "ns per ops/procs": 4473.0}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 117711342.0, "Ops per second": 3920647.35, "ns per ops": 255.06, "Ops per threads": 588556.0, "Ops per procs": 58855671.0, "Ops/sec/procs": 1960323.68, "ns per ops/procs": 510.12}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30020.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 118418832.0, "Ops per second": 3944548.08, "ns per ops": 253.51, "Ops per threads": 592094.0, "Ops per procs": 59209416.0, "Ops/sec/procs": 1972274.04, "ns per ops/procs": 507.03}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30086.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 549298926.0, "Total blocks": 305224211.0, "Ops per second": 18257292.36, "ns per ops": 54.77, "Ops per threads": 114437.0, "Ops per procs": 11443727.0, "Ops/sec/procs": 380360.26, "ns per ops/procs": 2629.09}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30092.227393, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 544459819.0, "Total blocks": 205333826.0, "Ops per second": 18093038.18, "ns per ops": 55.27, "Ops per threads": 37809.0, "Ops per procs": 3780970.0, "Ops/sec/procs": 125646.1, "ns per ops/procs": 7958.86}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30090.628713, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 438135783.0, "Total blocks": 181248607.0, "Ops per second": 14560539.34, "ns per ops": 68.68, "Ops per threads": 60852.0, "Ops per procs": 6085219.0, "Ops/sec/procs": 202229.71, "ns per ops/procs": 4944.87}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30021.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 119467613.0, "Ops per second": 3979418.89, "ns per ops": 251.29, "Ops per threads": 597338.0, "Ops per procs": 59733806.0, "Ops/sec/procs": 1989709.44, "ns per ops/procs": 502.59}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30092.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 142263661.0, "Total blocks": 85937211.0, "Ops per second": 4727622.71, "ns per ops": 211.52, "Ops per threads": 355659.0, "Ops per procs": 35565915.0, "Ops/sec/procs": 1181905.68, "ns per ops/procs": 846.09}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30030.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 149482316.0, "Ops per second": 4977621.24, "ns per ops": 200.9, "Ops per threads": 186852.0, "Ops per procs": 18685289.0, "Ops/sec/procs": 622202.65, "ns per ops/procs": 1607.19}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30020.937487, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 335712075.0, "Total blocks": 110110283.0, "Ops per second": 11182597.98, "ns per ops": 89.42, "Ops per threads": 139880.0, "Ops per procs": 13988003.0, "Ops/sec/procs": 465941.58, "ns per ops/procs": 2146.19}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30006.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 510643531.0, "Ops per second": 17021451.0, "ns per ops": 58.0, "Ops per threads": 212768.0, "Ops per procs": 21276813.0, "Ops/sec/procs": 709227.0, "ns per ops/procs": 1410.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30031.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 296756552.0, "Total blocks": 152729520.0, "Ops per second": 9881630.35, "ns per ops": 101.2, "Ops per threads": 185472.0, "Ops per procs": 18547284.0, "Ops/sec/procs": 617601.9, "ns per ops/procs": 1619.17}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30044.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 453113204.0, "Ops per second": 15081549.68, "ns per ops": 66.31, "Ops per threads": 23599.0, "Ops per procs": 2359964.0, "Ops/sec/procs": 78549.74, "ns per ops/procs": 12730.79}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30025.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 724585936.0, "Ops per second": 24132426.27, "ns per ops": 41.44, "Ops per threads": 100636.0, "Ops per procs": 10063693.0, "Ops/sec/procs": 335172.59, "ns per ops/procs": 2983.54}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30027.653982, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 492633870.0, "Total blocks": 185730042.0, "Ops per second": 16406005.95, "ns per ops": 60.95, "Ops per threads": 68421.0, "Ops per procs": 6842137.0, "Ops/sec/procs": 227861.19, "ns per ops/procs": 4388.64}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30066.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 86292143.0, "Total blocks": 43147332.0, "Ops per second": 2869997.08, "ns per ops": 348.43, "Ops per threads": 431460.0, "Ops per procs": 43146071.0, "Ops/sec/procs": 1434998.54, "ns per ops/procs": 696.86}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30057.846015, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 456780268.0, "Total blocks": 171439416.0, "Ops per second": 15196706.64, "ns per ops": 65.8, "Ops per threads": 63441.0, "Ops per procs": 6344170.0, "Ops/sec/procs": 211065.37, "ns per ops/procs": 4737.87}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30049.448486, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1120457215.0, "Total blocks": 20014.0, "Ops per second": 37287114.12, "ns per ops": 26.82, "Ops per threads": 11204572.0, "Ops per procs": 1120457215.0, "Ops/sec/procs": 37287114.12, "ns per ops/procs": 26.82}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30094.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 134984635.0, "Total blocks": 81785899.0, "Ops per second": 4485287.89, "ns per ops": 222.95, "Ops per threads": 337461.0, "Ops per procs": 33746158.0, "Ops/sec/procs": 1121321.97, "ns per ops/procs": 891.8}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30044.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 347287896.0, "Total blocks": 185920031.0, "Ops per second": 11559136.56, "ns per ops": 86.51, "Ops per threads": 144703.0, "Ops per procs": 14470329.0, "Ops/sec/procs": 481630.69, "ns per ops/procs": 2076.28}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30066.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 86465273.0, "Total blocks": 43234079.0, "Ops per second": 2875812.48, "ns per ops": 347.73, "Ops per threads": 432326.0, "Ops per procs": 43232636.0, "Ops/sec/procs": 1437906.24, "ns per ops/procs": 695.46}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30008.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 469456662.0, "Total blocks": 249859470.0, "Ops per second": 15644009.6, "ns per ops": 63.92, "Ops per threads": 48901.0, "Ops per procs": 4890173.0, "Ops/sec/procs": 162958.43, "ns per ops/procs": 6136.53}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30030.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 795100421.0, "Total blocks": 418436584.0, "Ops per second": 26476802.25, "ns per ops": 37.77, "Ops per threads": 41411.0, "Ops per procs": 4141148.0, "Ops/sec/procs": 137900.01, "ns per ops/procs": 7251.63}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30046.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 345070359.0, "Ops per second": 11502345.0, "ns per ops": 87.0, "Ops per threads": 215668.0, "Ops per procs": 21566897.0, "Ops/sec/procs": 718896.0, "ns per ops/procs": 1393.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30000.975519, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 608277551.0, "Total blocks": 178475301.0, "Ops per second": 20275259.07, "ns per ops": 49.32, "Ops per threads": 31681.0, "Ops per procs": 3168112.0, "Ops/sec/procs": 105600.31, "ns per ops/procs": 9469.67}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30008.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 650019380.0, "Ops per second": 21667312.0, "ns per ops": 46.0, "Ops per threads": 67710.0, "Ops per procs": 6771035.0, "Ops/sec/procs": 225701.0, "ns per ops/procs": 4431.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30017.905127, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 577332306.0, "Total blocks": 203440686.0, "Ops per second": 19232931.26, "ns per ops": 51.99, "Ops per threads": 60138.0, "Ops per procs": 6013878.0, "Ops/sec/procs": 200343.03, "ns per ops/procs": 4991.44}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 452765607.0, "Ops per second": 15092186.0, "ns per ops": 66.0, "Ops per threads": 4527656.0, "Ops per procs": 452765607.0, "Ops/sec/procs": 15092186.0, "ns per ops/procs": 66.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30033.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 168153294.0, "Total blocks": 91698460.0, "Ops per second": 5598897.55, "ns per ops": 178.61, "Ops per threads": 210191.0, "Ops per procs": 21019161.0, "Ops/sec/procs": 699862.19, "ns per ops/procs": 1428.85}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.146697, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 163876646.0, "Total blocks": 79156586.0, "Ops per second": 5452531.9, "ns per ops": 183.4, "Ops per threads": 409691.0, "Ops per procs": 40969161.0, "Ops/sec/procs": 1363132.97, "ns per ops/procs": 733.6}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30038.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 249728591.0, "Ops per second": 8313602.09, "ns per ops": 120.28, "Ops per threads": 104053.0, "Ops per procs": 10405357.0, "Ops/sec/procs": 346400.09, "ns per ops/procs": 2886.84}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30047.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 360756914.0, "Ops per second": 12006305.39, "ns per ops": 83.29, "Ops per threads": 75157.0, "Ops per procs": 7515769.0, "Ops/sec/procs": 250131.36, "ns per ops/procs": 3997.9}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30080.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 790206537.0, "Total blocks": 414340220.0, "Ops per second": 26269981.02, "ns per ops": 38.07, "Ops per threads": 41156.0, "Ops per procs": 4115659.0, "Ops/sec/procs": 136822.82, "ns per ops/procs": 7308.72}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30083.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 165112377.0, "Ops per second": 5503745.0, "ns per ops": 182.0, "Ops per threads": 412780.0, "Ops per procs": 41278094.0, "Ops/sec/procs": 1375936.0, "ns per ops/procs": 728.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30060.19443, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 203517134.0, "Total blocks": 86791618.0, "Ops per second": 6770319.95, "ns per ops": 147.7, "Ops per threads": 254396.0, "Ops per procs": 25439641.0, "Ops/sec/procs": 846289.99, "ns per ops/procs": 1181.63}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30027.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192272018.0, "Total blocks": 0.0, "Ops per second": 6403297.78, "ns per ops": 156.17, "Ops per threads": 1922720.0, "Ops per procs": 192272018.0, "Ops/sec/procs": 6403297.78, "ns per ops/procs": 156.17}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30078.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 167549786.0, "Ops per second": 5584992.0, "ns per ops": 179.0, "Ops per threads": 418874.0, "Ops per procs": 41887446.0, "Ops/sec/procs": 1396248.0, "ns per ops/procs": 718.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192351883.0, "Total blocks": 0.0, "Ops per second": 6405974.57, "ns per ops": 156.1, "Ops per threads": 1923518.0, "Ops per procs": 192351883.0, "Ops/sec/procs": 6405974.57, "ns per ops/procs": 156.1}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30042.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 455643717.0, "Ops per second": 15166607.73, "ns per ops": 65.93, "Ops per threads": 31641.0, "Ops per procs": 3164192.0, "Ops/sec/procs": 105323.66, "ns per ops/procs": 9494.54}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30089.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 143735420.0, "Total blocks": 86927326.0, "Ops per second": 4776918.31, "ns per ops": 209.34, "Ops per threads": 359338.0, "Ops per procs": 35933855.0, "Ops/sec/procs": 1194229.58, "ns per ops/procs": 837.36}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30075.817488, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 532406820.0, "Total blocks": 189021704.0, "Ops per second": 17702156.23, "ns per ops": 56.49, "Ops per threads": 55459.0, "Ops per procs": 5545904.0, "Ops/sec/procs": 184397.46, "ns per ops/procs": 5423.07}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 135674077.0, "Ops per second": 4522243.58, "ns per ops": 221.13, "Ops per threads": 1356740.0, "Ops per procs": 135674077.0, "Ops/sec/procs": 4522243.58, "ns per ops/procs": 221.13}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30043.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 439906914.0, "Ops per second": 14642382.11, "ns per ops": 68.29, "Ops per threads": 22911.0, "Ops per procs": 2291181.0, "Ops/sec/procs": 76262.41, "ns per ops/procs": 13112.62}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30065.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 657902987.0, "Total blocks": 366384435.0, "Ops per second": 21882092.43, "ns per ops": 45.7, "Ops per threads": 45687.0, "Ops per procs": 4568770.0, "Ops/sec/procs": 151958.98, "ns per ops/procs": 6580.72}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30005.089617, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 539166834.0, "Total blocks": 196440124.0, "Ops per second": 17969179.26, "ns per ops": 55.65, "Ops per threads": 37442.0, "Ops per procs": 3744214.0, "Ops/sec/procs": 124785.97, "ns per ops/procs": 8013.72}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30092.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 167590348.0, "Ops per second": 5586344.0, "ns per ops": 179.0, "Ops per threads": 837951.0, "Ops per procs": 83795174.0, "Ops/sec/procs": 2793172.0, "ns per ops/procs": 359.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.996225, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 492463154.0, "Total blocks": 1502761.0, "Ops per second": 16387036.33, "ns per ops": 61.02, "Ops per threads": 2462315.0, "Ops per procs": 246231577.0, "Ops/sec/procs": 8193518.17, "ns per ops/procs": 122.05}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30061.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 341546252.0, "Ops per second": 11384875.0, "ns per ops": 88.0, "Ops per threads": 213466.0, "Ops per procs": 21346640.0, "Ops/sec/procs": 711554.0, "ns per ops/procs": 1408.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30034.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 159861811.0, "Ops per second": 5322617.74, "ns per ops": 187.88, "Ops per threads": 399654.0, "Ops per procs": 39965452.0, "Ops/sec/procs": 1330654.44, "ns per ops/procs": 751.51}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30070.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 647377625.0, "Total blocks": 358133729.0, "Ops per second": 21529008.78, "ns per ops": 46.45, "Ops per threads": 44956.0, "Ops per procs": 4495677.0, "Ops/sec/procs": 149507.01, "ns per ops/procs": 6688.65}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30027.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 238037586.0, "Ops per second": 7927229.01, "ns per ops": 126.15, "Ops per threads": 148773.0, "Ops per procs": 14877349.0, "Ops/sec/procs": 495451.81, "ns per ops/procs": 2018.36}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30015.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 190281542.0, "Ops per second": 6342718.0, "ns per ops": 157.0, "Ops per threads": 951407.0, "Ops per procs": 95140771.0, "Ops/sec/procs": 3171359.0, "ns per ops/procs": 315.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30086.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 790873617.0, "Total blocks": 414896267.0, "Ops per second": 26286448.76, "ns per ops": 38.04, "Ops per threads": 41191.0, "Ops per procs": 4119133.0, "Ops/sec/procs": 136908.59, "ns per ops/procs": 7304.14}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30038.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 275097017.0, "Total blocks": 139621738.0, "Ops per second": 9158293.2, "ns per ops": 109.19, "Ops per threads": 171935.0, "Ops per procs": 17193563.0, "Ops/sec/procs": 572393.32, "ns per ops/procs": 1747.05}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30030.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 717166455.0, "Ops per second": 23881520.39, "ns per ops": 41.87, "Ops per threads": 99606.0, "Ops per procs": 9960645.0, "Ops/sec/procs": 331687.78, "ns per ops/procs": 3014.88}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30003.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 742562709.0, "Ops per second": 24752090.0, "ns per ops": 40.0, "Ops per threads": 154700.0, "Ops per procs": 15470056.0, "Ops/sec/procs": 515668.0, "ns per ops/procs": 1939.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30025.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 485996227.0, "Ops per second": 16199874.0, "ns per ops": 61.0, "Ops per threads": 67499.0, "Ops per procs": 6749947.0, "Ops/sec/procs": 224998.0, "ns per ops/procs": 4448.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30061.127863, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 748041545.0, "Total blocks": 257845748.0, "Ops per second": 24884014.61, "ns per ops": 40.19, "Ops per threads": 155841.0, "Ops per procs": 15584198.0, "Ops/sec/procs": 518416.97, "ns per ops/procs": 1928.95}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 452863920.0, "Ops per second": 15095464.0, "ns per ops": 66.0, "Ops per threads": 4528639.0, "Ops per procs": 452863920.0, "Ops/sec/procs": 15095464.0, "ns per ops/procs": 66.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30035.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 153408239.0, "Ops per second": 5107627.0, "ns per ops": 195.79, "Ops per threads": 383520.0, "Ops per procs": 38352059.0, "Ops/sec/procs": 1276906.75, "ns per ops/procs": 783.14}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30035.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 260557227.0, "Ops per second": 8675026.21, "ns per ops": 115.27, "Ops per threads": 108565.0, "Ops per procs": 10856551.0, "Ops/sec/procs": 361459.43, "ns per ops/procs": 2766.56}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192033788.0, "Total blocks": 0.0, "Ops per second": 6395407.12, "ns per ops": 156.36, "Ops per threads": 1920337.0, "Ops per procs": 192033788.0, "Ops/sec/procs": 6395407.12, "ns per ops/procs": 156.36}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30079.074941, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 298030410.0, "Total blocks": 109392057.0, "Ops per second": 9908230.58, "ns per ops": 100.93, "Ops per threads": 186269.0, "Ops per procs": 18626900.0, "Ops/sec/procs": 619264.41, "ns per ops/procs": 1614.82}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30099.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 237100042.0, "Ops per second": 7903334.0, "ns per ops": 126.0, "Ops per threads": 296375.0, "Ops per procs": 29637505.0, "Ops/sec/procs": 987916.0, "ns per ops/procs": 1015.0}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30042.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 441233108.0, "Ops per second": 14686769.37, "ns per ops": 68.09, "Ops per threads": 22980.0, "Ops per procs": 2298089.0, "Ops/sec/procs": 76493.59, "ns per ops/procs": 13072.99}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30050.043754, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1109890087.0, "Total blocks": 2094528.0, "Ops per second": 36934724.49, "ns per ops": 27.07, "Ops per threads": 11098900.0, "Ops per procs": 1109890087.0, "Ops/sec/procs": 36934724.49, "ns per ops/procs": 27.07}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30040.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 143539857.0, "Ops per second": 4778190.54, "ns per ops": 209.28, "Ops per threads": 179424.0, "Ops per procs": 17942482.0, "Ops/sec/procs": 597273.82, "ns per ops/procs": 1674.27}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192539464.0, "Total blocks": 0.0, "Ops per second": 6412239.06, "ns per ops": 155.95, "Ops per threads": 1925394.0, "Ops per procs": 192539464.0, "Ops/sec/procs": 6412239.06, "ns per ops/procs": 155.95}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30059.428625, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 214406101.0, "Total blocks": 89085317.0, "Ops per second": 7132740.4, "ns per ops": 140.2, "Ops per threads": 268007.0, "Ops per procs": 26800762.0, "Ops/sec/procs": 891592.55, "ns per ops/procs": 1121.59}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 451938612.0, "Ops per second": 15064620.0, "ns per ops": 66.0, "Ops per threads": 4519386.0, "Ops per procs": 451938612.0, "Ops/sec/procs": 15064620.0, "ns per ops/procs": 66.0}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30020.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 117888097.0, "Ops per second": 3926880.58, "ns per ops": 254.66, "Ops per threads": 589440.0, "Ops per procs": 58944048.0, "Ops/sec/procs": 1963440.29, "ns per ops/procs": 509.31}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 118665695.0, "Ops per second": 3952370.01, "ns per ops": 253.01, "Ops per threads": 593328.0, "Ops per procs": 59332847.0, "Ops/sec/procs": 1976185.0, "ns per ops/procs": 506.03}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30006.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 956030550.0, "Ops per second": 31867685.0, "ns per ops": 31.0, "Ops per threads": 49793.0, "Ops per procs": 4979325.0, "Ops/sec/procs": 165977.0, "ns per ops/procs": 6026.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30021.088657, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 347613627.0, "Total blocks": 125656313.0, "Ops per second": 11578981.39, "ns per ops": 86.36, "Ops per threads": 144839.0, "Ops per procs": 14483901.0, "Ops/sec/procs": 482457.56, "ns per ops/procs": 2072.72}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30008.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 740912835.0, "Ops per second": 24697094.0, "ns per ops": 40.0, "Ops per threads": 154356.0, "Ops per procs": 15435684.0, "Ops/sec/procs": 514522.0, "ns per ops/procs": 1944.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30021.750654, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 339674261.0, "Total blocks": 136497088.0, "Ops per second": 11314272.27, "ns per ops": 88.38, "Ops per threads": 141530.0, "Ops per procs": 14153094.0, "Ops/sec/procs": 471428.01, "ns per ops/procs": 2121.21}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30064.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 389938014.0, "Total blocks": 206165485.0, "Ops per second": 12969867.58, "ns per ops": 77.1, "Ops per threads": 54158.0, "Ops per procs": 5415805.0, "Ops/sec/procs": 180137.05, "ns per ops/procs": 5551.33}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30015.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 179671481.0, "Total blocks": 96818873.0, "Ops per second": 5985873.44, "ns per ops": 167.06, "Ops per threads": 224589.0, "Ops per procs": 22458935.0, "Ops/sec/procs": 748234.18, "ns per ops/procs": 1336.48}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30054.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 347470587.0, "Ops per second": 11582352.0, "ns per ops": 86.0, "Ops per threads": 217169.0, "Ops per procs": 21716911.0, "Ops/sec/procs": 723897.0, "ns per ops/procs": 1383.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30033.689328, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 529360635.0, "Total blocks": 202033463.0, "Ops per second": 17625561.39, "ns per ops": 56.74, "Ops per threads": 55141.0, "Ops per procs": 5514173.0, "Ops/sec/procs": 183599.6, "ns per ops/procs": 5446.64}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30002.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 498328668.0, "Total blocks": 274501513.0, "Ops per second": 16609802.26, "ns per ops": 60.21, "Ops per threads": 103818.0, "Ops per procs": 10381847.0, "Ops/sec/procs": 346037.55, "ns per ops/procs": 2889.86}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30069.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 307154812.0, "Ops per second": 10214932.89, "ns per ops": 97.9, "Ops per threads": 31995.0, "Ops per procs": 3199529.0, "Ops/sec/procs": 106405.55, "ns per ops/procs": 9398.01}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30009.065154, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 563513509.0, "Total blocks": 217716702.0, "Ops per second": 18778109.42, "ns per ops": 53.25, "Ops per threads": 39132.0, "Ops per procs": 3913288.0, "Ops/sec/procs": 130403.54, "ns per ops/procs": 7668.5}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30037.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 524334283.0, "Ops per second": 17455928.0, "ns per ops": 57.29, "Ops per threads": 36412.0, "Ops per procs": 3641210.0, "Ops/sec/procs": 121221.72, "ns per ops/procs": 8249.35}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30013.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 600470119.0, "Ops per second": 20015670.0, "ns per ops": 49.0, "Ops per threads": 62548.0, "Ops per procs": 6254897.0, "Ops/sec/procs": 208496.0, "ns per ops/procs": 4798.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30026.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 500463511.0, "Ops per second": 16682117.0, "ns per ops": 59.0, "Ops per threads": 208526.0, "Ops per procs": 20852646.0, "Ops/sec/procs": 695088.0, "ns per ops/procs": 1439.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30019.403619, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 322475350.0, "Total blocks": 107518214.0, "Ops per second": 10742230.4, "ns per ops": 93.09, "Ops per threads": 134364.0, "Ops per procs": 13436472.0, "Ops/sec/procs": 447592.93, "ns per ops/procs": 2234.17}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30039.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 275766682.0, "Total blocks": 139786129.0, "Ops per second": 9180135.42, "ns per ops": 108.93, "Ops per threads": 172354.0, "Ops per procs": 17235417.0, "Ops/sec/procs": 573758.46, "ns per ops/procs": 1742.89}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30055.143359, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 786185730.0, "Total blocks": 314757140.0, "Ops per second": 26158109.47, "ns per ops": 38.23, "Ops per threads": 163788.0, "Ops per procs": 16378869.0, "Ops/sec/procs": 544960.61, "ns per ops/procs": 1835.0}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30041.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 440773630.0, "Ops per second": 14671917.03, "ns per ops": 68.16, "Ops per threads": 22956.0, "Ops per procs": 2295695.0, "Ops/sec/procs": 76416.23, "ns per ops/procs": 13086.22}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 452790603.0, "Ops per second": 15093020.0, "ns per ops": 66.0, "Ops per threads": 4527906.0, "Ops per procs": 452790603.0, "Ops/sec/procs": 15093020.0, "ns per ops/procs": 66.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30014.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 637525953.0, "Ops per second": 21250865.0, "ns per ops": 47.0, "Ops per threads": 66408.0, "Ops per procs": 6640895.0, "Ops/sec/procs": 221363.0, "ns per ops/procs": 4519.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30066.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 86351017.0, "Total blocks": 43177052.0, "Ops per second": 2872018.91, "ns per ops": 348.19, "Ops per threads": 431755.0, "Ops per procs": 43175508.0, "Ops/sec/procs": 1436009.45, "ns per ops/procs": 696.37}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 741633305.0, "Ops per second": 24721110.0, "ns per ops": 40.0, "Ops per threads": 154506.0, "Ops per procs": 15450693.0, "Ops/sec/procs": 515023.0, "ns per ops/procs": 1942.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 942640306.0, "Ops per second": 31421343.0, "ns per ops": 31.0, "Ops per threads": 49095.0, "Ops per procs": 4909584.0, "Ops/sec/procs": 163652.0, "ns per ops/procs": 6111.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30035.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 152187568.0, "Ops per second": 5066853.22, "ns per ops": 197.36, "Ops per threads": 380468.0, "Ops per procs": 38046892.0, "Ops/sec/procs": 1266713.31, "ns per ops/procs": 789.44}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30045.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 167711831.0, "Ops per second": 5590394.0, "ns per ops": 179.0, "Ops per threads": 838559.0, "Ops per procs": 83855915.0, "Ops/sec/procs": 2795197.0, "ns per ops/procs": 358.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30027.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 192545031.0, "Total blocks": 0.0, "Ops per second": 6412369.34, "ns per ops": 155.95, "Ops per threads": 1925450.0, "Ops per procs": 192545031.0, "Ops/sec/procs": 6412369.34, "ns per ops/procs": 155.95}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.12344, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 438344047.0, "Total blocks": 4308460.0, "Ops per second": 14586610.98, "ns per ops": 68.56, "Ops per threads": 2191720.0, "Ops per procs": 219172023.0, "Ops/sec/procs": 7293305.49, "ns per ops/procs": 137.11}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 135332439.0, "Ops per second": 4510861.24, "ns per ops": 221.69, "Ops per threads": 1353324.0, "Ops per procs": 135332439.0, "Ops/sec/procs": 4510861.24, "ns per ops/procs": 221.69}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30030.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 220209465.0, "Ops per second": 7332887.29, "ns per ops": 136.37, "Ops per threads": 137630.0, "Ops per procs": 13763091.0, "Ops/sec/procs": 458305.46, "ns per ops/procs": 2181.95}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30009.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 1084601129.0, "Ops per second": 36153370.0, "ns per ops": 27.0, "Ops per threads": 56489.0, "Ops per procs": 5648964.0, "Ops/sec/procs": 188298.0, "ns per ops/procs": 5312.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30050.132826, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1121160592.0, "Total blocks": 0.0, "Ops per second": 37309671.76, "ns per ops": 26.8, "Ops per threads": 11211605.0, "Ops per procs": 1121160592.0, "Ops/sec/procs": 37309671.76, "ns per ops/procs": 26.8}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30038.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 505085238.0, "Total blocks": 278265653.0, "Ops per second": 16814728.14, "ns per ops": 59.47, "Ops per threads": 105226.0, "Ops per procs": 10522609.0, "Ops/sec/procs": 350306.84, "ns per ops/procs": 2854.64}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30095.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 135292457.0, "Total blocks": 81914713.0, "Ops per second": 4495473.6, "ns per ops": 222.45, "Ops per threads": 338231.0, "Ops per procs": 33823114.0, "Ops/sec/procs": 1123868.4, "ns per ops/procs": 889.78}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30011.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 1087939622.0, "Ops per second": 36264654.0, "ns per ops": 27.0, "Ops per threads": 56663.0, "Ops per procs": 5666352.0, "Ops/sec/procs": 188878.0, "ns per ops/procs": 5296.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30012.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 513402261.0, "Ops per second": 17113408.0, "ns per ops": 58.0, "Ops per threads": 213917.0, "Ops per procs": 21391760.0, "Ops/sec/procs": 713058.0, "ns per ops/procs": 1402.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30036.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 155123771.0, "Ops per second": 5164469.83, "ns per ops": 193.63, "Ops per threads": 387809.0, "Ops per procs": 38780942.0, "Ops/sec/procs": 1291117.46, "ns per ops/procs": 774.52}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30021.231882, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 337105017.0, "Total blocks": 114998883.0, "Ops per second": 11228886.89, "ns per ops": 89.06, "Ops per threads": 140460.0, "Ops per procs": 14046042.0, "Ops/sec/procs": 467870.29, "ns per ops/procs": 2137.34}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30030.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 228646278.0, "Ops per second": 7613810.95, "ns per ops": 131.34, "Ops per threads": 142903.0, "Ops per procs": 14290392.0, "Ops/sec/procs": 475863.18, "ns per ops/procs": 2101.44}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30071.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 172918746.0, "Ops per second": 5763958.0, "ns per ops": 173.0, "Ops per threads": 864593.0, "Ops per procs": 86459373.0, "Ops/sec/procs": 2881979.0, "ns per ops/procs": 347.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30041.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 153668090.0, "Ops per second": 5115196.07, "ns per ops": 195.5, "Ops per threads": 384170.0, "Ops per procs": 38417022.0, "Ops/sec/procs": 1278799.02, "ns per ops/procs": 781.98}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30054.878173, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 164604482.0, "Total blocks": 79443826.0, "Ops per second": 5476797.51, "ns per ops": 182.59, "Ops per threads": 411511.0, "Ops per procs": 41151120.0, "Ops/sec/procs": 1369199.38, "ns per ops/procs": 730.35}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30027.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 470586298.0, "Ops per second": 15671733.99, "ns per ops": 63.81, "Ops per threads": 65359.0, "Ops per procs": 6535920.0, "Ops/sec/procs": 217662.97, "ns per ops/procs": 4594.26}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30045.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 372477233.0, "Ops per second": 12397099.79, "ns per ops": 80.66, "Ops per threads": 77599.0, "Ops per procs": 7759942.0, "Ops/sec/procs": 258272.91, "ns per ops/procs": 3871.87}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30010.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 237680089.0, "Ops per second": 7922669.0, "ns per ops": 126.0, "Ops per threads": 297100.0, "Ops per procs": 29710011.0, "Ops/sec/procs": 990333.0, "ns per ops/procs": 1010.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30003.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 963215996.0, "Ops per second": 32107199.0, "ns per ops": 31.0, "Ops per threads": 50167.0, "Ops per procs": 5016749.0, "Ops/sec/procs": 167224.0, "ns per ops/procs": 5980.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.507462, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 451515393.0, "Total blocks": 6698282.0, "Ops per second": 15024716.93, "ns per ops": 66.56, "Ops per threads": 2257576.0, "Ops per procs": 225757696.0, "Ops/sec/procs": 7512358.47, "ns per ops/procs": 133.11}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30030.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 292201059.0, "Total blocks": 150489137.0, "Ops per second": 9729988.97, "ns per ops": 102.78, "Ops per threads": 182625.0, "Ops per procs": 18262566.0, "Ops/sec/procs": 608124.31, "ns per ops/procs": 1644.4}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30024.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 762610209.0, "Total blocks": 399088663.0, "Ops per second": 25399210.3, "ns per ops": 39.37, "Ops per threads": 39719.0, "Ops per procs": 3971928.0, "Ops/sec/procs": 132287.55, "ns per ops/procs": 7559.29}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30036.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 235254117.0, "Ops per second": 7841803.0, "ns per ops": 127.0, "Ops per threads": 294067.0, "Ops per procs": 29406764.0, "Ops/sec/procs": 980225.0, "ns per ops/procs": 1021.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30010.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 656633684.0, "Ops per second": 21887789.0, "ns per ops": 45.0, "Ops per threads": 68399.0, "Ops per procs": 6839934.0, "Ops/sec/procs": 227997.0, "ns per ops/procs": 4387.0}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30022.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 118935913.0, "Ops per second": 3961569.79, "ns per ops": 252.43, "Ops per threads": 594679.0, "Ops per procs": 59467956.0, "Ops/sec/procs": 1980784.89, "ns per ops/procs": 504.85}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 234113536.0, "Ops per second": 7803784.0, "ns per ops": 128.0, "Ops per threads": 292641.0, "Ops per procs": 29264192.0, "Ops/sec/procs": 975473.0, "ns per ops/procs": 1025.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30054.667402, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 166485794.0, "Total blocks": 80463933.0, "Ops per second": 5539432.25, "ns per ops": 180.52, "Ops per threads": 416214.0, "Ops per procs": 41621448.0, "Ops/sec/procs": 1384858.06, "ns per ops/procs": 722.1}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30055.72223, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 815269283.0, "Total blocks": 310331856.0, "Ops per second": 27125260.1, "ns per ops": 36.87, "Ops per threads": 169847.0, "Ops per procs": 16984776.0, "Ops/sec/procs": 565109.59, "ns per ops/procs": 1769.57}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30017.694041, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 337962677.0, "Total blocks": 124909724.0, "Ops per second": 11258782.12, "ns per ops": 88.82, "Ops per threads": 140817.0, "Ops per procs": 14081778.0, "Ops/sec/procs": 469115.92, "ns per ops/procs": 2131.67}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30016.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 240122876.0, "Ops per second": 8004095.0, "ns per ops": 125.0, "Ops per threads": 300153.0, "Ops per procs": 30015359.0, "Ops/sec/procs": 1000511.0, "ns per ops/procs": 1000.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30000.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 765321036.0, "Total blocks": 402627093.0, "Ops per second": 25510313.55, "ns per ops": 39.2, "Ops per threads": 39860.0, "Ops per procs": 3986047.0, "Ops/sec/procs": 132866.22, "ns per ops/procs": 7526.37}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 136755569.0, "Ops per second": 4558289.56, "ns per ops": 219.38, "Ops per threads": 1367555.0, "Ops per procs": 136755569.0, "Ops/sec/procs": 4558289.56, "ns per ops/procs": 219.38}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30028.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 760584036.0, "Ops per second": 25328927.09, "ns per ops": 39.48, "Ops per threads": 105636.0, "Ops per procs": 10563667.0, "Ops/sec/procs": 351790.65, "ns per ops/procs": 2842.6}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30092.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 547271903.0, "Total blocks": 304156427.0, "Ops per second": 18186585.54, "ns per ops": 54.99, "Ops per threads": 114014.0, "Ops per procs": 11401497.0, "Ops/sec/procs": 378887.2, "ns per ops/procs": 2639.31}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30051.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 447833494.0, "Ops per second": 14902037.92, "ns per ops": 67.1, "Ops per threads": 23324.0, "Ops per procs": 2332466.0, "Ops/sec/procs": 77614.78, "ns per ops/procs": 12884.14}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30017.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 235761245.0, "Ops per second": 7858708.0, "ns per ops": 127.0, "Ops per threads": 294701.0, "Ops per procs": 29470155.0, "Ops/sec/procs": 982338.0, "ns per ops/procs": 1018.0}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30024.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 117247139.0, "Ops per second": 3905052.07, "ns per ops": 256.08, "Ops per threads": 586235.0, "Ops per procs": 58623569.0, "Ops/sec/procs": 1952526.03, "ns per ops/procs": 512.16}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 828247674.0, "Ops per second": 27608255.0, "ns per ops": 36.0, "Ops per threads": 57517.0, "Ops per procs": 5751719.0, "Ops/sec/procs": 191723.0, "ns per ops/procs": 5216.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30020.810748, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 348706385.0, "Total blocks": 129223242.0, "Ops per second": 11615488.6, "ns per ops": 86.09, "Ops per threads": 145294.0, "Ops per procs": 14529432.0, "Ops/sec/procs": 483978.69, "ns per ops/procs": 2066.21}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30081.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 246314013.0, "Ops per second": 8188305.5, "ns per ops": 122.13, "Ops per threads": 25657.0, "Ops per procs": 2565770.0, "Ops/sec/procs": 85294.85, "ns per ops/procs": 11724.04}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30046.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 345709305.0, "Ops per second": 11523643.0, "ns per ops": 86.0, "Ops per threads": 216068.0, "Ops per procs": 21606831.0, "Ops/sec/procs": 720227.0, "ns per ops/procs": 1390.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30053.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 401583131.0, "Total blocks": 210542335.0, "Ops per second": 13362215.51, "ns per ops": 74.84, "Ops per threads": 55775.0, "Ops per procs": 5577543.0, "Ops/sec/procs": 185586.33, "ns per ops/procs": 5388.33}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30006.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 734536092.0, "Ops per second": 24484536.0, "ns per ops": 40.0, "Ops per threads": 153028.0, "Ops per procs": 15302835.0, "Ops/sec/procs": 510094.0, "ns per ops/procs": 1960.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30051.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 364314023.0, "Ops per second": 12122996.23, "ns per ops": 82.49, "Ops per threads": 75898.0, "Ops per procs": 7589875.0, "Ops/sec/procs": 252562.42, "ns per ops/procs": 3959.42}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30040.076314, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 541851634.0, "Total blocks": 188048786.0, "Ops per second": 18037625.08, "ns per ops": 55.44, "Ops per threads": 56442.0, "Ops per procs": 5644287.0, "Ops/sec/procs": 187891.93, "ns per ops/procs": 5322.21}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30035.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 286283569.0, "Total blocks": 146888084.0, "Ops per second": 9531579.87, "ns per ops": 104.91, "Ops per threads": 178927.0, "Ops per procs": 17892723.0, "Ops/sec/procs": 595723.74, "ns per ops/procs": 1678.63}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30036.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 162396549.0, "Ops per second": 5406592.34, "ns per ops": 184.96, "Ops per threads": 405991.0, "Ops per procs": 40599137.0, "Ops/sec/procs": 1351648.08, "ns per ops/procs": 739.84}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30029.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 118487186.0, "Ops per second": 3945704.89, "ns per ops": 253.44, "Ops per threads": 592435.0, "Ops per procs": 59243593.0, "Ops/sec/procs": 1972852.44, "ns per ops/procs": 506.88}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30090.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 143274887.0, "Total blocks": 86548676.0, "Ops per second": 4761432.25, "ns per ops": 210.02, "Ops per threads": 358187.0, "Ops per procs": 35818721.0, "Ops/sec/procs": 1190358.06, "ns per ops/procs": 840.08}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30021.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 514934279.0, "Ops per second": 17164475.0, "ns per ops": 58.0, "Ops per threads": 214555.0, "Ops per procs": 21455594.0, "Ops/sec/procs": 715186.0, "ns per ops/procs": 1399.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30031.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 224330067.0, "Ops per second": 7469706.59, "ns per ops": 133.87, "Ops per threads": 140206.0, "Ops per procs": 14020629.0, "Ops/sec/procs": 466856.66, "ns per ops/procs": 2141.99}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30049.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 271788841.0, "Total blocks": 139390216.0, "Ops per second": 9044572.27, "ns per ops": 110.56, "Ops per threads": 169868.0, "Ops per procs": 16986802.0, "Ops/sec/procs": 565285.77, "ns per ops/procs": 1769.02}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30032.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 156001709.0, "Ops per second": 5194343.46, "ns per ops": 192.52, "Ops per threads": 390004.0, "Ops per procs": 39000427.0, "Ops/sec/procs": 1298585.87, "ns per ops/procs": 770.07}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30023.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 634543833.0, "Total blocks": 353102065.0, "Ops per second": 21135244.28, "ns per ops": 47.31, "Ops per threads": 44065.0, "Ops per procs": 4406554.0, "Ops/sec/procs": 146772.53, "ns per ops/procs": 6813.26}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30026.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 120153089.0, "Ops per second": 4001626.69, "ns per ops": 249.9, "Ops per threads": 600765.0, "Ops per procs": 60076544.0, "Ops/sec/procs": 2000813.34, "ns per ops/procs": 499.8}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30061.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 343295621.0, "Ops per second": 11443187.0, "ns per ops": 87.0, "Ops per threads": 214559.0, "Ops per procs": 21455976.0, "Ops/sec/procs": 715199.0, "ns per ops/procs": 1401.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30072.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 167798538.0, "Ops per second": 5593284.0, "ns per ops": 179.0, "Ops per threads": 419496.0, "Ops per procs": 41949634.0, "Ops/sec/procs": 1398321.0, "ns per ops/procs": 716.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30024.752245, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 533781014.0, "Total blocks": 203375821.0, "Ops per second": 17778032.26, "ns per ops": 56.25, "Ops per threads": 55602.0, "Ops per procs": 5560218.0, "Ops/sec/procs": 185187.84, "ns per ops/procs": 5399.92}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30038.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 268100562.0, "Ops per second": 8925355.68, "ns per ops": 112.04, "Ops per threads": 111708.0, "Ops per procs": 11170856.0, "Ops/sec/procs": 371889.82, "ns per ops/procs": 2688.97}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30087.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 646041577.0, "Total blocks": 358882545.0, "Ops per second": 21472152.63, "ns per ops": 46.57, "Ops per threads": 44863.0, "Ops per procs": 4486399.0, "Ops/sec/procs": 149112.17, "ns per ops/procs": 6706.36}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30048.978623, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 614380827.0, "Total blocks": 254504342.0, "Ops per second": 20445980.37, "ns per ops": 48.91, "Ops per threads": 31999.0, "Ops per procs": 3199900.0, "Ops/sec/procs": 106489.48, "ns per ops/procs": 9390.6}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30085.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 185405382.0, "Ops per second": 6180179.0, "ns per ops": 162.0, "Ops per threads": 927026.0, "Ops per procs": 92702691.0, "Ops/sec/procs": 3090089.0, "ns per ops/procs": 324.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 6.0, "Total Operations(ops)": 452412979.0, "Ops per second": 15080432.0, "ns per ops": 66.0, "Ops per threads": 4524129.0, "Ops per procs": 452412979.0, "Ops/sec/procs": 15080432.0, "ns per ops/procs": 66.0}]]
  • doc/theses/thierry_delisle_PhD/thesis/data/churn.low.jax

    r12df6fe r4520b77e  
    1 [["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 10 -t 16 -s 8", {"Duration (ms)": 10007.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 45886505.0, "Total blocks": 23581519.0, "Ops per second": 4584996.42, "ns per ops": 218.1, "Ops per threads": 2867906.0, "Ops per procs": 5735813.0, "Ops/sec/procs": 573124.55, "ns per ops/procs": 1744.82}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 10 -t 32 -s 16", {"Duration (ms)": 10031.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 52948646.0, "Ops per second": 5278451.52, "ns per ops": 189.45, "Ops per threads": 1654645.0, "Ops per procs": 3309290.0, "Ops/sec/procs": 329903.22, "ns per ops/procs": 3031.19}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 10 -t 16 -s 8", {"Duration (ms)": 10008.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 45571308.0, "Total blocks": 23418912.0, "Ops per second": 4553347.51, "ns per ops": 219.62, "Ops per threads": 2848206.0, "Ops per procs": 5696413.0, "Ops/sec/procs": 569168.44, "ns per ops/procs": 1756.95}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 10 -t 16 -s 8", {"Duration (ms)": 10020.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 57549768.0, "Ops per second": 5743275.64, "ns per ops": 174.12, "Ops per threads": 3596860.0, "Ops per procs": 7193721.0, "Ops/sec/procs": 717909.45, "ns per ops/procs": 1392.93}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 10 -t 32 -s 16", {"Duration (ms)": 10025.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 52431553.0, "Ops per second": 5229696.44, "ns per ops": 191.22, "Ops per threads": 1638486.0, "Ops per procs": 3276972.0, "Ops/sec/procs": 326856.03, "ns per ops/procs": 3059.45}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 10 -t 32 -s 16", {"Duration (ms)": 10009.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 67810265.0, "Total blocks": 32862605.0, "Ops per second": 6774910.95, "ns per ops": 147.6, "Ops per threads": 2119070.0, "Ops per procs": 4238141.0, "Ops/sec/procs": 423431.93, "ns per ops/procs": 2361.65}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 10 -t 16 -s 8", {"Duration (ms)": 10013.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 57847054.0, "Ops per second": 5777194.35, "ns per ops": 173.09, "Ops per threads": 3615440.0, "Ops per procs": 7230881.0, "Ops/sec/procs": 722149.29, "ns per ops/procs": 1384.76}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 10 -t 2 -s 1", {"Duration (ms)": 10065.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 75010542.0, "Ops per second": 7452234.24, "ns per ops": 134.19, "Ops per threads": 37505271.0, "Ops per procs": 75010542.0, "Ops/sec/procs": 7452234.24, "ns per ops/procs": 134.19}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 10 -t 2 -s 1", {"Duration (ms)": 10018.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 75353303.0, "Ops per second": 7521765.77, "ns per ops": 132.95, "Ops per threads": 37676651.0, "Ops per procs": 75353303.0, "Ops/sec/procs": 7521765.77, "ns per ops/procs": 132.95}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 10 -t 48 -s 24", {"Duration (ms)": 10038.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 77580756.0, "Ops per second": 7728213.1, "ns per ops": 129.4, "Ops per threads": 1616265.0, "Ops per procs": 3232531.0, "Ops/sec/procs": 322008.88, "ns per ops/procs": 3105.5}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 10 -t 32 -s 16", {"Duration (ms)": 10100.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 55704847.0, "Ops per second": 5570484.0, "ns per ops": 181.0, "Ops per threads": 1740776.0, "Ops per procs": 3481552.0, "Ops/sec/procs": 348155.0, "ns per ops/procs": 2901.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 10 -t 48 -s 24", {"Duration (ms)": 10001.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 75768750.0, "Total blocks": 39198331.0, "Ops per second": 7575582.46, "ns per ops": 132.0, "Ops per threads": 1578515.0, "Ops per procs": 3157031.0, "Ops/sec/procs": 315649.27, "ns per ops/procs": 3168.07}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 10 -t 32 -s 16", {"Duration (ms)": 10009.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 68082972.0, "Total blocks": 32947596.0, "Ops per second": 6801956.28, "ns per ops": 147.02, "Ops per threads": 2127592.0, "Ops per procs": 4255185.0, "Ops/sec/procs": 425122.27, "ns per ops/procs": 2352.26}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 10 -t 2 -s 1", {"Duration (ms)": 10099.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 53235539.0, "Ops per second": 5323553.0, "ns per ops": 189.0, "Ops per threads": 26617769.0, "Ops per procs": 53235539.0, "Ops/sec/procs": 5323553.0, "ns per ops/procs": 189.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 10 -t 32 -s 16", {"Duration (ms)": 10029.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 51995117.0, "Ops per second": 5184034.28, "ns per ops": 192.9, "Ops per threads": 1624847.0, "Ops per procs": 3249694.0, "Ops/sec/procs": 324002.14, "ns per ops/procs": 3086.4}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 10 -t 48 -s 24", {"Duration (ms)": 10099.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 75855247.0, "Ops per second": 7585524.0, "ns per ops": 133.0, "Ops per threads": 1580317.0, "Ops per procs": 3160635.0, "Ops/sec/procs": 316063.0, "ns per ops/procs": 3195.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 10 -t 2 -s 1", {"Duration (ms)": 10016.677107, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 82722736.0, "Total blocks": 51097615.0, "Ops per second": 8258500.81, "ns per ops": 121.09, "Ops per threads": 41361368.0, "Ops per procs": 82722736.0, "Ops/sec/procs": 8258500.81, "ns per ops/procs": 121.09}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 10 -t 48 -s 24", {"Duration (ms)": 10099.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 82039759.0, "Ops per second": 8203975.0, "ns per ops": 123.0, "Ops per threads": 1709161.0, "Ops per procs": 3418323.0, "Ops/sec/procs": 341832.0, "ns per ops/procs": 2954.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 10 -t 16 -s 8", {"Duration (ms)": 10019.859008, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 60823669.0, "Total blocks": 20963529.0, "Ops per second": 6070311.86, "ns per ops": 164.74, "Ops per threads": 3801479.0, "Ops per procs": 7602958.0, "Ops/sec/procs": 758788.98, "ns per ops/procs": 1317.89}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 10 -t 32 -s 16", {"Duration (ms)": 10026.064514, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 84419895.0, "Total blocks": 31896077.0, "Ops per second": 8420043.07, "ns per ops": 118.76, "Ops per threads": 2638121.0, "Ops per procs": 5276243.0, "Ops/sec/procs": 526252.69, "ns per ops/procs": 1900.23}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 10 -t 2 -s 1", {"Duration (ms)": 10066.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 86259431.0, "Ops per second": 8569319.99, "ns per ops": 116.7, "Ops per threads": 43129715.0, "Ops per procs": 86259431.0, "Ops/sec/procs": 8569319.99, "ns per ops/procs": 116.7}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 10 -t 16 -s 8", {"Duration (ms)": 10020.476753, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 61723297.0, "Total blocks": 27893419.0, "Ops per second": 6159716.6, "ns per ops": 162.35, "Ops per threads": 3857706.0, "Ops per procs": 7715412.0, "Ops/sec/procs": 769964.58, "ns per ops/procs": 1298.76}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 10 -t 16 -s 8", {"Duration (ms)": 10099.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 39895438.0, "Ops per second": 3989543.0, "ns per ops": 253.0, "Ops per threads": 2493464.0, "Ops per procs": 4986929.0, "Ops/sec/procs": 498692.0, "ns per ops/procs": 2025.0}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 10 -t 48 -s 24", {"Duration (ms)": 10044.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 78307639.0, "Ops per second": 7795946.42, "ns per ops": 128.27, "Ops per threads": 1631409.0, "Ops per procs": 3262818.0, "Ops/sec/procs": 324831.1, "ns per ops/procs": 3078.52}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 10 -t 16 -s 8", {"Duration (ms)": 10008.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 45589496.0, "Total blocks": 23479172.0, "Ops per second": 4555270.66, "ns per ops": 219.53, "Ops per threads": 2849343.0, "Ops per procs": 5698687.0, "Ops/sec/procs": 569408.83, "ns per ops/procs": 1756.21}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 10 -t 2 -s 1", {"Duration (ms)": 10099.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 52936021.0, "Ops per second": 5293602.0, "ns per ops": 190.0, "Ops per threads": 26468010.0, "Ops per procs": 52936021.0, "Ops/sec/procs": 5293602.0, "ns per ops/procs": 190.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 10 -t 48 -s 24", {"Duration (ms)": 10001.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 74937686.0, "Total blocks": 38772422.0, "Ops per second": 7492506.92, "ns per ops": 133.47, "Ops per threads": 1561201.0, "Ops per procs": 3122403.0, "Ops/sec/procs": 312187.79, "ns per ops/procs": 3203.2}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 10 -t 16 -s 8", {"Duration (ms)": 10019.966204, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 66694419.0, "Total blocks": 28038485.0, "Ops per second": 6656152.09, "ns per ops": 150.24, "Ops per threads": 4168401.0, "Ops per procs": 8336802.0, "Ops/sec/procs": 832019.01, "ns per ops/procs": 1201.9}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 10 -t 32 -s 16", {"Duration (ms)": 10099.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 55692916.0, "Ops per second": 5569291.0, "ns per ops": 181.0, "Ops per threads": 1740403.0, "Ops per procs": 3480807.0, "Ops/sec/procs": 348080.0, "ns per ops/procs": 2901.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 10 -t 48 -s 24", {"Duration (ms)": 10007.064432, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 112046278.0, "Total blocks": 39631405.0, "Ops per second": 11196717.95, "ns per ops": 89.31, "Ops per threads": 2334297.0, "Ops per procs": 4668594.0, "Ops/sec/procs": 466529.91, "ns per ops/procs": 2143.49}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 10 -t 16 -s 8", {"Duration (ms)": 10099.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 34267306.0, "Ops per second": 3426730.0, "ns per ops": 294.0, "Ops per threads": 2141706.0, "Ops per procs": 4283413.0, "Ops/sec/procs": 428341.0, "ns per ops/procs": 2357.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 10 -t 2 -s 1", {"Duration (ms)": 10016.937779, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 77026352.0, "Total blocks": 52134150.0, "Ops per second": 7689610.71, "ns per ops": 130.05, "Ops per threads": 38513176.0, "Ops per procs": 77026352.0, "Ops/sec/procs": 7689610.71, "ns per ops/procs": 130.05}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 10 -t 2 -s 1", {"Duration (ms)": 10007.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 59271050.0, "Total blocks": 0.0, "Ops per second": 5922868.5, "ns per ops": 168.84, "Ops per threads": 29635525.0, "Ops per procs": 59271050.0, "Ops/sec/procs": 5922868.5, "ns per ops/procs": 168.84}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 10 -t 2 -s 1", {"Duration (ms)": 10007.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 59229442.0, "Total blocks": 0.0, "Ops per second": 5918658.48, "ns per ops": 168.96, "Ops per threads": 29614721.0, "Ops per procs": 59229442.0, "Ops/sec/procs": 5918658.48, "ns per ops/procs": 168.96}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 10 -t 48 -s 24", {"Duration (ms)": 10099.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 76525587.0, "Ops per second": 7652558.0, "ns per ops": 131.0, "Ops per threads": 1594283.0, "Ops per procs": 3188566.0, "Ops/sec/procs": 318856.0, "ns per ops/procs": 3167.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 10 -t 16 -s 8", {"Duration (ms)": 10099.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 35399271.0, "Ops per second": 3539927.0, "ns per ops": 285.0, "Ops per threads": 2212454.0, "Ops per procs": 4424908.0, "Ops/sec/procs": 442490.0, "ns per ops/procs": 2282.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 10 -t 2 -s 1", {"Duration (ms)": 10099.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 52944602.0, "Ops per second": 5294460.0, "ns per ops": 190.0, "Ops per threads": 26472301.0, "Ops per procs": 52944602.0, "Ops/sec/procs": 5294460.0, "ns per ops/procs": 190.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 10 -t 2 -s 1", {"Duration (ms)": 10007.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 59246475.0, "Total blocks": 0.0, "Ops per second": 5920233.28, "ns per ops": 168.91, "Ops per threads": 29623237.0, "Ops per procs": 59246475.0, "Ops/sec/procs": 5920233.28, "ns per ops/procs": 168.91}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 10 -t 2 -s 1", {"Duration (ms)": 10017.056033, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 78139970.0, "Total blocks": 50626382.0, "Ops per second": 7800692.11, "ns per ops": 128.19, "Ops per threads": 39069985.0, "Ops per procs": 78139970.0, "Ops/sec/procs": 7800692.11, "ns per ops/procs": 128.19}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 10 -t 32 -s 16", {"Duration (ms)": 10024.66772, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 91752654.0, "Total blocks": 25309024.0, "Ops per second": 9152687.81, "ns per ops": 109.26, "Ops per threads": 2867270.0, "Ops per procs": 5734540.0, "Ops/sec/procs": 572042.99, "ns per ops/procs": 1748.12}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 10 -t 48 -s 24", {"Duration (ms)": 10007.111246, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 103630541.0, "Total blocks": 37194166.0, "Ops per second": 10355689.91, "ns per ops": 96.57, "Ops per threads": 2158969.0, "Ops per procs": 4317939.0, "Ops/sec/procs": 431487.08, "ns per ops/procs": 2317.57}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 10 -t 48 -s 24", {"Duration (ms)": 10001.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 75844225.0, "Total blocks": 39206982.0, "Ops per second": 7583184.77, "ns per ops": 131.87, "Ops per threads": 1580088.0, "Ops per procs": 3160176.0, "Ops/sec/procs": 315966.03, "ns per ops/procs": 3164.9}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 10 -t 48 -s 24", {"Duration (ms)": 10039.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 78988905.0, "Ops per second": 7867923.65, "ns per ops": 127.1, "Ops per threads": 1645602.0, "Ops per procs": 3291204.0, "Ops/sec/procs": 327830.15, "ns per ops/procs": 3050.36}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 10 -t 48 -s 24", {"Duration (ms)": 10007.049884, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 103737120.0, "Total blocks": 40651067.0, "Ops per second": 10366403.81, "ns per ops": 96.47, "Ops per threads": 2161190.0, "Ops per procs": 4322380.0, "Ops/sec/procs": 431933.49, "ns per ops/procs": 2315.17}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 10 -t 32 -s 16", {"Duration (ms)": 10100.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 46882118.0, "Ops per second": 4688211.0, "ns per ops": 215.0, "Ops per threads": 1465066.0, "Ops per procs": 2930132.0, "Ops/sec/procs": 293013.0, "ns per ops/procs": 3446.0}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 10 -t 16 -s 8", {"Duration (ms)": 10018.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 57617091.0, "Ops per second": 5751024.83, "ns per ops": 173.88, "Ops per threads": 3601068.0, "Ops per procs": 7202136.0, "Ops/sec/procs": 718878.1, "ns per ops/procs": 1391.06}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 10 -t 32 -s 16", {"Duration (ms)": 10025.5689, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 93174864.0, "Total blocks": 36631659.0, "Ops per second": 9293723.37, "ns per ops": 107.6, "Ops per threads": 2911714.0, "Ops per procs": 5823429.0, "Ops/sec/procs": 580857.71, "ns per ops/procs": 1721.59}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 10 -t 32 -s 16", {"Duration (ms)": 10008.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 68440910.0, "Total blocks": 33142661.0, "Ops per second": 6838025.5, "ns per ops": 146.24, "Ops per threads": 2138778.0, "Ops per procs": 4277556.0, "Ops/sec/procs": 427376.59, "ns per ops/procs": 2339.86}]]
     1[["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30082.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 167676378.0, "Ops per second": 5573948.24, "ns per ops": 179.41, "Ops per threads": 5239886.0, "Ops per procs": 10479773.0, "Ops/sec/procs": 348371.76, "ns per ops/procs": 2870.5}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30098.595122, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 540344808.0, "Total blocks": 201807815.0, "Ops per second": 17952492.66, "ns per ops": 55.7, "Ops per threads": 2814295.0, "Ops per procs": 5628591.0, "Ops/sec/procs": 187005.13, "ns per ops/procs": 5347.45}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30051.270839, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 137966971.0, "Total blocks": 68990941.0, "Ops per second": 4591052.8, "ns per ops": 217.81, "Ops per threads": 34491742.0, "Ops per procs": 68983485.0, "Ops/sec/procs": 2295526.4, "ns per ops/procs": 435.63}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185509314.0, "Total blocks": 0.0, "Ops per second": 6179071.87, "ns per ops": 161.84, "Ops per threads": 92754657.0, "Ops per procs": 185509314.0, "Ops/sec/procs": 6179071.87, "ns per ops/procs": 161.84}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30055.58275, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 713156950.0, "Total blocks": 265847951.0, "Ops per second": 23727936.2, "ns per ops": 42.14, "Ops per threads": 7428718.0, "Ops per procs": 14857436.0, "Ops/sec/procs": 494332.0, "ns per ops/procs": 2022.93}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 274149117.0, "Ops per second": 9138303.0, "ns per ops": 109.0, "Ops per threads": 1903813.0, "Ops per procs": 3807626.0, "Ops/sec/procs": 126920.0, "ns per ops/procs": 7904.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30068.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 267960575.0, "Ops per second": 8911783.98, "ns per ops": 112.21, "Ops per threads": 2791255.0, "Ops per procs": 5582511.0, "Ops/sec/procs": 185662.17, "ns per ops/procs": 5386.13}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 254953061.0, "Ops per second": 8470861.06, "ns per ops": 118.05, "Ops per threads": 5311522.0, "Ops per procs": 10623044.0, "Ops/sec/procs": 352952.54, "ns per ops/procs": 2833.24}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30038.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 157943704.0, "Ops per second": 5257973.29, "ns per ops": 190.19, "Ops per threads": 19742963.0, "Ops per procs": 39485926.0, "Ops/sec/procs": 1314493.32, "ns per ops/procs": 760.75}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 352239693.0, "Total blocks": 169062410.0, "Ops per second": 11737458.09, "ns per ops": 85.2, "Ops per threads": 2446108.0, "Ops per procs": 4892217.0, "Ops/sec/procs": 163020.25, "ns per ops/procs": 6134.21}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30049.340707, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 243576078.0, "Total blocks": 160348462.0, "Ops per second": 8105870.95, "ns per ops": 123.37, "Ops per threads": 121788039.0, "Ops per procs": 243576078.0, "Ops/sec/procs": 8105870.95, "ns per ops/procs": 123.37}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 245790241.0, "Ops per second": 8193008.0, "ns per ops": 122.0, "Ops per threads": 1706876.0, "Ops per procs": 3413753.0, "Ops/sec/procs": 113791.0, "ns per ops/procs": 8816.0}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30046.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 191905646.0, "Ops per second": 6386946.26, "ns per ops": 156.57, "Ops per threads": 11994102.0, "Ops per procs": 23988205.0, "Ops/sec/procs": 798368.28, "ns per ops/procs": 1252.55}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30051.53756, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 150539963.0, "Total blocks": 75265476.0, "Ops per second": 5009393.04, "ns per ops": 199.62, "Ops per threads": 37634990.0, "Ops per procs": 75269981.0, "Ops/sec/procs": 2504696.52, "ns per ops/procs": 399.25}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30040.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 867699325.0, "Ops per second": 28884637.3, "ns per ops": 34.62, "Ops per threads": 3012844.0, "Ops per procs": 6025689.0, "Ops/sec/procs": 200587.76, "ns per ops/procs": 4985.35}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30037.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 728175924.0, "Ops per second": 24242011.46, "ns per ops": 41.25, "Ops per threads": 2528388.0, "Ops per procs": 5056777.0, "Ops/sec/procs": 168347.3, "ns per ops/procs": 5940.1}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30052.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 191436374.0, "Ops per second": 6370128.36, "ns per ops": 156.98, "Ops per threads": 11964773.0, "Ops per procs": 23929546.0, "Ops/sec/procs": 796266.05, "ns per ops/procs": 1255.86}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30049.492132, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 273415867.0, "Total blocks": 154332998.0, "Ops per second": 9098851.51, "ns per ops": 109.9, "Ops per threads": 136707933.0, "Ops per procs": 273415867.0, "Ops/sec/procs": 9098851.51, "ns per ops/procs": 109.9}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 105303351.0, "Ops per second": 3510111.0, "ns per ops": 285.0, "Ops per threads": 6581459.0, "Ops per procs": 13162918.0, "Ops/sec/procs": 438763.0, "ns per ops/procs": 2286.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30051.761805, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 147442242.0, "Total blocks": 73720383.0, "Ops per second": 4906276.14, "ns per ops": 203.82, "Ops per threads": 36860560.0, "Ops per procs": 73721121.0, "Ops/sec/procs": 2453138.07, "ns per ops/procs": 407.64}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30078.497321, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 273304038.0, "Total blocks": 78089471.0, "Ops per second": 9086359.44, "ns per ops": 110.06, "Ops per threads": 8540751.0, "Ops per procs": 17081502.0, "Ops/sec/procs": 567897.46, "ns per ops/procs": 1760.88}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 238261740.0, "Total blocks": 111227802.0, "Ops per second": 7935084.84, "ns per ops": 126.02, "Ops per threads": 7445679.0, "Ops per procs": 14891358.0, "Ops/sec/procs": 495942.8, "ns per ops/procs": 2016.36}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30053.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 100482016.0, "Ops per second": 3349400.0, "ns per ops": 299.0, "Ops per threads": 25120504.0, "Ops per procs": 50241008.0, "Ops/sec/procs": 1674700.0, "ns per ops/procs": 598.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30082.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 169419585.0, "Ops per second": 5631882.79, "ns per ops": 177.56, "Ops per threads": 5294362.0, "Ops per procs": 10588724.0, "Ops/sec/procs": 351992.67, "ns per ops/procs": 2840.97}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30017.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 68351878.0, "Ops per second": 2278395.0, "ns per ops": 439.0, "Ops per threads": 17087969.0, "Ops per procs": 34175939.0, "Ops/sec/procs": 1139197.0, "ns per ops/procs": 878.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30091.686863, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 440917138.0, "Total blocks": 171567176.0, "Ops per second": 14652456.67, "ns per ops": 68.25, "Ops per threads": 3061924.0, "Ops per procs": 6123849.0, "Ops/sec/procs": 203506.34, "ns per ops/procs": 4913.85}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30059.8104, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 728288988.0, "Total blocks": 237176503.0, "Ops per second": 24227996.73, "ns per ops": 41.27, "Ops per threads": 7586343.0, "Ops per procs": 15172687.0, "Ops/sec/procs": 504749.93, "ns per ops/procs": 1981.18}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 247162678.0, "Total blocks": 115676204.0, "Ops per second": 8231536.16, "ns per ops": 121.48, "Ops per threads": 7723833.0, "Ops per procs": 15447667.0, "Ops/sec/procs": 514471.01, "ns per ops/procs": 1943.74}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30049.815336, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 230882319.0, "Total blocks": 160169726.0, "Ops per second": 7683319.06, "ns per ops": 130.15, "Ops per threads": 115441159.0, "Ops per procs": 230882319.0, "Ops/sec/procs": 7683319.06, "ns per ops/procs": 130.15}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 519593023.0, "Total blocks": 266180083.0, "Ops per second": 17316507.45, "ns per ops": 57.75, "Ops per threads": 5412427.0, "Ops per procs": 10824854.0, "Ops/sec/procs": 360760.57, "ns per ops/procs": 2771.92}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30019.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 671605805.0, "Ops per second": 22372639.18, "ns per ops": 44.7, "Ops per threads": 1748973.0, "Ops per procs": 3497946.0, "Ops/sec/procs": 116524.16, "ns per ops/procs": 8581.91}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 446395876.0, "Ops per second": 14879862.0, "ns per ops": 67.0, "Ops per threads": 1549985.0, "Ops per procs": 3099971.0, "Ops/sec/procs": 103332.0, "ns per ops/procs": 9709.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 158605013.0, "Ops per second": 5286833.0, "ns per ops": 189.0, "Ops per threads": 79302506.0, "Ops per procs": 158605013.0, "Ops/sec/procs": 5286833.0, "ns per ops/procs": 189.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 445709525.0, "Ops per second": 14856984.0, "ns per ops": 67.0, "Ops per threads": 1547602.0, "Ops per procs": 3095205.0, "Ops/sec/procs": 103173.0, "ns per ops/procs": 9723.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 260731401.0, "Ops per second": 8691046.0, "ns per ops": 115.0, "Ops per threads": 1810634.0, "Ops per procs": 3621269.0, "Ops/sec/procs": 120708.0, "ns per ops/procs": 8311.0}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30032.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 704206673.0, "Ops per second": 23448492.7, "ns per ops": 42.65, "Ops per threads": 2445162.0, "Ops per procs": 4890324.0, "Ops/sec/procs": 162836.75, "ns per ops/procs": 6141.12}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30072.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 177106202.0, "Ops per second": 5889248.52, "ns per ops": 169.8, "Ops per threads": 5534568.0, "Ops per procs": 11069137.0, "Ops/sec/procs": 368078.03, "ns per ops/procs": 2716.82}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30010.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 361952237.0, "Total blocks": 174861965.0, "Ops per second": 12061052.94, "ns per ops": 82.91, "Ops per threads": 2513557.0, "Ops per procs": 5027114.0, "Ops/sec/procs": 167514.62, "ns per ops/procs": 5969.63}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 438818157.0, "Ops per second": 14627271.0, "ns per ops": 68.0, "Ops per threads": 1523674.0, "Ops per procs": 3047348.0, "Ops/sec/procs": 101578.0, "ns per ops/procs": 9876.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30051.946389, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 154466339.0, "Total blocks": 77230438.0, "Ops per second": 5139977.86, "ns per ops": 194.55, "Ops per threads": 38616584.0, "Ops per procs": 77233169.0, "Ops/sec/procs": 2569988.93, "ns per ops/procs": 389.11}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 126474483.0, "Total blocks": 74374137.0, "Ops per second": 4212359.02, "ns per ops": 237.4, "Ops per threads": 15809310.0, "Ops per procs": 31618620.0, "Ops/sec/procs": 1053089.76, "ns per ops/procs": 949.59}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 253301374.0, "Ops per second": 8442888.52, "ns per ops": 118.44, "Ops per threads": 5277111.0, "Ops per procs": 10554223.0, "Ops/sec/procs": 351787.02, "ns per ops/procs": 2842.63}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 347395314.0, "Total blocks": 168992423.0, "Ops per second": 11576025.41, "ns per ops": 86.39, "Ops per threads": 2412467.0, "Ops per procs": 4824934.0, "Ops/sec/procs": 160778.13, "ns per ops/procs": 6219.75}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30024.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 146990739.0, "Total blocks": 76848705.0, "Ops per second": 4895680.79, "ns per ops": 204.26, "Ops per threads": 9186921.0, "Ops per procs": 18373842.0, "Ops/sec/procs": 611960.1, "ns per ops/procs": 1634.09}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30034.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 158094179.0, "Ops per second": 5263733.92, "ns per ops": 189.98, "Ops per threads": 19761772.0, "Ops per procs": 39523544.0, "Ops/sec/procs": 1315933.48, "ns per ops/procs": 759.92}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30061.98324, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 192133048.0, "Total blocks": 66150644.0, "Ops per second": 6391229.96, "ns per ops": 156.46, "Ops per threads": 12008315.0, "Ops per procs": 24016631.0, "Ops/sec/procs": 798903.75, "ns per ops/procs": 1251.72}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 308840600.0, "Ops per second": 10294686.0, "ns per ops": 97.0, "Ops per threads": 1608544.0, "Ops per procs": 3217089.0, "Ops/sec/procs": 107236.0, "ns per ops/procs": 9355.0}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30100.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 258269118.0, "Ops per second": 8580206.59, "ns per ops": 116.55, "Ops per threads": 5380606.0, "Ops per procs": 10761213.0, "Ops/sec/procs": 357508.61, "ns per ops/procs": 2797.14}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30049.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 189511799.0, "Ops per second": 6306686.94, "ns per ops": 158.56, "Ops per threads": 11844487.0, "Ops per procs": 23688974.0, "Ops/sec/procs": 788335.87, "ns per ops/procs": 1268.49}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 371655522.0, "Ops per second": 12388517.0, "ns per ops": 80.0, "Ops per threads": 3871411.0, "Ops per procs": 7742823.0, "Ops/sec/procs": 258094.0, "ns per ops/procs": 3887.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30078.03988, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 281880990.0, "Total blocks": 107502466.0, "Ops per second": 9371654.24, "ns per ops": 106.7, "Ops per threads": 8808780.0, "Ops per procs": 17617561.0, "Ops/sec/procs": 585728.39, "ns per ops/procs": 1707.28}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185561918.0, "Total blocks": 0.0, "Ops per second": 6180815.29, "ns per ops": 161.79, "Ops per threads": 92780959.0, "Ops per procs": 185561918.0, "Ops/sec/procs": 6180815.29, "ns per ops/procs": 161.79}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 338122035.0, "Total blocks": 164816713.0, "Ops per second": 11267059.37, "ns per ops": 88.75, "Ops per threads": 2348069.0, "Ops per procs": 4696139.0, "Ops/sec/procs": 156486.94, "ns per ops/procs": 6390.31}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30033.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 693344026.0, "Ops per second": 23085580.97, "ns per ops": 43.32, "Ops per threads": 2407444.0, "Ops per procs": 4814889.0, "Ops/sec/procs": 160316.53, "ns per ops/procs": 6237.66}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30056.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 259545703.0, "Ops per second": 8635244.66, "ns per ops": 115.8, "Ops per threads": 1351800.0, "Ops per procs": 2703601.0, "Ops/sec/procs": 89950.47, "ns per ops/procs": 11117.23}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 244810539.0, "Total blocks": 114825794.0, "Ops per second": 8153156.44, "ns per ops": 122.65, "Ops per threads": 7650329.0, "Ops per procs": 15300658.0, "Ops/sec/procs": 509572.28, "ns per ops/procs": 1962.43}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30019.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 116415339.0, "Ops per second": 3878031.55, "ns per ops": 257.86, "Ops per threads": 29103834.0, "Ops per procs": 58207669.0, "Ops/sec/procs": 1939015.77, "ns per ops/procs": 515.73}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30041.4376, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 540223809.0, "Total blocks": 204007693.0, "Ops per second": 17982621.74, "ns per ops": 55.61, "Ops per threads": 1875777.0, "Ops per procs": 3751554.0, "Ops/sec/procs": 124879.32, "ns per ops/procs": 8007.73}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 563079906.0, "Ops per second": 18769330.0, "ns per ops": 53.0, "Ops per threads": 1466353.0, "Ops per procs": 2932707.0, "Ops/sec/procs": 97756.0, "ns per ops/procs": 10262.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30015.932531, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 529720257.0, "Total blocks": 193768461.0, "Ops per second": 17647969.34, "ns per ops": 56.66, "Ops per threads": 2758959.0, "Ops per procs": 5517919.0, "Ops/sec/procs": 183833.01, "ns per ops/procs": 5439.72}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185571126.0, "Total blocks": 0.0, "Ops per second": 6181120.2, "ns per ops": 161.78, "Ops per threads": 92785563.0, "Ops per procs": 185571126.0, "Ops/sec/procs": 6181120.2, "ns per ops/procs": 161.78}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30078.777626, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 269519322.0, "Total blocks": 116430610.0, "Ops per second": 8960447.97, "ns per ops": 111.6, "Ops per threads": 8422478.0, "Ops per procs": 16844957.0, "Ops/sec/procs": 560028.0, "ns per ops/procs": 1785.63}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30051.679131, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 132781895.0, "Total blocks": 66388407.0, "Ops per second": 4418451.78, "ns per ops": 226.32, "Ops per threads": 33195473.0, "Ops per procs": 66390947.0, "Ops/sec/procs": 2209225.89, "ns per ops/procs": 452.65}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30054.50309, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 175016995.0, "Total blocks": 43749935.0, "Ops per second": 5823320.2, "ns per ops": 171.72, "Ops per threads": 21877124.0, "Ops per procs": 43754248.0, "Ops/sec/procs": 1455830.05, "ns per ops/procs": 686.89}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30013.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 658925977.0, "Total blocks": 291397174.0, "Ops per second": 21954241.67, "ns per ops": 45.55, "Ops per threads": 1715953.0, "Ops per procs": 3431906.0, "Ops/sec/procs": 114345.01, "ns per ops/procs": 8745.46}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30055.88954, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 143538197.0, "Total blocks": 68301035.0, "Ops per second": 4775709.49, "ns per ops": 209.39, "Ops per threads": 17942274.0, "Ops per procs": 35884549.0, "Ops/sec/procs": 1193927.37, "ns per ops/procs": 837.57}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30035.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 257861722.0, "Ops per second": 8585148.62, "ns per ops": 116.48, "Ops per threads": 1790706.0, "Ops per procs": 3581412.0, "Ops/sec/procs": 119238.18, "ns per ops/procs": 8386.58}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30020.941569, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 349720185.0, "Total blocks": 133122230.0, "Ops per second": 11649207.74, "ns per ops": 85.84, "Ops per threads": 7285837.0, "Ops per procs": 14571674.0, "Ops/sec/procs": 485383.66, "ns per ops/procs": 2060.23}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30034.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 657420134.0, "Ops per second": 21889058.67, "ns per ops": 45.68, "Ops per threads": 2282708.0, "Ops per procs": 4565417.0, "Ops/sec/procs": 152007.35, "ns per ops/procs": 6578.63}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30025.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 147771629.0, "Total blocks": 77295843.0, "Ops per second": 4921580.23, "ns per ops": 203.19, "Ops per threads": 9235726.0, "Ops per procs": 18471453.0, "Ops/sec/procs": 615197.53, "ns per ops/procs": 1625.49}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30021.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 502066050.0, "Ops per second": 16723717.06, "ns per ops": 59.8, "Ops per threads": 1307463.0, "Ops per procs": 2614927.0, "Ops/sec/procs": 87102.69, "ns per ops/procs": 11480.7}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30065.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 253794542.0, "Ops per second": 8441317.37, "ns per ops": 118.46, "Ops per threads": 1321846.0, "Ops per procs": 2643693.0, "Ops/sec/procs": 87930.39, "ns per ops/procs": 11372.63}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 79359758.0, "Total blocks": 39676714.0, "Ops per second": 2643229.46, "ns per ops": 378.33, "Ops per threads": 19839939.0, "Ops per procs": 39679879.0, "Ops/sec/procs": 1321614.73, "ns per ops/procs": 756.65}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30072.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 101362026.0, "Ops per second": 3378734.0, "ns per ops": 296.0, "Ops per threads": 25340506.0, "Ops per procs": 50681013.0, "Ops/sec/procs": 1689367.0, "ns per ops/procs": 593.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 157531477.0, "Ops per second": 5251049.0, "ns per ops": 191.0, "Ops per threads": 78765738.0, "Ops per procs": 157531477.0, "Ops/sec/procs": 5251049.0, "ns per ops/procs": 191.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 282192163.0, "Total blocks": 141776753.0, "Ops per second": 9405107.44, "ns per ops": 106.33, "Ops per threads": 5879003.0, "Ops per procs": 11758006.0, "Ops/sec/procs": 391879.48, "ns per ops/procs": 2551.81}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30023.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 147423663.0, "Total blocks": 75549263.0, "Ops per second": 4910215.3, "ns per ops": 203.66, "Ops per threads": 9213978.0, "Ops per procs": 18427957.0, "Ops/sec/procs": 613776.91, "ns per ops/procs": 1629.26}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30056.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 190200348.0, "Ops per second": 6328039.28, "ns per ops": 158.03, "Ops per threads": 11887521.0, "Ops per procs": 23775043.0, "Ops/sec/procs": 791004.91, "ns per ops/procs": 1264.21}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30052.05826, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 139718243.0, "Total blocks": 69867193.0, "Ops per second": 4649207.11, "ns per ops": 215.09, "Ops per threads": 34929560.0, "Ops per procs": 69859121.0, "Ops/sec/procs": 2324603.56, "ns per ops/procs": 430.18}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 312562934.0, "Ops per second": 10418764.0, "ns per ops": 96.0, "Ops per threads": 1627931.0, "Ops per procs": 3255863.0, "Ops/sec/procs": 108528.0, "ns per ops/procs": 9244.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30057.351552, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 516853333.0, "Total blocks": 198544897.0, "Ops per second": 17195571.34, "ns per ops": 58.15, "Ops per threads": 2691944.0, "Ops per procs": 5383888.0, "Ops/sec/procs": 179120.53, "ns per ops/procs": 5582.83}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 79350800.0, "Total blocks": 39672918.0, "Ops per second": 2642925.22, "ns per ops": 378.37, "Ops per threads": 19837700.0, "Ops per procs": 39675400.0, "Ops/sec/procs": 1321462.61, "ns per ops/procs": 756.74}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30011.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 599216694.0, "Total blocks": 303708310.0, "Ops per second": 19966303.23, "ns per ops": 50.08, "Ops per threads": 2080613.0, "Ops per procs": 4161227.0, "Ops/sec/procs": 138654.88, "ns per ops/procs": 7212.15}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30015.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 73371418.0, "Ops per second": 2445713.0, "ns per ops": 409.0, "Ops per threads": 9171427.0, "Ops per procs": 18342854.0, "Ops/sec/procs": 611428.0, "ns per ops/procs": 1636.0}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30051.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 189354709.0, "Ops per second": 6301066.66, "ns per ops": 158.7, "Ops per threads": 11834669.0, "Ops per procs": 23669338.0, "Ops/sec/procs": 787633.33, "ns per ops/procs": 1269.63}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 481223885.0, "Total blocks": 247951835.0, "Ops per second": 16037759.21, "ns per ops": 62.35, "Ops per threads": 5012748.0, "Ops per procs": 10025497.0, "Ops/sec/procs": 334119.98, "ns per ops/procs": 2992.94}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30021.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 119308540.0, "Ops per second": 3974132.9, "ns per ops": 251.63, "Ops per threads": 29827135.0, "Ops per procs": 59654270.0, "Ops/sec/procs": 1987066.45, "ns per ops/procs": 503.25}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30035.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 261679688.0, "Ops per second": 8712375.85, "ns per ops": 114.78, "Ops per threads": 1817220.0, "Ops per procs": 3634440.0, "Ops/sec/procs": 121005.22, "ns per ops/procs": 8264.11}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 78698258.0, "Total blocks": 39346660.0, "Ops per second": 2621197.02, "ns per ops": 381.51, "Ops per threads": 19674564.0, "Ops per procs": 39349129.0, "Ops/sec/procs": 1310598.51, "ns per ops/procs": 763.01}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 369000859.0, "Ops per second": 12300028.0, "ns per ops": 81.0, "Ops per threads": 3843758.0, "Ops per procs": 7687517.0, "Ops/sec/procs": 256250.0, "ns per ops/procs": 3915.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30012.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 666117165.0, "Total blocks": 295282349.0, "Ops per second": 22194344.42, "ns per ops": 45.06, "Ops per threads": 1734680.0, "Ops per procs": 3469360.0, "Ops/sec/procs": 115595.54, "ns per ops/procs": 8650.85}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30050.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 191514046.0, "Ops per second": 6373144.76, "ns per ops": 156.91, "Ops per threads": 11969627.0, "Ops per procs": 23939255.0, "Ops/sec/procs": 796643.09, "ns per ops/procs": 1255.27}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30085.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 168145352.0, "Ops per second": 5588916.05, "ns per ops": 178.93, "Ops per threads": 5254542.0, "Ops per procs": 10509084.0, "Ops/sec/procs": 349307.25, "ns per ops/procs": 2862.81}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 158420823.0, "Ops per second": 5280694.0, "ns per ops": 189.0, "Ops per threads": 79210411.0, "Ops per procs": 158420823.0, "Ops/sec/procs": 5280694.0, "ns per ops/procs": 189.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30036.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 157828282.0, "Ops per second": 5254630.49, "ns per ops": 190.31, "Ops per threads": 19728535.0, "Ops per procs": 39457070.0, "Ops/sec/procs": 1313657.62, "ns per ops/procs": 761.23}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30021.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 116411836.0, "Ops per second": 3877650.71, "ns per ops": 257.89, "Ops per threads": 29102959.0, "Ops per procs": 58205918.0, "Ops/sec/procs": 1938825.35, "ns per ops/procs": 515.78}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30010.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 600094277.0, "Total blocks": 300660683.0, "Ops per second": 19996083.26, "ns per ops": 50.01, "Ops per threads": 2083660.0, "Ops per procs": 4167321.0, "Ops/sec/procs": 138861.69, "ns per ops/procs": 7201.41}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30081.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 103504165.0, "Ops per second": 3450138.0, "ns per ops": 290.0, "Ops per threads": 25876041.0, "Ops per procs": 51752082.0, "Ops/sec/procs": 1725069.0, "ns per ops/procs": 581.0}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30075.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 247798870.0, "Ops per second": 8239356.02, "ns per ops": 121.37, "Ops per threads": 1290619.0, "Ops per procs": 2581238.0, "Ops/sec/procs": 85826.63, "ns per ops/procs": 11651.4}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30051.907037, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 129193837.0, "Total blocks": 64597791.0, "Ops per second": 4299022.92, "ns per ops": 232.61, "Ops per threads": 32298459.0, "Ops per procs": 64596918.0, "Ops/sec/procs": 2149511.46, "ns per ops/procs": 465.22}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 512760119.0, "Total blocks": 265133630.0, "Ops per second": 17088723.95, "ns per ops": 58.52, "Ops per threads": 5341251.0, "Ops per procs": 10682502.0, "Ops/sec/procs": 356015.08, "ns per ops/procs": 2808.87}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 361868477.0, "Total blocks": 174763186.0, "Ops per second": 12058375.49, "ns per ops": 82.93, "Ops per threads": 2512975.0, "Ops per procs": 5025951.0, "Ops/sec/procs": 167477.44, "ns per ops/procs": 5970.95}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30019.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 116717842.0, "Ops per second": 3888032.86, "ns per ops": 257.2, "Ops per threads": 29179460.0, "Ops per procs": 58358921.0, "Ops/sec/procs": 1944016.43, "ns per ops/procs": 514.4}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 278794871.0, "Ops per second": 9293162.0, "ns per ops": 107.0, "Ops per threads": 1452056.0, "Ops per procs": 2904113.0, "Ops/sec/procs": 96803.0, "ns per ops/procs": 10363.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30021.958019, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 529808349.0, "Total blocks": 200578491.0, "Ops per second": 17647361.6, "ns per ops": 56.67, "Ops per threads": 2759418.0, "Ops per procs": 5518836.0, "Ops/sec/procs": 183826.68, "ns per ops/procs": 5439.91}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30050.237872, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 249654143.0, "Total blocks": 155275097.0, "Ops per second": 8307892.41, "ns per ops": 120.37, "Ops per threads": 124827071.0, "Ops per procs": 249654143.0, "Ops/sec/procs": 8307892.41, "ns per ops/procs": 120.37}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30049.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 248511471.0, "Ops per second": 8270157.72, "ns per ops": 120.92, "Ops per threads": 1294330.0, "Ops per procs": 2588661.0, "Ops/sec/procs": 86147.48, "ns per ops/procs": 11608.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30006.802521, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 516601213.0, "Total blocks": 195474549.0, "Ops per second": 17216136.66, "ns per ops": 58.09, "Ops per threads": 1793754.0, "Ops per procs": 3587508.0, "Ops/sec/procs": 119556.5, "ns per ops/procs": 8364.25}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30021.617773, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 353052242.0, "Total blocks": 127533506.0, "Ops per second": 11759933.95, "ns per ops": 85.03, "Ops per threads": 7355255.0, "Ops per procs": 14710510.0, "Ops/sec/procs": 489997.25, "ns per ops/procs": 2040.83}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30019.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 245302441.0, "Ops per second": 8171523.27, "ns per ops": 122.38, "Ops per threads": 122651220.0, "Ops per procs": 245302441.0, "Ops/sec/procs": 8171523.27, "ns per ops/procs": 122.38}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 477078721.0, "Total blocks": 245958480.0, "Ops per second": 15899611.06, "ns per ops": 62.89, "Ops per threads": 4969570.0, "Ops per procs": 9939140.0, "Ops/sec/procs": 331241.9, "ns per ops/procs": 3018.94}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30094.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 256763448.0, "Ops per second": 8531969.58, "ns per ops": 117.21, "Ops per threads": 5349238.0, "Ops per procs": 10698477.0, "Ops/sec/procs": 355498.73, "ns per ops/procs": 2812.95}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30025.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 159305431.0, "Total blocks": 80884378.0, "Ops per second": 5305720.05, "ns per ops": 188.48, "Ops per threads": 9956589.0, "Ops per procs": 19913178.0, "Ops/sec/procs": 663215.01, "ns per ops/procs": 1507.81}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30078.740385, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 272381901.0, "Total blocks": 119722741.0, "Ops per second": 9055628.58, "ns per ops": 110.43, "Ops per threads": 8511934.0, "Ops per procs": 17023868.0, "Ops/sec/procs": 565976.79, "ns per ops/procs": 1766.86}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30075.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 169415070.0, "Ops per second": 5633054.87, "ns per ops": 177.52, "Ops per threads": 5294220.0, "Ops per procs": 10588441.0, "Ops/sec/procs": 352065.93, "ns per ops/procs": 2840.38}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30038.411671, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 527714874.0, "Total blocks": 196574990.0, "Ops per second": 17568001.92, "ns per ops": 56.92, "Ops per threads": 1832343.0, "Ops per procs": 3664686.0, "Ops/sec/procs": 122000.01, "ns per ops/procs": 8196.72}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 110704840.0, "Total blocks": 64501538.0, "Ops per second": 3687149.39, "ns per ops": 271.21, "Ops per threads": 13838105.0, "Ops per procs": 27676210.0, "Ops/sec/procs": 921787.35, "ns per ops/procs": 1084.85}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 322266970.0, "Ops per second": 10742232.0, "ns per ops": 93.0, "Ops per threads": 1678473.0, "Ops per procs": 3356947.0, "Ops/sec/procs": 111898.0, "ns per ops/procs": 8966.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 300063220.0, "Ops per second": 10002107.0, "ns per ops": 100.0, "Ops per threads": 1562829.0, "Ops per procs": 3125658.0, "Ops/sec/procs": 104188.0, "ns per ops/procs": 9629.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30012.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 607578440.0, "Total blocks": 305993649.0, "Ops per second": 20244437.34, "ns per ops": 49.4, "Ops per threads": 2109647.0, "Ops per procs": 4219294.0, "Ops/sec/procs": 140586.37, "ns per ops/procs": 7113.07}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 568821801.0, "Ops per second": 18960726.0, "ns per ops": 52.0, "Ops per threads": 1481306.0, "Ops per procs": 2962613.0, "Ops/sec/procs": 98753.0, "ns per ops/procs": 10159.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30013.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 668852974.0, "Total blocks": 297638242.0, "Ops per second": 22284909.62, "ns per ops": 44.87, "Ops per threads": 1741804.0, "Ops per procs": 3483609.0, "Ops/sec/procs": 116067.24, "ns per ops/procs": 8615.7}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30024.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 158294977.0, "Total blocks": 80191035.0, "Ops per second": 5272160.92, "ns per ops": 189.68, "Ops per threads": 9893436.0, "Ops per procs": 19786872.0, "Ops/sec/procs": 659020.12, "ns per ops/procs": 1517.4}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30075.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 101280016.0, "Ops per second": 3376000.0, "ns per ops": 296.0, "Ops per threads": 25320004.0, "Ops per procs": 50640008.0, "Ops/sec/procs": 1688000.0, "ns per ops/procs": 593.0}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30017.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 116520424.0, "Ops per second": 3881706.27, "ns per ops": 257.62, "Ops per threads": 29130106.0, "Ops per procs": 58260212.0, "Ops/sec/procs": 1940853.14, "ns per ops/procs": 515.24}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 513239120.0, "Total blocks": 264319429.0, "Ops per second": 17104656.84, "ns per ops": 58.46, "Ops per threads": 5346240.0, "Ops per procs": 10692481.0, "Ops/sec/procs": 356347.02, "ns per ops/procs": 2806.25}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30024.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 159089309.0, "Total blocks": 80713079.0, "Ops per second": 5298620.19, "ns per ops": 188.73, "Ops per threads": 9943081.0, "Ops per procs": 19886163.0, "Ops/sec/procs": 662327.52, "ns per ops/procs": 1509.83}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 376426922.0, "Ops per second": 12547564.0, "ns per ops": 79.0, "Ops per threads": 3921113.0, "Ops per procs": 7842227.0, "Ops/sec/procs": 261407.0, "ns per ops/procs": 3837.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30010.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 604943612.0, "Total blocks": 303633672.0, "Ops per second": 20157813.2, "ns per ops": 49.61, "Ops per threads": 2100498.0, "Ops per procs": 4200997.0, "Ops/sec/procs": 139984.81, "ns per ops/procs": 7143.63}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 75166955.0, "Ops per second": 2505565.0, "ns per ops": 400.0, "Ops per threads": 9395869.0, "Ops per procs": 18791738.0, "Ops/sec/procs": 626391.0, "ns per ops/procs": 1601.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30006.630002, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 522012653.0, "Total blocks": 196421865.0, "Ops per second": 17396577.12, "ns per ops": 57.48, "Ops per threads": 2718815.0, "Ops per procs": 5437631.0, "Ops/sec/procs": 181214.35, "ns per ops/procs": 5518.33}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30018.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 117781450.0, "Ops per second": 3923627.05, "ns per ops": 254.87, "Ops per threads": 29445362.0, "Ops per procs": 58890725.0, "Ops/sec/procs": 1961813.52, "ns per ops/procs": 509.73}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30011.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 665099837.0, "Total blocks": 296726289.0, "Ops per second": 22161200.62, "ns per ops": 45.12, "Ops per threads": 1732030.0, "Ops per procs": 3464061.0, "Ops/sec/procs": 115422.92, "ns per ops/procs": 8663.79}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 230418613.0, "Ops per second": 7680620.0, "ns per ops": 130.0, "Ops per threads": 4800387.0, "Ops per procs": 9600775.0, "Ops/sec/procs": 320025.0, "ns per ops/procs": 3134.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30010.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 599676910.0, "Total blocks": 304544534.0, "Ops per second": 19982002.97, "ns per ops": 50.05, "Ops per threads": 2082211.0, "Ops per procs": 4164422.0, "Ops/sec/procs": 138763.91, "ns per ops/procs": 7206.49}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 310142984.0, "Ops per second": 10338099.0, "ns per ops": 97.0, "Ops per threads": 1615328.0, "Ops per procs": 3230656.0, "Ops/sec/procs": 107688.0, "ns per ops/procs": 9316.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30055.446658, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 154196945.0, "Total blocks": 65888821.0, "Ops per second": 5130416.02, "ns per ops": 194.92, "Ops per threads": 19274618.0, "Ops per procs": 38549236.0, "Ops/sec/procs": 1282604.0, "ns per ops/procs": 779.66}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30061.735291, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 210667783.0, "Total blocks": 82690163.0, "Ops per second": 7007838.4, "ns per ops": 142.7, "Ops per threads": 13166736.0, "Ops per procs": 26333472.0, "Ops/sec/procs": 875979.8, "ns per ops/procs": 1141.58}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185564800.0, "Total blocks": 0.0, "Ops per second": 6180554.69, "ns per ops": 161.8, "Ops per threads": 92782400.0, "Ops per procs": 185564800.0, "Ops/sec/procs": 6180554.69, "ns per ops/procs": 161.8}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30019.820879, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 354123255.0, "Total blocks": 140825384.0, "Ops per second": 11796314.72, "ns per ops": 84.77, "Ops per threads": 7377567.0, "Ops per procs": 14755135.0, "Ops/sec/procs": 491513.11, "ns per ops/procs": 2034.53}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30023.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 447213861.0, "Ops per second": 14895354.82, "ns per ops": 67.14, "Ops per threads": 1164619.0, "Ops per procs": 2329238.0, "Ops/sec/procs": 77579.97, "ns per ops/procs": 12889.92}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 420829725.0, "Total blocks": 205404838.0, "Ops per second": 14023430.7, "ns per ops": 71.31, "Ops per threads": 2191821.0, "Ops per procs": 4383642.0, "Ops/sec/procs": 146077.4, "ns per ops/procs": 6845.69}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 255348491.0, "Ops per second": 8510201.47, "ns per ops": 117.51, "Ops per threads": 5319760.0, "Ops per procs": 10639520.0, "Ops/sec/procs": 354591.73, "ns per ops/procs": 2820.14}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30035.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 257983964.0, "Ops per second": 8589333.15, "ns per ops": 116.42, "Ops per threads": 128991982.0, "Ops per procs": 257983964.0, "Ops/sec/procs": 8589333.15, "ns per ops/procs": 116.42}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30013.991456, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 548923153.0, "Total blocks": 203612709.0, "Ops per second": 18288908.82, "ns per ops": 54.68, "Ops per threads": 2858974.0, "Ops per procs": 5717949.0, "Ops/sec/procs": 190509.47, "ns per ops/procs": 5249.08}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30078.163798, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 269616766.0, "Total blocks": 112353219.0, "Ops per second": 8963870.53, "ns per ops": 111.56, "Ops per threads": 8425523.0, "Ops per procs": 16851047.0, "Ops/sec/procs": 560241.91, "ns per ops/procs": 1784.94}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 415149908.0, "Total blocks": 200877787.0, "Ops per second": 13834072.95, "ns per ops": 72.29, "Ops per threads": 2162239.0, "Ops per procs": 4324478.0, "Ops/sec/procs": 144104.93, "ns per ops/procs": 6939.39}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30022.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 118599975.0, "Ops per second": 3950379.0, "ns per ops": 253.14, "Ops per threads": 29649993.0, "Ops per procs": 59299987.0, "Ops/sec/procs": 1975189.5, "ns per ops/procs": 506.28}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 291745679.0, "Total blocks": 148364546.0, "Ops per second": 9723531.85, "ns per ops": 102.84, "Ops per threads": 6078034.0, "Ops per procs": 12156069.0, "Ops/sec/procs": 405147.16, "ns per ops/procs": 2468.24}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30039.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 270978547.0, "Ops per second": 9020864.73, "ns per ops": 110.85, "Ops per threads": 135489273.0, "Ops per procs": 270978547.0, "Ops/sec/procs": 9020864.73, "ns per ops/procs": 110.85}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 120631529.0, "Total blocks": 71310879.0, "Ops per second": 4017768.07, "ns per ops": 248.89, "Ops per threads": 15078941.0, "Ops per procs": 30157882.0, "Ops/sec/procs": 1004442.02, "ns per ops/procs": 995.58}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30054.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 249821561.0, "Ops per second": 8312208.4, "ns per ops": 120.3, "Ops per threads": 1301153.0, "Ops per procs": 2602307.0, "Ops/sec/procs": 86585.5, "ns per ops/procs": 11549.28}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30067.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 102016330.0, "Ops per second": 3400544.0, "ns per ops": 294.0, "Ops per threads": 25504082.0, "Ops per procs": 51008165.0, "Ops/sec/procs": 1700272.0, "ns per ops/procs": 589.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 241862709.0, "Ops per second": 8062090.0, "ns per ops": 124.0, "Ops per threads": 5038806.0, "Ops per procs": 10077612.0, "Ops/sec/procs": 335920.0, "ns per ops/procs": 2986.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30051.949134, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 139720143.0, "Total blocks": 69771494.0, "Ops per second": 4649287.22, "ns per ops": 215.09, "Ops per threads": 34930035.0, "Ops per procs": 69860071.0, "Ops/sec/procs": 2324643.61, "ns per ops/procs": 430.17}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30024.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 158693693.0, "Total blocks": 80418410.0, "Ops per second": 5285455.66, "ns per ops": 189.2, "Ops per threads": 9918355.0, "Ops per procs": 19836711.0, "Ops/sec/procs": 660681.96, "ns per ops/procs": 1513.59}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 126987341.0, "Total blocks": 74762426.0, "Ops per second": 4229446.55, "ns per ops": 236.44, "Ops per threads": 15873417.0, "Ops per procs": 31746835.0, "Ops/sec/procs": 1057361.64, "ns per ops/procs": 945.75}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 341254473.0, "Total blocks": 166369390.0, "Ops per second": 11371379.0, "ns per ops": 87.94, "Ops per threads": 2369822.0, "Ops per procs": 4739645.0, "Ops/sec/procs": 157935.82, "ns per ops/procs": 6331.69}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30066.345487, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 714522294.0, "Total blocks": 286907776.0, "Ops per second": 23764853.44, "ns per ops": 42.08, "Ops per threads": 7442940.0, "Ops per procs": 14885881.0, "Ops/sec/procs": 495101.11, "ns per ops/procs": 2019.79}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30014.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 669765220.0, "Total blocks": 298034760.0, "Ops per second": 22314427.59, "ns per ops": 44.81, "Ops per threads": 1744180.0, "Ops per procs": 3488360.0, "Ops/sec/procs": 116220.98, "ns per ops/procs": 8604.3}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 345984646.0, "Ops per second": 11532821.0, "ns per ops": 86.0, "Ops per threads": 3604006.0, "Ops per procs": 7208013.0, "Ops/sec/procs": 240267.0, "ns per ops/procs": 4175.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 272967680.0, "Total blocks": 136626309.0, "Ops per second": 9097686.27, "ns per ops": 109.92, "Ops per threads": 5686826.0, "Ops per procs": 11373653.0, "Ops/sec/procs": 379070.26, "ns per ops/procs": 2638.03}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 411291983.0, "Total blocks": 199326817.0, "Ops per second": 13705353.38, "ns per ops": 72.96, "Ops per threads": 2142145.0, "Ops per procs": 4284291.0, "Ops/sec/procs": 142764.1, "ns per ops/procs": 7004.56}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 158612826.0, "Ops per second": 5287094.0, "ns per ops": 189.0, "Ops per threads": 79306413.0, "Ops per procs": 158612826.0, "Ops/sec/procs": 5287094.0, "ns per ops/procs": 189.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 155450280.0, "Ops per second": 5181676.0, "ns per ops": 193.0, "Ops per threads": 4857821.0, "Ops per procs": 9715642.0, "Ops/sec/procs": 323854.0, "ns per ops/procs": 3097.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 65630540.0, "Ops per second": 2187684.0, "ns per ops": 457.0, "Ops per threads": 8203817.0, "Ops per procs": 16407635.0, "Ops/sec/procs": 546921.0, "ns per ops/procs": 1828.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30049.167227, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 266636280.0, "Total blocks": 157126672.0, "Ops per second": 8873333.43, "ns per ops": 112.7, "Ops per threads": 133318140.0, "Ops per procs": 266636280.0, "Ops/sec/procs": 8873333.43, "ns per ops/procs": 112.7}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30055.718459, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 142124899.0, "Total blocks": 61927167.0, "Ops per second": 4728714.08, "ns per ops": 211.47, "Ops per threads": 17765612.0, "Ops per procs": 35531224.0, "Ops/sec/procs": 1182178.52, "ns per ops/procs": 845.9}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 305599354.0, "Ops per second": 10186645.0, "ns per ops": 98.0, "Ops per threads": 1591663.0, "Ops per procs": 3183326.0, "Ops/sec/procs": 106110.0, "ns per ops/procs": 9454.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30050.308809, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 224124757.0, "Total blocks": 163762141.0, "Ops per second": 7458317.93, "ns per ops": 134.08, "Ops per threads": 112062378.0, "Ops per procs": 224124757.0, "Ops/sec/procs": 7458317.93, "ns per ops/procs": 134.08}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30026.071101, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 579551050.0, "Total blocks": 215502769.0, "Ops per second": 19301594.54, "ns per ops": 51.81, "Ops per threads": 2012330.0, "Ops per procs": 4024660.0, "Ops/sec/procs": 134038.85, "ns per ops/procs": 7460.52}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 545899340.0, "Ops per second": 18196644.0, "ns per ops": 55.0, "Ops per threads": 1421612.0, "Ops per procs": 2843225.0, "Ops/sec/procs": 94774.0, "ns per ops/procs": 10585.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30060.737587, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 186769984.0, "Total blocks": 85833927.0, "Ops per second": 6213087.2, "ns per ops": 160.95, "Ops per threads": 11673124.0, "Ops per procs": 23346248.0, "Ops/sec/procs": 776635.9, "ns per ops/procs": 1287.6}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 346410451.0, "Total blocks": 166295117.0, "Ops per second": 11543234.13, "ns per ops": 86.63, "Ops per threads": 2405628.0, "Ops per procs": 4811256.0, "Ops/sec/procs": 160322.7, "ns per ops/procs": 6237.42}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 307430585.0, "Ops per second": 10247686.0, "ns per ops": 97.0, "Ops per threads": 1601200.0, "Ops per procs": 3202401.0, "Ops/sec/procs": 106746.0, "ns per ops/procs": 9398.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30060.248663, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 200998377.0, "Total blocks": 61504160.0, "Ops per second": 6686517.44, "ns per ops": 149.55, "Ops per threads": 12562398.0, "Ops per procs": 25124797.0, "Ops/sec/procs": 835814.68, "ns per ops/procs": 1196.44}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30061.256364, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 439474343.0, "Total blocks": 143711516.0, "Ops per second": 14619293.94, "ns per ops": 68.4, "Ops per threads": 3051905.0, "Ops per procs": 6103810.0, "Ops/sec/procs": 203045.75, "ns per ops/procs": 4925.0}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30014.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 254619178.0, "Ops per second": 8483100.17, "ns per ops": 117.88, "Ops per threads": 5304566.0, "Ops per procs": 10609132.0, "Ops/sec/procs": 353462.51, "ns per ops/procs": 2829.15}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 111961309.0, "Total blocks": 65642269.0, "Ops per second": 3728984.45, "ns per ops": 268.17, "Ops per threads": 13995163.0, "Ops per procs": 27990327.0, "Ops/sec/procs": 932246.11, "ns per ops/procs": 1072.68}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30011.53254, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 596225133.0, "Total blocks": 217593923.0, "Ops per second": 19866534.05, "ns per ops": 50.34, "Ops per threads": 2070226.0, "Ops per procs": 4140452.0, "Ops/sec/procs": 137962.04, "ns per ops/procs": 7248.37}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 286107034.0, "Ops per second": 9536901.0, "ns per ops": 105.0, "Ops per threads": 1490140.0, "Ops per procs": 2980281.0, "Ops/sec/procs": 99342.0, "ns per ops/procs": 10099.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30013.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 660780992.0, "Total blocks": 293434838.0, "Ops per second": 22015858.11, "ns per ops": 45.42, "Ops per threads": 1720783.0, "Ops per procs": 3441567.0, "Ops/sec/procs": 114665.93, "ns per ops/procs": 8720.99}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30018.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 116424863.0, "Ops per second": 3878452.94, "ns per ops": 257.83, "Ops per threads": 29106215.0, "Ops per procs": 58212431.0, "Ops/sec/procs": 1939226.47, "ns per ops/procs": 515.67}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30071.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 98714865.0, "Ops per second": 3290495.0, "ns per ops": 304.0, "Ops per threads": 24678716.0, "Ops per procs": 49357432.0, "Ops/sec/procs": 1645247.0, "ns per ops/procs": 609.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185568007.0, "Total blocks": 0.0, "Ops per second": 6181031.15, "ns per ops": 161.79, "Ops per threads": 92784003.0, "Ops per procs": 185568007.0, "Ops/sec/procs": 6181031.15, "ns per ops/procs": 161.79}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 149946554.0, "Ops per second": 4998218.0, "ns per ops": 200.0, "Ops per threads": 4685829.0, "Ops per procs": 9371659.0, "Ops/sec/procs": 312388.0, "ns per ops/procs": 3211.0}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30018.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 117150968.0, "Ops per second": 3902664.8, "ns per ops": 256.24, "Ops per threads": 29287742.0, "Ops per procs": 58575484.0, "Ops/sec/procs": 1951332.4, "ns per ops/procs": 512.47}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30009.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 606396339.0, "Total blocks": 309724989.0, "Ops per second": 20206976.09, "ns per ops": 49.49, "Ops per threads": 2105542.0, "Ops per procs": 4211085.0, "Ops/sec/procs": 140326.22, "ns per ops/procs": 7126.25}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 157736670.0, "Ops per second": 5257889.0, "ns per ops": 190.0, "Ops per threads": 78868335.0, "Ops per procs": 157736670.0, "Ops/sec/procs": 5257889.0, "ns per ops/procs": 190.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 569617383.0, "Ops per second": 18987246.0, "ns per ops": 52.0, "Ops per threads": 1483378.0, "Ops per procs": 2966757.0, "Ops/sec/procs": 98891.0, "ns per ops/procs": 10144.0}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30019.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 118611942.0, "Ops per second": 3951138.37, "ns per ops": 253.09, "Ops per threads": 29652985.0, "Ops per procs": 59305971.0, "Ops/sec/procs": 1975569.19, "ns per ops/procs": 506.18}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30011.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 595458606.0, "Total blocks": 298999866.0, "Ops per second": 19840971.66, "ns per ops": 50.4, "Ops per threads": 2067564.0, "Ops per procs": 4135129.0, "Ops/sec/procs": 137784.53, "ns per ops/procs": 7257.71}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 315400922.0, "Ops per second": 10513364.0, "ns per ops": 95.0, "Ops per threads": 1642713.0, "Ops per procs": 3285426.0, "Ops/sec/procs": 109514.0, "ns per ops/procs": 9161.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30056.007223, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 675969619.0, "Total blocks": 255661765.0, "Ops per second": 22490333.26, "ns per ops": 44.46, "Ops per threads": 7041350.0, "Ops per procs": 14082700.0, "Ops/sec/procs": 468548.61, "ns per ops/procs": 2134.25}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 106655276.0, "Ops per second": 3555175.0, "ns per ops": 282.0, "Ops per threads": 6665954.0, "Ops per procs": 13331909.0, "Ops/sec/procs": 444396.0, "ns per ops/procs": 2257.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 284705075.0, "Ops per second": 9490169.0, "ns per ops": 105.0, "Ops per threads": 1977118.0, "Ops per procs": 3954237.0, "Ops/sec/procs": 131807.0, "ns per ops/procs": 7611.0}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30093.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 264308320.0, "Ops per second": 8783013.59, "ns per ops": 113.86, "Ops per threads": 1376605.0, "Ops per procs": 2753211.0, "Ops/sec/procs": 91489.72, "ns per ops/procs": 10930.19}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 431097173.0, "Ops per second": 14369905.0, "ns per ops": 69.0, "Ops per threads": 1496865.0, "Ops per procs": 2993730.0, "Ops/sec/procs": 99791.0, "ns per ops/procs": 10053.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30050.333243, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 602022569.0, "Total blocks": 220864239.0, "Ops per second": 20033806.75, "ns per ops": 49.92, "Ops per threads": 1567767.0, "Ops per procs": 3135534.0, "Ops/sec/procs": 104342.74, "ns per ops/procs": 9583.8}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30018.624165, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 354631953.0, "Total blocks": 145554714.0, "Ops per second": 11813731.07, "ns per ops": 84.65, "Ops per threads": 7388165.0, "Ops per procs": 14776331.0, "Ops/sec/procs": 492238.79, "ns per ops/procs": 2031.53}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 157744467.0, "Ops per second": 5258148.0, "ns per ops": 190.0, "Ops per threads": 78872233.0, "Ops per procs": 157744467.0, "Ops/sec/procs": 5258148.0, "ns per ops/procs": 190.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30066.598677, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 621378593.0, "Total blocks": 249007271.0, "Ops per second": 20666740.51, "ns per ops": 48.39, "Ops per threads": 6472693.0, "Ops per procs": 12945387.0, "Ops/sec/procs": 430557.09, "ns per ops/procs": 2322.57}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30018.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 365587943.0, "Ops per second": 12178843.41, "ns per ops": 82.11, "Ops per threads": 952051.0, "Ops per procs": 1904103.0, "Ops/sec/procs": 63431.48, "ns per ops/procs": 15765.04}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30034.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 158482440.0, "Ops per second": 5276693.55, "ns per ops": 189.51, "Ops per threads": 19810305.0, "Ops per procs": 39620610.0, "Ops/sec/procs": 1319173.39, "ns per ops/procs": 758.05}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 156269254.0, "Ops per second": 5208975.0, "ns per ops": 192.0, "Ops per threads": 4883414.0, "Ops per procs": 9766828.0, "Ops/sec/procs": 325560.0, "ns per ops/procs": 3081.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 122004565.0, "Total blocks": 72431782.0, "Ops per second": 4063537.87, "ns per ops": 246.09, "Ops per threads": 15250570.0, "Ops per procs": 30501141.0, "Ops/sec/procs": 1015884.47, "ns per ops/procs": 984.36}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 339147386.0, "Ops per second": 11304912.0, "ns per ops": 88.0, "Ops per threads": 3532785.0, "Ops per procs": 7065570.0, "Ops/sec/procs": 235519.0, "ns per ops/procs": 4259.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30078.972851, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 273753167.0, "Total blocks": 119192950.0, "Ops per second": 9101147.45, "ns per ops": 109.88, "Ops per threads": 8554786.0, "Ops per procs": 17109572.0, "Ops/sec/procs": 568821.72, "ns per ops/procs": 1758.02}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30014.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 254103259.0, "Ops per second": 8465923.58, "ns per ops": 118.12, "Ops per threads": 5293817.0, "Ops per procs": 10587635.0, "Ops/sec/procs": 352746.82, "ns per ops/procs": 2834.89}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 562877512.0, "Ops per second": 18762583.0, "ns per ops": 53.0, "Ops per threads": 1465826.0, "Ops per procs": 2931653.0, "Ops/sec/procs": 97721.0, "ns per ops/procs": 10266.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30013.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 657648945.0, "Total blocks": 290825406.0, "Ops per second": 21911561.11, "ns per ops": 45.64, "Ops per threads": 1712627.0, "Ops per procs": 3425254.0, "Ops/sec/procs": 114122.71, "ns per ops/procs": 8762.5}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30021.007919, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 361150419.0, "Total blocks": 124173901.0, "Ops per second": 12029923.18, "ns per ops": 83.13, "Ops per threads": 7523967.0, "Ops per procs": 15047934.0, "Ops/sec/procs": 501246.8, "ns per ops/procs": 1995.03}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 103487878.0, "Ops per second": 3449595.0, "ns per ops": 290.0, "Ops per threads": 6467992.0, "Ops per procs": 12935984.0, "Ops/sec/procs": 431199.0, "ns per ops/procs": 2326.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30021.674448, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 530370080.0, "Total blocks": 190775184.0, "Ops per second": 17666239.13, "ns per ops": 56.61, "Ops per threads": 2762344.0, "Ops per procs": 5524688.0, "Ops/sec/procs": 184023.32, "ns per ops/procs": 5434.09}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30031.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 159475213.0, "Ops per second": 5310209.33, "ns per ops": 188.32, "Ops per threads": 19934401.0, "Ops per procs": 39868803.0, "Ops/sec/procs": 1327552.33, "ns per ops/procs": 753.27}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30031.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 605513924.0, "Ops per second": 20162722.75, "ns per ops": 49.6, "Ops per threads": 1576859.0, "Ops per procs": 3153718.0, "Ops/sec/procs": 105014.18, "ns per ops/procs": 9522.52}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 296899834.0, "Total blocks": 148345683.0, "Ops per second": 9895301.15, "ns per ops": 101.06, "Ops per threads": 6185413.0, "Ops per procs": 12370826.0, "Ops/sec/procs": 412304.21, "ns per ops/procs": 2425.39}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30024.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 146756791.0, "Total blocks": 76785062.0, "Ops per second": 4887945.62, "ns per ops": 204.58, "Ops per threads": 9172299.0, "Ops per procs": 18344598.0, "Ops/sec/procs": 610993.2, "ns per ops/procs": 1636.68}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30021.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 596792246.0, "Ops per second": 19878771.82, "ns per ops": 50.3, "Ops per threads": 1554146.0, "Ops per procs": 3108292.0, "Ops/sec/procs": 103535.27, "ns per ops/procs": 9658.54}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30098.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 428567906.0, "Ops per second": 14285596.0, "ns per ops": 70.0, "Ops per threads": 1488083.0, "Ops per procs": 2976166.0, "Ops/sec/procs": 99205.0, "ns per ops/procs": 10113.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30061.734537, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 209632702.0, "Total blocks": 70634694.0, "Ops per second": 6973406.73, "ns per ops": 143.4, "Ops per threads": 13102043.0, "Ops per procs": 26204087.0, "Ops/sec/procs": 871675.84, "ns per ops/procs": 1147.22}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 158592472.0, "Ops per second": 5286415.0, "ns per ops": 189.0, "Ops per threads": 79296236.0, "Ops per procs": 158592472.0, "Ops/sec/procs": 5286415.0, "ns per ops/procs": 189.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 272661549.0, "Total blocks": 136409993.0, "Ops per second": 9087497.28, "ns per ops": 110.04, "Ops per threads": 5680448.0, "Ops per procs": 11360897.0, "Ops/sec/procs": 378645.72, "ns per ops/procs": 2640.99}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30019.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 683142476.0, "Ops per second": 22756585.5, "ns per ops": 43.94, "Ops per threads": 1779016.0, "Ops per procs": 3558033.0, "Ops/sec/procs": 118523.88, "ns per ops/procs": 8437.12}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30002.071441, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 576649935.0, "Total blocks": 228213702.0, "Ops per second": 19220337.37, "ns per ops": 52.03, "Ops per threads": 1501692.0, "Ops per procs": 3003385.0, "Ops/sec/procs": 100105.92, "ns per ops/procs": 9989.42}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30021.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 362688103.0, "Ops per second": 12081107.25, "ns per ops": 82.77, "Ops per threads": 944500.0, "Ops per procs": 1889000.0, "Ops/sec/procs": 62922.43, "ns per ops/procs": 15892.58}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 81036357.0, "Ops per second": 2701211.0, "ns per ops": 371.0, "Ops per threads": 10129544.0, "Ops per procs": 20259089.0, "Ops/sec/procs": 675302.0, "ns per ops/procs": 1485.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30013.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 644138633.0, "Total blocks": 283537854.0, "Ops per second": 21461647.99, "ns per ops": 46.59, "Ops per threads": 1677444.0, "Ops per procs": 3354888.0, "Ops/sec/procs": 111779.42, "ns per ops/procs": 8946.19}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30067.79999, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 445191125.0, "Total blocks": 162937638.0, "Ops per second": 14806242.06, "ns per ops": 67.54, "Ops per threads": 3091605.0, "Ops per procs": 6183210.0, "Ops/sec/procs": 205642.25, "ns per ops/procs": 4862.81}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30084.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 253886616.0, "Ops per second": 8439005.98, "ns per ops": 118.5, "Ops per threads": 1322326.0, "Ops per procs": 2644652.0, "Ops/sec/procs": 87906.31, "ns per ops/procs": 11375.75}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 240064331.0, "Ops per second": 8002144.0, "ns per ops": 125.0, "Ops per threads": 5001340.0, "Ops per procs": 10002680.0, "Ops/sec/procs": 333422.0, "ns per ops/procs": 3008.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30054.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 102463427.0, "Ops per second": 3415447.0, "ns per ops": 293.0, "Ops per threads": 25615856.0, "Ops per procs": 51231713.0, "Ops/sec/procs": 1707723.0, "ns per ops/procs": 586.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30027.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 239174128.0, "Total blocks": 111564282.0, "Ops per second": 7965037.84, "ns per ops": 125.55, "Ops per threads": 7474191.0, "Ops per procs": 14948383.0, "Ops/sec/procs": 497814.87, "ns per ops/procs": 2008.78}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30010.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 599188141.0, "Total blocks": 303721187.0, "Ops per second": 19965686.2, "ns per ops": 50.09, "Ops per threads": 2080514.0, "Ops per procs": 4161028.0, "Ops/sec/procs": 138650.6, "ns per ops/procs": 7212.38}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 346011094.0, "Total blocks": 166352538.0, "Ops per second": 11530074.7, "ns per ops": 86.73, "Ops per threads": 2402854.0, "Ops per procs": 4805709.0, "Ops/sec/procs": 160139.93, "ns per ops/procs": 6244.54}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30079.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 176650621.0, "Ops per second": 5872713.87, "ns per ops": 170.28, "Ops per threads": 5520331.0, "Ops per procs": 11040663.0, "Ops/sec/procs": 367044.62, "ns per ops/procs": 2724.46}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30011.250868, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 622870673.0, "Total blocks": 233012041.0, "Ops per second": 20754572.2, "ns per ops": 48.18, "Ops per threads": 1622059.0, "Ops per procs": 3244118.0, "Ops/sec/procs": 108096.73, "ns per ops/procs": 9250.97}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 249973603.0, "Ops per second": 8332453.0, "ns per ops": 120.0, "Ops per threads": 5207783.0, "Ops per procs": 10415566.0, "Ops/sec/procs": 347185.0, "ns per ops/procs": 2889.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 79249887.0, "Total blocks": 39622088.0, "Ops per second": 2639592.18, "ns per ops": 378.85, "Ops per threads": 19812471.0, "Ops per procs": 39624943.0, "Ops/sec/procs": 1319796.09, "ns per ops/procs": 757.69}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30069.211947, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 673830433.0, "Total blocks": 235834890.0, "Ops per second": 22409314.69, "ns per ops": 44.62, "Ops per threads": 7019067.0, "Ops per procs": 14038134.0, "Ops/sec/procs": 466860.72, "ns per ops/procs": 2141.97}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 245829099.0, "Total blocks": 115374313.0, "Ops per second": 8186964.66, "ns per ops": 122.15, "Ops per threads": 7682159.0, "Ops per procs": 15364318.0, "Ops/sec/procs": 511685.29, "ns per ops/procs": 1954.33}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30049.577127, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 234279884.0, "Total blocks": 158539931.0, "Ops per second": 7796445.29, "ns per ops": 128.26, "Ops per threads": 117139942.0, "Ops per procs": 234279884.0, "Ops/sec/procs": 7796445.29, "ns per ops/procs": 128.26}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30051.665566, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 150309964.0, "Total blocks": 75163529.0, "Ops per second": 5001718.25, "ns per ops": 199.93, "Ops per threads": 37577491.0, "Ops per procs": 75154982.0, "Ops/sec/procs": 2500859.12, "ns per ops/procs": 399.86}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30054.265136, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 144352146.0, "Total blocks": 68656885.0, "Ops per second": 4803050.26, "ns per ops": 208.2, "Ops per threads": 18044018.0, "Ops per procs": 36088036.0, "Ops/sec/procs": 1200762.57, "ns per ops/procs": 832.8}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30052.023725, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 147256263.0, "Total blocks": 73618398.0, "Ops per second": 4900044.81, "ns per ops": 204.08, "Ops per threads": 36814065.0, "Ops per procs": 73628131.0, "Ops/sec/procs": 2450022.41, "ns per ops/procs": 408.16}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 79657940.0, "Total blocks": 39826304.0, "Ops per second": 2653155.56, "ns per ops": 376.91, "Ops per threads": 19914485.0, "Ops per procs": 39828970.0, "Ops/sec/procs": 1326577.78, "ns per ops/procs": 753.82}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 79211590.0, "Total blocks": 39602890.0, "Ops per second": 2638300.42, "ns per ops": 379.03, "Ops per threads": 19802897.0, "Ops per procs": 39605795.0, "Ops/sec/procs": 1319150.21, "ns per ops/procs": 758.06}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 355471243.0, "Ops per second": 11849041.0, "ns per ops": 84.0, "Ops per threads": 3702825.0, "Ops per procs": 7405650.0, "Ops/sec/procs": 246855.0, "ns per ops/procs": 4064.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30025.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 79307464.0, "Total blocks": 39650863.0, "Ops per second": 2641363.48, "ns per ops": 378.59, "Ops per threads": 19826866.0, "Ops per procs": 39653732.0, "Ops/sec/procs": 1320681.74, "ns per ops/procs": 757.18}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 77998263.0, "Total blocks": 38996426.0, "Ops per second": 2597850.86, "ns per ops": 384.93, "Ops per threads": 19499565.0, "Ops per procs": 38999131.0, "Ops/sec/procs": 1298925.43, "ns per ops/procs": 769.87}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30014.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 253230441.0, "Ops per second": 8436994.19, "ns per ops": 118.53, "Ops per threads": 5275634.0, "Ops per procs": 10551268.0, "Ops/sec/procs": 351541.42, "ns per ops/procs": 2844.61}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 285062407.0, "Total blocks": 143293786.0, "Ops per second": 9500771.4, "ns per ops": 105.25, "Ops per threads": 5938800.0, "Ops per procs": 11877600.0, "Ops/sec/procs": 395865.47, "ns per ops/procs": 2526.11}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185457694.0, "Total blocks": 0.0, "Ops per second": 6177357.44, "ns per ops": 161.88, "Ops per threads": 92728847.0, "Ops per procs": 185457694.0, "Ops/sec/procs": 6177357.44, "ns per ops/procs": 161.88}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30050.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 259271156.0, "Ops per second": 8627875.03, "ns per ops": 115.9, "Ops per threads": 1800494.0, "Ops per procs": 3600988.0, "Ops/sec/procs": 119831.6, "ns per ops/procs": 8345.04}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30024.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 158030265.0, "Total blocks": 80127575.0, "Ops per second": 5263422.57, "ns per ops": 189.99, "Ops per threads": 9876891.0, "Ops per procs": 19753783.0, "Ops/sec/procs": 657927.82, "ns per ops/procs": 1519.92}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 247940148.0, "Total blocks": 116241822.0, "Ops per second": 8257412.96, "ns per ops": 121.1, "Ops per threads": 7748129.0, "Ops per procs": 15496259.0, "Ops/sec/procs": 516088.31, "ns per ops/procs": 1937.65}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 241012739.0, "Ops per second": 8033757.0, "ns per ops": 124.0, "Ops per threads": 5021098.0, "Ops per procs": 10042197.0, "Ops/sec/procs": 334739.0, "ns per ops/procs": 2997.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30072.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 266686885.0, "Ops per second": 8868203.68, "ns per ops": 112.76, "Ops per threads": 2777988.0, "Ops per procs": 5555976.0, "Ops/sec/procs": 184754.24, "ns per ops/procs": 5412.6}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 106570335.0, "Ops per second": 3552344.0, "ns per ops": 282.0, "Ops per threads": 6660645.0, "Ops per procs": 13321291.0, "Ops/sec/procs": 444043.0, "ns per ops/procs": 2259.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 160483204.0, "Ops per second": 5349440.0, "ns per ops": 187.0, "Ops per threads": 5015100.0, "Ops per procs": 10030200.0, "Ops/sec/procs": 334340.0, "ns per ops/procs": 3000.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30025.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 246123285.0, "Total blocks": 115260696.0, "Ops per second": 8197067.94, "ns per ops": 121.99, "Ops per threads": 7691352.0, "Ops per procs": 15382705.0, "Ops/sec/procs": 512316.75, "ns per ops/procs": 1951.92}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30024.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 964936051.0, "Ops per second": 32138115.85, "ns per ops": 31.12, "Ops per threads": 2512854.0, "Ops per procs": 5025708.0, "Ops/sec/procs": 167386.02, "ns per ops/procs": 5974.21}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30052.713112, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 573244319.0, "Total blocks": 229530111.0, "Ops per second": 19074627.87, "ns per ops": 52.43, "Ops per threads": 1492823.0, "Ops per procs": 2985647.0, "Ops/sec/procs": 99347.02, "ns per ops/procs": 10065.73}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 248185069.0, "Total blocks": 116294091.0, "Ops per second": 8265636.2, "ns per ops": 120.98, "Ops per threads": 7755783.0, "Ops per procs": 15511566.0, "Ops/sec/procs": 516602.26, "ns per ops/procs": 1935.73}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185538995.0, "Total blocks": 0.0, "Ops per second": 6180022.55, "ns per ops": 161.81, "Ops per threads": 92769497.0, "Ops per procs": 185538995.0, "Ops/sec/procs": 6180022.55, "ns per ops/procs": 161.81}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30083.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 167696728.0, "Ops per second": 5574296.13, "ns per ops": 179.39, "Ops per threads": 5240522.0, "Ops per procs": 10481045.0, "Ops/sec/procs": 348393.51, "ns per ops/procs": 2870.32}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30098.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 64712815.0, "Ops per second": 2157093.0, "ns per ops": 465.0, "Ops per threads": 8089101.0, "Ops per procs": 16178203.0, "Ops/sec/procs": 539273.0, "ns per ops/procs": 1860.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30090.393396, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 503147405.0, "Total blocks": 184686370.0, "Ops per second": 16721197.31, "ns per ops": 59.8, "Ops per threads": 1747039.0, "Ops per procs": 3494079.0, "Ops/sec/procs": 116119.43, "ns per ops/procs": 8611.82}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 442214042.0, "Ops per second": 14740468.0, "ns per ops": 68.0, "Ops per threads": 1535465.0, "Ops per procs": 3070930.0, "Ops/sec/procs": 102364.0, "ns per ops/procs": 9800.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 458467896.0, "Ops per second": 15282263.0, "ns per ops": 65.0, "Ops per threads": 1591902.0, "Ops per procs": 3183804.0, "Ops/sec/procs": 106126.0, "ns per ops/procs": 9453.0}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30039.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 832229190.0, "Ops per second": 27704865.59, "ns per ops": 36.09, "Ops per threads": 2889684.0, "Ops per procs": 5779369.0, "Ops/sec/procs": 192394.9, "ns per ops/procs": 5197.64}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30098.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 447921770.0, "Ops per second": 14930725.0, "ns per ops": 67.0, "Ops per threads": 1555283.0, "Ops per procs": 3110567.0, "Ops/sec/procs": 103685.0, "ns per ops/procs": 9676.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30074.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 178356324.0, "Ops per second": 5930578.08, "ns per ops": 168.62, "Ops per threads": 5573635.0, "Ops per procs": 11147270.0, "Ops/sec/procs": 370661.13, "ns per ops/procs": 2697.88}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30051.578845, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 145646142.0, "Total blocks": 72820582.0, "Ops per second": 4846538.77, "ns per ops": 206.33, "Ops per threads": 36411535.0, "Ops per procs": 72823071.0, "Ops/sec/procs": 2423269.39, "ns per ops/procs": 412.67}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30020.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 254377554.0, "Ops per second": 8473338.92, "ns per ops": 118.02, "Ops per threads": 127188777.0, "Ops per procs": 254377554.0, "Ops/sec/procs": 8473338.92, "ns per ops/procs": 118.02}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 239620620.0, "Ops per second": 7987354.0, "ns per ops": 125.0, "Ops per threads": 4992096.0, "Ops per procs": 9984192.0, "Ops/sec/procs": 332806.0, "ns per ops/procs": 3014.0}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30035.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 943653721.0, "Ops per second": 31417954.6, "ns per ops": 31.83, "Ops per threads": 3276575.0, "Ops per procs": 6553150.0, "Ops/sec/procs": 218180.24, "ns per ops/procs": 4583.37}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30028.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 249445996.0, "Ops per second": 8306968.23, "ns per ops": 120.38, "Ops per threads": 124722998.0, "Ops per procs": 249445996.0, "Ops/sec/procs": 8306968.23, "ns per ops/procs": 120.38}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30020.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 115275634.0, "Ops per second": 3839844.28, "ns per ops": 260.43, "Ops per threads": 28818908.0, "Ops per procs": 57637817.0, "Ops/sec/procs": 1919922.14, "ns per ops/procs": 520.85}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 301616959.0, "Total blocks": 152829304.0, "Ops per second": 10052537.86, "ns per ops": 99.48, "Ops per threads": 6283686.0, "Ops per procs": 12567373.0, "Ops/sec/procs": 418855.74, "ns per ops/procs": 2387.46}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30034.581506, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 459808438.0, "Total blocks": 167598487.0, "Ops per second": 15309300.64, "ns per ops": 65.32, "Ops per threads": 3193114.0, "Ops per procs": 6386228.0, "Ops/sec/procs": 212629.18, "ns per ops/procs": 4703.02}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 120903577.0, "Total blocks": 71497997.0, "Ops per second": 4026839.19, "ns per ops": 248.33, "Ops per threads": 15112947.0, "Ops per procs": 30225894.0, "Ops/sec/procs": 1006709.8, "ns per ops/procs": 993.33}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30091.771815, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 559579006.0, "Total blocks": 205944705.0, "Ops per second": 18595748.02, "ns per ops": 53.78, "Ops per threads": 1942982.0, "Ops per procs": 3885965.0, "Ops/sec/procs": 129137.14, "ns per ops/procs": 7743.71}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30077.898775, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 262448458.0, "Total blocks": 113070023.0, "Ops per second": 8725624.75, "ns per ops": 114.6, "Ops per threads": 8201514.0, "Ops per procs": 16403028.0, "Ops/sec/procs": 545351.55, "ns per ops/procs": 1833.68}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30045.822291, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 561514925.0, "Total blocks": 208573022.0, "Ops per second": 18688618.99, "ns per ops": 53.51, "Ops per threads": 1949704.0, "Ops per procs": 3899409.0, "Ops/sec/procs": 129782.08, "ns per ops/procs": 7705.22}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30099.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 79240850.0, "Ops per second": 2641361.0, "ns per ops": 379.0, "Ops per threads": 9905106.0, "Ops per procs": 19810212.0, "Ops/sec/procs": 660340.0, "ns per ops/procs": 1519.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30032.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 158365060.0, "Ops per second": 5273131.3, "ns per ops": 189.64, "Ops per threads": 19795632.0, "Ops per procs": 39591265.0, "Ops/sec/procs": 1318282.82, "ns per ops/procs": 758.56}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 404081764.0, "Total blocks": 197772039.0, "Ops per second": 13465100.21, "ns per ops": 74.27, "Ops per threads": 2104592.0, "Ops per procs": 4209185.0, "Ops/sec/procs": 140261.46, "ns per ops/procs": 7129.54}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30026.495956, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 607210542.0, "Total blocks": 212641797.0, "Ops per second": 20222490.93, "ns per ops": 49.45, "Ops per threads": 2108369.0, "Ops per procs": 4216739.0, "Ops/sec/procs": 140433.96, "ns per ops/procs": 7120.79}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30012.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 242885051.0, "Ops per second": 8092749.36, "ns per ops": 123.57, "Ops per threads": 121442525.0, "Ops per procs": 242885051.0, "Ops/sec/procs": 8092749.36, "ns per ops/procs": 123.57}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30025.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 158608155.0, "Total blocks": 80286279.0, "Ops per second": 5282517.27, "ns per ops": 189.3, "Ops per threads": 9913009.0, "Ops per procs": 19826019.0, "Ops/sec/procs": 660314.66, "ns per ops/procs": 1514.43}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30045.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 189831201.0, "Ops per second": 6318057.95, "ns per ops": 158.28, "Ops per threads": 11864450.0, "Ops per procs": 23728900.0, "Ops/sec/procs": 789757.24, "ns per ops/procs": 1266.21}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 436936853.0, "Ops per second": 14564561.0, "ns per ops": 68.0, "Ops per threads": 1517141.0, "Ops per procs": 3034283.0, "Ops/sec/procs": 101142.0, "ns per ops/procs": 9919.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185553751.0, "Total blocks": 0.0, "Ops per second": 6180514.17, "ns per ops": 161.8, "Ops per threads": 92776875.0, "Ops per procs": 185553751.0, "Ops/sec/procs": 6180514.17, "ns per ops/procs": 161.8}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30050.010278, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 270828503.0, "Total blocks": 151275808.0, "Ops per second": 9012592.69, "ns per ops": 110.96, "Ops per threads": 135414251.0, "Ops per procs": 270828503.0, "Ops/sec/procs": 9012592.69, "ns per ops/procs": 110.96}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30017.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 389323244.0, "Ops per second": 12969703.85, "ns per ops": 77.1, "Ops per threads": 1013862.0, "Ops per procs": 2027725.0, "Ops/sec/procs": 67550.54, "ns per ops/procs": 14803.73}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 158596446.0, "Ops per second": 5286548.0, "ns per ops": 189.0, "Ops per threads": 79298223.0, "Ops per procs": 158596446.0, "Ops/sec/procs": 5286548.0, "ns per ops/procs": 189.0}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30073.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 248625401.0, "Ops per second": 8267245.67, "ns per ops": 120.96, "Ops per threads": 1294923.0, "Ops per procs": 2589847.0, "Ops/sec/procs": 86117.14, "ns per ops/procs": 11612.09}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185581406.0, "Total blocks": 0.0, "Ops per second": 6181436.39, "ns per ops": 161.77, "Ops per threads": 92790703.0, "Ops per procs": 185581406.0, "Ops/sec/procs": 6181436.39, "ns per ops/procs": 161.77}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 425572862.0, "Ops per second": 14185762.0, "ns per ops": 70.0, "Ops per threads": 1477683.0, "Ops per procs": 2955367.0, "Ops/sec/procs": 98512.0, "ns per ops/procs": 10184.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30077.577807, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 277659568.0, "Total blocks": 104342532.0, "Ops per second": 9231447.09, "ns per ops": 108.33, "Ops per threads": 8676861.0, "Ops per procs": 17353723.0, "Ops/sec/procs": 576965.44, "ns per ops/procs": 1733.21}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 234573700.0, "Total blocks": 110288462.0, "Ops per second": 7812189.92, "ns per ops": 128.01, "Ops per threads": 7330428.0, "Ops per procs": 14660856.0, "Ops/sec/procs": 488261.87, "ns per ops/procs": 2048.08}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30061.144537, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 192910274.0, "Total blocks": 86507739.0, "Ops per second": 6417263.11, "ns per ops": 155.83, "Ops per threads": 12056892.0, "Ops per procs": 24113784.0, "Ops/sec/procs": 802157.89, "ns per ops/procs": 1246.64}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30016.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 67450962.0, "Ops per second": 2248365.0, "ns per ops": 445.0, "Ops per threads": 16862740.0, "Ops per procs": 33725481.0, "Ops/sec/procs": 1124182.0, "ns per ops/procs": 890.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30066.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 252031825.0, "Ops per second": 8382561.63, "ns per ops": 119.3, "Ops per threads": 2625331.0, "Ops per procs": 5250663.0, "Ops/sec/procs": 174636.7, "ns per ops/procs": 5726.17}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30025.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 111850431.0, "Total blocks": 65020982.0, "Ops per second": 3725221.55, "ns per ops": 268.44, "Ops per threads": 13981303.0, "Ops per procs": 27962607.0, "Ops/sec/procs": 931305.39, "ns per ops/procs": 1073.76}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30020.541753, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 339266184.0, "Total blocks": 131530426.0, "Ops per second": 11301134.63, "ns per ops": 88.49, "Ops per threads": 7068045.0, "Ops per procs": 14136091.0, "Ops/sec/procs": 470880.61, "ns per ops/procs": 2123.68}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 545648787.0, "Ops per second": 18188292.0, "ns per ops": 55.0, "Ops per threads": 1420960.0, "Ops per procs": 2841920.0, "Ops/sec/procs": 94730.0, "ns per ops/procs": 10590.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30063.561076, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 699159104.0, "Total blocks": 269494259.0, "Ops per second": 23256030.86, "ns per ops": 43.0, "Ops per threads": 7282907.0, "Ops per procs": 14565814.0, "Ops/sec/procs": 484500.64, "ns per ops/procs": 2063.98}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30061.625777, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 449910530.0, "Total blocks": 157211459.0, "Ops per second": 14966274.06, "ns per ops": 66.82, "Ops per threads": 3124378.0, "Ops per procs": 6248757.0, "Ops/sec/procs": 207864.92, "ns per ops/procs": 4810.82}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 342396659.0, "Ops per second": 11413221.0, "ns per ops": 87.0, "Ops per threads": 3566631.0, "Ops per procs": 7133263.0, "Ops/sec/procs": 237775.0, "ns per ops/procs": 4219.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30077.242433, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 410093700.0, "Total blocks": 144007638.0, "Ops per second": 13634684.13, "ns per ops": 73.34, "Ops per threads": 2847872.0, "Ops per procs": 5695745.0, "Ops/sec/procs": 189370.61, "ns per ops/procs": 5280.65}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 272542681.0, "Total blocks": 136129061.0, "Ops per second": 9083528.22, "ns per ops": 110.09, "Ops per threads": 5677972.0, "Ops per procs": 11355945.0, "Ops/sec/procs": 378480.34, "ns per ops/procs": 2642.15}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 248716876.0, "Ops per second": 8290562.0, "ns per ops": 121.0, "Ops per threads": 5181601.0, "Ops per procs": 10363203.0, "Ops/sec/procs": 345440.0, "ns per ops/procs": 2904.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 510254679.0, "Total blocks": 263599243.0, "Ops per second": 17005116.76, "ns per ops": 58.81, "Ops per threads": 5315152.0, "Ops per procs": 10630305.0, "Ops/sec/procs": 354273.27, "ns per ops/procs": 2822.68}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30085.571178, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 557368611.0, "Total blocks": 204213029.0, "Ops per second": 18526110.33, "ns per ops": 53.98, "Ops per threads": 1935307.0, "Ops per procs": 3870615.0, "Ops/sec/procs": 128653.54, "ns per ops/procs": 7772.81}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30018.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 255568628.0, "Ops per second": 8513684.13, "ns per ops": 117.46, "Ops per threads": 5324346.0, "Ops per procs": 10648692.0, "Ops/sec/procs": 354736.84, "ns per ops/procs": 2818.99}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30021.607243, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 346529936.0, "Total blocks": 134659921.0, "Ops per second": 11542684.35, "ns per ops": 86.63, "Ops per threads": 7219373.0, "Ops per procs": 14438747.0, "Ops/sec/procs": 480945.18, "ns per ops/procs": 2079.24}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30061.987871, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 197131311.0, "Total blocks": 81908194.0, "Ops per second": 6557494.2, "ns per ops": 152.5, "Ops per threads": 12320706.0, "Ops per procs": 24641413.0, "Ops/sec/procs": 819686.77, "ns per ops/procs": 1219.98}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30054.936278, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 674912351.0, "Total blocks": 249443867.0, "Ops per second": 22455956.81, "ns per ops": 44.53, "Ops per threads": 7030336.0, "Ops per procs": 14060673.0, "Ops/sec/procs": 467832.43, "ns per ops/procs": 2137.52}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30036.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 908596891.0, "Ops per second": 30250179.16, "ns per ops": 33.06, "Ops per threads": 3154850.0, "Ops per procs": 6309700.0, "Ops/sec/procs": 210070.69, "ns per ops/procs": 4760.3}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 274417562.0, "Ops per second": 9147252.0, "ns per ops": 109.0, "Ops per threads": 1905677.0, "Ops per procs": 3811355.0, "Ops/sec/procs": 127045.0, "ns per ops/procs": 7896.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 246466408.0, "Total blocks": 115571678.0, "Ops per second": 8208328.54, "ns per ops": 121.83, "Ops per threads": 7702075.0, "Ops per procs": 15404150.0, "Ops/sec/procs": 513020.53, "ns per ops/procs": 1949.24}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30068.242896, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 432660071.0, "Total blocks": 155567235.0, "Ops per second": 14389270.18, "ns per ops": 69.5, "Ops per threads": 3004583.0, "Ops per procs": 6009167.0, "Ops/sec/procs": 199850.97, "ns per ops/procs": 5003.73}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 154917929.0, "Ops per second": 5163930.0, "ns per ops": 194.0, "Ops per threads": 4841185.0, "Ops per procs": 9682370.0, "Ops/sec/procs": 322745.0, "ns per ops/procs": 3108.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 94546239.0, "Ops per second": 3151541.0, "ns per ops": 318.0, "Ops per threads": 5909139.0, "Ops per procs": 11818279.0, "Ops/sec/procs": 393942.0, "ns per ops/procs": 2546.0}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30009.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 253892526.0, "Ops per second": 8460413.86, "ns per ops": 118.2, "Ops per threads": 5289427.0, "Ops per procs": 10578855.0, "Ops/sec/procs": 352517.24, "ns per ops/procs": 2836.74}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30074.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 95740692.0, "Ops per second": 3191356.0, "ns per ops": 314.0, "Ops per threads": 23935173.0, "Ops per procs": 47870346.0, "Ops/sec/procs": 1595678.0, "ns per ops/procs": 628.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30049.44903, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 250849331.0, "Total blocks": 159181914.0, "Ops per second": 8347884.54, "ns per ops": 119.79, "Ops per threads": 125424665.0, "Ops per procs": 250849331.0, "Ops/sec/procs": 8347884.54, "ns per ops/procs": 119.79}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30015.366859, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 342921985.0, "Total blocks": 135968844.0, "Ops per second": 11424880.68, "ns per ops": 87.53, "Ops per threads": 7144208.0, "Ops per procs": 14288416.0, "Ops/sec/procs": 476036.7, "ns per ops/procs": 2100.68}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30020.66073, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 323817355.0, "Total blocks": 118804988.0, "Ops per second": 10786483.28, "ns per ops": 92.71, "Ops per threads": 6746194.0, "Ops per procs": 13492389.0, "Ops/sec/procs": 449436.8, "ns per ops/procs": 2225.01}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30096.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 232996956.0, "Ops per second": 7741599.9, "ns per ops": 129.17, "Ops per threads": 116498478.0, "Ops per procs": 232996956.0, "Ops/sec/procs": 7741599.9, "ns per ops/procs": 129.17}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30046.811572, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 523817633.0, "Total blocks": 197124020.0, "Ops per second": 17433384.96, "ns per ops": 57.36, "Ops per threads": 1818811.0, "Ops per procs": 3637622.0, "Ops/sec/procs": 121065.17, "ns per ops/procs": 8260.01}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30039.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 370149237.0, "Ops per second": 12322099.33, "ns per ops": 81.16, "Ops per threads": 963930.0, "Ops per procs": 1927860.0, "Ops/sec/procs": 64177.6, "ns per ops/procs": 15581.76}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30013.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 671610757.0, "Total blocks": 298296655.0, "Ops per second": 22376959.16, "ns per ops": 44.69, "Ops per threads": 1748986.0, "Ops per procs": 3497972.0, "Ops/sec/procs": 116546.66, "ns per ops/procs": 8580.26}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30025.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 239364772.0, "Total blocks": 111585568.0, "Ops per second": 7972064.94, "ns per ops": 125.44, "Ops per threads": 7480149.0, "Ops per procs": 14960298.0, "Ops/sec/procs": 498254.06, "ns per ops/procs": 2007.01}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30000.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 257773952.0, "Ops per second": 8592341.9, "ns per ops": 116.38, "Ops per threads": 1342572.0, "Ops per procs": 2685145.0, "Ops/sec/procs": 89503.56, "ns per ops/procs": 11172.74}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 245473439.0, "Ops per second": 8182447.0, "ns per ops": 122.0, "Ops per threads": 1704676.0, "Ops per procs": 3409353.0, "Ops/sec/procs": 113645.0, "ns per ops/procs": 8828.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30021.572978, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 332772792.0, "Total blocks": 122151374.0, "Ops per second": 11084455.58, "ns per ops": 90.22, "Ops per threads": 6932766.0, "Ops per procs": 13865533.0, "Ops/sec/procs": 461852.32, "ns per ops/procs": 2165.19}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30005.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 256298268.0, "Ops per second": 8541775.48, "ns per ops": 117.07, "Ops per threads": 5339547.0, "Ops per procs": 10679094.0, "Ops/sec/procs": 355907.31, "ns per ops/procs": 2809.72}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 157380053.0, "Ops per second": 5246001.0, "ns per ops": 191.0, "Ops per threads": 78690026.0, "Ops per procs": 157380053.0, "Ops/sec/procs": 5246001.0, "ns per ops/procs": 191.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30056.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 252964522.0, "Ops per second": 8416179.32, "ns per ops": 118.82, "Ops per threads": 2635047.0, "Ops per procs": 5270094.0, "Ops/sec/procs": 175337.07, "ns per ops/procs": 5703.3}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 360052154.0, "Ops per second": 12001738.0, "ns per ops": 83.0, "Ops per threads": 3750543.0, "Ops per procs": 7501086.0, "Ops/sec/procs": 250036.0, "ns per ops/procs": 4012.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 425647939.0, "Total blocks": 206971749.0, "Ops per second": 14183892.72, "ns per ops": 70.5, "Ops per threads": 2216916.0, "Ops per procs": 4433832.0, "Ops/sec/procs": 147748.88, "ns per ops/procs": 6768.24}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30029.231935, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 624072306.0, "Total blocks": 247970411.0, "Ops per second": 20782160.11, "ns per ops": 48.12, "Ops per threads": 1625188.0, "Ops per procs": 3250376.0, "Ops/sec/procs": 108240.42, "ns per ops/procs": 9238.69}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30064.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 232946602.0, "Ops per second": 7748216.9, "ns per ops": 129.06, "Ops per threads": 116473301.0, "Ops per procs": 232946602.0, "Ops/sec/procs": 7748216.9, "ns per ops/procs": 129.06}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30051.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 190629493.0, "Ops per second": 6343413.9, "ns per ops": 157.64, "Ops per threads": 11914343.0, "Ops per procs": 23828686.0, "Ops/sec/procs": 792926.74, "ns per ops/procs": 1261.15}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30075.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 248011336.0, "Ops per second": 8246248.21, "ns per ops": 121.27, "Ops per threads": 1291725.0, "Ops per procs": 2583451.0, "Ops/sec/procs": 85898.42, "ns per ops/procs": 11641.66}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30033.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 158451322.0, "Ops per second": 5275875.67, "ns per ops": 189.54, "Ops per threads": 19806415.0, "Ops per procs": 39612830.0, "Ops/sec/procs": 1318968.92, "ns per ops/procs": 758.17}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30062.308293, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 192782579.0, "Total blocks": 83089888.0, "Ops per second": 6412767.01, "ns per ops": 155.94, "Ops per threads": 12048911.0, "Ops per procs": 24097822.0, "Ops/sec/procs": 801595.88, "ns per ops/procs": 1247.51}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185545898.0, "Total blocks": 0.0, "Ops per second": 6180292.76, "ns per ops": 161.8, "Ops per threads": 92772949.0, "Ops per procs": 185545898.0, "Ops/sec/procs": 6180292.76, "ns per ops/procs": 161.8}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30025.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 149562522.0, "Total blocks": 77055604.0, "Ops per second": 4981210.59, "ns per ops": 200.75, "Ops per threads": 9347657.0, "Ops per procs": 18695315.0, "Ops/sec/procs": 622651.32, "ns per ops/procs": 1606.04}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30018.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 75258049.0, "Ops per second": 2508601.0, "ns per ops": 398.0, "Ops per threads": 9407256.0, "Ops per procs": 18814512.0, "Ops/sec/procs": 627150.0, "ns per ops/procs": 1595.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30012.448711, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 473847000.0, "Total blocks": 179896785.0, "Ops per second": 15788348.51, "ns per ops": 63.34, "Ops per threads": 3290604.0, "Ops per procs": 6581208.0, "Ops/sec/procs": 219282.62, "ns per ops/procs": 4560.33}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30065.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 100889363.0, "Ops per second": 3362978.0, "ns per ops": 298.0, "Ops per threads": 25222340.0, "Ops per procs": 50444681.0, "Ops/sec/procs": 1681489.0, "ns per ops/procs": 596.0}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30029.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 934976377.0, "Ops per second": 31134987.31, "ns per ops": 32.12, "Ops per threads": 2434834.0, "Ops per procs": 4869668.0, "Ops/sec/procs": 162161.39, "ns per ops/procs": 6166.7}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30038.451527, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 644421112.0, "Total blocks": 235380873.0, "Ops per second": 21453206.78, "ns per ops": 46.61, "Ops per threads": 6712719.0, "Ops per procs": 13425439.0, "Ops/sec/procs": 446941.81, "ns per ops/procs": 2237.43}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 150712555.0, "Ops per second": 5023751.0, "ns per ops": 199.0, "Ops per threads": 4709767.0, "Ops per procs": 9419534.0, "Ops/sec/procs": 313984.0, "ns per ops/procs": 3195.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30083.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 167417631.0, "Ops per second": 5565064.19, "ns per ops": 179.69, "Ops per threads": 5231800.0, "Ops per procs": 10463601.0, "Ops/sec/procs": 347816.51, "ns per ops/procs": 2875.08}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30056.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 254461000.0, "Ops per second": 8466072.8, "ns per ops": 118.12, "Ops per threads": 1767090.0, "Ops per procs": 3534180.0, "Ops/sec/procs": 117584.34, "ns per ops/procs": 8504.53}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30024.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 146509798.0, "Total blocks": 76835365.0, "Ops per second": 4879608.66, "ns per ops": 204.93, "Ops per threads": 9156862.0, "Ops per procs": 18313724.0, "Ops/sec/procs": 609951.08, "ns per ops/procs": 1639.48}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30099.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 559913780.0, "Ops per second": 18663792.0, "ns per ops": 53.0, "Ops per threads": 1458108.0, "Ops per procs": 2916217.0, "Ops/sec/procs": 97207.0, "ns per ops/procs": 10321.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30067.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 176186235.0, "Ops per second": 5859710.46, "ns per ops": 170.66, "Ops per threads": 5505819.0, "Ops per procs": 11011639.0, "Ops/sec/procs": 366231.9, "ns per ops/procs": 2730.51}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 302224707.0, "Ops per second": 10074156.0, "ns per ops": 99.0, "Ops per threads": 1574087.0, "Ops per procs": 3148174.0, "Ops/sec/procs": 104939.0, "ns per ops/procs": 9560.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30010.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 598931903.0, "Total blocks": 304621094.0, "Ops per second": 19957558.19, "ns per ops": 50.11, "Ops per threads": 2079624.0, "Ops per procs": 4159249.0, "Ops/sec/procs": 138594.15, "ns per ops/procs": 7215.31}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30098.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 563587381.0, "Ops per second": 18786246.0, "ns per ops": 53.0, "Ops per threads": 1467675.0, "Ops per procs": 2935350.0, "Ops/sec/procs": 97845.0, "ns per ops/procs": 10253.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30059.614743, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 182699648.0, "Total blocks": 59814827.0, "Ops per second": 6077910.5, "ns per ops": 164.53, "Ops per threads": 11418728.0, "Ops per procs": 22837456.0, "Ops/sec/procs": 759738.81, "ns per ops/procs": 1316.24}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30025.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 246288685.0, "Total blocks": 115666274.0, "Ops per second": 8202716.72, "ns per ops": 121.91, "Ops per threads": 7696521.0, "Ops per procs": 15393042.0, "Ops/sec/procs": 512669.79, "ns per ops/procs": 1950.57}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 263140401.0, "Ops per second": 8771346.0, "ns per ops": 114.0, "Ops per threads": 1827363.0, "Ops per procs": 3654727.0, "Ops/sec/procs": 121824.0, "ns per ops/procs": 8235.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30067.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 270306858.0, "Ops per second": 8989976.06, "ns per ops": 111.24, "Ops per threads": 2815696.0, "Ops per procs": 5631392.0, "Ops/sec/procs": 187291.17, "ns per ops/procs": 5339.28}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30029.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 500371119.0, "Ops per second": 16662499.6, "ns per ops": 60.02, "Ops per threads": 1737399.0, "Ops per procs": 3474799.0, "Ops/sec/procs": 115711.8, "ns per ops/procs": 8642.16}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 413513116.0, "Total blocks": 200804280.0, "Ops per second": 13779404.16, "ns per ops": 72.57, "Ops per threads": 2153714.0, "Ops per procs": 4307428.0, "Ops/sec/procs": 143535.46, "ns per ops/procs": 6966.92}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 567894464.0, "Ops per second": 18929815.0, "ns per ops": 52.0, "Ops per threads": 1478891.0, "Ops per procs": 2957783.0, "Ops/sec/procs": 98592.0, "ns per ops/procs": 10175.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185443238.0, "Total blocks": 0.0, "Ops per second": 6176821.47, "ns per ops": 161.9, "Ops per threads": 92721619.0, "Ops per procs": 185443238.0, "Ops/sec/procs": 6176821.47, "ns per ops/procs": 161.9}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30049.816416, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 257318105.0, "Total blocks": 158286753.0, "Ops per second": 8563050.82, "ns per ops": 116.78, "Ops per threads": 128659052.0, "Ops per procs": 257318105.0, "Ops/sec/procs": 8563050.82, "ns per ops/procs": 116.78}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30024.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 158785308.0, "Total blocks": 80532857.0, "Ops per second": 5288470.26, "ns per ops": 189.09, "Ops per threads": 9924081.0, "Ops per procs": 19848163.0, "Ops/sec/procs": 661058.78, "ns per ops/procs": 1512.72}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30034.315944, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 442901303.0, "Total blocks": 152659237.0, "Ops per second": 14746508.75, "ns per ops": 67.81, "Ops per threads": 3075703.0, "Ops per procs": 6151406.0, "Ops/sec/procs": 204812.62, "ns per ops/procs": 4882.51}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30068.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 266935161.0, "Ops per second": 8877689.79, "ns per ops": 112.64, "Ops per threads": 2780574.0, "Ops per procs": 5561149.0, "Ops/sec/procs": 184951.87, "ns per ops/procs": 5406.81}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30020.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 115655872.0, "Ops per second": 3852499.04, "ns per ops": 259.57, "Ops per threads": 28913968.0, "Ops per procs": 57827936.0, "Ops/sec/procs": 1926249.52, "ns per ops/procs": 519.14}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30010.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 600132082.0, "Total blocks": 300922528.0, "Ops per second": 19997436.91, "ns per ops": 50.01, "Ops per threads": 2083791.0, "Ops per procs": 4167583.0, "Ops/sec/procs": 138871.09, "ns per ops/procs": 7200.92}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30055.931497, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 175772215.0, "Total blocks": 43938903.0, "Ops per second": 5848170.6, "ns per ops": 170.99, "Ops per threads": 21971526.0, "Ops per procs": 43943053.0, "Ops/sec/procs": 1462042.65, "ns per ops/procs": 683.97}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30054.436743, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 143043757.0, "Total blocks": 67976329.0, "Ops per second": 4759488.86, "ns per ops": 210.11, "Ops per threads": 17880469.0, "Ops per procs": 35760939.0, "Ops/sec/procs": 1189872.22, "ns per ops/procs": 840.43}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30090.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 248326525.0, "Ops per second": 8252524.85, "ns per ops": 121.18, "Ops per threads": 1293367.0, "Ops per procs": 2586734.0, "Ops/sec/procs": 85963.8, "ns per ops/procs": 11632.8}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 558189049.0, "Ops per second": 18606301.0, "ns per ops": 53.0, "Ops per threads": 1453617.0, "Ops per procs": 2907234.0, "Ops/sec/procs": 96907.0, "ns per ops/procs": 10352.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 513500636.0, "Total blocks": 265421415.0, "Ops per second": 17113373.62, "ns per ops": 58.43, "Ops per threads": 5348964.0, "Ops per procs": 10697929.0, "Ops/sec/procs": 356528.62, "ns per ops/procs": 2804.82}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 421171316.0, "Total blocks": 204423899.0, "Ops per second": 14034517.94, "ns per ops": 71.25, "Ops per threads": 2193600.0, "Ops per procs": 4387201.0, "Ops/sec/procs": 146192.9, "ns per ops/procs": 6840.28}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 233968251.0, "Total blocks": 109767508.0, "Ops per second": 7792115.51, "ns per ops": 128.33, "Ops per threads": 7311507.0, "Ops per procs": 14623015.0, "Ops/sec/procs": 487007.22, "ns per ops/procs": 2053.36}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30027.114969, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 484019275.0, "Total blocks": 173353497.0, "Ops per second": 16119406.59, "ns per ops": 62.04, "Ops per threads": 2520933.0, "Ops per procs": 5041867.0, "Ops/sec/procs": 167910.49, "ns per ops/procs": 5955.55}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 349422149.0, "Total blocks": 170043925.0, "Ops per second": 11643668.04, "ns per ops": 85.88, "Ops per threads": 2426542.0, "Ops per procs": 4853085.0, "Ops/sec/procs": 161717.61, "ns per ops/procs": 6183.62}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30049.689499, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 245671181.0, "Total blocks": 160310302.0, "Ops per second": 8175498.15, "ns per ops": 122.32, "Ops per threads": 122835590.0, "Ops per procs": 245671181.0, "Ops/sec/procs": 8175498.15, "ns per ops/procs": 122.32}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30028.167791, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 586982381.0, "Total blocks": 230784214.0, "Ops per second": 19547725.49, "ns per ops": 51.16, "Ops per threads": 1528599.0, "Ops per procs": 3057199.0, "Ops/sec/procs": 101811.07, "ns per ops/procs": 9822.12}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30054.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 191094983.0, "Ops per second": 6358292.46, "ns per ops": 157.27, "Ops per threads": 11943436.0, "Ops per procs": 23886872.0, "Ops/sec/procs": 794786.56, "ns per ops/procs": 1258.2}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30067.448489, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 440364380.0, "Total blocks": 167636146.0, "Ops per second": 14645884.57, "ns per ops": 68.28, "Ops per threads": 3058085.0, "Ops per procs": 6116171.0, "Ops/sec/procs": 203415.06, "ns per ops/procs": 4916.06}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30069.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 174406962.0, "Ops per second": 5800035.21, "ns per ops": 172.41, "Ops per threads": 5450217.0, "Ops per procs": 10900435.0, "Ops/sec/procs": 362502.2, "ns per ops/procs": 2758.6}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 228226698.0, "Ops per second": 7607556.0, "ns per ops": 131.0, "Ops per threads": 4754722.0, "Ops per procs": 9509445.0, "Ops/sec/procs": 316981.0, "ns per ops/procs": 3164.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 361552760.0, "Ops per second": 12051758.0, "ns per ops": 83.0, "Ops per threads": 3766174.0, "Ops per procs": 7532349.0, "Ops/sec/procs": 251078.0, "ns per ops/procs": 3995.0}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30034.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 767530594.0, "Ops per second": 25554983.69, "ns per ops": 39.13, "Ops per threads": 2665036.0, "Ops per procs": 5330073.0, "Ops/sec/procs": 177465.16, "ns per ops/procs": 5634.91}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 158428634.0, "Ops per second": 5280954.0, "ns per ops": 189.0, "Ops per threads": 79214317.0, "Ops per procs": 158428634.0, "Ops/sec/procs": 5280954.0, "ns per ops/procs": 189.0}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30035.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 261885402.0, "Ops per second": 8719295.88, "ns per ops": 114.69, "Ops per threads": 1818648.0, "Ops per procs": 3637297.0, "Ops/sec/procs": 121101.33, "ns per ops/procs": 8257.55}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 241378158.0, "Ops per second": 8045938.0, "ns per ops": 124.0, "Ops per threads": 5028711.0, "Ops per procs": 10057423.0, "Ops/sec/procs": 335247.0, "ns per ops/procs": 2992.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 76908501.0, "Total blocks": 38451318.0, "Ops per second": 2561571.82, "ns per ops": 390.39, "Ops per threads": 19227125.0, "Ops per procs": 38454250.0, "Ops/sec/procs": 1280785.91, "ns per ops/procs": 780.77}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30053.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 255598381.0, "Ops per second": 8504838.05, "ns per ops": 117.58, "Ops per threads": 2662483.0, "Ops per procs": 5324966.0, "Ops/sec/procs": 177184.13, "ns per ops/procs": 5643.85}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 440315516.0, "Ops per second": 14677183.0, "ns per ops": 68.0, "Ops per threads": 1528873.0, "Ops per procs": 3057746.0, "Ops/sec/procs": 101924.0, "ns per ops/procs": 9843.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 344206891.0, "Ops per second": 11473563.0, "ns per ops": 87.0, "Ops per threads": 3585488.0, "Ops per procs": 7170976.0, "Ops/sec/procs": 239032.0, "ns per ops/procs": 4197.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185561679.0, "Total blocks": 0.0, "Ops per second": 6180810.58, "ns per ops": 161.79, "Ops per threads": 92780839.0, "Ops per procs": 185561679.0, "Ops/sec/procs": 6180810.58, "ns per ops/procs": 161.79}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30049.464885, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 233838690.0, "Total blocks": 157650195.0, "Ops per second": 7781792.15, "ns per ops": 128.51, "Ops per threads": 116919345.0, "Ops per procs": 233838690.0, "Ops/sec/procs": 7781792.15, "ns per ops/procs": 128.51}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30019.951061, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 313040827.0, "Total blocks": 117290250.0, "Ops per second": 10427759.4, "ns per ops": 95.9, "Ops per threads": 6521683.0, "Ops per procs": 13043367.0, "Ops/sec/procs": 434489.98, "ns per ops/procs": 2301.55}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 155012775.0, "Ops per second": 5167092.0, "ns per ops": 194.0, "Ops per threads": 4844149.0, "Ops per procs": 9688298.0, "Ops/sec/procs": 322943.0, "ns per ops/procs": 3106.0}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30008.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 254309911.0, "Ops per second": 8474553.08, "ns per ops": 118.0, "Ops per threads": 5298123.0, "Ops per procs": 10596246.0, "Ops/sec/procs": 353106.38, "ns per ops/procs": 2832.01}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30049.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 189853335.0, "Ops per second": 6317985.19, "ns per ops": 158.28, "Ops per threads": 11865833.0, "Ops per procs": 23731666.0, "Ops/sec/procs": 789748.15, "ns per ops/procs": 1266.23}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30023.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 560590120.0, "Ops per second": 18671874.95, "ns per ops": 53.56, "Ops per threads": 1459870.0, "Ops per procs": 2919740.0, "Ops/sec/procs": 97249.35, "ns per ops/procs": 10282.85}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30013.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 668945253.0, "Total blocks": 297422207.0, "Ops per second": 22288253.59, "ns per ops": 44.87, "Ops per threads": 1742044.0, "Ops per procs": 3484089.0, "Ops/sec/procs": 116084.65, "ns per ops/procs": 8614.41}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30006.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 270447364.0, "Ops per second": 9012994.32, "ns per ops": 110.95, "Ops per threads": 135223682.0, "Ops per procs": 270447364.0, "Ops/sec/procs": 9012994.32, "ns per ops/procs": 110.95}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30048.770509, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 266042767.0, "Total blocks": 156827762.0, "Ops per second": 8853698.92, "ns per ops": 112.95, "Ops per threads": 133021383.0, "Ops per procs": 266042767.0, "Ops/sec/procs": 8853698.92, "ns per ops/procs": 112.95}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 411308096.0, "Total blocks": 199156555.0, "Ops per second": 13705877.59, "ns per ops": 72.96, "Ops per threads": 2142229.0, "Ops per procs": 4284459.0, "Ops/sec/procs": 142769.56, "ns per ops/procs": 7004.29}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 247369104.0, "Total blocks": 115951430.0, "Ops per second": 8238343.31, "ns per ops": 121.38, "Ops per threads": 7730284.0, "Ops per procs": 15460569.0, "Ops/sec/procs": 514896.46, "ns per ops/procs": 1942.14}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30042.824653, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 445409598.0, "Total blocks": 155229028.0, "Ops per second": 14825822.91, "ns per ops": 67.45, "Ops per threads": 3093122.0, "Ops per procs": 6186244.0, "Ops/sec/procs": 205914.21, "ns per ops/procs": 4856.39}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 157761685.0, "Ops per second": 5258722.0, "ns per ops": 190.0, "Ops per threads": 78880842.0, "Ops per procs": 157761685.0, "Ops/sec/procs": 5258722.0, "ns per ops/procs": 190.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 355984243.0, "Ops per second": 11866141.0, "ns per ops": 84.0, "Ops per threads": 3708169.0, "Ops per procs": 7416338.0, "Ops/sec/procs": 247211.0, "ns per ops/procs": 4058.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30034.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 159118523.0, "Ops per second": 5297770.65, "ns per ops": 188.76, "Ops per threads": 19889815.0, "Ops per procs": 39779630.0, "Ops/sec/procs": 1324442.66, "ns per ops/procs": 755.03}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30091.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 238424868.0, "Ops per second": 7923240.44, "ns per ops": 126.21, "Ops per threads": 119212434.0, "Ops per procs": 238424868.0, "Ops/sec/procs": 7923240.44, "ns per ops/procs": 126.21}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 158408404.0, "Ops per second": 5280280.0, "ns per ops": 190.0, "Ops per threads": 79204202.0, "Ops per procs": 158408404.0, "Ops/sec/procs": 5280280.0, "ns per ops/procs": 190.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 162894226.0, "Ops per second": 5429807.0, "ns per ops": 184.0, "Ops per threads": 5090444.0, "Ops per procs": 10180889.0, "Ops/sec/procs": 339362.0, "ns per ops/procs": 2956.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30075.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 97685112.0, "Ops per second": 3256170.0, "ns per ops": 307.0, "Ops per threads": 24421278.0, "Ops per procs": 48842556.0, "Ops/sec/procs": 1628085.0, "ns per ops/procs": 615.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30051.56406, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 149190501.0, "Total blocks": 74593404.0, "Ops per second": 4964483.74, "ns per ops": 201.43, "Ops per threads": 37297625.0, "Ops per procs": 74595250.0, "Ops/sec/procs": 2482241.87, "ns per ops/procs": 402.86}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30024.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 158194173.0, "Total blocks": 80166451.0, "Ops per second": 5268777.44, "ns per ops": 189.8, "Ops per threads": 9887135.0, "Ops per procs": 19774271.0, "Ops/sec/procs": 658597.18, "ns per ops/procs": 1518.38}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 246969342.0, "Total blocks": 116192333.0, "Ops per second": 8225086.22, "ns per ops": 121.58, "Ops per threads": 7717791.0, "Ops per procs": 15435583.0, "Ops/sec/procs": 514067.89, "ns per ops/procs": 1945.27}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30024.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 183656880.0, "Total blocks": 0.0, "Ops per second": 6116836.98, "ns per ops": 163.48, "Ops per threads": 91828440.0, "Ops per procs": 183656880.0, "Ops/sec/procs": 6116836.98, "ns per ops/procs": 163.48}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30069.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 255610461.0, "Ops per second": 8500769.08, "ns per ops": 117.64, "Ops per threads": 2662608.0, "Ops per procs": 5325217.0, "Ops/sec/procs": 177099.36, "ns per ops/procs": 5646.55}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30029.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 261016539.0, "Ops per second": 8691938.1, "ns per ops": 115.05, "Ops per threads": 1812614.0, "Ops per procs": 3625229.0, "Ops/sec/procs": 120721.36, "ns per ops/procs": 8283.54}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 241045757.0, "Ops per second": 8034858.0, "ns per ops": 124.0, "Ops per threads": 5021786.0, "Ops per procs": 10043573.0, "Ops/sec/procs": 334785.0, "ns per ops/procs": 2996.0}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30016.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 352570362.0, "Ops per second": 11745814.05, "ns per ops": 85.14, "Ops per threads": 918151.0, "Ops per procs": 1836303.0, "Ops/sec/procs": 61176.11, "ns per ops/procs": 16346.25}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30034.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 158793436.0, "Ops per second": 5287004.03, "ns per ops": 189.14, "Ops per threads": 19849179.0, "Ops per procs": 39698359.0, "Ops/sec/procs": 1321751.01, "ns per ops/procs": 756.57}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30018.039916, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 529693260.0, "Total blocks": 196001967.0, "Ops per second": 17645831.02, "ns per ops": 56.67, "Ops per threads": 2758819.0, "Ops per procs": 5517638.0, "Ops/sec/procs": 183810.74, "ns per ops/procs": 5440.38}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30050.862761, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 569496141.0, "Total blocks": 221091536.0, "Ops per second": 18951074.57, "ns per ops": 52.77, "Ops per threads": 1977417.0, "Ops per procs": 3954834.0, "Ops/sec/procs": 131604.68, "ns per ops/procs": 7598.51}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30010.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 423611462.0, "Total blocks": 205033000.0, "Ops per second": 14115441.29, "ns per ops": 70.84, "Ops per threads": 2206309.0, "Ops per procs": 4412619.0, "Ops/sec/procs": 147035.85, "ns per ops/procs": 6801.06}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 435423419.0, "Ops per second": 14514113.0, "ns per ops": 69.0, "Ops per threads": 1511886.0, "Ops per procs": 3023773.0, "Ops/sec/procs": 100792.0, "ns per ops/procs": 9953.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30033.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 159135552.0, "Ops per second": 5298515.31, "ns per ops": 188.73, "Ops per threads": 19891944.0, "Ops per procs": 39783888.0, "Ops/sec/procs": 1324628.83, "ns per ops/procs": 754.93}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 145212345.0, "Ops per second": 4840411.0, "ns per ops": 207.0, "Ops per threads": 4537885.0, "Ops per procs": 9075771.0, "Ops/sec/procs": 302525.0, "ns per ops/procs": 3316.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30009.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 71683370.0, "Ops per second": 2389445.0, "ns per ops": 418.0, "Ops per threads": 17920842.0, "Ops per procs": 35841685.0, "Ops/sec/procs": 1194722.0, "ns per ops/procs": 837.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30076.515856, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 277552347.0, "Total blocks": 103912473.0, "Ops per second": 9228208.09, "ns per ops": 108.36, "Ops per threads": 8673510.0, "Ops per procs": 17347021.0, "Ops/sec/procs": 576763.01, "ns per ops/procs": 1733.81}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30068.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 258217896.0, "Ops per second": 8587756.74, "ns per ops": 116.44, "Ops per threads": 2689769.0, "Ops per procs": 5379539.0, "Ops/sec/procs": 178911.6, "ns per ops/procs": 5589.35}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30053.349595, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 146289357.0, "Total blocks": 63635638.0, "Ops per second": 4867655.65, "ns per ops": 205.44, "Ops per threads": 18286169.0, "Ops per procs": 36572339.0, "Ops/sec/procs": 1216913.91, "ns per ops/procs": 821.75}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30028.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 577061684.0, "Ops per second": 19217410.0, "ns per ops": 52.04, "Ops per threads": 2003686.0, "Ops per procs": 4007372.0, "Ops/sec/procs": 133454.24, "ns per ops/procs": 7493.21}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30020.836545, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 322610855.0, "Total blocks": 116696296.0, "Ops per second": 10746231.36, "ns per ops": 93.06, "Ops per threads": 6721059.0, "Ops per procs": 13442118.0, "Ops/sec/procs": 447759.64, "ns per ops/procs": 2233.34}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30013.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 667932158.0, "Total blocks": 297173378.0, "Ops per second": 22254181.29, "ns per ops": 44.94, "Ops per threads": 1739406.0, "Ops per procs": 3478813.0, "Ops/sec/procs": 115907.19, "ns per ops/procs": 8627.59}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30091.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 261847479.0, "Ops per second": 8701843.9, "ns per ops": 114.92, "Ops per threads": 1363788.0, "Ops per procs": 2727577.0, "Ops/sec/procs": 90644.21, "ns per ops/procs": 11032.14}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30036.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 608891605.0, "Ops per second": 20271389.69, "ns per ops": 49.33, "Ops per threads": 2114206.0, "Ops per procs": 4228413.0, "Ops/sec/procs": 140773.54, "ns per ops/procs": 7103.61}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 514509186.0, "Total blocks": 265741664.0, "Ops per second": 17146993.24, "ns per ops": 58.32, "Ops per threads": 5359470.0, "Ops per procs": 10718941.0, "Ops/sec/procs": 357229.03, "ns per ops/procs": 2799.32}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30034.302264, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 500492880.0, "Total blocks": 174978107.0, "Ops per second": 16664042.19, "ns per ops": 60.01, "Ops per threads": 2606733.0, "Ops per procs": 5213467.0, "Ops/sec/procs": 173583.77, "ns per ops/procs": 5760.91}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 418635259.0, "Total blocks": 203942234.0, "Ops per second": 13950164.43, "ns per ops": 71.68, "Ops per threads": 2180391.0, "Ops per procs": 4360783.0, "Ops/sec/procs": 145314.21, "ns per ops/procs": 6881.64}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 342818741.0, "Total blocks": 164682287.0, "Ops per second": 11423597.54, "ns per ops": 87.54, "Ops per threads": 2380685.0, "Ops per procs": 4761371.0, "Ops/sec/procs": 158661.08, "ns per ops/procs": 6302.74}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 105133541.0, "Ops per second": 3504451.0, "ns per ops": 286.0, "Ops per threads": 6570846.0, "Ops per procs": 13141692.0, "Ops/sec/procs": 438056.0, "ns per ops/procs": 2290.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30071.112348, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 412601319.0, "Total blocks": 160416101.0, "Ops per second": 13720853.23, "ns per ops": 72.88, "Ops per threads": 2865286.0, "Ops per procs": 5730573.0, "Ops/sec/procs": 190567.41, "ns per ops/procs": 5247.49}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30036.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 159776054.0, "Ops per second": 5319387.99, "ns per ops": 187.99, "Ops per threads": 19972006.0, "Ops per procs": 39944013.0, "Ops/sec/procs": 1329847.0, "ns per ops/procs": 751.97}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30066.647219, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 632287099.0, "Total blocks": 252888664.0, "Ops per second": 21029518.0, "ns per ops": 47.55, "Ops per threads": 1646580.0, "Ops per procs": 3293161.0, "Ops/sec/procs": 109528.74, "ns per ops/procs": 9130.03}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 476063959.0, "Total blocks": 245436861.0, "Ops per second": 15865709.02, "ns per ops": 63.03, "Ops per threads": 4958999.0, "Ops per procs": 9917999.0, "Ops/sec/procs": 330535.6, "ns per ops/procs": 3025.39}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 73502721.0, "Ops per second": 2450090.0, "ns per ops": 409.0, "Ops per threads": 9187840.0, "Ops per procs": 18375680.0, "Ops/sec/procs": 612522.0, "ns per ops/procs": 1637.0}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30051.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 190474566.0, "Ops per second": 6338351.27, "ns per ops": 157.77, "Ops per threads": 11904660.0, "Ops per procs": 23809320.0, "Ops/sec/procs": 792293.91, "ns per ops/procs": 1262.16}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30051.924397, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 139139087.0, "Total blocks": 69565052.0, "Ops per second": 4629955.98, "ns per ops": 215.98, "Ops per threads": 34784771.0, "Ops per procs": 69569543.0, "Ops/sec/procs": 2314977.99, "ns per ops/procs": 431.97}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30049.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 190085038.0, "Ops per second": 6325811.31, "ns per ops": 158.08, "Ops per threads": 11880314.0, "Ops per procs": 23760629.0, "Ops/sec/procs": 790726.41, "ns per ops/procs": 1264.66}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30060.941171, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 208033832.0, "Total blocks": 79813092.0, "Ops per second": 6920403.15, "ns per ops": 144.5, "Ops per threads": 13002114.0, "Ops per procs": 26004229.0, "Ops/sec/procs": 865050.39, "ns per ops/procs": 1156.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 95694959.0, "Ops per second": 3189831.0, "ns per ops": 314.0, "Ops per threads": 5980934.0, "Ops per procs": 11961869.0, "Ops/sec/procs": 398728.0, "ns per ops/procs": 2516.0}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30089.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 228200427.0, "Ops per second": 7584019.28, "ns per ops": 131.86, "Ops per threads": 114100213.0, "Ops per procs": 228200427.0, "Ops/sec/procs": 7584019.28, "ns per ops/procs": 131.86}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30087.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 248715745.0, "Ops per second": 8266308.18, "ns per ops": 120.97, "Ops per threads": 1295394.0, "Ops per procs": 2590789.0, "Ops/sec/procs": 86107.38, "ns per ops/procs": 11613.41}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 437040787.0, "Ops per second": 14568026.0, "ns per ops": 68.0, "Ops per threads": 1517502.0, "Ops per procs": 3035005.0, "Ops/sec/procs": 101166.0, "ns per ops/procs": 9916.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30059.954106, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 211332342.0, "Total blocks": 88533319.0, "Ops per second": 7030361.43, "ns per ops": 142.24, "Ops per threads": 13208271.0, "Ops per procs": 26416542.0, "Ops/sec/procs": 878795.18, "ns per ops/procs": 1137.92}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 153499568.0, "Ops per second": 5116652.0, "ns per ops": 196.0, "Ops per threads": 4796861.0, "Ops per procs": 9593723.0, "Ops/sec/procs": 319790.0, "ns per ops/procs": 3137.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30034.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 158189496.0, "Ops per second": 5266861.26, "ns per ops": 189.87, "Ops per threads": 19773687.0, "Ops per procs": 39547374.0, "Ops/sec/procs": 1316715.32, "ns per ops/procs": 759.47}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30098.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 73703092.0, "Ops per second": 2456769.0, "ns per ops": 408.0, "Ops per threads": 9212886.0, "Ops per procs": 18425773.0, "Ops/sec/procs": 614192.0, "ns per ops/procs": 1633.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 416099699.0, "Total blocks": 201688458.0, "Ops per second": 13865668.71, "ns per ops": 72.12, "Ops per threads": 2167185.0, "Ops per procs": 4334371.0, "Ops/sec/procs": 144434.05, "ns per ops/procs": 6923.58}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 257146314.0, "Ops per second": 8571543.0, "ns per ops": 117.0, "Ops per threads": 1785738.0, "Ops per procs": 3571476.0, "Ops/sec/procs": 119049.0, "ns per ops/procs": 8427.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30010.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 595253173.0, "Total blocks": 299544007.0, "Ops per second": 19834630.81, "ns per ops": 50.42, "Ops per threads": 2066851.0, "Ops per procs": 4133702.0, "Ops/sec/procs": 137740.49, "ns per ops/procs": 7260.03}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30065.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 273258415.0, "Ops per second": 9088792.69, "ns per ops": 110.03, "Ops per threads": 2846441.0, "Ops per procs": 5692883.0, "Ops/sec/procs": 189349.85, "ns per ops/procs": 5281.23}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 483926761.0, "Total blocks": 249415947.0, "Ops per second": 16127817.09, "ns per ops": 62.0, "Ops per threads": 5040903.0, "Ops per procs": 10081807.0, "Ops/sec/procs": 335996.19, "ns per ops/procs": 2976.22}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30018.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 257541362.0, "Ops per second": 8579414.62, "ns per ops": 116.56, "Ops per threads": 128770681.0, "Ops per procs": 257541362.0, "Ops/sec/procs": 8579414.62, "ns per ops/procs": 116.56}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 246232011.0, "Ops per second": 8207733.0, "ns per ops": 122.0, "Ops per threads": 5129833.0, "Ops per procs": 10259667.0, "Ops/sec/procs": 341988.0, "ns per ops/procs": 2933.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 343446601.0, "Ops per second": 11448220.0, "ns per ops": 87.0, "Ops per threads": 3577568.0, "Ops per procs": 7155137.0, "Ops/sec/procs": 238504.0, "ns per ops/procs": 4206.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 79391713.0, "Total blocks": 39692593.0, "Ops per second": 2644297.75, "ns per ops": 378.17, "Ops per threads": 19847928.0, "Ops per procs": 39695856.0, "Ops/sec/procs": 1322148.88, "ns per ops/procs": 756.34}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 154027638.0, "Ops per second": 5134254.0, "ns per ops": 195.0, "Ops per threads": 4813363.0, "Ops per procs": 9626727.0, "Ops/sec/procs": 320890.0, "ns per ops/procs": 3126.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30077.34665, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 275123301.0, "Total blocks": 104582725.0, "Ops per second": 9147193.21, "ns per ops": 109.32, "Ops per threads": 8597603.0, "Ops per procs": 17195206.0, "Ops/sec/procs": 571699.58, "ns per ops/procs": 1749.17}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30061.775197, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 190006250.0, "Total blocks": 62352652.0, "Ops per second": 6320526.61, "ns per ops": 158.21, "Ops per threads": 11875390.0, "Ops per procs": 23750781.0, "Ops/sec/procs": 790065.83, "ns per ops/procs": 1265.72}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 478531922.0, "Total blocks": 246778351.0, "Ops per second": 15948055.38, "ns per ops": 62.7, "Ops per threads": 4984707.0, "Ops per procs": 9969415.0, "Ops/sec/procs": 332251.15, "ns per ops/procs": 3009.77}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30018.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 248201650.0, "Ops per second": 8268193.83, "ns per ops": 120.95, "Ops per threads": 124100825.0, "Ops per procs": 248201650.0, "Ops/sec/procs": 8268193.83, "ns per ops/procs": 120.95}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30049.381108, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 228264700.0, "Total blocks": 161262781.0, "Ops per second": 7596319.51, "ns per ops": 131.64, "Ops per threads": 114132350.0, "Ops per procs": 228264700.0, "Ops/sec/procs": 7596319.51, "ns per ops/procs": 131.64}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 518146333.0, "Total blocks": 264919112.0, "Ops per second": 17268239.72, "ns per ops": 57.91, "Ops per threads": 5397357.0, "Ops per procs": 10794715.0, "Ops/sec/procs": 359754.99, "ns per ops/procs": 2779.67}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30077.186219, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 274791236.0, "Total blocks": 116352258.0, "Ops per second": 9136201.57, "ns per ops": 109.45, "Ops per threads": 8587226.0, "Ops per procs": 17174452.0, "Ops/sec/procs": 571012.6, "ns per ops/procs": 1751.27}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30054.866014, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 164093854.0, "Total blocks": 41014969.0, "Ops per second": 5459809.87, "ns per ops": 183.16, "Ops per threads": 20511731.0, "Ops per procs": 41023463.0, "Ops/sec/procs": 1364952.47, "ns per ops/procs": 732.63}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30066.474354, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 587155400.0, "Total blocks": 215118130.0, "Ops per second": 19528575.02, "ns per ops": 51.21, "Ops per threads": 1529050.0, "Ops per procs": 3058101.0, "Ops/sec/procs": 101711.33, "ns per ops/procs": 9831.75}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30011.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 599755419.0, "Total blocks": 305093232.0, "Ops per second": 19984227.41, "ns per ops": 50.04, "Ops per threads": 2082484.0, "Ops per procs": 4164968.0, "Ops/sec/procs": 138779.36, "ns per ops/procs": 7205.68}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30077.447078, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 259444338.0, "Total blocks": 101587683.0, "Ops per second": 8625876.3, "ns per ops": 115.93, "Ops per threads": 8107635.0, "Ops per procs": 16215271.0, "Ops/sec/procs": 539117.27, "ns per ops/procs": 1854.88}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30098.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 555818719.0, "Ops per second": 18527290.0, "ns per ops": 54.0, "Ops per threads": 1447444.0, "Ops per procs": 2894889.0, "Ops/sec/procs": 96496.0, "ns per ops/procs": 10397.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 242511897.0, "Ops per second": 8083729.0, "ns per ops": 124.0, "Ops per threads": 1684110.0, "Ops per procs": 3368220.0, "Ops/sec/procs": 112274.0, "ns per ops/procs": 8935.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 167764411.0, "Ops per second": 5592147.0, "ns per ops": 179.0, "Ops per threads": 5242637.0, "Ops per procs": 10485275.0, "Ops/sec/procs": 349509.0, "ns per ops/procs": 2870.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 274077182.0, "Total blocks": 137039095.0, "Ops per second": 9134681.91, "ns per ops": 109.47, "Ops per threads": 5709941.0, "Ops per procs": 11419882.0, "Ops/sec/procs": 380611.75, "ns per ops/procs": 2627.35}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30079.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 169936928.0, "Ops per second": 5649575.59, "ns per ops": 177.0, "Ops per threads": 5310529.0, "Ops per procs": 10621058.0, "Ops/sec/procs": 353098.47, "ns per ops/procs": 2832.07}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30048.614424, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 478986901.0, "Total blocks": 169421105.0, "Ops per second": 15940398.92, "ns per ops": 62.73, "Ops per threads": 3326297.0, "Ops per procs": 6652595.0, "Ops/sec/procs": 221394.43, "ns per ops/procs": 4516.83}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 347468053.0, "Total blocks": 169061627.0, "Ops per second": 11578670.94, "ns per ops": 86.37, "Ops per threads": 2412972.0, "Ops per procs": 4825945.0, "Ops/sec/procs": 160814.87, "ns per ops/procs": 6218.33}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30002.05006, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 587799962.0, "Total blocks": 243471611.0, "Ops per second": 19591993.24, "ns per ops": 51.04, "Ops per threads": 1530729.0, "Ops per procs": 3061458.0, "Ops/sec/procs": 102041.63, "ns per ops/procs": 9799.92}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30017.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 118387589.0, "Ops per second": 3943913.85, "ns per ops": 253.56, "Ops per threads": 29596897.0, "Ops per procs": 59193794.0, "Ops/sec/procs": 1971956.93, "ns per ops/procs": 507.11}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30017.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 115804197.0, "Ops per second": 3857879.59, "ns per ops": 259.21, "Ops per threads": 28951049.0, "Ops per procs": 57902098.0, "Ops/sec/procs": 1928939.79, "ns per ops/procs": 518.42}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30010.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 342843643.0, "Total blocks": 164976982.0, "Ops per second": 11424280.81, "ns per ops": 87.53, "Ops per threads": 2380858.0, "Ops per procs": 4761717.0, "Ops/sec/procs": 158670.57, "ns per ops/procs": 6302.37}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 403750353.0, "Total blocks": 195009089.0, "Ops per second": 13454288.69, "ns per ops": 74.33, "Ops per threads": 2102866.0, "Ops per procs": 4205732.0, "Ops/sec/procs": 140148.84, "ns per ops/procs": 7135.27}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 473145289.0, "Total blocks": 243921087.0, "Ops per second": 15768370.36, "ns per ops": 63.42, "Ops per threads": 4928596.0, "Ops per procs": 9857193.0, "Ops/sec/procs": 328507.72, "ns per ops/procs": 3044.07}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30001.000138, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 551596733.0, "Total blocks": 191018290.0, "Ops per second": 18385944.82, "ns per ops": 54.39, "Ops per threads": 2872899.0, "Ops per procs": 5745799.0, "Ops/sec/procs": 191520.26, "ns per ops/procs": 5221.38}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30033.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 276059748.0, "Ops per second": 9191849.23, "ns per ops": 108.79, "Ops per threads": 1917081.0, "Ops per procs": 3834163.0, "Ops/sec/procs": 127664.57, "ns per ops/procs": 7833.03}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30052.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 189713964.0, "Ops per second": 6312849.07, "ns per ops": 158.41, "Ops per threads": 11857122.0, "Ops per procs": 23714245.0, "Ops/sec/procs": 789106.13, "ns per ops/procs": 1267.26}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30034.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 158239404.0, "Ops per second": 5268569.63, "ns per ops": 189.8, "Ops per threads": 19779925.0, "Ops per procs": 39559851.0, "Ops/sec/procs": 1317142.41, "ns per ops/procs": 759.22}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30033.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 936124528.0, "Ops per second": 31169808.87, "ns per ops": 32.08, "Ops per threads": 3250432.0, "Ops per procs": 6500864.0, "Ops/sec/procs": 216457.01, "ns per ops/procs": 4619.86}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30098.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 65654632.0, "Ops per second": 2188487.0, "ns per ops": 458.0, "Ops per threads": 8206829.0, "Ops per procs": 16413658.0, "Ops/sec/procs": 547121.0, "ns per ops/procs": 1833.0}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30048.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 257814382.0, "Ops per second": 8579813.16, "ns per ops": 116.55, "Ops per threads": 1790377.0, "Ops per procs": 3580755.0, "Ops/sec/procs": 119164.07, "ns per ops/procs": 8391.79}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30032.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 768715895.0, "Ops per second": 25595999.61, "ns per ops": 39.07, "Ops per threads": 2669152.0, "Ops per procs": 5338304.0, "Ops/sec/procs": 177750.0, "ns per ops/procs": 5625.88}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30046.449574, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 679676853.0, "Total blocks": 256788079.0, "Ops per second": 22620870.77, "ns per ops": 44.21, "Ops per threads": 7079967.0, "Ops per procs": 14159934.0, "Ops/sec/procs": 471268.14, "ns per ops/procs": 2121.93}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 338568719.0, "Ops per second": 11285623.0, "ns per ops": 88.0, "Ops per threads": 3526757.0, "Ops per procs": 7053514.0, "Ops/sec/procs": 235117.0, "ns per ops/procs": 4267.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30005.833734, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 550545435.0, "Total blocks": 214024547.0, "Ops per second": 18347946.6, "ns per ops": 54.5, "Ops per threads": 1911616.0, "Ops per procs": 3823232.0, "Ops/sec/procs": 127416.3, "ns per ops/procs": 7848.29}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30071.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 274299766.0, "Ops per second": 9121672.24, "ns per ops": 109.63, "Ops per threads": 2857289.0, "Ops per procs": 5714578.0, "Ops/sec/procs": 190034.84, "ns per ops/procs": 5262.19}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30099.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 251083140.0, "Ops per second": 8369438.0, "ns per ops": 119.0, "Ops per threads": 1743632.0, "Ops per procs": 3487265.0, "Ops/sec/procs": 116242.0, "ns per ops/procs": 8631.0}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30053.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 286748205.0, "Ops per second": 9541326.59, "ns per ops": 104.81, "Ops per threads": 1991306.0, "Ops per procs": 3982613.0, "Ops/sec/procs": 132518.42, "ns per ops/procs": 7546.12}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30054.613179, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 145585970.0, "Total blocks": 69102669.0, "Ops per second": 4844047.37, "ns per ops": 206.44, "Ops per threads": 18198246.0, "Ops per procs": 36396492.0, "Ops/sec/procs": 1211011.84, "ns per ops/procs": 825.76}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30049.833864, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 689933425.0, "Total blocks": 262361792.0, "Ops per second": 22959641.91, "ns per ops": 43.55, "Ops per threads": 7186806.0, "Ops per procs": 14373613.0, "Ops/sec/procs": 478325.87, "ns per ops/procs": 2090.62}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 80294623.0, "Total blocks": 40143768.0, "Ops per second": 2674375.54, "ns per ops": 373.92, "Ops per threads": 20073655.0, "Ops per procs": 40147311.0, "Ops/sec/procs": 1337187.77, "ns per ops/procs": 747.84}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 526111446.0, "Total blocks": 271453354.0, "Ops per second": 17533679.4, "ns per ops": 57.03, "Ops per threads": 5480327.0, "Ops per procs": 10960655.0, "Ops/sec/procs": 365284.99, "ns per ops/procs": 2737.59}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 158621402.0, "Ops per second": 5287380.0, "ns per ops": 189.0, "Ops per threads": 79310701.0, "Ops per procs": 158621402.0, "Ops/sec/procs": 5287380.0, "ns per ops/procs": 189.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30021.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 66689404.0, "Ops per second": 2222980.0, "ns per ops": 450.0, "Ops per threads": 16672351.0, "Ops per procs": 33344702.0, "Ops/sec/procs": 1111490.0, "ns per ops/procs": 900.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 297831635.0, "Ops per second": 9927721.0, "ns per ops": 101.0, "Ops per threads": 1551206.0, "Ops per procs": 3102412.0, "Ops/sec/procs": 103413.0, "ns per ops/procs": 9701.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30060.125592, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 195182556.0, "Total blocks": 82466324.0, "Ops per second": 6493071.87, "ns per ops": 154.01, "Ops per threads": 12198909.0, "Ops per procs": 24397819.0, "Ops/sec/procs": 811633.98, "ns per ops/procs": 1232.08}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 110117326.0, "Ops per second": 3670577.0, "ns per ops": 273.0, "Ops per threads": 6882332.0, "Ops per procs": 13764665.0, "Ops/sec/procs": 458822.0, "ns per ops/procs": 2186.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 79463065.0, "Total blocks": 39729042.0, "Ops per second": 2646649.15, "ns per ops": 377.84, "Ops per threads": 19865766.0, "Ops per procs": 39731532.0, "Ops/sec/procs": 1323324.58, "ns per ops/procs": 755.67}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30010.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 605835222.0, "Total blocks": 304967349.0, "Ops per second": 20187108.92, "ns per ops": 49.54, "Ops per threads": 2103594.0, "Ops per procs": 4207189.0, "Ops/sec/procs": 140188.26, "ns per ops/procs": 7133.27}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30003.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 302996605.0, "Total blocks": 152280272.0, "Ops per second": 10098574.22, "ns per ops": 99.02, "Ops per threads": 6312429.0, "Ops per procs": 12624858.0, "Ops/sec/procs": 420773.93, "ns per ops/procs": 2376.57}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30063.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 263974491.0, "Ops per second": 8780597.13, "ns per ops": 113.89, "Ops per threads": 1833156.0, "Ops per procs": 3666312.0, "Ops/sec/procs": 121952.74, "ns per ops/procs": 8199.9}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30012.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 672129079.0, "Total blocks": 298500598.0, "Ops per second": 22395211.33, "ns per ops": 44.65, "Ops per threads": 1750336.0, "Ops per procs": 3500672.0, "Ops/sec/procs": 116641.73, "ns per ops/procs": 8573.26}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30078.521489, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 295572242.0, "Total blocks": 91034450.0, "Ops per second": 9826687.86, "ns per ops": 101.76, "Ops per threads": 9236632.0, "Ops per procs": 18473265.0, "Ops/sec/procs": 614167.99, "ns per ops/procs": 1628.22}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30066.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 257883471.0, "Ops per second": 8577140.73, "ns per ops": 116.59, "Ops per threads": 2686286.0, "Ops per procs": 5372572.0, "Ops/sec/procs": 178690.43, "ns per ops/procs": 5596.27}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 114378910.0, "Ops per second": 3812630.0, "ns per ops": 263.0, "Ops per threads": 7148681.0, "Ops per procs": 14297363.0, "Ops/sec/procs": 476578.0, "ns per ops/procs": 2105.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30010.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 595866627.0, "Total blocks": 302300926.0, "Ops per second": 19855595.43, "ns per ops": 50.36, "Ops per threads": 2068981.0, "Ops per procs": 4137962.0, "Ops/sec/procs": 137886.08, "ns per ops/procs": 7252.36}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30083.725009, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 594539519.0, "Total blocks": 209451487.0, "Ops per second": 19762829.2, "ns per ops": 50.6, "Ops per threads": 3096559.0, "Ops per procs": 6193119.0, "Ops/sec/procs": 205862.8, "ns per ops/procs": 4857.6}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30068.32569, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 473955591.0, "Total blocks": 172797486.0, "Ops per second": 15762619.97, "ns per ops": 63.44, "Ops per threads": 3291358.0, "Ops per procs": 6582716.0, "Ops/sec/procs": 218925.28, "ns per ops/procs": 4567.77}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 121887182.0, "Total blocks": 72184844.0, "Ops per second": 4059533.5, "ns per ops": 246.33, "Ops per threads": 15235897.0, "Ops per procs": 30471795.0, "Ops/sec/procs": 1014883.37, "ns per ops/procs": 985.33}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30096.372864, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 626203631.0, "Total blocks": 242910382.0, "Ops per second": 20806614.6, "ns per ops": 48.06, "Ops per threads": 1630738.0, "Ops per procs": 3261477.0, "Ops/sec/procs": 108367.78, "ns per ops/procs": 9227.84}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30050.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 191434669.0, "Ops per second": 6370524.41, "ns per ops": 156.97, "Ops per threads": 11964666.0, "Ops per procs": 23929333.0, "Ops/sec/procs": 796315.55, "ns per ops/procs": 1255.78}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30075.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 167550533.0, "Ops per second": 5570917.08, "ns per ops": 179.5, "Ops per threads": 5235954.0, "Ops per procs": 10471908.0, "Ops/sec/procs": 348182.32, "ns per ops/procs": 2872.06}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30060.388705, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 194030823.0, "Total blocks": 86845651.0, "Ops per second": 6454701.07, "ns per ops": 154.93, "Ops per threads": 12126926.0, "Ops per procs": 24253852.0, "Ops/sec/procs": 806837.63, "ns per ops/procs": 1239.41}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30077.807346, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 272460794.0, "Total blocks": 105602793.0, "Ops per second": 9058532.45, "ns per ops": 110.39, "Ops per threads": 8514399.0, "Ops per procs": 17028799.0, "Ops/sec/procs": 566158.28, "ns per ops/procs": 1766.29}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 158597202.0, "Ops per second": 5286573.0, "ns per ops": 189.0, "Ops per threads": 79298601.0, "Ops per procs": 158597202.0, "Ops/sec/procs": 5286573.0, "ns per ops/procs": 189.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30063.437763, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 197582975.0, "Total blocks": 83007255.0, "Ops per second": 6572201.64, "ns per ops": 152.16, "Ops per threads": 12348935.0, "Ops per procs": 24697871.0, "Ops/sec/procs": 821525.21, "ns per ops/procs": 1217.25}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30070.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 256667676.0, "Ops per second": 8535623.17, "ns per ops": 117.16, "Ops per threads": 2673621.0, "Ops per procs": 5347243.0, "Ops/sec/procs": 177825.48, "ns per ops/procs": 5623.49}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30052.083819, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 148801360.0, "Total blocks": 74401550.0, "Ops per second": 4951448.99, "ns per ops": 201.96, "Ops per threads": 37200340.0, "Ops per procs": 74400680.0, "Ops/sec/procs": 2475724.49, "ns per ops/procs": 403.92}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30042.596541, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 526193803.0, "Total blocks": 189657858.0, "Ops per second": 17514924.26, "ns per ops": 57.09, "Ops per threads": 2740592.0, "Ops per procs": 5481185.0, "Ops/sec/procs": 182447.13, "ns per ops/procs": 5481.04}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30054.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 293505901.0, "Ops per second": 9765855.89, "ns per ops": 102.4, "Ops per threads": 146752950.0, "Ops per procs": 293505901.0, "Ops/sec/procs": 9765855.89, "ns per ops/procs": 102.4}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30051.751868, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 150988568.0, "Total blocks": 75494776.0, "Ops per second": 5024285.06, "ns per ops": 199.03, "Ops per threads": 37747142.0, "Ops per procs": 75494284.0, "Ops/sec/procs": 2512142.53, "ns per ops/procs": 398.07}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30013.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 671127303.0, "Total blocks": 299236142.0, "Ops per second": 22360758.37, "ns per ops": 44.72, "Ops per threads": 1747727.0, "Ops per procs": 3495454.0, "Ops/sec/procs": 116462.28, "ns per ops/procs": 8586.47}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30064.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 672919098.0, "Total blocks": 299322085.0, "Ops per second": 22382812.47, "ns per ops": 44.68, "Ops per threads": 1752393.0, "Ops per procs": 3504786.0, "Ops/sec/procs": 116577.15, "ns per ops/procs": 8578.01}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 79618864.0, "Total blocks": 39806676.0, "Ops per second": 2651844.46, "ns per ops": 377.1, "Ops per threads": 19904716.0, "Ops per procs": 39809432.0, "Ops/sec/procs": 1325922.23, "ns per ops/procs": 754.19}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 241590709.0, "Ops per second": 8053023.0, "ns per ops": 124.0, "Ops per threads": 1677713.0, "Ops per procs": 3355426.0, "Ops/sec/procs": 111847.0, "ns per ops/procs": 8969.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30025.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 149853746.0, "Total blocks": 77449354.0, "Ops per second": 4990948.6, "ns per ops": 200.36, "Ops per threads": 9365859.0, "Ops per procs": 18731718.0, "Ops/sec/procs": 623868.57, "ns per ops/procs": 1602.9}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 256048210.0, "Total blocks": 127929187.0, "Ops per second": 8533728.88, "ns per ops": 117.18, "Ops per threads": 5334337.0, "Ops per procs": 10668675.0, "Ops/sec/procs": 355572.04, "ns per ops/procs": 2812.37}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30052.652122, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 139391507.0, "Total blocks": 66315608.0, "Ops per second": 4638243.12, "ns per ops": 215.6, "Ops per threads": 17423938.0, "Ops per procs": 34847876.0, "Ops/sec/procs": 1159560.78, "ns per ops/procs": 862.4}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30057.872315, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 689133024.0, "Total blocks": 252210676.0, "Ops per second": 22926873.09, "ns per ops": 43.62, "Ops per threads": 7178469.0, "Ops per procs": 14356938.0, "Ops/sec/procs": 477643.19, "ns per ops/procs": 2093.61}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30074.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 238752493.0, "Ops per second": 7938751.3, "ns per ops": 125.96, "Ops per threads": 1658003.0, "Ops per procs": 3316006.0, "Ops/sec/procs": 110260.43, "ns per ops/procs": 9069.44}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 163469545.0, "Ops per second": 5448984.0, "ns per ops": 184.0, "Ops per threads": 5108423.0, "Ops per procs": 10216846.0, "Ops/sec/procs": 340561.0, "ns per ops/procs": 2945.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 361341819.0, "Ops per second": 12044727.0, "ns per ops": 83.0, "Ops per threads": 3763977.0, "Ops per procs": 7527954.0, "Ops/sec/procs": 250931.0, "ns per ops/procs": 3998.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 239667794.0, "Ops per second": 7988926.0, "ns per ops": 125.0, "Ops per threads": 4993079.0, "Ops per procs": 9986158.0, "Ops/sec/procs": 332871.0, "ns per ops/procs": 3013.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 78039867.0, "Ops per second": 2601328.0, "ns per ops": 385.0, "Ops per threads": 9754983.0, "Ops per procs": 19509966.0, "Ops/sec/procs": 650332.0, "ns per ops/procs": 1542.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30018.372023, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 341662637.0, "Total blocks": 133031434.0, "Ops per second": 11381784.35, "ns per ops": 87.86, "Ops per threads": 7117971.0, "Ops per procs": 14235943.0, "Ops/sec/procs": 474241.01, "ns per ops/procs": 2108.63}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 404829265.0, "Total blocks": 196264122.0, "Ops per second": 13490080.8, "ns per ops": 74.13, "Ops per threads": 2108485.0, "Ops per procs": 4216971.0, "Ops/sec/procs": 140521.67, "ns per ops/procs": 7116.34}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30032.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 941573117.0, "Ops per second": 31351654.72, "ns per ops": 31.9, "Ops per threads": 3269351.0, "Ops per procs": 6538702.0, "Ops/sec/procs": 217719.82, "ns per ops/procs": 4593.06}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 338883845.0, "Total blocks": 164417272.0, "Ops per second": 11292653.29, "ns per ops": 88.55, "Ops per threads": 2353360.0, "Ops per procs": 4706720.0, "Ops/sec/procs": 156842.41, "ns per ops/procs": 6375.83}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30032.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 159747516.0, "Ops per second": 5319197.82, "ns per ops": 188.0, "Ops per threads": 19968439.0, "Ops per procs": 39936879.0, "Ops/sec/procs": 1329799.46, "ns per ops/procs": 751.99}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30021.81603, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 351968670.0, "Total blocks": 113490020.0, "Ops per second": 11723763.47, "ns per ops": 85.3, "Ops per threads": 7332680.0, "Ops per procs": 14665361.0, "Ops/sec/procs": 488490.14, "ns per ops/procs": 2047.12}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 310993620.0, "Ops per second": 10366454.0, "ns per ops": 96.0, "Ops per threads": 1619758.0, "Ops per procs": 3239516.0, "Ops/sec/procs": 107983.0, "ns per ops/procs": 9291.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 126857126.0, "Total blocks": 74459956.0, "Ops per second": 4225116.89, "ns per ops": 236.68, "Ops per threads": 15857140.0, "Ops per procs": 31714281.0, "Ops/sec/procs": 1056279.22, "ns per ops/procs": 946.72}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 104937295.0, "Ops per second": 3497909.0, "ns per ops": 286.0, "Ops per threads": 6558580.0, "Ops per procs": 13117161.0, "Ops/sec/procs": 437238.0, "ns per ops/procs": 2294.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 246626237.0, "Ops per second": 8220874.0, "ns per ops": 122.0, "Ops per threads": 1712682.0, "Ops per procs": 3425364.0, "Ops/sec/procs": 114178.0, "ns per ops/procs": 8786.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 317396895.0, "Ops per second": 10579896.0, "ns per ops": 94.0, "Ops per threads": 1653108.0, "Ops per procs": 3306217.0, "Ops/sec/procs": 110207.0, "ns per ops/procs": 9103.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30024.409018, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 470417111.0, "Total blocks": 175676580.0, "Ops per second": 15667822.49, "ns per ops": 63.83, "Ops per threads": 3266785.0, "Ops per procs": 6533570.0, "Ops/sec/procs": 217608.65, "ns per ops/procs": 4595.41}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30012.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 643034270.0, "Total blocks": 283277071.0, "Ops per second": 21425195.98, "ns per ops": 46.67, "Ops per threads": 1674568.0, "Ops per procs": 3349136.0, "Ops/sec/procs": 111589.56, "ns per ops/procs": 8961.41}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30099.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 65816728.0, "Ops per second": 2193890.0, "ns per ops": 457.0, "Ops per threads": 8227091.0, "Ops per procs": 16454182.0, "Ops/sec/procs": 548472.0, "ns per ops/procs": 1829.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30081.905352, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 533724834.0, "Total blocks": 207513952.0, "Ops per second": 17742387.92, "ns per ops": 56.36, "Ops per threads": 1853211.0, "Ops per procs": 3706422.0, "Ops/sec/procs": 123211.03, "ns per ops/procs": 8116.16}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30006.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 255476269.0, "Ops per second": 8514064.65, "ns per ops": 117.45, "Ops per threads": 5322422.0, "Ops per procs": 10644844.0, "Ops/sec/procs": 354752.69, "ns per ops/procs": 2818.87}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 79549342.0, "Total blocks": 39772198.0, "Ops per second": 2649544.1, "ns per ops": 377.42, "Ops per threads": 19887335.0, "Ops per procs": 39774671.0, "Ops/sec/procs": 1324772.05, "ns per ops/procs": 754.85}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30099.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 264685790.0, "Ops per second": 8822859.0, "ns per ops": 113.0, "Ops per threads": 1838095.0, "Ops per procs": 3676191.0, "Ops/sec/procs": 122539.0, "ns per ops/procs": 8187.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30098.818672, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 607112623.0, "Total blocks": 228878907.0, "Ops per second": 20170646.22, "ns per ops": 49.58, "Ops per threads": 1581022.0, "Ops per procs": 3162044.0, "Ops/sec/procs": 105055.45, "ns per ops/procs": 9518.79}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 246785819.0, "Ops per second": 8226193.0, "ns per ops": 121.0, "Ops per threads": 5141371.0, "Ops per procs": 10282742.0, "Ops/sec/procs": 342758.0, "ns per ops/procs": 2927.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30044.89221, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 679548565.0, "Total blocks": 245615223.0, "Ops per second": 22617773.44, "ns per ops": 44.21, "Ops per threads": 7078630.0, "Ops per procs": 14157261.0, "Ops/sec/procs": 471203.61, "ns per ops/procs": 2122.22}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30055.51454, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 152177674.0, "Total blocks": 66597507.0, "Ops per second": 5063219.72, "ns per ops": 197.5, "Ops per threads": 19022209.0, "Ops per procs": 38044418.0, "Ops/sec/procs": 1265804.93, "ns per ops/procs": 790.01}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 97296542.0, "Ops per second": 3243218.0, "ns per ops": 309.0, "Ops per threads": 6081033.0, "Ops per procs": 12162067.0, "Ops/sec/procs": 405402.0, "ns per ops/procs": 2474.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30010.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 590020576.0, "Total blocks": 299813270.0, "Ops per second": 19660392.13, "ns per ops": 50.86, "Ops per threads": 2048682.0, "Ops per procs": 4097365.0, "Ops/sec/procs": 136530.5, "ns per ops/procs": 7324.37}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30068.178489, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 537900077.0, "Total blocks": 194915970.0, "Ops per second": 17889346.95, "ns per ops": 55.9, "Ops per threads": 2801562.0, "Ops per procs": 5603125.0, "Ops/sec/procs": 186347.36, "ns per ops/procs": 5366.32}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 157017519.0, "Ops per second": 5233917.0, "ns per ops": 191.0, "Ops per threads": 4906797.0, "Ops per procs": 9813594.0, "Ops/sec/procs": 327119.0, "ns per ops/procs": 3066.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30099.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 263588610.0, "Ops per second": 8786287.0, "ns per ops": 114.0, "Ops per threads": 1830476.0, "Ops per procs": 3660952.0, "Ops/sec/procs": 122031.0, "ns per ops/procs": 8221.0}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30030.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 386425745.0, "Ops per second": 12867691.17, "ns per ops": 77.71, "Ops per threads": 1006317.0, "Ops per procs": 2012634.0, "Ops/sec/procs": 67019.22, "ns per ops/procs": 14921.09}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30021.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 256531765.0, "Ops per second": 8545073.79, "ns per ops": 117.03, "Ops per threads": 5344411.0, "Ops per procs": 10688823.0, "Ops/sec/procs": 356044.74, "ns per ops/procs": 2808.64}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30077.892052, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 263751023.0, "Total blocks": 102657263.0, "Ops per second": 8768933.09, "ns per ops": 114.04, "Ops per threads": 8242219.0, "Ops per procs": 16484438.0, "Ops/sec/procs": 548058.32, "ns per ops/procs": 1824.62}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 414160455.0, "Total blocks": 201822965.0, "Ops per second": 13801001.71, "ns per ops": 72.46, "Ops per threads": 2157085.0, "Ops per procs": 4314171.0, "Ops/sec/procs": 143760.43, "ns per ops/procs": 6956.02}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30074.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 259890152.0, "Ops per second": 8641576.06, "ns per ops": 115.72, "Ops per threads": 1353594.0, "Ops per procs": 2707189.0, "Ops/sec/procs": 90016.42, "ns per ops/procs": 11109.08}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30030.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 265992205.0, "Ops per second": 8857304.01, "ns per ops": 112.9, "Ops per threads": 1847168.0, "Ops per procs": 3694336.0, "Ops/sec/procs": 123018.11, "ns per ops/procs": 8128.88}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30019.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 116506198.0, "Ops per second": 3880962.4, "ns per ops": 257.67, "Ops per threads": 29126549.0, "Ops per procs": 58253099.0, "Ops/sec/procs": 1940481.2, "ns per ops/procs": 515.34}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30098.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 572012936.0, "Ops per second": 19067097.0, "ns per ops": 52.0, "Ops per threads": 1489617.0, "Ops per procs": 2979234.0, "Ops/sec/procs": 99307.0, "ns per ops/procs": 10102.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30037.388555, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 144.0, "Total Operations(ops)": 559307800.0, "Total blocks": 216255389.0, "Ops per second": 18620387.02, "ns per ops": 53.7, "Ops per threads": 1942040.0, "Ops per procs": 3884081.0, "Ops/sec/procs": 129308.24, "ns per ops/procs": 7733.46}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30098.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 579495819.0, "Ops per second": 19316527.0, "ns per ops": 51.0, "Ops per threads": 1509103.0, "Ops per procs": 3018207.0, "Ops/sec/procs": 100606.0, "ns per ops/procs": 9972.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30064.125041, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 677214696.0, "Total blocks": 263976927.0, "Ops per second": 22525674.54, "ns per ops": 44.39, "Ops per threads": 7054319.0, "Ops per procs": 14108639.0, "Ops/sec/procs": 469284.89, "ns per ops/procs": 2130.9}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30069.292225, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 568277943.0, "Total blocks": 223678487.0, "Ops per second": 18898946.43, "ns per ops": 52.91, "Ops per threads": 1479890.0, "Ops per procs": 2959780.0, "Ops/sec/procs": 98432.01, "ns per ops/procs": 10159.3}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 122561268.0, "Total blocks": 72582809.0, "Ops per second": 4081987.94, "ns per ops": 244.98, "Ops per threads": 15320158.0, "Ops per procs": 30640317.0, "Ops/sec/procs": 1020496.99, "ns per ops/procs": 979.91}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30085.992156, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 618135923.0, "Total blocks": 237426548.0, "Ops per second": 20545638.64, "ns per ops": 48.67, "Ops per threads": 1609728.0, "Ops per procs": 3219457.0, "Ops/sec/procs": 107008.53, "ns per ops/procs": 9345.05}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30025.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 280164068.0, "Ops per second": 9331008.17, "ns per ops": 107.17, "Ops per threads": 1945583.0, "Ops per procs": 3891167.0, "Ops/sec/procs": 129597.34, "ns per ops/procs": 7716.21}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 2.0, "Total Operations(ops)": 77659393.0, "Total blocks": 38826979.0, "Ops per second": 2586544.52, "ns per ops": 386.62, "Ops per threads": 19414848.0, "Ops per procs": 38829696.0, "Ops/sec/procs": 1293272.26, "ns per ops/procs": 773.23}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 342142425.0, "Total blocks": 166866953.0, "Ops per second": 11401232.29, "ns per ops": 87.71, "Ops per threads": 2375989.0, "Ops per procs": 4751978.0, "Ops/sec/procs": 158350.45, "ns per ops/procs": 6315.11}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 561561175.0, "Ops per second": 18718705.0, "ns per ops": 53.0, "Ops per threads": 1462398.0, "Ops per procs": 2924797.0, "Ops/sec/procs": 97493.0, "ns per ops/procs": 10290.0}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30065.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 274927849.0, "Ops per second": 9144283.56, "ns per ops": 109.36, "Ops per threads": 2863831.0, "Ops per procs": 5727663.0, "Ops/sec/procs": 190505.91, "ns per ops/procs": 5249.18}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 95144884.0, "Ops per second": 3171496.0, "ns per ops": 316.0, "Ops per threads": 5946555.0, "Ops per procs": 11893110.0, "Ops/sec/procs": 396437.0, "ns per ops/procs": 2530.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 433296312.0, "Ops per second": 14443210.0, "ns per ops": 69.0, "Ops per threads": 1504501.0, "Ops per procs": 3009002.0, "Ops/sec/procs": 100300.0, "ns per ops/procs": 10002.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30021.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185470146.0, "Total blocks": 0.0, "Ops per second": 6177811.29, "ns per ops": 161.87, "Ops per threads": 92735073.0, "Ops per procs": 185470146.0, "Ops/sec/procs": 6177811.29, "ns per ops/procs": 161.87}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30008.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 347307995.0, "Total blocks": 167691727.0, "Ops per second": 11573513.84, "ns per ops": 86.4, "Ops per threads": 2411861.0, "Ops per procs": 4823722.0, "Ops/sec/procs": 160743.25, "ns per ops/procs": 6221.1}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 90388591.0, "Ops per second": 3012953.0, "ns per ops": 331.0, "Ops per threads": 11298573.0, "Ops per procs": 22597147.0, "Ops/sec/procs": 753238.0, "ns per ops/procs": 1327.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30016.126726, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 626407233.0, "Total blocks": 246809138.0, "Ops per second": 20869022.8, "ns per ops": 47.92, "Ops per threads": 1631268.0, "Ops per procs": 3262537.0, "Ops/sec/procs": 108692.83, "ns per ops/procs": 9200.24}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30048.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 8.0, "Total Operations(ops)": 192068275.0, "Ops per second": 6391903.05, "ns per ops": 156.45, "Ops per threads": 12004267.0, "Ops per procs": 24008534.0, "Ops/sec/procs": 798987.88, "ns per ops/procs": 1251.58}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 110867565.0, "Ops per second": 3695585.0, "ns per ops": 271.0, "Ops per threads": 6929222.0, "Ops per procs": 13858445.0, "Ops/sec/procs": 461948.0, "ns per ops/procs": 2171.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 6.0, "Total Operations(ops)": 158375636.0, "Ops per second": 5279187.0, "ns per ops": 190.0, "Ops per threads": 79187818.0, "Ops per procs": 158375636.0, "Ops/sec/procs": 5279187.0, "ns per ops/procs": 190.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 120506992.0, "Total blocks": 71485222.0, "Ops per second": 4013621.13, "ns per ops": 249.15, "Ops per threads": 15063374.0, "Ops per procs": 30126748.0, "Ops/sec/procs": 1003405.28, "ns per ops/procs": 996.61}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30036.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 259272763.0, "Ops per second": 8631802.64, "ns per ops": 115.85, "Ops per threads": 2700757.0, "Ops per procs": 5401515.0, "Ops/sec/procs": 179829.22, "ns per ops/procs": 5560.83}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 6.0, "Total Operations(ops)": 148769038.0, "Ops per second": 4958967.0, "ns per ops": 202.0, "Ops per threads": 4649032.0, "Ops per procs": 9298064.0, "Ops/sec/procs": 309935.0, "ns per ops/procs": 3237.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 122412328.0, "Total blocks": 72540051.0, "Ops per second": 4077092.61, "ns per ops": 245.27, "Ops per threads": 15301541.0, "Ops per procs": 30603082.0, "Ops/sec/procs": 1019273.15, "ns per ops/procs": 981.09}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30054.42209, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 155618160.0, "Total blocks": 66780078.0, "Ops per second": 5177878.97, "ns per ops": 193.13, "Ops per threads": 19452270.0, "Ops per procs": 38904540.0, "Ops/sec/procs": 1294469.74, "ns per ops/procs": 772.52}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 107016269.0, "Ops per second": 3567208.0, "ns per ops": 281.0, "Ops per threads": 6688516.0, "Ops per procs": 13377033.0, "Ops/sec/procs": 445901.0, "ns per ops/procs": 2249.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30020.84031, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 335636349.0, "Total blocks": 121290801.0, "Ops per second": 11180111.73, "ns per ops": 89.44, "Ops per threads": 6992423.0, "Ops per procs": 13984847.0, "Ops/sec/procs": 465837.99, "ns per ops/procs": 2146.67}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 66909163.0, "Ops per second": 2230305.0, "ns per ops": 449.0, "Ops per threads": 8363645.0, "Ops per procs": 16727290.0, "Ops/sec/procs": 557576.0, "ns per ops/procs": 1799.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30081.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 168078161.0, "Ops per second": 5587397.48, "ns per ops": 178.97, "Ops per threads": 5252442.0, "Ops per procs": 10504885.0, "Ops/sec/procs": 349212.34, "ns per ops/procs": 2863.59}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 419559692.0, "Total blocks": 202526436.0, "Ops per second": 13980959.21, "ns per ops": 71.53, "Ops per threads": 2185206.0, "Ops per procs": 4370413.0, "Ops/sec/procs": 145634.99, "ns per ops/procs": 6866.48}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30003.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 301263853.0, "Total blocks": 151393973.0, "Ops per second": 10040792.74, "ns per ops": 99.59, "Ops per threads": 6276330.0, "Ops per procs": 12552660.0, "Ops/sec/procs": 418366.36, "ns per ops/procs": 2390.25}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 6.0, "Total Operations(ops)": 293519361.0, "Ops per second": 9783978.0, "ns per ops": 102.0, "Ops per threads": 1528746.0, "Ops per procs": 3057493.0, "Ops/sec/procs": 101916.0, "ns per ops/procs": 9843.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 126886524.0, "Total blocks": 74568609.0, "Ops per second": 4226120.88, "ns per ops": 236.62, "Ops per threads": 15860815.0, "Ops per procs": 31721631.0, "Ops/sec/procs": 1056530.22, "ns per ops/procs": 946.49}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30038.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 269033539.0, "Ops per second": 8956396.5, "ns per ops": 111.65, "Ops per threads": 1868288.0, "Ops per procs": 3736576.0, "Ops/sec/procs": 124394.4, "ns per ops/procs": 8038.95}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 288", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 288.0, "Number of spots": 6.0, "Total Operations(ops)": 441575269.0, "Ops per second": 14719175.0, "ns per ops": 68.0, "Ops per threads": 1533247.0, "Ops per procs": 3066494.0, "Ops/sec/procs": 102216.0, "ns per ops/procs": 9815.0}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30026.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 72.0, "Total Operations(ops)": 272928349.0, "Ops per second": 9089467.99, "ns per ops": 110.02, "Ops per threads": 1895335.0, "Ops per procs": 3790671.0, "Ops/sec/procs": 126242.61, "ns per ops/procs": 7921.26}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30070.064675, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 650309182.0, "Total blocks": 265196306.0, "Ops per second": 21626464.36, "ns per ops": 46.24, "Ops per threads": 6774053.0, "Ops per procs": 13548107.0, "Ops/sec/procs": 450551.34, "ns per ops/procs": 2219.5}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30055.258465, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 138718289.0, "Total blocks": 66049444.0, "Ops per second": 4615441.56, "ns per ops": 216.66, "Ops per threads": 17339786.0, "Ops per procs": 34679572.0, "Ops/sec/procs": 1153860.39, "ns per ops/procs": 866.66}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30054.464037, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 192.0, "Total Operations(ops)": 594728221.0, "Total blocks": 227093605.0, "Ops per second": 19788348.92, "ns per ops": 50.53, "Ops per threads": 1548771.0, "Ops per procs": 3097542.0, "Ops/sec/procs": 103064.32, "ns per ops/procs": 9702.68}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 144.0, "Number of spots": 6.0, "Total Operations(ops)": 262402060.0, "Ops per second": 8746735.0, "ns per ops": 114.0, "Ops per threads": 1822236.0, "Ops per procs": 3644473.0, "Ops/sec/procs": 121482.0, "ns per ops/procs": 8258.0}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30058.0, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 269076036.0, "Ops per second": 8951856.66, "ns per ops": 111.71, "Ops per threads": 1401437.0, "Ops per procs": 2802875.0, "Ops/sec/procs": 93248.51, "ns per ops/procs": 10724.03}],["rdq-churn-fibre", "./rdq-churn-fibre -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 185546705.0, "Total blocks": 0.0, "Ops per second": 6180325.98, "ns per ops": 161.8, "Ops per threads": 92773352.0, "Ops per procs": 185546705.0, "Ops/sec/procs": 6180325.98, "ns per ops/procs": 161.8}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 289825346.0, "Total blocks": 144426328.0, "Ops per second": 9659517.84, "ns per ops": 103.52, "Ops per threads": 6038028.0, "Ops per procs": 12076056.0, "Ops/sec/procs": 402479.91, "ns per ops/procs": 2484.6}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 6.0, "Total Operations(ops)": 366063094.0, "Ops per second": 12202103.0, "ns per ops": 82.0, "Ops per threads": 3813157.0, "Ops per procs": 7626314.0, "Ops/sec/procs": 254210.0, "ns per ops/procs": 3946.0}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30048.0, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 210055038.0, "Ops per second": 6990578.73, "ns per ops": 143.05, "Ops per threads": 105027519.0, "Ops per procs": 210055038.0, "Ops/sec/procs": 6990578.73, "ns per ops/procs": 143.05}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 276161638.0, "Total blocks": 138322434.0, "Ops per second": 9204123.96, "ns per ops": 108.65, "Ops per threads": 5753367.0, "Ops per procs": 11506734.0, "Ops/sec/procs": 383505.16, "ns per ops/procs": 2607.53}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30098.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 233863400.0, "Ops per second": 7795446.0, "ns per ops": 128.0, "Ops per threads": 4872154.0, "Ops per procs": 9744308.0, "Ops/sec/procs": 324810.0, "ns per ops/procs": 3088.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 384", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 384.0, "Number of spots": 6.0, "Total Operations(ops)": 566106974.0, "Ops per second": 18870232.0, "ns per ops": 53.0, "Ops per threads": 1474236.0, "Ops per procs": 2948473.0, "Ops/sec/procs": 98282.0, "ns per ops/procs": 10207.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30055.521339, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 149045195.0, "Total blocks": 63884658.0, "Ops per second": 4958995.5, "ns per ops": 201.65, "Ops per threads": 18630649.0, "Ops per procs": 37261298.0, "Ops/sec/procs": 1239748.87, "ns per ops/procs": 806.61}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 4", {"Duration (ms)": 30085.0, "Number of processors": 2.0, "Number of threads": 4.0, "Number of spots": 6.0, "Total Operations(ops)": 98072071.0, "Ops per second": 3269069.0, "ns per ops": 306.0, "Ops per threads": 24518017.0, "Ops per procs": 49036035.0, "Ops/sec/procs": 1634534.0, "ns per ops/procs": 613.0}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 32", {"Duration (ms)": 30073.0, "Number of processors": 16.0, "Number of threads": 32.0, "Number of spots": 16.0, "Total Operations(ops)": 168906626.0, "Ops per second": 5616458.52, "ns per ops": 178.05, "Ops per threads": 5278332.0, "Ops per procs": 10556664.0, "Ops/sec/procs": 351028.66, "ns per ops/procs": 2848.77}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 295170572.0, "Total blocks": 150231962.0, "Ops per second": 9837699.12, "ns per ops": 101.65, "Ops per threads": 6149386.0, "Ops per procs": 12298773.0, "Ops/sec/procs": 409904.13, "ns per ops/procs": 2439.6}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30012.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 24.0, "Total Operations(ops)": 255262513.0, "Ops per second": 8505334.59, "ns per ops": 117.57, "Ops per threads": 5317969.0, "Ops per procs": 10635938.0, "Ops/sec/procs": 354388.94, "ns per ops/procs": 2821.76}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 48.0, "Number of spots": 6.0, "Total Operations(ops)": 236400459.0, "Ops per second": 7880015.0, "ns per ops": 127.0, "Ops per threads": 4925009.0, "Ops per procs": 9850019.0, "Ops/sec/procs": 328333.0, "ns per ops/procs": 3055.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30033.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 158598013.0, "Ops per second": 5280720.15, "ns per ops": 189.37, "Ops per threads": 19824751.0, "Ops per procs": 39649503.0, "Ops/sec/procs": 1320180.04, "ns per ops/procs": 757.47}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 2", {"Duration (ms)": 30050.153252, "Number of processors": 1.0, "Number of threads": 2.0, "Number of spots": 1.0, "Total Operations(ops)": 260007942.0, "Total blocks": 157847158.0, "Ops per second": 8652466.42, "ns per ops": 115.57, "Ops per threads": 130003971.0, "Ops per procs": 260007942.0, "Ops/sec/procs": 8652466.42, "ns per ops/procs": 115.57}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 6.0, "Total Operations(ops)": 69417557.0, "Ops per second": 2313918.0, "ns per ops": 433.0, "Ops per threads": 8677194.0, "Ops per procs": 17354389.0, "Ops/sec/procs": 578479.0, "ns per ops/procs": 1734.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 16.0, "Number of spots": 6.0, "Total Operations(ops)": 104995796.0, "Ops per second": 3499859.0, "ns per ops": 286.0, "Ops per threads": 6562237.0, "Ops per procs": 13124474.0, "Ops/sec/procs": 437482.0, "ns per ops/procs": 2293.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 8.0, "Number of spots": 4.0, "Total Operations(ops)": 112060200.0, "Total blocks": 65073987.0, "Ops per second": 3732281.67, "ns per ops": 267.93, "Ops per threads": 14007525.0, "Ops per procs": 28015050.0, "Ops/sec/procs": 933070.42, "ns per ops/procs": 1071.73}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 192", {"Duration (ms)": 30023.135933, "Number of processors": 96.0, "Number of threads": 192.0, "Number of spots": 96.0, "Total Operations(ops)": 515531010.0, "Total blocks": 190965998.0, "Ops per second": 17171124.67, "ns per ops": 58.24, "Ops per threads": 2685057.0, "Ops per procs": 5370114.0, "Ops/sec/procs": 178865.88, "ns per ops/procs": 5590.78}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 96.0, "Number of spots": 48.0, "Total Operations(ops)": 513472966.0, "Total blocks": 265250105.0, "Ops per second": 17112470.96, "ns per ops": 58.44, "Ops per threads": 5348676.0, "Ops per procs": 10697353.0, "Ops/sec/procs": 356509.81, "ns per ops/procs": 2804.97}]]
  • doc/theses/thierry_delisle_PhD/thesis/data/cycle.jax

    r12df6fe r4520b77e  
    1 [["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 10 -r 5 -t 2400", {"Duration (ms)": 10001.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1138076440.0, "Ops per second": 113792094.48, "ns per ops": 8.79, "Ops per threads": 94839.0, "Ops per procs": 47419851.0, "Ops/sec/procs": 4741337.27, "ns per ops/procs": 210.91}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 10 -r 5 -t 1600", {"Duration (ms)": 200285.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 17638575791.0, "Ops per second": 88067238.72, "ns per ops": 11.35, "Ops per threads": 2204821.0, "Ops per procs": 1102410986.0, "Ops/sec/procs": 5504202.42, "ns per ops/procs": 181.68}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 10 -r 5 -t 100", {"Duration (ms)": 10100.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 54856916.0, "Ops per second": 5485691.0, "ns per ops": 184.0, "Ops per threads": 109713.0, "Ops per procs": 54856916.0, "Ops/sec/procs": 5485691.0, "ns per ops/procs": 184.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 10 -r 5 -t 1600", {"Duration (ms)": 10025.449006, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 558836360.0, "Total blocks": 558836360.0, "Ops per second": 55741778.71, "ns per ops": 17.94, "Ops per threads": 69854.0, "Ops per procs": 34927272.0, "Ops/sec/procs": 3483861.17, "ns per ops/procs": 287.04}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 10 -r 5 -t 1600", {"Duration (ms)": 10038.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 58647049.0, "Total blocks": 58647049.0, "Ops per second": 5842287.68, "ns per ops": 171.17, "Ops per threads": 7330.0, "Ops per procs": 3665440.0, "Ops/sec/procs": 365142.98, "ns per ops/procs": 2738.65}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 10 -r 5 -t 2400", {"Duration (ms)": 10003.489711, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 728096996.0, "Total blocks": 728096996.0, "Ops per second": 72784299.98, "ns per ops": 13.74, "Ops per threads": 60674.0, "Ops per procs": 30337374.0, "Ops/sec/procs": 3032679.17, "ns per ops/procs": 329.74}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 10 -r 5 -t 800", {"Duration (ms)": 10021.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 63157049.0, "Total blocks": 63157049.0, "Ops per second": 6302255.13, "ns per ops": 158.67, "Ops per threads": 15789.0, "Ops per procs": 7894631.0, "Ops/sec/procs": 787781.89, "ns per ops/procs": 1269.39}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 10 -r 5 -t 100", {"Duration (ms)": 10009.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 62412200.0, "Total blocks": 62411700.0, "Ops per second": 6235572.31, "ns per ops": 160.37, "Ops per threads": 124824.0, "Ops per procs": 62412200.0, "Ops/sec/procs": 6235572.31, "ns per ops/procs": 160.37}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 10 -r 5 -t 800", {"Duration (ms)": 10000.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 464608617.0, "Ops per second": 46457191.42, "ns per ops": 21.53, "Ops per threads": 116152.0, "Ops per procs": 58076077.0, "Ops/sec/procs": 5807148.93, "ns per ops/procs": 172.2}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 10 -r 5 -t 800", {"Duration (ms)": 10099.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 391521066.0, "Ops per second": 39152106.0, "ns per ops": 25.0, "Ops per threads": 97880.0, "Ops per procs": 48940133.0, "Ops/sec/procs": 4894013.0, "ns per ops/procs": 206.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 10 -r 5 -t 2400", {"Duration (ms)": 10099.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 963549550.0, "Ops per second": 96354955.0, "ns per ops": 10.0, "Ops per threads": 80295.0, "Ops per procs": 40147897.0, "Ops/sec/procs": 4014789.0, "ns per ops/procs": 251.0}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 10 -r 5 -t 1600", {"Duration (ms)": 10001.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 867718190.0, "Ops per second": 86761170.55, "ns per ops": 11.53, "Ops per threads": 108464.0, "Ops per procs": 54232386.0, "Ops/sec/procs": 5422573.16, "ns per ops/procs": 184.41}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 10 -r 5 -t 2400", {"Duration (ms)": 10100.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 962016289.0, "Ops per second": 96201628.0, "ns per ops": 10.0, "Ops per threads": 80168.0, "Ops per procs": 40084012.0, "Ops/sec/procs": 4008401.0, "ns per ops/procs": 251.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 10 -r 5 -t 100", {"Duration (ms)": 10016.837824, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 54738237.0, "Total blocks": 54737741.0, "Ops per second": 5464622.46, "ns per ops": 183.0, "Ops per threads": 109476.0, "Ops per procs": 54738237.0, "Ops/sec/procs": 5464622.46, "ns per ops/procs": 183.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 10 -r 5 -t 1600", {"Duration (ms)": 10099.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 731309408.0, "Ops per second": 73130940.0, "ns per ops": 13.0, "Ops per threads": 91413.0, "Ops per procs": 45706838.0, "Ops/sec/procs": 4570683.0, "ns per ops/procs": 220.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 10 -r 5 -t 1600", {"Duration (ms)": 10100.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 739772688.0, "Ops per second": 73977268.0, "ns per ops": 13.0, "Ops per threads": 92471.0, "Ops per procs": 46235793.0, "Ops/sec/procs": 4623579.0, "ns per ops/procs": 218.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 10 -r 5 -t 800", {"Duration (ms)": 10100.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 391449785.0, "Ops per second": 39144978.0, "ns per ops": 25.0, "Ops per threads": 97862.0, "Ops per procs": 48931223.0, "Ops/sec/procs": 4893122.0, "ns per ops/procs": 206.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 10 -r 5 -t 2400", {"Duration (ms)": 10048.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 57239183.0, "Total blocks": 57239183.0, "Ops per second": 5696211.13, "ns per ops": 175.56, "Ops per threads": 4769.0, "Ops per procs": 2384965.0, "Ops/sec/procs": 237342.13, "ns per ops/procs": 4213.33}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 10 -r 5 -t 100", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 55248375.0, "Ops per second": 5524562.87, "ns per ops": 181.01, "Ops per threads": 110496.0, "Ops per procs": 55248375.0, "Ops/sec/procs": 5524562.87, "ns per ops/procs": 181.01}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 10 -r 5 -t 800", {"Duration (ms)": 10021.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 61553053.0, "Total blocks": 61553053.0, "Ops per second": 6142186.88, "ns per ops": 162.81, "Ops per threads": 15388.0, "Ops per procs": 7694131.0, "Ops/sec/procs": 767773.36, "ns per ops/procs": 1302.47}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 10 -r 5 -t 100", {"Duration (ms)": 10008.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 62811642.0, "Total blocks": 62811142.0, "Ops per second": 6275517.47, "ns per ops": 159.35, "Ops per threads": 125623.0, "Ops per procs": 62811642.0, "Ops/sec/procs": 6275517.47, "ns per ops/procs": 159.35}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 10 -r 5 -t 800", {"Duration (ms)": 10018.820873, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 260866706.0, "Total blocks": 260862710.0, "Ops per second": 26037665.44, "ns per ops": 38.41, "Ops per threads": 65216.0, "Ops per procs": 32608338.0, "Ops/sec/procs": 3254708.18, "ns per ops/procs": 307.25}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 10 -r 5 -t 1600", {"Duration (ms)": 10000.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 874581175.0, "Ops per second": 87449851.2, "ns per ops": 11.44, "Ops per threads": 109322.0, "Ops per procs": 54661323.0, "Ops/sec/procs": 5465615.7, "ns per ops/procs": 182.96}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 10 -r 5 -t 100", {"Duration (ms)": 10099.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 55228782.0, "Ops per second": 5522878.0, "ns per ops": 182.0, "Ops per threads": 110457.0, "Ops per procs": 55228782.0, "Ops/sec/procs": 5522878.0, "ns per ops/procs": 182.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 10 -r 5 -t 100", {"Duration (ms)": 10009.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 62564955.0, "Total blocks": 62564455.0, "Ops per second": 6250797.96, "ns per ops": 159.98, "Ops per threads": 125129.0, "Ops per procs": 62564955.0, "Ops/sec/procs": 6250797.96, "ns per ops/procs": 159.98}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 10 -r 5 -t 1600", {"Duration (ms)": 10100.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 738848909.0, "Ops per second": 73884890.0, "ns per ops": 13.0, "Ops per threads": 92356.0, "Ops per procs": 46178056.0, "Ops/sec/procs": 4617805.0, "ns per ops/procs": 218.0}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 10 -r 5 -t 2400", {"Duration (ms)": 10001.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1131221613.0, "Ops per second": 113108175.94, "ns per ops": 8.84, "Ops per threads": 94268.0, "Ops per procs": 47134233.0, "Ops/sec/procs": 4712840.66, "ns per ops/procs": 212.19}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 10 -r 5 -t 2400", {"Duration (ms)": 10008.209159, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 729328104.0, "Total blocks": 729328099.0, "Ops per second": 72872987.81, "ns per ops": 13.72, "Ops per threads": 60777.0, "Ops per procs": 30388671.0, "Ops/sec/procs": 3036374.49, "ns per ops/procs": 329.34}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 10 -r 5 -t 2400", {"Duration (ms)": 10099.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 961002611.0, "Ops per second": 96100261.0, "ns per ops": 10.0, "Ops per threads": 80083.0, "Ops per procs": 40041775.0, "Ops/sec/procs": 4004177.0, "ns per ops/procs": 252.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 10 -r 5 -t 800", {"Duration (ms)": 10099.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 390098231.0, "Ops per second": 39009823.0, "ns per ops": 25.0, "Ops per threads": 97524.0, "Ops per procs": 48762278.0, "Ops/sec/procs": 4876227.0, "ns per ops/procs": 207.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 10 -r 5 -t 100", {"Duration (ms)": 10100.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 55237591.0, "Ops per second": 5523759.0, "ns per ops": 182.0, "Ops per threads": 110475.0, "Ops per procs": 55237591.0, "Ops/sec/procs": 5523759.0, "ns per ops/procs": 182.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 10 -r 5 -t 100", {"Duration (ms)": 10016.576699, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 54510321.0, "Total blocks": 54509820.0, "Ops per second": 5442011.04, "ns per ops": 183.76, "Ops per threads": 109020.0, "Ops per procs": 54510321.0, "Ops/sec/procs": 5442011.04, "ns per ops/procs": 183.76}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 10 -r 5 -t 2400", {"Duration (ms)": 10001.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1135730371.0, "Ops per second": 113558509.97, "ns per ops": 8.81, "Ops per threads": 94644.0, "Ops per procs": 47322098.0, "Ops/sec/procs": 4731604.58, "ns per ops/procs": 211.34}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 10 -r 5 -t 1600", {"Duration (ms)": 10039.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 61004037.0, "Total blocks": 61004037.0, "Ops per second": 6076255.04, "ns per ops": 164.58, "Ops per threads": 7625.0, "Ops per procs": 3812752.0, "Ops/sec/procs": 379765.94, "ns per ops/procs": 2633.2}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 10 -r 5 -t 2400", {"Duration (ms)": 10004.891999, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 747946345.0, "Total blocks": 747934349.0, "Ops per second": 74758062.86, "ns per ops": 13.38, "Ops per threads": 62328.0, "Ops per procs": 31164431.0, "Ops/sec/procs": 3114919.29, "ns per ops/procs": 321.04}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 10 -r 5 -t 800", {"Duration (ms)": 10000.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 466424792.0, "Ops per second": 46638931.23, "ns per ops": 21.44, "Ops per threads": 116606.0, "Ops per procs": 58303099.0, "Ops/sec/procs": 5829866.4, "ns per ops/procs": 171.53}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 10 -r 5 -t 2400", {"Duration (ms)": 10086.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 57343570.0, "Total blocks": 57343570.0, "Ops per second": 5685308.81, "ns per ops": 175.89, "Ops per threads": 4778.0, "Ops per procs": 2389315.0, "Ops/sec/procs": 236887.87, "ns per ops/procs": 4221.41}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 10 -r 5 -t 800", {"Duration (ms)": 10020.39533, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 263517289.0, "Total blocks": 263513293.0, "Ops per second": 26298093.07, "ns per ops": 38.03, "Ops per threads": 65879.0, "Ops per procs": 32939661.0, "Ops/sec/procs": 3287261.63, "ns per ops/procs": 304.2}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 10 -r 5 -t 1600", {"Duration (ms)": 10025.357431, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 551670395.0, "Total blocks": 551662399.0, "Ops per second": 55027503.89, "ns per ops": 18.17, "Ops per threads": 68958.0, "Ops per procs": 34479399.0, "Ops/sec/procs": 3439218.99, "ns per ops/procs": 290.76}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 10 -r 5 -t 2400", {"Duration (ms)": 10050.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 56162695.0, "Total blocks": 56162695.0, "Ops per second": 5588033.65, "ns per ops": 178.95, "Ops per threads": 4680.0, "Ops per procs": 2340112.0, "Ops/sec/procs": 232834.74, "ns per ops/procs": 4294.89}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 10 -r 5 -t 800", {"Duration (ms)": 10019.690183, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 271866976.0, "Total blocks": 271862980.0, "Ops per second": 27133271.69, "ns per ops": 36.86, "Ops per threads": 67966.0, "Ops per procs": 33983372.0, "Ops/sec/procs": 3391658.96, "ns per ops/procs": 294.84}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 10 -r 5 -t 800", {"Duration (ms)": 10057.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 62105022.0, "Total blocks": 62105022.0, "Ops per second": 6175186.04, "ns per ops": 161.94, "Ops per threads": 15526.0, "Ops per procs": 7763127.0, "Ops/sec/procs": 771898.25, "ns per ops/procs": 1295.51}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 10 -r 5 -t 1600", {"Duration (ms)": 10025.81217, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 537080117.0, "Total blocks": 537072121.0, "Ops per second": 53569736.59, "ns per ops": 18.67, "Ops per threads": 67135.0, "Ops per procs": 33567507.0, "Ops/sec/procs": 3348108.54, "ns per ops/procs": 298.68}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 10 -r 5 -t 100", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 55967030.0, "Ops per second": 5596438.25, "ns per ops": 178.69, "Ops per threads": 111934.0, "Ops per procs": 55967030.0, "Ops/sec/procs": 5596438.25, "ns per ops/procs": 178.69}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 10 -r 5 -t 100", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 55703320.0, "Ops per second": 5570084.72, "ns per ops": 179.53, "Ops per threads": 111406.0, "Ops per procs": 55703320.0, "Ops/sec/procs": 5570084.72, "ns per ops/procs": 179.53}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 10 -r 5 -t 800", {"Duration (ms)": 10000.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 469211793.0, "Ops per second": 46918327.16, "ns per ops": 21.31, "Ops per threads": 117302.0, "Ops per procs": 58651474.0, "Ops/sec/procs": 5864790.9, "ns per ops/procs": 170.51}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 10 -r 5 -t 100", {"Duration (ms)": 10016.545208, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 54925472.0, "Total blocks": 54924976.0, "Ops per second": 5483474.68, "ns per ops": 182.37, "Ops per threads": 109850.0, "Ops per procs": 54925472.0, "Ops/sec/procs": 5483474.68, "ns per ops/procs": 182.37}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 10 -r 5 -t 1600", {"Duration (ms)": 10037.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 60770550.0, "Total blocks": 60770550.0, "Ops per second": 6054474.7, "ns per ops": 165.17, "Ops per threads": 7596.0, "Ops per procs": 3798159.0, "Ops/sec/procs": 378404.67, "ns per ops/procs": 2642.67}]]
     1[["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30054.601589, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 535837409.0, "Total blocks": 535835409.0, "Ops per second": 17828797.61, "ns per ops": 56.09, "Ops per threads": 267918.0, "Ops per procs": 133959352.0, "Ops/sec/procs": 4457199.4, "ns per ops/procs": 224.36}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3133052990.0, "Ops per second": 104425531.66, "ns per ops": 9.58, "Ops per threads": 261087.0, "Ops per procs": 130543874.0, "Ops/sec/procs": 4351063.82, "ns per ops/procs": 229.83}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3286227696.0, "Ops per second": 109531834.45, "ns per ops": 9.13, "Ops per threads": 273852.0, "Ops per procs": 136926154.0, "Ops/sec/procs": 4563826.44, "ns per ops/procs": 219.11}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1329547026.0, "Total blocks": 1329547026.0, "Ops per second": 44275729.84, "ns per ops": 22.59, "Ops per threads": 332386.0, "Ops per procs": 166193378.0, "Ops/sec/procs": 5534466.23, "ns per ops/procs": 180.69}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 702807119.0, "Ops per second": 23425715.1, "ns per ops": 42.69, "Ops per threads": 351403.0, "Ops per procs": 175701779.0, "Ops/sec/procs": 5856428.77, "ns per ops/procs": 170.75}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30038.541847, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9709808606.0, "Total blocks": 9709808296.0, "Ops per second": 323245004.88, "ns per ops": 3.09, "Ops per threads": 134858.0, "Ops per procs": 67429226.0, "Ops/sec/procs": 2244756.98, "ns per ops/procs": 445.48}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3814183120.0, "Ops per second": 127139437.0, "ns per ops": 7.0, "Ops per threads": 158924.0, "Ops per procs": 79462148.0, "Ops/sec/procs": 2648738.0, "ns per ops/procs": 378.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30050.928766, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 290030978.0, "Total blocks": 290030060.0, "Ops per second": 9651314.95, "ns per ops": 103.61, "Ops per threads": 290030.0, "Ops per procs": 145015489.0, "Ops/sec/procs": 4825657.47, "ns per ops/procs": 207.23}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30013.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2527171711.0, "Total blocks": 2527171711.0, "Ops per second": 84200210.62, "ns per ops": 11.88, "Ops per threads": 210597.0, "Ops per procs": 105298821.0, "Ops/sec/procs": 3508342.11, "ns per ops/procs": 285.03}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30013.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3699605635.0, "Ops per second": 123264409.08, "ns per ops": 8.11, "Ops per threads": 154150.0, "Ops per procs": 77075117.0, "Ops/sec/procs": 2568008.52, "ns per ops/procs": 389.41}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167604505.0, "Ops per second": 5586574.53, "ns per ops": 179.0, "Ops per threads": 335209.0, "Ops per procs": 167604505.0, "Ops/sec/procs": 5586574.53, "ns per ops/procs": 179.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.488393, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168348907.0, "Total blocks": 168348411.0, "Ops per second": 5602388.46, "ns per ops": 178.5, "Ops per threads": 336697.0, "Ops per procs": 168348907.0, "Ops/sec/procs": 5602388.46, "ns per ops/procs": 178.5}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30060.462488, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1017833938.0, "Total blocks": 1017829988.0, "Ops per second": 33859556.83, "ns per ops": 29.53, "Ops per threads": 254458.0, "Ops per procs": 127229242.0, "Ops/sec/procs": 4232444.6, "ns per ops/procs": 236.27}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2185186510.0, "Ops per second": 72839550.0, "ns per ops": 13.0, "Ops per threads": 273148.0, "Ops per procs": 136574156.0, "Ops/sec/procs": 4552471.0, "ns per ops/procs": 220.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3833216096.0, "Ops per second": 127773869.0, "ns per ops": 7.0, "Ops per threads": 159717.0, "Ops per procs": 79858668.0, "Ops/sec/procs": 2661955.0, "ns per ops/procs": 376.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3822148650.0, "Ops per second": 127404955.0, "ns per ops": 7.0, "Ops per threads": 159256.0, "Ops per procs": 79628096.0, "Ops/sec/procs": 2654269.0, "ns per ops/procs": 377.0}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30002.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2591075881.0, "Ops per second": 86363018.79, "ns per ops": 11.58, "Ops per threads": 323884.0, "Ops per procs": 161942242.0, "Ops/sec/procs": 5397688.67, "ns per ops/procs": 185.26}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 166692261.0, "Ops per second": 5556165.5, "ns per ops": 179.98, "Ops per threads": 333384.0, "Ops per procs": 166692261.0, "Ops/sec/procs": 5556165.5, "ns per ops/procs": 179.98}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 600419275.0, "Ops per second": 20013975.0, "ns per ops": 50.0, "Ops per threads": 300209.0, "Ops per procs": 150104818.0, "Ops/sec/procs": 5003493.0, "ns per ops/procs": 200.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30054.816601, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 529583229.0, "Total blocks": 529581232.0, "Ops per second": 17620577.63, "ns per ops": 56.75, "Ops per threads": 264791.0, "Ops per procs": 132395807.0, "Ops/sec/procs": 4405144.41, "ns per ops/procs": 227.01}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 319849135.0, "Ops per second": 10661637.0, "ns per ops": 94.0, "Ops per threads": 319849.0, "Ops per procs": 159924567.0, "Ops/sec/procs": 5330818.0, "ns per ops/procs": 188.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30061.272637, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1012566356.0, "Total blocks": 1012562358.0, "Ops per second": 33683416.14, "ns per ops": 29.69, "Ops per threads": 253141.0, "Ops per procs": 126570794.0, "Ops/sec/procs": 4210427.02, "ns per ops/procs": 237.51}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30098.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 602810127.0, "Ops per second": 20093670.0, "ns per ops": 49.0, "Ops per threads": 301405.0, "Ops per procs": 150702531.0, "Ops/sec/procs": 5023417.0, "ns per ops/procs": 199.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 316379578.0, "Ops per second": 10545985.0, "ns per ops": 95.0, "Ops per threads": 316379.0, "Ops per procs": 158189789.0, "Ops/sec/procs": 5272992.0, "ns per ops/procs": 190.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30040.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6444336799.0, "Total blocks": 6444336793.0, "Ops per second": 214522302.68, "ns per ops": 4.66, "Ops per threads": 67128.0, "Ops per procs": 33564254.0, "Ops/sec/procs": 1117303.66, "ns per ops/procs": 895.01}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1162894055.0, "Ops per second": 38763135.0, "ns per ops": 25.0, "Ops per threads": 290723.0, "Ops per procs": 145361756.0, "Ops/sec/procs": 4845391.0, "ns per ops/procs": 207.0}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30032.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6214093700.0, "Ops per second": 206910049.25, "ns per ops": 4.83, "Ops per threads": 172613.0, "Ops per procs": 86306856.0, "Ops/sec/procs": 2873750.68, "ns per ops/procs": 347.98}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 602962318.0, "Ops per second": 20098743.0, "ns per ops": 49.0, "Ops per threads": 301481.0, "Ops per procs": 150740579.0, "Ops/sec/procs": 5024685.0, "ns per ops/procs": 199.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30028.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 353237542.0, "Total blocks": 353237542.0, "Ops per second": 11763311.91, "ns per ops": 85.01, "Ops per threads": 353237.0, "Ops per procs": 176618771.0, "Ops/sec/procs": 5881655.95, "ns per ops/procs": 170.02}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30014.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2640067667.0, "Total blocks": 2640067667.0, "Ops per second": 87959596.51, "ns per ops": 11.37, "Ops per threads": 220005.0, "Ops per procs": 110002819.0, "Ops/sec/procs": 3664983.19, "ns per ops/procs": 272.85}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30004.685456, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5581364330.0, "Total blocks": 5581364254.0, "Ops per second": 186016425.27, "ns per ops": 5.38, "Ops per threads": 155037.0, "Ops per procs": 77518949.0, "Ops/sec/procs": 2583561.46, "ns per ops/procs": 387.06}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30029.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 351581250.0, "Total blocks": 351581250.0, "Ops per second": 11707837.32, "ns per ops": 85.41, "Ops per threads": 351581.0, "Ops per procs": 175790625.0, "Ops/sec/procs": 5853918.66, "ns per ops/procs": 170.83}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30055.039024, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 523899236.0, "Total blocks": 523897235.0, "Ops per second": 17431327.76, "ns per ops": 57.37, "Ops per threads": 261949.0, "Ops per procs": 130974809.0, "Ops/sec/procs": 4357831.94, "ns per ops/procs": 229.47}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 318670202.0, "Ops per second": 10622340.0, "ns per ops": 94.0, "Ops per threads": 318670.0, "Ops per procs": 159335101.0, "Ops/sec/procs": 5311170.0, "ns per ops/procs": 188.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30029.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1315967317.0, "Total blocks": 1315967317.0, "Ops per second": 43823074.87, "ns per ops": 22.82, "Ops per threads": 328991.0, "Ops per procs": 164495914.0, "Ops/sec/procs": 5477884.36, "ns per ops/procs": 182.55}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10795812142.0, "Ops per second": 359860404.0, "ns per ops": 2.0, "Ops per threads": 149941.0, "Ops per procs": 74970917.0, "Ops/sec/procs": 2499030.0, "ns per ops/procs": 400.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162934354.0, "Ops per second": 5431145.0, "ns per ops": 184.0, "Ops per threads": 325868.0, "Ops per procs": 162934354.0, "Ops/sec/procs": 5431145.0, "ns per ops/procs": 184.0}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30058.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2942116755.0, "Ops per second": 97879962.83, "ns per ops": 10.22, "Ops per threads": 245176.0, "Ops per procs": 122588198.0, "Ops/sec/procs": 4078331.78, "ns per ops/procs": 245.2}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30046.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13621778052.0, "Ops per second": 453362362.83, "ns per ops": 2.21, "Ops per threads": 141893.0, "Ops per procs": 70946760.0, "Ops/sec/procs": 2361262.31, "ns per ops/procs": 423.5}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30004.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13218272643.0, "Ops per second": 440609088.0, "ns per ops": 2.0, "Ops per threads": 137690.0, "Ops per procs": 68845170.0, "Ops/sec/procs": 2294839.0, "ns per ops/procs": 435.0}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 704031691.0, "Ops per second": 23466535.17, "ns per ops": 42.61, "Ops per threads": 352015.0, "Ops per procs": 176007922.0, "Ops/sec/procs": 5866633.79, "ns per ops/procs": 170.46}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30055.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5751369493.0, "Total blocks": 5751369493.0, "Ops per second": 191356889.21, "ns per ops": 5.23, "Ops per threads": 79880.0, "Ops per procs": 39940065.0, "Ops/sec/procs": 1328867.29, "ns per ops/procs": 752.52}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30044.493497, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9770566779.0, "Total blocks": 9770566541.0, "Ops per second": 325203244.98, "ns per ops": 3.08, "Ops per threads": 135702.0, "Ops per procs": 67851158.0, "Ops/sec/procs": 2258355.87, "ns per ops/procs": 442.8}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30046.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6398365281.0, "Ops per second": 212946166.44, "ns per ops": 4.7, "Ops per threads": 177732.0, "Ops per procs": 88866184.0, "Ops/sec/procs": 2957585.64, "ns per ops/procs": 338.11}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30052.10256, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 283698502.0, "Total blocks": 283697506.0, "Ops per second": 9440221.41, "ns per ops": 105.93, "Ops per threads": 283698.0, "Ops per procs": 141849251.0, "Ops/sec/procs": 4720110.7, "ns per ops/procs": 211.86}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30040.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4951492723.0, "Total blocks": 4951492723.0, "Ops per second": 164826689.43, "ns per ops": 6.07, "Ops per threads": 137541.0, "Ops per procs": 68770732.0, "Ops/sec/procs": 2289259.58, "ns per ops/procs": 436.82}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3035215396.0, "Ops per second": 101164799.85, "ns per ops": 9.88, "Ops per threads": 252934.0, "Ops per procs": 126467308.0, "Ops/sec/procs": 4215199.99, "ns per ops/procs": 237.24}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30055.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2445385882.0, "Total blocks": 2445385882.0, "Ops per second": 81363323.25, "ns per ops": 12.29, "Ops per threads": 101891.0, "Ops per procs": 50945539.0, "Ops/sec/procs": 1695069.23, "ns per ops/procs": 589.95}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30003.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7283935667.0, "Ops per second": 242797855.0, "ns per ops": 4.0, "Ops per threads": 151748.0, "Ops per procs": 75874329.0, "Ops/sec/procs": 2529144.0, "ns per ops/procs": 395.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 602376624.0, "Ops per second": 20079220.0, "ns per ops": 49.0, "Ops per threads": 301188.0, "Ops per procs": 150594156.0, "Ops/sec/procs": 5019805.0, "ns per ops/procs": 199.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30009.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10528275629.0, "Ops per second": 350942520.0, "ns per ops": 2.0, "Ops per threads": 146226.0, "Ops per procs": 73113025.0, "Ops/sec/procs": 2437100.0, "ns per ops/procs": 410.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30054.761973, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 530882555.0, "Total blocks": 530880555.0, "Ops per second": 17663841.61, "ns per ops": 56.61, "Ops per threads": 265441.0, "Ops per procs": 132720638.0, "Ops/sec/procs": 4415960.4, "ns per ops/procs": 226.45}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 700693363.0, "Ops per second": 23355250.96, "ns per ops": 42.82, "Ops per threads": 350346.0, "Ops per procs": 175173340.0, "Ops/sec/procs": 5838812.74, "ns per ops/procs": 171.27}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30002.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2627819057.0, "Ops per second": 87587819.86, "ns per ops": 11.42, "Ops per threads": 328477.0, "Ops per procs": 164238691.0, "Ops/sec/procs": 5474238.74, "ns per ops/procs": 182.67}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30084.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7300729086.0, "Ops per second": 242672766.94, "ns per ops": 4.12, "Ops per threads": 152098.0, "Ops per procs": 76049261.0, "Ops/sec/procs": 2527841.32, "ns per ops/procs": 395.59}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30049.328008, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6501586465.0, "Total blocks": 6501586268.0, "Ops per second": 216363789.01, "ns per ops": 4.62, "Ops per threads": 135449.0, "Ops per procs": 67724859.0, "Ops/sec/procs": 2253789.47, "ns per ops/procs": 443.7}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1321454550.0, "Total blocks": 1321454550.0, "Ops per second": 44006586.35, "ns per ops": 22.72, "Ops per threads": 330363.0, "Ops per procs": 165181818.0, "Ops/sec/procs": 5500823.29, "ns per ops/procs": 181.79}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30057.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5012200197.0, "Total blocks": 5012200197.0, "Ops per second": 166754043.83, "ns per ops": 6.0, "Ops per threads": 139227.0, "Ops per procs": 69613891.0, "Ops/sec/procs": 2316028.39, "ns per ops/procs": 431.77}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2188338711.0, "Ops per second": 72944623.0, "ns per ops": 13.0, "Ops per threads": 273542.0, "Ops per procs": 136771169.0, "Ops/sec/procs": 4559038.0, "ns per ops/procs": 220.0}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1405401581.0, "Ops per second": 46844235.22, "ns per ops": 21.35, "Ops per threads": 351350.0, "Ops per procs": 175675197.0, "Ops/sec/procs": 5855529.4, "ns per ops/procs": 170.78}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30022.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4400904572.0, "Total blocks": 4400904572.0, "Ops per second": 146586397.82, "ns per ops": 6.82, "Ops per threads": 91685.0, "Ops per procs": 45842755.0, "Ops/sec/procs": 1526941.64, "ns per ops/procs": 654.9}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162958519.0, "Ops per second": 5431950.0, "ns per ops": 184.0, "Ops per threads": 325917.0, "Ops per procs": 162958519.0, "Ops/sec/procs": 5431950.0, "ns per ops/procs": 184.0}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 32083.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10899687282.0, "Ops per second": 339728321.39, "ns per ops": 2.94, "Ops per threads": 151384.0, "Ops per procs": 75692272.0, "Ops/sec/procs": 2359224.45, "ns per ops/procs": 423.87}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30056.812452, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6577750139.0, "Total blocks": 6577750008.0, "Ops per second": 218843902.68, "ns per ops": 4.57, "Ops per threads": 137036.0, "Ops per procs": 68518230.0, "Ops/sec/procs": 2279623.99, "ns per ops/procs": 438.67}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30055.611042, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 533971853.0, "Total blocks": 533969853.0, "Ops per second": 17766128.67, "ns per ops": 56.29, "Ops per threads": 266985.0, "Ops per procs": 133492963.0, "Ops/sec/procs": 4441532.17, "ns per ops/procs": 225.15}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30002.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2626147945.0, "Ops per second": 87532310.63, "ns per ops": 11.42, "Ops per threads": 328268.0, "Ops per procs": 164134246.0, "Ops/sec/procs": 5470769.41, "ns per ops/procs": 182.79}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1164365199.0, "Ops per second": 38812173.0, "ns per ops": 25.0, "Ops per threads": 291091.0, "Ops per procs": 145545649.0, "Ops/sec/procs": 4851521.0, "ns per ops/procs": 206.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30000.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7102823282.0, "Ops per second": 236760776.0, "ns per ops": 4.0, "Ops per threads": 147975.0, "Ops per procs": 73987742.0, "Ops/sec/procs": 2466258.0, "ns per ops/procs": 405.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30061.527123, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 997218811.0, "Total blocks": 997214815.0, "Ops per second": 33172593.23, "ns per ops": 30.15, "Ops per threads": 249304.0, "Ops per procs": 124652351.0, "Ops/sec/procs": 4146574.15, "ns per ops/procs": 241.16}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30083.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6548798732.0, "Ops per second": 217690867.72, "ns per ops": 4.59, "Ops per threads": 181911.0, "Ops per procs": 90955537.0, "Ops/sec/procs": 3023484.27, "ns per ops/procs": 330.74}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30051.378248, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 292112360.0, "Total blocks": 292111364.0, "Ops per second": 9720431.38, "ns per ops": 102.88, "Ops per threads": 292112.0, "Ops per procs": 146056180.0, "Ops/sec/procs": 4860215.69, "ns per ops/procs": 205.75}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30035.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 701364876.0, "Total blocks": 701364876.0, "Ops per second": 23350970.91, "ns per ops": 42.82, "Ops per threads": 350682.0, "Ops per procs": 175341219.0, "Ops/sec/procs": 5837742.73, "ns per ops/procs": 171.3}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30054.129142, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 514621514.0, "Total blocks": 514619516.0, "Ops per second": 17123155.08, "ns per ops": 58.4, "Ops per threads": 257310.0, "Ops per procs": 128655378.0, "Ops/sec/procs": 4280788.77, "ns per ops/procs": 233.6}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30100.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13279227523.0, "Ops per second": 442640917.0, "ns per ops": 2.0, "Ops per threads": 138325.0, "Ops per procs": 69162643.0, "Ops/sec/procs": 2305421.0, "ns per ops/procs": 435.0}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 324306.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4150567351.0, "Ops per second": 12798289.07, "ns per ops": 78.14, "Ops per threads": 4150567.0, "Ops per procs": 2075283675.0, "Ops/sec/procs": 6399144.54, "ns per ops/procs": 156.27}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30054.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4533527594.0, "Total blocks": 4533527594.0, "Ops per second": 150844172.17, "ns per ops": 6.63, "Ops per threads": 94448.0, "Ops per procs": 47224245.0, "Ops/sec/procs": 1571293.46, "ns per ops/procs": 636.42}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30018.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3711246581.0, "Ops per second": 123633209.05, "ns per ops": 8.09, "Ops per threads": 154635.0, "Ops per procs": 77317637.0, "Ops/sec/procs": 2575691.86, "ns per ops/procs": 388.25}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167479925.0, "Ops per second": 5582422.19, "ns per ops": 179.13, "Ops per threads": 334959.0, "Ops per procs": 167479925.0, "Ops/sec/procs": 5582422.19, "ns per ops/procs": 179.13}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30028.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 352635483.0, "Total blocks": 352635483.0, "Ops per second": 11743254.12, "ns per ops": 85.16, "Ops per threads": 352635.0, "Ops per procs": 176317741.0, "Ops/sec/procs": 5871627.06, "ns per ops/procs": 170.31}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2865617974.0, "Ops per second": 95520599.0, "ns per ops": 10.0, "Ops per threads": 238801.0, "Ops per procs": 119400748.0, "Ops/sec/procs": 3980024.0, "ns per ops/procs": 252.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30040.592624, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6515729134.0, "Total blocks": 6515728907.0, "Ops per second": 216897489.86, "ns per ops": 4.61, "Ops per threads": 135744.0, "Ops per procs": 67872178.0, "Ops/sec/procs": 2259348.85, "ns per ops/procs": 442.61}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30060.990401, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13016103987.0, "Total blocks": 13016103780.0, "Ops per second": 432989858.73, "ns per ops": 2.31, "Ops per threads": 135584.0, "Ops per procs": 67792208.0, "Ops/sec/procs": 2255155.51, "ns per ops/procs": 443.43}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30052.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6317790364.0, "Total blocks": 6317790364.0, "Ops per second": 210225563.95, "ns per ops": 4.76, "Ops per threads": 65810.0, "Ops per procs": 32905158.0, "Ops/sec/procs": 1094924.81, "ns per ops/procs": 913.3}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30000.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10938742925.0, "Ops per second": 364624764.0, "ns per ops": 2.0, "Ops per threads": 151926.0, "Ops per procs": 75963492.0, "Ops/sec/procs": 2532116.0, "ns per ops/procs": 394.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30060.560369, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1018873355.0, "Total blocks": 1018869353.0, "Ops per second": 33894024.01, "ns per ops": 29.5, "Ops per threads": 254718.0, "Ops per procs": 127359169.0, "Ops/sec/procs": 4236753.0, "ns per ops/procs": 236.03}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 708319683.0, "Total blocks": 708319683.0, "Ops per second": 23587620.64, "ns per ops": 42.4, "Ops per threads": 354159.0, "Ops per procs": 177079920.0, "Ops/sec/procs": 5896905.16, "ns per ops/procs": 169.58}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 316573606.0, "Ops per second": 10552453.0, "ns per ops": 95.0, "Ops per threads": 316573.0, "Ops per procs": 158286803.0, "Ops/sec/procs": 5276226.0, "ns per ops/procs": 190.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30098.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 602220084.0, "Ops per second": 20074002.0, "ns per ops": 49.0, "Ops per threads": 301110.0, "Ops per procs": 150555021.0, "Ops/sec/procs": 5018500.0, "ns per ops/procs": 199.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2460453768.0, "Total blocks": 2460453768.0, "Ops per second": 81985777.35, "ns per ops": 12.2, "Ops per threads": 102518.0, "Ops per procs": 51259453.0, "Ops/sec/procs": 1708037.03, "ns per ops/procs": 585.47}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30022.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4937532932.0, "Total blocks": 4937532932.0, "Ops per second": 164460370.44, "ns per ops": 6.08, "Ops per threads": 137153.0, "Ops per procs": 68576846.0, "Ops/sec/procs": 2284171.81, "ns per ops/procs": 437.8}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 200596890.0, "Total blocks": 200596390.0, "Ops per second": 6680606.62, "ns per ops": 149.69, "Ops per threads": 401193.0, "Ops per procs": 200596890.0, "Ops/sec/procs": 6680606.62, "ns per ops/procs": 149.69}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13859985622.0, "Ops per second": 460498918.88, "ns per ops": 2.17, "Ops per threads": 144374.0, "Ops per procs": 72187425.0, "Ops/sec/procs": 2398431.87, "ns per ops/procs": 416.94}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 81659.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1019009697.0, "Ops per second": 12478729.93, "ns per ops": 80.14, "Ops per threads": 1019009.0, "Ops per procs": 509504848.0, "Ops/sec/procs": 6239364.97, "ns per ops/procs": 160.27}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3859141148.0, "Ops per second": 128638038.0, "ns per ops": 7.0, "Ops per threads": 160797.0, "Ops per procs": 80398773.0, "Ops/sec/procs": 2679959.0, "ns per ops/procs": 374.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30056.054643, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3373562972.0, "Total blocks": 3373562895.0, "Ops per second": 112242375.52, "ns per ops": 8.91, "Ops per threads": 140565.0, "Ops per procs": 70282561.0, "Ops/sec/procs": 2338382.82, "ns per ops/procs": 427.65}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 602471809.0, "Ops per second": 20082393.0, "ns per ops": 49.0, "Ops per threads": 301235.0, "Ops per procs": 150617952.0, "Ops/sec/procs": 5020598.0, "ns per ops/procs": 199.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30015.17606, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5710330516.0, "Total blocks": 5710330511.0, "Ops per second": 190248109.98, "ns per ops": 5.26, "Ops per threads": 158620.0, "Ops per procs": 79310146.0, "Ops/sec/procs": 2642334.86, "ns per ops/procs": 378.45}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30015.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2539004964.0, "Total blocks": 2539004964.0, "Ops per second": 84591018.45, "ns per ops": 11.82, "Ops per threads": 211583.0, "Ops per procs": 105791873.0, "Ops/sec/procs": 3524625.77, "ns per ops/procs": 283.72}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30025.490404, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2354443301.0, "Total blocks": 2354443285.0, "Ops per second": 78414815.86, "ns per ops": 12.75, "Ops per threads": 196203.0, "Ops per procs": 98101804.0, "Ops/sec/procs": 3267283.99, "ns per ops/procs": 306.06}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 355087843.0, "Ops per second": 11835688.67, "ns per ops": 84.49, "Ops per threads": 355087.0, "Ops per procs": 177543921.0, "Ops/sec/procs": 5917844.33, "ns per ops/procs": 168.98}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30045.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2457229746.0, "Total blocks": 2457229746.0, "Ops per second": 81784854.13, "ns per ops": 12.23, "Ops per threads": 102384.0, "Ops per procs": 51192286.0, "Ops/sec/procs": 1703851.13, "ns per ops/procs": 586.91}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30098.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2845935993.0, "Ops per second": 94864533.0, "ns per ops": 10.0, "Ops per threads": 237161.0, "Ops per procs": 118580666.0, "Ops/sec/procs": 3952688.0, "ns per ops/procs": 253.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 696535547.0, "Total blocks": 696535547.0, "Ops per second": 23195027.08, "ns per ops": 43.11, "Ops per threads": 348267.0, "Ops per procs": 174133886.0, "Ops/sec/procs": 5798756.77, "ns per ops/procs": 172.45}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2853970548.0, "Ops per second": 95132351.0, "ns per ops": 10.0, "Ops per threads": 237830.0, "Ops per procs": 118915439.0, "Ops/sec/procs": 3963847.0, "ns per ops/procs": 253.0}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30002.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2607141383.0, "Ops per second": 86898508.22, "ns per ops": 11.51, "Ops per threads": 325892.0, "Ops per procs": 162946336.0, "Ops/sec/procs": 5431156.76, "ns per ops/procs": 184.12}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3331115712.0, "Ops per second": 110673121.1, "ns per ops": 9.04, "Ops per threads": 138796.0, "Ops per procs": 69398244.0, "Ops/sec/procs": 2305690.02, "ns per ops/procs": 433.71}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30076.54792, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1835537345.0, "Total blocks": 1835529347.0, "Ops per second": 61028857.1, "ns per ops": 16.39, "Ops per threads": 229442.0, "Ops per procs": 114721084.0, "Ops/sec/procs": 3814303.57, "ns per ops/procs": 262.17}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30036.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2101382479.0, "Total blocks": 2101382479.0, "Ops per second": 69961308.83, "ns per ops": 14.29, "Ops per threads": 262672.0, "Ops per procs": 131336404.0, "Ops/sec/procs": 4372581.8, "ns per ops/procs": 228.7}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30100.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10808842016.0, "Ops per second": 360294733.0, "ns per ops": 2.0, "Ops per threads": 150122.0, "Ops per procs": 75061402.0, "Ops/sec/procs": 2502046.0, "ns per ops/procs": 401.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3834011076.0, "Ops per second": 127800369.0, "ns per ops": 7.0, "Ops per threads": 159750.0, "Ops per procs": 79875230.0, "Ops/sec/procs": 2662507.0, "ns per ops/procs": 376.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30029.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 352552436.0, "Total blocks": 352552436.0, "Ops per second": 11740372.51, "ns per ops": 85.18, "Ops per threads": 352552.0, "Ops per procs": 176276218.0, "Ops/sec/procs": 5870186.25, "ns per ops/procs": 170.35}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30025.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4391389950.0, "Total blocks": 4391389950.0, "Ops per second": 146255292.71, "ns per ops": 6.84, "Ops per threads": 91487.0, "Ops per procs": 45743645.0, "Ops/sec/procs": 1523492.63, "ns per ops/procs": 656.39}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167959859.0, "Ops per second": 5598414.22, "ns per ops": 178.62, "Ops per threads": 335919.0, "Ops per procs": 167959859.0, "Ops/sec/procs": 5598414.22, "ns per ops/procs": 178.62}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2203153647.0, "Ops per second": 73438454.0, "ns per ops": 13.0, "Ops per threads": 275394.0, "Ops per procs": 137697102.0, "Ops/sec/procs": 4589903.0, "ns per ops/procs": 218.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30099.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7320614794.0, "Ops per second": 244020493.0, "ns per ops": 4.0, "Ops per threads": 152512.0, "Ops per procs": 76256404.0, "Ops/sec/procs": 2541880.0, "ns per ops/procs": 394.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30055.607851, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 530569936.0, "Total blocks": 530567940.0, "Ops per second": 17652943.13, "ns per ops": 56.65, "Ops per threads": 265284.0, "Ops per procs": 132642484.0, "Ops/sec/procs": 4413235.78, "ns per ops/procs": 226.59}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 683757823.0, "Total blocks": 683757823.0, "Ops per second": 22769367.84, "ns per ops": 43.92, "Ops per threads": 341878.0, "Ops per procs": 170939455.0, "Ops/sec/procs": 5692341.96, "ns per ops/procs": 175.67}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3292272448.0, "Ops per second": 109732994.14, "ns per ops": 9.11, "Ops per threads": 274356.0, "Ops per procs": 137178018.0, "Ops/sec/procs": 4572208.09, "ns per ops/procs": 218.71}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 31401.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6718818943.0, "Ops per second": 213966422.84, "ns per ops": 4.67, "Ops per threads": 139975.0, "Ops per procs": 69987697.0, "Ops/sec/procs": 2228816.9, "ns per ops/procs": 448.67}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30086.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6045581117.0, "Total blocks": 6045581117.0, "Ops per second": 200941139.7, "ns per ops": 4.98, "Ops per threads": 62974.0, "Ops per procs": 31487401.0, "Ops/sec/procs": 1046568.44, "ns per ops/procs": 955.5}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30099.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6375101101.0, "Ops per second": 212503370.0, "ns per ops": 4.0, "Ops per threads": 177086.0, "Ops per procs": 88543070.0, "Ops/sec/procs": 2951435.0, "ns per ops/procs": 339.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30078.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6069021647.0, "Total blocks": 6069021647.0, "Ops per second": 201774969.45, "ns per ops": 4.96, "Ops per threads": 63218.0, "Ops per procs": 31609487.0, "Ops/sec/procs": 1050911.3, "ns per ops/procs": 951.56}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7185116829.0, "Ops per second": 239503894.0, "ns per ops": 4.0, "Ops per threads": 149689.0, "Ops per procs": 74844966.0, "Ops/sec/procs": 2494832.0, "ns per ops/procs": 402.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162872662.0, "Ops per second": 5429088.0, "ns per ops": 184.0, "Ops per threads": 325745.0, "Ops per procs": 162872662.0, "Ops/sec/procs": 5429088.0, "ns per ops/procs": 184.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30030.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7216365837.0, "Ops per second": 240545527.0, "ns per ops": 4.0, "Ops per threads": 150340.0, "Ops per procs": 75170477.0, "Ops/sec/procs": 2505682.0, "ns per ops/procs": 399.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30074.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6094072585.0, "Total blocks": 6094072583.0, "Ops per second": 202635033.57, "ns per ops": 4.93, "Ops per threads": 63479.0, "Ops per procs": 31739961.0, "Ops/sec/procs": 1055390.8, "ns per ops/procs": 947.52}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30023.883446, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2404404871.0, "Total blocks": 2404404868.0, "Ops per second": 80083073.71, "ns per ops": 12.49, "Ops per threads": 200367.0, "Ops per procs": 100183536.0, "Ops/sec/procs": 3336794.74, "ns per ops/procs": 299.69}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3285017145.0, "Ops per second": 109491418.52, "ns per ops": 9.13, "Ops per threads": 273751.0, "Ops per procs": 136875714.0, "Ops/sec/procs": 4562142.44, "ns per ops/procs": 219.2}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30030.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3590986293.0, "Ops per second": 119579775.25, "ns per ops": 8.36, "Ops per threads": 149624.0, "Ops per procs": 74812214.0, "Ops/sec/procs": 2491245.32, "ns per ops/procs": 401.41}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30040.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6869779534.0, "Ops per second": 228687607.27, "ns per ops": 4.37, "Ops per threads": 143120.0, "Ops per procs": 71560203.0, "Ops/sec/procs": 2382162.58, "ns per ops/procs": 419.79}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30073.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5991883266.0, "Total blocks": 5991883265.0, "Ops per second": 199237992.92, "ns per ops": 5.02, "Ops per threads": 83220.0, "Ops per procs": 41610300.0, "Ops/sec/procs": 1383597.17, "ns per ops/procs": 722.75}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30041.752317, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6580396238.0, "Total blocks": 6580396054.0, "Ops per second": 219041691.33, "ns per ops": 4.57, "Ops per threads": 137091.0, "Ops per procs": 68545794.0, "Ops/sec/procs": 2281684.28, "ns per ops/procs": 438.27}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30050.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5500673819.0, "Total blocks": 5500673818.0, "Ops per second": 183046382.55, "ns per ops": 5.46, "Ops per threads": 76398.0, "Ops per procs": 38199123.0, "Ops/sec/procs": 1271155.43, "ns per ops/procs": 786.69}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30064.868972, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5724760259.0, "Total blocks": 5724760245.0, "Ops per second": 190413610.79, "ns per ops": 5.25, "Ops per threads": 159021.0, "Ops per procs": 79510559.0, "Ops/sec/procs": 2644633.48, "ns per ops/procs": 378.12}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30076.640051, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1759539774.0, "Total blocks": 1759531770.0, "Ops per second": 58501872.92, "ns per ops": 17.09, "Ops per threads": 219942.0, "Ops per procs": 109971235.0, "Ops/sec/procs": 3656367.06, "ns per ops/procs": 273.5}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30026.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2497408441.0, "Total blocks": 2497408441.0, "Ops per second": 83172322.77, "ns per ops": 12.02, "Ops per threads": 104058.0, "Ops per procs": 52029342.0, "Ops/sec/procs": 1732756.72, "ns per ops/procs": 577.12}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30051.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7020228636.0, "Ops per second": 233605045.39, "ns per ops": 4.28, "Ops per threads": 146254.0, "Ops per procs": 73127381.0, "Ops/sec/procs": 2433385.89, "ns per ops/procs": 410.95}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7315408574.0, "Ops per second": 243846952.0, "ns per ops": 4.0, "Ops per threads": 152404.0, "Ops per procs": 76202172.0, "Ops/sec/procs": 2540072.0, "ns per ops/procs": 394.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30035.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2082663119.0, "Total blocks": 2082663119.0, "Ops per second": 69339249.56, "ns per ops": 14.42, "Ops per threads": 260332.0, "Ops per procs": 130166444.0, "Ops/sec/procs": 4333703.1, "ns per ops/procs": 230.75}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30083.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5773367798.0, "Total blocks": 5773367798.0, "Ops per second": 191913128.63, "ns per ops": 5.21, "Ops per threads": 80185.0, "Ops per procs": 40092831.0, "Ops/sec/procs": 1332730.06, "ns per ops/procs": 750.34}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 201948978.0, "Total blocks": 201948478.0, "Ops per second": 6725681.72, "ns per ops": 148.68, "Ops per threads": 403897.0, "Ops per procs": 201948978.0, "Ops/sec/procs": 6725681.72, "ns per ops/procs": 148.68}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 684621218.0, "Total blocks": 684621218.0, "Ops per second": 22798182.76, "ns per ops": 43.86, "Ops per threads": 342310.0, "Ops per procs": 171155304.0, "Ops/sec/procs": 5699545.69, "ns per ops/procs": 175.45}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30059.133885, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1025262407.0, "Total blocks": 1025258406.0, "Ops per second": 34108181.92, "ns per ops": 29.32, "Ops per threads": 256315.0, "Ops per procs": 128157800.0, "Ops/sec/procs": 4263522.74, "ns per ops/procs": 234.55}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30055.341133, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6618887114.0, "Total blocks": 6618887005.0, "Ops per second": 220223323.53, "ns per ops": 4.54, "Ops per threads": 137893.0, "Ops per procs": 68946740.0, "Ops/sec/procs": 2293992.95, "ns per ops/procs": 435.92}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6375335905.0, "Ops per second": 212511196.0, "ns per ops": 4.0, "Ops per threads": 177092.0, "Ops per procs": 88546332.0, "Ops/sec/procs": 2951544.0, "ns per ops/procs": 339.0}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30012.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10963592935.0, "Ops per second": 365306382.96, "ns per ops": 2.74, "Ops per threads": 152272.0, "Ops per procs": 76136062.0, "Ops/sec/procs": 2536849.88, "ns per ops/procs": 394.19}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1163769955.0, "Ops per second": 38792331.0, "ns per ops": 25.0, "Ops per threads": 290942.0, "Ops per procs": 145471244.0, "Ops/sec/procs": 4849041.0, "ns per ops/procs": 206.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2202976274.0, "Ops per second": 73432542.0, "ns per ops": 13.0, "Ops per threads": 275372.0, "Ops per procs": 137686017.0, "Ops/sec/procs": 4589533.0, "ns per ops/procs": 218.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2891952247.0, "Ops per second": 96398408.0, "ns per ops": 10.0, "Ops per threads": 240996.0, "Ops per procs": 120498010.0, "Ops/sec/procs": 4016600.0, "ns per ops/procs": 249.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30006.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4393943848.0, "Total blocks": 4393943848.0, "Ops per second": 146434442.47, "ns per ops": 6.83, "Ops per threads": 91540.0, "Ops per procs": 45770248.0, "Ops/sec/procs": 1525358.78, "ns per ops/procs": 655.58}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30054.768744, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 533270498.0, "Total blocks": 533268502.0, "Ops per second": 17743290.68, "ns per ops": 56.36, "Ops per threads": 266635.0, "Ops per procs": 133317624.0, "Ops/sec/procs": 4435822.67, "ns per ops/procs": 225.44}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30055.035673, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 524241659.0, "Total blocks": 524239663.0, "Ops per second": 17442722.9, "ns per ops": 57.33, "Ops per threads": 262120.0, "Ops per procs": 131060414.0, "Ops/sec/procs": 4360680.73, "ns per ops/procs": 229.32}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2179747484.0, "Ops per second": 72658249.0, "ns per ops": 13.0, "Ops per threads": 272468.0, "Ops per procs": 136234217.0, "Ops/sec/procs": 4541140.0, "ns per ops/procs": 220.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.65121, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168543998.0, "Total blocks": 168543502.0, "Ops per second": 5608850.39, "ns per ops": 178.29, "Ops per threads": 337087.0, "Ops per procs": 168543998.0, "Ops/sec/procs": 5608850.39, "ns per ops/procs": 178.29}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30099.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6380968211.0, "Ops per second": 212698940.0, "ns per ops": 4.0, "Ops per threads": 177249.0, "Ops per procs": 88624558.0, "Ops/sec/procs": 2954151.0, "ns per ops/procs": 339.0}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 704033440.0, "Ops per second": 23466560.73, "ns per ops": 42.61, "Ops per threads": 352016.0, "Ops per procs": 176008360.0, "Ops/sec/procs": 5866640.18, "ns per ops/procs": 170.46}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30039.173331, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9756169595.0, "Total blocks": 9756169348.0, "Ops per second": 324781560.65, "ns per ops": 3.08, "Ops per threads": 135502.0, "Ops per procs": 67751177.0, "Ops/sec/procs": 2255427.5, "ns per ops/procs": 443.37}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7297122281.0, "Ops per second": 243237409.0, "ns per ops": 4.0, "Ops per threads": 152023.0, "Ops per procs": 76011690.0, "Ops/sec/procs": 2533723.0, "ns per ops/procs": 394.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 318579834.0, "Ops per second": 10619327.0, "ns per ops": 94.0, "Ops per threads": 318579.0, "Ops per procs": 159289917.0, "Ops/sec/procs": 5309663.0, "ns per ops/procs": 188.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30060.524651, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3380384357.0, "Total blocks": 3380384239.0, "Ops per second": 112452606.74, "ns per ops": 8.89, "Ops per threads": 140849.0, "Ops per procs": 70424674.0, "Ops/sec/procs": 2342762.64, "ns per ops/procs": 426.85}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30017.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2089082984.0, "Total blocks": 2089082984.0, "Ops per second": 69595812.35, "ns per ops": 14.37, "Ops per threads": 261135.0, "Ops per procs": 130567686.0, "Ops/sec/procs": 4349738.27, "ns per ops/procs": 229.9}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30044.549304, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3375058539.0, "Total blocks": 3375058498.0, "Ops per second": 112335136.23, "ns per ops": 8.9, "Ops per threads": 140627.0, "Ops per procs": 70313719.0, "Ops/sec/procs": 2340315.34, "ns per ops/procs": 427.29}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30063.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5971994246.0, "Total blocks": 5971994246.0, "Ops per second": 198645955.34, "ns per ops": 5.03, "Ops per threads": 82944.0, "Ops per procs": 41472182.0, "Ops/sec/procs": 1379485.8, "ns per ops/procs": 724.91}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.856024, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168142195.0, "Total blocks": 168141695.0, "Ops per second": 5595440.95, "ns per ops": 178.72, "Ops per threads": 336284.0, "Ops per procs": 168142195.0, "Ops/sec/procs": 5595440.95, "ns per ops/procs": 178.72}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30098.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5835568591.0, "Total blocks": 5835568591.0, "Ops per second": 193884861.96, "ns per ops": 5.16, "Ops per threads": 81049.0, "Ops per procs": 40524781.0, "Ops/sec/procs": 1346422.65, "ns per ops/procs": 742.71}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30072.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2121398456.0, "Total blocks": 2121398456.0, "Ops per second": 70543766.29, "ns per ops": 14.18, "Ops per threads": 265174.0, "Ops per procs": 132587403.0, "Ops/sec/procs": 4408985.39, "ns per ops/procs": 226.81}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30098.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2851087315.0, "Ops per second": 95036243.0, "ns per ops": 10.0, "Ops per threads": 237590.0, "Ops per procs": 118795304.0, "Ops/sec/procs": 3959843.0, "ns per ops/procs": 253.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30015.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2479454848.0, "Total blocks": 2479454848.0, "Ops per second": 82605600.18, "ns per ops": 12.11, "Ops per threads": 206621.0, "Ops per procs": 103310618.0, "Ops/sec/procs": 3441900.01, "ns per ops/procs": 290.54}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30096.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6241666797.0, "Total blocks": 6241666797.0, "Ops per second": 207389035.14, "ns per ops": 4.82, "Ops per threads": 65017.0, "Ops per procs": 32508681.0, "Ops/sec/procs": 1080151.22, "ns per ops/procs": 925.8}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30099.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162556374.0, "Ops per second": 5418545.0, "ns per ops": 185.0, "Ops per threads": 325112.0, "Ops per procs": 162556374.0, "Ops/sec/procs": 5418545.0, "ns per ops/procs": 185.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30034.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 358991507.0, "Total blocks": 358991507.0, "Ops per second": 11952499.07, "ns per ops": 83.66, "Ops per threads": 358991.0, "Ops per procs": 179495753.0, "Ops/sec/procs": 5976249.54, "ns per ops/procs": 167.33}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30002.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2628022520.0, "Ops per second": 87594610.04, "ns per ops": 11.42, "Ops per threads": 328502.0, "Ops per procs": 164251407.0, "Ops/sec/procs": 5474663.13, "ns per ops/procs": 182.66}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30093.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13734345415.0, "Ops per second": 456382239.92, "ns per ops": 2.19, "Ops per threads": 143066.0, "Ops per procs": 71533049.0, "Ops/sec/procs": 2376990.83, "ns per ops/procs": 420.7}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30050.219603, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6634906045.0, "Total blocks": 6634905944.0, "Ops per second": 220793928.72, "ns per ops": 4.53, "Ops per threads": 138227.0, "Ops per procs": 69113604.0, "Ops/sec/procs": 2299936.76, "ns per ops/procs": 434.79}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6314944375.0, "Ops per second": 210498145.0, "ns per ops": 4.0, "Ops per threads": 175415.0, "Ops per procs": 87707560.0, "Ops/sec/procs": 2923585.0, "ns per ops/procs": 343.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30026.782128, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5688566975.0, "Total blocks": 5688566942.0, "Ops per second": 189449770.23, "ns per ops": 5.28, "Ops per threads": 158015.0, "Ops per procs": 79007874.0, "Ops/sec/procs": 2631246.81, "ns per ops/procs": 380.05}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30099.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10980103320.0, "Ops per second": 366003444.0, "ns per ops": 2.0, "Ops per threads": 152501.0, "Ops per procs": 76250717.0, "Ops/sec/procs": 2541690.0, "ns per ops/procs": 394.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2201664152.0, "Ops per second": 73388805.0, "ns per ops": 13.0, "Ops per threads": 275208.0, "Ops per procs": 137604009.0, "Ops/sec/procs": 4586800.0, "ns per ops/procs": 218.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162863824.0, "Ops per second": 5428794.0, "ns per ops": 184.0, "Ops per threads": 325727.0, "Ops per procs": 162863824.0, "Ops/sec/procs": 5428794.0, "ns per ops/procs": 184.0}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30081.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6255848694.0, "Ops per second": 207966524.57, "ns per ops": 4.81, "Ops per threads": 173773.0, "Ops per procs": 86886787.0, "Ops/sec/procs": 2888423.95, "ns per ops/procs": 346.21}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 356801447.0, "Ops per second": 11892794.64, "ns per ops": 84.08, "Ops per threads": 356801.0, "Ops per procs": 178400723.0, "Ops/sec/procs": 5946397.32, "ns per ops/procs": 168.17}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30027.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 201903615.0, "Total blocks": 201903115.0, "Ops per second": 6723987.52, "ns per ops": 148.72, "Ops per threads": 403807.0, "Ops per procs": 201903615.0, "Ops/sec/procs": 6723987.52, "ns per ops/procs": 148.72}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30054.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6208915558.0, "Ops per second": 206587888.52, "ns per ops": 4.84, "Ops per threads": 172469.0, "Ops per procs": 86234938.0, "Ops/sec/procs": 2869276.23, "ns per ops/procs": 348.52}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2184516172.0, "Ops per second": 72817205.0, "ns per ops": 13.0, "Ops per threads": 273064.0, "Ops per procs": 136532260.0, "Ops/sec/procs": 4551075.0, "ns per ops/procs": 220.0}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30057.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10411868355.0, "Ops per second": 346400935.87, "ns per ops": 2.89, "Ops per threads": 144609.0, "Ops per procs": 72304641.0, "Ops/sec/procs": 2405562.05, "ns per ops/procs": 415.7}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30050.850096, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6573813943.0, "Total blocks": 6573813815.0, "Ops per second": 218756338.74, "ns per ops": 4.57, "Ops per threads": 136954.0, "Ops per procs": 68477228.0, "Ops/sec/procs": 2278711.86, "ns per ops/procs": 438.84}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30099.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7347056809.0, "Ops per second": 244901893.0, "ns per ops": 4.0, "Ops per threads": 153063.0, "Ops per procs": 76531841.0, "Ops/sec/procs": 2551061.0, "ns per ops/procs": 393.0}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30023.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 11064997748.0, "Ops per second": 368543220.33, "ns per ops": 2.71, "Ops per threads": 153680.0, "Ops per procs": 76840262.0, "Ops/sec/procs": 2559327.92, "ns per ops/procs": 390.73}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30046.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6593776143.0, "Ops per second": 219450974.94, "ns per ops": 4.56, "Ops per threads": 183160.0, "Ops per procs": 91580224.0, "Ops/sec/procs": 3047930.21, "ns per ops/procs": 328.09}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 694114155.0, "Total blocks": 694114155.0, "Ops per second": 23114240.52, "ns per ops": 43.26, "Ops per threads": 347057.0, "Ops per procs": 173528538.0, "Ops/sec/procs": 5778560.13, "ns per ops/procs": 173.05}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 32779.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15723303077.0, "Ops per second": 479661682.64, "ns per ops": 2.08, "Ops per threads": 163784.0, "Ops per procs": 81892203.0, "Ops/sec/procs": 2498237.93, "ns per ops/procs": 400.28}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 32349.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2853844897.0, "Ops per second": 88218231.97, "ns per ops": 11.34, "Ops per threads": 356730.0, "Ops per procs": 178365306.0, "Ops/sec/procs": 5513639.5, "ns per ops/procs": 181.37}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1160971160.0, "Ops per second": 38699038.0, "ns per ops": 25.0, "Ops per threads": 290242.0, "Ops per procs": 145121395.0, "Ops/sec/procs": 4837379.0, "ns per ops/procs": 207.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30051.264947, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 285399787.0, "Total blocks": 285398791.0, "Ops per second": 9497097.29, "ns per ops": 105.3, "Ops per threads": 285399.0, "Ops per procs": 142699893.0, "Ops/sec/procs": 4748548.65, "ns per ops/procs": 210.59}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30098.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2853005520.0, "Ops per second": 95100184.0, "ns per ops": 10.0, "Ops per threads": 237750.0, "Ops per procs": 118875230.0, "Ops/sec/procs": 3962507.0, "ns per ops/procs": 253.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30024.552076, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2308019453.0, "Total blocks": 2308019446.0, "Ops per second": 76871070.29, "ns per ops": 13.01, "Ops per threads": 192334.0, "Ops per procs": 96167477.0, "Ops/sec/procs": 3202961.26, "ns per ops/procs": 312.21}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30053.723813, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3358611037.0, "Total blocks": 3358610970.0, "Ops per second": 111753573.63, "ns per ops": 8.95, "Ops per threads": 139942.0, "Ops per procs": 69971063.0, "Ops/sec/procs": 2328199.45, "ns per ops/procs": 429.52}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30061.64649, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3353708656.0, "Total blocks": 3353708548.0, "Ops per second": 111561043.64, "ns per ops": 8.96, "Ops per threads": 139737.0, "Ops per procs": 69868930.0, "Ops/sec/procs": 2324188.41, "ns per ops/procs": 430.26}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30035.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2104529879.0, "Total blocks": 2104529879.0, "Ops per second": 70067431.14, "ns per ops": 14.27, "Ops per threads": 263066.0, "Ops per procs": 131533117.0, "Ops/sec/procs": 4379214.45, "ns per ops/procs": 228.35}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30031.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3354382967.0, "Ops per second": 111695300.31, "ns per ops": 8.95, "Ops per threads": 279531.0, "Ops per procs": 139765956.0, "Ops/sec/procs": 4653970.85, "ns per ops/procs": 214.87}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30034.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4499701734.0, "Total blocks": 4499701734.0, "Ops per second": 149816406.73, "ns per ops": 6.67, "Ops per threads": 93743.0, "Ops per procs": 46871893.0, "Ops/sec/procs": 1560587.57, "ns per ops/procs": 640.78}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1165881936.0, "Ops per second": 38862731.0, "ns per ops": 25.0, "Ops per threads": 291470.0, "Ops per procs": 145735242.0, "Ops/sec/procs": 4857841.0, "ns per ops/procs": 206.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30051.141318, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6542053719.0, "Total blocks": 6542053577.0, "Ops per second": 217697346.33, "ns per ops": 4.59, "Ops per threads": 136292.0, "Ops per procs": 68146392.0, "Ops/sec/procs": 2267680.69, "ns per ops/procs": 440.98}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30044.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6020202795.0, "Total blocks": 6020202795.0, "Ops per second": 200376264.98, "ns per ops": 4.99, "Ops per threads": 62710.0, "Ops per procs": 31355222.0, "Ops/sec/procs": 1043626.38, "ns per ops/procs": 958.2}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30038.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6125031157.0, "Total blocks": 6125031155.0, "Ops per second": 203902810.25, "ns per ops": 4.9, "Ops per threads": 63802.0, "Ops per procs": 31901203.0, "Ops/sec/procs": 1061993.8, "ns per ops/procs": 941.63}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30024.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4802957271.0, "Total blocks": 4802957271.0, "Ops per second": 159969246.61, "ns per ops": 6.25, "Ops per threads": 133415.0, "Ops per procs": 66707739.0, "Ops/sec/procs": 2221795.09, "ns per ops/procs": 450.09}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30038.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6488823269.0, "Ops per second": 216015692.37, "ns per ops": 4.63, "Ops per threads": 180245.0, "Ops per procs": 90122545.0, "Ops/sec/procs": 3000217.95, "ns per ops/procs": 333.31}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2181278533.0, "Ops per second": 72709284.0, "ns per ops": 13.0, "Ops per threads": 272659.0, "Ops per procs": 136329908.0, "Ops/sec/procs": 4544330.0, "ns per ops/procs": 220.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30084.71753, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12988884577.0, "Total blocks": 12988884360.0, "Ops per second": 431743610.82, "ns per ops": 2.32, "Ops per threads": 135300.0, "Ops per procs": 67650440.0, "Ops/sec/procs": 2248664.64, "ns per ops/procs": 444.71}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30058.838009, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3370940040.0, "Total blocks": 3370939924.0, "Ops per second": 112144722.26, "ns per ops": 8.92, "Ops per threads": 140455.0, "Ops per procs": 70227917.0, "Ops/sec/procs": 2336348.38, "ns per ops/procs": 428.02}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30001.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10917592965.0, "Ops per second": 363919765.0, "ns per ops": 2.0, "Ops per threads": 151633.0, "Ops per procs": 75816617.0, "Ops/sec/procs": 2527220.0, "ns per ops/procs": 395.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30006.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4782891721.0, "Total blocks": 4782891721.0, "Ops per second": 159397740.45, "ns per ops": 6.27, "Ops per threads": 132858.0, "Ops per procs": 66429051.0, "Ops/sec/procs": 2213857.51, "ns per ops/procs": 451.7}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 358685467.0, "Ops per second": 11955514.93, "ns per ops": 83.64, "Ops per threads": 358685.0, "Ops per procs": 179342733.0, "Ops/sec/procs": 5977757.47, "ns per ops/procs": 167.29}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30025.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2535056981.0, "Total blocks": 2535056981.0, "Ops per second": 84430108.35, "ns per ops": 11.84, "Ops per threads": 211254.0, "Ops per procs": 105627374.0, "Ops/sec/procs": 3517921.18, "ns per ops/procs": 284.26}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30031.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 699570091.0, "Total blocks": 699570091.0, "Ops per second": 23294435.8, "ns per ops": 42.93, "Ops per threads": 349785.0, "Ops per procs": 174892522.0, "Ops/sec/procs": 5823608.95, "ns per ops/procs": 171.71}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30065.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3613301058.0, "Ops per second": 120180408.75, "ns per ops": 8.32, "Ops per threads": 150554.0, "Ops per procs": 75277105.0, "Ops/sec/procs": 2503758.52, "ns per ops/procs": 399.4}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1323110616.0, "Total blocks": 1323110616.0, "Ops per second": 44061458.72, "ns per ops": 22.7, "Ops per threads": 330777.0, "Ops per procs": 165388827.0, "Ops/sec/procs": 5507682.34, "ns per ops/procs": 181.56}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 165682392.0, "Ops per second": 5522498.32, "ns per ops": 181.08, "Ops per threads": 331364.0, "Ops per procs": 165682392.0, "Ops/sec/procs": 5522498.32, "ns per ops/procs": 181.08}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30077.897833, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1885256357.0, "Total blocks": 1885256356.0, "Ops per second": 62679126.3, "ns per ops": 15.95, "Ops per threads": 235657.0, "Ops per procs": 117828522.0, "Ops/sec/procs": 3917445.39, "ns per ops/procs": 255.27}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6339693995.0, "Ops per second": 211323133.0, "ns per ops": 4.0, "Ops per threads": 176102.0, "Ops per procs": 88051305.0, "Ops/sec/procs": 2935043.0, "ns per ops/procs": 341.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30056.543434, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1017360318.0, "Total blocks": 1017356392.0, "Ops per second": 33848214.12, "ns per ops": 29.54, "Ops per threads": 254340.0, "Ops per procs": 127170039.0, "Ops/sec/procs": 4231026.77, "ns per ops/procs": 236.35}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30073.606249, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1849357800.0, "Total blocks": 1849357797.0, "Ops per second": 61494380.98, "ns per ops": 16.26, "Ops per threads": 231169.0, "Ops per procs": 115584862.0, "Ops/sec/procs": 3843398.81, "ns per ops/procs": 260.19}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162876625.0, "Ops per second": 5429220.0, "ns per ops": 184.0, "Ops per threads": 325753.0, "Ops per procs": 162876625.0, "Ops/sec/procs": 5429220.0, "ns per ops/procs": 184.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2178186205.0, "Ops per second": 72606206.0, "ns per ops": 13.0, "Ops per threads": 272273.0, "Ops per procs": 136136637.0, "Ops/sec/procs": 4537887.0, "ns per ops/procs": 221.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2890531872.0, "Ops per second": 96351062.0, "ns per ops": 10.0, "Ops per threads": 240877.0, "Ops per procs": 120438828.0, "Ops/sec/procs": 4014627.0, "ns per ops/procs": 249.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30036.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2129904567.0, "Total blocks": 2129904567.0, "Ops per second": 70911604.24, "ns per ops": 14.1, "Ops per threads": 266238.0, "Ops per procs": 133119035.0, "Ops/sec/procs": 4431975.26, "ns per ops/procs": 225.63}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30055.689597, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 530556642.0, "Total blocks": 530554646.0, "Ops per second": 17652452.8, "ns per ops": 56.65, "Ops per threads": 265278.0, "Ops per procs": 132639160.0, "Ops/sec/procs": 4413113.2, "ns per ops/procs": 226.6}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30065.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5986156874.0, "Total blocks": 5986156874.0, "Ops per second": 199101761.1, "ns per ops": 5.02, "Ops per threads": 83141.0, "Ops per procs": 41570533.0, "Ops/sec/procs": 1382651.12, "ns per ops/procs": 723.25}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6994659367.0, "Ops per second": 233079364.21, "ns per ops": 4.29, "Ops per threads": 194296.0, "Ops per procs": 97148046.0, "Ops/sec/procs": 3237213.39, "ns per ops/procs": 308.91}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30024.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4393317756.0, "Total blocks": 4393317756.0, "Ops per second": 146325414.58, "ns per ops": 6.83, "Ops per threads": 91527.0, "Ops per procs": 45763726.0, "Ops/sec/procs": 1524223.07, "ns per ops/procs": 656.07}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30077.161363, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1851371842.0, "Total blocks": 1851363843.0, "Ops per second": 61554074.86, "ns per ops": 16.25, "Ops per threads": 231421.0, "Ops per procs": 115710740.0, "Ops/sec/procs": 3847129.68, "ns per ops/procs": 259.93}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3059151925.0, "Ops per second": 101961963.28, "ns per ops": 9.81, "Ops per threads": 254929.0, "Ops per procs": 127464663.0, "Ops/sec/procs": 4248415.14, "ns per ops/procs": 235.38}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30014.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2520282189.0, "Total blocks": 2520282189.0, "Ops per second": 83968954.98, "ns per ops": 11.91, "Ops per threads": 210023.0, "Ops per procs": 105011757.0, "Ops/sec/procs": 3498706.46, "ns per ops/procs": 285.82}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 202672478.0, "Total blocks": 202671978.0, "Ops per second": 6749755.28, "ns per ops": 148.15, "Ops per threads": 405344.0, "Ops per procs": 202672478.0, "Ops/sec/procs": 6749755.28, "ns per ops/procs": 148.15}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30000.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13211556427.0, "Ops per second": 440385214.0, "ns per ops": 2.0, "Ops per threads": 137620.0, "Ops per procs": 68810189.0, "Ops/sec/procs": 2293672.0, "ns per ops/procs": 435.0}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30180.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6901684888.0, "Ops per second": 228677263.4, "ns per ops": 4.37, "Ops per threads": 143785.0, "Ops per procs": 71892550.0, "Ops/sec/procs": 2382054.83, "ns per ops/procs": 419.81}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30029.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 353836256.0, "Total blocks": 353836256.0, "Ops per second": 11783106.92, "ns per ops": 84.87, "Ops per threads": 353836.0, "Ops per procs": 176918128.0, "Ops/sec/procs": 5891553.46, "ns per ops/procs": 169.73}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30000.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13141734265.0, "Ops per second": 438057808.0, "ns per ops": 2.0, "Ops per threads": 136893.0, "Ops per procs": 68446532.0, "Ops/sec/procs": 2281551.0, "ns per ops/procs": 438.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30035.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2139629428.0, "Total blocks": 2139629428.0, "Ops per second": 71236073.69, "ns per ops": 14.04, "Ops per threads": 267453.0, "Ops per procs": 133726839.0, "Ops/sec/procs": 4452254.61, "ns per ops/procs": 224.61}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 198794709.0, "Total blocks": 198794209.0, "Ops per second": 6620576.77, "ns per ops": 151.04, "Ops per threads": 397589.0, "Ops per procs": 198794709.0, "Ops/sec/procs": 6620576.77, "ns per ops/procs": 151.04}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3843647185.0, "Ops per second": 128121572.0, "ns per ops": 7.0, "Ops per threads": 160151.0, "Ops per procs": 80075983.0, "Ops/sec/procs": 2669199.0, "ns per ops/procs": 375.0}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30030.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6909088932.0, "Ops per second": 230072227.17, "ns per ops": 4.35, "Ops per threads": 143939.0, "Ops per procs": 71969676.0, "Ops/sec/procs": 2396585.7, "ns per ops/procs": 417.26}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30040.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3409050419.0, "Ops per second": 113480755.41, "ns per ops": 8.81, "Ops per threads": 142043.0, "Ops per procs": 71021883.0, "Ops/sec/procs": 2364182.4, "ns per ops/procs": 422.98}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.53485, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168013536.0, "Total blocks": 168013036.0, "Ops per second": 5591219.19, "ns per ops": 178.85, "Ops per threads": 336027.0, "Ops per procs": 168013536.0, "Ops/sec/procs": 5591219.19, "ns per ops/procs": 178.85}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2202671599.0, "Ops per second": 73422386.0, "ns per ops": 13.0, "Ops per threads": 275333.0, "Ops per procs": 137666974.0, "Ops/sec/procs": 4588899.0, "ns per ops/procs": 218.0}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30058.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10250695683.0, "Ops per second": 341028133.92, "ns per ops": 2.93, "Ops per threads": 142370.0, "Ops per procs": 71185386.0, "Ops/sec/procs": 2368250.93, "ns per ops/procs": 422.25}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 44520.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9596238837.0, "Ops per second": 215547167.45, "ns per ops": 4.64, "Ops per threads": 266562.0, "Ops per procs": 133281094.0, "Ops/sec/procs": 2993710.66, "ns per ops/procs": 334.03}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30047.545859, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6554146732.0, "Total blocks": 6554146520.0, "Ops per second": 218125858.36, "ns per ops": 4.58, "Ops per threads": 136544.0, "Ops per procs": 68272361.0, "Ops/sec/procs": 2272144.36, "ns per ops/procs": 440.11}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30052.948171, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 530002695.0, "Total blocks": 530000699.0, "Ops per second": 17635630.69, "ns per ops": 56.7, "Ops per threads": 265001.0, "Ops per procs": 132500673.0, "Ops/sec/procs": 4408907.67, "ns per ops/procs": 226.81}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30098.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 317902612.0, "Ops per second": 10596753.0, "ns per ops": 94.0, "Ops per threads": 317902.0, "Ops per procs": 158951306.0, "Ops/sec/procs": 5298376.0, "ns per ops/procs": 189.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30035.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2100075180.0, "Total blocks": 2100075180.0, "Ops per second": 69918737.36, "ns per ops": 14.3, "Ops per threads": 262509.0, "Ops per procs": 131254698.0, "Ops/sec/procs": 4369921.08, "ns per ops/procs": 228.84}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30028.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 353404431.0, "Total blocks": 353404431.0, "Ops per second": 11768842.45, "ns per ops": 84.97, "Ops per threads": 353404.0, "Ops per procs": 176702215.0, "Ops/sec/procs": 5884421.22, "ns per ops/procs": 169.94}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30061.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5026140708.0, "Total blocks": 5026140708.0, "Ops per second": 167193781.43, "ns per ops": 5.98, "Ops per threads": 139615.0, "Ops per procs": 69807509.0, "Ops/sec/procs": 2322135.85, "ns per ops/procs": 430.64}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1164901668.0, "Ops per second": 38830055.0, "ns per ops": 25.0, "Ops per threads": 291225.0, "Ops per procs": 145612708.0, "Ops/sec/procs": 4853756.0, "ns per ops/procs": 206.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30049.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6001020957.0, "Total blocks": 6001020956.0, "Ops per second": 199707307.06, "ns per ops": 5.01, "Ops per threads": 83347.0, "Ops per procs": 41673756.0, "Ops/sec/procs": 1386856.3, "ns per ops/procs": 721.06}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30023.544184, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2026056283.0, "Total blocks": 2026056271.0, "Ops per second": 67482248.95, "ns per ops": 14.82, "Ops per threads": 168838.0, "Ops per procs": 84419011.0, "Ops/sec/procs": 2811760.37, "ns per ops/procs": 355.65}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30099.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 11023384702.0, "Ops per second": 367446156.0, "ns per ops": 2.0, "Ops per threads": 153102.0, "Ops per procs": 76551282.0, "Ops/sec/procs": 2551709.0, "ns per ops/procs": 393.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30076.304141, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1834523857.0, "Total blocks": 1834515859.0, "Ops per second": 60995654.53, "ns per ops": 16.39, "Ops per threads": 229315.0, "Ops per procs": 114657741.0, "Ops/sec/procs": 3812228.41, "ns per ops/procs": 262.31}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30100.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7142289567.0, "Ops per second": 238076318.0, "ns per ops": 4.0, "Ops per threads": 148797.0, "Ops per procs": 74398849.0, "Ops/sec/procs": 2479961.0, "ns per ops/procs": 404.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 203537018.0, "Total blocks": 203536518.0, "Ops per second": 6778520.07, "ns per ops": 147.52, "Ops per threads": 407074.0, "Ops per procs": 203537018.0, "Ops/sec/procs": 6778520.07, "ns per ops/procs": 147.52}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30038.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4558877039.0, "Total blocks": 4558877039.0, "Ops per second": 151766018.41, "ns per ops": 6.59, "Ops per threads": 94976.0, "Ops per procs": 47488302.0, "Ops/sec/procs": 1580896.03, "ns per ops/procs": 632.55}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2181332025.0, "Ops per second": 72711067.0, "ns per ops": 13.0, "Ops per threads": 272666.0, "Ops per procs": 136333251.0, "Ops/sec/procs": 4544441.0, "ns per ops/procs": 220.0}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30002.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2624688503.0, "Ops per second": 87482537.12, "ns per ops": 11.43, "Ops per threads": 328086.0, "Ops per procs": 164043031.0, "Ops/sec/procs": 5467658.57, "ns per ops/procs": 182.89}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30040.468734, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13006448294.0, "Total blocks": 13006448090.0, "Ops per second": 432964226.0, "ns per ops": 2.31, "Ops per threads": 135483.0, "Ops per procs": 67741918.0, "Ops/sec/procs": 2255022.01, "ns per ops/procs": 443.45}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30080.401345, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13004969493.0, "Total blocks": 13004969300.0, "Ops per second": 432340291.73, "ns per ops": 2.31, "Ops per threads": 135468.0, "Ops per procs": 67734216.0, "Ops/sec/procs": 2251772.35, "ns per ops/procs": 444.09}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167803594.0, "Ops per second": 5593203.24, "ns per ops": 178.79, "Ops per threads": 335607.0, "Ops per procs": 167803594.0, "Ops/sec/procs": 5593203.24, "ns per ops/procs": 178.79}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 317824348.0, "Ops per second": 10594144.0, "ns per ops": 94.0, "Ops per threads": 317824.0, "Ops per procs": 158912174.0, "Ops/sec/procs": 5297072.0, "ns per ops/procs": 189.0}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 139901.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15857881607.0, "Ops per second": 113350320.17, "ns per ops": 8.82, "Ops per threads": 1321490.0, "Ops per procs": 660745066.0, "Ops/sec/procs": 4722930.01, "ns per ops/procs": 211.73}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30079.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2121684656.0, "Total blocks": 2121684656.0, "Ops per second": 70536788.29, "ns per ops": 14.18, "Ops per threads": 265210.0, "Ops per procs": 132605291.0, "Ops/sec/procs": 4408549.27, "ns per ops/procs": 226.83}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30047.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12951015451.0, "Ops per second": 431015922.79, "ns per ops": 2.32, "Ops per threads": 134906.0, "Ops per procs": 67453205.0, "Ops/sec/procs": 2244874.6, "ns per ops/procs": 445.46}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30015.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 11133378930.0, "Ops per second": 370924308.97, "ns per ops": 2.7, "Ops per threads": 154630.0, "Ops per procs": 77315131.0, "Ops/sec/procs": 2575863.26, "ns per ops/procs": 388.22}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30044.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2488966538.0, "Total blocks": 2488966538.0, "Ops per second": 82843242.74, "ns per ops": 12.07, "Ops per threads": 103706.0, "Ops per procs": 51853469.0, "Ops/sec/procs": 1725900.89, "ns per ops/procs": 579.41}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30070.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 14527395496.0, "Ops per second": 483106904.06, "ns per ops": 2.07, "Ops per threads": 151327.0, "Ops per procs": 75663518.0, "Ops/sec/procs": 2516181.79, "ns per ops/procs": 397.43}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 701961454.0, "Ops per second": 23397496.96, "ns per ops": 42.74, "Ops per threads": 350980.0, "Ops per procs": 175490363.0, "Ops/sec/procs": 5849374.24, "ns per ops/procs": 170.96}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30054.724253, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 537861841.0, "Total blocks": 537859873.0, "Ops per second": 17896083.04, "ns per ops": 55.88, "Ops per threads": 268930.0, "Ops per procs": 134465460.0, "Ops/sec/procs": 4474020.76, "ns per ops/procs": 223.51}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 599686107.0, "Ops per second": 19989536.0, "ns per ops": 50.0, "Ops per threads": 299843.0, "Ops per procs": 149921526.0, "Ops/sec/procs": 4997384.0, "ns per ops/procs": 200.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30092.366445, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5581672724.0, "Total blocks": 5581672656.0, "Ops per second": 185484672.14, "ns per ops": 5.39, "Ops per threads": 155046.0, "Ops per procs": 77523232.0, "Ops/sec/procs": 2576176.0, "ns per ops/procs": 388.17}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 357111831.0, "Ops per second": 11903145.19, "ns per ops": 84.01, "Ops per threads": 357111.0, "Ops per procs": 178555915.0, "Ops/sec/procs": 5951572.59, "ns per ops/procs": 168.02}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30099.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 316969499.0, "Ops per second": 10565649.0, "ns per ops": 94.0, "Ops per threads": 316969.0, "Ops per procs": 158484749.0, "Ops/sec/procs": 5282824.0, "ns per ops/procs": 189.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30069.671674, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9724060959.0, "Total blocks": 9724060699.0, "Ops per second": 323384341.02, "ns per ops": 3.09, "Ops per threads": 135056.0, "Ops per procs": 67528201.0, "Ops/sec/procs": 2245724.59, "ns per ops/procs": 445.29}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3395137200.0, "Ops per second": 113161323.25, "ns per ops": 8.84, "Ops per threads": 282928.0, "Ops per procs": 141464050.0, "Ops/sec/procs": 4715055.14, "ns per ops/procs": 212.09}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30022.960511, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2370966534.0, "Total blocks": 2370966525.0, "Ops per second": 78971776.72, "ns per ops": 12.66, "Ops per threads": 197580.0, "Ops per procs": 98790272.0, "Ops/sec/procs": 3290490.7, "ns per ops/procs": 303.91}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 705885861.0, "Ops per second": 23528245.22, "ns per ops": 42.5, "Ops per threads": 352942.0, "Ops per procs": 176471465.0, "Ops/sec/procs": 5882061.31, "ns per ops/procs": 170.01}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30051.194467, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 291126347.0, "Total blocks": 291125351.0, "Ops per second": 9687679.71, "ns per ops": 103.22, "Ops per threads": 291126.0, "Ops per procs": 145563173.0, "Ops/sec/procs": 4843839.86, "ns per ops/procs": 206.45}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30019.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3468636647.0, "Ops per second": 115544465.2, "ns per ops": 8.65, "Ops per threads": 144526.0, "Ops per procs": 72263263.0, "Ops/sec/procs": 2407176.36, "ns per ops/procs": 415.42}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3853905169.0, "Ops per second": 128463505.0, "ns per ops": 7.0, "Ops per threads": 160579.0, "Ops per procs": 80289691.0, "Ops/sec/procs": 2676323.0, "ns per ops/procs": 374.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30051.504467, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 286978743.0, "Total blocks": 286977817.0, "Ops per second": 9549563.26, "ns per ops": 104.72, "Ops per threads": 286978.0, "Ops per procs": 143489371.0, "Ops/sec/procs": 4774781.63, "ns per ops/procs": 209.43}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30100.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10987066470.0, "Ops per second": 366235549.0, "ns per ops": 2.0, "Ops per threads": 152598.0, "Ops per procs": 76299072.0, "Ops/sec/procs": 2543302.0, "ns per ops/procs": 394.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3807152407.0, "Ops per second": 126905080.0, "ns per ops": 7.0, "Ops per threads": 158631.0, "Ops per procs": 79315675.0, "Ops/sec/procs": 2643855.0, "ns per ops/procs": 379.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 600955680.0, "Ops per second": 20031856.0, "ns per ops": 50.0, "Ops per threads": 300477.0, "Ops per procs": 150238920.0, "Ops/sec/procs": 5007964.0, "ns per ops/procs": 200.0}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 353481121.0, "Ops per second": 11782098.56, "ns per ops": 84.87, "Ops per threads": 353481.0, "Ops per procs": 176740560.0, "Ops/sec/procs": 5891049.28, "ns per ops/procs": 169.75}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30098.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6351669364.0, "Total blocks": 6351669364.0, "Ops per second": 211030388.85, "ns per ops": 4.74, "Ops per threads": 66163.0, "Ops per procs": 33081611.0, "Ops/sec/procs": 1099116.61, "ns per ops/procs": 909.82}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167728729.0, "Ops per second": 5590679.97, "ns per ops": 178.87, "Ops per threads": 335457.0, "Ops per procs": 167728729.0, "Ops/sec/procs": 5590679.97, "ns per ops/procs": 178.87}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30043.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 14058236696.0, "Ops per second": 467934793.04, "ns per ops": 2.14, "Ops per threads": 146439.0, "Ops per procs": 73219982.0, "Ops/sec/procs": 2437160.38, "ns per ops/procs": 410.31}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30100.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13204212175.0, "Ops per second": 440140405.0, "ns per ops": 2.0, "Ops per threads": 137543.0, "Ops per procs": 68771938.0, "Ops/sec/procs": 2292397.0, "ns per ops/procs": 437.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30000.700388, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12907414169.0, "Total blocks": 12907413976.0, "Ops per second": 430237094.54, "ns per ops": 2.32, "Ops per threads": 134452.0, "Ops per procs": 67226115.0, "Ops/sec/procs": 2240818.2, "ns per ops/procs": 446.27}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30023.604346, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2409664650.0, "Total blocks": 2409664647.0, "Ops per second": 80259006.29, "ns per ops": 12.46, "Ops per threads": 200805.0, "Ops per procs": 100402693.0, "Ops/sec/procs": 3344125.26, "ns per ops/procs": 299.03}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30049.956611, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 287781445.0, "Total blocks": 287780449.0, "Ops per second": 9576767.41, "ns per ops": 104.42, "Ops per threads": 287781.0, "Ops per procs": 143890722.0, "Ops/sec/procs": 4788383.7, "ns per ops/procs": 208.84}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30014.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2610877666.0, "Total blocks": 2610877666.0, "Ops per second": 86986013.58, "ns per ops": 11.5, "Ops per threads": 217573.0, "Ops per procs": 108786569.0, "Ops/sec/procs": 3624417.23, "ns per ops/procs": 275.91}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30025.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3440316573.0, "Ops per second": 114580329.91, "ns per ops": 8.73, "Ops per threads": 143346.0, "Ops per procs": 71673261.0, "Ops/sec/procs": 2387090.21, "ns per ops/procs": 418.92}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30048.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2440982468.0, "Total blocks": 2440982468.0, "Ops per second": 81233758.8, "ns per ops": 12.31, "Ops per threads": 101707.0, "Ops per procs": 50853801.0, "Ops/sec/procs": 1692369.98, "ns per ops/procs": 590.89}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30033.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3451664161.0, "Ops per second": 114925429.87, "ns per ops": 8.7, "Ops per threads": 143819.0, "Ops per procs": 71909670.0, "Ops/sec/procs": 2394279.79, "ns per ops/procs": 417.66}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 114131.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5412981349.0, "Ops per second": 47427547.71, "ns per ops": 21.08, "Ops per threads": 1353245.0, "Ops per procs": 676622668.0, "Ops/sec/procs": 5928443.46, "ns per ops/procs": 168.68}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30065.098892, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12941230059.0, "Total blocks": 12941229876.0, "Ops per second": 430440295.76, "ns per ops": 2.32, "Ops per threads": 134804.0, "Ops per procs": 67402239.0, "Ops/sec/procs": 2241876.54, "ns per ops/procs": 446.05}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167833111.0, "Ops per second": 5594192.83, "ns per ops": 178.76, "Ops per threads": 335666.0, "Ops per procs": 167833111.0, "Ops/sec/procs": 5594192.83, "ns per ops/procs": 178.76}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2202011885.0, "Ops per second": 73400396.0, "ns per ops": 13.0, "Ops per threads": 275251.0, "Ops per procs": 137625742.0, "Ops/sec/procs": 4587524.0, "ns per ops/procs": 218.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30098.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2854438644.0, "Ops per second": 95147954.0, "ns per ops": 10.0, "Ops per threads": 237869.0, "Ops per procs": 118934943.0, "Ops/sec/procs": 3964498.0, "ns per ops/procs": 253.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30055.274237, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 534060764.0, "Total blocks": 534058763.0, "Ops per second": 17769286.01, "ns per ops": 56.28, "Ops per threads": 267030.0, "Ops per procs": 133515191.0, "Ops/sec/procs": 4442321.5, "ns per ops/procs": 225.11}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30028.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 358075529.0, "Total blocks": 358075529.0, "Ops per second": 11924351.03, "ns per ops": 83.86, "Ops per threads": 358075.0, "Ops per procs": 179037764.0, "Ops/sec/procs": 5962175.51, "ns per ops/procs": 167.72}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30059.10851, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6581338755.0, "Total blocks": 6581338565.0, "Ops per second": 218946571.65, "ns per ops": 4.57, "Ops per threads": 137111.0, "Ops per procs": 68555612.0, "Ops/sec/procs": 2280693.45, "ns per ops/procs": 438.46}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30015.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3593220253.0, "Ops per second": 119711342.95, "ns per ops": 8.35, "Ops per threads": 149717.0, "Ops per procs": 74858755.0, "Ops/sec/procs": 2493986.31, "ns per ops/procs": 400.96}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30054.071166, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9733269851.0, "Total blocks": 9733269598.0, "Ops per second": 323858614.6, "ns per ops": 3.09, "Ops per threads": 135184.0, "Ops per procs": 67592151.0, "Ops/sec/procs": 2249018.16, "ns per ops/procs": 444.64}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30033.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 14500495182.0, "Ops per second": 482804012.57, "ns per ops": 2.07, "Ops per threads": 151046.0, "Ops per procs": 75523412.0, "Ops/sec/procs": 2514604.23, "ns per ops/procs": 397.68}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 688480596.0, "Total blocks": 688480596.0, "Ops per second": 22927023.65, "ns per ops": 43.62, "Ops per threads": 344240.0, "Ops per procs": 172120149.0, "Ops/sec/procs": 5731755.91, "ns per ops/procs": 174.47}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30028.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4865570274.0, "Total blocks": 4865570274.0, "Ops per second": 162030671.9, "ns per ops": 6.17, "Ops per threads": 135154.0, "Ops per procs": 67577364.0, "Ops/sec/procs": 2250426.0, "ns per ops/procs": 444.36}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30094.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1334446203.0, "Total blocks": 1334446203.0, "Ops per second": 44342343.68, "ns per ops": 22.55, "Ops per threads": 333611.0, "Ops per procs": 166805775.0, "Ops/sec/procs": 5542792.96, "ns per ops/procs": 180.41}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30098.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2895614705.0, "Ops per second": 96520490.0, "ns per ops": 10.0, "Ops per threads": 241301.0, "Ops per procs": 120650612.0, "Ops/sec/procs": 4021687.0, "ns per ops/procs": 249.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6196473702.0, "Ops per second": 206549123.0, "ns per ops": 4.0, "Ops per threads": 172124.0, "Ops per procs": 86062134.0, "Ops/sec/procs": 2868737.0, "ns per ops/procs": 349.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30078.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4978410880.0, "Total blocks": 4978410880.0, "Ops per second": 165516641.69, "ns per ops": 6.04, "Ops per threads": 138289.0, "Ops per procs": 69144595.0, "Ops/sec/procs": 2298842.25, "ns per ops/procs": 435.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30058.18945, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9716693325.0, "Total blocks": 9716693073.0, "Ops per second": 323262761.42, "ns per ops": 3.09, "Ops per threads": 134954.0, "Ops per procs": 67477036.0, "Ops/sec/procs": 2244880.29, "ns per ops/procs": 445.46}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30060.962144, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1016212543.0, "Total blocks": 1016208624.0, "Ops per second": 33805057.14, "ns per ops": 29.58, "Ops per threads": 254053.0, "Ops per procs": 127026567.0, "Ops/sec/procs": 4225632.14, "ns per ops/procs": 236.65}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 109789.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1402648216.0, "Ops per second": 12775812.73, "ns per ops": 78.27, "Ops per threads": 1402648.0, "Ops per procs": 701324108.0, "Ops/sec/procs": 6387906.36, "ns per ops/procs": 156.55}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30001.342973, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5696885013.0, "Total blocks": 5696884932.0, "Ops per second": 189887666.63, "ns per ops": 5.27, "Ops per threads": 158246.0, "Ops per procs": 79123402.0, "Ops/sec/procs": 2637328.7, "ns per ops/procs": 379.17}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30075.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3714056660.0, "Ops per second": 123489140.05, "ns per ops": 8.1, "Ops per threads": 154752.0, "Ops per procs": 77376180.0, "Ops/sec/procs": 2572690.42, "ns per ops/procs": 388.7}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1406976196.0, "Ops per second": 46896621.81, "ns per ops": 21.32, "Ops per threads": 351744.0, "Ops per procs": 175872024.0, "Ops/sec/procs": 5862077.73, "ns per ops/procs": 170.59}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 603446162.0, "Ops per second": 20114872.0, "ns per ops": 49.0, "Ops per threads": 301723.0, "Ops per procs": 150861540.0, "Ops/sec/procs": 5028718.0, "ns per ops/procs": 199.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1166153978.0, "Ops per second": 38871799.0, "ns per ops": 25.0, "Ops per threads": 291538.0, "Ops per procs": 145769247.0, "Ops/sec/procs": 4858974.0, "ns per ops/procs": 206.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30013.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10686167592.0, "Ops per second": 356205586.0, "ns per ops": 2.0, "Ops per threads": 148418.0, "Ops per procs": 74209497.0, "Ops/sec/procs": 2473649.0, "ns per ops/procs": 404.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30050.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4536828024.0, "Total blocks": 4536828024.0, "Ops per second": 150975006.25, "ns per ops": 6.62, "Ops per threads": 94517.0, "Ops per procs": 47258625.0, "Ops/sec/procs": 1572656.32, "ns per ops/procs": 635.87}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 291888.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7098915038.0, "Ops per second": 24320665.48, "ns per ops": 41.12, "Ops per threads": 3549457.0, "Ops per procs": 1774728759.0, "Ops/sec/procs": 6080166.37, "ns per ops/procs": 164.47}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 601787985.0, "Ops per second": 20059599.0, "ns per ops": 50.0, "Ops per threads": 300893.0, "Ops per procs": 150446996.0, "Ops/sec/procs": 5014899.0, "ns per ops/procs": 200.0}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1404522376.0, "Ops per second": 46814950.36, "ns per ops": 21.36, "Ops per threads": 351130.0, "Ops per procs": 175565297.0, "Ops/sec/procs": 5851868.8, "ns per ops/procs": 170.89}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3821493505.0, "Ops per second": 127383116.0, "ns per ops": 7.0, "Ops per threads": 159228.0, "Ops per procs": 79614448.0, "Ops/sec/procs": 2653814.0, "ns per ops/procs": 378.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30057.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6004984920.0, "Total blocks": 6004984920.0, "Ops per second": 199784207.11, "ns per ops": 5.01, "Ops per threads": 83402.0, "Ops per procs": 41701284.0, "Ops/sec/procs": 1387390.33, "ns per ops/procs": 720.78}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30001.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10502001891.0, "Ops per second": 350066729.0, "ns per ops": 2.0, "Ops per threads": 145861.0, "Ops per procs": 72930568.0, "Ops/sec/procs": 2431018.0, "ns per ops/procs": 411.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30029.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 351209268.0, "Total blocks": 351209268.0, "Ops per second": 11695655.16, "ns per ops": 85.5, "Ops per threads": 351209.0, "Ops per procs": 175604634.0, "Ops/sec/procs": 5847827.58, "ns per ops/procs": 171.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 203950394.0, "Total blocks": 203949894.0, "Ops per second": 6792350.66, "ns per ops": 147.22, "Ops per threads": 407900.0, "Ops per procs": 203950394.0, "Ops/sec/procs": 6792350.66, "ns per ops/procs": 147.22}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30070.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13685291540.0, "Ops per second": 455100690.38, "ns per ops": 2.2, "Ops per threads": 142555.0, "Ops per procs": 71277560.0, "Ops/sec/procs": 2370316.1, "ns per ops/procs": 421.88}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 58622.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5161836224.0, "Ops per second": 88052345.83, "ns per ops": 11.36, "Ops per threads": 645229.0, "Ops per procs": 322614764.0, "Ops/sec/procs": 5503271.61, "ns per ops/procs": 181.71}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 32591.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 11058682384.0, "Ops per second": 339310377.17, "ns per ops": 2.95, "Ops per threads": 153592.0, "Ops per procs": 76796405.0, "Ops/sec/procs": 2356322.06, "ns per ops/procs": 424.39}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30052.641823, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3384697368.0, "Total blocks": 3384697287.0, "Ops per second": 112625618.34, "ns per ops": 8.88, "Ops per threads": 141029.0, "Ops per procs": 70514528.0, "Ops/sec/procs": 2346367.05, "ns per ops/procs": 426.19}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6617007430.0, "Ops per second": 220566914.0, "ns per ops": 4.0, "Ops per threads": 183805.0, "Ops per procs": 91902880.0, "Ops/sec/procs": 3063429.0, "ns per ops/procs": 327.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6360025087.0, "Ops per second": 212000836.0, "ns per ops": 4.0, "Ops per threads": 176667.0, "Ops per procs": 88333681.0, "Ops/sec/procs": 2944456.0, "ns per ops/procs": 340.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30030.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 352290964.0, "Total blocks": 352290964.0, "Ops per second": 11731109.36, "ns per ops": 85.24, "Ops per threads": 352290.0, "Ops per procs": 176145482.0, "Ops/sec/procs": 5865554.68, "ns per ops/procs": 170.49}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30023.549747, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2393108443.0, "Total blocks": 2393108436.0, "Ops per second": 79707711.55, "ns per ops": 12.55, "Ops per threads": 199425.0, "Ops per procs": 99712851.0, "Ops/sec/procs": 3321154.65, "ns per ops/procs": 301.1}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30036.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2103121741.0, "Total blocks": 2103121741.0, "Ops per second": 70018698.79, "ns per ops": 14.28, "Ops per threads": 262890.0, "Ops per procs": 131445108.0, "Ops/sec/procs": 4376168.67, "ns per ops/procs": 228.51}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162948961.0, "Ops per second": 5431632.0, "ns per ops": 184.0, "Ops per threads": 325897.0, "Ops per procs": 162948961.0, "Ops/sec/procs": 5431632.0, "ns per ops/procs": 184.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30052.002839, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 290413959.0, "Total blocks": 290413113.0, "Ops per second": 9663713.95, "ns per ops": 103.48, "Ops per threads": 290413.0, "Ops per procs": 145206979.0, "Ops/sec/procs": 4831856.97, "ns per ops/procs": 206.96}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.678465, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168291645.0, "Total blocks": 168291149.0, "Ops per second": 5600447.45, "ns per ops": 178.56, "Ops per threads": 336583.0, "Ops per procs": 168291645.0, "Ops/sec/procs": 5600447.45, "ns per ops/procs": 178.56}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30098.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 600117059.0, "Ops per second": 20003901.0, "ns per ops": 50.0, "Ops per threads": 300058.0, "Ops per procs": 150029264.0, "Ops/sec/procs": 5000975.0, "ns per ops/procs": 200.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30098.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2894102152.0, "Ops per second": 96470071.0, "ns per ops": 10.0, "Ops per threads": 241175.0, "Ops per procs": 120587589.0, "Ops/sec/procs": 4019586.0, "ns per ops/procs": 249.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30060.650435, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3372781101.0, "Total blocks": 3372781029.0, "Ops per second": 112199205.68, "ns per ops": 8.91, "Ops per threads": 140532.0, "Ops per procs": 70266272.0, "Ops/sec/procs": 2337483.45, "ns per ops/procs": 427.81}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30051.587693, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 284093613.0, "Total blocks": 284092617.0, "Ops per second": 9453530.9, "ns per ops": 105.78, "Ops per threads": 284093.0, "Ops per procs": 142046806.0, "Ops/sec/procs": 4726765.45, "ns per ops/procs": 211.56}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2891778191.0, "Ops per second": 96392606.0, "ns per ops": 10.0, "Ops per threads": 240981.0, "Ops per procs": 120490757.0, "Ops/sec/procs": 4016358.0, "ns per ops/procs": 249.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.061514, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168210573.0, "Total blocks": 168210073.0, "Ops per second": 5597864.44, "ns per ops": 178.64, "Ops per threads": 336421.0, "Ops per procs": 168210573.0, "Ops/sec/procs": 5597864.44, "ns per ops/procs": 178.64}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 703547714.0, "Ops per second": 23450370.68, "ns per ops": 42.64, "Ops per threads": 351773.0, "Ops per procs": 175886928.0, "Ops/sec/procs": 5862592.67, "ns per ops/procs": 170.57}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30051.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3482639832.0, "Ops per second": 115888014.77, "ns per ops": 8.63, "Ops per threads": 145109.0, "Ops per procs": 72554996.0, "Ops/sec/procs": 2414333.64, "ns per ops/procs": 414.19}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30055.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2523036854.0, "Total blocks": 2523036854.0, "Ops per second": 83945117.83, "ns per ops": 11.91, "Ops per threads": 210253.0, "Ops per procs": 105126535.0, "Ops/sec/procs": 3497713.24, "ns per ops/procs": 285.9}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2606662496.0, "Ops per second": 86883039.33, "ns per ops": 11.51, "Ops per threads": 325832.0, "Ops per procs": 162916406.0, "Ops/sec/procs": 5430189.96, "ns per ops/procs": 184.16}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30000.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13028869869.0, "Ops per second": 434295662.0, "ns per ops": 2.0, "Ops per threads": 135717.0, "Ops per procs": 67858697.0, "Ops/sec/procs": 2261956.0, "ns per ops/procs": 442.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1159396486.0, "Ops per second": 38646549.0, "ns per ops": 25.0, "Ops per threads": 289849.0, "Ops per procs": 144924560.0, "Ops/sec/procs": 4830818.0, "ns per ops/procs": 207.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30024.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4383807982.0, "Total blocks": 4383807982.0, "Ops per second": 146007002.18, "ns per ops": 6.85, "Ops per threads": 91329.0, "Ops per procs": 45664666.0, "Ops/sec/procs": 1520906.27, "ns per ops/procs": 657.5}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30038.590278, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9818767893.0, "Total blocks": 9818767744.0, "Ops per second": 326871793.99, "ns per ops": 3.06, "Ops per threads": 136371.0, "Ops per procs": 68185888.0, "Ops/sec/procs": 2269943.01, "ns per ops/procs": 440.54}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30040.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4674253039.0, "Total blocks": 4674253038.0, "Ops per second": 155600007.85, "ns per ops": 6.43, "Ops per threads": 129840.0, "Ops per procs": 64920181.0, "Ops/sec/procs": 2161111.22, "ns per ops/procs": 462.72}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162921728.0, "Ops per second": 5430724.0, "ns per ops": 184.0, "Ops per threads": 325843.0, "Ops per procs": 162921728.0, "Ops/sec/procs": 5430724.0, "ns per ops/procs": 184.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1331116737.0, "Total blocks": 1331116737.0, "Ops per second": 44327959.85, "ns per ops": 22.56, "Ops per threads": 332779.0, "Ops per procs": 166389592.0, "Ops/sec/procs": 5540994.98, "ns per ops/procs": 180.47}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30037.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 698157505.0, "Total blocks": 698157505.0, "Ops per second": 23242529.99, "ns per ops": 43.02, "Ops per threads": 349078.0, "Ops per procs": 174539376.0, "Ops/sec/procs": 5810632.5, "ns per ops/procs": 172.1}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30041.732608, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9599833954.0, "Total blocks": 9599833450.0, "Ops per second": 319549943.38, "ns per ops": 3.13, "Ops per threads": 133331.0, "Ops per procs": 66665513.0, "Ops/sec/procs": 2219096.83, "ns per ops/procs": 450.63}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2463881563.0, "Total blocks": 2463881563.0, "Ops per second": 82113032.51, "ns per ops": 12.18, "Ops per threads": 102661.0, "Ops per procs": 51330865.0, "Ops/sec/procs": 1710688.18, "ns per ops/procs": 584.56}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30046.606445, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9664559493.0, "Total blocks": 9664559133.0, "Ops per second": 321652280.79, "ns per ops": 3.11, "Ops per threads": 134229.0, "Ops per procs": 67114996.0, "Ops/sec/procs": 2233696.39, "ns per ops/procs": 447.69}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30019.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5055183967.0, "Total blocks": 5055183967.0, "Ops per second": 168398733.92, "ns per ops": 5.94, "Ops per threads": 140421.0, "Ops per procs": 70210888.0, "Ops/sec/procs": 2338871.3, "ns per ops/procs": 427.56}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1162868293.0, "Ops per second": 38762276.0, "ns per ops": 25.0, "Ops per threads": 290717.0, "Ops per procs": 145358536.0, "Ops/sec/procs": 4845284.0, "ns per ops/procs": 207.0}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1402252818.0, "Ops per second": 46739193.14, "ns per ops": 21.4, "Ops per threads": 350563.0, "Ops per procs": 175281602.0, "Ops/sec/procs": 5842399.14, "ns per ops/procs": 171.16}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30062.470297, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9808068915.0, "Total blocks": 9808068766.0, "Ops per second": 326256253.0, "ns per ops": 3.07, "Ops per threads": 136223.0, "Ops per procs": 68111589.0, "Ops/sec/procs": 2265668.42, "ns per ops/procs": 441.37}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 48906.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 22823309815.0, "Ops per second": 466673250.03, "ns per ops": 2.14, "Ops per threads": 237742.0, "Ops per procs": 118871405.0, "Ops/sec/procs": 2430589.84, "ns per ops/procs": 411.42}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 702914613.0, "Ops per second": 23429264.3, "ns per ops": 42.68, "Ops per threads": 351457.0, "Ops per procs": 175728653.0, "Ops/sec/procs": 5857316.08, "ns per ops/procs": 170.73}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30054.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6612298233.0, "Ops per second": 220007922.46, "ns per ops": 4.55, "Ops per threads": 137756.0, "Ops per procs": 68878106.0, "Ops/sec/procs": 2291749.19, "ns per ops/procs": 436.35}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 358327123.0, "Ops per second": 11943669.51, "ns per ops": 83.73, "Ops per threads": 358327.0, "Ops per procs": 179163561.0, "Ops/sec/procs": 5971834.76, "ns per ops/procs": 167.45}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30048.022482, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9746486532.0, "Total blocks": 9746486315.0, "Ops per second": 324363659.47, "ns per ops": 3.08, "Ops per threads": 135367.0, "Ops per procs": 67683934.0, "Ops/sec/procs": 2252525.41, "ns per ops/procs": 443.95}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 204119645.0, "Total blocks": 204119145.0, "Ops per second": 6798029.06, "ns per ops": 147.1, "Ops per threads": 408239.0, "Ops per procs": 204119645.0, "Ops/sec/procs": 6798029.06, "ns per ops/procs": 147.1}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1160845414.0, "Ops per second": 38694847.0, "ns per ops": 25.0, "Ops per threads": 290211.0, "Ops per procs": 145105676.0, "Ops/sec/procs": 4836855.0, "ns per ops/procs": 207.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30029.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1319938632.0, "Total blocks": 1319938632.0, "Ops per second": 43955412.45, "ns per ops": 22.75, "Ops per threads": 329984.0, "Ops per procs": 164992329.0, "Ops/sec/procs": 5494426.56, "ns per ops/procs": 182.0}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30081.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6868534045.0, "Ops per second": 228327438.96, "ns per ops": 4.38, "Ops per threads": 143094.0, "Ops per procs": 71547229.0, "Ops/sec/procs": 2378410.82, "ns per ops/procs": 420.45}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30022.452179, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2396495012.0, "Total blocks": 2396495006.0, "Ops per second": 79823426.74, "ns per ops": 12.53, "Ops per threads": 199707.0, "Ops per procs": 99853958.0, "Ops/sec/procs": 3325976.11, "ns per ops/procs": 300.66}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30015.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2496713750.0, "Total blocks": 2496713750.0, "Ops per second": 83181623.0, "ns per ops": 12.02, "Ops per threads": 208059.0, "Ops per procs": 104029739.0, "Ops/sec/procs": 3465900.96, "ns per ops/procs": 288.53}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2204230032.0, "Ops per second": 73474334.0, "ns per ops": 13.0, "Ops per threads": 275528.0, "Ops per procs": 137764377.0, "Ops/sec/procs": 4592145.0, "ns per ops/procs": 218.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6408567784.0, "Ops per second": 213618926.0, "ns per ops": 4.0, "Ops per threads": 178015.0, "Ops per procs": 89007885.0, "Ops/sec/procs": 2966929.0, "ns per ops/procs": 338.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30049.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2442823442.0, "Total blocks": 2442823442.0, "Ops per second": 81292199.51, "ns per ops": 12.3, "Ops per threads": 101784.0, "Ops per procs": 50892155.0, "Ops/sec/procs": 1693587.49, "ns per ops/procs": 590.46}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30021.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12925856264.0, "Ops per second": 430861875.0, "ns per ops": 2.0, "Ops per threads": 134644.0, "Ops per procs": 67322168.0, "Ops/sec/procs": 2244072.0, "ns per ops/procs": 445.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30030.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2450451540.0, "Total blocks": 2450451540.0, "Ops per second": 81599642.34, "ns per ops": 12.25, "Ops per threads": 102102.0, "Ops per procs": 51051073.0, "Ops/sec/procs": 1699992.55, "ns per ops/procs": 588.24}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 318036362.0, "Ops per second": 10601212.0, "ns per ops": 94.0, "Ops per threads": 318036.0, "Ops per procs": 159018181.0, "Ops/sec/procs": 5300606.0, "ns per ops/procs": 189.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30032.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 688165907.0, "Total blocks": 688165907.0, "Ops per second": 22914409.58, "ns per ops": 43.64, "Ops per threads": 344082.0, "Ops per procs": 172041476.0, "Ops/sec/procs": 5728602.39, "ns per ops/procs": 174.56}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 203346198.0, "Total blocks": 203345698.0, "Ops per second": 6772166.51, "ns per ops": 147.66, "Ops per threads": 406692.0, "Ops per procs": 203346198.0, "Ops/sec/procs": 6772166.51, "ns per ops/procs": 147.66}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30100.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13283218533.0, "Ops per second": 442773951.0, "ns per ops": 2.0, "Ops per threads": 138366.0, "Ops per procs": 69183429.0, "Ops/sec/procs": 2306114.0, "ns per ops/procs": 435.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.755761, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167981268.0, "Total blocks": 167980772.0, "Ops per second": 5590104.27, "ns per ops": 178.89, "Ops per threads": 335962.0, "Ops per procs": 167981268.0, "Ops/sec/procs": 5590104.27, "ns per ops/procs": 178.89}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30062.199687, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12986339364.0, "Total blocks": 12986339194.0, "Ops per second": 431982339.92, "ns per ops": 2.31, "Ops per threads": 135274.0, "Ops per procs": 67637184.0, "Ops/sec/procs": 2249908.02, "ns per ops/procs": 444.46}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30048.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2561342717.0, "Total blocks": 2561342717.0, "Ops per second": 85241566.51, "ns per ops": 11.73, "Ops per threads": 213445.0, "Ops per procs": 106722613.0, "Ops/sec/procs": 3551731.94, "ns per ops/procs": 281.55}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30003.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7125830090.0, "Ops per second": 237527669.0, "ns per ops": 4.0, "Ops per threads": 148454.0, "Ops per procs": 74227396.0, "Ops/sec/procs": 2474246.0, "ns per ops/procs": 404.0}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30005.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6677841425.0, "Ops per second": 222553623.82, "ns per ops": 4.49, "Ops per threads": 139121.0, "Ops per procs": 69560848.0, "Ops/sec/procs": 2318266.91, "ns per ops/procs": 431.36}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30030.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 353151232.0, "Total blocks": 353151232.0, "Ops per second": 11759911.77, "ns per ops": 85.03, "Ops per threads": 353151.0, "Ops per procs": 176575616.0, "Ops/sec/procs": 5879955.88, "ns per ops/procs": 170.07}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30023.780053, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2300075820.0, "Total blocks": 2300075814.0, "Ops per second": 76608468.88, "ns per ops": 13.05, "Ops per threads": 191672.0, "Ops per procs": 95836492.0, "Ops/sec/procs": 3192019.54, "ns per ops/procs": 313.28}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 128721.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 14301317257.0, "Ops per second": 111102506.11, "ns per ops": 9.0, "Ops per threads": 1191776.0, "Ops per procs": 595888219.0, "Ops/sec/procs": 4629271.09, "ns per ops/procs": 216.02}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30052.031829, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 289232468.0, "Total blocks": 289231472.0, "Ops per second": 9624389.78, "ns per ops": 103.9, "Ops per threads": 289232.0, "Ops per procs": 144616234.0, "Ops/sec/procs": 4812194.89, "ns per ops/procs": 207.81}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1403196271.0, "Ops per second": 46770704.1, "ns per ops": 21.38, "Ops per threads": 350799.0, "Ops per procs": 175399533.0, "Ops/sec/procs": 5846338.01, "ns per ops/procs": 171.05}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30043.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 693408357.0, "Total blocks": 693408357.0, "Ops per second": 23079927.56, "ns per ops": 43.33, "Ops per threads": 346704.0, "Ops per procs": 173352089.0, "Ops/sec/procs": 5769981.89, "ns per ops/procs": 173.31}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30014.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2542919680.0, "Total blocks": 2542919680.0, "Ops per second": 84723134.67, "ns per ops": 11.8, "Ops per threads": 211909.0, "Ops per procs": 105954986.0, "Ops/sec/procs": 3530130.61, "ns per ops/procs": 283.28}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3068453568.0, "Ops per second": 102272454.44, "ns per ops": 9.78, "Ops per threads": 255704.0, "Ops per procs": 127852232.0, "Ops/sec/procs": 4261352.27, "ns per ops/procs": 234.67}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30071.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6891770808.0, "Ops per second": 229179370.78, "ns per ops": 4.36, "Ops per threads": 143578.0, "Ops per procs": 71789279.0, "Ops/sec/procs": 2387285.11, "ns per ops/procs": 418.89}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 153926.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 17323791339.0, "Ops per second": 112546169.42, "ns per ops": 8.89, "Ops per threads": 1443649.0, "Ops per procs": 721824639.0, "Ops/sec/procs": 4689423.73, "ns per ops/procs": 213.25}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 703640857.0, "Ops per second": 23453482.8, "ns per ops": 42.64, "Ops per threads": 351820.0, "Ops per procs": 175910214.0, "Ops/sec/procs": 5863370.7, "ns per ops/procs": 170.55}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30089.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3361344245.0, "Ops per second": 111710050.79, "ns per ops": 8.95, "Ops per threads": 140056.0, "Ops per procs": 70028005.0, "Ops/sec/procs": 2327292.72, "ns per ops/procs": 429.68}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30060.735788, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12958736814.0, "Total blocks": 12958736650.0, "Ops per second": 431085150.59, "ns per ops": 2.32, "Ops per threads": 134986.0, "Ops per procs": 67493420.0, "Ops/sec/procs": 2245235.16, "ns per ops/procs": 445.39}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 600411974.0, "Ops per second": 20013732.0, "ns per ops": 50.0, "Ops per threads": 300205.0, "Ops per procs": 150102993.0, "Ops/sec/procs": 5003433.0, "ns per ops/procs": 200.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30007.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10931275780.0, "Ops per second": 364375859.0, "ns per ops": 2.0, "Ops per threads": 151823.0, "Ops per procs": 75911637.0, "Ops/sec/procs": 2530387.0, "ns per ops/procs": 395.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30018.582818, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2141693689.0, "Total blocks": 2141693685.0, "Ops per second": 71345596.23, "ns per ops": 14.02, "Ops per threads": 178474.0, "Ops per procs": 89237237.0, "Ops/sec/procs": 2972733.18, "ns per ops/procs": 336.39}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30018.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10365991760.0, "Ops per second": 345322877.08, "ns per ops": 2.9, "Ops per threads": 143972.0, "Ops per procs": 71986053.0, "Ops/sec/procs": 2398075.54, "ns per ops/procs": 417.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162946006.0, "Ops per second": 5431533.0, "ns per ops": 184.0, "Ops per threads": 325892.0, "Ops per procs": 162946006.0, "Ops/sec/procs": 5431533.0, "ns per ops/procs": 184.0}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30014.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3600741090.0, "Ops per second": 119966491.99, "ns per ops": 8.34, "Ops per threads": 150030.0, "Ops per procs": 75015439.0, "Ops/sec/procs": 2499301.92, "ns per ops/procs": 400.11}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30077.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2068688292.0, "Total blocks": 2068688292.0, "Ops per second": 68778176.34, "ns per ops": 14.54, "Ops per threads": 258586.0, "Ops per procs": 129293018.0, "Ops/sec/procs": 4298636.02, "ns per ops/procs": 232.63}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30099.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7278293766.0, "Ops per second": 242609792.0, "ns per ops": 4.0, "Ops per threads": 151631.0, "Ops per procs": 75815560.0, "Ops/sec/procs": 2527185.0, "ns per ops/procs": 397.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30074.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2510631380.0, "Total blocks": 2510631380.0, "Ops per second": 83479241.18, "ns per ops": 11.98, "Ops per threads": 104609.0, "Ops per procs": 52304820.0, "Ops/sec/procs": 1739150.86, "ns per ops/procs": 574.99}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30015.830526, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2377943794.0, "Total blocks": 2377943793.0, "Ops per second": 79222988.41, "ns per ops": 12.62, "Ops per threads": 198161.0, "Ops per procs": 99080991.0, "Ops/sec/procs": 3300957.85, "ns per ops/procs": 302.94}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 33222.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 11985765475.0, "Ops per second": 360773167.65, "ns per ops": 2.77, "Ops per threads": 166468.0, "Ops per procs": 83234482.0, "Ops/sec/procs": 2505369.22, "ns per ops/procs": 399.14}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30074.816812, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1855994515.0, "Total blocks": 1855986515.0, "Ops per second": 61712579.22, "ns per ops": 16.2, "Ops per threads": 231999.0, "Ops per procs": 115999657.0, "Ops/sec/procs": 3857036.2, "ns per ops/procs": 259.27}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30061.746889, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3377929965.0, "Total blocks": 3377929869.0, "Ops per second": 112366389.67, "ns per ops": 8.9, "Ops per threads": 140747.0, "Ops per procs": 70373540.0, "Ops/sec/procs": 2340966.45, "ns per ops/procs": 427.17}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30048.077151, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 285479890.0, "Total blocks": 285478894.0, "Ops per second": 9500770.67, "ns per ops": 105.25, "Ops per threads": 285479.0, "Ops per procs": 142739945.0, "Ops/sec/procs": 4750385.33, "ns per ops/procs": 210.51}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30051.111455, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 290724438.0, "Total blocks": 290723442.0, "Ops per second": 9674332.29, "ns per ops": 103.37, "Ops per threads": 290724.0, "Ops per procs": 145362219.0, "Ops/sec/procs": 4837166.15, "ns per ops/procs": 206.73}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6350625535.0, "Total blocks": 6350625534.0, "Ops per second": 211648044.49, "ns per ops": 4.72, "Ops per threads": 66152.0, "Ops per procs": 33076174.0, "Ops/sec/procs": 1102333.57, "ns per ops/procs": 907.17}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30002.94067, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5673664553.0, "Total blocks": 5673664528.0, "Ops per second": 189103615.39, "ns per ops": 5.29, "Ops per threads": 157601.0, "Ops per procs": 78800896.0, "Ops/sec/procs": 2626439.1, "ns per ops/procs": 380.74}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.890561, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168309332.0, "Total blocks": 168308836.0, "Ops per second": 5600996.5, "ns per ops": 178.54, "Ops per threads": 336618.0, "Ops per procs": 168309332.0, "Ops/sec/procs": 5600996.5, "ns per ops/procs": 178.54}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30099.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6281823128.0, "Ops per second": 209394104.0, "ns per ops": 4.0, "Ops per threads": 174495.0, "Ops per procs": 87247543.0, "Ops/sec/procs": 2908251.0, "ns per ops/procs": 344.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1161334682.0, "Ops per second": 38711156.0, "ns per ops": 25.0, "Ops per threads": 290333.0, "Ops per procs": 145166835.0, "Ops/sec/procs": 4838894.0, "ns per ops/procs": 207.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 202819301.0, "Total blocks": 202818801.0, "Ops per second": 6754632.58, "ns per ops": 148.05, "Ops per threads": 405638.0, "Ops per procs": 202819301.0, "Ops/sec/procs": 6754632.58, "ns per ops/procs": 148.05}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30044.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6522724179.0, "Ops per second": 217100172.84, "ns per ops": 4.61, "Ops per threads": 181186.0, "Ops per procs": 90593391.0, "Ops/sec/procs": 3015280.18, "ns per ops/procs": 331.64}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30060.059841, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12953019994.0, "Total blocks": 12953019803.0, "Ops per second": 430904664.28, "ns per ops": 2.32, "Ops per threads": 134927.0, "Ops per procs": 67463645.0, "Ops/sec/procs": 2244295.13, "ns per ops/procs": 445.57}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 702171946.0, "Ops per second": 23404528.35, "ns per ops": 42.73, "Ops per threads": 351085.0, "Ops per procs": 175542986.0, "Ops/sec/procs": 5851132.09, "ns per ops/procs": 170.91}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 198828275.0, "Total blocks": 198827775.0, "Ops per second": 6621691.29, "ns per ops": 151.02, "Ops per threads": 397656.0, "Ops per procs": 198828275.0, "Ops/sec/procs": 6621691.29, "ns per ops/procs": 151.02}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2204062076.0, "Ops per second": 73468735.0, "ns per ops": 13.0, "Ops per threads": 275507.0, "Ops per procs": 137753879.0, "Ops/sec/procs": 4591795.0, "ns per ops/procs": 218.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30098.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 317819137.0, "Ops per second": 10593971.0, "ns per ops": 94.0, "Ops per threads": 317819.0, "Ops per procs": 158909568.0, "Ops/sec/procs": 5296985.0, "ns per ops/procs": 189.0}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30022.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7468315737.0, "Ops per second": 248754451.02, "ns per ops": 4.02, "Ops per threads": 155589.0, "Ops per procs": 77794955.0, "Ops/sec/procs": 2591192.2, "ns per ops/procs": 385.92}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30021.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5734041095.0, "Total blocks": 5734041095.0, "Ops per second": 190997210.32, "ns per ops": 5.24, "Ops per threads": 59729.0, "Ops per procs": 29864797.0, "Ops/sec/procs": 994777.14, "ns per ops/procs": 1005.25}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6399825942.0, "Ops per second": 213327531.0, "ns per ops": 4.0, "Ops per threads": 177772.0, "Ops per procs": 88886471.0, "Ops/sec/procs": 2962882.0, "ns per ops/procs": 338.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30047.470397, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6620639219.0, "Total blocks": 6620639118.0, "Ops per second": 220339320.8, "ns per ops": 4.54, "Ops per threads": 137929.0, "Ops per procs": 68964991.0, "Ops/sec/procs": 2295201.26, "ns per ops/procs": 435.69}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30030.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1337355073.0, "Total blocks": 1337355073.0, "Ops per second": 44533506.43, "ns per ops": 22.46, "Ops per threads": 334338.0, "Ops per procs": 167169384.0, "Ops/sec/procs": 5566688.3, "ns per ops/procs": 179.64}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.778486, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168019332.0, "Total blocks": 168018832.0, "Ops per second": 5591366.74, "ns per ops": 178.85, "Ops per threads": 336038.0, "Ops per procs": 168019332.0, "Ops/sec/procs": 5591366.74, "ns per ops/procs": 178.85}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30057.730279, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3362175246.0, "Total blocks": 3362175163.0, "Ops per second": 111857256.51, "ns per ops": 8.94, "Ops per threads": 140090.0, "Ops per procs": 70045317.0, "Ops/sec/procs": 2330359.51, "ns per ops/procs": 429.12}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30060.926541, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12962752012.0, "Total blocks": 12962751830.0, "Ops per second": 431215983.79, "ns per ops": 2.32, "Ops per threads": 135028.0, "Ops per procs": 67514333.0, "Ops/sec/procs": 2245916.58, "ns per ops/procs": 445.25}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30056.084919, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1005763199.0, "Total blocks": 1005759202.0, "Ops per second": 33462881.2, "ns per ops": 29.88, "Ops per threads": 251440.0, "Ops per procs": 125720399.0, "Ops/sec/procs": 4182860.15, "ns per ops/procs": 239.07}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 704611394.0, "Ops per second": 23485885.25, "ns per ops": 42.58, "Ops per threads": 352305.0, "Ops per procs": 176152848.0, "Ops/sec/procs": 5871471.31, "ns per ops/procs": 170.32}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30054.694208, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12938654371.0, "Total blocks": 12938654189.0, "Ops per second": 430503610.57, "ns per ops": 2.32, "Ops per threads": 134777.0, "Ops per procs": 67388824.0, "Ops/sec/procs": 2242206.31, "ns per ops/procs": 445.99}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10754278549.0, "Ops per second": 358475951.0, "ns per ops": 2.0, "Ops per threads": 149364.0, "Ops per procs": 74682489.0, "Ops/sec/procs": 2489416.0, "ns per ops/procs": 401.0}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 247134.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6008765208.0, "Ops per second": 24313747.31, "ns per ops": 41.13, "Ops per threads": 3004382.0, "Ops per procs": 1502191302.0, "Ops/sec/procs": 6078436.83, "ns per ops/procs": 164.52}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30061.073027, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1005983525.0, "Total blocks": 1005983525.0, "Ops per second": 33464657.9, "ns per ops": 29.88, "Ops per threads": 251495.0, "Ops per procs": 125747940.0, "Ops/sec/procs": 4183082.24, "ns per ops/procs": 239.06}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30039.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4880845824.0, "Total blocks": 4880845824.0, "Ops per second": 162479248.82, "ns per ops": 6.15, "Ops per threads": 135579.0, "Ops per procs": 67789525.0, "Ops/sec/procs": 2256656.23, "ns per ops/procs": 443.13}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30002.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2635183195.0, "Ops per second": 87833374.99, "ns per ops": 11.39, "Ops per threads": 329397.0, "Ops per procs": 164698949.0, "Ops/sec/procs": 5489585.94, "ns per ops/procs": 182.16}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30052.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9985408229.0, "Ops per second": 332267997.73, "ns per ops": 3.01, "Ops per threads": 138686.0, "Ops per procs": 69343112.0, "Ops/sec/procs": 2307416.65, "ns per ops/procs": 433.39}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30009.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6064285162.0, "Total blocks": 6064285161.0, "Ops per second": 202075630.66, "ns per ops": 4.95, "Ops per threads": 63169.0, "Ops per procs": 31584818.0, "Ops/sec/procs": 1052477.24, "ns per ops/procs": 950.14}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30040.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6294658226.0, "Ops per second": 209537695.36, "ns per ops": 4.77, "Ops per threads": 174851.0, "Ops per procs": 87425808.0, "Ops/sec/procs": 2910245.77, "ns per ops/procs": 343.61}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7011347227.0, "Ops per second": 233635639.94, "ns per ops": 4.28, "Ops per threads": 194759.0, "Ops per procs": 97379822.0, "Ops/sec/procs": 3244939.44, "ns per ops/procs": 308.17}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 699845675.0, "Total blocks": 699845675.0, "Ops per second": 23305480.11, "ns per ops": 42.91, "Ops per threads": 349922.0, "Ops per procs": 174961418.0, "Ops/sec/procs": 5826370.03, "ns per ops/procs": 171.63}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30059.806429, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3370983201.0, "Total blocks": 3370983106.0, "Ops per second": 112142545.19, "ns per ops": 8.92, "Ops per threads": 140457.0, "Ops per procs": 70228816.0, "Ops/sec/procs": 2336303.02, "ns per ops/procs": 428.03}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30002.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2016729379.0, "Ops per second": 67219519.81, "ns per ops": 14.88, "Ops per threads": 252091.0, "Ops per procs": 126045586.0, "Ops/sec/procs": 4201219.99, "ns per ops/procs": 238.03}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30059.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7011600421.0, "Ops per second": 233257267.61, "ns per ops": 4.29, "Ops per threads": 194766.0, "Ops per procs": 97383339.0, "Ops/sec/procs": 3239684.27, "ns per ops/procs": 308.67}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30060.203423, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3365766818.0, "Total blocks": 3365766707.0, "Ops per second": 111967532.98, "ns per ops": 8.93, "Ops per threads": 140240.0, "Ops per procs": 70120142.0, "Ops/sec/procs": 2332656.94, "ns per ops/procs": 428.7}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30100.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3831085565.0, "Ops per second": 127702852.0, "ns per ops": 7.0, "Ops per threads": 159628.0, "Ops per procs": 79814282.0, "Ops/sec/procs": 2660476.0, "ns per ops/procs": 377.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30024.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2474717310.0, "Total blocks": 2474717310.0, "Ops per second": 82422195.68, "ns per ops": 12.13, "Ops per threads": 103113.0, "Ops per procs": 51556610.0, "Ops/sec/procs": 1717129.08, "ns per ops/procs": 582.37}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1165692340.0, "Ops per second": 38856411.0, "ns per ops": 25.0, "Ops per threads": 291423.0, "Ops per procs": 145711542.0, "Ops/sec/procs": 4857051.0, "ns per ops/procs": 206.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30047.774416, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6553302201.0, "Total blocks": 6553302051.0, "Ops per second": 218096092.92, "ns per ops": 4.59, "Ops per threads": 136527.0, "Ops per procs": 68263564.0, "Ops/sec/procs": 2271834.3, "ns per ops/procs": 440.17}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30080.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4681668636.0, "Total blocks": 4681668636.0, "Ops per second": 155636504.56, "ns per ops": 6.43, "Ops per threads": 130046.0, "Ops per procs": 65023175.0, "Ops/sec/procs": 2161618.12, "ns per ops/procs": 462.62}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30062.807317, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1012052411.0, "Total blocks": 1012048413.0, "Ops per second": 33664600.92, "ns per ops": 29.7, "Ops per threads": 253013.0, "Ops per procs": 126506551.0, "Ops/sec/procs": 4208075.12, "ns per ops/procs": 237.64}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30072.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6189567236.0, "Total blocks": 6189567236.0, "Ops per second": 205823031.42, "ns per ops": 4.86, "Ops per threads": 64474.0, "Ops per procs": 32237329.0, "Ops/sec/procs": 1071994.96, "ns per ops/procs": 932.84}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167785107.0, "Ops per second": 5592589.34, "ns per ops": 178.81, "Ops per threads": 335570.0, "Ops per procs": 167785107.0, "Ops/sec/procs": 5592589.34, "ns per ops/procs": 178.81}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30050.092906, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167904605.0, "Total blocks": 167904105.0, "Ops per second": 5587490.38, "ns per ops": 178.97, "Ops per threads": 335809.0, "Ops per procs": 167904605.0, "Ops/sec/procs": 5587490.38, "ns per ops/procs": 178.97}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30031.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5719167751.0, "Total blocks": 5719167750.0, "Ops per second": 190435930.09, "ns per ops": 5.25, "Ops per threads": 79432.0, "Ops per procs": 39716442.0, "Ops/sec/procs": 1322471.74, "ns per ops/procs": 756.16}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3878367407.0, "Ops per second": 129278913.0, "ns per ops": 7.0, "Ops per threads": 161598.0, "Ops per procs": 80799320.0, "Ops/sec/procs": 2693310.0, "ns per ops/procs": 372.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 318283138.0, "Ops per second": 10609437.0, "ns per ops": 94.0, "Ops per threads": 318283.0, "Ops per procs": 159141569.0, "Ops/sec/procs": 5304718.0, "ns per ops/procs": 189.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30028.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 353570748.0, "Total blocks": 353570748.0, "Ops per second": 11774353.58, "ns per ops": 84.93, "Ops per threads": 353570.0, "Ops per procs": 176785374.0, "Ops/sec/procs": 5887176.79, "ns per ops/procs": 169.86}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30031.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6199827412.0, "Total blocks": 6199827410.0, "Ops per second": 206444038.59, "ns per ops": 4.84, "Ops per threads": 64581.0, "Ops per procs": 32290767.0, "Ops/sec/procs": 1075229.37, "ns per ops/procs": 930.03}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30056.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13821031718.0, "Ops per second": 459827994.27, "ns per ops": 2.17, "Ops per threads": 143969.0, "Ops per procs": 71984540.0, "Ops/sec/procs": 2394937.47, "ns per ops/procs": 417.55}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30073.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 11082119222.0, "Ops per second": 368497248.08, "ns per ops": 2.71, "Ops per threads": 153918.0, "Ops per procs": 76959161.0, "Ops/sec/procs": 2559008.67, "ns per ops/procs": 390.78}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1407449530.0, "Ops per second": 46912444.56, "ns per ops": 21.32, "Ops per threads": 351862.0, "Ops per procs": 175931191.0, "Ops/sec/procs": 5864055.57, "ns per ops/procs": 170.53}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 204386291.0, "Total blocks": 204385791.0, "Ops per second": 6806813.14, "ns per ops": 146.91, "Ops per threads": 408772.0, "Ops per procs": 204386291.0, "Ops/sec/procs": 6806813.14, "ns per ops/procs": 146.91}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30044.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1331047214.0, "Total blocks": 1331047214.0, "Ops per second": 44302644.99, "ns per ops": 22.57, "Ops per threads": 332761.0, "Ops per procs": 166380901.0, "Ops/sec/procs": 5537830.62, "ns per ops/procs": 180.58}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30036.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2103748467.0, "Total blocks": 2103748467.0, "Ops per second": 70040095.14, "ns per ops": 14.28, "Ops per threads": 262968.0, "Ops per procs": 131484279.0, "Ops/sec/procs": 4377505.95, "ns per ops/procs": 228.44}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 55075.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4839104878.0, "Ops per second": 87863086.85, "ns per ops": 11.38, "Ops per threads": 604888.0, "Ops per procs": 302444054.0, "Ops/sec/procs": 5491442.93, "ns per ops/procs": 182.1}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30060.804757, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1025930963.0, "Total blocks": 1025926967.0, "Ops per second": 34128526.21, "ns per ops": 29.3, "Ops per threads": 256482.0, "Ops per procs": 128241370.0, "Ops/sec/procs": 4266065.78, "ns per ops/procs": 234.41}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30054.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6793875943.0, "Ops per second": 226055606.41, "ns per ops": 4.42, "Ops per threads": 141539.0, "Ops per procs": 70769541.0, "Ops/sec/procs": 2354745.9, "ns per ops/procs": 424.67}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.973691, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168224528.0, "Total blocks": 168224032.0, "Ops per second": 5598158.91, "ns per ops": 178.63, "Ops per threads": 336449.0, "Ops per procs": 168224528.0, "Ops/sec/procs": 5598158.91, "ns per ops/procs": 178.63}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30077.707156, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1873980699.0, "Total blocks": 1873980699.0, "Ops per second": 62304639.42, "ns per ops": 16.05, "Ops per threads": 234247.0, "Ops per procs": 117123793.0, "Ops/sec/procs": 3894039.96, "ns per ops/procs": 256.8}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 42362.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 18575418854.0, "Ops per second": 438482518.46, "ns per ops": 2.28, "Ops per threads": 193493.0, "Ops per procs": 96746973.0, "Ops/sec/procs": 2283763.12, "ns per ops/procs": 437.87}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30050.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2460795737.0, "Total blocks": 2460795737.0, "Ops per second": 81889108.85, "ns per ops": 12.21, "Ops per threads": 102533.0, "Ops per procs": 51266577.0, "Ops/sec/procs": 1706023.1, "ns per ops/procs": 586.16}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30075.585822, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1869159872.0, "Total blocks": 1869151870.0, "Ops per second": 62148743.6, "ns per ops": 16.09, "Ops per threads": 233644.0, "Ops per procs": 116822492.0, "Ops/sec/procs": 3884296.48, "ns per ops/procs": 257.45}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30087.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7301788166.0, "Ops per second": 242687556.02, "ns per ops": 4.12, "Ops per threads": 152120.0, "Ops per procs": 76060293.0, "Ops/sec/procs": 2527995.38, "ns per ops/procs": 395.57}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 358002166.0, "Ops per second": 11932846.22, "ns per ops": 83.8, "Ops per threads": 358002.0, "Ops per procs": 179001083.0, "Ops/sec/procs": 5966423.11, "ns per ops/procs": 167.6}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162557526.0, "Ops per second": 5418584.0, "ns per ops": 185.0, "Ops per threads": 325115.0, "Ops per procs": 162557526.0, "Ops/sec/procs": 5418584.0, "ns per ops/procs": 185.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30047.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2531326922.0, "Total blocks": 2531326922.0, "Ops per second": 84245244.01, "ns per ops": 11.87, "Ops per threads": 105471.0, "Ops per procs": 52735977.0, "Ops/sec/procs": 1755109.25, "ns per ops/procs": 569.77}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30033.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5011264633.0, "Total blocks": 5011264633.0, "Ops per second": 166855182.21, "ns per ops": 5.99, "Ops per threads": 139201.0, "Ops per procs": 69600897.0, "Ops/sec/procs": 2317433.09, "ns per ops/procs": 431.51}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30048.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7475727851.0, "Ops per second": 248787300.59, "ns per ops": 4.02, "Ops per threads": 155744.0, "Ops per procs": 77872165.0, "Ops/sec/procs": 2591534.38, "ns per ops/procs": 385.87}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30060.762087, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1008178937.0, "Total blocks": 1008174937.0, "Ops per second": 33538036.53, "ns per ops": 29.82, "Ops per threads": 252044.0, "Ops per procs": 126022367.0, "Ops/sec/procs": 4192254.57, "ns per ops/procs": 238.54}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30071.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10143287891.0, "Ops per second": 337310500.43, "ns per ops": 2.96, "Ops per threads": 140878.0, "Ops per procs": 70439499.0, "Ops/sec/procs": 2342434.03, "ns per ops/procs": 426.91}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6337596766.0, "Ops per second": 211253225.0, "ns per ops": 4.0, "Ops per threads": 176044.0, "Ops per procs": 88022177.0, "Ops/sec/procs": 2934072.0, "ns per ops/procs": 341.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30023.527964, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2398954299.0, "Total blocks": 2398954284.0, "Ops per second": 79902478.55, "ns per ops": 12.52, "Ops per threads": 199912.0, "Ops per procs": 99956429.0, "Ops/sec/procs": 3329269.94, "ns per ops/procs": 300.37}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30004.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12934927607.0, "Ops per second": 431164253.0, "ns per ops": 2.0, "Ops per threads": 134738.0, "Ops per procs": 67369414.0, "Ops/sec/procs": 2245647.0, "ns per ops/procs": 445.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30014.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2524148862.0, "Total blocks": 2524148862.0, "Ops per second": 84098088.95, "ns per ops": 11.89, "Ops per threads": 210345.0, "Ops per procs": 105172869.0, "Ops/sec/procs": 3504087.04, "ns per ops/procs": 285.38}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 36264.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 16585943868.0, "Ops per second": 457359441.65, "ns per ops": 2.19, "Ops per threads": 172770.0, "Ops per procs": 86385124.0, "Ops/sec/procs": 2382080.43, "ns per ops/procs": 419.8}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30019.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10535640214.0, "Ops per second": 350959763.94, "ns per ops": 2.85, "Ops per threads": 146328.0, "Ops per procs": 73164168.0, "Ops/sec/procs": 2437220.58, "ns per ops/procs": 410.3}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30064.868908, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9740710612.0, "Total blocks": 9740710434.0, "Ops per second": 323989791.6, "ns per ops": 3.09, "Ops per threads": 135287.0, "Ops per procs": 67643823.0, "Ops/sec/procs": 2249929.11, "ns per ops/procs": 444.46}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30003.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3393251007.0, "Ops per second": 113096654.0, "ns per ops": 8.84, "Ops per threads": 282770.0, "Ops per procs": 141385458.0, "Ops/sec/procs": 4712360.58, "ns per ops/procs": 212.21}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30002.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2629771222.0, "Ops per second": 87652750.21, "ns per ops": 11.41, "Ops per threads": 328721.0, "Ops per procs": 164360701.0, "Ops/sec/procs": 5478296.89, "ns per ops/procs": 182.54}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30000.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4385096062.0, "Total blocks": 4385096062.0, "Ops per second": 146167065.98, "ns per ops": 6.84, "Ops per threads": 91356.0, "Ops per procs": 45678083.0, "Ops/sec/procs": 1522573.6, "ns per ops/procs": 656.78}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1403724866.0, "Ops per second": 46788286.71, "ns per ops": 21.37, "Ops per threads": 350931.0, "Ops per procs": 175465608.0, "Ops/sec/procs": 5848535.84, "ns per ops/procs": 170.98}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30053.811425, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 517892499.0, "Total blocks": 517890498.0, "Ops per second": 17232173.71, "ns per ops": 58.03, "Ops per threads": 258946.0, "Ops per procs": 129473124.0, "Ops/sec/procs": 4308043.43, "ns per ops/procs": 232.12}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30050.415794, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6623429850.0, "Total blocks": 6623429754.0, "Ops per second": 220410589.17, "ns per ops": 4.54, "Ops per threads": 137988.0, "Ops per procs": 68994060.0, "Ops/sec/procs": 2295943.64, "ns per ops/procs": 435.55}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30001.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12937646889.0, "Ops per second": 431254896.0, "ns per ops": 2.0, "Ops per threads": 134767.0, "Ops per procs": 67383577.0, "Ops/sec/procs": 2246119.0, "ns per ops/procs": 445.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30048.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5807040221.0, "Total blocks": 5807040221.0, "Ops per second": 193255128.56, "ns per ops": 5.17, "Ops per threads": 80653.0, "Ops per procs": 40326668.0, "Ops/sec/procs": 1342049.5, "ns per ops/procs": 745.13}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30052.030501, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 274901369.0, "Total blocks": 274900459.0, "Ops per second": 9147513.98, "ns per ops": 109.32, "Ops per threads": 274901.0, "Ops per procs": 137450684.0, "Ops/sec/procs": 4573756.99, "ns per ops/procs": 218.64}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.573178, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167973203.0, "Total blocks": 167972726.0, "Ops per second": 5589869.85, "ns per ops": 178.9, "Ops per threads": 335946.0, "Ops per procs": 167973203.0, "Ops/sec/procs": 5589869.85, "ns per ops/procs": 178.9}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30098.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 317304611.0, "Ops per second": 10576820.0, "ns per ops": 94.0, "Ops per threads": 317304.0, "Ops per procs": 158652305.0, "Ops/sec/procs": 5288410.0, "ns per ops/procs": 189.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30098.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 601559688.0, "Ops per second": 20051989.0, "ns per ops": 50.0, "Ops per threads": 300779.0, "Ops per procs": 150389922.0, "Ops/sec/procs": 5012997.0, "ns per ops/procs": 200.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30077.535593, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1867814162.0, "Total blocks": 1867814161.0, "Ops per second": 62099973.46, "ns per ops": 16.1, "Ops per threads": 233476.0, "Ops per procs": 116738385.0, "Ops/sec/procs": 3881248.34, "ns per ops/procs": 257.65}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30078.485608, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1852542495.0, "Total blocks": 1852534496.0, "Ops per second": 61590284.8, "ns per ops": 16.24, "Ops per threads": 231567.0, "Ops per procs": 115783905.0, "Ops/sec/procs": 3849392.8, "ns per ops/procs": 259.78}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30010.645051, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5599556164.0, "Total blocks": 5599556116.0, "Ops per second": 186585665.0, "ns per ops": 5.36, "Ops per threads": 155543.0, "Ops per procs": 77771613.0, "Ops/sec/procs": 2591467.57, "ns per ops/procs": 385.88}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30055.092612, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 531547866.0, "Total blocks": 531545870.0, "Ops per second": 17685783.67, "ns per ops": 56.54, "Ops per threads": 265773.0, "Ops per procs": 132886966.0, "Ops/sec/procs": 4421445.92, "ns per ops/procs": 226.17}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3856025573.0, "Ops per second": 128534185.0, "ns per ops": 7.0, "Ops per threads": 160667.0, "Ops per procs": 80333866.0, "Ops/sec/procs": 2677795.0, "ns per ops/procs": 374.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 201931339.0, "Total blocks": 201930839.0, "Ops per second": 6725069.71, "ns per ops": 148.7, "Ops per threads": 403862.0, "Ops per procs": 201931339.0, "Ops/sec/procs": 6725069.71, "ns per ops/procs": 148.7}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30012.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13034771112.0, "Ops per second": 434492370.0, "ns per ops": 2.0, "Ops per threads": 135778.0, "Ops per procs": 67889432.0, "Ops/sec/procs": 2262981.0, "ns per ops/procs": 442.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30041.453429, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12990909555.0, "Total blocks": 12990909326.0, "Ops per second": 432432791.1, "ns per ops": 2.31, "Ops per threads": 135321.0, "Ops per procs": 67660987.0, "Ops/sec/procs": 2252254.12, "ns per ops/procs": 444.0}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 705342756.0, "Ops per second": 23510182.05, "ns per ops": 42.53, "Ops per threads": 352671.0, "Ops per procs": 176335689.0, "Ops/sec/procs": 5877545.51, "ns per ops/procs": 170.14}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30030.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1328857014.0, "Total blocks": 1328857014.0, "Ops per second": 44250538.27, "ns per ops": 22.6, "Ops per threads": 332214.0, "Ops per procs": 166107126.0, "Ops/sec/procs": 5531317.28, "ns per ops/procs": 180.79}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30029.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1317037841.0, "Total blocks": 1317037841.0, "Ops per second": 43858786.35, "ns per ops": 22.8, "Ops per threads": 329259.0, "Ops per procs": 164629730.0, "Ops/sec/procs": 5482348.29, "ns per ops/procs": 182.4}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30060.850264, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1028290912.0, "Total blocks": 1028286916.0, "Ops per second": 34206980.27, "ns per ops": 29.23, "Ops per threads": 257072.0, "Ops per procs": 128536364.0, "Ops/sec/procs": 4275872.53, "ns per ops/procs": 233.87}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30067.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2121776284.0, "Total blocks": 2121776284.0, "Ops per second": 70567606.69, "ns per ops": 14.17, "Ops per threads": 265222.0, "Ops per procs": 132611017.0, "Ops/sec/procs": 4410475.42, "ns per ops/procs": 226.73}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1403808822.0, "Ops per second": 46791151.03, "ns per ops": 21.37, "Ops per threads": 350952.0, "Ops per procs": 175476102.0, "Ops/sec/procs": 5848893.88, "ns per ops/procs": 170.97}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 205242743.0, "Total blocks": 205242243.0, "Ops per second": 6835385.4, "ns per ops": 146.3, "Ops per threads": 410485.0, "Ops per procs": 205242743.0, "Ops/sec/procs": 6835385.4, "ns per ops/procs": 146.3}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30002.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2626294276.0, "Ops per second": 87537157.49, "ns per ops": 11.42, "Ops per threads": 328286.0, "Ops per procs": 164143392.0, "Ops/sec/procs": 5471072.34, "ns per ops/procs": 182.78}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30059.519449, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3376209868.0, "Total blocks": 3376209770.0, "Ops per second": 112317493.09, "ns per ops": 8.9, "Ops per threads": 140675.0, "Ops per procs": 70337705.0, "Ops/sec/procs": 2339947.77, "ns per ops/procs": 427.36}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3836581356.0, "Ops per second": 127886045.0, "ns per ops": 7.0, "Ops per threads": 159857.0, "Ops per procs": 79928778.0, "Ops/sec/procs": 2664292.0, "ns per ops/procs": 376.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30003.601702, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5635726003.0, "Total blocks": 5635725987.0, "Ops per second": 187834982.58, "ns per ops": 5.32, "Ops per threads": 156547.0, "Ops per procs": 78273972.0, "Ops/sec/procs": 2608819.2, "ns per ops/procs": 383.32}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30004.0943, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5618640153.0, "Total blocks": 5618640080.0, "Ops per second": 187262448.15, "ns per ops": 5.34, "Ops per threads": 156073.0, "Ops per procs": 78036668.0, "Ops/sec/procs": 2600867.34, "ns per ops/procs": 384.49}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30099.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6577620399.0, "Ops per second": 219254013.0, "ns per ops": 4.0, "Ops per threads": 182711.0, "Ops per procs": 91355838.0, "Ops/sec/procs": 3045194.0, "ns per ops/procs": 329.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30004.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13022393535.0, "Ops per second": 434079784.0, "ns per ops": 2.0, "Ops per threads": 135649.0, "Ops per procs": 67824966.0, "Ops/sec/procs": 2260832.0, "ns per ops/procs": 442.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30016.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2568506615.0, "Total blocks": 2568506615.0, "Ops per second": 85570827.63, "ns per ops": 11.69, "Ops per threads": 214042.0, "Ops per procs": 107021108.0, "Ops/sec/procs": 3565451.15, "ns per ops/procs": 280.47}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30037.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4412247025.0, "Total blocks": 4412247025.0, "Ops per second": 146890919.49, "ns per ops": 6.81, "Ops per threads": 91921.0, "Ops per procs": 45960906.0, "Ops/sec/procs": 1530113.74, "ns per ops/procs": 653.55}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30058.02313, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5700272182.0, "Total blocks": 5700272163.0, "Ops per second": 189642284.77, "ns per ops": 5.27, "Ops per threads": 158340.0, "Ops per procs": 79170446.0, "Ops/sec/procs": 2633920.62, "ns per ops/procs": 379.66}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162962463.0, "Ops per second": 5432082.0, "ns per ops": 184.0, "Ops per threads": 325924.0, "Ops per procs": 162962463.0, "Ops/sec/procs": 5432082.0, "ns per ops/procs": 184.0}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 705061265.0, "Ops per second": 23500841.54, "ns per ops": 42.55, "Ops per threads": 352530.0, "Ops per procs": 176265316.0, "Ops/sec/procs": 5875210.38, "ns per ops/procs": 170.21}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30060.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10504254808.0, "Ops per second": 349433172.27, "ns per ops": 2.86, "Ops per threads": 145892.0, "Ops per procs": 72946213.0, "Ops/sec/procs": 2426619.25, "ns per ops/procs": 412.1}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30085.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12823599184.0, "Ops per second": 426238386.41, "ns per ops": 2.35, "Ops per threads": 133579.0, "Ops per procs": 66789579.0, "Ops/sec/procs": 2219991.6, "ns per ops/procs": 450.45}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1400052021.0, "Ops per second": 46665869.66, "ns per ops": 21.43, "Ops per threads": 350013.0, "Ops per procs": 175006502.0, "Ops/sec/procs": 5833233.71, "ns per ops/procs": 171.43}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30048.103314, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3370320181.0, "Total blocks": 3370320140.0, "Ops per second": 112164157.11, "ns per ops": 8.92, "Ops per threads": 140430.0, "Ops per procs": 70215003.0, "Ops/sec/procs": 2336753.27, "ns per ops/procs": 427.94}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30000.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5342176864.0, "Total blocks": 5342176857.0, "Ops per second": 178071162.76, "ns per ops": 5.62, "Ops per threads": 74196.0, "Ops per procs": 37098450.0, "Ops/sec/procs": 1236605.3, "ns per ops/procs": 808.67}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30090.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4405008822.0, "Total blocks": 4405008822.0, "Ops per second": 146392862.73, "ns per ops": 6.83, "Ops per threads": 91771.0, "Ops per procs": 45885508.0, "Ops/sec/procs": 1524925.65, "ns per ops/procs": 655.77}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30019.842831, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2418349949.0, "Total blocks": 2418349946.0, "Ops per second": 80558381.42, "ns per ops": 12.41, "Ops per threads": 201529.0, "Ops per procs": 100764581.0, "Ops/sec/procs": 3356599.23, "ns per ops/procs": 297.92}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30035.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1323526743.0, "Total blocks": 1323526743.0, "Ops per second": 44065731.17, "ns per ops": 22.69, "Ops per threads": 330881.0, "Ops per procs": 165440842.0, "Ops/sec/procs": 5508216.4, "ns per ops/procs": 181.55}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30029.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 351750059.0, "Total blocks": 351750059.0, "Ops per second": 11713649.99, "ns per ops": 85.37, "Ops per threads": 351750.0, "Ops per procs": 175875029.0, "Ops/sec/procs": 5856824.99, "ns per ops/procs": 170.74}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.801041, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168069784.0, "Total blocks": 168069288.0, "Ops per second": 5593041.49, "ns per ops": 178.79, "Ops per threads": 336139.0, "Ops per procs": 168069784.0, "Ops/sec/procs": 5593041.49, "ns per ops/procs": 178.79}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30032.609641, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5717267535.0, "Total blocks": 5717267531.0, "Ops per second": 190368656.05, "ns per ops": 5.25, "Ops per threads": 158812.0, "Ops per procs": 79406493.0, "Ops/sec/procs": 2644009.11, "ns per ops/procs": 378.21}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30044.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4381830738.0, "Total blocks": 4381830736.0, "Ops per second": 145844982.24, "ns per ops": 6.86, "Ops per threads": 91288.0, "Ops per procs": 45644070.0, "Ops/sec/procs": 1519218.57, "ns per ops/procs": 658.23}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30063.227462, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12962090288.0, "Total blocks": 12962090066.0, "Ops per second": 431160969.14, "ns per ops": 2.32, "Ops per threads": 135021.0, "Ops per procs": 67510886.0, "Ops/sec/procs": 2245630.05, "ns per ops/procs": 445.31}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30078.732547, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1833825479.0, "Total blocks": 1833817479.0, "Ops per second": 60967511.72, "ns per ops": 16.4, "Ops per threads": 229228.0, "Ops per procs": 114614092.0, "Ops/sec/procs": 3810469.48, "ns per ops/procs": 262.43}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30024.429768, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1892124589.0, "Total blocks": 1892124583.0, "Ops per second": 63019501.24, "ns per ops": 15.87, "Ops per threads": 157677.0, "Ops per procs": 78838524.0, "Ops/sec/procs": 2625812.55, "ns per ops/procs": 380.83}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30007.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7183884144.0, "Ops per second": 239462804.0, "ns per ops": 4.0, "Ops per threads": 149664.0, "Ops per procs": 74832126.0, "Ops/sec/procs": 2494404.0, "ns per ops/procs": 400.0}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167228376.0, "Ops per second": 5574040.49, "ns per ops": 179.4, "Ops per threads": 334456.0, "Ops per procs": 167228376.0, "Ops/sec/procs": 5574040.49, "ns per ops/procs": 179.4}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162674277.0, "Ops per second": 5422475.0, "ns per ops": 185.0, "Ops per threads": 325348.0, "Ops per procs": 162674277.0, "Ops/sec/procs": 5422475.0, "ns per ops/procs": 185.0}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167000603.0, "Ops per second": 5566448.93, "ns per ops": 179.65, "Ops per threads": 334001.0, "Ops per procs": 167000603.0, "Ops/sec/procs": 5566448.93, "ns per ops/procs": 179.65}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2868813512.0, "Ops per second": 95627117.0, "ns per ops": 10.0, "Ops per threads": 239067.0, "Ops per procs": 119533896.0, "Ops/sec/procs": 3984463.0, "ns per ops/procs": 251.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30012.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4409196212.0, "Total blocks": 4409196212.0, "Ops per second": 146909895.83, "ns per ops": 6.81, "Ops per threads": 91858.0, "Ops per procs": 45929127.0, "Ops/sec/procs": 1530311.41, "ns per ops/procs": 653.46}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30099.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10645132500.0, "Ops per second": 354837750.0, "ns per ops": 2.0, "Ops per threads": 147849.0, "Ops per procs": 73924531.0, "Ops/sec/procs": 2464151.0, "ns per ops/procs": 407.0}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 356033916.0, "Ops per second": 11867221.05, "ns per ops": 84.27, "Ops per threads": 356033.0, "Ops per procs": 178016958.0, "Ops/sec/procs": 5933610.53, "ns per ops/procs": 168.53}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30040.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6986638657.0, "Ops per second": 232575294.23, "ns per ops": 4.3, "Ops per threads": 194073.0, "Ops per procs": 97036648.0, "Ops/sec/procs": 3230212.42, "ns per ops/procs": 309.58}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162942160.0, "Ops per second": 5431405.0, "ns per ops": 184.0, "Ops per threads": 325884.0, "Ops per procs": 162942160.0, "Ops/sec/procs": 5431405.0, "ns per ops/procs": 184.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30028.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 353832197.0, "Total blocks": 353832197.0, "Ops per second": 11783115.26, "ns per ops": 84.87, "Ops per threads": 353832.0, "Ops per procs": 176916098.0, "Ops/sec/procs": 5891557.63, "ns per ops/procs": 169.73}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30062.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5821046424.0, "Total blocks": 5821046423.0, "Ops per second": 193634096.89, "ns per ops": 5.16, "Ops per threads": 80847.0, "Ops per procs": 40423933.0, "Ops/sec/procs": 1344681.23, "ns per ops/procs": 743.67}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162552784.0, "Ops per second": 5418426.0, "ns per ops": 185.0, "Ops per threads": 325105.0, "Ops per procs": 162552784.0, "Ops/sec/procs": 5418426.0, "ns per ops/procs": 185.0}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1402350785.0, "Ops per second": 46742468.86, "ns per ops": 21.39, "Ops per threads": 350587.0, "Ops per procs": 175293848.0, "Ops/sec/procs": 5842808.61, "ns per ops/procs": 171.15}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1323522158.0, "Total blocks": 1323522158.0, "Ops per second": 44074966.18, "ns per ops": 22.69, "Ops per threads": 330880.0, "Ops per procs": 165440269.0, "Ops/sec/procs": 5509370.77, "ns per ops/procs": 181.51}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 602384763.0, "Ops per second": 20079492.0, "ns per ops": 49.0, "Ops per threads": 301192.0, "Ops per procs": 150596190.0, "Ops/sec/procs": 5019873.0, "ns per ops/procs": 199.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.844478, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168282526.0, "Total blocks": 168282026.0, "Ops per second": 5600113.04, "ns per ops": 178.57, "Ops per threads": 336565.0, "Ops per procs": 168282526.0, "Ops/sec/procs": 5600113.04, "ns per ops/procs": 178.57}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30056.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 177331040.0, "Ops per second": 5900011.31, "ns per ops": 169.49, "Ops per threads": 354662.0, "Ops per procs": 177331040.0, "Ops/sec/procs": 5900011.31, "ns per ops/procs": 169.49}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30061.367024, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3378041546.0, "Total blocks": 3378041446.0, "Ops per second": 112371521.34, "ns per ops": 8.9, "Ops per threads": 140751.0, "Ops per procs": 70375865.0, "Ops/sec/procs": 2341073.36, "ns per ops/procs": 427.15}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30075.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5548430660.0, "Total blocks": 5548430660.0, "Ops per second": 184481901.95, "ns per ops": 5.42, "Ops per threads": 77061.0, "Ops per procs": 38530768.0, "Ops/sec/procs": 1281124.32, "ns per ops/procs": 780.56}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30029.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 354677490.0, "Total blocks": 354677490.0, "Ops per second": 11811114.32, "ns per ops": 84.67, "Ops per threads": 354677.0, "Ops per procs": 177338745.0, "Ops/sec/procs": 5905557.16, "ns per ops/procs": 169.33}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30019.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7047202390.0, "Ops per second": 234906746.0, "ns per ops": 4.0, "Ops per threads": 146816.0, "Ops per procs": 73408358.0, "Ops/sec/procs": 2446945.0, "ns per ops/procs": 408.0}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1402724865.0, "Ops per second": 46755017.27, "ns per ops": 21.39, "Ops per threads": 350681.0, "Ops per procs": 175340608.0, "Ops/sec/procs": 5844377.16, "ns per ops/procs": 171.1}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 31973.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6951513771.0, "Ops per second": 217415845.93, "ns per ops": 4.6, "Ops per threads": 144823.0, "Ops per procs": 72411601.0, "Ops/sec/procs": 2264748.4, "ns per ops/procs": 441.55}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 355436412.0, "Ops per second": 11847296.18, "ns per ops": 84.41, "Ops per threads": 355436.0, "Ops per procs": 177718206.0, "Ops/sec/procs": 5923648.09, "ns per ops/procs": 168.81}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30019.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6543638721.0, "Ops per second": 217982377.4, "ns per ops": 4.59, "Ops per threads": 181767.0, "Ops per procs": 90883871.0, "Ops/sec/procs": 3027533.02, "ns per ops/procs": 330.3}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30078.528168, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1831961754.0, "Total blocks": 1831961739.0, "Ops per second": 60905964.01, "ns per ops": 16.42, "Ops per threads": 228995.0, "Ops per procs": 114497609.0, "Ops/sec/procs": 3806622.75, "ns per ops/procs": 262.7}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30030.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 685764463.0, "Total blocks": 685764463.0, "Ops per second": 22835854.4, "ns per ops": 43.79, "Ops per threads": 342882.0, "Ops per procs": 171441115.0, "Ops/sec/procs": 5708963.6, "ns per ops/procs": 175.16}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30099.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7119958966.0, "Ops per second": 237331965.0, "ns per ops": 4.0, "Ops per threads": 148332.0, "Ops per procs": 74166239.0, "Ops/sec/procs": 2472207.0, "ns per ops/procs": 405.0}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 166961568.0, "Ops per second": 5565144.87, "ns per ops": 179.69, "Ops per threads": 333923.0, "Ops per procs": 166961568.0, "Ops/sec/procs": 5565144.87, "ns per ops/procs": 179.69}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30096.788531, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5725635556.0, "Total blocks": 5725635554.0, "Ops per second": 190240747.78, "ns per ops": 5.26, "Ops per threads": 159045.0, "Ops per procs": 79522716.0, "Ops/sec/procs": 2642232.61, "ns per ops/procs": 378.47}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30022.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3100607476.0, "Ops per second": 103276497.01, "ns per ops": 9.68, "Ops per threads": 258383.0, "Ops per procs": 129191978.0, "Ops/sec/procs": 4303187.38, "ns per ops/procs": 232.39}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30009.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10940703132.0, "Ops per second": 364690104.0, "ns per ops": 2.0, "Ops per threads": 151954.0, "Ops per procs": 75977105.0, "Ops/sec/procs": 2532570.0, "ns per ops/procs": 394.0}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1409199247.0, "Ops per second": 46970740.19, "ns per ops": 21.29, "Ops per threads": 352299.0, "Ops per procs": 176149905.0, "Ops/sec/procs": 5871342.52, "ns per ops/procs": 170.32}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30077.151458, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1857888585.0, "Total blocks": 1857880588.0, "Ops per second": 61770762.69, "ns per ops": 16.19, "Ops per threads": 232236.0, "Ops per procs": 116118036.0, "Ops/sec/procs": 3860672.67, "ns per ops/procs": 259.02}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162950614.0, "Ops per second": 5431687.0, "ns per ops": 184.0, "Ops per threads": 325901.0, "Ops per procs": 162950614.0, "Ops/sec/procs": 5431687.0, "ns per ops/procs": 184.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30014.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2610670643.0, "Total blocks": 2610670643.0, "Ops per second": 86981543.44, "ns per ops": 11.5, "Ops per threads": 217555.0, "Ops per procs": 108777943.0, "Ops/sec/procs": 3624230.98, "ns per ops/procs": 275.92}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30095.017759, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5739834747.0, "Total blocks": 5739834737.0, "Ops per second": 190723753.45, "ns per ops": 5.24, "Ops per threads": 159439.0, "Ops per procs": 79719927.0, "Ops/sec/procs": 2648941.02, "ns per ops/procs": 377.51}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30099.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6157074628.0, "Ops per second": 205235820.0, "ns per ops": 4.0, "Ops per threads": 171029.0, "Ops per procs": 85514925.0, "Ops/sec/procs": 2850497.0, "ns per ops/procs": 351.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30098.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 319104084.0, "Ops per second": 10636802.0, "ns per ops": 94.0, "Ops per threads": 319104.0, "Ops per procs": 159552042.0, "Ops/sec/procs": 5318401.0, "ns per ops/procs": 188.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30047.050567, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13009565490.0, "Total blocks": 13009565329.0, "Ops per second": 432973128.63, "ns per ops": 2.31, "Ops per threads": 135516.0, "Ops per procs": 67758153.0, "Ops/sec/procs": 2255068.38, "ns per ops/procs": 443.45}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30001.431795, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 5787452159.0, "Total blocks": 5787452154.0, "Ops per second": 192905865.24, "ns per ops": 5.18, "Ops per threads": 160762.0, "Ops per procs": 80381279.0, "Ops/sec/procs": 2679248.13, "ns per ops/procs": 373.24}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30017.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7213410320.0, "Ops per second": 240447010.0, "ns per ops": 4.0, "Ops per threads": 150279.0, "Ops per procs": 75139690.0, "Ops/sec/procs": 2504656.0, "ns per ops/procs": 399.0}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167754685.0, "Ops per second": 5591577.65, "ns per ops": 178.84, "Ops per threads": 335509.0, "Ops per procs": 167754685.0, "Ops/sec/procs": 5591577.65, "ns per ops/procs": 178.84}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3864670230.0, "Ops per second": 128822341.0, "ns per ops": 7.0, "Ops per threads": 161027.0, "Ops per procs": 80513963.0, "Ops/sec/procs": 2683798.0, "ns per ops/procs": 373.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30032.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 695166461.0, "Total blocks": 695166461.0, "Ops per second": 23146964.07, "ns per ops": 43.2, "Ops per threads": 347583.0, "Ops per procs": 173791615.0, "Ops/sec/procs": 5786741.02, "ns per ops/procs": 172.81}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30018.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3706857263.0, "Ops per second": 123484922.61, "ns per ops": 8.1, "Ops per threads": 154452.0, "Ops per procs": 77226192.0, "Ops/sec/procs": 2572602.55, "ns per ops/procs": 388.71}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30051.53345, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 287080397.0, "Total blocks": 287079577.0, "Ops per second": 9552936.71, "ns per ops": 104.68, "Ops per threads": 287080.0, "Ops per procs": 143540198.0, "Ops/sec/procs": 4776468.35, "ns per ops/procs": 209.36}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30045.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2433564524.0, "Total blocks": 2433564524.0, "Ops per second": 80996467.02, "ns per ops": 12.35, "Ops per threads": 101398.0, "Ops per procs": 50699260.0, "Ops/sec/procs": 1687426.4, "ns per ops/procs": 592.62}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30099.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6472856837.0, "Ops per second": 215761894.0, "ns per ops": 4.0, "Ops per threads": 179801.0, "Ops per procs": 89900789.0, "Ops/sec/procs": 2996692.0, "ns per ops/procs": 334.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30035.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2120121958.0, "Total blocks": 2120121958.0, "Ops per second": 70586108.43, "ns per ops": 14.17, "Ops per threads": 265015.0, "Ops per procs": 132507622.0, "Ops/sec/procs": 4411631.78, "ns per ops/procs": 226.67}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30042.245795, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6622514344.0, "Total blocks": 6622514234.0, "Ops per second": 220440055.95, "ns per ops": 4.54, "Ops per threads": 137969.0, "Ops per procs": 68984524.0, "Ops/sec/procs": 2296250.58, "ns per ops/procs": 435.49}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30055.732158, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6604753194.0, "Total blocks": 6604753086.0, "Ops per second": 219750201.37, "ns per ops": 4.55, "Ops per threads": 137599.0, "Ops per procs": 68799512.0, "Ops/sec/procs": 2289064.6, "ns per ops/procs": 436.86}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30014.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2545408494.0, "Total blocks": 2545408494.0, "Ops per second": 84806664.64, "ns per ops": 11.79, "Ops per threads": 212117.0, "Ops per procs": 106058687.0, "Ops/sec/procs": 3533611.03, "ns per ops/procs": 283.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30098.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6020528116.0, "Total blocks": 6020528115.0, "Ops per second": 200029919.25, "ns per ops": 5.0, "Ops per threads": 83618.0, "Ops per procs": 41809223.0, "Ops/sec/procs": 1389096.66, "ns per ops/procs": 719.89}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30060.083132, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9782889449.0, "Total blocks": 9782889284.0, "Ops per second": 325444524.09, "ns per ops": 3.07, "Ops per threads": 135873.0, "Ops per procs": 67936732.0, "Ops/sec/procs": 2260031.42, "ns per ops/procs": 442.47}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 356743374.0, "Ops per second": 11890870.66, "ns per ops": 84.1, "Ops per threads": 356743.0, "Ops per procs": 178371687.0, "Ops/sec/procs": 5945435.33, "ns per ops/procs": 168.2}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 317852778.0, "Ops per second": 10595092.0, "ns per ops": 94.0, "Ops per threads": 317852.0, "Ops per procs": 158926389.0, "Ops/sec/procs": 5297546.0, "ns per ops/procs": 189.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30098.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2895124114.0, "Ops per second": 96504137.0, "ns per ops": 10.0, "Ops per threads": 241260.0, "Ops per procs": 120630171.0, "Ops/sec/procs": 4021005.0, "ns per ops/procs": 249.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30049.470499, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168084882.0, "Total blocks": 168084382.0, "Ops per second": 5593605.45, "ns per ops": 178.78, "Ops per threads": 336169.0, "Ops per procs": 168084882.0, "Ops/sec/procs": 5593605.45, "ns per ops/procs": 178.78}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30027.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10761241751.0, "Ops per second": 358708058.0, "ns per ops": 2.0, "Ops per threads": 149461.0, "Ops per procs": 74730845.0, "Ops/sec/procs": 2491028.0, "ns per ops/procs": 401.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1324023447.0, "Total blocks": 1324023447.0, "Ops per second": 44091827.82, "ns per ops": 22.68, "Ops per threads": 331005.0, "Ops per procs": 165502930.0, "Ops/sec/procs": 5511478.48, "ns per ops/procs": 181.44}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30027.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 203455905.0, "Total blocks": 203455405.0, "Ops per second": 6775601.39, "ns per ops": 147.59, "Ops per threads": 406911.0, "Ops per procs": 203455905.0, "Ops/sec/procs": 6775601.39, "ns per ops/procs": 147.59}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30021.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2463984837.0, "Total blocks": 2463984837.0, "Ops per second": 82074427.81, "ns per ops": 12.18, "Ops per threads": 102666.0, "Ops per procs": 51333017.0, "Ops/sec/procs": 1709883.91, "ns per ops/procs": 584.84}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30075.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2106564701.0, "Total blocks": 2106564701.0, "Ops per second": 70043153.34, "ns per ops": 14.28, "Ops per threads": 263320.0, "Ops per procs": 131660293.0, "Ops/sec/procs": 4377697.08, "ns per ops/procs": 228.43}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 357506708.0, "Ops per second": 11916322.0, "ns per ops": 83.92, "Ops per threads": 357506.0, "Ops per procs": 178753354.0, "Ops/sec/procs": 5958161.0, "ns per ops/procs": 167.84}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30061.163091, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1026780598.0, "Total blocks": 1026776602.0, "Ops per second": 34156382.93, "ns per ops": 29.28, "Ops per threads": 256695.0, "Ops per procs": 128347574.0, "Ops/sec/procs": 4269547.87, "ns per ops/procs": 234.22}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30070.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6213642756.0, "Total blocks": 6213642755.0, "Ops per second": 206633220.58, "ns per ops": 4.84, "Ops per threads": 64725.0, "Ops per procs": 32362722.0, "Ops/sec/procs": 1076214.69, "ns per ops/procs": 929.18}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30076.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4908338160.0, "Total blocks": 4908338160.0, "Ops per second": 163192828.31, "ns per ops": 6.13, "Ops per threads": 136342.0, "Ops per procs": 68171363.0, "Ops/sec/procs": 2266567.06, "ns per ops/procs": 441.2}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30007.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13166096917.0, "Ops per second": 438869897.0, "ns per ops": 2.0, "Ops per threads": 137146.0, "Ops per procs": 68573421.0, "Ops/sec/procs": 2285780.0, "ns per ops/procs": 437.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30060.200019, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1017967886.0, "Total blocks": 1017963889.0, "Ops per second": 33864308.47, "ns per ops": 29.53, "Ops per threads": 254491.0, "Ops per procs": 127245985.0, "Ops/sec/procs": 4233038.56, "ns per ops/procs": 236.24}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30098.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2868129924.0, "Ops per second": 95604330.0, "ns per ops": 10.0, "Ops per threads": 239010.0, "Ops per procs": 119505413.0, "Ops/sec/procs": 3983513.0, "ns per ops/procs": 251.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30060.131407, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9796839664.0, "Total blocks": 9796839514.0, "Ops per second": 325908078.42, "ns per ops": 3.07, "Ops per threads": 136067.0, "Ops per procs": 68033608.0, "Ops/sec/procs": 2263250.54, "ns per ops/procs": 441.84}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1160787909.0, "Ops per second": 38692930.0, "ns per ops": 25.0, "Ops per threads": 290196.0, "Ops per procs": 145098488.0, "Ops/sec/procs": 4836616.0, "ns per ops/procs": 207.0}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 45260.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3987340170.0, "Ops per second": 88097105.54, "ns per ops": 11.35, "Ops per threads": 498417.0, "Ops per procs": 249208760.0, "Ops/sec/procs": 5506069.1, "ns per ops/procs": 181.62}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 500.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 167648846.0, "Ops per second": 5588052.79, "ns per ops": 178.95, "Ops per threads": 335297.0, "Ops per procs": 167648846.0, "Ops/sec/procs": 5588052.79, "ns per ops/procs": 178.95}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1408129070.0, "Ops per second": 46935143.22, "ns per ops": 21.31, "Ops per threads": 352032.0, "Ops per procs": 176016133.0, "Ops/sec/procs": 5866892.9, "ns per ops/procs": 170.45}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30013.0, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10992470958.0, "Ops per second": 366246427.46, "ns per ops": 2.73, "Ops per threads": 152673.0, "Ops per procs": 76336603.0, "Ops/sec/procs": 2543377.97, "ns per ops/procs": 393.18}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 9600", {"Duration (ms)": 30100.0, "Number of processors": 96.0, "Number of threads": 48000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4513527225.0, "Total blocks": 4513527225.0, "Ops per second": 149950768.1, "ns per ops": 6.67, "Ops per threads": 94031.0, "Ops per procs": 47015908.0, "Ops/sec/procs": 1561987.17, "ns per ops/procs": 640.21}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 24000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3813148384.0, "Ops per second": 127104946.0, "ns per ops": 7.0, "Ops per threads": 158881.0, "Ops per procs": 79440591.0, "Ops/sec/procs": 2648019.0, "ns per ops/procs": 378.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1162538978.0, "Ops per second": 38751299.0, "ns per ops": 25.0, "Ops per threads": 290634.0, "Ops per procs": 145317372.0, "Ops/sec/procs": 4843912.0, "ns per ops/procs": 207.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2192193064.0, "Ops per second": 73073102.0, "ns per ops": 13.0, "Ops per threads": 274024.0, "Ops per procs": 137012066.0, "Ops/sec/procs": 4567068.0, "ns per ops/procs": 219.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 317401876.0, "Ops per second": 10580062.0, "ns per ops": 94.0, "Ops per threads": 317401.0, "Ops per procs": 158700938.0, "Ops/sec/procs": 5290031.0, "ns per ops/procs": 189.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30044.593524, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12980265593.0, "Total blocks": 12980265396.0, "Ops per second": 432033323.49, "ns per ops": 2.31, "Ops per threads": 135211.0, "Ops per procs": 67605549.0, "Ops/sec/procs": 2250173.56, "ns per ops/procs": 444.41}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1406578373.0, "Ops per second": 46883439.46, "ns per ops": 21.33, "Ops per threads": 351644.0, "Ops per procs": 175822296.0, "Ops/sec/procs": 5860429.93, "ns per ops/procs": 170.64}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 14400", {"Duration (ms)": 30062.219521, "Number of processors": 144.0, "Number of threads": 72000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9813403166.0, "Total blocks": 9813403027.0, "Ops per second": 326436414.95, "ns per ops": 3.06, "Ops per threads": 136297.0, "Ops per procs": 68148633.0, "Ops/sec/procs": 2266919.55, "ns per ops/procs": 441.13}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 696442241.0, "Total blocks": 696442241.0, "Ops per second": 23191813.03, "ns per ops": 43.12, "Ops per threads": 348221.0, "Ops per procs": 174110560.0, "Ops/sec/procs": 5797953.26, "ns per ops/procs": 172.47}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2892522474.0, "Ops per second": 96417415.0, "ns per ops": 10.0, "Ops per threads": 241043.0, "Ops per procs": 120521769.0, "Ops/sec/procs": 4017392.0, "ns per ops/procs": 249.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 1600", {"Duration (ms)": 30076.989415, "Number of processors": 16.0, "Number of threads": 8000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1848043403.0, "Total blocks": 1848035398.0, "Ops per second": 61443762.79, "ns per ops": 16.28, "Ops per threads": 231005.0, "Ops per procs": 115502712.0, "Ops/sec/procs": 3840235.17, "ns per ops/procs": 260.4}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30017.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13005784322.0, "Ops per second": 433269842.67, "ns per ops": 2.31, "Ops per threads": 135476.0, "Ops per procs": 67738460.0, "Ops/sec/procs": 2256613.76, "ns per ops/procs": 443.14}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30000.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 12989791138.0, "Ops per second": 432993037.0, "ns per ops": 2.0, "Ops per threads": 135310.0, "Ops per procs": 67655162.0, "Ops/sec/procs": 2255172.0, "ns per ops/procs": 443.0}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 356196915.0, "Ops per second": 11872645.1, "ns per ops": 84.23, "Ops per threads": 356196.0, "Ops per procs": 178098457.0, "Ops/sec/procs": 5936322.55, "ns per ops/procs": 168.45}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 200", {"Duration (ms)": 30051.049115, "Number of processors": 2.0, "Number of threads": 1000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 287543256.0, "Total blocks": 287542260.0, "Ops per second": 9568493.1, "ns per ops": 104.51, "Ops per threads": 287543.0, "Ops per procs": 143771628.0, "Ops/sec/procs": 4784246.55, "ns per ops/procs": 209.02}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1314133910.0, "Total blocks": 1314133910.0, "Ops per second": 43762378.43, "ns per ops": 22.85, "Ops per threads": 328533.0, "Ops per procs": 164266738.0, "Ops/sec/procs": 5470297.3, "ns per ops/procs": 182.81}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 2400", {"Duration (ms)": 30024.222708, "Number of processors": 24.0, "Number of threads": 12000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2407437835.0, "Total blocks": 2407437829.0, "Ops per second": 80183186.04, "ns per ops": 12.47, "Ops per threads": 200619.0, "Ops per procs": 100309909.0, "Ops/sec/procs": 3340966.08, "ns per ops/procs": 299.31}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 400", {"Duration (ms)": 30098.0, "Number of processors": 4.0, "Number of threads": 2000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 603435249.0, "Ops per second": 20114508.0, "ns per ops": 49.0, "Ops per threads": 301717.0, "Ops per procs": 150858812.0, "Ops/sec/procs": 5028627.0, "ns per ops/procs": 199.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 4000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1164638238.0, "Ops per second": 38821274.0, "ns per ops": 25.0, "Ops per threads": 291159.0, "Ops per procs": 145579779.0, "Ops/sec/procs": 4852659.0, "ns per ops/procs": 206.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 7200", {"Duration (ms)": 30028.0, "Number of processors": 72.0, "Number of threads": 36000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4923893600.0, "Total blocks": 4923893600.0, "Ops per second": 163972816.18, "ns per ops": 6.1, "Ops per threads": 136774.0, "Ops per procs": 68387411.0, "Ops/sec/procs": 2277400.22, "ns per ops/procs": 439.1}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 19200", {"Duration (ms)": 30000.0, "Number of processors": 192.0, "Number of threads": 96000.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 13275252471.0, "Ops per second": 442508415.0, "ns per ops": 2.0, "Ops per threads": 138283.0, "Ops per procs": 69141939.0, "Ops/sec/procs": 2304731.0, "ns per ops/procs": 433.0}]]
  • doc/theses/thierry_delisle_PhD/thesis/data/cycle.low.jax

    r12df6fe r4520b77e  
    1 [["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 10 -r 5 -t 8", {"Duration (ms)": 10012.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 76310077.0, "Ops per second": 7631007.0, "ns per ops": 131.0, "Ops per threads": 1907751.0, "Ops per procs": 9538759.0, "Ops/sec/procs": 953875.0, "ns per ops/procs": 1049.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 10 -r 5 -t 16", {"Duration (ms)": 10010.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 60971759.0, "Total blocks": 60971758.0, "Ops per second": 6090773.1, "ns per ops": 164.18, "Ops per threads": 762146.0, "Ops per procs": 3810734.0, "Ops/sec/procs": 380673.32, "ns per ops/procs": 2626.92}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 10 -r 5 -t 16", {"Duration (ms)": 10025.310277, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 181018643.0, "Total blocks": 181017892.0, "Ops per second": 18056163.65, "ns per ops": 55.38, "Ops per threads": 2262733.0, "Ops per procs": 11313665.0, "Ops/sec/procs": 1128510.23, "ns per ops/procs": 886.12}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 10 -r 5 -t 16", {"Duration (ms)": 10026.598882, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 194131436.0, "Total blocks": 194130800.0, "Ops per second": 19361643.79, "ns per ops": 51.65, "Ops per threads": 2426642.0, "Ops per procs": 12133214.0, "Ops/sec/procs": 1210102.74, "ns per ops/procs": 826.38}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 10 -r 5 -t 24", {"Duration (ms)": 10006.334698, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 227505184.0, "Total blocks": 227503833.0, "Ops per second": 22736115.76, "ns per ops": 43.98, "Ops per threads": 1895876.0, "Ops per procs": 9479382.0, "Ops/sec/procs": 947338.16, "ns per ops/procs": 1055.59}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 10 -r 5 -t 1", {"Duration (ms)": 10016.990169, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 66752749.0, "Total blocks": 66752748.0, "Ops per second": 6663952.73, "ns per ops": 150.06, "Ops per threads": 13350549.0, "Ops per procs": 66752749.0, "Ops/sec/procs": 6663952.73, "ns per ops/procs": 150.06}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 10 -r 5 -t 16", {"Duration (ms)": 10000.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 279630079.0, "Ops per second": 27961432.66, "ns per ops": 35.76, "Ops per threads": 3495375.0, "Ops per procs": 17476879.0, "Ops/sec/procs": 1747589.54, "ns per ops/procs": 572.22}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 10 -r 5 -t 8", {"Duration (ms)": 10007.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 59771852.0, "Total blocks": 59771852.0, "Ops per second": 5972444.0, "ns per ops": 167.44, "Ops per threads": 1494296.0, "Ops per procs": 7471481.0, "Ops/sec/procs": 746555.5, "ns per ops/procs": 1339.49}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 10 -r 5 -t 24", {"Duration (ms)": 10099.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 232398538.0, "Ops per second": 23239853.0, "ns per ops": 43.0, "Ops per threads": 1936654.0, "Ops per procs": 9683272.0, "Ops/sec/procs": 968327.0, "ns per ops/procs": 1043.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 10 -r 5 -t 8", {"Duration (ms)": 10020.460683, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 123722971.0, "Total blocks": 123722720.0, "Ops per second": 12347034.22, "ns per ops": 80.99, "Ops per threads": 3093074.0, "Ops per procs": 15465371.0, "Ops/sec/procs": 1543379.28, "ns per ops/procs": 647.93}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 10 -r 5 -t 1", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 56469367.0, "Ops per second": 5646680.63, "ns per ops": 177.1, "Ops per threads": 11293873.0, "Ops per procs": 56469367.0, "Ops/sec/procs": 5646680.63, "ns per ops/procs": 177.1}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 10 -r 5 -t 1", {"Duration (ms)": 10016.913984, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 66648794.0, "Total blocks": 66648790.0, "Ops per second": 6653625.47, "ns per ops": 150.29, "Ops per threads": 13329758.0, "Ops per procs": 66648794.0, "Ops/sec/procs": 6653625.47, "ns per ops/procs": 150.29}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 10 -r 5 -t 8", {"Duration (ms)": 10000.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 178174877.0, "Ops per second": 17816504.68, "ns per ops": 56.13, "Ops per threads": 4454371.0, "Ops per procs": 22271859.0, "Ops/sec/procs": 2227063.08, "ns per ops/procs": 449.02}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 10 -r 5 -t 24", {"Duration (ms)": 10004.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 59200307.0, "Total blocks": 59200307.0, "Ops per second": 5917304.82, "ns per ops": 169.0, "Ops per threads": 493335.0, "Ops per procs": 2466679.0, "Ops/sec/procs": 246554.37, "ns per ops/procs": 4055.9}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 10 -r 5 -t 24", {"Duration (ms)": 10000.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 489892922.0, "Ops per second": 48986097.69, "ns per ops": 20.41, "Ops per threads": 4082441.0, "Ops per procs": 20412205.0, "Ops/sec/procs": 2041087.4, "ns per ops/procs": 489.93}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 10 -r 5 -t 24", {"Duration (ms)": 10100.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 267579722.0, "Ops per second": 26757972.0, "ns per ops": 37.0, "Ops per threads": 2229831.0, "Ops per procs": 11149155.0, "Ops/sec/procs": 1114915.0, "ns per ops/procs": 905.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 10 -r 5 -t 24", {"Duration (ms)": 10002.567137, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 221454282.0, "Total blocks": 221452348.0, "Ops per second": 22139744.62, "ns per ops": 45.17, "Ops per threads": 1845452.0, "Ops per procs": 9227261.0, "Ops/sec/procs": 922489.36, "ns per ops/procs": 1084.02}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 10 -r 5 -t 8", {"Duration (ms)": 10020.640204, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 119212534.0, "Total blocks": 119212291.0, "Ops per second": 11896698.37, "ns per ops": 84.06, "Ops per threads": 2980313.0, "Ops per procs": 14901566.0, "Ops/sec/procs": 1487087.3, "ns per ops/procs": 672.46}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 10 -r 5 -t 1", {"Duration (ms)": 10015.706272, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 66731723.0, "Total blocks": 66731719.0, "Ops per second": 6662707.67, "ns per ops": 150.09, "Ops per threads": 13346344.0, "Ops per procs": 66731723.0, "Ops/sec/procs": 6662707.67, "ns per ops/procs": 150.09}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 10 -r 5 -t 8", {"Duration (ms)": 10000.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 152568234.0, "Ops per second": 15255771.25, "ns per ops": 65.55, "Ops per threads": 3814205.0, "Ops per procs": 19071029.0, "Ops/sec/procs": 1906971.41, "ns per ops/procs": 524.39}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 10 -r 5 -t 16", {"Duration (ms)": 10000.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 289322235.0, "Ops per second": 28930586.92, "ns per ops": 34.57, "Ops per threads": 3616527.0, "Ops per procs": 18082639.0, "Ops/sec/procs": 1808161.68, "ns per ops/procs": 553.05}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 10 -r 5 -t 24", {"Duration (ms)": 10000.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 487856302.0, "Ops per second": 48781608.3, "ns per ops": 20.5, "Ops per threads": 4065469.0, "Ops per procs": 20327345.0, "Ops/sec/procs": 2032567.01, "ns per ops/procs": 491.99}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 10 -r 5 -t 8", {"Duration (ms)": 10009.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 76846283.0, "Ops per second": 7684628.0, "ns per ops": 130.0, "Ops per threads": 1921157.0, "Ops per procs": 9605785.0, "Ops/sec/procs": 960578.0, "ns per ops/procs": 1042.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 10 -r 5 -t 24", {"Duration (ms)": 10002.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 57552105.0, "Total blocks": 57552103.0, "Ops per second": 5753926.0, "ns per ops": 173.79, "Ops per threads": 479600.0, "Ops per procs": 2398004.0, "Ops/sec/procs": 239746.92, "ns per ops/procs": 4171.07}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 10 -r 5 -t 8", {"Duration (ms)": 10016.759028, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 123970604.0, "Total blocks": 123970351.0, "Ops per second": 12376318.89, "ns per ops": 80.8, "Ops per threads": 3099265.0, "Ops per procs": 15496325.0, "Ops/sec/procs": 1547039.86, "ns per ops/procs": 646.4}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 10 -r 5 -t 8", {"Duration (ms)": 10007.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 61716938.0, "Total blocks": 61716938.0, "Ops per second": 6166945.93, "ns per ops": 162.15, "Ops per threads": 1542923.0, "Ops per procs": 7714617.0, "Ops/sec/procs": 770868.24, "ns per ops/procs": 1297.24}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 10 -r 5 -t 1", {"Duration (ms)": 10007.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 70872904.0, "Total blocks": 70872899.0, "Ops per second": 7081970.19, "ns per ops": 141.2, "Ops per threads": 14174580.0, "Ops per procs": 70872904.0, "Ops/sec/procs": 7081970.19, "ns per ops/procs": 141.2}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 10 -r 5 -t 16", {"Duration (ms)": 10001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 156397978.0, "Ops per second": 15639797.0, "ns per ops": 63.0, "Ops per threads": 1954974.0, "Ops per procs": 9774873.0, "Ops/sec/procs": 977487.0, "ns per ops/procs": 1023.0}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 10 -r 5 -t 8", {"Duration (ms)": 10000.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 150292371.0, "Ops per second": 15028431.57, "ns per ops": 66.54, "Ops per threads": 3757309.0, "Ops per procs": 18786546.0, "Ops/sec/procs": 1878553.95, "ns per ops/procs": 532.32}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 10 -r 5 -t 16", {"Duration (ms)": 10009.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 59322364.0, "Total blocks": 59322364.0, "Ops per second": 5926827.38, "ns per ops": 168.72, "Ops per threads": 741529.0, "Ops per procs": 3707647.0, "Ops/sec/procs": 370426.71, "ns per ops/procs": 2699.59}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 10 -r 5 -t 24", {"Duration (ms)": 10000.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 484392787.0, "Ops per second": 48436133.63, "ns per ops": 20.65, "Ops per threads": 4036606.0, "Ops per procs": 20183032.0, "Ops/sec/procs": 2018172.23, "ns per ops/procs": 495.5}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 10 -r 5 -t 1", {"Duration (ms)": 10007.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 71150883.0, "Total blocks": 71150878.0, "Ops per second": 7109813.4, "ns per ops": 140.65, "Ops per threads": 14230176.0, "Ops per procs": 71150883.0, "Ops/sec/procs": 7109813.4, "ns per ops/procs": 140.65}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 10 -r 5 -t 8", {"Duration (ms)": 10008.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 80740751.0, "Ops per second": 8074075.0, "ns per ops": 123.0, "Ops per threads": 2018518.0, "Ops per procs": 10092593.0, "Ops/sec/procs": 1009259.0, "ns per ops/procs": 991.0}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 10 -r 5 -t 16", {"Duration (ms)": 10000.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 288121315.0, "Ops per second": 28809957.03, "ns per ops": 34.71, "Ops per threads": 3601516.0, "Ops per procs": 18007582.0, "Ops/sec/procs": 1800622.31, "ns per ops/procs": 555.36}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 10 -r 5 -t 16", {"Duration (ms)": 10100.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 153491548.0, "Ops per second": 15349154.0, "ns per ops": 65.0, "Ops per threads": 1918644.0, "Ops per procs": 9593221.0, "Ops/sec/procs": 959322.0, "ns per ops/procs": 1052.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 10 -r 5 -t 24", {"Duration (ms)": 10100.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 265150851.0, "Ops per second": 26515085.0, "ns per ops": 38.0, "Ops per threads": 2209590.0, "Ops per procs": 11047952.0, "Ops/sec/procs": 1104795.0, "ns per ops/procs": 914.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 10 -r 5 -t 1", {"Duration (ms)": 10100.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 54873960.0, "Ops per second": 5487396.0, "ns per ops": 184.0, "Ops per threads": 10974792.0, "Ops per procs": 54873960.0, "Ops/sec/procs": 5487396.0, "ns per ops/procs": 184.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 10 -r 5 -t 16", {"Duration (ms)": 10000.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 164735691.0, "Ops per second": 16473569.0, "ns per ops": 60.0, "Ops per threads": 2059196.0, "Ops per procs": 10295980.0, "Ops/sec/procs": 1029598.0, "ns per ops/procs": 971.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 10 -r 5 -t 1", {"Duration (ms)": 10007.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 71038106.0, "Total blocks": 71038101.0, "Ops per second": 7098555.38, "ns per ops": 140.87, "Ops per threads": 14207621.0, "Ops per procs": 71038106.0, "Ops/sec/procs": 7098555.38, "ns per ops/procs": 140.87}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 10 -r 5 -t 24", {"Duration (ms)": 10007.037227, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 233110848.0, "Total blocks": 233109436.0, "Ops per second": 23294691.8, "ns per ops": 42.93, "Ops per threads": 1942590.0, "Ops per procs": 9712952.0, "Ops/sec/procs": 970612.16, "ns per ops/procs": 1030.28}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 10 -r 5 -t 16", {"Duration (ms)": 10012.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 60897008.0, "Total blocks": 60897007.0, "Ops per second": 6082228.89, "ns per ops": 164.41, "Ops per threads": 761212.0, "Ops per procs": 3806063.0, "Ops/sec/procs": 380139.31, "ns per ops/procs": 2630.61}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 10 -r 5 -t 1", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 56664861.0, "Ops per second": 5666229.66, "ns per ops": 176.48, "Ops per threads": 11332972.0, "Ops per procs": 56664861.0, "Ops/sec/procs": 5666229.66, "ns per ops/procs": 176.48}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 10 -r 5 -t 1", {"Duration (ms)": 10100.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 54918505.0, "Ops per second": 5491850.0, "ns per ops": 183.0, "Ops per threads": 10983701.0, "Ops per procs": 54918505.0, "Ops/sec/procs": 5491850.0, "ns per ops/procs": 183.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 10 -r 5 -t 1", {"Duration (ms)": 10100.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 54930921.0, "Ops per second": 5493092.0, "ns per ops": 183.0, "Ops per threads": 10986184.0, "Ops per procs": 54930921.0, "Ops/sec/procs": 5493092.0, "ns per ops/procs": 183.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 10 -r 5 -t 24", {"Duration (ms)": 10003.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 56683908.0, "Total blocks": 56683908.0, "Ops per second": 5666230.51, "ns per ops": 176.48, "Ops per threads": 472365.0, "Ops per procs": 2361829.0, "Ops/sec/procs": 236092.94, "ns per ops/procs": 4235.62}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 10 -r 5 -t 8", {"Duration (ms)": 10007.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 63241275.0, "Total blocks": 63241275.0, "Ops per second": 6319199.64, "ns per ops": 158.25, "Ops per threads": 1581031.0, "Ops per procs": 7905159.0, "Ops/sec/procs": 789899.95, "ns per ops/procs": 1265.98}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 10 -r 5 -t 1", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 56846729.0, "Ops per second": 5684418.62, "ns per ops": 175.92, "Ops per threads": 11369345.0, "Ops per procs": 56846729.0, "Ops/sec/procs": 5684418.62, "ns per ops/procs": 175.92}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 10 -r 5 -t 16", {"Duration (ms)": 10024.602154, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 189976405.0, "Total blocks": 189975754.0, "Ops per second": 18951016.92, "ns per ops": 52.77, "Ops per threads": 2374705.0, "Ops per procs": 11873525.0, "Ops/sec/procs": 1184438.56, "ns per ops/procs": 844.28}]]
     1[["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 895589897.0, "Ops per second": 29851209.43, "ns per ops": 33.5, "Ops per threads": 11194873.0, "Ops per procs": 55974368.0, "Ops/sec/procs": 1865700.59, "ns per ops/procs": 535.99}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2128526861.0, "Total blocks": 2128526861.0, "Ops per second": 70887716.65, "ns per ops": 14.11, "Ops per threads": 26606585.0, "Ops per procs": 133032928.0, "Ops/sec/procs": 4430482.29, "ns per ops/procs": 225.71}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 485585079.0, "Ops per second": 16185350.77, "ns per ops": 61.78, "Ops per threads": 12139626.0, "Ops per procs": 60698134.0, "Ops/sec/procs": 2023168.85, "ns per ops/procs": 494.27}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 485973159.0, "Ops per second": 16198311.67, "ns per ops": 61.73, "Ops per threads": 12149328.0, "Ops per procs": 60746644.0, "Ops/sec/procs": 2024788.96, "ns per ops/procs": 493.88}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1343106113.0, "Ops per second": 44770203.0, "ns per ops": 22.0, "Ops per threads": 2798137.0, "Ops per procs": 13990688.0, "Ops/sec/procs": 466356.0, "ns per ops/procs": 2151.0}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30008.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2352649084.0, "Ops per second": 78398865.23, "ns per ops": 12.76, "Ops per threads": 6535136.0, "Ops per procs": 32675681.0, "Ops/sec/procs": 1088873.13, "ns per ops/procs": 918.38}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30064.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 130312773.0, "Ops per second": 4343759.0, "ns per ops": 230.0, "Ops per threads": 13031277.0, "Ops per procs": 65156386.0, "Ops/sec/procs": 2171879.0, "ns per ops/procs": 461.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30007.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 11472895574.0, "Total blocks": 11472895574.0, "Ops per second": 382337711.74, "ns per ops": 2.62, "Ops per threads": 15934577.0, "Ops per procs": 79672885.0, "Ops/sec/procs": 2655123.0, "ns per ops/procs": 376.63}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30056.072534, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 262162860.0, "Total blocks": 262162494.0, "Ops per second": 8722458.99, "ns per ops": 114.65, "Ops per threads": 13108143.0, "Ops per procs": 65540715.0, "Ops/sec/procs": 2180614.75, "ns per ops/procs": 458.59}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30007.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10143696586.0, "Total blocks": 10143696586.0, "Ops per second": 338037298.44, "ns per ops": 2.96, "Ops per threads": 21132701.0, "Ops per procs": 105663506.0, "Ops/sec/procs": 3521221.86, "ns per ops/procs": 283.99}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1479467592.0, "Ops per second": 49312537.32, "ns per ops": 20.28, "Ops per threads": 12328896.0, "Ops per procs": 61644483.0, "Ops/sec/procs": 2054689.05, "ns per ops/procs": 486.69}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30037.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1599732315.0, "Ops per second": 53324410.0, "ns per ops": 18.0, "Ops per threads": 3332775.0, "Ops per procs": 16663878.0, "Ops/sec/procs": 555462.0, "ns per ops/procs": 1802.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 649542259.0, "Ops per second": 21651408.0, "ns per ops": 46.0, "Ops per threads": 5412852.0, "Ops per procs": 27064260.0, "Ops/sec/procs": 902142.0, "ns per ops/procs": 1112.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 319254458.0, "Total blocks": 319254448.0, "Ops per second": 10633476.09, "ns per ops": 94.04, "Ops per threads": 31925445.0, "Ops per procs": 159627229.0, "Ops/sec/procs": 5316738.04, "ns per ops/procs": 188.09}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30064.138432, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1947581814.0, "Total blocks": 1947424799.0, "Ops per second": 64780895.63, "ns per ops": 15.44, "Ops per threads": 2028731.0, "Ops per procs": 10143655.0, "Ops/sec/procs": 337400.5, "ns per ops/procs": 2963.84}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 641605681.0, "Ops per second": 21386856.0, "ns per ops": 46.0, "Ops per threads": 5346714.0, "Ops per procs": 26733570.0, "Ops/sec/procs": 891119.0, "ns per ops/procs": 1125.0}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 291970907.0, "Ops per second": 9731828.27, "ns per ops": 102.76, "Ops per threads": 14598545.0, "Ops per procs": 72992726.0, "Ops/sec/procs": 2432957.07, "ns per ops/procs": 411.02}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 759106749.0, "Total blocks": 759106749.0, "Ops per second": 25283306.61, "ns per ops": 39.55, "Ops per threads": 37955337.0, "Ops per procs": 189776687.0, "Ops/sec/procs": 6320826.65, "ns per ops/procs": 158.21}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2048866101.0, "Ops per second": 68295536.0, "ns per ops": 14.0, "Ops per threads": 2134235.0, "Ops per procs": 10671177.0, "Ops/sec/procs": 355705.0, "ns per ops/procs": 2820.0}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1517931118.0, "Ops per second": 50594592.45, "ns per ops": 19.76, "Ops per threads": 12649425.0, "Ops per procs": 63247129.0, "Ops/sec/procs": 2108108.02, "ns per ops/procs": 474.36}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1493692339.0, "Ops per second": 49786339.58, "ns per ops": 20.09, "Ops per threads": 12447436.0, "Ops per procs": 62237180.0, "Ops/sec/procs": 2074430.82, "ns per ops/procs": 482.06}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 459498200.0, "Ops per second": 15316606.0, "ns per ops": 65.0, "Ops per threads": 5743727.0, "Ops per procs": 28718637.0, "Ops/sec/procs": 957287.0, "ns per ops/procs": 1044.0}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 173884782.0, "Ops per second": 5795856.45, "ns per ops": 172.54, "Ops per threads": 17388478.0, "Ops per procs": 86942391.0, "Ops/sec/procs": 2897928.22, "ns per ops/procs": 345.07}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 154405513.0, "Ops per second": 5146585.19, "ns per ops": 194.3, "Ops per threads": 15440551.0, "Ops per procs": 77202756.0, "Ops/sec/procs": 2573292.6, "ns per ops/procs": 388.61}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30060.485206, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 392631279.0, "Total blocks": 392630621.0, "Ops per second": 13061375.3, "ns per ops": 76.56, "Ops per threads": 9815781.0, "Ops per procs": 49078909.0, "Ops/sec/procs": 1632671.91, "ns per ops/procs": 612.49}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30075.233025, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 618657185.0, "Total blocks": 618655341.0, "Ops per second": 20570320.59, "ns per ops": 48.61, "Ops per threads": 7733214.0, "Ops per procs": 38666074.0, "Ops/sec/procs": 1285645.04, "ns per ops/procs": 777.82}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2073131717.0, "Ops per second": 69079522.22, "ns per ops": 14.48, "Ops per threads": 8638048.0, "Ops per procs": 43190244.0, "Ops/sec/procs": 1439156.71, "ns per ops/procs": 694.85}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30012.579682, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 714006533.0, "Total blocks": 714001826.0, "Ops per second": 23790241.98, "ns per ops": 42.03, "Ops per threads": 5950054.0, "Ops per procs": 29750272.0, "Ops/sec/procs": 991260.08, "ns per ops/procs": 1008.82}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 777414961.0, "Total blocks": 777414961.0, "Ops per second": 25892931.36, "ns per ops": 38.62, "Ops per threads": 38870748.0, "Ops per procs": 194353740.0, "Ops/sec/procs": 6473232.84, "ns per ops/procs": 154.48}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2123540409.0, "Ops per second": 70775412.41, "ns per ops": 14.13, "Ops per threads": 5898723.0, "Ops per procs": 29493616.0, "Ops/sec/procs": 982991.84, "ns per ops/procs": 1017.3}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30020.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2200029225.0, "Ops per second": 73283967.42, "ns per ops": 13.65, "Ops per threads": 4583394.0, "Ops per procs": 22916971.0, "Ops/sec/procs": 763374.66, "ns per ops/procs": 1309.97}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30022.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15302615265.0, "Total blocks": 15302615264.0, "Ops per second": 509706522.9, "ns per ops": 1.96, "Ops per threads": 15940224.0, "Ops per procs": 79701121.0, "Ops/sec/procs": 2654721.47, "ns per ops/procs": 376.69}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 169370556.0, "Ops per second": 5640745.9, "ns per ops": 177.28, "Ops per threads": 33874111.0, "Ops per procs": 169370556.0, "Ops/sec/procs": 5640745.9, "ns per ops/procs": 177.28}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30045.817081, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1136154449.0, "Total blocks": 1136142158.0, "Ops per second": 37814063.97, "ns per ops": 26.45, "Ops per threads": 4733976.0, "Ops per procs": 23669884.0, "Ops/sec/procs": 787793.0, "ns per ops/procs": 1269.37}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30025.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 521913657.0, "Total blocks": 521913657.0, "Ops per second": 17382557.63, "ns per ops": 57.53, "Ops per threads": 26095682.0, "Ops per procs": 130478414.0, "Ops/sec/procs": 4345639.41, "ns per ops/procs": 230.12}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1495946599.0, "Ops per second": 49864886.0, "ns per ops": 20.0, "Ops per threads": 2077703.0, "Ops per procs": 10388518.0, "Ops/sec/procs": 346283.0, "ns per ops/procs": 2897.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2902888354.0, "Total blocks": 2902888354.0, "Ops per second": 96676437.59, "ns per ops": 10.34, "Ops per threads": 36286104.0, "Ops per procs": 181430522.0, "Ops/sec/procs": 6042277.35, "ns per ops/procs": 165.5}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3342843975.0, "Ops per second": 111394087.34, "ns per ops": 8.98, "Ops per threads": 4642838.0, "Ops per procs": 23214194.0, "Ops/sec/procs": 773570.05, "ns per ops/procs": 1292.71}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30027.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2357681191.0, "Total blocks": 2357681191.0, "Ops per second": 78516192.18, "ns per ops": 12.74, "Ops per threads": 29471014.0, "Ops per procs": 147355074.0, "Ops/sec/procs": 4907262.01, "ns per ops/procs": 203.78}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30006.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2298798821.0, "Ops per second": 76611211.25, "ns per ops": 13.05, "Ops per threads": 6385552.0, "Ops per procs": 31927761.0, "Ops/sec/procs": 1064044.6, "ns per ops/procs": 939.81}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30068.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 117657378.0, "Ops per second": 3921912.0, "ns per ops": 255.0, "Ops per threads": 11765737.0, "Ops per procs": 58828689.0, "Ops/sec/procs": 1960956.0, "ns per ops/procs": 511.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 163782377.0, "Ops per second": 5459412.0, "ns per ops": 183.0, "Ops per threads": 32756475.0, "Ops per procs": 163782377.0, "Ops/sec/procs": 5459412.0, "ns per ops/procs": 183.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30037.979663, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1688934249.0, "Total blocks": 1688823784.0, "Ops per second": 56226626.02, "ns per ops": 17.79, "Ops per threads": 2345742.0, "Ops per procs": 11728710.0, "Ops/sec/procs": 390462.68, "ns per ops/procs": 2561.06}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1516093313.0, "Ops per second": 50533314.39, "ns per ops": 19.79, "Ops per threads": 12634110.0, "Ops per procs": 63170554.0, "Ops/sec/procs": 2105554.77, "ns per ops/procs": 474.93}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4038926114.0, "Total blocks": 4038926114.0, "Ops per second": 134611470.09, "ns per ops": 7.43, "Ops per threads": 16828858.0, "Ops per procs": 84144294.0, "Ops/sec/procs": 2804405.63, "ns per ops/procs": 356.58}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 493541396.0, "Ops per second": 16450557.97, "ns per ops": 60.79, "Ops per threads": 12338534.0, "Ops per procs": 61692674.0, "Ops/sec/procs": 2056319.75, "ns per ops/procs": 486.31}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 927866641.0, "Total blocks": 927866641.0, "Ops per second": 30905378.49, "ns per ops": 32.36, "Ops per threads": 23196666.0, "Ops per procs": 115983330.0, "Ops/sec/procs": 3863172.31, "ns per ops/procs": 258.85}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30010.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4681952714.0, "Ops per second": 156011916.17, "ns per ops": 6.41, "Ops per threads": 4877034.0, "Ops per procs": 24385170.0, "Ops/sec/procs": 812562.06, "ns per ops/procs": 1230.68}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3980507302.0, "Total blocks": 3980507302.0, "Ops per second": 132664732.83, "ns per ops": 7.54, "Ops per threads": 16585447.0, "Ops per procs": 82927235.0, "Ops/sec/procs": 2763848.6, "ns per ops/procs": 361.81}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 317038121.0, "Total blocks": 317038111.0, "Ops per second": 10559701.31, "ns per ops": 94.7, "Ops per threads": 31703812.0, "Ops per procs": 158519060.0, "Ops/sec/procs": 5279850.65, "ns per ops/procs": 189.4}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30050.02869, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 203503339.0, "Total blocks": 203503336.0, "Ops per second": 6772151.24, "ns per ops": 147.66, "Ops per threads": 40700667.0, "Ops per procs": 203503339.0, "Ops/sec/procs": 6772151.24, "ns per ops/procs": 147.66}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 163822953.0, "Ops per second": 5460765.0, "ns per ops": 183.0, "Ops per threads": 32764590.0, "Ops per procs": 163822953.0, "Ops/sec/procs": 5460765.0, "ns per ops/procs": 183.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30054.3089, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 263650987.0, "Total blocks": 263650591.0, "Ops per second": 8772485.43, "ns per ops": 113.99, "Ops per threads": 13182549.0, "Ops per procs": 65912746.0, "Ops/sec/procs": 2193121.36, "ns per ops/procs": 455.97}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30074.431913, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 604878338.0, "Total blocks": 604876206.0, "Ops per second": 20112710.35, "ns per ops": 49.72, "Ops per threads": 7560979.0, "Ops per procs": 37804896.0, "Ops/sec/procs": 1257044.4, "ns per ops/procs": 795.52}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30014.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2252844343.0, "Ops per second": 75058889.27, "ns per ops": 13.32, "Ops per threads": 4693425.0, "Ops per procs": 23467128.0, "Ops/sec/procs": 781863.43, "ns per ops/procs": 1279.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4111011180.0, "Total blocks": 4111011179.0, "Ops per second": 137014017.82, "ns per ops": 7.3, "Ops per threads": 17129213.0, "Ops per procs": 85646066.0, "Ops/sec/procs": 2854458.7, "ns per ops/procs": 350.33}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 164126445.0, "Ops per second": 5470881.0, "ns per ops": 183.0, "Ops per threads": 32825289.0, "Ops per procs": 164126445.0, "Ops/sec/procs": 5470881.0, "ns per ops/procs": 183.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30055.274571, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 262788886.0, "Total blocks": 262788516.0, "Ops per second": 8743519.72, "ns per ops": 114.37, "Ops per threads": 13139444.0, "Ops per procs": 65697221.0, "Ops/sec/procs": 2185879.93, "ns per ops/procs": 457.48}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30024.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 316108517.0, "Total blocks": 316108507.0, "Ops per second": 10528502.61, "ns per ops": 94.98, "Ops per threads": 31610851.0, "Ops per procs": 158054258.0, "Ops/sec/procs": 5264251.31, "ns per ops/procs": 189.96}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1148922624.0, "Ops per second": 38297420.0, "ns per ops": 26.0, "Ops per threads": 3191451.0, "Ops per procs": 15957258.0, "Ops/sec/procs": 531908.0, "ns per ops/procs": 1886.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30050.204155, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 198752280.0, "Total blocks": 198752279.0, "Ops per second": 6614007.64, "ns per ops": 151.19, "Ops per threads": 39750456.0, "Ops per procs": 198752280.0, "Ops/sec/procs": 6614007.64, "ns per ops/procs": 151.19}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30045.71981, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1291249612.0, "Total blocks": 1291185747.0, "Ops per second": 42976158.34, "ns per ops": 23.27, "Ops per threads": 2690103.0, "Ops per procs": 13450516.0, "Ops/sec/procs": 447668.32, "ns per ops/procs": 2233.8}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30061.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 125605232.0, "Ops per second": 4186841.0, "ns per ops": 239.0, "Ops per threads": 12560523.0, "Ops per procs": 62802616.0, "Ops/sec/procs": 2093420.0, "ns per ops/procs": 478.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30020.324441, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 715417046.0, "Total blocks": 715413563.0, "Ops per second": 23831089.75, "ns per ops": 41.96, "Ops per threads": 5961808.0, "Ops per procs": 29809043.0, "Ops/sec/procs": 992962.07, "ns per ops/procs": 1007.09}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 472225280.0, "Ops per second": 15740842.0, "ns per ops": 63.0, "Ops per threads": 5902816.0, "Ops per procs": 29514080.0, "Ops/sec/procs": 983802.0, "ns per ops/procs": 1016.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4074205540.0, "Total blocks": 4074205540.0, "Ops per second": 135786862.13, "ns per ops": 7.36, "Ops per threads": 16975856.0, "Ops per procs": 84879282.0, "Ops/sec/procs": 2828892.96, "ns per ops/procs": 353.5}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1671664998.0, "Ops per second": 55722166.0, "ns per ops": 18.0, "Ops per threads": 3482635.0, "Ops per procs": 17413177.0, "Ops/sec/procs": 580439.0, "ns per ops/procs": 1728.0}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30026.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4626760158.0, "Ops per second": 154087525.9, "ns per ops": 6.49, "Ops per threads": 4819541.0, "Ops per procs": 24097709.0, "Ops/sec/procs": 802539.2, "ns per ops/procs": 1246.05}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30049.312986, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 198605132.0, "Total blocks": 198605131.0, "Ops per second": 6609306.91, "ns per ops": 151.3, "Ops per threads": 39721026.0, "Ops per procs": 198605132.0, "Ops/sec/procs": 6609306.91, "ns per ops/procs": 151.3}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30034.092779, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1268519363.0, "Total blocks": 1268476437.0, "Ops per second": 42235980.7, "ns per ops": 23.68, "Ops per threads": 2642748.0, "Ops per procs": 13213743.0, "Ops/sec/procs": 439958.13, "ns per ops/procs": 2272.94}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 170566469.0, "Ops per second": 5685312.89, "ns per ops": 175.89, "Ops per threads": 34113293.0, "Ops per procs": 170566469.0, "Ops/sec/procs": 5685312.89, "ns per ops/procs": 175.89}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30010.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2354338653.0, "Ops per second": 78449993.19, "ns per ops": 12.75, "Ops per threads": 6539829.0, "Ops per procs": 32699147.0, "Ops/sec/procs": 1089583.24, "ns per ops/procs": 917.78}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30047.619512, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 208860757.0, "Total blocks": 208860649.0, "Ops per second": 6950991.81, "ns per ops": 143.86, "Ops per threads": 20886075.0, "Ops per procs": 104430378.0, "Ops/sec/procs": 3475495.9, "ns per ops/procs": 287.73}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30097.658076, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1009015366.0, "Total blocks": 1008994907.0, "Ops per second": 33524713.57, "ns per ops": 29.83, "Ops per threads": 2802820.0, "Ops per procs": 14014102.0, "Ops/sec/procs": 465621.02, "ns per ops/procs": 2147.67}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 773391873.0, "Total blocks": 773391873.0, "Ops per second": 25759160.01, "ns per ops": 38.82, "Ops per threads": 38669593.0, "Ops per procs": 193347968.0, "Ops/sec/procs": 6439790.0, "ns per ops/procs": 155.28}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8971061019.0, "Total blocks": 8971061019.0, "Ops per second": 298977241.25, "ns per ops": 3.34, "Ops per threads": 12459806.0, "Ops per procs": 62299034.0, "Ops/sec/procs": 2076230.84, "ns per ops/procs": 481.64}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30051.711462, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1129991557.0, "Total blocks": 1129979632.0, "Ops per second": 37601570.83, "ns per ops": 26.59, "Ops per threads": 4708298.0, "Ops per procs": 23541490.0, "Ops/sec/procs": 783366.06, "ns per ops/procs": 1276.54}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 166552065.0, "Ops per second": 5551476.88, "ns per ops": 180.13, "Ops per threads": 16655206.0, "Ops per procs": 83276032.0, "Ops/sec/procs": 2775738.44, "ns per ops/procs": 360.26}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30019.336435, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 708424159.0, "Total blocks": 708420669.0, "Ops per second": 23598928.0, "ns per ops": 42.37, "Ops per threads": 5903534.0, "Ops per procs": 29517673.0, "Ops/sec/procs": 983288.67, "ns per ops/procs": 1017.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30072.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 150782178.0, "Ops per second": 5026072.0, "ns per ops": 199.0, "Ops per threads": 7539108.0, "Ops per procs": 37695544.0, "Ops/sec/procs": 1256518.0, "ns per ops/procs": 797.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30066.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 138372877.0, "Ops per second": 4612429.0, "ns per ops": 217.0, "Ops per threads": 6918643.0, "Ops per procs": 34593219.0, "Ops/sec/procs": 1153107.0, "ns per ops/procs": 869.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2865431664.0, "Total blocks": 2865431664.0, "Ops per second": 95505643.63, "ns per ops": 10.47, "Ops per threads": 23878597.0, "Ops per procs": 119392986.0, "Ops/sec/procs": 3979401.82, "ns per ops/procs": 251.29}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30003.194606, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1285307171.0, "Total blocks": 1285264150.0, "Ops per second": 42839010.57, "ns per ops": 23.34, "Ops per threads": 2677723.0, "Ops per procs": 13388616.0, "Ops/sec/procs": 446239.69, "ns per ops/procs": 2240.95}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219389665.0, "Total blocks": 219389660.0, "Ops per second": 7307527.31, "ns per ops": 136.85, "Ops per threads": 43877933.0, "Ops per procs": 219389665.0, "Ops/sec/procs": 7307527.31, "ns per ops/procs": 136.85}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30016.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2248894771.0, "Ops per second": 74922997.62, "ns per ops": 13.35, "Ops per threads": 4685197.0, "Ops per procs": 23425987.0, "Ops/sec/procs": 780447.89, "ns per ops/procs": 1281.32}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30049.70011, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 202572736.0, "Total blocks": 202572735.0, "Ops per second": 6741256.49, "ns per ops": 148.34, "Ops per threads": 40514547.0, "Ops per procs": 202572736.0, "Ops/sec/procs": 6741256.49, "ns per ops/procs": 148.34}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30072.901347, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 978488107.0, "Total blocks": 978460723.0, "Ops per second": 32537203.37, "ns per ops": 30.73, "Ops per threads": 2718022.0, "Ops per procs": 13590112.0, "Ops/sec/procs": 451905.6, "ns per ops/procs": 2212.85}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30099.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 445097974.0, "Ops per second": 14836599.0, "ns per ops": 67.0, "Ops per threads": 5563724.0, "Ops per procs": 27818623.0, "Ops/sec/procs": 927287.0, "ns per ops/procs": 1082.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30054.419098, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 262279413.0, "Total blocks": 262279033.0, "Ops per second": 8726816.92, "ns per ops": 114.59, "Ops per threads": 13113970.0, "Ops per procs": 65569853.0, "Ops/sec/procs": 2181704.23, "ns per ops/procs": 458.36}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30059.793102, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1293898165.0, "Total blocks": 1293848741.0, "Ops per second": 43044147.4, "ns per ops": 23.23, "Ops per threads": 2695621.0, "Ops per procs": 13478105.0, "Ops/sec/procs": 448376.54, "ns per ops/procs": 2230.27}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30061.146441, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 390535628.0, "Total blocks": 390535001.0, "Ops per second": 12991375.06, "ns per ops": 76.97, "Ops per threads": 9763390.0, "Ops per procs": 48816953.0, "Ops/sec/procs": 1623921.88, "ns per ops/procs": 615.79}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 443002359.0, "Ops per second": 14766745.0, "ns per ops": 67.0, "Ops per threads": 5537529.0, "Ops per procs": 27687647.0, "Ops/sec/procs": 922921.0, "ns per ops/procs": 1087.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 514609454.0, "Total blocks": 514609454.0, "Ops per second": 17140020.33, "ns per ops": 58.34, "Ops per threads": 25730472.0, "Ops per procs": 128652363.0, "Ops/sec/procs": 4285005.08, "ns per ops/procs": 233.37}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30025.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 223397913.0, "Ops per second": 7446597.0, "ns per ops": 134.0, "Ops per threads": 5584947.0, "Ops per procs": 27924739.0, "Ops/sec/procs": 930824.0, "ns per ops/procs": 1075.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30026.883413, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1142496313.0, "Total blocks": 1142482623.0, "Ops per second": 38049114.1, "ns per ops": 26.28, "Ops per threads": 4760401.0, "Ops per procs": 23802006.0, "Ops/sec/procs": 792689.88, "ns per ops/procs": 1261.53}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30028.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 169473164.0, "Ops per second": 5643672.76, "ns per ops": 177.19, "Ops per threads": 33894632.0, "Ops per procs": 169473164.0, "Ops/sec/procs": 5643672.76, "ns per ops/procs": 177.19}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30024.238778, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1939340795.0, "Total blocks": 1939118876.0, "Ops per second": 64592505.05, "ns per ops": 15.48, "Ops per threads": 2020146.0, "Ops per procs": 10100733.0, "Ops/sec/procs": 336419.3, "ns per ops/procs": 2972.48}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 170282268.0, "Ops per second": 5675834.3, "ns per ops": 176.19, "Ops per threads": 34056453.0, "Ops per procs": 170282268.0, "Ops/sec/procs": 5675834.3, "ns per ops/procs": 176.19}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 495351736.0, "Ops per second": 16510906.36, "ns per ops": 60.57, "Ops per threads": 12383793.0, "Ops per procs": 61918967.0, "Ops/sec/procs": 2063863.29, "ns per ops/procs": 484.53}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30016.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3216329539.0, "Ops per second": 107153492.29, "ns per ops": 9.33, "Ops per threads": 4467124.0, "Ops per procs": 22335621.0, "Ops/sec/procs": 744121.47, "ns per ops/procs": 1343.87}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30053.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 127711160.0, "Ops per second": 4257038.0, "ns per ops": 235.0, "Ops per threads": 12771116.0, "Ops per procs": 63855580.0, "Ops/sec/procs": 2128519.0, "ns per ops/procs": 470.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219421870.0, "Total blocks": 219421865.0, "Ops per second": 7308648.43, "ns per ops": 136.82, "Ops per threads": 43884374.0, "Ops per procs": 219421870.0, "Ops/sec/procs": 7308648.43, "ns per ops/procs": 136.82}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30010.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3386509383.0, "Ops per second": 112843960.62, "ns per ops": 8.86, "Ops per threads": 4703485.0, "Ops per procs": 23517426.0, "Ops/sec/procs": 783638.62, "ns per ops/procs": 1276.1}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1910492900.0, "Ops per second": 63683096.0, "ns per ops": 15.0, "Ops per threads": 1990096.0, "Ops per procs": 9950483.0, "Ops/sec/procs": 331682.0, "ns per ops/procs": 3024.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30047.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15089769527.0, "Total blocks": 15089769526.0, "Ops per second": 502196760.88, "ns per ops": 1.99, "Ops per threads": 15718509.0, "Ops per procs": 78592549.0, "Ops/sec/procs": 2615608.13, "ns per ops/procs": 382.32}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30076.687231, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 614498867.0, "Total blocks": 614497007.0, "Ops per second": 20431068.83, "ns per ops": 48.95, "Ops per threads": 7681235.0, "Ops per procs": 38406179.0, "Ops/sec/procs": 1276941.8, "ns per ops/procs": 783.12}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30050.924279, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 199494248.0, "Total blocks": 199494247.0, "Ops per second": 6638539.51, "ns per ops": 150.64, "Ops per threads": 39898849.0, "Ops per procs": 199494248.0, "Ops/sec/procs": 6638539.51, "ns per ops/procs": 150.64}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30050.388166, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1303613592.0, "Total blocks": 1303564662.0, "Ops per second": 43380923.56, "ns per ops": 23.05, "Ops per threads": 2715861.0, "Ops per procs": 13579308.0, "Ops/sec/procs": 451884.62, "ns per ops/procs": 2212.95}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10009711300.0, "Total blocks": 10009711300.0, "Ops per second": 333605712.52, "ns per ops": 3.0, "Ops per threads": 20853565.0, "Ops per procs": 104267826.0, "Ops/sec/procs": 3475059.51, "ns per ops/procs": 287.76}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 263703873.0, "Ops per second": 8789685.27, "ns per ops": 113.77, "Ops per threads": 13185193.0, "Ops per procs": 65925968.0, "Ops/sec/procs": 2197421.32, "ns per ops/procs": 455.08}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1121226364.0, "Ops per second": 37374212.0, "ns per ops": 26.0, "Ops per threads": 3114517.0, "Ops per procs": 15572588.0, "Ops/sec/procs": 519086.0, "ns per ops/procs": 1932.0}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 878164429.0, "Ops per second": 29270570.42, "ns per ops": 34.16, "Ops per threads": 10977055.0, "Ops per procs": 54885276.0, "Ops/sec/procs": 1829410.65, "ns per ops/procs": 546.62}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7954751944.0, "Total blocks": 7954751944.0, "Ops per second": 265116280.72, "ns per ops": 3.77, "Ops per threads": 16572399.0, "Ops per procs": 82861999.0, "Ops/sec/procs": 2761627.92, "ns per ops/procs": 362.11}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 891287909.0, "Ops per second": 29707817.06, "ns per ops": 33.66, "Ops per threads": 11141098.0, "Ops per procs": 55705494.0, "Ops/sec/procs": 1856738.57, "ns per ops/procs": 538.58}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30067.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 123922145.0, "Ops per second": 4130738.0, "ns per ops": 242.0, "Ops per threads": 12392214.0, "Ops per procs": 61961072.0, "Ops/sec/procs": 2065369.0, "ns per ops/procs": 485.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30060.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 156122482.0, "Ops per second": 5204082.0, "ns per ops": 192.0, "Ops per threads": 7806124.0, "Ops per procs": 39030620.0, "Ops/sec/procs": 1301020.0, "ns per ops/procs": 770.0}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30010.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2282110146.0, "Ops per second": 76043634.85, "ns per ops": 13.15, "Ops per threads": 6339194.0, "Ops per procs": 31695974.0, "Ops/sec/procs": 1056161.6, "ns per ops/procs": 946.82}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30077.806783, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1649847522.0, "Total blocks": 1649727538.0, "Ops per second": 54852653.78, "ns per ops": 18.23, "Ops per threads": 2291454.0, "Ops per procs": 11457274.0, "Ops/sec/procs": 380921.21, "ns per ops/procs": 2625.21}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1496908561.0, "Ops per second": 49893869.68, "ns per ops": 20.04, "Ops per threads": 12474238.0, "Ops per procs": 62371190.0, "Ops/sec/procs": 2078911.24, "ns per ops/procs": 481.02}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30030.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1272770262.0, "Ops per second": 42425675.0, "ns per ops": 23.0, "Ops per threads": 1767736.0, "Ops per procs": 8838682.0, "Ops/sec/procs": 294622.0, "ns per ops/procs": 3397.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30055.790724, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 263630065.0, "Total blocks": 263629716.0, "Ops per second": 8771356.82, "ns per ops": 114.01, "Ops per threads": 13181503.0, "Ops per procs": 65907516.0, "Ops/sec/procs": 2192839.21, "ns per ops/procs": 456.03}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 169368792.0, "Ops per second": 5645392.43, "ns per ops": 177.14, "Ops per threads": 33873758.0, "Ops per procs": 169368792.0, "Ops/sec/procs": 5645392.43, "ns per ops/procs": 177.14}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30019.692606, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 709446261.0, "Total blocks": 709442679.0, "Ops per second": 23632695.72, "ns per ops": 42.31, "Ops per threads": 5912052.0, "Ops per procs": 29560260.0, "Ops/sec/procs": 984695.66, "ns per ops/procs": 1015.54}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30100.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 463153035.0, "Ops per second": 15438434.0, "ns per ops": 64.0, "Ops per threads": 5789412.0, "Ops per procs": 28947064.0, "Ops/sec/procs": 964902.0, "ns per ops/procs": 1039.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30019.092678, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 709297907.0, "Total blocks": 709294587.0, "Ops per second": 23628226.03, "ns per ops": 42.32, "Ops per threads": 5910815.0, "Ops per procs": 29554079.0, "Ops/sec/procs": 984509.42, "ns per ops/procs": 1015.73}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 169842506.0, "Ops per second": 5661180.09, "ns per ops": 176.64, "Ops per threads": 33968501.0, "Ops per procs": 169842506.0, "Ops/sec/procs": 5661180.09, "ns per ops/procs": 176.64}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 319233048.0, "Total blocks": 319233038.0, "Ops per second": 10632749.22, "ns per ops": 94.05, "Ops per threads": 31923304.0, "Ops per procs": 159616524.0, "Ops/sec/procs": 5316374.61, "ns per ops/procs": 188.1}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30009.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2378342888.0, "Ops per second": 79253265.14, "ns per ops": 12.62, "Ops per threads": 6606508.0, "Ops per procs": 33032540.0, "Ops/sec/procs": 1100739.79, "ns per ops/procs": 908.48}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 229795406.0, "Ops per second": 7659846.0, "ns per ops": 130.0, "Ops per threads": 5744885.0, "Ops per procs": 28724425.0, "Ops/sec/procs": 957480.0, "ns per ops/procs": 1045.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30094.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 14776349179.0, "Total blocks": 14776349179.0, "Ops per second": 490998354.07, "ns per ops": 2.04, "Ops per threads": 15392030.0, "Ops per procs": 76960151.0, "Ops/sec/procs": 2557283.09, "ns per ops/procs": 391.04}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30015.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2216386089.0, "Ops per second": 73840556.69, "ns per ops": 13.54, "Ops per threads": 4617471.0, "Ops per procs": 23087355.0, "Ops/sec/procs": 769172.47, "ns per ops/procs": 1300.1}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30025.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 316712812.0, "Total blocks": 316712802.0, "Ops per second": 10548171.45, "ns per ops": 94.8, "Ops per threads": 31671281.0, "Ops per procs": 158356406.0, "Ops/sec/procs": 5274085.73, "ns per ops/procs": 189.61}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30009.356273, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 997706041.0, "Total blocks": 997681383.0, "Ops per second": 33246499.26, "ns per ops": 30.08, "Ops per threads": 2771405.0, "Ops per procs": 13857028.0, "Ops/sec/procs": 461756.93, "ns per ops/procs": 2165.64}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30016.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 173966806.0, "Ops per second": 5795753.69, "ns per ops": 172.54, "Ops per threads": 17396680.0, "Ops per procs": 86983403.0, "Ops/sec/procs": 2897876.85, "ns per ops/procs": 345.08}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30061.543904, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 386635046.0, "Total blocks": 386634383.0, "Ops per second": 12861450.07, "ns per ops": 77.75, "Ops per threads": 9665876.0, "Ops per procs": 48329380.0, "Ops/sec/procs": 1607681.26, "ns per ops/procs": 622.01}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 275969970.0, "Ops per second": 9198535.07, "ns per ops": 108.71, "Ops per threads": 13798498.0, "Ops per procs": 68992492.0, "Ops/sec/procs": 2299633.77, "ns per ops/procs": 434.85}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30050.647638, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 211248214.0, "Total blocks": 211248115.0, "Ops per second": 7029739.14, "ns per ops": 142.25, "Ops per threads": 21124821.0, "Ops per procs": 105624107.0, "Ops/sec/procs": 3514869.57, "ns per ops/procs": 284.51}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 979187627.0, "Ops per second": 32639587.0, "ns per ops": 30.0, "Ops per threads": 4079948.0, "Ops per procs": 20399742.0, "Ops/sec/procs": 679991.0, "ns per ops/procs": 1475.0}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 887404843.0, "Ops per second": 29578466.09, "ns per ops": 33.81, "Ops per threads": 11092560.0, "Ops per procs": 55462802.0, "Ops/sec/procs": 1848654.13, "ns per ops/procs": 540.93}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 468905215.0, "Ops per second": 15629379.72, "ns per ops": 63.98, "Ops per threads": 11722630.0, "Ops per procs": 58613151.0, "Ops/sec/procs": 1953672.47, "ns per ops/procs": 511.86}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30048.031492, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1308366740.0, "Total blocks": 1308320606.0, "Ops per second": 43542510.94, "ns per ops": 22.97, "Ops per threads": 2725764.0, "Ops per procs": 13628820.0, "Ops/sec/procs": 453567.82, "ns per ops/procs": 2204.74}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1475251958.0, "Ops per second": 49172004.09, "ns per ops": 20.34, "Ops per threads": 12293766.0, "Ops per procs": 61468831.0, "Ops/sec/procs": 2048833.5, "ns per ops/procs": 488.08}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 156881195.0, "Ops per second": 5229130.05, "ns per ops": 191.24, "Ops per threads": 15688119.0, "Ops per procs": 78440597.0, "Ops/sec/procs": 2614565.02, "ns per ops/procs": 382.47}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30010.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4639195640.0, "Ops per second": 154587821.67, "ns per ops": 6.47, "Ops per threads": 4832495.0, "Ops per procs": 24162477.0, "Ops/sec/procs": 805144.9, "ns per ops/procs": 1242.01}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30009.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2763915530.0, "Ops per second": 92130517.0, "ns per ops": 10.0, "Ops per threads": 2879078.0, "Ops per procs": 14395393.0, "Ops/sec/procs": 479846.0, "ns per ops/procs": 2084.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30003.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1403858146.0, "Ops per second": 46795271.0, "ns per ops": 21.0, "Ops per threads": 1949802.0, "Ops per procs": 9749014.0, "Ops/sec/procs": 324967.0, "ns per ops/procs": 3077.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 163667687.0, "Ops per second": 5455589.0, "ns per ops": 183.0, "Ops per threads": 32733537.0, "Ops per procs": 163667687.0, "Ops/sec/procs": 5455589.0, "ns per ops/procs": 183.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 850932699.0, "Ops per second": 28364423.0, "ns per ops": 35.0, "Ops per threads": 2363701.0, "Ops per procs": 11818509.0, "Ops/sec/procs": 393950.0, "ns per ops/procs": 2546.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1705268737.0, "Ops per second": 56842291.0, "ns per ops": 17.0, "Ops per threads": 1776321.0, "Ops per procs": 8881608.0, "Ops/sec/procs": 296053.0, "ns per ops/procs": 3388.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30003.026841, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1972411799.0, "Total blocks": 1972168936.0, "Ops per second": 65740427.11, "ns per ops": 15.21, "Ops per threads": 2054595.0, "Ops per procs": 10272978.0, "Ops/sec/procs": 342398.06, "ns per ops/procs": 2920.58}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7896914275.0, "Total blocks": 7896914272.0, "Ops per second": 263185972.05, "ns per ops": 3.8, "Ops per threads": 16451904.0, "Ops per procs": 82259523.0, "Ops/sec/procs": 2741520.54, "ns per ops/procs": 364.76}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30004.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2335992139.0, "Ops per second": 77853804.35, "ns per ops": 12.84, "Ops per threads": 6488867.0, "Ops per procs": 32444335.0, "Ops/sec/procs": 1081302.84, "ns per ops/procs": 924.81}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7590455259.0, "Total blocks": 7590455259.0, "Ops per second": 252975635.21, "ns per ops": 3.95, "Ops per threads": 15813448.0, "Ops per procs": 79067242.0, "Ops/sec/procs": 2635162.87, "ns per ops/procs": 379.48}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30044.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 11570689012.0, "Total blocks": 11570689010.0, "Ops per second": 385112791.37, "ns per ops": 2.6, "Ops per threads": 16070401.0, "Ops per procs": 80352007.0, "Ops/sec/procs": 2674394.38, "ns per ops/procs": 373.92}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30050.323306, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 202229327.0, "Total blocks": 202229322.0, "Ops per second": 6729688.89, "ns per ops": 148.6, "Ops per threads": 40445865.0, "Ops per procs": 202229327.0, "Ops/sec/procs": 6729688.89, "ns per ops/procs": 148.6}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 921662913.0, "Total blocks": 921662913.0, "Ops per second": 30698808.09, "ns per ops": 32.57, "Ops per threads": 23041572.0, "Ops per procs": 115207864.0, "Ops/sec/procs": 3837351.01, "ns per ops/procs": 260.6}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2086216088.0, "Ops per second": 69515538.91, "ns per ops": 14.39, "Ops per threads": 8692567.0, "Ops per procs": 43462835.0, "Ops/sec/procs": 1448240.39, "ns per ops/procs": 690.49}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30052.122262, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 205967005.0, "Total blocks": 205966923.0, "Ops per second": 6853659.23, "ns per ops": 145.91, "Ops per threads": 20596700.0, "Ops per procs": 102983502.0, "Ops/sec/procs": 3426829.61, "ns per ops/procs": 291.81}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30078.303339, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 607653778.0, "Total blocks": 607651873.0, "Ops per second": 20202395.43, "ns per ops": 49.5, "Ops per threads": 7595672.0, "Ops per procs": 37978361.0, "Ops/sec/procs": 1262649.71, "ns per ops/procs": 791.99}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1865975207.0, "Total blocks": 1865975207.0, "Ops per second": 62143665.55, "ns per ops": 16.09, "Ops per threads": 23324690.0, "Ops per procs": 116623450.0, "Ops/sec/procs": 3883979.1, "ns per ops/procs": 257.47}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 917896719.0, "Total blocks": 917896719.0, "Ops per second": 30573406.98, "ns per ops": 32.71, "Ops per threads": 22947417.0, "Ops per procs": 114737089.0, "Ops/sec/procs": 3821675.87, "ns per ops/procs": 261.67}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30011.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2105706041.0, "Ops per second": 70163415.71, "ns per ops": 14.25, "Ops per threads": 8773775.0, "Ops per procs": 43868875.0, "Ops/sec/procs": 1461737.83, "ns per ops/procs": 684.12}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30045.425968, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1631662302.0, "Total blocks": 1631545370.0, "Ops per second": 54306512.54, "ns per ops": 18.41, "Ops per threads": 2266197.0, "Ops per procs": 11330988.0, "Ops/sec/procs": 377128.56, "ns per ops/procs": 2651.62}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1854686262.0, "Total blocks": 1854686262.0, "Ops per second": 61767949.53, "ns per ops": 16.19, "Ops per threads": 23183578.0, "Ops per procs": 115917891.0, "Ops/sec/procs": 3860496.85, "ns per ops/procs": 259.03}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30098.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1911938998.0, "Ops per second": 63731299.0, "ns per ops": 15.0, "Ops per threads": 1991603.0, "Ops per procs": 9958015.0, "Ops/sec/procs": 331933.0, "ns per ops/procs": 3022.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4093980555.0, "Total blocks": 4093980555.0, "Ops per second": 136445782.68, "ns per ops": 7.33, "Ops per threads": 17058252.0, "Ops per procs": 85291261.0, "Ops/sec/procs": 2842620.47, "ns per ops/procs": 351.79}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 168544047.0, "Ops per second": 5617867.54, "ns per ops": 178.0, "Ops per threads": 16854404.0, "Ops per procs": 84272023.0, "Ops/sec/procs": 2808933.77, "ns per ops/procs": 356.01}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30051.745836, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 208504553.0, "Total blocks": 208504433.0, "Ops per second": 6938184.36, "ns per ops": 144.13, "Ops per threads": 20850455.0, "Ops per procs": 104252276.0, "Ops/sec/procs": 3469092.18, "ns per ops/procs": 288.26}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30025.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 213837140.0, "Ops per second": 7127904.0, "ns per ops": 140.0, "Ops per threads": 5345928.0, "Ops per procs": 26729642.0, "Ops/sec/procs": 890988.0, "ns per ops/procs": 1123.0}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 894494404.0, "Ops per second": 29814884.31, "ns per ops": 33.54, "Ops per threads": 11181180.0, "Ops per procs": 55905900.0, "Ops/sec/procs": 1863430.27, "ns per ops/procs": 536.64}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30099.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 509834809.0, "Ops per second": 16994493.0, "ns per ops": 59.0, "Ops per threads": 6372935.0, "Ops per procs": 31864675.0, "Ops/sec/procs": 1062155.0, "ns per ops/procs": 944.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30051.877363, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 199694985.0, "Total blocks": 199694899.0, "Ops per second": 6645008.65, "ns per ops": 150.49, "Ops per threads": 19969498.0, "Ops per procs": 99847492.0, "Ops/sec/procs": 3322504.32, "ns per ops/procs": 300.98}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30038.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 230606467.0, "Ops per second": 7686882.0, "ns per ops": 130.0, "Ops per threads": 5765161.0, "Ops per procs": 28825808.0, "Ops/sec/procs": 960860.0, "ns per ops/procs": 1042.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30063.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 127759309.0, "Ops per second": 4258643.0, "ns per ops": 235.0, "Ops per threads": 12775930.0, "Ops per procs": 63879654.0, "Ops/sec/procs": 2129321.0, "ns per ops/procs": 470.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2732493019.0, "Total blocks": 2732493019.0, "Ops per second": 91075347.29, "ns per ops": 10.98, "Ops per threads": 22770775.0, "Ops per procs": 113853875.0, "Ops/sec/procs": 3794806.14, "ns per ops/procs": 263.52}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30028.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4623488360.0, "Ops per second": 153969207.9, "ns per ops": 6.49, "Ops per threads": 4816133.0, "Ops per procs": 24080668.0, "Ops/sec/procs": 801922.96, "ns per ops/procs": 1247.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30049.073929, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1121485363.0, "Total blocks": 1121473210.0, "Ops per second": 37321794.53, "ns per ops": 26.79, "Ops per threads": 4672855.0, "Ops per procs": 23364278.0, "Ops/sec/procs": 777537.39, "ns per ops/procs": 1286.11}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1501210099.0, "Ops per second": 50032742.67, "ns per ops": 19.99, "Ops per threads": 12510084.0, "Ops per procs": 62550420.0, "Ops/sec/procs": 2084697.61, "ns per ops/procs": 479.69}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 278276750.0, "Ops per second": 9275436.22, "ns per ops": 107.81, "Ops per threads": 13913837.0, "Ops per procs": 69569187.0, "Ops/sec/procs": 2318859.06, "ns per ops/procs": 431.25}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30098.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 795013661.0, "Ops per second": 26500455.0, "ns per ops": 37.0, "Ops per threads": 6625113.0, "Ops per procs": 33125569.0, "Ops/sec/procs": 1104185.0, "ns per ops/procs": 908.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30008.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15502062283.0, "Total blocks": 15502062283.0, "Ops per second": 516588776.76, "ns per ops": 1.94, "Ops per threads": 16147981.0, "Ops per procs": 80739907.0, "Ops/sec/procs": 2690566.55, "ns per ops/procs": 371.67}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 183053824.0, "Ops per second": 6101512.2, "ns per ops": 163.89, "Ops per threads": 18305382.0, "Ops per procs": 91526912.0, "Ops/sec/procs": 3050756.1, "ns per ops/procs": 327.79}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 514583288.0, "Total blocks": 514583288.0, "Ops per second": 17138953.08, "ns per ops": 58.35, "Ops per threads": 25729164.0, "Ops per procs": 128645822.0, "Ops/sec/procs": 4284738.27, "ns per ops/procs": 233.39}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1905634437.0, "Ops per second": 63521147.0, "ns per ops": 15.0, "Ops per threads": 2646714.0, "Ops per procs": 13233572.0, "Ops/sec/procs": 441119.0, "ns per ops/procs": 2267.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30019.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7049659028.0, "Total blocks": 7049659028.0, "Ops per second": 234836825.18, "ns per ops": 4.26, "Ops per threads": 19582386.0, "Ops per procs": 97911930.0, "Ops/sec/procs": 3261622.57, "ns per ops/procs": 306.6}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30061.100693, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 386636306.0, "Total blocks": 386635717.0, "Ops per second": 12861681.61, "ns per ops": 77.75, "Ops per threads": 9665907.0, "Ops per procs": 48329538.0, "Ops/sec/procs": 1607710.2, "ns per ops/procs": 622.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1158996003.0, "Ops per second": 38633200.0, "ns per ops": 25.0, "Ops per threads": 4829150.0, "Ops per procs": 24145750.0, "Ops/sec/procs": 804858.0, "ns per ops/procs": 1246.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1148771218.0, "Ops per second": 38292373.0, "ns per ops": 26.0, "Ops per threads": 4786546.0, "Ops per procs": 23932733.0, "Ops/sec/procs": 797757.0, "ns per ops/procs": 1257.0}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 169892687.0, "Ops per second": 5662857.55, "ns per ops": 176.59, "Ops per threads": 33978537.0, "Ops per procs": 169892687.0, "Ops/sec/procs": 5662857.55, "ns per ops/procs": 176.59}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 787776143.0, "Ops per second": 26259204.0, "ns per ops": 38.0, "Ops per threads": 6564801.0, "Ops per procs": 32824005.0, "Ops/sec/procs": 1094133.0, "ns per ops/procs": 916.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3903574623.0, "Total blocks": 3903574623.0, "Ops per second": 130099982.54, "ns per ops": 7.69, "Ops per threads": 16264894.0, "Ops per procs": 81324471.0, "Ops/sec/procs": 2710416.3, "ns per ops/procs": 368.95}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30021.934755, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1603747977.0, "Total blocks": 1603634634.0, "Ops per second": 53419207.99, "ns per ops": 18.72, "Ops per threads": 2227427.0, "Ops per procs": 11137138.0, "Ops/sec/procs": 370966.72, "ns per ops/procs": 2695.66}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 163499884.0, "Ops per second": 5449996.0, "ns per ops": 184.0, "Ops per threads": 32699976.0, "Ops per procs": 163499884.0, "Ops/sec/procs": 5449996.0, "ns per ops/procs": 184.0}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30005.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2250992595.0, "Ops per second": 75020251.72, "ns per ops": 13.33, "Ops per threads": 6252757.0, "Ops per procs": 31263786.0, "Ops/sec/procs": 1041947.94, "ns per ops/procs": 959.74}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30098.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 686642845.0, "Ops per second": 22888094.0, "ns per ops": 43.0, "Ops per threads": 5722023.0, "Ops per procs": 28610118.0, "Ops/sec/procs": 953670.0, "ns per ops/procs": 1052.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 890515168.0, "Total blocks": 890515168.0, "Ops per second": 29661193.9, "ns per ops": 33.71, "Ops per threads": 22262879.0, "Ops per procs": 111314396.0, "Ops/sec/procs": 3707649.24, "ns per ops/procs": 269.71}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2073140257.0, "Ops per second": 69080996.99, "ns per ops": 14.48, "Ops per threads": 8638084.0, "Ops per procs": 43190422.0, "Ops/sec/procs": 1439187.44, "ns per ops/procs": 694.84}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2089456957.0, "Ops per second": 69624204.29, "ns per ops": 14.36, "Ops per threads": 8706070.0, "Ops per procs": 43530353.0, "Ops/sec/procs": 1450504.26, "ns per ops/procs": 689.42}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30000.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1750000497.0, "Ops per second": 58333349.0, "ns per ops": 17.0, "Ops per threads": 2430556.0, "Ops per procs": 12152781.0, "Ops/sec/procs": 405092.0, "ns per ops/procs": 2468.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 750273349.0, "Total blocks": 750273349.0, "Ops per second": 24989103.18, "ns per ops": 40.02, "Ops per threads": 37513667.0, "Ops per procs": 187568337.0, "Ops/sec/procs": 6247275.79, "ns per ops/procs": 160.07}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 270204730.0, "Ops per second": 9006377.22, "ns per ops": 111.03, "Ops per threads": 13510236.0, "Ops per procs": 67551182.0, "Ops/sec/procs": 2251594.31, "ns per ops/procs": 444.13}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2728032638.0, "Ops per second": 90934421.0, "ns per ops": 11.0, "Ops per threads": 2841700.0, "Ops per procs": 14208503.0, "Ops/sec/procs": 473616.0, "ns per ops/procs": 2118.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30077.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 144157053.0, "Ops per second": 4805235.0, "ns per ops": 208.0, "Ops per threads": 7207852.0, "Ops per procs": 36039263.0, "Ops/sec/procs": 1201308.0, "ns per ops/procs": 834.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3953790490.0, "Total blocks": 3953790490.0, "Ops per second": 131781904.73, "ns per ops": 7.59, "Ops per threads": 32948254.0, "Ops per procs": 164741270.0, "Ops/sec/procs": 5490912.7, "ns per ops/procs": 182.12}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30084.324861, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1003004334.0, "Total blocks": 1002972244.0, "Ops per second": 33339765.43, "ns per ops": 29.99, "Ops per threads": 2786123.0, "Ops per procs": 13930615.0, "Ops/sec/procs": 463052.3, "ns per ops/procs": 2159.58}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30004.907868, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1013328956.0, "Total blocks": 1013308492.0, "Ops per second": 33772106.9, "ns per ops": 29.61, "Ops per threads": 2814802.0, "Ops per procs": 14074013.0, "Ops/sec/procs": 469057.04, "ns per ops/procs": 2131.94}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2046895560.0, "Ops per second": 68205437.11, "ns per ops": 14.66, "Ops per threads": 8528731.0, "Ops per procs": 42643657.0, "Ops/sec/procs": 1420946.61, "ns per ops/procs": 703.76}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30091.981228, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1974866945.0, "Total blocks": 1974632656.0, "Ops per second": 65627681.01, "ns per ops": 15.24, "Ops per threads": 2057153.0, "Ops per procs": 10285765.0, "Ops/sec/procs": 341810.84, "ns per ops/procs": 2925.59}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30051.090866, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 207895062.0, "Total blocks": 207894949.0, "Ops per second": 6918053.75, "ns per ops": 144.55, "Ops per threads": 20789506.0, "Ops per procs": 103947531.0, "Ops/sec/procs": 3459026.88, "ns per ops/procs": 289.1}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30000.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 485991524.0, "Ops per second": 16199717.0, "ns per ops": 61.0, "Ops per threads": 6074894.0, "Ops per procs": 30374470.0, "Ops/sec/procs": 1012482.0, "ns per ops/procs": 987.0}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30044.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4721729526.0, "Ops per second": 157156328.95, "ns per ops": 6.36, "Ops per threads": 4918468.0, "Ops per procs": 24592341.0, "Ops/sec/procs": 818522.55, "ns per ops/procs": 1221.71}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30016.158635, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1051428615.0, "Total blocks": 1051397340.0, "Ops per second": 35028753.27, "ns per ops": 28.55, "Ops per threads": 2920635.0, "Ops per procs": 14603175.0, "Ops/sec/procs": 486510.46, "ns per ops/procs": 2055.45}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30002.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1382180172.0, "Ops per second": 46072672.0, "ns per ops": 21.0, "Ops per threads": 1919694.0, "Ops per procs": 9598473.0, "Ops/sec/procs": 319949.0, "ns per ops/procs": 3125.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30016.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7050525714.0, "Total blocks": 7050525714.0, "Ops per second": 234886992.04, "ns per ops": 4.26, "Ops per threads": 19584793.0, "Ops per procs": 97923968.0, "Ops/sec/procs": 3262319.33, "ns per ops/procs": 306.53}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30101.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 450176878.0, "Ops per second": 15005895.0, "ns per ops": 66.0, "Ops per threads": 5627210.0, "Ops per procs": 28136054.0, "Ops/sec/procs": 937868.0, "ns per ops/procs": 1069.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30052.903737, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1142046216.0, "Total blocks": 1142033868.0, "Ops per second": 38001193.69, "ns per ops": 26.31, "Ops per threads": 4758525.0, "Ops per procs": 23792629.0, "Ops/sec/procs": 791691.54, "ns per ops/procs": 1263.12}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 191531071.0, "Ops per second": 6384077.73, "ns per ops": 156.64, "Ops per threads": 19153107.0, "Ops per procs": 95765535.0, "Ops/sec/procs": 3192038.87, "ns per ops/procs": 313.28}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2105355501.0, "Ops per second": 70154497.65, "ns per ops": 14.25, "Ops per threads": 8772314.0, "Ops per procs": 43861572.0, "Ops/sec/procs": 1461552.03, "ns per ops/procs": 684.2}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30048.752476, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 202022803.0, "Total blocks": 202022800.0, "Ops per second": 6723167.73, "ns per ops": 148.74, "Ops per threads": 40404560.0, "Ops per procs": 202022803.0, "Ops/sec/procs": 6723167.73, "ns per ops/procs": 148.74}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30016.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2763633161.0, "Ops per second": 92121105.0, "ns per ops": 10.0, "Ops per threads": 2878784.0, "Ops per procs": 14393922.0, "Ops/sec/procs": 479797.0, "ns per ops/procs": 2085.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7783965572.0, "Total blocks": 7783965572.0, "Ops per second": 259426761.95, "ns per ops": 3.85, "Ops per threads": 16216594.0, "Ops per procs": 81082974.0, "Ops/sec/procs": 2702362.1, "ns per ops/procs": 370.05}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1516460185.0, "Ops per second": 50545556.95, "ns per ops": 19.78, "Ops per threads": 12637168.0, "Ops per procs": 63185841.0, "Ops/sec/procs": 2106064.87, "ns per ops/procs": 474.82}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 516993058.0, "Total blocks": 516993058.0, "Ops per second": 17219287.78, "ns per ops": 58.07, "Ops per threads": 25849652.0, "Ops per procs": 129248264.0, "Ops/sec/procs": 4304821.94, "ns per ops/procs": 232.3}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 163986792.0, "Ops per second": 5466226.0, "ns per ops": 183.0, "Ops per threads": 32797358.0, "Ops per procs": 163986792.0, "Ops/sec/procs": 5466226.0, "ns per ops/procs": 183.0}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 498139849.0, "Ops per second": 16603815.8, "ns per ops": 60.23, "Ops per threads": 12453496.0, "Ops per procs": 62267481.0, "Ops/sec/procs": 2075476.97, "ns per ops/procs": 481.82}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30006.707971, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1985944653.0, "Total blocks": 1985704021.0, "Ops per second": 66183356.57, "ns per ops": 15.11, "Ops per threads": 2068692.0, "Ops per procs": 10343461.0, "Ops/sec/procs": 344704.98, "ns per ops/procs": 2901.03}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2929429718.0, "Total blocks": 2929429718.0, "Ops per second": 97560885.15, "ns per ops": 10.25, "Ops per threads": 36617871.0, "Ops per procs": 183089357.0, "Ops/sec/procs": 6097555.32, "ns per ops/procs": 164.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30049.786723, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1134025534.0, "Total blocks": 1134012831.0, "Ops per second": 37738222.39, "ns per ops": 26.5, "Ops per threads": 4725106.0, "Ops per procs": 23625531.0, "Ops/sec/procs": 786212.97, "ns per ops/procs": 1271.92}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30094.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4505077893.0, "Ops per second": 149699117.58, "ns per ops": 6.68, "Ops per threads": 4692789.0, "Ops per procs": 23463947.0, "Ops/sec/procs": 779682.9, "ns per ops/procs": 1282.57}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30061.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 125343625.0, "Ops per second": 4178120.0, "ns per ops": 239.0, "Ops per threads": 12534362.0, "Ops per procs": 62671812.0, "Ops/sec/procs": 2089060.0, "ns per ops/procs": 479.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 311846606.0, "Total blocks": 311846596.0, "Ops per second": 10386741.86, "ns per ops": 96.28, "Ops per threads": 31184660.0, "Ops per procs": 155923303.0, "Ops/sec/procs": 5193370.93, "ns per ops/procs": 192.55}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30077.392517, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 619683282.0, "Total blocks": 619681377.0, "Ops per second": 20602958.91, "ns per ops": 48.54, "Ops per threads": 7746041.0, "Ops per procs": 38730205.0, "Ops/sec/procs": 1287684.93, "ns per ops/procs": 776.59}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 882139501.0, "Total blocks": 882139501.0, "Ops per second": 29382408.66, "ns per ops": 34.03, "Ops per threads": 22053487.0, "Ops per procs": 110267437.0, "Ops/sec/procs": 3672801.08, "ns per ops/procs": 272.27}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30076.538682, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 619673216.0, "Total blocks": 619671359.0, "Ops per second": 20603209.12, "ns per ops": 48.54, "Ops per threads": 7745915.0, "Ops per procs": 38729576.0, "Ops/sec/procs": 1287700.57, "ns per ops/procs": 776.58}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30100.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 491497581.0, "Ops per second": 16383252.0, "ns per ops": 61.0, "Ops per threads": 6143719.0, "Ops per procs": 30718598.0, "Ops/sec/procs": 1023953.0, "ns per ops/procs": 979.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30058.605664, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1333451788.0, "Total blocks": 1333399407.0, "Ops per second": 44361731.31, "ns per ops": 22.54, "Ops per threads": 2778024.0, "Ops per procs": 13890122.0, "Ops/sec/procs": 462101.37, "ns per ops/procs": 2164.03}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1091350109.0, "Ops per second": 36378336.0, "ns per ops": 27.0, "Ops per threads": 3031528.0, "Ops per procs": 15157640.0, "Ops/sec/procs": 505254.0, "ns per ops/procs": 1985.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30085.356174, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1138507616.0, "Total blocks": 1138494923.0, "Ops per second": 37842583.93, "ns per ops": 26.43, "Ops per threads": 4743781.0, "Ops per procs": 23718908.0, "Ops/sec/procs": 788387.17, "ns per ops/procs": 1268.41}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30001.620065, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 955104422.0, "Total blocks": 955084319.0, "Ops per second": 31835094.9, "ns per ops": 31.41, "Ops per threads": 2653067.0, "Ops per procs": 13265339.0, "Ops/sec/procs": 442154.1, "ns per ops/procs": 2261.65}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 492944664.0, "Ops per second": 16430674.19, "ns per ops": 60.86, "Ops per threads": 12323616.0, "Ops per procs": 61618083.0, "Ops/sec/procs": 2053834.27, "ns per ops/procs": 486.89}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4125421227.0, "Total blocks": 4125421227.0, "Ops per second": 137494445.32, "ns per ops": 7.27, "Ops per threads": 17189255.0, "Ops per procs": 85946275.0, "Ops/sec/procs": 2864467.61, "ns per ops/procs": 349.11}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2364501466.0, "Ops per second": 78816715.0, "ns per ops": 12.0, "Ops per threads": 4926044.0, "Ops per procs": 24630223.0, "Ops/sec/procs": 821007.0, "ns per ops/procs": 1221.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30064.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 124044845.0, "Ops per second": 4134828.0, "ns per ops": 242.0, "Ops per threads": 12404484.0, "Ops per procs": 62022422.0, "Ops/sec/procs": 2067414.0, "ns per ops/procs": 484.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2569472809.0, "Ops per second": 85649093.0, "ns per ops": 11.0, "Ops per threads": 2676534.0, "Ops per procs": 13382670.0, "Ops/sec/procs": 446089.0, "ns per ops/procs": 2249.0}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2104703757.0, "Ops per second": 70131970.9, "ns per ops": 14.26, "Ops per threads": 8769598.0, "Ops per procs": 43847994.0, "Ops/sec/procs": 1461082.73, "ns per ops/procs": 684.42}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30016.688249, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1042306555.0, "Total blocks": 1042289476.0, "Ops per second": 34724235.61, "ns per ops": 28.8, "Ops per threads": 2895295.0, "Ops per procs": 14476479.0, "Ops/sec/procs": 482281.05, "ns per ops/procs": 2073.48}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30078.460219, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 615110502.0, "Total blocks": 615108683.0, "Ops per second": 20450199.16, "ns per ops": 48.9, "Ops per threads": 7688881.0, "Ops per procs": 38444406.0, "Ops/sec/procs": 1278137.45, "ns per ops/procs": 782.39}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 504512966.0, "Ops per second": 16816242.41, "ns per ops": 59.47, "Ops per threads": 12612824.0, "Ops per procs": 63064120.0, "Ops/sec/procs": 2102030.3, "ns per ops/procs": 475.73}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30071.611483, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1615701248.0, "Total blocks": 1615581105.0, "Ops per second": 53728455.79, "ns per ops": 18.61, "Ops per threads": 2244029.0, "Ops per procs": 11220147.0, "Ops/sec/procs": 373114.28, "ns per ops/procs": 2680.14}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30002.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8679931297.0, "Total blocks": 8679931297.0, "Ops per second": 289304199.96, "ns per ops": 3.46, "Ops per threads": 24110920.0, "Ops per procs": 120554601.0, "Ops/sec/procs": 4018113.89, "ns per ops/procs": 248.87}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 170339074.0, "Ops per second": 5677731.17, "ns per ops": 176.13, "Ops per threads": 34067814.0, "Ops per procs": 170339074.0, "Ops/sec/procs": 5677731.17, "ns per ops/procs": 176.13}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9494126908.0, "Total blocks": 9494126908.0, "Ops per second": 316414414.8, "ns per ops": 3.16, "Ops per threads": 13186287.0, "Ops per procs": 65931436.0, "Ops/sec/procs": 2197322.32, "ns per ops/procs": 455.1}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 903354184.0, "Ops per second": 30110130.95, "ns per ops": 33.21, "Ops per threads": 11291927.0, "Ops per procs": 56459636.0, "Ops/sec/procs": 1881883.18, "ns per ops/procs": 531.38}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219416156.0, "Total blocks": 219416151.0, "Ops per second": 7308475.86, "ns per ops": 136.83, "Ops per threads": 43883231.0, "Ops per procs": 219416156.0, "Ops/sec/procs": 7308475.86, "ns per ops/procs": 136.83}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1240877300.0, "Ops per second": 41362576.0, "ns per ops": 24.0, "Ops per threads": 3446881.0, "Ops per procs": 17234406.0, "Ops/sec/procs": 574480.0, "ns per ops/procs": 1746.0}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2341963007.0, "Ops per second": 78056615.73, "ns per ops": 12.81, "Ops per threads": 6505452.0, "Ops per procs": 32527263.0, "Ops/sec/procs": 1084119.66, "ns per ops/procs": 922.41}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 163618536.0, "Ops per second": 5453951.0, "ns per ops": 183.0, "Ops per threads": 32723707.0, "Ops per procs": 163618536.0, "Ops/sec/procs": 5453951.0, "ns per ops/procs": 183.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30061.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 156694405.0, "Ops per second": 5223146.0, "ns per ops": 191.0, "Ops per threads": 7834720.0, "Ops per procs": 39173601.0, "Ops/sec/procs": 1305786.0, "ns per ops/procs": 767.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1886776952.0, "Total blocks": 1886776952.0, "Ops per second": 62836526.32, "ns per ops": 15.91, "Ops per threads": 23584711.0, "Ops per procs": 117923559.0, "Ops/sec/procs": 3927282.9, "ns per ops/procs": 254.63}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30052.626795, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 207641807.0, "Total blocks": 207641692.0, "Ops per second": 6909273.14, "ns per ops": 144.73, "Ops per threads": 20764180.0, "Ops per procs": 103820903.0, "Ops/sec/procs": 3454636.57, "ns per ops/procs": 289.47}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30023.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3192006383.0, "Ops per second": 106317786.56, "ns per ops": 9.41, "Ops per threads": 4433342.0, "Ops per procs": 22166710.0, "Ops/sec/procs": 738317.96, "ns per ops/procs": 1354.43}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30009.77936, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1021632522.0, "Total blocks": 1021602347.0, "Ops per second": 34043320.0, "ns per ops": 29.37, "Ops per threads": 2837868.0, "Ops per procs": 14189340.0, "Ops/sec/procs": 472823.89, "ns per ops/procs": 2114.95}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30003.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2851138545.0, "Total blocks": 2851138545.0, "Ops per second": 95027595.31, "ns per ops": 10.52, "Ops per threads": 23759487.0, "Ops per procs": 118797439.0, "Ops/sec/procs": 3959483.14, "ns per ops/procs": 252.56}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1184525496.0, "Ops per second": 39484183.0, "ns per ops": 25.0, "Ops per threads": 4935522.0, "Ops per procs": 24677614.0, "Ops/sec/procs": 822587.0, "ns per ops/procs": 1219.0}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 174801973.0, "Ops per second": 5826457.79, "ns per ops": 171.63, "Ops per threads": 17480197.0, "Ops per procs": 87400986.0, "Ops/sec/procs": 2913228.9, "ns per ops/procs": 343.26}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30010.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2215906506.0, "Ops per second": 73836983.78, "ns per ops": 13.54, "Ops per threads": 4616471.0, "Ops per procs": 23082359.0, "Ops/sec/procs": 769135.25, "ns per ops/procs": 1300.16}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 163634923.0, "Ops per second": 5454497.0, "ns per ops": 183.0, "Ops per threads": 32726984.0, "Ops per procs": 163634923.0, "Ops/sec/procs": 5454497.0, "ns per ops/procs": 183.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30084.89357, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1286445971.0, "Total blocks": 1286393062.0, "Ops per second": 42760529.23, "ns per ops": 23.39, "Ops per threads": 2680095.0, "Ops per procs": 13400478.0, "Ops/sec/procs": 445422.18, "ns per ops/procs": 2245.06}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30023.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 227086589.0, "Ops per second": 7569552.0, "ns per ops": 132.0, "Ops per threads": 5677164.0, "Ops per procs": 28385823.0, "Ops/sec/procs": 946194.0, "ns per ops/procs": 1057.0}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 484159721.0, "Ops per second": 16137861.21, "ns per ops": 61.97, "Ops per threads": 12103993.0, "Ops per procs": 60519965.0, "Ops/sec/procs": 2017232.65, "ns per ops/procs": 495.73}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2095980199.0, "Ops per second": 69842294.86, "ns per ops": 14.32, "Ops per threads": 8733250.0, "Ops per procs": 43666254.0, "Ops/sec/procs": 1455047.81, "ns per ops/procs": 687.26}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30051.381161, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 196494478.0, "Total blocks": 196494358.0, "Ops per second": 6538617.21, "ns per ops": 152.94, "Ops per threads": 19649447.0, "Ops per procs": 98247239.0, "Ops/sec/procs": 3269308.6, "ns per ops/procs": 305.88}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30004.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15153291514.0, "Total blocks": 15153291514.0, "Ops per second": 505026939.65, "ns per ops": 1.98, "Ops per threads": 15784678.0, "Ops per procs": 78923393.0, "Ops/sec/procs": 2630348.64, "ns per ops/procs": 380.18}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30004.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2722454869.0, "Total blocks": 2722454869.0, "Ops per second": 90734647.35, "ns per ops": 11.02, "Ops per threads": 22687123.0, "Ops per procs": 113435619.0, "Ops/sec/procs": 3780610.31, "ns per ops/procs": 264.51}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 897147322.0, "Ops per second": 29903287.16, "ns per ops": 33.44, "Ops per threads": 11214341.0, "Ops per procs": 56071707.0, "Ops/sec/procs": 1868955.45, "ns per ops/procs": 535.06}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 272854880.0, "Ops per second": 9094688.32, "ns per ops": 109.95, "Ops per threads": 13642744.0, "Ops per procs": 68213720.0, "Ops/sec/procs": 2273672.08, "ns per ops/procs": 439.82}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1028333242.0, "Total blocks": 1028333242.0, "Ops per second": 34251939.83, "ns per ops": 29.2, "Ops per threads": 25708331.0, "Ops per procs": 128541655.0, "Ops/sec/procs": 4281492.48, "ns per ops/procs": 233.56}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30050.577562, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 200561678.0, "Total blocks": 200561674.0, "Ops per second": 6674137.21, "ns per ops": 149.83, "Ops per threads": 40112335.0, "Ops per procs": 200561678.0, "Ops/sec/procs": 6674137.21, "ns per ops/procs": 149.83}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 320157293.0, "Total blocks": 320157283.0, "Ops per second": 10663572.36, "ns per ops": 93.78, "Ops per threads": 32015729.0, "Ops per procs": 160078646.0, "Ops/sec/procs": 5331786.18, "ns per ops/procs": 187.55}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30049.337186, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1287047838.0, "Total blocks": 1287003187.0, "Ops per second": 42831155.64, "ns per ops": 23.35, "Ops per threads": 2681349.0, "Ops per procs": 13406748.0, "Ops/sec/procs": 446157.87, "ns per ops/procs": 2241.36}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30039.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8689520917.0, "Total blocks": 8689520917.0, "Ops per second": 289269975.95, "ns per ops": 3.46, "Ops per threads": 24137558.0, "Ops per procs": 120687790.0, "Ops/sec/procs": 4017638.55, "ns per ops/procs": 248.9}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30099.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1637878133.0, "Ops per second": 54595937.0, "ns per ops": 18.0, "Ops per threads": 3412246.0, "Ops per procs": 17061230.0, "Ops/sec/procs": 568707.0, "ns per ops/procs": 1764.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30059.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 157245634.0, "Ops per second": 5241521.0, "ns per ops": 191.0, "Ops per threads": 7862281.0, "Ops per procs": 39311408.0, "Ops/sec/procs": 1310380.0, "ns per ops/procs": 764.0}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 866951956.0, "Ops per second": 28896836.72, "ns per ops": 34.61, "Ops per threads": 10836899.0, "Ops per procs": 54184497.0, "Ops/sec/procs": 1806052.29, "ns per ops/procs": 553.69}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 170399943.0, "Ops per second": 5679764.76, "ns per ops": 176.06, "Ops per threads": 34079988.0, "Ops per procs": 170399943.0, "Ops/sec/procs": 5679764.76, "ns per ops/procs": 176.06}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 503737240.0, "Ops per second": 16790371.86, "ns per ops": 59.56, "Ops per threads": 12593431.0, "Ops per procs": 62967155.0, "Ops/sec/procs": 2098796.48, "ns per ops/procs": 476.46}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30076.899969, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 609799779.0, "Total blocks": 609797914.0, "Ops per second": 20274688.54, "ns per ops": 49.32, "Ops per threads": 7622497.0, "Ops per procs": 38112486.0, "Ops/sec/procs": 1267168.03, "ns per ops/procs": 789.16}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1516740387.0, "Ops per second": 50558012.0, "ns per ops": 19.0, "Ops per threads": 3159875.0, "Ops per procs": 15799379.0, "Ops/sec/procs": 526645.0, "ns per ops/procs": 1904.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1048720004.0, "Ops per second": 34957333.0, "ns per ops": 28.0, "Ops per threads": 4369666.0, "Ops per procs": 21848333.0, "Ops/sec/procs": 728277.0, "ns per ops/procs": 1377.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1874637547.0, "Total blocks": 1874637547.0, "Ops per second": 62432246.83, "ns per ops": 16.02, "Ops per threads": 23432969.0, "Ops per procs": 117164846.0, "Ops/sec/procs": 3902015.43, "ns per ops/procs": 256.28}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2769618118.0, "Total blocks": 2769618118.0, "Ops per second": 92312732.9, "ns per ops": 10.83, "Ops per threads": 23080150.0, "Ops per procs": 115400754.0, "Ops/sec/procs": 3846363.87, "ns per ops/procs": 259.99}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30073.10486, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1668563995.0, "Total blocks": 1668444624.0, "Ops per second": 55483595.82, "ns per ops": 18.02, "Ops per threads": 2317449.0, "Ops per procs": 11587249.0, "Ops/sec/procs": 385302.75, "ns per ops/procs": 2595.36}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30050.011582, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 199723875.0, "Total blocks": 199723870.0, "Ops per second": 6646382.63, "ns per ops": 150.46, "Ops per threads": 39944775.0, "Ops per procs": 199723875.0, "Ops/sec/procs": 6646382.63, "ns per ops/procs": 150.46}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30085.282005, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1309236744.0, "Total blocks": 1309181028.0, "Ops per second": 43517516.1, "ns per ops": 22.98, "Ops per threads": 2727576.0, "Ops per procs": 13637882.0, "Ops/sec/procs": 453307.46, "ns per ops/procs": 2206.01}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7278605223.0, "Total blocks": 7278605222.0, "Ops per second": 242582812.85, "ns per ops": 4.12, "Ops per threads": 15163760.0, "Ops per procs": 75818804.0, "Ops/sec/procs": 2526904.3, "ns per ops/procs": 395.74}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30055.48068, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 261743223.0, "Total blocks": 261742828.0, "Ops per second": 8708668.67, "ns per ops": 114.83, "Ops per threads": 13087161.0, "Ops per procs": 65435805.0, "Ops/sec/procs": 2177167.17, "ns per ops/procs": 459.31}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30042.947765, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1957232019.0, "Total blocks": 1957044897.0, "Ops per second": 65147802.22, "ns per ops": 15.35, "Ops per threads": 2038783.0, "Ops per procs": 10193916.0, "Ops/sec/procs": 339311.47, "ns per ops/procs": 2947.14}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30051.846789, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 199788730.0, "Total blocks": 199788726.0, "Ops per second": 6648134.85, "ns per ops": 150.42, "Ops per threads": 39957746.0, "Ops per procs": 199788730.0, "Ops/sec/procs": 6648134.85, "ns per ops/procs": 150.42}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30065.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 124102496.0, "Ops per second": 4136749.0, "ns per ops": 242.0, "Ops per threads": 12410249.0, "Ops per procs": 62051248.0, "Ops/sec/procs": 2068374.0, "ns per ops/procs": 484.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30019.983151, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 696903407.0, "Total blocks": 696900032.0, "Ops per second": 23214650.17, "ns per ops": 43.08, "Ops per threads": 5807528.0, "Ops per procs": 29037641.0, "Ops/sec/procs": 967277.09, "ns per ops/procs": 1033.83}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30061.525481, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 391674308.0, "Total blocks": 391673635.0, "Ops per second": 13029089.57, "ns per ops": 76.75, "Ops per threads": 9791857.0, "Ops per procs": 48959288.0, "Ops/sec/procs": 1628636.2, "ns per ops/procs": 614.01}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30020.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1218824720.0, "Ops per second": 40627490.0, "ns per ops": 24.0, "Ops per threads": 1692812.0, "Ops per procs": 8464060.0, "Ops/sec/procs": 282135.0, "ns per ops/procs": 3546.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30015.080151, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1005825478.0, "Total blocks": 1005797742.0, "Ops per second": 33510671.07, "ns per ops": 29.84, "Ops per threads": 2793959.0, "Ops per procs": 13969798.0, "Ops/sec/procs": 465425.99, "ns per ops/procs": 2148.57}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 484290776.0, "Ops per second": 16142217.04, "ns per ops": 61.95, "Ops per threads": 12107269.0, "Ops per procs": 60536347.0, "Ops/sec/procs": 2017777.13, "ns per ops/procs": 495.59}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 437970265.0, "Total blocks": 437970260.0, "Ops per second": 14587558.77, "ns per ops": 68.55, "Ops per threads": 43797026.0, "Ops per procs": 218985132.0, "Ops/sec/procs": 7293779.38, "ns per ops/procs": 137.1}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30006.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8812602926.0, "Total blocks": 8812602925.0, "Ops per second": 293686822.03, "ns per ops": 3.4, "Ops per threads": 12239726.0, "Ops per procs": 61198631.0, "Ops/sec/procs": 2039491.82, "ns per ops/procs": 490.32}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30001.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4678325771.0, "Ops per second": 155934874.72, "ns per ops": 6.41, "Ops per threads": 4873256.0, "Ops per procs": 24366280.0, "Ops/sec/procs": 812160.81, "ns per ops/procs": 1231.28}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30030.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 229998557.0, "Ops per second": 7666618.0, "ns per ops": 130.0, "Ops per threads": 5749963.0, "Ops per procs": 28749819.0, "Ops/sec/procs": 958327.0, "ns per ops/procs": 1044.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219430025.0, "Total blocks": 219430020.0, "Ops per second": 7308940.2, "ns per ops": 136.82, "Ops per threads": 43886005.0, "Ops per procs": 219430025.0, "Ops/sec/procs": 7308940.2, "ns per ops/procs": 136.82}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 181249878.0, "Ops per second": 6041384.35, "ns per ops": 165.52, "Ops per threads": 18124987.0, "Ops per procs": 90624939.0, "Ops/sec/procs": 3020692.17, "ns per ops/procs": 331.05}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30039.23706, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1288371219.0, "Total blocks": 1288322203.0, "Ops per second": 42889611.89, "ns per ops": 23.32, "Ops per threads": 2684106.0, "Ops per procs": 13420533.0, "Ops/sec/procs": 446766.79, "ns per ops/procs": 2238.3}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 694249921.0, "Ops per second": 23141664.0, "ns per ops": 43.0, "Ops per threads": 5785416.0, "Ops per procs": 28927080.0, "Ops/sec/procs": 964236.0, "ns per ops/procs": 1040.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30072.857744, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1074127037.0, "Total blocks": 1074101741.0, "Ops per second": 35717491.37, "ns per ops": 28.0, "Ops per threads": 2983686.0, "Ops per procs": 14918431.0, "Ops/sec/procs": 496076.27, "ns per ops/procs": 2015.82}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 897242190.0, "Total blocks": 897242190.0, "Ops per second": 29885164.36, "ns per ops": 33.46, "Ops per threads": 22431054.0, "Ops per procs": 112155273.0, "Ops/sec/procs": 3735645.54, "ns per ops/procs": 267.69}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30055.556765, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 262732416.0, "Total blocks": 262732011.0, "Ops per second": 8741558.78, "ns per ops": 114.4, "Ops per threads": 13136620.0, "Ops per procs": 65683104.0, "Ops/sec/procs": 2185389.69, "ns per ops/procs": 457.58}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 163762028.0, "Ops per second": 5458734.0, "ns per ops": 183.0, "Ops per threads": 32752405.0, "Ops per procs": 163762028.0, "Ops/sec/procs": 5458734.0, "ns per ops/procs": 183.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1161840704.0, "Ops per second": 38728023.0, "ns per ops": 25.0, "Ops per threads": 4841002.0, "Ops per procs": 24205014.0, "Ops/sec/procs": 806833.0, "ns per ops/procs": 1243.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1187236719.0, "Ops per second": 39574557.0, "ns per ops": 25.0, "Ops per threads": 3297879.0, "Ops per procs": 16489398.0, "Ops/sec/procs": 549646.0, "ns per ops/procs": 1825.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30026.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 314925634.0, "Total blocks": 314925629.0, "Ops per second": 10488362.89, "ns per ops": 95.34, "Ops per threads": 31492563.0, "Ops per procs": 157462817.0, "Ops/sec/procs": 5244181.44, "ns per ops/procs": 190.69}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1269270520.0, "Ops per second": 42309017.0, "ns per ops": 23.0, "Ops per threads": 3525751.0, "Ops per procs": 17628757.0, "Ops/sec/procs": 587625.0, "ns per ops/procs": 1707.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30010.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7930618702.0, "Total blocks": 7930618702.0, "Ops per second": 264264051.16, "ns per ops": 3.78, "Ops per threads": 16522122.0, "Ops per procs": 82610611.0, "Ops/sec/procs": 2752750.53, "ns per ops/procs": 363.27}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 961588888.0, "Total blocks": 961588888.0, "Ops per second": 32028884.59, "ns per ops": 31.22, "Ops per threads": 24039722.0, "Ops per procs": 120198611.0, "Ops/sec/procs": 4003610.57, "ns per ops/procs": 249.77}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 164073328.0, "Ops per second": 5469110.0, "ns per ops": 183.0, "Ops per threads": 32814665.0, "Ops per procs": 164073328.0, "Ops/sec/procs": 5469110.0, "ns per ops/procs": 183.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30005.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6918538200.0, "Total blocks": 6918538200.0, "Ops per second": 230573352.83, "ns per ops": 4.34, "Ops per threads": 19218161.0, "Ops per procs": 96090808.0, "Ops/sec/procs": 3202407.68, "ns per ops/procs": 312.27}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30010.200079, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1020338910.0, "Total blocks": 1020311568.0, "Ops per second": 33999737.0, "ns per ops": 29.41, "Ops per threads": 2834274.0, "Ops per procs": 14171373.0, "Ops/sec/procs": 472218.57, "ns per ops/procs": 2117.66}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 170875680.0, "Ops per second": 5695616.98, "ns per ops": 175.57, "Ops per threads": 34175136.0, "Ops per procs": 170875680.0, "Ops/sec/procs": 5695616.98, "ns per ops/procs": 175.57}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 170371945.0, "Ops per second": 5678829.37, "ns per ops": 176.09, "Ops per threads": 34074389.0, "Ops per procs": 170371945.0, "Ops/sec/procs": 5678829.37, "ns per ops/procs": 176.09}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8948788453.0, "Total blocks": 8948788453.0, "Ops per second": 298254598.52, "ns per ops": 3.35, "Ops per threads": 24857745.0, "Ops per procs": 124288728.0, "Ops/sec/procs": 4142424.98, "ns per ops/procs": 241.4}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3898235587.0, "Total blocks": 3898235587.0, "Ops per second": 129930241.11, "ns per ops": 7.7, "Ops per threads": 32485296.0, "Ops per procs": 162426482.0, "Ops/sec/procs": 5413760.05, "ns per ops/procs": 184.71}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30051.959989, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 198520646.0, "Total blocks": 198520540.0, "Ops per second": 6605913.43, "ns per ops": 151.38, "Ops per threads": 19852064.0, "Ops per procs": 99260323.0, "Ops/sec/procs": 3302956.71, "ns per ops/procs": 302.76}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30061.141635, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 391212651.0, "Total blocks": 391212028.0, "Ops per second": 13013898.67, "ns per ops": 76.84, "Ops per threads": 9780316.0, "Ops per procs": 48901581.0, "Ops/sec/procs": 1626737.33, "ns per ops/procs": 614.73}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219462118.0, "Total blocks": 219462113.0, "Ops per second": 7310005.41, "ns per ops": 136.8, "Ops per threads": 43892423.0, "Ops per procs": 219462118.0, "Ops/sec/procs": 7310005.41, "ns per ops/procs": 136.8}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4091075635.0, "Total blocks": 4091075635.0, "Ops per second": 136349582.25, "ns per ops": 7.33, "Ops per threads": 17046148.0, "Ops per procs": 85230742.0, "Ops/sec/procs": 2840616.3, "ns per ops/procs": 352.04}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4130565688.0, "Total blocks": 4130565688.0, "Ops per second": 137665077.46, "ns per ops": 7.26, "Ops per threads": 17210690.0, "Ops per procs": 86053451.0, "Ops/sec/procs": 2868022.45, "ns per ops/procs": 348.67}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 484843550.0, "Ops per second": 16160636.75, "ns per ops": 61.88, "Ops per threads": 12121088.0, "Ops per procs": 60605443.0, "Ops/sec/procs": 2020079.59, "ns per ops/procs": 495.03}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1057341368.0, "Ops per second": 35244712.0, "ns per ops": 28.0, "Ops per threads": 4405589.0, "Ops per procs": 22027945.0, "Ops/sec/procs": 734264.0, "ns per ops/procs": 1366.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30055.932904, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 259416488.0, "Total blocks": 259416141.0, "Ops per second": 8631124.14, "ns per ops": 115.86, "Ops per threads": 12970824.0, "Ops per procs": 64854122.0, "Ops/sec/procs": 2157781.03, "ns per ops/procs": 463.44}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 162480964.0, "Ops per second": 5415785.3, "ns per ops": 184.65, "Ops per threads": 16248096.0, "Ops per procs": 81240482.0, "Ops/sec/procs": 2707892.65, "ns per ops/procs": 369.29}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2857586854.0, "Total blocks": 2857586854.0, "Ops per second": 95243953.63, "ns per ops": 10.5, "Ops per threads": 23813223.0, "Ops per procs": 119066118.0, "Ops/sec/procs": 3968498.07, "ns per ops/procs": 251.98}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30021.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 227486564.0, "Ops per second": 7582885.0, "ns per ops": 131.0, "Ops per threads": 5687164.0, "Ops per procs": 28435820.0, "Ops/sec/procs": 947860.0, "ns per ops/procs": 1055.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30020.299113, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 711017078.0, "Total blocks": 711013311.0, "Ops per second": 23684543.43, "ns per ops": 42.22, "Ops per threads": 5925142.0, "Ops per procs": 29625711.0, "Ops/sec/procs": 986855.98, "ns per ops/procs": 1013.32}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 318525342.0, "Total blocks": 318525332.0, "Ops per second": 10609082.28, "ns per ops": 94.26, "Ops per threads": 31852534.0, "Ops per procs": 159262671.0, "Ops/sec/procs": 5304541.14, "ns per ops/procs": 188.52}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1058996282.0, "Ops per second": 35299876.0, "ns per ops": 28.0, "Ops per threads": 4412484.0, "Ops per procs": 22062422.0, "Ops/sec/procs": 735414.0, "ns per ops/procs": 1364.0}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30021.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2225569124.0, "Ops per second": 74133727.0, "ns per ops": 13.49, "Ops per threads": 4636602.0, "Ops per procs": 23183011.0, "Ops/sec/procs": 772226.32, "ns per ops/procs": 1294.96}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30010.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6902308353.0, "Total blocks": 6902308353.0, "Ops per second": 229996934.52, "ns per ops": 4.35, "Ops per threads": 19173078.0, "Ops per procs": 95865393.0, "Ops/sec/procs": 3194401.87, "ns per ops/procs": 313.05}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30059.807761, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 389271455.0, "Total blocks": 389270792.0, "Ops per second": 12949898.35, "ns per ops": 77.22, "Ops per threads": 9731786.0, "Ops per procs": 48658931.0, "Ops/sec/procs": 1618737.29, "ns per ops/procs": 617.77}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30011.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2290844526.0, "Ops per second": 76333243.79, "ns per ops": 13.1, "Ops per threads": 4772592.0, "Ops per procs": 23862963.0, "Ops/sec/procs": 795137.96, "ns per ops/procs": 1257.64}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 169231118.0, "Ops per second": 5640804.51, "ns per ops": 177.28, "Ops per threads": 33846223.0, "Ops per procs": 169231118.0, "Ops/sec/procs": 5640804.51, "ns per ops/procs": 177.28}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30021.17524, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1298650357.0, "Total blocks": 1298595563.0, "Ops per second": 43257812.08, "ns per ops": 23.12, "Ops per threads": 2705521.0, "Ops per procs": 13527607.0, "Ops/sec/procs": 450602.21, "ns per ops/procs": 2219.25}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30052.510549, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 259339339.0, "Total blocks": 259338987.0, "Ops per second": 8629539.9, "ns per ops": 115.88, "Ops per threads": 12966966.0, "Ops per procs": 64834834.0, "Ops/sec/procs": 2157384.98, "ns per ops/procs": 463.52}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30061.231688, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 389706412.0, "Total blocks": 389705799.0, "Ops per second": 12963753.98, "ns per ops": 77.14, "Ops per threads": 9742660.0, "Ops per procs": 48713301.0, "Ops/sec/procs": 1620469.25, "ns per ops/procs": 617.11}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1514267828.0, "Ops per second": 50472490.02, "ns per ops": 19.81, "Ops per threads": 12618898.0, "Ops per procs": 63094492.0, "Ops/sec/procs": 2103020.42, "ns per ops/procs": 475.51}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30051.763322, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 208893404.0, "Total blocks": 208893301.0, "Ops per second": 6951119.7, "ns per ops": 143.86, "Ops per threads": 20889340.0, "Ops per procs": 104446702.0, "Ops/sec/procs": 3475559.85, "ns per ops/procs": 287.72}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1762404242.0, "Ops per second": 58746808.0, "ns per ops": 17.0, "Ops per threads": 3671675.0, "Ops per procs": 18358377.0, "Ops/sec/procs": 611945.0, "ns per ops/procs": 1639.0}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30041.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4721073543.0, "Ops per second": 157150386.37, "ns per ops": 6.36, "Ops per threads": 4917784.0, "Ops per procs": 24588924.0, "Ops/sec/procs": 818491.6, "ns per ops/procs": 1221.76}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1863241695.0, "Total blocks": 1863241695.0, "Ops per second": 62052604.21, "ns per ops": 16.12, "Ops per threads": 23290521.0, "Ops per procs": 116452605.0, "Ops/sec/procs": 3878287.76, "ns per ops/procs": 257.85}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30030.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1455382509.0, "Ops per second": 48512750.0, "ns per ops": 20.0, "Ops per threads": 3032046.0, "Ops per procs": 15160234.0, "Ops/sec/procs": 505341.0, "ns per ops/procs": 1980.0}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30030.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3300598875.0, "Ops per second": 109909393.33, "ns per ops": 9.1, "Ops per threads": 4584165.0, "Ops per procs": 22920825.0, "Ops/sec/procs": 763259.68, "ns per ops/procs": 1310.17}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30068.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3439143977.0, "Ops per second": 114377437.41, "ns per ops": 8.74, "Ops per threads": 4776588.0, "Ops per procs": 23882944.0, "Ops/sec/procs": 794287.76, "ns per ops/procs": 1258.99}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30064.267084, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1956872315.0, "Total blocks": 1956671201.0, "Ops per second": 65089639.79, "ns per ops": 15.36, "Ops per threads": 2038408.0, "Ops per procs": 10192043.0, "Ops/sec/procs": 339008.54, "ns per ops/procs": 2949.78}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30021.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219165422.0, "Total blocks": 219165417.0, "Ops per second": 7300217.93, "ns per ops": 136.98, "Ops per threads": 43833084.0, "Ops per procs": 219165422.0, "Ops/sec/procs": 7300217.93, "ns per ops/procs": 136.98}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2851473001.0, "Total blocks": 2851473001.0, "Ops per second": 95040165.97, "ns per ops": 10.52, "Ops per threads": 23762275.0, "Ops per procs": 118811375.0, "Ops/sec/procs": 3960006.92, "ns per ops/procs": 252.52}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1062295270.0, "Ops per second": 35409842.0, "ns per ops": 28.0, "Ops per threads": 2950820.0, "Ops per procs": 14754100.0, "Ops/sec/procs": 491803.0, "ns per ops/procs": 2039.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30050.12165, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 203453260.0, "Total blocks": 203453256.0, "Ops per second": 6770463.77, "ns per ops": 147.7, "Ops per threads": 40690652.0, "Ops per procs": 203453260.0, "Ops/sec/procs": 6770463.77, "ns per ops/procs": 147.7}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30008.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9105285783.0, "Total blocks": 9105285782.0, "Ops per second": 303424221.83, "ns per ops": 3.3, "Ops per threads": 12646230.0, "Ops per procs": 63231151.0, "Ops/sec/procs": 2107112.65, "ns per ops/procs": 474.58}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 170298799.0, "Ops per second": 5676390.52, "ns per ops": 176.17, "Ops per threads": 34059759.0, "Ops per procs": 170298799.0, "Ops/sec/procs": 5676390.52, "ns per ops/procs": 176.17}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 163851750.0, "Ops per second": 5461725.0, "ns per ops": 183.0, "Ops per threads": 32770350.0, "Ops per procs": 163851750.0, "Ops/sec/procs": 5461725.0, "ns per ops/procs": 183.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30004.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9422383139.0, "Total blocks": 9422383139.0, "Ops per second": 314030774.38, "ns per ops": 3.18, "Ops per threads": 13086643.0, "Ops per procs": 65433216.0, "Ops/sec/procs": 2180769.27, "ns per ops/procs": 458.55}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30098.972305, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1637473541.0, "Total blocks": 1637369683.0, "Ops per second": 54402971.78, "ns per ops": 18.38, "Ops per threads": 2274268.0, "Ops per procs": 11371344.0, "Ops/sec/procs": 377798.42, "ns per ops/procs": 2646.91}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30061.467699, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 387675449.0, "Total blocks": 387674798.0, "Ops per second": 12896091.86, "ns per ops": 77.54, "Ops per threads": 9691886.0, "Ops per procs": 48459431.0, "Ops/sec/procs": 1612011.48, "ns per ops/procs": 620.34}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10037817889.0, "Total blocks": 10037817888.0, "Ops per second": 334538378.62, "ns per ops": 2.99, "Ops per threads": 20912120.0, "Ops per procs": 104560603.0, "Ops/sec/procs": 3484774.78, "ns per ops/procs": 286.96}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30021.190418, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 702167569.0, "Total blocks": 702163349.0, "Ops per second": 23389064.83, "ns per ops": 42.76, "Ops per threads": 5851396.0, "Ops per procs": 29256982.0, "Ops/sec/procs": 974544.37, "ns per ops/procs": 1026.12}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8496788974.0, "Total blocks": 8496788974.0, "Ops per second": 283176799.4, "ns per ops": 3.53, "Ops per threads": 11801095.0, "Ops per procs": 59005478.0, "Ops/sec/procs": 1966505.55, "ns per ops/procs": 508.52}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30047.090768, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1134816175.0, "Total blocks": 1134804492.0, "Ops per second": 37767921.82, "ns per ops": 26.48, "Ops per threads": 4728400.0, "Ops per procs": 23642003.0, "Ops/sec/procs": 786831.7, "ns per ops/procs": 1270.92}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30049.618723, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 203439243.0, "Total blocks": 203439242.0, "Ops per second": 6770110.63, "ns per ops": 147.71, "Ops per threads": 40687848.0, "Ops per procs": 203439243.0, "Ops/sec/procs": 6770110.63, "ns per ops/procs": 147.71}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1358385548.0, "Total blocks": 1358385548.0, "Ops per second": 45245332.94, "ns per ops": 22.1, "Ops per threads": 33959638.0, "Ops per procs": 169798193.0, "Ops/sec/procs": 5655666.62, "ns per ops/procs": 176.81}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30004.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15344820146.0, "Total blocks": 15344820144.0, "Ops per second": 511410097.18, "ns per ops": 1.96, "Ops per threads": 15984187.0, "Ops per procs": 79920938.0, "Ops/sec/procs": 2663594.26, "ns per ops/procs": 375.43}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219445996.0, "Total blocks": 219445991.0, "Ops per second": 7309377.53, "ns per ops": 136.81, "Ops per threads": 43889199.0, "Ops per procs": 219445996.0, "Ops/sec/procs": 7309377.53, "ns per ops/procs": 136.81}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30003.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4045772537.0, "Total blocks": 4045772537.0, "Ops per second": 134842487.28, "ns per ops": 7.42, "Ops per threads": 16857385.0, "Ops per procs": 84286927.0, "Ops/sec/procs": 2809218.48, "ns per ops/procs": 355.97}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30007.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8986109983.0, "Total blocks": 8986109980.0, "Ops per second": 299458790.31, "ns per ops": 3.34, "Ops per threads": 12480708.0, "Ops per procs": 62403541.0, "Ops/sec/procs": 2079574.93, "ns per ops/procs": 480.87}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 280593909.0, "Ops per second": 9352656.08, "ns per ops": 106.92, "Ops per threads": 14029695.0, "Ops per procs": 70148477.0, "Ops/sec/procs": 2338164.02, "ns per ops/procs": 427.69}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30065.718618, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1622847601.0, "Total blocks": 1622758577.0, "Ops per second": 53976677.61, "ns per ops": 18.53, "Ops per threads": 2253955.0, "Ops per procs": 11269775.0, "Ops/sec/procs": 374838.04, "ns per ops/procs": 2667.82}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30034.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8323411624.0, "Total blocks": 8323411615.0, "Ops per second": 277125847.28, "ns per ops": 3.61, "Ops per threads": 11560293.0, "Ops per procs": 57801469.0, "Ops/sec/procs": 1924485.05, "ns per ops/procs": 519.62}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2870175445.0, "Total blocks": 2870175445.0, "Ops per second": 95663784.36, "ns per ops": 10.45, "Ops per threads": 23918128.0, "Ops per procs": 119590643.0, "Ops/sec/procs": 3985991.02, "ns per ops/procs": 250.88}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30084.205153, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1082237469.0, "Total blocks": 1082203325.0, "Ops per second": 35973610.19, "ns per ops": 27.8, "Ops per threads": 3006215.0, "Ops per procs": 15031075.0, "Ops/sec/procs": 499633.47, "ns per ops/procs": 2001.47}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30037.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10980191432.0, "Total blocks": 10980191421.0, "Ops per second": 365545710.36, "ns per ops": 2.74, "Ops per threads": 15250265.0, "Ops per procs": 76251329.0, "Ops/sec/procs": 2538511.88, "ns per ops/procs": 393.93}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6879631835.0, "Total blocks": 6879631835.0, "Ops per second": 229291584.98, "ns per ops": 4.36, "Ops per threads": 19110088.0, "Ops per procs": 95550442.0, "Ops/sec/procs": 3184605.35, "ns per ops/procs": 314.01}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30021.043588, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 719499338.0, "Total blocks": 719495463.0, "Ops per second": 23966499.9, "ns per ops": 41.72, "Ops per threads": 5995827.0, "Ops per procs": 29979139.0, "Ops/sec/procs": 998604.16, "ns per ops/procs": 1001.4}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30003.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4031751310.0, "Total blocks": 4031751310.0, "Ops per second": 134375766.79, "ns per ops": 7.44, "Ops per threads": 16798963.0, "Ops per procs": 83994818.0, "Ops/sec/procs": 2799495.14, "ns per ops/procs": 357.21}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30063.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 145230267.0, "Ops per second": 4841008.0, "ns per ops": 207.0, "Ops per threads": 7261513.0, "Ops per procs": 36307566.0, "Ops/sec/procs": 1210252.0, "ns per ops/procs": 828.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219457155.0, "Total blocks": 219457150.0, "Ops per second": 7309852.42, "ns per ops": 136.8, "Ops per threads": 43891431.0, "Ops per procs": 219457155.0, "Ops/sec/procs": 7309852.42, "ns per ops/procs": 136.8}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3974525491.0, "Total blocks": 3974525491.0, "Ops per second": 132450393.15, "ns per ops": 7.55, "Ops per threads": 33121045.0, "Ops per procs": 165605228.0, "Ops/sec/procs": 5518766.38, "ns per ops/procs": 181.2}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4062749934.0, "Total blocks": 4062749934.0, "Ops per second": 135405350.7, "ns per ops": 7.39, "Ops per threads": 16928124.0, "Ops per procs": 84640623.0, "Ops/sec/procs": 2820944.81, "ns per ops/procs": 354.49}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30060.56569, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 385642867.0, "Total blocks": 385642241.0, "Ops per second": 12828862.6, "ns per ops": 77.95, "Ops per threads": 9641071.0, "Ops per procs": 48205358.0, "Ops/sec/procs": 1603607.83, "ns per ops/procs": 623.59}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 263137218.0, "Ops per second": 8770801.2, "ns per ops": 114.01, "Ops per threads": 13156860.0, "Ops per procs": 65784304.0, "Ops/sec/procs": 2192700.3, "ns per ops/procs": 456.06}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30020.96541, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 715320658.0, "Total blocks": 715316739.0, "Ops per second": 23827370.25, "ns per ops": 41.97, "Ops per threads": 5961005.0, "Ops per procs": 29805027.0, "Ops/sec/procs": 992807.09, "ns per ops/procs": 1007.25}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7806859720.0, "Total blocks": 7806859717.0, "Ops per second": 260186612.81, "ns per ops": 3.84, "Ops per threads": 16264291.0, "Ops per procs": 81321455.0, "Ops/sec/procs": 2710277.22, "ns per ops/procs": 368.97}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30048.294209, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 202208749.0, "Total blocks": 202208746.0, "Ops per second": 6729458.5, "ns per ops": 148.6, "Ops per threads": 40441749.0, "Ops per procs": 202208749.0, "Ops/sec/procs": 6729458.5, "ns per ops/procs": 148.6}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30065.286283, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1948341406.0, "Total blocks": 1948145075.0, "Ops per second": 64803687.14, "ns per ops": 15.43, "Ops per threads": 2029522.0, "Ops per procs": 10147611.0, "Ops/sec/procs": 337519.2, "ns per ops/procs": 2962.79}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1035514230.0, "Ops per second": 34517141.0, "ns per ops": 29.0, "Ops per threads": 4314642.0, "Ops per procs": 21573213.0, "Ops/sec/procs": 719107.0, "ns per ops/procs": 1395.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30000.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1642785204.0, "Ops per second": 54759506.0, "ns per ops": 18.0, "Ops per threads": 3422469.0, "Ops per procs": 17112345.0, "Ops/sec/procs": 570411.0, "ns per ops/procs": 1753.0}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30011.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2316831806.0, "Ops per second": 77198067.12, "ns per ops": 12.95, "Ops per threads": 6435643.0, "Ops per procs": 32178219.0, "Ops/sec/procs": 1072195.38, "ns per ops/procs": 932.67}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30052.201613, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219458394.0, "Total blocks": 219458294.0, "Ops per second": 7302572.93, "ns per ops": 136.94, "Ops per threads": 21945839.0, "Ops per procs": 109729197.0, "Ops/sec/procs": 3651286.47, "ns per ops/procs": 273.88}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30054.552502, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 263023386.0, "Total blocks": 263022980.0, "Ops per second": 8751532.27, "ns per ops": 114.27, "Ops per threads": 13151169.0, "Ops per procs": 65755846.0, "Ops/sec/procs": 2187883.07, "ns per ops/procs": 457.06}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 887434104.0, "Ops per second": 29579514.58, "ns per ops": 33.81, "Ops per threads": 11092926.0, "Ops per procs": 55464631.0, "Ops/sec/procs": 1848719.66, "ns per ops/procs": 540.91}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30017.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2208566284.0, "Ops per second": 73576821.12, "ns per ops": 13.59, "Ops per threads": 4601179.0, "Ops per procs": 23005898.0, "Ops/sec/procs": 766425.22, "ns per ops/procs": 1304.76}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219400560.0, "Total blocks": 219400555.0, "Ops per second": 7307918.23, "ns per ops": 136.84, "Ops per threads": 43880112.0, "Ops per procs": 219400560.0, "Ops/sec/procs": 7307918.23, "ns per ops/procs": 136.84}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 278824124.0, "Ops per second": 9293676.5, "ns per ops": 107.6, "Ops per threads": 13941206.0, "Ops per procs": 69706031.0, "Ops/sec/procs": 2323419.13, "ns per ops/procs": 430.4}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2467394548.0, "Total blocks": 2467394548.0, "Ops per second": 82173276.76, "ns per ops": 12.17, "Ops per threads": 30842431.0, "Ops per procs": 154212159.0, "Ops/sec/procs": 5135829.8, "ns per ops/procs": 194.71}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30074.965558, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 618485823.0, "Total blocks": 618483934.0, "Ops per second": 20564805.7, "ns per ops": 48.63, "Ops per threads": 7731072.0, "Ops per procs": 38655363.0, "Ops/sec/procs": 1285300.36, "ns per ops/procs": 778.03}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 163618544.0, "Ops per second": 5453951.0, "ns per ops": 183.0, "Ops per threads": 32723708.0, "Ops per procs": 163618544.0, "Ops/sec/procs": 5453951.0, "ns per ops/procs": 183.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 983219900.0, "Ops per second": 32773996.0, "ns per ops": 30.0, "Ops per threads": 4096749.0, "Ops per procs": 20483747.0, "Ops/sec/procs": 682791.0, "ns per ops/procs": 1469.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30021.598307, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1952330982.0, "Total blocks": 1952122705.0, "Ops per second": 65030880.84, "ns per ops": 15.38, "Ops per threads": 2033678.0, "Ops per procs": 10168390.0, "Ops/sec/procs": 338702.5, "ns per ops/procs": 2952.44}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30076.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4675330883.0, "Ops per second": 155449948.61, "ns per ops": 6.43, "Ops per threads": 4870136.0, "Ops per procs": 24350681.0, "Ops/sec/procs": 809635.15, "ns per ops/procs": 1235.12}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 747663677.0, "Ops per second": 24922122.0, "ns per ops": 40.0, "Ops per threads": 2076843.0, "Ops per procs": 10384217.0, "Ops/sec/procs": 346140.0, "ns per ops/procs": 2898.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1708910175.0, "Ops per second": 56963672.0, "ns per ops": 17.0, "Ops per threads": 1780114.0, "Ops per procs": 8900573.0, "Ops/sec/procs": 296685.0, "ns per ops/procs": 3381.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 317990414.0, "Total blocks": 317990404.0, "Ops per second": 10591389.06, "ns per ops": 94.42, "Ops per threads": 31799041.0, "Ops per procs": 158995207.0, "Ops/sec/procs": 5295694.53, "ns per ops/procs": 188.83}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30061.269843, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1968352511.0, "Total blocks": 1968125519.0, "Ops per second": 65478022.76, "ns per ops": 15.27, "Ops per threads": 2050367.0, "Ops per procs": 10251835.0, "Ops/sec/procs": 341031.37, "ns per ops/procs": 2932.28}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30077.104651, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 613345249.0, "Total blocks": 613343241.0, "Ops per second": 20392429.93, "ns per ops": 49.04, "Ops per threads": 7666815.0, "Ops per procs": 38334078.0, "Ops/sec/procs": 1274526.87, "ns per ops/procs": 784.6}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30039.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4721227995.0, "Ops per second": 157167628.56, "ns per ops": 6.36, "Ops per threads": 4917945.0, "Ops per procs": 24589729.0, "Ops/sec/procs": 818581.4, "ns per ops/procs": 1221.63}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30004.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1161299664.0, "Ops per second": 38709988.0, "ns per ops": 25.0, "Ops per threads": 1612916.0, "Ops per procs": 8064581.0, "Ops/sec/procs": 268819.0, "ns per ops/procs": 3720.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30053.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 127510283.0, "Ops per second": 4250342.0, "ns per ops": 235.0, "Ops per threads": 12751028.0, "Ops per procs": 63755141.0, "Ops/sec/procs": 2125171.0, "ns per ops/procs": 471.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30020.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1907332468.0, "Ops per second": 63577748.0, "ns per ops": 15.0, "Ops per threads": 2649072.0, "Ops per procs": 13245364.0, "Ops/sec/procs": 441512.0, "ns per ops/procs": 2266.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30007.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15257076115.0, "Total blocks": 15257076114.0, "Ops per second": 508439690.7, "ns per ops": 1.97, "Ops per threads": 15892787.0, "Ops per procs": 79463938.0, "Ops/sec/procs": 2648123.39, "ns per ops/procs": 377.63}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1135649654.0, "Total blocks": 1135649654.0, "Ops per second": 37824273.51, "ns per ops": 26.44, "Ops per threads": 28391241.0, "Ops per procs": 141956206.0, "Ops/sec/procs": 4728034.19, "ns per ops/procs": 211.5}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30016.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1694643345.0, "Ops per second": 56488111.0, "ns per ops": 17.0, "Ops per threads": 1765253.0, "Ops per procs": 8826267.0, "Ops/sec/procs": 294208.0, "ns per ops/procs": 3400.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30023.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219099397.0, "Total blocks": 219099392.0, "Ops per second": 7297543.16, "ns per ops": 137.03, "Ops per threads": 43819879.0, "Ops per procs": 219099397.0, "Ops/sec/procs": 7297543.16, "ns per ops/procs": 137.03}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30046.060274, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1129547583.0, "Total blocks": 1129535051.0, "Ops per second": 37593866.64, "ns per ops": 26.6, "Ops per threads": 4706448.0, "Ops per procs": 23532241.0, "Ops/sec/procs": 783205.56, "ns per ops/procs": 1276.8}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30039.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 158942896.0, "Ops per second": 5298096.0, "ns per ops": 188.0, "Ops per threads": 7947144.0, "Ops per procs": 39735724.0, "Ops/sec/procs": 1324524.0, "ns per ops/procs": 755.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30089.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15236894327.0, "Total blocks": 15236894326.0, "Ops per second": 506386811.56, "ns per ops": 1.97, "Ops per threads": 15871764.0, "Ops per procs": 79358824.0, "Ops/sec/procs": 2637431.31, "ns per ops/procs": 379.16}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 760890080.0, "Total blocks": 760890080.0, "Ops per second": 25342641.52, "ns per ops": 39.46, "Ops per threads": 38044504.0, "Ops per procs": 190222520.0, "Ops/sec/procs": 6335660.38, "ns per ops/procs": 157.84}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1528301627.0, "Ops per second": 50943387.0, "ns per ops": 19.0, "Ops per threads": 3183961.0, "Ops per procs": 15919808.0, "Ops/sec/procs": 530660.0, "ns per ops/procs": 1890.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15770868034.0, "Total blocks": 15770868033.0, "Ops per second": 525603056.0, "ns per ops": 1.9, "Ops per threads": 16427987.0, "Ops per procs": 82139937.0, "Ops/sec/procs": 2737515.92, "ns per ops/procs": 365.29}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 265041436.0, "Ops per second": 8834270.16, "ns per ops": 113.2, "Ops per threads": 13252071.0, "Ops per procs": 66260359.0, "Ops/sec/procs": 2208567.54, "ns per ops/procs": 452.78}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30020.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 239519481.0, "Ops per second": 7983982.0, "ns per ops": 125.0, "Ops per threads": 5987987.0, "Ops per procs": 29939935.0, "Ops/sec/procs": 997997.0, "ns per ops/procs": 1002.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30099.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 487681117.0, "Ops per second": 16256037.0, "ns per ops": 61.0, "Ops per threads": 6096013.0, "Ops per procs": 30480069.0, "Ops/sec/procs": 1016002.0, "ns per ops/procs": 987.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2864800492.0, "Total blocks": 2864800492.0, "Ops per second": 95484382.85, "ns per ops": 10.47, "Ops per threads": 23873337.0, "Ops per procs": 119366687.0, "Ops/sec/procs": 3978515.95, "ns per ops/procs": 251.35}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30038.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3441174129.0, "Ops per second": 114557406.43, "ns per ops": 8.73, "Ops per threads": 4779408.0, "Ops per procs": 23897042.0, "Ops/sec/procs": 795537.54, "ns per ops/procs": 1257.01}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30053.229752, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 262797659.0, "Total blocks": 262797312.0, "Ops per second": 8744406.55, "ns per ops": 114.36, "Ops per threads": 13139882.0, "Ops per procs": 65699414.0, "Ops/sec/procs": 2186101.64, "ns per ops/procs": 457.44}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30063.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 117622817.0, "Ops per second": 3920760.0, "ns per ops": 255.0, "Ops per threads": 11762281.0, "Ops per procs": 58811408.0, "Ops/sec/procs": 1960380.0, "ns per ops/procs": 511.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 838711558.0, "Ops per second": 27957051.0, "ns per ops": 35.0, "Ops per threads": 2329754.0, "Ops per procs": 11648771.0, "Ops/sec/procs": 388292.0, "ns per ops/procs": 2583.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30004.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7056468167.0, "Total blocks": 7056468166.0, "Ops per second": 235183887.15, "ns per ops": 4.25, "Ops per threads": 19601300.0, "Ops per procs": 98006502.0, "Ops/sec/procs": 3266442.88, "ns per ops/procs": 306.14}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30017.342322, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 691898021.0, "Total blocks": 691894137.0, "Ops per second": 23049942.72, "ns per ops": 43.38, "Ops per threads": 5765816.0, "Ops per procs": 28829084.0, "Ops/sec/procs": 960414.28, "ns per ops/procs": 1041.22}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 640213946.0, "Ops per second": 21340464.0, "ns per ops": 47.0, "Ops per threads": 5335116.0, "Ops per procs": 26675581.0, "Ops/sec/procs": 889186.0, "ns per ops/procs": 1128.0}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 271016270.0, "Ops per second": 9033329.13, "ns per ops": 110.7, "Ops per threads": 13550813.0, "Ops per procs": 67754067.0, "Ops/sec/procs": 2258332.28, "ns per ops/procs": 442.8}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30047.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4706033167.0, "Ops per second": 156620517.36, "ns per ops": 6.38, "Ops per threads": 4902117.0, "Ops per procs": 24510589.0, "Ops/sec/procs": 815731.86, "ns per ops/procs": 1225.89}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30003.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3987280613.0, "Total blocks": 3987280613.0, "Ops per second": 132893567.25, "ns per ops": 7.52, "Ops per threads": 33227338.0, "Ops per procs": 166136692.0, "Ops/sec/procs": 5537231.97, "ns per ops/procs": 180.6}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30009.852194, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1608108038.0, "Total blocks": 1607974694.0, "Ops per second": 53586003.28, "ns per ops": 18.66, "Ops per threads": 2233483.0, "Ops per procs": 11167416.0, "Ops/sec/procs": 372125.02, "ns per ops/procs": 2687.27}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 515313399.0, "Total blocks": 515313399.0, "Ops per second": 17163456.65, "ns per ops": 58.26, "Ops per threads": 25765669.0, "Ops per procs": 128828349.0, "Ops/sec/procs": 4290864.16, "ns per ops/procs": 233.05}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30030.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2508213563.0, "Total blocks": 2508213563.0, "Ops per second": 83523453.4, "ns per ops": 11.97, "Ops per threads": 31352669.0, "Ops per procs": 156763347.0, "Ops/sec/procs": 5220215.84, "ns per ops/procs": 191.56}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 650117010.0, "Ops per second": 21670567.0, "ns per ops": 46.0, "Ops per threads": 5417641.0, "Ops per procs": 27088208.0, "Ops/sec/procs": 902940.0, "ns per ops/procs": 1111.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 793542481.0, "Total blocks": 793542481.0, "Ops per second": 26430227.55, "ns per ops": 37.84, "Ops per threads": 39677124.0, "Ops per procs": 198385620.0, "Ops/sec/procs": 6607556.89, "ns per ops/procs": 151.34}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 321689804.0, "Total blocks": 321689794.0, "Ops per second": 10714565.64, "ns per ops": 93.33, "Ops per threads": 32168980.0, "Ops per procs": 160844902.0, "Ops/sec/procs": 5357282.82, "ns per ops/procs": 186.66}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30099.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 486165262.0, "Ops per second": 16205508.0, "ns per ops": 61.0, "Ops per threads": 6077065.0, "Ops per procs": 30385328.0, "Ops/sec/procs": 1012844.0, "ns per ops/procs": 990.0}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 894138637.0, "Ops per second": 29803009.11, "ns per ops": 33.55, "Ops per threads": 11176732.0, "Ops per procs": 55883664.0, "Ops/sec/procs": 1862688.07, "ns per ops/procs": 536.86}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30070.147265, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1679102733.0, "Total blocks": 1678996313.0, "Ops per second": 55839524.77, "ns per ops": 17.91, "Ops per threads": 2332087.0, "Ops per procs": 11660435.0, "Ops/sec/procs": 387774.48, "ns per ops/procs": 2578.82}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30003.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3907997471.0, "Total blocks": 3907997471.0, "Ops per second": 130249406.63, "ns per ops": 7.68, "Ops per threads": 16283322.0, "Ops per procs": 81416613.0, "Ops/sec/procs": 2713529.3, "ns per ops/procs": 368.52}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2058010547.0, "Ops per second": 68577047.07, "ns per ops": 14.58, "Ops per threads": 8575043.0, "Ops per procs": 42875219.0, "Ops/sec/procs": 1428688.48, "ns per ops/procs": 699.94}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30006.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6688530168.0, "Total blocks": 6688530168.0, "Ops per second": 222905324.71, "ns per ops": 4.49, "Ops per threads": 18579250.0, "Ops per procs": 92896252.0, "Ops/sec/procs": 3095907.29, "ns per ops/procs": 323.01}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 870748646.0, "Total blocks": 870748646.0, "Ops per second": 29002809.69, "ns per ops": 34.48, "Ops per threads": 21768716.0, "Ops per procs": 108843580.0, "Ops/sec/procs": 3625351.21, "ns per ops/procs": 275.84}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 799760923.0, "Ops per second": 26658697.0, "ns per ops": 37.0, "Ops per threads": 6664674.0, "Ops per procs": 33323371.0, "Ops/sec/procs": 1110779.0, "ns per ops/procs": 903.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30053.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 126012216.0, "Ops per second": 4200407.0, "ns per ops": 238.0, "Ops per threads": 12601221.0, "Ops per procs": 63006108.0, "Ops/sec/procs": 2100203.0, "ns per ops/procs": 476.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30023.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 217736850.0, "Ops per second": 7257895.0, "ns per ops": 137.0, "Ops per threads": 5443421.0, "Ops per procs": 27217106.0, "Ops/sec/procs": 907236.0, "ns per ops/procs": 1103.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30088.986815, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1964703084.0, "Total blocks": 1964426565.0, "Ops per second": 65296418.79, "ns per ops": 15.31, "Ops per threads": 2046565.0, "Ops per procs": 10232828.0, "Ops/sec/procs": 340085.51, "ns per ops/procs": 2940.44}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 891118932.0, "Ops per second": 29702335.38, "ns per ops": 33.67, "Ops per threads": 11138986.0, "Ops per procs": 55694933.0, "Ops/sec/procs": 1856395.96, "ns per ops/procs": 538.68}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 480497207.0, "Ops per second": 16015780.16, "ns per ops": 62.44, "Ops per threads": 12012430.0, "Ops per procs": 60062150.0, "Ops/sec/procs": 2001972.52, "ns per ops/procs": 499.51}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1212015758.0, "Ops per second": 40400525.0, "ns per ops": 24.0, "Ops per threads": 5050065.0, "Ops per procs": 25250328.0, "Ops/sec/procs": 841677.0, "ns per ops/procs": 1191.0}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30010.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2348032981.0, "Ops per second": 78240318.99, "ns per ops": 12.78, "Ops per threads": 6522313.0, "Ops per procs": 32611569.0, "Ops/sec/procs": 1086671.1, "ns per ops/procs": 920.24}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30048.942615, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1293924524.0, "Total blocks": 1293871691.0, "Ops per second": 43060567.57, "ns per ops": 23.22, "Ops per threads": 2695676.0, "Ops per procs": 13478380.0, "Ops/sec/procs": 448547.58, "ns per ops/procs": 2229.42}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30006.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6377739403.0, "Total blocks": 6377739402.0, "Ops per second": 212544640.73, "ns per ops": 4.7, "Ops per threads": 17715942.0, "Ops per procs": 88579713.0, "Ops/sec/procs": 2952008.9, "ns per ops/procs": 338.75}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 796997937.0, "Ops per second": 26566597.0, "ns per ops": 37.0, "Ops per threads": 6641649.0, "Ops per procs": 33208247.0, "Ops/sec/procs": 1106941.0, "ns per ops/procs": 906.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30076.044276, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 615548548.0, "Total blocks": 615546631.0, "Ops per second": 20466406.5, "ns per ops": 48.86, "Ops per threads": 7694356.0, "Ops per procs": 38471784.0, "Ops/sec/procs": 1279150.41, "ns per ops/procs": 781.77}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30019.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2203081240.0, "Ops per second": 73389308.23, "ns per ops": 13.63, "Ops per threads": 4589752.0, "Ops per procs": 22948762.0, "Ops/sec/procs": 764471.96, "ns per ops/procs": 1308.09}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 286546469.0, "Ops per second": 9551079.79, "ns per ops": 104.7, "Ops per threads": 14327323.0, "Ops per procs": 71636617.0, "Ops/sec/procs": 2387769.95, "ns per ops/procs": 418.8}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 287942155.0, "Ops per second": 9597610.19, "ns per ops": 104.19, "Ops per threads": 14397107.0, "Ops per procs": 71985538.0, "Ops/sec/procs": 2399402.55, "ns per ops/procs": 416.77}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30011.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2870402993.0, "Total blocks": 2870402993.0, "Ops per second": 95644204.94, "ns per ops": 10.46, "Ops per threads": 23920024.0, "Ops per procs": 119600124.0, "Ops/sec/procs": 3985175.21, "ns per ops/procs": 250.93}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 514215001.0, "Total blocks": 514215001.0, "Ops per second": 17126682.39, "ns per ops": 58.39, "Ops per threads": 25710750.0, "Ops per procs": 128553750.0, "Ops/sec/procs": 4281670.6, "ns per ops/procs": 233.55}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30098.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1281534489.0, "Ops per second": 42717816.0, "ns per ops": 23.0, "Ops per threads": 1779909.0, "Ops per procs": 8899545.0, "Ops/sec/procs": 296651.0, "ns per ops/procs": 3382.0}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1504675716.0, "Ops per second": 50152616.68, "ns per ops": 19.94, "Ops per threads": 12538964.0, "Ops per procs": 62694821.0, "Ops/sec/procs": 2089692.36, "ns per ops/procs": 478.54}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 318553681.0, "Total blocks": 318553671.0, "Ops per second": 10610165.17, "ns per ops": 94.25, "Ops per threads": 31855368.0, "Ops per procs": 159276840.0, "Ops/sec/procs": 5305082.59, "ns per ops/procs": 188.5}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1166923550.0, "Ops per second": 38897451.0, "ns per ops": 25.0, "Ops per threads": 4862181.0, "Ops per procs": 24310907.0, "Ops/sec/procs": 810363.0, "ns per ops/procs": 1238.0}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30019.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2173263546.0, "Ops per second": 72394586.61, "ns per ops": 13.81, "Ops per threads": 4527632.0, "Ops per procs": 22638161.0, "Ops/sec/procs": 754110.28, "ns per ops/procs": 1326.07}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30057.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 142096242.0, "Ops per second": 4736541.0, "ns per ops": 211.0, "Ops per threads": 7104812.0, "Ops per procs": 35524060.0, "Ops/sec/procs": 1184135.0, "ns per ops/procs": 846.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30007.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1313424362.0, "Ops per second": 43780812.0, "ns per ops": 22.0, "Ops per threads": 1824200.0, "Ops per procs": 9121002.0, "Ops/sec/procs": 304033.0, "ns per ops/procs": 3289.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3960389668.0, "Total blocks": 3960389668.0, "Ops per second": 131993794.43, "ns per ops": 7.58, "Ops per threads": 16501623.0, "Ops per procs": 82508118.0, "Ops/sec/procs": 2749870.72, "ns per ops/procs": 363.65}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30041.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 20048620673.0, "Total blocks": 20048620673.0, "Ops per second": 667354325.93, "ns per ops": 1.5, "Ops per threads": 20883979.0, "Ops per procs": 104419899.0, "Ops/sec/procs": 3475803.78, "ns per ops/procs": 287.7}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30050.05732, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 203480241.0, "Total blocks": 203480237.0, "Ops per second": 6771376.14, "ns per ops": 147.68, "Ops per threads": 40696048.0, "Ops per procs": 203480241.0, "Ops/sec/procs": 6771376.14, "ns per ops/procs": 147.68}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2111970816.0, "Ops per second": 70373385.43, "ns per ops": 14.21, "Ops per threads": 8799878.0, "Ops per procs": 43999392.0, "Ops/sec/procs": 1466112.2, "ns per ops/procs": 682.08}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30060.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3533663337.0, "Ops per second": 117550219.91, "ns per ops": 8.51, "Ops per threads": 4907865.0, "Ops per procs": 24539328.0, "Ops/sec/procs": 816320.97, "ns per ops/procs": 1225.01}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30100.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2656574687.0, "Ops per second": 88552489.0, "ns per ops": 11.0, "Ops per threads": 2767265.0, "Ops per procs": 13836326.0, "Ops/sec/procs": 461210.0, "ns per ops/procs": 2175.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 794144531.0, "Ops per second": 26471484.0, "ns per ops": 37.0, "Ops per threads": 6617871.0, "Ops per procs": 33089355.0, "Ops/sec/procs": 1102978.0, "ns per ops/procs": 909.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30020.982684, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 710669306.0, "Total blocks": 710665471.0, "Ops per second": 23672419.84, "ns per ops": 42.24, "Ops per threads": 5922244.0, "Ops per procs": 29611221.0, "Ops/sec/procs": 986350.83, "ns per ops/procs": 1013.84}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1459306311.0, "Ops per second": 48640514.98, "ns per ops": 20.56, "Ops per threads": 12160885.0, "Ops per procs": 60804429.0, "Ops/sec/procs": 2026688.12, "ns per ops/procs": 493.42}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2251200885.0, "Ops per second": 75031697.53, "ns per ops": 13.33, "Ops per threads": 6253335.0, "Ops per procs": 31266678.0, "Ops/sec/procs": 1042106.91, "ns per ops/procs": 959.59}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30011.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3484085088.0, "Ops per second": 116092758.26, "ns per ops": 8.61, "Ops per threads": 4839007.0, "Ops per procs": 24195035.0, "Ops/sec/procs": 806199.71, "ns per ops/procs": 1240.39}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1668236826.0, "Ops per second": 55607894.0, "ns per ops": 18.0, "Ops per threads": 3475493.0, "Ops per procs": 17377466.0, "Ops/sec/procs": 579248.0, "ns per ops/procs": 1732.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10053179508.0, "Total blocks": 10053179508.0, "Ops per second": 335053798.27, "ns per ops": 2.98, "Ops per threads": 20944123.0, "Ops per procs": 104720619.0, "Ops/sec/procs": 3490143.73, "ns per ops/procs": 286.52}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30000.295113, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1968869961.0, "Total blocks": 1968645144.0, "Ops per second": 65628353.11, "ns per ops": 15.24, "Ops per threads": 2050906.0, "Ops per procs": 10254531.0, "Ops/sec/procs": 341814.34, "ns per ops/procs": 2925.56}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30041.03009, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1959069065.0, "Total blocks": 1958828725.0, "Ops per second": 65213112.17, "ns per ops": 15.33, "Ops per threads": 2040696.0, "Ops per procs": 10203484.0, "Ops/sec/procs": 339651.63, "ns per ops/procs": 2944.19}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30061.783401, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 388393245.0, "Total blocks": 388392639.0, "Ops per second": 12919833.79, "ns per ops": 77.4, "Ops per threads": 9709831.0, "Ops per procs": 48549155.0, "Ops/sec/procs": 1614979.22, "ns per ops/procs": 619.2}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30023.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 230484952.0, "Ops per second": 7682831.0, "ns per ops": 130.0, "Ops per threads": 5762123.0, "Ops per procs": 28810619.0, "Ops/sec/procs": 960353.0, "ns per ops/procs": 1042.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30042.910507, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1326727912.0, "Total blocks": 1326682569.0, "Ops per second": 44161097.9, "ns per ops": 22.64, "Ops per threads": 2764016.0, "Ops per procs": 13820082.0, "Ops/sec/procs": 460011.44, "ns per ops/procs": 2173.86}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30004.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8285510525.0, "Total blocks": 8285510525.0, "Ops per second": 276138033.03, "ns per ops": 3.62, "Ops per threads": 11507653.0, "Ops per procs": 57538267.0, "Ops/sec/procs": 1917625.23, "ns per ops/procs": 521.48}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1541102183.0, "Ops per second": 51370072.0, "ns per ops": 19.0, "Ops per threads": 3210629.0, "Ops per procs": 16053147.0, "Ops/sec/procs": 535104.0, "ns per ops/procs": 1874.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30084.546462, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1636395619.0, "Total blocks": 1636273825.0, "Ops per second": 54393228.8, "ns per ops": 18.38, "Ops per threads": 2272771.0, "Ops per procs": 11363858.0, "Ops/sec/procs": 377730.76, "ns per ops/procs": 2647.39}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219413990.0, "Total blocks": 219413985.0, "Ops per second": 7308392.08, "ns per ops": 136.83, "Ops per threads": 43882798.0, "Ops per procs": 219413990.0, "Ops/sec/procs": 7308392.08, "ns per ops/procs": 136.83}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30060.816991, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 394093711.0, "Total blocks": 394093100.0, "Ops per second": 13109880.25, "ns per ops": 76.28, "Ops per threads": 9852342.0, "Ops per procs": 49261713.0, "Ops/sec/procs": 1638735.03, "ns per ops/procs": 610.23}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 739080922.0, "Total blocks": 739080922.0, "Ops per second": 24616356.9, "ns per ops": 40.62, "Ops per threads": 36954046.0, "Ops per procs": 184770230.0, "Ops/sec/procs": 6154089.23, "ns per ops/procs": 162.49}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1494651690.0, "Ops per second": 49818698.89, "ns per ops": 20.07, "Ops per threads": 12455430.0, "Ops per procs": 62277153.0, "Ops/sec/procs": 2075779.12, "ns per ops/procs": 481.75}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30026.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8802470310.0, "Total blocks": 8802470310.0, "Ops per second": 293158990.66, "ns per ops": 3.41, "Ops per threads": 12225653.0, "Ops per procs": 61128266.0, "Ops/sec/procs": 2035826.32, "ns per ops/procs": 491.2}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30023.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 221548783.0, "Ops per second": 7384959.0, "ns per ops": 135.0, "Ops per threads": 5538719.0, "Ops per procs": 27693597.0, "Ops/sec/procs": 923119.0, "ns per ops/procs": 1084.0}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30034.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3265897994.0, "Ops per second": 108738515.44, "ns per ops": 9.2, "Ops per threads": 4535969.0, "Ops per procs": 22679847.0, "Ops/sec/procs": 755128.58, "ns per ops/procs": 1324.28}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30048.76123, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1601001091.0, "Total blocks": 1600891596.0, "Ops per second": 53280102.92, "ns per ops": 18.77, "Ops per threads": 2223612.0, "Ops per procs": 11118063.0, "Ops/sec/procs": 370000.71, "ns per ops/procs": 2702.7}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 170520275.0, "Ops per second": 5683774.53, "ns per ops": 175.94, "Ops per threads": 34104055.0, "Ops per procs": 170520275.0, "Ops/sec/procs": 5683774.53, "ns per ops/procs": 175.94}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3976199078.0, "Total blocks": 3976199078.0, "Ops per second": 132520560.88, "ns per ops": 7.55, "Ops per threads": 16567496.0, "Ops per procs": 82837480.0, "Ops/sec/procs": 2760845.02, "ns per ops/procs": 362.21}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30006.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2309893574.0, "Ops per second": 76979529.03, "ns per ops": 12.99, "Ops per threads": 6416371.0, "Ops per procs": 32081855.0, "Ops/sec/procs": 1069160.13, "ns per ops/procs": 935.31}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 687023093.0, "Ops per second": 22900769.0, "ns per ops": 43.0, "Ops per threads": 5725192.0, "Ops per procs": 28625962.0, "Ops/sec/procs": 954198.0, "ns per ops/procs": 1051.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30019.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15321811915.0, "Total blocks": 15321811914.0, "Ops per second": 510395763.68, "ns per ops": 1.96, "Ops per threads": 15960220.0, "Ops per procs": 79801103.0, "Ops/sec/procs": 2658311.27, "ns per ops/procs": 376.18}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30074.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 155858533.0, "Ops per second": 5195284.0, "ns per ops": 192.0, "Ops per threads": 7792926.0, "Ops per procs": 38964633.0, "Ops/sec/procs": 1298821.0, "ns per ops/procs": 771.0}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30057.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3479978457.0, "Ops per second": 115775636.14, "ns per ops": 8.64, "Ops per threads": 4833303.0, "Ops per procs": 24166517.0, "Ops/sec/procs": 803997.47, "ns per ops/procs": 1243.79}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 164077288.0, "Ops per second": 5469242.0, "ns per ops": 183.0, "Ops per threads": 32815457.0, "Ops per procs": 164077288.0, "Ops/sec/procs": 5469242.0, "ns per ops/procs": 183.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30061.655055, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 388241577.0, "Total blocks": 388240954.0, "Ops per second": 12914843.72, "ns per ops": 77.43, "Ops per threads": 9706039.0, "Ops per procs": 48530197.0, "Ops/sec/procs": 1614355.47, "ns per ops/procs": 619.44}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30044.341325, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1153110850.0, "Total blocks": 1153097971.0, "Ops per second": 38380300.55, "ns per ops": 26.06, "Ops per threads": 4804628.0, "Ops per procs": 24023142.0, "Ops/sec/procs": 799589.59, "ns per ops/procs": 1250.64}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 903322145.0, "Total blocks": 903322145.0, "Ops per second": 30087825.46, "ns per ops": 33.24, "Ops per threads": 22583053.0, "Ops per procs": 112915268.0, "Ops/sec/procs": 3760978.18, "ns per ops/procs": 265.89}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 900229115.0, "Ops per second": 30005981.47, "ns per ops": 33.33, "Ops per threads": 11252863.0, "Ops per procs": 56264319.0, "Ops/sec/procs": 1875373.84, "ns per ops/procs": 533.23}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30062.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 152420389.0, "Ops per second": 5080679.0, "ns per ops": 197.0, "Ops per threads": 7621019.0, "Ops per procs": 38105097.0, "Ops/sec/procs": 1270169.0, "ns per ops/procs": 788.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7648074609.0, "Total blocks": 7648074609.0, "Ops per second": 254894046.01, "ns per ops": 3.92, "Ops per threads": 15933488.0, "Ops per procs": 79667443.0, "Ops/sec/procs": 2655146.31, "ns per ops/procs": 376.63}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30055.36182, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 265272069.0, "Total blocks": 265271630.0, "Ops per second": 8826114.64, "ns per ops": 113.3, "Ops per threads": 13263603.0, "Ops per procs": 66318017.0, "Ops/sec/procs": 2206528.66, "ns per ops/procs": 453.2}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 316244400.0, "Total blocks": 316244390.0, "Ops per second": 10533205.38, "ns per ops": 94.94, "Ops per threads": 31624440.0, "Ops per procs": 158122200.0, "Ops/sec/procs": 5266602.69, "ns per ops/procs": 189.88}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30079.162573, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 617572264.0, "Total blocks": 617570374.0, "Ops per second": 20531564.42, "ns per ops": 48.71, "Ops per threads": 7719653.0, "Ops per procs": 38598266.0, "Ops/sec/procs": 1283222.78, "ns per ops/procs": 779.29}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 165921389.0, "Ops per second": 5530447.92, "ns per ops": 180.82, "Ops per threads": 16592138.0, "Ops per procs": 82960694.0, "Ops/sec/procs": 2765223.96, "ns per ops/procs": 361.63}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30060.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 160754175.0, "Ops per second": 5358472.0, "ns per ops": 186.0, "Ops per threads": 8037708.0, "Ops per procs": 40188543.0, "Ops/sec/procs": 1339618.0, "ns per ops/procs": 747.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30063.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 144397887.0, "Ops per second": 4813262.0, "ns per ops": 208.0, "Ops per threads": 7219894.0, "Ops per procs": 36099471.0, "Ops/sec/procs": 1203315.0, "ns per ops/procs": 832.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30100.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 483548613.0, "Ops per second": 16118287.0, "ns per ops": 62.0, "Ops per threads": 6044357.0, "Ops per procs": 30221788.0, "Ops/sec/procs": 1007392.0, "ns per ops/procs": 995.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30030.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3012031948.0, "Total blocks": 3012031948.0, "Ops per second": 100298063.08, "ns per ops": 9.97, "Ops per threads": 37650399.0, "Ops per procs": 188251996.0, "Ops/sec/procs": 6268628.94, "ns per ops/procs": 159.52}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30020.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 229429159.0, "Ops per second": 7647638.0, "ns per ops": 130.0, "Ops per threads": 5735728.0, "Ops per procs": 28678644.0, "Ops/sec/procs": 955954.0, "ns per ops/procs": 1046.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1876448968.0, "Total blocks": 1876448968.0, "Ops per second": 62492083.75, "ns per ops": 16.0, "Ops per threads": 23455612.0, "Ops per procs": 117278060.0, "Ops/sec/procs": 3905755.23, "ns per ops/procs": 256.03}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30075.718407, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 606485555.0, "Total blocks": 606483664.0, "Ops per second": 20165289.05, "ns per ops": 49.59, "Ops per threads": 7581069.0, "Ops per procs": 37905347.0, "Ops/sec/procs": 1260330.57, "ns per ops/procs": 793.44}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 318986521.0, "Total blocks": 318986511.0, "Ops per second": 10624577.43, "ns per ops": 94.12, "Ops per threads": 31898652.0, "Ops per procs": 159493260.0, "Ops/sec/procs": 5312288.71, "ns per ops/procs": 188.24}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30022.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4561288713.0, "Ops per second": 151930576.63, "ns per ops": 6.58, "Ops per threads": 4751342.0, "Ops per procs": 23756712.0, "Ops/sec/procs": 791305.09, "ns per ops/procs": 1263.74}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30060.8561, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 395578827.0, "Total blocks": 395578198.0, "Ops per second": 13159266.84, "ns per ops": 75.99, "Ops per threads": 9889470.0, "Ops per procs": 49447353.0, "Ops/sec/procs": 1644908.36, "ns per ops/procs": 607.94}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1582178189.0, "Ops per second": 52739272.0, "ns per ops": 19.0, "Ops per threads": 3296204.0, "Ops per procs": 16481022.0, "Ops/sec/procs": 549367.0, "ns per ops/procs": 1826.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 922515523.0, "Ops per second": 30750517.0, "ns per ops": 32.0, "Ops per threads": 2562543.0, "Ops per procs": 12812715.0, "Ops/sec/procs": 427090.0, "ns per ops/procs": 2349.0}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1460238232.0, "Ops per second": 48671581.67, "ns per ops": 20.55, "Ops per threads": 12168651.0, "Ops per procs": 60843259.0, "Ops/sec/procs": 2027982.57, "ns per ops/procs": 493.1}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30018.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2229601841.0, "Ops per second": 74273903.16, "ns per ops": 13.46, "Ops per threads": 4645003.0, "Ops per procs": 23225019.0, "Ops/sec/procs": 773686.49, "ns per ops/procs": 1292.51}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 163630952.0, "Ops per second": 5454365.0, "ns per ops": 183.0, "Ops per threads": 32726190.0, "Ops per procs": 163630952.0, "Ops/sec/procs": 5454365.0, "ns per ops/procs": 183.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30098.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1899795501.0, "Ops per second": 63326516.0, "ns per ops": 15.0, "Ops per threads": 1978953.0, "Ops per procs": 9894768.0, "Ops/sec/procs": 329825.0, "ns per ops/procs": 3041.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30051.939633, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 214502802.0, "Total blocks": 214502691.0, "Ops per second": 7137735.69, "ns per ops": 140.1, "Ops per threads": 21450280.0, "Ops per procs": 107251401.0, "Ops/sec/procs": 3568867.84, "ns per ops/procs": 280.2}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1055665028.0, "Ops per second": 35188834.0, "ns per ops": 28.0, "Ops per threads": 4398604.0, "Ops per procs": 21993021.0, "Ops/sec/procs": 733100.0, "ns per ops/procs": 1368.0}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30013.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4712856006.0, "Ops per second": 157026792.47, "ns per ops": 6.37, "Ops per threads": 4909225.0, "Ops per procs": 24546125.0, "Ops/sec/procs": 817847.88, "ns per ops/procs": 1222.72}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 897863229.0, "Ops per second": 29926949.62, "ns per ops": 33.41, "Ops per threads": 11223290.0, "Ops per procs": 56116451.0, "Ops/sec/procs": 1870434.35, "ns per ops/procs": 534.64}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30056.034675, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 260211135.0, "Total blocks": 260210792.0, "Ops per second": 8657533.76, "ns per ops": 115.51, "Ops per threads": 13010556.0, "Ops per procs": 65052783.0, "Ops/sec/procs": 2164383.44, "ns per ops/procs": 462.03}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1395067311.0, "Total blocks": 1395067311.0, "Ops per second": 46466725.91, "ns per ops": 21.52, "Ops per threads": 34876682.0, "Ops per procs": 174383413.0, "Ops/sec/procs": 5808340.74, "ns per ops/procs": 172.17}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2355377861.0, "Ops per second": 78504026.15, "ns per ops": 12.74, "Ops per threads": 6542716.0, "Ops per procs": 32713581.0, "Ops/sec/procs": 1090333.7, "ns per ops/procs": 917.15}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30076.826448, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 618477695.0, "Total blocks": 618475888.0, "Ops per second": 20563263.08, "ns per ops": 48.63, "Ops per threads": 7730971.0, "Ops per procs": 38654855.0, "Ops/sec/procs": 1285203.94, "ns per ops/procs": 778.09}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30062.523113, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1132412780.0, "Total blocks": 1132400664.0, "Ops per second": 37668587.42, "ns per ops": 26.55, "Ops per threads": 4718386.0, "Ops per procs": 23591932.0, "Ops/sec/procs": 784762.24, "ns per ops/procs": 1274.27}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 785967012.0, "Ops per second": 26198900.0, "ns per ops": 38.0, "Ops per threads": 6549725.0, "Ops per procs": 32748625.0, "Ops/sec/procs": 1091620.0, "ns per ops/procs": 919.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30031.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8905420825.0, "Total blocks": 8905420824.0, "Ops per second": 296539514.83, "ns per ops": 3.37, "Ops per threads": 12368640.0, "Ops per procs": 61843200.0, "Ops/sec/procs": 2059302.19, "ns per ops/procs": 485.6}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 490076281.0, "Ops per second": 16335876.0, "ns per ops": 61.0, "Ops per threads": 6125953.0, "Ops per procs": 30629767.0, "Ops/sec/procs": 1020992.0, "ns per ops/procs": 982.0}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30014.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2257056691.0, "Ops per second": 75197850.67, "ns per ops": 13.3, "Ops per threads": 4702201.0, "Ops per procs": 23511007.0, "Ops/sec/procs": 783310.94, "ns per ops/procs": 1276.63}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 284041176.0, "Ops per second": 9467559.25, "ns per ops": 105.62, "Ops per threads": 14202058.0, "Ops per procs": 71010294.0, "Ops/sec/procs": 2366889.81, "ns per ops/procs": 422.5}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 892945662.0, "Ops per second": 29763196.19, "ns per ops": 33.6, "Ops per threads": 11161820.0, "Ops per procs": 55809103.0, "Ops/sec/procs": 1860199.76, "ns per ops/procs": 537.58}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30020.85781, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 705614910.0, "Total blocks": 705611111.0, "Ops per second": 23504155.49, "ns per ops": 42.55, "Ops per threads": 5880124.0, "Ops per procs": 29400621.0, "Ops/sec/procs": 979339.81, "ns per ops/procs": 1021.1}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30004.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 14859110598.0, "Total blocks": 14859110598.0, "Ops per second": 495235361.16, "ns per ops": 2.02, "Ops per threads": 15478240.0, "Ops per procs": 77391201.0, "Ops/sec/procs": 2579350.84, "ns per ops/procs": 387.69}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219458732.0, "Total blocks": 219458727.0, "Ops per second": 7309848.38, "ns per ops": 136.8, "Ops per threads": 43891746.0, "Ops per procs": 219458732.0, "Ops/sec/procs": 7309848.38, "ns per ops/procs": 136.8}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 175869721.0, "Ops per second": 5862055.84, "ns per ops": 170.59, "Ops per threads": 17586972.0, "Ops per procs": 87934860.0, "Ops/sec/procs": 2931027.92, "ns per ops/procs": 341.18}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 858062120.0, "Ops per second": 28602070.0, "ns per ops": 35.0, "Ops per threads": 2383505.0, "Ops per procs": 11917529.0, "Ops/sec/procs": 397250.0, "ns per ops/procs": 2525.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30010.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2858834274.0, "Ops per second": 95294475.0, "ns per ops": 10.0, "Ops per threads": 2977952.0, "Ops per procs": 14889761.0, "Ops/sec/procs": 496325.0, "ns per ops/procs": 2015.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30035.22166, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1087564772.0, "Total blocks": 1087536443.0, "Ops per second": 36209646.94, "ns per ops": 27.62, "Ops per threads": 3021013.0, "Ops per procs": 15105066.0, "Ops/sec/procs": 502911.76, "ns per ops/procs": 1988.42}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30091.877687, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1595500159.0, "Total blocks": 1595406529.0, "Ops per second": 53020957.2, "ns per ops": 18.86, "Ops per threads": 2215972.0, "Ops per procs": 11079862.0, "Ops/sec/procs": 368201.09, "ns per ops/procs": 2715.91}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30056.236658, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1142321220.0, "Total blocks": 1142308887.0, "Ops per second": 38006129.41, "ns per ops": 26.31, "Ops per threads": 4759671.0, "Ops per procs": 23798358.0, "Ops/sec/procs": 791794.36, "ns per ops/procs": 1262.95}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 164060909.0, "Ops per second": 5468696.0, "ns per ops": 183.0, "Ops per threads": 32812181.0, "Ops per procs": 164060909.0, "Ops/sec/procs": 5468696.0, "ns per ops/procs": 183.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30014.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1324319528.0, "Ops per second": 44143984.0, "ns per ops": 22.0, "Ops per threads": 1839332.0, "Ops per procs": 9196663.0, "Ops/sec/procs": 306555.0, "ns per ops/procs": 3263.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30008.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6655570628.0, "Total blocks": 6655570626.0, "Ops per second": 221791043.25, "ns per ops": 4.51, "Ops per threads": 18487696.0, "Ops per procs": 92438480.0, "Ops/sec/procs": 3080431.16, "ns per ops/procs": 324.63}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30049.760389, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 203519405.0, "Total blocks": 203519400.0, "Ops per second": 6772746.35, "ns per ops": 147.65, "Ops per threads": 40703881.0, "Ops per procs": 203519405.0, "Ops/sec/procs": 6772746.35, "ns per ops/procs": 147.65}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 10061206798.0, "Total blocks": 10061206798.0, "Ops per second": 335323868.99, "ns per ops": 2.98, "Ops per threads": 20960847.0, "Ops per procs": 104804237.0, "Ops/sec/procs": 3492956.97, "ns per ops/procs": 286.29}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30026.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 227393051.0, "Ops per second": 7579768.0, "ns per ops": 132.0, "Ops per threads": 5684826.0, "Ops per procs": 28424131.0, "Ops/sec/procs": 947471.0, "ns per ops/procs": 1056.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1134874219.0, "Ops per second": 37829140.0, "ns per ops": 26.0, "Ops per threads": 4728642.0, "Ops per procs": 23643212.0, "Ops/sec/procs": 788107.0, "ns per ops/procs": 1273.0}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30010.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3527564352.0, "Ops per second": 117544323.57, "ns per ops": 8.51, "Ops per threads": 4899394.0, "Ops per procs": 24496974.0, "Ops/sec/procs": 816280.02, "ns per ops/procs": 1225.07}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 165403685.0, "Ops per second": 5513197.81, "ns per ops": 181.38, "Ops per threads": 16540368.0, "Ops per procs": 82701842.0, "Ops/sec/procs": 2756598.9, "ns per ops/procs": 362.77}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30034.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3424180175.0, "Ops per second": 114009604.2, "ns per ops": 8.77, "Ops per threads": 4755805.0, "Ops per procs": 23779028.0, "Ops/sec/procs": 791733.36, "ns per ops/procs": 1263.05}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30060.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6583505063.0, "Total blocks": 6583505063.0, "Ops per second": 219008321.06, "ns per ops": 4.57, "Ops per threads": 18287514.0, "Ops per procs": 91437570.0, "Ops/sec/procs": 3041782.24, "ns per ops/procs": 328.75}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30024.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 242964632.0, "Ops per second": 8098821.0, "ns per ops": 123.0, "Ops per threads": 6074115.0, "Ops per procs": 30370579.0, "Ops/sec/procs": 1012352.0, "ns per ops/procs": 988.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30095.605541, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1732197094.0, "Total blocks": 1732099174.0, "Ops per second": 57556479.19, "ns per ops": 17.37, "Ops per threads": 2405829.0, "Ops per procs": 12029146.0, "Ops/sec/procs": 399697.77, "ns per ops/procs": 2501.89}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 958708647.0, "Ops per second": 31956954.0, "ns per ops": 31.0, "Ops per threads": 3994619.0, "Ops per procs": 19973096.0, "Ops/sec/procs": 665769.0, "ns per ops/procs": 1506.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30051.531686, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 210857415.0, "Total blocks": 210857310.0, "Ops per second": 7016528.05, "ns per ops": 142.52, "Ops per threads": 21085741.0, "Ops per procs": 105428707.0, "Ops/sec/procs": 3508264.02, "ns per ops/procs": 285.04}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 7990461980.0, "Total blocks": 7990461980.0, "Ops per second": 266309001.04, "ns per ops": 3.76, "Ops per threads": 16646795.0, "Ops per procs": 83233978.0, "Ops/sec/procs": 2774052.09, "ns per ops/procs": 360.48}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30062.645789, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 385826481.0, "Total blocks": 385825859.0, "Ops per second": 12834082.66, "ns per ops": 77.92, "Ops per threads": 9645662.0, "Ops per procs": 48228310.0, "Ops/sec/procs": 1604260.33, "ns per ops/procs": 623.34}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30059.684127, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1128012014.0, "Total blocks": 1128000671.0, "Ops per second": 37525744.09, "ns per ops": 26.65, "Ops per threads": 4700050.0, "Ops per procs": 23500250.0, "Ops/sec/procs": 781786.34, "ns per ops/procs": 1279.12}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30069.589719, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1989403838.0, "Total blocks": 1989198134.0, "Ops per second": 66159992.76, "ns per ops": 15.11, "Ops per threads": 2072295.0, "Ops per procs": 10361478.0, "Ops/sec/procs": 344583.3, "ns per ops/procs": 2902.06}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30016.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4613407745.0, "Ops per second": 153696994.14, "ns per ops": 6.51, "Ops per threads": 4805633.0, "Ops per procs": 24028165.0, "Ops/sec/procs": 800505.18, "ns per ops/procs": 1249.21}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30067.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 146440205.0, "Ops per second": 4881340.0, "ns per ops": 205.0, "Ops per threads": 7322010.0, "Ops per procs": 36610051.0, "Ops/sec/procs": 1220335.0, "ns per ops/procs": 821.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30079.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 123263380.0, "Ops per second": 4108779.0, "ns per ops": 244.0, "Ops per threads": 12326338.0, "Ops per procs": 61631690.0, "Ops/sec/procs": 2054389.0, "ns per ops/procs": 488.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 682439910.0, "Ops per second": 22747997.0, "ns per ops": 44.0, "Ops per threads": 5686999.0, "Ops per procs": 28434996.0, "Ops/sec/procs": 947833.0, "ns per ops/procs": 1058.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30098.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1526992516.0, "Ops per second": 50899750.0, "ns per ops": 19.0, "Ops per threads": 2120822.0, "Ops per procs": 10604114.0, "Ops/sec/procs": 353470.0, "ns per ops/procs": 2838.0}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2083335848.0, "Ops per second": 69419766.53, "ns per ops": 14.41, "Ops per threads": 8680566.0, "Ops per procs": 43402830.0, "Ops/sec/procs": 1446245.14, "ns per ops/procs": 691.45}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 495307500.0, "Ops per second": 16509429.73, "ns per ops": 60.57, "Ops per threads": 12382687.0, "Ops per procs": 61913437.0, "Ops/sec/procs": 2063678.72, "ns per ops/procs": 484.57}],["rdq-cycle-go", "./rdq-cycle-go -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30001.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 177050719.0, "Ops per second": 5901421.56, "ns per ops": 169.45, "Ops per threads": 17705071.0, "Ops per procs": 88525359.0, "Ops/sec/procs": 2950710.78, "ns per ops/procs": 338.9}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30055.927297, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 263267402.0, "Total blocks": 263267034.0, "Ops per second": 8759250.69, "ns per ops": 114.17, "Ops per threads": 13163370.0, "Ops per procs": 65816850.0, "Ops/sec/procs": 2189812.67, "ns per ops/procs": 456.66}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2122203492.0, "Ops per second": 70716256.99, "ns per ops": 14.14, "Ops per threads": 8842514.0, "Ops per procs": 44212572.0, "Ops/sec/procs": 1473255.35, "ns per ops/procs": 678.77}],["rdq-cycle-go", "./rdq-cycle-go -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30001.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 512960450.0, "Ops per second": 17097766.86, "ns per ops": 58.49, "Ops per threads": 12824011.0, "Ops per procs": 64120056.0, "Ops/sec/procs": 2137220.86, "ns per ops/procs": 467.9}],["rdq-cycle-go", "./rdq-cycle-go -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30001.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 273036905.0, "Ops per second": 9100788.24, "ns per ops": 109.88, "Ops per threads": 13651845.0, "Ops per procs": 68259226.0, "Ops/sec/procs": 2275197.06, "ns per ops/procs": 439.52}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30053.447004, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 261694721.0, "Total blocks": 261694352.0, "Ops per second": 8707644.12, "ns per ops": 114.84, "Ops per threads": 13084736.0, "Ops per procs": 65423680.0, "Ops/sec/procs": 2176911.03, "ns per ops/procs": 459.37}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30078.494252, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 621124648.0, "Total blocks": 621122673.0, "Ops per second": 20650124.4, "ns per ops": 48.43, "Ops per threads": 7764058.0, "Ops per procs": 38820290.0, "Ops/sec/procs": 1290632.77, "ns per ops/procs": 774.81}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30077.526126, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1313305973.0, "Total blocks": 1313257545.0, "Ops per second": 43664029.0, "ns per ops": 22.9, "Ops per threads": 2736054.0, "Ops per procs": 13680270.0, "Ops/sec/procs": 454833.64, "ns per ops/procs": 2198.61}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30016.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2203132481.0, "Ops per second": 73397006.57, "ns per ops": 13.62, "Ops per threads": 4589859.0, "Ops per procs": 22949296.0, "Ops/sec/procs": 764552.15, "ns per ops/procs": 1307.96}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30051.718557, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 209940916.0, "Total blocks": 209940813.0, "Ops per second": 6985987.03, "ns per ops": 143.14, "Ops per threads": 20994091.0, "Ops per procs": 104970458.0, "Ops/sec/procs": 3492993.51, "ns per ops/procs": 286.29}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30051.883129, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 210102151.0, "Total blocks": 210102023.0, "Ops per second": 6991313.99, "ns per ops": 143.03, "Ops per threads": 21010215.0, "Ops per procs": 105051075.0, "Ops/sec/procs": 3495657.0, "ns per ops/procs": 286.07}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 6824874142.0, "Total blocks": 6824874142.0, "Ops per second": 227467174.25, "ns per ops": 4.4, "Ops per threads": 18957983.0, "Ops per procs": 94789918.0, "Ops/sec/procs": 3159266.31, "ns per ops/procs": 316.53}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30027.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 20001364309.0, "Total blocks": 20001364309.0, "Ops per second": 666093420.29, "ns per ops": 1.5, "Ops per threads": 20834754.0, "Ops per procs": 104173772.0, "Ops/sec/procs": 3469236.56, "ns per ops/procs": 288.25}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219618019.0, "Total blocks": 219618014.0, "Ops per second": 7315168.89, "ns per ops": 136.7, "Ops per threads": 43923603.0, "Ops per procs": 219618019.0, "Ops/sec/procs": 7315168.89, "ns per ops/procs": 136.7}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 638781864.0, "Ops per second": 21292728.0, "ns per ops": 47.0, "Ops per threads": 5323182.0, "Ops per procs": 26615911.0, "Ops/sec/procs": 887197.0, "ns per ops/procs": 1130.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 757755857.0, "Total blocks": 757755857.0, "Ops per second": 25238254.77, "ns per ops": 39.62, "Ops per threads": 37887792.0, "Ops per procs": 189438964.0, "Ops/sec/procs": 6309563.69, "ns per ops/procs": 158.49}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2100419226.0, "Ops per second": 69990039.32, "ns per ops": 14.29, "Ops per threads": 8751746.0, "Ops per procs": 43758733.0, "Ops/sec/procs": 1458125.82, "ns per ops/procs": 685.81}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 881003924.0, "Total blocks": 881003924.0, "Ops per second": 29344622.63, "ns per ops": 34.08, "Ops per threads": 22025098.0, "Ops per procs": 110125490.0, "Ops/sec/procs": 3668077.83, "ns per ops/procs": 272.62}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30026.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 9081236127.0, "Total blocks": 9081236127.0, "Ops per second": 302442267.27, "ns per ops": 3.31, "Ops per threads": 25225655.0, "Ops per procs": 126128279.0, "Ops/sec/procs": 4200587.05, "ns per ops/procs": 238.06}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30063.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 142862398.0, "Ops per second": 4762079.0, "ns per ops": 210.0, "Ops per threads": 7143119.0, "Ops per procs": 35715599.0, "Ops/sec/procs": 1190519.0, "ns per ops/procs": 841.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30014.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1661300317.0, "Ops per second": 55376677.0, "ns per ops": 18.0, "Ops per threads": 3461042.0, "Ops per procs": 17305211.0, "Ops/sec/procs": 576840.0, "ns per ops/procs": 1734.0}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30013.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3464135891.0, "Ops per second": 115418882.04, "ns per ops": 8.66, "Ops per threads": 4811299.0, "Ops per procs": 24056499.0, "Ops/sec/procs": 801520.01, "ns per ops/procs": 1247.63}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30021.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 239832490.0, "Ops per second": 7994416.0, "ns per ops": 125.0, "Ops per threads": 5995812.0, "Ops per procs": 29979061.0, "Ops/sec/procs": 999302.0, "ns per ops/procs": 1001.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1243464890.0, "Ops per second": 41448829.0, "ns per ops": 24.0, "Ops per threads": 2590551.0, "Ops per procs": 12952759.0, "Ops/sec/procs": 431758.0, "ns per ops/procs": 2323.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30013.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8835388498.0, "Total blocks": 8835388498.0, "Ops per second": 294376368.96, "ns per ops": 3.4, "Ops per threads": 12271372.0, "Ops per procs": 61356864.0, "Ops/sec/procs": 2044280.34, "ns per ops/procs": 489.17}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30016.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2175173772.0, "Ops per second": 72465946.15, "ns per ops": 13.8, "Ops per threads": 4531612.0, "Ops per procs": 22658060.0, "Ops/sec/procs": 754853.61, "ns per ops/procs": 1324.76}],["rdq-cycle-go", "./rdq-cycle-go -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30020.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 4619680758.0, "Ops per second": 153885066.48, "ns per ops": 6.5, "Ops per threads": 4812167.0, "Ops per procs": 24060837.0, "Ops/sec/procs": 801484.72, "ns per ops/procs": 1247.68}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30006.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15031568417.0, "Total blocks": 15031568415.0, "Ops per second": 500947483.91, "ns per ops": 2.0, "Ops per threads": 15657883.0, "Ops per procs": 78289418.0, "Ops/sec/procs": 2609101.48, "ns per ops/procs": 383.27}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 443686982.0, "Ops per second": 14789566.0, "ns per ops": 67.0, "Ops per threads": 5546087.0, "Ops per procs": 27730436.0, "Ops/sec/procs": 924347.0, "ns per ops/procs": 1085.0}],["rdq-cycle-go", "./rdq-cycle-go -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30010.0, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2100270651.0, "Ops per second": 69984116.34, "ns per ops": 14.29, "Ops per threads": 8751127.0, "Ops per procs": 43755638.0, "Ops/sec/procs": 1458002.42, "ns per ops/procs": 685.87}],["rdq-cycle-go", "./rdq-cycle-go -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30004.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2270893593.0, "Ops per second": 75685163.1, "ns per ops": 13.21, "Ops per threads": 6308037.0, "Ops per procs": 31540188.0, "Ops/sec/procs": 1051182.82, "ns per ops/procs": 951.31}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2852173157.0, "Total blocks": 2852173157.0, "Ops per second": 95063575.85, "ns per ops": 10.52, "Ops per threads": 23768109.0, "Ops per procs": 118840548.0, "Ops/sec/procs": 3960982.33, "ns per ops/procs": 252.46}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1516181696.0, "Ops per second": 50536238.99, "ns per ops": 19.79, "Ops per threads": 12634847.0, "Ops per procs": 63174237.0, "Ops/sec/procs": 2105676.62, "ns per ops/procs": 474.91}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1877613820.0, "Total blocks": 1877613820.0, "Ops per second": 62531245.86, "ns per ops": 15.99, "Ops per threads": 23470172.0, "Ops per procs": 117350863.0, "Ops/sec/procs": 3908202.87, "ns per ops/procs": 255.87}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 4 -d 30 -r 5 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 20.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 514240063.0, "Total blocks": 514240063.0, "Ops per second": 17127543.62, "ns per ops": 58.39, "Ops per threads": 25712003.0, "Ops per procs": 128560015.0, "Ops/sec/procs": 4281885.91, "ns per ops/procs": 233.54}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30052.421841, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1117064163.0, "Total blocks": 1117052242.0, "Ops per second": 37170520.53, "ns per ops": 26.9, "Ops per threads": 4654434.0, "Ops per procs": 23272170.0, "Ops/sec/procs": 774385.84, "ns per ops/procs": 1291.35}],["rdq-cycle-go", "./rdq-cycle-go -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30001.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 914499612.0, "Ops per second": 30481671.55, "ns per ops": 32.81, "Ops per threads": 11431245.0, "Ops per procs": 57156225.0, "Ops/sec/procs": 1905104.47, "ns per ops/procs": 524.91}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30066.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 123150992.0, "Ops per second": 4105033.0, "ns per ops": 244.0, "Ops per threads": 12315099.0, "Ops per procs": 61575496.0, "Ops/sec/procs": 2052516.0, "ns per ops/procs": 488.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30020.616519, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 711766940.0, "Total blocks": 711763755.0, "Ops per second": 23709271.25, "ns per ops": 42.18, "Ops per threads": 5931391.0, "Ops per procs": 29656955.0, "Ops/sec/procs": 987886.3, "ns per ops/procs": 1012.26}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30019.837592, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 715889297.0, "Total blocks": 715885343.0, "Ops per second": 23847207.53, "ns per ops": 41.93, "Ops per threads": 5965744.0, "Ops per procs": 29828720.0, "Ops/sec/procs": 993633.65, "ns per ops/procs": 1006.41}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30098.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2783779616.0, "Ops per second": 92792653.0, "ns per ops": 10.0, "Ops per threads": 2899770.0, "Ops per procs": 14498852.0, "Ops/sec/procs": 483295.0, "ns per ops/procs": 2075.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1155613585.0, "Ops per second": 38520452.0, "ns per ops": 26.0, "Ops per threads": 3210037.0, "Ops per procs": 16050188.0, "Ops/sec/procs": 535006.0, "ns per ops/procs": 1875.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 897467792.0, "Ops per second": 29915593.0, "ns per ops": 33.0, "Ops per threads": 2492966.0, "Ops per procs": 12464830.0, "Ops/sec/procs": 415494.0, "ns per ops/procs": 2414.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 495465222.0, "Ops per second": 16515507.0, "ns per ops": 60.0, "Ops per threads": 6193315.0, "Ops per procs": 30966576.0, "Ops/sec/procs": 1032219.0, "ns per ops/procs": 971.0}],["rdq-cycle-go", "./rdq-cycle-go -p 24 -d 30 -r 5 -t 24", {"Duration (ms)": 30001.0, "Number of processors": 24.0, "Number of threads": 120.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1486267341.0, "Ops per second": 49539158.95, "ns per ops": 20.19, "Ops per threads": 12385561.0, "Ops per procs": 61927805.0, "Ops/sec/procs": 2064131.62, "ns per ops/procs": 484.47}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30011.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1763083226.0, "Ops per second": 58769440.0, "ns per ops": 17.0, "Ops per threads": 2448726.0, "Ops per procs": 12243633.0, "Ops/sec/procs": 408121.0, "ns per ops/procs": 2451.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 2 -d 30 -r 5 -t 2", {"Duration (ms)": 30073.0, "Number of processors": 2.0, "Number of threads": 10.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 125372958.0, "Ops per second": 4179098.0, "ns per ops": 239.0, "Ops per threads": 12537295.0, "Ops per procs": 62686479.0, "Ops/sec/procs": 2089549.0, "ns per ops/procs": 479.0}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 8 -d 30 -r 5 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 40.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 891365315.0, "Total blocks": 891365315.0, "Ops per second": 29689476.2, "ns per ops": 33.68, "Ops per threads": 22284132.0, "Ops per procs": 111420664.0, "Ops/sec/procs": 3711184.52, "ns per ops/procs": 269.46}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 48 -d 30 -r 5 -t 48", {"Duration (ms)": 30049.875656, "Number of processors": 48.0, "Number of threads": 240.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1136688725.0, "Total blocks": 1136676446.0, "Ops per second": 37826736.39, "ns per ops": 26.44, "Ops per threads": 4736203.0, "Ops per procs": 23681015.0, "Ops/sec/procs": 788057.01, "ns per ops/procs": 1268.94}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30050.700664, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1983592436.0, "Total blocks": 1983354372.0, "Ops per second": 66008192.56, "ns per ops": 15.15, "Ops per threads": 2066242.0, "Ops per procs": 10331210.0, "Ops/sec/procs": 343792.67, "ns per ops/procs": 2908.73}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 16 -d 30 -r 5 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 80.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1867093660.0, "Total blocks": 1867093660.0, "Ops per second": 62180751.17, "ns per ops": 16.08, "Ops per threads": 23338670.0, "Ops per procs": 116693353.0, "Ops/sec/procs": 3886296.95, "ns per ops/procs": 257.31}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219443334.0, "Total blocks": 219443329.0, "Ops per second": 7309367.14, "ns per ops": 136.81, "Ops per threads": 43888666.0, "Ops per procs": 219443334.0, "Ops/sec/procs": 7309367.14, "ns per ops/procs": 136.81}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 8058412290.0, "Total blocks": 8058412290.0, "Ops per second": 268575058.42, "ns per ops": 3.72, "Ops per threads": 16788358.0, "Ops per procs": 83941794.0, "Ops/sec/procs": 2797656.86, "ns per ops/procs": 357.44}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30012.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2668476751.0, "Ops per second": 88949225.0, "ns per ops": 11.0, "Ops per threads": 2779663.0, "Ops per procs": 13898316.0, "Ops/sec/procs": 463277.0, "ns per ops/procs": 2159.0}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1263790036.0, "Ops per second": 42126334.0, "ns per ops": 23.0, "Ops per threads": 3510527.0, "Ops per procs": 17552639.0, "Ops/sec/procs": 585087.0, "ns per ops/procs": 1714.0}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 72 -d 30 -r 5 -t 72", {"Duration (ms)": 30096.398642, "Number of processors": 72.0, "Number of threads": 360.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1048998279.0, "Total blocks": 1048958149.0, "Ops per second": 34854611.39, "ns per ops": 28.69, "Ops per threads": 2913884.0, "Ops per procs": 14569420.0, "Ops/sec/procs": 484091.82, "ns per ops/procs": 2065.72}],["rdq-cycle-tokio", "./rdq-cycle-tokio -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1782608897.0, "Ops per second": 59420296.0, "ns per ops": 16.0, "Ops per threads": 2475845.0, "Ops per procs": 12379228.0, "Ops/sec/procs": 412640.0, "ns per ops/procs": 2431.0}],["rdq-cycle-go", "./rdq-cycle-go -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 170552431.0, "Ops per second": 5684845.46, "ns per ops": 175.91, "Ops per threads": 34110486.0, "Ops per procs": 170552431.0, "Ops/sec/procs": 5684845.46, "ns per ops/procs": 175.91}],["rdq-cycle-go", "./rdq-cycle-go -p 96 -d 30 -r 5 -t 96", {"Duration (ms)": 30015.0, "Number of processors": 96.0, "Number of threads": 480.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 2206127662.0, "Ops per second": 73500183.24, "ns per ops": 13.61, "Ops per threads": 4596099.0, "Ops per procs": 22980496.0, "Ops/sec/procs": 765626.91, "ns per ops/procs": 1306.12}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 192 -d 30 -r 5 -t 192", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 960.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 15185975853.0, "Total blocks": 15185975848.0, "Ops per second": 506104940.66, "ns per ops": 1.98, "Ops per threads": 15818724.0, "Ops per procs": 79093624.0, "Ops/sec/procs": 2635963.23, "ns per ops/procs": 379.37}],["rdq-cycle-cfa", "./rdq-cycle-cfa -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30051.387707, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 1630141613.0, "Total blocks": 1630001494.0, "Ops per second": 54245135.99, "ns per ops": 18.43, "Ops per threads": 2264085.0, "Ops per procs": 11320427.0, "Ops/sec/procs": 376702.33, "ns per ops/procs": 2654.62}],["rdq-cycle-fibre", "./rdq-cycle-fibre -p 1 -d 30 -r 5 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 5.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 219449120.0, "Total blocks": 219449115.0, "Ops per second": 7309564.35, "ns per ops": 136.81, "Ops per threads": 43889824.0, "Ops per procs": 219449120.0, "Ops/sec/procs": 7309564.35, "ns per ops/procs": 136.81}],["rdq-cycle-go", "./rdq-cycle-go -p 144 -d 30 -r 5 -t 144", {"Duration (ms)": 30019.0, "Number of processors": 144.0, "Number of threads": 720.0, "Cycle size (# thrds)": 5.0, "Total Operations(ops)": 3430534353.0, "Ops per second": 114274998.17, "ns per ops": 8.75, "Ops per threads": 4764631.0, "Ops per procs": 23823155.0, "Ops/sec/procs": 793576.38, "ns per ops/procs": 1260.12}]]
  • doc/theses/thierry_delisle_PhD/thesis/data/memcd.rate

    r12df6fe r4520b77e  
    1 [["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 498755.2, "Median Read Latency": 3190.7, "Tail Read Latency": 225397.5, "Median Update Latency": 2830.3, "Tail Update Latency": 226163.8}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 199980.9, "Median Read Latency": 95.5, "Tail Read Latency": 170.9, "Median Update Latency": 100.7, "Tail Update Latency": 176.2}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 399978.4, "Median Read Latency": 117.8, "Tail Read Latency": 1207.1, "Median Update Latency": 121.9, "Tail Update Latency": 1336.8}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 612437.4, "Median Read Latency": 15884.0, "Tail Read Latency": 248252.4, "Median Update Latency": 15749.0, "Tail Update Latency": 247485.6}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 399937.0, "Median Read Latency": 111.9, "Tail Read Latency": 869.0, "Median Update Latency": 117.5, "Tail Update Latency": 880.8}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100019.3, "Median Read Latency": 85.8, "Tail Read Latency": 161.8, "Median Update Latency": 92.2, "Tail Update Latency": 169.1}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499962.9, "Median Read Latency": 185.6, "Tail Read Latency": 12305.1, "Median Update Latency": 250.1, "Tail Update Latency": 12317.4}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100007.8, "Median Read Latency": 85.9, "Tail Read Latency": 161.0, "Median Update Latency": 92.3, "Tail Update Latency": 168.9}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 557475.3, "Median Read Latency": 18115.8, "Tail Read Latency": 251927.5, "Median Update Latency": 18299.3, "Tail Update Latency": 250306.8}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200004.6, "Median Read Latency": 95.3, "Tail Read Latency": 173.3, "Median Update Latency": 99.9, "Tail Update Latency": 180.6}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 597071.5, "Median Read Latency": 13212.4, "Tail Read Latency": 62539.9, "Median Update Latency": 13231.2, "Tail Update Latency": 69653.7}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 199978.5, "Median Read Latency": 95.5, "Tail Read Latency": 177.6, "Median Update Latency": 100.3, "Tail Update Latency": 186.7}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 614246.9, "Median Read Latency": 16225.4, "Tail Read Latency": 250527.9, "Median Update Latency": 16499.8, "Tail Update Latency": 256449.6}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300008.6, "Median Read Latency": 87.5, "Tail Read Latency": 183.5, "Median Update Latency": 93.1, "Tail Update Latency": 190.9}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100006.9, "Median Read Latency": 85.4, "Tail Read Latency": 177.6, "Median Update Latency": 92.0, "Tail Update Latency": 194.1}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200005.2, "Median Read Latency": 95.3, "Tail Read Latency": 173.8, "Median Update Latency": 99.8, "Tail Update Latency": 183.7}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 572663.5, "Median Read Latency": 371.4, "Tail Read Latency": 227972.8, "Median Update Latency": 1399.1, "Tail Update Latency": 226684.5}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 622639.2, "Median Read Latency": 5780.5, "Tail Read Latency": 230039.3, "Median Update Latency": 7841.8, "Tail Update Latency": 229186.6}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 592141.1, "Median Read Latency": 13408.6, "Tail Read Latency": 48231.9, "Median Update Latency": 13507.0, "Tail Update Latency": 49970.4}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 299997.1, "Median Read Latency": 91.3, "Tail Read Latency": 346.2, "Median Update Latency": 97.8, "Tail Update Latency": 359.3}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 299972.9, "Median Read Latency": 100.3, "Tail Read Latency": 454.5, "Median Update Latency": 106.7, "Tail Update Latency": 436.9}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 598258.7, "Median Read Latency": 13440.2, "Tail Read Latency": 50537.1, "Median Update Latency": 13527.6, "Tail Update Latency": 47965.6}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 299962.2, "Median Read Latency": 88.0, "Tail Read Latency": 181.4, "Median Update Latency": 93.3, "Tail Update Latency": 187.2}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 602219.4, "Median Read Latency": 25297.0, "Tail Read Latency": 250896.6, "Median Update Latency": 25038.5, "Tail Update Latency": 251507.9}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 564998.0, "Median Read Latency": 20010.7, "Tail Read Latency": 250571.5, "Median Update Latency": 20091.0, "Tail Update Latency": 250161.2}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499891.1, "Median Read Latency": 7175.0, "Tail Read Latency": 220926.7, "Median Update Latency": 7105.9, "Tail Update Latency": 221994.0}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499974.2, "Median Read Latency": 211.4, "Tail Read Latency": 11680.1, "Median Update Latency": 829.2, "Tail Update Latency": 11990.8}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300012.7, "Median Read Latency": 97.1, "Tail Read Latency": 222.8, "Median Update Latency": 101.7, "Tail Update Latency": 238.1}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300070.5, "Median Read Latency": 96.8, "Tail Read Latency": 220.3, "Median Update Latency": 101.7, "Tail Update Latency": 237.8}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100008.7, "Median Read Latency": 85.6, "Tail Read Latency": 163.0, "Median Update Latency": 92.3, "Tail Update Latency": 175.3}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400028.9, "Median Read Latency": 114.8, "Tail Read Latency": 956.1, "Median Update Latency": 120.3, "Tail Update Latency": 1350.3}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300055.6, "Median Read Latency": 86.4, "Tail Read Latency": 175.9, "Median Update Latency": 91.2, "Tail Update Latency": 180.7}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 673707.6, "Median Read Latency": 6827.8, "Tail Read Latency": 231197.0, "Median Update Latency": 7140.8, "Tail Update Latency": 231287.8}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 601228.5, "Median Read Latency": 12871.0, "Tail Read Latency": 219146.6, "Median Update Latency": 12852.8, "Tail Update Latency": 56501.0}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300015.0, "Median Read Latency": 100.1, "Tail Read Latency": 481.1, "Median Update Latency": 105.7, "Tail Update Latency": 488.7}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 99997.9, "Median Read Latency": 85.4, "Tail Read Latency": 167.7, "Median Update Latency": 92.4, "Tail Update Latency": 173.4}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200021.1, "Median Read Latency": 88.1, "Tail Read Latency": 244.9, "Median Update Latency": 95.0, "Tail Update Latency": 253.9}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400017.0, "Median Read Latency": 113.1, "Tail Read Latency": 849.1, "Median Update Latency": 119.1, "Tail Update Latency": 882.8}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 562604.7, "Median Read Latency": 19819.4, "Tail Read Latency": 249845.8, "Median Update Latency": 19871.1, "Tail Update Latency": 249555.6}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 572312.9, "Median Read Latency": 6524.3, "Tail Read Latency": 228864.5, "Median Update Latency": 2602.5, "Tail Update Latency": 228616.6}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 621196.7, "Median Read Latency": 2295.2, "Tail Read Latency": 231836.0, "Median Update Latency": 1441.1, "Tail Update Latency": 230955.6}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 595177.6, "Median Read Latency": 13372.4, "Tail Read Latency": 46883.0, "Median Update Latency": 13426.8, "Tail Update Latency": 64667.1}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400026.7, "Median Read Latency": 115.7, "Tail Read Latency": 881.2, "Median Update Latency": 121.1, "Tail Update Latency": 929.1}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 498000.8, "Median Read Latency": 4060.3, "Tail Read Latency": 226676.1, "Median Update Latency": 2978.6, "Tail Update Latency": 225731.4}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 579656.7, "Median Read Latency": 12225.7, "Tail Read Latency": 219760.8, "Median Update Latency": 12238.9, "Tail Update Latency": 203698.4}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200001.8, "Median Read Latency": 88.1, "Tail Read Latency": 240.2, "Median Update Latency": 94.6, "Tail Update Latency": 251.4}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 594850.0, "Median Read Latency": 13333.6, "Tail Read Latency": 52682.0, "Median Update Latency": 13351.9, "Tail Update Latency": 56204.4}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499921.3, "Median Read Latency": 6662.5, "Tail Read Latency": 219673.4, "Median Update Latency": 6837.7, "Tail Update Latency": 211568.1}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 572487.8, "Median Read Latency": 10378.4, "Tail Read Latency": 226976.4, "Median Update Latency": 10403.8, "Tail Update Latency": 227094.8}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 594974.2, "Median Read Latency": 13359.6, "Tail Read Latency": 41942.6, "Median Update Latency": 13334.3, "Tail Update Latency": 44809.8}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 199997.8, "Median Read Latency": 78.3, "Tail Read Latency": 128.0, "Median Update Latency": 82.8, "Tail Update Latency": 134.8}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400037.0, "Median Read Latency": 115.5, "Tail Read Latency": 996.4, "Median Update Latency": 120.1, "Tail Update Latency": 1664.7}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 500010.9, "Median Read Latency": 165.0, "Tail Read Latency": 12206.4, "Median Update Latency": 179.4, "Tail Update Latency": 12184.2}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200000.1, "Median Read Latency": 95.5, "Tail Read Latency": 180.0, "Median Update Latency": 99.7, "Tail Update Latency": 182.7}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 99978.3, "Median Read Latency": 77.9, "Tail Read Latency": 118.1, "Median Update Latency": 83.2, "Tail Update Latency": 128.9}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 399987.9, "Median Read Latency": 108.4, "Tail Read Latency": 539.7, "Median Update Latency": 113.9, "Tail Update Latency": 539.2}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499820.4, "Median Read Latency": 5658.7, "Tail Read Latency": 212053.1, "Median Update Latency": 5741.1, "Tail Update Latency": 50321.8}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400070.7, "Median Read Latency": 111.9, "Tail Read Latency": 890.4, "Median Update Latency": 117.0, "Tail Update Latency": 828.8}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 601775.8, "Median Read Latency": 23117.3, "Tail Read Latency": 250232.9, "Median Update Latency": 23116.7, "Tail Update Latency": 246551.8}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100001.3, "Median Read Latency": 92.8, "Tail Read Latency": 140.9, "Median Update Latency": 98.0, "Tail Update Latency": 152.9}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 574754.4, "Median Read Latency": 357.0, "Tail Read Latency": 231151.6, "Median Update Latency": 557.4, "Tail Update Latency": 229444.1}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 573363.3, "Median Read Latency": 9889.6, "Tail Read Latency": 229927.1, "Median Update Latency": 9906.8, "Tail Update Latency": 231207.8}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 679908.4, "Median Read Latency": 5451.8, "Tail Read Latency": 230889.9, "Median Update Latency": 5681.1, "Tail Update Latency": 232091.7}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 609366.0, "Median Read Latency": 16768.6, "Tail Read Latency": 247631.3, "Median Update Latency": 17033.4, "Tail Update Latency": 253910.6}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200039.8, "Median Read Latency": 95.6, "Tail Read Latency": 174.6, "Median Update Latency": 100.5, "Tail Update Latency": 180.7}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 596702.7, "Median Read Latency": 13428.9, "Tail Read Latency": 51857.9, "Median Update Latency": 13435.2, "Tail Update Latency": 83668.0}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 576584.3, "Median Read Latency": 10177.2, "Tail Read Latency": 228562.7, "Median Update Latency": 10194.1, "Tail Update Latency": 227658.5}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499992.8, "Median Read Latency": 162.7, "Tail Read Latency": 11374.3, "Median Update Latency": 167.4, "Tail Update Latency": 11372.9}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 595017.0, "Median Read Latency": 17998.2, "Tail Read Latency": 243922.3, "Median Update Latency": 18344.5, "Tail Update Latency": 239502.7}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199994.0, "Median Read Latency": 88.5, "Tail Read Latency": 239.3, "Median Update Latency": 95.4, "Tail Update Latency": 248.8}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 299957.9, "Median Read Latency": 105.1, "Tail Read Latency": 274.5, "Median Update Latency": 109.5, "Tail Update Latency": 287.3}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200018.7, "Median Read Latency": 95.2, "Tail Read Latency": 172.9, "Median Update Latency": 100.4, "Tail Update Latency": 174.6}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 500038.3, "Median Read Latency": 211.6, "Tail Read Latency": 11382.7, "Median Update Latency": 206.1, "Tail Update Latency": 11382.7}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 597722.5, "Median Read Latency": 13397.7, "Tail Read Latency": 58411.2, "Median Update Latency": 13387.9, "Tail Update Latency": 68941.3}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100030.7, "Median Read Latency": 85.7, "Tail Read Latency": 163.9, "Median Update Latency": 92.0, "Tail Update Latency": 171.4}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 558818.6, "Median Read Latency": 13363.8, "Tail Read Latency": 248229.0, "Median Update Latency": 13350.2, "Tail Update Latency": 249960.2}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 621757.3, "Median Read Latency": 5239.7, "Tail Read Latency": 234406.2, "Median Update Latency": 6894.0, "Tail Update Latency": 234114.4}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 679182.4, "Median Read Latency": 5967.0, "Tail Read Latency": 228719.6, "Median Update Latency": 6772.4, "Tail Update Latency": 228625.2}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200045.5, "Median Read Latency": 79.2, "Tail Read Latency": 128.4, "Median Update Latency": 84.2, "Tail Update Latency": 137.4}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 99987.1, "Median Read Latency": 93.3, "Tail Read Latency": 141.6, "Median Update Latency": 98.5, "Tail Update Latency": 152.4}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300010.7, "Median Read Latency": 92.5, "Tail Read Latency": 349.6, "Median Update Latency": 99.4, "Tail Update Latency": 379.9}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400028.0, "Median Read Latency": 113.6, "Tail Read Latency": 841.4, "Median Update Latency": 120.0, "Tail Update Latency": 882.9}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 593569.4, "Median Read Latency": 13403.1, "Tail Read Latency": 39646.1, "Median Update Latency": 13399.0, "Tail Update Latency": 37874.8}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400020.1, "Median Read Latency": 107.8, "Tail Read Latency": 564.8, "Median Update Latency": 112.1, "Tail Update Latency": 551.0}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 597114.9, "Median Read Latency": 18109.7, "Tail Read Latency": 246701.4, "Median Update Latency": 17982.1, "Tail Update Latency": 247698.7}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 592504.7, "Median Read Latency": 13426.0, "Tail Read Latency": 44154.2, "Median Update Latency": 13401.8, "Tail Update Latency": 46925.7}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300004.6, "Median Read Latency": 87.4, "Tail Read Latency": 181.7, "Median Update Latency": 92.3, "Tail Update Latency": 184.6}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199991.6, "Median Read Latency": 87.7, "Tail Read Latency": 238.7, "Median Update Latency": 94.3, "Tail Update Latency": 241.1}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300039.2, "Median Read Latency": 100.0, "Tail Read Latency": 465.5, "Median Update Latency": 105.5, "Tail Update Latency": 437.3}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 555859.2, "Median Read Latency": 14324.7, "Tail Read Latency": 252224.7, "Median Update Latency": 14183.0, "Tail Update Latency": 253064.7}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 591884.8, "Median Read Latency": 18852.4, "Tail Read Latency": 245546.0, "Median Update Latency": 18781.5, "Tail Update Latency": 251330.1}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 560411.7, "Median Read Latency": 16212.0, "Tail Read Latency": 249414.2, "Median Update Latency": 16315.3, "Tail Update Latency": 252118.3}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499875.4, "Median Read Latency": 7148.7, "Tail Read Latency": 221728.4, "Median Update Latency": 6854.7, "Tail Update Latency": 223478.5}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 603884.3, "Median Read Latency": 12495.1, "Tail Read Latency": 220449.1, "Median Update Latency": 12489.2, "Tail Update Latency": 220650.4}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 686509.4, "Median Read Latency": 6617.1, "Tail Read Latency": 231746.5, "Median Update Latency": 6934.3, "Tail Update Latency": 232363.0}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 623145.4, "Median Read Latency": 5661.8, "Tail Read Latency": 229372.2, "Median Update Latency": 6085.7, "Tail Update Latency": 230691.9}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100019.7, "Median Read Latency": 93.3, "Tail Read Latency": 142.6, "Median Update Latency": 98.3, "Tail Update Latency": 152.2}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499889.0, "Median Read Latency": 155.9, "Tail Read Latency": 12059.8, "Median Update Latency": 169.9, "Tail Update Latency": 12072.0}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100018.5, "Median Read Latency": 86.6, "Tail Read Latency": 164.3, "Median Update Latency": 92.9, "Tail Update Latency": 179.2}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100008.8, "Median Read Latency": 85.5, "Tail Read Latency": 162.2, "Median Update Latency": 92.2, "Tail Update Latency": 169.4}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 559071.8, "Median Read Latency": 13053.0, "Tail Read Latency": 247054.3, "Median Update Latency": 13181.4, "Tail Update Latency": 246805.2}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100016.0, "Median Read Latency": 78.2, "Tail Read Latency": 119.3, "Median Update Latency": 84.1, "Tail Update Latency": 130.7}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400025.2, "Median Read Latency": 104.6, "Tail Read Latency": 513.5, "Median Update Latency": 108.7, "Tail Update Latency": 505.0}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100009.2, "Median Read Latency": 93.0, "Tail Read Latency": 143.2, "Median Update Latency": 98.0, "Tail Update Latency": 154.2}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 399978.2, "Median Read Latency": 104.6, "Tail Read Latency": 482.3, "Median Update Latency": 109.5, "Tail Update Latency": 481.6}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 399992.4, "Median Read Latency": 115.3, "Tail Read Latency": 1018.2, "Median Update Latency": 121.2, "Tail Update Latency": 1420.5}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200039.6, "Median Read Latency": 88.3, "Tail Read Latency": 235.4, "Median Update Latency": 94.9, "Tail Update Latency": 242.1}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 498725.8, "Median Read Latency": 3893.4, "Tail Read Latency": 227347.3, "Median Update Latency": 3733.9, "Tail Update Latency": 227619.0}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200028.7, "Median Read Latency": 79.2, "Tail Read Latency": 129.6, "Median Update Latency": 84.3, "Tail Update Latency": 138.4}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 620433.1, "Median Read Latency": 21839.7, "Tail Read Latency": 249643.8, "Median Update Latency": 22022.9, "Tail Update Latency": 249993.9}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 569787.5, "Median Read Latency": 3043.0, "Tail Read Latency": 226727.4, "Median Update Latency": 6870.7, "Tail Update Latency": 227823.6}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 597059.4, "Median Read Latency": 13321.6, "Tail Read Latency": 45190.1, "Median Update Latency": 13316.7, "Tail Update Latency": 44028.0}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300053.7, "Median Read Latency": 86.8, "Tail Read Latency": 184.7, "Median Update Latency": 92.1, "Tail Update Latency": 192.5}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100014.4, "Median Read Latency": 93.1, "Tail Read Latency": 141.1, "Median Update Latency": 98.9, "Tail Update Latency": 150.9}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 618846.7, "Median Read Latency": 902.7, "Tail Read Latency": 227141.2, "Median Update Latency": 637.8, "Tail Update Latency": 224313.9}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 595532.7, "Median Read Latency": 16978.5, "Tail Read Latency": 248593.5, "Median Update Latency": 16895.7, "Tail Update Latency": 250405.5}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 620493.4, "Median Read Latency": 19597.9, "Tail Read Latency": 247174.2, "Median Update Latency": 19579.3, "Tail Update Latency": 250788.1}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 399994.3, "Median Read Latency": 103.5, "Tail Read Latency": 456.3, "Median Update Latency": 108.6, "Tail Update Latency": 464.3}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 572443.4, "Median Read Latency": 5819.9, "Tail Read Latency": 229576.2, "Median Update Latency": 5419.3, "Tail Update Latency": 230185.9}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200006.2, "Median Read Latency": 95.2, "Tail Read Latency": 174.1, "Median Update Latency": 99.8, "Tail Update Latency": 183.5}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 675884.4, "Median Read Latency": 5168.9, "Tail Read Latency": 232226.3, "Median Update Latency": 5221.0, "Tail Update Latency": 234665.5}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300048.0, "Median Read Latency": 104.7, "Tail Read Latency": 274.3, "Median Update Latency": 110.1, "Tail Update Latency": 270.9}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 593973.5, "Median Read Latency": 13469.9, "Tail Read Latency": 48997.9, "Median Update Latency": 13481.7, "Tail Update Latency": 43736.0}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400014.9, "Median Read Latency": 114.7, "Tail Read Latency": 985.2, "Median Update Latency": 117.9, "Tail Update Latency": 836.7}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100023.3, "Median Read Latency": 92.3, "Tail Read Latency": 140.0, "Median Update Latency": 97.5, "Tail Update Latency": 150.4}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200024.8, "Median Read Latency": 78.3, "Tail Read Latency": 127.6, "Median Update Latency": 82.7, "Tail Update Latency": 133.8}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 299955.1, "Median Read Latency": 92.6, "Tail Read Latency": 352.0, "Median Update Latency": 99.0, "Tail Update Latency": 340.3}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499993.2, "Median Read Latency": 496.8, "Tail Read Latency": 11875.1, "Median Update Latency": 347.0, "Tail Update Latency": 11798.5}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400080.4, "Median Read Latency": 105.7, "Tail Read Latency": 515.6, "Median Update Latency": 110.8, "Tail Update Latency": 518.0}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 621476.0, "Median Read Latency": 4652.6, "Tail Read Latency": 228156.0, "Median Update Latency": 4843.4, "Tail Update Latency": 226596.6}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 618279.2, "Median Read Latency": 4429.6, "Tail Read Latency": 228611.1, "Median Update Latency": 4362.4, "Tail Update Latency": 226378.2}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 593594.2, "Median Read Latency": 13393.0, "Tail Read Latency": 57221.3, "Median Update Latency": 13422.7, "Tail Update Latency": 80690.8}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200022.4, "Median Read Latency": 95.8, "Tail Read Latency": 172.8, "Median Update Latency": 100.5, "Tail Update Latency": 185.4}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 560918.1, "Median Read Latency": 16358.1, "Tail Read Latency": 253540.6, "Median Update Latency": 16212.4, "Tail Update Latency": 251232.8}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 669430.7, "Median Read Latency": 5583.0, "Tail Read Latency": 231084.5, "Median Update Latency": 6019.7, "Tail Update Latency": 232056.7}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 399991.3, "Median Read Latency": 106.0, "Tail Read Latency": 530.9, "Median Update Latency": 111.6, "Tail Update Latency": 541.9}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 399954.1, "Median Read Latency": 115.9, "Tail Read Latency": 1160.1, "Median Update Latency": 121.1, "Tail Update Latency": 1101.6}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 606298.3, "Median Read Latency": 12500.1, "Tail Read Latency": 221340.8, "Median Update Latency": 12479.4, "Tail Update Latency": 220126.4}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 677365.7, "Median Read Latency": 5572.2, "Tail Read Latency": 232186.6, "Median Update Latency": 5377.3, "Tail Update Latency": 234817.9}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 560278.3, "Median Read Latency": 15552.2, "Tail Read Latency": 251034.1, "Median Update Latency": 15592.0, "Tail Update Latency": 246436.6}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 595753.0, "Median Read Latency": 23720.5, "Tail Read Latency": 249422.3, "Median Update Latency": 23512.1, "Tail Update Latency": 249583.9}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400063.9, "Median Read Latency": 113.4, "Tail Read Latency": 862.6, "Median Update Latency": 120.0, "Tail Update Latency": 817.9}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499823.1, "Median Read Latency": 7675.7, "Tail Read Latency": 221134.1, "Median Update Latency": 7669.5, "Tail Update Latency": 221961.7}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 399924.2, "Median Read Latency": 113.2, "Tail Read Latency": 860.6, "Median Update Latency": 119.8, "Tail Update Latency": 955.3}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300058.2, "Median Read Latency": 87.1, "Tail Read Latency": 181.8, "Median Update Latency": 91.9, "Tail Update Latency": 186.4}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100027.5, "Median Read Latency": 79.1, "Tail Read Latency": 123.2, "Median Update Latency": 84.7, "Tail Update Latency": 132.5}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 598396.1, "Median Read Latency": 15300.7, "Tail Read Latency": 244675.0, "Median Update Latency": 15021.1, "Tail Update Latency": 241147.1}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 572232.9, "Median Read Latency": 5540.0, "Tail Read Latency": 226307.6, "Median Update Latency": 6565.7, "Tail Update Latency": 228217.0}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100026.0, "Median Read Latency": 79.4, "Tail Read Latency": 119.9, "Median Update Latency": 84.8, "Tail Update Latency": 127.7}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 612789.2, "Median Read Latency": 20433.4, "Tail Read Latency": 248317.0, "Median Update Latency": 19920.1, "Tail Update Latency": 248162.6}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 633366.9, "Median Read Latency": 27763.5, "Tail Read Latency": 261832.4, "Median Update Latency": 27589.3, "Tail Update Latency": 260902.8}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300076.6, "Median Read Latency": 91.9, "Tail Read Latency": 355.3, "Median Update Latency": 97.9, "Tail Update Latency": 346.9}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400067.4, "Median Read Latency": 104.2, "Tail Read Latency": 490.8, "Median Update Latency": 109.1, "Tail Update Latency": 489.3}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100018.2, "Median Read Latency": 79.5, "Tail Read Latency": 124.0, "Median Update Latency": 85.6, "Tail Update Latency": 130.7}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 673606.9, "Median Read Latency": 6399.4, "Tail Read Latency": 232519.9, "Median Update Latency": 7309.5, "Tail Update Latency": 233818.8}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 618746.2, "Median Read Latency": 5440.4, "Tail Read Latency": 229943.5, "Median Update Latency": 6759.6, "Tail Update Latency": 229563.8}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300022.9, "Median Read Latency": 87.6, "Tail Read Latency": 182.6, "Median Update Latency": 92.8, "Tail Update Latency": 187.9}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400008.0, "Median Read Latency": 111.5, "Tail Read Latency": 841.2, "Median Update Latency": 118.5, "Tail Update Latency": 843.9}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300049.4, "Median Read Latency": 88.0, "Tail Read Latency": 183.8, "Median Update Latency": 94.3, "Tail Update Latency": 187.9}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 299973.6, "Median Read Latency": 103.9, "Tail Read Latency": 264.6, "Median Update Latency": 108.6, "Tail Update Latency": 264.8}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 634051.9, "Median Read Latency": 29679.0, "Tail Read Latency": 276428.2, "Median Update Latency": 29553.8, "Tail Update Latency": 275365.1}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 595601.7, "Median Read Latency": 16592.4, "Tail Read Latency": 248858.5, "Median Update Latency": 16643.3, "Tail Update Latency": 249676.4}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 299996.7, "Median Read Latency": 105.2, "Tail Read Latency": 265.0, "Median Update Latency": 110.0, "Tail Update Latency": 291.7}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 601384.7, "Median Read Latency": 21991.8, "Tail Read Latency": 251918.5, "Median Update Latency": 22250.9, "Tail Update Latency": 254757.7}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 672509.3, "Median Read Latency": 6597.4, "Tail Read Latency": 231210.5, "Median Update Latency": 6618.7, "Tail Update Latency": 230082.2}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 618813.0, "Median Read Latency": 2470.6, "Tail Read Latency": 229954.7, "Median Update Latency": 448.3, "Tail Update Latency": 230106.4}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 399964.2, "Median Read Latency": 104.2, "Tail Read Latency": 500.7, "Median Update Latency": 109.3, "Tail Update Latency": 512.1}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200027.6, "Median Read Latency": 88.4, "Tail Read Latency": 242.7, "Median Update Latency": 95.4, "Tail Update Latency": 259.1}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200074.5, "Median Read Latency": 95.6, "Tail Read Latency": 174.1, "Median Update Latency": 100.6, "Tail Update Latency": 180.8}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 590638.3, "Median Read Latency": 20591.5, "Tail Read Latency": 245328.4, "Median Update Latency": 20026.6, "Tail Update Latency": 247076.2}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499880.6, "Median Read Latency": 6449.0, "Tail Read Latency": 220474.9, "Median Update Latency": 6244.1, "Tail Update Latency": 221755.8}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499651.8, "Median Read Latency": 3100.6, "Tail Read Latency": 224805.6, "Median Update Latency": 3231.5, "Tail Update Latency": 220308.2}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 679918.1, "Median Read Latency": 6117.7, "Tail Read Latency": 235370.8, "Median Update Latency": 5461.9, "Tail Update Latency": 235881.3}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 562603.6, "Median Read Latency": 17687.5, "Tail Read Latency": 249811.6, "Median Update Latency": 17850.1, "Tail Update Latency": 248409.0}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 498800.0, "Median Read Latency": 4824.4, "Tail Read Latency": 226001.1, "Median Update Latency": 3904.7, "Tail Update Latency": 225754.6}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300001.7, "Median Read Latency": 87.0, "Tail Read Latency": 177.7, "Median Update Latency": 91.8, "Tail Update Latency": 186.5}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200017.1, "Median Read Latency": 79.3, "Tail Read Latency": 128.7, "Median Update Latency": 84.2, "Tail Update Latency": 141.4}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400017.2, "Median Read Latency": 115.5, "Tail Read Latency": 1159.7, "Median Update Latency": 120.1, "Tail Update Latency": 989.5}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 99991.2, "Median Read Latency": 78.9, "Tail Read Latency": 121.9, "Median Update Latency": 84.3, "Tail Update Latency": 129.4}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200019.4, "Median Read Latency": 78.7, "Tail Read Latency": 127.4, "Median Update Latency": 83.4, "Tail Update Latency": 138.3}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 574746.3, "Median Read Latency": 10094.5, "Tail Read Latency": 229286.1, "Median Update Latency": 10163.4, "Tail Update Latency": 228392.7}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 666919.6, "Median Read Latency": 5602.6, "Tail Read Latency": 231151.9, "Median Update Latency": 7137.9, "Tail Update Latency": 230738.8}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300001.0, "Median Read Latency": 87.0, "Tail Read Latency": 178.4, "Median Update Latency": 92.1, "Tail Update Latency": 184.3}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400016.4, "Median Read Latency": 112.3, "Tail Read Latency": 861.1, "Median Update Latency": 119.0, "Tail Update Latency": 826.2}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 554192.0, "Median Read Latency": 14565.8, "Tail Read Latency": 251281.6, "Median Update Latency": 14621.9, "Tail Update Latency": 248503.4}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400004.9, "Median Read Latency": 112.6, "Tail Read Latency": 847.6, "Median Update Latency": 119.8, "Tail Update Latency": 780.5}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499926.2, "Median Read Latency": 202.8, "Tail Read Latency": 11364.8, "Median Update Latency": 225.1, "Tail Update Latency": 11373.2}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499827.3, "Median Read Latency": 6236.1, "Tail Read Latency": 219172.4, "Median Update Latency": 6311.9, "Tail Update Latency": 218648.6}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 299983.9, "Median Read Latency": 105.0, "Tail Read Latency": 266.1, "Median Update Latency": 110.0, "Tail Update Latency": 270.9}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 572297.0, "Median Read Latency": 7121.5, "Tail Read Latency": 229699.2, "Median Update Latency": 6446.6, "Tail Update Latency": 229921.5}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300049.7, "Median Read Latency": 100.0, "Tail Read Latency": 462.1, "Median Update Latency": 106.0, "Tail Update Latency": 495.3}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300036.2, "Median Read Latency": 97.4, "Tail Read Latency": 215.2, "Median Update Latency": 101.7, "Tail Update Latency": 222.3}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 592848.3, "Median Read Latency": 13499.3, "Tail Read Latency": 54109.4, "Median Update Latency": 13537.0, "Tail Update Latency": 67041.7}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 599841.2, "Median Read Latency": 13013.2, "Tail Read Latency": 219173.4, "Median Update Latency": 12913.4, "Tail Update Latency": 78396.6}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499623.8, "Median Read Latency": 3350.4, "Tail Read Latency": 224439.8, "Median Update Latency": 2713.4, "Tail Update Latency": 227667.6}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400044.7, "Median Read Latency": 114.6, "Tail Read Latency": 904.6, "Median Update Latency": 121.3, "Tail Update Latency": 889.9}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 99961.3, "Median Read Latency": 78.9, "Tail Read Latency": 121.4, "Median Update Latency": 84.1, "Tail Update Latency": 129.1}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 399956.7, "Median Read Latency": 111.9, "Tail Read Latency": 913.7, "Median Update Latency": 117.9, "Tail Update Latency": 812.8}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199987.8, "Median Read Latency": 88.7, "Tail Read Latency": 240.9, "Median Update Latency": 94.8, "Tail Update Latency": 263.6}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 578039.8, "Median Read Latency": 12007.4, "Tail Read Latency": 222983.8, "Median Update Latency": 12072.4, "Tail Update Latency": 223117.5}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 599235.9, "Median Read Latency": 12980.0, "Tail Read Latency": 89029.3, "Median Update Latency": 13117.6, "Tail Update Latency": 84983.3}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400003.6, "Median Read Latency": 104.1, "Tail Read Latency": 506.4, "Median Update Latency": 108.0, "Tail Update Latency": 499.3}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 667063.6, "Median Read Latency": 7072.8, "Tail Read Latency": 228047.4, "Median Update Latency": 6478.2, "Tail Update Latency": 226000.1}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 591587.5, "Median Read Latency": 13359.7, "Tail Read Latency": 50039.7, "Median Update Latency": 13361.1, "Tail Update Latency": 49096.8}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100046.8, "Median Read Latency": 93.6, "Tail Read Latency": 141.1, "Median Update Latency": 98.7, "Tail Update Latency": 149.6}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100035.3, "Median Read Latency": 93.2, "Tail Read Latency": 140.9, "Median Update Latency": 98.0, "Tail Update Latency": 149.2}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 579557.0, "Median Read Latency": 11146.3, "Tail Read Latency": 225592.5, "Median Update Latency": 11213.4, "Tail Update Latency": 227281.7}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499854.0, "Median Read Latency": 6874.0, "Tail Read Latency": 221957.8, "Median Update Latency": 6881.0, "Tail Update Latency": 223218.6}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199990.1, "Median Read Latency": 88.2, "Tail Read Latency": 238.6, "Median Update Latency": 95.8, "Tail Update Latency": 247.6}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 617227.7, "Median Read Latency": 17171.0, "Tail Read Latency": 249354.5, "Median Update Latency": 16888.9, "Tail Update Latency": 253622.6}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 616791.3, "Median Read Latency": 7783.5, "Tail Read Latency": 231012.6, "Median Update Latency": 7816.4, "Tail Update Latency": 229123.0}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100038.9, "Median Read Latency": 78.3, "Tail Read Latency": 119.7, "Median Update Latency": 83.5, "Tail Update Latency": 130.2}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 600648.1, "Median Read Latency": 19930.5, "Tail Read Latency": 252949.2, "Median Update Latency": 19774.3, "Tail Update Latency": 254769.5}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400077.3, "Median Read Latency": 115.5, "Tail Read Latency": 1407.8, "Median Update Latency": 119.4, "Tail Update Latency": 1102.4}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100003.5, "Median Read Latency": 85.9, "Tail Read Latency": 164.6, "Median Update Latency": 92.1, "Tail Update Latency": 171.8}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 99984.3, "Median Read Latency": 78.3, "Tail Read Latency": 120.5, "Median Update Latency": 83.7, "Tail Update Latency": 128.5}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 596507.7, "Median Read Latency": 13251.2, "Tail Read Latency": 73339.7, "Median Update Latency": 13352.3, "Tail Update Latency": 112626.7}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200030.3, "Median Read Latency": 94.9, "Tail Read Latency": 171.9, "Median Update Latency": 99.8, "Tail Update Latency": 185.1}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499890.3, "Median Read Latency": 6051.4, "Tail Read Latency": 220881.9, "Median Update Latency": 5816.4, "Tail Update Latency": 220025.4}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 617601.3, "Median Read Latency": 6576.4, "Tail Read Latency": 228343.0, "Median Update Latency": 6669.8, "Tail Update Latency": 229107.3}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 614289.3, "Median Read Latency": 27798.8, "Tail Read Latency": 249319.1, "Median Update Latency": 28052.1, "Tail Update Latency": 255922.6}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400085.5, "Median Read Latency": 108.2, "Tail Read Latency": 596.3, "Median Update Latency": 112.3, "Tail Update Latency": 580.3}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499937.2, "Median Read Latency": 246.8, "Tail Read Latency": 12044.7, "Median Update Latency": 370.5, "Tail Update Latency": 11969.0}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300032.5, "Median Read Latency": 99.9, "Tail Read Latency": 450.5, "Median Update Latency": 106.5, "Tail Update Latency": 506.6}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200065.4, "Median Read Latency": 78.6, "Tail Read Latency": 127.6, "Median Update Latency": 83.6, "Tail Update Latency": 136.7}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200023.6, "Median Read Latency": 95.8, "Tail Read Latency": 175.4, "Median Update Latency": 100.8, "Tail Update Latency": 181.3}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200018.8, "Median Read Latency": 88.0, "Tail Read Latency": 237.2, "Median Update Latency": 95.0, "Tail Update Latency": 241.3}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100003.9, "Median Read Latency": 92.9, "Tail Read Latency": 141.7, "Median Update Latency": 98.0, "Tail Update Latency": 149.9}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200027.7, "Median Read Latency": 78.8, "Tail Read Latency": 128.1, "Median Update Latency": 84.1, "Tail Update Latency": 138.5}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 573103.5, "Median Read Latency": 6813.3, "Tail Read Latency": 228646.3, "Median Update Latency": 6506.7, "Tail Update Latency": 228655.2}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 500002.4, "Median Read Latency": 165.8, "Tail Read Latency": 12247.6, "Median Update Latency": 153.3, "Tail Update Latency": 12160.1}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499939.4, "Median Read Latency": 236.9, "Tail Read Latency": 11686.2, "Median Update Latency": 1735.2, "Tail Update Latency": 11889.0}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100010.1, "Median Read Latency": 92.7, "Tail Read Latency": 140.3, "Median Update Latency": 98.4, "Tail Update Latency": 150.4}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200049.3, "Median Read Latency": 79.0, "Tail Read Latency": 128.4, "Median Update Latency": 83.8, "Tail Update Latency": 135.6}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499781.9, "Median Read Latency": 6814.0, "Tail Read Latency": 221736.9, "Median Update Latency": 6911.9, "Tail Update Latency": 208931.6}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 570152.2, "Median Read Latency": 5421.5, "Tail Read Latency": 227907.2, "Median Update Latency": 370.5, "Tail Update Latency": 226747.8}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 577102.5, "Median Read Latency": 10328.5, "Tail Read Latency": 229337.1, "Median Update Latency": 10259.6, "Tail Update Latency": 228080.1}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300011.4, "Median Read Latency": 104.6, "Tail Read Latency": 269.3, "Median Update Latency": 108.7, "Tail Update Latency": 273.6}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 679919.6, "Median Read Latency": 6524.6, "Tail Read Latency": 232330.6, "Median Update Latency": 6061.6, "Tail Update Latency": 230619.7}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 573394.8, "Median Read Latency": 847.7, "Tail Read Latency": 229024.9, "Median Update Latency": 383.2, "Tail Update Latency": 229457.9}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200085.1, "Median Read Latency": 88.4, "Tail Read Latency": 241.4, "Median Update Latency": 95.2, "Tail Update Latency": 234.6}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200047.0, "Median Read Latency": 94.9, "Tail Read Latency": 171.3, "Median Update Latency": 99.5, "Tail Update Latency": 172.3}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 559301.4, "Median Read Latency": 14825.1, "Tail Read Latency": 254187.0, "Median Update Latency": 14664.1, "Tail Update Latency": 254937.9}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100010.6, "Median Read Latency": 85.3, "Tail Read Latency": 162.3, "Median Update Latency": 91.4, "Tail Update Latency": 173.7}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 578074.7, "Median Read Latency": 11791.1, "Tail Read Latency": 223980.5, "Median Update Latency": 11864.7, "Tail Update Latency": 226155.9}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100001.6, "Median Read Latency": 85.8, "Tail Read Latency": 162.2, "Median Update Latency": 92.7, "Tail Update Latency": 171.3}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400002.4, "Median Read Latency": 116.0, "Tail Read Latency": 1275.3, "Median Update Latency": 120.4, "Tail Update Latency": 1950.4}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 99993.8, "Median Read Latency": 85.5, "Tail Read Latency": 165.2, "Median Update Latency": 91.9, "Tail Update Latency": 174.4}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300001.0, "Median Read Latency": 104.6, "Tail Read Latency": 264.9, "Median Update Latency": 109.1, "Tail Update Latency": 267.0}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300047.2, "Median Read Latency": 104.8, "Tail Read Latency": 270.7, "Median Update Latency": 108.8, "Tail Update Latency": 291.1}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 99984.4, "Median Read Latency": 92.5, "Tail Read Latency": 140.9, "Median Update Latency": 97.6, "Tail Update Latency": 151.5}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499211.4, "Median Read Latency": 4829.0, "Tail Read Latency": 227460.6, "Median Update Latency": 5820.2, "Tail Update Latency": 228629.5}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 399973.0, "Median Read Latency": 116.6, "Tail Read Latency": 1517.8, "Median Update Latency": 122.0, "Tail Update Latency": 2040.5}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 604492.9, "Median Read Latency": 22608.3, "Tail Read Latency": 250393.4, "Median Update Latency": 23071.2, "Tail Update Latency": 256668.7}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 611693.3, "Median Read Latency": 14027.6, "Tail Read Latency": 243356.0, "Median Update Latency": 14022.5, "Tail Update Latency": 250001.8}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200042.2, "Median Read Latency": 88.5, "Tail Read Latency": 243.2, "Median Update Latency": 94.9, "Tail Update Latency": 236.6}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 559704.6, "Median Read Latency": 14430.7, "Tail Read Latency": 250332.9, "Median Update Latency": 14418.1, "Tail Update Latency": 253148.7}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499223.6, "Median Read Latency": 4367.8, "Tail Read Latency": 226883.4, "Median Update Latency": 5244.0, "Tail Update Latency": 221016.3}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 568544.1, "Median Read Latency": 2365.9, "Tail Read Latency": 228962.5, "Median Update Latency": 4500.7, "Tail Update Latency": 230563.3}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100000.3, "Median Read Latency": 78.8, "Tail Read Latency": 119.8, "Median Update Latency": 84.1, "Tail Update Latency": 127.7}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499122.9, "Median Read Latency": 3607.2, "Tail Read Latency": 224649.4, "Median Update Latency": 3444.9, "Tail Update Latency": 225614.4}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400014.4, "Median Read Latency": 116.2, "Tail Read Latency": 1195.9, "Median Update Latency": 120.5, "Tail Update Latency": 1364.5}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199998.7, "Median Read Latency": 88.4, "Tail Read Latency": 243.1, "Median Update Latency": 94.8, "Tail Update Latency": 250.8}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 99995.7, "Median Read Latency": 86.0, "Tail Read Latency": 169.2, "Median Update Latency": 92.9, "Tail Update Latency": 184.7}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100033.6, "Median Read Latency": 92.2, "Tail Read Latency": 140.4, "Median Update Latency": 97.9, "Tail Update Latency": 150.8}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400016.4, "Median Read Latency": 107.1, "Tail Read Latency": 600.3, "Median Update Latency": 113.1, "Tail Update Latency": 614.8}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 596136.4, "Median Read Latency": 13397.2, "Tail Read Latency": 56097.2, "Median Update Latency": 13382.5, "Tail Update Latency": 52032.8}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 99991.6, "Median Read Latency": 78.8, "Tail Read Latency": 123.0, "Median Update Latency": 84.3, "Tail Update Latency": 129.0}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 577576.0, "Median Read Latency": 11304.9, "Tail Read Latency": 223373.9, "Median Update Latency": 11351.8, "Tail Update Latency": 222493.1}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 621059.2, "Median Read Latency": 836.3, "Tail Read Latency": 229758.4, "Median Update Latency": 5313.0, "Tail Update Latency": 229136.4}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200039.4, "Median Read Latency": 79.0, "Tail Read Latency": 128.4, "Median Update Latency": 83.6, "Tail Update Latency": 137.9}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 563457.7, "Median Read Latency": 16701.6, "Tail Read Latency": 249200.5, "Median Update Latency": 16861.1, "Tail Update Latency": 248788.2}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 399982.2, "Median Read Latency": 113.1, "Tail Read Latency": 881.3, "Median Update Latency": 119.4, "Tail Update Latency": 900.6}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 595465.4, "Median Read Latency": 13157.2, "Tail Read Latency": 75250.3, "Median Update Latency": 13247.2, "Tail Update Latency": 80003.1}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499959.8, "Median Read Latency": 262.9, "Tail Read Latency": 12395.7, "Median Update Latency": 295.8, "Tail Update Latency": 12350.6}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 589612.6, "Median Read Latency": 13433.9, "Tail Read Latency": 47674.3, "Median Update Latency": 13410.5, "Tail Update Latency": 57342.6}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 199957.2, "Median Read Latency": 80.1, "Tail Read Latency": 138.1, "Median Update Latency": 85.2, "Tail Update Latency": 143.2}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200034.1, "Median Read Latency": 94.9, "Tail Read Latency": 171.1, "Median Update Latency": 99.7, "Tail Update Latency": 180.0}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 500007.9, "Median Read Latency": 178.2, "Tail Read Latency": 12033.8, "Median Update Latency": 168.2, "Tail Update Latency": 12001.3}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 497856.1, "Median Read Latency": 4145.0, "Tail Read Latency": 226546.5, "Median Update Latency": 3441.9, "Tail Update Latency": 227252.1}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300033.4, "Median Read Latency": 104.2, "Tail Read Latency": 268.6, "Median Update Latency": 109.9, "Tail Update Latency": 279.2}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 568855.7, "Median Read Latency": 9605.0, "Tail Read Latency": 232225.5, "Median Update Latency": 9612.0, "Tail Update Latency": 232598.3}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200009.7, "Median Read Latency": 88.0, "Tail Read Latency": 239.6, "Median Update Latency": 94.3, "Tail Update Latency": 241.1}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 570228.2, "Median Read Latency": 6570.1, "Tail Read Latency": 225938.3, "Median Update Latency": 6319.2, "Tail Update Latency": 221840.9}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 299969.9, "Median Read Latency": 90.6, "Tail Read Latency": 349.4, "Median Update Latency": 96.7, "Tail Update Latency": 363.3}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 620657.5, "Median Read Latency": 5477.7, "Tail Read Latency": 231316.9, "Median Update Latency": 3529.9, "Tail Update Latency": 232065.4}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 99976.6, "Median Read Latency": 92.6, "Tail Read Latency": 140.5, "Median Update Latency": 97.5, "Tail Update Latency": 149.4}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400042.8, "Median Read Latency": 117.3, "Tail Read Latency": 1777.2, "Median Update Latency": 123.8, "Tail Update Latency": 1476.7}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100038.9, "Median Read Latency": 79.2, "Tail Read Latency": 122.3, "Median Update Latency": 85.3, "Tail Update Latency": 130.3}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 680848.2, "Median Read Latency": 6171.2, "Tail Read Latency": 227595.7, "Median Update Latency": 6211.2, "Tail Update Latency": 226364.4}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400014.0, "Median Read Latency": 113.7, "Tail Read Latency": 861.3, "Median Update Latency": 120.8, "Tail Update Latency": 910.6}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 299995.0, "Median Read Latency": 99.8, "Tail Read Latency": 460.1, "Median Update Latency": 105.9, "Tail Update Latency": 467.5}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499364.1, "Median Read Latency": 2224.1, "Tail Read Latency": 226096.6, "Median Update Latency": 3068.3, "Tail Update Latency": 225018.1}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 500025.6, "Median Read Latency": 313.0, "Tail Read Latency": 11828.0, "Median Update Latency": 321.6, "Tail Update Latency": 11853.5}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 620927.4, "Median Read Latency": 24535.1, "Tail Read Latency": 257784.9, "Median Update Latency": 24537.7, "Tail Update Latency": 255864.2}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 602632.4, "Median Read Latency": 13072.1, "Tail Read Latency": 61232.2, "Median Update Latency": 13168.5, "Tail Update Latency": 92245.5}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199927.4, "Median Read Latency": 89.4, "Tail Read Latency": 245.8, "Median Update Latency": 95.9, "Tail Update Latency": 254.7}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 595090.7, "Median Read Latency": 16183.6, "Tail Read Latency": 247979.2, "Median Update Latency": 16252.1, "Tail Update Latency": 250173.3}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 618956.2, "Median Read Latency": 6020.9, "Tail Read Latency": 229495.0, "Median Update Latency": 415.4, "Tail Update Latency": 230616.9}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 399956.4, "Median Read Latency": 104.6, "Tail Read Latency": 502.8, "Median Update Latency": 109.0, "Tail Update Latency": 496.5}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 299923.6, "Median Read Latency": 88.0, "Tail Read Latency": 180.5, "Median Update Latency": 93.2, "Tail Update Latency": 186.6}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300010.4, "Median Read Latency": 99.9, "Tail Read Latency": 441.2, "Median Update Latency": 105.4, "Tail Update Latency": 423.4}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300014.0, "Median Read Latency": 97.4, "Tail Read Latency": 219.0, "Median Update Latency": 101.9, "Tail Update Latency": 236.6}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499459.5, "Median Read Latency": 4253.1, "Tail Read Latency": 224248.7, "Median Update Latency": 3402.1, "Tail Update Latency": 224262.8}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300062.5, "Median Read Latency": 91.6, "Tail Read Latency": 357.4, "Median Update Latency": 98.9, "Tail Update Latency": 364.4}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 678611.1, "Median Read Latency": 6160.8, "Tail Read Latency": 229544.6, "Median Update Latency": 5851.0, "Tail Update Latency": 229411.7}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 578256.9, "Median Read Latency": 11180.9, "Tail Read Latency": 225596.4, "Median Update Latency": 11147.2, "Tail Update Latency": 222763.9}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400003.0, "Median Read Latency": 116.8, "Tail Read Latency": 1089.4, "Median Update Latency": 122.7, "Tail Update Latency": 831.8}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300032.2, "Median Read Latency": 90.3, "Tail Read Latency": 348.7, "Median Update Latency": 96.4, "Tail Update Latency": 350.9}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200064.6, "Median Read Latency": 78.7, "Tail Read Latency": 128.0, "Median Update Latency": 84.5, "Tail Update Latency": 138.0}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 399974.1, "Median Read Latency": 115.0, "Tail Read Latency": 1410.0, "Median Update Latency": 120.0, "Tail Update Latency": 1261.5}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100010.9, "Median Read Latency": 85.4, "Tail Read Latency": 160.3, "Median Update Latency": 91.7, "Tail Update Latency": 173.0}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400024.5, "Median Read Latency": 106.4, "Tail Read Latency": 505.2, "Median Update Latency": 111.2, "Tail Update Latency": 491.0}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300011.7, "Median Read Latency": 87.3, "Tail Read Latency": 178.7, "Median Update Latency": 92.3, "Tail Update Latency": 184.7}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 99988.9, "Median Read Latency": 93.3, "Tail Read Latency": 140.6, "Median Update Latency": 98.0, "Tail Update Latency": 150.8}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 299993.4, "Median Read Latency": 87.5, "Tail Read Latency": 181.0, "Median Update Latency": 93.2, "Tail Update Latency": 182.8}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 617912.5, "Median Read Latency": 25810.6, "Tail Read Latency": 252464.1, "Median Update Latency": 25674.3, "Tail Update Latency": 251736.1}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 625701.7, "Median Read Latency": 22503.9, "Tail Read Latency": 259542.7, "Median Update Latency": 22468.4, "Tail Update Latency": 267154.9}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499785.2, "Median Read Latency": 6496.3, "Tail Read Latency": 222659.0, "Median Update Latency": 6234.7, "Tail Update Latency": 222262.0}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 572021.8, "Median Read Latency": 9548.6, "Tail Read Latency": 233766.8, "Median Update Latency": 9524.3, "Tail Update Latency": 236551.7}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200009.0, "Median Read Latency": 95.4, "Tail Read Latency": 175.8, "Median Update Latency": 100.7, "Tail Update Latency": 190.9}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200027.1, "Median Read Latency": 78.6, "Tail Read Latency": 126.6, "Median Update Latency": 83.1, "Tail Update Latency": 129.1}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 557369.8, "Median Read Latency": 16483.1, "Tail Read Latency": 253742.7, "Median Update Latency": 16400.4, "Tail Update Latency": 255241.9}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499805.4, "Median Read Latency": 6508.7, "Tail Read Latency": 221536.4, "Median Update Latency": 6509.6, "Tail Update Latency": 223234.9}], ["forall", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300035.4, "Median Read Latency": 100.2, "Tail Read Latency": 457.3, "Median Update Latency": 106.8, "Tail Update Latency": 525.7}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300050.2, "Median Read Latency": 96.4, "Tail Read Latency": 213.9, "Median Update Latency": 100.7, "Tail Update Latency": 220.0}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499885.9, "Median Read Latency": 7063.8, "Tail Read Latency": 214747.3, "Median Update Latency": 6995.4, "Tail Update Latency": 219631.2}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 609226.7, "Median Read Latency": 14494.9, "Tail Read Latency": 237210.7, "Median Update Latency": 14428.8, "Tail Update Latency": 235805.5}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 569466.3, "Median Read Latency": 511.4, "Tail Read Latency": 226153.5, "Median Update Latency": 364.6, "Tail Update Latency": 224980.5}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499908.5, "Median Read Latency": 5780.3, "Tail Read Latency": 221614.4, "Median Update Latency": 5583.2, "Tail Update Latency": 223730.2}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 564939.5, "Median Read Latency": 9668.2, "Tail Read Latency": 232075.5, "Median Update Latency": 9684.1, "Tail Update Latency": 233548.1}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100060.1, "Median Read Latency": 78.8, "Tail Read Latency": 121.0, "Median Update Latency": 84.6, "Tail Update Latency": 130.7}], ["forall", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199988.8, "Median Read Latency": 88.0, "Tail Read Latency": 242.2, "Median Update Latency": 95.1, "Tail Update Latency": 263.1}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 619177.1, "Median Read Latency": 5783.8, "Tail Read Latency": 230993.8, "Median Update Latency": 5783.0, "Tail Update Latency": 228857.0}], ["forall", "memcached forall", {"Target QPS": 700000, "Actual QPS": 591662.2, "Median Read Latency": 13386.9, "Tail Read Latency": 50085.4, "Median Update Latency": 13368.7, "Tail Update Latency": 44908.7}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100031.6, "Median Read Latency": 78.6, "Tail Read Latency": 120.5, "Median Update Latency": 84.0, "Tail Update Latency": 128.7}], ["forall", "memcached forall", {"Target QPS": 600000, "Actual QPS": 578665.8, "Median Read Latency": 12495.4, "Tail Read Latency": 71938.0, "Median Update Latency": 12460.8, "Tail Update Latency": 134007.8}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 593825.5, "Median Read Latency": 13381.8, "Tail Read Latency": 42648.3, "Median Update Latency": 13428.1, "Tail Update Latency": 52034.5}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400058.1, "Median Read Latency": 107.0, "Tail Read Latency": 542.8, "Median Update Latency": 112.4, "Tail Update Latency": 534.6}], ["forall", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100023.5, "Median Read Latency": 86.3, "Tail Read Latency": 167.1, "Median Update Latency": 93.4, "Tail Update Latency": 177.1}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 500013.8, "Median Read Latency": 427.0, "Tail Read Latency": 11978.9, "Median Update Latency": 1271.9, "Tail Update Latency": 12021.7}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200028.8, "Median Read Latency": 79.0, "Tail Read Latency": 128.9, "Median Update Latency": 84.0, "Tail Update Latency": 135.6}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 622974.3, "Median Read Latency": 25949.6, "Tail Read Latency": 253985.8, "Median Update Latency": 26016.2, "Tail Update Latency": 256999.9}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 498679.6, "Median Read Latency": 2696.6, "Tail Read Latency": 224780.0, "Median Update Latency": 3725.6, "Tail Update Latency": 225606.8}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300005.0, "Median Read Latency": 87.2, "Tail Read Latency": 181.0, "Median Update Latency": 91.9, "Tail Update Latency": 190.0}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100054.4, "Median Read Latency": 78.9, "Tail Read Latency": 121.5, "Median Update Latency": 84.5, "Tail Update Latency": 128.5}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 594765.9, "Median Read Latency": 13457.0, "Tail Read Latency": 57014.3, "Median Update Latency": 13535.6, "Tail Update Latency": 62271.0}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100045.0, "Median Read Latency": 94.0, "Tail Read Latency": 147.8, "Median Update Latency": 98.6, "Tail Update Latency": 155.2}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 570755.1, "Median Read Latency": 1747.1, "Tail Read Latency": 229720.5, "Median Update Latency": 376.1, "Tail Update Latency": 230143.6}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400028.9, "Median Read Latency": 113.5, "Tail Read Latency": 883.0, "Median Update Latency": 119.6, "Tail Update Latency": 930.9}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499161.2, "Median Read Latency": 4035.8, "Tail Read Latency": 226041.1, "Median Update Latency": 4145.7, "Tail Update Latency": 227144.8}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200004.9, "Median Read Latency": 79.6, "Tail Read Latency": 128.8, "Median Update Latency": 84.8, "Tail Update Latency": 138.1}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499892.3, "Median Read Latency": 6412.0, "Tail Read Latency": 220894.5, "Median Update Latency": 6356.1, "Tail Update Latency": 222058.1}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 569172.7, "Median Read Latency": 1014.0, "Tail Read Latency": 227912.8, "Median Update Latency": 299.3, "Tail Update Latency": 226796.7}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 592497.5, "Median Read Latency": 13366.1, "Tail Read Latency": 50141.0, "Median Update Latency": 13458.6, "Tail Update Latency": 64470.4}], ["forall", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400035.6, "Median Read Latency": 114.4, "Tail Read Latency": 884.8, "Median Update Latency": 121.0, "Tail Update Latency": 883.7}], ["forall", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499062.3, "Median Read Latency": 2907.3, "Tail Read Latency": 226259.2, "Median Update Latency": 3329.0, "Tail Update Latency": 226354.8}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300127.5, "Median Read Latency": 104.7, "Tail Read Latency": 266.2, "Median Update Latency": 109.1, "Tail Update Latency": 269.6}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300046.9, "Median Read Latency": 88.4, "Tail Read Latency": 182.9, "Median Update Latency": 93.4, "Tail Update Latency": 188.3}], ["forall", "memcached forall", {"Target QPS": 800000, "Actual QPS": 585332.5, "Median Read Latency": 13581.7, "Tail Read Latency": 41485.9, "Median Update Latency": 13562.4, "Tail Update Latency": 42725.2}]]
     1[["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 498755.2, "Median Read Latency": 3190.7, "Tail Read Latency": 225397.5, "Median Update Latency": 2830.3, "Tail Update Latency": 226163.8}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 199980.9, "Median Read Latency": 95.5, "Tail Read Latency": 170.9, "Median Update Latency": 100.7, "Tail Update Latency": 176.2}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 399978.4, "Median Read Latency": 117.8, "Tail Read Latency": 1207.1, "Median Update Latency": 121.9, "Tail Update Latency": 1336.8}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 612437.4, "Median Read Latency": 15884.0, "Tail Read Latency": 248252.4, "Median Update Latency": 15749.0, "Tail Update Latency": 247485.6}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 399937.0, "Median Read Latency": 111.9, "Tail Read Latency": 869.0, "Median Update Latency": 117.5, "Tail Update Latency": 880.8}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100019.3, "Median Read Latency": 85.8, "Tail Read Latency": 161.8, "Median Update Latency": 92.2, "Tail Update Latency": 169.1}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499962.9, "Median Read Latency": 185.6, "Tail Read Latency": 12305.1, "Median Update Latency": 250.1, "Tail Update Latency": 12317.4}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100007.8, "Median Read Latency": 85.9, "Tail Read Latency": 161.0, "Median Update Latency": 92.3, "Tail Update Latency": 168.9}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 557475.3, "Median Read Latency": 18115.8, "Tail Read Latency": 251927.5, "Median Update Latency": 18299.3, "Tail Update Latency": 250306.8}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200004.6, "Median Read Latency": 95.3, "Tail Read Latency": 173.3, "Median Update Latency": 99.9, "Tail Update Latency": 180.6}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 597071.5, "Median Read Latency": 13212.4, "Tail Read Latency": 62539.9, "Median Update Latency": 13231.2, "Tail Update Latency": 69653.7}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 199978.5, "Median Read Latency": 95.5, "Tail Read Latency": 177.6, "Median Update Latency": 100.3, "Tail Update Latency": 186.7}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 614246.9, "Median Read Latency": 16225.4, "Tail Read Latency": 250527.9, "Median Update Latency": 16499.8, "Tail Update Latency": 256449.6}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300008.6, "Median Read Latency": 87.5, "Tail Read Latency": 183.5, "Median Update Latency": 93.1, "Tail Update Latency": 190.9}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100006.9, "Median Read Latency": 85.4, "Tail Read Latency": 177.6, "Median Update Latency": 92.0, "Tail Update Latency": 194.1}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200005.2, "Median Read Latency": 95.3, "Tail Read Latency": 173.8, "Median Update Latency": 99.8, "Tail Update Latency": 183.7}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 572663.5, "Median Read Latency": 371.4, "Tail Read Latency": 227972.8, "Median Update Latency": 1399.1, "Tail Update Latency": 226684.5}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 622639.2, "Median Read Latency": 5780.5, "Tail Read Latency": 230039.3, "Median Update Latency": 7841.8, "Tail Update Latency": 229186.6}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 592141.1, "Median Read Latency": 13408.6, "Tail Read Latency": 48231.9, "Median Update Latency": 13507.0, "Tail Update Latency": 49970.4}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 299997.1, "Median Read Latency": 91.3, "Tail Read Latency": 346.2, "Median Update Latency": 97.8, "Tail Update Latency": 359.3}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 299972.9, "Median Read Latency": 100.3, "Tail Read Latency": 454.5, "Median Update Latency": 106.7, "Tail Update Latency": 436.9}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 598258.7, "Median Read Latency": 13440.2, "Tail Read Latency": 50537.1, "Median Update Latency": 13527.6, "Tail Update Latency": 47965.6}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 299962.2, "Median Read Latency": 88.0, "Tail Read Latency": 181.4, "Median Update Latency": 93.3, "Tail Update Latency": 187.2}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 602219.4, "Median Read Latency": 25297.0, "Tail Read Latency": 250896.6, "Median Update Latency": 25038.5, "Tail Update Latency": 251507.9}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 564998.0, "Median Read Latency": 20010.7, "Tail Read Latency": 250571.5, "Median Update Latency": 20091.0, "Tail Update Latency": 250161.2}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499891.1, "Median Read Latency": 7175.0, "Tail Read Latency": 220926.7, "Median Update Latency": 7105.9, "Tail Update Latency": 221994.0}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499974.2, "Median Read Latency": 211.4, "Tail Read Latency": 11680.1, "Median Update Latency": 829.2, "Tail Update Latency": 11990.8}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300012.7, "Median Read Latency": 97.1, "Tail Read Latency": 222.8, "Median Update Latency": 101.7, "Tail Update Latency": 238.1}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300070.5, "Median Read Latency": 96.8, "Tail Read Latency": 220.3, "Median Update Latency": 101.7, "Tail Update Latency": 237.8}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100008.7, "Median Read Latency": 85.6, "Tail Read Latency": 163.0, "Median Update Latency": 92.3, "Tail Update Latency": 175.3}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400028.9, "Median Read Latency": 114.8, "Tail Read Latency": 956.1, "Median Update Latency": 120.3, "Tail Update Latency": 1350.3}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300055.6, "Median Read Latency": 86.4, "Tail Read Latency": 175.9, "Median Update Latency": 91.2, "Tail Update Latency": 180.7}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 673707.6, "Median Read Latency": 6827.8, "Tail Read Latency": 231197.0, "Median Update Latency": 7140.8, "Tail Update Latency": 231287.8}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 601228.5, "Median Read Latency": 12871.0, "Tail Read Latency": 219146.6, "Median Update Latency": 12852.8, "Tail Update Latency": 56501.0}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300015.0, "Median Read Latency": 100.1, "Tail Read Latency": 481.1, "Median Update Latency": 105.7, "Tail Update Latency": 488.7}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 99997.9, "Median Read Latency": 85.4, "Tail Read Latency": 167.7, "Median Update Latency": 92.4, "Tail Update Latency": 173.4}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200021.1, "Median Read Latency": 88.1, "Tail Read Latency": 244.9, "Median Update Latency": 95.0, "Tail Update Latency": 253.9}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400017.0, "Median Read Latency": 113.1, "Tail Read Latency": 849.1, "Median Update Latency": 119.1, "Tail Update Latency": 882.8}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 562604.7, "Median Read Latency": 19819.4, "Tail Read Latency": 249845.8, "Median Update Latency": 19871.1, "Tail Update Latency": 249555.6}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 572312.9, "Median Read Latency": 6524.3, "Tail Read Latency": 228864.5, "Median Update Latency": 2602.5, "Tail Update Latency": 228616.6}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 621196.7, "Median Read Latency": 2295.2, "Tail Read Latency": 231836.0, "Median Update Latency": 1441.1, "Tail Update Latency": 230955.6}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 595177.6, "Median Read Latency": 13372.4, "Tail Read Latency": 46883.0, "Median Update Latency": 13426.8, "Tail Update Latency": 64667.1}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400026.7, "Median Read Latency": 115.7, "Tail Read Latency": 881.2, "Median Update Latency": 121.1, "Tail Update Latency": 929.1}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 498000.8, "Median Read Latency": 4060.3, "Tail Read Latency": 226676.1, "Median Update Latency": 2978.6, "Tail Update Latency": 225731.4}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 579656.7, "Median Read Latency": 12225.7, "Tail Read Latency": 219760.8, "Median Update Latency": 12238.9, "Tail Update Latency": 203698.4}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200001.8, "Median Read Latency": 88.1, "Tail Read Latency": 240.2, "Median Update Latency": 94.6, "Tail Update Latency": 251.4}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 594850.0, "Median Read Latency": 13333.6, "Tail Read Latency": 52682.0, "Median Update Latency": 13351.9, "Tail Update Latency": 56204.4}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499921.3, "Median Read Latency": 6662.5, "Tail Read Latency": 219673.4, "Median Update Latency": 6837.7, "Tail Update Latency": 211568.1}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 572487.8, "Median Read Latency": 10378.4, "Tail Read Latency": 226976.4, "Median Update Latency": 10403.8, "Tail Update Latency": 227094.8}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 594974.2, "Median Read Latency": 13359.6, "Tail Read Latency": 41942.6, "Median Update Latency": 13334.3, "Tail Update Latency": 44809.8}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 199997.8, "Median Read Latency": 78.3, "Tail Read Latency": 128.0, "Median Update Latency": 82.8, "Tail Update Latency": 134.8}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400037.0, "Median Read Latency": 115.5, "Tail Read Latency": 996.4, "Median Update Latency": 120.1, "Tail Update Latency": 1664.7}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 500010.9, "Median Read Latency": 165.0, "Tail Read Latency": 12206.4, "Median Update Latency": 179.4, "Tail Update Latency": 12184.2}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200000.1, "Median Read Latency": 95.5, "Tail Read Latency": 180.0, "Median Update Latency": 99.7, "Tail Update Latency": 182.7}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 99978.3, "Median Read Latency": 77.9, "Tail Read Latency": 118.1, "Median Update Latency": 83.2, "Tail Update Latency": 128.9}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 399987.9, "Median Read Latency": 108.4, "Tail Read Latency": 539.7, "Median Update Latency": 113.9, "Tail Update Latency": 539.2}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499820.4, "Median Read Latency": 5658.7, "Tail Read Latency": 212053.1, "Median Update Latency": 5741.1, "Tail Update Latency": 50321.8}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400070.7, "Median Read Latency": 111.9, "Tail Read Latency": 890.4, "Median Update Latency": 117.0, "Tail Update Latency": 828.8}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 601775.8, "Median Read Latency": 23117.3, "Tail Read Latency": 250232.9, "Median Update Latency": 23116.7, "Tail Update Latency": 246551.8}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100001.3, "Median Read Latency": 92.8, "Tail Read Latency": 140.9, "Median Update Latency": 98.0, "Tail Update Latency": 152.9}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 574754.4, "Median Read Latency": 357.0, "Tail Read Latency": 231151.6, "Median Update Latency": 557.4, "Tail Update Latency": 229444.1}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 573363.3, "Median Read Latency": 9889.6, "Tail Read Latency": 229927.1, "Median Update Latency": 9906.8, "Tail Update Latency": 231207.8}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 679908.4, "Median Read Latency": 5451.8, "Tail Read Latency": 230889.9, "Median Update Latency": 5681.1, "Tail Update Latency": 232091.7}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 609366.0, "Median Read Latency": 16768.6, "Tail Read Latency": 247631.3, "Median Update Latency": 17033.4, "Tail Update Latency": 253910.6}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200039.8, "Median Read Latency": 95.6, "Tail Read Latency": 174.6, "Median Update Latency": 100.5, "Tail Update Latency": 180.7}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 596702.7, "Median Read Latency": 13428.9, "Tail Read Latency": 51857.9, "Median Update Latency": 13435.2, "Tail Update Latency": 83668.0}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 576584.3, "Median Read Latency": 10177.2, "Tail Read Latency": 228562.7, "Median Update Latency": 10194.1, "Tail Update Latency": 227658.5}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499992.8, "Median Read Latency": 162.7, "Tail Read Latency": 11374.3, "Median Update Latency": 167.4, "Tail Update Latency": 11372.9}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 595017.0, "Median Read Latency": 17998.2, "Tail Read Latency": 243922.3, "Median Update Latency": 18344.5, "Tail Update Latency": 239502.7}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199994.0, "Median Read Latency": 88.5, "Tail Read Latency": 239.3, "Median Update Latency": 95.4, "Tail Update Latency": 248.8}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 299957.9, "Median Read Latency": 105.1, "Tail Read Latency": 274.5, "Median Update Latency": 109.5, "Tail Update Latency": 287.3}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200018.7, "Median Read Latency": 95.2, "Tail Read Latency": 172.9, "Median Update Latency": 100.4, "Tail Update Latency": 174.6}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 500038.3, "Median Read Latency": 211.6, "Tail Read Latency": 11382.7, "Median Update Latency": 206.1, "Tail Update Latency": 11382.7}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 597722.5, "Median Read Latency": 13397.7, "Tail Read Latency": 58411.2, "Median Update Latency": 13387.9, "Tail Update Latency": 68941.3}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100030.7, "Median Read Latency": 85.7, "Tail Read Latency": 163.9, "Median Update Latency": 92.0, "Tail Update Latency": 171.4}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 558818.6, "Median Read Latency": 13363.8, "Tail Read Latency": 248229.0, "Median Update Latency": 13350.2, "Tail Update Latency": 249960.2}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 621757.3, "Median Read Latency": 5239.7, "Tail Read Latency": 234406.2, "Median Update Latency": 6894.0, "Tail Update Latency": 234114.4}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 679182.4, "Median Read Latency": 5967.0, "Tail Read Latency": 228719.6, "Median Update Latency": 6772.4, "Tail Update Latency": 228625.2}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200045.5, "Median Read Latency": 79.2, "Tail Read Latency": 128.4, "Median Update Latency": 84.2, "Tail Update Latency": 137.4}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 99987.1, "Median Read Latency": 93.3, "Tail Read Latency": 141.6, "Median Update Latency": 98.5, "Tail Update Latency": 152.4}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300010.7, "Median Read Latency": 92.5, "Tail Read Latency": 349.6, "Median Update Latency": 99.4, "Tail Update Latency": 379.9}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400028.0, "Median Read Latency": 113.6, "Tail Read Latency": 841.4, "Median Update Latency": 120.0, "Tail Update Latency": 882.9}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 593569.4, "Median Read Latency": 13403.1, "Tail Read Latency": 39646.1, "Median Update Latency": 13399.0, "Tail Update Latency": 37874.8}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400020.1, "Median Read Latency": 107.8, "Tail Read Latency": 564.8, "Median Update Latency": 112.1, "Tail Update Latency": 551.0}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 597114.9, "Median Read Latency": 18109.7, "Tail Read Latency": 246701.4, "Median Update Latency": 17982.1, "Tail Update Latency": 247698.7}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 592504.7, "Median Read Latency": 13426.0, "Tail Read Latency": 44154.2, "Median Update Latency": 13401.8, "Tail Update Latency": 46925.7}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300004.6, "Median Read Latency": 87.4, "Tail Read Latency": 181.7, "Median Update Latency": 92.3, "Tail Update Latency": 184.6}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199991.6, "Median Read Latency": 87.7, "Tail Read Latency": 238.7, "Median Update Latency": 94.3, "Tail Update Latency": 241.1}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300039.2, "Median Read Latency": 100.0, "Tail Read Latency": 465.5, "Median Update Latency": 105.5, "Tail Update Latency": 437.3}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 555859.2, "Median Read Latency": 14324.7, "Tail Read Latency": 252224.7, "Median Update Latency": 14183.0, "Tail Update Latency": 253064.7}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 591884.8, "Median Read Latency": 18852.4, "Tail Read Latency": 245546.0, "Median Update Latency": 18781.5, "Tail Update Latency": 251330.1}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 560411.7, "Median Read Latency": 16212.0, "Tail Read Latency": 249414.2, "Median Update Latency": 16315.3, "Tail Update Latency": 252118.3}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499875.4, "Median Read Latency": 7148.7, "Tail Read Latency": 221728.4, "Median Update Latency": 6854.7, "Tail Update Latency": 223478.5}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 603884.3, "Median Read Latency": 12495.1, "Tail Read Latency": 220449.1, "Median Update Latency": 12489.2, "Tail Update Latency": 220650.4}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 686509.4, "Median Read Latency": 6617.1, "Tail Read Latency": 231746.5, "Median Update Latency": 6934.3, "Tail Update Latency": 232363.0}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 623145.4, "Median Read Latency": 5661.8, "Tail Read Latency": 229372.2, "Median Update Latency": 6085.7, "Tail Update Latency": 230691.9}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100019.7, "Median Read Latency": 93.3, "Tail Read Latency": 142.6, "Median Update Latency": 98.3, "Tail Update Latency": 152.2}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499889.0, "Median Read Latency": 155.9, "Tail Read Latency": 12059.8, "Median Update Latency": 169.9, "Tail Update Latency": 12072.0}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100018.5, "Median Read Latency": 86.6, "Tail Read Latency": 164.3, "Median Update Latency": 92.9, "Tail Update Latency": 179.2}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100008.8, "Median Read Latency": 85.5, "Tail Read Latency": 162.2, "Median Update Latency": 92.2, "Tail Update Latency": 169.4}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 559071.8, "Median Read Latency": 13053.0, "Tail Read Latency": 247054.3, "Median Update Latency": 13181.4, "Tail Update Latency": 246805.2}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100016.0, "Median Read Latency": 78.2, "Tail Read Latency": 119.3, "Median Update Latency": 84.1, "Tail Update Latency": 130.7}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400025.2, "Median Read Latency": 104.6, "Tail Read Latency": 513.5, "Median Update Latency": 108.7, "Tail Update Latency": 505.0}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100009.2, "Median Read Latency": 93.0, "Tail Read Latency": 143.2, "Median Update Latency": 98.0, "Tail Update Latency": 154.2}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 399978.2, "Median Read Latency": 104.6, "Tail Read Latency": 482.3, "Median Update Latency": 109.5, "Tail Update Latency": 481.6}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 399992.4, "Median Read Latency": 115.3, "Tail Read Latency": 1018.2, "Median Update Latency": 121.2, "Tail Update Latency": 1420.5}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200039.6, "Median Read Latency": 88.3, "Tail Read Latency": 235.4, "Median Update Latency": 94.9, "Tail Update Latency": 242.1}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 498725.8, "Median Read Latency": 3893.4, "Tail Read Latency": 227347.3, "Median Update Latency": 3733.9, "Tail Update Latency": 227619.0}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200028.7, "Median Read Latency": 79.2, "Tail Read Latency": 129.6, "Median Update Latency": 84.3, "Tail Update Latency": 138.4}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 620433.1, "Median Read Latency": 21839.7, "Tail Read Latency": 249643.8, "Median Update Latency": 22022.9, "Tail Update Latency": 249993.9}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 569787.5, "Median Read Latency": 3043.0, "Tail Read Latency": 226727.4, "Median Update Latency": 6870.7, "Tail Update Latency": 227823.6}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 597059.4, "Median Read Latency": 13321.6, "Tail Read Latency": 45190.1, "Median Update Latency": 13316.7, "Tail Update Latency": 44028.0}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300053.7, "Median Read Latency": 86.8, "Tail Read Latency": 184.7, "Median Update Latency": 92.1, "Tail Update Latency": 192.5}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100014.4, "Median Read Latency": 93.1, "Tail Read Latency": 141.1, "Median Update Latency": 98.9, "Tail Update Latency": 150.9}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 618846.7, "Median Read Latency": 902.7, "Tail Read Latency": 227141.2, "Median Update Latency": 637.8, "Tail Update Latency": 224313.9}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 595532.7, "Median Read Latency": 16978.5, "Tail Read Latency": 248593.5, "Median Update Latency": 16895.7, "Tail Update Latency": 250405.5}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 620493.4, "Median Read Latency": 19597.9, "Tail Read Latency": 247174.2, "Median Update Latency": 19579.3, "Tail Update Latency": 250788.1}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 399994.3, "Median Read Latency": 103.5, "Tail Read Latency": 456.3, "Median Update Latency": 108.6, "Tail Update Latency": 464.3}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 572443.4, "Median Read Latency": 5819.9, "Tail Read Latency": 229576.2, "Median Update Latency": 5419.3, "Tail Update Latency": 230185.9}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200006.2, "Median Read Latency": 95.2, "Tail Read Latency": 174.1, "Median Update Latency": 99.8, "Tail Update Latency": 183.5}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 675884.4, "Median Read Latency": 5168.9, "Tail Read Latency": 232226.3, "Median Update Latency": 5221.0, "Tail Update Latency": 234665.5}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300048.0, "Median Read Latency": 104.7, "Tail Read Latency": 274.3, "Median Update Latency": 110.1, "Tail Update Latency": 270.9}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 593973.5, "Median Read Latency": 13469.9, "Tail Read Latency": 48997.9, "Median Update Latency": 13481.7, "Tail Update Latency": 43736.0}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400014.9, "Median Read Latency": 114.7, "Tail Read Latency": 985.2, "Median Update Latency": 117.9, "Tail Update Latency": 836.7}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100023.3, "Median Read Latency": 92.3, "Tail Read Latency": 140.0, "Median Update Latency": 97.5, "Tail Update Latency": 150.4}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200024.8, "Median Read Latency": 78.3, "Tail Read Latency": 127.6, "Median Update Latency": 82.7, "Tail Update Latency": 133.8}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 299955.1, "Median Read Latency": 92.6, "Tail Read Latency": 352.0, "Median Update Latency": 99.0, "Tail Update Latency": 340.3}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499993.2, "Median Read Latency": 496.8, "Tail Read Latency": 11875.1, "Median Update Latency": 347.0, "Tail Update Latency": 11798.5}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400080.4, "Median Read Latency": 105.7, "Tail Read Latency": 515.6, "Median Update Latency": 110.8, "Tail Update Latency": 518.0}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 621476.0, "Median Read Latency": 4652.6, "Tail Read Latency": 228156.0, "Median Update Latency": 4843.4, "Tail Update Latency": 226596.6}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 618279.2, "Median Read Latency": 4429.6, "Tail Read Latency": 228611.1, "Median Update Latency": 4362.4, "Tail Update Latency": 226378.2}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 593594.2, "Median Read Latency": 13393.0, "Tail Read Latency": 57221.3, "Median Update Latency": 13422.7, "Tail Update Latency": 80690.8}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200022.4, "Median Read Latency": 95.8, "Tail Read Latency": 172.8, "Median Update Latency": 100.5, "Tail Update Latency": 185.4}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 560918.1, "Median Read Latency": 16358.1, "Tail Read Latency": 253540.6, "Median Update Latency": 16212.4, "Tail Update Latency": 251232.8}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 669430.7, "Median Read Latency": 5583.0, "Tail Read Latency": 231084.5, "Median Update Latency": 6019.7, "Tail Update Latency": 232056.7}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 399991.3, "Median Read Latency": 106.0, "Tail Read Latency": 530.9, "Median Update Latency": 111.6, "Tail Update Latency": 541.9}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 399954.1, "Median Read Latency": 115.9, "Tail Read Latency": 1160.1, "Median Update Latency": 121.1, "Tail Update Latency": 1101.6}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 606298.3, "Median Read Latency": 12500.1, "Tail Read Latency": 221340.8, "Median Update Latency": 12479.4, "Tail Update Latency": 220126.4}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 677365.7, "Median Read Latency": 5572.2, "Tail Read Latency": 232186.6, "Median Update Latency": 5377.3, "Tail Update Latency": 234817.9}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 560278.3, "Median Read Latency": 15552.2, "Tail Read Latency": 251034.1, "Median Update Latency": 15592.0, "Tail Update Latency": 246436.6}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 595753.0, "Median Read Latency": 23720.5, "Tail Read Latency": 249422.3, "Median Update Latency": 23512.1, "Tail Update Latency": 249583.9}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400063.9, "Median Read Latency": 113.4, "Tail Read Latency": 862.6, "Median Update Latency": 120.0, "Tail Update Latency": 817.9}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499823.1, "Median Read Latency": 7675.7, "Tail Read Latency": 221134.1, "Median Update Latency": 7669.5, "Tail Update Latency": 221961.7}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 399924.2, "Median Read Latency": 113.2, "Tail Read Latency": 860.6, "Median Update Latency": 119.8, "Tail Update Latency": 955.3}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300058.2, "Median Read Latency": 87.1, "Tail Read Latency": 181.8, "Median Update Latency": 91.9, "Tail Update Latency": 186.4}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100027.5, "Median Read Latency": 79.1, "Tail Read Latency": 123.2, "Median Update Latency": 84.7, "Tail Update Latency": 132.5}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 598396.1, "Median Read Latency": 15300.7, "Tail Read Latency": 244675.0, "Median Update Latency": 15021.1, "Tail Update Latency": 241147.1}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 572232.9, "Median Read Latency": 5540.0, "Tail Read Latency": 226307.6, "Median Update Latency": 6565.7, "Tail Update Latency": 228217.0}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100026.0, "Median Read Latency": 79.4, "Tail Read Latency": 119.9, "Median Update Latency": 84.8, "Tail Update Latency": 127.7}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 612789.2, "Median Read Latency": 20433.4, "Tail Read Latency": 248317.0, "Median Update Latency": 19920.1, "Tail Update Latency": 248162.6}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 633366.9, "Median Read Latency": 27763.5, "Tail Read Latency": 261832.4, "Median Update Latency": 27589.3, "Tail Update Latency": 260902.8}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300076.6, "Median Read Latency": 91.9, "Tail Read Latency": 355.3, "Median Update Latency": 97.9, "Tail Update Latency": 346.9}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400067.4, "Median Read Latency": 104.2, "Tail Read Latency": 490.8, "Median Update Latency": 109.1, "Tail Update Latency": 489.3}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100018.2, "Median Read Latency": 79.5, "Tail Read Latency": 124.0, "Median Update Latency": 85.6, "Tail Update Latency": 130.7}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 673606.9, "Median Read Latency": 6399.4, "Tail Read Latency": 232519.9, "Median Update Latency": 7309.5, "Tail Update Latency": 233818.8}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 618746.2, "Median Read Latency": 5440.4, "Tail Read Latency": 229943.5, "Median Update Latency": 6759.6, "Tail Update Latency": 229563.8}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300022.9, "Median Read Latency": 87.6, "Tail Read Latency": 182.6, "Median Update Latency": 92.8, "Tail Update Latency": 187.9}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400008.0, "Median Read Latency": 111.5, "Tail Read Latency": 841.2, "Median Update Latency": 118.5, "Tail Update Latency": 843.9}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300049.4, "Median Read Latency": 88.0, "Tail Read Latency": 183.8, "Median Update Latency": 94.3, "Tail Update Latency": 187.9}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 299973.6, "Median Read Latency": 103.9, "Tail Read Latency": 264.6, "Median Update Latency": 108.6, "Tail Update Latency": 264.8}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 634051.9, "Median Read Latency": 29679.0, "Tail Read Latency": 276428.2, "Median Update Latency": 29553.8, "Tail Update Latency": 275365.1}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 595601.7, "Median Read Latency": 16592.4, "Tail Read Latency": 248858.5, "Median Update Latency": 16643.3, "Tail Update Latency": 249676.4}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 299996.7, "Median Read Latency": 105.2, "Tail Read Latency": 265.0, "Median Update Latency": 110.0, "Tail Update Latency": 291.7}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 601384.7, "Median Read Latency": 21991.8, "Tail Read Latency": 251918.5, "Median Update Latency": 22250.9, "Tail Update Latency": 254757.7}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 672509.3, "Median Read Latency": 6597.4, "Tail Read Latency": 231210.5, "Median Update Latency": 6618.7, "Tail Update Latency": 230082.2}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 618813.0, "Median Read Latency": 2470.6, "Tail Read Latency": 229954.7, "Median Update Latency": 448.3, "Tail Update Latency": 230106.4}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 399964.2, "Median Read Latency": 104.2, "Tail Read Latency": 500.7, "Median Update Latency": 109.3, "Tail Update Latency": 512.1}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200027.6, "Median Read Latency": 88.4, "Tail Read Latency": 242.7, "Median Update Latency": 95.4, "Tail Update Latency": 259.1}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200074.5, "Median Read Latency": 95.6, "Tail Read Latency": 174.1, "Median Update Latency": 100.6, "Tail Update Latency": 180.8}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 590638.3, "Median Read Latency": 20591.5, "Tail Read Latency": 245328.4, "Median Update Latency": 20026.6, "Tail Update Latency": 247076.2}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499880.6, "Median Read Latency": 6449.0, "Tail Read Latency": 220474.9, "Median Update Latency": 6244.1, "Tail Update Latency": 221755.8}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499651.8, "Median Read Latency": 3100.6, "Tail Read Latency": 224805.6, "Median Update Latency": 3231.5, "Tail Update Latency": 220308.2}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 679918.1, "Median Read Latency": 6117.7, "Tail Read Latency": 235370.8, "Median Update Latency": 5461.9, "Tail Update Latency": 235881.3}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 562603.6, "Median Read Latency": 17687.5, "Tail Read Latency": 249811.6, "Median Update Latency": 17850.1, "Tail Update Latency": 248409.0}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 498800.0, "Median Read Latency": 4824.4, "Tail Read Latency": 226001.1, "Median Update Latency": 3904.7, "Tail Update Latency": 225754.6}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300001.7, "Median Read Latency": 87.0, "Tail Read Latency": 177.7, "Median Update Latency": 91.8, "Tail Update Latency": 186.5}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200017.1, "Median Read Latency": 79.3, "Tail Read Latency": 128.7, "Median Update Latency": 84.2, "Tail Update Latency": 141.4}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400017.2, "Median Read Latency": 115.5, "Tail Read Latency": 1159.7, "Median Update Latency": 120.1, "Tail Update Latency": 989.5}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 99991.2, "Median Read Latency": 78.9, "Tail Read Latency": 121.9, "Median Update Latency": 84.3, "Tail Update Latency": 129.4}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200019.4, "Median Read Latency": 78.7, "Tail Read Latency": 127.4, "Median Update Latency": 83.4, "Tail Update Latency": 138.3}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 574746.3, "Median Read Latency": 10094.5, "Tail Read Latency": 229286.1, "Median Update Latency": 10163.4, "Tail Update Latency": 228392.7}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 666919.6, "Median Read Latency": 5602.6, "Tail Read Latency": 231151.9, "Median Update Latency": 7137.9, "Tail Update Latency": 230738.8}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300001.0, "Median Read Latency": 87.0, "Tail Read Latency": 178.4, "Median Update Latency": 92.1, "Tail Update Latency": 184.3}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400016.4, "Median Read Latency": 112.3, "Tail Read Latency": 861.1, "Median Update Latency": 119.0, "Tail Update Latency": 826.2}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 554192.0, "Median Read Latency": 14565.8, "Tail Read Latency": 251281.6, "Median Update Latency": 14621.9, "Tail Update Latency": 248503.4}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400004.9, "Median Read Latency": 112.6, "Tail Read Latency": 847.6, "Median Update Latency": 119.8, "Tail Update Latency": 780.5}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499926.2, "Median Read Latency": 202.8, "Tail Read Latency": 11364.8, "Median Update Latency": 225.1, "Tail Update Latency": 11373.2}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499827.3, "Median Read Latency": 6236.1, "Tail Read Latency": 219172.4, "Median Update Latency": 6311.9, "Tail Update Latency": 218648.6}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 299983.9, "Median Read Latency": 105.0, "Tail Read Latency": 266.1, "Median Update Latency": 110.0, "Tail Update Latency": 270.9}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 572297.0, "Median Read Latency": 7121.5, "Tail Read Latency": 229699.2, "Median Update Latency": 6446.6, "Tail Update Latency": 229921.5}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300049.7, "Median Read Latency": 100.0, "Tail Read Latency": 462.1, "Median Update Latency": 106.0, "Tail Update Latency": 495.3}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300036.2, "Median Read Latency": 97.4, "Tail Read Latency": 215.2, "Median Update Latency": 101.7, "Tail Update Latency": 222.3}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 592848.3, "Median Read Latency": 13499.3, "Tail Read Latency": 54109.4, "Median Update Latency": 13537.0, "Tail Update Latency": 67041.7}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 599841.2, "Median Read Latency": 13013.2, "Tail Read Latency": 219173.4, "Median Update Latency": 12913.4, "Tail Update Latency": 78396.6}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499623.8, "Median Read Latency": 3350.4, "Tail Read Latency": 224439.8, "Median Update Latency": 2713.4, "Tail Update Latency": 227667.6}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400044.7, "Median Read Latency": 114.6, "Tail Read Latency": 904.6, "Median Update Latency": 121.3, "Tail Update Latency": 889.9}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 99961.3, "Median Read Latency": 78.9, "Tail Read Latency": 121.4, "Median Update Latency": 84.1, "Tail Update Latency": 129.1}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 399956.7, "Median Read Latency": 111.9, "Tail Read Latency": 913.7, "Median Update Latency": 117.9, "Tail Update Latency": 812.8}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199987.8, "Median Read Latency": 88.7, "Tail Read Latency": 240.9, "Median Update Latency": 94.8, "Tail Update Latency": 263.6}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 578039.8, "Median Read Latency": 12007.4, "Tail Read Latency": 222983.8, "Median Update Latency": 12072.4, "Tail Update Latency": 223117.5}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 599235.9, "Median Read Latency": 12980.0, "Tail Read Latency": 89029.3, "Median Update Latency": 13117.6, "Tail Update Latency": 84983.3}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400003.6, "Median Read Latency": 104.1, "Tail Read Latency": 506.4, "Median Update Latency": 108.0, "Tail Update Latency": 499.3}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 667063.6, "Median Read Latency": 7072.8, "Tail Read Latency": 228047.4, "Median Update Latency": 6478.2, "Tail Update Latency": 226000.1}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 591587.5, "Median Read Latency": 13359.7, "Tail Read Latency": 50039.7, "Median Update Latency": 13361.1, "Tail Update Latency": 49096.8}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100046.8, "Median Read Latency": 93.6, "Tail Read Latency": 141.1, "Median Update Latency": 98.7, "Tail Update Latency": 149.6}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100035.3, "Median Read Latency": 93.2, "Tail Read Latency": 140.9, "Median Update Latency": 98.0, "Tail Update Latency": 149.2}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 579557.0, "Median Read Latency": 11146.3, "Tail Read Latency": 225592.5, "Median Update Latency": 11213.4, "Tail Update Latency": 227281.7}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499854.0, "Median Read Latency": 6874.0, "Tail Read Latency": 221957.8, "Median Update Latency": 6881.0, "Tail Update Latency": 223218.6}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199990.1, "Median Read Latency": 88.2, "Tail Read Latency": 238.6, "Median Update Latency": 95.8, "Tail Update Latency": 247.6}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 617227.7, "Median Read Latency": 17171.0, "Tail Read Latency": 249354.5, "Median Update Latency": 16888.9, "Tail Update Latency": 253622.6}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 616791.3, "Median Read Latency": 7783.5, "Tail Read Latency": 231012.6, "Median Update Latency": 7816.4, "Tail Update Latency": 229123.0}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100038.9, "Median Read Latency": 78.3, "Tail Read Latency": 119.7, "Median Update Latency": 83.5, "Tail Update Latency": 130.2}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 600648.1, "Median Read Latency": 19930.5, "Tail Read Latency": 252949.2, "Median Update Latency": 19774.3, "Tail Update Latency": 254769.5}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400077.3, "Median Read Latency": 115.5, "Tail Read Latency": 1407.8, "Median Update Latency": 119.4, "Tail Update Latency": 1102.4}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100003.5, "Median Read Latency": 85.9, "Tail Read Latency": 164.6, "Median Update Latency": 92.1, "Tail Update Latency": 171.8}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 99984.3, "Median Read Latency": 78.3, "Tail Read Latency": 120.5, "Median Update Latency": 83.7, "Tail Update Latency": 128.5}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 596507.7, "Median Read Latency": 13251.2, "Tail Read Latency": 73339.7, "Median Update Latency": 13352.3, "Tail Update Latency": 112626.7}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200030.3, "Median Read Latency": 94.9, "Tail Read Latency": 171.9, "Median Update Latency": 99.8, "Tail Update Latency": 185.1}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499890.3, "Median Read Latency": 6051.4, "Tail Read Latency": 220881.9, "Median Update Latency": 5816.4, "Tail Update Latency": 220025.4}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 617601.3, "Median Read Latency": 6576.4, "Tail Read Latency": 228343.0, "Median Update Latency": 6669.8, "Tail Update Latency": 229107.3}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 614289.3, "Median Read Latency": 27798.8, "Tail Read Latency": 249319.1, "Median Update Latency": 28052.1, "Tail Update Latency": 255922.6}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400085.5, "Median Read Latency": 108.2, "Tail Read Latency": 596.3, "Median Update Latency": 112.3, "Tail Update Latency": 580.3}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499937.2, "Median Read Latency": 246.8, "Tail Read Latency": 12044.7, "Median Update Latency": 370.5, "Tail Update Latency": 11969.0}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300032.5, "Median Read Latency": 99.9, "Tail Read Latency": 450.5, "Median Update Latency": 106.5, "Tail Update Latency": 506.6}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200065.4, "Median Read Latency": 78.6, "Tail Read Latency": 127.6, "Median Update Latency": 83.6, "Tail Update Latency": 136.7}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200023.6, "Median Read Latency": 95.8, "Tail Read Latency": 175.4, "Median Update Latency": 100.8, "Tail Update Latency": 181.3}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200018.8, "Median Read Latency": 88.0, "Tail Read Latency": 237.2, "Median Update Latency": 95.0, "Tail Update Latency": 241.3}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100003.9, "Median Read Latency": 92.9, "Tail Read Latency": 141.7, "Median Update Latency": 98.0, "Tail Update Latency": 149.9}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200027.7, "Median Read Latency": 78.8, "Tail Read Latency": 128.1, "Median Update Latency": 84.1, "Tail Update Latency": 138.5}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 573103.5, "Median Read Latency": 6813.3, "Tail Read Latency": 228646.3, "Median Update Latency": 6506.7, "Tail Update Latency": 228655.2}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 500002.4, "Median Read Latency": 165.8, "Tail Read Latency": 12247.6, "Median Update Latency": 153.3, "Tail Update Latency": 12160.1}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499939.4, "Median Read Latency": 236.9, "Tail Read Latency": 11686.2, "Median Update Latency": 1735.2, "Tail Update Latency": 11889.0}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100010.1, "Median Read Latency": 92.7, "Tail Read Latency": 140.3, "Median Update Latency": 98.4, "Tail Update Latency": 150.4}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200049.3, "Median Read Latency": 79.0, "Tail Read Latency": 128.4, "Median Update Latency": 83.8, "Tail Update Latency": 135.6}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499781.9, "Median Read Latency": 6814.0, "Tail Read Latency": 221736.9, "Median Update Latency": 6911.9, "Tail Update Latency": 208931.6}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 570152.2, "Median Read Latency": 5421.5, "Tail Read Latency": 227907.2, "Median Update Latency": 370.5, "Tail Update Latency": 226747.8}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 577102.5, "Median Read Latency": 10328.5, "Tail Read Latency": 229337.1, "Median Update Latency": 10259.6, "Tail Update Latency": 228080.1}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300011.4, "Median Read Latency": 104.6, "Tail Read Latency": 269.3, "Median Update Latency": 108.7, "Tail Update Latency": 273.6}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 679919.6, "Median Read Latency": 6524.6, "Tail Read Latency": 232330.6, "Median Update Latency": 6061.6, "Tail Update Latency": 230619.7}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 573394.8, "Median Read Latency": 847.7, "Tail Read Latency": 229024.9, "Median Update Latency": 383.2, "Tail Update Latency": 229457.9}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200085.1, "Median Read Latency": 88.4, "Tail Read Latency": 241.4, "Median Update Latency": 95.2, "Tail Update Latency": 234.6}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200047.0, "Median Read Latency": 94.9, "Tail Read Latency": 171.3, "Median Update Latency": 99.5, "Tail Update Latency": 172.3}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 559301.4, "Median Read Latency": 14825.1, "Tail Read Latency": 254187.0, "Median Update Latency": 14664.1, "Tail Update Latency": 254937.9}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100010.6, "Median Read Latency": 85.3, "Tail Read Latency": 162.3, "Median Update Latency": 91.4, "Tail Update Latency": 173.7}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 578074.7, "Median Read Latency": 11791.1, "Tail Read Latency": 223980.5, "Median Update Latency": 11864.7, "Tail Update Latency": 226155.9}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100001.6, "Median Read Latency": 85.8, "Tail Read Latency": 162.2, "Median Update Latency": 92.7, "Tail Update Latency": 171.3}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400002.4, "Median Read Latency": 116.0, "Tail Read Latency": 1275.3, "Median Update Latency": 120.4, "Tail Update Latency": 1950.4}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 99993.8, "Median Read Latency": 85.5, "Tail Read Latency": 165.2, "Median Update Latency": 91.9, "Tail Update Latency": 174.4}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300001.0, "Median Read Latency": 104.6, "Tail Read Latency": 264.9, "Median Update Latency": 109.1, "Tail Update Latency": 267.0}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300047.2, "Median Read Latency": 104.8, "Tail Read Latency": 270.7, "Median Update Latency": 108.8, "Tail Update Latency": 291.1}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 99984.4, "Median Read Latency": 92.5, "Tail Read Latency": 140.9, "Median Update Latency": 97.6, "Tail Update Latency": 151.5}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499211.4, "Median Read Latency": 4829.0, "Tail Read Latency": 227460.6, "Median Update Latency": 5820.2, "Tail Update Latency": 228629.5}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 399973.0, "Median Read Latency": 116.6, "Tail Read Latency": 1517.8, "Median Update Latency": 122.0, "Tail Update Latency": 2040.5}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 604492.9, "Median Read Latency": 22608.3, "Tail Read Latency": 250393.4, "Median Update Latency": 23071.2, "Tail Update Latency": 256668.7}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 611693.3, "Median Read Latency": 14027.6, "Tail Read Latency": 243356.0, "Median Update Latency": 14022.5, "Tail Update Latency": 250001.8}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200042.2, "Median Read Latency": 88.5, "Tail Read Latency": 243.2, "Median Update Latency": 94.9, "Tail Update Latency": 236.6}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 559704.6, "Median Read Latency": 14430.7, "Tail Read Latency": 250332.9, "Median Update Latency": 14418.1, "Tail Update Latency": 253148.7}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499223.6, "Median Read Latency": 4367.8, "Tail Read Latency": 226883.4, "Median Update Latency": 5244.0, "Tail Update Latency": 221016.3}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 568544.1, "Median Read Latency": 2365.9, "Tail Read Latency": 228962.5, "Median Update Latency": 4500.7, "Tail Update Latency": 230563.3}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100000.3, "Median Read Latency": 78.8, "Tail Read Latency": 119.8, "Median Update Latency": 84.1, "Tail Update Latency": 127.7}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499122.9, "Median Read Latency": 3607.2, "Tail Read Latency": 224649.4, "Median Update Latency": 3444.9, "Tail Update Latency": 225614.4}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400014.4, "Median Read Latency": 116.2, "Tail Read Latency": 1195.9, "Median Update Latency": 120.5, "Tail Update Latency": 1364.5}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199998.7, "Median Read Latency": 88.4, "Tail Read Latency": 243.1, "Median Update Latency": 94.8, "Tail Update Latency": 250.8}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 99995.7, "Median Read Latency": 86.0, "Tail Read Latency": 169.2, "Median Update Latency": 92.9, "Tail Update Latency": 184.7}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100033.6, "Median Read Latency": 92.2, "Tail Read Latency": 140.4, "Median Update Latency": 97.9, "Tail Update Latency": 150.8}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400016.4, "Median Read Latency": 107.1, "Tail Read Latency": 600.3, "Median Update Latency": 113.1, "Tail Update Latency": 614.8}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 596136.4, "Median Read Latency": 13397.2, "Tail Read Latency": 56097.2, "Median Update Latency": 13382.5, "Tail Update Latency": 52032.8}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 99991.6, "Median Read Latency": 78.8, "Tail Read Latency": 123.0, "Median Update Latency": 84.3, "Tail Update Latency": 129.0}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 577576.0, "Median Read Latency": 11304.9, "Tail Read Latency": 223373.9, "Median Update Latency": 11351.8, "Tail Update Latency": 222493.1}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 621059.2, "Median Read Latency": 836.3, "Tail Read Latency": 229758.4, "Median Update Latency": 5313.0, "Tail Update Latency": 229136.4}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200039.4, "Median Read Latency": 79.0, "Tail Read Latency": 128.4, "Median Update Latency": 83.6, "Tail Update Latency": 137.9}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 563457.7, "Median Read Latency": 16701.6, "Tail Read Latency": 249200.5, "Median Update Latency": 16861.1, "Tail Update Latency": 248788.2}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 399982.2, "Median Read Latency": 113.1, "Tail Read Latency": 881.3, "Median Update Latency": 119.4, "Tail Update Latency": 900.6}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 595465.4, "Median Read Latency": 13157.2, "Tail Read Latency": 75250.3, "Median Update Latency": 13247.2, "Tail Update Latency": 80003.1}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 499959.8, "Median Read Latency": 262.9, "Tail Read Latency": 12395.7, "Median Update Latency": 295.8, "Tail Update Latency": 12350.6}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 589612.6, "Median Read Latency": 13433.9, "Tail Read Latency": 47674.3, "Median Update Latency": 13410.5, "Tail Update Latency": 57342.6}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 199957.2, "Median Read Latency": 80.1, "Tail Read Latency": 138.1, "Median Update Latency": 85.2, "Tail Update Latency": 143.2}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200034.1, "Median Read Latency": 94.9, "Tail Read Latency": 171.1, "Median Update Latency": 99.7, "Tail Update Latency": 180.0}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 500007.9, "Median Read Latency": 178.2, "Tail Read Latency": 12033.8, "Median Update Latency": 168.2, "Tail Update Latency": 12001.3}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 497856.1, "Median Read Latency": 4145.0, "Tail Read Latency": 226546.5, "Median Update Latency": 3441.9, "Tail Update Latency": 227252.1}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300033.4, "Median Read Latency": 104.2, "Tail Read Latency": 268.6, "Median Update Latency": 109.9, "Tail Update Latency": 279.2}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 568855.7, "Median Read Latency": 9605.0, "Tail Read Latency": 232225.5, "Median Update Latency": 9612.0, "Tail Update Latency": 232598.3}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 200009.7, "Median Read Latency": 88.0, "Tail Read Latency": 239.6, "Median Update Latency": 94.3, "Tail Update Latency": 241.1}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 570228.2, "Median Read Latency": 6570.1, "Tail Read Latency": 225938.3, "Median Update Latency": 6319.2, "Tail Update Latency": 221840.9}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 299969.9, "Median Read Latency": 90.6, "Tail Read Latency": 349.4, "Median Update Latency": 96.7, "Tail Update Latency": 363.3}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 620657.5, "Median Read Latency": 5477.7, "Tail Read Latency": 231316.9, "Median Update Latency": 3529.9, "Tail Update Latency": 232065.4}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 99976.6, "Median Read Latency": 92.6, "Tail Read Latency": 140.5, "Median Update Latency": 97.5, "Tail Update Latency": 149.4}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400042.8, "Median Read Latency": 117.3, "Tail Read Latency": 1777.2, "Median Update Latency": 123.8, "Tail Update Latency": 1476.7}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100038.9, "Median Read Latency": 79.2, "Tail Read Latency": 122.3, "Median Update Latency": 85.3, "Tail Update Latency": 130.3}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 680848.2, "Median Read Latency": 6171.2, "Tail Read Latency": 227595.7, "Median Update Latency": 6211.2, "Tail Update Latency": 226364.4}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400014.0, "Median Read Latency": 113.7, "Tail Read Latency": 861.3, "Median Update Latency": 120.8, "Tail Update Latency": 910.6}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 299995.0, "Median Read Latency": 99.8, "Tail Read Latency": 460.1, "Median Update Latency": 105.9, "Tail Update Latency": 467.5}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499364.1, "Median Read Latency": 2224.1, "Tail Read Latency": 226096.6, "Median Update Latency": 3068.3, "Tail Update Latency": 225018.1}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 500025.6, "Median Read Latency": 313.0, "Tail Read Latency": 11828.0, "Median Update Latency": 321.6, "Tail Update Latency": 11853.5}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 620927.4, "Median Read Latency": 24535.1, "Tail Read Latency": 257784.9, "Median Update Latency": 24537.7, "Tail Update Latency": 255864.2}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 602632.4, "Median Read Latency": 13072.1, "Tail Read Latency": 61232.2, "Median Update Latency": 13168.5, "Tail Update Latency": 92245.5}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199927.4, "Median Read Latency": 89.4, "Tail Read Latency": 245.8, "Median Update Latency": 95.9, "Tail Update Latency": 254.7}], ["fibre", "memcached fibre", {"Target QPS": 700000, "Actual QPS": 595090.7, "Median Read Latency": 16183.6, "Tail Read Latency": 247979.2, "Median Update Latency": 16252.1, "Tail Update Latency": 250173.3}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 618956.2, "Median Read Latency": 6020.9, "Tail Read Latency": 229495.0, "Median Update Latency": 415.4, "Tail Update Latency": 230616.9}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 399956.4, "Median Read Latency": 104.6, "Tail Read Latency": 502.8, "Median Update Latency": 109.0, "Tail Update Latency": 496.5}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 299923.6, "Median Read Latency": 88.0, "Tail Read Latency": 180.5, "Median Update Latency": 93.2, "Tail Update Latency": 186.6}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300010.4, "Median Read Latency": 99.9, "Tail Read Latency": 441.2, "Median Update Latency": 105.4, "Tail Update Latency": 423.4}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300014.0, "Median Read Latency": 97.4, "Tail Read Latency": 219.0, "Median Update Latency": 101.9, "Tail Update Latency": 236.6}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499459.5, "Median Read Latency": 4253.1, "Tail Read Latency": 224248.7, "Median Update Latency": 3402.1, "Tail Update Latency": 224262.8}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300062.5, "Median Read Latency": 91.6, "Tail Read Latency": 357.4, "Median Update Latency": 98.9, "Tail Update Latency": 364.4}], ["vanilla", "memcached vanilla", {"Target QPS": 800000, "Actual QPS": 678611.1, "Median Read Latency": 6160.8, "Tail Read Latency": 229544.6, "Median Update Latency": 5851.0, "Tail Update Latency": 229411.7}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 578256.9, "Median Read Latency": 11180.9, "Tail Read Latency": 225596.4, "Median Update Latency": 11147.2, "Tail Update Latency": 222763.9}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 400003.0, "Median Read Latency": 116.8, "Tail Read Latency": 1089.4, "Median Update Latency": 122.7, "Tail Update Latency": 831.8}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300032.2, "Median Read Latency": 90.3, "Tail Read Latency": 348.7, "Median Update Latency": 96.4, "Tail Update Latency": 350.9}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200064.6, "Median Read Latency": 78.7, "Tail Read Latency": 128.0, "Median Update Latency": 84.5, "Tail Update Latency": 138.0}], ["fibre", "memcached fibre", {"Target QPS": 400000, "Actual QPS": 399974.1, "Median Read Latency": 115.0, "Tail Read Latency": 1410.0, "Median Update Latency": 120.0, "Tail Update Latency": 1261.5}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100010.9, "Median Read Latency": 85.4, "Tail Read Latency": 160.3, "Median Update Latency": 91.7, "Tail Update Latency": 173.0}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400024.5, "Median Read Latency": 106.4, "Tail Read Latency": 505.2, "Median Update Latency": 111.2, "Tail Update Latency": 491.0}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300011.7, "Median Read Latency": 87.3, "Tail Read Latency": 178.7, "Median Update Latency": 92.3, "Tail Update Latency": 184.7}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 99988.9, "Median Read Latency": 93.3, "Tail Read Latency": 140.6, "Median Update Latency": 98.0, "Tail Update Latency": 150.8}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 299993.4, "Median Read Latency": 87.5, "Tail Read Latency": 181.0, "Median Update Latency": 93.2, "Tail Update Latency": 182.8}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 617912.5, "Median Read Latency": 25810.6, "Tail Read Latency": 252464.1, "Median Update Latency": 25674.3, "Tail Update Latency": 251736.1}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 625701.7, "Median Read Latency": 22503.9, "Tail Read Latency": 259542.7, "Median Update Latency": 22468.4, "Tail Update Latency": 267154.9}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499785.2, "Median Read Latency": 6496.3, "Tail Read Latency": 222659.0, "Median Update Latency": 6234.7, "Tail Update Latency": 222262.0}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 572021.8, "Median Read Latency": 9548.6, "Tail Read Latency": 233766.8, "Median Update Latency": 9524.3, "Tail Update Latency": 236551.7}], ["fibre", "memcached fibre", {"Target QPS": 200000, "Actual QPS": 200009.0, "Median Read Latency": 95.4, "Tail Read Latency": 175.8, "Median Update Latency": 100.7, "Tail Update Latency": 190.9}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200027.1, "Median Read Latency": 78.6, "Tail Read Latency": 126.6, "Median Update Latency": 83.1, "Tail Update Latency": 129.1}], ["fibre", "memcached fibre", {"Target QPS": 600000, "Actual QPS": 557369.8, "Median Read Latency": 16483.1, "Tail Read Latency": 253742.7, "Median Update Latency": 16400.4, "Tail Update Latency": 255241.9}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499805.4, "Median Read Latency": 6508.7, "Tail Read Latency": 221536.4, "Median Update Latency": 6509.6, "Tail Update Latency": 223234.9}], ["cfa", "memcached forall", {"Target QPS": 300000, "Actual QPS": 300035.4, "Median Read Latency": 100.2, "Tail Read Latency": 457.3, "Median Update Latency": 106.8, "Tail Update Latency": 525.7}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300050.2, "Median Read Latency": 96.4, "Tail Read Latency": 213.9, "Median Update Latency": 100.7, "Tail Update Latency": 220.0}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499885.9, "Median Read Latency": 7063.8, "Tail Read Latency": 214747.3, "Median Update Latency": 6995.4, "Tail Update Latency": 219631.2}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 609226.7, "Median Read Latency": 14494.9, "Tail Read Latency": 237210.7, "Median Update Latency": 14428.8, "Tail Update Latency": 235805.5}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 569466.3, "Median Read Latency": 511.4, "Tail Read Latency": 226153.5, "Median Update Latency": 364.6, "Tail Update Latency": 224980.5}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499908.5, "Median Read Latency": 5780.3, "Tail Read Latency": 221614.4, "Median Update Latency": 5583.2, "Tail Update Latency": 223730.2}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 564939.5, "Median Read Latency": 9668.2, "Tail Read Latency": 232075.5, "Median Update Latency": 9684.1, "Tail Update Latency": 233548.1}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100060.1, "Median Read Latency": 78.8, "Tail Read Latency": 121.0, "Median Update Latency": 84.6, "Tail Update Latency": 130.7}], ["cfa", "memcached forall", {"Target QPS": 200000, "Actual QPS": 199988.8, "Median Read Latency": 88.0, "Tail Read Latency": 242.2, "Median Update Latency": 95.1, "Tail Update Latency": 263.1}], ["vanilla", "memcached vanilla", {"Target QPS": 700000, "Actual QPS": 619177.1, "Median Read Latency": 5783.8, "Tail Read Latency": 230993.8, "Median Update Latency": 5783.0, "Tail Update Latency": 228857.0}], ["cfa", "memcached forall", {"Target QPS": 700000, "Actual QPS": 591662.2, "Median Read Latency": 13386.9, "Tail Read Latency": 50085.4, "Median Update Latency": 13368.7, "Tail Update Latency": 44908.7}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100031.6, "Median Read Latency": 78.6, "Tail Read Latency": 120.5, "Median Update Latency": 84.0, "Tail Update Latency": 128.7}], ["cfa", "memcached forall", {"Target QPS": 600000, "Actual QPS": 578665.8, "Median Read Latency": 12495.4, "Tail Read Latency": 71938.0, "Median Update Latency": 12460.8, "Tail Update Latency": 134007.8}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 593825.5, "Median Read Latency": 13381.8, "Tail Read Latency": 42648.3, "Median Update Latency": 13428.1, "Tail Update Latency": 52034.5}], ["vanilla", "memcached vanilla", {"Target QPS": 400000, "Actual QPS": 400058.1, "Median Read Latency": 107.0, "Tail Read Latency": 542.8, "Median Update Latency": 112.4, "Tail Update Latency": 534.6}], ["cfa", "memcached forall", {"Target QPS": 100000, "Actual QPS": 100023.5, "Median Read Latency": 86.3, "Tail Read Latency": 167.1, "Median Update Latency": 93.4, "Tail Update Latency": 177.1}], ["vanilla", "memcached vanilla", {"Target QPS": 500000, "Actual QPS": 500013.8, "Median Read Latency": 427.0, "Tail Read Latency": 11978.9, "Median Update Latency": 1271.9, "Tail Update Latency": 12021.7}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200028.8, "Median Read Latency": 79.0, "Tail Read Latency": 128.9, "Median Update Latency": 84.0, "Tail Update Latency": 135.6}], ["fibre", "memcached fibre", {"Target QPS": 800000, "Actual QPS": 622974.3, "Median Read Latency": 25949.6, "Tail Read Latency": 253985.8, "Median Update Latency": 26016.2, "Tail Update Latency": 256999.9}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 498679.6, "Median Read Latency": 2696.6, "Tail Read Latency": 224780.0, "Median Update Latency": 3725.6, "Tail Update Latency": 225606.8}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300005.0, "Median Read Latency": 87.2, "Tail Read Latency": 181.0, "Median Update Latency": 91.9, "Tail Update Latency": 190.0}], ["vanilla", "memcached vanilla", {"Target QPS": 100000, "Actual QPS": 100054.4, "Median Read Latency": 78.9, "Tail Read Latency": 121.5, "Median Update Latency": 84.5, "Tail Update Latency": 128.5}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 594765.9, "Median Read Latency": 13457.0, "Tail Read Latency": 57014.3, "Median Update Latency": 13535.6, "Tail Update Latency": 62271.0}], ["fibre", "memcached fibre", {"Target QPS": 100000, "Actual QPS": 100045.0, "Median Read Latency": 94.0, "Tail Read Latency": 147.8, "Median Update Latency": 98.6, "Tail Update Latency": 155.2}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 570755.1, "Median Read Latency": 1747.1, "Tail Read Latency": 229720.5, "Median Update Latency": 376.1, "Tail Update Latency": 230143.6}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400028.9, "Median Read Latency": 113.5, "Tail Read Latency": 883.0, "Median Update Latency": 119.6, "Tail Update Latency": 930.9}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499161.2, "Median Read Latency": 4035.8, "Tail Read Latency": 226041.1, "Median Update Latency": 4145.7, "Tail Update Latency": 227144.8}], ["vanilla", "memcached vanilla", {"Target QPS": 200000, "Actual QPS": 200004.9, "Median Read Latency": 79.6, "Tail Read Latency": 128.8, "Median Update Latency": 84.8, "Tail Update Latency": 138.1}], ["fibre", "memcached fibre", {"Target QPS": 500000, "Actual QPS": 499892.3, "Median Read Latency": 6412.0, "Tail Read Latency": 220894.5, "Median Update Latency": 6356.1, "Tail Update Latency": 222058.1}], ["vanilla", "memcached vanilla", {"Target QPS": 600000, "Actual QPS": 569172.7, "Median Read Latency": 1014.0, "Tail Read Latency": 227912.8, "Median Update Latency": 299.3, "Tail Update Latency": 226796.7}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 592497.5, "Median Read Latency": 13366.1, "Tail Read Latency": 50141.0, "Median Update Latency": 13458.6, "Tail Update Latency": 64470.4}], ["cfa", "memcached forall", {"Target QPS": 400000, "Actual QPS": 400035.6, "Median Read Latency": 114.4, "Tail Read Latency": 884.8, "Median Update Latency": 121.0, "Tail Update Latency": 883.7}], ["cfa", "memcached forall", {"Target QPS": 500000, "Actual QPS": 499062.3, "Median Read Latency": 2907.3, "Tail Read Latency": 226259.2, "Median Update Latency": 3329.0, "Tail Update Latency": 226354.8}], ["fibre", "memcached fibre", {"Target QPS": 300000, "Actual QPS": 300127.5, "Median Read Latency": 104.7, "Tail Read Latency": 266.2, "Median Update Latency": 109.1, "Tail Update Latency": 269.6}], ["vanilla", "memcached vanilla", {"Target QPS": 300000, "Actual QPS": 300046.9, "Median Read Latency": 88.4, "Tail Read Latency": 182.9, "Median Update Latency": 93.4, "Tail Update Latency": 188.3}], ["cfa", "memcached forall", {"Target QPS": 800000, "Actual QPS": 585332.5, "Median Read Latency": 13581.7, "Tail Read Latency": 41485.9, "Median Update Latency": 13562.4, "Tail Update Latency": 42725.2}]]
  • doc/theses/thierry_delisle_PhD/thesis/data/memcd.updt

    r12df6fe r4520b77e  
    1 [["fibre", "memcached fibre", {"Update Ratio": 30, "Actual QPS": 629656.2, "Average Read Latency": 27319.8, "Median Read Latency": 22952.7, "Tail Read Latency": 246885.9, "Average Update Latency": 27991.9, "Median Update Latency": 23033.7, "Tail Update Latency": 252283.9}], ["fibre", "memcached fibre", {"Update Ratio": 20, "Actual QPS": 648887.0, "Average Read Latency": 30926.5, "Median Read Latency": 26547.5, "Tail Read Latency": 245170.2, "Average Update Latency": 31078.3, "Median Update Latency": 26466.1, "Tail Update Latency": 245702.3}], ["fibre", "memcached fibre", {"Update Ratio": 20, "Actual QPS": 659773.8, "Average Read Latency": 25337.6, "Median Read Latency": 20743.6, "Tail Read Latency": 250895.8, "Average Update Latency": 25691.3, "Median Update Latency": 20786.0, "Tail Update Latency": 252716.3}], ["forall", "memcached forall", {"Update Ratio": 20, "Actual QPS": 593242.6, "Average Read Latency": 16959.6, "Median Read Latency": 13191.5, "Tail Read Latency": 35809.5, "Average Update Latency": 17359.4, "Median Update Latency": 13176.7, "Tail Update Latency": 39772.7}], ["fibre", "memcached fibre", {"Update Ratio": 30, "Actual QPS": 632062.8, "Average Read Latency": 32964.0, "Median Read Latency": 28637.6, "Tail Read Latency": 239904.1, "Average Update Latency": 33330.3, "Median Update Latency": 28653.8, "Tail Update Latency": 245537.7}], ["vanilla", "memcached vanilla", {"Update Ratio": 30, "Actual QPS": 739300.3, "Average Read Latency": 24611.8, "Median Read Latency": 15550.2, "Tail Read Latency": 250448.4, "Average Update Latency": 24234.4, "Median Update Latency": 15504.0, "Tail Update Latency": 249174.1}], ["fibre", "memcached fibre", {"Update Ratio": 30, "Actual QPS": 635540.7, "Average Read Latency": 26437.0, "Median Read Latency": 21871.7, "Tail Read Latency": 249677.1, "Average Update Latency": 27007.6, "Median Update Latency": 21919.5, "Tail Update Latency": 254080.7}], ["fibre", "memcached fibre", {"Update Ratio": 20, "Actual QPS": 662431.5, "Average Read Latency": 28397.9, "Median Read Latency": 22980.7, "Tail Read Latency": 252279.7, "Average Update Latency": 28848.1, "Median Update Latency": 22954.0, "Tail Update Latency": 256070.8}], ["vanilla", "memcached vanilla", {"Update Ratio": 5, "Actual QPS": 771468.6, "Average Read Latency": 21535.3, "Median Read Latency": 11447.2, "Tail Read Latency": 239536.3, "Average Update Latency": 21420.0, "Median Update Latency": 11457.2, "Tail Update Latency": 239594.8}], ["fibre", "memcached fibre", {"Update Ratio": 10, "Actual QPS": 671082.4, "Average Read Latency": 30220.6, "Median Read Latency": 24900.7, "Tail Read Latency": 254034.5, "Average Update Latency": 30377.6, "Median Update Latency": 24913.7, "Tail Update Latency": 255033.5}], ["fibre", "memcached fibre", {"Update Ratio": 10, "Actual QPS": 672847.0, "Average Read Latency": 31129.7, "Median Read Latency": 27301.0, "Tail Read Latency": 92314.4, "Average Update Latency": 31493.5, "Median Update Latency": 27378.8, "Tail Update Latency": 222712.9}], ["fibre", "memcached fibre", {"Update Ratio": 5, "Actual QPS": 684419.5, "Average Read Latency": 34114.6, "Median Read Latency": 29765.8, "Tail Read Latency": 257535.6, "Average Update Latency": 34848.1, "Median Update Latency": 29566.2, "Tail Update Latency": 264376.6}], ["vanilla", "memcached vanilla", {"Update Ratio": 10, "Actual QPS": 764493.6, "Average Read Latency": 22398.2, "Median Read Latency": 12207.4, "Tail Read Latency": 242402.3, "Average Update Latency": 22038.2, "Median Update Latency": 12234.9, "Tail Update Latency": 240284.4}], ["fibre", "memcached fibre", {"Update Ratio": 40, "Actual QPS": 608626.8, "Average Read Latency": 30286.6, "Median Read Latency": 25633.0, "Tail Read Latency": 240653.7, "Average Update Latency": 30652.8, "Median Update Latency": 25603.9, "Tail Update Latency": 246478.7}], ["vanilla", "memcached vanilla", {"Update Ratio": 50, "Actual QPS": 686252.6, "Average Read Latency": 31374.4, "Median Read Latency": 30501.6, "Tail Read Latency": 63738.2, "Average Update Latency": 31347.0, "Median Update Latency": 30428.1, "Tail Update Latency": 63812.1}], ["forall", "memcached forall", {"Update Ratio": 10, "Actual QPS": 595821.8, "Average Read Latency": 16941.1, "Median Read Latency": 13280.7, "Tail Read Latency": 36355.4, "Average Update Latency": 17445.3, "Median Update Latency": 13307.1, "Tail Update Latency": 39244.2}], ["forall", "memcached forall", {"Update Ratio": 15, "Actual QPS": 590278.9, "Average Read Latency": 16989.3, "Median Read Latency": 13312.9, "Tail Read Latency": 37996.6, "Average Update Latency": 17547.9, "Median Update Latency": 13344.8, "Tail Update Latency": 39578.1}], ["fibre", "memcached fibre", {"Update Ratio": 40, "Actual QPS": 619433.4, "Average Read Latency": 30159.8, "Median Read Latency": 25357.0, "Tail Read Latency": 251306.7, "Average Update Latency": 30411.0, "Median Update Latency": 25361.7, "Tail Update Latency": 254805.8}], ["forall", "memcached forall", {"Update Ratio": 5, "Actual QPS": 593761.3, "Average Read Latency": 16959.6, "Median Read Latency": 13400.4, "Tail Read Latency": 47335.2, "Average Update Latency": 17053.7, "Median Update Latency": 13376.7, "Tail Update Latency": 42239.3}], ["forall", "memcached forall", {"Update Ratio": 10, "Actual QPS": 597040.0, "Average Read Latency": 17352.0, "Median Read Latency": 12940.7, "Tail Read Latency": 65486.0, "Average Update Latency": 17545.6, "Median Update Latency": 12969.6, "Tail Update Latency": 92147.2}], ["forall", "memcached forall", {"Update Ratio": 40, "Actual QPS": 587327.3, "Average Read Latency": 14420.7, "Median Read Latency": 13053.8, "Tail Read Latency": 28889.7, "Average Update Latency": 14766.7, "Median Update Latency": 13061.8, "Tail Update Latency": 29130.7}], ["fibre", "memcached fibre", {"Update Ratio": 50, "Actual QPS": 619688.5, "Average Read Latency": 26716.2, "Median Read Latency": 22403.5, "Tail Read Latency": 245740.0, "Average Update Latency": 27090.3, "Median Update Latency": 22366.9, "Tail Update Latency": 248135.7}], ["vanilla", "memcached vanilla", {"Update Ratio": 5, "Actual QPS": 765840.6, "Average Read Latency": 22396.6, "Median Read Latency": 12223.6, "Tail Read Latency": 242722.6, "Average Update Latency": 23164.3, "Median Update Latency": 12122.3, "Tail Update Latency": 246732.7}], ["vanilla", "memcached vanilla", {"Update Ratio": 15, "Actual QPS": 754242.6, "Average Read Latency": 22345.6, "Median Read Latency": 13000.6, "Tail Read Latency": 242559.2, "Average Update Latency": 21803.8, "Median Update Latency": 13027.6, "Tail Update Latency": 240360.2}], ["vanilla", "memcached vanilla", {"Update Ratio": 20, "Actual QPS": 750259.1, "Average Read Latency": 22937.1, "Median Read Latency": 13719.7, "Tail Read Latency": 246024.2, "Average Update Latency": 23195.7, "Median Update Latency": 13716.5, "Tail Update Latency": 247084.9}], ["vanilla", "memcached vanilla", {"Update Ratio": 10, "Actual QPS": 761986.1, "Average Read Latency": 21767.5, "Median Read Latency": 12522.9, "Tail Read Latency": 240214.6, "Average Update Latency": 21621.3, "Median Update Latency": 12541.2, "Tail Update Latency": 239749.6}], ["forall", "memcached forall", {"Update Ratio": 50, "Actual QPS": 566851.8, "Average Read Latency": 14265.5, "Median Read Latency": 13544.1, "Tail Read Latency": 27746.8, "Average Update Latency": 14507.3, "Median Update Latency": 13553.5, "Tail Update Latency": 28471.6}], ["vanilla", "memcached vanilla", {"Update Ratio": 50, "Actual QPS": 708028.0, "Average Read Latency": 29145.3, "Median Read Latency": 23983.1, "Tail Read Latency": 237401.9, "Average Update Latency": 29124.0, "Median Update Latency": 24027.6, "Tail Update Latency": 235432.4}], ["forall", "memcached forall", {"Update Ratio": 5, "Actual QPS": 597227.5, "Average Read Latency": 17511.6, "Median Read Latency": 13228.9, "Tail Read Latency": 58767.4, "Average Update Latency": 18215.1, "Median Update Latency": 13249.5, "Tail Update Latency": 81599.3}], ["fibre", "memcached fibre", {"Update Ratio": 50, "Actual QPS": 599839.9, "Average Read Latency": 26555.1, "Median Read Latency": 21691.3, "Tail Read Latency": 245066.2, "Average Update Latency": 27096.6, "Median Update Latency": 21758.1, "Tail Update Latency": 248899.9}], ["forall", "memcached forall", {"Update Ratio": 15, "Actual QPS": 594852.2, "Average Read Latency": 17337.0, "Median Read Latency": 13137.9, "Tail Read Latency": 37979.0, "Average Update Latency": 17635.4, "Median Update Latency": 13176.4, "Tail Update Latency": 48130.7}], ["vanilla", "memcached vanilla", {"Update Ratio": 40, "Actual QPS": 718833.1, "Average Read Latency": 27863.0, "Median Read Latency": 22526.4, "Tail Read Latency": 245434.6, "Average Update Latency": 27699.5, "Median Update Latency": 22539.8, "Tail Update Latency": 243109.8}], ["fibre", "memcached fibre", {"Update Ratio": 40, "Actual QPS": 628507.6, "Average Read Latency": 28670.7, "Median Read Latency": 24369.4, "Tail Read Latency": 249240.9, "Average Update Latency": 28858.2, "Median Update Latency": 24429.6, "Tail Update Latency": 249891.7}], ["fibre", "memcached fibre", {"Update Ratio": 10, "Actual QPS": 666251.9, "Average Read Latency": 28297.4, "Median Read Latency": 24552.7, "Tail Read Latency": 76372.4, "Average Update Latency": 28566.0, "Median Update Latency": 24466.9, "Tail Update Latency": 90321.1}], ["vanilla", "memcached vanilla", {"Update Ratio": 20, "Actual QPS": 752354.4, "Average Read Latency": 23536.8, "Median Read Latency": 13936.7, "Tail Read Latency": 248639.8, "Average Update Latency": 23798.2, "Median Update Latency": 14040.6, "Tail Update Latency": 247961.7}], ["forall", "memcached forall", {"Update Ratio": 50, "Actual QPS": 565950.3, "Average Read Latency": 14232.6, "Median Read Latency": 13373.6, "Tail Read Latency": 26848.2, "Average Update Latency": 14466.4, "Median Update Latency": 13384.9, "Tail Update Latency": 27958.6}], ["fibre", "memcached fibre", {"Update Ratio": 15, "Actual QPS": 674044.3, "Average Read Latency": 29547.1, "Median Read Latency": 23376.7, "Tail Read Latency": 257169.3, "Average Update Latency": 30137.2, "Median Update Latency": 23423.1, "Tail Update Latency": 262729.5}], ["forall", "memcached forall", {"Update Ratio": 10, "Actual QPS": 589565.9, "Average Read Latency": 16941.2, "Median Read Latency": 13278.3, "Tail Read Latency": 40040.0, "Average Update Latency": 17308.7, "Median Update Latency": 13285.2, "Tail Update Latency": 44209.1}], ["fibre", "memcached fibre", {"Update Ratio": 50, "Actual QPS": 609521.3, "Average Read Latency": 31260.8, "Median Read Latency": 26017.5, "Tail Read Latency": 255078.0, "Average Update Latency": 31635.9, "Median Update Latency": 26086.2, "Tail Update Latency": 256862.8}], ["vanilla", "memcached vanilla", {"Update Ratio": 5, "Actual QPS": 767111.6, "Average Read Latency": 21590.9, "Median Read Latency": 11566.7, "Tail Read Latency": 239628.7, "Average Update Latency": 21399.7, "Median Update Latency": 11585.0, "Tail Update Latency": 239823.6}], ["forall", "memcached forall", {"Update Ratio": 5, "Actual QPS": 599244.3, "Average Read Latency": 17045.5, "Median Read Latency": 13243.6, "Tail Read Latency": 48650.1, "Average Update Latency": 16998.4, "Median Update Latency": 13280.5, "Tail Update Latency": 49466.4}], ["forall", "memcached forall", {"Update Ratio": 15, "Actual QPS": 592856.6, "Average Read Latency": 16172.7, "Median Read Latency": 13278.0, "Tail Read Latency": 31872.0, "Average Update Latency": 16571.3, "Median Update Latency": 13296.0, "Tail Update Latency": 33983.7}], ["fibre", "memcached fibre", {"Update Ratio": 15, "Actual QPS": 662998.4, "Average Read Latency": 26400.5, "Median Read Latency": 22183.5, "Tail Read Latency": 247443.9, "Average Update Latency": 26822.0, "Median Update Latency": 22267.6, "Tail Update Latency": 250068.2}], ["vanilla", "memcached vanilla", {"Update Ratio": 20, "Actual QPS": 748345.8, "Average Read Latency": 23985.2, "Median Read Latency": 14548.6, "Tail Read Latency": 249111.8, "Average Update Latency": 24053.4, "Median Update Latency": 14609.1, "Tail Update Latency": 249310.7}], ["fibre", "memcached fibre", {"Update Ratio": 5, "Actual QPS": 685611.1, "Average Read Latency": 33820.8, "Median Read Latency": 29843.9, "Tail Read Latency": 249003.5, "Average Update Latency": 34612.2, "Median Update Latency": 29937.2, "Tail Update Latency": 265505.6}], ["fibre", "memcached fibre", {"Update Ratio": 5, "Actual QPS": 685539.2, "Average Read Latency": 37016.3, "Median Read Latency": 32225.9, "Tail Read Latency": 263388.6, "Average Update Latency": 37284.7, "Median Update Latency": 32289.9, "Tail Update Latency": 262337.2}], ["forall", "memcached forall", {"Update Ratio": 30, "Actual QPS": 591380.5, "Average Read Latency": 17979.5, "Median Read Latency": 13499.7, "Tail Read Latency": 33487.1, "Average Update Latency": 18303.9, "Median Update Latency": 13523.5, "Tail Update Latency": 38051.2}], ["forall", "memcached forall", {"Update Ratio": 20, "Actual QPS": 593734.3, "Average Read Latency": 16688.8, "Median Read Latency": 13365.9, "Tail Read Latency": 30994.1, "Average Update Latency": 16892.2, "Median Update Latency": 13374.8, "Tail Update Latency": 32244.0}], ["vanilla", "memcached vanilla", {"Update Ratio": 10, "Actual QPS": 761087.3, "Average Read Latency": 22618.8, "Median Read Latency": 12952.0, "Tail Read Latency": 244425.0, "Average Update Latency": 22239.2, "Median Update Latency": 12910.4, "Tail Update Latency": 241797.4}], ["vanilla", "memcached vanilla", {"Update Ratio": 50, "Actual QPS": 689123.1, "Average Read Latency": 31148.1, "Median Read Latency": 29977.4, "Tail Read Latency": 65004.9, "Average Update Latency": 31122.1, "Median Update Latency": 30043.8, "Tail Update Latency": 64488.0}], ["forall", "memcached forall", {"Update Ratio": 20, "Actual QPS": 586549.0, "Average Read Latency": 15286.4, "Median Read Latency": 13246.3, "Tail Read Latency": 30564.7, "Average Update Latency": 16016.0, "Median Update Latency": 13256.5, "Tail Update Latency": 32001.1}], ["vanilla", "memcached vanilla", {"Update Ratio": 15, "Actual QPS": 759348.9, "Average Read Latency": 22876.0, "Median Read Latency": 12931.3, "Tail Read Latency": 244584.8, "Average Update Latency": 22772.0, "Median Update Latency": 12963.1, "Tail Update Latency": 244540.3}], ["forall", "memcached forall", {"Update Ratio": 30, "Actual QPS": 590171.0, "Average Read Latency": 17542.8, "Median Read Latency": 13058.2, "Tail Read Latency": 37919.8, "Average Update Latency": 17986.1, "Median Update Latency": 13075.7, "Tail Update Latency": 47181.7}], ["vanilla", "memcached vanilla", {"Update Ratio": 30, "Actual QPS": 736755.8, "Average Read Latency": 25724.9, "Median Read Latency": 17214.0, "Tail Read Latency": 251561.3, "Average Update Latency": 25647.4, "Median Update Latency": 17123.3, "Tail Update Latency": 251594.7}], ["forall", "memcached forall", {"Update Ratio": 40, "Actual QPS": 594613.0, "Average Read Latency": 15627.5, "Median Read Latency": 13012.1, "Tail Read Latency": 29321.6, "Average Update Latency": 15866.2, "Median Update Latency": 13034.3, "Tail Update Latency": 29997.2}], ["vanilla", "memcached vanilla", {"Update Ratio": 15, "Actual QPS": 753799.1, "Average Read Latency": 22983.2, "Median Read Latency": 13361.2, "Tail Read Latency": 245494.2, "Average Update Latency": 23014.0, "Median Update Latency": 13407.2, "Tail Update Latency": 245242.0}], ["fibre", "memcached fibre", {"Update Ratio": 15, "Actual QPS": 659243.2, "Average Read Latency": 27600.4, "Median Read Latency": 23642.4, "Tail Read Latency": 75626.1, "Average Update Latency": 28038.3, "Median Update Latency": 23443.4, "Tail Update Latency": 135871.1}], ["forall", "memcached forall", {"Update Ratio": 50, "Actual QPS": 583513.8, "Average Read Latency": 15354.0, "Median Read Latency": 13050.8, "Tail Read Latency": 29195.2, "Average Update Latency": 15693.2, "Median Update Latency": 13051.2, "Tail Update Latency": 29477.5}], ["forall", "memcached forall", {"Update Ratio": 40, "Actual QPS": 588410.8, "Average Read Latency": 17002.9, "Median Read Latency": 13316.4, "Tail Read Latency": 29604.6, "Average Update Latency": 17357.7, "Median Update Latency": 13320.0, "Tail Update Latency": 31441.1}], ["vanilla", "memcached vanilla", {"Update Ratio": 40, "Actual QPS": 716262.2, "Average Read Latency": 28975.9, "Median Read Latency": 25327.0, "Tail Read Latency": 228397.2, "Average Update Latency": 29063.3, "Median Update Latency": 25431.2, "Tail Update Latency": 228666.6}], ["vanilla", "memcached vanilla", {"Update Ratio": 30, "Actual QPS": 742447.9, "Average Read Latency": 24479.8, "Median Read Latency": 14438.4, "Tail Read Latency": 251570.6, "Average Update Latency": 24354.2, "Median Update Latency": 14496.9, "Tail Update Latency": 250835.7}], ["forall", "memcached forall", {"Update Ratio": 30, "Actual QPS": 583473.1, "Average Read Latency": 15821.5, "Median Read Latency": 13189.8, "Tail Read Latency": 30907.0, "Average Update Latency": 16668.2, "Median Update Latency": 13208.3, "Tail Update Latency": 33617.6}], ["vanilla", "memcached vanilla", {"Update Ratio": 40, "Actual QPS": 735416.8, "Average Read Latency": 24244.3, "Median Read Latency": 13281.7, "Tail Read Latency": 254833.8, "Average Update Latency": 24481.9, "Median Update Latency": 13318.5, "Tail Update Latency": 254867.7}]]
     1[["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 567470.6, "Average Read Latency": 14757.1, "Median Read Latency": 7477.0, "Tail Read Latency": 236941.0, "Average Update Latency": 14345.5, "Median Update Latency": 7563.3, "Tail Update Latency": 236117.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 545164.9, "Average Read Latency": 14184.2, "Median Read Latency": 13746.3, "Tail Read Latency": 26383.2, "Average Update Latency": 14313.3, "Median Update Latency": 13759.5, "Tail Update Latency": 27412.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 399915.5, "Average Read Latency": 161.5, "Median Read Latency": 119.7, "Tail Read Latency": 524.6, "Average Update Latency": 166.2, "Median Update Latency": 123.6, "Tail Update Latency": 523.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 400054.6, "Average Read Latency": 176.7, "Median Read Latency": 121.6, "Tail Read Latency": 581.5, "Average Update Latency": 178.2, "Median Update Latency": 125.6, "Tail Update Latency": 573.5}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 200011.1, "Average Read Latency": 110.6, "Median Read Latency": 94.9, "Tail Read Latency": 183.3, "Average Update Latency": 111.7, "Median Update Latency": 97.8, "Tail Update Latency": 185.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 589336.9, "Average Read Latency": 23216.9, "Median Read Latency": 13615.3, "Tail Read Latency": 260818.9, "Average Update Latency": 22809.6, "Median Update Latency": 13626.8, "Tail Update Latency": 256876.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 100025.8, "Average Read Latency": 89.6, "Median Read Latency": 86.9, "Tail Read Latency": 133.5, "Average Update Latency": 94.0, "Median Update Latency": 91.7, "Tail Update Latency": 139.8}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 200033.6, "Average Read Latency": 89.1, "Median Read Latency": 85.5, "Tail Read Latency": 138.0, "Average Update Latency": 92.2, "Median Update Latency": 88.6, "Tail Update Latency": 140.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499671.8, "Average Read Latency": 9085.8, "Median Read Latency": 1659.7, "Tail Read Latency": 225811.0, "Average Update Latency": 8974.2, "Median Update Latency": 1907.4, "Tail Update Latency": 225020.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 100001.1, "Average Read Latency": 97.9, "Median Read Latency": 92.6, "Tail Read Latency": 156.0, "Average Update Latency": 101.3, "Median Update Latency": 97.4, "Tail Update Latency": 164.1}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 591879.7, "Average Read Latency": 22920.9, "Median Read Latency": 13740.8, "Tail Read Latency": 256607.4, "Average Update Latency": 22933.6, "Median Update Latency": 13753.1, "Tail Update Latency": 256394.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 300083.1, "Average Read Latency": 113.1, "Median Read Latency": 98.6, "Tail Read Latency": 257.5, "Average Update Latency": 115.9, "Median Update Latency": 102.3, "Tail Update Latency": 259.8}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 596663.6, "Average Read Latency": 21533.9, "Median Read Latency": 12133.2, "Tail Read Latency": 255135.7, "Average Update Latency": 21684.7, "Median Update Latency": 12151.7, "Tail Update Latency": 255312.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 569060.2, "Average Read Latency": 11674.9, "Median Read Latency": 7450.5, "Tail Read Latency": 232878.6, "Average Update Latency": 11469.9, "Median Update Latency": 7505.0, "Tail Update Latency": 232098.7}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 300007.4, "Average Read Latency": 103.1, "Median Read Latency": 96.4, "Tail Read Latency": 191.5, "Average Update Latency": 106.2, "Median Update Latency": 99.8, "Tail Update Latency": 195.7}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 482275.5, "Average Read Latency": 22381.2, "Median Read Latency": 11546.7, "Tail Read Latency": 261040.2, "Average Update Latency": 22981.6, "Median Update Latency": 11569.7, "Tail Update Latency": 270424.2}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 100042.6, "Average Read Latency": 101.2, "Median Read Latency": 92.4, "Tail Read Latency": 157.7, "Average Update Latency": 109.0, "Median Update Latency": 97.0, "Tail Update Latency": 167.3}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 200008.7, "Average Read Latency": 89.7, "Median Read Latency": 85.9, "Tail Read Latency": 140.2, "Average Update Latency": 93.1, "Median Update Latency": 89.1, "Tail Update Latency": 145.9}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 300047.6, "Average Read Latency": 134.4, "Median Read Latency": 99.4, "Tail Read Latency": 274.2, "Average Update Latency": 149.6, "Median Update Latency": 101.6, "Tail Update Latency": 299.1}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 570676.7, "Average Read Latency": 17711.4, "Median Read Latency": 7849.3, "Tail Read Latency": 253008.4, "Average Update Latency": 18214.1, "Median Update Latency": 7842.6, "Tail Update Latency": 253410.5}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 299984.0, "Average Read Latency": 141.2, "Median Read Latency": 99.2, "Tail Read Latency": 276.0, "Average Update Latency": 159.7, "Median Update Latency": 101.3, "Tail Update Latency": 283.1}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499743.1, "Average Read Latency": 9428.6, "Median Read Latency": 3039.2, "Tail Read Latency": 226341.1, "Average Update Latency": 9501.2, "Median Update Latency": 3344.9, "Tail Update Latency": 226482.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 562849.2, "Average Read Latency": 18016.9, "Median Read Latency": 7279.8, "Tail Read Latency": 432181.1, "Average Update Latency": 17156.9, "Median Update Latency": 7304.8, "Tail Update Latency": 425221.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 100023.8, "Average Read Latency": 105.9, "Median Read Latency": 93.2, "Tail Read Latency": 147.7, "Average Update Latency": 112.5, "Median Update Latency": 96.8, "Tail Update Latency": 153.1}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 100026.2, "Average Read Latency": 103.9, "Median Read Latency": 92.1, "Tail Read Latency": 140.6, "Average Update Latency": 106.8, "Median Update Latency": 95.6, "Tail Update Latency": 145.5}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 99996.1, "Average Read Latency": 102.0, "Median Read Latency": 93.0, "Tail Read Latency": 158.8, "Average Update Latency": 104.9, "Median Update Latency": 98.1, "Tail Update Latency": 166.7}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 587489.8, "Average Read Latency": 20472.5, "Median Read Latency": 13024.8, "Tail Read Latency": 244269.1, "Average Update Latency": 20371.7, "Median Update Latency": 13056.4, "Tail Update Latency": 242838.9}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 589422.4, "Average Read Latency": 23373.6, "Median Read Latency": 13430.3, "Tail Read Latency": 257062.0, "Average Update Latency": 23420.8, "Median Update Latency": 13457.3, "Tail Update Latency": 256705.1}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 300007.4, "Average Read Latency": 125.4, "Median Read Latency": 106.3, "Tail Read Latency": 302.5, "Average Update Latency": 128.7, "Median Update Latency": 110.4, "Tail Update Latency": 311.2}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 541321.3, "Average Read Latency": 14281.0, "Median Read Latency": 13891.1, "Tail Read Latency": 26410.6, "Average Update Latency": 14322.1, "Median Update Latency": 13882.2, "Tail Update Latency": 27375.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 568276.9, "Average Read Latency": 17565.6, "Median Read Latency": 7515.7, "Tail Read Latency": 426792.6, "Average Update Latency": 16892.4, "Median Update Latency": 7567.2, "Tail Update Latency": 240402.9}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300043.0, "Average Read Latency": 149.2, "Median Read Latency": 106.3, "Tail Read Latency": 383.6, "Average Update Latency": 165.0, "Median Update Latency": 109.0, "Tail Update Latency": 365.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499868.3, "Average Read Latency": 5903.5, "Median Read Latency": 324.8, "Tail Read Latency": 12510.2, "Average Update Latency": 5864.5, "Median Update Latency": 309.7, "Tail Update Latency": 12506.6}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 100024.6, "Average Read Latency": 99.1, "Median Read Latency": 94.0, "Tail Read Latency": 159.4, "Average Update Latency": 107.7, "Median Update Latency": 99.0, "Tail Update Latency": 164.7}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 100025.4, "Average Read Latency": 103.2, "Median Read Latency": 92.5, "Tail Read Latency": 144.9, "Average Update Latency": 108.5, "Median Update Latency": 96.0, "Tail Update Latency": 151.5}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 484333.2, "Average Read Latency": 23159.4, "Median Read Latency": 12687.6, "Tail Read Latency": 261285.4, "Average Update Latency": 23538.3, "Median Update Latency": 12753.6, "Tail Update Latency": 264174.9}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 588987.4, "Average Read Latency": 23104.8, "Median Read Latency": 13968.5, "Tail Read Latency": 256403.9, "Average Update Latency": 22716.6, "Median Update Latency": 13977.3, "Tail Update Latency": 251936.5}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 579256.8, "Average Read Latency": 14451.2, "Median Read Latency": 13031.5, "Tail Read Latency": 28778.9, "Average Update Latency": 14641.1, "Median Update Latency": 13036.8, "Tail Update Latency": 29330.2}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 399960.7, "Average Read Latency": 120.0, "Median Read Latency": 103.7, "Tail Read Latency": 342.6, "Average Update Latency": 122.5, "Median Update Latency": 106.2, "Tail Update Latency": 344.5}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 568120.3, "Average Read Latency": 16686.0, "Median Read Latency": 7300.5, "Tail Read Latency": 427822.8, "Average Update Latency": 16533.6, "Median Update Latency": 7374.9, "Tail Update Latency": 240068.7}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 100049.9, "Average Read Latency": 101.3, "Median Read Latency": 93.3, "Tail Read Latency": 164.5, "Average Update Latency": 106.1, "Median Update Latency": 98.8, "Tail Update Latency": 171.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 591905.8, "Average Read Latency": 22586.0, "Median Read Latency": 13507.6, "Tail Read Latency": 253640.5, "Average Update Latency": 22687.1, "Median Update Latency": 13591.2, "Tail Update Latency": 254364.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 299991.5, "Average Read Latency": 131.1, "Median Read Latency": 99.9, "Tail Read Latency": 280.5, "Average Update Latency": 153.6, "Median Update Latency": 102.1, "Tail Update Latency": 298.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 300057.7, "Average Read Latency": 111.1, "Median Read Latency": 98.2, "Tail Read Latency": 247.9, "Average Update Latency": 113.8, "Median Update Latency": 101.9, "Tail Update Latency": 249.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499466.1, "Average Read Latency": 8701.1, "Median Read Latency": 2322.6, "Tail Read Latency": 223900.8, "Average Update Latency": 8541.6, "Median Update Latency": 2559.8, "Tail Update Latency": 223094.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 499913.7, "Average Read Latency": 6478.0, "Median Read Latency": 528.9, "Tail Read Latency": 12691.2, "Average Update Latency": 6292.6, "Median Update Latency": 400.1, "Tail Update Latency": 12524.9}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 199987.1, "Average Read Latency": 106.5, "Median Read Latency": 95.9, "Tail Read Latency": 210.8, "Average Update Latency": 109.0, "Median Update Latency": 100.4, "Tail Update Latency": 216.1}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 300001.2, "Average Read Latency": 110.7, "Median Read Latency": 97.5, "Tail Read Latency": 250.9, "Average Update Latency": 114.0, "Median Update Latency": 101.3, "Tail Update Latency": 252.2}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 199992.0, "Average Read Latency": 122.9, "Median Read Latency": 98.3, "Tail Read Latency": 215.0, "Average Update Latency": 124.2, "Median Update Latency": 101.2, "Tail Update Latency": 218.8}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 566271.4, "Average Read Latency": 15620.1, "Median Read Latency": 7890.8, "Tail Read Latency": 238376.9, "Average Update Latency": 15338.2, "Median Update Latency": 7928.2, "Tail Update Latency": 237901.9}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 400058.7, "Average Read Latency": 165.6, "Median Read Latency": 120.5, "Tail Read Latency": 531.4, "Average Update Latency": 169.0, "Median Update Latency": 124.1, "Tail Update Latency": 537.1}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 100079.1, "Average Read Latency": 90.2, "Median Read Latency": 87.3, "Tail Read Latency": 136.1, "Average Update Latency": 94.6, "Median Update Latency": 92.3, "Tail Update Latency": 141.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 572014.9, "Average Read Latency": 14144.6, "Median Read Latency": 13185.6, "Tail Read Latency": 27838.8, "Average Update Latency": 14329.9, "Median Update Latency": 13192.1, "Tail Update Latency": 28694.8}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 300050.4, "Average Read Latency": 102.4, "Median Read Latency": 95.6, "Tail Read Latency": 192.9, "Average Update Latency": 105.0, "Median Update Latency": 98.7, "Tail Update Latency": 197.9}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 200059.9, "Average Read Latency": 88.1, "Median Read Latency": 85.0, "Tail Read Latency": 136.6, "Average Update Latency": 91.2, "Median Update Latency": 87.9, "Tail Update Latency": 139.7}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 100034.4, "Average Read Latency": 104.5, "Median Read Latency": 94.1, "Tail Read Latency": 149.3, "Average Update Latency": 108.7, "Median Update Latency": 97.8, "Tail Update Latency": 153.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 550741.2, "Average Read Latency": 14365.9, "Median Read Latency": 13923.2, "Tail Read Latency": 27239.5, "Average Update Latency": 14551.2, "Median Update Latency": 13936.7, "Tail Update Latency": 28280.2}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 199995.3, "Average Read Latency": 89.1, "Median Read Latency": 85.5, "Tail Read Latency": 138.0, "Average Update Latency": 92.6, "Median Update Latency": 88.5, "Tail Update Latency": 141.6}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 571140.1, "Average Read Latency": 15769.7, "Median Read Latency": 7737.9, "Tail Read Latency": 238166.7, "Average Update Latency": 15093.9, "Median Update Latency": 7690.3, "Tail Update Latency": 237419.3}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300053.1, "Average Read Latency": 145.7, "Median Read Latency": 106.0, "Tail Read Latency": 324.9, "Average Update Latency": 154.7, "Median Update Latency": 109.0, "Tail Update Latency": 330.9}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 399942.4, "Average Read Latency": 119.3, "Median Read Latency": 104.1, "Tail Read Latency": 314.0, "Average Update Latency": 122.0, "Median Update Latency": 106.6, "Tail Update Latency": 316.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499846.0, "Average Read Latency": 5121.2, "Median Read Latency": 263.2, "Tail Read Latency": 12380.5, "Average Update Latency": 5092.9, "Median Update Latency": 251.7, "Tail Update Latency": 12373.5}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 100003.4, "Average Read Latency": 100.9, "Median Read Latency": 92.5, "Tail Read Latency": 160.3, "Average Update Latency": 108.4, "Median Update Latency": 97.5, "Tail Update Latency": 169.2}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 498971.9, "Average Read Latency": 26558.3, "Median Read Latency": 16244.9, "Tail Read Latency": 276693.7, "Average Update Latency": 27307.8, "Median Update Latency": 16284.5, "Tail Update Latency": 283650.4}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 506220.0, "Average Read Latency": 25791.0, "Median Read Latency": 14665.9, "Tail Read Latency": 301293.3, "Average Update Latency": 26363.5, "Median Update Latency": 14853.4, "Tail Update Latency": 312949.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 544608.6, "Average Read Latency": 14316.1, "Median Read Latency": 13895.2, "Tail Read Latency": 26931.1, "Average Update Latency": 14468.9, "Median Update Latency": 13894.7, "Tail Update Latency": 27846.9}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499557.5, "Average Read Latency": 9087.1, "Median Read Latency": 1874.8, "Tail Read Latency": 224870.3, "Average Update Latency": 9163.9, "Median Update Latency": 2001.8, "Tail Update Latency": 224632.9}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 547255.1, "Average Read Latency": 14516.3, "Median Read Latency": 13937.2, "Tail Read Latency": 27626.2, "Average Update Latency": 14753.9, "Median Update Latency": 13943.4, "Tail Update Latency": 28658.2}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 200003.7, "Average Read Latency": 88.5, "Median Read Latency": 85.2, "Tail Read Latency": 139.3, "Average Update Latency": 92.0, "Median Update Latency": 88.3, "Tail Update Latency": 142.3}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 493669.0, "Average Read Latency": 24601.0, "Median Read Latency": 13774.3, "Tail Read Latency": 302034.4, "Average Update Latency": 24432.6, "Median Update Latency": 13753.5, "Tail Update Latency": 295630.2}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 100002.2, "Average Read Latency": 102.5, "Median Read Latency": 93.3, "Tail Read Latency": 145.5, "Average Update Latency": 105.0, "Median Update Latency": 96.9, "Tail Update Latency": 152.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 400010.0, "Average Read Latency": 574.2, "Median Read Latency": 128.4, "Tail Read Latency": 10047.1, "Average Update Latency": 711.8, "Median Update Latency": 130.4, "Tail Update Latency": 13344.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 592805.6, "Average Read Latency": 23499.9, "Median Read Latency": 14365.0, "Tail Read Latency": 256872.8, "Average Update Latency": 23319.4, "Median Update Latency": 14346.3, "Tail Update Latency": 253958.4}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 200027.4, "Average Read Latency": 111.4, "Median Read Latency": 94.4, "Tail Read Latency": 183.4, "Average Update Latency": 114.4, "Median Update Latency": 97.2, "Tail Update Latency": 187.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 400081.6, "Average Read Latency": 482.0, "Median Read Latency": 124.7, "Tail Read Latency": 8770.8, "Average Update Latency": 618.4, "Median Update Latency": 126.5, "Tail Update Latency": 11577.1}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 500002.9, "Average Read Latency": 6029.8, "Median Read Latency": 350.5, "Tail Read Latency": 12525.2, "Average Update Latency": 5941.4, "Median Update Latency": 370.8, "Tail Update Latency": 12521.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 550659.8, "Average Read Latency": 13970.7, "Median Read Latency": 13619.7, "Tail Read Latency": 25943.9, "Average Update Latency": 14133.2, "Median Update Latency": 13627.1, "Tail Update Latency": 27031.6}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 400063.8, "Average Read Latency": 168.5, "Median Read Latency": 122.0, "Tail Read Latency": 537.2, "Average Update Latency": 173.2, "Median Update Latency": 125.4, "Tail Update Latency": 546.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 400058.7, "Average Read Latency": 361.2, "Median Read Latency": 123.7, "Tail Read Latency": 6077.6, "Average Update Latency": 426.4, "Median Update Latency": 125.9, "Tail Update Latency": 7271.9}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 555241.3, "Average Read Latency": 14050.5, "Median Read Latency": 13517.5, "Tail Read Latency": 26629.9, "Average Update Latency": 14357.9, "Median Update Latency": 13536.1, "Tail Update Latency": 28051.2}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 300054.8, "Average Read Latency": 136.6, "Median Read Latency": 100.3, "Tail Read Latency": 299.0, "Average Update Latency": 162.3, "Median Update Latency": 102.4, "Tail Update Latency": 331.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 556532.8, "Average Read Latency": 14337.2, "Median Read Latency": 13642.1, "Tail Read Latency": 27208.5, "Average Update Latency": 14487.7, "Median Update Latency": 13644.3, "Tail Update Latency": 28079.4}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 483449.4, "Average Read Latency": 21575.5, "Median Read Latency": 12127.6, "Tail Read Latency": 257142.7, "Average Update Latency": 21949.9, "Median Update Latency": 12163.4, "Tail Update Latency": 259438.2}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 300013.9, "Average Read Latency": 101.3, "Median Read Latency": 94.7, "Tail Read Latency": 189.5, "Average Update Latency": 104.7, "Median Update Latency": 97.7, "Tail Update Latency": 193.1}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 592039.7, "Average Read Latency": 22504.7, "Median Read Latency": 13064.1, "Tail Read Latency": 260387.1, "Average Update Latency": 22588.3, "Median Update Latency": 13068.9, "Tail Update Latency": 256401.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 576239.8, "Average Read Latency": 17525.3, "Median Read Latency": 7890.6, "Tail Read Latency": 262424.7, "Average Update Latency": 17836.0, "Median Update Latency": 7842.3, "Tail Update Latency": 260514.6}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 399966.7, "Average Read Latency": 166.8, "Median Read Latency": 120.1, "Tail Read Latency": 532.6, "Average Update Latency": 172.4, "Median Update Latency": 123.5, "Tail Update Latency": 535.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 483657.7, "Average Read Latency": 19531.2, "Median Read Latency": 12065.5, "Tail Read Latency": 250403.1, "Average Update Latency": 20008.1, "Median Update Latency": 12091.1, "Tail Update Latency": 250624.8}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 299992.9, "Average Read Latency": 101.7, "Median Read Latency": 95.0, "Tail Read Latency": 192.9, "Average Update Latency": 104.6, "Median Update Latency": 98.0, "Tail Update Latency": 196.8}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 400078.3, "Average Read Latency": 438.5, "Median Read Latency": 124.2, "Tail Read Latency": 7563.1, "Average Update Latency": 556.0, "Median Update Latency": 126.2, "Tail Update Latency": 10830.2}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 593742.6, "Average Read Latency": 22369.3, "Median Read Latency": 13336.9, "Tail Read Latency": 254936.7, "Average Update Latency": 22590.3, "Median Update Latency": 13331.8, "Tail Update Latency": 258588.4}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 100049.1, "Average Read Latency": 106.1, "Median Read Latency": 93.0, "Tail Read Latency": 145.9, "Average Update Latency": 109.4, "Median Update Latency": 96.6, "Tail Update Latency": 150.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 99974.0, "Average Read Latency": 99.7, "Median Read Latency": 91.3, "Tail Read Latency": 137.3, "Average Update Latency": 106.6, "Median Update Latency": 94.9, "Tail Update Latency": 141.9}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 100020.1, "Average Read Latency": 89.7, "Median Read Latency": 86.8, "Tail Read Latency": 133.5, "Average Update Latency": 94.2, "Median Update Latency": 91.9, "Tail Update Latency": 139.9}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 300042.1, "Average Read Latency": 101.7, "Median Read Latency": 95.4, "Tail Read Latency": 190.4, "Average Update Latency": 104.8, "Median Update Latency": 98.5, "Tail Update Latency": 195.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 482861.0, "Average Read Latency": 24516.1, "Median Read Latency": 11726.2, "Tail Read Latency": 290118.1, "Average Update Latency": 25259.9, "Median Update Latency": 11820.2, "Tail Update Latency": 365888.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 99992.4, "Average Read Latency": 89.1, "Median Read Latency": 86.4, "Tail Read Latency": 133.9, "Average Update Latency": 93.5, "Median Update Latency": 91.3, "Tail Update Latency": 139.2}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 514280.6, "Average Read Latency": 28871.6, "Median Read Latency": 20656.6, "Tail Read Latency": 277735.3, "Average Update Latency": 29517.7, "Median Update Latency": 20663.6, "Tail Update Latency": 283123.3}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 300038.7, "Average Read Latency": 102.1, "Median Read Latency": 95.2, "Tail Read Latency": 192.9, "Average Update Latency": 105.1, "Median Update Latency": 98.3, "Tail Update Latency": 195.0}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 200041.4, "Average Read Latency": 88.8, "Median Read Latency": 85.7, "Tail Read Latency": 138.0, "Average Update Latency": 92.3, "Median Update Latency": 89.2, "Tail Update Latency": 141.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 571087.0, "Average Read Latency": 16999.2, "Median Read Latency": 7783.7, "Tail Read Latency": 239802.0, "Average Update Latency": 16780.4, "Median Update Latency": 7770.6, "Tail Update Latency": 240341.5}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 486219.1, "Average Read Latency": 22219.5, "Median Read Latency": 11849.6, "Tail Read Latency": 260033.6, "Average Update Latency": 22547.0, "Median Update Latency": 11906.7, "Tail Update Latency": 261667.3}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 100001.9, "Average Read Latency": 101.8, "Median Read Latency": 92.8, "Tail Read Latency": 156.8, "Average Update Latency": 110.6, "Median Update Latency": 97.6, "Tail Update Latency": 165.7}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200027.4, "Average Read Latency": 89.8, "Median Read Latency": 86.1, "Tail Read Latency": 139.9, "Average Update Latency": 93.2, "Median Update Latency": 89.3, "Tail Update Latency": 144.4}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 509170.1, "Average Read Latency": 26387.9, "Median Read Latency": 16168.0, "Tail Read Latency": 281173.9, "Average Update Latency": 27130.6, "Median Update Latency": 16257.9, "Tail Update Latency": 290885.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 200084.2, "Average Read Latency": 108.9, "Median Read Latency": 95.4, "Tail Read Latency": 207.3, "Average Update Latency": 110.2, "Median Update Latency": 99.6, "Tail Update Latency": 214.9}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 484233.5, "Average Read Latency": 22806.5, "Median Read Latency": 12744.6, "Tail Read Latency": 259951.4, "Average Update Latency": 23297.4, "Median Update Latency": 12785.1, "Tail Update Latency": 261838.3}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 481467.6, "Average Read Latency": 22935.1, "Median Read Latency": 12125.8, "Tail Read Latency": 262550.8, "Average Update Latency": 22951.6, "Median Update Latency": 12144.8, "Tail Update Latency": 263011.3}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 199997.4, "Average Read Latency": 109.6, "Median Read Latency": 96.1, "Tail Read Latency": 199.5, "Average Update Latency": 112.7, "Median Update Latency": 99.3, "Tail Update Latency": 202.5}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 100018.4, "Average Read Latency": 90.1, "Median Read Latency": 87.0, "Tail Read Latency": 136.1, "Average Update Latency": 94.5, "Median Update Latency": 92.0, "Tail Update Latency": 141.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 400017.7, "Average Read Latency": 121.2, "Median Read Latency": 105.0, "Tail Read Latency": 326.6, "Average Update Latency": 123.8, "Median Update Latency": 107.7, "Tail Update Latency": 329.4}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 499897.5, "Average Read Latency": 6257.9, "Median Read Latency": 326.2, "Tail Read Latency": 12522.1, "Average Update Latency": 6149.5, "Median Update Latency": 361.6, "Tail Update Latency": 12517.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 399928.3, "Average Read Latency": 117.8, "Median Read Latency": 102.9, "Tail Read Latency": 306.1, "Average Update Latency": 120.5, "Median Update Latency": 105.7, "Tail Update Latency": 312.8}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 399932.6, "Average Read Latency": 534.3, "Median Read Latency": 126.6, "Tail Read Latency": 9654.6, "Average Update Latency": 675.0, "Median Update Latency": 128.0, "Tail Update Latency": 13051.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 592812.9, "Average Read Latency": 24381.6, "Median Read Latency": 13704.9, "Tail Read Latency": 268572.5, "Average Update Latency": 23692.2, "Median Update Latency": 13699.2, "Tail Update Latency": 261268.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 100017.2, "Average Read Latency": 89.4, "Median Read Latency": 86.8, "Tail Read Latency": 133.1, "Average Update Latency": 94.0, "Median Update Latency": 91.8, "Tail Update Latency": 139.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 399965.4, "Average Read Latency": 171.7, "Median Read Latency": 122.3, "Tail Read Latency": 564.8, "Average Update Latency": 176.6, "Median Update Latency": 126.5, "Tail Update Latency": 569.9}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 546885.7, "Average Read Latency": 14127.1, "Median Read Latency": 13599.8, "Tail Read Latency": 26248.1, "Average Update Latency": 14165.1, "Median Update Latency": 13601.2, "Tail Update Latency": 27171.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 100002.0, "Average Read Latency": 87.9, "Median Read Latency": 85.4, "Tail Read Latency": 128.1, "Average Update Latency": 91.8, "Median Update Latency": 89.5, "Tail Update Latency": 133.7}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 514697.6, "Average Read Latency": 27552.1, "Median Read Latency": 16959.6, "Tail Read Latency": 303034.7, "Average Update Latency": 28180.9, "Median Update Latency": 16943.0, "Tail Update Latency": 315093.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 199974.4, "Average Read Latency": 88.9, "Median Read Latency": 85.2, "Tail Read Latency": 137.8, "Average Update Latency": 92.5, "Median Update Latency": 88.1, "Tail Update Latency": 141.2}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 199998.3, "Average Read Latency": 105.2, "Median Read Latency": 95.4, "Tail Read Latency": 207.8, "Average Update Latency": 110.9, "Median Update Latency": 99.8, "Tail Update Latency": 214.2}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 589495.9, "Average Read Latency": 23963.2, "Median Read Latency": 13525.6, "Tail Read Latency": 268123.7, "Average Update Latency": 23376.9, "Median Update Latency": 13565.9, "Tail Update Latency": 262205.2}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 200006.8, "Average Read Latency": 107.2, "Median Read Latency": 95.4, "Tail Read Latency": 210.7, "Average Update Latency": 112.2, "Median Update Latency": 99.9, "Tail Update Latency": 217.8}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 488388.7, "Average Read Latency": 22071.0, "Median Read Latency": 12107.0, "Tail Read Latency": 259128.0, "Average Update Latency": 22533.3, "Median Update Latency": 12164.8, "Tail Update Latency": 262369.4}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200021.6, "Average Read Latency": 88.3, "Median Read Latency": 85.1, "Tail Read Latency": 136.9, "Average Update Latency": 91.1, "Median Update Latency": 87.9, "Tail Update Latency": 139.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 100043.2, "Average Read Latency": 102.1, "Median Read Latency": 92.2, "Tail Read Latency": 139.7, "Average Update Latency": 110.2, "Median Update Latency": 95.9, "Tail Update Latency": 146.5}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 399973.9, "Average Read Latency": 166.5, "Median Read Latency": 120.7, "Tail Read Latency": 533.8, "Average Update Latency": 169.7, "Median Update Latency": 124.8, "Tail Update Latency": 537.1}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 200005.3, "Average Read Latency": 104.6, "Median Read Latency": 95.8, "Tail Read Latency": 208.8, "Average Update Latency": 109.0, "Median Update Latency": 100.0, "Tail Update Latency": 216.5}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 565115.2, "Average Read Latency": 14392.0, "Median Read Latency": 13370.3, "Tail Read Latency": 28533.0, "Average Update Latency": 14511.3, "Median Update Latency": 13377.3, "Tail Update Latency": 28720.7}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 199996.0, "Average Read Latency": 113.9, "Median Read Latency": 95.9, "Tail Read Latency": 194.8, "Average Update Latency": 118.1, "Median Update Latency": 98.8, "Tail Update Latency": 197.1}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499776.8, "Average Read Latency": 8389.2, "Median Read Latency": 1343.2, "Tail Read Latency": 222478.0, "Average Update Latency": 8438.9, "Median Update Latency": 1549.9, "Tail Update Latency": 222569.7}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 565726.3, "Average Read Latency": 13919.6, "Median Read Latency": 13338.8, "Tail Read Latency": 27310.3, "Average Update Latency": 14161.3, "Median Update Latency": 13340.4, "Tail Update Latency": 28578.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 547518.3, "Average Read Latency": 14355.2, "Median Read Latency": 13980.8, "Tail Read Latency": 26399.4, "Average Update Latency": 14476.0, "Median Update Latency": 13982.9, "Tail Update Latency": 27167.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 506312.2, "Average Read Latency": 25086.2, "Median Read Latency": 15022.7, "Tail Read Latency": 288446.3, "Average Update Latency": 25514.0, "Median Update Latency": 14986.0, "Tail Update Latency": 299557.3}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 300016.8, "Average Read Latency": 134.6, "Median Read Latency": 99.4, "Tail Read Latency": 276.7, "Average Update Latency": 158.8, "Median Update Latency": 101.6, "Tail Update Latency": 298.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 568452.2, "Average Read Latency": 14493.4, "Median Read Latency": 13320.7, "Tail Read Latency": 28622.6, "Average Update Latency": 14611.2, "Median Update Latency": 13322.6, "Tail Update Latency": 29080.1}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 199977.6, "Average Read Latency": 89.0, "Median Read Latency": 85.5, "Tail Read Latency": 137.6, "Average Update Latency": 92.8, "Median Update Latency": 88.6, "Tail Update Latency": 141.4}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 556033.8, "Average Read Latency": 14115.7, "Median Read Latency": 13565.6, "Tail Read Latency": 26675.4, "Average Update Latency": 14389.7, "Median Update Latency": 13573.0, "Tail Update Latency": 27932.1}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 399997.1, "Average Read Latency": 167.0, "Median Read Latency": 121.1, "Tail Read Latency": 533.7, "Average Update Latency": 169.5, "Median Update Latency": 125.3, "Tail Update Latency": 537.2}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 510613.2, "Average Read Latency": 22350.4, "Median Read Latency": 13614.3, "Tail Read Latency": 264379.8, "Average Update Latency": 23466.8, "Median Update Latency": 13749.1, "Tail Update Latency": 274337.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 572296.1, "Average Read Latency": 13197.0, "Median Read Latency": 7836.3, "Tail Read Latency": 234669.0, "Average Update Latency": 13550.4, "Median Update Latency": 7715.8, "Tail Update Latency": 235356.2}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 400009.9, "Average Read Latency": 529.6, "Median Read Latency": 125.7, "Tail Read Latency": 9175.5, "Average Update Latency": 706.9, "Median Update Latency": 127.9, "Tail Update Latency": 12838.0}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 200034.0, "Average Read Latency": 104.5, "Median Read Latency": 94.2, "Tail Read Latency": 178.6, "Average Update Latency": 108.2, "Median Update Latency": 97.2, "Tail Update Latency": 183.5}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 584701.4, "Average Read Latency": 25731.4, "Median Read Latency": 18598.5, "Tail Read Latency": 251723.1, "Average Update Latency": 25729.0, "Median Update Latency": 18628.2, "Tail Update Latency": 252671.2}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 400039.4, "Average Read Latency": 123.5, "Median Read Latency": 103.6, "Tail Read Latency": 421.8, "Average Update Latency": 125.6, "Median Update Latency": 105.9, "Tail Update Latency": 423.4}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200005.4, "Average Read Latency": 87.8, "Median Read Latency": 84.9, "Tail Read Latency": 136.3, "Average Update Latency": 91.4, "Median Update Latency": 87.9, "Tail Update Latency": 140.7}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 484731.2, "Average Read Latency": 23138.3, "Median Read Latency": 12545.3, "Tail Read Latency": 261788.3, "Average Update Latency": 23949.0, "Median Update Latency": 12576.8, "Tail Update Latency": 263366.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 399947.4, "Average Read Latency": 119.5, "Median Read Latency": 103.8, "Tail Read Latency": 314.3, "Average Update Latency": 122.3, "Median Update Latency": 106.4, "Tail Update Latency": 322.4}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 570287.3, "Average Read Latency": 16621.5, "Median Read Latency": 7416.0, "Tail Read Latency": 240140.5, "Average Update Latency": 16622.4, "Median Update Latency": 7483.3, "Tail Update Latency": 240457.4}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 299954.2, "Average Read Latency": 110.4, "Median Read Latency": 97.6, "Tail Read Latency": 248.5, "Average Update Latency": 113.8, "Median Update Latency": 101.5, "Tail Update Latency": 252.2}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 100027.3, "Average Read Latency": 98.6, "Median Read Latency": 93.3, "Tail Read Latency": 158.0, "Average Update Latency": 102.8, "Median Update Latency": 98.1, "Tail Update Latency": 168.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 199989.7, "Average Read Latency": 103.9, "Median Read Latency": 94.9, "Tail Read Latency": 203.5, "Average Update Latency": 109.5, "Median Update Latency": 99.2, "Tail Update Latency": 213.1}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 555829.9, "Average Read Latency": 14425.4, "Median Read Latency": 13574.7, "Tail Read Latency": 28413.3, "Average Update Latency": 14722.5, "Median Update Latency": 13576.2, "Tail Update Latency": 29132.9}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 499939.0, "Average Read Latency": 5737.3, "Median Read Latency": 316.2, "Tail Read Latency": 12471.2, "Average Update Latency": 5580.0, "Median Update Latency": 284.5, "Tail Update Latency": 12458.9}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 565590.5, "Average Read Latency": 15477.9, "Median Read Latency": 13212.8, "Tail Read Latency": 29403.1, "Average Update Latency": 15663.3, "Median Update Latency": 13209.5, "Tail Update Latency": 31141.5}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 200060.3, "Average Read Latency": 111.0, "Median Read Latency": 95.5, "Tail Read Latency": 195.6, "Average Update Latency": 120.2, "Median Update Latency": 98.5, "Tail Update Latency": 201.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 505750.1, "Average Read Latency": 22403.1, "Median Read Latency": 13503.1, "Tail Read Latency": 265475.7, "Average Update Latency": 23365.6, "Median Update Latency": 13564.0, "Tail Update Latency": 276512.0}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 555125.8, "Average Read Latency": 14174.7, "Median Read Latency": 13671.4, "Tail Read Latency": 27111.1, "Average Update Latency": 14458.1, "Median Update Latency": 13680.0, "Tail Update Latency": 28264.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499501.2, "Average Read Latency": 9556.1, "Median Read Latency": 2500.0, "Tail Read Latency": 226755.3, "Average Update Latency": 9491.0, "Median Update Latency": 2256.8, "Tail Update Latency": 226295.9}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 200079.0, "Average Read Latency": 106.9, "Median Read Latency": 95.3, "Tail Read Latency": 187.9, "Average Update Latency": 107.8, "Median Update Latency": 98.3, "Tail Update Latency": 188.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 400012.0, "Average Read Latency": 118.6, "Median Read Latency": 103.7, "Tail Read Latency": 302.9, "Average Update Latency": 121.3, "Median Update Latency": 106.1, "Tail Update Latency": 312.8}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 486956.4, "Average Read Latency": 23011.2, "Median Read Latency": 13699.9, "Tail Read Latency": 258821.5, "Average Update Latency": 23575.7, "Median Update Latency": 13765.5, "Tail Update Latency": 261080.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 546847.2, "Average Read Latency": 14444.6, "Median Read Latency": 13964.2, "Tail Read Latency": 26827.9, "Average Update Latency": 14459.5, "Median Update Latency": 13973.0, "Tail Update Latency": 27707.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 400031.6, "Average Read Latency": 119.1, "Median Read Latency": 103.7, "Tail Read Latency": 314.5, "Average Update Latency": 121.9, "Median Update Latency": 106.2, "Tail Update Latency": 318.7}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 573488.6, "Average Read Latency": 14130.9, "Median Read Latency": 13237.3, "Tail Read Latency": 27739.6, "Average Update Latency": 14448.9, "Median Update Latency": 13247.6, "Tail Update Latency": 28751.0}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 399941.5, "Average Read Latency": 128.3, "Median Read Latency": 105.2, "Tail Read Latency": 478.3, "Average Update Latency": 131.4, "Median Update Latency": 108.2, "Tail Update Latency": 489.6}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 99993.7, "Average Read Latency": 89.4, "Median Read Latency": 86.6, "Tail Read Latency": 134.0, "Average Update Latency": 94.3, "Median Update Latency": 91.7, "Tail Update Latency": 139.7}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 100004.4, "Average Read Latency": 88.4, "Median Read Latency": 85.9, "Tail Read Latency": 130.3, "Average Update Latency": 92.7, "Median Update Latency": 90.4, "Tail Update Latency": 135.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 550690.9, "Average Read Latency": 14330.0, "Median Read Latency": 13840.9, "Tail Read Latency": 26848.0, "Average Update Latency": 14559.7, "Median Update Latency": 13853.5, "Tail Update Latency": 28091.1}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 400085.9, "Average Read Latency": 168.8, "Median Read Latency": 121.7, "Tail Read Latency": 538.5, "Average Update Latency": 169.1, "Median Update Latency": 124.8, "Tail Update Latency": 542.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 557765.4, "Average Read Latency": 14180.7, "Median Read Latency": 13448.9, "Tail Read Latency": 27060.8, "Average Update Latency": 14420.2, "Median Update Latency": 13454.8, "Tail Update Latency": 27952.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100016.9, "Average Read Latency": 89.6, "Median Read Latency": 86.9, "Tail Read Latency": 133.8, "Average Update Latency": 94.4, "Median Update Latency": 92.0, "Tail Update Latency": 140.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499792.8, "Average Read Latency": 8051.6, "Median Read Latency": 1573.9, "Tail Read Latency": 223269.3, "Average Update Latency": 8095.4, "Median Update Latency": 1615.3, "Tail Update Latency": 223240.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 200060.8, "Average Read Latency": 114.6, "Median Read Latency": 96.7, "Tail Read Latency": 207.4, "Average Update Latency": 119.4, "Median Update Latency": 100.0, "Tail Update Latency": 213.6}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 519141.3, "Average Read Latency": 28982.9, "Median Read Latency": 18691.6, "Tail Read Latency": 295934.3, "Average Update Latency": 29934.6, "Median Update Latency": 18835.4, "Tail Update Latency": 311181.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 574216.7, "Average Read Latency": 14023.8, "Median Read Latency": 13129.3, "Tail Read Latency": 28144.4, "Average Update Latency": 14268.8, "Median Update Latency": 13136.9, "Tail Update Latency": 29020.8}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 300029.6, "Average Read Latency": 103.1, "Median Read Latency": 95.2, "Tail Read Latency": 198.4, "Average Update Latency": 106.4, "Median Update Latency": 98.5, "Tail Update Latency": 200.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 299956.8, "Average Read Latency": 125.7, "Median Read Latency": 107.2, "Tail Read Latency": 304.6, "Average Update Latency": 130.3, "Median Update Latency": 111.5, "Tail Update Latency": 308.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 569788.9, "Average Read Latency": 19323.4, "Median Read Latency": 7427.3, "Tail Read Latency": 437929.5, "Average Update Latency": 18818.6, "Median Update Latency": 7436.9, "Tail Update Latency": 435279.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 568911.6, "Average Read Latency": 14294.3, "Median Read Latency": 13266.8, "Tail Read Latency": 27793.2, "Average Update Latency": 14476.5, "Median Update Latency": 13279.5, "Tail Update Latency": 28841.5}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 100017.0, "Average Read Latency": 102.0, "Median Read Latency": 93.1, "Tail Read Latency": 144.9, "Average Update Latency": 106.6, "Median Update Latency": 97.1, "Tail Update Latency": 152.6}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 99979.0, "Average Read Latency": 101.0, "Median Read Latency": 92.9, "Tail Read Latency": 161.7, "Average Update Latency": 103.8, "Median Update Latency": 97.6, "Tail Update Latency": 168.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 299998.4, "Average Read Latency": 102.7, "Median Read Latency": 95.7, "Tail Read Latency": 193.9, "Average Update Latency": 105.5, "Median Update Latency": 98.7, "Tail Update Latency": 197.0}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 507720.2, "Average Read Latency": 26194.4, "Median Read Latency": 15947.9, "Tail Read Latency": 287690.6, "Average Update Latency": 27317.9, "Median Update Latency": 15971.2, "Tail Update Latency": 305534.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 400051.1, "Average Read Latency": 164.6, "Median Read Latency": 120.3, "Tail Read Latency": 527.8, "Average Update Latency": 170.2, "Median Update Latency": 124.4, "Tail Update Latency": 533.3}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 100002.7, "Average Read Latency": 101.9, "Median Read Latency": 92.0, "Tail Read Latency": 139.0, "Average Update Latency": 113.2, "Median Update Latency": 95.5, "Tail Update Latency": 144.3}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 400037.6, "Average Read Latency": 121.2, "Median Read Latency": 105.4, "Tail Read Latency": 320.7, "Average Update Latency": 124.2, "Median Update Latency": 108.4, "Tail Update Latency": 323.7}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 596767.5, "Average Read Latency": 21656.6, "Median Read Latency": 12499.3, "Tail Read Latency": 252720.0, "Average Update Latency": 21733.7, "Median Update Latency": 12506.3, "Tail Update Latency": 252250.5}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 561245.9, "Average Read Latency": 15286.3, "Median Read Latency": 13365.7, "Tail Read Latency": 29638.0, "Average Update Latency": 15758.6, "Median Update Latency": 13385.9, "Tail Update Latency": 32286.4}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499964.5, "Average Read Latency": 6048.4, "Median Read Latency": 245.2, "Tail Read Latency": 12506.5, "Average Update Latency": 5989.7, "Median Update Latency": 268.8, "Tail Update Latency": 12510.9}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 400020.5, "Average Read Latency": 160.6, "Median Read Latency": 118.6, "Tail Read Latency": 508.6, "Average Update Latency": 165.0, "Median Update Latency": 123.0, "Tail Update Latency": 511.1}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 99997.3, "Average Read Latency": 98.7, "Median Read Latency": 93.3, "Tail Read Latency": 156.4, "Average Update Latency": 104.5, "Median Update Latency": 98.1, "Tail Update Latency": 167.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 200025.4, "Average Read Latency": 106.5, "Median Read Latency": 95.7, "Tail Read Latency": 211.9, "Average Update Latency": 112.4, "Median Update Latency": 100.1, "Tail Update Latency": 218.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499293.1, "Average Read Latency": 9220.1, "Median Read Latency": 1910.0, "Tail Read Latency": 224606.7, "Average Update Latency": 9232.9, "Median Update Latency": 1567.5, "Tail Update Latency": 224504.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 399996.9, "Average Read Latency": 169.4, "Median Read Latency": 121.6, "Tail Read Latency": 552.1, "Average Update Latency": 172.8, "Median Update Latency": 125.8, "Tail Update Latency": 554.1}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 300024.6, "Average Read Latency": 110.7, "Median Read Latency": 98.3, "Tail Read Latency": 249.8, "Average Update Latency": 116.0, "Median Update Latency": 101.8, "Tail Update Latency": 252.5}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 590930.0, "Average Read Latency": 24801.3, "Median Read Latency": 13462.0, "Tail Read Latency": 263999.9, "Average Update Latency": 24799.8, "Median Update Latency": 13570.8, "Tail Update Latency": 264226.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300032.4, "Average Read Latency": 134.4, "Median Read Latency": 99.6, "Tail Read Latency": 275.6, "Average Update Latency": 153.5, "Median Update Latency": 101.9, "Tail Update Latency": 292.5}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 100023.5, "Average Read Latency": 101.1, "Median Read Latency": 92.6, "Tail Read Latency": 144.7, "Average Update Latency": 107.0, "Median Update Latency": 96.3, "Tail Update Latency": 152.2}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 499941.9, "Average Read Latency": 5409.0, "Median Read Latency": 256.0, "Tail Read Latency": 12379.5, "Average Update Latency": 5351.3, "Median Update Latency": 258.0, "Tail Update Latency": 12385.0}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 100026.6, "Average Read Latency": 104.9, "Median Read Latency": 92.5, "Tail Read Latency": 144.3, "Average Update Latency": 109.1, "Median Update Latency": 96.1, "Tail Update Latency": 151.0}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 300006.3, "Average Read Latency": 130.2, "Median Read Latency": 98.7, "Tail Read Latency": 269.7, "Average Update Latency": 148.8, "Median Update Latency": 101.0, "Tail Update Latency": 283.2}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 568489.3, "Average Read Latency": 19555.7, "Median Read Latency": 7653.2, "Tail Read Latency": 438098.6, "Average Update Latency": 19007.1, "Median Update Latency": 7760.1, "Tail Update Latency": 435344.9}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 482931.5, "Average Read Latency": 21300.0, "Median Read Latency": 11502.2, "Tail Read Latency": 257523.1, "Average Update Latency": 21772.9, "Median Update Latency": 11601.9, "Tail Update Latency": 260000.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 99975.3, "Average Read Latency": 98.1, "Median Read Latency": 93.0, "Tail Read Latency": 156.4, "Average Update Latency": 108.0, "Median Update Latency": 97.8, "Tail Update Latency": 166.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 100007.3, "Average Read Latency": 99.2, "Median Read Latency": 91.5, "Tail Read Latency": 138.2, "Average Update Latency": 101.4, "Median Update Latency": 95.1, "Tail Update Latency": 142.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 199974.7, "Average Read Latency": 88.5, "Median Read Latency": 85.3, "Tail Read Latency": 138.1, "Average Update Latency": 91.8, "Median Update Latency": 88.2, "Tail Update Latency": 141.1}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 300026.5, "Average Read Latency": 125.7, "Median Read Latency": 106.2, "Tail Read Latency": 300.4, "Average Update Latency": 128.9, "Median Update Latency": 110.2, "Tail Update Latency": 308.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 199971.6, "Average Read Latency": 104.9, "Median Read Latency": 95.7, "Tail Read Latency": 210.3, "Average Update Latency": 108.2, "Median Update Latency": 100.3, "Tail Update Latency": 218.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 199988.8, "Average Read Latency": 103.7, "Median Read Latency": 95.3, "Tail Read Latency": 206.2, "Average Update Latency": 107.5, "Median Update Latency": 99.8, "Tail Update Latency": 207.5}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 482383.6, "Average Read Latency": 23155.8, "Median Read Latency": 12407.1, "Tail Read Latency": 260999.1, "Average Update Latency": 24134.2, "Median Update Latency": 12476.2, "Tail Update Latency": 263757.6}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 300007.9, "Average Read Latency": 125.6, "Median Read Latency": 106.8, "Tail Read Latency": 303.9, "Average Update Latency": 128.8, "Median Update Latency": 111.2, "Tail Update Latency": 309.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 300036.7, "Average Read Latency": 102.9, "Median Read Latency": 95.9, "Tail Read Latency": 191.9, "Average Update Latency": 105.8, "Median Update Latency": 99.1, "Tail Update Latency": 196.8}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 199982.3, "Average Read Latency": 88.1, "Median Read Latency": 85.1, "Tail Read Latency": 134.4, "Average Update Latency": 90.9, "Median Update Latency": 87.8, "Tail Update Latency": 137.6}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499893.1, "Average Read Latency": 8234.5, "Median Read Latency": 1526.2, "Tail Read Latency": 222157.8, "Average Update Latency": 8195.0, "Median Update Latency": 1534.7, "Tail Update Latency": 221686.1}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 505963.8, "Average Read Latency": 25144.8, "Median Read Latency": 15163.6, "Tail Read Latency": 268436.9, "Average Update Latency": 25877.7, "Median Update Latency": 15194.1, "Tail Update Latency": 273407.6}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499887.0, "Average Read Latency": 5687.4, "Median Read Latency": 310.9, "Tail Read Latency": 12424.0, "Average Update Latency": 5564.4, "Median Update Latency": 313.9, "Tail Update Latency": 12421.7}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100007.4, "Average Read Latency": 89.5, "Median Read Latency": 86.7, "Tail Read Latency": 133.9, "Average Update Latency": 94.2, "Median Update Latency": 91.7, "Tail Update Latency": 141.6}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 399923.8, "Average Read Latency": 380.0, "Median Read Latency": 126.3, "Tail Read Latency": 6845.9, "Average Update Latency": 441.4, "Median Update Latency": 128.3, "Tail Update Latency": 7672.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 200027.4, "Average Read Latency": 88.5, "Median Read Latency": 85.2, "Tail Read Latency": 137.5, "Average Update Latency": 91.3, "Median Update Latency": 88.2, "Tail Update Latency": 140.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100021.7, "Average Read Latency": 88.9, "Median Read Latency": 86.2, "Tail Read Latency": 132.1, "Average Update Latency": 93.1, "Median Update Latency": 90.7, "Tail Update Latency": 138.1}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 200024.1, "Average Read Latency": 116.0, "Median Read Latency": 97.9, "Tail Read Latency": 212.5, "Average Update Latency": 118.7, "Median Update Latency": 101.0, "Tail Update Latency": 218.6}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 502773.3, "Average Read Latency": 25119.3, "Median Read Latency": 14681.6, "Tail Read Latency": 288270.6, "Average Update Latency": 25837.7, "Median Update Latency": 14665.9, "Tail Update Latency": 297313.1}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 200032.0, "Average Read Latency": 105.9, "Median Read Latency": 96.1, "Tail Read Latency": 206.7, "Average Update Latency": 110.8, "Median Update Latency": 100.6, "Tail Update Latency": 211.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 555846.3, "Average Read Latency": 14165.5, "Median Read Latency": 13646.6, "Tail Read Latency": 26661.8, "Average Update Latency": 14324.9, "Median Update Latency": 13650.1, "Tail Update Latency": 27635.1}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 299967.4, "Average Read Latency": 141.0, "Median Read Latency": 99.5, "Tail Read Latency": 301.2, "Average Update Latency": 157.3, "Median Update Latency": 101.7, "Tail Update Latency": 300.9}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 556218.5, "Average Read Latency": 14550.4, "Median Read Latency": 13602.1, "Tail Read Latency": 27548.9, "Average Update Latency": 14667.0, "Median Update Latency": 13609.4, "Tail Update Latency": 28234.6}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 591020.8, "Average Read Latency": 22561.7, "Median Read Latency": 13196.4, "Tail Read Latency": 254225.8, "Average Update Latency": 23085.0, "Median Update Latency": 13241.5, "Tail Update Latency": 258731.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 300017.6, "Average Read Latency": 102.0, "Median Read Latency": 95.3, "Tail Read Latency": 191.5, "Average Update Latency": 105.0, "Median Update Latency": 98.3, "Tail Update Latency": 195.9}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499869.8, "Average Read Latency": 5997.7, "Median Read Latency": 301.4, "Tail Read Latency": 12516.1, "Average Update Latency": 5930.8, "Median Update Latency": 305.7, "Tail Update Latency": 12515.5}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 499827.3, "Average Read Latency": 5915.9, "Median Read Latency": 426.2, "Tail Read Latency": 12499.6, "Average Update Latency": 6032.7, "Median Update Latency": 461.0, "Tail Update Latency": 12512.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 556585.5, "Average Read Latency": 14788.8, "Median Read Latency": 13517.9, "Tail Read Latency": 29137.7, "Average Update Latency": 15378.7, "Median Update Latency": 13528.5, "Tail Update Latency": 30915.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 537275.6, "Average Read Latency": 14558.4, "Median Read Latency": 14107.1, "Tail Read Latency": 27774.9, "Average Update Latency": 14705.4, "Median Update Latency": 14125.1, "Tail Update Latency": 28563.2}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 593056.6, "Average Read Latency": 21590.9, "Median Read Latency": 12944.0, "Tail Read Latency": 252472.0, "Average Update Latency": 20935.6, "Median Update Latency": 12936.0, "Tail Update Latency": 247543.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 100020.2, "Average Read Latency": 106.1, "Median Read Latency": 93.3, "Tail Read Latency": 141.7, "Average Update Latency": 114.1, "Median Update Latency": 97.1, "Tail Update Latency": 149.9}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 483136.5, "Average Read Latency": 21744.3, "Median Read Latency": 11790.4, "Tail Read Latency": 260728.4, "Average Update Latency": 22431.0, "Median Update Latency": 11841.7, "Tail Update Latency": 261874.9}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 99979.6, "Average Read Latency": 101.1, "Median Read Latency": 93.7, "Tail Read Latency": 159.8, "Average Update Latency": 103.0, "Median Update Latency": 98.3, "Tail Update Latency": 164.6}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 508802.8, "Average Read Latency": 26925.5, "Median Read Latency": 16159.4, "Tail Read Latency": 305680.8, "Average Update Latency": 27087.0, "Median Update Latency": 16184.0, "Tail Update Latency": 308894.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 504924.7, "Average Read Latency": 27385.7, "Median Read Latency": 15963.9, "Tail Read Latency": 316903.3, "Average Update Latency": 28092.4, "Median Update Latency": 15989.5, "Tail Update Latency": 330779.7}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 399941.5, "Average Read Latency": 397.6, "Median Read Latency": 125.2, "Tail Read Latency": 6978.0, "Average Update Latency": 470.9, "Median Update Latency": 126.7, "Tail Update Latency": 8617.5}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 399946.2, "Average Read Latency": 118.5, "Median Read Latency": 103.7, "Tail Read Latency": 312.3, "Average Update Latency": 120.8, "Median Update Latency": 106.0, "Tail Update Latency": 315.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 521907.3, "Average Read Latency": 30505.1, "Median Read Latency": 19031.2, "Tail Read Latency": 325713.3, "Average Update Latency": 31379.0, "Median Update Latency": 19167.5, "Tail Update Latency": 343447.2}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 588199.3, "Average Read Latency": 24281.5, "Median Read Latency": 16005.6, "Tail Read Latency": 257868.6, "Average Update Latency": 24695.2, "Median Update Latency": 16193.2, "Tail Update Latency": 255176.7}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 100009.2, "Average Read Latency": 87.4, "Median Read Latency": 85.1, "Tail Read Latency": 127.9, "Average Update Latency": 91.8, "Median Update Latency": 89.4, "Tail Update Latency": 136.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499342.4, "Average Read Latency": 9734.8, "Median Read Latency": 2925.1, "Tail Read Latency": 227260.6, "Average Update Latency": 9818.0, "Median Update Latency": 2810.7, "Tail Update Latency": 226948.7}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 566785.4, "Average Read Latency": 14450.0, "Median Read Latency": 13321.1, "Tail Read Latency": 28639.9, "Average Update Latency": 14786.4, "Median Update Latency": 13336.6, "Tail Update Latency": 29296.3}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 484198.6, "Average Read Latency": 22790.6, "Median Read Latency": 12665.4, "Tail Read Latency": 260401.2, "Average Update Latency": 23421.5, "Median Update Latency": 12690.0, "Tail Update Latency": 263086.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 300025.2, "Average Read Latency": 103.4, "Median Read Latency": 96.4, "Tail Read Latency": 196.1, "Average Update Latency": 106.3, "Median Update Latency": 99.3, "Tail Update Latency": 200.9}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 500015.4, "Average Read Latency": 6152.8, "Median Read Latency": 404.1, "Tail Read Latency": 12509.5, "Average Update Latency": 6099.9, "Median Update Latency": 411.0, "Tail Update Latency": 12511.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 300039.2, "Average Read Latency": 124.6, "Median Read Latency": 106.2, "Tail Read Latency": 309.2, "Average Update Latency": 127.6, "Median Update Latency": 110.6, "Tail Update Latency": 307.5}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 562446.1, "Average Read Latency": 14500.5, "Median Read Latency": 13409.8, "Tail Read Latency": 28840.7, "Average Update Latency": 14795.3, "Median Update Latency": 13428.3, "Tail Update Latency": 29522.7}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 300046.6, "Average Read Latency": 101.3, "Median Read Latency": 94.0, "Tail Read Latency": 188.5, "Average Update Latency": 104.3, "Median Update Latency": 97.0, "Tail Update Latency": 192.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 400141.3, "Average Read Latency": 120.6, "Median Read Latency": 104.7, "Tail Read Latency": 327.4, "Average Update Latency": 123.6, "Median Update Latency": 107.2, "Tail Update Latency": 335.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 505837.0, "Average Read Latency": 24546.4, "Median Read Latency": 14161.5, "Tail Read Latency": 292122.1, "Average Update Latency": 25156.5, "Median Update Latency": 14246.9, "Tail Update Latency": 301784.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 499920.5, "Average Read Latency": 5654.0, "Median Read Latency": 246.0, "Tail Read Latency": 12468.0, "Average Update Latency": 5658.1, "Median Update Latency": 267.1, "Tail Update Latency": 12473.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 199974.9, "Average Read Latency": 88.8, "Median Read Latency": 85.6, "Tail Read Latency": 137.0, "Average Update Latency": 91.9, "Median Update Latency": 88.6, "Tail Update Latency": 140.3}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 400005.3, "Average Read Latency": 499.1, "Median Read Latency": 126.4, "Tail Read Latency": 8642.4, "Average Update Latency": 641.6, "Median Update Latency": 128.0, "Tail Update Latency": 12369.4}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 499585.4, "Average Read Latency": 22807.6, "Median Read Latency": 14217.1, "Tail Read Latency": 261935.9, "Average Update Latency": 23730.5, "Median Update Latency": 14227.2, "Tail Update Latency": 267588.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499872.9, "Average Read Latency": 9095.2, "Median Read Latency": 1999.4, "Tail Read Latency": 223459.8, "Average Update Latency": 9018.4, "Median Update Latency": 2238.1, "Tail Update Latency": 224467.4}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 512143.6, "Average Read Latency": 29722.6, "Median Read Latency": 21055.9, "Tail Read Latency": 283321.2, "Average Update Latency": 29978.3, "Median Update Latency": 21113.6, "Tail Update Latency": 284801.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 572018.0, "Average Read Latency": 16765.3, "Median Read Latency": 10506.8, "Tail Read Latency": 229974.4, "Average Update Latency": 16601.0, "Median Update Latency": 10497.5, "Tail Update Latency": 228711.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 300031.4, "Average Read Latency": 102.5, "Median Read Latency": 95.1, "Tail Read Latency": 191.8, "Average Update Latency": 105.5, "Median Update Latency": 98.1, "Tail Update Latency": 195.3}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 562067.4, "Average Read Latency": 14160.7, "Median Read Latency": 13325.5, "Tail Read Latency": 27283.7, "Average Update Latency": 14365.8, "Median Update Latency": 13339.3, "Tail Update Latency": 28413.8}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499850.2, "Average Read Latency": 6176.8, "Median Read Latency": 361.9, "Tail Read Latency": 12524.4, "Average Update Latency": 6170.8, "Median Update Latency": 352.4, "Tail Update Latency": 12877.4}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499691.9, "Average Read Latency": 8767.0, "Median Read Latency": 2861.2, "Tail Read Latency": 223798.7, "Average Update Latency": 8772.4, "Median Update Latency": 2479.0, "Tail Update Latency": 224325.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 100031.2, "Average Read Latency": 97.7, "Median Read Latency": 92.7, "Tail Read Latency": 155.8, "Average Update Latency": 101.6, "Median Update Latency": 97.2, "Tail Update Latency": 163.8}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 481460.5, "Average Read Latency": 22428.3, "Median Read Latency": 13809.5, "Tail Read Latency": 256138.5, "Average Update Latency": 22802.1, "Median Update Latency": 13825.4, "Tail Update Latency": 258239.0}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 570994.7, "Average Read Latency": 17480.1, "Median Read Latency": 7859.7, "Tail Read Latency": 426673.7, "Average Update Latency": 17599.4, "Median Update Latency": 7864.8, "Tail Update Latency": 240201.1}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 200020.2, "Average Read Latency": 89.4, "Median Read Latency": 86.2, "Tail Read Latency": 138.3, "Average Update Latency": 92.8, "Median Update Latency": 89.3, "Tail Update Latency": 140.7}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 399993.3, "Average Read Latency": 119.5, "Median Read Latency": 104.2, "Tail Read Latency": 314.1, "Average Update Latency": 122.4, "Median Update Latency": 106.7, "Tail Update Latency": 321.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 200007.8, "Average Read Latency": 110.5, "Median Read Latency": 96.4, "Tail Read Latency": 205.9, "Average Update Latency": 116.2, "Median Update Latency": 99.5, "Tail Update Latency": 210.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 400064.8, "Average Read Latency": 164.8, "Median Read Latency": 120.1, "Tail Read Latency": 526.5, "Average Update Latency": 167.2, "Median Update Latency": 123.8, "Tail Update Latency": 529.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 551472.7, "Average Read Latency": 14517.5, "Median Read Latency": 13680.0, "Tail Read Latency": 28180.0, "Average Update Latency": 14858.1, "Median Update Latency": 13688.6, "Tail Update Latency": 29120.5}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 299986.3, "Average Read Latency": 111.0, "Median Read Latency": 98.2, "Tail Read Latency": 248.2, "Average Update Latency": 114.4, "Median Update Latency": 101.9, "Tail Update Latency": 249.8}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 200028.9, "Average Read Latency": 88.9, "Median Read Latency": 85.7, "Tail Read Latency": 138.1, "Average Update Latency": 92.0, "Median Update Latency": 88.8, "Tail Update Latency": 141.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 399983.8, "Average Read Latency": 135.8, "Median Read Latency": 106.4, "Tail Read Latency": 540.6, "Average Update Latency": 139.1, "Median Update Latency": 109.7, "Tail Update Latency": 546.9}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 568478.0, "Average Read Latency": 16271.8, "Median Read Latency": 7670.5, "Tail Read Latency": 239477.7, "Average Update Latency": 15856.6, "Median Update Latency": 7765.8, "Tail Update Latency": 239148.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 483882.9, "Average Read Latency": 23404.3, "Median Read Latency": 12362.1, "Tail Read Latency": 262289.4, "Average Update Latency": 23599.2, "Median Update Latency": 12414.6, "Tail Update Latency": 262326.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 551328.0, "Average Read Latency": 14467.1, "Median Read Latency": 13952.0, "Tail Read Latency": 27149.0, "Average Update Latency": 14556.4, "Median Update Latency": 13962.9, "Tail Update Latency": 27773.5}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 481131.0, "Average Read Latency": 22506.3, "Median Read Latency": 11507.8, "Tail Read Latency": 262007.9, "Average Update Latency": 22827.6, "Median Update Latency": 11563.9, "Tail Update Latency": 263679.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 400037.1, "Average Read Latency": 165.2, "Median Read Latency": 119.3, "Tail Read Latency": 531.0, "Average Update Latency": 169.6, "Median Update Latency": 123.6, "Tail Update Latency": 532.5}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 99986.8, "Average Read Latency": 90.3, "Median Read Latency": 87.5, "Tail Read Latency": 135.8, "Average Update Latency": 95.2, "Median Update Latency": 92.8, "Tail Update Latency": 141.8}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 200009.2, "Average Read Latency": 111.1, "Median Read Latency": 94.4, "Tail Read Latency": 186.4, "Average Update Latency": 113.1, "Median Update Latency": 97.2, "Tail Update Latency": 190.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 499907.2, "Average Read Latency": 5301.1, "Median Read Latency": 250.1, "Tail Read Latency": 12385.9, "Average Update Latency": 5175.8, "Median Update Latency": 257.7, "Tail Update Latency": 12365.0}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 400026.7, "Average Read Latency": 514.2, "Median Read Latency": 126.7, "Tail Read Latency": 9091.9, "Average Update Latency": 630.1, "Median Update Latency": 127.6, "Tail Update Latency": 11801.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 199967.1, "Average Read Latency": 109.5, "Median Read Latency": 95.8, "Tail Read Latency": 192.7, "Average Update Latency": 113.8, "Median Update Latency": 98.7, "Tail Update Latency": 196.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 199972.8, "Average Read Latency": 109.1, "Median Read Latency": 95.2, "Tail Read Latency": 187.2, "Average Update Latency": 115.0, "Median Update Latency": 98.0, "Tail Update Latency": 193.8}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 523409.3, "Average Read Latency": 27322.2, "Median Read Latency": 19326.2, "Tail Read Latency": 267736.4, "Average Update Latency": 27708.9, "Median Update Latency": 19384.9, "Tail Update Latency": 269917.2}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200008.3, "Average Read Latency": 89.6, "Median Read Latency": 86.3, "Tail Read Latency": 140.2, "Average Update Latency": 92.8, "Median Update Latency": 89.6, "Tail Update Latency": 144.9}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 399965.1, "Average Read Latency": 327.9, "Median Read Latency": 122.5, "Tail Read Latency": 5263.0, "Average Update Latency": 391.3, "Median Update Latency": 124.9, "Tail Update Latency": 6715.6}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 99975.2, "Average Read Latency": 98.6, "Median Read Latency": 91.9, "Tail Read Latency": 155.6, "Average Update Latency": 105.7, "Median Update Latency": 96.6, "Tail Update Latency": 167.1}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 200050.2, "Average Read Latency": 106.7, "Median Read Latency": 94.6, "Tail Read Latency": 205.7, "Average Update Latency": 115.2, "Median Update Latency": 99.0, "Tail Update Latency": 209.5}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 501141.9, "Average Read Latency": 25688.6, "Median Read Latency": 16243.6, "Tail Read Latency": 268337.2, "Average Update Latency": 26464.4, "Median Update Latency": 16318.1, "Tail Update Latency": 276888.3}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 199997.0, "Average Read Latency": 106.0, "Median Read Latency": 95.5, "Tail Read Latency": 193.3, "Average Update Latency": 114.2, "Median Update Latency": 98.4, "Tail Update Latency": 200.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 568805.4, "Average Read Latency": 18387.6, "Median Read Latency": 8301.0, "Tail Read Latency": 240427.6, "Average Update Latency": 17812.2, "Median Update Latency": 8304.6, "Tail Update Latency": 239472.7}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 513429.8, "Average Read Latency": 30133.3, "Median Read Latency": 22433.9, "Tail Read Latency": 278764.5, "Average Update Latency": 30929.0, "Median Update Latency": 22540.2, "Tail Update Latency": 283029.4}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 553146.7, "Average Read Latency": 14127.2, "Median Read Latency": 13739.1, "Tail Read Latency": 26096.2, "Average Update Latency": 14191.5, "Median Update Latency": 13751.5, "Tail Update Latency": 27144.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 583230.3, "Average Read Latency": 24309.6, "Median Read Latency": 15008.4, "Tail Read Latency": 253633.3, "Average Update Latency": 24551.8, "Median Update Latency": 15043.3, "Tail Update Latency": 258419.3}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499923.0, "Average Read Latency": 6060.8, "Median Read Latency": 308.4, "Tail Read Latency": 12512.3, "Average Update Latency": 6120.7, "Median Update Latency": 308.0, "Tail Update Latency": 12523.5}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 300063.0, "Average Read Latency": 102.5, "Median Read Latency": 95.7, "Tail Read Latency": 194.1, "Average Update Latency": 105.7, "Median Update Latency": 98.8, "Tail Update Latency": 198.9}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 100007.3, "Average Read Latency": 97.7, "Median Read Latency": 91.8, "Tail Read Latency": 138.2, "Average Update Latency": 99.0, "Median Update Latency": 95.5, "Tail Update Latency": 145.3}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 99972.1, "Average Read Latency": 98.9, "Median Read Latency": 92.3, "Tail Read Latency": 161.8, "Average Update Latency": 102.7, "Median Update Latency": 96.9, "Tail Update Latency": 168.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 485044.5, "Average Read Latency": 21735.5, "Median Read Latency": 13171.3, "Tail Read Latency": 254360.8, "Average Update Latency": 22602.8, "Median Update Latency": 13190.5, "Tail Update Latency": 257507.7}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 400010.7, "Average Read Latency": 439.0, "Median Read Latency": 125.7, "Tail Read Latency": 7496.6, "Average Update Latency": 569.3, "Median Update Latency": 127.6, "Tail Update Latency": 10302.8}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 100042.6, "Average Read Latency": 107.3, "Median Read Latency": 92.6, "Tail Read Latency": 146.2, "Average Update Latency": 107.9, "Median Update Latency": 96.1, "Tail Update Latency": 153.3}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 505242.2, "Average Read Latency": 25212.8, "Median Read Latency": 14604.8, "Tail Read Latency": 293527.2, "Average Update Latency": 25954.0, "Median Update Latency": 14636.0, "Tail Update Latency": 303798.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 563200.4, "Average Read Latency": 14115.4, "Median Read Latency": 13483.0, "Tail Read Latency": 27664.1, "Average Update Latency": 14325.1, "Median Update Latency": 13492.8, "Tail Update Latency": 28634.0}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 400003.6, "Average Read Latency": 513.4, "Median Read Latency": 125.2, "Tail Read Latency": 8471.4, "Average Update Latency": 660.0, "Median Update Latency": 127.2, "Tail Update Latency": 11704.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 564264.6, "Average Read Latency": 13934.0, "Median Read Latency": 13410.7, "Tail Read Latency": 25832.0, "Average Update Latency": 14002.0, "Median Update Latency": 13406.5, "Tail Update Latency": 26774.4}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 200024.6, "Average Read Latency": 114.3, "Median Read Latency": 98.2, "Tail Read Latency": 217.0, "Average Update Latency": 121.5, "Median Update Latency": 101.5, "Tail Update Latency": 222.3}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 508365.3, "Average Read Latency": 27990.3, "Median Read Latency": 18580.4, "Tail Read Latency": 282523.6, "Average Update Latency": 29054.0, "Median Update Latency": 18675.8, "Tail Update Latency": 287869.5}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 559705.2, "Average Read Latency": 14509.1, "Median Read Latency": 13488.7, "Tail Read Latency": 28871.1, "Average Update Latency": 14863.5, "Median Update Latency": 13501.3, "Tail Update Latency": 30105.1}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 99994.5, "Average Read Latency": 87.2, "Median Read Latency": 85.0, "Tail Read Latency": 126.6, "Average Update Latency": 91.4, "Median Update Latency": 88.9, "Tail Update Latency": 129.9}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 501514.8, "Average Read Latency": 23603.7, "Median Read Latency": 13941.4, "Tail Read Latency": 279202.9, "Average Update Latency": 24082.1, "Median Update Latency": 13942.1, "Tail Update Latency": 285704.8}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 200062.3, "Average Read Latency": 87.5, "Median Read Latency": 84.7, "Tail Read Latency": 133.1, "Average Update Latency": 90.8, "Median Update Latency": 87.6, "Tail Update Latency": 138.4}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 199977.1, "Average Read Latency": 116.4, "Median Read Latency": 94.9, "Tail Read Latency": 193.0, "Average Update Latency": 126.1, "Median Update Latency": 97.7, "Tail Update Latency": 195.6}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 199995.0, "Average Read Latency": 103.5, "Median Read Latency": 94.8, "Tail Read Latency": 203.5, "Average Update Latency": 109.0, "Median Update Latency": 99.1, "Tail Update Latency": 210.7}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499863.2, "Average Read Latency": 8285.1, "Median Read Latency": 1249.7, "Tail Read Latency": 222452.4, "Average Update Latency": 8062.8, "Median Update Latency": 1341.5, "Tail Update Latency": 220803.4}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 200052.0, "Average Read Latency": 107.8, "Median Read Latency": 95.8, "Tail Read Latency": 216.4, "Average Update Latency": 112.4, "Median Update Latency": 100.4, "Tail Update Latency": 224.1}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 100039.2, "Average Read Latency": 88.7, "Median Read Latency": 86.2, "Tail Read Latency": 131.3, "Average Update Latency": 93.2, "Median Update Latency": 91.0, "Tail Update Latency": 139.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 300039.2, "Average Read Latency": 130.5, "Median Read Latency": 98.1, "Tail Read Latency": 277.9, "Average Update Latency": 144.7, "Median Update Latency": 100.7, "Tail Update Latency": 282.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 300055.2, "Average Read Latency": 150.9, "Median Read Latency": 106.6, "Tail Read Latency": 350.2, "Average Update Latency": 179.4, "Median Update Latency": 109.4, "Tail Update Latency": 375.6}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 199992.1, "Average Read Latency": 106.9, "Median Read Latency": 93.7, "Tail Read Latency": 179.6, "Average Update Latency": 111.6, "Median Update Latency": 96.5, "Tail Update Latency": 182.9}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 299997.1, "Average Read Latency": 112.1, "Median Read Latency": 99.2, "Tail Read Latency": 247.0, "Average Update Latency": 115.0, "Median Update Latency": 102.7, "Tail Update Latency": 253.4}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 399969.7, "Average Read Latency": 168.5, "Median Read Latency": 121.7, "Tail Read Latency": 531.6, "Average Update Latency": 171.4, "Median Update Latency": 125.8, "Tail Update Latency": 532.5}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 400026.4, "Average Read Latency": 167.9, "Median Read Latency": 120.5, "Tail Read Latency": 534.1, "Average Update Latency": 168.9, "Median Update Latency": 124.5, "Tail Update Latency": 534.3}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 570141.7, "Average Read Latency": 13902.0, "Median Read Latency": 13275.0, "Tail Read Latency": 26568.8, "Average Update Latency": 14129.1, "Median Update Latency": 13276.2, "Tail Update Latency": 27357.4}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499941.6, "Average Read Latency": 5510.0, "Median Read Latency": 260.2, "Tail Read Latency": 12442.8, "Average Update Latency": 5573.2, "Median Update Latency": 265.2, "Tail Update Latency": 12449.2}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 400003.9, "Average Read Latency": 405.2, "Median Read Latency": 123.5, "Tail Read Latency": 7444.2, "Average Update Latency": 485.1, "Median Update Latency": 125.6, "Tail Update Latency": 8808.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 551362.2, "Average Read Latency": 14173.0, "Median Read Latency": 13760.9, "Tail Read Latency": 26079.0, "Average Update Latency": 14300.7, "Median Update Latency": 13773.4, "Tail Update Latency": 26986.1}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 99941.4, "Average Read Latency": 97.8, "Median Read Latency": 92.8, "Tail Read Latency": 156.5, "Average Update Latency": 102.5, "Median Update Latency": 97.3, "Tail Update Latency": 163.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 200054.9, "Average Read Latency": 103.6, "Median Read Latency": 95.2, "Tail Read Latency": 206.7, "Average Update Latency": 106.7, "Median Update Latency": 99.6, "Tail Update Latency": 212.4}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 100050.5, "Average Read Latency": 100.3, "Median Read Latency": 92.7, "Tail Read Latency": 161.0, "Average Update Latency": 106.4, "Median Update Latency": 97.5, "Tail Update Latency": 171.6}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 542391.7, "Average Read Latency": 14457.0, "Median Read Latency": 13956.5, "Tail Read Latency": 26973.1, "Average Update Latency": 14591.2, "Median Update Latency": 13968.3, "Tail Update Latency": 28048.2}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 506568.2, "Average Read Latency": 27481.9, "Median Read Latency": 17120.2, "Tail Read Latency": 282905.9, "Average Update Latency": 28629.2, "Median Update Latency": 17194.0, "Tail Update Latency": 300706.8}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 524382.9, "Average Read Latency": 25836.3, "Median Read Latency": 16403.1, "Tail Read Latency": 277570.7, "Average Update Latency": 26235.7, "Median Update Latency": 16440.2, "Tail Update Latency": 281487.5}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 557140.5, "Average Read Latency": 15107.5, "Median Read Latency": 13671.3, "Tail Read Latency": 28820.7, "Average Update Latency": 15289.5, "Median Update Latency": 13687.1, "Tail Update Latency": 29491.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100009.8, "Average Read Latency": 88.3, "Median Read Latency": 85.7, "Tail Read Latency": 129.3, "Average Update Latency": 93.3, "Median Update Latency": 90.2, "Tail Update Latency": 137.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 400011.7, "Average Read Latency": 168.2, "Median Read Latency": 121.6, "Tail Read Latency": 530.2, "Average Update Latency": 171.7, "Median Update Latency": 125.7, "Tail Update Latency": 530.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 545392.7, "Average Read Latency": 14524.9, "Median Read Latency": 14085.0, "Tail Read Latency": 26696.8, "Average Update Latency": 14561.1, "Median Update Latency": 14090.8, "Tail Update Latency": 27537.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300053.5, "Average Read Latency": 152.1, "Median Read Latency": 107.5, "Tail Read Latency": 361.9, "Average Update Latency": 171.8, "Median Update Latency": 109.9, "Tail Update Latency": 401.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100013.5, "Average Read Latency": 88.8, "Median Read Latency": 86.3, "Tail Read Latency": 131.4, "Average Update Latency": 93.6, "Median Update Latency": 91.2, "Tail Update Latency": 139.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 590949.6, "Average Read Latency": 23201.7, "Median Read Latency": 13867.4, "Tail Read Latency": 257035.9, "Average Update Latency": 23215.8, "Median Update Latency": 13936.4, "Tail Update Latency": 256286.4}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 500032.9, "Average Read Latency": 6024.9, "Median Read Latency": 325.5, "Tail Read Latency": 12507.4, "Average Update Latency": 5990.1, "Median Update Latency": 318.2, "Tail Update Latency": 12513.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 400011.6, "Average Read Latency": 397.4, "Median Read Latency": 123.7, "Tail Read Latency": 7303.0, "Average Update Latency": 462.5, "Median Update Latency": 125.7, "Tail Update Latency": 8229.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 300044.3, "Average Read Latency": 112.9, "Median Read Latency": 98.8, "Tail Read Latency": 253.8, "Average Update Latency": 116.6, "Median Update Latency": 102.4, "Tail Update Latency": 258.9}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 556827.9, "Average Read Latency": 14083.2, "Median Read Latency": 13553.7, "Tail Read Latency": 26544.7, "Average Update Latency": 14274.5, "Median Update Latency": 13560.2, "Tail Update Latency": 27513.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 570344.3, "Average Read Latency": 16692.1, "Median Read Latency": 7383.9, "Tail Read Latency": 242945.4, "Average Update Latency": 17280.3, "Median Update Latency": 7392.2, "Tail Update Latency": 256143.3}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 545820.0, "Average Read Latency": 14552.1, "Median Read Latency": 13952.3, "Tail Read Latency": 27862.9, "Average Update Latency": 14728.5, "Median Update Latency": 13962.3, "Tail Update Latency": 28839.6}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 400080.1, "Average Read Latency": 166.0, "Median Read Latency": 120.3, "Tail Read Latency": 526.1, "Average Update Latency": 170.8, "Median Update Latency": 124.3, "Tail Update Latency": 531.4}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 568165.9, "Average Read Latency": 17498.3, "Median Read Latency": 7789.2, "Tail Read Latency": 250274.4, "Average Update Latency": 17548.0, "Median Update Latency": 7823.6, "Tail Update Latency": 244845.2}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499788.1, "Average Read Latency": 7801.0, "Median Read Latency": 2386.1, "Tail Read Latency": 221011.4, "Average Update Latency": 7780.0, "Median Update Latency": 2315.1, "Tail Update Latency": 220887.8}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 200012.1, "Average Read Latency": 89.5, "Median Read Latency": 85.9, "Tail Read Latency": 139.6, "Average Update Latency": 92.8, "Median Update Latency": 88.8, "Tail Update Latency": 142.3}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 559468.9, "Average Read Latency": 14121.9, "Median Read Latency": 13490.0, "Tail Read Latency": 26682.4, "Average Update Latency": 14145.8, "Median Update Latency": 13493.7, "Tail Update Latency": 27243.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 200013.9, "Average Read Latency": 113.8, "Median Read Latency": 95.7, "Tail Read Latency": 200.4, "Average Update Latency": 116.4, "Median Update Latency": 98.9, "Tail Update Latency": 200.9}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499928.7, "Average Read Latency": 6641.5, "Median Read Latency": 871.2, "Tail Read Latency": 13894.6, "Average Update Latency": 6746.3, "Median Update Latency": 799.8, "Tail Update Latency": 17616.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 299962.2, "Average Read Latency": 137.1, "Median Read Latency": 99.2, "Tail Read Latency": 291.1, "Average Update Latency": 163.0, "Median Update Latency": 101.5, "Tail Update Latency": 310.7}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 400101.2, "Average Read Latency": 171.9, "Median Read Latency": 122.1, "Tail Read Latency": 560.5, "Average Update Latency": 176.1, "Median Update Latency": 125.7, "Tail Update Latency": 560.2}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 595659.0, "Average Read Latency": 22200.9, "Median Read Latency": 14358.5, "Tail Read Latency": 251441.8, "Average Update Latency": 22037.6, "Median Update Latency": 14350.7, "Tail Update Latency": 248381.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200002.6, "Average Read Latency": 90.2, "Median Read Latency": 86.8, "Tail Read Latency": 139.4, "Average Update Latency": 93.3, "Median Update Latency": 90.3, "Tail Update Latency": 142.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 552283.4, "Average Read Latency": 14454.4, "Median Read Latency": 13816.8, "Tail Read Latency": 27832.5, "Average Update Latency": 14769.5, "Median Update Latency": 13828.5, "Tail Update Latency": 29015.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499884.1, "Average Read Latency": 9102.9, "Median Read Latency": 1961.9, "Tail Read Latency": 225147.3, "Average Update Latency": 9138.4, "Median Update Latency": 1857.1, "Tail Update Latency": 225084.0}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499843.7, "Average Read Latency": 8125.5, "Median Read Latency": 1983.9, "Tail Read Latency": 221187.4, "Average Update Latency": 8089.3, "Median Update Latency": 1973.7, "Tail Update Latency": 220497.4}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 99963.6, "Average Read Latency": 88.2, "Median Read Latency": 85.7, "Tail Read Latency": 128.6, "Average Update Latency": 92.4, "Median Update Latency": 90.3, "Tail Update Latency": 136.1}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 200031.4, "Average Read Latency": 114.4, "Median Read Latency": 96.0, "Tail Read Latency": 199.2, "Average Update Latency": 120.3, "Median Update Latency": 99.0, "Tail Update Latency": 204.7}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 400105.6, "Average Read Latency": 649.8, "Median Read Latency": 128.9, "Tail Read Latency": 11216.4, "Average Update Latency": 838.8, "Median Update Latency": 130.4, "Tail Update Latency": 14951.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 558774.2, "Average Read Latency": 14196.4, "Median Read Latency": 13503.5, "Tail Read Latency": 27045.1, "Average Update Latency": 14399.5, "Median Update Latency": 13507.5, "Tail Update Latency": 28297.2}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 200015.1, "Average Read Latency": 103.6, "Median Read Latency": 95.8, "Tail Read Latency": 209.8, "Average Update Latency": 107.7, "Median Update Latency": 100.0, "Tail Update Latency": 211.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 199979.5, "Average Read Latency": 105.2, "Median Read Latency": 95.0, "Tail Read Latency": 207.7, "Average Update Latency": 109.8, "Median Update Latency": 99.2, "Tail Update Latency": 211.7}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 300043.6, "Average Read Latency": 101.9, "Median Read Latency": 94.6, "Tail Read Latency": 193.0, "Average Update Latency": 105.0, "Median Update Latency": 97.6, "Tail Update Latency": 197.1}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 399968.7, "Average Read Latency": 503.6, "Median Read Latency": 124.7, "Tail Read Latency": 8607.1, "Average Update Latency": 638.2, "Median Update Latency": 126.4, "Tail Update Latency": 11707.2}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 523002.1, "Average Read Latency": 30960.2, "Median Read Latency": 21851.9, "Tail Read Latency": 300620.7, "Average Update Latency": 31559.9, "Median Update Latency": 21887.6, "Tail Update Latency": 318782.1}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 572788.6, "Average Read Latency": 14074.0, "Median Read Latency": 13191.6, "Tail Read Latency": 27766.1, "Average Update Latency": 14299.6, "Median Update Latency": 13201.9, "Tail Update Latency": 28688.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 484466.6, "Average Read Latency": 23328.9, "Median Read Latency": 13946.1, "Tail Read Latency": 259201.9, "Average Update Latency": 23879.5, "Median Update Latency": 14027.8, "Tail Update Latency": 260467.4}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 300044.9, "Average Read Latency": 143.4, "Median Read Latency": 99.8, "Tail Read Latency": 296.5, "Average Update Latency": 162.7, "Median Update Latency": 101.9, "Tail Update Latency": 301.0}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 100022.3, "Average Read Latency": 108.5, "Median Read Latency": 93.2, "Tail Read Latency": 146.1, "Average Update Latency": 115.0, "Median Update Latency": 96.9, "Tail Update Latency": 151.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 399980.9, "Average Read Latency": 340.6, "Median Read Latency": 125.1, "Tail Read Latency": 5730.7, "Average Update Latency": 407.7, "Median Update Latency": 127.4, "Tail Update Latency": 6864.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300091.2, "Average Read Latency": 144.8, "Median Read Latency": 106.2, "Tail Read Latency": 343.6, "Average Update Latency": 161.9, "Median Update Latency": 108.9, "Tail Update Latency": 360.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 100027.0, "Average Read Latency": 89.3, "Median Read Latency": 86.7, "Tail Read Latency": 132.3, "Average Update Latency": 93.6, "Median Update Latency": 91.6, "Tail Update Latency": 138.4}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 571744.3, "Average Read Latency": 18239.1, "Median Read Latency": 7966.6, "Tail Read Latency": 258176.5, "Average Update Latency": 17792.7, "Median Update Latency": 7969.4, "Tail Update Latency": 240191.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 482776.4, "Average Read Latency": 23207.2, "Median Read Latency": 12687.5, "Tail Read Latency": 261118.5, "Average Update Latency": 23752.1, "Median Update Latency": 12688.8, "Tail Update Latency": 263425.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 200056.7, "Average Read Latency": 87.9, "Median Read Latency": 84.9, "Tail Read Latency": 135.5, "Average Update Latency": 90.6, "Median Update Latency": 87.6, "Tail Update Latency": 138.9}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 100034.9, "Average Read Latency": 97.7, "Median Read Latency": 92.8, "Tail Read Latency": 157.2, "Average Update Latency": 101.4, "Median Update Latency": 97.5, "Tail Update Latency": 163.4}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 483472.2, "Average Read Latency": 24399.1, "Median Read Latency": 14174.2, "Tail Read Latency": 262022.8, "Average Update Latency": 25062.0, "Median Update Latency": 14225.3, "Tail Update Latency": 262401.2}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 400016.8, "Average Read Latency": 167.7, "Median Read Latency": 121.7, "Tail Read Latency": 533.8, "Average Update Latency": 169.8, "Median Update Latency": 125.7, "Tail Update Latency": 546.9}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 300001.9, "Average Read Latency": 125.3, "Median Read Latency": 106.8, "Tail Read Latency": 309.9, "Average Update Latency": 128.9, "Median Update Latency": 111.1, "Tail Update Latency": 313.8}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499963.2, "Average Read Latency": 6342.0, "Median Read Latency": 441.5, "Tail Read Latency": 12658.3, "Average Update Latency": 6355.1, "Median Update Latency": 494.2, "Tail Update Latency": 13223.5}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499617.5, "Average Read Latency": 8269.9, "Median Read Latency": 2759.8, "Tail Read Latency": 224088.1, "Average Update Latency": 8178.7, "Median Update Latency": 3031.5, "Tail Update Latency": 223476.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 588443.4, "Average Read Latency": 26112.6, "Median Read Latency": 20682.8, "Tail Read Latency": 242468.9, "Average Update Latency": 26425.4, "Median Update Latency": 20902.7, "Tail Update Latency": 245837.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 100018.6, "Average Read Latency": 90.1, "Median Read Latency": 87.1, "Tail Read Latency": 136.7, "Average Update Latency": 94.9, "Median Update Latency": 92.2, "Tail Update Latency": 140.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 559667.2, "Average Read Latency": 14485.2, "Median Read Latency": 13522.7, "Tail Read Latency": 28782.9, "Average Update Latency": 14755.5, "Median Update Latency": 13534.6, "Tail Update Latency": 29313.6}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 200015.4, "Average Read Latency": 107.1, "Median Read Latency": 95.1, "Tail Read Latency": 213.8, "Average Update Latency": 111.7, "Median Update Latency": 99.5, "Tail Update Latency": 220.3}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 100033.3, "Average Read Latency": 99.8, "Median Read Latency": 92.3, "Tail Read Latency": 161.6, "Average Update Latency": 103.8, "Median Update Latency": 97.0, "Tail Update Latency": 170.4}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 299933.2, "Average Read Latency": 139.9, "Median Read Latency": 100.0, "Tail Read Latency": 301.5, "Average Update Latency": 161.2, "Median Update Latency": 102.2, "Tail Update Latency": 314.1}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 200010.5, "Average Read Latency": 105.5, "Median Read Latency": 96.1, "Tail Read Latency": 205.9, "Average Update Latency": 109.1, "Median Update Latency": 100.4, "Tail Update Latency": 217.3}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 100012.6, "Average Read Latency": 106.1, "Median Read Latency": 92.5, "Tail Read Latency": 145.2, "Average Update Latency": 111.7, "Median Update Latency": 96.1, "Tail Update Latency": 152.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 523843.4, "Average Read Latency": 30898.6, "Median Read Latency": 21215.0, "Tail Read Latency": 299857.7, "Average Update Latency": 31465.1, "Median Update Latency": 21362.8, "Tail Update Latency": 307240.6}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 399982.5, "Average Read Latency": 118.8, "Median Read Latency": 103.8, "Tail Read Latency": 313.1, "Average Update Latency": 122.0, "Median Update Latency": 106.2, "Tail Update Latency": 314.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 99988.5, "Average Read Latency": 104.5, "Median Read Latency": 93.2, "Tail Read Latency": 146.5, "Average Update Latency": 107.0, "Median Update Latency": 97.1, "Tail Update Latency": 151.8}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 574189.3, "Average Read Latency": 18038.3, "Median Read Latency": 8210.5, "Tail Read Latency": 240229.2, "Average Update Latency": 18318.3, "Median Update Latency": 8188.4, "Tail Update Latency": 248571.5}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 565544.8, "Average Read Latency": 15714.2, "Median Read Latency": 7837.3, "Tail Read Latency": 238771.6, "Average Update Latency": 16003.6, "Median Update Latency": 7872.0, "Tail Update Latency": 238388.6}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 552365.2, "Average Read Latency": 14343.5, "Median Read Latency": 13769.3, "Tail Read Latency": 27771.0, "Average Update Latency": 14655.1, "Median Update Latency": 13784.5, "Tail Update Latency": 28804.6}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 485556.8, "Average Read Latency": 22612.7, "Median Read Latency": 12181.9, "Tail Read Latency": 261557.4, "Average Update Latency": 23484.6, "Median Update Latency": 12217.8, "Tail Update Latency": 265813.1}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 99996.6, "Average Read Latency": 99.1, "Median Read Latency": 93.1, "Tail Read Latency": 161.5, "Average Update Latency": 108.4, "Median Update Latency": 98.1, "Tail Update Latency": 171.4}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200021.4, "Average Read Latency": 89.5, "Median Read Latency": 86.2, "Tail Read Latency": 139.8, "Average Update Latency": 93.0, "Median Update Latency": 89.7, "Tail Update Latency": 144.4}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 100023.4, "Average Read Latency": 101.6, "Median Read Latency": 92.2, "Tail Read Latency": 138.2, "Average Update Latency": 105.3, "Median Update Latency": 95.9, "Tail Update Latency": 142.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100011.2, "Average Read Latency": 87.7, "Median Read Latency": 85.5, "Tail Read Latency": 127.9, "Average Update Latency": 92.2, "Median Update Latency": 89.9, "Tail Update Latency": 135.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300050.2, "Average Read Latency": 154.7, "Median Read Latency": 107.2, "Tail Read Latency": 380.9, "Average Update Latency": 175.7, "Median Update Latency": 109.8, "Tail Update Latency": 402.4}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 499883.6, "Average Read Latency": 6393.3, "Median Read Latency": 437.3, "Tail Read Latency": 12514.9, "Average Update Latency": 6337.7, "Median Update Latency": 393.9, "Tail Update Latency": 12520.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 300035.7, "Average Read Latency": 135.2, "Median Read Latency": 99.5, "Tail Read Latency": 292.3, "Average Update Latency": 154.5, "Median Update Latency": 101.7, "Tail Update Latency": 306.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499900.0, "Average Read Latency": 5934.3, "Median Read Latency": 351.8, "Tail Read Latency": 12598.0, "Average Update Latency": 5855.4, "Median Update Latency": 344.2, "Tail Update Latency": 12702.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 515298.2, "Average Read Latency": 25658.7, "Median Read Latency": 16813.3, "Tail Read Latency": 264429.2, "Average Update Latency": 26132.2, "Median Update Latency": 16995.2, "Tail Update Latency": 266163.6}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 99994.5, "Average Read Latency": 102.1, "Median Read Latency": 93.2, "Tail Read Latency": 146.5, "Average Update Latency": 106.5, "Median Update Latency": 96.6, "Tail Update Latency": 152.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 100019.5, "Average Read Latency": 98.5, "Median Read Latency": 92.4, "Tail Read Latency": 161.9, "Average Update Latency": 108.6, "Median Update Latency": 97.6, "Tail Update Latency": 171.1}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 552977.8, "Average Read Latency": 14404.7, "Median Read Latency": 14014.3, "Tail Read Latency": 27001.4, "Average Update Latency": 14445.6, "Median Update Latency": 14011.5, "Tail Update Latency": 27879.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 100020.2, "Average Read Latency": 89.1, "Median Read Latency": 86.6, "Tail Read Latency": 132.6, "Average Update Latency": 93.7, "Median Update Latency": 91.7, "Tail Update Latency": 139.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 400042.3, "Average Read Latency": 464.8, "Median Read Latency": 123.5, "Tail Read Latency": 8525.3, "Average Update Latency": 617.0, "Median Update Latency": 125.1, "Tail Update Latency": 11779.4}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 566050.4, "Average Read Latency": 14549.1, "Median Read Latency": 13249.7, "Tail Read Latency": 30317.0, "Average Update Latency": 15404.0, "Median Update Latency": 13266.3, "Tail Update Latency": 41613.4}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 400012.9, "Average Read Latency": 332.8, "Median Read Latency": 125.5, "Tail Read Latency": 5736.9, "Average Update Latency": 382.9, "Median Update Latency": 128.0, "Tail Update Latency": 6504.9}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 593222.1, "Average Read Latency": 22249.0, "Median Read Latency": 13330.8, "Tail Read Latency": 253575.9, "Average Update Latency": 22117.2, "Median Update Latency": 13377.9, "Tail Update Latency": 252096.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 400016.3, "Average Read Latency": 170.9, "Median Read Latency": 121.3, "Tail Read Latency": 551.8, "Average Update Latency": 173.3, "Median Update Latency": 124.9, "Tail Update Latency": 551.7}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200014.7, "Average Read Latency": 89.5, "Median Read Latency": 86.2, "Tail Read Latency": 139.6, "Average Update Latency": 92.7, "Median Update Latency": 89.6, "Tail Update Latency": 143.3}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499623.3, "Average Read Latency": 8449.4, "Median Read Latency": 1455.3, "Tail Read Latency": 222915.9, "Average Update Latency": 8383.3, "Median Update Latency": 1286.5, "Tail Update Latency": 221473.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499929.8, "Average Read Latency": 6332.6, "Median Read Latency": 543.9, "Tail Read Latency": 12632.1, "Average Update Latency": 6312.7, "Median Update Latency": 541.5, "Tail Update Latency": 12882.3}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 565990.5, "Average Read Latency": 15883.4, "Median Read Latency": 7909.7, "Tail Read Latency": 239232.0, "Average Update Latency": 15701.1, "Median Update Latency": 7892.2, "Tail Update Latency": 238159.5}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499869.2, "Average Read Latency": 6090.8, "Median Read Latency": 332.7, "Tail Read Latency": 12489.9, "Average Update Latency": 6077.2, "Median Update Latency": 332.5, "Tail Update Latency": 12493.0}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 399964.9, "Average Read Latency": 168.8, "Median Read Latency": 121.7, "Tail Read Latency": 536.5, "Average Update Latency": 171.7, "Median Update Latency": 125.2, "Tail Update Latency": 535.5}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 516226.0, "Average Read Latency": 30974.0, "Median Read Latency": 21842.3, "Tail Read Latency": 288002.8, "Average Update Latency": 31947.7, "Median Update Latency": 21924.2, "Tail Update Latency": 300723.5}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 100001.3, "Average Read Latency": 99.0, "Median Read Latency": 92.2, "Tail Read Latency": 160.2, "Average Update Latency": 104.2, "Median Update Latency": 97.0, "Tail Update Latency": 168.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 483338.0, "Average Read Latency": 23768.4, "Median Read Latency": 12569.4, "Tail Read Latency": 264303.9, "Average Update Latency": 24069.5, "Median Update Latency": 12554.1, "Tail Update Latency": 278564.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 300018.3, "Average Read Latency": 102.1, "Median Read Latency": 94.8, "Tail Read Latency": 193.4, "Average Update Latency": 105.2, "Median Update Latency": 97.9, "Tail Update Latency": 198.2}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 200041.6, "Average Read Latency": 89.2, "Median Read Latency": 86.0, "Tail Read Latency": 138.6, "Average Update Latency": 92.5, "Median Update Latency": 89.3, "Tail Update Latency": 141.5}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 200009.1, "Average Read Latency": 112.5, "Median Read Latency": 96.7, "Tail Read Latency": 207.2, "Average Update Latency": 113.6, "Median Update Latency": 99.9, "Tail Update Latency": 207.1}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 199985.6, "Average Read Latency": 105.2, "Median Read Latency": 94.5, "Tail Read Latency": 203.9, "Average Update Latency": 109.4, "Median Update Latency": 99.0, "Tail Update Latency": 208.2}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 299983.7, "Average Read Latency": 112.0, "Median Read Latency": 98.3, "Tail Read Latency": 252.2, "Average Update Latency": 116.0, "Median Update Latency": 102.0, "Tail Update Latency": 258.3}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 299979.0, "Average Read Latency": 144.9, "Median Read Latency": 106.7, "Tail Read Latency": 339.3, "Average Update Latency": 156.2, "Median Update Latency": 109.7, "Tail Update Latency": 357.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 100027.0, "Average Read Latency": 89.6, "Median Read Latency": 86.9, "Tail Read Latency": 135.5, "Average Update Latency": 94.2, "Median Update Latency": 91.7, "Tail Update Latency": 140.7}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 483591.7, "Average Read Latency": 23644.7, "Median Read Latency": 12619.8, "Tail Read Latency": 263304.6, "Average Update Latency": 23631.0, "Median Update Latency": 12678.4, "Tail Update Latency": 263913.6}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 200026.5, "Average Read Latency": 104.3, "Median Read Latency": 95.2, "Tail Read Latency": 205.3, "Average Update Latency": 108.0, "Median Update Latency": 99.4, "Tail Update Latency": 216.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 300038.6, "Average Read Latency": 134.9, "Median Read Latency": 99.2, "Tail Read Latency": 276.6, "Average Update Latency": 154.7, "Median Update Latency": 101.3, "Tail Update Latency": 290.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 593965.2, "Average Read Latency": 24283.7, "Median Read Latency": 13624.9, "Tail Read Latency": 261136.7, "Average Update Latency": 24738.5, "Median Update Latency": 13602.8, "Tail Update Latency": 262173.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499612.2, "Average Read Latency": 8596.2, "Median Read Latency": 2748.0, "Tail Read Latency": 223729.9, "Average Update Latency": 8476.2, "Median Update Latency": 2718.0, "Tail Update Latency": 223193.2}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 560186.5, "Average Read Latency": 14517.3, "Median Read Latency": 13385.3, "Tail Read Latency": 27977.8, "Average Update Latency": 14639.9, "Median Update Latency": 13384.5, "Tail Update Latency": 29073.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 505163.8, "Average Read Latency": 25510.4, "Median Read Latency": 16093.1, "Tail Read Latency": 269451.5, "Average Update Latency": 26011.8, "Median Update Latency": 16104.5, "Tail Update Latency": 273392.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 300044.8, "Average Read Latency": 101.8, "Median Read Latency": 94.7, "Tail Read Latency": 191.6, "Average Update Latency": 104.2, "Median Update Latency": 97.8, "Tail Update Latency": 194.8}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 199980.1, "Average Read Latency": 117.0, "Median Read Latency": 97.2, "Tail Read Latency": 209.1, "Average Update Latency": 121.7, "Median Update Latency": 100.4, "Tail Update Latency": 215.6}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 400003.8, "Average Read Latency": 166.6, "Median Read Latency": 121.0, "Tail Read Latency": 529.0, "Average Update Latency": 169.8, "Median Update Latency": 124.6, "Tail Update Latency": 533.3}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 564867.2, "Average Read Latency": 17673.5, "Median Read Latency": 7846.9, "Tail Read Latency": 239715.7, "Average Update Latency": 17718.3, "Median Update Latency": 7832.1, "Tail Update Latency": 244295.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499583.7, "Average Read Latency": 9123.9, "Median Read Latency": 1792.8, "Tail Read Latency": 225057.1, "Average Update Latency": 8751.4, "Median Update Latency": 1800.9, "Tail Update Latency": 223958.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 200026.6, "Average Read Latency": 118.7, "Median Read Latency": 97.8, "Tail Read Latency": 216.5, "Average Update Latency": 122.4, "Median Update Latency": 100.7, "Tail Update Latency": 218.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 551066.7, "Average Read Latency": 14675.7, "Median Read Latency": 13729.9, "Tail Read Latency": 27851.1, "Average Update Latency": 14638.8, "Median Update Latency": 13742.6, "Tail Update Latency": 28538.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 399977.6, "Average Read Latency": 118.6, "Median Read Latency": 104.2, "Tail Read Latency": 302.3, "Average Update Latency": 121.8, "Median Update Latency": 106.5, "Tail Update Latency": 308.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 511298.1, "Average Read Latency": 26280.4, "Median Read Latency": 15560.6, "Tail Read Latency": 281257.5, "Average Update Latency": 26637.7, "Median Update Latency": 15625.4, "Tail Update Latency": 285255.4}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 506555.1, "Average Read Latency": 28482.6, "Median Read Latency": 18891.4, "Tail Read Latency": 282206.6, "Average Update Latency": 28754.9, "Median Update Latency": 19003.9, "Tail Update Latency": 284169.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 514371.6, "Average Read Latency": 29101.7, "Median Read Latency": 21669.8, "Tail Read Latency": 273752.1, "Average Update Latency": 29954.2, "Median Update Latency": 21799.6, "Tail Update Latency": 278109.2}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 400000.9, "Average Read Latency": 373.9, "Median Read Latency": 122.7, "Tail Read Latency": 6735.6, "Average Update Latency": 448.9, "Median Update Latency": 124.6, "Tail Update Latency": 7943.0}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 483081.7, "Average Read Latency": 22705.2, "Median Read Latency": 12677.3, "Tail Read Latency": 259608.1, "Average Update Latency": 23065.0, "Median Update Latency": 12665.1, "Tail Update Latency": 261171.9}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 399930.7, "Average Read Latency": 371.1, "Median Read Latency": 126.3, "Tail Read Latency": 6599.4, "Average Update Latency": 429.3, "Median Update Latency": 128.2, "Tail Update Latency": 7261.3}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 199965.3, "Average Read Latency": 103.3, "Median Read Latency": 95.3, "Tail Read Latency": 209.0, "Average Update Latency": 107.9, "Median Update Latency": 99.7, "Tail Update Latency": 214.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 300075.3, "Average Read Latency": 146.2, "Median Read Latency": 99.6, "Tail Read Latency": 292.5, "Average Update Latency": 176.5, "Median Update Latency": 101.9, "Tail Update Latency": 325.1}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 199994.5, "Average Read Latency": 111.3, "Median Read Latency": 96.5, "Tail Read Latency": 203.8, "Average Update Latency": 114.5, "Median Update Latency": 99.9, "Tail Update Latency": 207.9}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 592931.9, "Average Read Latency": 22877.9, "Median Read Latency": 13800.4, "Tail Read Latency": 253284.3, "Average Update Latency": 22788.0, "Median Update Latency": 13750.6, "Tail Update Latency": 252488.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 99981.8, "Average Read Latency": 102.7, "Median Read Latency": 93.1, "Tail Read Latency": 157.3, "Average Update Latency": 108.1, "Median Update Latency": 98.0, "Tail Update Latency": 165.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 400049.6, "Average Read Latency": 161.4, "Median Read Latency": 119.0, "Tail Read Latency": 509.9, "Average Update Latency": 164.9, "Median Update Latency": 122.8, "Tail Update Latency": 510.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 521248.0, "Average Read Latency": 28812.6, "Median Read Latency": 20240.5, "Tail Read Latency": 281905.5, "Average Update Latency": 29284.3, "Median Update Latency": 20399.9, "Tail Update Latency": 285492.9}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 300029.6, "Average Read Latency": 136.9, "Median Read Latency": 99.2, "Tail Read Latency": 266.3, "Average Update Latency": 154.1, "Median Update Latency": 101.4, "Tail Update Latency": 281.1}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 100004.2, "Average Read Latency": 87.7, "Median Read Latency": 85.3, "Tail Read Latency": 127.7, "Average Update Latency": 92.7, "Median Update Latency": 89.6, "Tail Update Latency": 137.4}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 200017.6, "Average Read Latency": 89.5, "Median Read Latency": 86.3, "Tail Read Latency": 138.8, "Average Update Latency": 92.7, "Median Update Latency": 89.7, "Tail Update Latency": 141.6}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 517644.0, "Average Read Latency": 30211.0, "Median Read Latency": 21342.1, "Tail Read Latency": 282634.8, "Average Update Latency": 30655.5, "Median Update Latency": 21346.5, "Tail Update Latency": 286013.2}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 399996.2, "Average Read Latency": 118.0, "Median Read Latency": 103.7, "Tail Read Latency": 305.8, "Average Update Latency": 120.7, "Median Update Latency": 106.1, "Tail Update Latency": 308.2}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 300027.9, "Average Read Latency": 144.4, "Median Read Latency": 100.1, "Tail Read Latency": 351.6, "Average Update Latency": 185.9, "Median Update Latency": 102.1, "Tail Update Latency": 388.2}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 199988.4, "Average Read Latency": 110.4, "Median Read Latency": 95.8, "Tail Read Latency": 198.4, "Average Update Latency": 111.7, "Median Update Latency": 99.2, "Tail Update Latency": 198.7}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 587969.8, "Average Read Latency": 20844.7, "Median Read Latency": 13753.3, "Tail Read Latency": 239446.0, "Average Update Latency": 21041.6, "Median Update Latency": 13787.1, "Tail Update Latency": 239437.7}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 300005.8, "Average Read Latency": 141.2, "Median Read Latency": 100.0, "Tail Read Latency": 308.8, "Average Update Latency": 175.5, "Median Update Latency": 102.1, "Tail Update Latency": 326.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499978.0, "Average Read Latency": 5874.8, "Median Read Latency": 281.6, "Tail Read Latency": 12487.9, "Average Update Latency": 5783.0, "Median Update Latency": 282.5, "Tail Update Latency": 12487.2}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 199988.1, "Average Read Latency": 106.0, "Median Read Latency": 94.9, "Tail Read Latency": 205.8, "Average Update Latency": 108.5, "Median Update Latency": 99.3, "Tail Update Latency": 212.0}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 540368.3, "Average Read Latency": 14393.4, "Median Read Latency": 14151.1, "Tail Read Latency": 26192.4, "Average Update Latency": 14474.1, "Median Update Latency": 14154.5, "Tail Update Latency": 27632.7}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 300005.6, "Average Read Latency": 112.0, "Median Read Latency": 98.1, "Tail Read Latency": 248.8, "Average Update Latency": 113.9, "Median Update Latency": 101.6, "Tail Update Latency": 249.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 561816.0, "Average Read Latency": 14040.8, "Median Read Latency": 13441.7, "Tail Read Latency": 26537.0, "Average Update Latency": 14244.9, "Median Update Latency": 13445.4, "Tail Update Latency": 27451.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 573910.7, "Average Read Latency": 14312.0, "Median Read Latency": 13144.2, "Tail Read Latency": 28305.4, "Average Update Latency": 14618.6, "Median Update Latency": 13152.0, "Tail Update Latency": 29016.9}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 514345.1, "Average Read Latency": 30720.7, "Median Read Latency": 22355.1, "Tail Read Latency": 284221.8, "Average Update Latency": 31249.9, "Median Update Latency": 22376.6, "Tail Update Latency": 286629.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 300059.0, "Average Read Latency": 105.2, "Median Read Latency": 97.6, "Tail Read Latency": 198.7, "Average Update Latency": 108.2, "Median Update Latency": 101.1, "Tail Update Latency": 201.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 560576.1, "Average Read Latency": 14187.8, "Median Read Latency": 13594.6, "Tail Read Latency": 26970.0, "Average Update Latency": 14405.9, "Median Update Latency": 13604.4, "Tail Update Latency": 28286.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 400027.0, "Average Read Latency": 455.0, "Median Read Latency": 127.2, "Tail Read Latency": 8128.5, "Average Update Latency": 539.0, "Median Update Latency": 128.9, "Tail Update Latency": 9940.1}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 100015.9, "Average Read Latency": 99.4, "Median Read Latency": 93.9, "Tail Read Latency": 159.9, "Average Update Latency": 103.0, "Median Update Latency": 99.3, "Tail Update Latency": 171.2}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 299975.0, "Average Read Latency": 102.6, "Median Read Latency": 95.1, "Tail Read Latency": 193.4, "Average Update Latency": 104.9, "Median Update Latency": 98.2, "Tail Update Latency": 198.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 400015.4, "Average Read Latency": 170.7, "Median Read Latency": 122.2, "Tail Read Latency": 551.1, "Average Update Latency": 172.0, "Median Update Latency": 125.9, "Tail Update Latency": 553.8}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499957.6, "Average Read Latency": 6248.0, "Median Read Latency": 407.6, "Tail Read Latency": 12520.6, "Average Update Latency": 6113.1, "Median Update Latency": 370.8, "Tail Update Latency": 12511.8}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 509177.7, "Average Read Latency": 22559.9, "Median Read Latency": 13379.3, "Tail Read Latency": 266228.0, "Average Update Latency": 22979.3, "Median Update Latency": 13360.9, "Tail Update Latency": 274334.7}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 299974.6, "Average Read Latency": 102.3, "Median Read Latency": 95.3, "Tail Read Latency": 191.6, "Average Update Latency": 105.0, "Median Update Latency": 98.4, "Tail Update Latency": 195.2}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 200017.7, "Average Read Latency": 104.6, "Median Read Latency": 95.4, "Tail Read Latency": 208.9, "Average Update Latency": 113.2, "Median Update Latency": 99.7, "Tail Update Latency": 216.4}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 100009.0, "Average Read Latency": 96.5, "Median Read Latency": 92.2, "Tail Read Latency": 155.5, "Average Update Latency": 101.9, "Median Update Latency": 97.0, "Tail Update Latency": 162.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 199967.3, "Average Read Latency": 105.7, "Median Read Latency": 95.7, "Tail Read Latency": 209.8, "Average Update Latency": 110.3, "Median Update Latency": 99.9, "Tail Update Latency": 218.3}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 300044.2, "Average Read Latency": 100.4, "Median Read Latency": 94.2, "Tail Read Latency": 187.6, "Average Update Latency": 103.6, "Median Update Latency": 97.3, "Tail Update Latency": 190.4}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 516198.2, "Average Read Latency": 29359.4, "Median Read Latency": 20840.4, "Tail Read Latency": 279641.6, "Average Update Latency": 29740.2, "Median Update Latency": 20847.3, "Tail Update Latency": 284295.9}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 200056.8, "Average Read Latency": 119.3, "Median Read Latency": 98.1, "Tail Read Latency": 209.2, "Average Update Latency": 120.0, "Median Update Latency": 101.2, "Tail Update Latency": 217.7}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499913.8, "Average Read Latency": 6309.3, "Median Read Latency": 775.8, "Tail Read Latency": 13595.5, "Average Update Latency": 6305.8, "Median Update Latency": 1117.0, "Tail Update Latency": 13818.7}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 300016.3, "Average Read Latency": 102.1, "Median Read Latency": 95.2, "Tail Read Latency": 195.0, "Average Update Latency": 104.8, "Median Update Latency": 98.1, "Tail Update Latency": 197.3}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 587580.7, "Average Read Latency": 23855.4, "Median Read Latency": 13660.1, "Tail Read Latency": 261900.1, "Average Update Latency": 23781.0, "Median Update Latency": 13678.3, "Tail Update Latency": 258233.5}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 300041.3, "Average Read Latency": 125.6, "Median Read Latency": 107.1, "Tail Read Latency": 308.5, "Average Update Latency": 130.3, "Median Update Latency": 111.2, "Tail Update Latency": 308.5}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 200010.3, "Average Read Latency": 108.2, "Median Read Latency": 95.0, "Tail Read Latency": 187.5, "Average Update Latency": 110.6, "Median Update Latency": 98.0, "Tail Update Latency": 190.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 300030.9, "Average Read Latency": 111.5, "Median Read Latency": 99.1, "Tail Read Latency": 247.6, "Average Update Latency": 116.0, "Median Update Latency": 102.6, "Tail Update Latency": 251.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 100025.1, "Average Read Latency": 88.6, "Median Read Latency": 86.0, "Tail Read Latency": 130.0, "Average Update Latency": 93.3, "Median Update Latency": 90.6, "Tail Update Latency": 138.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 400009.3, "Average Read Latency": 493.2, "Median Read Latency": 126.3, "Tail Read Latency": 8224.4, "Average Update Latency": 626.5, "Median Update Latency": 128.5, "Tail Update Latency": 11652.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 300030.5, "Average Read Latency": 112.5, "Median Read Latency": 98.3, "Tail Read Latency": 250.9, "Average Update Latency": 113.6, "Median Update Latency": 102.0, "Tail Update Latency": 247.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 502389.6, "Average Read Latency": 29341.8, "Median Read Latency": 17918.1, "Tail Read Latency": 310805.1, "Average Update Latency": 29672.6, "Median Update Latency": 17979.9, "Tail Update Latency": 316310.7}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499585.8, "Average Read Latency": 8935.9, "Median Read Latency": 2032.1, "Tail Read Latency": 225563.7, "Average Update Latency": 8746.2, "Median Update Latency": 2319.8, "Tail Update Latency": 223944.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 200053.1, "Average Read Latency": 88.7, "Median Read Latency": 85.5, "Tail Read Latency": 137.9, "Average Update Latency": 91.9, "Median Update Latency": 88.5, "Tail Update Latency": 141.4}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 299959.9, "Average Read Latency": 102.6, "Median Read Latency": 95.3, "Tail Read Latency": 194.9, "Average Update Latency": 105.9, "Median Update Latency": 98.4, "Tail Update Latency": 199.5}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 100026.5, "Average Read Latency": 100.0, "Median Read Latency": 92.2, "Tail Read Latency": 139.6, "Average Update Latency": 104.3, "Median Update Latency": 95.8, "Tail Update Latency": 144.1}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 300017.1, "Average Read Latency": 111.5, "Median Read Latency": 97.5, "Tail Read Latency": 249.6, "Average Update Latency": 114.0, "Median Update Latency": 101.3, "Tail Update Latency": 254.2}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 564015.4, "Average Read Latency": 17110.5, "Median Read Latency": 7264.2, "Tail Read Latency": 426897.9, "Average Update Latency": 16942.6, "Median Update Latency": 7256.8, "Tail Update Latency": 240321.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499707.1, "Average Read Latency": 8746.9, "Median Read Latency": 2107.8, "Tail Read Latency": 223453.2, "Average Update Latency": 8921.0, "Median Update Latency": 2238.3, "Tail Update Latency": 223892.7}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499855.1, "Average Read Latency": 6535.4, "Median Read Latency": 509.2, "Tail Read Latency": 13412.1, "Average Update Latency": 6527.4, "Median Update Latency": 473.2, "Tail Update Latency": 13708.9}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300022.3, "Average Read Latency": 125.0, "Median Read Latency": 97.7, "Tail Read Latency": 263.1, "Average Update Latency": 141.3, "Median Update Latency": 100.3, "Tail Update Latency": 273.9}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 591646.1, "Average Read Latency": 24119.5, "Median Read Latency": 15259.9, "Tail Read Latency": 256589.2, "Average Update Latency": 23858.9, "Median Update Latency": 15306.2, "Tail Update Latency": 254876.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 100004.3, "Average Read Latency": 89.5, "Median Read Latency": 86.6, "Tail Read Latency": 132.1, "Average Update Latency": 94.7, "Median Update Latency": 91.4, "Tail Update Latency": 139.2}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 400008.9, "Average Read Latency": 436.8, "Median Read Latency": 125.0, "Tail Read Latency": 7585.5, "Average Update Latency": 553.0, "Median Update Latency": 127.7, "Tail Update Latency": 10339.6}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 300048.3, "Average Read Latency": 110.6, "Median Read Latency": 98.4, "Tail Read Latency": 246.5, "Average Update Latency": 116.3, "Median Update Latency": 102.2, "Tail Update Latency": 252.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 299975.7, "Average Read Latency": 102.0, "Median Read Latency": 95.4, "Tail Read Latency": 191.1, "Average Update Latency": 105.3, "Median Update Latency": 98.4, "Tail Update Latency": 195.3}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 519916.9, "Average Read Latency": 28885.1, "Median Read Latency": 17626.0, "Tail Read Latency": 314286.1, "Average Update Latency": 29578.2, "Median Update Latency": 17679.0, "Tail Update Latency": 322296.3}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 500424.6, "Average Read Latency": 23654.6, "Median Read Latency": 14083.6, "Tail Read Latency": 266011.3, "Average Update Latency": 24531.2, "Median Update Latency": 14159.3, "Tail Update Latency": 278944.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 300022.4, "Average Read Latency": 113.6, "Median Read Latency": 99.6, "Tail Read Latency": 251.0, "Average Update Latency": 117.0, "Median Update Latency": 103.4, "Tail Update Latency": 256.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 300002.5, "Average Read Latency": 111.9, "Median Read Latency": 98.9, "Tail Read Latency": 250.8, "Average Update Latency": 114.6, "Median Update Latency": 102.4, "Tail Update Latency": 249.6}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 544040.6, "Average Read Latency": 14564.8, "Median Read Latency": 13958.4, "Tail Read Latency": 27768.6, "Average Update Latency": 14743.3, "Median Update Latency": 13961.1, "Tail Update Latency": 29014.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 299989.4, "Average Read Latency": 111.9, "Median Read Latency": 98.2, "Tail Read Latency": 249.0, "Average Update Latency": 115.2, "Median Update Latency": 102.0, "Tail Update Latency": 251.1}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 399944.8, "Average Read Latency": 491.3, "Median Read Latency": 124.3, "Tail Read Latency": 8859.9, "Average Update Latency": 640.8, "Median Update Latency": 126.2, "Tail Update Latency": 12612.8}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 399981.9, "Average Read Latency": 537.4, "Median Read Latency": 126.5, "Tail Read Latency": 9723.3, "Average Update Latency": 692.1, "Median Update Latency": 128.4, "Tail Update Latency": 13567.0}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 399946.7, "Average Read Latency": 453.8, "Median Read Latency": 124.7, "Tail Read Latency": 7943.7, "Average Update Latency": 588.6, "Median Update Latency": 126.5, "Tail Update Latency": 11213.1}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200003.7, "Average Read Latency": 88.0, "Median Read Latency": 85.0, "Tail Read Latency": 136.2, "Average Update Latency": 91.2, "Median Update Latency": 88.0, "Tail Update Latency": 139.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 400014.6, "Average Read Latency": 172.2, "Median Read Latency": 123.0, "Tail Read Latency": 573.5, "Average Update Latency": 179.8, "Median Update Latency": 126.5, "Tail Update Latency": 583.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 100051.4, "Average Read Latency": 102.1, "Median Read Latency": 92.8, "Tail Read Latency": 146.4, "Average Update Latency": 109.9, "Median Update Latency": 96.2, "Tail Update Latency": 152.8}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 571196.2, "Average Read Latency": 15953.9, "Median Read Latency": 7631.1, "Tail Read Latency": 238175.1, "Average Update Latency": 16100.6, "Median Update Latency": 7545.3, "Tail Update Latency": 238711.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 200061.9, "Average Read Latency": 104.3, "Median Read Latency": 95.5, "Tail Read Latency": 210.1, "Average Update Latency": 108.6, "Median Update Latency": 99.9, "Tail Update Latency": 215.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 299973.7, "Average Read Latency": 101.3, "Median Read Latency": 94.3, "Tail Read Latency": 189.0, "Average Update Latency": 104.0, "Median Update Latency": 97.1, "Tail Update Latency": 195.0}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 99994.6, "Average Read Latency": 98.7, "Median Read Latency": 93.3, "Tail Read Latency": 157.9, "Average Update Latency": 103.0, "Median Update Latency": 98.1, "Tail Update Latency": 167.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 565959.7, "Average Read Latency": 15229.4, "Median Read Latency": 7152.1, "Tail Read Latency": 237972.7, "Average Update Latency": 14649.3, "Median Update Latency": 7151.2, "Tail Update Latency": 236837.2}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 200048.0, "Average Read Latency": 105.0, "Median Read Latency": 96.0, "Tail Read Latency": 211.4, "Average Update Latency": 108.2, "Median Update Latency": 100.5, "Tail Update Latency": 217.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 568499.3, "Average Read Latency": 24465.0, "Median Read Latency": 8604.0, "Tail Read Latency": 440987.8, "Average Update Latency": 21666.8, "Median Update Latency": 8624.3, "Tail Update Latency": 433749.7}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 509119.3, "Average Read Latency": 28812.8, "Median Read Latency": 20084.6, "Tail Read Latency": 283182.6, "Average Update Latency": 29372.4, "Median Update Latency": 20136.8, "Tail Update Latency": 285792.9}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 399978.1, "Average Read Latency": 165.9, "Median Read Latency": 119.8, "Tail Read Latency": 530.4, "Average Update Latency": 169.7, "Median Update Latency": 123.8, "Tail Update Latency": 532.6}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 300038.6, "Average Read Latency": 123.7, "Median Read Latency": 106.2, "Tail Read Latency": 298.0, "Average Update Latency": 126.6, "Median Update Latency": 110.2, "Tail Update Latency": 301.2}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 100002.1, "Average Read Latency": 102.3, "Median Read Latency": 93.3, "Tail Read Latency": 147.1, "Average Update Latency": 104.9, "Median Update Latency": 96.8, "Tail Update Latency": 154.1}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 400024.9, "Average Read Latency": 118.8, "Median Read Latency": 103.6, "Tail Read Latency": 307.8, "Average Update Latency": 121.3, "Median Update Latency": 106.1, "Tail Update Latency": 310.7}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 200005.8, "Average Read Latency": 117.5, "Median Read Latency": 96.6, "Tail Read Latency": 208.1, "Average Update Latency": 120.1, "Median Update Latency": 99.8, "Tail Update Latency": 209.0}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 493813.4, "Average Read Latency": 22830.7, "Median Read Latency": 13281.2, "Tail Read Latency": 263264.4, "Average Update Latency": 23821.2, "Median Update Latency": 13331.1, "Tail Update Latency": 281460.1}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 199983.8, "Average Read Latency": 105.4, "Median Read Latency": 95.0, "Tail Read Latency": 185.4, "Average Update Latency": 107.9, "Median Update Latency": 97.7, "Tail Update Latency": 189.9}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 515449.1, "Average Read Latency": 26455.9, "Median Read Latency": 15946.2, "Tail Read Latency": 297690.5, "Average Update Latency": 27314.3, "Median Update Latency": 16010.1, "Tail Update Latency": 314036.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 200018.2, "Average Read Latency": 102.5, "Median Read Latency": 93.8, "Tail Read Latency": 179.7, "Average Update Latency": 107.3, "Median Update Latency": 96.7, "Tail Update Latency": 183.0}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499945.4, "Average Read Latency": 5514.5, "Median Read Latency": 300.0, "Tail Read Latency": 12420.3, "Average Update Latency": 5565.6, "Median Update Latency": 291.6, "Tail Update Latency": 12439.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 200011.0, "Average Read Latency": 104.5, "Median Read Latency": 95.0, "Tail Read Latency": 205.4, "Average Update Latency": 107.9, "Median Update Latency": 99.5, "Tail Update Latency": 211.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 400128.1, "Average Read Latency": 499.8, "Median Read Latency": 125.5, "Tail Read Latency": 8602.1, "Average Update Latency": 660.0, "Median Update Latency": 127.3, "Tail Update Latency": 12471.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499986.8, "Average Read Latency": 5997.3, "Median Read Latency": 283.7, "Tail Read Latency": 12502.0, "Average Update Latency": 6039.6, "Median Update Latency": 294.3, "Tail Update Latency": 12511.9}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 200078.6, "Average Read Latency": 109.3, "Median Read Latency": 95.2, "Tail Read Latency": 192.4, "Average Update Latency": 109.8, "Median Update Latency": 98.1, "Tail Update Latency": 194.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 99990.4, "Average Read Latency": 105.4, "Median Read Latency": 93.4, "Tail Read Latency": 147.7, "Average Update Latency": 109.0, "Median Update Latency": 97.0, "Tail Update Latency": 152.6}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 399978.1, "Average Read Latency": 169.8, "Median Read Latency": 121.5, "Tail Read Latency": 536.8, "Average Update Latency": 171.7, "Median Update Latency": 125.0, "Tail Update Latency": 541.2}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 100029.4, "Average Read Latency": 100.5, "Median Read Latency": 93.1, "Tail Read Latency": 158.5, "Average Update Latency": 103.5, "Median Update Latency": 98.3, "Tail Update Latency": 165.2}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 484784.9, "Average Read Latency": 21313.9, "Median Read Latency": 13079.1, "Tail Read Latency": 254894.9, "Average Update Latency": 21819.4, "Median Update Latency": 13138.9, "Tail Update Latency": 256401.1}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 200057.8, "Average Read Latency": 89.3, "Median Read Latency": 86.0, "Tail Read Latency": 138.5, "Average Update Latency": 92.3, "Median Update Latency": 89.1, "Tail Update Latency": 140.2}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100020.6, "Average Read Latency": 87.5, "Median Read Latency": 85.0, "Tail Read Latency": 127.7, "Average Update Latency": 91.3, "Median Update Latency": 89.1, "Tail Update Latency": 133.1}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 99985.6, "Average Read Latency": 89.3, "Median Read Latency": 86.7, "Tail Read Latency": 133.0, "Average Update Latency": 93.8, "Median Update Latency": 91.6, "Tail Update Latency": 138.1}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 569891.4, "Average Read Latency": 17357.1, "Median Read Latency": 7946.1, "Tail Read Latency": 240310.2, "Average Update Latency": 16907.0, "Median Update Latency": 7931.8, "Tail Update Latency": 239689.7}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 300029.5, "Average Read Latency": 137.8, "Median Read Latency": 99.9, "Tail Read Latency": 316.4, "Average Update Latency": 164.5, "Median Update Latency": 102.0, "Tail Update Latency": 315.1}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 300015.7, "Average Read Latency": 101.6, "Median Read Latency": 94.3, "Tail Read Latency": 188.2, "Average Update Latency": 104.4, "Median Update Latency": 97.2, "Tail Update Latency": 193.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499937.1, "Average Read Latency": 5693.2, "Median Read Latency": 306.9, "Tail Read Latency": 12484.5, "Average Update Latency": 5601.3, "Median Update Latency": 322.7, "Tail Update Latency": 12479.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 515766.0, "Average Read Latency": 27540.4, "Median Read Latency": 18830.6, "Tail Read Latency": 276851.6, "Average Update Latency": 28130.4, "Median Update Latency": 18866.1, "Tail Update Latency": 279741.4}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 540165.1, "Average Read Latency": 14515.3, "Median Read Latency": 14129.1, "Tail Read Latency": 27148.9, "Average Update Latency": 14689.9, "Median Update Latency": 14143.0, "Tail Update Latency": 27954.8}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 506661.9, "Average Read Latency": 29788.3, "Median Read Latency": 16290.3, "Tail Read Latency": 354052.8, "Average Update Latency": 30822.3, "Median Update Latency": 16414.5, "Tail Update Latency": 371242.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 400039.9, "Average Read Latency": 439.5, "Median Read Latency": 126.4, "Tail Read Latency": 7941.4, "Average Update Latency": 518.2, "Median Update Latency": 128.1, "Tail Update Latency": 9523.5}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 400032.0, "Average Read Latency": 490.9, "Median Read Latency": 126.2, "Tail Read Latency": 8531.1, "Average Update Latency": 623.2, "Median Update Latency": 127.9, "Tail Update Latency": 12021.7}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 99990.8, "Average Read Latency": 89.3, "Median Read Latency": 86.6, "Tail Read Latency": 132.9, "Average Update Latency": 94.3, "Median Update Latency": 91.7, "Tail Update Latency": 140.2}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 200012.1, "Average Read Latency": 102.1, "Median Read Latency": 95.1, "Tail Read Latency": 206.5, "Average Update Latency": 105.8, "Median Update Latency": 99.5, "Tail Update Latency": 211.4}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 589251.8, "Average Read Latency": 20987.3, "Median Read Latency": 13790.8, "Tail Read Latency": 244436.4, "Average Update Latency": 21003.3, "Median Update Latency": 13797.5, "Tail Update Latency": 244409.2}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 399940.7, "Average Read Latency": 170.4, "Median Read Latency": 122.3, "Tail Read Latency": 553.7, "Average Update Latency": 175.2, "Median Update Latency": 126.1, "Tail Update Latency": 570.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 399939.3, "Average Read Latency": 167.7, "Median Read Latency": 121.9, "Tail Read Latency": 535.3, "Average Update Latency": 173.1, "Median Update Latency": 125.3, "Tail Update Latency": 537.9}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 200019.5, "Average Read Latency": 102.2, "Median Read Latency": 94.8, "Tail Read Latency": 186.2, "Average Update Latency": 107.5, "Median Update Latency": 98.0, "Tail Update Latency": 194.4}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 100034.3, "Average Read Latency": 89.8, "Median Read Latency": 86.9, "Tail Read Latency": 134.9, "Average Update Latency": 95.0, "Median Update Latency": 92.3, "Tail Update Latency": 141.4}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 485797.1, "Average Read Latency": 22626.3, "Median Read Latency": 12462.7, "Tail Read Latency": 259646.6, "Average Update Latency": 22950.7, "Median Update Latency": 12435.0, "Tail Update Latency": 260849.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 558700.7, "Average Read Latency": 14197.1, "Median Read Latency": 13546.0, "Tail Read Latency": 26984.2, "Average Update Latency": 14462.2, "Median Update Latency": 13557.2, "Tail Update Latency": 28093.2}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 399968.7, "Average Read Latency": 169.0, "Median Read Latency": 120.9, "Tail Read Latency": 538.4, "Average Update Latency": 172.5, "Median Update Latency": 124.9, "Tail Update Latency": 540.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 504324.5, "Average Read Latency": 27880.1, "Median Read Latency": 18221.2, "Tail Read Latency": 281590.1, "Average Update Latency": 28676.0, "Median Update Latency": 18269.2, "Tail Update Latency": 288763.2}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 400043.8, "Average Read Latency": 117.9, "Median Read Latency": 104.6, "Tail Read Latency": 288.5, "Average Update Latency": 120.7, "Median Update Latency": 107.3, "Tail Update Latency": 291.8}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 591905.1, "Average Read Latency": 24154.7, "Median Read Latency": 13540.1, "Tail Read Latency": 271065.0, "Average Update Latency": 24687.9, "Median Update Latency": 13614.9, "Tail Update Latency": 269751.4}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 200016.8, "Average Read Latency": 104.6, "Median Read Latency": 95.5, "Tail Read Latency": 207.8, "Average Update Latency": 109.0, "Median Update Latency": 99.9, "Tail Update Latency": 211.5}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 199969.3, "Average Read Latency": 115.7, "Median Read Latency": 94.9, "Tail Read Latency": 186.9, "Average Update Latency": 120.3, "Median Update Latency": 97.8, "Tail Update Latency": 189.4}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 100034.6, "Average Read Latency": 103.2, "Median Read Latency": 91.9, "Tail Read Latency": 138.7, "Average Update Latency": 108.7, "Median Update Latency": 95.4, "Tail Update Latency": 147.7}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 199945.3, "Average Read Latency": 87.8, "Median Read Latency": 84.9, "Tail Read Latency": 134.9, "Average Update Latency": 90.9, "Median Update Latency": 87.7, "Tail Update Latency": 138.8}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 399972.0, "Average Read Latency": 117.5, "Median Read Latency": 103.5, "Tail Read Latency": 293.4, "Average Update Latency": 120.2, "Median Update Latency": 106.2, "Tail Update Latency": 295.3}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 486056.3, "Average Read Latency": 21377.1, "Median Read Latency": 12933.9, "Tail Read Latency": 255477.6, "Average Update Latency": 21826.3, "Median Update Latency": 12927.1, "Tail Update Latency": 257490.9}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300002.5, "Average Read Latency": 129.0, "Median Read Latency": 98.8, "Tail Read Latency": 263.6, "Average Update Latency": 137.6, "Median Update Latency": 101.2, "Tail Update Latency": 271.9}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 300082.5, "Average Read Latency": 153.7, "Median Read Latency": 106.7, "Tail Read Latency": 350.2, "Average Update Latency": 163.0, "Median Update Latency": 109.3, "Tail Update Latency": 351.9}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 594275.9, "Average Read Latency": 22892.7, "Median Read Latency": 13701.4, "Tail Read Latency": 261663.9, "Average Update Latency": 22694.0, "Median Update Latency": 13732.9, "Tail Update Latency": 255128.6}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 300047.0, "Average Read Latency": 111.8, "Median Read Latency": 98.3, "Tail Read Latency": 249.1, "Average Update Latency": 116.4, "Median Update Latency": 102.1, "Tail Update Latency": 250.5}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 299976.7, "Average Read Latency": 102.0, "Median Read Latency": 94.9, "Tail Read Latency": 193.8, "Average Update Latency": 105.3, "Median Update Latency": 98.0, "Tail Update Latency": 198.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 100045.7, "Average Read Latency": 87.6, "Median Read Latency": 85.4, "Tail Read Latency": 127.3, "Average Update Latency": 91.7, "Median Update Latency": 89.6, "Tail Update Latency": 132.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 200003.9, "Average Read Latency": 109.3, "Median Read Latency": 95.5, "Tail Read Latency": 210.0, "Average Update Latency": 112.9, "Median Update Latency": 100.0, "Tail Update Latency": 218.9}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 299921.4, "Average Read Latency": 104.1, "Median Read Latency": 96.2, "Tail Read Latency": 196.0, "Average Update Latency": 107.8, "Median Update Latency": 99.4, "Tail Update Latency": 199.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 100047.1, "Average Read Latency": 101.2, "Median Read Latency": 93.4, "Tail Read Latency": 162.0, "Average Update Latency": 104.6, "Median Update Latency": 98.2, "Tail Update Latency": 168.9}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 570570.6, "Average Read Latency": 14030.7, "Median Read Latency": 13237.9, "Tail Read Latency": 27246.9, "Average Update Latency": 14387.5, "Median Update Latency": 13244.1, "Tail Update Latency": 28345.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 493816.5, "Average Read Latency": 25268.6, "Median Read Latency": 14653.7, "Tail Read Latency": 300771.2, "Average Update Latency": 26730.7, "Median Update Latency": 14778.1, "Tail Update Latency": 326570.8}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 485011.3, "Average Read Latency": 22000.6, "Median Read Latency": 11466.1, "Tail Read Latency": 258058.6, "Average Update Latency": 22650.8, "Median Update Latency": 11474.0, "Tail Update Latency": 264052.5}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 299981.4, "Average Read Latency": 165.4, "Median Read Latency": 109.5, "Tail Read Latency": 495.1, "Average Update Latency": 190.3, "Median Update Latency": 111.6, "Tail Update Latency": 623.0}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 100015.0, "Average Read Latency": 106.4, "Median Read Latency": 93.1, "Tail Read Latency": 145.6, "Average Update Latency": 112.9, "Median Update Latency": 96.8, "Tail Update Latency": 152.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 200041.6, "Average Read Latency": 105.4, "Median Read Latency": 95.3, "Tail Read Latency": 207.1, "Average Update Latency": 113.2, "Median Update Latency": 99.5, "Tail Update Latency": 209.9}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499893.5, "Average Read Latency": 6347.3, "Median Read Latency": 347.4, "Tail Read Latency": 13126.2, "Average Update Latency": 6369.0, "Median Update Latency": 357.3, "Tail Update Latency": 13781.3}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 400047.4, "Average Read Latency": 450.8, "Median Read Latency": 126.7, "Tail Read Latency": 8106.7, "Average Update Latency": 532.1, "Median Update Latency": 128.6, "Tail Update Latency": 9634.5}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 512362.5, "Average Read Latency": 27676.2, "Median Read Latency": 17630.0, "Tail Read Latency": 278659.3, "Average Update Latency": 28361.2, "Median Update Latency": 17608.4, "Tail Update Latency": 286483.2}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 569170.3, "Average Read Latency": 19447.2, "Median Read Latency": 7762.3, "Tail Read Latency": 437259.1, "Average Update Latency": 18851.3, "Median Update Latency": 7813.3, "Tail Update Latency": 431699.3}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 100014.3, "Average Read Latency": 101.8, "Median Read Latency": 92.5, "Tail Read Latency": 157.8, "Average Update Latency": 104.9, "Median Update Latency": 97.6, "Tail Update Latency": 165.6}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 551102.3, "Average Read Latency": 14430.4, "Median Read Latency": 13774.5, "Tail Read Latency": 26837.3, "Average Update Latency": 14542.5, "Median Update Latency": 13778.8, "Tail Update Latency": 28129.9}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499540.6, "Average Read Latency": 8499.5, "Median Read Latency": 1859.1, "Tail Read Latency": 223170.2, "Average Update Latency": 8393.2, "Median Update Latency": 1594.4, "Tail Update Latency": 222616.6}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 199952.9, "Average Read Latency": 88.4, "Median Read Latency": 85.3, "Tail Read Latency": 138.6, "Average Update Latency": 92.1, "Median Update Latency": 88.4, "Tail Update Latency": 140.8}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 520288.5, "Average Read Latency": 28796.7, "Median Read Latency": 19111.3, "Tail Read Latency": 297488.9, "Average Update Latency": 28976.1, "Median Update Latency": 19000.9, "Tail Update Latency": 306675.0}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499992.6, "Average Read Latency": 6156.6, "Median Read Latency": 407.6, "Tail Read Latency": 12525.6, "Average Update Latency": 6065.7, "Median Update Latency": 345.1, "Tail Update Latency": 12521.8}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 200000.1, "Average Read Latency": 108.4, "Median Read Latency": 95.5, "Tail Read Latency": 196.7, "Average Update Latency": 110.0, "Median Update Latency": 98.5, "Tail Update Latency": 200.0}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 592751.6, "Average Read Latency": 20286.1, "Median Read Latency": 13225.2, "Tail Read Latency": 245885.8, "Average Update Latency": 20255.0, "Median Update Latency": 13219.6, "Tail Update Latency": 245951.4}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 399993.9, "Average Read Latency": 369.9, "Median Read Latency": 128.1, "Tail Read Latency": 6232.4, "Average Update Latency": 435.6, "Median Update Latency": 129.8, "Tail Update Latency": 7535.5}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 484064.0, "Average Read Latency": 23124.6, "Median Read Latency": 13119.2, "Tail Read Latency": 260497.5, "Average Update Latency": 23439.8, "Median Update Latency": 13167.0, "Tail Update Latency": 262875.9}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499968.1, "Average Read Latency": 6378.5, "Median Read Latency": 332.1, "Tail Read Latency": 13344.6, "Average Update Latency": 6386.9, "Median Update Latency": 411.7, "Tail Update Latency": 13850.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 299992.5, "Average Read Latency": 102.8, "Median Read Latency": 96.3, "Tail Read Latency": 193.1, "Average Update Latency": 106.1, "Median Update Latency": 99.8, "Tail Update Latency": 197.0}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 400002.7, "Average Read Latency": 117.0, "Median Read Latency": 102.9, "Tail Read Latency": 299.8, "Average Update Latency": 119.8, "Median Update Latency": 105.4, "Tail Update Latency": 302.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 564378.9, "Average Read Latency": 13774.2, "Median Read Latency": 13374.4, "Tail Read Latency": 25614.7, "Average Update Latency": 13871.7, "Median Update Latency": 13383.5, "Tail Update Latency": 26303.0}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 300003.5, "Average Read Latency": 125.4, "Median Read Latency": 106.9, "Tail Read Latency": 308.1, "Average Update Latency": 128.5, "Median Update Latency": 111.4, "Tail Update Latency": 312.0}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 100043.1, "Average Read Latency": 90.1, "Median Read Latency": 87.0, "Tail Read Latency": 136.1, "Average Update Latency": 94.7, "Median Update Latency": 92.1, "Tail Update Latency": 142.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499966.1, "Average Read Latency": 5862.8, "Median Read Latency": 352.4, "Tail Read Latency": 12499.9, "Average Update Latency": 5872.8, "Median Update Latency": 371.7, "Tail Update Latency": 12503.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 507346.1, "Average Read Latency": 24107.9, "Median Read Latency": 13830.2, "Tail Read Latency": 282661.5, "Average Update Latency": 25127.0, "Median Update Latency": 13835.3, "Tail Update Latency": 308535.5}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 200059.0, "Average Read Latency": 100.2, "Median Read Latency": 94.3, "Tail Read Latency": 180.8, "Average Update Latency": 104.3, "Median Update Latency": 97.3, "Tail Update Latency": 183.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 515676.7, "Average Read Latency": 29490.8, "Median Read Latency": 19678.2, "Tail Read Latency": 292983.6, "Average Update Latency": 30237.1, "Median Update Latency": 19813.7, "Tail Update Latency": 310042.2}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 400043.0, "Average Read Latency": 128.4, "Median Read Latency": 105.0, "Tail Read Latency": 476.1, "Average Update Latency": 131.0, "Median Update Latency": 107.5, "Tail Update Latency": 476.1}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 299975.8, "Average Read Latency": 111.8, "Median Read Latency": 98.1, "Tail Read Latency": 247.4, "Average Update Latency": 116.3, "Median Update Latency": 101.7, "Tail Update Latency": 249.3}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 561921.7, "Average Read Latency": 14306.7, "Median Read Latency": 13495.3, "Tail Read Latency": 28280.7, "Average Update Latency": 14539.7, "Median Update Latency": 13506.1, "Tail Update Latency": 29319.1}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 564024.4, "Average Read Latency": 14279.4, "Median Read Latency": 13302.1, "Tail Read Latency": 28546.9, "Average Update Latency": 14734.0, "Median Update Latency": 13319.3, "Tail Update Latency": 30187.3}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 508933.2, "Average Read Latency": 29120.6, "Median Read Latency": 16405.2, "Tail Read Latency": 346163.2, "Average Update Latency": 29549.3, "Median Update Latency": 16502.6, "Tail Update Latency": 345197.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 299983.7, "Average Read Latency": 112.7, "Median Read Latency": 98.1, "Tail Read Latency": 248.5, "Average Update Latency": 116.4, "Median Update Latency": 101.4, "Tail Update Latency": 254.4}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 550265.5, "Average Read Latency": 14409.3, "Median Read Latency": 13794.4, "Tail Read Latency": 26970.3, "Average Update Latency": 14479.2, "Median Update Latency": 13796.3, "Tail Update Latency": 27823.6}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 503471.9, "Average Read Latency": 25890.8, "Median Read Latency": 14802.7, "Tail Read Latency": 303721.5, "Average Update Latency": 26479.1, "Median Update Latency": 14866.9, "Tail Update Latency": 312749.4}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 300011.1, "Average Read Latency": 102.2, "Median Read Latency": 95.3, "Tail Read Latency": 194.3, "Average Update Latency": 105.5, "Median Update Latency": 98.6, "Tail Update Latency": 197.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 300047.0, "Average Read Latency": 113.7, "Median Read Latency": 99.4, "Tail Read Latency": 253.1, "Average Update Latency": 116.1, "Median Update Latency": 103.1, "Tail Update Latency": 259.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 537651.8, "Average Read Latency": 14392.2, "Median Read Latency": 14165.9, "Tail Read Latency": 26447.1, "Average Update Latency": 14455.3, "Median Update Latency": 14170.7, "Tail Update Latency": 27485.0}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 560468.6, "Average Read Latency": 14153.4, "Median Read Latency": 13407.6, "Tail Read Latency": 27526.1, "Average Update Latency": 14360.9, "Median Update Latency": 13420.9, "Tail Update Latency": 28171.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499550.8, "Average Read Latency": 8538.5, "Median Read Latency": 1829.5, "Tail Read Latency": 223871.0, "Average Update Latency": 8887.4, "Median Update Latency": 1897.7, "Tail Update Latency": 224882.5}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 99961.1, "Average Read Latency": 101.6, "Median Read Latency": 93.3, "Tail Read Latency": 162.3, "Average Update Latency": 106.2, "Median Update Latency": 98.9, "Tail Update Latency": 172.2}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 400000.1, "Average Read Latency": 458.4, "Median Read Latency": 127.8, "Tail Read Latency": 8557.6, "Average Update Latency": 537.5, "Median Update Latency": 129.7, "Tail Update Latency": 9858.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 200036.1, "Average Read Latency": 88.4, "Median Read Latency": 85.4, "Tail Read Latency": 136.8, "Average Update Latency": 91.5, "Median Update Latency": 88.3, "Tail Update Latency": 140.8}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 587380.2, "Average Read Latency": 23632.5, "Median Read Latency": 14171.9, "Tail Read Latency": 256598.4, "Average Update Latency": 23493.7, "Median Update Latency": 14203.0, "Tail Update Latency": 254234.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 499762.2, "Average Read Latency": 5892.1, "Median Read Latency": 291.6, "Tail Read Latency": 12506.1, "Average Update Latency": 5962.9, "Median Update Latency": 290.9, "Tail Update Latency": 12518.2}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 485620.9, "Average Read Latency": 22997.3, "Median Read Latency": 12102.1, "Tail Read Latency": 262548.0, "Average Update Latency": 22651.6, "Median Update Latency": 12141.4, "Tail Update Latency": 261386.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 100033.9, "Average Read Latency": 101.4, "Median Read Latency": 93.1, "Tail Read Latency": 164.0, "Average Update Latency": 105.6, "Median Update Latency": 97.7, "Tail Update Latency": 172.0}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 300060.7, "Average Read Latency": 126.4, "Median Read Latency": 106.7, "Tail Read Latency": 303.8, "Average Update Latency": 129.0, "Median Update Latency": 111.3, "Tail Update Latency": 311.2}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 100040.1, "Average Read Latency": 103.7, "Median Read Latency": 93.1, "Tail Read Latency": 147.3, "Average Update Latency": 105.3, "Median Update Latency": 96.6, "Tail Update Latency": 151.9}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 300017.8, "Average Read Latency": 101.1, "Median Read Latency": 93.8, "Tail Read Latency": 187.9, "Average Update Latency": 104.2, "Median Update Latency": 96.7, "Tail Update Latency": 191.3}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 553397.4, "Average Read Latency": 14325.4, "Median Read Latency": 13708.4, "Tail Read Latency": 27859.2, "Average Update Latency": 14680.0, "Median Update Latency": 13729.3, "Tail Update Latency": 28904.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 558733.5, "Average Read Latency": 14322.1, "Median Read Latency": 13502.2, "Tail Read Latency": 27194.5, "Average Update Latency": 14541.3, "Median Update Latency": 13505.2, "Tail Update Latency": 28410.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 200033.3, "Average Read Latency": 108.9, "Median Read Latency": 95.8, "Tail Read Latency": 207.3, "Average Update Latency": 112.1, "Median Update Latency": 100.2, "Tail Update Latency": 217.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 510281.0, "Average Read Latency": 24324.2, "Median Read Latency": 15025.3, "Tail Read Latency": 271127.6, "Average Update Latency": 24983.8, "Median Update Latency": 15094.7, "Tail Update Latency": 282187.9}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 483140.2, "Average Read Latency": 25499.0, "Median Read Latency": 12615.8, "Tail Read Latency": 303771.4, "Average Update Latency": 27052.9, "Median Update Latency": 12681.1, "Tail Update Latency": 339357.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 400048.6, "Average Read Latency": 143.3, "Median Read Latency": 106.3, "Tail Read Latency": 631.4, "Average Update Latency": 146.4, "Median Update Latency": 109.0, "Tail Update Latency": 625.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 563527.6, "Average Read Latency": 14092.7, "Median Read Latency": 13395.0, "Tail Read Latency": 27227.2, "Average Update Latency": 14348.7, "Median Update Latency": 13397.1, "Tail Update Latency": 28374.3}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499541.1, "Average Read Latency": 7656.8, "Median Read Latency": 1574.4, "Tail Read Latency": 220323.9, "Average Update Latency": 7535.3, "Median Update Latency": 1544.1, "Tail Update Latency": 219741.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 300013.1, "Average Read Latency": 102.4, "Median Read Latency": 95.2, "Tail Read Latency": 191.4, "Average Update Latency": 105.6, "Median Update Latency": 98.3, "Tail Update Latency": 196.4}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 506538.3, "Average Read Latency": 24616.7, "Median Read Latency": 15025.0, "Tail Read Latency": 281336.1, "Average Update Latency": 25144.1, "Median Update Latency": 15032.1, "Tail Update Latency": 286243.2}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 512670.7, "Average Read Latency": 28382.5, "Median Read Latency": 19939.2, "Tail Read Latency": 279111.2, "Average Update Latency": 28963.7, "Median Update Latency": 20179.8, "Tail Update Latency": 283400.4}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 300030.1, "Average Read Latency": 111.0, "Median Read Latency": 97.5, "Tail Read Latency": 248.4, "Average Update Latency": 114.0, "Median Update Latency": 101.1, "Tail Update Latency": 248.1}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 514244.0, "Average Read Latency": 24082.8, "Median Read Latency": 14803.8, "Tail Read Latency": 270823.2, "Average Update Latency": 24296.0, "Median Update Latency": 14773.2, "Tail Update Latency": 271758.6}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 100015.7, "Average Read Latency": 104.4, "Median Read Latency": 93.6, "Tail Read Latency": 148.9, "Average Update Latency": 108.6, "Median Update Latency": 97.5, "Tail Update Latency": 154.9}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499972.7, "Average Read Latency": 5704.1, "Median Read Latency": 318.3, "Tail Read Latency": 12480.3, "Average Update Latency": 5746.6, "Median Update Latency": 311.9, "Tail Update Latency": 12487.4}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 199988.3, "Average Read Latency": 114.3, "Median Read Latency": 96.7, "Tail Read Latency": 205.0, "Average Update Latency": 116.3, "Median Update Latency": 99.8, "Tail Update Latency": 207.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 570453.3, "Average Read Latency": 14554.1, "Median Read Latency": 13210.9, "Tail Read Latency": 28461.3, "Average Update Latency": 14628.4, "Median Update Latency": 13218.6, "Tail Update Latency": 28999.7}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 399978.3, "Average Read Latency": 163.5, "Median Read Latency": 120.2, "Tail Read Latency": 523.0, "Average Update Latency": 171.0, "Median Update Latency": 124.2, "Tail Update Latency": 535.0}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 199985.6, "Average Read Latency": 119.3, "Median Read Latency": 97.8, "Tail Read Latency": 214.3, "Average Update Latency": 123.1, "Median Update Latency": 100.8, "Tail Update Latency": 213.5}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 200019.0, "Average Read Latency": 89.9, "Median Read Latency": 86.6, "Tail Read Latency": 139.9, "Average Update Latency": 92.9, "Median Update Latency": 89.9, "Tail Update Latency": 143.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 590866.8, "Average Read Latency": 21749.7, "Median Read Latency": 13931.3, "Tail Read Latency": 250652.4, "Average Update Latency": 21316.2, "Median Update Latency": 13911.3, "Tail Update Latency": 248216.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 399961.4, "Average Read Latency": 118.1, "Median Read Latency": 103.7, "Tail Read Latency": 310.8, "Average Update Latency": 120.8, "Median Update Latency": 106.0, "Tail Update Latency": 312.6}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 511430.7, "Average Read Latency": 30017.2, "Median Read Latency": 19526.3, "Tail Read Latency": 310266.4, "Average Update Latency": 30387.7, "Median Update Latency": 19484.1, "Tail Update Latency": 314766.2}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 99981.1, "Average Read Latency": 99.6, "Median Read Latency": 92.9, "Tail Read Latency": 155.9, "Average Update Latency": 102.5, "Median Update Latency": 97.7, "Tail Update Latency": 163.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 399941.0, "Average Read Latency": 359.5, "Median Read Latency": 123.5, "Tail Read Latency": 6175.2, "Average Update Latency": 409.1, "Median Update Latency": 125.6, "Tail Update Latency": 7070.8}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 400073.1, "Average Read Latency": 173.4, "Median Read Latency": 114.7, "Tail Read Latency": 809.0, "Average Update Latency": 176.3, "Median Update Latency": 117.2, "Tail Update Latency": 817.3}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 551617.8, "Average Read Latency": 14297.0, "Median Read Latency": 13556.3, "Tail Read Latency": 27039.9, "Average Update Latency": 14496.8, "Median Update Latency": 13557.8, "Tail Update Latency": 28824.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 400038.2, "Average Read Latency": 168.7, "Median Read Latency": 121.6, "Tail Read Latency": 544.8, "Average Update Latency": 171.7, "Median Update Latency": 125.6, "Tail Update Latency": 541.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 481761.8, "Average Read Latency": 22738.9, "Median Read Latency": 11861.3, "Tail Read Latency": 261569.5, "Average Update Latency": 23177.7, "Median Update Latency": 11918.9, "Tail Update Latency": 263748.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 484351.1, "Average Read Latency": 22375.6, "Median Read Latency": 11820.4, "Tail Read Latency": 259705.3, "Average Update Latency": 22637.1, "Median Update Latency": 11898.4, "Tail Update Latency": 261748.0}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 299957.2, "Average Read Latency": 101.5, "Median Read Latency": 94.9, "Tail Read Latency": 189.4, "Average Update Latency": 104.2, "Median Update Latency": 98.0, "Tail Update Latency": 195.0}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 200041.4, "Average Read Latency": 106.1, "Median Read Latency": 94.7, "Tail Read Latency": 184.0, "Average Update Latency": 109.2, "Median Update Latency": 97.8, "Tail Update Latency": 186.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 486044.4, "Average Read Latency": 22040.9, "Median Read Latency": 11189.6, "Tail Read Latency": 262576.8, "Average Update Latency": 22394.1, "Median Update Latency": 11223.7, "Tail Update Latency": 267872.2}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 300032.7, "Average Read Latency": 102.1, "Median Read Latency": 95.4, "Tail Read Latency": 195.2, "Average Update Latency": 105.1, "Median Update Latency": 98.3, "Tail Update Latency": 199.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 486329.8, "Average Read Latency": 23858.0, "Median Read Latency": 13190.3, "Tail Read Latency": 261170.6, "Average Update Latency": 24200.7, "Median Update Latency": 13237.3, "Tail Update Latency": 262248.2}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 485749.9, "Average Read Latency": 20668.7, "Median Read Latency": 12222.0, "Tail Read Latency": 252794.0, "Average Update Latency": 21019.7, "Median Update Latency": 12205.5, "Tail Update Latency": 255062.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 506873.6, "Average Read Latency": 25153.9, "Median Read Latency": 15985.9, "Tail Read Latency": 267867.2, "Average Update Latency": 25703.0, "Median Update Latency": 16060.3, "Tail Update Latency": 271580.3}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 99996.3, "Average Read Latency": 99.4, "Median Read Latency": 92.4, "Tail Read Latency": 139.6, "Average Update Latency": 102.5, "Median Update Latency": 95.9, "Tail Update Latency": 147.1}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 300073.5, "Average Read Latency": 144.4, "Median Read Latency": 99.4, "Tail Read Latency": 301.4, "Average Update Latency": 165.4, "Median Update Latency": 101.7, "Tail Update Latency": 309.9}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499612.2, "Average Read Latency": 8279.2, "Median Read Latency": 2358.0, "Tail Read Latency": 222315.0, "Average Update Latency": 8334.6, "Median Update Latency": 2132.7, "Tail Update Latency": 221777.3}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 558278.9, "Average Read Latency": 14579.2, "Median Read Latency": 13518.4, "Tail Read Latency": 28398.6, "Average Update Latency": 14928.7, "Median Update Latency": 13525.7, "Tail Update Latency": 29541.4}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 484376.6, "Average Read Latency": 22365.4, "Median Read Latency": 12608.6, "Tail Read Latency": 259682.9, "Average Update Latency": 23063.5, "Median Update Latency": 12617.0, "Tail Update Latency": 264893.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 592514.7, "Average Read Latency": 19595.9, "Median Read Latency": 12865.6, "Tail Read Latency": 243740.0, "Average Update Latency": 19551.0, "Median Update Latency": 12909.3, "Tail Update Latency": 242467.7}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 200025.3, "Average Read Latency": 88.9, "Median Read Latency": 85.7, "Tail Read Latency": 139.9, "Average Update Latency": 92.1, "Median Update Latency": 88.8, "Tail Update Latency": 145.3}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 300055.7, "Average Read Latency": 103.6, "Median Read Latency": 96.2, "Tail Read Latency": 194.3, "Average Update Latency": 107.7, "Median Update Latency": 99.8, "Tail Update Latency": 198.6}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 199947.7, "Average Read Latency": 105.0, "Median Read Latency": 95.5, "Tail Read Latency": 212.5, "Average Update Latency": 109.9, "Median Update Latency": 99.8, "Tail Update Latency": 218.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 300048.6, "Average Read Latency": 101.8, "Median Read Latency": 95.1, "Tail Read Latency": 191.9, "Average Update Latency": 104.8, "Median Update Latency": 98.3, "Tail Update Latency": 195.5}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 509798.7, "Average Read Latency": 23461.9, "Median Read Latency": 14122.5, "Tail Read Latency": 268198.8, "Average Update Latency": 24080.5, "Median Update Latency": 14177.9, "Tail Update Latency": 279036.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 300038.3, "Average Read Latency": 110.1, "Median Read Latency": 97.7, "Tail Read Latency": 249.5, "Average Update Latency": 114.5, "Median Update Latency": 101.3, "Tail Update Latency": 253.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 200045.1, "Average Read Latency": 112.6, "Median Read Latency": 97.3, "Tail Read Latency": 213.4, "Average Update Latency": 115.5, "Median Update Latency": 100.5, "Tail Update Latency": 216.1}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 400019.3, "Average Read Latency": 161.9, "Median Read Latency": 114.8, "Tail Read Latency": 624.1, "Average Update Latency": 165.1, "Median Update Latency": 117.2, "Tail Update Latency": 631.3}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 99981.7, "Average Read Latency": 89.8, "Median Read Latency": 86.9, "Tail Read Latency": 136.0, "Average Update Latency": 94.8, "Median Update Latency": 92.1, "Tail Update Latency": 142.0}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 512605.1, "Average Read Latency": 24348.6, "Median Read Latency": 14409.7, "Tail Read Latency": 275227.7, "Average Update Latency": 24555.3, "Median Update Latency": 14413.4, "Tail Update Latency": 276517.3}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499908.1, "Average Read Latency": 6433.4, "Median Read Latency": 550.5, "Tail Read Latency": 12982.6, "Average Update Latency": 6337.8, "Median Update Latency": 494.6, "Tail Update Latency": 12852.8}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 595888.1, "Average Read Latency": 22600.2, "Median Read Latency": 13007.6, "Tail Read Latency": 255586.3, "Average Update Latency": 21885.7, "Median Update Latency": 12983.9, "Tail Update Latency": 252555.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 572444.8, "Average Read Latency": 15696.7, "Median Read Latency": 13157.4, "Tail Read Latency": 31105.0, "Average Update Latency": 16424.0, "Median Update Latency": 13183.7, "Tail Update Latency": 40593.1}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 100028.2, "Average Read Latency": 102.0, "Median Read Latency": 92.7, "Tail Read Latency": 140.5, "Average Update Latency": 105.8, "Median Update Latency": 96.2, "Tail Update Latency": 147.2}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 513453.0, "Average Read Latency": 28377.1, "Median Read Latency": 18549.1, "Tail Read Latency": 283603.9, "Average Update Latency": 28880.3, "Median Update Latency": 18577.0, "Tail Update Latency": 287334.4}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 99995.6, "Average Read Latency": 101.9, "Median Read Latency": 92.9, "Tail Read Latency": 145.9, "Average Update Latency": 107.5, "Median Update Latency": 96.5, "Tail Update Latency": 151.2}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 100002.7, "Average Read Latency": 98.5, "Median Read Latency": 92.9, "Tail Read Latency": 158.7, "Average Update Latency": 106.6, "Median Update Latency": 97.3, "Tail Update Latency": 169.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 552458.6, "Average Read Latency": 14675.2, "Median Read Latency": 13755.0, "Tail Read Latency": 27770.5, "Average Update Latency": 14815.2, "Median Update Latency": 13751.5, "Tail Update Latency": 28508.3}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 99997.9, "Average Read Latency": 99.4, "Median Read Latency": 92.9, "Tail Read Latency": 156.9, "Average Update Latency": 107.3, "Median Update Latency": 97.6, "Tail Update Latency": 166.4}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 200023.8, "Average Read Latency": 108.4, "Median Read Latency": 93.9, "Tail Read Latency": 182.8, "Average Update Latency": 112.9, "Median Update Latency": 96.7, "Tail Update Latency": 186.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 399964.1, "Average Read Latency": 168.6, "Median Read Latency": 120.0, "Tail Read Latency": 537.2, "Average Update Latency": 169.7, "Median Update Latency": 124.1, "Tail Update Latency": 529.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 572931.3, "Average Read Latency": 10718.9, "Median Read Latency": 7143.6, "Tail Read Latency": 230879.7, "Average Update Latency": 10648.1, "Median Update Latency": 7141.4, "Tail Update Latency": 230681.5}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 200028.5, "Average Read Latency": 89.1, "Median Read Latency": 85.6, "Tail Read Latency": 139.1, "Average Update Latency": 92.1, "Median Update Latency": 88.6, "Tail Update Latency": 142.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 571213.0, "Average Read Latency": 14088.8, "Median Read Latency": 13242.5, "Tail Read Latency": 27479.9, "Average Update Latency": 14511.2, "Median Update Latency": 13247.0, "Tail Update Latency": 28504.9}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 509711.2, "Average Read Latency": 23939.1, "Median Read Latency": 14768.4, "Tail Read Latency": 262676.0, "Average Update Latency": 24472.0, "Median Update Latency": 14814.3, "Tail Update Latency": 265422.5}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 566241.8, "Average Read Latency": 15442.4, "Median Read Latency": 13286.7, "Tail Read Latency": 29673.2, "Average Update Latency": 16004.3, "Median Update Latency": 13308.2, "Tail Update Latency": 32918.9}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 299995.5, "Average Read Latency": 100.5, "Median Read Latency": 94.2, "Tail Read Latency": 187.0, "Average Update Latency": 103.8, "Median Update Latency": 97.3, "Tail Update Latency": 189.1}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 100031.9, "Average Read Latency": 98.2, "Median Read Latency": 92.7, "Tail Read Latency": 158.5, "Average Update Latency": 102.5, "Median Update Latency": 97.7, "Tail Update Latency": 168.8}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 299953.8, "Average Read Latency": 140.8, "Median Read Latency": 100.2, "Tail Read Latency": 310.4, "Average Update Latency": 160.1, "Median Update Latency": 102.1, "Tail Update Latency": 299.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 486761.0, "Average Read Latency": 23585.7, "Median Read Latency": 14671.7, "Tail Read Latency": 258405.9, "Average Update Latency": 24402.1, "Median Update Latency": 14744.8, "Tail Update Latency": 259901.8}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300002.5, "Average Read Latency": 134.9, "Median Read Latency": 99.2, "Tail Read Latency": 276.9, "Average Update Latency": 154.9, "Median Update Latency": 101.6, "Tail Update Latency": 312.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 399969.2, "Average Read Latency": 490.4, "Median Read Latency": 124.7, "Tail Read Latency": 8767.3, "Average Update Latency": 614.5, "Median Update Latency": 126.3, "Tail Update Latency": 11646.8}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 399897.4, "Average Read Latency": 417.9, "Median Read Latency": 127.0, "Tail Read Latency": 7335.7, "Average Update Latency": 518.3, "Median Update Latency": 129.3, "Tail Update Latency": 9158.8}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 400045.8, "Average Read Latency": 117.8, "Median Read Latency": 103.6, "Tail Read Latency": 301.8, "Average Update Latency": 120.9, "Median Update Latency": 105.9, "Tail Update Latency": 302.4}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 400000.6, "Average Read Latency": 117.7, "Median Read Latency": 104.7, "Tail Read Latency": 293.5, "Average Update Latency": 120.8, "Median Update Latency": 107.6, "Tail Update Latency": 294.4}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 588898.7, "Average Read Latency": 23907.4, "Median Read Latency": 13853.7, "Tail Read Latency": 260269.2, "Average Update Latency": 23606.4, "Median Update Latency": 13850.8, "Tail Update Latency": 255121.2}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 519960.0, "Average Read Latency": 33908.7, "Median Read Latency": 25111.3, "Tail Read Latency": 288938.9, "Average Update Latency": 34653.1, "Median Update Latency": 25165.1, "Tail Update Latency": 303320.0}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 510239.8, "Average Read Latency": 27435.0, "Median Read Latency": 18684.9, "Tail Read Latency": 273848.9, "Average Update Latency": 28269.9, "Median Update Latency": 18679.4, "Tail Update Latency": 281229.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 400018.8, "Average Read Latency": 122.4, "Median Read Latency": 103.7, "Tail Read Latency": 372.1, "Average Update Latency": 124.7, "Median Update Latency": 106.3, "Tail Update Latency": 380.6}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 99971.2, "Average Read Latency": 101.5, "Median Read Latency": 92.7, "Tail Read Latency": 143.1, "Average Update Latency": 107.5, "Median Update Latency": 96.0, "Tail Update Latency": 149.7}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 300016.1, "Average Read Latency": 136.0, "Median Read Latency": 98.8, "Tail Read Latency": 277.1, "Average Update Latency": 150.5, "Median Update Latency": 101.2, "Tail Update Latency": 282.5}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 300024.0, "Average Read Latency": 103.0, "Median Read Latency": 95.9, "Tail Read Latency": 197.3, "Average Update Latency": 106.0, "Median Update Latency": 99.1, "Tail Update Latency": 201.7}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499899.2, "Average Read Latency": 6391.9, "Median Read Latency": 294.7, "Tail Read Latency": 12508.1, "Average Update Latency": 6286.5, "Median Update Latency": 347.0, "Tail Update Latency": 12508.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499626.6, "Average Read Latency": 7801.9, "Median Read Latency": 1515.8, "Tail Read Latency": 221930.5, "Average Update Latency": 7909.8, "Median Update Latency": 1736.8, "Tail Update Latency": 222236.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 100026.6, "Average Read Latency": 89.0, "Median Read Latency": 86.1, "Tail Read Latency": 130.4, "Average Update Latency": 92.9, "Median Update Latency": 90.5, "Tail Update Latency": 138.3}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 199989.1, "Average Read Latency": 88.3, "Median Read Latency": 85.0, "Tail Read Latency": 137.7, "Average Update Latency": 91.5, "Median Update Latency": 87.9, "Tail Update Latency": 141.5}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499841.0, "Average Read Latency": 8630.0, "Median Read Latency": 2192.8, "Tail Read Latency": 223485.5, "Average Update Latency": 8562.8, "Median Update Latency": 2496.9, "Tail Update Latency": 222881.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200016.9, "Average Read Latency": 88.8, "Median Read Latency": 85.3, "Tail Read Latency": 138.6, "Average Update Latency": 92.3, "Median Update Latency": 88.4, "Tail Update Latency": 141.5}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 99994.9, "Average Read Latency": 88.7, "Median Read Latency": 86.0, "Tail Read Latency": 130.6, "Average Update Latency": 92.7, "Median Update Latency": 90.5, "Tail Update Latency": 137.0}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 200024.5, "Average Read Latency": 105.4, "Median Read Latency": 95.1, "Tail Read Latency": 206.5, "Average Update Latency": 109.9, "Median Update Latency": 99.5, "Tail Update Latency": 213.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499931.8, "Average Read Latency": 5487.1, "Median Read Latency": 292.6, "Tail Read Latency": 12450.2, "Average Update Latency": 5390.7, "Median Update Latency": 310.0, "Tail Update Latency": 12445.3}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 400023.4, "Average Read Latency": 168.4, "Median Read Latency": 121.2, "Tail Read Latency": 544.5, "Average Update Latency": 172.2, "Median Update Latency": 125.3, "Tail Update Latency": 548.5}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 400062.1, "Average Read Latency": 167.9, "Median Read Latency": 121.3, "Tail Read Latency": 550.2, "Average Update Latency": 173.6, "Median Update Latency": 125.3, "Tail Update Latency": 558.0}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 200041.2, "Average Read Latency": 114.1, "Median Read Latency": 98.7, "Tail Read Latency": 214.7, "Average Update Latency": 119.7, "Median Update Latency": 101.9, "Tail Update Latency": 220.8}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 503900.3, "Average Read Latency": 25421.2, "Median Read Latency": 14835.6, "Tail Read Latency": 277772.9, "Average Update Latency": 26605.0, "Median Update Latency": 14871.4, "Tail Update Latency": 292470.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 200014.6, "Average Read Latency": 105.5, "Median Read Latency": 94.7, "Tail Read Latency": 206.9, "Average Update Latency": 110.1, "Median Update Latency": 98.7, "Tail Update Latency": 207.5}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 199981.7, "Average Read Latency": 104.4, "Median Read Latency": 96.2, "Tail Read Latency": 208.6, "Average Update Latency": 108.6, "Median Update Latency": 100.6, "Tail Update Latency": 217.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499370.6, "Average Read Latency": 9474.9, "Median Read Latency": 2811.3, "Tail Read Latency": 226356.6, "Average Update Latency": 9552.9, "Median Update Latency": 2990.8, "Tail Update Latency": 226363.3}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 100049.6, "Average Read Latency": 88.2, "Median Read Latency": 85.5, "Tail Read Latency": 131.4, "Average Update Latency": 92.6, "Median Update Latency": 90.2, "Tail Update Latency": 138.3}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 566022.9, "Average Read Latency": 11863.5, "Median Read Latency": 7810.2, "Tail Read Latency": 233178.4, "Average Update Latency": 11883.6, "Median Update Latency": 7815.9, "Tail Update Latency": 233132.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 399881.0, "Average Read Latency": 121.0, "Median Read Latency": 103.0, "Tail Read Latency": 392.5, "Average Update Latency": 123.5, "Median Update Latency": 105.6, "Tail Update Latency": 391.5}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 508809.3, "Average Read Latency": 30822.8, "Median Read Latency": 20427.1, "Tail Read Latency": 292370.8, "Average Update Latency": 31250.3, "Median Update Latency": 20428.6, "Tail Update Latency": 301589.0}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100033.6, "Average Read Latency": 89.8, "Median Read Latency": 87.0, "Tail Read Latency": 134.4, "Average Update Latency": 94.1, "Median Update Latency": 92.0, "Tail Update Latency": 139.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 400073.6, "Average Read Latency": 119.2, "Median Read Latency": 104.1, "Tail Read Latency": 310.3, "Average Update Latency": 121.5, "Median Update Latency": 106.6, "Tail Update Latency": 311.1}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 100020.7, "Average Read Latency": 89.8, "Median Read Latency": 87.1, "Tail Read Latency": 133.8, "Average Update Latency": 94.3, "Median Update Latency": 92.1, "Tail Update Latency": 140.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 299993.6, "Average Read Latency": 147.8, "Median Read Latency": 106.0, "Tail Read Latency": 334.0, "Average Update Latency": 160.0, "Median Update Latency": 108.3, "Tail Update Latency": 346.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 486690.6, "Average Read Latency": 22485.6, "Median Read Latency": 12911.0, "Tail Read Latency": 259422.9, "Average Update Latency": 22544.2, "Median Update Latency": 12948.3, "Tail Update Latency": 259249.2}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 514481.9, "Average Read Latency": 26644.5, "Median Read Latency": 17372.3, "Tail Read Latency": 277884.0, "Average Update Latency": 27379.0, "Median Update Latency": 17427.5, "Tail Update Latency": 284359.3}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 564862.8, "Average Read Latency": 10391.8, "Median Read Latency": 7541.4, "Tail Read Latency": 230147.9, "Average Update Latency": 10448.3, "Median Update Latency": 7480.9, "Tail Update Latency": 230182.2}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 589974.7, "Average Read Latency": 21188.0, "Median Read Latency": 13326.6, "Tail Read Latency": 253120.1, "Average Update Latency": 20786.5, "Median Update Latency": 13285.1, "Tail Update Latency": 250894.9}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 100037.1, "Average Read Latency": 88.2, "Median Read Latency": 85.7, "Tail Read Latency": 127.9, "Average Update Latency": 92.4, "Median Update Latency": 90.3, "Tail Update Latency": 134.0}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 199967.4, "Average Read Latency": 108.8, "Median Read Latency": 95.1, "Tail Read Latency": 193.2, "Average Update Latency": 110.5, "Median Update Latency": 97.9, "Tail Update Latency": 196.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 100033.6, "Average Read Latency": 98.0, "Median Read Latency": 92.3, "Tail Read Latency": 155.8, "Average Update Latency": 105.5, "Median Update Latency": 97.1, "Tail Update Latency": 166.2}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 200012.6, "Average Read Latency": 104.7, "Median Read Latency": 94.4, "Tail Read Latency": 208.0, "Average Update Latency": 109.6, "Median Update Latency": 98.4, "Tail Update Latency": 207.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 571592.2, "Average Read Latency": 14089.1, "Median Read Latency": 13156.5, "Tail Read Latency": 27562.0, "Average Update Latency": 14210.8, "Median Update Latency": 13159.7, "Tail Update Latency": 28349.1}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 483746.8, "Average Read Latency": 20778.5, "Median Read Latency": 12834.7, "Tail Read Latency": 252742.2, "Average Update Latency": 21621.9, "Median Update Latency": 12914.1, "Tail Update Latency": 255892.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 400010.9, "Average Read Latency": 168.8, "Median Read Latency": 120.6, "Tail Read Latency": 535.4, "Average Update Latency": 172.8, "Median Update Latency": 124.7, "Tail Update Latency": 544.1}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 300035.3, "Average Read Latency": 137.8, "Median Read Latency": 99.0, "Tail Read Latency": 291.1, "Average Update Latency": 159.7, "Median Update Latency": 101.4, "Tail Update Latency": 310.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 399995.2, "Average Read Latency": 165.4, "Median Read Latency": 119.8, "Tail Read Latency": 522.7, "Average Update Latency": 167.6, "Median Update Latency": 123.8, "Tail Update Latency": 526.1}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 484745.5, "Average Read Latency": 22950.2, "Median Read Latency": 11985.3, "Tail Read Latency": 263281.6, "Average Update Latency": 23490.3, "Median Update Latency": 12064.4, "Tail Update Latency": 275949.8}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 400002.1, "Average Read Latency": 118.1, "Median Read Latency": 103.6, "Tail Read Latency": 313.6, "Average Update Latency": 121.7, "Median Update Latency": 106.3, "Tail Update Latency": 320.3}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 558106.9, "Average Read Latency": 14009.3, "Median Read Latency": 13364.1, "Tail Read Latency": 26457.5, "Average Update Latency": 14193.7, "Median Update Latency": 13370.1, "Tail Update Latency": 27486.9}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 200020.5, "Average Read Latency": 104.9, "Median Read Latency": 94.6, "Tail Read Latency": 203.7, "Average Update Latency": 108.6, "Median Update Latency": 98.7, "Tail Update Latency": 207.1}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 399939.5, "Average Read Latency": 130.4, "Median Read Latency": 104.9, "Tail Read Latency": 520.5, "Average Update Latency": 133.2, "Median Update Latency": 107.5, "Tail Update Latency": 526.7}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200027.1, "Average Read Latency": 87.7, "Median Read Latency": 84.7, "Tail Read Latency": 135.9, "Average Update Latency": 91.1, "Median Update Latency": 87.6, "Tail Update Latency": 139.3}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 299966.5, "Average Read Latency": 111.4, "Median Read Latency": 98.5, "Tail Read Latency": 247.1, "Average Update Latency": 112.8, "Median Update Latency": 102.0, "Tail Update Latency": 247.6}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 200090.4, "Average Read Latency": 88.9, "Median Read Latency": 85.9, "Tail Read Latency": 136.8, "Average Update Latency": 92.1, "Median Update Latency": 89.2, "Tail Update Latency": 140.2}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499354.2, "Average Read Latency": 9467.2, "Median Read Latency": 2164.0, "Tail Read Latency": 226863.7, "Average Update Latency": 9405.1, "Median Update Latency": 2690.7, "Tail Update Latency": 226503.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 570822.4, "Average Read Latency": 13726.8, "Median Read Latency": 13220.2, "Tail Read Latency": 25890.2, "Average Update Latency": 13767.3, "Median Update Latency": 13221.5, "Tail Update Latency": 26181.9}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 300032.4, "Average Read Latency": 102.4, "Median Read Latency": 94.9, "Tail Read Latency": 193.9, "Average Update Latency": 105.1, "Median Update Latency": 98.1, "Tail Update Latency": 198.1}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 400040.8, "Average Read Latency": 170.8, "Median Read Latency": 122.6, "Tail Read Latency": 549.2, "Average Update Latency": 172.6, "Median Update Latency": 126.4, "Tail Update Latency": 542.8}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 499897.8, "Average Read Latency": 5452.0, "Median Read Latency": 327.4, "Tail Read Latency": 12381.5, "Average Update Latency": 5469.0, "Median Update Latency": 335.2, "Tail Update Latency": 12384.4}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499853.1, "Average Read Latency": 9243.0, "Median Read Latency": 2290.5, "Tail Read Latency": 225530.1, "Average Update Latency": 9084.3, "Median Update Latency": 2207.9, "Tail Update Latency": 225070.4}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 508214.8, "Average Read Latency": 26289.6, "Median Read Latency": 15059.7, "Tail Read Latency": 308828.2, "Average Update Latency": 26545.2, "Median Update Latency": 15098.0, "Tail Update Latency": 310150.8}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 570148.3, "Average Read Latency": 17875.3, "Median Read Latency": 7593.7, "Tail Read Latency": 262670.6, "Average Update Latency": 18146.9, "Median Update Latency": 7636.8, "Tail Update Latency": 429710.8}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 199992.5, "Average Read Latency": 88.8, "Median Read Latency": 85.5, "Tail Read Latency": 137.8, "Average Update Latency": 91.9, "Median Update Latency": 88.8, "Tail Update Latency": 140.8}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 300003.4, "Average Read Latency": 102.1, "Median Read Latency": 95.4, "Tail Read Latency": 191.4, "Average Update Latency": 105.5, "Median Update Latency": 99.1, "Tail Update Latency": 197.3}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 99987.5, "Average Read Latency": 89.0, "Median Read Latency": 86.3, "Tail Read Latency": 134.1, "Average Update Latency": 94.0, "Median Update Latency": 91.4, "Tail Update Latency": 139.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 399943.7, "Average Read Latency": 169.2, "Median Read Latency": 121.1, "Tail Read Latency": 541.5, "Average Update Latency": 175.0, "Median Update Latency": 125.1, "Tail Update Latency": 552.5}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 400000.1, "Average Read Latency": 168.6, "Median Read Latency": 121.5, "Tail Read Latency": 529.2, "Average Update Latency": 171.2, "Median Update Latency": 125.4, "Tail Update Latency": 538.8}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 100006.0, "Average Read Latency": 99.7, "Median Read Latency": 92.5, "Tail Read Latency": 139.9, "Average Update Latency": 103.1, "Median Update Latency": 96.2, "Tail Update Latency": 147.0}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499638.3, "Average Read Latency": 8288.9, "Median Read Latency": 1707.9, "Tail Read Latency": 222611.1, "Average Update Latency": 8338.7, "Median Update Latency": 1796.7, "Tail Update Latency": 222489.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 100031.2, "Average Read Latency": 89.5, "Median Read Latency": 86.8, "Tail Read Latency": 135.8, "Average Update Latency": 94.2, "Median Update Latency": 91.7, "Tail Update Latency": 140.2}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499760.9, "Average Read Latency": 6143.4, "Median Read Latency": 296.7, "Tail Read Latency": 12607.6, "Average Update Latency": 6069.1, "Median Update Latency": 294.3, "Tail Update Latency": 12733.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 299977.8, "Average Read Latency": 134.1, "Median Read Latency": 99.5, "Tail Read Latency": 282.3, "Average Update Latency": 148.6, "Median Update Latency": 101.6, "Tail Update Latency": 281.1}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 566561.4, "Average Read Latency": 17041.2, "Median Read Latency": 7837.2, "Tail Read Latency": 240184.0, "Average Update Latency": 16964.1, "Median Update Latency": 7915.0, "Tail Update Latency": 240401.3}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 200052.4, "Average Read Latency": 104.6, "Median Read Latency": 96.8, "Tail Read Latency": 208.9, "Average Update Latency": 107.9, "Median Update Latency": 101.1, "Tail Update Latency": 213.2}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 399933.9, "Average Read Latency": 174.7, "Median Read Latency": 122.2, "Tail Read Latency": 563.4, "Average Update Latency": 176.0, "Median Update Latency": 126.5, "Tail Update Latency": 564.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 555895.1, "Average Read Latency": 14371.7, "Median Read Latency": 13831.0, "Tail Read Latency": 27385.6, "Average Update Latency": 14532.1, "Median Update Latency": 13840.3, "Tail Update Latency": 28390.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 399991.2, "Average Read Latency": 343.3, "Median Read Latency": 122.4, "Tail Read Latency": 5739.4, "Average Update Latency": 399.1, "Median Update Latency": 124.2, "Tail Update Latency": 6820.9}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 575405.6, "Average Read Latency": 14905.9, "Median Read Latency": 7301.0, "Tail Read Latency": 237071.3, "Average Update Latency": 15082.6, "Median Update Latency": 7360.7, "Tail Update Latency": 236770.9}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499488.8, "Average Read Latency": 8407.5, "Median Read Latency": 1875.2, "Tail Read Latency": 224186.3, "Average Update Latency": 8476.0, "Median Update Latency": 1975.3, "Tail Update Latency": 224107.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 300013.5, "Average Read Latency": 102.9, "Median Read Latency": 95.9, "Tail Read Latency": 193.3, "Average Update Latency": 105.7, "Median Update Latency": 98.9, "Tail Update Latency": 198.1}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499772.2, "Average Read Latency": 8408.3, "Median Read Latency": 1887.6, "Tail Read Latency": 222221.6, "Average Update Latency": 8691.5, "Median Update Latency": 2087.4, "Tail Update Latency": 223841.4}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 586358.5, "Average Read Latency": 24393.8, "Median Read Latency": 14846.1, "Tail Read Latency": 259105.2, "Average Update Latency": 24505.2, "Median Update Latency": 14911.2, "Tail Update Latency": 259781.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 399980.5, "Average Read Latency": 165.2, "Median Read Latency": 119.9, "Tail Read Latency": 525.2, "Average Update Latency": 168.1, "Median Update Latency": 123.8, "Tail Update Latency": 522.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 399957.6, "Average Read Latency": 121.8, "Median Read Latency": 104.8, "Tail Read Latency": 379.2, "Average Update Latency": 124.6, "Median Update Latency": 107.4, "Tail Update Latency": 383.5}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300026.8, "Average Read Latency": 154.0, "Median Read Latency": 106.1, "Tail Read Latency": 363.5, "Average Update Latency": 168.9, "Median Update Latency": 109.0, "Tail Update Latency": 394.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 399940.4, "Average Read Latency": 119.7, "Median Read Latency": 104.5, "Tail Read Latency": 314.0, "Average Update Latency": 122.2, "Median Update Latency": 106.7, "Tail Update Latency": 319.0}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 200043.8, "Average Read Latency": 105.7, "Median Read Latency": 95.2, "Tail Read Latency": 213.5, "Average Update Latency": 109.7, "Median Update Latency": 99.6, "Tail Update Latency": 221.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 570954.1, "Average Read Latency": 16891.4, "Median Read Latency": 7643.9, "Tail Read Latency": 239449.9, "Average Update Latency": 17681.7, "Median Update Latency": 7798.6, "Tail Update Latency": 240173.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 400020.7, "Average Read Latency": 511.0, "Median Read Latency": 125.4, "Tail Read Latency": 8876.8, "Average Update Latency": 637.3, "Median Update Latency": 127.0, "Tail Update Latency": 11870.2}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 508765.5, "Average Read Latency": 28053.3, "Median Read Latency": 16918.6, "Tail Read Latency": 312722.4, "Average Update Latency": 28794.0, "Median Update Latency": 17006.3, "Tail Update Latency": 325725.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 566270.9, "Average Read Latency": 15038.8, "Median Read Latency": 7270.9, "Tail Read Latency": 238222.9, "Average Update Latency": 15144.9, "Median Update Latency": 7284.1, "Tail Update Latency": 238308.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 200048.1, "Average Read Latency": 104.8, "Median Read Latency": 94.8, "Tail Read Latency": 207.2, "Average Update Latency": 106.2, "Median Update Latency": 99.2, "Tail Update Latency": 212.7}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 100006.6, "Average Read Latency": 87.2, "Median Read Latency": 84.7, "Tail Read Latency": 127.5, "Average Update Latency": 91.1, "Median Update Latency": 88.6, "Tail Update Latency": 133.5}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 200001.9, "Average Read Latency": 104.6, "Median Read Latency": 95.1, "Tail Read Latency": 207.0, "Average Update Latency": 109.8, "Median Update Latency": 99.3, "Tail Update Latency": 213.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 552201.0, "Average Read Latency": 14551.9, "Median Read Latency": 14038.4, "Tail Read Latency": 27840.1, "Average Update Latency": 14688.3, "Median Update Latency": 14053.9, "Tail Update Latency": 28703.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 399993.8, "Average Read Latency": 416.3, "Median Read Latency": 129.5, "Tail Read Latency": 7430.0, "Average Update Latency": 499.1, "Median Update Latency": 132.0, "Tail Update Latency": 8747.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 199993.2, "Average Read Latency": 87.6, "Median Read Latency": 84.9, "Tail Read Latency": 134.1, "Average Update Latency": 90.6, "Median Update Latency": 87.6, "Tail Update Latency": 137.6}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 99994.3, "Average Read Latency": 103.8, "Median Read Latency": 92.7, "Tail Read Latency": 141.4, "Average Update Latency": 104.6, "Median Update Latency": 97.3, "Tail Update Latency": 148.8}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 400016.2, "Average Read Latency": 160.8, "Median Read Latency": 113.6, "Tail Read Latency": 635.2, "Average Update Latency": 163.5, "Median Update Latency": 116.4, "Tail Update Latency": 638.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 500083.5, "Average Read Latency": 6074.8, "Median Read Latency": 322.6, "Tail Read Latency": 12519.8, "Average Update Latency": 5977.3, "Median Update Latency": 331.5, "Tail Update Latency": 12519.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 300014.8, "Average Read Latency": 101.7, "Median Read Latency": 95.1, "Tail Read Latency": 192.6, "Average Update Latency": 104.9, "Median Update Latency": 98.5, "Tail Update Latency": 195.6}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 574428.0, "Average Read Latency": 15909.4, "Median Read Latency": 12899.4, "Tail Read Latency": 32418.3, "Average Update Latency": 16217.5, "Median Update Latency": 12907.8, "Tail Update Latency": 78788.5}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 576631.4, "Average Read Latency": 11960.3, "Median Read Latency": 7110.8, "Tail Read Latency": 232417.3, "Average Update Latency": 12151.7, "Median Update Latency": 7180.2, "Tail Update Latency": 232610.5}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 99983.5, "Average Read Latency": 99.7, "Median Read Latency": 91.7, "Tail Read Latency": 139.9, "Average Update Latency": 103.3, "Median Update Latency": 95.4, "Tail Update Latency": 145.5}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 100010.6, "Average Read Latency": 99.3, "Median Read Latency": 92.8, "Tail Read Latency": 158.8, "Average Update Latency": 106.0, "Median Update Latency": 97.5, "Tail Update Latency": 168.9}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 200001.4, "Average Read Latency": 88.5, "Median Read Latency": 85.5, "Tail Read Latency": 137.3, "Average Update Latency": 91.5, "Median Update Latency": 88.3, "Tail Update Latency": 140.7}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 399945.9, "Average Read Latency": 445.2, "Median Read Latency": 127.0, "Tail Read Latency": 7652.7, "Average Update Latency": 516.3, "Median Update Latency": 128.8, "Tail Update Latency": 9116.0}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 567136.6, "Average Read Latency": 14388.7, "Median Read Latency": 7755.8, "Tail Read Latency": 236983.4, "Average Update Latency": 14509.9, "Median Update Latency": 7793.6, "Tail Update Latency": 236819.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 100010.7, "Average Read Latency": 106.0, "Median Read Latency": 93.2, "Tail Read Latency": 146.2, "Average Update Latency": 111.8, "Median Update Latency": 96.7, "Tail Update Latency": 152.9}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 567496.7, "Average Read Latency": 14059.3, "Median Read Latency": 13384.2, "Tail Read Latency": 27189.7, "Average Update Latency": 14298.0, "Median Update Latency": 13394.9, "Tail Update Latency": 28214.9}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 100007.6, "Average Read Latency": 100.1, "Median Read Latency": 93.7, "Tail Read Latency": 161.1, "Average Update Latency": 106.5, "Median Update Latency": 98.8, "Tail Update Latency": 170.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 99972.6, "Average Read Latency": 102.8, "Median Read Latency": 92.5, "Tail Read Latency": 143.3, "Average Update Latency": 107.1, "Median Update Latency": 95.8, "Tail Update Latency": 150.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 590090.9, "Average Read Latency": 20880.4, "Median Read Latency": 13548.6, "Tail Read Latency": 244918.2, "Average Update Latency": 21081.4, "Median Update Latency": 13561.0, "Tail Update Latency": 246277.8}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 565263.9, "Average Read Latency": 15831.4, "Median Read Latency": 8163.0, "Tail Read Latency": 237630.8, "Average Update Latency": 15988.6, "Median Update Latency": 8147.2, "Tail Update Latency": 237551.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 400084.5, "Average Read Latency": 171.2, "Median Read Latency": 121.3, "Tail Read Latency": 555.5, "Average Update Latency": 175.5, "Median Update Latency": 125.0, "Tail Update Latency": 569.4}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499724.0, "Average Read Latency": 8510.2, "Median Read Latency": 1463.7, "Tail Read Latency": 222330.0, "Average Update Latency": 8547.7, "Median Update Latency": 1524.1, "Tail Update Latency": 222940.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 200009.7, "Average Read Latency": 103.9, "Median Read Latency": 95.5, "Tail Read Latency": 211.6, "Average Update Latency": 108.4, "Median Update Latency": 100.1, "Tail Update Latency": 214.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 400059.8, "Average Read Latency": 158.8, "Median Read Latency": 112.3, "Tail Read Latency": 650.5, "Average Update Latency": 160.7, "Median Update Latency": 115.1, "Tail Update Latency": 643.5}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 400109.9, "Average Read Latency": 118.5, "Median Read Latency": 103.4, "Tail Read Latency": 313.9, "Average Update Latency": 121.0, "Median Update Latency": 105.9, "Tail Update Latency": 315.0}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 300007.2, "Average Read Latency": 129.3, "Median Read Latency": 99.0, "Tail Read Latency": 266.7, "Average Update Latency": 138.4, "Median Update Latency": 101.4, "Tail Update Latency": 271.1}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499890.8, "Average Read Latency": 5791.7, "Median Read Latency": 265.6, "Tail Read Latency": 12500.1, "Average Update Latency": 5887.9, "Median Update Latency": 302.9, "Tail Update Latency": 12512.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 508452.7, "Average Read Latency": 25419.2, "Median Read Latency": 15439.8, "Tail Read Latency": 267743.6, "Average Update Latency": 25789.6, "Median Update Latency": 15435.5, "Tail Update Latency": 274430.3}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 566726.7, "Average Read Latency": 20162.1, "Median Read Latency": 7460.5, "Tail Read Latency": 442253.4, "Average Update Latency": 19833.4, "Median Update Latency": 7425.6, "Tail Update Latency": 437743.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 399952.3, "Average Read Latency": 497.2, "Median Read Latency": 124.7, "Tail Read Latency": 8855.8, "Average Update Latency": 642.1, "Median Update Latency": 126.7, "Tail Update Latency": 11871.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 567688.0, "Average Read Latency": 14041.0, "Median Read Latency": 13311.0, "Tail Read Latency": 27774.5, "Average Update Latency": 14415.3, "Median Update Latency": 13324.7, "Tail Update Latency": 29240.8}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 508582.6, "Average Read Latency": 24517.3, "Median Read Latency": 14842.2, "Tail Read Latency": 269622.2, "Average Update Latency": 25069.1, "Median Update Latency": 14885.5, "Tail Update Latency": 273264.4}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 552685.4, "Average Read Latency": 14380.2, "Median Read Latency": 13847.9, "Tail Read Latency": 27130.2, "Average Update Latency": 14593.0, "Median Update Latency": 13853.3, "Tail Update Latency": 27806.0}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 484522.0, "Average Read Latency": 21237.8, "Median Read Latency": 12803.2, "Tail Read Latency": 256490.9, "Average Update Latency": 22141.5, "Median Update Latency": 12817.0, "Tail Update Latency": 258906.2}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 299979.7, "Average Read Latency": 135.1, "Median Read Latency": 99.0, "Tail Read Latency": 277.2, "Average Update Latency": 154.3, "Median Update Latency": 101.3, "Tail Update Latency": 290.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 200057.9, "Average Read Latency": 102.4, "Median Read Latency": 93.7, "Tail Read Latency": 182.1, "Average Update Latency": 106.1, "Median Update Latency": 96.6, "Tail Update Latency": 186.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 504927.8, "Average Read Latency": 23548.7, "Median Read Latency": 13536.2, "Tail Read Latency": 275754.2, "Average Update Latency": 23965.3, "Median Update Latency": 13553.0, "Tail Update Latency": 285270.3}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 589516.8, "Average Read Latency": 22994.1, "Median Read Latency": 13463.8, "Tail Read Latency": 257482.9, "Average Update Latency": 22995.3, "Median Update Latency": 13517.0, "Tail Update Latency": 256762.4}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 200021.6, "Average Read Latency": 104.8, "Median Read Latency": 95.5, "Tail Read Latency": 209.0, "Average Update Latency": 108.5, "Median Update Latency": 99.9, "Tail Update Latency": 208.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499367.7, "Average Read Latency": 8099.1, "Median Read Latency": 1452.5, "Tail Read Latency": 223115.8, "Average Update Latency": 8029.9, "Median Update Latency": 1431.4, "Tail Update Latency": 222519.7}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499732.1, "Average Read Latency": 8862.0, "Median Read Latency": 2043.3, "Tail Read Latency": 224512.9, "Average Update Latency": 8405.0, "Median Update Latency": 1691.7, "Tail Update Latency": 221831.8}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 589339.8, "Average Read Latency": 20602.1, "Median Read Latency": 13278.2, "Tail Read Latency": 245798.1, "Average Update Latency": 20758.2, "Median Update Latency": 13302.9, "Tail Update Latency": 248816.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 300044.2, "Average Read Latency": 103.5, "Median Read Latency": 96.4, "Tail Read Latency": 194.0, "Average Update Latency": 106.5, "Median Update Latency": 99.8, "Tail Update Latency": 198.6}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 565293.9, "Average Read Latency": 13006.1, "Median Read Latency": 7892.7, "Tail Read Latency": 234629.7, "Average Update Latency": 12972.9, "Median Update Latency": 7927.6, "Tail Update Latency": 234423.3}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 200001.3, "Average Read Latency": 88.1, "Median Read Latency": 84.9, "Tail Read Latency": 135.1, "Average Update Latency": 91.3, "Median Update Latency": 87.8, "Tail Update Latency": 139.2}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100008.1, "Average Read Latency": 89.7, "Median Read Latency": 87.0, "Tail Read Latency": 134.4, "Average Update Latency": 94.1, "Median Update Latency": 92.1, "Tail Update Latency": 139.2}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 400070.3, "Average Read Latency": 422.6, "Median Read Latency": 123.8, "Tail Read Latency": 7426.2, "Average Update Latency": 515.9, "Median Update Latency": 125.5, "Tail Update Latency": 9633.3}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 565228.3, "Average Read Latency": 16808.1, "Median Read Latency": 7768.5, "Tail Read Latency": 240025.9, "Average Update Latency": 16125.0, "Median Update Latency": 7612.1, "Tail Update Latency": 239230.0}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 486156.8, "Average Read Latency": 22402.3, "Median Read Latency": 12480.1, "Tail Read Latency": 260703.0, "Average Update Latency": 22491.3, "Median Update Latency": 12526.3, "Tail Update Latency": 261639.6}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499970.6, "Average Read Latency": 5189.3, "Median Read Latency": 265.7, "Tail Read Latency": 12329.4, "Average Update Latency": 5150.8, "Median Update Latency": 277.3, "Tail Update Latency": 12317.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 585238.8, "Average Read Latency": 24407.3, "Median Read Latency": 14903.1, "Tail Read Latency": 256943.6, "Average Update Latency": 24227.6, "Median Update Latency": 14804.0, "Tail Update Latency": 255218.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 199986.6, "Average Read Latency": 104.8, "Median Read Latency": 95.6, "Tail Read Latency": 207.5, "Average Update Latency": 107.5, "Median Update Latency": 100.1, "Tail Update Latency": 212.3}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 199986.1, "Average Read Latency": 102.3, "Median Read Latency": 94.5, "Tail Read Latency": 204.9, "Average Update Latency": 106.0, "Median Update Latency": 98.7, "Tail Update Latency": 210.3}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 508381.2, "Average Read Latency": 27409.9, "Median Read Latency": 15841.8, "Tail Read Latency": 326518.7, "Average Update Latency": 27673.9, "Median Update Latency": 15929.1, "Tail Update Latency": 331559.6}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100037.3, "Average Read Latency": 89.9, "Median Read Latency": 87.1, "Tail Read Latency": 134.7, "Average Update Latency": 94.8, "Median Update Latency": 92.1, "Tail Update Latency": 141.4}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 566809.1, "Average Read Latency": 11918.3, "Median Read Latency": 7820.6, "Tail Read Latency": 232865.9, "Average Update Latency": 11880.2, "Median Update Latency": 7785.1, "Tail Update Latency": 233028.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 200059.6, "Average Read Latency": 104.8, "Median Read Latency": 96.4, "Tail Read Latency": 212.1, "Average Update Latency": 110.7, "Median Update Latency": 100.7, "Tail Update Latency": 220.8}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 200009.3, "Average Read Latency": 119.1, "Median Read Latency": 97.5, "Tail Read Latency": 212.7, "Average Update Latency": 124.0, "Median Update Latency": 100.6, "Tail Update Latency": 220.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 300056.9, "Average Read Latency": 102.8, "Median Read Latency": 95.8, "Tail Read Latency": 196.7, "Average Update Latency": 105.8, "Median Update Latency": 98.7, "Tail Update Latency": 200.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 400007.7, "Average Read Latency": 164.2, "Median Read Latency": 119.4, "Tail Read Latency": 521.8, "Average Update Latency": 168.3, "Median Update Latency": 123.3, "Tail Update Latency": 534.0}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 561594.9, "Average Read Latency": 14127.8, "Median Read Latency": 13606.6, "Tail Read Latency": 27199.2, "Average Update Latency": 14316.2, "Median Update Latency": 13618.6, "Tail Update Latency": 28172.6}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 100003.3, "Average Read Latency": 101.5, "Median Read Latency": 92.3, "Tail Read Latency": 165.2, "Average Update Latency": 103.6, "Median Update Latency": 97.0, "Tail Update Latency": 171.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 400062.6, "Average Read Latency": 117.0, "Median Read Latency": 102.3, "Tail Read Latency": 304.2, "Average Update Latency": 119.7, "Median Update Latency": 104.8, "Tail Update Latency": 304.9}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 299994.6, "Average Read Latency": 111.6, "Median Read Latency": 97.9, "Tail Read Latency": 250.6, "Average Update Latency": 113.7, "Median Update Latency": 102.0, "Tail Update Latency": 249.5}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 482467.4, "Average Read Latency": 19224.5, "Median Read Latency": 11922.6, "Tail Read Latency": 249530.2, "Average Update Latency": 20047.8, "Median Update Latency": 11956.5, "Tail Update Latency": 252405.5}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 400058.2, "Average Read Latency": 406.5, "Median Read Latency": 124.5, "Tail Read Latency": 7055.3, "Average Update Latency": 486.0, "Median Update Latency": 126.4, "Tail Update Latency": 8837.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 508239.2, "Average Read Latency": 25462.5, "Median Read Latency": 16042.5, "Tail Read Latency": 265993.8, "Average Update Latency": 26282.6, "Median Update Latency": 16093.7, "Tail Update Latency": 273601.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 590570.8, "Average Read Latency": 23096.9, "Median Read Latency": 14251.7, "Tail Read Latency": 258091.7, "Average Update Latency": 22747.9, "Median Update Latency": 14197.0, "Tail Update Latency": 254067.7}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 508798.9, "Average Read Latency": 27284.9, "Median Read Latency": 16746.2, "Tail Read Latency": 282023.4, "Average Update Latency": 27779.4, "Median Update Latency": 16730.6, "Tail Update Latency": 286281.2}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200021.5, "Average Read Latency": 87.8, "Median Read Latency": 84.7, "Tail Read Latency": 137.1, "Average Update Latency": 91.4, "Median Update Latency": 87.6, "Tail Update Latency": 139.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499605.9, "Average Read Latency": 8339.2, "Median Read Latency": 2441.5, "Tail Read Latency": 224248.7, "Average Update Latency": 8260.6, "Median Update Latency": 2282.1, "Tail Update Latency": 223338.9}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 399985.2, "Average Read Latency": 170.2, "Median Read Latency": 122.7, "Tail Read Latency": 544.4, "Average Update Latency": 174.4, "Median Update Latency": 126.4, "Tail Update Latency": 554.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 299963.0, "Average Read Latency": 102.9, "Median Read Latency": 95.8, "Tail Read Latency": 194.7, "Average Update Latency": 106.2, "Median Update Latency": 98.8, "Tail Update Latency": 199.9}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 100033.0, "Average Read Latency": 100.3, "Median Read Latency": 92.8, "Tail Read Latency": 171.2, "Average Update Latency": 103.6, "Median Update Latency": 97.6, "Tail Update Latency": 177.1}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 569300.4, "Average Read Latency": 15588.2, "Median Read Latency": 7711.3, "Tail Read Latency": 238032.5, "Average Update Latency": 15543.3, "Median Update Latency": 7598.0, "Tail Update Latency": 237937.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 592722.2, "Average Read Latency": 22896.0, "Median Read Latency": 13229.1, "Tail Read Latency": 254357.6, "Average Update Latency": 22780.7, "Median Update Latency": 13267.5, "Tail Update Latency": 253913.0}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 200001.1, "Average Read Latency": 103.9, "Median Read Latency": 96.3, "Tail Read Latency": 213.5, "Average Update Latency": 109.0, "Median Update Latency": 100.6, "Tail Update Latency": 218.3}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 300000.7, "Average Read Latency": 111.3, "Median Read Latency": 98.6, "Tail Read Latency": 250.3, "Average Update Latency": 114.8, "Median Update Latency": 102.4, "Tail Update Latency": 256.7}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 299973.3, "Average Read Latency": 102.1, "Median Read Latency": 95.4, "Tail Read Latency": 194.0, "Average Update Latency": 104.9, "Median Update Latency": 98.3, "Tail Update Latency": 197.7}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499945.3, "Average Read Latency": 8255.9, "Median Read Latency": 1657.5, "Tail Read Latency": 223804.7, "Average Update Latency": 8261.8, "Median Update Latency": 1981.9, "Tail Update Latency": 223622.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 399972.0, "Average Read Latency": 120.6, "Median Read Latency": 103.7, "Tail Read Latency": 347.1, "Average Update Latency": 122.6, "Median Update Latency": 106.0, "Tail Update Latency": 344.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 504549.5, "Average Read Latency": 24986.5, "Median Read Latency": 14983.1, "Tail Read Latency": 273794.4, "Average Update Latency": 25829.9, "Median Update Latency": 15088.5, "Tail Update Latency": 284468.1}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 199977.2, "Average Read Latency": 105.0, "Median Read Latency": 94.8, "Tail Read Latency": 207.5, "Average Update Latency": 108.7, "Median Update Latency": 99.1, "Tail Update Latency": 218.4}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499826.1, "Average Read Latency": 9364.3, "Median Read Latency": 1807.3, "Tail Read Latency": 225326.2, "Average Update Latency": 9281.5, "Median Update Latency": 1918.3, "Tail Update Latency": 225221.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 483826.5, "Average Read Latency": 23562.8, "Median Read Latency": 12951.0, "Tail Read Latency": 262460.3, "Average Update Latency": 24400.3, "Median Update Latency": 12956.3, "Tail Update Latency": 271182.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 575780.5, "Average Read Latency": 17824.7, "Median Read Latency": 7558.5, "Tail Read Latency": 427876.0, "Average Update Latency": 17690.6, "Median Update Latency": 7583.1, "Tail Update Latency": 252531.5}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 99984.5, "Average Read Latency": 100.5, "Median Read Latency": 92.3, "Tail Read Latency": 138.8, "Average Update Latency": 102.6, "Median Update Latency": 95.8, "Tail Update Latency": 144.4}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 508659.5, "Average Read Latency": 25995.6, "Median Read Latency": 16506.3, "Tail Read Latency": 275320.5, "Average Update Latency": 27150.9, "Median Update Latency": 16598.0, "Tail Update Latency": 285882.8}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 399934.5, "Average Read Latency": 118.2, "Median Read Latency": 103.4, "Tail Read Latency": 316.9, "Average Update Latency": 120.2, "Median Update Latency": 105.6, "Tail Update Latency": 314.3}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 555399.9, "Average Read Latency": 14388.9, "Median Read Latency": 13656.8, "Tail Read Latency": 27633.9, "Average Update Latency": 14652.2, "Median Update Latency": 13683.8, "Tail Update Latency": 28903.3}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 567954.6, "Average Read Latency": 14982.3, "Median Read Latency": 13342.0, "Tail Read Latency": 29038.0, "Average Update Latency": 15180.7, "Median Update Latency": 13352.8, "Tail Update Latency": 29663.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 400022.4, "Average Read Latency": 117.9, "Median Read Latency": 103.7, "Tail Read Latency": 297.6, "Average Update Latency": 120.9, "Median Update Latency": 106.5, "Tail Update Latency": 300.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 400002.6, "Average Read Latency": 118.8, "Median Read Latency": 103.1, "Tail Read Latency": 321.2, "Average Update Latency": 122.0, "Median Update Latency": 105.6, "Tail Update Latency": 327.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 483802.0, "Average Read Latency": 22407.3, "Median Read Latency": 12475.4, "Tail Read Latency": 260993.7, "Average Update Latency": 23030.2, "Median Update Latency": 12581.9, "Tail Update Latency": 262917.4}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 588386.1, "Average Read Latency": 23207.0, "Median Read Latency": 14416.6, "Tail Read Latency": 256085.0, "Average Update Latency": 22827.3, "Median Update Latency": 14329.1, "Tail Update Latency": 256281.9}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 100025.2, "Average Read Latency": 100.8, "Median Read Latency": 93.5, "Tail Read Latency": 160.5, "Average Update Latency": 103.4, "Median Update Latency": 99.1, "Tail Update Latency": 170.3}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 504042.2, "Average Read Latency": 27508.2, "Median Read Latency": 17400.6, "Tail Read Latency": 282771.8, "Average Update Latency": 27806.4, "Median Update Latency": 17412.9, "Tail Update Latency": 287199.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 399978.6, "Average Read Latency": 165.5, "Median Read Latency": 116.1, "Tail Read Latency": 613.9, "Average Update Latency": 168.9, "Median Update Latency": 119.3, "Tail Update Latency": 628.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 299994.6, "Average Read Latency": 124.5, "Median Read Latency": 106.5, "Tail Read Latency": 305.4, "Average Update Latency": 131.3, "Median Update Latency": 111.0, "Tail Update Latency": 316.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 100025.7, "Average Read Latency": 90.0, "Median Read Latency": 87.3, "Tail Read Latency": 135.6, "Average Update Latency": 94.6, "Median Update Latency": 92.5, "Tail Update Latency": 140.2}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499941.1, "Average Read Latency": 5745.2, "Median Read Latency": 275.9, "Tail Read Latency": 12482.9, "Average Update Latency": 5694.6, "Median Update Latency": 300.9, "Tail Update Latency": 12475.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 506236.9, "Average Read Latency": 30055.9, "Median Read Latency": 18755.2, "Tail Read Latency": 309392.0, "Average Update Latency": 30588.7, "Median Update Latency": 18703.8, "Tail Update Latency": 324899.3}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 568400.3, "Average Read Latency": 14100.0, "Median Read Latency": 13283.7, "Tail Read Latency": 28570.4, "Average Update Latency": 14588.6, "Median Update Latency": 13299.4, "Tail Update Latency": 30466.8}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 199982.5, "Average Read Latency": 119.3, "Median Read Latency": 96.4, "Tail Read Latency": 201.8, "Average Update Latency": 124.3, "Median Update Latency": 99.7, "Tail Update Latency": 204.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 399935.6, "Average Read Latency": 118.0, "Median Read Latency": 103.6, "Tail Read Latency": 304.2, "Average Update Latency": 120.9, "Median Update Latency": 106.1, "Tail Update Latency": 311.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 99975.3, "Average Read Latency": 86.8, "Median Read Latency": 84.6, "Tail Read Latency": 126.4, "Average Update Latency": 90.9, "Median Update Latency": 88.6, "Tail Update Latency": 132.2}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 199951.9, "Average Read Latency": 89.5, "Median Read Latency": 86.2, "Tail Read Latency": 140.7, "Average Update Latency": 92.8, "Median Update Latency": 89.5, "Tail Update Latency": 143.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 590581.5, "Average Read Latency": 23177.2, "Median Read Latency": 14355.8, "Tail Read Latency": 253484.4, "Average Update Latency": 22832.0, "Median Update Latency": 14360.8, "Tail Update Latency": 247972.3}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 299996.7, "Average Read Latency": 126.6, "Median Read Latency": 107.1, "Tail Read Latency": 312.0, "Average Update Latency": 128.2, "Median Update Latency": 111.3, "Tail Update Latency": 310.4}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 300000.2, "Average Read Latency": 111.3, "Median Read Latency": 97.9, "Tail Read Latency": 248.0, "Average Update Latency": 116.3, "Median Update Latency": 101.7, "Tail Update Latency": 252.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 506532.6, "Average Read Latency": 27695.4, "Median Read Latency": 17911.2, "Tail Read Latency": 284492.0, "Average Update Latency": 28537.2, "Median Update Latency": 17859.9, "Tail Update Latency": 290901.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 399975.5, "Average Read Latency": 520.5, "Median Read Latency": 127.2, "Tail Read Latency": 9219.1, "Average Update Latency": 662.5, "Median Update Latency": 128.7, "Tail Update Latency": 12396.0}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 503458.6, "Average Read Latency": 25738.2, "Median Read Latency": 14287.8, "Tail Read Latency": 314311.3, "Average Update Latency": 26602.1, "Median Update Latency": 14368.4, "Tail Update Latency": 330932.1}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 399993.5, "Average Read Latency": 461.5, "Median Read Latency": 125.1, "Tail Read Latency": 7847.9, "Average Update Latency": 584.8, "Median Update Latency": 127.0, "Tail Update Latency": 10714.8}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 199994.0, "Average Read Latency": 115.9, "Median Read Latency": 95.8, "Tail Read Latency": 197.1, "Average Update Latency": 116.2, "Median Update Latency": 98.8, "Tail Update Latency": 198.0}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 200022.1, "Average Read Latency": 89.6, "Median Read Latency": 86.2, "Tail Read Latency": 139.0, "Average Update Latency": 92.6, "Median Update Latency": 89.5, "Tail Update Latency": 141.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 100007.0, "Average Read Latency": 101.1, "Median Read Latency": 92.8, "Tail Read Latency": 157.0, "Average Update Latency": 109.9, "Median Update Latency": 97.7, "Tail Update Latency": 169.7}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 564722.7, "Average Read Latency": 19786.0, "Median Read Latency": 7959.4, "Tail Read Latency": 431746.6, "Average Update Latency": 18850.1, "Median Update Latency": 7963.6, "Tail Update Latency": 429755.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 563453.2, "Average Read Latency": 14288.8, "Median Read Latency": 13380.5, "Tail Read Latency": 28000.4, "Average Update Latency": 14567.4, "Median Update Latency": 13394.1, "Tail Update Latency": 28826.0}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300005.7, "Average Read Latency": 128.4, "Median Read Latency": 98.5, "Tail Read Latency": 270.2, "Average Update Latency": 145.8, "Median Update Latency": 101.1, "Tail Update Latency": 288.9}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 200035.3, "Average Read Latency": 90.2, "Median Read Latency": 86.1, "Tail Read Latency": 141.1, "Average Update Latency": 92.9, "Median Update Latency": 89.2, "Tail Update Latency": 145.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 565746.2, "Average Read Latency": 14385.0, "Median Read Latency": 13252.0, "Tail Read Latency": 28628.6, "Average Update Latency": 14768.9, "Median Update Latency": 13273.5, "Tail Update Latency": 30000.3}], ["forall-10%", "memcached forall-10%", {"Target QPS": 400000, "Actual QPS": 400074.5, "Average Read Latency": 169.1, "Median Read Latency": 120.8, "Tail Read Latency": 539.0, "Average Update Latency": 173.0, "Median Update Latency": 124.7, "Tail Update Latency": 546.2}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 200082.5, "Average Read Latency": 119.6, "Median Read Latency": 97.7, "Tail Read Latency": 214.1, "Average Update Latency": 121.4, "Median Update Latency": 100.9, "Tail Update Latency": 218.1}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 299951.7, "Average Read Latency": 115.6, "Median Read Latency": 98.2, "Tail Read Latency": 250.4, "Average Update Latency": 118.2, "Median Update Latency": 101.9, "Tail Update Latency": 253.8}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200004.3, "Average Read Latency": 89.0, "Median Read Latency": 85.5, "Tail Read Latency": 138.9, "Average Update Latency": 91.8, "Median Update Latency": 88.5, "Tail Update Latency": 140.8}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 400003.3, "Average Read Latency": 386.0, "Median Read Latency": 125.4, "Tail Read Latency": 6754.7, "Average Update Latency": 448.5, "Median Update Latency": 126.8, "Tail Update Latency": 8078.7}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 300044.7, "Average Read Latency": 109.9, "Median Read Latency": 97.3, "Tail Read Latency": 247.7, "Average Update Latency": 113.2, "Median Update Latency": 101.3, "Tail Update Latency": 248.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 566257.0, "Average Read Latency": 16990.3, "Median Read Latency": 7864.6, "Tail Read Latency": 239715.4, "Average Update Latency": 16835.0, "Median Update Latency": 7887.7, "Tail Update Latency": 240000.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 509040.9, "Average Read Latency": 29222.6, "Median Read Latency": 21217.9, "Tail Read Latency": 279646.6, "Average Update Latency": 29879.6, "Median Update Latency": 21266.4, "Tail Update Latency": 283767.9}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100014.2, "Average Read Latency": 88.9, "Median Read Latency": 86.3, "Tail Read Latency": 133.0, "Average Update Latency": 93.4, "Median Update Latency": 91.1, "Tail Update Latency": 139.8}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 500414.9, "Average Read Latency": 23042.3, "Median Read Latency": 14380.6, "Tail Read Latency": 260072.2, "Average Update Latency": 23825.6, "Median Update Latency": 14378.9, "Tail Update Latency": 263521.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300016.4, "Average Read Latency": 142.3, "Median Read Latency": 106.3, "Tail Read Latency": 347.5, "Average Update Latency": 162.0, "Median Update Latency": 109.0, "Tail Update Latency": 367.8}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 300016.0, "Average Read Latency": 100.5, "Median Read Latency": 94.1, "Tail Read Latency": 186.4, "Average Update Latency": 103.7, "Median Update Latency": 96.9, "Tail Update Latency": 190.1}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 485238.5, "Average Read Latency": 23547.2, "Median Read Latency": 13347.6, "Tail Read Latency": 260539.9, "Average Update Latency": 24392.8, "Median Update Latency": 13374.1, "Tail Update Latency": 263290.1}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499891.5, "Average Read Latency": 6315.0, "Median Read Latency": 402.1, "Tail Read Latency": 12521.2, "Average Update Latency": 6104.4, "Median Update Latency": 375.7, "Tail Update Latency": 12514.9}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499538.4, "Average Read Latency": 8747.2, "Median Read Latency": 2604.8, "Tail Read Latency": 223943.6, "Average Update Latency": 8635.7, "Median Update Latency": 2448.0, "Tail Update Latency": 223848.3}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 399933.0, "Average Read Latency": 119.0, "Median Read Latency": 104.1, "Tail Read Latency": 331.8, "Average Update Latency": 122.1, "Median Update Latency": 106.8, "Tail Update Latency": 332.3}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 515185.5, "Average Read Latency": 28905.3, "Median Read Latency": 20411.0, "Tail Read Latency": 280815.8, "Average Update Latency": 29136.7, "Median Update Latency": 20495.9, "Tail Update Latency": 282227.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 400007.6, "Average Read Latency": 117.3, "Median Read Latency": 103.4, "Tail Read Latency": 300.4, "Average Update Latency": 119.8, "Median Update Latency": 106.2, "Tail Update Latency": 303.3}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 200017.4, "Average Read Latency": 117.1, "Median Read Latency": 97.4, "Tail Read Latency": 206.8, "Average Update Latency": 119.0, "Median Update Latency": 100.4, "Tail Update Latency": 210.1}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 400003.9, "Average Read Latency": 170.2, "Median Read Latency": 116.8, "Tail Read Latency": 657.4, "Average Update Latency": 173.0, "Median Update Latency": 120.2, "Tail Update Latency": 657.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 99963.6, "Average Read Latency": 98.1, "Median Read Latency": 92.2, "Tail Read Latency": 158.4, "Average Update Latency": 106.3, "Median Update Latency": 96.9, "Tail Update Latency": 168.6}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 500000, "Actual QPS": 499831.7, "Average Read Latency": 6173.0, "Median Read Latency": 445.8, "Tail Read Latency": 12642.2, "Average Update Latency": 6220.0, "Median Update Latency": 576.2, "Tail Update Latency": 12981.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 199975.7, "Average Read Latency": 105.7, "Median Read Latency": 95.1, "Tail Read Latency": 192.7, "Average Update Latency": 108.2, "Median Update Latency": 98.1, "Tail Update Latency": 196.7}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 510136.6, "Average Read Latency": 30231.3, "Median Read Latency": 20414.3, "Tail Read Latency": 310808.3, "Average Update Latency": 30701.3, "Median Update Latency": 20554.4, "Tail Update Latency": 314355.2}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 593841.3, "Average Read Latency": 20496.6, "Median Read Latency": 13264.2, "Tail Read Latency": 243072.3, "Average Update Latency": 20832.1, "Median Update Latency": 13304.8, "Tail Update Latency": 243175.4}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 506163.0, "Average Read Latency": 21998.8, "Median Read Latency": 13650.5, "Tail Read Latency": 257543.1, "Average Update Latency": 22183.8, "Median Update Latency": 13674.1, "Tail Update Latency": 259563.1}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 300049.3, "Average Read Latency": 111.8, "Median Read Latency": 98.6, "Tail Read Latency": 252.7, "Average Update Latency": 115.7, "Median Update Latency": 102.2, "Tail Update Latency": 255.5}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 400074.1, "Average Read Latency": 381.4, "Median Read Latency": 123.7, "Tail Read Latency": 6976.6, "Average Update Latency": 452.6, "Median Update Latency": 125.8, "Tail Update Latency": 8127.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 510111.1, "Average Read Latency": 26728.9, "Median Read Latency": 14832.9, "Tail Read Latency": 318916.5, "Average Update Latency": 27183.8, "Median Update Latency": 14799.3, "Tail Update Latency": 329883.7}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 400064.6, "Average Read Latency": 124.5, "Median Read Latency": 104.0, "Tail Read Latency": 416.3, "Average Update Latency": 126.9, "Median Update Latency": 106.6, "Tail Update Latency": 409.7}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 300064.5, "Average Read Latency": 111.6, "Median Read Latency": 98.4, "Tail Read Latency": 249.3, "Average Update Latency": 115.2, "Median Update Latency": 102.0, "Tail Update Latency": 256.8}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 300041.9, "Average Read Latency": 102.8, "Median Read Latency": 94.8, "Tail Read Latency": 191.3, "Average Update Latency": 106.1, "Median Update Latency": 98.1, "Tail Update Latency": 198.3}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 100025.2, "Average Read Latency": 101.3, "Median Read Latency": 92.8, "Tail Read Latency": 163.5, "Average Update Latency": 102.2, "Median Update Latency": 97.7, "Tail Update Latency": 171.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 550004.9, "Average Read Latency": 14500.6, "Median Read Latency": 13658.6, "Tail Read Latency": 27834.6, "Average Update Latency": 14823.5, "Median Update Latency": 13682.6, "Tail Update Latency": 28857.3}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 499897.1, "Average Read Latency": 5904.8, "Median Read Latency": 336.5, "Tail Read Latency": 12492.0, "Average Update Latency": 5823.8, "Median Update Latency": 323.6, "Tail Update Latency": 12487.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 100029.2, "Average Read Latency": 100.2, "Median Read Latency": 92.5, "Tail Read Latency": 139.9, "Average Update Latency": 104.1, "Median Update Latency": 96.2, "Tail Update Latency": 145.6}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 584249.2, "Average Read Latency": 22287.2, "Median Read Latency": 13812.5, "Tail Read Latency": 249803.6, "Average Update Latency": 22244.3, "Median Update Latency": 13682.9, "Tail Update Latency": 249473.0}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 399981.3, "Average Read Latency": 170.0, "Median Read Latency": 122.7, "Tail Read Latency": 545.8, "Average Update Latency": 172.6, "Median Update Latency": 126.1, "Tail Update Latency": 549.3}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499827.2, "Average Read Latency": 9045.0, "Median Read Latency": 2913.0, "Tail Read Latency": 225288.8, "Average Update Latency": 8890.9, "Median Update Latency": 2799.4, "Tail Update Latency": 224651.6}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 483263.3, "Average Read Latency": 21789.5, "Median Read Latency": 11429.2, "Tail Read Latency": 259072.4, "Average Update Latency": 21923.4, "Median Update Latency": 11529.2, "Tail Update Latency": 260618.9}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 200008.9, "Average Read Latency": 88.6, "Median Read Latency": 85.2, "Tail Read Latency": 137.9, "Average Update Latency": 92.2, "Median Update Latency": 88.5, "Tail Update Latency": 140.7}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 100036.8, "Average Read Latency": 103.3, "Median Read Latency": 92.9, "Tail Read Latency": 145.8, "Average Update Latency": 105.5, "Median Update Latency": 96.3, "Tail Update Latency": 152.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 400004.3, "Average Read Latency": 168.4, "Median Read Latency": 120.9, "Tail Read Latency": 534.5, "Average Update Latency": 170.7, "Median Update Latency": 124.7, "Tail Update Latency": 536.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 600000, "Actual QPS": 557095.4, "Average Read Latency": 14163.2, "Median Read Latency": 13561.8, "Tail Read Latency": 27005.0, "Average Update Latency": 14356.7, "Median Update Latency": 13567.6, "Tail Update Latency": 28036.5}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 100008.2, "Average Read Latency": 99.5, "Median Read Latency": 93.7, "Tail Read Latency": 159.9, "Average Update Latency": 106.8, "Median Update Latency": 98.5, "Tail Update Latency": 167.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 100011.4, "Average Read Latency": 103.7, "Median Read Latency": 92.0, "Tail Read Latency": 139.5, "Average Update Latency": 109.0, "Median Update Latency": 95.5, "Tail Update Latency": 147.3}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 400035.5, "Average Read Latency": 120.2, "Median Read Latency": 104.3, "Tail Read Latency": 323.6, "Average Update Latency": 122.2, "Median Update Latency": 106.6, "Tail Update Latency": 329.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 569440.4, "Average Read Latency": 12658.7, "Median Read Latency": 7668.3, "Tail Read Latency": 234282.0, "Average Update Latency": 12470.9, "Median Update Latency": 7784.6, "Tail Update Latency": 233974.4}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 200015.1, "Average Read Latency": 104.9, "Median Read Latency": 94.1, "Tail Read Latency": 182.2, "Average Update Latency": 111.4, "Median Update Latency": 97.1, "Tail Update Latency": 187.9}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 591138.4, "Average Read Latency": 23984.3, "Median Read Latency": 15646.9, "Tail Read Latency": 260300.6, "Average Update Latency": 24000.3, "Median Update Latency": 15592.4, "Tail Update Latency": 256930.5}], ["forall-50%", "memcached forall-50%", {"Target QPS": 300000, "Actual QPS": 300044.1, "Average Read Latency": 127.8, "Median Read Latency": 108.4, "Tail Read Latency": 306.2, "Average Update Latency": 132.8, "Median Update Latency": 112.3, "Tail Update Latency": 322.7}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 199998.5, "Average Read Latency": 106.2, "Median Read Latency": 94.8, "Tail Read Latency": 189.6, "Average Update Latency": 110.3, "Median Update Latency": 97.9, "Tail Update Latency": 194.2}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 578612.9, "Average Read Latency": 14420.8, "Median Read Latency": 13124.9, "Tail Read Latency": 28436.7, "Average Update Latency": 14701.5, "Median Update Latency": 13138.2, "Tail Update Latency": 28934.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 400038.0, "Average Read Latency": 124.8, "Median Read Latency": 103.8, "Tail Read Latency": 446.5, "Average Update Latency": 127.8, "Median Update Latency": 106.3, "Tail Update Latency": 453.9}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 400008.0, "Average Read Latency": 139.2, "Median Read Latency": 107.4, "Tail Read Latency": 552.2, "Average Update Latency": 141.9, "Median Update Latency": 110.3, "Tail Update Latency": 558.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 200027.0, "Average Read Latency": 109.6, "Median Read Latency": 97.0, "Tail Read Latency": 204.3, "Average Update Latency": 113.4, "Median Update Latency": 100.1, "Tail Update Latency": 205.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 543965.9, "Average Read Latency": 14555.2, "Median Read Latency": 13958.9, "Tail Read Latency": 27680.1, "Average Update Latency": 14824.9, "Median Update Latency": 13971.3, "Tail Update Latency": 28851.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 200000, "Actual QPS": 199994.4, "Average Read Latency": 103.9, "Median Read Latency": 94.8, "Tail Read Latency": 206.7, "Average Update Latency": 105.9, "Median Update Latency": 99.1, "Tail Update Latency": 214.1}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 300037.3, "Average Read Latency": 102.1, "Median Read Latency": 95.2, "Tail Read Latency": 194.8, "Average Update Latency": 105.5, "Median Update Latency": 98.6, "Tail Update Latency": 199.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499975.5, "Average Read Latency": 6117.1, "Median Read Latency": 480.4, "Tail Read Latency": 12499.6, "Average Update Latency": 6235.0, "Median Update Latency": 712.4, "Tail Update Latency": 12510.7}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 568353.6, "Average Read Latency": 12514.0, "Median Read Latency": 7713.3, "Tail Read Latency": 233885.2, "Average Update Latency": 12471.6, "Median Update Latency": 7799.8, "Tail Update Latency": 233991.7}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499727.4, "Average Read Latency": 9070.0, "Median Read Latency": 2285.8, "Tail Read Latency": 225220.2, "Average Update Latency": 8996.3, "Median Update Latency": 2046.5, "Tail Update Latency": 225079.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499869.8, "Average Read Latency": 8685.0, "Median Read Latency": 1882.3, "Tail Read Latency": 223718.4, "Average Update Latency": 8522.4, "Median Update Latency": 1732.4, "Tail Update Latency": 222736.9}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 300083.0, "Average Read Latency": 103.6, "Median Read Latency": 96.5, "Tail Read Latency": 192.8, "Average Update Latency": 106.8, "Median Update Latency": 99.9, "Tail Update Latency": 198.7}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 567407.3, "Average Read Latency": 12725.4, "Median Read Latency": 7808.5, "Tail Read Latency": 234431.7, "Average Update Latency": 13132.7, "Median Update Latency": 7804.0, "Tail Update Latency": 235171.3}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 511885.1, "Average Read Latency": 25077.2, "Median Read Latency": 16363.0, "Tail Read Latency": 262982.0, "Average Update Latency": 25616.2, "Median Update Latency": 16378.1, "Tail Update Latency": 264838.6}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 199989.4, "Average Read Latency": 89.0, "Median Read Latency": 85.6, "Tail Read Latency": 138.9, "Average Update Latency": 92.4, "Median Update Latency": 88.8, "Tail Update Latency": 142.1}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 400048.1, "Average Read Latency": 173.9, "Median Read Latency": 122.7, "Tail Read Latency": 563.7, "Average Update Latency": 176.5, "Median Update Latency": 126.9, "Tail Update Latency": 563.0}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 483966.8, "Average Read Latency": 23885.0, "Median Read Latency": 12648.8, "Tail Read Latency": 263631.6, "Average Update Latency": 24326.9, "Median Update Latency": 12661.4, "Tail Update Latency": 266594.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 536341.0, "Average Read Latency": 28597.0, "Median Read Latency": 21527.6, "Tail Read Latency": 275708.8, "Average Update Latency": 28727.0, "Median Update Latency": 21568.0, "Tail Update Latency": 274967.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 509829.2, "Average Read Latency": 28324.8, "Median Read Latency": 19055.3, "Tail Read Latency": 281871.1, "Average Update Latency": 28736.6, "Median Update Latency": 19109.1, "Tail Update Latency": 284359.3}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 99987.1, "Average Read Latency": 87.1, "Median Read Latency": 84.8, "Tail Read Latency": 127.1, "Average Update Latency": 91.1, "Median Update Latency": 88.9, "Tail Update Latency": 131.7}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 300015.9, "Average Read Latency": 135.9, "Median Read Latency": 99.5, "Tail Read Latency": 295.8, "Average Update Latency": 159.6, "Median Update Latency": 101.7, "Tail Update Latency": 328.0}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 593642.5, "Average Read Latency": 21919.2, "Median Read Latency": 13361.8, "Tail Read Latency": 253322.2, "Average Update Latency": 21802.8, "Median Update Latency": 13330.3, "Tail Update Latency": 252150.8}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 572593.2, "Average Read Latency": 21220.9, "Median Read Latency": 7423.0, "Tail Read Latency": 447806.9, "Average Update Latency": 20438.4, "Median Update Latency": 7586.2, "Tail Update Latency": 443872.8}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 508188.6, "Average Read Latency": 27004.7, "Median Read Latency": 17238.0, "Tail Read Latency": 276881.7, "Average Update Latency": 27395.6, "Median Update Latency": 17215.8, "Tail Update Latency": 281479.1}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 556770.7, "Average Read Latency": 14393.8, "Median Read Latency": 13651.8, "Tail Read Latency": 27556.5, "Average Update Latency": 14535.6, "Median Update Latency": 13645.0, "Tail Update Latency": 28380.2}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499535.6, "Average Read Latency": 9184.0, "Median Read Latency": 1969.5, "Tail Read Latency": 226418.9, "Average Update Latency": 8947.8, "Median Update Latency": 1715.3, "Tail Update Latency": 224812.7}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 199975.4, "Average Read Latency": 112.0, "Median Read Latency": 94.7, "Tail Read Latency": 187.8, "Average Update Latency": 119.1, "Median Update Latency": 97.6, "Tail Update Latency": 195.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 567807.9, "Average Read Latency": 13987.1, "Median Read Latency": 13283.0, "Tail Read Latency": 27134.0, "Average Update Latency": 14275.6, "Median Update Latency": 13292.0, "Tail Update Latency": 28559.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 557839.3, "Average Read Latency": 13992.4, "Median Read Latency": 13395.7, "Tail Read Latency": 26632.4, "Average Update Latency": 14250.3, "Median Update Latency": 13403.9, "Tail Update Latency": 27735.3}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 99994.8, "Average Read Latency": 97.5, "Median Read Latency": 92.6, "Tail Read Latency": 155.5, "Average Update Latency": 103.7, "Median Update Latency": 97.2, "Tail Update Latency": 166.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 99975.0, "Average Read Latency": 102.3, "Median Read Latency": 93.1, "Tail Read Latency": 158.8, "Average Update Latency": 109.4, "Median Update Latency": 98.1, "Tail Update Latency": 170.7}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499913.3, "Average Read Latency": 5300.7, "Median Read Latency": 261.3, "Tail Read Latency": 12342.9, "Average Update Latency": 5381.4, "Median Update Latency": 269.6, "Tail Update Latency": 12363.5}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 482469.3, "Average Read Latency": 24036.4, "Median Read Latency": 12196.3, "Tail Read Latency": 285159.0, "Average Update Latency": 24589.0, "Median Update Latency": 12278.2, "Tail Update Latency": 316964.7}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 99989.5, "Average Read Latency": 103.1, "Median Read Latency": 92.0, "Tail Read Latency": 139.3, "Average Update Latency": 107.7, "Median Update Latency": 95.6, "Tail Update Latency": 144.4}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 591274.7, "Average Read Latency": 21306.6, "Median Read Latency": 13142.2, "Tail Read Latency": 249886.2, "Average Update Latency": 21503.0, "Median Update Latency": 13117.7, "Tail Update Latency": 252207.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499840.6, "Average Read Latency": 7395.2, "Median Read Latency": 1308.7, "Tail Read Latency": 216588.2, "Average Update Latency": 7243.8, "Median Update Latency": 1196.9, "Tail Update Latency": 205661.5}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 299990.9, "Average Read Latency": 133.5, "Median Read Latency": 99.1, "Tail Read Latency": 277.7, "Average Update Latency": 149.1, "Median Update Latency": 101.2, "Tail Update Latency": 282.6}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 550344.5, "Average Read Latency": 14458.0, "Median Read Latency": 13763.5, "Tail Read Latency": 28041.7, "Average Update Latency": 14754.3, "Median Update Latency": 13777.0, "Tail Update Latency": 28873.2}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 300012.4, "Average Read Latency": 127.6, "Median Read Latency": 106.5, "Tail Read Latency": 303.3, "Average Update Latency": 130.2, "Median Update Latency": 110.6, "Tail Update Latency": 312.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 100029.7, "Average Read Latency": 87.5, "Median Read Latency": 85.0, "Tail Read Latency": 127.9, "Average Update Latency": 91.5, "Median Update Latency": 89.1, "Tail Update Latency": 133.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 299955.4, "Average Read Latency": 127.6, "Median Read Latency": 107.0, "Tail Read Latency": 308.6, "Average Update Latency": 131.4, "Median Update Latency": 111.2, "Tail Update Latency": 310.2}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 504354.1, "Average Read Latency": 23397.6, "Median Read Latency": 13297.4, "Tail Read Latency": 286658.9, "Average Update Latency": 25009.8, "Median Update Latency": 13352.4, "Tail Update Latency": 315299.2}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 299978.3, "Average Read Latency": 140.3, "Median Read Latency": 98.7, "Tail Read Latency": 288.3, "Average Update Latency": 157.3, "Median Update Latency": 101.1, "Tail Update Latency": 303.8}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 99984.0, "Average Read Latency": 98.9, "Median Read Latency": 91.9, "Tail Read Latency": 139.3, "Average Update Latency": 105.0, "Median Update Latency": 95.5, "Tail Update Latency": 146.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 100010.7, "Average Read Latency": 101.6, "Median Read Latency": 93.2, "Tail Read Latency": 162.5, "Average Update Latency": 108.6, "Median Update Latency": 97.9, "Tail Update Latency": 169.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499736.4, "Average Read Latency": 8674.9, "Median Read Latency": 1357.2, "Tail Read Latency": 223382.3, "Average Update Latency": 8710.1, "Median Update Latency": 1293.4, "Tail Update Latency": 223349.7}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 595153.9, "Average Read Latency": 23017.1, "Median Read Latency": 13156.5, "Tail Read Latency": 260097.9, "Average Update Latency": 23371.7, "Median Update Latency": 13242.4, "Tail Update Latency": 260826.6}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 400035.9, "Average Read Latency": 166.0, "Median Read Latency": 121.0, "Tail Read Latency": 526.6, "Average Update Latency": 171.1, "Median Update Latency": 124.7, "Tail Update Latency": 532.2}], ["forall-50%", "memcached forall-50%", {"Target QPS": 100000, "Actual QPS": 100021.3, "Average Read Latency": 98.6, "Median Read Latency": 92.4, "Tail Read Latency": 156.4, "Average Update Latency": 105.2, "Median Update Latency": 97.2, "Tail Update Latency": 167.4}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 484527.5, "Average Read Latency": 23195.0, "Median Read Latency": 12556.2, "Tail Read Latency": 263788.9, "Average Update Latency": 23655.7, "Median Update Latency": 12664.8, "Tail Update Latency": 264467.6}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499696.4, "Average Read Latency": 8553.5, "Median Read Latency": 2549.5, "Tail Read Latency": 224837.3, "Average Update Latency": 8494.1, "Median Update Latency": 2680.2, "Tail Update Latency": 224033.1}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 503093.6, "Average Read Latency": 27259.9, "Median Read Latency": 14968.3, "Tail Read Latency": 302063.8, "Average Update Latency": 27562.5, "Median Update Latency": 14974.2, "Tail Update Latency": 332379.0}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 553723.6, "Average Read Latency": 14345.2, "Median Read Latency": 13735.2, "Tail Read Latency": 27670.3, "Average Update Latency": 14616.4, "Median Update Latency": 13730.6, "Tail Update Latency": 28649.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 510898.3, "Average Read Latency": 28812.9, "Median Read Latency": 20017.7, "Tail Read Latency": 281105.9, "Average Update Latency": 29089.1, "Median Update Latency": 20091.7, "Tail Update Latency": 281828.8}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100011.4, "Average Read Latency": 90.7, "Median Read Latency": 87.5, "Tail Read Latency": 138.3, "Average Update Latency": 95.4, "Median Update Latency": 92.9, "Tail Update Latency": 142.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499711.1, "Average Read Latency": 8327.6, "Median Read Latency": 1674.9, "Tail Read Latency": 222153.6, "Average Update Latency": 8470.2, "Median Update Latency": 1998.5, "Tail Update Latency": 222383.0}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 700000, "Actual QPS": 592348.9, "Average Read Latency": 22429.9, "Median Read Latency": 14535.3, "Tail Read Latency": 250032.5, "Average Update Latency": 22501.9, "Median Update Latency": 14602.4, "Tail Update Latency": 250666.1}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 299998.2, "Average Read Latency": 111.9, "Median Read Latency": 98.4, "Tail Read Latency": 247.6, "Average Update Latency": 114.8, "Median Update Latency": 102.1, "Tail Update Latency": 250.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 300043.8, "Average Read Latency": 130.5, "Median Read Latency": 99.8, "Tail Read Latency": 265.6, "Average Update Latency": 153.6, "Median Update Latency": 101.9, "Tail Update Latency": 273.8}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 200054.2, "Average Read Latency": 89.6, "Median Read Latency": 86.0, "Tail Read Latency": 139.9, "Average Update Latency": 92.3, "Median Update Latency": 89.1, "Tail Update Latency": 142.6}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100009.6, "Average Read Latency": 89.2, "Median Read Latency": 86.5, "Tail Read Latency": 133.8, "Average Update Latency": 94.4, "Median Update Latency": 91.7, "Tail Update Latency": 140.7}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 400067.5, "Average Read Latency": 166.9, "Median Read Latency": 121.0, "Tail Read Latency": 530.1, "Average Update Latency": 169.2, "Median Update Latency": 124.6, "Tail Update Latency": 531.4}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 99985.0, "Average Read Latency": 103.7, "Median Read Latency": 92.5, "Tail Read Latency": 145.1, "Average Update Latency": 106.7, "Median Update Latency": 95.9, "Tail Update Latency": 151.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 572728.8, "Average Read Latency": 13951.4, "Median Read Latency": 13192.2, "Tail Read Latency": 27484.6, "Average Update Latency": 14288.4, "Median Update Latency": 13198.7, "Tail Update Latency": 28668.1}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 199978.5, "Average Read Latency": 115.6, "Median Read Latency": 96.3, "Tail Read Latency": 203.3, "Average Update Latency": 115.3, "Median Update Latency": 99.4, "Tail Update Latency": 202.8}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 100000, "Actual QPS": 100015.2, "Average Read Latency": 88.1, "Median Read Latency": 85.7, "Tail Read Latency": 127.7, "Average Update Latency": 92.5, "Median Update Latency": 90.2, "Tail Update Latency": 135.6}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 200091.2, "Average Read Latency": 104.5, "Median Read Latency": 95.5, "Tail Read Latency": 208.6, "Average Update Latency": 109.8, "Median Update Latency": 99.9, "Tail Update Latency": 217.4}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 300003.6, "Average Read Latency": 134.8, "Median Read Latency": 100.1, "Tail Read Latency": 282.5, "Average Update Latency": 153.4, "Median Update Latency": 102.0, "Tail Update Latency": 297.8}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 200006.2, "Average Read Latency": 106.2, "Median Read Latency": 95.4, "Tail Read Latency": 210.5, "Average Update Latency": 111.8, "Median Update Latency": 99.7, "Tail Update Latency": 222.0}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 399973.9, "Average Read Latency": 118.7, "Median Read Latency": 103.5, "Tail Read Latency": 316.0, "Average Update Latency": 121.1, "Median Update Latency": 105.8, "Tail Update Latency": 319.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 200011.6, "Average Read Latency": 108.6, "Median Read Latency": 95.5, "Tail Read Latency": 213.3, "Average Update Latency": 111.8, "Median Update Latency": 99.9, "Tail Update Latency": 220.2}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 300010.0, "Average Read Latency": 110.0, "Median Read Latency": 97.8, "Tail Read Latency": 244.4, "Average Update Latency": 113.2, "Median Update Latency": 101.7, "Tail Update Latency": 248.2}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 567042.7, "Average Read Latency": 14566.9, "Median Read Latency": 13311.0, "Tail Read Latency": 29164.4, "Average Update Latency": 14921.2, "Median Update Latency": 13313.3, "Tail Update Latency": 30006.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 400022.8, "Average Read Latency": 167.0, "Median Read Latency": 122.1, "Tail Read Latency": 535.3, "Average Update Latency": 171.7, "Median Update Latency": 126.1, "Tail Update Latency": 544.0}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 300050.7, "Average Read Latency": 142.8, "Median Read Latency": 99.6, "Tail Read Latency": 279.5, "Average Update Latency": 162.1, "Median Update Latency": 101.8, "Tail Update Latency": 300.7}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 518966.3, "Average Read Latency": 27966.2, "Median Read Latency": 18193.0, "Tail Read Latency": 290564.9, "Average Update Latency": 28624.9, "Median Update Latency": 18190.1, "Tail Update Latency": 312359.9}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 200000, "Actual QPS": 199976.5, "Average Read Latency": 105.5, "Median Read Latency": 94.3, "Tail Read Latency": 181.5, "Average Update Latency": 109.3, "Median Update Latency": 97.2, "Tail Update Latency": 185.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 509784.7, "Average Read Latency": 26075.9, "Median Read Latency": 15354.8, "Tail Read Latency": 289860.0, "Average Update Latency": 27012.3, "Median Update Latency": 15403.5, "Tail Update Latency": 310815.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 100006.3, "Average Read Latency": 89.3, "Median Read Latency": 86.7, "Tail Read Latency": 133.5, "Average Update Latency": 94.4, "Median Update Latency": 92.0, "Tail Update Latency": 141.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 99996.1, "Average Read Latency": 100.6, "Median Read Latency": 93.1, "Tail Read Latency": 146.0, "Average Update Latency": 104.6, "Median Update Latency": 96.4, "Tail Update Latency": 151.3}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 399932.7, "Average Read Latency": 168.1, "Median Read Latency": 120.9, "Tail Read Latency": 543.3, "Average Update Latency": 172.2, "Median Update Latency": 124.6, "Tail Update Latency": 555.4}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 510012.0, "Average Read Latency": 27477.0, "Median Read Latency": 17810.8, "Tail Read Latency": 278074.8, "Average Update Latency": 27532.6, "Median Update Latency": 17687.6, "Tail Update Latency": 280602.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 515347.8, "Average Read Latency": 20116.5, "Median Read Latency": 13066.0, "Tail Read Latency": 250440.9, "Average Update Latency": 20195.8, "Median Update Latency": 13079.4, "Tail Update Latency": 249628.2}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 100003.5, "Average Read Latency": 88.7, "Median Read Latency": 86.2, "Tail Read Latency": 129.9, "Average Update Latency": 93.1, "Median Update Latency": 91.1, "Tail Update Latency": 137.5}], ["forall-03%", "memcached forall-03%", {"Target QPS": 600000, "Actual QPS": 571950.4, "Average Read Latency": 14650.7, "Median Read Latency": 13266.4, "Tail Read Latency": 29087.5, "Average Update Latency": 15017.4, "Median Update Latency": 13285.8, "Tail Update Latency": 29581.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 200018.7, "Average Read Latency": 106.2, "Median Read Latency": 95.7, "Tail Read Latency": 208.7, "Average Update Latency": 112.1, "Median Update Latency": 100.1, "Tail Update Latency": 211.7}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 593036.8, "Average Read Latency": 23002.0, "Median Read Latency": 13835.9, "Tail Read Latency": 257390.4, "Average Update Latency": 23098.3, "Median Update Latency": 13915.7, "Tail Update Latency": 258402.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 300059.8, "Average Read Latency": 161.0, "Median Read Latency": 107.5, "Tail Read Latency": 431.4, "Average Update Latency": 182.1, "Median Update Latency": 110.2, "Tail Update Latency": 545.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 570282.3, "Average Read Latency": 15444.9, "Median Read Latency": 7643.9, "Tail Read Latency": 238626.2, "Average Update Latency": 15417.3, "Median Update Latency": 7655.3, "Tail Update Latency": 238816.9}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 507995.7, "Average Read Latency": 28066.9, "Median Read Latency": 18034.8, "Tail Read Latency": 283091.8, "Average Update Latency": 28166.0, "Median Update Latency": 18205.8, "Tail Update Latency": 284140.3}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 299952.8, "Average Read Latency": 133.1, "Median Read Latency": 98.9, "Tail Read Latency": 283.6, "Average Update Latency": 147.2, "Median Update Latency": 101.3, "Tail Update Latency": 288.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 100051.3, "Average Read Latency": 101.3, "Median Read Latency": 92.5, "Tail Read Latency": 143.8, "Average Update Latency": 107.1, "Median Update Latency": 96.1, "Tail Update Latency": 151.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 700000, "Actual QPS": 547508.5, "Average Read Latency": 14252.4, "Median Read Latency": 13861.6, "Tail Read Latency": 26308.9, "Average Update Latency": 14412.6, "Median Update Latency": 13858.5, "Tail Update Latency": 27712.7}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499905.1, "Average Read Latency": 5400.3, "Median Read Latency": 278.4, "Tail Read Latency": 12363.7, "Average Update Latency": 5421.6, "Median Update Latency": 281.3, "Tail Update Latency": 12367.2}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 700000, "Actual QPS": 593210.9, "Average Read Latency": 23104.9, "Median Read Latency": 12907.2, "Tail Read Latency": 261884.7, "Average Update Latency": 22865.1, "Median Update Latency": 12883.0, "Tail Update Latency": 259122.4}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 400059.0, "Average Read Latency": 168.6, "Median Read Latency": 121.9, "Tail Read Latency": 537.4, "Average Update Latency": 171.9, "Median Update Latency": 125.7, "Tail Update Latency": 539.3}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 399955.5, "Average Read Latency": 169.3, "Median Read Latency": 122.0, "Tail Read Latency": 557.8, "Average Update Latency": 173.4, "Median Update Latency": 125.6, "Tail Update Latency": 558.2}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 559357.5, "Average Read Latency": 14365.2, "Median Read Latency": 13492.1, "Tail Read Latency": 27795.7, "Average Update Latency": 14492.3, "Median Update Latency": 13499.8, "Tail Update Latency": 28596.9}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 399945.2, "Average Read Latency": 169.2, "Median Read Latency": 121.6, "Tail Read Latency": 543.2, "Average Update Latency": 172.8, "Median Update Latency": 125.3, "Tail Update Latency": 549.2}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 300000, "Actual QPS": 299993.8, "Average Read Latency": 101.9, "Median Read Latency": 95.5, "Tail Read Latency": 190.4, "Average Update Latency": 104.7, "Median Update Latency": 98.5, "Tail Update Latency": 193.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 400046.9, "Average Read Latency": 117.4, "Median Read Latency": 103.2, "Tail Read Latency": 302.6, "Average Update Latency": 120.6, "Median Update Latency": 106.0, "Tail Update Latency": 306.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 99993.1, "Average Read Latency": 101.7, "Median Read Latency": 93.3, "Tail Read Latency": 158.3, "Average Update Latency": 108.1, "Median Update Latency": 98.1, "Tail Update Latency": 168.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 506919.4, "Average Read Latency": 27024.9, "Median Read Latency": 17901.4, "Tail Read Latency": 277822.2, "Average Update Latency": 28253.5, "Median Update Latency": 18084.2, "Tail Update Latency": 286769.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 588551.6, "Average Read Latency": 25663.9, "Median Read Latency": 19961.4, "Tail Read Latency": 248767.7, "Average Update Latency": 25615.2, "Median Update Latency": 19878.6, "Tail Update Latency": 247983.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 299997.0, "Average Read Latency": 138.3, "Median Read Latency": 98.9, "Tail Read Latency": 300.1, "Average Update Latency": 155.3, "Median Update Latency": 101.3, "Tail Update Latency": 306.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 99967.6, "Average Read Latency": 103.8, "Median Read Latency": 93.0, "Tail Read Latency": 141.8, "Average Update Latency": 113.5, "Median Update Latency": 97.0, "Tail Update Latency": 150.6}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 299959.8, "Average Read Latency": 102.0, "Median Read Latency": 94.9, "Tail Read Latency": 192.2, "Average Update Latency": 104.6, "Median Update Latency": 97.9, "Tail Update Latency": 195.9}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 200025.5, "Average Read Latency": 89.0, "Median Read Latency": 85.5, "Tail Read Latency": 138.4, "Average Update Latency": 92.5, "Median Update Latency": 88.7, "Tail Update Latency": 141.5}], ["forall-03%", "memcached forall-03%", {"Target QPS": 400000, "Actual QPS": 400014.2, "Average Read Latency": 171.0, "Median Read Latency": 122.8, "Tail Read Latency": 542.9, "Average Update Latency": 174.1, "Median Update Latency": 126.5, "Tail Update Latency": 549.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 300020.4, "Average Read Latency": 102.2, "Median Read Latency": 95.3, "Tail Read Latency": 192.6, "Average Update Latency": 105.2, "Median Update Latency": 98.3, "Tail Update Latency": 199.2}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 540395.5, "Average Read Latency": 14388.0, "Median Read Latency": 14022.2, "Tail Read Latency": 26389.3, "Average Update Latency": 14486.8, "Median Update Latency": 14028.8, "Tail Update Latency": 27305.8}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 399948.1, "Average Read Latency": 463.7, "Median Read Latency": 125.7, "Tail Read Latency": 8285.2, "Average Update Latency": 581.1, "Median Update Latency": 127.7, "Tail Update Latency": 11260.4}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 200024.4, "Average Read Latency": 88.7, "Median Read Latency": 85.6, "Tail Read Latency": 138.1, "Average Update Latency": 91.8, "Median Update Latency": 88.7, "Tail Update Latency": 141.4}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499650.2, "Average Read Latency": 9145.4, "Median Read Latency": 1420.0, "Tail Read Latency": 224903.5, "Average Update Latency": 9142.9, "Median Update Latency": 1580.4, "Tail Update Latency": 224532.9}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 399933.0, "Average Read Latency": 523.0, "Median Read Latency": 125.5, "Tail Read Latency": 9235.9, "Average Update Latency": 681.8, "Median Update Latency": 127.1, "Tail Update Latency": 12691.5}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 516308.4, "Average Read Latency": 28992.8, "Median Read Latency": 19819.7, "Tail Read Latency": 280966.7, "Average Update Latency": 29072.4, "Median Update Latency": 19788.1, "Tail Update Latency": 280297.2}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 484295.8, "Average Read Latency": 21919.3, "Median Read Latency": 12454.4, "Tail Read Latency": 259049.6, "Average Update Latency": 23086.6, "Median Update Latency": 12553.7, "Tail Update Latency": 264019.2}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499391.8, "Average Read Latency": 8575.9, "Median Read Latency": 1663.1, "Tail Read Latency": 223542.7, "Average Update Latency": 8506.5, "Median Update Latency": 1852.2, "Tail Update Latency": 223207.1}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 299984.3, "Average Read Latency": 113.4, "Median Read Latency": 98.1, "Tail Read Latency": 250.1, "Average Update Latency": 117.0, "Median Update Latency": 101.8, "Tail Update Latency": 252.7}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 571610.8, "Average Read Latency": 12509.0, "Median Read Latency": 7345.7, "Tail Read Latency": 233702.6, "Average Update Latency": 12221.3, "Median Update Latency": 7303.4, "Tail Update Latency": 232973.2}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 300079.7, "Average Read Latency": 112.4, "Median Read Latency": 98.5, "Tail Read Latency": 250.7, "Average Update Latency": 115.1, "Median Update Latency": 102.1, "Tail Update Latency": 255.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 100027.0, "Average Read Latency": 102.8, "Median Read Latency": 92.1, "Tail Read Latency": 138.1, "Average Update Latency": 108.1, "Median Update Latency": 95.7, "Tail Update Latency": 147.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 100009.3, "Average Read Latency": 99.1, "Median Read Latency": 93.0, "Tail Read Latency": 158.1, "Average Update Latency": 104.4, "Median Update Latency": 97.8, "Tail Update Latency": 165.2}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 300027.2, "Average Read Latency": 104.3, "Median Read Latency": 96.9, "Tail Read Latency": 198.7, "Average Update Latency": 107.0, "Median Update Latency": 100.4, "Tail Update Latency": 200.3}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 200028.5, "Average Read Latency": 102.9, "Median Read Latency": 95.4, "Tail Read Latency": 209.4, "Average Update Latency": 106.9, "Median Update Latency": 99.7, "Tail Update Latency": 216.4}], ["forall-03%", "memcached forall-03%", {"Target QPS": 200000, "Actual QPS": 199984.2, "Average Read Latency": 105.2, "Median Read Latency": 96.3, "Tail Read Latency": 212.1, "Average Update Latency": 109.6, "Median Update Latency": 100.6, "Tail Update Latency": 215.2}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 300000, "Actual QPS": 300020.4, "Average Read Latency": 101.6, "Median Read Latency": 94.3, "Tail Read Latency": 191.7, "Average Update Latency": 104.7, "Median Update Latency": 97.4, "Tail Update Latency": 195.7}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 484798.9, "Average Read Latency": 23731.1, "Median Read Latency": 12548.1, "Tail Read Latency": 263798.7, "Average Update Latency": 24151.5, "Median Update Latency": 12551.6, "Tail Update Latency": 271590.0}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 600000, "Actual QPS": 503334.9, "Average Read Latency": 28757.0, "Median Read Latency": 19042.8, "Tail Read Latency": 284996.7, "Average Update Latency": 29376.6, "Median Update Latency": 19094.6, "Tail Update Latency": 290900.3}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 600000, "Actual QPS": 576317.5, "Average Read Latency": 11372.2, "Median Read Latency": 7249.5, "Tail Read Latency": 231575.4, "Average Update Latency": 11588.5, "Median Update Latency": 7376.2, "Tail Update Latency": 231991.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 100056.5, "Average Read Latency": 98.8, "Median Read Latency": 93.5, "Tail Read Latency": 162.2, "Average Update Latency": 104.9, "Median Update Latency": 98.6, "Tail Update Latency": 169.2}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 200051.5, "Average Read Latency": 87.9, "Median Read Latency": 85.0, "Tail Read Latency": 135.1, "Average Update Latency": 91.0, "Median Update Latency": 87.9, "Tail Update Latency": 139.4}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 400000, "Actual QPS": 399925.2, "Average Read Latency": 144.2, "Median Read Latency": 108.6, "Tail Read Latency": 561.3, "Average Update Latency": 146.4, "Median Update Latency": 111.7, "Tail Update Latency": 556.9}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 300027.2, "Average Read Latency": 125.6, "Median Read Latency": 106.6, "Tail Read Latency": 305.4, "Average Update Latency": 129.0, "Median Update Latency": 111.2, "Tail Update Latency": 313.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499981.8, "Average Read Latency": 5295.5, "Median Read Latency": 239.2, "Tail Read Latency": 12399.8, "Average Update Latency": 5100.2, "Median Update Latency": 239.8, "Tail Update Latency": 12381.4}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 400013.7, "Average Read Latency": 428.2, "Median Read Latency": 125.7, "Tail Read Latency": 7725.9, "Average Update Latency": 514.3, "Median Update Latency": 127.3, "Tail Update Latency": 9363.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499610.8, "Average Read Latency": 7725.4, "Median Read Latency": 1096.0, "Tail Read Latency": 220663.7, "Average Update Latency": 7807.8, "Median Update Latency": 1088.7, "Tail Update Latency": 220884.8}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 562262.4, "Average Read Latency": 13954.8, "Median Read Latency": 13325.2, "Tail Read Latency": 26805.6, "Average Update Latency": 14106.5, "Median Update Latency": 13324.2, "Tail Update Latency": 27459.1}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 565359.2, "Average Read Latency": 15355.7, "Median Read Latency": 13263.2, "Tail Read Latency": 30446.7, "Average Update Latency": 15863.4, "Median Update Latency": 13278.6, "Tail Update Latency": 36277.4}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 300042.3, "Average Read Latency": 127.2, "Median Read Latency": 106.5, "Tail Read Latency": 303.7, "Average Update Latency": 130.8, "Median Update Latency": 110.6, "Tail Update Latency": 311.5}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 510631.9, "Average Read Latency": 25996.6, "Median Read Latency": 16355.9, "Tail Read Latency": 270251.5, "Average Update Latency": 26602.6, "Median Update Latency": 16392.3, "Tail Update Latency": 276527.3}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 568444.9, "Average Read Latency": 12857.7, "Median Read Latency": 7437.4, "Tail Read Latency": 234820.4, "Average Update Latency": 12587.4, "Median Update Latency": 7534.6, "Tail Update Latency": 234457.6}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 400043.2, "Average Read Latency": 470.6, "Median Read Latency": 124.7, "Tail Read Latency": 8109.4, "Average Update Latency": 622.0, "Median Update Latency": 126.5, "Tail Update Latency": 11995.9}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 100000.6, "Average Read Latency": 89.6, "Median Read Latency": 86.8, "Tail Read Latency": 134.2, "Average Update Latency": 94.1, "Median Update Latency": 91.9, "Tail Update Latency": 141.6}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 100038.7, "Average Read Latency": 98.5, "Median Read Latency": 93.1, "Tail Read Latency": 160.1, "Average Update Latency": 105.4, "Median Update Latency": 98.2, "Tail Update Latency": 167.2}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 99988.2, "Average Read Latency": 99.6, "Median Read Latency": 91.6, "Tail Read Latency": 136.6, "Average Update Latency": 103.1, "Median Update Latency": 95.2, "Tail Update Latency": 142.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 550408.4, "Average Read Latency": 14590.4, "Median Read Latency": 13852.1, "Tail Read Latency": 28401.3, "Average Update Latency": 14941.3, "Median Update Latency": 13859.7, "Tail Update Latency": 29739.4}], ["forall-03%", "memcached forall-03%", {"Target QPS": 500000, "Actual QPS": 499798.4, "Average Read Latency": 8924.3, "Median Read Latency": 2127.7, "Tail Read Latency": 225338.7, "Average Update Latency": 8786.7, "Median Update Latency": 2241.2, "Tail Update Latency": 224300.9}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 399976.6, "Average Read Latency": 118.8, "Median Read Latency": 104.2, "Tail Read Latency": 304.5, "Average Update Latency": 121.9, "Median Update Latency": 106.5, "Tail Update Latency": 308.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 100020.2, "Average Read Latency": 103.1, "Median Read Latency": 93.1, "Tail Read Latency": 145.4, "Average Update Latency": 105.8, "Median Update Latency": 96.7, "Tail Update Latency": 151.0}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 100012.9, "Average Read Latency": 102.5, "Median Read Latency": 91.5, "Tail Read Latency": 137.0, "Average Update Latency": 105.6, "Median Update Latency": 95.3, "Tail Update Latency": 142.6}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 300022.2, "Average Read Latency": 112.0, "Median Read Latency": 99.0, "Tail Read Latency": 247.7, "Average Update Latency": 115.7, "Median Update Latency": 102.4, "Tail Update Latency": 254.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 500000, "Actual QPS": 481629.1, "Average Read Latency": 20240.1, "Median Read Latency": 12284.3, "Tail Read Latency": 252510.7, "Average Update Latency": 20907.6, "Median Update Latency": 12352.3, "Tail Update Latency": 254529.6}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 590343.6, "Average Read Latency": 22679.7, "Median Read Latency": 13386.5, "Tail Read Latency": 257708.6, "Average Update Latency": 23231.8, "Median Update Latency": 13420.2, "Tail Update Latency": 257560.2}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 200000, "Actual QPS": 200010.9, "Average Read Latency": 88.4, "Median Read Latency": 85.1, "Tail Read Latency": 138.3, "Average Update Latency": 91.6, "Median Update Latency": 88.0, "Tail Update Latency": 142.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499673.3, "Average Read Latency": 9035.2, "Median Read Latency": 1348.6, "Tail Read Latency": 225757.8, "Average Update Latency": 8768.2, "Median Update Latency": 1696.9, "Tail Update Latency": 223776.0}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 200000, "Actual QPS": 200055.5, "Average Read Latency": 113.8, "Median Read Latency": 97.6, "Tail Read Latency": 210.4, "Average Update Latency": 131.0, "Median Update Latency": 101.0, "Tail Update Latency": 221.0}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499867.3, "Average Read Latency": 8125.2, "Median Read Latency": 1355.5, "Tail Read Latency": 221254.0, "Average Update Latency": 8165.5, "Median Update Latency": 1166.2, "Tail Update Latency": 221485.9}], ["forall-50%", "memcached forall-50%", {"Target QPS": 700000, "Actual QPS": 555677.3, "Average Read Latency": 14047.0, "Median Read Latency": 13541.2, "Tail Read Latency": 25885.7, "Average Update Latency": 14277.7, "Median Update Latency": 13555.0, "Tail Update Latency": 27197.4}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499947.6, "Average Read Latency": 5042.8, "Median Read Latency": 224.0, "Tail Read Latency": 12245.5, "Average Update Latency": 5012.3, "Median Update Latency": 227.5, "Tail Update Latency": 12240.1}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 400040.6, "Average Read Latency": 463.9, "Median Read Latency": 124.8, "Tail Read Latency": 7746.7, "Average Update Latency": 569.5, "Median Update Latency": 127.3, "Tail Update Latency": 10587.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 300000, "Actual QPS": 300010.1, "Average Read Latency": 141.1, "Median Read Latency": 98.2, "Tail Read Latency": 285.8, "Average Update Latency": 150.3, "Median Update Latency": 100.7, "Tail Update Latency": 276.8}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 499949.1, "Average Read Latency": 5419.5, "Median Read Latency": 300.4, "Tail Read Latency": 12423.5, "Average Update Latency": 5303.5, "Median Update Latency": 293.1, "Tail Update Latency": 12416.4}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 200018.3, "Average Read Latency": 114.8, "Median Read Latency": 97.6, "Tail Read Latency": 210.2, "Average Update Latency": 116.8, "Median Update Latency": 100.7, "Tail Update Latency": 216.4}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 100038.2, "Average Read Latency": 104.2, "Median Read Latency": 92.9, "Tail Read Latency": 144.2, "Average Update Latency": 109.1, "Median Update Latency": 96.4, "Tail Update Latency": 152.3}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 484401.6, "Average Read Latency": 21558.4, "Median Read Latency": 12319.1, "Tail Read Latency": 258615.9, "Average Update Latency": 22006.2, "Median Update Latency": 12340.1, "Tail Update Latency": 258999.9}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 494690.6, "Average Read Latency": 23759.1, "Median Read Latency": 11087.7, "Tail Read Latency": 346888.3, "Average Update Latency": 24927.0, "Median Update Latency": 11301.4, "Tail Update Latency": 369641.7}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 199996.8, "Average Read Latency": 107.2, "Median Read Latency": 95.0, "Tail Read Latency": 207.0, "Average Update Latency": 109.7, "Median Update Latency": 99.5, "Tail Update Latency": 213.4}], ["forall-10%", "memcached forall-10%", {"Target QPS": 600000, "Actual QPS": 573367.3, "Average Read Latency": 14551.3, "Median Read Latency": 13211.3, "Tail Read Latency": 28953.2, "Average Update Latency": 14790.4, "Median Update Latency": 13220.3, "Tail Update Latency": 29323.9}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 100025.5, "Average Read Latency": 109.4, "Median Read Latency": 92.6, "Tail Read Latency": 146.9, "Average Update Latency": 110.9, "Median Update Latency": 96.1, "Tail Update Latency": 151.1}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 505302.2, "Average Read Latency": 26199.1, "Median Read Latency": 14791.3, "Tail Read Latency": 305930.9, "Average Update Latency": 26414.1, "Median Update Latency": 14803.8, "Tail Update Latency": 317169.4}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 100041.4, "Average Read Latency": 101.6, "Median Read Latency": 92.6, "Tail Read Latency": 140.7, "Average Update Latency": 106.6, "Median Update Latency": 96.2, "Tail Update Latency": 147.8}], ["forall-05%", "memcached forall-05%", {"Target QPS": 600000, "Actual QPS": 567443.1, "Average Read Latency": 14017.1, "Median Read Latency": 13347.2, "Tail Read Latency": 28134.1, "Average Update Latency": 14276.4, "Median Update Latency": 13360.3, "Tail Update Latency": 28666.0}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 400032.1, "Average Read Latency": 460.2, "Median Read Latency": 126.2, "Tail Read Latency": 7977.3, "Average Update Latency": 581.7, "Median Update Latency": 128.3, "Tail Update Latency": 10492.6}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 700000, "Actual QPS": 512595.1, "Average Read Latency": 24493.4, "Median Read Latency": 14093.9, "Tail Read Latency": 290183.7, "Average Update Latency": 25151.3, "Median Update Latency": 14213.1, "Tail Update Latency": 302601.0}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499695.4, "Average Read Latency": 8615.6, "Median Read Latency": 2196.7, "Tail Read Latency": 224396.7, "Average Update Latency": 8605.0, "Median Update Latency": 2227.1, "Tail Update Latency": 223455.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 100000, "Actual QPS": 100027.5, "Average Read Latency": 89.8, "Median Read Latency": 87.2, "Tail Read Latency": 133.3, "Average Update Latency": 94.3, "Median Update Latency": 92.4, "Tail Update Latency": 139.5}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 299963.0, "Average Read Latency": 110.5, "Median Read Latency": 97.5, "Tail Read Latency": 243.5, "Average Update Latency": 114.5, "Median Update Latency": 101.3, "Tail Update Latency": 247.5}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 300012.0, "Average Read Latency": 127.5, "Median Read Latency": 99.2, "Tail Read Latency": 271.1, "Average Update Latency": 145.8, "Median Update Latency": 101.4, "Tail Update Latency": 278.4}], ["forall-05%", "memcached forall-05%", {"Target QPS": 700000, "Actual QPS": 548591.9, "Average Read Latency": 14080.5, "Median Read Latency": 13682.4, "Tail Read Latency": 26231.7, "Average Update Latency": 14162.1, "Median Update Latency": 13688.0, "Tail Update Latency": 27022.5}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 200068.1, "Average Read Latency": 88.4, "Median Read Latency": 85.2, "Tail Read Latency": 137.6, "Average Update Latency": 91.3, "Median Update Latency": 88.2, "Tail Update Latency": 141.4}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 300021.0, "Average Read Latency": 127.8, "Median Read Latency": 99.2, "Tail Read Latency": 267.9, "Average Update Latency": 154.2, "Median Update Latency": 101.4, "Tail Update Latency": 287.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 400078.9, "Average Read Latency": 389.8, "Median Read Latency": 126.4, "Tail Read Latency": 6878.3, "Average Update Latency": 467.9, "Median Update Latency": 127.9, "Tail Update Latency": 8047.4}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 500051.4, "Average Read Latency": 5447.9, "Median Read Latency": 293.6, "Tail Read Latency": 12380.8, "Average Update Latency": 5278.9, "Median Update Latency": 256.0, "Tail Update Latency": 12364.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 400000, "Actual QPS": 400019.0, "Average Read Latency": 474.7, "Median Read Latency": 125.8, "Tail Read Latency": 8413.6, "Average Update Latency": 600.8, "Median Update Latency": 127.7, "Tail Update Latency": 11595.5}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 100000, "Actual QPS": 100021.5, "Average Read Latency": 90.3, "Median Read Latency": 87.5, "Tail Read Latency": 136.7, "Average Update Latency": 95.3, "Median Update Latency": 92.9, "Tail Update Latency": 141.5}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 200000, "Actual QPS": 199977.1, "Average Read Latency": 89.2, "Median Read Latency": 86.0, "Tail Read Latency": 139.3, "Average Update Latency": 92.2, "Median Update Latency": 89.1, "Tail Update Latency": 142.0}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 400009.6, "Average Read Latency": 146.2, "Median Read Latency": 107.7, "Tail Read Latency": 651.1, "Average Update Latency": 149.6, "Median Update Latency": 110.5, "Tail Update Latency": 662.1}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 200054.7, "Average Read Latency": 113.8, "Median Read Latency": 96.5, "Tail Read Latency": 205.6, "Average Update Latency": 115.8, "Median Update Latency": 99.8, "Tail Update Latency": 206.9}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 99983.4, "Average Read Latency": 99.8, "Median Read Latency": 92.8, "Tail Read Latency": 158.5, "Average Update Latency": 106.5, "Median Update Latency": 97.6, "Tail Update Latency": 169.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 200000, "Actual QPS": 200000.0, "Average Read Latency": 88.9, "Median Read Latency": 85.6, "Tail Read Latency": 138.0, "Average Update Latency": 92.1, "Median Update Latency": 88.6, "Tail Update Latency": 140.3}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 300018.8, "Average Read Latency": 132.9, "Median Read Latency": 97.8, "Tail Read Latency": 270.9, "Average Update Latency": 144.0, "Median Update Latency": 100.3, "Tail Update Latency": 277.8}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 500000, "Actual QPS": 499933.6, "Average Read Latency": 5930.6, "Median Read Latency": 294.8, "Tail Read Latency": 12498.9, "Average Update Latency": 5931.2, "Median Update Latency": 287.7, "Tail Update Latency": 12512.3}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499882.6, "Average Read Latency": 5493.3, "Median Read Latency": 227.2, "Tail Read Latency": 12458.4, "Average Update Latency": 5486.1, "Median Update Latency": 234.3, "Tail Update Latency": 12468.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 100015.1, "Average Read Latency": 89.5, "Median Read Latency": 86.6, "Tail Read Latency": 134.6, "Average Update Latency": 94.1, "Median Update Latency": 91.4, "Tail Update Latency": 142.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499714.7, "Average Read Latency": 7953.8, "Median Read Latency": 1044.3, "Tail Read Latency": 221317.9, "Average Update Latency": 7729.9, "Median Update Latency": 1112.5, "Tail Update Latency": 219424.9}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 299938.1, "Average Read Latency": 133.1, "Median Read Latency": 100.5, "Tail Read Latency": 277.2, "Average Update Latency": 153.4, "Median Update Latency": 102.7, "Tail Update Latency": 294.5}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 299953.9, "Average Read Latency": 123.4, "Median Read Latency": 106.3, "Tail Read Latency": 299.5, "Average Update Latency": 126.9, "Median Update Latency": 110.5, "Tail Update Latency": 306.8}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 500000, "Actual QPS": 484022.8, "Average Read Latency": 20407.3, "Median Read Latency": 12564.5, "Tail Read Latency": 251713.3, "Average Update Latency": 21120.9, "Median Update Latency": 12565.5, "Tail Update Latency": 254361.9}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 200012.3, "Average Read Latency": 106.2, "Median Read Latency": 94.9, "Tail Read Latency": 205.7, "Average Update Latency": 108.3, "Median Update Latency": 99.0, "Tail Update Latency": 207.2}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 300000, "Actual QPS": 300035.7, "Average Read Latency": 129.7, "Median Read Latency": 99.0, "Tail Read Latency": 270.6, "Average Update Latency": 141.7, "Median Update Latency": 101.0, "Tail Update Latency": 274.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 100041.1, "Average Read Latency": 100.2, "Median Read Latency": 93.7, "Tail Read Latency": 161.9, "Average Update Latency": 104.8, "Median Update Latency": 98.8, "Tail Update Latency": 169.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 99994.8, "Average Read Latency": 98.5, "Median Read Latency": 92.4, "Tail Read Latency": 157.7, "Average Update Latency": 101.3, "Median Update Latency": 97.1, "Tail Update Latency": 167.1}], ["forall-05%", "memcached forall-05%", {"Target QPS": 100000, "Actual QPS": 99997.1, "Average Read Latency": 100.5, "Median Read Latency": 93.0, "Tail Read Latency": 159.3, "Average Update Latency": 109.1, "Median Update Latency": 97.7, "Tail Update Latency": 167.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 100000, "Actual QPS": 99985.3, "Average Read Latency": 87.5, "Median Read Latency": 85.0, "Tail Read Latency": 128.7, "Average Update Latency": 92.1, "Median Update Latency": 89.4, "Tail Update Latency": 135.9}], ["forall-10%", "memcached forall-10%", {"Target QPS": 500000, "Actual QPS": 499959.9, "Average Read Latency": 8138.9, "Median Read Latency": 1398.3, "Tail Read Latency": 221246.4, "Average Update Latency": 8201.1, "Median Update Latency": 1569.4, "Tail Update Latency": 221712.4}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 300025.9, "Average Read Latency": 101.7, "Median Read Latency": 95.3, "Tail Read Latency": 189.7, "Average Update Latency": 104.7, "Median Update Latency": 98.5, "Tail Update Latency": 194.4}], ["forall-50%", "memcached forall-50%", {"Target QPS": 400000, "Actual QPS": 400009.8, "Average Read Latency": 161.8, "Median Read Latency": 119.3, "Tail Read Latency": 513.7, "Average Update Latency": 167.2, "Median Update Latency": 123.8, "Tail Update Latency": 524.0}], ["forall-05%", "memcached forall-05%", {"Target QPS": 500000, "Actual QPS": 499489.9, "Average Read Latency": 9301.7, "Median Read Latency": 1861.8, "Tail Read Latency": 226319.3, "Average Update Latency": 9182.2, "Median Update Latency": 2184.6, "Tail Update Latency": 226013.6}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 400000, "Actual QPS": 399965.8, "Average Read Latency": 357.9, "Median Read Latency": 127.2, "Tail Read Latency": 6023.5, "Average Update Latency": 424.4, "Median Update Latency": 129.3, "Tail Update Latency": 7394.4}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 400000, "Actual QPS": 400014.3, "Average Read Latency": 118.4, "Median Read Latency": 103.9, "Tail Read Latency": 310.9, "Average Update Latency": 121.3, "Median Update Latency": 106.4, "Tail Update Latency": 315.3}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 508966.6, "Average Read Latency": 25190.2, "Median Read Latency": 15430.6, "Tail Read Latency": 287284.2, "Average Update Latency": 26201.8, "Median Update Latency": 15401.7, "Tail Update Latency": 305485.4}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 503720.5, "Average Read Latency": 26359.8, "Median Read Latency": 16415.9, "Tail Read Latency": 271462.3, "Average Update Latency": 26678.0, "Median Update Latency": 16411.5, "Tail Update Latency": 275260.3}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 400000, "Actual QPS": 399945.4, "Average Read Latency": 117.7, "Median Read Latency": 103.2, "Tail Read Latency": 310.7, "Average Update Latency": 120.2, "Median Update Latency": 105.7, "Tail Update Latency": 315.0}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 400000, "Actual QPS": 399999.5, "Average Read Latency": 118.0, "Median Read Latency": 104.3, "Tail Read Latency": 293.7, "Average Update Latency": 120.7, "Median Update Latency": 106.5, "Tail Update Latency": 297.7}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 100000, "Actual QPS": 99991.7, "Average Read Latency": 101.9, "Median Read Latency": 92.8, "Tail Read Latency": 144.8, "Average Update Latency": 105.4, "Median Update Latency": 96.5, "Tail Update Latency": 151.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 700000, "Actual QPS": 506441.1, "Average Read Latency": 24456.6, "Median Read Latency": 14525.2, "Tail Read Latency": 285511.2, "Average Update Latency": 25499.6, "Median Update Latency": 14606.0, "Tail Update Latency": 301393.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 299976.7, "Average Read Latency": 100.6, "Median Read Latency": 94.0, "Tail Read Latency": 188.6, "Average Update Latency": 103.6, "Median Update Latency": 96.8, "Tail Update Latency": 192.4}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 600000, "Actual QPS": 567696.9, "Average Read Latency": 13051.5, "Median Read Latency": 7369.8, "Tail Read Latency": 235143.3, "Average Update Latency": 12805.7, "Median Update Latency": 7364.1, "Tail Update Latency": 234237.3}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 300030.5, "Average Read Latency": 112.5, "Median Read Latency": 98.5, "Tail Read Latency": 247.2, "Average Update Latency": 113.2, "Median Update Latency": 102.2, "Tail Update Latency": 251.4}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 100005.2, "Average Read Latency": 100.1, "Median Read Latency": 92.1, "Tail Read Latency": 140.7, "Average Update Latency": 105.6, "Median Update Latency": 95.7, "Tail Update Latency": 146.4}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 500000, "Actual QPS": 500067.7, "Average Read Latency": 5876.7, "Median Read Latency": 366.0, "Tail Read Latency": 12507.5, "Average Update Latency": 5899.1, "Median Update Latency": 400.2, "Tail Update Latency": 12512.5}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 600000, "Actual QPS": 577266.5, "Average Read Latency": 16203.8, "Median Read Latency": 7678.8, "Tail Read Latency": 238849.1, "Average Update Latency": 15762.5, "Median Update Latency": 7713.8, "Tail Update Latency": 237505.0}], ["forall-50%", "memcached forall-50%", {"Target QPS": 500000, "Actual QPS": 499614.6, "Average Read Latency": 7856.8, "Median Read Latency": 1355.5, "Tail Read Latency": 220300.2, "Average Update Latency": 7820.4, "Median Update Latency": 1287.0, "Tail Update Latency": 219812.0}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 700000, "Actual QPS": 595738.0, "Average Read Latency": 22334.1, "Median Read Latency": 12736.1, "Tail Read Latency": 258683.6, "Average Update Latency": 21679.0, "Median Update Latency": 12755.4, "Tail Update Latency": 254913.9}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 200000, "Actual QPS": 200041.9, "Average Read Latency": 106.9, "Median Read Latency": 96.6, "Tail Read Latency": 205.1, "Average Update Latency": 109.5, "Median Update Latency": 99.9, "Tail Update Latency": 206.3}], ["forall-10%", "memcached forall-10%", {"Target QPS": 200000, "Actual QPS": 200030.6, "Average Read Latency": 103.5, "Median Read Latency": 94.6, "Tail Read Latency": 206.4, "Average Update Latency": 105.9, "Median Update Latency": 98.8, "Tail Update Latency": 208.6}], ["forall-05%", "memcached forall-05%", {"Target QPS": 400000, "Actual QPS": 399984.0, "Average Read Latency": 169.4, "Median Read Latency": 120.9, "Tail Read Latency": 549.8, "Average Update Latency": 174.7, "Median Update Latency": 124.9, "Tail Update Latency": 551.8}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 299997.3, "Average Read Latency": 113.3, "Median Read Latency": 98.8, "Tail Read Latency": 255.1, "Average Update Latency": 117.6, "Median Update Latency": 102.4, "Tail Update Latency": 256.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 300000, "Actual QPS": 300017.8, "Average Read Latency": 125.9, "Median Read Latency": 98.2, "Tail Read Latency": 265.5, "Average Update Latency": 143.6, "Median Update Latency": 100.7, "Tail Update Latency": 271.4}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 300000, "Actual QPS": 300022.9, "Average Read Latency": 104.1, "Median Read Latency": 95.9, "Tail Read Latency": 199.2, "Average Update Latency": 106.9, "Median Update Latency": 99.2, "Tail Update Latency": 202.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 600000, "Actual QPS": 507899.4, "Average Read Latency": 28080.1, "Median Read Latency": 18945.5, "Tail Read Latency": 275551.3, "Average Update Latency": 28358.7, "Median Update Latency": 18965.0, "Tail Update Latency": 278189.0}], ["forall-05%", "memcached forall-05%", {"Target QPS": 200000, "Actual QPS": 199977.7, "Average Read Latency": 103.6, "Median Read Latency": 95.4, "Tail Read Latency": 207.0, "Average Update Latency": 108.8, "Median Update Latency": 99.6, "Tail Update Latency": 211.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 300000, "Actual QPS": 300019.8, "Average Read Latency": 124.9, "Median Read Latency": 106.0, "Tail Read Latency": 302.2, "Average Update Latency": 127.4, "Median Update Latency": 110.4, "Tail Update Latency": 305.9}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 400000, "Actual QPS": 399981.9, "Average Read Latency": 468.1, "Median Read Latency": 126.0, "Tail Read Latency": 8208.7, "Average Update Latency": 579.8, "Median Update Latency": 127.7, "Tail Update Latency": 10982.7}], ["forall-10%", "memcached forall-10%", {"Target QPS": 100000, "Actual QPS": 99987.6, "Average Read Latency": 100.6, "Median Read Latency": 92.8, "Tail Read Latency": 160.4, "Average Update Latency": 106.9, "Median Update Latency": 97.7, "Tail Update Latency": 169.0}], ["forall-10%", "memcached forall-10%", {"Target QPS": 700000, "Actual QPS": 558443.6, "Average Read Latency": 14157.2, "Median Read Latency": 13584.0, "Tail Read Latency": 26641.7, "Average Update Latency": 14262.5, "Median Update Latency": 13594.7, "Tail Update Latency": 27254.7}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 200000, "Actual QPS": 199986.8, "Average Read Latency": 111.6, "Median Read Latency": 95.5, "Tail Read Latency": 195.0, "Average Update Latency": 114.5, "Median Update Latency": 98.5, "Tail Update Latency": 199.5}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 299957.6, "Average Read Latency": 102.9, "Median Read Latency": 96.4, "Tail Read Latency": 191.2, "Average Update Latency": 106.1, "Median Update Latency": 99.8, "Tail Update Latency": 196.0}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 700000, "Actual QPS": 522275.3, "Average Read Latency": 26484.1, "Median Read Latency": 17232.4, "Tail Read Latency": 272985.6, "Average Update Latency": 27297.0, "Median Update Latency": 17348.1, "Tail Update Latency": 281415.5}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 100018.0, "Average Read Latency": 98.5, "Median Read Latency": 92.4, "Tail Read Latency": 159.8, "Average Update Latency": 102.4, "Median Update Latency": 96.9, "Tail Update Latency": 167.7}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 300041.9, "Average Read Latency": 134.0, "Median Read Latency": 99.9, "Tail Read Latency": 285.3, "Average Update Latency": 156.1, "Median Update Latency": 101.8, "Tail Update Latency": 290.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 501184.2, "Average Read Latency": 21410.3, "Median Read Latency": 12462.8, "Tail Read Latency": 262047.2, "Average Update Latency": 22324.8, "Median Update Latency": 12535.7, "Tail Update Latency": 273046.2}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 100000, "Actual QPS": 100043.9, "Average Read Latency": 103.2, "Median Read Latency": 92.7, "Tail Read Latency": 140.6, "Average Update Latency": 110.7, "Median Update Latency": 96.4, "Tail Update Latency": 149.3}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 200041.2, "Average Read Latency": 89.2, "Median Read Latency": 86.0, "Tail Read Latency": 138.7, "Average Update Latency": 92.5, "Median Update Latency": 89.5, "Tail Update Latency": 142.0}], ["vanilla-50%", "memcached vanilla-50%", {"Target QPS": 700000, "Actual QPS": 591067.7, "Average Read Latency": 21240.4, "Median Read Latency": 13162.0, "Tail Read Latency": 250648.8, "Average Update Latency": 21243.8, "Median Update Latency": 13138.5, "Tail Update Latency": 247645.8}], ["vanilla-10%", "memcached vanilla-10%", {"Target QPS": 200000, "Actual QPS": 200072.3, "Average Read Latency": 88.7, "Median Read Latency": 85.3, "Tail Read Latency": 138.9, "Average Update Latency": 92.4, "Median Update Latency": 88.5, "Tail Update Latency": 143.1}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 500000, "Actual QPS": 481232.7, "Average Read Latency": 22700.1, "Median Read Latency": 12996.6, "Tail Read Latency": 259052.4, "Average Update Latency": 22775.5, "Median Update Latency": 13002.3, "Tail Update Latency": 259508.6}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 500000, "Actual QPS": 499992.1, "Average Read Latency": 6241.1, "Median Read Latency": 306.7, "Tail Read Latency": 12520.0, "Average Update Latency": 6136.1, "Median Update Latency": 296.4, "Tail Update Latency": 12519.4}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 100000, "Actual QPS": 100040.2, "Average Read Latency": 97.2, "Median Read Latency": 91.6, "Tail Read Latency": 137.3, "Average Update Latency": 101.2, "Median Update Latency": 95.2, "Tail Update Latency": 143.1}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 100000, "Actual QPS": 99975.3, "Average Read Latency": 100.3, "Median Read Latency": 93.0, "Tail Read Latency": 141.3, "Average Update Latency": 111.2, "Median Update Latency": 96.5, "Tail Update Latency": 148.9}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 507283.1, "Average Read Latency": 26625.7, "Median Read Latency": 17284.3, "Tail Read Latency": 278792.4, "Average Update Latency": 27570.4, "Median Update Latency": 17347.6, "Tail Update Latency": 286627.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 400006.7, "Average Read Latency": 446.7, "Median Read Latency": 130.2, "Tail Read Latency": 7936.4, "Average Update Latency": 534.0, "Median Update Latency": 133.0, "Tail Update Latency": 9307.2}], ["forall-03%", "memcached forall-03%", {"Target QPS": 100000, "Actual QPS": 99964.4, "Average Read Latency": 98.2, "Median Read Latency": 92.6, "Tail Read Latency": 159.8, "Average Update Latency": 103.2, "Median Update Latency": 96.9, "Tail Update Latency": 167.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 600000, "Actual QPS": 516477.1, "Average Read Latency": 28259.9, "Median Read Latency": 18883.1, "Tail Read Latency": 285995.9, "Average Update Latency": 29188.6, "Median Update Latency": 19032.2, "Tail Update Latency": 297574.3}], ["forall-05%", "memcached forall-05%", {"Target QPS": 300000, "Actual QPS": 299970.5, "Average Read Latency": 112.0, "Median Read Latency": 98.1, "Tail Read Latency": 247.2, "Average Update Latency": 114.5, "Median Update Latency": 101.8, "Tail Update Latency": 252.3}], ["fibre-50%", "memcached fibre-50%", {"Target QPS": 400000, "Actual QPS": 400046.7, "Average Read Latency": 394.4, "Median Read Latency": 130.8, "Tail Read Latency": 6972.3, "Average Update Latency": 465.4, "Median Update Latency": 133.0, "Tail Update Latency": 8283.6}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 700000, "Actual QPS": 511452.0, "Average Read Latency": 29471.1, "Median Read Latency": 15455.8, "Tail Read Latency": 363620.8, "Average Update Latency": 30212.1, "Median Update Latency": 15580.3, "Tail Update Latency": 379373.4}], ["vanilla-05%", "memcached vanilla-05%", {"Target QPS": 600000, "Actual QPS": 563901.6, "Average Read Latency": 18021.8, "Median Read Latency": 7991.7, "Tail Read Latency": 241978.7, "Average Update Latency": 17997.3, "Median Update Latency": 8063.6, "Tail Update Latency": 244812.0}], ["fibre-10%", "memcached fibre-10%", {"Target QPS": 600000, "Actual QPS": 508562.5, "Average Read Latency": 27365.3, "Median Read Latency": 17124.7, "Tail Read Latency": 279188.1, "Average Update Latency": 27981.1, "Median Update Latency": 17157.4, "Tail Update Latency": 282790.1}], ["fibre-03%", "memcached fibre-03%", {"Target QPS": 500000, "Actual QPS": 485273.0, "Average Read Latency": 23125.3, "Median Read Latency": 13099.0, "Tail Read Latency": 260145.4, "Average Update Latency": 23238.0, "Median Update Latency": 13095.2, "Tail Update Latency": 260391.9}], ["fibre-05%", "memcached fibre-05%", {"Target QPS": 300000, "Actual QPS": 299980.9, "Average Read Latency": 129.6, "Median Read Latency": 98.8, "Tail Read Latency": 273.2, "Average Update Latency": 153.7, "Median Update Latency": 101.1, "Tail Update Latency": 296.8}], ["vanilla-03%", "memcached vanilla-03%", {"Target QPS": 300000, "Actual QPS": 300001.1, "Average Read Latency": 101.5, "Median Read Latency": 94.6, "Tail Read Latency": 189.0, "Average Update Latency": 103.9, "Median Update Latency": 97.6, "Tail Update Latency": 190.6}], ["forall-03%", "memcached forall-03%", {"Target QPS": 300000, "Actual QPS": 299966.4, "Average Read Latency": 111.0, "Median Read Latency": 99.0, "Tail Read Latency": 250.8, "Average Update Latency": 115.0, "Median Update Latency": 102.8, "Tail Update Latency": 255.2}]]
  • doc/theses/thierry_delisle_PhD/thesis/data/yield.jax

    r12df6fe r4520b77e  
    1 [["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 10 -t 2400", {"Duration (ms)": 10030.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 415071979.0, "Ops per second": 41507197.0, "ns per ops": 24.0, "Ops per threads": 172946.0, "Ops per procs": 17294665.0, "Ops/sec/procs": 1729466.0, "ns per ops/procs": 579.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 10 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 868181095.0, "Ops per second": 86818109.5, "ns per ops": 11.53, "Ops per threads": 361742.0, "Ops per procs": 36174212.0, "Ops/sec/procs": 3617421.23, "ns per ops/procs": 276.64}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 10 -t 100", {"Duration (ms)": 10099.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 90502272.0, "Ops per second": 9050227.0, "ns per ops": 111.0, "Ops per threads": 905022.0, "Ops per procs": 90502272.0, "Ops/sec/procs": 9050227.0, "ns per ops/procs": 111.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 10 -t 100", {"Duration (ms)": 10008.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 100521509.0, "Ops per second": 10043710.22, "ns per ops": 99.56, "Ops per threads": 1005215.0, "Ops per procs": 100521509.0, "Ops/sec/procs": 10043710.22, "ns per ops/procs": 99.56}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 10 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 335861578.0, "Ops per second": 33586157.8, "ns per ops": 29.84, "Ops per threads": 419826.0, "Ops per procs": 41982697.0, "Ops/sec/procs": 4198269.72, "ns per ops/procs": 238.69}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 10 -t 800", {"Duration (ms)": 10099.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 336458246.0, "Ops per second": 33645824.0, "ns per ops": 30.0, "Ops per threads": 420572.0, "Ops per procs": 42057280.0, "Ops/sec/procs": 4205728.0, "ns per ops/procs": 240.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 10 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 863132609.0, "Ops per second": 86313260.9, "ns per ops": 11.59, "Ops per threads": 359638.0, "Ops per procs": 35963858.0, "Ops/sec/procs": 3596385.87, "ns per ops/procs": 278.27}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 10 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 644981830.0, "Ops per second": 64498183.0, "ns per ops": 15.54, "Ops per threads": 403113.0, "Ops per procs": 40311364.0, "Ops/sec/procs": 4031136.44, "ns per ops/procs": 248.71}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 10 -t 1600", {"Duration (ms)": 10022.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 1001843527.0, "Ops per second": 99961538.2, "ns per ops": 10.0, "Ops per threads": 626152.0, "Ops per procs": 62615220.0, "Ops/sec/procs": 6247596.14, "ns per ops/procs": 160.06}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 10 -t 2400", {"Duration (ms)": 10021.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1448950383.0, "Ops per second": 144584592.02, "ns per ops": 6.92, "Ops per threads": 603729.0, "Ops per procs": 60372932.0, "Ops/sec/procs": 6024358.0, "ns per ops/procs": 165.99}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 10 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 67367876.0, "Ops per second": 6736787.6, "ns per ops": 148.69, "Ops per threads": 673678.0, "Ops per procs": 67367876.0, "Ops/sec/procs": 6736787.6, "ns per ops/procs": 148.69}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 10 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 635515991.0, "Ops per second": 63551599.1, "ns per ops": 15.77, "Ops per threads": 397197.0, "Ops per procs": 39719749.0, "Ops/sec/procs": 3971974.94, "ns per ops/procs": 252.34}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 10 -t 1600", {"Duration (ms)": 10001.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 647292406.0, "Ops per second": 64729240.0, "ns per ops": 15.0, "Ops per threads": 404557.0, "Ops per procs": 40455775.0, "Ops/sec/procs": 4045577.0, "ns per ops/procs": 247.0}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 10 -t 800", {"Duration (ms)": 10002.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 32040808.0, "Ops per second": 3203363.64, "ns per ops": 312.17, "Ops per threads": 40051.0, "Ops per procs": 4005101.0, "Ops/sec/procs": 400420.45, "ns per ops/procs": 2497.37}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 10 -t 2400", {"Duration (ms)": 10003.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 23453819.0, "Ops per second": 2344620.16, "ns per ops": 426.51, "Ops per threads": 9772.0, "Ops per procs": 977242.0, "Ops/sec/procs": 97692.51, "ns per ops/procs": 10236.2}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 10 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 67463939.0, "Ops per second": 6746393.9, "ns per ops": 148.47, "Ops per threads": 674639.0, "Ops per procs": 67463939.0, "Ops/sec/procs": 6746393.9, "ns per ops/procs": 148.47}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 10 -t 800", {"Duration (ms)": 10009.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 447365602.0, "Ops per second": 44693347.97, "ns per ops": 22.37, "Ops per threads": 559207.0, "Ops per procs": 55920700.0, "Ops/sec/procs": 5586668.5, "ns per ops/procs": 179.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 10 -t 1600", {"Duration (ms)": 10022.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 1004323666.0, "Ops per second": 100208984.11, "ns per ops": 9.98, "Ops per threads": 627702.0, "Ops per procs": 62770229.0, "Ops/sec/procs": 6263061.51, "ns per ops/procs": 159.67}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 10 -t 2400", {"Duration (ms)": 10022.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1438830223.0, "Ops per second": 143560196.99, "ns per ops": 6.97, "Ops per threads": 599512.0, "Ops per procs": 59951259.0, "Ops/sec/procs": 5981674.87, "ns per ops/procs": 167.18}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 10 -t 1600", {"Duration (ms)": 10002.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 26637182.0, "Ops per second": 2663052.8, "ns per ops": 375.51, "Ops per threads": 16648.0, "Ops per procs": 1664823.0, "Ops/sec/procs": 166440.8, "ns per ops/procs": 6008.14}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 10 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 638755972.0, "Ops per second": 63875597.2, "ns per ops": 15.7, "Ops per threads": 399222.0, "Ops per procs": 39922248.0, "Ops/sec/procs": 3992224.83, "ns per ops/procs": 251.13}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 10 -t 2400", {"Duration (ms)": 10005.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 430182652.0, "Ops per second": 43018265.0, "ns per ops": 23.0, "Ops per threads": 179242.0, "Ops per procs": 17924277.0, "Ops/sec/procs": 1792427.0, "ns per ops/procs": 558.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 10 -t 100", {"Duration (ms)": 10008.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 100472124.0, "Ops per second": 10038792.53, "ns per ops": 99.61, "Ops per threads": 1004721.0, "Ops per procs": 100472124.0, "Ops/sec/procs": 10038792.53, "ns per ops/procs": 99.61}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 10 -t 100", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 117008332.0, "Ops per second": 11700304.5, "ns per ops": 85.47, "Ops per threads": 1170083.0, "Ops per procs": 117008332.0, "Ops/sec/procs": 11700304.5, "ns per ops/procs": 85.47}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 10 -t 2400", {"Duration (ms)": 10003.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 23810780.0, "Ops per second": 2380314.39, "ns per ops": 420.11, "Ops per threads": 9921.0, "Ops per procs": 992115.0, "Ops/sec/procs": 99179.77, "ns per ops/procs": 10082.7}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 10 -t 1600", {"Duration (ms)": 10000.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 675450930.0, "Ops per second": 67545093.0, "ns per ops": 14.0, "Ops per threads": 422156.0, "Ops per procs": 42215683.0, "Ops/sec/procs": 4221568.0, "ns per ops/procs": 236.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 10 -t 100", {"Duration (ms)": 10008.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 100428805.0, "Ops per second": 10034445.55, "ns per ops": 99.66, "Ops per threads": 1004288.0, "Ops per procs": 100428805.0, "Ops/sec/procs": 10034445.55, "ns per ops/procs": 99.66}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 10 -t 100", {"Duration (ms)": 10099.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 90311107.0, "Ops per second": 9031110.0, "ns per ops": 111.0, "Ops per threads": 903111.0, "Ops per procs": 90311107.0, "Ops/sec/procs": 9031110.0, "ns per ops/procs": 111.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 10 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 333502891.0, "Ops per second": 33350289.1, "ns per ops": 30.05, "Ops per threads": 416878.0, "Ops per procs": 41687861.0, "Ops/sec/procs": 4168786.14, "ns per ops/procs": 240.38}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 10 -t 800", {"Duration (ms)": 10002.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 32147984.0, "Ops per second": 3214143.7, "ns per ops": 311.12, "Ops per threads": 40184.0, "Ops per procs": 4018498.0, "Ops/sec/procs": 401767.96, "ns per ops/procs": 2489.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 10 -t 1600", {"Duration (ms)": 10003.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 689066173.0, "Ops per second": 68906617.0, "ns per ops": 14.0, "Ops per threads": 430666.0, "Ops per procs": 43066635.0, "Ops/sec/procs": 4306663.0, "ns per ops/procs": 232.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 10 -t 800", {"Duration (ms)": 10019.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 441418651.0, "Ops per second": 44056605.57, "ns per ops": 22.7, "Ops per threads": 551773.0, "Ops per procs": 55177331.0, "Ops/sec/procs": 5507075.7, "ns per ops/procs": 181.58}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 10 -t 1600", {"Duration (ms)": 10028.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 999658036.0, "Ops per second": 99685104.34, "ns per ops": 10.03, "Ops per threads": 624786.0, "Ops per procs": 62478627.0, "Ops/sec/procs": 6230319.02, "ns per ops/procs": 160.51}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 10 -t 1600", {"Duration (ms)": 10002.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 26737174.0, "Ops per second": 2672964.85, "ns per ops": 374.12, "Ops per threads": 16710.0, "Ops per procs": 1671073.0, "Ops/sec/procs": 167060.3, "ns per ops/procs": 5985.86}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 10 -t 100", {"Duration (ms)": 10099.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 90695862.0, "Ops per second": 9069586.0, "ns per ops": 111.0, "Ops per threads": 906958.0, "Ops per procs": 90695862.0, "Ops/sec/procs": 9069586.0, "ns per ops/procs": 111.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 10 -t 2400", {"Duration (ms)": 10004.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1440698903.0, "Ops per second": 144010330.78, "ns per ops": 6.94, "Ops per threads": 600291.0, "Ops per procs": 60029120.0, "Ops/sec/procs": 6000430.45, "ns per ops/procs": 166.65}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 10 -t 2400", {"Duration (ms)": 10003.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 23253629.0, "Ops per second": 2324527.32, "ns per ops": 430.19, "Ops per threads": 9689.0, "Ops per procs": 968901.0, "Ops/sec/procs": 96855.3, "ns per ops/procs": 10324.68}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 10 -t 100", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 116842959.0, "Ops per second": 11683781.88, "ns per ops": 85.59, "Ops per threads": 1168429.0, "Ops per procs": 116842959.0, "Ops/sec/procs": 11683781.88, "ns per ops/procs": 85.59}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 10 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 67109099.0, "Ops per second": 6710909.9, "ns per ops": 149.26, "Ops per threads": 671090.0, "Ops per procs": 67109099.0, "Ops/sec/procs": 6710909.9, "ns per ops/procs": 149.26}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 10 -t 100", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 116630659.0, "Ops per second": 11662547.92, "ns per ops": 85.74, "Ops per threads": 1166306.0, "Ops per procs": 116630659.0, "Ops/sec/procs": 11662547.92, "ns per ops/procs": 85.74}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 10 -t 800", {"Duration (ms)": 10009.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 438143011.0, "Ops per second": 43771074.82, "ns per ops": 22.85, "Ops per threads": 547678.0, "Ops per procs": 54767876.0, "Ops/sec/procs": 5471384.35, "ns per ops/procs": 182.77}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 10 -t 1600", {"Duration (ms)": 10002.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 26832358.0, "Ops per second": 2682510.65, "ns per ops": 372.79, "Ops per threads": 16770.0, "Ops per procs": 1677022.0, "Ops/sec/procs": 167656.92, "ns per ops/procs": 5964.56}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 10 -t 800", {"Duration (ms)": 10100.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 357826049.0, "Ops per second": 35782604.0, "ns per ops": 28.0, "Ops per threads": 447282.0, "Ops per procs": 44728256.0, "Ops/sec/procs": 4472825.0, "ns per ops/procs": 225.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 10 -t 800", {"Duration (ms)": 10100.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 331894279.0, "Ops per second": 33189427.0, "ns per ops": 30.0, "Ops per threads": 414867.0, "Ops per procs": 41486784.0, "Ops/sec/procs": 4148678.0, "ns per ops/procs": 243.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 10 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 335906841.0, "Ops per second": 33590684.1, "ns per ops": 29.83, "Ops per threads": 419883.0, "Ops per procs": 41988355.0, "Ops/sec/procs": 4198835.51, "ns per ops/procs": 238.65}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 10 -t 800", {"Duration (ms)": 10002.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 31669651.0, "Ops per second": 3166283.11, "ns per ops": 315.83, "Ops per threads": 39587.0, "Ops per procs": 3958706.0, "Ops/sec/procs": 395785.39, "ns per ops/procs": 2526.62}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 10 -t 2400", {"Duration (ms)": 10005.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 431374888.0, "Ops per second": 43137488.0, "ns per ops": 23.0, "Ops per threads": 179739.0, "Ops per procs": 17973953.0, "Ops/sec/procs": 1797395.0, "ns per ops/procs": 556.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 10 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 859381490.0, "Ops per second": 85938149.0, "ns per ops": 11.64, "Ops per threads": 358075.0, "Ops per procs": 35807562.0, "Ops/sec/procs": 3580756.21, "ns per ops/procs": 279.37}]]
     1[["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30013.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1524198901.0, "Ops per second": 50806630.0, "ns per ops": 19.0, "Ops per threads": 635082.0, "Ops per procs": 63508287.0, "Ops/sec/procs": 2116942.0, "ns per ops/procs": 472.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30021.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1647763187.0, "Ops per second": 54925439.0, "ns per ops": 18.0, "Ops per threads": 686567.0, "Ops per procs": 68656799.0, "Ops/sec/procs": 2288559.0, "ns per ops/procs": 437.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1286467979.0, "Ops per second": 42841170.98, "ns per ops": 23.34, "Ops per threads": 1608084.0, "Ops per procs": 160808497.0, "Ops/sec/procs": 5355146.37, "ns per ops/procs": 186.74}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 217569556.0, "Ops per second": 7252318.53, "ns per ops": 138.12, "Ops per threads": 2175695.0, "Ops per procs": 217569556.0, "Ops/sec/procs": 7252318.53, "ns per ops/procs": 138.12}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30100.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 529747506.0, "Ops per second": 17658250.0, "ns per ops": 56.0, "Ops per threads": 73576.0, "Ops per procs": 7357604.0, "Ops/sec/procs": 245253.0, "ns per ops/procs": 4091.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3459578347.0, "Ops per second": 115196108.04, "ns per ops": 8.68, "Ops per threads": 2162236.0, "Ops per procs": 216223646.0, "Ops/sec/procs": 7199756.75, "ns per ops/procs": 138.89}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 370889307.0, "Ops per second": 12362976.0, "ns per ops": 81.0, "Ops per threads": 1854446.0, "Ops per procs": 185444653.0, "Ops/sec/procs": 6181488.0, "ns per ops/procs": 162.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30092.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 10383429506.0, "Ops per second": 345045607.23, "ns per ops": 2.9, "Ops per threads": 1442142.0, "Ops per procs": 144214298.0, "Ops/sec/procs": 4792300.1, "ns per ops/procs": 208.67}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30017.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 10433330828.0, "Ops per second": 347573509.01, "ns per ops": 2.88, "Ops per threads": 1449073.0, "Ops per procs": 144907372.0, "Ops/sec/procs": 4827409.85, "ns per ops/procs": 207.15}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4304000687.0, "Ops per second": 143466689.57, "ns per ops": 6.98, "Ops per threads": 896666.0, "Ops per procs": 89666680.0, "Ops/sec/procs": 2988889.37, "ns per ops/procs": 335.16}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30009.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 71476691.0, "Ops per second": 2381809.29, "ns per ops": 419.85, "Ops per threads": 29781.0, "Ops per procs": 2978195.0, "Ops/sec/procs": 99242.05, "ns per ops/procs": 10076.37}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2141199531.0, "Ops per second": 71373317.7, "ns per ops": 14.05, "Ops per threads": 1338249.0, "Ops per procs": 133824970.0, "Ops/sec/procs": 4460832.36, "ns per ops/procs": 224.75}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6503076181.0, "Ops per second": 216769206.03, "ns per ops": 4.63, "Ops per threads": 903205.0, "Ops per procs": 90320502.0, "Ops/sec/procs": 3010683.42, "ns per ops/procs": 333.15}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17574119536.0, "Ops per second": 585803984.53, "ns per ops": 1.71, "Ops per threads": 915318.0, "Ops per procs": 91531872.0, "Ops/sec/procs": 3051062.42, "ns per ops/procs": 328.06}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 560317381.0, "Ops per second": 18677246.0, "ns per ops": 53.0, "Ops per threads": 1400793.0, "Ops per procs": 140079345.0, "Ops/sec/procs": 4669311.0, "ns per ops/procs": 214.0}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30007.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 77369142.0, "Ops per second": 2578291.11, "ns per ops": 387.85, "Ops per threads": 48355.0, "Ops per procs": 4835571.0, "Ops/sec/procs": 161143.19, "ns per ops/procs": 6205.66}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 971524584.0, "Ops per second": 32384152.0, "ns per ops": 30.0, "Ops per threads": 1214405.0, "Ops per procs": 121440573.0, "Ops/sec/procs": 4048019.0, "ns per ops/procs": 247.0}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30022.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 67484348.0, "Ops per second": 2247786.04, "ns per ops": 444.88, "Ops per threads": 14059.0, "Ops per procs": 1405923.0, "Ops/sec/procs": 46828.88, "ns per ops/procs": 21354.35}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2149923279.0, "Ops per second": 71664109.3, "ns per ops": 13.99, "Ops per threads": 1343702.0, "Ops per procs": 134370204.0, "Ops/sec/procs": 4479006.83, "ns per ops/procs": 223.84}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30081.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6536575073.0, "Ops per second": 217292656.37, "ns per ops": 4.6, "Ops per threads": 1361786.0, "Ops per procs": 136178647.0, "Ops/sec/procs": 4526930.34, "ns per ops/procs": 220.9}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30033.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6584661335.0, "Ops per second": 219241547.4, "ns per ops": 4.56, "Ops per threads": 1371804.0, "Ops per procs": 137180444.0, "Ops/sec/procs": 4567532.24, "ns per ops/procs": 218.94}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 72081291.0, "Ops per second": 2402125.61, "ns per ops": 416.3, "Ops per threads": 30033.0, "Ops per procs": 3003387.0, "Ops/sec/procs": 100088.57, "ns per ops/procs": 9991.15}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 217360154.0, "Ops per second": 7245338.47, "ns per ops": 138.25, "Ops per threads": 2173601.0, "Ops per procs": 217360154.0, "Ops/sec/procs": 7245338.47, "ns per ops/procs": 138.25}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 388046191.0, "Ops per second": 12934873.0, "ns per ops": 77.0, "Ops per threads": 1940230.0, "Ops per procs": 194023095.0, "Ops/sec/procs": 6467436.0, "ns per ops/procs": 155.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4312137554.0, "Ops per second": 143737918.47, "ns per ops": 6.97, "Ops per threads": 898361.0, "Ops per procs": 89836199.0, "Ops/sec/procs": 2994539.97, "ns per ops/procs": 334.65}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17533818565.0, "Ops per second": 584460618.83, "ns per ops": 1.71, "Ops per threads": 913219.0, "Ops per procs": 91321971.0, "Ops/sec/procs": 3044065.72, "ns per ops/procs": 328.79}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30032.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 301189491.0, "Ops per second": 10039649.0, "ns per ops": 99.0, "Ops per threads": 20915.0, "Ops per procs": 2091593.0, "Ops/sec/procs": 69719.0, "ns per ops/procs": 14358.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 568098502.0, "Ops per second": 18936616.73, "ns per ops": 52.9, "Ops per threads": 1420246.0, "Ops per procs": 142024625.0, "Ops/sec/procs": 4734154.18, "ns per ops/procs": 211.62}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30087.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 30178268.0, "Ops per second": 1003033.39, "ns per ops": 996.98, "Ops per threads": 2095.0, "Ops per procs": 209571.0, "Ops/sec/procs": 6965.51, "ns per ops/procs": 143564.51}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2162319177.0, "Ops per second": 72077305.9, "ns per ops": 13.91, "Ops per threads": 1351449.0, "Ops per procs": 135144948.0, "Ops/sec/procs": 4504831.62, "ns per ops/procs": 222.55}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30034.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 27481947.0, "Ops per second": 915020.5, "ns per ops": 1092.87, "Ops per threads": 1431.0, "Ops per procs": 143135.0, "Ops/sec/procs": 4765.73, "ns per ops/procs": 209831.37}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30018.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4404828820.0, "Ops per second": 146737094.38, "ns per ops": 6.81, "Ops per threads": 1835345.0, "Ops per procs": 183534534.0, "Ops/sec/procs": 6114045.6, "ns per ops/procs": 163.56}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6583419059.0, "Ops per second": 219447301.97, "ns per ops": 4.56, "Ops per threads": 914363.0, "Ops per procs": 91436375.0, "Ops/sec/procs": 3047879.19, "ns per ops/procs": 328.19}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30070.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 572622583.0, "Ops per second": 19087419.0, "ns per ops": 52.0, "Ops per threads": 79530.0, "Ops per procs": 7953091.0, "Ops/sec/procs": 265103.0, "ns per ops/procs": 3780.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30060.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6561452892.0, "Ops per second": 218275581.67, "ns per ops": 4.58, "Ops per threads": 1366969.0, "Ops per procs": 136696935.0, "Ops/sec/procs": 4547407.95, "ns per ops/procs": 219.91}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 364297806.0, "Ops per second": 12143260.0, "ns per ops": 82.0, "Ops per threads": 1821489.0, "Ops per procs": 182148903.0, "Ops/sec/procs": 6071630.0, "ns per ops/procs": 165.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30032.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6559306663.0, "Ops per second": 218406116.22, "ns per ops": 4.58, "Ops per threads": 1366522.0, "Ops per procs": 136652222.0, "Ops/sec/procs": 4550127.42, "ns per ops/procs": 219.77}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30007.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 77847861.0, "Ops per second": 2594262.52, "ns per ops": 385.47, "Ops per threads": 48654.0, "Ops per procs": 4865491.0, "Ops/sec/procs": 162141.41, "ns per ops/procs": 6167.46}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30016.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13237635607.0, "Ops per second": 441012358.7, "ns per ops": 2.27, "Ops per threads": 1378920.0, "Ops per procs": 137892037.0, "Ops/sec/procs": 4593878.74, "ns per ops/procs": 217.68}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30080.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 297542805.0, "Ops per second": 9918093.0, "ns per ops": 101.0, "Ops per threads": 20662.0, "Ops per procs": 2066269.0, "Ops/sec/procs": 68875.0, "ns per ops/procs": 14557.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 12837710040.0, "Ops per second": 427923668.0, "ns per ops": 2.34, "Ops per threads": 891507.0, "Ops per procs": 89150764.0, "Ops/sec/procs": 2971692.14, "ns per ops/procs": 336.84}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30090.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 25926148.0, "Ops per second": 861595.2, "ns per ops": 1160.64, "Ops per threads": 1350.0, "Ops per procs": 135032.0, "Ops/sec/procs": 4487.48, "ns per ops/procs": 222842.47}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30019.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13238180866.0, "Ops per second": 440987305.78, "ns per ops": 2.27, "Ops per threads": 1378977.0, "Ops per procs": 137897717.0, "Ops/sec/procs": 4593617.77, "ns per ops/procs": 217.69}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 92582575.0, "Ops per second": 3085440.51, "ns per ops": 324.1, "Ops per threads": 115728.0, "Ops per procs": 11572821.0, "Ops/sec/procs": 385680.06, "ns per ops/procs": 2592.82}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 69824862.0, "Ops per second": 2326904.32, "ns per ops": 429.76, "Ops per threads": 29093.0, "Ops per procs": 2909369.0, "Ops/sec/procs": 96954.35, "ns per ops/procs": 10314.13}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 174858150.0, "Ops per second": 5827747.59, "ns per ops": 171.59, "Ops per threads": 874290.0, "Ops per procs": 87429075.0, "Ops/sec/procs": 2913873.79, "ns per ops/procs": 343.19}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30032.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 35747088.0, "Ops per second": 1190289.87, "ns per ops": 840.13, "Ops per threads": 4964.0, "Ops per procs": 496487.0, "Ops/sec/procs": 16531.8, "ns per ops/procs": 60489.47}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30020.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 68229333.0, "Ops per second": 2272724.7, "ns per ops": 440.0, "Ops per threads": 14214.0, "Ops per procs": 1421444.0, "Ops/sec/procs": 47348.43, "ns per ops/procs": 21120.02}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 574557348.0, "Ops per second": 19151911.6, "ns per ops": 52.31, "Ops per threads": 1436393.0, "Ops per procs": 143639337.0, "Ops/sec/procs": 4787977.9, "ns per ops/procs": 209.24}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 176296287.0, "Ops per second": 5875653.96, "ns per ops": 170.19, "Ops per threads": 881481.0, "Ops per procs": 88148143.0, "Ops/sec/procs": 2937826.98, "ns per ops/procs": 340.39}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 704355144.0, "Ops per second": 23455563.61, "ns per ops": 42.63, "Ops per threads": 1760887.0, "Ops per procs": 176088786.0, "Ops/sec/procs": 5863890.9, "ns per ops/procs": 170.54}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 164333836.0, "Ops per second": 5476981.0, "ns per ops": 182.58, "Ops per threads": 821669.0, "Ops per procs": 82166918.0, "Ops/sec/procs": 2738490.5, "ns per ops/procs": 365.16}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 10372581494.0, "Ops per second": 344628717.75, "ns per ops": 2.9, "Ops per threads": 1440636.0, "Ops per procs": 144063631.0, "Ops/sec/procs": 4786509.97, "ns per ops/procs": 208.92}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30005.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 116666322.0, "Ops per second": 3888227.48, "ns per ops": 257.19, "Ops per threads": 291665.0, "Ops per procs": 29166580.0, "Ops/sec/procs": 972056.87, "ns per ops/procs": 1028.75}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30062.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 545115531.0, "Ops per second": 18170517.0, "ns per ops": 55.0, "Ops per threads": 56782.0, "Ops per procs": 5678286.0, "Ops/sec/procs": 189276.0, "ns per ops/procs": 5294.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 215846142.0, "Ops per second": 7194871.4, "ns per ops": 139.22, "Ops per threads": 2158461.0, "Ops per procs": 215846142.0, "Ops/sec/procs": 7194871.4, "ns per ops/procs": 139.22}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30014.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6699494079.0, "Ops per second": 223211162.78, "ns per ops": 4.48, "Ops per threads": 1395727.0, "Ops per procs": 139572793.0, "Ops/sec/procs": 4650232.56, "ns per ops/procs": 215.04}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30013.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6644053587.0, "Ops per second": 221366729.01, "ns per ops": 4.52, "Ops per threads": 1384177.0, "Ops per procs": 138417783.0, "Ops/sec/procs": 4611806.85, "ns per ops/procs": 216.83}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 217512137.0, "Ops per second": 7250404.57, "ns per ops": 138.15, "Ops per threads": 2175121.0, "Ops per procs": 217512137.0, "Ops/sec/procs": 7250404.57, "ns per ops/procs": 138.15}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30014.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 533202066.0, "Ops per second": 17773402.0, "ns per ops": 56.0, "Ops per threads": 55541.0, "Ops per procs": 5554188.0, "Ops/sec/procs": 185139.0, "ns per ops/procs": 5403.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6584977971.0, "Ops per second": 219499265.7, "ns per ops": 4.56, "Ops per threads": 914580.0, "Ops per procs": 91458027.0, "Ops/sec/procs": 3048600.91, "ns per ops/procs": 328.54}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8219635670.0, "Ops per second": 273987855.67, "ns per ops": 3.65, "Ops per threads": 856212.0, "Ops per procs": 85621204.0, "Ops/sec/procs": 2854040.16, "ns per ops/procs": 350.73}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30028.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 27715502.0, "Ops per second": 922966.54, "ns per ops": 1083.46, "Ops per threads": 1443.0, "Ops per procs": 144351.0, "Ops/sec/procs": 4807.12, "ns per ops/procs": 208024.88}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30023.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1653659453.0, "Ops per second": 55121981.0, "ns per ops": 18.0, "Ops per threads": 689024.0, "Ops per procs": 68902477.0, "Ops/sec/procs": 2296749.0, "ns per ops/procs": 435.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 12874643435.0, "Ops per second": 429154781.17, "ns per ops": 2.33, "Ops per threads": 894072.0, "Ops per procs": 89407246.0, "Ops/sec/procs": 2980241.54, "ns per ops/procs": 335.97}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 11894714528.0, "Ops per second": 396490484.27, "ns per ops": 2.53, "Ops per threads": 826021.0, "Ops per procs": 82602184.0, "Ops/sec/procs": 2753406.14, "ns per ops/procs": 363.96}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1006859672.0, "Ops per second": 33561989.07, "ns per ops": 29.86, "Ops per threads": 1258574.0, "Ops per procs": 125857459.0, "Ops/sec/procs": 4195248.63, "ns per ops/procs": 238.86}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 991623799.0, "Ops per second": 33054126.0, "ns per ops": 30.0, "Ops per threads": 1239529.0, "Ops per procs": 123952974.0, "Ops/sec/procs": 4131765.0, "ns per ops/procs": 242.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30032.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1160982442.0, "Ops per second": 38699414.0, "ns per ops": 25.0, "Ops per threads": 241871.0, "Ops per procs": 24187134.0, "Ops/sec/procs": 806237.0, "ns per ops/procs": 1241.0}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 349890312.0, "Ops per second": 11662521.11, "ns per ops": 85.74, "Ops per threads": 3498903.0, "Ops per procs": 349890312.0, "Ops/sec/procs": 11662521.11, "ns per ops/procs": 85.74}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30004.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 115009338.0, "Ops per second": 3833011.98, "ns per ops": 260.89, "Ops per threads": 287523.0, "Ops per procs": 28752334.0, "Ops/sec/procs": 958253.0, "ns per ops/procs": 1043.57}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 71525924.0, "Ops per second": 2383581.27, "ns per ops": 419.54, "Ops per threads": 29802.0, "Ops per procs": 2980246.0, "Ops/sec/procs": 99315.89, "ns per ops/procs": 10068.88}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30033.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1304952512.0, "Ops per second": 43449417.0, "ns per ops": 23.02, "Ops per threads": 1631190.0, "Ops per procs": 163119064.0, "Ops/sec/procs": 5431177.12, "ns per ops/procs": 184.12}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17509225918.0, "Ops per second": 583640863.93, "ns per ops": 1.71, "Ops per threads": 911938.0, "Ops per procs": 91193884.0, "Ops/sec/procs": 3039796.17, "ns per ops/procs": 329.21}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30099.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2755726891.0, "Ops per second": 91857563.0, "ns per ops": 10.0, "Ops per threads": 1722329.0, "Ops per procs": 172232930.0, "Ops/sec/procs": 5741097.0, "ns per ops/procs": 174.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30032.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 566048145.0, "Ops per second": 18868271.0, "ns per ops": 53.0, "Ops per threads": 78617.0, "Ops per procs": 7861779.0, "Ops/sec/procs": 262059.0, "ns per ops/procs": 3820.0}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30023.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 67180919.0, "Ops per second": 2237640.77, "ns per ops": 446.9, "Ops per threads": 13996.0, "Ops per procs": 1399602.0, "Ops/sec/procs": 46617.52, "ns per ops/procs": 21451.16}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30021.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 68243807.0, "Ops per second": 2273163.72, "ns per ops": 439.92, "Ops per threads": 14217.0, "Ops per procs": 1421745.0, "Ops/sec/procs": 47357.58, "ns per ops/procs": 21115.94}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 173556314.0, "Ops per second": 5784366.21, "ns per ops": 172.88, "Ops per threads": 867781.0, "Ops per procs": 86778157.0, "Ops/sec/procs": 2892183.1, "ns per ops/procs": 345.76}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 345203759.0, "Ops per second": 11506316.41, "ns per ops": 86.91, "Ops per threads": 3452037.0, "Ops per procs": 345203759.0, "Ops/sec/procs": 11506316.41, "ns per ops/procs": 86.91}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30023.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1539132659.0, "Ops per second": 51304421.0, "ns per ops": 19.0, "Ops per threads": 641305.0, "Ops per procs": 64130527.0, "Ops/sec/procs": 2137684.0, "ns per ops/procs": 468.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30010.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13457284769.0, "Ops per second": 448426408.99, "ns per ops": 2.23, "Ops per threads": 1401800.0, "Ops per procs": 140180049.0, "Ops/sec/procs": 4671108.43, "ns per ops/procs": 214.08}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30004.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 116149365.0, "Ops per second": 3871014.15, "ns per ops": 258.33, "Ops per threads": 290373.0, "Ops per procs": 29037341.0, "Ops/sec/procs": 967753.54, "ns per ops/procs": 1033.32}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30067.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 565377700.0, "Ops per second": 18845923.0, "ns per ops": 53.0, "Ops per threads": 78524.0, "Ops per procs": 7852468.0, "Ops/sec/procs": 261748.0, "ns per ops/procs": 3828.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30015.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6545324868.0, "Ops per second": 218067123.67, "ns per ops": 4.59, "Ops per threads": 1363609.0, "Ops per procs": 136360934.0, "Ops/sec/procs": 4543065.08, "ns per ops/procs": 220.12}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 529328681.0, "Ops per second": 17644289.0, "ns per ops": 56.0, "Ops per threads": 1323321.0, "Ops per procs": 132332170.0, "Ops/sec/procs": 4411072.0, "ns per ops/procs": 227.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30029.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1299808609.0, "Ops per second": 43285088.47, "ns per ops": 23.1, "Ops per threads": 1624760.0, "Ops per procs": 162476076.0, "Ops/sec/procs": 5410636.06, "ns per ops/procs": 184.82}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 269706300.0, "Ops per second": 8990210.0, "ns per ops": 111.0, "Ops per threads": 2697063.0, "Ops per procs": 269706300.0, "Ops/sec/procs": 8990210.0, "ns per ops/procs": 111.0}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30006.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 115361100.0, "Ops per second": 3844592.71, "ns per ops": 260.11, "Ops per threads": 288402.0, "Ops per procs": 28840275.0, "Ops/sec/procs": 961148.18, "ns per ops/procs": 1040.42}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30022.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1595728560.0, "Ops per second": 53190952.0, "ns per ops": 18.0, "Ops per threads": 664886.0, "Ops per procs": 66488690.0, "Ops/sec/procs": 2216289.0, "ns per ops/procs": 451.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30013.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 568764921.0, "Ops per second": 18958830.0, "ns per ops": 52.0, "Ops per threads": 78995.0, "Ops per procs": 7899512.0, "Ops/sec/procs": 263317.0, "ns per ops/procs": 3799.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 335204988.0, "Ops per second": 11173499.6, "ns per ops": 89.65, "Ops per threads": 1676024.0, "Ops per procs": 167602494.0, "Ops/sec/procs": 5586749.8, "ns per ops/procs": 179.3}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 999871313.0, "Ops per second": 33329043.77, "ns per ops": 30.06, "Ops per threads": 1249839.0, "Ops per procs": 124983914.0, "Ops/sec/procs": 4166130.47, "ns per ops/procs": 240.52}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 12899837825.0, "Ops per second": 429994594.17, "ns per ops": 2.33, "Ops per threads": 895822.0, "Ops per procs": 89582207.0, "Ops/sec/procs": 2986073.57, "ns per ops/procs": 335.23}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2165533500.0, "Ops per second": 72184450.0, "ns per ops": 13.89, "Ops per threads": 1353458.0, "Ops per procs": 135345843.0, "Ops/sec/procs": 4511528.12, "ns per ops/procs": 222.24}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30093.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 30159503.0, "Ops per second": 1002192.21, "ns per ops": 997.81, "Ops per threads": 2094.0, "Ops per procs": 209440.0, "Ops/sec/procs": 6959.67, "ns per ops/procs": 143685.01}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 336553015.0, "Ops per second": 11218433.83, "ns per ops": 89.29, "Ops per threads": 1682765.0, "Ops per procs": 168276507.0, "Ops/sec/procs": 5609216.92, "ns per ops/procs": 178.58}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30026.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 547684755.0, "Ops per second": 18256158.0, "ns per ops": 54.0, "Ops per threads": 57050.0, "Ops per procs": 5705049.0, "Ops/sec/procs": 190168.0, "ns per ops/procs": 5263.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 697104205.0, "Ops per second": 23214199.82, "ns per ops": 43.08, "Ops per threads": 1742760.0, "Ops per procs": 174276051.0, "Ops/sec/procs": 5803549.96, "ns per ops/procs": 172.31}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30026.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299462395.0, "Ops per second": 9973371.28, "ns per ops": 100.27, "Ops per threads": 2994623.0, "Ops per procs": 299462395.0, "Ops/sec/procs": 9973371.28, "ns per ops/procs": 100.27}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30023.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 67280432.0, "Ops per second": 2240953.69, "ns per ops": 446.24, "Ops per threads": 14016.0, "Ops per procs": 1401675.0, "Ops/sec/procs": 46686.54, "ns per ops/procs": 21419.45}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 485823476.0, "Ops per second": 16179526.59, "ns per ops": 61.81, "Ops per threads": 2429117.0, "Ops per procs": 242911738.0, "Ops/sec/procs": 8089763.29, "ns per ops/procs": 123.61}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30019.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 25963521091.0, "Ops per second": 864896561.64, "ns per ops": 1.16, "Ops per threads": 1352266.0, "Ops per procs": 135226672.0, "Ops/sec/procs": 4504669.59, "ns per ops/procs": 221.99}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30034.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19369228022.0, "Ops per second": 644899836.24, "ns per ops": 1.55, "Ops per threads": 1345085.0, "Ops per procs": 134508527.0, "Ops/sec/procs": 4478471.09, "ns per ops/procs": 223.29}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30008.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4414485942.0, "Ops per second": 147105461.64, "ns per ops": 6.8, "Ops per threads": 1839369.0, "Ops per procs": 183936914.0, "Ops/sec/procs": 6129394.23, "ns per ops/procs": 163.15}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17587304113.0, "Ops per second": 586243470.43, "ns per ops": 1.71, "Ops per threads": 916005.0, "Ops per procs": 91600542.0, "Ops/sec/procs": 3053351.41, "ns per ops/procs": 328.02}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17543900619.0, "Ops per second": 584796687.3, "ns per ops": 1.71, "Ops per threads": 913744.0, "Ops per procs": 91374482.0, "Ops/sec/procs": 3045816.08, "ns per ops/procs": 328.58}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30079.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1186976381.0, "Ops per second": 39565879.0, "ns per ops": 25.0, "Ops per threads": 247286.0, "Ops per procs": 24728674.0, "Ops/sec/procs": 824289.0, "ns per ops/procs": 1216.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4347986546.0, "Ops per second": 144932884.87, "ns per ops": 6.92, "Ops per threads": 905830.0, "Ops per procs": 90583053.0, "Ops/sec/procs": 3019435.1, "ns per ops/procs": 331.94}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 270388993.0, "Ops per second": 9012966.0, "ns per ops": 111.0, "Ops per threads": 2703889.0, "Ops per procs": 270388993.0, "Ops/sec/procs": 9012966.0, "ns per ops/procs": 111.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17412434022.0, "Ops per second": 580414467.4, "ns per ops": 1.72, "Ops per threads": 906897.0, "Ops per procs": 90689760.0, "Ops/sec/procs": 3022992.02, "ns per ops/procs": 331.0}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30087.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 29583910.0, "Ops per second": 983247.31, "ns per ops": 1017.04, "Ops per threads": 2054.0, "Ops per procs": 205443.0, "Ops/sec/procs": 6828.11, "ns per ops/procs": 146453.49}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30039.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19515054264.0, "Ops per second": 649645791.68, "ns per ops": 1.54, "Ops per threads": 1355212.0, "Ops per procs": 135521210.0, "Ops/sec/procs": 4511429.11, "ns per ops/procs": 221.66}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30009.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4412239360.0, "Ops per second": 147030392.4, "ns per ops": 6.8, "Ops per threads": 1838433.0, "Ops per procs": 183843306.0, "Ops/sec/procs": 6126266.35, "ns per ops/procs": 163.23}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30010.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13217325817.0, "Ops per second": 440428122.31, "ns per ops": 2.27, "Ops per threads": 1376804.0, "Ops per procs": 137680477.0, "Ops/sec/procs": 4587792.94, "ns per ops/procs": 217.97}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30029.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1300168515.0, "Ops per second": 43297084.69, "ns per ops": 23.1, "Ops per threads": 1625210.0, "Ops per procs": 162521064.0, "Ops/sec/procs": 5412135.59, "ns per ops/procs": 184.77}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6771178328.0, "Ops per second": 225705944.27, "ns per ops": 4.44, "Ops per threads": 940441.0, "Ops per procs": 94044143.0, "Ops/sec/procs": 3134804.78, "ns per ops/procs": 319.94}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 383461877.0, "Ops per second": 12782062.0, "ns per ops": 78.0, "Ops per threads": 1917309.0, "Ops per procs": 191730938.0, "Ops/sec/procs": 6391031.0, "ns per ops/procs": 156.0}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30035.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 38278725.0, "Ops per second": 1274451.24, "ns per ops": 784.65, "Ops per threads": 5316.0, "Ops per procs": 531648.0, "Ops/sec/procs": 17700.71, "ns per ops/procs": 56494.9}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30053.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 303872293.0, "Ops per second": 10129076.0, "ns per ops": 98.0, "Ops per threads": 15826.0, "Ops per procs": 1582668.0, "Ops/sec/procs": 52755.0, "ns per ops/procs": 18989.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30069.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26036089498.0, "Ops per second": 865853597.63, "ns per ops": 1.15, "Ops per threads": 1356046.0, "Ops per procs": 135604632.0, "Ops/sec/procs": 4509654.15, "ns per ops/procs": 221.75}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30030.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 800021843.0, "Ops per second": 26640256.82, "ns per ops": 37.54, "Ops per threads": 2000054.0, "Ops per procs": 200005460.0, "Ops/sec/procs": 6660064.2, "ns per ops/procs": 150.15}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1007439218.0, "Ops per second": 33581307.27, "ns per ops": 29.84, "Ops per threads": 1259299.0, "Ops per procs": 125929902.0, "Ops/sec/procs": 4197663.41, "ns per ops/procs": 238.72}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30035.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 38226755.0, "Ops per second": 1272709.38, "ns per ops": 785.73, "Ops per threads": 5309.0, "Ops per procs": 530927.0, "Ops/sec/procs": 17676.52, "ns per ops/procs": 56572.22}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30028.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299429575.0, "Ops per second": 9971572.41, "ns per ops": 100.29, "Ops per threads": 2994295.0, "Ops per procs": 299429575.0, "Ops/sec/procs": 9971572.41, "ns per ops/procs": 100.29}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30061.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 35252285.0, "Ops per second": 1172665.91, "ns per ops": 852.76, "Ops per threads": 3672.0, "Ops per procs": 367211.0, "Ops/sec/procs": 12215.27, "ns per ops/procs": 81864.75}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 169106678.0, "Ops per second": 5636041.71, "ns per ops": 177.43, "Ops per threads": 845533.0, "Ops per procs": 84553339.0, "Ops/sec/procs": 2818020.86, "ns per ops/procs": 354.86}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30044.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 278525958.0, "Ops per second": 9284198.0, "ns per ops": 107.0, "Ops per threads": 14506.0, "Ops per procs": 1450656.0, "Ops/sec/procs": 48355.0, "ns per ops/procs": 20711.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30028.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 251196986.0, "Ops per second": 8373232.0, "ns per ops": 119.0, "Ops per threads": 13083.0, "Ops per procs": 1308317.0, "Ops/sec/procs": 43610.0, "ns per ops/procs": 22952.0}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30043.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 37280827.0, "Ops per second": 1240892.9, "ns per ops": 805.87, "Ops per threads": 5177.0, "Ops per procs": 517789.0, "Ops/sec/procs": 17234.62, "ns per ops/procs": 58022.73}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30035.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26996048.0, "Ops per second": 898809.77, "ns per ops": 1112.58, "Ops per threads": 1406.0, "Ops per procs": 140604.0, "Ops/sec/procs": 4681.3, "ns per ops/procs": 213615.84}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30008.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 70945239.0, "Ops per second": 2364181.03, "ns per ops": 422.98, "Ops per threads": 29560.0, "Ops per procs": 2956051.0, "Ops/sec/procs": 98507.54, "ns per ops/procs": 10151.51}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30022.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 66809145.0, "Ops per second": 2225286.21, "ns per ops": 449.38, "Ops per threads": 13918.0, "Ops per procs": 1391857.0, "Ops/sec/procs": 46360.13, "ns per ops/procs": 21570.26}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2151566581.0, "Ops per second": 71718886.03, "ns per ops": 13.98, "Ops per threads": 1344729.0, "Ops per procs": 134472911.0, "Ops/sec/procs": 4482430.38, "ns per ops/procs": 223.68}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2828724374.0, "Ops per second": 94290812.0, "ns per ops": 10.0, "Ops per threads": 1767952.0, "Ops per procs": 176795273.0, "Ops/sec/procs": 5893175.0, "ns per ops/procs": 170.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 365069018.0, "Ops per second": 12168967.0, "ns per ops": 82.0, "Ops per threads": 1825345.0, "Ops per procs": 182534509.0, "Ops/sec/procs": 6084483.0, "ns per ops/procs": 164.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30018.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1556623413.0, "Ops per second": 51887447.0, "ns per ops": 19.0, "Ops per threads": 648593.0, "Ops per procs": 64859308.0, "Ops/sec/procs": 2161976.0, "ns per ops/procs": 462.0}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30079.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 30497368.0, "Ops per second": 1013900.28, "ns per ops": 986.29, "Ops per threads": 2117.0, "Ops per procs": 211787.0, "Ops/sec/procs": 7040.97, "ns per ops/procs": 142025.8}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30031.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 791011332.0, "Ops per second": 26339024.45, "ns per ops": 37.97, "Ops per threads": 1977528.0, "Ops per procs": 197752833.0, "Ops/sec/procs": 6584756.11, "ns per ops/procs": 151.87}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2694408531.0, "Ops per second": 89813617.7, "ns per ops": 11.14, "Ops per threads": 1122670.0, "Ops per procs": 112267022.0, "Ops/sec/procs": 3742234.07, "ns per ops/procs": 267.42}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30018.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13326946475.0, "Ops per second": 443958746.08, "ns per ops": 2.25, "Ops per threads": 1388223.0, "Ops per procs": 138822359.0, "Ops/sec/procs": 4624570.27, "ns per ops/procs": 216.24}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6511517837.0, "Ops per second": 217050594.57, "ns per ops": 4.62, "Ops per threads": 904377.0, "Ops per procs": 90437747.0, "Ops/sec/procs": 3014591.59, "ns per ops/procs": 332.69}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30019.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13422215978.0, "Ops per second": 447122884.72, "ns per ops": 2.24, "Ops per threads": 1398147.0, "Ops per procs": 139814749.0, "Ops/sec/procs": 4657530.05, "ns per ops/procs": 214.71}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 360946437.0, "Ops per second": 12031547.0, "ns per ops": 83.0, "Ops per threads": 1804732.0, "Ops per procs": 180473218.0, "Ops/sec/procs": 6015773.0, "ns per ops/procs": 166.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30075.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 255143382.0, "Ops per second": 8504779.0, "ns per ops": 117.0, "Ops per threads": 13288.0, "Ops per procs": 1328871.0, "Ops/sec/procs": 44295.0, "ns per ops/procs": 22632.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 216476131.0, "Ops per second": 7215871.03, "ns per ops": 138.81, "Ops per threads": 2164761.0, "Ops per procs": 216476131.0, "Ops/sec/procs": 7215871.03, "ns per ops/procs": 138.81}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 573837539.0, "Ops per second": 19127917.97, "ns per ops": 52.38, "Ops per threads": 1434593.0, "Ops per procs": 143459384.0, "Ops/sec/procs": 4781979.49, "ns per ops/procs": 209.51}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30020.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1545856268.0, "Ops per second": 51528542.0, "ns per ops": 19.0, "Ops per threads": 644106.0, "Ops per procs": 64410677.0, "Ops/sec/procs": 2147022.0, "ns per ops/procs": 466.0}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30053.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 37391209.0, "Ops per second": 1244153.88, "ns per ops": 803.76, "Ops per threads": 3894.0, "Ops per procs": 389491.0, "Ops/sec/procs": 12959.94, "ns per ops/procs": 77160.87}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 559445957.0, "Ops per second": 18648198.0, "ns per ops": 53.0, "Ops per threads": 1398614.0, "Ops per procs": 139861489.0, "Ops/sec/procs": 4662049.0, "ns per ops/procs": 215.0}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30008.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 77851018.0, "Ops per second": 2594310.48, "ns per ops": 385.46, "Ops per threads": 48656.0, "Ops per procs": 4865688.0, "Ops/sec/procs": 162144.41, "ns per ops/procs": 6167.34}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 607309218.0, "Ops per second": 20243640.0, "ns per ops": 49.0, "Ops per threads": 1518273.0, "Ops per procs": 151827304.0, "Ops/sec/procs": 5060910.0, "ns per ops/procs": 198.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30034.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 281236181.0, "Ops per second": 9374539.0, "ns per ops": 106.0, "Ops per threads": 14647.0, "Ops per procs": 1464771.0, "Ops/sec/procs": 48825.0, "ns per ops/procs": 20504.0}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 171050294.0, "Ops per second": 5700820.52, "ns per ops": 175.41, "Ops per threads": 855251.0, "Ops per procs": 85525147.0, "Ops/sec/procs": 2850410.26, "ns per ops/procs": 350.83}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4321021836.0, "Ops per second": 144034061.2, "ns per ops": 6.95, "Ops per threads": 900212.0, "Ops per procs": 90021288.0, "Ops/sec/procs": 3000709.61, "ns per ops/procs": 333.84}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2797133090.0, "Ops per second": 93237769.0, "ns per ops": 10.0, "Ops per threads": 1748208.0, "Ops per procs": 174820818.0, "Ops/sec/procs": 5827360.0, "ns per ops/procs": 172.0}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 92265303.0, "Ops per second": 3074837.2, "ns per ops": 325.22, "Ops per threads": 115331.0, "Ops per procs": 11533162.0, "Ops/sec/procs": 384354.65, "ns per ops/procs": 2601.76}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1001541798.0, "Ops per second": 33384726.0, "ns per ops": 30.0, "Ops per threads": 1251927.0, "Ops per procs": 125192724.0, "Ops/sec/procs": 4173090.0, "ns per ops/procs": 240.0}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30052.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 35506377.0, "Ops per second": 1181494.29, "ns per ops": 846.39, "Ops per threads": 3698.0, "Ops per procs": 369858.0, "Ops/sec/procs": 12307.23, "ns per ops/procs": 81253.04}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30018.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1509160725.0, "Ops per second": 50305357.0, "ns per ops": 19.0, "Ops per threads": 628816.0, "Ops per procs": 62881696.0, "Ops/sec/procs": 2096056.0, "ns per ops/procs": 477.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 978248788.0, "Ops per second": 32608292.0, "ns per ops": 30.0, "Ops per threads": 1222810.0, "Ops per procs": 122281098.0, "Ops/sec/procs": 4076036.0, "ns per ops/procs": 246.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2810121973.0, "Ops per second": 93670732.0, "ns per ops": 10.0, "Ops per threads": 1756326.0, "Ops per procs": 175632623.0, "Ops/sec/procs": 5854420.0, "ns per ops/procs": 171.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 331706692.0, "Ops per second": 11056889.73, "ns per ops": 90.6, "Ops per threads": 1658533.0, "Ops per procs": 165853346.0, "Ops/sec/procs": 5528444.87, "ns per ops/procs": 181.19}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30034.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1309950234.0, "Ops per second": 43614812.91, "ns per ops": 22.93, "Ops per threads": 1637437.0, "Ops per procs": 163743779.0, "Ops/sec/procs": 5451851.61, "ns per ops/procs": 183.42}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30016.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1180007889.0, "Ops per second": 39333596.0, "ns per ops": 25.0, "Ops per threads": 245834.0, "Ops per procs": 24583497.0, "Ops/sec/procs": 819449.0, "ns per ops/procs": 1221.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30045.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 10311705105.0, "Ops per second": 343199526.15, "ns per ops": 2.91, "Ops per threads": 1432181.0, "Ops per procs": 143218126.0, "Ops/sec/procs": 4766660.09, "ns per ops/procs": 209.79}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30041.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4414409225.0, "Ops per second": 146942927.24, "ns per ops": 6.81, "Ops per threads": 1839337.0, "Ops per procs": 183933717.0, "Ops/sec/procs": 6122621.97, "ns per ops/procs": 163.33}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30003.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 31346185.0, "Ops per second": 1044749.34, "ns per ops": 957.17, "Ops per threads": 2176.0, "Ops per procs": 217681.0, "Ops/sec/procs": 7255.2, "ns per ops/procs": 137832.1}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30035.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 37364068.0, "Ops per second": 1243978.01, "ns per ops": 803.87, "Ops per threads": 5189.0, "Ops per procs": 518945.0, "Ops/sec/procs": 17277.47, "ns per ops/procs": 57878.84}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30050.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 35595973.0, "Ops per second": 1184536.93, "ns per ops": 844.21, "Ops per threads": 3707.0, "Ops per procs": 370791.0, "Ops/sec/procs": 12338.93, "ns per ops/procs": 81044.33}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2699624606.0, "Ops per second": 89987486.87, "ns per ops": 11.12, "Ops per threads": 1124843.0, "Ops per procs": 112484358.0, "Ops/sec/procs": 3749478.62, "ns per ops/procs": 266.91}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 567910440.0, "Ops per second": 18930348.0, "ns per ops": 52.92, "Ops per threads": 1419776.0, "Ops per procs": 141977610.0, "Ops/sec/procs": 4732587.0, "ns per ops/procs": 211.69}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30024.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 67632749.0, "Ops per second": 2252599.99, "ns per ops": 443.93, "Ops per threads": 14090.0, "Ops per procs": 1409015.0, "Ops/sec/procs": 46929.17, "ns per ops/procs": 21308.71}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3088647104.0, "Ops per second": 102843887.76, "ns per ops": 9.72, "Ops per threads": 1930404.0, "Ops per procs": 193040444.0, "Ops/sec/procs": 6427742.98, "ns per ops/procs": 155.58}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 349649534.0, "Ops per second": 11654494.62, "ns per ops": 85.8, "Ops per threads": 3496495.0, "Ops per procs": 349649534.0, "Ops/sec/procs": 11654494.62, "ns per ops/procs": 85.8}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 92701693.0, "Ops per second": 3089388.15, "ns per ops": 323.69, "Ops per threads": 115877.0, "Ops per procs": 11587711.0, "Ops/sec/procs": 386173.52, "ns per ops/procs": 2589.51}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 91218961.0, "Ops per second": 3040015.27, "ns per ops": 328.95, "Ops per threads": 114023.0, "Ops per procs": 11402370.0, "Ops/sec/procs": 380001.91, "ns per ops/procs": 2631.57}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 350614032.0, "Ops per second": 11686635.0, "ns per ops": 85.57, "Ops per threads": 3506140.0, "Ops per procs": 350614032.0, "Ops/sec/procs": 11686635.0, "ns per ops/procs": 85.57}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 702400984.0, "Ops per second": 23390439.48, "ns per ops": 42.75, "Ops per threads": 1756002.0, "Ops per procs": 175600246.0, "Ops/sec/procs": 5847609.87, "ns per ops/procs": 171.01}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17463824977.0, "Ops per second": 582127499.23, "ns per ops": 1.72, "Ops per threads": 909574.0, "Ops per procs": 90957421.0, "Ops/sec/procs": 3031914.06, "ns per ops/procs": 330.33}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30045.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 18658595968.0, "Ops per second": 621016849.74, "ns per ops": 1.61, "Ops per threads": 1295735.0, "Ops per procs": 129573583.0, "Ops/sec/procs": 4312617.01, "ns per ops/procs": 231.88}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30080.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 30133198.0, "Ops per second": 1001735.27, "ns per ops": 998.27, "Ops per threads": 2092.0, "Ops per procs": 209258.0, "Ops/sec/procs": 6956.49, "ns per ops/procs": 143750.55}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 572745261.0, "Ops per second": 19091508.7, "ns per ops": 52.48, "Ops per threads": 1431863.0, "Ops per procs": 143186315.0, "Ops/sec/procs": 4772877.17, "ns per ops/procs": 209.9}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30098.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 542125939.0, "Ops per second": 18070864.0, "ns per ops": 55.0, "Ops per threads": 1355314.0, "Ops per procs": 135531484.0, "Ops/sec/procs": 4517716.0, "ns per ops/procs": 222.0}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30036.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26178263.0, "Ops per second": 871534.5, "ns per ops": 1147.4, "Ops per threads": 1363.0, "Ops per procs": 136345.0, "Ops/sec/procs": 4539.24, "ns per ops/procs": 220301.09}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30028.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 811741140.0, "Ops per second": 27032679.12, "ns per ops": 36.99, "Ops per threads": 2029352.0, "Ops per procs": 202935285.0, "Ops/sec/procs": 6758169.78, "ns per ops/procs": 147.97}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30004.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 115821491.0, "Ops per second": 3860121.04, "ns per ops": 259.06, "Ops per threads": 289553.0, "Ops per procs": 28955372.0, "Ops/sec/procs": 965030.26, "ns per ops/procs": 1036.24}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 270551675.0, "Ops per second": 9018389.0, "ns per ops": 111.0, "Ops per threads": 2705516.0, "Ops per procs": 270551675.0, "Ops/sec/procs": 9018389.0, "ns per ops/procs": 111.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 217092907.0, "Ops per second": 7236430.23, "ns per ops": 138.42, "Ops per threads": 2170929.0, "Ops per procs": 217092907.0, "Ops/sec/procs": 7236430.23, "ns per ops/procs": 138.42}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 269937444.0, "Ops per second": 8997914.0, "ns per ops": 111.0, "Ops per threads": 2699374.0, "Ops per procs": 269937444.0, "Ops/sec/procs": 8997914.0, "ns per ops/procs": 111.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30063.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 510376965.0, "Ops per second": 17012565.0, "ns per ops": 58.0, "Ops per threads": 53164.0, "Ops per procs": 5316426.0, "Ops/sec/procs": 177214.0, "ns per ops/procs": 5654.0}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30007.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 76519123.0, "Ops per second": 2549976.03, "ns per ops": 392.16, "Ops per threads": 47824.0, "Ops per procs": 4782445.0, "Ops/sec/procs": 159373.5, "ns per ops/procs": 6274.57}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 12918569183.0, "Ops per second": 430618972.77, "ns per ops": 2.32, "Ops per threads": 897122.0, "Ops per procs": 89712285.0, "Ops/sec/procs": 2990409.53, "ns per ops/procs": 334.67}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 538511026.0, "Ops per second": 17950367.0, "ns per ops": 55.0, "Ops per threads": 1346277.0, "Ops per procs": 134627756.0, "Ops/sec/procs": 4487591.0, "ns per ops/procs": 223.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 217345802.0, "Ops per second": 7244860.07, "ns per ops": 138.26, "Ops per threads": 2173458.0, "Ops per procs": 217345802.0, "Ops/sec/procs": 7244860.07, "ns per ops/procs": 138.26}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 486527044.0, "Ops per second": 16202834.39, "ns per ops": 61.72, "Ops per threads": 2432635.0, "Ops per procs": 243263522.0, "Ops/sec/procs": 8101417.19, "ns per ops/procs": 123.44}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 71746552.0, "Ops per second": 2390933.52, "ns per ops": 418.25, "Ops per threads": 29894.0, "Ops per procs": 2989439.0, "Ops/sec/procs": 99622.23, "ns per ops/procs": 10037.92}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2153986137.0, "Ops per second": 71799537.9, "ns per ops": 13.96, "Ops per threads": 1346241.0, "Ops per procs": 134624133.0, "Ops/sec/procs": 4487471.12, "ns per ops/procs": 223.4}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 349640207.0, "Ops per second": 11654185.15, "ns per ops": 85.81, "Ops per threads": 3496402.0, "Ops per procs": 349640207.0, "Ops/sec/procs": 11654185.15, "ns per ops/procs": 85.81}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299407971.0, "Ops per second": 9971691.25, "ns per ops": 100.28, "Ops per threads": 2994079.0, "Ops per procs": 299407971.0, "Ops/sec/procs": 9971691.25, "ns per ops/procs": 100.28}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 573012305.0, "Ops per second": 19100410.17, "ns per ops": 52.45, "Ops per threads": 1432530.0, "Ops per procs": 143253076.0, "Ops/sec/procs": 4775102.54, "ns per ops/procs": 209.81}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30019.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 10207381314.0, "Ops per second": 340028445.75, "ns per ops": 2.94, "Ops per threads": 1417691.0, "Ops per procs": 141769184.0, "Ops/sec/procs": 4722617.3, "ns per ops/procs": 211.75}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30007.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 77874930.0, "Ops per second": 2595178.56, "ns per ops": 385.33, "Ops per threads": 48671.0, "Ops per procs": 4867183.0, "Ops/sec/procs": 162198.66, "ns per ops/procs": 6165.28}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 708499112.0, "Ops per second": 23593405.41, "ns per ops": 42.38, "Ops per threads": 1771247.0, "Ops per procs": 177124778.0, "Ops/sec/procs": 5898351.35, "ns per ops/procs": 169.54}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2663316260.0, "Ops per second": 88777208.67, "ns per ops": 11.27, "Ops per threads": 1109715.0, "Ops per procs": 110971510.0, "Ops/sec/procs": 3699050.36, "ns per ops/procs": 270.53}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 982783160.0, "Ops per second": 32759438.0, "ns per ops": 30.0, "Ops per threads": 1228478.0, "Ops per procs": 122847895.0, "Ops/sec/procs": 4094929.0, "ns per ops/procs": 244.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8246065297.0, "Ops per second": 274868843.23, "ns per ops": 3.64, "Ops per threads": 858965.0, "Ops per procs": 85896513.0, "Ops/sec/procs": 2863217.12, "ns per ops/procs": 349.55}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30056.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 35715015.0, "Ops per second": 1188272.57, "ns per ops": 841.56, "Ops per threads": 3720.0, "Ops per procs": 372031.0, "Ops/sec/procs": 12377.84, "ns per ops/procs": 80789.55}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 372506043.0, "Ops per second": 12416868.0, "ns per ops": 80.0, "Ops per threads": 1862530.0, "Ops per procs": 186253021.0, "Ops/sec/procs": 6208434.0, "ns per ops/procs": 161.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 978886452.0, "Ops per second": 32629548.0, "ns per ops": 30.0, "Ops per threads": 1223608.0, "Ops per procs": 122360806.0, "Ops/sec/procs": 4078693.0, "ns per ops/procs": 245.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299508245.0, "Ops per second": 9975232.01, "ns per ops": 100.25, "Ops per threads": 2995082.0, "Ops per procs": 299508245.0, "Ops/sec/procs": 9975232.01, "ns per ops/procs": 100.25}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30009.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4397799197.0, "Ops per second": 146549191.72, "ns per ops": 6.82, "Ops per threads": 1832416.0, "Ops per procs": 183241633.0, "Ops/sec/procs": 6106216.32, "ns per ops/procs": 163.77}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17424804343.0, "Ops per second": 580826811.43, "ns per ops": 1.72, "Ops per threads": 907541.0, "Ops per procs": 90754189.0, "Ops/sec/procs": 3025139.64, "ns per ops/procs": 330.67}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30019.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 9385054038.0, "Ops per second": 312633942.54, "ns per ops": 3.2, "Ops per threads": 1303479.0, "Ops per procs": 130347972.0, "Ops/sec/procs": 4342138.09, "ns per ops/procs": 230.3}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 174061683.0, "Ops per second": 5801181.58, "ns per ops": 172.38, "Ops per threads": 870308.0, "Ops per procs": 87030841.0, "Ops/sec/procs": 2900590.79, "ns per ops/procs": 344.76}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3039151800.0, "Ops per second": 101195271.99, "ns per ops": 9.88, "Ops per threads": 1899469.0, "Ops per procs": 189946987.0, "Ops/sec/procs": 6324704.5, "ns per ops/procs": 158.11}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30004.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 116413585.0, "Ops per second": 3879825.08, "ns per ops": 257.74, "Ops per threads": 291033.0, "Ops per procs": 29103396.0, "Ops/sec/procs": 969956.27, "ns per ops/procs": 1030.97}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 12829337546.0, "Ops per second": 427644584.87, "ns per ops": 2.34, "Ops per threads": 890926.0, "Ops per procs": 89092621.0, "Ops/sec/procs": 2969754.06, "ns per ops/procs": 337.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30040.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 308240183.0, "Ops per second": 10274672.0, "ns per ops": 97.0, "Ops per threads": 21405.0, "Ops per procs": 2140556.0, "Ops/sec/procs": 71351.0, "ns per ops/procs": 14034.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30049.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13299459770.0, "Ops per second": 442589169.85, "ns per ops": 2.26, "Ops per threads": 1385360.0, "Ops per procs": 138536039.0, "Ops/sec/procs": 4610303.85, "ns per ops/procs": 216.91}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 70589301.0, "Ops per second": 2352367.35, "ns per ops": 425.1, "Ops per threads": 29412.0, "Ops per procs": 2941220.0, "Ops/sec/procs": 98015.31, "ns per ops/procs": 10202.49}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1290010246.0, "Ops per second": 42959087.85, "ns per ops": 23.28, "Ops per threads": 1612512.0, "Ops per procs": 161251280.0, "Ops/sec/procs": 5369885.98, "ns per ops/procs": 186.22}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2155474503.0, "Ops per second": 71849150.1, "ns per ops": 13.95, "Ops per threads": 1347171.0, "Ops per procs": 134717156.0, "Ops/sec/procs": 4490571.88, "ns per ops/procs": 223.26}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 350919650.0, "Ops per second": 11696823.89, "ns per ops": 85.49, "Ops per threads": 3509196.0, "Ops per procs": 350919650.0, "Ops/sec/procs": 11696823.89, "ns per ops/procs": 85.49}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30009.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4401647247.0, "Ops per second": 146676381.04, "ns per ops": 6.82, "Ops per threads": 1834019.0, "Ops per procs": 183401968.0, "Ops/sec/procs": 6111515.88, "ns per ops/procs": 163.63}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30040.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 9905402895.0, "Ops per second": 329731241.62, "ns per ops": 3.03, "Ops per threads": 1375750.0, "Ops per procs": 137575040.0, "Ops/sec/procs": 4579600.58, "ns per ops/procs": 218.36}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30022.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 67840378.0, "Ops per second": 2259629.87, "ns per ops": 442.55, "Ops per threads": 14133.0, "Ops per procs": 1413341.0, "Ops/sec/procs": 47075.62, "ns per ops/procs": 21242.42}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2681256868.0, "Ops per second": 89375228.93, "ns per ops": 11.2, "Ops per threads": 1117190.0, "Ops per procs": 111719036.0, "Ops/sec/procs": 3723967.87, "ns per ops/procs": 268.73}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30022.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 68093389.0, "Ops per second": 2268049.08, "ns per ops": 440.91, "Ops per threads": 14186.0, "Ops per procs": 1418612.0, "Ops/sec/procs": 47251.02, "ns per ops/procs": 21163.56}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30008.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4405399335.0, "Ops per second": 146803211.03, "ns per ops": 6.81, "Ops per threads": 1835583.0, "Ops per procs": 183558305.0, "Ops/sec/procs": 6116800.46, "ns per ops/procs": 163.48}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 92162624.0, "Ops per second": 3071389.69, "ns per ops": 325.59, "Ops per threads": 115203.0, "Ops per procs": 11520328.0, "Ops/sec/procs": 383923.71, "ns per ops/procs": 2604.68}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17486311136.0, "Ops per second": 582877037.87, "ns per ops": 1.72, "Ops per threads": 910745.0, "Ops per procs": 91074537.0, "Ops/sec/procs": 3035817.91, "ns per ops/procs": 329.66}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3252965246.0, "Ops per second": 108432174.0, "ns per ops": 9.0, "Ops per threads": 2033103.0, "Ops per procs": 203310327.0, "Ops/sec/procs": 6777010.0, "ns per ops/procs": 148.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 217445495.0, "Ops per second": 7248183.17, "ns per ops": 138.2, "Ops per threads": 2174454.0, "Ops per procs": 217445495.0, "Ops/sec/procs": 7248183.17, "ns per ops/procs": 138.2}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3043208981.0, "Ops per second": 101330187.63, "ns per ops": 9.87, "Ops per threads": 1902005.0, "Ops per procs": 190200561.0, "Ops/sec/procs": 6333136.73, "ns per ops/procs": 157.9}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2141436686.0, "Ops per second": 71381222.87, "ns per ops": 14.05, "Ops per threads": 1338397.0, "Ops per procs": 133839792.0, "Ops/sec/procs": 4461326.43, "ns per ops/procs": 224.72}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30083.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 303708261.0, "Ops per second": 10123608.0, "ns per ops": 99.0, "Ops per threads": 21090.0, "Ops per procs": 2109085.0, "Ops/sec/procs": 70302.0, "ns per ops/procs": 14263.0}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30024.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 67045787.0, "Ops per second": 2233044.45, "ns per ops": 447.82, "Ops per threads": 13967.0, "Ops per procs": 1396787.0, "Ops/sec/procs": 46521.76, "ns per ops/procs": 21495.32}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1001205925.0, "Ops per second": 33373530.83, "ns per ops": 30.03, "Ops per threads": 1251507.0, "Ops per procs": 125150740.0, "Ops/sec/procs": 4171691.35, "ns per ops/procs": 240.21}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30053.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 27343618.0, "Ops per second": 909833.94, "ns per ops": 1099.1, "Ops per threads": 1424.0, "Ops per procs": 142414.0, "Ops/sec/procs": 4738.72, "ns per ops/procs": 211027.52}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 350074019.0, "Ops per second": 11668647.36, "ns per ops": 85.7, "Ops per threads": 3500740.0, "Ops per procs": 350074019.0, "Ops/sec/procs": 11668647.36, "ns per ops/procs": 85.7}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8372281010.0, "Ops per second": 279076033.67, "ns per ops": 3.59, "Ops per threads": 872112.0, "Ops per procs": 87211260.0, "Ops/sec/procs": 2907042.02, "ns per ops/procs": 344.32}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30035.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19268798135.0, "Ops per second": 641526705.9, "ns per ops": 1.56, "Ops per threads": 1338110.0, "Ops per procs": 133811098.0, "Ops/sec/procs": 4455046.57, "ns per ops/procs": 224.46}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30030.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1510903974.0, "Ops per second": 50313117.06, "ns per ops": 19.88, "Ops per threads": 1888629.0, "Ops per procs": 188862996.0, "Ops/sec/procs": 6289139.63, "ns per ops/procs": 159.0}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 350034883.0, "Ops per second": 11667331.15, "ns per ops": 85.71, "Ops per threads": 3500348.0, "Ops per procs": 350034883.0, "Ops/sec/procs": 11667331.15, "ns per ops/procs": 85.71}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8252311625.0, "Ops per second": 275077054.17, "ns per ops": 3.64, "Ops per threads": 859615.0, "Ops per procs": 85961579.0, "Ops/sec/procs": 2865385.98, "ns per ops/procs": 349.32}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30018.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1468188245.0, "Ops per second": 48939608.0, "ns per ops": 20.0, "Ops per threads": 611745.0, "Ops per procs": 61174510.0, "Ops/sec/procs": 2039150.0, "ns per ops/procs": 490.0}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30005.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 116152967.0, "Ops per second": 3871104.73, "ns per ops": 258.32, "Ops per threads": 290382.0, "Ops per procs": 29038241.0, "Ops/sec/procs": 967776.18, "ns per ops/procs": 1033.3}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30051.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 37072410.0, "Ops per second": 1233619.55, "ns per ops": 810.62, "Ops per threads": 3861.0, "Ops per procs": 386170.0, "Ops/sec/procs": 12850.2, "ns per ops/procs": 77819.78}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 963511212.0, "Ops per second": 32117040.0, "ns per ops": 31.0, "Ops per threads": 1204389.0, "Ops per procs": 120438901.0, "Ops/sec/procs": 4014630.0, "ns per ops/procs": 249.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 270603008.0, "Ops per second": 9020100.0, "ns per ops": 111.0, "Ops per threads": 2706030.0, "Ops per procs": 270603008.0, "Ops/sec/procs": 9020100.0, "ns per ops/procs": 111.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3068902860.0, "Ops per second": 102186998.61, "ns per ops": 9.79, "Ops per threads": 1918064.0, "Ops per procs": 191806428.0, "Ops/sec/procs": 6386687.41, "ns per ops/procs": 156.58}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1297897729.0, "Ops per second": 43221548.4, "ns per ops": 23.14, "Ops per threads": 1622372.0, "Ops per procs": 162237216.0, "Ops/sec/procs": 5402693.55, "ns per ops/procs": 185.09}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30022.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1178027412.0, "Ops per second": 39267580.0, "ns per ops": 25.0, "Ops per threads": 245422.0, "Ops per procs": 24542237.0, "Ops/sec/procs": 818074.0, "ns per ops/procs": 1223.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30093.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 567998867.0, "Ops per second": 18933295.0, "ns per ops": 52.0, "Ops per threads": 78888.0, "Ops per procs": 7888873.0, "Ops/sec/procs": 262962.0, "ns per ops/procs": 3814.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30002.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 481160799.0, "Ops per second": 16038693.0, "ns per ops": 62.0, "Ops per threads": 50120.0, "Ops per procs": 5012091.0, "Ops/sec/procs": 167069.0, "ns per ops/procs": 5986.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30022.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13384142942.0, "Ops per second": 445809117.88, "ns per ops": 2.24, "Ops per threads": 1394181.0, "Ops per procs": 139418155.0, "Ops/sec/procs": 4643844.98, "ns per ops/procs": 215.34}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30095.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1188572330.0, "Ops per second": 39619077.0, "ns per ops": 25.0, "Ops per threads": 247619.0, "Ops per procs": 24761923.0, "Ops/sec/procs": 825397.0, "ns per ops/procs": 1215.0}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30075.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 29355503.0, "Ops per second": 976064.37, "ns per ops": 1024.52, "Ops per threads": 2038.0, "Ops per procs": 203857.0, "Ops/sec/procs": 6778.22, "ns per ops/procs": 147531.25}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30013.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6595538242.0, "Ops per second": 219749469.79, "ns per ops": 4.55, "Ops per threads": 1374070.0, "Ops per procs": 137407046.0, "Ops/sec/procs": 4578113.95, "ns per ops/procs": 218.43}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 382865455.0, "Ops per second": 12762181.0, "ns per ops": 78.0, "Ops per threads": 1914327.0, "Ops per procs": 191432727.0, "Ops/sec/procs": 6381090.0, "ns per ops/procs": 157.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1295926247.0, "Ops per second": 43157123.48, "ns per ops": 23.17, "Ops per threads": 1619907.0, "Ops per procs": 161990780.0, "Ops/sec/procs": 5394640.44, "ns per ops/procs": 185.37}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30083.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 30049104.0, "Ops per second": 998866.13, "ns per ops": 1001.14, "Ops per threads": 2086.0, "Ops per procs": 208674.0, "Ops/sec/procs": 6936.57, "ns per ops/procs": 144163.46}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6540959836.0, "Ops per second": 218031994.53, "ns per ops": 4.6, "Ops per threads": 908466.0, "Ops per procs": 90846664.0, "Ops/sec/procs": 3028222.15, "ns per ops/procs": 331.3}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8275384530.0, "Ops per second": 275846151.0, "ns per ops": 3.63, "Ops per threads": 862019.0, "Ops per procs": 86201922.0, "Ops/sec/procs": 2873397.41, "ns per ops/procs": 348.34}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6613284996.0, "Ops per second": 220442833.2, "ns per ops": 4.55, "Ops per threads": 918511.0, "Ops per procs": 91851180.0, "Ops/sec/procs": 3061706.02, "ns per ops/procs": 327.58}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30030.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 791398457.0, "Ops per second": 26353253.78, "ns per ops": 37.95, "Ops per threads": 1978496.0, "Ops per procs": 197849614.0, "Ops/sec/procs": 6588313.45, "ns per ops/procs": 151.78}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4303560752.0, "Ops per second": 143452025.07, "ns per ops": 6.99, "Ops per threads": 896575.0, "Ops per procs": 89657515.0, "Ops/sec/procs": 2988583.86, "ns per ops/procs": 335.32}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30041.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 477748721.0, "Ops per second": 15924957.0, "ns per ops": 62.0, "Ops per threads": 49765.0, "Ops per procs": 4976549.0, "Ops/sec/procs": 165884.0, "ns per ops/procs": 6036.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30000.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 25929877451.0, "Ops per second": 864306119.25, "ns per ops": 1.16, "Ops per threads": 1350514.0, "Ops per procs": 135051445.0, "Ops/sec/procs": 4501594.37, "ns per ops/procs": 222.14}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 12714377039.0, "Ops per second": 423812567.97, "ns per ops": 2.36, "Ops per threads": 882942.0, "Ops per procs": 88294284.0, "Ops/sec/procs": 2943142.83, "ns per ops/procs": 340.37}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 519560100.0, "Ops per second": 17318670.0, "ns per ops": 57.0, "Ops per threads": 1298900.0, "Ops per procs": 129890025.0, "Ops/sec/procs": 4329667.0, "ns per ops/procs": 231.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4298449246.0, "Ops per second": 143281641.53, "ns per ops": 6.99, "Ops per threads": 895510.0, "Ops per procs": 89551025.0, "Ops/sec/procs": 2985034.2, "ns per ops/procs": 335.61}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6695817528.0, "Ops per second": 223193917.6, "ns per ops": 4.49, "Ops per threads": 929974.0, "Ops per procs": 92997465.0, "Ops/sec/procs": 3099915.52, "ns per ops/procs": 323.6}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30005.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 115736875.0, "Ops per second": 3857227.01, "ns per ops": 259.25, "Ops per threads": 289342.0, "Ops per procs": 28934218.0, "Ops/sec/procs": 964306.75, "ns per ops/procs": 1037.01}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6714223964.0, "Ops per second": 223807465.47, "ns per ops": 4.48, "Ops per threads": 932531.0, "Ops per procs": 93253110.0, "Ops/sec/procs": 3108437.02, "ns per ops/procs": 322.57}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30005.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 116275535.0, "Ops per second": 3875205.13, "ns per ops": 258.05, "Ops per threads": 290688.0, "Ops per procs": 29068883.0, "Ops/sec/procs": 968801.28, "ns per ops/procs": 1032.2}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30013.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6577379630.0, "Ops per second": 219146454.29, "ns per ops": 4.56, "Ops per threads": 1370287.0, "Ops per procs": 137028742.0, "Ops/sec/procs": 4565551.13, "ns per ops/procs": 219.03}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30033.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 36817811.0, "Ops per second": 1225887.78, "ns per ops": 815.74, "Ops per threads": 5113.0, "Ops per procs": 511358.0, "Ops/sec/procs": 17026.22, "ns per ops/procs": 58732.95}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30005.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 115958602.0, "Ops per second": 3864634.08, "ns per ops": 258.76, "Ops per threads": 289896.0, "Ops per procs": 28989650.0, "Ops/sec/procs": 966158.52, "ns per ops/procs": 1035.03}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2976291630.0, "Ops per second": 99209721.0, "ns per ops": 10.0, "Ops per threads": 1860182.0, "Ops per procs": 186018226.0, "Ops/sec/procs": 6200607.0, "ns per ops/procs": 161.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6847414597.0, "Ops per second": 228247153.23, "ns per ops": 4.39, "Ops per threads": 951029.0, "Ops per procs": 95102980.0, "Ops/sec/procs": 3170099.35, "ns per ops/procs": 316.39}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6610959293.0, "Ops per second": 220365309.77, "ns per ops": 4.55, "Ops per threads": 918188.0, "Ops per procs": 91818879.0, "Ops/sec/procs": 3060629.3, "ns per ops/procs": 327.8}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 988546494.0, "Ops per second": 32951549.0, "ns per ops": 30.0, "Ops per threads": 1235683.0, "Ops per procs": 123568311.0, "Ops/sec/procs": 4118943.0, "ns per ops/procs": 243.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30082.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 308800652.0, "Ops per second": 10293355.0, "ns per ops": 97.0, "Ops per threads": 21444.0, "Ops per procs": 2144448.0, "Ops/sec/procs": 71481.0, "ns per ops/procs": 14028.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30000.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2738996987.0, "Ops per second": 91299899.0, "ns per ops": 10.0, "Ops per threads": 1711873.0, "Ops per procs": 171187311.0, "Ops/sec/procs": 5706243.0, "ns per ops/procs": 175.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30030.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 302581737.0, "Ops per second": 10086057.0, "ns per ops": 99.0, "Ops per threads": 21012.0, "Ops per procs": 2101262.0, "Ops/sec/procs": 70042.0, "ns per ops/procs": 14291.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 367874906.0, "Ops per second": 12262496.0, "ns per ops": 81.0, "Ops per threads": 1839374.0, "Ops per procs": 183937453.0, "Ops/sec/procs": 6131248.0, "ns per ops/procs": 163.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2149808346.0, "Ops per second": 71660278.2, "ns per ops": 13.99, "Ops per threads": 1343630.0, "Ops per procs": 134363021.0, "Ops/sec/procs": 4478767.39, "ns per ops/procs": 223.84}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30019.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13325165177.0, "Ops per second": 443879465.78, "ns per ops": 2.25, "Ops per threads": 1388038.0, "Ops per procs": 138803803.0, "Ops/sec/procs": 4623744.44, "ns per ops/procs": 216.27}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8257302160.0, "Ops per second": 275243405.33, "ns per ops": 3.64, "Ops per threads": 860135.0, "Ops per procs": 86013564.0, "Ops/sec/procs": 2867118.81, "ns per ops/procs": 349.07}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30022.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1666434192.0, "Ops per second": 55547806.0, "ns per ops": 18.0, "Ops per threads": 694347.0, "Ops per procs": 69434758.0, "Ops/sec/procs": 2314491.0, "ns per ops/procs": 432.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30013.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6644268971.0, "Ops per second": 221376298.11, "ns per ops": 4.52, "Ops per threads": 1384222.0, "Ops per procs": 138422270.0, "Ops/sec/procs": 4612006.21, "ns per ops/procs": 216.83}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1290971825.0, "Ops per second": 42990994.31, "ns per ops": 23.26, "Ops per threads": 1613714.0, "Ops per procs": 161371478.0, "Ops/sec/procs": 5373874.29, "ns per ops/procs": 186.09}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1003869427.0, "Ops per second": 33462314.23, "ns per ops": 29.94, "Ops per threads": 1254836.0, "Ops per procs": 125483678.0, "Ops/sec/procs": 4182789.28, "ns per ops/procs": 239.51}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30036.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26362845654.0, "Ops per second": 877699420.98, "ns per ops": 1.14, "Ops per threads": 1373064.0, "Ops per procs": 137306487.0, "Ops/sec/procs": 4571351.15, "ns per ops/procs": 218.75}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30007.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 76555594.0, "Ops per second": 2551217.2, "ns per ops": 391.97, "Ops per threads": 47847.0, "Ops per procs": 4784724.0, "Ops/sec/procs": 159451.07, "ns per ops/procs": 6271.52}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8408962324.0, "Ops per second": 280298744.13, "ns per ops": 3.57, "Ops per threads": 875933.0, "Ops per procs": 87593357.0, "Ops/sec/procs": 2919778.58, "ns per ops/procs": 342.57}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30017.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1643857302.0, "Ops per second": 54795243.0, "ns per ops": 18.0, "Ops per threads": 684940.0, "Ops per procs": 68494054.0, "Ops/sec/procs": 2283135.0, "ns per ops/procs": 438.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2675621715.0, "Ops per second": 89187390.5, "ns per ops": 11.22, "Ops per threads": 1114842.0, "Ops per procs": 111484238.0, "Ops/sec/procs": 3716141.27, "ns per ops/procs": 269.3}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3216712754.0, "Ops per second": 107223758.0, "ns per ops": 9.0, "Ops per threads": 2010445.0, "Ops per procs": 201044547.0, "Ops/sec/procs": 6701484.0, "ns per ops/procs": 149.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30033.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26533414767.0, "Ops per second": 883470981.63, "ns per ops": 1.13, "Ops per threads": 1381948.0, "Ops per procs": 138194868.0, "Ops/sec/procs": 4601411.36, "ns per ops/procs": 217.32}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 172679605.0, "Ops per second": 5755134.74, "ns per ops": 173.76, "Ops per threads": 863398.0, "Ops per procs": 86339802.0, "Ops/sec/procs": 2877567.37, "ns per ops/procs": 347.52}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30019.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13278680385.0, "Ops per second": 442339690.0, "ns per ops": 2.26, "Ops per threads": 1383195.0, "Ops per procs": 138319587.0, "Ops/sec/procs": 4607705.1, "ns per ops/procs": 217.03}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 70719875.0, "Ops per second": 2356743.76, "ns per ops": 424.31, "Ops per threads": 29466.0, "Ops per procs": 2946661.0, "Ops/sec/procs": 98197.66, "ns per ops/procs": 10183.54}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 174574523.0, "Ops per second": 5818329.19, "ns per ops": 171.87, "Ops per threads": 872872.0, "Ops per procs": 87287261.0, "Ops/sec/procs": 2909164.59, "ns per ops/procs": 343.74}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 361373327.0, "Ops per second": 12045777.0, "ns per ops": 83.0, "Ops per threads": 1806866.0, "Ops per procs": 180686663.0, "Ops/sec/procs": 6022888.0, "ns per ops/procs": 166.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4301756707.0, "Ops per second": 143391890.23, "ns per ops": 6.99, "Ops per threads": 896199.0, "Ops per procs": 89619931.0, "Ops/sec/procs": 2987331.05, "ns per ops/procs": 335.43}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30004.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 116696195.0, "Ops per second": 3889245.3, "ns per ops": 257.12, "Ops per threads": 291740.0, "Ops per procs": 29174048.0, "Ops/sec/procs": 972311.32, "ns per ops/procs": 1028.48}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 576241887.0, "Ops per second": 19208062.9, "ns per ops": 52.16, "Ops per threads": 1440604.0, "Ops per procs": 144060471.0, "Ops/sec/procs": 4802015.72, "ns per ops/procs": 208.63}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 570796620.0, "Ops per second": 19026554.0, "ns per ops": 52.65, "Ops per threads": 1426991.0, "Ops per procs": 142699155.0, "Ops/sec/procs": 4756638.5, "ns per ops/procs": 210.62}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17625659352.0, "Ops per second": 587521978.4, "ns per ops": 1.7, "Ops per threads": 918003.0, "Ops per procs": 91800309.0, "Ops/sec/procs": 3060010.3, "ns per ops/procs": 327.06}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2684266965.0, "Ops per second": 89475565.5, "ns per ops": 11.18, "Ops per threads": 1118444.0, "Ops per procs": 111844456.0, "Ops/sec/procs": 3728148.56, "ns per ops/procs": 268.42}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30072.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 547108049.0, "Ops per second": 18236934.0, "ns per ops": 54.0, "Ops per threads": 56990.0, "Ops per procs": 5699042.0, "Ops/sec/procs": 189968.0, "ns per ops/procs": 5276.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30039.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 524310865.0, "Ops per second": 17477028.0, "ns per ops": 57.0, "Ops per threads": 72820.0, "Ops per procs": 7282095.0, "Ops/sec/procs": 242736.0, "ns per ops/procs": 4125.0}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30053.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 27368966.0, "Ops per second": 910682.79, "ns per ops": 1098.08, "Ops per threads": 1425.0, "Ops per procs": 142546.0, "Ops/sec/procs": 4743.14, "ns per ops/procs": 210830.82}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 962217287.0, "Ops per second": 32073909.57, "ns per ops": 31.24, "Ops per threads": 1202771.0, "Ops per procs": 120277160.0, "Ops/sec/procs": 4009238.7, "ns per ops/procs": 249.94}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1000018912.0, "Ops per second": 33333963.0, "ns per ops": 30.0, "Ops per threads": 1250023.0, "Ops per procs": 125002364.0, "Ops/sec/procs": 4166745.0, "ns per ops/procs": 240.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 412371457.0, "Ops per second": 13745715.0, "ns per ops": 72.0, "Ops per threads": 2061857.0, "Ops per procs": 206185728.0, "Ops/sec/procs": 6872857.0, "ns per ops/procs": 145.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30025.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19358363497.0, "Ops per second": 644720941.04, "ns per ops": 1.55, "Ops per threads": 1344330.0, "Ops per procs": 134433079.0, "Ops/sec/procs": 4477228.76, "ns per ops/procs": 223.35}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 174345760.0, "Ops per second": 5810707.24, "ns per ops": 172.1, "Ops per threads": 871728.0, "Ops per procs": 87172880.0, "Ops/sec/procs": 2905353.62, "ns per ops/procs": 344.19}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 272927616.0, "Ops per second": 9097587.0, "ns per ops": 109.0, "Ops per threads": 14214.0, "Ops per procs": 1421498.0, "Ops/sec/procs": 47383.0, "ns per ops/procs": 21108.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 980627977.0, "Ops per second": 32687599.0, "ns per ops": 30.0, "Ops per threads": 1225784.0, "Ops per procs": 122578497.0, "Ops/sec/procs": 4085949.0, "ns per ops/procs": 245.0}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 92399309.0, "Ops per second": 3079344.79, "ns per ops": 324.74, "Ops per threads": 115499.0, "Ops per procs": 11549913.0, "Ops/sec/procs": 384918.1, "ns per ops/procs": 2597.96}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30087.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 309556111.0, "Ops per second": 10318537.0, "ns per ops": 97.0, "Ops per threads": 21496.0, "Ops per procs": 2149695.0, "Ops/sec/procs": 71656.0, "ns per ops/procs": 13996.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30098.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 515388449.0, "Ops per second": 17179614.0, "ns per ops": 58.0, "Ops per threads": 1288471.0, "Ops per procs": 128847112.0, "Ops/sec/procs": 4294903.0, "ns per ops/procs": 233.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8346728396.0, "Ops per second": 278224279.87, "ns per ops": 3.6, "Ops per threads": 869450.0, "Ops per procs": 86945087.0, "Ops/sec/procs": 2898169.58, "ns per ops/procs": 345.37}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 334311117.0, "Ops per second": 11143703.9, "ns per ops": 89.89, "Ops per threads": 1671555.0, "Ops per procs": 167155558.0, "Ops/sec/procs": 5571851.95, "ns per ops/procs": 179.78}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299475679.0, "Ops per second": 9974102.29, "ns per ops": 100.26, "Ops per threads": 2994756.0, "Ops per procs": 299475679.0, "Ops/sec/procs": 9974102.29, "ns per ops/procs": 100.26}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 92544140.0, "Ops per second": 3084150.07, "ns per ops": 324.24, "Ops per threads": 115680.0, "Ops per procs": 11568017.0, "Ops/sec/procs": 385518.76, "ns per ops/procs": 2593.91}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30007.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 77951649.0, "Ops per second": 2597750.78, "ns per ops": 384.95, "Ops per threads": 48719.0, "Ops per procs": 4871978.0, "Ops/sec/procs": 162359.42, "ns per ops/procs": 6159.17}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4353691148.0, "Ops per second": 145123038.27, "ns per ops": 6.9, "Ops per threads": 907018.0, "Ops per procs": 90701898.0, "Ops/sec/procs": 3023396.63, "ns per ops/procs": 331.25}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30023.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1176270030.0, "Ops per second": 39209001.0, "ns per ops": 25.0, "Ops per threads": 245056.0, "Ops per procs": 24505625.0, "Ops/sec/procs": 816854.0, "ns per ops/procs": 1225.0}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30081.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 30192306.0, "Ops per second": 1003678.39, "ns per ops": 996.34, "Ops per threads": 2096.0, "Ops per procs": 209668.0, "Ops/sec/procs": 6969.99, "ns per ops/procs": 143472.25}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30072.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 31096460.0, "Ops per second": 1034040.74, "ns per ops": 967.08, "Ops per threads": 2159.0, "Ops per procs": 215947.0, "Ops/sec/procs": 7180.84, "ns per ops/procs": 139259.5}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 988741684.0, "Ops per second": 32958056.0, "ns per ops": 30.0, "Ops per threads": 1235927.0, "Ops per procs": 123592710.0, "Ops/sec/procs": 4119757.0, "ns per ops/procs": 243.0}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 350976210.0, "Ops per second": 11698706.7, "ns per ops": 85.48, "Ops per threads": 3509762.0, "Ops per procs": 350976210.0, "Ops/sec/procs": 11698706.7, "ns per ops/procs": 85.48}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299621592.0, "Ops per second": 9978998.31, "ns per ops": 100.21, "Ops per threads": 2996215.0, "Ops per procs": 299621592.0, "Ops/sec/procs": 9978998.31, "ns per ops/procs": 100.21}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30042.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6650326242.0, "Ops per second": 221362970.14, "ns per ops": 4.52, "Ops per threads": 1385484.0, "Ops per procs": 138548463.0, "Ops/sec/procs": 4611728.54, "ns per ops/procs": 216.84}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 702808972.0, "Ops per second": 23404093.71, "ns per ops": 42.73, "Ops per threads": 1757022.0, "Ops per procs": 175702243.0, "Ops/sec/procs": 5851023.43, "ns per ops/procs": 170.91}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1000235346.0, "Ops per second": 33341178.2, "ns per ops": 30.06, "Ops per threads": 1250294.0, "Ops per procs": 125029418.0, "Ops/sec/procs": 4167647.27, "ns per ops/procs": 240.44}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30037.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 36499611.0, "Ops per second": 1215136.24, "ns per ops": 822.95, "Ops per threads": 5069.0, "Ops per procs": 506939.0, "Ops/sec/procs": 16876.89, "ns per ops/procs": 59252.62}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30075.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 528292623.0, "Ops per second": 17609754.0, "ns per ops": 56.0, "Ops per threads": 55030.0, "Ops per procs": 5503048.0, "Ops/sec/procs": 183434.0, "ns per ops/procs": 5465.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 574938700.0, "Ops per second": 19164623.33, "ns per ops": 52.27, "Ops per threads": 1437346.0, "Ops per procs": 143734675.0, "Ops/sec/procs": 4791155.83, "ns per ops/procs": 209.1}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30008.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 70673156.0, "Ops per second": 2355130.83, "ns per ops": 424.6, "Ops per threads": 29447.0, "Ops per procs": 2944714.0, "Ops/sec/procs": 98130.45, "ns per ops/procs": 10190.52}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30036.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6562052651.0, "Ops per second": 218466309.3, "ns per ops": 4.58, "Ops per threads": 1367094.0, "Ops per procs": 136709430.0, "Ops/sec/procs": 4551381.44, "ns per ops/procs": 219.71}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 337053380.0, "Ops per second": 11235112.67, "ns per ops": 89.16, "Ops per threads": 1685266.0, "Ops per procs": 168526690.0, "Ops/sec/procs": 5617556.33, "ns per ops/procs": 178.32}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2790951216.0, "Ops per second": 93031707.0, "ns per ops": 10.0, "Ops per threads": 1744344.0, "Ops per procs": 174434451.0, "Ops/sec/procs": 5814481.0, "ns per ops/procs": 172.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1300875461.0, "Ops per second": 43320854.8, "ns per ops": 23.08, "Ops per threads": 1626094.0, "Ops per procs": 162609432.0, "Ops/sec/procs": 5415106.85, "ns per ops/procs": 184.67}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4342696510.0, "Ops per second": 144756550.33, "ns per ops": 6.92, "Ops per threads": 904728.0, "Ops per procs": 90472843.0, "Ops/sec/procs": 3015761.47, "ns per ops/procs": 332.3}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 473983539.0, "Ops per second": 15785069.32, "ns per ops": 63.35, "Ops per threads": 2369917.0, "Ops per procs": 236991769.0, "Ops/sec/procs": 7892534.66, "ns per ops/procs": 126.7}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17529044306.0, "Ops per second": 584301476.87, "ns per ops": 1.71, "Ops per threads": 912971.0, "Ops per procs": 91297105.0, "Ops/sec/procs": 3043236.86, "ns per ops/procs": 328.7}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 573205504.0, "Ops per second": 19106850.13, "ns per ops": 52.44, "Ops per threads": 1433013.0, "Ops per procs": 143301376.0, "Ops/sec/procs": 4776712.53, "ns per ops/procs": 209.74}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30008.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 69372506.0, "Ops per second": 2311767.32, "ns per ops": 432.57, "Ops per threads": 28905.0, "Ops per procs": 2890521.0, "Ops/sec/procs": 96323.64, "ns per ops/procs": 10381.67}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30025.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19233004223.0, "Ops per second": 640563998.33, "ns per ops": 1.56, "Ops per threads": 1335625.0, "Ops per procs": 133562529.0, "Ops/sec/procs": 4448361.1, "ns per ops/procs": 224.8}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1301031154.0, "Ops per second": 43326146.3, "ns per ops": 23.08, "Ops per threads": 1626288.0, "Ops per procs": 162628894.0, "Ops/sec/procs": 5415768.29, "ns per ops/procs": 184.65}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 12910075292.0, "Ops per second": 430335843.07, "ns per ops": 2.33, "Ops per threads": 896533.0, "Ops per procs": 89653300.0, "Ops/sec/procs": 2988443.35, "ns per ops/procs": 335.23}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30008.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 9633967581.0, "Ops per second": 321041722.12, "ns per ops": 3.11, "Ops per threads": 1338051.0, "Ops per procs": 133805105.0, "Ops/sec/procs": 4458912.81, "ns per ops/procs": 224.27}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2159388340.0, "Ops per second": 71979611.33, "ns per ops": 13.93, "Ops per threads": 1349617.0, "Ops per procs": 134961771.0, "Ops/sec/procs": 4498725.71, "ns per ops/procs": 222.84}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 976780212.0, "Ops per second": 32559340.0, "ns per ops": 30.0, "Ops per threads": 1220975.0, "Ops per procs": 122097526.0, "Ops/sec/procs": 4069917.0, "ns per ops/procs": 246.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30036.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 584109589.0, "Ops per second": 19470319.0, "ns per ops": 51.0, "Ops per threads": 81126.0, "Ops per procs": 8112633.0, "Ops/sec/procs": 270421.0, "ns per ops/procs": 3702.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 215611963.0, "Ops per second": 7187065.43, "ns per ops": 139.37, "Ops per threads": 2156119.0, "Ops per procs": 215611963.0, "Ops/sec/procs": 7187065.43, "ns per ops/procs": 139.37}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30057.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 36630816.0, "Ops per second": 1218686.02, "ns per ops": 820.56, "Ops per threads": 3815.0, "Ops per procs": 381571.0, "Ops/sec/procs": 12694.65, "ns per ops/procs": 78773.37}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 12821176245.0, "Ops per second": 427372541.5, "ns per ops": 2.35, "Ops per threads": 890359.0, "Ops per procs": 89035946.0, "Ops/sec/procs": 2967864.87, "ns per ops/procs": 337.88}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 29270409.0, "Ops per second": 972512.08, "ns per ops": 1028.26, "Ops per threads": 2032.0, "Ops per procs": 203266.0, "Ops/sec/procs": 6753.56, "ns per ops/procs": 148070.14}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30081.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 282414574.0, "Ops per second": 9413819.0, "ns per ops": 106.0, "Ops per threads": 14709.0, "Ops per procs": 1470909.0, "Ops/sec/procs": 49030.0, "ns per ops/procs": 20450.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30030.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26483770602.0, "Ops per second": 881883434.65, "ns per ops": 1.13, "Ops per threads": 1379363.0, "Ops per procs": 137936305.0, "Ops/sec/procs": 4593142.89, "ns per ops/procs": 217.72}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30058.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 561391341.0, "Ops per second": 18713044.0, "ns per ops": 53.0, "Ops per threads": 77971.0, "Ops per procs": 7797101.0, "Ops/sec/procs": 259903.0, "ns per ops/procs": 3855.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30029.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 301079582.0, "Ops per second": 10035986.0, "ns per ops": 99.0, "Ops per threads": 20908.0, "Ops per procs": 2090830.0, "Ops/sec/procs": 69694.0, "ns per ops/procs": 14362.0}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30008.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 77675228.0, "Ops per second": 2588458.25, "ns per ops": 386.33, "Ops per threads": 48547.0, "Ops per procs": 4854701.0, "Ops/sec/procs": 161778.64, "ns per ops/procs": 6181.29}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30052.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 34923119.0, "Ops per second": 1162056.99, "ns per ops": 860.54, "Ops per threads": 3637.0, "Ops per procs": 363782.0, "Ops/sec/procs": 12104.76, "ns per ops/procs": 82612.13}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8182194669.0, "Ops per second": 272739822.3, "ns per ops": 3.67, "Ops per threads": 852311.0, "Ops per procs": 85231194.0, "Ops/sec/procs": 2841039.82, "ns per ops/procs": 352.26}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30092.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 546810906.0, "Ops per second": 18227030.0, "ns per ops": 55.0, "Ops per threads": 75945.0, "Ops per procs": 7594595.0, "Ops/sec/procs": 253153.0, "ns per ops/procs": 3962.0}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 88460656.0, "Ops per second": 2948031.14, "ns per ops": 339.21, "Ops per threads": 110575.0, "Ops per procs": 11057582.0, "Ops/sec/procs": 368503.89, "ns per ops/procs": 2713.68}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 364225864.0, "Ops per second": 12140862.0, "ns per ops": 82.0, "Ops per threads": 1821129.0, "Ops per procs": 182112932.0, "Ops/sec/procs": 6070431.0, "ns per ops/procs": 165.0}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30007.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 74170081.0, "Ops per second": 2471692.91, "ns per ops": 404.58, "Ops per threads": 46356.0, "Ops per procs": 4635630.0, "Ops/sec/procs": 154480.81, "ns per ops/procs": 6473.3}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 92864386.0, "Ops per second": 3094837.28, "ns per ops": 323.12, "Ops per threads": 116080.0, "Ops per procs": 11608048.0, "Ops/sec/procs": 386854.66, "ns per ops/procs": 2584.95}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30011.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 10977715818.0, "Ops per second": 365786257.02, "ns per ops": 2.73, "Ops per threads": 1524682.0, "Ops per procs": 152468275.0, "Ops/sec/procs": 5080364.68, "ns per ops/procs": 196.84}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30050.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26345980189.0, "Ops per second": 876731674.71, "ns per ops": 1.14, "Ops per threads": 1372186.0, "Ops per procs": 137218646.0, "Ops/sec/procs": 4566310.81, "ns per ops/procs": 219.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 336283854.0, "Ops per second": 11209461.8, "ns per ops": 89.36, "Ops per threads": 1681419.0, "Ops per procs": 168141927.0, "Ops/sec/procs": 5604730.9, "ns per ops/procs": 178.73}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1007386081.0, "Ops per second": 33579536.03, "ns per ops": 29.84, "Ops per threads": 1259232.0, "Ops per procs": 125923260.0, "Ops/sec/procs": 4197442.0, "ns per ops/procs": 238.73}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 573189382.0, "Ops per second": 19106312.73, "ns per ops": 52.43, "Ops per threads": 1432973.0, "Ops per procs": 143297345.0, "Ops/sec/procs": 4776578.18, "ns per ops/procs": 209.74}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 171043498.0, "Ops per second": 5700596.47, "ns per ops": 175.42, "Ops per threads": 855217.0, "Ops per procs": 85521749.0, "Ops/sec/procs": 2850298.24, "ns per ops/procs": 350.84}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1004519903.0, "Ops per second": 33483996.77, "ns per ops": 29.93, "Ops per threads": 1255649.0, "Ops per procs": 125564987.0, "Ops/sec/procs": 4185499.6, "ns per ops/procs": 239.41}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3202094125.0, "Ops per second": 106736470.0, "ns per ops": 9.0, "Ops per threads": 2001308.0, "Ops per procs": 200130882.0, "Ops/sec/procs": 6671029.0, "ns per ops/procs": 150.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30029.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 488656852.0, "Ops per second": 16272514.04, "ns per ops": 61.45, "Ops per threads": 2443284.0, "Ops per procs": 244328426.0, "Ops/sec/procs": 8136257.02, "ns per ops/procs": 122.91}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30025.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 67700097.0, "Ops per second": 2254774.21, "ns per ops": 443.5, "Ops per threads": 14104.0, "Ops per procs": 1410418.0, "Ops/sec/procs": 46974.46, "ns per ops/procs": 21288.16}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30049.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 34692859.0, "Ops per second": 1154516.51, "ns per ops": 866.16, "Ops per threads": 3613.0, "Ops per procs": 361383.0, "Ops/sec/procs": 12026.21, "ns per ops/procs": 83151.69}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8359133119.0, "Ops per second": 278637770.63, "ns per ops": 3.59, "Ops per threads": 870743.0, "Ops per procs": 87074303.0, "Ops/sec/procs": 2902476.78, "ns per ops/procs": 344.81}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30100.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1194760295.0, "Ops per second": 39825343.0, "ns per ops": 25.0, "Ops per threads": 248908.0, "Ops per procs": 24890839.0, "Ops/sec/procs": 829694.0, "ns per ops/procs": 1209.0}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 346417706.0, "Ops per second": 11546777.72, "ns per ops": 86.6, "Ops per threads": 3464177.0, "Ops per procs": 346417706.0, "Ops/sec/procs": 11546777.72, "ns per ops/procs": 86.6}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2802330650.0, "Ops per second": 93411021.0, "ns per ops": 10.0, "Ops per threads": 1751456.0, "Ops per procs": 175145665.0, "Ops/sec/procs": 5838188.0, "ns per ops/procs": 171.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30050.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 10388316941.0, "Ops per second": 345699924.9, "ns per ops": 2.89, "Ops per threads": 1442821.0, "Ops per procs": 144282179.0, "Ops/sec/procs": 4801387.85, "ns per ops/procs": 208.27}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30062.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 25759491108.0, "Ops per second": 856850845.73, "ns per ops": 1.17, "Ops per threads": 1341640.0, "Ops per procs": 134164016.0, "Ops/sec/procs": 4462764.82, "ns per ops/procs": 224.08}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 270648307.0, "Ops per second": 9021610.0, "ns per ops": 111.0, "Ops per threads": 2706483.0, "Ops per procs": 270648307.0, "Ops/sec/procs": 9021610.0, "ns per ops/procs": 111.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30042.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19502856105.0, "Ops per second": 649178427.41, "ns per ops": 1.54, "Ops per threads": 1354365.0, "Ops per procs": 135436500.0, "Ops/sec/procs": 4508183.52, "ns per ops/procs": 221.82}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299499043.0, "Ops per second": 9974911.65, "ns per ops": 100.25, "Ops per threads": 2994990.0, "Ops per procs": 299499043.0, "Ops/sec/procs": 9974911.65, "ns per ops/procs": 100.25}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 349357017.0, "Ops per second": 11644743.35, "ns per ops": 85.88, "Ops per threads": 3493570.0, "Ops per procs": 349357017.0, "Ops/sec/procs": 11644743.35, "ns per ops/procs": 85.88}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8304008885.0, "Ops per second": 276800296.17, "ns per ops": 3.62, "Ops per threads": 865000.0, "Ops per procs": 86500092.0, "Ops/sec/procs": 2883336.42, "ns per ops/procs": 347.16}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 485390736.0, "Ops per second": 16165047.22, "ns per ops": 61.86, "Ops per threads": 2426953.0, "Ops per procs": 242695368.0, "Ops/sec/procs": 8082523.61, "ns per ops/procs": 123.72}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299519355.0, "Ops per second": 9975570.24, "ns per ops": 100.24, "Ops per threads": 2995193.0, "Ops per procs": 299519355.0, "Ops/sec/procs": 9975570.24, "ns per ops/procs": 100.24}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299779664.0, "Ops per second": 9984303.75, "ns per ops": 100.16, "Ops per threads": 2997796.0, "Ops per procs": 299779664.0, "Ops/sec/procs": 9984303.75, "ns per ops/procs": 100.16}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30007.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 78073630.0, "Ops per second": 2601798.32, "ns per ops": 384.35, "Ops per threads": 48796.0, "Ops per procs": 4879601.0, "Ops/sec/procs": 162612.39, "ns per ops/procs": 6149.59}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2714447483.0, "Ops per second": 90481582.77, "ns per ops": 11.06, "Ops per threads": 1131019.0, "Ops per procs": 113101978.0, "Ops/sec/procs": 3770065.95, "ns per ops/procs": 265.44}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 518622064.0, "Ops per second": 17287402.0, "ns per ops": 58.0, "Ops per threads": 1296555.0, "Ops per procs": 129655516.0, "Ops/sec/procs": 4321850.0, "ns per ops/procs": 232.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 11877509648.0, "Ops per second": 395916988.27, "ns per ops": 2.53, "Ops per threads": 824827.0, "Ops per procs": 82482705.0, "Ops/sec/procs": 2749423.53, "ns per ops/procs": 364.34}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30082.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 505199363.0, "Ops per second": 16839978.0, "ns per ops": 59.0, "Ops per threads": 52624.0, "Ops per procs": 5262493.0, "Ops/sec/procs": 175416.0, "ns per ops/procs": 5716.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 298148005.0, "Ops per second": 9929939.68, "ns per ops": 100.71, "Ops per threads": 2981480.0, "Ops per procs": 298148005.0, "Ops/sec/procs": 9929939.68, "ns per ops/procs": 100.71}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30029.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 482445065.0, "Ops per second": 16065878.57, "ns per ops": 62.24, "Ops per threads": 2412225.0, "Ops per procs": 241222532.0, "Ops/sec/procs": 8032939.28, "ns per ops/procs": 124.49}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30017.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1668126380.0, "Ops per second": 55604212.0, "ns per ops": 17.0, "Ops per threads": 695052.0, "Ops per procs": 69505265.0, "Ops/sec/procs": 2316842.0, "ns per ops/procs": 431.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30010.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26487109928.0, "Ops per second": 882590502.56, "ns per ops": 1.13, "Ops per threads": 1379536.0, "Ops per procs": 137953697.0, "Ops/sec/procs": 4596825.53, "ns per ops/procs": 217.54}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 217854950.0, "Ops per second": 7261831.67, "ns per ops": 137.94, "Ops per threads": 2178549.0, "Ops per procs": 217854950.0, "Ops/sec/procs": 7261831.67, "ns per ops/procs": 137.94}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30009.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1176618768.0, "Ops per second": 39220625.0, "ns per ops": 25.0, "Ops per threads": 245128.0, "Ops per procs": 24512891.0, "Ops/sec/procs": 817096.0, "ns per ops/procs": 1224.0}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30043.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26981924.0, "Ops per second": 898100.45, "ns per ops": 1113.46, "Ops per threads": 1405.0, "Ops per procs": 140530.0, "Ops/sec/procs": 4677.61, "ns per ops/procs": 213784.55}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3051709063.0, "Ops per second": 101614959.71, "ns per ops": 9.84, "Ops per threads": 1907318.0, "Ops per procs": 190731816.0, "Ops/sec/procs": 6350934.98, "ns per ops/procs": 157.46}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30069.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 302175582.0, "Ops per second": 10072519.0, "ns per ops": 99.0, "Ops per threads": 20984.0, "Ops per procs": 2098441.0, "Ops/sec/procs": 69948.0, "ns per ops/procs": 14329.0}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26884355.0, "Ops per second": 893232.16, "ns per ops": 1119.53, "Ops per threads": 1400.0, "Ops per procs": 140022.0, "Ops/sec/procs": 4652.25, "ns per ops/procs": 214949.72}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30070.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 278552837.0, "Ops per second": 9285094.0, "ns per ops": 107.0, "Ops per threads": 14507.0, "Ops per procs": 1450796.0, "Ops/sec/procs": 48359.0, "ns per ops/procs": 20726.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30028.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1296881289.0, "Ops per second": 43189057.01, "ns per ops": 23.15, "Ops per threads": 1621101.0, "Ops per procs": 162110161.0, "Ops/sec/procs": 5398632.13, "ns per ops/procs": 185.23}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4309728344.0, "Ops per second": 143657611.47, "ns per ops": 6.97, "Ops per threads": 897860.0, "Ops per procs": 89786007.0, "Ops/sec/procs": 2992866.91, "ns per ops/procs": 334.73}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3097172880.0, "Ops per second": 103127005.02, "ns per ops": 9.7, "Ops per threads": 1935733.0, "Ops per procs": 193573305.0, "Ops/sec/procs": 6445437.81, "ns per ops/procs": 155.15}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 483149542.0, "Ops per second": 16090398.09, "ns per ops": 62.15, "Ops per threads": 2415747.0, "Ops per procs": 241574771.0, "Ops/sec/procs": 8045199.05, "ns per ops/procs": 124.3}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2151165578.0, "Ops per second": 71705519.27, "ns per ops": 13.98, "Ops per threads": 1344478.0, "Ops per procs": 134447848.0, "Ops/sec/procs": 4481594.95, "ns per ops/procs": 223.7}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30007.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 78848322.0, "Ops per second": 2627612.5, "ns per ops": 380.57, "Ops per threads": 49280.0, "Ops per procs": 4928020.0, "Ops/sec/procs": 164225.78, "ns per ops/procs": 6089.18}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30026.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19181919121.0, "Ops per second": 638834415.49, "ns per ops": 1.57, "Ops per threads": 1332077.0, "Ops per procs": 133207771.0, "Ops/sec/procs": 4436350.11, "ns per ops/procs": 225.41}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30087.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 11263735948.0, "Ops per second": 374369363.3, "ns per ops": 2.67, "Ops per threads": 1564407.0, "Ops per procs": 156440777.0, "Ops/sec/procs": 5199574.49, "ns per ops/procs": 192.32}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3066538493.0, "Ops per second": 102108974.84, "ns per ops": 9.79, "Ops per threads": 1916586.0, "Ops per procs": 191658655.0, "Ops/sec/procs": 6381810.93, "ns per ops/procs": 156.7}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4287144838.0, "Ops per second": 142904827.93, "ns per ops": 7.01, "Ops per threads": 893155.0, "Ops per procs": 89315517.0, "Ops/sec/procs": 2977183.92, "ns per ops/procs": 336.48}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30009.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4400191769.0, "Ops per second": 146628903.8, "ns per ops": 6.82, "Ops per threads": 1833413.0, "Ops per procs": 183341323.0, "Ops/sec/procs": 6109537.66, "ns per ops/procs": 163.68}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30078.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 584224891.0, "Ops per second": 19474163.0, "ns per ops": 51.0, "Ops per threads": 81142.0, "Ops per procs": 8114234.0, "Ops/sec/procs": 270474.0, "ns per ops/procs": 3706.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30021.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13194211533.0, "Ops per second": 439497928.75, "ns per ops": 2.28, "Ops per threads": 1374397.0, "Ops per procs": 137439703.0, "Ops/sec/procs": 4578103.42, "ns per ops/procs": 218.43}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30026.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19381279124.0, "Ops per second": 645467493.61, "ns per ops": 1.55, "Ops per threads": 1345922.0, "Ops per procs": 134592216.0, "Ops/sec/procs": 4482413.15, "ns per ops/procs": 223.09}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 479769286.0, "Ops per second": 15977743.65, "ns per ops": 62.59, "Ops per threads": 2398846.0, "Ops per procs": 239884643.0, "Ops/sec/procs": 7988871.82, "ns per ops/procs": 125.17}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 366345710.0, "Ops per second": 12211523.0, "ns per ops": 82.0, "Ops per threads": 1831728.0, "Ops per procs": 183172855.0, "Ops/sec/procs": 6105761.0, "ns per ops/procs": 164.0}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30054.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 35279040.0, "Ops per second": 1173827.13, "ns per ops": 851.91, "Ops per threads": 3674.0, "Ops per procs": 367490.0, "Ops/sec/procs": 12227.37, "ns per ops/procs": 81783.76}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1005001530.0, "Ops per second": 33500051.0, "ns per ops": 29.91, "Ops per threads": 1256251.0, "Ops per procs": 125625191.0, "Ops/sec/procs": 4187506.38, "ns per ops/procs": 239.28}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30010.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1587819639.0, "Ops per second": 52927321.0, "ns per ops": 18.0, "Ops per threads": 661591.0, "Ops per procs": 66159151.0, "Ops/sec/procs": 2205305.0, "ns per ops/procs": 453.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30014.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 10523171981.0, "Ops per second": 350599599.11, "ns per ops": 2.85, "Ops per threads": 1461551.0, "Ops per procs": 146155166.0, "Ops/sec/procs": 4869438.88, "ns per ops/procs": 205.36}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2686169832.0, "Ops per second": 89538994.4, "ns per ops": 11.18, "Ops per threads": 1119237.0, "Ops per procs": 111923743.0, "Ops/sec/procs": 3730791.43, "ns per ops/procs": 268.21}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30009.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4397115121.0, "Ops per second": 146525156.57, "ns per ops": 6.82, "Ops per threads": 1832131.0, "Ops per procs": 183213130.0, "Ops/sec/procs": 6105214.86, "ns per ops/procs": 163.79}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 172736097.0, "Ops per second": 5757057.79, "ns per ops": 173.7, "Ops per threads": 863680.0, "Ops per procs": 86368048.0, "Ops/sec/procs": 2878528.9, "ns per ops/procs": 347.4}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 12285650420.0, "Ops per second": 409521680.67, "ns per ops": 2.44, "Ops per threads": 853170.0, "Ops per procs": 85317016.0, "Ops/sec/procs": 2843900.56, "ns per ops/procs": 352.07}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299632060.0, "Ops per second": 9979331.8, "ns per ops": 100.21, "Ops per threads": 2996320.0, "Ops per procs": 299632060.0, "Ops/sec/procs": 9979331.8, "ns per ops/procs": 100.21}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3017442937.0, "Ops per second": 100473086.74, "ns per ops": 9.95, "Ops per threads": 1885901.0, "Ops per procs": 188590183.0, "Ops/sec/procs": 6279567.92, "ns per ops/procs": 159.25}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30025.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4400478567.0, "Ops per second": 146559753.57, "ns per ops": 6.82, "Ops per threads": 1833532.0, "Ops per procs": 183353273.0, "Ops/sec/procs": 6106656.4, "ns per ops/procs": 163.76}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 526845365.0, "Ops per second": 17561512.0, "ns per ops": 57.0, "Ops per threads": 1317113.0, "Ops per procs": 131711341.0, "Ops/sec/procs": 4390378.0, "ns per ops/procs": 228.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30048.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 264138657.0, "Ops per second": 8804621.0, "ns per ops": 113.0, "Ops per threads": 13757.0, "Ops per procs": 1375722.0, "Ops/sec/procs": 45857.0, "ns per ops/procs": 21842.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2744843579.0, "Ops per second": 91494785.97, "ns per ops": 10.94, "Ops per threads": 1143684.0, "Ops per procs": 114368482.0, "Ops/sec/procs": 3812282.75, "ns per ops/procs": 262.51}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 350398388.0, "Ops per second": 11679453.78, "ns per ops": 85.62, "Ops per threads": 3503983.0, "Ops per procs": 350398388.0, "Ops/sec/procs": 11679453.78, "ns per ops/procs": 85.62}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 12685559739.0, "Ops per second": 422851991.3, "ns per ops": 2.37, "Ops per threads": 880941.0, "Ops per procs": 88094164.0, "Ops/sec/procs": 2936472.16, "ns per ops/procs": 340.92}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30001.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1192178672.0, "Ops per second": 39739289.0, "ns per ops": 25.0, "Ops per threads": 248370.0, "Ops per procs": 24837055.0, "Ops/sec/procs": 827901.0, "ns per ops/procs": 1207.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 217423880.0, "Ops per second": 7247462.67, "ns per ops": 138.21, "Ops per threads": 2174238.0, "Ops per procs": 217423880.0, "Ops/sec/procs": 7247462.67, "ns per ops/procs": 138.21}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30027.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 10020193384.0, "Ops per second": 333703893.35, "ns per ops": 3.0, "Ops per threads": 1391693.0, "Ops per procs": 139169352.0, "Ops/sec/procs": 4634776.3, "ns per ops/procs": 215.76}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30012.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6646731060.0, "Ops per second": 221464222.73, "ns per ops": 4.52, "Ops per threads": 1384735.0, "Ops per procs": 138473563.0, "Ops/sec/procs": 4613837.97, "ns per ops/procs": 216.74}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30032.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 299723626.0, "Ops per second": 9990787.0, "ns per ops": 100.0, "Ops per threads": 20814.0, "Ops per procs": 2081414.0, "Ops/sec/procs": 69380.0, "ns per ops/procs": 14428.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30099.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2742834949.0, "Ops per second": 91427831.0, "ns per ops": 10.0, "Ops per threads": 1714271.0, "Ops per procs": 171427184.0, "Ops/sec/procs": 5714239.0, "ns per ops/procs": 175.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30014.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 573687309.0, "Ops per second": 19122910.0, "ns per ops": 52.0, "Ops per threads": 79678.0, "Ops per procs": 7967879.0, "Ops/sec/procs": 265595.0, "ns per ops/procs": 3766.0}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30007.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 85820934.0, "Ops per second": 2860019.98, "ns per ops": 349.65, "Ops per threads": 107276.0, "Ops per procs": 10727616.0, "Ops/sec/procs": 357502.5, "ns per ops/procs": 2797.18}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 535172143.0, "Ops per second": 17839071.0, "ns per ops": 56.0, "Ops per threads": 1337930.0, "Ops per procs": 133793035.0, "Ops/sec/procs": 4459767.0, "ns per ops/procs": 224.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30018.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13280603684.0, "Ops per second": 442411026.33, "ns per ops": 2.26, "Ops per threads": 1383396.0, "Ops per procs": 138339621.0, "Ops/sec/procs": 4608448.19, "ns per ops/procs": 216.99}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30082.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26499472584.0, "Ops per second": 880884889.05, "ns per ops": 1.14, "Ops per threads": 1380180.0, "Ops per procs": 138018086.0, "Ops/sec/procs": 4587942.13, "ns per ops/procs": 217.96}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30029.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1296315438.0, "Ops per second": 43168684.8, "ns per ops": 23.16, "Ops per threads": 1620394.0, "Ops per procs": 162039429.0, "Ops/sec/procs": 5396085.6, "ns per ops/procs": 185.32}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30061.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 585523309.0, "Ops per second": 19517443.0, "ns per ops": 51.0, "Ops per threads": 81322.0, "Ops per procs": 8132268.0, "Ops/sec/procs": 271075.0, "ns per ops/procs": 3696.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2763750592.0, "Ops per second": 92125019.73, "ns per ops": 10.86, "Ops per threads": 1151562.0, "Ops per procs": 115156274.0, "Ops/sec/procs": 3838542.49, "ns per ops/procs": 260.69}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 334891744.0, "Ops per second": 11163058.13, "ns per ops": 89.74, "Ops per threads": 1674458.0, "Ops per procs": 167445872.0, "Ops/sec/procs": 5581529.07, "ns per ops/procs": 179.47}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2681805686.0, "Ops per second": 89393522.87, "ns per ops": 11.19, "Ops per threads": 1117419.0, "Ops per procs": 111741903.0, "Ops/sec/procs": 3724730.12, "ns per ops/procs": 268.67}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 270599155.0, "Ops per second": 9019971.0, "ns per ops": 111.0, "Ops per threads": 2705991.0, "Ops per procs": 270599155.0, "Ops/sec/procs": 9019971.0, "ns per ops/procs": 111.0}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30008.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 77894503.0, "Ops per second": 2595767.64, "ns per ops": 385.24, "Ops per threads": 48684.0, "Ops per procs": 4868406.0, "Ops/sec/procs": 162235.48, "ns per ops/procs": 6163.88}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30008.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 70605030.0, "Ops per second": 2352863.11, "ns per ops": 425.01, "Ops per threads": 29418.0, "Ops per procs": 2941876.0, "Ops/sec/procs": 98035.96, "ns per ops/procs": 10200.34}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 93245507.0, "Ops per second": 3107522.12, "ns per ops": 321.8, "Ops per threads": 116556.0, "Ops per procs": 11655688.0, "Ops/sec/procs": 388440.26, "ns per ops/procs": 2574.4}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4254187189.0, "Ops per second": 141806239.63, "ns per ops": 7.06, "Ops per threads": 886288.0, "Ops per procs": 88628899.0, "Ops/sec/procs": 2954296.66, "ns per ops/procs": 338.86}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30067.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 310910959.0, "Ops per second": 10363698.0, "ns per ops": 96.0, "Ops per threads": 21591.0, "Ops per procs": 2159103.0, "Ops/sec/procs": 71970.0, "ns per ops/procs": 13926.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 298676742.0, "Ops per second": 9947506.94, "ns per ops": 100.53, "Ops per threads": 2986767.0, "Ops per procs": 298676742.0, "Ops/sec/procs": 9947506.94, "ns per ops/procs": 100.53}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30025.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 67298031.0, "Ops per second": 2241391.86, "ns per ops": 446.15, "Ops per threads": 14020.0, "Ops per procs": 1402042.0, "Ops/sec/procs": 46695.66, "ns per ops/procs": 21415.26}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 93205040.0, "Ops per second": 3106176.4, "ns per ops": 321.94, "Ops per threads": 116506.0, "Ops per procs": 11650630.0, "Ops/sec/procs": 388272.05, "ns per ops/procs": 2575.51}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30040.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3075471853.0, "Ops per second": 102376332.91, "ns per ops": 9.77, "Ops per threads": 1922169.0, "Ops per procs": 192216990.0, "Ops/sec/procs": 6398520.81, "ns per ops/procs": 156.29}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 480427696.0, "Ops per second": 15999753.5, "ns per ops": 62.5, "Ops per threads": 2402138.0, "Ops per procs": 240213848.0, "Ops/sec/procs": 7999876.75, "ns per ops/procs": 125.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 270075695.0, "Ops per second": 9002523.0, "ns per ops": 111.0, "Ops per threads": 2700756.0, "Ops per procs": 270075695.0, "Ops/sec/procs": 9002523.0, "ns per ops/procs": 111.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30070.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 504985815.0, "Ops per second": 16832860.0, "ns per ops": 59.0, "Ops per threads": 52602.0, "Ops per procs": 5260268.0, "Ops/sec/procs": 175342.0, "ns per ops/procs": 5716.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 351510662.0, "Ops per second": 11717022.0, "ns per ops": 85.0, "Ops per threads": 1757553.0, "Ops per procs": 175755331.0, "Ops/sec/procs": 5858511.0, "ns per ops/procs": 171.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 200", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 418604168.0, "Ops per second": 13953472.0, "ns per ops": 71.0, "Ops per threads": 2093020.0, "Ops per procs": 209302084.0, "Ops/sec/procs": 6976736.0, "ns per ops/procs": 143.0}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30031.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 27010124.0, "Ops per second": 899395.94, "ns per ops": 1111.86, "Ops per threads": 1406.0, "Ops per procs": 140677.0, "Ops/sec/procs": 4684.35, "ns per ops/procs": 213476.61}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30029.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 288757282.0, "Ops per second": 9625242.0, "ns per ops": 103.0, "Ops per threads": 20052.0, "Ops per procs": 2005258.0, "Ops/sec/procs": 66841.0, "ns per ops/procs": 14975.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2684856479.0, "Ops per second": 89495215.97, "ns per ops": 11.18, "Ops per threads": 1118690.0, "Ops per procs": 111869019.0, "Ops/sec/procs": 3728967.33, "ns per ops/procs": 268.32}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8264274278.0, "Ops per second": 275475809.27, "ns per ops": 3.63, "Ops per threads": 860861.0, "Ops per procs": 86086190.0, "Ops/sec/procs": 2869539.68, "ns per ops/procs": 348.76}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 270181513.0, "Ops per second": 9006050.0, "ns per ops": 111.0, "Ops per threads": 2701815.0, "Ops per procs": 270181513.0, "Ops/sec/procs": 9006050.0, "ns per ops/procs": 111.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 333451226.0, "Ops per second": 11115040.87, "ns per ops": 90.12, "Ops per threads": 1667256.0, "Ops per procs": 166725613.0, "Ops/sec/procs": 5557520.43, "ns per ops/procs": 180.24}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2155600530.0, "Ops per second": 71853351.0, "ns per ops": 13.95, "Ops per threads": 1347250.0, "Ops per procs": 134725033.0, "Ops/sec/procs": 4490834.44, "ns per ops/procs": 223.25}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30062.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6610751065.0, "Ops per second": 219903365.57, "ns per ops": 4.55, "Ops per threads": 1377239.0, "Ops per procs": 137723980.0, "Ops/sec/procs": 4581320.12, "ns per ops/procs": 218.28}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30086.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 579985671.0, "Ops per second": 19332855.0, "ns per ops": 51.0, "Ops per threads": 80553.0, "Ops per procs": 8055356.0, "Ops/sec/procs": 268511.0, "ns per ops/procs": 3735.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 215803072.0, "Ops per second": 7193435.73, "ns per ops": 139.24, "Ops per threads": 2158030.0, "Ops per procs": 215803072.0, "Ops/sec/procs": 7193435.73, "ns per ops/procs": 139.24}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 169260575.0, "Ops per second": 5641150.98, "ns per ops": 177.27, "Ops per threads": 846302.0, "Ops per procs": 84630287.0, "Ops/sec/procs": 2820575.49, "ns per ops/procs": 354.54}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30086.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 30308257.0, "Ops per second": 1007372.67, "ns per ops": 992.68, "Ops per threads": 2104.0, "Ops per procs": 210474.0, "Ops/sec/procs": 6995.64, "ns per ops/procs": 142946.11}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2744244016.0, "Ops per second": 91474800.0, "ns per ops": 10.0, "Ops per threads": 1715152.0, "Ops per procs": 171515251.0, "Ops/sec/procs": 5717175.0, "ns per ops/procs": 175.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30029.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 702457229.0, "Ops per second": 23392347.47, "ns per ops": 42.75, "Ops per threads": 1756143.0, "Ops per procs": 175614307.0, "Ops/sec/procs": 5848086.87, "ns per ops/procs": 171.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30009.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4399289794.0, "Ops per second": 146598264.72, "ns per ops": 6.82, "Ops per threads": 1833037.0, "Ops per procs": 183303741.0, "Ops/sec/procs": 6108261.03, "ns per ops/procs": 163.71}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2147276090.0, "Ops per second": 71575869.67, "ns per ops": 14.01, "Ops per threads": 1342047.0, "Ops per procs": 134204755.0, "Ops/sec/procs": 4473491.85, "ns per ops/procs": 224.11}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30030.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 811215293.0, "Ops per second": 27013334.98, "ns per ops": 37.02, "Ops per threads": 2028038.0, "Ops per procs": 202803823.0, "Ops/sec/procs": 6753333.74, "ns per ops/procs": 148.08}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30039.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 67528123.0, "Ops per second": 2248014.17, "ns per ops": 444.84, "Ops per threads": 14068.0, "Ops per procs": 1406835.0, "Ops/sec/procs": 46833.63, "ns per ops/procs": 21352.18}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 567385338.0, "Ops per second": 18912844.6, "ns per ops": 52.97, "Ops per threads": 1418463.0, "Ops per procs": 141846334.0, "Ops/sec/procs": 4728211.15, "ns per ops/procs": 211.89}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1004869135.0, "Ops per second": 33495637.83, "ns per ops": 29.92, "Ops per threads": 1256086.0, "Ops per procs": 125608641.0, "Ops/sec/procs": 4186954.73, "ns per ops/procs": 239.32}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 7200", {"Duration (ms)": 30019.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 574509430.0, "Ops per second": 19150314.0, "ns per ops": 52.0, "Ops per threads": 79792.0, "Ops per procs": 7979297.0, "Ops/sec/procs": 265976.0, "ns per ops/procs": 3762.0}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 347726400.0, "Ops per second": 11590371.11, "ns per ops": 86.28, "Ops per threads": 3477264.0, "Ops per procs": 347726400.0, "Ops/sec/procs": 11590371.11, "ns per ops/procs": 86.28}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8294203179.0, "Ops per second": 276473439.3, "ns per ops": 3.62, "Ops per threads": 863979.0, "Ops per procs": 86397949.0, "Ops/sec/procs": 2879931.66, "ns per ops/procs": 347.52}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30060.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 25989130042.0, "Ops per second": 864557771.72, "ns per ops": 1.16, "Ops per threads": 1353600.0, "Ops per procs": 135360052.0, "Ops/sec/procs": 4502905.06, "ns per ops/procs": 222.08}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 479352322.0, "Ops per second": 15963998.87, "ns per ops": 62.64, "Ops per threads": 2396761.0, "Ops per procs": 239676161.0, "Ops/sec/procs": 7981999.43, "ns per ops/procs": 125.28}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299299007.0, "Ops per second": 9968179.52, "ns per ops": 100.32, "Ops per threads": 2992990.0, "Ops per procs": 299299007.0, "Ops/sec/procs": 9968179.52, "ns per ops/procs": 100.32}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30098.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1179053071.0, "Ops per second": 39301769.0, "ns per ops": 25.0, "Ops per threads": 245636.0, "Ops per procs": 24563605.0, "Ops/sec/procs": 818786.0, "ns per ops/procs": 1225.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30025.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19790979469.0, "Ops per second": 659136298.08, "ns per ops": 1.52, "Ops per threads": 1374373.0, "Ops per procs": 137437357.0, "Ops/sec/procs": 4577335.4, "ns per ops/procs": 218.47}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8316002091.0, "Ops per second": 277200069.7, "ns per ops": 3.61, "Ops per threads": 866250.0, "Ops per procs": 86625021.0, "Ops/sec/procs": 2887500.73, "ns per ops/procs": 346.66}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 70546539.0, "Ops per second": 2350926.65, "ns per ops": 425.36, "Ops per threads": 29394.0, "Ops per procs": 2939439.0, "Ops/sec/procs": 97955.28, "ns per ops/procs": 10208.74}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30033.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 25733348837.0, "Ops per second": 856830788.03, "ns per ops": 1.17, "Ops per threads": 1340278.0, "Ops per procs": 134027858.0, "Ops/sec/procs": 4462660.35, "ns per ops/procs": 224.08}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30009.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1177628415.0, "Ops per second": 39254280.0, "ns per ops": 25.0, "Ops per threads": 245339.0, "Ops per procs": 24533925.0, "Ops/sec/procs": 817797.0, "ns per ops/procs": 1223.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30030.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1147486229.0, "Ops per second": 38249540.0, "ns per ops": 26.0, "Ops per threads": 239059.0, "Ops per procs": 23905963.0, "Ops/sec/procs": 796865.0, "ns per ops/procs": 1256.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17564439800.0, "Ops per second": 585481326.67, "ns per ops": 1.71, "Ops per threads": 914814.0, "Ops per procs": 91481457.0, "Ops/sec/procs": 3049381.91, "ns per ops/procs": 328.19}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30025.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 302169540.0, "Ops per second": 10072318.0, "ns per ops": 99.0, "Ops per threads": 20983.0, "Ops per procs": 2098399.0, "Ops/sec/procs": 69946.0, "ns per ops/procs": 14308.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30033.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3036380768.0, "Ops per second": 101101461.76, "ns per ops": 9.89, "Ops per threads": 1897737.0, "Ops per procs": 189773798.0, "Ops/sec/procs": 6318841.36, "ns per ops/procs": 158.26}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30017.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 1554120722.0, "Ops per second": 51804024.0, "ns per ops": 19.0, "Ops per threads": 647550.0, "Ops per procs": 64755030.0, "Ops/sec/procs": 2158501.0, "ns per ops/procs": 463.0}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30004.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 115550611.0, "Ops per second": 3851071.98, "ns per ops": 259.67, "Ops per threads": 288876.0, "Ops per procs": 28887652.0, "Ops/sec/procs": 962767.99, "ns per ops/procs": 1038.67}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 92028333.0, "Ops per second": 3066952.6, "ns per ops": 326.06, "Ops per threads": 115035.0, "Ops per procs": 11503541.0, "Ops/sec/procs": 383369.07, "ns per ops/procs": 2608.45}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30035.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 290688763.0, "Ops per second": 9689625.0, "ns per ops": 103.0, "Ops per threads": 15140.0, "Ops per procs": 1514003.0, "Ops/sec/procs": 50466.0, "ns per ops/procs": 19838.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 2400", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2079126941.0, "Ops per second": 69304231.0, "ns per ops": 14.0, "Ops per threads": 866302.0, "Ops per procs": 86630289.0, "Ops/sec/procs": 2887676.0, "ns per ops/procs": 347.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30008.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4384437315.0, "Ops per second": 146104326.17, "ns per ops": 6.84, "Ops per threads": 1826848.0, "Ops per procs": 182684888.0, "Ops/sec/procs": 6087680.26, "ns per ops/procs": 164.27}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30022.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 10250267009.0, "Ops per second": 341423701.74, "ns per ops": 2.93, "Ops per threads": 1423648.0, "Ops per procs": 142364819.0, "Ops/sec/procs": 4741995.86, "ns per ops/procs": 210.88}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4293843882.0, "Ops per second": 143128129.4, "ns per ops": 7.0, "Ops per threads": 894550.0, "Ops per procs": 89455080.0, "Ops/sec/procs": 2981836.03, "ns per ops/procs": 336.09}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30084.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 29408377.0, "Ops per second": 977525.35, "ns per ops": 1022.99, "Ops per threads": 2042.0, "Ops per procs": 204224.0, "Ops/sec/procs": 6788.37, "ns per ops/procs": 147310.76}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1008042353.0, "Ops per second": 33601411.77, "ns per ops": 29.82, "Ops per threads": 1260052.0, "Ops per procs": 126005294.0, "Ops/sec/procs": 4200176.47, "ns per ops/procs": 238.57}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 999947535.0, "Ops per second": 33331584.5, "ns per ops": 30.06, "Ops per threads": 1249934.0, "Ops per procs": 124993441.0, "Ops/sec/procs": 4166448.06, "ns per ops/procs": 240.5}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30004.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 113446676.0, "Ops per second": 3780934.96, "ns per ops": 264.48, "Ops per threads": 283616.0, "Ops per procs": 28361669.0, "Ops/sec/procs": 945233.74, "ns per ops/procs": 1057.94}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 11889810957.0, "Ops per second": 396327031.9, "ns per ops": 2.53, "Ops per threads": 825681.0, "Ops per procs": 82568131.0, "Ops/sec/procs": 2752271.05, "ns per ops/procs": 363.97}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30023.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 533886713.0, "Ops per second": 17796223.0, "ns per ops": 56.0, "Ops per threads": 55613.0, "Ops per procs": 5561319.0, "Ops/sec/procs": 185377.0, "ns per ops/procs": 5398.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13282632623.0, "Ops per second": 442613220.45, "ns per ops": 2.26, "Ops per threads": 1383607.0, "Ops per procs": 138360756.0, "Ops/sec/procs": 4610554.38, "ns per ops/procs": 216.89}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 573493703.0, "Ops per second": 19116456.77, "ns per ops": 52.41, "Ops per threads": 1433734.0, "Ops per procs": 143373425.0, "Ops/sec/procs": 4779114.19, "ns per ops/procs": 209.63}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30008.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4422531922.0, "Ops per second": 147374144.76, "ns per ops": 6.79, "Ops per threads": 1842721.0, "Ops per procs": 184272163.0, "Ops/sec/procs": 6140589.37, "ns per ops/procs": 162.85}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 983324555.0, "Ops per second": 32777485.0, "ns per ops": 30.0, "Ops per threads": 1229155.0, "Ops per procs": 122915569.0, "Ops/sec/procs": 4097185.0, "ns per ops/procs": 244.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 270874159.0, "Ops per second": 9029138.0, "ns per ops": 111.0, "Ops per threads": 2708741.0, "Ops per procs": 270874159.0, "Ops/sec/procs": 9029138.0, "ns per ops/procs": 111.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30076.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 537517678.0, "Ops per second": 17917255.0, "ns per ops": 55.0, "Ops per threads": 55991.0, "Ops per procs": 5599142.0, "Ops/sec/procs": 186638.0, "ns per ops/procs": 5371.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4282166915.0, "Ops per second": 142738897.17, "ns per ops": 7.02, "Ops per threads": 892118.0, "Ops per procs": 89211810.0, "Ops/sec/procs": 2973727.02, "ns per ops/procs": 336.88}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 9600", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 8145873107.0, "Ops per second": 271529103.57, "ns per ops": 3.69, "Ops per threads": 848528.0, "Ops per procs": 84852844.0, "Ops/sec/procs": 2828428.16, "ns per ops/procs": 353.89}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30062.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 34056218.0, "Ops per second": 1132858.36, "ns per ops": 882.72, "Ops per threads": 3547.0, "Ops per procs": 354752.0, "Ops/sec/procs": 11800.61, "ns per ops/procs": 84741.4}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2154014618.0, "Ops per second": 71800487.27, "ns per ops": 13.96, "Ops per threads": 1346259.0, "Ops per procs": 134625913.0, "Ops/sec/procs": 4487530.45, "ns per ops/procs": 223.41}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 332954171.0, "Ops per second": 11098472.37, "ns per ops": 90.26, "Ops per threads": 1664770.0, "Ops per procs": 166477085.0, "Ops/sec/procs": 5549236.18, "ns per ops/procs": 180.51}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30011.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19506168645.0, "Ops per second": 649954989.52, "ns per ops": 1.54, "Ops per threads": 1354595.0, "Ops per procs": 135459504.0, "Ops/sec/procs": 4513576.32, "ns per ops/procs": 221.55}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 999930904.0, "Ops per second": 33331030.13, "ns per ops": 30.06, "Ops per threads": 1249913.0, "Ops per procs": 124991363.0, "Ops/sec/procs": 4166378.77, "ns per ops/procs": 240.5}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 485155621.0, "Ops per second": 16157211.1, "ns per ops": 61.89, "Ops per threads": 2425778.0, "Ops per procs": 242577810.0, "Ops/sec/procs": 8078605.55, "ns per ops/procs": 123.78}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299438418.0, "Ops per second": 9972893.03, "ns per ops": 100.27, "Ops per threads": 2994384.0, "Ops per procs": 299438418.0, "Ops/sec/procs": 9972893.03, "ns per ops/procs": 100.27}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30032.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 37138094.0, "Ops per second": 1236606.75, "ns per ops": 808.66, "Ops per threads": 5158.0, "Ops per procs": 515806.0, "Ops/sec/procs": 17175.09, "ns per ops/procs": 58223.85}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6678019467.0, "Ops per second": 222600648.9, "ns per ops": 4.5, "Ops per threads": 927502.0, "Ops per procs": 92750270.0, "Ops/sec/procs": 3091675.68, "ns per ops/procs": 324.28}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2665104048.0, "Ops per second": 88836801.6, "ns per ops": 11.26, "Ops per threads": 1110460.0, "Ops per procs": 111046002.0, "Ops/sec/procs": 3701533.4, "ns per ops/procs": 270.34}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30053.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 35414910.0, "Ops per second": 1178395.21, "ns per ops": 848.61, "Ops per threads": 3689.0, "Ops per procs": 368905.0, "Ops/sec/procs": 12274.95, "ns per ops/procs": 81466.73}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30100.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1163622259.0, "Ops per second": 38787408.0, "ns per ops": 25.0, "Ops per threads": 242421.0, "Ops per procs": 24242130.0, "Ops/sec/procs": 808071.0, "ns per ops/procs": 1241.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30036.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26074416281.0, "Ops per second": 868104933.82, "ns per ops": 1.15, "Ops per threads": 1358042.0, "Ops per procs": 135804251.0, "Ops/sec/procs": 4521379.86, "ns per ops/procs": 221.17}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 350202248.0, "Ops per second": 11672920.95, "ns per ops": 85.67, "Ops per threads": 3502022.0, "Ops per procs": 350202248.0, "Ops/sec/procs": 11672920.95, "ns per ops/procs": 85.67}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30028.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 806648777.0, "Ops per second": 26863110.92, "ns per ops": 37.23, "Ops per threads": 2016621.0, "Ops per procs": 201662194.0, "Ops/sec/procs": 6715777.73, "ns per ops/procs": 148.9}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 70771600.0, "Ops per second": 2358478.89, "ns per ops": 424.0, "Ops per threads": 29488.0, "Ops per procs": 2948816.0, "Ops/sec/procs": 98269.95, "ns per ops/procs": 10176.05}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30047.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 539646607.0, "Ops per second": 17988220.0, "ns per ops": 55.0, "Ops per threads": 56213.0, "Ops per procs": 5621318.0, "Ops/sec/procs": 187377.0, "ns per ops/procs": 5345.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30060.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26548208301.0, "Ops per second": 883152161.55, "ns per ops": 1.13, "Ops per threads": 1382719.0, "Ops per procs": 138271918.0, "Ops/sec/procs": 4599750.84, "ns per ops/procs": 217.4}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30038.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 37153256.0, "Ops per second": 1236863.47, "ns per ops": 808.5, "Ops per threads": 5160.0, "Ops per procs": 516017.0, "Ops/sec/procs": 17178.66, "ns per ops/procs": 58211.76}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30030.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19172572735.0, "Ops per second": 638435015.6, "ns per ops": 1.57, "Ops per threads": 1331428.0, "Ops per procs": 133142866.0, "Ops/sec/procs": 4433576.5, "ns per ops/procs": 225.55}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2753865741.0, "Ops per second": 91795524.0, "ns per ops": 10.0, "Ops per threads": 1721166.0, "Ops per procs": 172116608.0, "Ops/sec/procs": 5737220.0, "ns per ops/procs": 174.0}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30051.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 38417538.0, "Ops per second": 1278375.59, "ns per ops": 782.24, "Ops per threads": 4001.0, "Ops per procs": 400182.0, "Ops/sec/procs": 13316.41, "ns per ops/procs": 75095.3}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30006.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 92027342.0, "Ops per second": 3066920.21, "ns per ops": 326.06, "Ops per threads": 115034.0, "Ops per procs": 11503417.0, "Ops/sec/procs": 383365.03, "ns per ops/procs": 2608.48}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30024.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19387973398.0, "Ops per second": 645732280.53, "ns per ops": 1.55, "Ops per threads": 1346387.0, "Ops per procs": 134638704.0, "Ops/sec/procs": 4484251.95, "ns per ops/procs": 223.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 1600", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 2157486354.0, "Ops per second": 71916211.8, "ns per ops": 13.94, "Ops per threads": 1348428.0, "Ops per procs": 134842897.0, "Ops/sec/procs": 4494763.24, "ns per ops/procs": 223.06}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 217681114.0, "Ops per second": 7256037.13, "ns per ops": 138.04, "Ops per threads": 2176811.0, "Ops per procs": 217681114.0, "Ops/sec/procs": 7256037.13, "ns per ops/procs": 138.04}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30043.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 27159902.0, "Ops per second": 904016.99, "ns per ops": 1106.17, "Ops per threads": 1414.0, "Ops per procs": 141457.0, "Ops/sec/procs": 4708.42, "ns per ops/procs": 212385.39}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30008.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4793108137.0, "Ops per second": 159725333.41, "ns per ops": 6.26, "Ops per threads": 1997128.0, "Ops per procs": 199712839.0, "Ops/sec/procs": 6655222.23, "ns per ops/procs": 150.26}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 7200", {"Duration (ms)": 30013.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 10001271677.0, "Ops per second": 333222464.46, "ns per ops": 3.0, "Ops per threads": 1389065.0, "Ops per procs": 138906551.0, "Ops/sec/procs": 4628089.78, "ns per ops/procs": 216.07}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30029.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 483396719.0, "Ops per second": 16097287.79, "ns per ops": 62.12, "Ops per threads": 2416983.0, "Ops per procs": 241698359.0, "Ops/sec/procs": 8048643.89, "ns per ops/procs": 124.24}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30027.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 255041569.0, "Ops per second": 8501385.0, "ns per ops": 117.0, "Ops per threads": 13283.0, "Ops per procs": 1328341.0, "Ops/sec/procs": 44278.0, "ns per ops/procs": 22605.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 490960528.0, "Ops per second": 16350485.28, "ns per ops": 61.16, "Ops per threads": 2454802.0, "Ops per procs": 245480264.0, "Ops/sec/procs": 8175242.64, "ns per ops/procs": 122.32}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6697007580.0, "Ops per second": 223233586.0, "ns per ops": 4.49, "Ops per threads": 930139.0, "Ops per procs": 93013994.0, "Ops/sec/procs": 3100466.47, "ns per ops/procs": 323.31}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30043.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 27448783.0, "Ops per second": 913624.12, "ns per ops": 1094.54, "Ops per threads": 1429.0, "Ops per procs": 142962.0, "Ops/sec/procs": 4758.46, "ns per ops/procs": 210152.07}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30030.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 27524426.0, "Ops per second": 916562.62, "ns per ops": 1091.03, "Ops per threads": 1433.0, "Ops per procs": 143356.0, "Ops/sec/procs": 4773.76, "ns per ops/procs": 209478.32}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 575628066.0, "Ops per second": 19187602.2, "ns per ops": 52.21, "Ops per threads": 1439070.0, "Ops per procs": 143907016.0, "Ops/sec/procs": 4796900.55, "ns per ops/procs": 208.85}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 528599994.0, "Ops per second": 17619999.0, "ns per ops": 56.0, "Ops per threads": 1321499.0, "Ops per procs": 132149998.0, "Ops/sec/procs": 4404999.0, "ns per ops/procs": 227.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6693199029.0, "Ops per second": 223106634.3, "ns per ops": 4.48, "Ops per threads": 929610.0, "Ops per procs": 92961097.0, "Ops/sec/procs": 3098703.25, "ns per ops/procs": 322.86}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 12486125326.0, "Ops per second": 416204177.53, "ns per ops": 2.41, "Ops per threads": 867092.0, "Ops per procs": 86709203.0, "Ops/sec/procs": 2890306.79, "ns per ops/procs": 346.45}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30005.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 117092278.0, "Ops per second": 3902412.65, "ns per ops": 256.25, "Ops per threads": 292730.0, "Ops per procs": 29273069.0, "Ops/sec/procs": 975603.16, "ns per ops/procs": 1025.01}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 100", {"Duration (ms)": 30025.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 299408297.0, "Ops per second": 9971938.18, "ns per ops": 100.28, "Ops per threads": 2994082.0, "Ops per procs": 299408297.0, "Ops/sec/procs": 9971938.18, "ns per ops/procs": 100.28}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30038.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 37143498.0, "Ops per second": 1236550.2, "ns per ops": 808.7, "Ops per threads": 5158.0, "Ops per procs": 515881.0, "Ops/sec/procs": 17174.31, "ns per ops/procs": 58226.51}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30022.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 68551005.0, "Ops per second": 2283313.45, "ns per ops": 437.96, "Ops per threads": 14281.0, "Ops per procs": 1428145.0, "Ops/sec/procs": 47569.03, "ns per ops/procs": 21022.08}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30032.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 804988871.0, "Ops per second": 26803652.6, "ns per ops": 37.31, "Ops per threads": 2012472.0, "Ops per procs": 201247217.0, "Ops/sec/procs": 6700913.15, "ns per ops/procs": 149.23}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30085.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 30707766.0, "Ops per second": 1020699.68, "ns per ops": 979.72, "Ops per threads": 2132.0, "Ops per procs": 213248.0, "Ops/sec/procs": 7088.19, "ns per ops/procs": 141079.7}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 217498036.0, "Ops per second": 7249934.53, "ns per ops": 138.16, "Ops per threads": 2174980.0, "Ops per procs": 217498036.0, "Ops/sec/procs": 7249934.53, "ns per ops/procs": 138.16}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 4800", {"Duration (ms)": 30022.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 68110234.0, "Ops per second": 2268607.06, "ns per ops": 440.8, "Ops per threads": 14189.0, "Ops per procs": 1418963.0, "Ops/sec/procs": 47262.65, "ns per ops/procs": 21158.36}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30034.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19510235438.0, "Ops per second": 649600679.95, "ns per ops": 1.54, "Ops per threads": 1354877.0, "Ops per procs": 135487746.0, "Ops/sec/procs": 4511115.83, "ns per ops/procs": 221.67}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30060.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 262968720.0, "Ops per second": 8765624.0, "ns per ops": 114.0, "Ops per threads": 13696.0, "Ops per procs": 1369628.0, "Ops/sec/procs": 45654.0, "ns per ops/procs": 21947.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 334372952.0, "Ops per second": 11145765.07, "ns per ops": 89.87, "Ops per threads": 1671864.0, "Ops per procs": 167186476.0, "Ops/sec/procs": 5572882.53, "ns per ops/procs": 179.75}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 269758522.0, "Ops per second": 8991950.0, "ns per ops": 111.0, "Ops per threads": 2697585.0, "Ops per procs": 269758522.0, "Ops/sec/procs": 8991950.0, "ns per ops/procs": 111.0}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 400", {"Duration (ms)": 30004.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 115591471.0, "Ops per second": 3852412.37, "ns per ops": 259.58, "Ops per threads": 288978.0, "Ops per procs": 28897867.0, "Ops/sec/procs": 963103.09, "ns per ops/procs": 1038.31}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 1600", {"Duration (ms)": 30098.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3288989751.0, "Ops per second": 109632991.0, "ns per ops": 9.0, "Ops per threads": 2055618.0, "Ops per procs": 205561859.0, "Ops/sec/procs": 6852061.0, "ns per ops/procs": 146.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30003.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1159910709.0, "Ops per second": 38663690.0, "ns per ops": 25.0, "Ops per threads": 241648.0, "Ops per procs": 24164806.0, "Ops/sec/procs": 805493.0, "ns per ops/procs": 1241.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 483515597.0, "Ops per second": 16102644.29, "ns per ops": 62.1, "Ops per threads": 2417577.0, "Ops per procs": 241757798.0, "Ops/sec/procs": 8051322.15, "ns per ops/procs": 124.2}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30007.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 77529497.0, "Ops per second": 2583661.68, "ns per ops": 387.05, "Ops per threads": 48455.0, "Ops per procs": 4845593.0, "Ops/sec/procs": 161478.85, "ns per ops/procs": 6192.76}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30008.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 70815152.0, "Ops per second": 2359875.05, "ns per ops": 423.75, "Ops per threads": 29506.0, "Ops per procs": 2950631.0, "Ops/sec/procs": 98328.13, "ns per ops/procs": 10170.03}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 270801846.0, "Ops per second": 9026728.0, "ns per ops": 111.0, "Ops per threads": 2708018.0, "Ops per procs": 270801846.0, "Ops/sec/procs": 9026728.0, "ns per ops/procs": 111.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 488679686.0, "Ops per second": 16274628.62, "ns per ops": 61.45, "Ops per threads": 2443398.0, "Ops per procs": 244339843.0, "Ops/sec/procs": 8137314.31, "ns per ops/procs": 122.89}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30019.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13305714690.0, "Ops per second": 443237595.7, "ns per ops": 2.26, "Ops per threads": 1386011.0, "Ops per procs": 138601194.0, "Ops/sec/procs": 4617058.29, "ns per ops/procs": 216.59}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2733613742.0, "Ops per second": 91120458.07, "ns per ops": 10.98, "Ops per threads": 1139005.0, "Ops per procs": 113900572.0, "Ops/sec/procs": 3796685.75, "ns per ops/procs": 263.58}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30040.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 490976716.0, "Ops per second": 16365890.0, "ns per ops": 61.0, "Ops per threads": 51143.0, "Ops per procs": 5114340.0, "Ops/sec/procs": 170478.0, "ns per ops/procs": 5873.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30085.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 245221764.0, "Ops per second": 8174058.0, "ns per ops": 122.0, "Ops per threads": 12771.0, "Ops per procs": 1277196.0, "Ops/sec/procs": 42573.0, "ns per ops/procs": 23555.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3455233451.0, "Ops per second": 115051162.18, "ns per ops": 8.69, "Ops per threads": 2159520.0, "Ops per procs": 215952090.0, "Ops/sec/procs": 7190697.64, "ns per ops/procs": 139.07}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 400", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 574882406.0, "Ops per second": 19162746.87, "ns per ops": 52.28, "Ops per threads": 1437206.0, "Ops per procs": 143720601.0, "Ops/sec/procs": 4790686.72, "ns per ops/procs": 209.13}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 100", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 217067968.0, "Ops per second": 7235598.93, "ns per ops": 138.43, "Ops per threads": 2170679.0, "Ops per procs": 217067968.0, "Ops/sec/procs": 7235598.93, "ns per ops/procs": 138.43}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30074.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 286710280.0, "Ops per second": 9557009.0, "ns per ops": 104.0, "Ops per threads": 19910.0, "Ops per procs": 1991043.0, "Ops/sec/procs": 66368.0, "ns per ops/procs": 15105.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 4800", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 4317209688.0, "Ops per second": 143906989.6, "ns per ops": 6.96, "Ops per threads": 899418.0, "Ops per procs": 89941868.0, "Ops/sec/procs": 2998062.28, "ns per ops/procs": 334.16}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 800", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1004382727.0, "Ops per second": 33479424.23, "ns per ops": 29.93, "Ops per threads": 1255478.0, "Ops per procs": 125547840.0, "Ops/sec/procs": 4184928.03, "ns per ops/procs": 239.43}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 331584692.0, "Ops per second": 11052823.07, "ns per ops": 90.63, "Ops per threads": 1657923.0, "Ops per procs": 165792346.0, "Ops/sec/procs": 5526411.53, "ns per ops/procs": 181.25}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30036.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 38456856.0, "Ops per second": 1280357.15, "ns per ops": 781.03, "Ops per threads": 5341.0, "Ops per procs": 534123.0, "Ops/sec/procs": 17782.74, "ns per ops/procs": 56234.31}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30007.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 78186611.0, "Ops per second": 2605561.25, "ns per ops": 383.79, "Ops per threads": 48866.0, "Ops per procs": 4886663.0, "Ops/sec/procs": 162847.58, "ns per ops/procs": 6140.71}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 4800", {"Duration (ms)": 30020.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 1180176331.0, "Ops per second": 39339211.0, "ns per ops": 25.0, "Ops per threads": 245870.0, "Ops per procs": 24587006.0, "Ops/sec/procs": 819566.0, "ns per ops/procs": 1221.0}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30034.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 34900735.0, "Ops per second": 1162012.41, "ns per ops": 860.58, "Ops per threads": 4847.0, "Ops per procs": 484732.0, "Ops/sec/procs": 16139.06, "ns per ops/procs": 61961.47}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 800", {"Duration (ms)": 30027.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 1296625679.0, "Ops per second": 43180803.78, "ns per ops": 23.16, "Ops per threads": 1620782.0, "Ops per procs": 162078209.0, "Ops/sec/procs": 5397600.47, "ns per ops/procs": 185.27}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17479516685.0, "Ops per second": 582650556.17, "ns per ops": 1.72, "Ops per threads": 910391.0, "Ops per procs": 91039149.0, "Ops/sec/procs": 3034638.31, "ns per ops/procs": 329.82}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30034.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 38266043.0, "Ops per second": 1274055.89, "ns per ops": 784.89, "Ops per threads": 5314.0, "Ops per procs": 531472.0, "Ops/sec/procs": 17695.22, "ns per ops/procs": 56512.43}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 100", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 350417405.0, "Ops per second": 11680094.41, "ns per ops": 85.62, "Ops per threads": 3504174.0, "Ops per procs": 350417405.0, "Ops/sec/procs": 11680094.41, "ns per ops/procs": 85.62}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30023.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 25986237.0, "Ops per second": 865526.71, "ns per ops": 1155.37, "Ops per threads": 1353.0, "Ops per procs": 135344.0, "Ops/sec/procs": 4507.95, "ns per ops/procs": 221830.24}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 270860982.0, "Ops per second": 9028699.0, "ns per ops": 111.0, "Ops per threads": 2708609.0, "Ops per procs": 270860982.0, "Ops/sec/procs": 9028699.0, "ns per ops/procs": 111.0}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 14400", {"Duration (ms)": 30089.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 30303531.0, "Ops per second": 1007112.56, "ns per ops": 992.94, "Ops per threads": 2104.0, "Ops per procs": 210441.0, "Ops/sec/procs": 6993.84, "ns per ops/procs": 142983.02}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 519447542.0, "Ops per second": 17314918.0, "ns per ops": 57.0, "Ops per threads": 1298618.0, "Ops per procs": 129861885.0, "Ops/sec/procs": 4328729.0, "ns per ops/procs": 231.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 7200", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 6572757122.0, "Ops per second": 219091904.07, "ns per ops": 4.58, "Ops per threads": 912882.0, "Ops per procs": 91288293.0, "Ops/sec/procs": 3042943.11, "ns per ops/procs": 329.68}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30033.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3087456370.0, "Ops per second": 102801800.75, "ns per ops": 9.73, "Ops per threads": 1929660.0, "Ops per procs": 192966023.0, "Ops/sec/procs": 6425112.55, "ns per ops/procs": 155.64}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 337720130.0, "Ops per second": 11257337.67, "ns per ops": 88.98, "Ops per threads": 1688600.0, "Ops per procs": 168860065.0, "Ops/sec/procs": 5628668.83, "ns per ops/procs": 177.96}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 172674644.0, "Ops per second": 5754927.43, "ns per ops": 173.76, "Ops per threads": 863373.0, "Ops per procs": 86337322.0, "Ops/sec/procs": 2877463.72, "ns per ops/procs": 347.53}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30092.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 269026620.0, "Ops per second": 8967554.0, "ns per ops": 111.0, "Ops per threads": 14011.0, "Ops per procs": 1401180.0, "Ops/sec/procs": 46706.0, "ns per ops/procs": 21476.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 2400", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 2710328762.0, "Ops per second": 90344292.07, "ns per ops": 11.08, "Ops per threads": 1129303.0, "Ops per procs": 112930365.0, "Ops/sec/procs": 3764345.5, "ns per ops/procs": 265.85}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 19200", {"Duration (ms)": 30062.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 291063483.0, "Ops per second": 9702116.0, "ns per ops": 103.0, "Ops per threads": 15159.0, "Ops per procs": 1515955.0, "Ops/sec/procs": 50531.0, "ns per ops/procs": 19831.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30098.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 534444288.0, "Ops per second": 17814809.0, "ns per ops": 56.0, "Ops per threads": 1336110.0, "Ops per procs": 133611072.0, "Ops/sec/procs": 4453702.0, "ns per ops/procs": 225.0}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 2400", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 71343500.0, "Ops per second": 2377482.75, "ns per ops": 420.61, "Ops per threads": 29726.0, "Ops per procs": 2972645.0, "Ops/sec/procs": 99061.78, "ns per ops/procs": 10094.71}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30052.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 39004624.0, "Ops per second": 1297866.8, "ns per ops": 770.5, "Ops per threads": 4062.0, "Ops per procs": 406298.0, "Ops/sec/procs": 13519.45, "ns per ops/procs": 73967.53}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 4800", {"Duration (ms)": 30060.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Total Operations(ops)": 6587665814.0, "Ops per second": 219143567.0, "ns per ops": 4.56, "Ops per threads": 1372430.0, "Ops per procs": 137243037.0, "Ops/sec/procs": 4565490.98, "ns per ops/procs": 219.03}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 400", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 526574779.0, "Ops per second": 17552492.0, "ns per ops": 57.0, "Ops per threads": 1316436.0, "Ops per procs": 131643694.0, "Ops/sec/procs": 4388123.0, "ns per ops/procs": 228.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30098.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 968778073.0, "Ops per second": 32292602.0, "ns per ops": 31.0, "Ops per threads": 1210972.0, "Ops per procs": 121097259.0, "Ops/sec/procs": 4036575.0, "ns per ops/procs": 248.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 340896526.0, "Ops per second": 11363217.53, "ns per ops": 88.15, "Ops per threads": 1704482.0, "Ops per procs": 170448263.0, "Ops/sec/procs": 5681608.77, "ns per ops/procs": 176.31}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17511846247.0, "Ops per second": 583728208.23, "ns per ops": 1.71, "Ops per threads": 912075.0, "Ops per procs": 91207532.0, "Ops/sec/procs": 3040251.08, "ns per ops/procs": 329.21}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 9600", {"Duration (ms)": 30020.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 13250068414.0, "Ops per second": 441368038.69, "ns per ops": 2.27, "Ops per threads": 1380215.0, "Ops per procs": 138021545.0, "Ops/sec/procs": 4597583.74, "ns per ops/procs": 217.51}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 14400", {"Duration (ms)": 30049.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 286605671.0, "Ops per second": 9553522.0, "ns per ops": 104.0, "Ops per threads": 19903.0, "Ops per procs": 1990317.0, "Ops/sec/procs": 66343.0, "ns per ops/procs": 15097.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 338634971.0, "Ops per second": 11287832.37, "ns per ops": 88.74, "Ops per threads": 1693174.0, "Ops per procs": 169317485.0, "Ops/sec/procs": 5643916.18, "ns per ops/procs": 177.49}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 19200", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 17523008688.0, "Ops per second": 584100289.6, "ns per ops": 1.71, "Ops per threads": 912656.0, "Ops per procs": 91265670.0, "Ops/sec/procs": 3042189.01, "ns per ops/procs": 329.07}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30035.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 34367923.0, "Ops per second": 1144227.36, "ns per ops": 873.95, "Ops per threads": 4773.0, "Ops per procs": 477332.0, "Ops/sec/procs": 15892.05, "ns per ops/procs": 62924.56}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 270480115.0, "Ops per second": 9016003.0, "ns per ops": 111.0, "Ops per threads": 2704801.0, "Ops per procs": 270480115.0, "Ops/sec/procs": 9016003.0, "ns per ops/procs": 111.0}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 19200", {"Duration (ms)": 30041.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26134723.0, "Ops per second": 869965.18, "ns per ops": 1149.47, "Ops per threads": 1361.0, "Ops per procs": 136118.0, "Ops/sec/procs": 4531.07, "ns per ops/procs": 220698.49}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 9600", {"Duration (ms)": 30048.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 541756814.0, "Ops per second": 18058560.0, "ns per ops": 55.0, "Ops per threads": 56433.0, "Ops per procs": 5643300.0, "Ops/sec/procs": 188110.0, "ns per ops/procs": 5324.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 14400", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 12990094182.0, "Ops per second": 433003139.4, "ns per ops": 2.31, "Ops per threads": 902089.0, "Ops per procs": 90208987.0, "Ops/sec/procs": 3006966.25, "ns per ops/procs": 332.75}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 800", {"Duration (ms)": 30005.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 93246285.0, "Ops per second": 3107597.38, "ns per ops": 321.79, "Ops per threads": 116557.0, "Ops per procs": 11655785.0, "Ops/sec/procs": 388449.67, "ns per ops/procs": 2574.34}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 2400", {"Duration (ms)": 30008.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Total Operations(ops)": 4457966086.0, "Ops per second": 148555742.28, "ns per ops": 6.73, "Ops per threads": 1857485.0, "Ops per procs": 185748586.0, "Ops/sec/procs": 6189822.6, "ns per ops/procs": 161.56}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 1600", {"Duration (ms)": 30007.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 76549671.0, "Ops per second": 2551027.74, "ns per ops": 392.0, "Ops per threads": 47843.0, "Ops per procs": 4784354.0, "Ops/sec/procs": 159439.23, "ns per ops/procs": 6271.98}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30036.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 809363848.0, "Ops per second": 26946424.54, "ns per ops": 37.11, "Ops per threads": 2023409.0, "Ops per procs": 202340962.0, "Ops/sec/procs": 6736606.13, "ns per ops/procs": 148.44}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 200", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 333260541.0, "Ops per second": 11108684.7, "ns per ops": 90.17, "Ops per threads": 1666302.0, "Ops per procs": 166630270.0, "Ops/sec/procs": 5554342.35, "ns per ops/procs": 180.33}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 200", {"Duration (ms)": 30004.0, "Number of processors": 2.0, "Number of threads": 200.0, "Total Operations(ops)": 168121705.0, "Ops per second": 5603235.32, "ns per ops": 178.47, "Ops per threads": 840608.0, "Ops per procs": 84060852.0, "Ops/sec/procs": 2801617.66, "ns per ops/procs": 356.94}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30031.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3447339587.0, "Ops per second": 114790724.23, "ns per ops": 8.71, "Ops per threads": 2154587.0, "Ops per procs": 215458724.0, "Ops/sec/procs": 7174420.26, "ns per ops/procs": 139.38}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 9600", {"Duration (ms)": 30067.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Total Operations(ops)": 38263625.0, "Ops per second": 1272604.57, "ns per ops": 785.79, "Ops per threads": 3985.0, "Ops per procs": 398579.0, "Ops/sec/procs": 13256.3, "ns per ops/procs": 75435.84}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 100", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 100.0, "Total Operations(ops)": 270400191.0, "Ops per second": 9013339.0, "ns per ops": 111.0, "Ops per threads": 2704001.0, "Ops per procs": 270400191.0, "Ops/sec/procs": 9013339.0, "ns per ops/procs": 111.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 19200", {"Duration (ms)": 30023.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Total Operations(ops)": 26353755125.0, "Ops per second": 877770057.87, "ns per ops": 1.14, "Ops per threads": 1372591.0, "Ops per procs": 137259141.0, "Ops/sec/procs": 4571719.05, "ns per ops/procs": 218.74}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 1600", {"Duration (ms)": 30032.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Total Operations(ops)": 3080009942.0, "Ops per second": 102555720.62, "ns per ops": 9.75, "Ops per threads": 1925006.0, "Ops per procs": 192500621.0, "Ops/sec/procs": 6409732.54, "ns per ops/procs": 156.01}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 800", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 800.0, "Total Operations(ops)": 980730642.0, "Ops per second": 32691021.0, "ns per ops": 30.0, "Ops per threads": 1225913.0, "Ops per procs": 122591330.0, "Ops/sec/procs": 4086377.0, "ns per ops/procs": 245.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 14400", {"Duration (ms)": 30061.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Total Operations(ops)": 19515832426.0, "Ops per second": 649191089.89, "ns per ops": 1.54, "Ops per threads": 1355266.0, "Ops per procs": 135526614.0, "Ops/sec/procs": 4508271.46, "ns per ops/procs": 221.81}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 7200", {"Duration (ms)": 30038.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Total Operations(ops)": 34167210.0, "Ops per second": 1137456.97, "ns per ops": 879.15, "Ops per threads": 4745.0, "Ops per procs": 474544.0, "Ops/sec/procs": 15798.01, "ns per ops/procs": 63299.1}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 400", {"Duration (ms)": 30031.0, "Number of processors": 4.0, "Number of threads": 400.0, "Total Operations(ops)": 795254987.0, "Ops per second": 26480577.0, "ns per ops": 37.76, "Ops per threads": 1988137.0, "Ops per procs": 198813746.0, "Ops/sec/procs": 6620144.25, "ns per ops/procs": 151.05}]]
  • doc/theses/thierry_delisle_PhD/thesis/data/yield.low.jax

    r12df6fe r4520b77e  
    1 [["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 10 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 198228606.0, "Ops per second": 19822860.6, "ns per ops": 50.49, "Ops per threads": 8259525.0, "Ops per procs": 8259525.0, "Ops/sec/procs": 825952.53, "ns per ops/procs": 1211.87}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 10 -t 1", {"Duration (ms)": 10100.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 91771391.0, "Ops per second": 9177139.0, "ns per ops": 110.0, "Ops per threads": 91771391.0, "Ops per procs": 91771391.0, "Ops/sec/procs": 9177139.0, "ns per ops/procs": 110.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 10 -t 16", {"Duration (ms)": 10099.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 1155463759.0, "Ops per second": 115546375.0, "ns per ops": 8.0, "Ops per threads": 72216484.0, "Ops per procs": 72216484.0, "Ops/sec/procs": 7221648.0, "ns per ops/procs": 139.0}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 10 -t 16", {"Duration (ms)": 10001.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 17081410.0, "Ops per second": 1707820.12, "ns per ops": 585.54, "Ops per threads": 1067588.0, "Ops per procs": 1067588.0, "Ops/sec/procs": 106738.76, "ns per ops/procs": 9368.67}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 10 -t 8", {"Duration (ms)": 10007.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 2151927291.0, "Ops per second": 215027860.62, "ns per ops": 4.65, "Ops per threads": 268990911.0, "Ops per procs": 268990911.0, "Ops/sec/procs": 26878482.58, "ns per ops/procs": 37.2}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 10 -t 24", {"Duration (ms)": 10099.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 1281636563.0, "Ops per second": 128163656.0, "ns per ops": 7.0, "Ops per threads": 53401523.0, "Ops per procs": 53401523.0, "Ops/sec/procs": 5340152.0, "ns per ops/procs": 189.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 10 -t 24", {"Duration (ms)": 10004.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 5317671032.0, "Ops per second": 531537767.14, "ns per ops": 1.88, "Ops per threads": 221569626.0, "Ops per procs": 221569626.0, "Ops/sec/procs": 22147406.96, "ns per ops/procs": 45.15}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 10 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 158323555.0, "Ops per second": 15832355.5, "ns per ops": 63.29, "Ops per threads": 19790444.0, "Ops per procs": 19790444.0, "Ops/sec/procs": 1979044.44, "ns per ops/procs": 506.3}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 10 -t 8", {"Duration (ms)": 10001.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 27128459.0, "Ops per second": 2712537.66, "ns per ops": 368.66, "Ops per threads": 3391057.0, "Ops per procs": 3391057.0, "Ops/sec/procs": 339067.21, "ns per ops/procs": 2949.27}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 10 -t 8", {"Duration (ms)": 10001.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 27155837.0, "Ops per second": 2715305.28, "ns per ops": 368.28, "Ops per threads": 3394479.0, "Ops per procs": 3394479.0, "Ops/sec/procs": 339413.16, "ns per ops/procs": 2946.26}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 10 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 211249329.0, "Ops per second": 21124932.9, "ns per ops": 47.45, "Ops per threads": 13203083.0, "Ops per procs": 13203083.0, "Ops/sec/procs": 1320308.31, "ns per ops/procs": 759.17}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 10 -t 1", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 85555889.0, "Ops per second": 8555216.69, "ns per ops": 116.89, "Ops per threads": 85555889.0, "Ops per procs": 85555889.0, "Ops/sec/procs": 8555216.69, "ns per ops/procs": 116.89}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 10 -t 8", {"Duration (ms)": 10099.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 390829055.0, "Ops per second": 39082905.0, "ns per ops": 25.0, "Ops per threads": 48853631.0, "Ops per procs": 48853631.0, "Ops/sec/procs": 4885363.0, "ns per ops/procs": 206.0}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 10 -t 24", {"Duration (ms)": 10002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 13250872.0, "Ops per second": 1324722.09, "ns per ops": 754.88, "Ops per threads": 552119.0, "Ops per procs": 552119.0, "Ops/sec/procs": 55196.75, "ns per ops/procs": 18117.01}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 10 -t 16", {"Duration (ms)": 10099.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 1000850284.0, "Ops per second": 100085028.0, "ns per ops": 10.0, "Ops per threads": 62553142.0, "Ops per procs": 62553142.0, "Ops/sec/procs": 6255314.0, "ns per ops/procs": 161.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 10 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 184091475.0, "Ops per second": 18409147.5, "ns per ops": 54.36, "Ops per threads": 7670478.0, "Ops per procs": 7670478.0, "Ops/sec/procs": 767047.81, "ns per ops/procs": 1304.54}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 10 -t 1", {"Duration (ms)": 10007.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 292489865.0, "Ops per second": 29227283.49, "ns per ops": 34.21, "Ops per threads": 292489865.0, "Ops per procs": 292489865.0, "Ops/sec/procs": 29227283.49, "ns per ops/procs": 34.21}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 10 -t 24", {"Duration (ms)": 10002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 14063200.0, "Ops per second": 1406005.33, "ns per ops": 711.23, "Ops per threads": 585966.0, "Ops per procs": 585966.0, "Ops/sec/procs": 58583.56, "ns per ops/procs": 17069.64}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 10 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 162528481.0, "Ops per second": 16252848.1, "ns per ops": 61.66, "Ops per threads": 20316060.0, "Ops per procs": 20316060.0, "Ops/sec/procs": 2031606.01, "ns per ops/procs": 493.26}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 10 -t 16", {"Duration (ms)": 10008.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3965938528.0, "Ops per second": 396248257.59, "ns per ops": 2.52, "Ops per threads": 247871158.0, "Ops per procs": 247871158.0, "Ops/sec/procs": 24765516.1, "ns per ops/procs": 40.38}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 10 -t 16", {"Duration (ms)": 10009.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 4048953063.0, "Ops per second": 404492768.97, "ns per ops": 2.47, "Ops per threads": 253059566.0, "Ops per procs": 253059566.0, "Ops/sec/procs": 25280798.06, "ns per ops/procs": 39.56}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 10 -t 24", {"Duration (ms)": 10004.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 5311054327.0, "Ops per second": 530869875.38, "ns per ops": 1.88, "Ops per threads": 221293930.0, "Ops per procs": 221293930.0, "Ops/sec/procs": 22119578.14, "ns per ops/procs": 45.21}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 10 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 193683806.0, "Ops per second": 19368380.6, "ns per ops": 51.76, "Ops per threads": 12105237.0, "Ops per procs": 12105237.0, "Ops/sec/procs": 1210523.79, "ns per ops/procs": 828.15}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 10 -t 16", {"Duration (ms)": 10001.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 16763469.0, "Ops per second": 1676051.66, "ns per ops": 596.64, "Ops per threads": 1047716.0, "Ops per procs": 1047716.0, "Ops/sec/procs": 104753.23, "ns per ops/procs": 9546.25}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 10 -t 24", {"Duration (ms)": 10099.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 1250273189.0, "Ops per second": 125027318.0, "ns per ops": 8.0, "Ops per threads": 52094716.0, "Ops per procs": 52094716.0, "Ops/sec/procs": 5209471.0, "ns per ops/procs": 193.0}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 10 -t 8", {"Duration (ms)": 10001.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 26753255.0, "Ops per second": 2675042.69, "ns per ops": 373.83, "Ops per threads": 3344156.0, "Ops per procs": 3344156.0, "Ops/sec/procs": 334380.34, "ns per ops/procs": 2990.61}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 10 -t 16", {"Duration (ms)": 10099.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 1139181136.0, "Ops per second": 113918113.0, "ns per ops": 8.0, "Ops per threads": 71198821.0, "Ops per procs": 71198821.0, "Ops/sec/procs": 7119882.0, "ns per ops/procs": 141.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 10 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 148345422.0, "Ops per second": 14834542.2, "ns per ops": 67.54, "Ops per threads": 18543177.0, "Ops per procs": 18543177.0, "Ops/sec/procs": 1854317.77, "ns per ops/procs": 540.32}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 10 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 76054104.0, "Ops per second": 7605410.4, "ns per ops": 131.71, "Ops per threads": 76054104.0, "Ops per procs": 76054104.0, "Ops/sec/procs": 7605410.4, "ns per ops/procs": 131.71}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 10 -t 1", {"Duration (ms)": 10007.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 292635742.0, "Ops per second": 29241803.8, "ns per ops": 34.2, "Ops per threads": 292635742.0, "Ops per procs": 292635742.0, "Ops/sec/procs": 29241803.8, "ns per ops/procs": 34.2}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 10 -t 24", {"Duration (ms)": 10001.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 5304170687.0, "Ops per second": 530361478.44, "ns per ops": 1.89, "Ops per threads": 221007111.0, "Ops per procs": 221007111.0, "Ops/sec/procs": 22098394.93, "ns per ops/procs": 45.25}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 10 -t 16", {"Duration (ms)": 10009.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 4047689095.0, "Ops per second": 404367842.39, "ns per ops": 2.47, "Ops per threads": 252980568.0, "Ops per procs": 252980568.0, "Ops/sec/procs": 25272990.15, "ns per ops/procs": 39.57}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 10 -t 1", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 85548399.0, "Ops per second": 8554476.24, "ns per ops": 116.9, "Ops per threads": 85548399.0, "Ops per procs": 85548399.0, "Ops/sec/procs": 8554476.24, "ns per ops/procs": 116.9}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 10 -t 1", {"Duration (ms)": 10100.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 91474395.0, "Ops per second": 9147439.0, "ns per ops": 110.0, "Ops per threads": 91474395.0, "Ops per procs": 91474395.0, "Ops/sec/procs": 9147439.0, "ns per ops/procs": 110.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 10 -t 24", {"Duration (ms)": 10099.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 1289349577.0, "Ops per second": 128934957.0, "ns per ops": 7.0, "Ops per threads": 53722899.0, "Ops per procs": 53722899.0, "Ops/sec/procs": 5372289.0, "ns per ops/procs": 187.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 10 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 227319382.0, "Ops per second": 22731938.2, "ns per ops": 44.02, "Ops per threads": 9471640.0, "Ops per procs": 9471640.0, "Ops/sec/procs": 947164.09, "ns per ops/procs": 1056.48}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 10 -t 16", {"Duration (ms)": 10001.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 16769801.0, "Ops per second": 1676661.26, "ns per ops": 596.42, "Ops per threads": 1048112.0, "Ops per procs": 1048112.0, "Ops/sec/procs": 104791.33, "ns per ops/procs": 9542.77}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 10 -t 8", {"Duration (ms)": 10007.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 2148355210.0, "Ops per second": 214670482.89, "ns per ops": 4.66, "Ops per threads": 268544401.0, "Ops per procs": 268544401.0, "Ops/sec/procs": 26833810.36, "ns per ops/procs": 37.27}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 10 -t 8", {"Duration (ms)": 10007.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 2151532871.0, "Ops per second": 214988947.76, "ns per ops": 4.65, "Ops per threads": 268941608.0, "Ops per procs": 268941608.0, "Ops/sec/procs": 26873618.47, "ns per ops/procs": 37.21}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 10 -t 1", {"Duration (ms)": 10009.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 292690252.0, "Ops per second": 29242303.95, "ns per ops": 34.2, "Ops per threads": 292690252.0, "Ops per procs": 292690252.0, "Ops/sec/procs": 29242303.95, "ns per ops/procs": 34.2}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 10 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 75801333.0, "Ops per second": 7580133.3, "ns per ops": 132.15, "Ops per threads": 75801333.0, "Ops per procs": 75801333.0, "Ops/sec/procs": 7580133.3, "ns per ops/procs": 132.15}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 10 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 221926675.0, "Ops per second": 22192667.5, "ns per ops": 45.18, "Ops per threads": 13870417.0, "Ops per procs": 13870417.0, "Ops/sec/procs": 1387041.72, "ns per ops/procs": 722.81}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 10 -t 1", {"Duration (ms)": 10000.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 84740180.0, "Ops per second": 8473654.06, "ns per ops": 118.01, "Ops per threads": 84740180.0, "Ops per procs": 84740180.0, "Ops/sec/procs": 8473654.06, "ns per ops/procs": 118.01}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 10 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 73281534.0, "Ops per second": 7328153.4, "ns per ops": 136.67, "Ops per threads": 73281534.0, "Ops per procs": 73281534.0, "Ops/sec/procs": 7328153.4, "ns per ops/procs": 136.67}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 10 -t 8", {"Duration (ms)": 10099.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 388708305.0, "Ops per second": 38870830.0, "ns per ops": 25.0, "Ops per threads": 48588538.0, "Ops per procs": 48588538.0, "Ops/sec/procs": 4858853.0, "ns per ops/procs": 207.0}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 10 -t 24", {"Duration (ms)": 10002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 13787158.0, "Ops per second": 1378423.2, "ns per ops": 725.47, "Ops per threads": 574464.0, "Ops per procs": 574464.0, "Ops/sec/procs": 57434.3, "ns per ops/procs": 17411.2}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 10 -t 8", {"Duration (ms)": 10099.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 398849975.0, "Ops per second": 39884997.0, "ns per ops": 25.0, "Ops per threads": 49856246.0, "Ops per procs": 49856246.0, "Ops/sec/procs": 4985624.0, "ns per ops/procs": 202.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 10 -t 1", {"Duration (ms)": 10100.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 91905024.0, "Ops per second": 9190502.0, "ns per ops": 109.0, "Ops per threads": 91905024.0, "Ops per procs": 91905024.0, "Ops/sec/procs": 9190502.0, "ns per ops/procs": 109.0}]]
     1[["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 889852155.0, "Ops per second": 29639661.51, "ns per ops": 33.74, "Ops per threads": 889852155.0, "Ops per procs": 889852155.0, "Ops/sec/procs": 29639661.51, "ns per ops/procs": 33.74}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3473254370.0, "Ops per second": 115775145.0, "ns per ops": 8.0, "Ops per threads": 217078398.0, "Ops per procs": 217078398.0, "Ops/sec/procs": 7235946.0, "ns per ops/procs": 138.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3722441212.0, "Ops per second": 124081373.0, "ns per ops": 8.0, "Ops per threads": 155101717.0, "Ops per procs": 155101717.0, "Ops/sec/procs": 5170057.0, "ns per ops/procs": 194.0}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 257259497.0, "Ops per second": 8574979.85, "ns per ops": 116.62, "Ops per threads": 257259497.0, "Ops per procs": 257259497.0, "Ops/sec/procs": 8574979.85, "ns per ops/procs": 116.62}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 502702816.0, "Ops per second": 16756760.0, "ns per ops": 59.0, "Ops per threads": 251351408.0, "Ops per procs": 251351408.0, "Ops/sec/procs": 8378380.0, "ns per ops/procs": 119.0}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 176907596.0, "Ops per second": 5896444.54, "ns per ops": 169.59, "Ops per threads": 44226899.0, "Ops per procs": 44226899.0, "Ops/sec/procs": 1474111.14, "ns per ops/procs": 678.37}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6541318807.0, "Ops per second": 217879411.62, "ns per ops": 4.59, "Ops per threads": 817664850.0, "Ops per procs": 817664850.0, "Ops/sec/procs": 27234926.45, "ns per ops/procs": 36.72}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 396676387.0, "Ops per second": 13222546.0, "ns per ops": 75.0, "Ops per threads": 4132045.0, "Ops per procs": 4132045.0, "Ops/sec/procs": 137734.0, "ns per ops/procs": 7283.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 951729276.0, "Ops per second": 31724309.0, "ns per ops": 31.0, "Ops per threads": 237932319.0, "Ops per procs": 237932319.0, "Ops/sec/procs": 7931077.0, "ns per ops/procs": 126.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30004.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 60723683946.0, "Ops per second": 2023798082.97, "ns per ops": 0.49, "Ops per threads": 421692249.0, "Ops per procs": 421692249.0, "Ops/sec/procs": 14054153.35, "ns per ops/procs": 71.15}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 702876508.0, "Ops per second": 23429216.93, "ns per ops": 42.71, "Ops per threads": 29286521.0, "Ops per procs": 29286521.0, "Ops/sec/procs": 976217.37, "ns per ops/procs": 1025.07}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6549353222.0, "Ops per second": 218145788.68, "ns per ops": 4.58, "Ops per threads": 818669152.0, "Ops per procs": 818669152.0, "Ops/sec/procs": 27268223.59, "ns per ops/procs": 36.67}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30023.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 890273934.0, "Ops per second": 29653009.25, "ns per ops": 33.72, "Ops per threads": 890273934.0, "Ops per procs": 890273934.0, "Ops/sec/procs": 29653009.25, "ns per ops/procs": 33.72}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3769704964.0, "Ops per second": 125656832.0, "ns per ops": 7.0, "Ops per threads": 157071040.0, "Ops per procs": 157071040.0, "Ops/sec/procs": 5235701.0, "ns per ops/procs": 191.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30006.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 36872783303.0, "Ops per second": 1228841381.09, "ns per ops": 0.81, "Ops per threads": 512121990.0, "Ops per procs": 512121990.0, "Ops/sec/procs": 17067241.4, "ns per ops/procs": 58.59}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 238262157.0, "Ops per second": 7942071.9, "ns per ops": 126.12, "Ops per threads": 238262157.0, "Ops per procs": 238262157.0, "Ops/sec/procs": 7942071.9, "ns per ops/procs": 126.12}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30033.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 16808610.0, "Ops per second": 559671.31, "ns per ops": 1786.76, "Ops per threads": 87544.0, "Ops per procs": 87544.0, "Ops/sec/procs": 2914.95, "ns per ops/procs": 343058.5}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 411004165.0, "Ops per second": 13700138.0, "ns per ops": 73.0, "Ops per threads": 5708391.0, "Ops per procs": 5708391.0, "Ops/sec/procs": 190279.0, "ns per ops/procs": 5272.0}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30012.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 374725709.0, "Ops per second": 12485591.75, "ns per ops": 80.09, "Ops per threads": 187362854.0, "Ops per procs": 187362854.0, "Ops/sec/procs": 6242795.88, "ns per ops/procs": 160.18}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3767820262.0, "Ops per second": 125594008.0, "ns per ops": 7.0, "Ops per threads": 156992510.0, "Ops per procs": 156992510.0, "Ops/sec/procs": 5233083.0, "ns per ops/procs": 191.0}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 247973966.0, "Ops per second": 8265475.83, "ns per ops": 120.99, "Ops per threads": 247973966.0, "Ops per procs": 247973966.0, "Ops/sec/procs": 8265475.83, "ns per ops/procs": 120.99}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30020.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41130963.0, "Ops per second": 1370094.58, "ns per ops": 729.88, "Ops per threads": 856895.0, "Ops per procs": 856895.0, "Ops/sec/procs": 28543.64, "ns per ops/procs": 35034.08}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30024.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1777690362.0, "Ops per second": 59207833.56, "ns per ops": 16.89, "Ops per threads": 888845181.0, "Ops per procs": 888845181.0, "Ops/sec/procs": 29603916.78, "ns per ops/procs": 33.78}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 254630037.0, "Ops per second": 8487327.25, "ns per ops": 117.82, "Ops per threads": 254630037.0, "Ops per procs": 254630037.0, "Ops/sec/procs": 8487327.25, "ns per ops/procs": 117.82}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30005.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20372375734.0, "Ops per second": 678949732.8, "ns per ops": 1.47, "Ops per threads": 424424494.0, "Ops per procs": 424424494.0, "Ops/sec/procs": 14144786.1, "ns per ops/procs": 70.7}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 1864949024.0, "Ops per second": 62164967.47, "ns per ops": 16.1, "Ops per threads": 12951034.0, "Ops per procs": 12951034.0, "Ops/sec/procs": 431701.16, "ns per ops/procs": 2318.72}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3779158451.0, "Ops per second": 125971948.0, "ns per ops": 7.0, "Ops per threads": 157464935.0, "Ops per procs": 157464935.0, "Ops/sec/procs": 5248831.0, "ns per ops/procs": 191.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1162225781.0, "Ops per second": 38740859.37, "ns per ops": 25.86, "Ops per threads": 24213037.0, "Ops per procs": 24213037.0, "Ops/sec/procs": 807101.24, "ns per ops/procs": 1241.13}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30045.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 22340031.0, "Ops per second": 743542.67, "ns per ops": 1344.91, "Ops per threads": 232708.0, "Ops per procs": 232708.0, "Ops/sec/procs": 7745.24, "ns per ops/procs": 129111.62}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 398470357.0, "Ops per second": 13282345.0, "ns per ops": 75.0, "Ops per threads": 4150732.0, "Ops per procs": 4150732.0, "Ops/sec/procs": 138357.0, "ns per ops/procs": 7251.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 375397731.0, "Ops per second": 12513257.7, "ns per ops": 80.06, "Ops per threads": 93849432.0, "Ops per procs": 93849432.0, "Ops/sec/procs": 3128314.42, "ns per ops/procs": 320.25}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 82739253.0, "Ops per second": 2757670.25, "ns per ops": 362.62, "Ops per threads": 10342406.0, "Ops per procs": 10342406.0, "Ops/sec/procs": 344708.78, "ns per ops/procs": 2901.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 399645982.0, "Ops per second": 13321532.0, "ns per ops": 75.0, "Ops per threads": 5550638.0, "Ops per procs": 5550638.0, "Ops/sec/procs": 185021.0, "ns per ops/procs": 5422.0}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 255875103.0, "Ops per second": 8528827.31, "ns per ops": 117.25, "Ops per threads": 255875103.0, "Ops per procs": 255875103.0, "Ops/sec/procs": 8528827.31, "ns per ops/procs": 117.25}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 421438583.0, "Ops per second": 14047952.0, "ns per ops": 71.0, "Ops per threads": 5853313.0, "Ops per procs": 5853313.0, "Ops/sec/procs": 195110.0, "ns per ops/procs": 5141.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30098.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 243308048.0, "Ops per second": 8110268.0, "ns per ops": 123.0, "Ops per threads": 1267229.0, "Ops per procs": 1267229.0, "Ops/sec/procs": 42240.0, "ns per ops/procs": 23751.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 771634067.0, "Ops per second": 25721135.0, "ns per ops": 39.0, "Ops per threads": 16075709.0, "Ops per procs": 16075709.0, "Ops/sec/procs": 535856.0, "ns per ops/procs": 1872.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1291039134.0, "Ops per second": 43034637.8, "ns per ops": 23.28, "Ops per threads": 13448324.0, "Ops per procs": 13448324.0, "Ops/sec/procs": 448277.48, "ns per ops/procs": 2235.01}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 965155439.0, "Ops per second": 32171847.0, "ns per ops": 31.0, "Ops per threads": 241288859.0, "Ops per procs": 241288859.0, "Ops/sec/procs": 8042961.0, "ns per ops/procs": 124.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 251825179.0, "Ops per second": 8394172.0, "ns per ops": 119.0, "Ops per threads": 1311589.0, "Ops per procs": 1311589.0, "Ops/sec/procs": 43719.0, "ns per ops/procs": 22947.0}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 250624138.0, "Ops per second": 8353794.15, "ns per ops": 119.71, "Ops per threads": 250624138.0, "Ops per procs": 250624138.0, "Ops/sec/procs": 8353794.15, "ns per ops/procs": 119.71}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3359759630.0, "Ops per second": 111902858.15, "ns per ops": 8.94, "Ops per threads": 839939907.0, "Ops per procs": 839939907.0, "Ops/sec/procs": 27975714.54, "ns per ops/procs": 35.75}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2232644337.0, "Ops per second": 74421477.9, "ns per ops": 13.48, "Ops per threads": 11628355.0, "Ops per procs": 11628355.0, "Ops/sec/procs": 387611.86, "ns per ops/procs": 2587.6}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30031.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 23197743.0, "Ops per second": 772459.21, "ns per ops": 1294.57, "Ops per threads": 322190.0, "Ops per procs": 322190.0, "Ops/sec/procs": 10728.6, "ns per ops/procs": 93208.81}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 238282805.0, "Ops per second": 7942760.17, "ns per ops": 126.11, "Ops per threads": 238282805.0, "Ops per procs": 238282805.0, "Ops/sec/procs": 7942760.17, "ns per ops/procs": 126.11}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1201336438.0, "Ops per second": 40044547.0, "ns per ops": 25.0, "Ops per threads": 150167054.0, "Ops per procs": 150167054.0, "Ops/sec/procs": 5005568.0, "ns per ops/procs": 200.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3364298371.0, "Ops per second": 112053341.17, "ns per ops": 8.92, "Ops per threads": 841074592.0, "Ops per procs": 841074592.0, "Ops/sec/procs": 28013335.29, "ns per ops/procs": 35.7}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16130033153.0, "Ops per second": 537618974.67, "ns per ops": 1.86, "Ops per threads": 672084714.0, "Ops per procs": 672084714.0, "Ops/sec/procs": 22400790.61, "ns per ops/procs": 44.64}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 42073776.0, "Ops per second": 1402110.33, "ns per ops": 713.21, "Ops per threads": 1753074.0, "Ops per procs": 1753074.0, "Ops/sec/procs": 58421.26, "ns per ops/procs": 17117.06}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40553263457.0, "Ops per second": 1351544284.8, "ns per ops": 0.74, "Ops per threads": 422429827.0, "Ops per procs": 422429827.0, "Ops/sec/procs": 14078586.3, "ns per ops/procs": 71.03}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 693466465.0, "Ops per second": 23115548.83, "ns per ops": 43.37, "Ops per threads": 43341654.0, "Ops per procs": 43341654.0, "Ops/sec/procs": 1444721.8, "ns per ops/procs": 693.99}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 328179340.0, "Ops per second": 10939311.33, "ns per ops": 91.57, "Ops per threads": 164089670.0, "Ops per procs": 164089670.0, "Ops/sec/procs": 5469655.67, "ns per ops/procs": 183.14}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 245572420.0, "Ops per second": 8185747.0, "ns per ops": 122.0, "Ops per threads": 1279023.0, "Ops per procs": 1279023.0, "Ops/sec/procs": 42634.0, "ns per ops/procs": 23531.0}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 80126376.0, "Ops per second": 2670590.88, "ns per ops": 374.45, "Ops per threads": 10015797.0, "Ops per procs": 10015797.0, "Ops/sec/procs": 333823.86, "ns per ops/procs": 2995.59}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1156647665.0, "Ops per second": 38554922.0, "ns per ops": 26.0, "Ops per threads": 144580958.0, "Ops per procs": 144580958.0, "Ops/sec/procs": 4819365.0, "ns per ops/procs": 208.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 325100242.0, "Ops per second": 10836674.0, "ns per ops": 92.0, "Ops per threads": 2257640.0, "Ops per procs": 2257640.0, "Ops/sec/procs": 75254.0, "ns per ops/procs": 13331.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20500362035.0, "Ops per second": 683242117.28, "ns per ops": 1.46, "Ops per threads": 427090875.0, "Ops per procs": 427090875.0, "Ops/sec/procs": 14234210.78, "ns per ops/procs": 70.25}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 931934137.0, "Ops per second": 31064471.23, "ns per ops": 32.21, "Ops per threads": 12943529.0, "Ops per procs": 12943529.0, "Ops/sec/procs": 431450.99, "ns per ops/procs": 2319.24}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1778507963.0, "Ops per second": 59237572.95, "ns per ops": 16.88, "Ops per threads": 889253981.0, "Ops per procs": 889253981.0, "Ops/sec/procs": 29618786.48, "ns per ops/procs": 33.76}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30035.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 23945848.0, "Ops per second": 797262.66, "ns per ops": 1254.29, "Ops per threads": 332581.0, "Ops per procs": 332581.0, "Ops/sec/procs": 11073.09, "ns per ops/procs": 90309.01}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 176673601.0, "Ops per second": 5888637.2, "ns per ops": 169.82, "Ops per threads": 44168400.0, "Ops per procs": 44168400.0, "Ops/sec/procs": 1472159.3, "ns per ops/procs": 679.27}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 519890881.0, "Ops per second": 17329696.03, "ns per ops": 57.83, "Ops per threads": 64986360.0, "Ops per procs": 64986360.0, "Ops/sec/procs": 2166212.0, "ns per ops/procs": 462.61}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 382377675.0, "Ops per second": 12745922.0, "ns per ops": 78.0, "Ops per threads": 5310801.0, "Ops per procs": 5310801.0, "Ops/sec/procs": 177026.0, "ns per ops/procs": 5667.0}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 41480101.0, "Ops per second": 1382320.91, "ns per ops": 723.42, "Ops per threads": 1728337.0, "Ops per procs": 1728337.0, "Ops/sec/procs": 57596.7, "ns per ops/procs": 17362.1}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 960084042.0, "Ops per second": 32002801.0, "ns per ops": 31.0, "Ops per threads": 240021010.0, "Ops per procs": 240021010.0, "Ops/sec/procs": 8000700.0, "ns per ops/procs": 125.0}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 256833265.0, "Ops per second": 8560770.12, "ns per ops": 116.81, "Ops per threads": 256833265.0, "Ops per procs": 256833265.0, "Ops/sec/procs": 8560770.12, "ns per ops/procs": 116.81}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30018.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 17086190.0, "Ops per second": 569181.77, "ns per ops": 1756.91, "Ops per threads": 88990.0, "Ops per procs": 88990.0, "Ops/sec/procs": 2964.49, "ns per ops/procs": 337326.33}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30046.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 22839735.0, "Ops per second": 760140.19, "ns per ops": 1315.55, "Ops per threads": 237913.0, "Ops per procs": 237913.0, "Ops/sec/procs": 7918.13, "ns per ops/procs": 126292.49}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3797745125.0, "Ops per second": 126591504.0, "ns per ops": 7.0, "Ops per threads": 158239380.0, "Ops per procs": 158239380.0, "Ops/sec/procs": 5274646.0, "ns per ops/procs": 190.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30006.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 60489888044.0, "Ops per second": 2015910225.95, "ns per ops": 0.5, "Ops per threads": 420068666.0, "Ops per procs": 420068666.0, "Ops/sec/procs": 13999376.57, "ns per ops/procs": 71.43}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3767189742.0, "Ops per second": 125572991.0, "ns per ops": 7.0, "Ops per threads": 156966239.0, "Ops per procs": 156966239.0, "Ops/sec/procs": 5232207.0, "ns per ops/procs": 191.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1356653996.0, "Ops per second": 45221799.87, "ns per ops": 22.13, "Ops per threads": 14131812.0, "Ops per procs": 14131812.0, "Ops/sec/procs": 471060.42, "ns per ops/procs": 2124.52}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30020.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41531128.0, "Ops per second": 1383405.11, "ns per ops": 722.85, "Ops per threads": 865231.0, "Ops per procs": 865231.0, "Ops/sec/procs": 28820.94, "ns per ops/procs": 34696.99}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1139045543.0, "Ops per second": 37968184.77, "ns per ops": 26.41, "Ops per threads": 23730115.0, "Ops per procs": 23730115.0, "Ops/sec/procs": 791003.85, "ns per ops/procs": 1267.48}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3728242645.0, "Ops per second": 124274754.0, "ns per ops": 8.0, "Ops per threads": 155343443.0, "Ops per procs": 155343443.0, "Ops/sec/procs": 5178114.0, "ns per ops/procs": 193.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30025.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3363753608.0, "Ops per second": 112030042.33, "ns per ops": 8.93, "Ops per threads": 840938402.0, "Ops per procs": 840938402.0, "Ops/sec/procs": 28007510.58, "ns per ops/procs": 35.7}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16122956518.0, "Ops per second": 537382067.51, "ns per ops": 1.86, "Ops per threads": 671789854.0, "Ops per procs": 671789854.0, "Ops/sec/procs": 22390919.48, "ns per ops/procs": 44.66}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2278604593.0, "Ops per second": 75953486.43, "ns per ops": 13.18, "Ops per threads": 11867732.0, "Ops per procs": 11867732.0, "Ops/sec/procs": 395591.08, "ns per ops/procs": 2529.9}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 273966591.0, "Ops per second": 9132219.0, "ns per ops": 109.0, "Ops per threads": 273966591.0, "Ops per procs": 273966591.0, "Ops/sec/procs": 9132219.0, "ns per ops/procs": 109.0}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 171446640.0, "Ops per second": 5714401.35, "ns per ops": 175.0, "Ops per threads": 42861660.0, "Ops per procs": 42861660.0, "Ops/sec/procs": 1428600.34, "ns per ops/procs": 699.99}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 82634041134.0, "Ops per second": 2753962580.65, "ns per ops": 0.36, "Ops per threads": 430385630.0, "Ops per procs": 430385630.0, "Ops/sec/procs": 14343555.11, "ns per ops/procs": 69.72}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30010.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 383277144.0, "Ops per second": 12771429.2, "ns per ops": 78.3, "Ops per threads": 191638572.0, "Ops per procs": 191638572.0, "Ops/sec/procs": 6385714.6, "ns per ops/procs": 156.6}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 49621904.0, "Ops per second": 1653734.91, "ns per ops": 604.69, "Ops per threads": 3101369.0, "Ops per procs": 3101369.0, "Ops/sec/procs": 103358.43, "ns per ops/procs": 9675.07}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6548668042.0, "Ops per second": 218123209.49, "ns per ops": 4.58, "Ops per threads": 818583505.0, "Ops per procs": 818583505.0, "Ops/sec/procs": 27265401.19, "ns per ops/procs": 36.68}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 870741487.0, "Ops per second": 29024716.23, "ns per ops": 34.49, "Ops per threads": 12093631.0, "Ops per procs": 12093631.0, "Ops/sec/procs": 403121.06, "ns per ops/procs": 2483.08}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1776660318.0, "Ops per second": 59175556.71, "ns per ops": 16.9, "Ops per threads": 888330159.0, "Ops per procs": 888330159.0, "Ops/sec/procs": 29587778.35, "ns per ops/procs": 33.8}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30034.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 23546545.0, "Ops per second": 783989.31, "ns per ops": 1275.53, "Ops per threads": 327035.0, "Ops per procs": 327035.0, "Ops/sec/procs": 10888.74, "ns per ops/procs": 91837.99}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 891236355.0, "Ops per second": 29685896.1, "ns per ops": 33.69, "Ops per threads": 891236355.0, "Ops per procs": 891236355.0, "Ops/sec/procs": 29685896.1, "ns per ops/procs": 33.69}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 238168520.0, "Ops per second": 7938950.67, "ns per ops": 126.17, "Ops per threads": 238168520.0, "Ops per procs": 238168520.0, "Ops/sec/procs": 7938950.67, "ns per ops/procs": 126.17}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 273308619.0, "Ops per second": 9110287.0, "ns per ops": 110.0, "Ops per threads": 273308619.0, "Ops per procs": 273308619.0, "Ops/sec/procs": 9110287.0, "ns per ops/procs": 110.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 323490675.0, "Ops per second": 10783022.5, "ns per ops": 92.9, "Ops per threads": 161745337.0, "Ops per procs": 161745337.0, "Ops/sec/procs": 5391511.25, "ns per ops/procs": 185.8}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30021.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41810318.0, "Ops per second": 1392690.2, "ns per ops": 718.03, "Ops per threads": 871048.0, "Ops per procs": 871048.0, "Ops/sec/procs": 29014.38, "ns per ops/procs": 34465.67}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 738357213.0, "Ops per second": 24611907.1, "ns per ops": 40.66, "Ops per threads": 30764883.0, "Ops per procs": 30764883.0, "Ops/sec/procs": 1025496.13, "ns per ops/procs": 975.84}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 891467219.0, "Ops per second": 29693523.64, "ns per ops": 33.68, "Ops per threads": 891467219.0, "Ops per procs": 891467219.0, "Ops/sec/procs": 29693523.64, "ns per ops/procs": 33.68}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6535924139.0, "Ops per second": 217698192.95, "ns per ops": 4.59, "Ops per threads": 816990517.0, "Ops per procs": 816990517.0, "Ops/sec/procs": 27212274.12, "ns per ops/procs": 36.75}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1212303508.0, "Ops per second": 40410116.0, "ns per ops": 24.0, "Ops per threads": 151537938.0, "Ops per procs": 151537938.0, "Ops/sec/procs": 5051264.0, "ns per ops/procs": 198.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16123963392.0, "Ops per second": 537416353.43, "ns per ops": 1.86, "Ops per threads": 671831808.0, "Ops per procs": 671831808.0, "Ops/sec/procs": 22392348.06, "ns per ops/procs": 44.66}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 274111231.0, "Ops per second": 9137041.0, "ns per ops": 109.0, "Ops per threads": 274111231.0, "Ops per procs": 274111231.0, "Ops/sec/procs": 9137041.0, "ns per ops/procs": 109.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 243698698.0, "Ops per second": 8123289.0, "ns per ops": 123.0, "Ops per threads": 1269264.0, "Ops per procs": 1269264.0, "Ops/sec/procs": 42308.0, "ns per ops/procs": 23712.0}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30021.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41590028.0, "Ops per second": 1385322.44, "ns per ops": 721.85, "Ops per threads": 866458.0, "Ops per procs": 866458.0, "Ops/sec/procs": 28860.88, "ns per ops/procs": 34648.97}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1311557022.0, "Ops per second": 43718567.4, "ns per ops": 22.91, "Ops per threads": 13662052.0, "Ops per procs": 13662052.0, "Ops/sec/procs": 455401.74, "ns per ops/procs": 2199.13}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 244388706.0, "Ops per second": 8146290.0, "ns per ops": 123.0, "Ops per threads": 1272857.0, "Ops per procs": 1272857.0, "Ops/sec/procs": 42428.0, "ns per ops/procs": 23645.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40662293816.0, "Ops per second": 1355191942.97, "ns per ops": 0.74, "Ops per threads": 423565560.0, "Ops per procs": 423565560.0, "Ops/sec/procs": 14116582.74, "ns per ops/procs": 70.84}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30039.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 82025063003.0, "Ops per second": 2730556097.42, "ns per ops": 0.37, "Ops per threads": 427213869.0, "Ops per procs": 427213869.0, "Ops/sec/procs": 14221646.34, "ns per ops/procs": 70.32}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 50391343.0, "Ops per second": 1679377.76, "ns per ops": 595.46, "Ops per threads": 3149458.0, "Ops per procs": 3149458.0, "Ops/sec/procs": 104961.11, "ns per ops/procs": 9527.34}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 1950177290.0, "Ops per second": 65005909.67, "ns per ops": 15.39, "Ops per threads": 13542897.0, "Ops per procs": 13542897.0, "Ops/sec/procs": 451429.93, "ns per ops/procs": 2216.19}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 41856262.0, "Ops per second": 1394855.36, "ns per ops": 716.92, "Ops per threads": 1744010.0, "Ops per procs": 1744010.0, "Ops/sec/procs": 58118.97, "ns per ops/procs": 17206.09}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6553115104.0, "Ops per second": 218270444.84, "ns per ops": 4.58, "Ops per threads": 819139388.0, "Ops per procs": 819139388.0, "Ops/sec/procs": 27283805.61, "ns per ops/procs": 36.65}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 172709755.0, "Ops per second": 5756537.11, "ns per ops": 173.72, "Ops per threads": 43177438.0, "Ops per procs": 43177438.0, "Ops/sec/procs": 1439134.28, "ns per ops/procs": 694.86}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 36598765378.0, "Ops per second": 1219807153.36, "ns per ops": 0.82, "Ops per threads": 508316185.0, "Ops per procs": 508316185.0, "Ops/sec/procs": 16941766.02, "ns per ops/procs": 59.03}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 36064065805.0, "Ops per second": 1201988042.74, "ns per ops": 0.83, "Ops per threads": 500889802.0, "Ops per procs": 500889802.0, "Ops/sec/procs": 16694278.37, "ns per ops/procs": 59.9}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 405844548.0, "Ops per second": 13528151.0, "ns per ops": 74.0, "Ops per threads": 5636729.0, "Ops per procs": 5636729.0, "Ops/sec/procs": 187890.0, "ns per ops/procs": 5339.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 237095678.0, "Ops per second": 7903189.27, "ns per ops": 126.74, "Ops per threads": 237095678.0, "Ops per procs": 237095678.0, "Ops/sec/procs": 7903189.27, "ns per ops/procs": 126.74}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 377332289.0, "Ops per second": 12577742.97, "ns per ops": 79.65, "Ops per threads": 94333072.0, "Ops per procs": 94333072.0, "Ops/sec/procs": 3144435.74, "ns per ops/procs": 318.61}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 81963368.0, "Ops per second": 2731803.55, "ns per ops": 366.06, "Ops per threads": 10245421.0, "Ops per procs": 10245421.0, "Ops/sec/procs": 341475.44, "ns per ops/procs": 2928.47}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 274226943.0, "Ops per second": 9140898.0, "ns per ops": 109.0, "Ops per threads": 274226943.0, "Ops per procs": 274226943.0, "Ops/sec/procs": 9140898.0, "ns per ops/procs": 109.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 735934385.0, "Ops per second": 24531146.17, "ns per ops": 40.79, "Ops per threads": 30663932.0, "Ops per procs": 30663932.0, "Ops/sec/procs": 1022131.09, "ns per ops/procs": 979.05}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1778046636.0, "Ops per second": 59222237.82, "ns per ops": 16.89, "Ops per threads": 889023318.0, "Ops per procs": 889023318.0, "Ops/sec/procs": 29611118.91, "ns per ops/procs": 33.77}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 705492901.0, "Ops per second": 23516430.03, "ns per ops": 42.63, "Ops per threads": 44093306.0, "Ops per procs": 44093306.0, "Ops/sec/procs": 1469776.88, "ns per ops/procs": 682.14}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2369247162.0, "Ops per second": 78974905.4, "ns per ops": 12.68, "Ops per threads": 12339828.0, "Ops per procs": 12339828.0, "Ops/sec/procs": 411327.63, "ns per ops/procs": 2434.49}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 257115322.0, "Ops per second": 8570162.33, "ns per ops": 116.68, "Ops per threads": 257115322.0, "Ops per procs": 257115322.0, "Ops/sec/procs": 8570162.33, "ns per ops/procs": 116.68}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30051.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 82873046554.0, "Ops per second": 2757686443.97, "ns per ops": 0.36, "Ops per threads": 431630450.0, "Ops per procs": 431630450.0, "Ops/sec/procs": 14362950.23, "ns per ops/procs": 69.62}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3364586288.0, "Ops per second": 112062628.38, "ns per ops": 8.92, "Ops per threads": 841146572.0, "Ops per procs": 841146572.0, "Ops/sec/procs": 28015657.09, "ns per ops/procs": 35.69}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 478815200.0, "Ops per second": 15960506.0, "ns per ops": 62.0, "Ops per threads": 6650211.0, "Ops per procs": 6650211.0, "Ops/sec/procs": 221673.0, "ns per ops/procs": 4525.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30003.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20753536441.0, "Ops per second": 691697855.12, "ns per ops": 1.45, "Ops per threads": 432365342.0, "Ops per procs": 432365342.0, "Ops/sec/procs": 14410371.98, "ns per ops/procs": 69.39}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 335968912.0, "Ops per second": 11198963.73, "ns per ops": 89.44, "Ops per threads": 167984456.0, "Ops per procs": 167984456.0, "Ops/sec/procs": 5599481.87, "ns per ops/procs": 178.89}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30033.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 23092176.0, "Ops per second": 768883.0, "ns per ops": 1300.59, "Ops per threads": 320724.0, "Ops per procs": 320724.0, "Ops/sec/procs": 10678.93, "ns per ops/procs": 93642.34}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 960812478.0, "Ops per second": 32027082.0, "ns per ops": 31.0, "Ops per threads": 240203119.0, "Ops per procs": 240203119.0, "Ops/sec/procs": 8006770.0, "ns per ops/procs": 125.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 494793419.0, "Ops per second": 16493113.0, "ns per ops": 60.0, "Ops per threads": 247396709.0, "Ops per procs": 247396709.0, "Ops/sec/procs": 8246556.0, "ns per ops/procs": 121.0}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 40951635.0, "Ops per second": 1364719.32, "ns per ops": 732.75, "Ops per threads": 1706318.0, "Ops per procs": 1706318.0, "Ops/sec/procs": 56863.3, "ns per ops/procs": 17586.03}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2447749744.0, "Ops per second": 81591658.13, "ns per ops": 12.26, "Ops per threads": 12748696.0, "Ops per procs": 12748696.0, "Ops/sec/procs": 424956.55, "ns per ops/procs": 2354.42}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 254536773.0, "Ops per second": 8484220.38, "ns per ops": 117.87, "Ops per threads": 254536773.0, "Ops per procs": 254536773.0, "Ops/sec/procs": 8484220.38, "ns per ops/procs": 117.87}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 503002458.0, "Ops per second": 16766748.0, "ns per ops": 59.0, "Ops per threads": 251501229.0, "Ops per procs": 251501229.0, "Ops/sec/procs": 8383374.0, "ns per ops/procs": 119.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30098.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 336119170.0, "Ops per second": 11203972.0, "ns per ops": 89.0, "Ops per threads": 2334160.0, "Ops per procs": 2334160.0, "Ops/sec/procs": 77805.0, "ns per ops/procs": 12894.0}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 50869827.0, "Ops per second": 1695341.3, "ns per ops": 589.85, "Ops per threads": 3179364.0, "Ops per procs": 3179364.0, "Ops/sec/procs": 105958.83, "ns per ops/procs": 9437.63}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 929695127.0, "Ops per second": 30989837.57, "ns per ops": 32.29, "Ops per threads": 12912432.0, "Ops per procs": 12912432.0, "Ops/sec/procs": 430414.41, "ns per ops/procs": 2324.94}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 167695277.0, "Ops per second": 5589364.85, "ns per ops": 178.91, "Ops per threads": 41923819.0, "Ops per procs": 41923819.0, "Ops/sec/procs": 1397341.21, "ns per ops/procs": 715.64}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 50648284.0, "Ops per second": 1687967.71, "ns per ops": 592.43, "Ops per threads": 3165517.0, "Ops per procs": 3165517.0, "Ops/sec/procs": 105497.98, "ns per ops/procs": 9478.85}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20575090198.0, "Ops per second": 685734711.01, "ns per ops": 1.46, "Ops per threads": 428647712.0, "Ops per procs": 428647712.0, "Ops/sec/procs": 14286139.81, "ns per ops/procs": 70.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 419290999.0, "Ops per second": 13976366.0, "ns per ops": 71.0, "Ops per threads": 4367614.0, "Ops per procs": 4367614.0, "Ops/sec/procs": 145587.0, "ns per ops/procs": 6891.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 401164809.0, "Ops per second": 13372160.0, "ns per ops": 75.0, "Ops per threads": 4178800.0, "Ops per procs": 4178800.0, "Ops/sec/procs": 139293.0, "ns per ops/procs": 7202.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 887600299.0, "Ops per second": 29564908.13, "ns per ops": 33.82, "Ops per threads": 887600299.0, "Ops per procs": 887600299.0, "Ops/sec/procs": 29564908.13, "ns per ops/procs": 33.82}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2444559914.0, "Ops per second": 81485330.47, "ns per ops": 12.29, "Ops per threads": 12732082.0, "Ops per procs": 12732082.0, "Ops/sec/procs": 424402.76, "ns per ops/procs": 2359.23}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1164348098.0, "Ops per second": 38811603.0, "ns per ops": 25.0, "Ops per threads": 145543512.0, "Ops per procs": 145543512.0, "Ops/sec/procs": 4851450.0, "ns per ops/procs": 206.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2472165596.0, "Ops per second": 82405519.87, "ns per ops": 12.15, "Ops per threads": 12875862.0, "Ops per procs": 12875862.0, "Ops/sec/procs": 429195.42, "ns per ops/procs": 2331.85}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 242653000.0, "Ops per second": 8088433.0, "ns per ops": 124.0, "Ops per threads": 1263817.0, "Ops per procs": 1263817.0, "Ops/sec/procs": 42127.0, "ns per ops/procs": 23815.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 693765601.0, "Ops per second": 23125520.03, "ns per ops": 43.35, "Ops per threads": 43360350.0, "Ops per procs": 43360350.0, "Ops/sec/procs": 1445345.0, "ns per ops/procs": 693.67}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 700309211.0, "Ops per second": 23343640.37, "ns per ops": 42.95, "Ops per threads": 43769325.0, "Ops per procs": 43769325.0, "Ops/sec/procs": 1458977.52, "ns per ops/procs": 687.21}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1153639106.0, "Ops per second": 38454636.87, "ns per ops": 26.05, "Ops per threads": 24034148.0, "Ops per procs": 24034148.0, "Ops/sec/procs": 801138.27, "ns per ops/procs": 1250.4}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30020.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41036132.0, "Ops per second": 1366916.53, "ns per ops": 731.57, "Ops per threads": 854919.0, "Ops per procs": 854919.0, "Ops/sec/procs": 28477.43, "ns per ops/procs": 35115.53}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6549726502.0, "Ops per second": 218159557.03, "ns per ops": 4.58, "Ops per threads": 818715812.0, "Ops per procs": 818715812.0, "Ops/sec/procs": 27269944.63, "ns per ops/procs": 36.67}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1304871853.0, "Ops per second": 43495728.43, "ns per ops": 22.99, "Ops per threads": 13592415.0, "Ops per procs": 13592415.0, "Ops/sec/procs": 453080.5, "ns per ops/procs": 2207.14}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30047.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 23686948.0, "Ops per second": 788314.75, "ns per ops": 1268.53, "Ops per threads": 246739.0, "Ops per procs": 246739.0, "Ops/sec/procs": 8211.61, "ns per ops/procs": 121778.77}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 257044465.0, "Ops per second": 8567804.83, "ns per ops": 116.72, "Ops per threads": 257044465.0, "Ops per procs": 257044465.0, "Ops/sec/procs": 8567804.83, "ns per ops/procs": 116.72}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 965034247.0, "Ops per second": 32167808.23, "ns per ops": 31.12, "Ops per threads": 13403253.0, "Ops per procs": 13403253.0, "Ops/sec/procs": 446775.11, "ns per ops/procs": 2240.31}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 238199800.0, "Ops per second": 7939993.33, "ns per ops": 126.15, "Ops per threads": 238199800.0, "Ops per procs": 238199800.0, "Ops/sec/procs": 7939993.33, "ns per ops/procs": 126.15}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 42132557.0, "Ops per second": 1404067.59, "ns per ops": 712.22, "Ops per threads": 1755523.0, "Ops per procs": 1755523.0, "Ops/sec/procs": 58502.82, "ns per ops/procs": 17093.19}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1165908437.0, "Ops per second": 38863614.0, "ns per ops": 25.0, "Ops per threads": 24289759.0, "Ops per procs": 24289759.0, "Ops/sec/procs": 809658.0, "ns per ops/procs": 1239.0}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 51491247.0, "Ops per second": 1716062.37, "ns per ops": 582.73, "Ops per threads": 3218202.0, "Ops per procs": 3218202.0, "Ops/sec/procs": 107253.9, "ns per ops/procs": 9323.67}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 82692441.0, "Ops per second": 2756078.92, "ns per ops": 362.83, "Ops per threads": 10336555.0, "Ops per procs": 10336555.0, "Ops/sec/procs": 344509.86, "ns per ops/procs": 2902.67}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30034.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 23870619.0, "Ops per second": 794761.08, "ns per ops": 1258.24, "Ops per threads": 331536.0, "Ops per procs": 331536.0, "Ops/sec/procs": 11038.35, "ns per ops/procs": 90593.26}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 233550520.0, "Ops per second": 7785017.0, "ns per ops": 128.0, "Ops per threads": 1216408.0, "Ops per procs": 1216408.0, "Ops/sec/procs": 40546.0, "ns per ops/procs": 24742.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 770751083.0, "Ops per second": 25691702.0, "ns per ops": 39.0, "Ops per threads": 16057314.0, "Ops per procs": 16057314.0, "Ops/sec/procs": 535243.0, "ns per ops/procs": 1874.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 949326496.0, "Ops per second": 31644216.0, "ns per ops": 31.0, "Ops per threads": 237331624.0, "Ops per procs": 237331624.0, "Ops/sec/procs": 7911054.0, "ns per ops/procs": 126.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16125482034.0, "Ops per second": 537465781.95, "ns per ops": 1.86, "Ops per threads": 671895084.0, "Ops per procs": 671895084.0, "Ops/sec/procs": 22394407.58, "ns per ops/procs": 44.65}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16129089459.0, "Ops per second": 537586664.1, "ns per ops": 1.86, "Ops per threads": 672045394.0, "Ops per procs": 672045394.0, "Ops/sec/procs": 22399444.34, "ns per ops/procs": 44.64}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30020.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41949190.0, "Ops per second": 1397363.36, "ns per ops": 715.63, "Ops per threads": 873941.0, "Ops per procs": 873941.0, "Ops/sec/procs": 29111.74, "ns per ops/procs": 34350.41}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30068.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 60905750190.0, "Ops per second": 2025589354.18, "ns per ops": 0.49, "Ops per threads": 422956598.0, "Ops per procs": 422956598.0, "Ops/sec/procs": 14066592.74, "ns per ops/procs": 71.09}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20524861242.0, "Ops per second": 684059410.1, "ns per ops": 1.46, "Ops per threads": 427601275.0, "Ops per procs": 427601275.0, "Ops/sec/procs": 14251237.71, "ns per ops/procs": 70.17}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 257418267.0, "Ops per second": 8580270.03, "ns per ops": 116.55, "Ops per threads": 257418267.0, "Ops per procs": 257418267.0, "Ops/sec/procs": 8580270.03, "ns per ops/procs": 116.55}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1217827675.0, "Ops per second": 40594255.0, "ns per ops": 24.0, "Ops per threads": 25371409.0, "Ops per procs": 25371409.0, "Ops/sec/procs": 845713.0, "ns per ops/procs": 1186.0}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30027.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 16274906.0, "Ops per second": 541991.01, "ns per ops": 1845.05, "Ops per threads": 84765.0, "Ops per procs": 84765.0, "Ops/sec/procs": 2822.87, "ns per ops/procs": 354249.42}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30020.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41438718.0, "Ops per second": 1380338.33, "ns per ops": 724.46, "Ops per threads": 863306.0, "Ops per procs": 863306.0, "Ops/sec/procs": 28757.05, "ns per ops/procs": 34774.08}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 333522567.0, "Ops per second": 11117418.9, "ns per ops": 90.1, "Ops per threads": 166761283.0, "Ops per procs": 166761283.0, "Ops/sec/procs": 5558709.45, "ns per ops/procs": 180.21}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16121834865.0, "Ops per second": 537345482.41, "ns per ops": 1.86, "Ops per threads": 671743119.0, "Ops per procs": 671743119.0, "Ops/sec/procs": 22389395.1, "ns per ops/procs": 44.66}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3363180156.0, "Ops per second": 112016276.5, "ns per ops": 8.93, "Ops per threads": 840795039.0, "Ops per procs": 840795039.0, "Ops/sec/procs": 28004069.13, "ns per ops/procs": 35.71}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30008.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 362578008.0, "Ops per second": 12082395.93, "ns per ops": 82.77, "Ops per threads": 181289004.0, "Ops per procs": 181289004.0, "Ops/sec/procs": 6041197.96, "ns per ops/procs": 165.53}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30004.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 35712485756.0, "Ops per second": 1190248920.91, "ns per ops": 0.84, "Ops per threads": 496006746.0, "Ops per procs": 496006746.0, "Ops/sec/procs": 16531235.01, "ns per ops/procs": 60.49}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 505015476.0, "Ops per second": 16833849.0, "ns per ops": 59.0, "Ops per threads": 252507738.0, "Ops per procs": 252507738.0, "Ops/sec/procs": 8416924.0, "ns per ops/procs": 119.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 312144947.0, "Ops per second": 10404831.0, "ns per ops": 96.0, "Ops per threads": 2167673.0, "Ops per procs": 2167673.0, "Ops/sec/procs": 72255.0, "ns per ops/procs": 13884.0}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30012.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 368676823.0, "Ops per second": 12284255.2, "ns per ops": 81.41, "Ops per threads": 184338411.0, "Ops per procs": 184338411.0, "Ops/sec/procs": 6142127.6, "ns per ops/procs": 162.81}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 256563825.0, "Ops per second": 8551789.05, "ns per ops": 116.93, "Ops per threads": 256563825.0, "Ops per procs": 256563825.0, "Ops/sec/procs": 8551789.05, "ns per ops/procs": 116.93}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 446722161.0, "Ops per second": 14890738.0, "ns per ops": 67.0, "Ops per threads": 3102237.0, "Ops per procs": 3102237.0, "Ops/sec/procs": 103407.0, "ns per ops/procs": 9701.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 60804532717.0, "Ops per second": 2026469742.87, "ns per ops": 0.49, "Ops per threads": 422253699.0, "Ops per procs": 422253699.0, "Ops/sec/procs": 14072706.55, "ns per ops/procs": 71.06}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2308509229.0, "Ops per second": 76950307.63, "ns per ops": 13.04, "Ops per threads": 12023485.0, "Ops per procs": 12023485.0, "Ops/sec/procs": 400782.85, "ns per ops/procs": 2503.42}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 41521839.0, "Ops per second": 1383705.95, "ns per ops": 722.7, "Ops per threads": 1730076.0, "Ops per procs": 1730076.0, "Ops/sec/procs": 57654.41, "ns per ops/procs": 17344.73}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 956931459.0, "Ops per second": 31897715.0, "ns per ops": 31.0, "Ops per threads": 239232864.0, "Ops per procs": 239232864.0, "Ops/sec/procs": 7974428.0, "ns per ops/procs": 125.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 700783115.0, "Ops per second": 23359437.17, "ns per ops": 42.84, "Ops per threads": 29199296.0, "Ops per procs": 29199296.0, "Ops/sec/procs": 973309.88, "ns per ops/procs": 1028.15}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1358001930.0, "Ops per second": 45266731.0, "ns per ops": 22.13, "Ops per threads": 14145853.0, "Ops per procs": 14145853.0, "Ops/sec/procs": 471528.45, "ns per ops/procs": 2124.41}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 364152363.0, "Ops per second": 12138412.0, "ns per ops": 82.0, "Ops per threads": 2528835.0, "Ops per procs": 2528835.0, "Ops/sec/procs": 84294.0, "ns per ops/procs": 11901.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3353352707.0, "Ops per second": 111778423.0, "ns per ops": 8.0, "Ops per threads": 209584544.0, "Ops per procs": 209584544.0, "Ops/sec/procs": 6986151.0, "ns per ops/procs": 143.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30004.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 62092838229.0, "Ops per second": 2069466995.4, "ns per ops": 0.48, "Ops per threads": 431200265.0, "Ops per procs": 431200265.0, "Ops/sec/procs": 14371298.58, "ns per ops/procs": 69.58}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30006.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 81200074933.0, "Ops per second": 2706062194.05, "ns per ops": 0.37, "Ops per threads": 422917056.0, "Ops per procs": 422917056.0, "Ops/sec/procs": 14094073.93, "ns per ops/procs": 70.95}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 698917861.0, "Ops per second": 23297262.03, "ns per ops": 43.04, "Ops per threads": 43682366.0, "Ops per procs": 43682366.0, "Ops/sec/procs": 1456078.88, "ns per ops/procs": 688.57}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 329706297.0, "Ops per second": 10990209.0, "ns per ops": 91.0, "Ops per threads": 2289627.0, "Ops per procs": 2289627.0, "Ops/sec/procs": 76320.0, "ns per ops/procs": 13145.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 36351777409.0, "Ops per second": 1211569108.97, "ns per ops": 0.83, "Ops per threads": 504885797.0, "Ops per procs": 504885797.0, "Ops/sec/procs": 16827348.74, "ns per ops/procs": 59.43}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 1863902454.0, "Ops per second": 62130081.8, "ns per ops": 16.1, "Ops per threads": 12943767.0, "Ops per procs": 12943767.0, "Ops/sec/procs": 431458.9, "ns per ops/procs": 2318.47}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30021.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41128250.0, "Ops per second": 1369939.44, "ns per ops": 729.96, "Ops per threads": 856838.0, "Ops per procs": 856838.0, "Ops/sec/procs": 28540.4, "ns per ops/procs": 35038.05}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1160409379.0, "Ops per second": 38680312.63, "ns per ops": 25.9, "Ops per threads": 24175195.0, "Ops per procs": 24175195.0, "Ops/sec/procs": 805839.85, "ns per ops/procs": 1243.09}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6548506400.0, "Ops per second": 218117920.07, "ns per ops": 4.58, "Ops per threads": 818563300.0, "Ops per procs": 818563300.0, "Ops/sec/procs": 27264740.01, "ns per ops/procs": 36.68}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30008.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 359153452.0, "Ops per second": 11968537.15, "ns per ops": 83.55, "Ops per threads": 179576726.0, "Ops per procs": 179576726.0, "Ops/sec/procs": 5984268.57, "ns per ops/procs": 167.1}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30037.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 21928745.0, "Ops per second": 730044.26, "ns per ops": 1369.78, "Ops per threads": 304565.0, "Ops per procs": 304565.0, "Ops/sec/procs": 10139.5, "ns per ops/procs": 98624.16}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16132875565.0, "Ops per second": 537711775.3, "ns per ops": 1.86, "Ops per threads": 672203148.0, "Ops per procs": 672203148.0, "Ops/sec/procs": 22404657.3, "ns per ops/procs": 44.63}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30028.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 35576856468.0, "Ops per second": 1184750774.79, "ns per ops": 0.84, "Ops per threads": 494123006.0, "Ops per procs": 494123006.0, "Ops/sec/procs": 16454871.87, "ns per ops/procs": 60.77}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30026.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 16706652.0, "Ops per second": 556394.7, "ns per ops": 1797.29, "Ops per threads": 87013.0, "Ops per procs": 87013.0, "Ops/sec/procs": 2897.89, "ns per ops/procs": 345078.77}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1366701155.0, "Ops per second": 45556705.17, "ns per ops": 21.95, "Ops per threads": 14236470.0, "Ops per procs": 14236470.0, "Ops/sec/procs": 474549.01, "ns per ops/procs": 2107.38}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 953111551.0, "Ops per second": 31770385.0, "ns per ops": 31.0, "Ops per threads": 238277887.0, "Ops per procs": 238277887.0, "Ops/sec/procs": 7942596.0, "ns per ops/procs": 126.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6544217566.0, "Ops per second": 217975526.07, "ns per ops": 4.59, "Ops per threads": 818027195.0, "Ops per procs": 818027195.0, "Ops/sec/procs": 27246940.76, "ns per ops/procs": 36.7}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3361815801.0, "Ops per second": 111970800.61, "ns per ops": 8.93, "Ops per threads": 840453950.0, "Ops per procs": 840453950.0, "Ops/sec/procs": 27992700.15, "ns per ops/procs": 35.72}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1159015029.0, "Ops per second": 38633834.0, "ns per ops": 25.0, "Ops per threads": 144876878.0, "Ops per procs": 144876878.0, "Ops/sec/procs": 4829229.0, "ns per ops/procs": 207.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40526868169.0, "Ops per second": 1350676682.6, "ns per ops": 0.74, "Ops per threads": 422154876.0, "Ops per procs": 422154876.0, "Ops/sec/procs": 14069548.78, "ns per ops/procs": 71.08}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 384696066.0, "Ops per second": 12823202.0, "ns per ops": 78.0, "Ops per threads": 4007250.0, "Ops per procs": 4007250.0, "Ops/sec/procs": 133575.0, "ns per ops/procs": 7510.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 237080549.0, "Ops per second": 7902684.97, "ns per ops": 126.75, "Ops per threads": 237080549.0, "Ops per procs": 237080549.0, "Ops/sec/procs": 7902684.97, "ns per ops/procs": 126.75}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3359880470.0, "Ops per second": 111905895.32, "ns per ops": 8.94, "Ops per threads": 839970117.0, "Ops per procs": 839970117.0, "Ops/sec/procs": 27976473.83, "ns per ops/procs": 35.74}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30098.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 507364277.0, "Ops per second": 16912142.0, "ns per ops": 59.0, "Ops per threads": 253682138.0, "Ops per procs": 253682138.0, "Ops/sec/procs": 8456071.0, "ns per ops/procs": 118.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3482154065.0, "Ops per second": 116071802.0, "ns per ops": 8.0, "Ops per threads": 217634629.0, "Ops per procs": 217634629.0, "Ops/sec/procs": 7254487.0, "ns per ops/procs": 138.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30098.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 501896899.0, "Ops per second": 16729896.0, "ns per ops": 59.0, "Ops per threads": 250948449.0, "Ops per procs": 250948449.0, "Ops/sec/procs": 8364948.0, "ns per ops/procs": 119.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 891401856.0, "Ops per second": 29691317.68, "ns per ops": 33.68, "Ops per threads": 891401856.0, "Ops per procs": 891401856.0, "Ops/sec/procs": 29691317.68, "ns per ops/procs": 33.68}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 963700255.0, "Ops per second": 32123341.0, "ns per ops": 31.0, "Ops per threads": 240925063.0, "Ops per procs": 240925063.0, "Ops/sec/procs": 8030835.0, "ns per ops/procs": 124.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1142283678.0, "Ops per second": 38076122.6, "ns per ops": 26.3, "Ops per threads": 23797576.0, "Ops per procs": 23797576.0, "Ops/sec/procs": 793252.55, "ns per ops/procs": 1262.43}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30023.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6548101533.0, "Ops per second": 218098917.49, "ns per ops": 4.59, "Ops per threads": 818512691.0, "Ops per procs": 818512691.0, "Ops/sec/procs": 27262364.69, "ns per ops/procs": 36.68}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20523803844.0, "Ops per second": 684023298.63, "ns per ops": 1.46, "Ops per threads": 427579246.0, "Ops per procs": 427579246.0, "Ops/sec/procs": 14250485.39, "ns per ops/procs": 70.17}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40304128035.0, "Ops per second": 1343270023.26, "ns per ops": 0.74, "Ops per threads": 419834667.0, "Ops per procs": 419834667.0, "Ops/sec/procs": 13992396.08, "ns per ops/procs": 71.47}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1132111010.0, "Ops per second": 37737033.0, "ns per ops": 26.0, "Ops per threads": 141513876.0, "Ops per procs": 141513876.0, "Ops/sec/procs": 4717129.0, "ns per ops/procs": 212.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 80922991380.0, "Ops per second": 2696976160.26, "ns per ops": 0.37, "Ops per threads": 421473913.0, "Ops per procs": 421473913.0, "Ops/sec/procs": 14046750.83, "ns per ops/procs": 71.19}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 734650729.0, "Ops per second": 24488357.63, "ns per ops": 40.86, "Ops per threads": 30610447.0, "Ops per procs": 30610447.0, "Ops/sec/procs": 1020348.23, "ns per ops/procs": 980.74}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30004.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 62334983274.0, "Ops per second": 2077499018.1, "ns per ops": 0.48, "Ops per threads": 432881828.0, "Ops per procs": 432881828.0, "Ops/sec/procs": 14427076.51, "ns per ops/procs": 69.31}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 503700806.0, "Ops per second": 16790026.0, "ns per ops": 59.0, "Ops per threads": 251850403.0, "Ops per procs": 251850403.0, "Ops/sec/procs": 8395013.0, "ns per ops/procs": 119.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1226221846.0, "Ops per second": 40874061.0, "ns per ops": 24.0, "Ops per threads": 25546288.0, "Ops per procs": 25546288.0, "Ops/sec/procs": 851542.0, "ns per ops/procs": 1178.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 378336887.0, "Ops per second": 12611229.57, "ns per ops": 79.44, "Ops per threads": 94584221.0, "Ops per procs": 94584221.0, "Ops/sec/procs": 3152807.39, "ns per ops/procs": 317.74}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30056.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 21286222.0, "Ops per second": 708217.45, "ns per ops": 1412.0, "Ops per threads": 221731.0, "Ops per procs": 221731.0, "Ops/sec/procs": 7377.27, "ns per ops/procs": 135551.59}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3363860316.0, "Ops per second": 112038521.53, "ns per ops": 8.93, "Ops per threads": 840965079.0, "Ops per procs": 840965079.0, "Ops/sec/procs": 28009630.38, "ns per ops/procs": 35.7}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 273854923.0, "Ops per second": 9128497.0, "ns per ops": 109.0, "Ops per threads": 273854923.0, "Ops per procs": 273854923.0, "Ops/sec/procs": 9128497.0, "ns per ops/procs": 109.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1282470798.0, "Ops per second": 42749026.6, "ns per ops": 23.45, "Ops per threads": 13359070.0, "Ops per procs": 13359070.0, "Ops/sec/procs": 445302.36, "ns per ops/procs": 2250.89}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1137060418.0, "Ops per second": 37902013.0, "ns per ops": 26.0, "Ops per threads": 142132552.0, "Ops per procs": 142132552.0, "Ops/sec/procs": 4737751.0, "ns per ops/procs": 211.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 530568869.0, "Ops per second": 17685628.97, "ns per ops": 56.66, "Ops per threads": 66321108.0, "Ops per procs": 66321108.0, "Ops/sec/procs": 2210703.62, "ns per ops/procs": 453.26}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 326655188.0, "Ops per second": 10888506.27, "ns per ops": 92.0, "Ops per threads": 163327594.0, "Ops per procs": 163327594.0, "Ops/sec/procs": 5444253.13, "ns per ops/procs": 183.99}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1175532140.0, "Ops per second": 39184404.0, "ns per ops": 25.0, "Ops per threads": 146941517.0, "Ops per procs": 146941517.0, "Ops/sec/procs": 4898050.0, "ns per ops/procs": 204.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 955851501.0, "Ops per second": 31861716.0, "ns per ops": 31.0, "Ops per threads": 238962875.0, "Ops per procs": 238962875.0, "Ops/sec/procs": 7965429.0, "ns per ops/procs": 125.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 238834366.0, "Ops per second": 7961145.0, "ns per ops": 126.0, "Ops per threads": 1243928.0, "Ops per procs": 1243928.0, "Ops/sec/procs": 41464.0, "ns per ops/procs": 24195.0}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 80386295.0, "Ops per second": 2679232.73, "ns per ops": 373.24, "Ops per threads": 10048286.0, "Ops per procs": 10048286.0, "Ops/sec/procs": 334904.09, "ns per ops/procs": 2985.93}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2418744593.0, "Ops per second": 80624819.77, "ns per ops": 12.44, "Ops per threads": 12597628.0, "Ops per procs": 12597628.0, "Ops/sec/procs": 419920.94, "ns per ops/procs": 2388.95}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1164582962.0, "Ops per second": 38819432.07, "ns per ops": 25.81, "Ops per threads": 24262145.0, "Ops per procs": 24262145.0, "Ops/sec/procs": 808738.17, "ns per ops/procs": 1239.06}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1316171007.0, "Ops per second": 43872366.9, "ns per ops": 22.83, "Ops per threads": 13710114.0, "Ops per procs": 13710114.0, "Ops/sec/procs": 457003.82, "ns per ops/procs": 2191.77}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30026.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 15557318.0, "Ops per second": 518116.7, "ns per ops": 1930.07, "Ops per threads": 81027.0, "Ops per procs": 81027.0, "Ops/sec/procs": 2698.52, "ns per ops/procs": 370572.88}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 949722698.0, "Ops per second": 31657423.27, "ns per ops": 31.61, "Ops per threads": 13190593.0, "Ops per procs": 13190593.0, "Ops/sec/procs": 439686.43, "ns per ops/procs": 2275.64}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30046.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 23467027.0, "Ops per second": 781032.95, "ns per ops": 1280.36, "Ops per threads": 244448.0, "Ops per procs": 244448.0, "Ops/sec/procs": 8135.76, "ns per ops/procs": 122914.15}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 502342197.0, "Ops per second": 16744739.0, "ns per ops": 59.0, "Ops per threads": 251171098.0, "Ops per procs": 251171098.0, "Ops/sec/procs": 8372369.0, "ns per ops/procs": 119.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1171331506.0, "Ops per second": 39044383.53, "ns per ops": 25.66, "Ops per threads": 24402739.0, "Ops per procs": 24402739.0, "Ops/sec/procs": 813424.66, "ns per ops/procs": 1231.45}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30070.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 19037717.0, "Ops per second": 633105.88, "ns per ops": 1579.51, "Ops per threads": 132206.0, "Ops per procs": 132206.0, "Ops/sec/procs": 4396.57, "ns per ops/procs": 227450.11}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 503884590.0, "Ops per second": 16796153.0, "ns per ops": 59.0, "Ops per threads": 251942295.0, "Ops per procs": 251942295.0, "Ops/sec/procs": 8398076.0, "ns per ops/procs": 119.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 82705773932.0, "Ops per second": 2756383947.93, "ns per ops": 0.36, "Ops per threads": 430759239.0, "Ops per procs": 430759239.0, "Ops/sec/procs": 14356166.4, "ns per ops/procs": 69.66}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 382424356.0, "Ops per second": 12747478.53, "ns per ops": 78.59, "Ops per threads": 95606089.0, "Ops per procs": 95606089.0, "Ops/sec/procs": 3186869.63, "ns per ops/procs": 314.37}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1774269050.0, "Ops per second": 59096210.11, "ns per ops": 16.92, "Ops per threads": 887134525.0, "Ops per procs": 887134525.0, "Ops/sec/procs": 29548105.05, "ns per ops/procs": 33.84}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3808919653.0, "Ops per second": 126963988.0, "ns per ops": 7.0, "Ops per threads": 158704985.0, "Ops per procs": 158704985.0, "Ops/sec/procs": 5290166.0, "ns per ops/procs": 189.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1370954985.0, "Ops per second": 45698499.5, "ns per ops": 21.92, "Ops per threads": 14280781.0, "Ops per procs": 14280781.0, "Ops/sec/procs": 476026.04, "ns per ops/procs": 2104.32}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30035.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 15950474.0, "Ops per second": 531058.37, "ns per ops": 1883.03, "Ops per threads": 83075.0, "Ops per procs": 83075.0, "Ops/sec/procs": 2765.93, "ns per ops/procs": 361542.18}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30006.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 36254488447.0, "Ops per second": 1208218075.42, "ns per ops": 0.83, "Ops per threads": 503534561.0, "Ops per procs": 503534561.0, "Ops/sec/procs": 16780806.6, "ns per ops/procs": 59.59}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3437633131.0, "Ops per second": 114587771.0, "ns per ops": 8.0, "Ops per threads": 214852070.0, "Ops per procs": 214852070.0, "Ops/sec/procs": 7161735.0, "ns per ops/procs": 140.0}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 81885149.0, "Ops per second": 2729200.52, "ns per ops": 366.41, "Ops per threads": 10235643.0, "Ops per procs": 10235643.0, "Ops/sec/procs": 341150.06, "ns per ops/procs": 2931.26}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1777536066.0, "Ops per second": 59204924.96, "ns per ops": 16.89, "Ops per threads": 888768033.0, "Ops per procs": 888768033.0, "Ops/sec/procs": 29602462.48, "ns per ops/procs": 33.78}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 81456622.0, "Ops per second": 2714901.28, "ns per ops": 368.34, "Ops per threads": 10182077.0, "Ops per procs": 10182077.0, "Ops/sec/procs": 339362.66, "ns per ops/procs": 2946.7}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 80922442.0, "Ops per second": 2697105.32, "ns per ops": 370.77, "Ops per threads": 10115305.0, "Ops per procs": 10115305.0, "Ops/sec/procs": 337138.17, "ns per ops/procs": 2966.14}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 330239971.0, "Ops per second": 11007999.03, "ns per ops": 91.0, "Ops per threads": 165119985.0, "Ops per procs": 165119985.0, "Ops/sec/procs": 5503999.52, "ns per ops/procs": 182.0}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 42360808.0, "Ops per second": 1411686.2, "ns per ops": 708.37, "Ops per threads": 1765033.0, "Ops per procs": 1765033.0, "Ops/sec/procs": 58820.26, "ns per ops/procs": 17000.95}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 726435101.0, "Ops per second": 24214503.37, "ns per ops": 41.33, "Ops per threads": 30268129.0, "Ops per procs": 30268129.0, "Ops/sec/procs": 1008937.64, "ns per ops/procs": 991.8}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20435343445.0, "Ops per second": 681074958.49, "ns per ops": 1.47, "Ops per threads": 425736321.0, "Ops per procs": 425736321.0, "Ops/sec/procs": 14189061.64, "ns per ops/procs": 70.48}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30049.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 23441495.0, "Ops per second": 780089.75, "ns per ops": 1281.9, "Ops per threads": 244182.0, "Ops per procs": 244182.0, "Ops/sec/procs": 8125.93, "ns per ops/procs": 123062.76}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 50425264.0, "Ops per second": 1680528.72, "ns per ops": 595.05, "Ops per threads": 3151579.0, "Ops per procs": 3151579.0, "Ops/sec/procs": 105033.05, "ns per ops/procs": 9520.81}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 956675341.0, "Ops per second": 31889178.0, "ns per ops": 31.0, "Ops per threads": 239168835.0, "Ops per procs": 239168835.0, "Ops/sec/procs": 7972294.0, "ns per ops/procs": 125.0}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 246407455.0, "Ops per second": 8213240.97, "ns per ops": 121.75, "Ops per threads": 246407455.0, "Ops per procs": 246407455.0, "Ops/sec/procs": 8213240.97, "ns per ops/procs": 121.75}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 703303357.0, "Ops per second": 23443445.23, "ns per ops": 42.77, "Ops per threads": 43956459.0, "Ops per procs": 43956459.0, "Ops/sec/procs": 1465215.33, "ns per ops/procs": 684.24}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1386631804.0, "Ops per second": 46221060.13, "ns per ops": 21.67, "Ops per threads": 14444081.0, "Ops per procs": 14444081.0, "Ops/sec/procs": 481469.38, "ns per ops/procs": 2080.54}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30075.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 18612214.0, "Ops per second": 618856.49, "ns per ops": 1615.88, "Ops per threads": 129251.0, "Ops per procs": 129251.0, "Ops/sec/procs": 4297.61, "ns per ops/procs": 232687.23}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 376796011.0, "Ops per second": 12559867.03, "ns per ops": 79.76, "Ops per threads": 94199002.0, "Ops per procs": 94199002.0, "Ops/sec/procs": 3139966.76, "ns per ops/procs": 319.05}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2215871406.0, "Ops per second": 73862380.2, "ns per ops": 13.54, "Ops per threads": 11540996.0, "Ops per procs": 11540996.0, "Ops/sec/procs": 384699.9, "ns per ops/procs": 2600.61}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30098.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 346938793.0, "Ops per second": 11564626.0, "ns per ops": 86.0, "Ops per threads": 2409297.0, "Ops per procs": 2409297.0, "Ops/sec/procs": 80309.0, "ns per ops/procs": 12492.0}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 49611498.0, "Ops per second": 1653390.09, "ns per ops": 604.82, "Ops per threads": 3100718.0, "Ops per procs": 3100718.0, "Ops/sec/procs": 103336.88, "ns per ops/procs": 9677.09}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 173991025.0, "Ops per second": 5799241.73, "ns per ops": 172.44, "Ops per threads": 43497756.0, "Ops per procs": 43497756.0, "Ops/sec/procs": 1449810.43, "ns per ops/procs": 689.75}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 702211795.0, "Ops per second": 23407059.83, "ns per ops": 42.83, "Ops per threads": 43888237.0, "Ops per procs": 43888237.0, "Ops/sec/procs": 1462941.24, "ns per ops/procs": 685.31}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 325031003.0, "Ops per second": 10834366.77, "ns per ops": 92.46, "Ops per threads": 162515501.0, "Ops per procs": 162515501.0, "Ops/sec/procs": 5417183.38, "ns per ops/procs": 184.92}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1161883016.0, "Ops per second": 38729433.87, "ns per ops": 25.86, "Ops per threads": 24205896.0, "Ops per procs": 24205896.0, "Ops/sec/procs": 806863.21, "ns per ops/procs": 1241.48}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 936052697.0, "Ops per second": 31201756.57, "ns per ops": 32.08, "Ops per threads": 13000731.0, "Ops per procs": 13000731.0, "Ops/sec/procs": 433357.73, "ns per ops/procs": 2309.4}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2413101733.0, "Ops per second": 80436724.43, "ns per ops": 12.45, "Ops per threads": 12568238.0, "Ops per procs": 12568238.0, "Ops/sec/procs": 418941.27, "ns per ops/procs": 2390.75}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20603097241.0, "Ops per second": 686669407.51, "ns per ops": 1.46, "Ops per threads": 429231192.0, "Ops per procs": 429231192.0, "Ops/sec/procs": 14305612.66, "ns per ops/procs": 69.9}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 2006973583.0, "Ops per second": 66899119.43, "ns per ops": 14.97, "Ops per threads": 13937316.0, "Ops per procs": 13937316.0, "Ops/sec/procs": 464577.22, "ns per ops/procs": 2156.13}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 60826178045.0, "Ops per second": 2027193281.28, "ns per ops": 0.49, "Ops per threads": 422404014.0, "Ops per procs": 422404014.0, "Ops/sec/procs": 14077731.12, "ns per ops/procs": 71.03}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 672455485.0, "Ops per second": 22415182.83, "ns per ops": 44.73, "Ops per threads": 42028467.0, "Ops per procs": 42028467.0, "Ops/sec/procs": 1400948.93, "ns per ops/procs": 715.66}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 380749870.0, "Ops per second": 12691662.0, "ns per ops": 79.0, "Ops per threads": 3966144.0, "Ops per procs": 3966144.0, "Ops/sec/procs": 132204.0, "ns per ops/procs": 7588.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 501706079.0, "Ops per second": 16723535.0, "ns per ops": 59.0, "Ops per threads": 250853039.0, "Ops per procs": 250853039.0, "Ops/sec/procs": 8361767.0, "ns per ops/procs": 119.0}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30084.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 18660871.0, "Ops per second": 620277.51, "ns per ops": 1612.18, "Ops per threads": 129589.0, "Ops per procs": 129589.0, "Ops/sec/procs": 4307.48, "ns per ops/procs": 232154.15}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 382664257.0, "Ops per second": 12755475.23, "ns per ops": 78.54, "Ops per threads": 95666064.0, "Ops per procs": 95666064.0, "Ops/sec/procs": 3188868.81, "ns per ops/procs": 314.17}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 254494409.0, "Ops per second": 8482801.12, "ns per ops": 117.89, "Ops per threads": 254494409.0, "Ops per procs": 254494409.0, "Ops/sec/procs": 8482801.12, "ns per ops/procs": 117.89}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30036.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 22723307.0, "Ops per second": 756533.28, "ns per ops": 1321.82, "Ops per threads": 315601.0, "Ops per procs": 315601.0, "Ops/sec/procs": 10507.41, "ns per ops/procs": 95170.96}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 401945436.0, "Ops per second": 13398181.0, "ns per ops": 74.0, "Ops per threads": 4186931.0, "Ops per procs": 4186931.0, "Ops/sec/procs": 139564.0, "ns per ops/procs": 7188.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 887394383.0, "Ops per second": 29557843.22, "ns per ops": 33.83, "Ops per threads": 887394383.0, "Ops per procs": 887394383.0, "Ops/sec/procs": 29557843.22, "ns per ops/procs": 33.83}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 689711535.0, "Ops per second": 22990384.5, "ns per ops": 43.61, "Ops per threads": 43106970.0, "Ops per procs": 43106970.0, "Ops/sec/procs": 1436899.03, "ns per ops/procs": 697.71}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 531772924.0, "Ops per second": 17725764.13, "ns per ops": 56.53, "Ops per threads": 66471615.0, "Ops per procs": 66471615.0, "Ops/sec/procs": 2215720.52, "ns per ops/procs": 452.25}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30021.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41380083.0, "Ops per second": 1378351.09, "ns per ops": 725.5, "Ops per threads": 862085.0, "Ops per procs": 862085.0, "Ops/sec/procs": 28715.65, "ns per ops/procs": 34824.22}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2413888038.0, "Ops per second": 80462934.6, "ns per ops": 12.46, "Ops per threads": 12572333.0, "Ops per procs": 12572333.0, "Ops/sec/procs": 419077.78, "ns per ops/procs": 2393.09}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 890899234.0, "Ops per second": 29674609.02, "ns per ops": 33.7, "Ops per threads": 890899234.0, "Ops per procs": 890899234.0, "Ops/sec/procs": 29674609.02, "ns per ops/procs": 33.7}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30034.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 22807884.0, "Ops per second": 759395.34, "ns per ops": 1316.84, "Ops per threads": 316776.0, "Ops per procs": 316776.0, "Ops/sec/procs": 10547.16, "ns per ops/procs": 94812.27}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 238363211.0, "Ops per second": 7945440.37, "ns per ops": 126.05, "Ops per threads": 238363211.0, "Ops per procs": 238363211.0, "Ops/sec/procs": 7945440.37, "ns per ops/procs": 126.05}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1203744303.0, "Ops per second": 40124810.0, "ns per ops": 25.0, "Ops per threads": 150468037.0, "Ops per procs": 150468037.0, "Ops/sec/procs": 5015601.0, "ns per ops/procs": 200.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 739910348.0, "Ops per second": 24663678.27, "ns per ops": 40.57, "Ops per threads": 30829597.0, "Ops per procs": 30829597.0, "Ops/sec/procs": 1027653.26, "ns per ops/procs": 973.78}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12304900422.0, "Ops per second": 409800280.92, "ns per ops": 2.44, "Ops per threads": 769056276.0, "Ops per procs": 769056276.0, "Ops/sec/procs": 25612517.56, "ns per ops/procs": 39.04}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 738187159.0, "Ops per second": 24606238.63, "ns per ops": 40.67, "Ops per threads": 30757798.0, "Ops per procs": 30757798.0, "Ops/sec/procs": 1025259.94, "ns per ops/procs": 976.04}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 886506146.0, "Ops per second": 29550204.87, "ns per ops": 33.94, "Ops per threads": 12312585.0, "Ops per procs": 12312585.0, "Ops/sec/procs": 410419.51, "ns per ops/procs": 2443.35}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 330092202.0, "Ops per second": 11003073.4, "ns per ops": 91.04, "Ops per threads": 165046101.0, "Ops per procs": 165046101.0, "Ops/sec/procs": 5501536.7, "ns per ops/procs": 182.08}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3360950559.0, "Ops per second": 111941499.31, "ns per ops": 8.93, "Ops per threads": 840237639.0, "Ops per procs": 840237639.0, "Ops/sec/procs": 27985374.83, "ns per ops/procs": 35.73}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3427984171.0, "Ops per second": 114266139.0, "ns per ops": 8.0, "Ops per threads": 214249010.0, "Ops per procs": 214249010.0, "Ops/sec/procs": 7141633.0, "ns per ops/procs": 140.0}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30020.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41363722.0, "Ops per second": 1377829.9, "ns per ops": 725.78, "Ops per threads": 861744.0, "Ops per procs": 861744.0, "Ops/sec/procs": 28704.79, "ns per ops/procs": 34837.39}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 961838983.0, "Ops per second": 32061299.0, "ns per ops": 31.0, "Ops per threads": 240459745.0, "Ops per procs": 240459745.0, "Ops/sec/procs": 8015324.0, "ns per ops/procs": 125.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30098.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 396457961.0, "Ops per second": 13215265.0, "ns per ops": 75.0, "Ops per threads": 5506360.0, "Ops per procs": 5506360.0, "Ops/sec/procs": 183545.0, "ns per ops/procs": 5466.0}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 81871155.0, "Ops per second": 2728727.51, "ns per ops": 366.47, "Ops per threads": 10233894.0, "Ops per procs": 10233894.0, "Ops/sec/procs": 341090.94, "ns per ops/procs": 2931.77}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 174483274.0, "Ops per second": 5815634.68, "ns per ops": 171.95, "Ops per threads": 43620818.0, "Ops per procs": 43620818.0, "Ops/sec/procs": 1453908.67, "ns per ops/procs": 687.8}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30086.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 18328820.0, "Ops per second": 609202.5, "ns per ops": 1641.49, "Ops per threads": 127283.0, "Ops per procs": 127283.0, "Ops/sec/procs": 4230.57, "ns per ops/procs": 236374.6}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30010.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 378740247.0, "Ops per second": 12620437.32, "ns per ops": 79.24, "Ops per threads": 189370123.0, "Ops per procs": 189370123.0, "Ops/sec/procs": 6310218.66, "ns per ops/procs": 158.47}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 736910864.0, "Ops per second": 24563695.47, "ns per ops": 40.74, "Ops per threads": 30704619.0, "Ops per procs": 30704619.0, "Ops/sec/procs": 1023487.31, "ns per ops/procs": 977.75}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30078.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 18368051.0, "Ops per second": 610676.84, "ns per ops": 1637.53, "Ops per threads": 127555.0, "Ops per procs": 127555.0, "Ops/sec/procs": 4240.81, "ns per ops/procs": 235803.93}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 274167236.0, "Ops per second": 9138907.0, "ns per ops": 109.0, "Ops per threads": 274167236.0, "Ops per procs": 274167236.0, "Ops/sec/procs": 9138907.0, "ns per ops/procs": 109.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12303388003.0, "Ops per second": 409749540.96, "ns per ops": 2.44, "Ops per threads": 768961750.0, "Ops per procs": 768961750.0, "Ops/sec/procs": 25609346.31, "ns per ops/procs": 39.05}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 384419062.0, "Ops per second": 12813968.73, "ns per ops": 78.18, "Ops per threads": 96104765.0, "Ops per procs": 96104765.0, "Ops/sec/procs": 3203492.18, "ns per ops/procs": 312.71}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30012.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 374120069.0, "Ops per second": 12465499.4, "ns per ops": 80.22, "Ops per threads": 187060034.0, "Ops per procs": 187060034.0, "Ops/sec/procs": 6232749.7, "ns per ops/procs": 160.44}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 698535511.0, "Ops per second": 23284517.03, "ns per ops": 43.06, "Ops per threads": 43658469.0, "Ops per procs": 43658469.0, "Ops/sec/procs": 1455282.31, "ns per ops/procs": 688.9}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20559185447.0, "Ops per second": 685206207.77, "ns per ops": 1.46, "Ops per threads": 428316363.0, "Ops per procs": 428316363.0, "Ops/sec/procs": 14275129.33, "ns per ops/procs": 70.05}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 325978966.0, "Ops per second": 10865965.53, "ns per ops": 92.19, "Ops per threads": 162989483.0, "Ops per procs": 162989483.0, "Ops/sec/procs": 5432982.77, "ns per ops/procs": 184.37}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30028.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 15641578.0, "Ops per second": 520891.58, "ns per ops": 1919.79, "Ops per threads": 81466.0, "Ops per procs": 81466.0, "Ops/sec/procs": 2712.98, "ns per ops/procs": 368598.78}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3403721538.0, "Ops per second": 113457384.0, "ns per ops": 8.0, "Ops per threads": 212732596.0, "Ops per procs": 212732596.0, "Ops/sec/procs": 7091086.0, "ns per ops/procs": 141.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 60344930574.0, "Ops per second": 2011138742.72, "ns per ops": 0.5, "Ops per threads": 419062017.0, "Ops per procs": 419062017.0, "Ops/sec/procs": 13966241.27, "ns per ops/procs": 71.6}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30004.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 60495926986.0, "Ops per second": 2016239964.57, "ns per ops": 0.5, "Ops per threads": 420110604.0, "Ops per procs": 420110604.0, "Ops/sec/procs": 14001666.42, "ns per ops/procs": 71.42}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3365744385.0, "Ops per second": 112101597.59, "ns per ops": 8.92, "Ops per threads": 841436096.0, "Ops per procs": 841436096.0, "Ops/sec/procs": 28025399.4, "ns per ops/procs": 35.68}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 697027879.0, "Ops per second": 23234262.63, "ns per ops": 43.15, "Ops per threads": 43564242.0, "Ops per procs": 43564242.0, "Ops/sec/procs": 1452141.41, "ns per ops/procs": 690.41}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30008.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 367234658.0, "Ops per second": 12237506.11, "ns per ops": 81.72, "Ops per threads": 183617329.0, "Ops per procs": 183617329.0, "Ops/sec/procs": 6118753.06, "ns per ops/procs": 163.43}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40609908938.0, "Ops per second": 1353446043.43, "ns per ops": 0.74, "Ops per threads": 423019884.0, "Ops per procs": 423019884.0, "Ops/sec/procs": 14098396.29, "ns per ops/procs": 70.93}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 889556517.0, "Ops per second": 29629780.27, "ns per ops": 33.75, "Ops per threads": 889556517.0, "Ops per procs": 889556517.0, "Ops/sec/procs": 29629780.27, "ns per ops/procs": 33.75}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 889887164.0, "Ops per second": 29640739.36, "ns per ops": 33.74, "Ops per threads": 889887164.0, "Ops per procs": 889887164.0, "Ops/sec/procs": 29640739.36, "ns per ops/procs": 33.74}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3422244889.0, "Ops per second": 114074829.0, "ns per ops": 8.0, "Ops per threads": 213890305.0, "Ops per procs": 213890305.0, "Ops/sec/procs": 7129676.0, "ns per ops/procs": 140.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12301427091.0, "Ops per second": 409683414.62, "ns per ops": 2.44, "Ops per threads": 768839193.0, "Ops per procs": 768839193.0, "Ops/sec/procs": 25605213.41, "ns per ops/procs": 39.05}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1172134800.0, "Ops per second": 39071160.0, "ns per ops": 25.0, "Ops per threads": 146516850.0, "Ops per procs": 146516850.0, "Ops/sec/procs": 4883895.0, "ns per ops/procs": 205.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16127425693.0, "Ops per second": 537535476.27, "ns per ops": 1.86, "Ops per threads": 671976070.0, "Ops per procs": 671976070.0, "Ops/sec/procs": 22397311.51, "ns per ops/procs": 44.65}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 657632371.0, "Ops per second": 21921079.03, "ns per ops": 45.74, "Ops per threads": 41102023.0, "Ops per procs": 41102023.0, "Ops/sec/procs": 1370067.44, "ns per ops/procs": 731.78}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 387702267.0, "Ops per second": 12923408.0, "ns per ops": 77.0, "Ops per threads": 4038565.0, "Ops per procs": 4038565.0, "Ops/sec/procs": 134618.0, "ns per ops/procs": 7452.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 330257453.0, "Ops per second": 11008581.77, "ns per ops": 91.0, "Ops per threads": 165128726.0, "Ops per procs": 165128726.0, "Ops/sec/procs": 5504290.88, "ns per ops/procs": 181.99}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 318940675.0, "Ops per second": 10631355.0, "ns per ops": 94.0, "Ops per threads": 2214865.0, "Ops per procs": 2214865.0, "Ops/sec/procs": 73828.0, "ns per ops/procs": 13588.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1174698380.0, "Ops per second": 39156612.67, "ns per ops": 25.61, "Ops per threads": 24472882.0, "Ops per procs": 24472882.0, "Ops/sec/procs": 815762.76, "ns per ops/procs": 1229.15}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 42292996.0, "Ops per second": 1409426.51, "ns per ops": 709.51, "Ops per threads": 1762208.0, "Ops per procs": 1762208.0, "Ops/sec/procs": 58726.1, "ns per ops/procs": 17028.2}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 936977216.0, "Ops per second": 31232573.87, "ns per ops": 32.04, "Ops per threads": 13013572.0, "Ops per procs": 13013572.0, "Ops/sec/procs": 433785.75, "ns per ops/procs": 2306.94}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 235986345.0, "Ops per second": 7866211.0, "ns per ops": 127.0, "Ops per threads": 1229095.0, "Ops per procs": 1229095.0, "Ops/sec/procs": 40969.0, "ns per ops/procs": 24487.0}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30013.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 16563392.0, "Ops per second": 551860.84, "ns per ops": 1812.05, "Ops per threads": 86267.0, "Ops per procs": 86267.0, "Ops/sec/procs": 2874.28, "ns per ops/procs": 347913.8}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 383207221.0, "Ops per second": 12773574.03, "ns per ops": 78.43, "Ops per threads": 95801805.0, "Ops per procs": 95801805.0, "Ops/sec/procs": 3193393.51, "ns per ops/procs": 313.73}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 238049034.0, "Ops per second": 7934967.8, "ns per ops": 126.23, "Ops per threads": 238049034.0, "Ops per procs": 238049034.0, "Ops/sec/procs": 7934967.8, "ns per ops/procs": 126.23}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30024.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1774650100.0, "Ops per second": 59107686.84, "ns per ops": 16.92, "Ops per threads": 887325050.0, "Ops per procs": 887325050.0, "Ops/sec/procs": 29553843.42, "ns per ops/procs": 33.84}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3358987399.0, "Ops per second": 111876244.37, "ns per ops": 8.94, "Ops per threads": 839746849.0, "Ops per procs": 839746849.0, "Ops/sec/procs": 27969061.09, "ns per ops/procs": 35.75}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 954279709.0, "Ops per second": 31809323.0, "ns per ops": 31.0, "Ops per threads": 238569927.0, "Ops per procs": 238569927.0, "Ops/sec/procs": 7952330.0, "ns per ops/procs": 126.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40539858236.0, "Ops per second": 1351102215.96, "ns per ops": 0.74, "Ops per threads": 422290189.0, "Ops per procs": 422290189.0, "Ops/sec/procs": 14073981.42, "ns per ops/procs": 71.05}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3746216497.0, "Ops per second": 124873883.0, "ns per ops": 8.0, "Ops per threads": 156092354.0, "Ops per procs": 156092354.0, "Ops/sec/procs": 5203078.0, "ns per ops/procs": 192.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 705964202.0, "Ops per second": 23532140.07, "ns per ops": 42.52, "Ops per threads": 29415175.0, "Ops per procs": 29415175.0, "Ops/sec/procs": 980505.84, "ns per ops/procs": 1020.5}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 81509007.0, "Ops per second": 2716669.49, "ns per ops": 368.1, "Ops per threads": 10188625.0, "Ops per procs": 10188625.0, "Ops/sec/procs": 339583.69, "ns per ops/procs": 2944.78}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 1944822373.0, "Ops per second": 64827412.43, "ns per ops": 15.43, "Ops per threads": 13505710.0, "Ops per procs": 13505710.0, "Ops/sec/procs": 450190.36, "ns per ops/procs": 2221.8}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 500486501.0, "Ops per second": 16682883.0, "ns per ops": 60.0, "Ops per threads": 250243250.0, "Ops per procs": 250243250.0, "Ops/sec/procs": 8341441.0, "ns per ops/procs": 120.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 393969200.0, "Ops per second": 13132306.0, "ns per ops": 76.0, "Ops per threads": 5471794.0, "Ops per procs": 5471794.0, "Ops/sec/procs": 182393.0, "ns per ops/procs": 5500.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 237568791.0, "Ops per second": 7918959.7, "ns per ops": 126.48, "Ops per threads": 237568791.0, "Ops per procs": 237568791.0, "Ops/sec/procs": 7918959.7, "ns per ops/procs": 126.48}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 378808074.0, "Ops per second": 12626935.0, "ns per ops": 79.0, "Ops per threads": 3945917.0, "Ops per procs": 3945917.0, "Ops/sec/procs": 131530.0, "ns per ops/procs": 7627.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30004.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 36246923243.0, "Ops per second": 1208057285.46, "ns per ops": 0.83, "Ops per threads": 503429489.0, "Ops per procs": 503429489.0, "Ops/sec/procs": 16778573.41, "ns per ops/procs": 59.6}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30020.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 40879516.0, "Ops per second": 1361717.8, "ns per ops": 734.37, "Ops per threads": 851656.0, "Ops per procs": 851656.0, "Ops/sec/procs": 28369.12, "ns per ops/procs": 35249.59}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 242264383.0, "Ops per second": 8075479.0, "ns per ops": 124.0, "Ops per threads": 1261793.0, "Ops per procs": 1261793.0, "Ops/sec/procs": 42059.0, "ns per ops/procs": 23852.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 765241141.0, "Ops per second": 25508038.0, "ns per ops": 39.0, "Ops per threads": 15942523.0, "Ops per procs": 15942523.0, "Ops/sec/procs": 531417.0, "ns per ops/procs": 1887.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30039.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 80819318854.0, "Ops per second": 2690449627.18, "ns per ops": 0.37, "Ops per threads": 420933952.0, "Ops per procs": 420933952.0, "Ops/sec/procs": 14012758.47, "ns per ops/procs": 71.36}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1332124468.0, "Ops per second": 44404148.93, "ns per ops": 22.54, "Ops per threads": 13876296.0, "Ops per procs": 13876296.0, "Ops/sec/procs": 462543.22, "ns per ops/procs": 2163.73}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30021.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41158601.0, "Ops per second": 1370980.41, "ns per ops": 729.41, "Ops per threads": 857470.0, "Ops per procs": 857470.0, "Ops/sec/procs": 28562.09, "ns per ops/procs": 35011.44}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30033.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 21819025.0, "Ops per second": 726496.38, "ns per ops": 1376.47, "Ops per threads": 303042.0, "Ops per procs": 303042.0, "Ops/sec/procs": 10090.23, "ns per ops/procs": 99105.79}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 381725118.0, "Ops per second": 12724170.6, "ns per ops": 78.74, "Ops per threads": 95431279.0, "Ops per procs": 95431279.0, "Ops/sec/procs": 3181042.65, "ns per ops/procs": 314.95}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 502987252.0, "Ops per second": 16766241.0, "ns per ops": 59.0, "Ops per threads": 251493626.0, "Ops per procs": 251493626.0, "Ops/sec/procs": 8383120.0, "ns per ops/procs": 119.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30024.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1774927754.0, "Ops per second": 59115235.59, "ns per ops": 16.92, "Ops per threads": 887463877.0, "Ops per procs": 887463877.0, "Ops/sec/procs": 29557617.8, "ns per ops/procs": 33.83}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 42439912.0, "Ops per second": 1414295.05, "ns per ops": 707.07, "Ops per threads": 1768329.0, "Ops per procs": 1768329.0, "Ops/sec/procs": 58928.96, "ns per ops/procs": 16969.58}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 695135177.0, "Ops per second": 23171172.57, "ns per ops": 43.27, "Ops per threads": 43445948.0, "Ops per procs": 43445948.0, "Ops/sec/procs": 1448198.29, "ns per ops/procs": 692.31}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30015.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 16348225.0, "Ops per second": 544656.1, "ns per ops": 1836.02, "Ops per threads": 85147.0, "Ops per procs": 85147.0, "Ops/sec/procs": 2836.75, "ns per ops/procs": 352516.02}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1389241838.0, "Ops per second": 46308061.27, "ns per ops": 21.63, "Ops per threads": 14471269.0, "Ops per procs": 14471269.0, "Ops/sec/procs": 482375.64, "ns per ops/procs": 2076.11}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 78809696.0, "Ops per second": 2626688.73, "ns per ops": 380.71, "Ops per threads": 9851212.0, "Ops per procs": 9851212.0, "Ops/sec/procs": 328336.09, "ns per ops/procs": 3045.66}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 409626256.0, "Ops per second": 13654208.0, "ns per ops": 73.0, "Ops per threads": 5689253.0, "Ops per procs": 5689253.0, "Ops/sec/procs": 189641.0, "ns per ops/procs": 5290.0}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30009.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 355511006.0, "Ops per second": 11846693.09, "ns per ops": 84.41, "Ops per threads": 177755503.0, "Ops per procs": 177755503.0, "Ops/sec/procs": 5923346.54, "ns per ops/procs": 168.82}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 36063966964.0, "Ops per second": 1201975754.72, "ns per ops": 0.83, "Ops per threads": 500888430.0, "Ops per procs": 500888430.0, "Ops/sec/procs": 16694107.7, "ns per ops/procs": 59.9}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1776649613.0, "Ops per second": 59174924.93, "ns per ops": 16.9, "Ops per threads": 888324806.0, "Ops per procs": 888324806.0, "Ops/sec/procs": 29587462.46, "ns per ops/procs": 33.8}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 273613234.0, "Ops per second": 9120441.0, "ns per ops": 110.0, "Ops per threads": 273613234.0, "Ops per procs": 273613234.0, "Ops/sec/procs": 9120441.0, "ns per ops/procs": 110.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30020.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 82646608444.0, "Ops per second": 2753046449.31, "ns per ops": 0.36, "Ops per threads": 430451085.0, "Ops per procs": 430451085.0, "Ops/sec/procs": 14338783.59, "ns per ops/procs": 69.74}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1193775714.0, "Ops per second": 39792523.0, "ns per ops": 25.0, "Ops per threads": 24870327.0, "Ops per procs": 24870327.0, "Ops/sec/procs": 829010.0, "ns per ops/procs": 1210.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1775673154.0, "Ops per second": 59142695.83, "ns per ops": 16.91, "Ops per threads": 887836577.0, "Ops per procs": 887836577.0, "Ops/sec/procs": 29571347.92, "ns per ops/procs": 33.82}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 704100677.0, "Ops per second": 23470022.57, "ns per ops": 42.72, "Ops per threads": 44006292.0, "Ops per procs": 44006292.0, "Ops/sec/procs": 1466876.41, "ns per ops/procs": 683.48}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 890389999.0, "Ops per second": 29657673.94, "ns per ops": 33.72, "Ops per threads": 890389999.0, "Ops per procs": 890389999.0, "Ops/sec/procs": 29657673.94, "ns per ops/procs": 33.72}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 531303989.0, "Ops per second": 17710132.97, "ns per ops": 56.58, "Ops per threads": 66412998.0, "Ops per procs": 66412998.0, "Ops/sec/procs": 2213766.62, "ns per ops/procs": 452.62}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 174426599.0, "Ops per second": 5813712.29, "ns per ops": 172.01, "Ops per threads": 43606649.0, "Ops per procs": 43606649.0, "Ops/sec/procs": 1453428.07, "ns per ops/procs": 688.03}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6545518838.0, "Ops per second": 218017307.43, "ns per ops": 4.59, "Ops per threads": 818189854.0, "Ops per procs": 818189854.0, "Ops/sec/procs": 27252163.43, "ns per ops/procs": 36.69}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 81890729.0, "Ops per second": 2729387.58, "ns per ops": 366.38, "Ops per threads": 10236341.0, "Ops per procs": 10236341.0, "Ops/sec/procs": 341173.45, "ns per ops/procs": 2931.06}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 237773575.0, "Ops per second": 7925785.0, "ns per ops": 126.0, "Ops per threads": 1238404.0, "Ops per procs": 1238404.0, "Ops/sec/procs": 41280.0, "ns per ops/procs": 24303.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 531303622.0, "Ops per second": 17710120.73, "ns per ops": 56.58, "Ops per threads": 66412952.0, "Ops per procs": 66412952.0, "Ops/sec/procs": 2213765.09, "ns per ops/procs": 452.64}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 61006310436.0, "Ops per second": 2033154085.57, "ns per ops": 0.49, "Ops per threads": 423654933.0, "Ops per procs": 423654933.0, "Ops/sec/procs": 14119125.59, "ns per ops/procs": 70.83}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40225893481.0, "Ops per second": 1340671875.22, "ns per ops": 0.75, "Ops per threads": 419019723.0, "Ops per procs": 419019723.0, "Ops/sec/procs": 13965332.03, "ns per ops/procs": 71.61}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3749375848.0, "Ops per second": 124979194.0, "ns per ops": 8.0, "Ops per threads": 156223993.0, "Ops per procs": 156223993.0, "Ops/sec/procs": 5207466.0, "ns per ops/procs": 192.0}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30032.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 23815098.0, "Ops per second": 792989.61, "ns per ops": 1261.05, "Ops per threads": 330765.0, "Ops per procs": 330765.0, "Ops/sec/procs": 11013.74, "ns per ops/procs": 90795.64}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12306292168.0, "Ops per second": 409841491.6, "ns per ops": 2.44, "Ops per threads": 769143260.0, "Ops per procs": 769143260.0, "Ops/sec/procs": 25615093.22, "ns per ops/procs": 39.04}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1160728481.0, "Ops per second": 38690949.37, "ns per ops": 25.89, "Ops per threads": 24181843.0, "Ops per procs": 24181843.0, "Ops/sec/procs": 806061.45, "ns per ops/procs": 1242.75}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30031.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 23045610.0, "Ops per second": 767393.47, "ns per ops": 1303.11, "Ops per threads": 320077.0, "Ops per procs": 320077.0, "Ops/sec/procs": 10658.24, "ns per ops/procs": 93824.1}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2418487606.0, "Ops per second": 80616253.53, "ns per ops": 12.43, "Ops per threads": 12596289.0, "Ops per procs": 12596289.0, "Ops/sec/procs": 419876.32, "ns per ops/procs": 2385.75}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 957727191.0, "Ops per second": 31924239.7, "ns per ops": 31.33, "Ops per threads": 13301766.0, "Ops per procs": 13301766.0, "Ops/sec/procs": 443392.22, "ns per ops/procs": 2255.56}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30082.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 18603557.0, "Ops per second": 618418.07, "ns per ops": 1617.03, "Ops per threads": 129191.0, "Ops per procs": 129191.0, "Ops/sec/procs": 4294.57, "ns per ops/procs": 232852.19}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 174561461.0, "Ops per second": 5818207.17, "ns per ops": 171.87, "Ops per threads": 43640365.0, "Ops per procs": 43640365.0, "Ops/sec/procs": 1454551.79, "ns per ops/procs": 687.5}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1173130857.0, "Ops per second": 39104361.0, "ns per ops": 25.0, "Ops per threads": 146641357.0, "Ops per procs": 146641357.0, "Ops/sec/procs": 4888045.0, "ns per ops/procs": 205.0}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 174495525.0, "Ops per second": 5816047.53, "ns per ops": 171.94, "Ops per threads": 43623881.0, "Ops per procs": 43623881.0, "Ops/sec/procs": 1454011.88, "ns per ops/procs": 687.75}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30007.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20248782161.0, "Ops per second": 674789936.04, "ns per ops": 1.48, "Ops per threads": 421849628.0, "Ops per procs": 421849628.0, "Ops/sec/procs": 14058123.67, "ns per ops/procs": 71.13}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30100.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 238985015.0, "Ops per second": 7966167.0, "ns per ops": 125.0, "Ops per threads": 1244713.0, "Ops per procs": 1244713.0, "Ops/sec/procs": 41490.0, "ns per ops/procs": 24182.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20579498891.0, "Ops per second": 685877923.96, "ns per ops": 1.46, "Ops per threads": 428739560.0, "Ops per procs": 428739560.0, "Ops/sec/procs": 14289123.42, "ns per ops/procs": 69.98}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30056.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 21755876.0, "Ops per second": 723843.54, "ns per ops": 1381.51, "Ops per threads": 226623.0, "Ops per procs": 226623.0, "Ops/sec/procs": 7540.04, "ns per ops/procs": 132625.35}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 2022419353.0, "Ops per second": 67413978.43, "ns per ops": 14.83, "Ops per threads": 14044578.0, "Ops per procs": 14044578.0, "Ops/sec/procs": 468152.63, "ns per ops/procs": 2136.17}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 274167645.0, "Ops per second": 9138921.0, "ns per ops": 109.0, "Ops per threads": 274167645.0, "Ops per procs": 274167645.0, "Ops/sec/procs": 9138921.0, "ns per ops/procs": 109.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 273408767.0, "Ops per second": 9113625.0, "ns per ops": 110.0, "Ops per threads": 273408767.0, "Ops per procs": 273408767.0, "Ops/sec/procs": 9113625.0, "ns per ops/procs": 110.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 273320398.0, "Ops per second": 9110679.0, "ns per ops": 110.0, "Ops per threads": 273320398.0, "Ops per procs": 273320398.0, "Ops/sec/procs": 9110679.0, "ns per ops/procs": 110.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 2118219103.0, "Ops per second": 70607303.43, "ns per ops": 14.18, "Ops per threads": 14709854.0, "Ops per procs": 14709854.0, "Ops/sec/procs": 490328.5, "ns per ops/procs": 2042.56}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 500144143.0, "Ops per second": 16671471.0, "ns per ops": 60.0, "Ops per threads": 250072071.0, "Ops per procs": 250072071.0, "Ops/sec/procs": 8335735.0, "ns per ops/procs": 120.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30030.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 81615394439.0, "Ops per second": 2717795093.69, "ns per ops": 0.37, "Ops per threads": 425080179.0, "Ops per procs": 425080179.0, "Ops/sec/procs": 14155182.78, "ns per ops/procs": 70.65}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 379353634.0, "Ops per second": 12645121.13, "ns per ops": 79.23, "Ops per threads": 94838408.0, "Ops per procs": 94838408.0, "Ops/sec/procs": 3161280.28, "ns per ops/procs": 316.91}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30048.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 21389907.0, "Ops per second": 711850.28, "ns per ops": 1404.79, "Ops per threads": 222811.0, "Ops per procs": 222811.0, "Ops/sec/procs": 7415.11, "ns per ops/procs": 134859.82}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3444065143.0, "Ops per second": 114802171.0, "ns per ops": 8.0, "Ops per threads": 215254071.0, "Ops per procs": 215254071.0, "Ops/sec/procs": 7175135.0, "ns per ops/procs": 139.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 2070830134.0, "Ops per second": 69027671.13, "ns per ops": 14.53, "Ops per threads": 14380764.0, "Ops per procs": 14380764.0, "Ops/sec/procs": 479358.83, "ns per ops/procs": 2092.25}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 379567633.0, "Ops per second": 12652254.0, "ns per ops": 79.0, "Ops per threads": 5271772.0, "Ops per procs": 5271772.0, "Ops/sec/procs": 175725.0, "ns per ops/procs": 5709.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 326529542.0, "Ops per second": 10884318.07, "ns per ops": 92.03, "Ops per threads": 163264771.0, "Ops per procs": 163264771.0, "Ops/sec/procs": 5442159.03, "ns per ops/procs": 184.06}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 890751530.0, "Ops per second": 29669253.25, "ns per ops": 33.7, "Ops per threads": 890751530.0, "Ops per procs": 890751530.0, "Ops/sec/procs": 29669253.25, "ns per ops/procs": 33.7}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 50471064.0, "Ops per second": 1682036.43, "ns per ops": 594.52, "Ops per threads": 3154441.0, "Ops per procs": 3154441.0, "Ops/sec/procs": 105127.28, "ns per ops/procs": 9512.28}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30020.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 16126200.0, "Ops per second": 537170.11, "ns per ops": 1861.61, "Ops per threads": 83990.0, "Ops per procs": 83990.0, "Ops/sec/procs": 2797.76, "ns per ops/procs": 357428.67}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 49543458.0, "Ops per second": 1651133.1, "ns per ops": 605.64, "Ops per threads": 3096466.0, "Ops per procs": 3096466.0, "Ops/sec/procs": 103195.82, "ns per ops/procs": 9690.32}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12296210730.0, "Ops per second": 409512541.44, "ns per ops": 2.44, "Ops per threads": 768513170.0, "Ops per procs": 768513170.0, "Ops/sec/procs": 25594533.84, "ns per ops/procs": 39.07}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1152573305.0, "Ops per second": 38419110.17, "ns per ops": 26.07, "Ops per threads": 24011943.0, "Ops per procs": 24011943.0, "Ops/sec/procs": 800398.13, "ns per ops/procs": 1251.41}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 48210996.0, "Ops per second": 1606716.17, "ns per ops": 622.39, "Ops per threads": 3013187.0, "Ops per procs": 3013187.0, "Ops/sec/procs": 100419.76, "ns per ops/procs": 9958.2}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1183351473.0, "Ops per second": 39445049.0, "ns per ops": 25.0, "Ops per threads": 147918934.0, "Ops per procs": 147918934.0, "Ops/sec/procs": 4930631.0, "ns per ops/procs": 203.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30022.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 889816582.0, "Ops per second": 29638582.86, "ns per ops": 33.74, "Ops per threads": 889816582.0, "Ops per procs": 889816582.0, "Ops/sec/procs": 29638582.86, "ns per ops/procs": 33.74}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16123063532.0, "Ops per second": 537385169.3, "ns per ops": 1.86, "Ops per threads": 671794313.0, "Ops per procs": 671794313.0, "Ops/sec/procs": 22391048.72, "ns per ops/procs": 44.66}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 521242541.0, "Ops per second": 17374751.37, "ns per ops": 57.67, "Ops per threads": 65155317.0, "Ops per procs": 65155317.0, "Ops/sec/procs": 2171843.92, "ns per ops/procs": 461.4}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3385180274.0, "Ops per second": 112839342.0, "ns per ops": 8.0, "Ops per threads": 211573767.0, "Ops per procs": 211573767.0, "Ops/sec/procs": 7052458.0, "ns per ops/procs": 142.0}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30009.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 369480530.0, "Ops per second": 12311957.13, "ns per ops": 81.22, "Ops per threads": 184740265.0, "Ops per procs": 184740265.0, "Ops/sec/procs": 6155978.57, "ns per ops/procs": 162.44}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1382805332.0, "Ops per second": 46093511.07, "ns per ops": 21.75, "Ops per threads": 14404222.0, "Ops per procs": 14404222.0, "Ops/sec/procs": 480140.74, "ns per ops/procs": 2088.47}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1184710756.0, "Ops per second": 39490358.0, "ns per ops": 25.0, "Ops per threads": 148088844.0, "Ops per procs": 148088844.0, "Ops/sec/procs": 4936294.0, "ns per ops/procs": 203.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3359727702.0, "Ops per second": 111901052.58, "ns per ops": 8.94, "Ops per threads": 839931925.0, "Ops per procs": 839931925.0, "Ops/sec/procs": 27975263.15, "ns per ops/procs": 35.75}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 82715081086.0, "Ops per second": 2756659484.65, "ns per ops": 0.36, "Ops per threads": 430807713.0, "Ops per procs": 430807713.0, "Ops/sec/procs": 14357601.48, "ns per ops/procs": 69.65}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 1868741135.0, "Ops per second": 62291371.17, "ns per ops": 16.06, "Ops per threads": 12977368.0, "Ops per procs": 12977368.0, "Ops/sec/procs": 432578.97, "ns per ops/procs": 2312.56}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30081.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 17645216.0, "Ops per second": 586580.71, "ns per ops": 1704.8, "Ops per threads": 122536.0, "Ops per procs": 122536.0, "Ops/sec/procs": 4073.48, "ns per ops/procs": 245490.51}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12309109652.0, "Ops per second": 409939203.26, "ns per ops": 2.44, "Ops per threads": 769319353.0, "Ops per procs": 769319353.0, "Ops/sec/procs": 25621200.2, "ns per ops/procs": 39.03}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 502996240.0, "Ops per second": 16766541.0, "ns per ops": 59.0, "Ops per threads": 251498120.0, "Ops per procs": 251498120.0, "Ops/sec/procs": 8383270.0, "ns per ops/procs": 119.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 962326289.0, "Ops per second": 32077542.0, "ns per ops": 31.0, "Ops per threads": 240581572.0, "Ops per procs": 240581572.0, "Ops/sec/procs": 8019385.0, "ns per ops/procs": 125.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 238061139.0, "Ops per second": 7935371.3, "ns per ops": 126.23, "Ops per threads": 238061139.0, "Ops per procs": 238061139.0, "Ops/sec/procs": 7935371.3, "ns per ops/procs": 126.23}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 2029644255.0, "Ops per second": 67654808.5, "ns per ops": 14.8, "Ops per threads": 14094751.0, "Ops per procs": 14094751.0, "Ops/sec/procs": 469825.06, "ns per ops/procs": 2130.58}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 981719760.0, "Ops per second": 32723992.0, "ns per ops": 30.6, "Ops per threads": 13634996.0, "Ops per procs": 13634996.0, "Ops/sec/procs": 454499.89, "ns per ops/procs": 2202.88}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3431947123.0, "Ops per second": 114398237.0, "ns per ops": 8.0, "Ops per threads": 214496695.0, "Ops per procs": 214496695.0, "Ops/sec/procs": 7149889.0, "ns per ops/procs": 140.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20203249068.0, "Ops per second": 673339997.22, "ns per ops": 1.49, "Ops per threads": 420901022.0, "Ops per procs": 420901022.0, "Ops/sec/procs": 14027916.61, "ns per ops/procs": 71.29}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30011.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 60668652182.0, "Ops per second": 2021484078.04, "ns per ops": 0.49, "Ops per threads": 421310084.0, "Ops per procs": 421310084.0, "Ops/sec/procs": 14038083.88, "ns per ops/procs": 71.23}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30015.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 16702950.0, "Ops per second": 556479.07, "ns per ops": 1797.01, "Ops per threads": 86994.0, "Ops per procs": 86994.0, "Ops/sec/procs": 2898.33, "ns per ops/procs": 345026.45}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 327745331.0, "Ops per second": 10924844.0, "ns per ops": 91.0, "Ops per threads": 2276009.0, "Ops per procs": 2276009.0, "Ops/sec/procs": 75866.0, "ns per ops/procs": 13223.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30020.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 887917201.0, "Ops per second": 29577248.45, "ns per ops": 33.81, "Ops per threads": 887917201.0, "Ops per procs": 887917201.0, "Ops/sec/procs": 29577248.45, "ns per ops/procs": 33.81}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30076.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 18712387.0, "Ops per second": 622156.73, "ns per ops": 1607.31, "Ops per threads": 129947.0, "Ops per procs": 129947.0, "Ops/sec/procs": 4320.53, "ns per ops/procs": 231452.93}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 532914059.0, "Ops per second": 17763801.97, "ns per ops": 56.41, "Ops per threads": 66614257.0, "Ops per procs": 66614257.0, "Ops/sec/procs": 2220475.25, "ns per ops/procs": 451.25}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 249383256.0, "Ops per second": 8312775.0, "ns per ops": 120.0, "Ops per threads": 1298871.0, "Ops per procs": 1298871.0, "Ops/sec/procs": 43295.0, "ns per ops/procs": 23171.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 328564086.0, "Ops per second": 10952136.2, "ns per ops": 91.46, "Ops per threads": 164282043.0, "Ops per procs": 164282043.0, "Ops/sec/procs": 5476068.1, "ns per ops/procs": 182.92}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1213881441.0, "Ops per second": 40462714.0, "ns per ops": 24.0, "Ops per threads": 25289196.0, "Ops per procs": 25289196.0, "Ops/sec/procs": 842973.0, "ns per ops/procs": 1190.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 734610415.0, "Ops per second": 24487013.83, "ns per ops": 40.87, "Ops per threads": 30608767.0, "Ops per procs": 30608767.0, "Ops/sec/procs": 1020292.24, "ns per ops/procs": 980.76}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 237606973.0, "Ops per second": 7920232.43, "ns per ops": 126.47, "Ops per threads": 237606973.0, "Ops per procs": 237606973.0, "Ops/sec/procs": 7920232.43, "ns per ops/procs": 126.47}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30004.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 35733770062.0, "Ops per second": 1190951814.74, "ns per ops": 0.84, "Ops per threads": 496302361.0, "Ops per procs": 496302361.0, "Ops/sec/procs": 16540997.43, "ns per ops/procs": 60.46}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 995724709.0, "Ops per second": 33190823.63, "ns per ops": 30.19, "Ops per threads": 13829509.0, "Ops per procs": 13829509.0, "Ops/sec/procs": 460983.66, "ns per ops/procs": 2173.94}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30004.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 61628879596.0, "Ops per second": 2053972688.7, "ns per ops": 0.49, "Ops per threads": 427978330.0, "Ops per procs": 427978330.0, "Ops/sec/procs": 14263699.23, "ns per ops/procs": 70.11}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30076.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 18965050.0, "Ops per second": 630562.45, "ns per ops": 1585.89, "Ops per threads": 131701.0, "Ops per procs": 131701.0, "Ops/sec/procs": 4378.91, "ns per ops/procs": 228367.55}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30076.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 19923076.0, "Ops per second": 662414.33, "ns per ops": 1509.63, "Ops per threads": 138354.0, "Ops per procs": 138354.0, "Ops/sec/procs": 4600.1, "ns per ops/procs": 217386.6}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 36289262638.0, "Ops per second": 1209493305.18, "ns per ops": 0.83, "Ops per threads": 504017536.0, "Ops per procs": 504017536.0, "Ops/sec/procs": 16798518.13, "ns per ops/procs": 59.53}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30011.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 370811148.0, "Ops per second": 12355617.38, "ns per ops": 80.93, "Ops per threads": 185405574.0, "Ops per procs": 185405574.0, "Ops/sec/procs": 6177808.69, "ns per ops/procs": 161.87}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 371421804.0, "Ops per second": 12380726.0, "ns per ops": 81.0, "Ops per threads": 3868977.0, "Ops per procs": 3868977.0, "Ops/sec/procs": 128965.0, "ns per ops/procs": 7779.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 275609630.0, "Ops per second": 9186987.0, "ns per ops": 109.0, "Ops per threads": 1913955.0, "Ops per procs": 1913955.0, "Ops/sec/procs": 63798.0, "ns per ops/procs": 15725.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1169420060.0, "Ops per second": 38980668.67, "ns per ops": 25.7, "Ops per threads": 24362917.0, "Ops per procs": 24362917.0, "Ops/sec/procs": 812097.26, "ns per ops/procs": 1233.56}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20203700999.0, "Ops per second": 673355580.16, "ns per ops": 1.49, "Ops per threads": 420910437.0, "Ops per procs": 420910437.0, "Ops/sec/procs": 14028241.25, "ns per ops/procs": 71.28}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 954200118.0, "Ops per second": 31806670.6, "ns per ops": 31.48, "Ops per threads": 13252779.0, "Ops per procs": 13252779.0, "Ops/sec/procs": 441759.31, "ns per ops/procs": 2266.76}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30078.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 19171207.0, "Ops per second": 637379.12, "ns per ops": 1568.92, "Ops per threads": 133133.0, "Ops per procs": 133133.0, "Ops/sec/procs": 4426.24, "ns per ops/procs": 225925.19}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16129219825.0, "Ops per second": 537591184.22, "ns per ops": 1.86, "Ops per threads": 672050826.0, "Ops per procs": 672050826.0, "Ops/sec/procs": 22399632.68, "ns per ops/procs": 44.64}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 170932506.0, "Ops per second": 5697270.9, "ns per ops": 175.52, "Ops per threads": 42733126.0, "Ops per procs": 42733126.0, "Ops/sec/procs": 1424317.72, "ns per ops/procs": 702.09}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12299929004.0, "Ops per second": 409633650.09, "ns per ops": 2.44, "Ops per threads": 768745562.0, "Ops per procs": 768745562.0, "Ops/sec/procs": 25602103.13, "ns per ops/procs": 39.06}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 377732229.0, "Ops per second": 12591074.3, "ns per ops": 79.57, "Ops per threads": 94433057.0, "Ops per procs": 94433057.0, "Ops/sec/procs": 3147768.58, "ns per ops/procs": 318.28}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16120558283.0, "Ops per second": 537303998.4, "ns per ops": 1.86, "Ops per threads": 671689928.0, "Ops per procs": 671689928.0, "Ops/sec/procs": 22387666.6, "ns per ops/procs": 44.67}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40207830812.0, "Ops per second": 1340033754.8, "ns per ops": 0.75, "Ops per threads": 418831570.0, "Ops per procs": 418831570.0, "Ops/sec/procs": 13958684.95, "ns per ops/procs": 71.64}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 238379230.0, "Ops per second": 7945974.33, "ns per ops": 126.06, "Ops per threads": 238379230.0, "Ops per procs": 238379230.0, "Ops/sec/procs": 7945974.33, "ns per ops/procs": 126.06}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2279849630.0, "Ops per second": 75994987.67, "ns per ops": 13.19, "Ops per threads": 11874216.0, "Ops per procs": 11874216.0, "Ops/sec/procs": 395807.23, "ns per ops/procs": 2533.38}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3729361781.0, "Ops per second": 124312059.0, "ns per ops": 8.0, "Ops per threads": 155390074.0, "Ops per procs": 155390074.0, "Ops/sec/procs": 5179669.0, "ns per ops/procs": 193.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30023.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6548784160.0, "Ops per second": 218123552.32, "ns per ops": 4.58, "Ops per threads": 818598020.0, "Ops per procs": 818598020.0, "Ops/sec/procs": 27265444.04, "ns per ops/procs": 36.68}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1219832040.0, "Ops per second": 40661068.0, "ns per ops": 24.0, "Ops per threads": 25413167.0, "Ops per procs": 25413167.0, "Ops/sec/procs": 847105.0, "ns per ops/procs": 1184.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40404458473.0, "Ops per second": 1346603321.5, "ns per ops": 0.74, "Ops per threads": 420879775.0, "Ops per procs": 420879775.0, "Ops/sec/procs": 14027117.93, "ns per ops/procs": 71.29}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1174515056.0, "Ops per second": 39150501.0, "ns per ops": 25.0, "Ops per threads": 146814382.0, "Ops per procs": 146814382.0, "Ops/sec/procs": 4893812.0, "ns per ops/procs": 205.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12302667751.0, "Ops per second": 409723290.18, "ns per ops": 2.44, "Ops per threads": 768916734.0, "Ops per procs": 768916734.0, "Ops/sec/procs": 25607705.64, "ns per ops/procs": 39.05}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 50257627.0, "Ops per second": 1674948.98, "ns per ops": 597.03, "Ops per threads": 3141101.0, "Ops per procs": 3141101.0, "Ops/sec/procs": 104684.31, "ns per ops/procs": 9552.53}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12307510045.0, "Ops per second": 409886376.88, "ns per ops": 2.44, "Ops per threads": 769219377.0, "Ops per procs": 769219377.0, "Ops/sec/procs": 25617898.56, "ns per ops/procs": 39.04}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 81570219580.0, "Ops per second": 2718536861.12, "ns per ops": 0.37, "Ops per threads": 424844893.0, "Ops per procs": 424844893.0, "Ops/sec/procs": 14159046.15, "ns per ops/procs": 70.63}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 274089555.0, "Ops per second": 9136318.0, "ns per ops": 109.0, "Ops per threads": 274089555.0, "Ops per procs": 274089555.0, "Ops/sec/procs": 9136318.0, "ns per ops/procs": 109.0}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30010.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 373040681.0, "Ops per second": 12430543.61, "ns per ops": 80.45, "Ops per threads": 186520340.0, "Ops per procs": 186520340.0, "Ops/sec/procs": 6215271.8, "ns per ops/procs": 160.89}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1161090246.0, "Ops per second": 38703008.2, "ns per ops": 25.88, "Ops per threads": 24189380.0, "Ops per procs": 24189380.0, "Ops/sec/procs": 806312.67, "ns per ops/procs": 1242.37}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30032.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 23384424.0, "Ops per second": 778624.81, "ns per ops": 1284.32, "Ops per threads": 324783.0, "Ops per procs": 324783.0, "Ops/sec/procs": 10814.23, "ns per ops/procs": 92470.72}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30030.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 60723622931.0, "Ops per second": 2022066714.02, "ns per ops": 0.49, "Ops per threads": 421691825.0, "Ops per procs": 421691825.0, "Ops/sec/procs": 14042129.96, "ns per ops/procs": 71.21}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 50465233.0, "Ops per second": 1681844.42, "ns per ops": 594.59, "Ops per threads": 3154077.0, "Ops per procs": 3154077.0, "Ops/sec/procs": 105115.28, "ns per ops/procs": 9513.37}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6548802705.0, "Ops per second": 218126645.96, "ns per ops": 4.58, "Ops per threads": 818600338.0, "Ops per procs": 818600338.0, "Ops/sec/procs": 27265830.75, "ns per ops/procs": 36.68}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 80533481901.0, "Ops per second": 2683963177.18, "ns per ops": 0.37, "Ops per threads": 419445218.0, "Ops per procs": 419445218.0, "Ops/sec/procs": 13978974.88, "ns per ops/procs": 71.54}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 81962152799.0, "Ops per second": 2731588527.93, "ns per ops": 0.37, "Ops per threads": 426886212.0, "Ops per procs": 426886212.0, "Ops/sec/procs": 14227023.58, "ns per ops/procs": 70.29}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 80620004.0, "Ops per second": 2687014.58, "ns per ops": 372.16, "Ops per threads": 10077500.0, "Ops per procs": 10077500.0, "Ops/sec/procs": 335876.82, "ns per ops/procs": 2977.28}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30003.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 36350491505.0, "Ops per second": 1211526057.59, "ns per ops": 0.83, "Ops per threads": 504867937.0, "Ops per procs": 504867937.0, "Ops/sec/procs": 16826750.8, "ns per ops/procs": 59.43}],["rdq-yield-fibre", "./rdq-yield-fibre -p 1 -d 30 -t 1", {"Duration (ms)": 30023.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 891090667.0, "Ops per second": 29679429.79, "ns per ops": 33.69, "Ops per threads": 891090667.0, "Ops per procs": 891090667.0, "Ops/sec/procs": 29679429.79, "ns per ops/procs": 33.69}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 1796870976.0, "Ops per second": 59895699.2, "ns per ops": 16.72, "Ops per threads": 12478270.0, "Ops per procs": 12478270.0, "Ops/sec/procs": 415942.36, "ns per ops/procs": 2407.95}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3774729287.0, "Ops per second": 125824309.0, "ns per ops": 7.0, "Ops per threads": 157280386.0, "Ops per procs": 157280386.0, "Ops/sec/procs": 5242679.0, "ns per ops/procs": 191.0}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30035.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 22601781.0, "Ops per second": 752501.27, "ns per ops": 1328.9, "Ops per threads": 313913.0, "Ops per procs": 313913.0, "Ops/sec/procs": 10451.41, "ns per ops/procs": 95680.9}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 245713714.0, "Ops per second": 8190457.0, "ns per ops": 122.0, "Ops per threads": 1279758.0, "Ops per procs": 1279758.0, "Ops/sec/procs": 42658.0, "ns per ops/procs": 23518.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1770587430.0, "Ops per second": 58973071.78, "ns per ops": 16.96, "Ops per threads": 885293715.0, "Ops per procs": 885293715.0, "Ops/sec/procs": 29486535.89, "ns per ops/procs": 33.91}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 277533293.0, "Ops per second": 9251109.0, "ns per ops": 108.0, "Ops per threads": 1927314.0, "Ops per procs": 1927314.0, "Ops/sec/procs": 64243.0, "ns per ops/procs": 15616.0}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30049.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 22074260.0, "Ops per second": 734586.11, "ns per ops": 1361.31, "Ops per threads": 229940.0, "Ops per procs": 229940.0, "Ops/sec/procs": 7651.94, "ns per ops/procs": 130685.84}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 174751034.0, "Ops per second": 5824573.05, "ns per ops": 171.69, "Ops per threads": 43687758.0, "Ops per procs": 43687758.0, "Ops/sec/procs": 1456143.26, "ns per ops/procs": 686.75}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30049.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 23944893.0, "Ops per second": 796836.21, "ns per ops": 1254.96, "Ops per threads": 249425.0, "Ops per procs": 249425.0, "Ops/sec/procs": 8300.38, "ns per ops/procs": 120476.45}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1171974525.0, "Ops per second": 39065817.5, "ns per ops": 25.66, "Ops per threads": 24416135.0, "Ops per procs": 24416135.0, "Ops/sec/procs": 813871.2, "ns per ops/procs": 1231.66}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 255154695.0, "Ops per second": 8504816.84, "ns per ops": 117.58, "Ops per threads": 255154695.0, "Ops per procs": 255154695.0, "Ops/sec/procs": 8504816.84, "ns per ops/procs": 117.58}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1774632957.0, "Ops per second": 59107981.34, "ns per ops": 16.92, "Ops per threads": 887316478.0, "Ops per procs": 887316478.0, "Ops/sec/procs": 29553990.67, "ns per ops/procs": 33.84}],["rdq-yield-tokio", "./rdq-yield-tokio -p 192 -d 30 -t 192", {"Duration (ms)": 30098.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 243905722.0, "Ops per second": 8130190.0, "ns per ops": 123.0, "Ops per threads": 1270342.0, "Ops per procs": 1270342.0, "Ops/sec/procs": 42344.0, "ns per ops/procs": 23693.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 774762764.0, "Ops per second": 25825425.0, "ns per ops": 38.0, "Ops per threads": 16140890.0, "Ops per procs": 16140890.0, "Ops/sec/procs": 538029.0, "ns per ops/procs": 1864.0}],["rdq-yield-go", "./rdq-yield-go -p 1 -d 30 -t 1", {"Duration (ms)": 30001.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 254608045.0, "Ops per second": 8486592.95, "ns per ops": 117.83, "Ops per threads": 254608045.0, "Ops per procs": 254608045.0, "Ops/sec/procs": 8486592.95, "ns per ops/procs": 117.83}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16125063037.0, "Ops per second": 537455946.52, "ns per ops": 1.86, "Ops per threads": 671877626.0, "Ops per procs": 671877626.0, "Ops/sec/procs": 22393997.77, "ns per ops/procs": 44.65}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30036.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 20643005.0, "Ops per second": 687254.32, "ns per ops": 1455.07, "Ops per threads": 286708.0, "Ops per procs": 286708.0, "Ops/sec/procs": 9545.2, "ns per ops/procs": 104764.71}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40506295310.0, "Ops per second": 1350010754.12, "ns per ops": 0.74, "Ops per threads": 421940576.0, "Ops per procs": 421940576.0, "Ops/sec/procs": 14062612.02, "ns per ops/procs": 71.11}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 390866582.0, "Ops per second": 13028886.0, "ns per ops": 77.0, "Ops per threads": 4071526.0, "Ops per procs": 4071526.0, "Ops/sec/procs": 135717.0, "ns per ops/procs": 7392.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3809163774.0, "Ops per second": 126972125.0, "ns per ops": 7.0, "Ops per threads": 158715157.0, "Ops per procs": 158715157.0, "Ops/sec/procs": 5290505.0, "ns per ops/procs": 189.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 8 -d 30 -t 8", {"Duration (ms)": 30097.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 1170675486.0, "Ops per second": 39022516.0, "ns per ops": 25.0, "Ops per threads": 146334435.0, "Ops per procs": 146334435.0, "Ops/sec/procs": 4877814.0, "ns per ops/procs": 205.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 375686385.0, "Ops per second": 12522879.0, "ns per ops": 80.0, "Ops per threads": 2608933.0, "Ops per procs": 2608933.0, "Ops/sec/procs": 86964.0, "ns per ops/procs": 11536.0}],["rdq-yield-go", "./rdq-yield-go -p 72 -d 30 -t 72", {"Duration (ms)": 30033.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 22374358.0, "Ops per second": 744982.97, "ns per ops": 1342.31, "Ops per threads": 310754.0, "Ops per procs": 310754.0, "Ops/sec/procs": 10346.99, "ns per ops/procs": 96646.5}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 392570318.0, "Ops per second": 13085677.0, "ns per ops": 76.0, "Ops per threads": 5452365.0, "Ops per procs": 5452365.0, "Ops/sec/procs": 181745.0, "ns per ops/procs": 5520.0}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 50279346.0, "Ops per second": 1675644.74, "ns per ops": 596.79, "Ops per threads": 3142459.0, "Ops per procs": 3142459.0, "Ops/sec/procs": 104727.8, "ns per ops/procs": 9548.56}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3768065044.0, "Ops per second": 125602168.0, "ns per ops": 7.0, "Ops per threads": 157002710.0, "Ops per procs": 157002710.0, "Ops/sec/procs": 5233423.0, "ns per ops/procs": 191.0}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30029.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 15850717.0, "Ops per second": 527835.07, "ns per ops": 1894.53, "Ops per threads": 82555.0, "Ops per procs": 82555.0, "Ops/sec/procs": 2749.14, "ns per ops/procs": 363749.98}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30020.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41675700.0, "Ops per second": 1388226.26, "ns per ops": 720.34, "Ops per threads": 868243.0, "Ops per procs": 868243.0, "Ops/sec/procs": 28921.38, "ns per ops/procs": 34576.5}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 734897875.0, "Ops per second": 24496595.83, "ns per ops": 40.86, "Ops per threads": 30620744.0, "Ops per procs": 30620744.0, "Ops/sec/procs": 1020691.49, "ns per ops/procs": 980.75}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30005.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 82728752519.0, "Ops per second": 2757105721.8, "ns per ops": 0.36, "Ops per threads": 430878919.0, "Ops per procs": 430878919.0, "Ops/sec/procs": 14359925.63, "ns per ops/procs": 69.64}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30019.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 16478480.0, "Ops per second": 548929.06, "ns per ops": 1821.73, "Ops per threads": 85825.0, "Ops per procs": 85825.0, "Ops/sec/procs": 2859.01, "ns per ops/procs": 349771.97}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1293440944.0, "Ops per second": 43114698.13, "ns per ops": 23.24, "Ops per threads": 13473343.0, "Ops per procs": 13473343.0, "Ops/sec/procs": 449111.44, "ns per ops/procs": 2231.47}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30004.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 81661498.0, "Ops per second": 2721631.26, "ns per ops": 367.43, "Ops per threads": 10207687.0, "Ops per procs": 10207687.0, "Ops/sec/procs": 340203.91, "ns per ops/procs": 2939.41}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 1960168369.0, "Ops per second": 65338945.63, "ns per ops": 15.34, "Ops per threads": 13612280.0, "Ops per procs": 13612280.0, "Ops/sec/procs": 453742.68, "ns per ops/procs": 2209.1}],["rdq-yield-tokio", "./rdq-yield-tokio -p 24 -d 30 -t 24", {"Duration (ms)": 30097.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 3765507913.0, "Ops per second": 125516930.0, "ns per ops": 7.0, "Ops per threads": 156896163.0, "Ops per procs": 156896163.0, "Ops/sec/procs": 5229872.0, "ns per ops/procs": 191.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 192 -d 30 -t 192", {"Duration (ms)": 30067.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 83036308473.0, "Ops per second": 2761681866.55, "ns per ops": 0.36, "Ops per threads": 432480773.0, "Ops per procs": 432480773.0, "Ops/sec/procs": 14383759.72, "ns per ops/procs": 69.52}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12315497386.0, "Ops per second": 410150552.35, "ns per ops": 2.44, "Ops per threads": 769718586.0, "Ops per procs": 769718586.0, "Ops/sec/procs": 25634409.52, "ns per ops/procs": 39.01}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12304100575.0, "Ops per second": 409772087.55, "ns per ops": 2.44, "Ops per threads": 769006285.0, "Ops per procs": 769006285.0, "Ops/sec/procs": 25610755.47, "ns per ops/procs": 39.05}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3362465265.0, "Ops per second": 111992448.08, "ns per ops": 8.93, "Ops per threads": 840616316.0, "Ops per procs": 840616316.0, "Ops/sec/procs": 27998112.02, "ns per ops/procs": 35.72}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 276620952.0, "Ops per second": 9220698.0, "ns per ops": 108.0, "Ops per threads": 1920978.0, "Ops per procs": 1920978.0, "Ops/sec/procs": 64032.0, "ns per ops/procs": 15668.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12259652464.0, "Ops per second": 408291721.55, "ns per ops": 2.45, "Ops per threads": 766228279.0, "Ops per procs": 766228279.0, "Ops/sec/procs": 25518232.6, "ns per ops/procs": 39.19}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 735195431.0, "Ops per second": 24506514.37, "ns per ops": 40.84, "Ops per threads": 30633142.0, "Ops per procs": 30633142.0, "Ops/sec/procs": 1021104.77, "ns per ops/procs": 980.1}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 1762372728.0, "Ops per second": 58745757.6, "ns per ops": 17.03, "Ops per threads": 12238699.0, "Ops per procs": 12238699.0, "Ops/sec/procs": 407956.65, "ns per ops/procs": 2451.82}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 238205503.0, "Ops per second": 7940183.43, "ns per ops": 126.15, "Ops per threads": 238205503.0, "Ops per procs": 238205503.0, "Ops/sec/procs": 7940183.43, "ns per ops/procs": 126.15}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30097.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 273773706.0, "Ops per second": 9125790.0, "ns per ops": 109.0, "Ops per threads": 273773706.0, "Ops per procs": 273773706.0, "Ops/sec/procs": 9125790.0, "ns per ops/procs": 109.0}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30011.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 365464714.0, "Ops per second": 12177618.57, "ns per ops": 82.12, "Ops per threads": 182732357.0, "Ops per procs": 182732357.0, "Ops/sec/procs": 6088809.29, "ns per ops/procs": 164.24}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 41222872249.0, "Ops per second": 1373881145.98, "ns per ops": 0.73, "Ops per threads": 429404919.0, "Ops per procs": 429404919.0, "Ops/sec/procs": 14311261.94, "ns per ops/procs": 69.88}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30053.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 21820837.0, "Ops per second": 726076.7, "ns per ops": 1377.26, "Ops per threads": 227300.0, "Ops per procs": 227300.0, "Ops/sec/procs": 7563.3, "ns per ops/procs": 132217.44}],["rdq-yield-cfa", "./rdq-yield-cfa -p 48 -d 30 -t 48", {"Duration (ms)": 0.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1180102488.0, "Ops per second": 39336749.6, "ns per ops": 25.46, "Ops per threads": 24585468.0, "Ops per procs": 24585468.0, "Ops/sec/procs": 819515.62, "ns per ops/procs": 1222.29}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 389502485.0, "Ops per second": 12983416.0, "ns per ops": 77.0, "Ops per threads": 5409756.0, "Ops per procs": 5409756.0, "Ops/sec/procs": 180325.0, "ns per ops/procs": 5563.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12259461830.0, "Ops per second": 408287332.77, "ns per ops": 2.45, "Ops per threads": 766216364.0, "Ops per procs": 766216364.0, "Ops/sec/procs": 25517958.3, "ns per ops/procs": 39.19}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3428043429.0, "Ops per second": 114268114.0, "ns per ops": 8.0, "Ops per threads": 214252714.0, "Ops per procs": 214252714.0, "Ops/sec/procs": 7141757.0, "ns per ops/procs": 140.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6549072846.0, "Ops per second": 218136743.72, "ns per ops": 4.58, "Ops per threads": 818634105.0, "Ops per procs": 818634105.0, "Ops/sec/procs": 27267092.96, "ns per ops/procs": 36.67}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 333295365.0, "Ops per second": 11109845.5, "ns per ops": 90.17, "Ops per threads": 166647682.0, "Ops per procs": 166647682.0, "Ops/sec/procs": 5554922.75, "ns per ops/procs": 180.33}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 1979138187.0, "Ops per second": 65971272.9, "ns per ops": 15.19, "Ops per threads": 13744015.0, "Ops per procs": 13744015.0, "Ops/sec/procs": 458133.84, "ns per ops/procs": 2187.53}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 374484658.0, "Ops per second": 12482821.93, "ns per ops": 80.26, "Ops per threads": 93621164.0, "Ops per procs": 93621164.0, "Ops/sec/procs": 3120705.48, "ns per ops/procs": 321.04}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 869533479.0, "Ops per second": 28984449.3, "ns per ops": 34.57, "Ops per threads": 12076853.0, "Ops per procs": 12076853.0, "Ops/sec/procs": 402561.8, "ns per ops/procs": 2488.99}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6548264549.0, "Ops per second": 218108494.76, "ns per ops": 4.58, "Ops per threads": 818533068.0, "Ops per procs": 818533068.0, "Ops/sec/procs": 27263561.84, "ns per ops/procs": 36.68}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30004.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40994346475.0, "Ops per second": 1366270585.15, "ns per ops": 0.73, "Ops per threads": 427024442.0, "Ops per procs": 427024442.0, "Ops/sec/procs": 14231985.26, "ns per ops/procs": 70.26}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30047.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 22479031.0, "Ops per second": 748104.76, "ns per ops": 1336.71, "Ops per threads": 234156.0, "Ops per procs": 234156.0, "Ops/sec/procs": 7792.76, "ns per ops/procs": 128324.27}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20562252776.0, "Ops per second": 685305729.99, "ns per ops": 1.46, "Ops per threads": 428380266.0, "Ops per procs": 428380266.0, "Ops/sec/procs": 14277202.71, "ns per ops/procs": 70.04}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16128747560.0, "Ops per second": 537575583.44, "ns per ops": 1.86, "Ops per threads": 672031148.0, "Ops per procs": 672031148.0, "Ops/sec/procs": 22398982.64, "ns per ops/procs": 44.64}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1206770025.0, "Ops per second": 40225667.0, "ns per ops": 24.0, "Ops per threads": 25141042.0, "Ops per procs": 25141042.0, "Ops/sec/procs": 838034.0, "ns per ops/procs": 1197.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 273741770.0, "Ops per second": 9124725.0, "ns per ops": 109.0, "Ops per threads": 273741770.0, "Ops per procs": 273741770.0, "Ops/sec/procs": 9124725.0, "ns per ops/procs": 109.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 96 -d 30 -t 96", {"Duration (ms)": 0.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 1341431751.0, "Ops per second": 44714391.7, "ns per ops": 22.4, "Ops per threads": 13973247.0, "Ops per procs": 13973247.0, "Ops/sec/procs": 465774.91, "ns per ops/procs": 2150.72}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 533432907.0, "Ops per second": 17781096.9, "ns per ops": 56.36, "Ops per threads": 66679113.0, "Ops per procs": 66679113.0, "Ops/sec/procs": 2222637.11, "ns per ops/procs": 450.87}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16118064891.0, "Ops per second": 537218956.53, "ns per ops": 1.86, "Ops per threads": 671586037.0, "Ops per procs": 671586037.0, "Ops/sec/procs": 22384123.19, "ns per ops/procs": 44.67}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 396848421.0, "Ops per second": 13228280.0, "ns per ops": 75.0, "Ops per threads": 5511783.0, "Ops per procs": 5511783.0, "Ops/sec/procs": 183726.0, "ns per ops/procs": 5460.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12259535357.0, "Ops per second": 408290170.13, "ns per ops": 2.45, "Ops per threads": 766220959.0, "Ops per procs": 766220959.0, "Ops/sec/procs": 25518135.63, "ns per ops/procs": 39.19}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3424657532.0, "Ops per second": 114155251.0, "ns per ops": 8.0, "Ops per threads": 214041095.0, "Ops per procs": 214041095.0, "Ops/sec/procs": 7134703.0, "ns per ops/procs": 140.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1221519267.0, "Ops per second": 40717308.0, "ns per ops": 24.0, "Ops per threads": 25448318.0, "Ops per procs": 25448318.0, "Ops/sec/procs": 848277.0, "ns per ops/procs": 1182.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 16 -d 30 -t 16", {"Duration (ms)": 0.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 672790248.0, "Ops per second": 22426341.6, "ns per ops": 44.7, "Ops per threads": 42049390.0, "Ops per procs": 42049390.0, "Ops/sec/procs": 1401646.35, "ns per ops/procs": 715.24}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 401818666.0, "Ops per second": 13393955.0, "ns per ops": 74.0, "Ops per threads": 5580814.0, "Ops per procs": 5580814.0, "Ops/sec/procs": 186027.0, "ns per ops/procs": 5393.0}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30071.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 19291025.0, "Ops per second": 641495.1, "ns per ops": 1558.86, "Ops per threads": 133965.0, "Ops per procs": 133965.0, "Ops/sec/procs": 4454.83, "ns per ops/procs": 224475.6}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 961052463.0, "Ops per second": 32035082.0, "ns per ops": 31.0, "Ops per threads": 240263115.0, "Ops per procs": 240263115.0, "Ops/sec/procs": 8008770.0, "ns per ops/procs": 125.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30098.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 426283101.0, "Ops per second": 14209436.0, "ns per ops": 70.0, "Ops per threads": 4440448.0, "Ops per procs": 4440448.0, "Ops/sec/procs": 148014.0, "ns per ops/procs": 6778.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 527777636.0, "Ops per second": 17592587.87, "ns per ops": 56.96, "Ops per threads": 65972204.0, "Ops per procs": 65972204.0, "Ops/sec/procs": 2199073.48, "ns per ops/procs": 455.68}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 42074502.0, "Ops per second": 1402126.6, "ns per ops": 713.2, "Ops per threads": 1753104.0, "Ops per procs": 1753104.0, "Ops/sec/procs": 58421.94, "ns per ops/procs": 17116.86}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 42287868.0, "Ops per second": 1409248.52, "ns per ops": 709.6, "Ops per threads": 1761994.0, "Ops per procs": 1761994.0, "Ops/sec/procs": 58718.69, "ns per ops/procs": 17030.35}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30020.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 40756339.0, "Ops per second": 1357614.84, "ns per ops": 736.59, "Ops per threads": 849090.0, "Ops per procs": 849090.0, "Ops/sec/procs": 28283.64, "ns per ops/procs": 35356.13}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 539016587.0, "Ops per second": 17967219.57, "ns per ops": 55.77, "Ops per threads": 67377073.0, "Ops per procs": 67377073.0, "Ops/sec/procs": 2245902.45, "ns per ops/procs": 446.17}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 533657448.0, "Ops per second": 17788581.6, "ns per ops": 56.33, "Ops per threads": 66707181.0, "Ops per procs": 66707181.0, "Ops/sec/procs": 2223572.7, "ns per ops/procs": 450.66}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30004.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 35748206043.0, "Ops per second": 1191435275.01, "ns per ops": 0.84, "Ops per threads": 496502861.0, "Ops per procs": 496502861.0, "Ops/sec/procs": 16547712.15, "ns per ops/procs": 60.43}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30005.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 61345494458.0, "Ops per second": 2044499886.57, "ns per ops": 0.49, "Ops per threads": 426010378.0, "Ops per procs": 426010378.0, "Ops/sec/procs": 14197915.88, "ns per ops/procs": 70.43}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 42013391.0, "Ops per second": 1400100.06, "ns per ops": 714.23, "Ops per threads": 1750557.0, "Ops per procs": 1750557.0, "Ops/sec/procs": 58337.5, "ns per ops/procs": 17141.63}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30024.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3363680534.0, "Ops per second": 112032672.3, "ns per ops": 8.93, "Ops per threads": 840920133.0, "Ops per procs": 840920133.0, "Ops/sec/procs": 28008168.08, "ns per ops/procs": 35.7}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 329807385.0, "Ops per second": 10993579.5, "ns per ops": 91.12, "Ops per threads": 164903692.0, "Ops per procs": 164903692.0, "Ops/sec/procs": 5496789.75, "ns per ops/procs": 182.24}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 173205579.0, "Ops per second": 5773046.79, "ns per ops": 173.22, "Ops per threads": 43301394.0, "Ops per procs": 43301394.0, "Ops/sec/procs": 1443261.7, "ns per ops/procs": 692.88}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 273745418.0, "Ops per second": 9124847.0, "ns per ops": 109.0, "Ops per threads": 273745418.0, "Ops per procs": 273745418.0, "Ops/sec/procs": 9124847.0, "ns per ops/procs": 109.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1220724391.0, "Ops per second": 40690813.0, "ns per ops": 24.0, "Ops per threads": 25431758.0, "Ops per procs": 25431758.0, "Ops/sec/procs": 847725.0, "ns per ops/procs": 1183.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3339007521.0, "Ops per second": 111300250.0, "ns per ops": 9.0, "Ops per threads": 208687970.0, "Ops per procs": 208687970.0, "Ops/sec/procs": 6956265.0, "ns per ops/procs": 144.0}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30050.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 22661144.0, "Ops per second": 754099.87, "ns per ops": 1326.08, "Ops per threads": 236053.0, "Ops per procs": 236053.0, "Ops/sec/procs": 7855.21, "ns per ops/procs": 127304.09}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 173803669.0, "Ops per second": 5792971.75, "ns per ops": 172.62, "Ops per threads": 43450917.0, "Ops per procs": 43450917.0, "Ops/sec/procs": 1448242.94, "ns per ops/procs": 690.49}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 972577162.0, "Ops per second": 32419238.73, "ns per ops": 30.85, "Ops per threads": 13508016.0, "Ops per procs": 13508016.0, "Ops/sec/procs": 450267.2, "ns per ops/procs": 2221.4}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30026.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 16516154.0, "Ops per second": 550047.32, "ns per ops": 1818.03, "Ops per threads": 86021.0, "Ops per procs": 86021.0, "Ops/sec/procs": 2864.83, "ns per ops/procs": 349060.88}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3414525310.0, "Ops per second": 113817510.0, "ns per ops": 8.0, "Ops per threads": 213407831.0, "Ops per procs": 213407831.0, "Ops/sec/procs": 7113594.0, "ns per ops/procs": 141.0}],["rdq-yield-go", "./rdq-yield-go -p 4 -d 30 -t 4", {"Duration (ms)": 30002.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 171767210.0, "Ops per second": 5725092.13, "ns per ops": 174.67, "Ops per threads": 42941802.0, "Ops per procs": 42941802.0, "Ops/sec/procs": 1431273.03, "ns per ops/procs": 698.68}],["rdq-yield-fibre", "./rdq-yield-fibre -p 16 -d 30 -t 16", {"Duration (ms)": 30026.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 12289721432.0, "Ops per second": 409292377.36, "ns per ops": 2.44, "Ops per threads": 768107589.0, "Ops per procs": 768107589.0, "Ops/sec/procs": 25580773.58, "ns per ops/procs": 39.09}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 238035663.0, "Ops per second": 7934522.1, "ns per ops": 126.24, "Ops per threads": 238035663.0, "Ops per procs": 238035663.0, "Ops/sec/procs": 7934522.1, "ns per ops/procs": 126.24}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 728681806.0, "Ops per second": 24289393.53, "ns per ops": 41.2, "Ops per threads": 30361741.0, "Ops per procs": 30361741.0, "Ops/sec/procs": 1012058.06, "ns per ops/procs": 988.79}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1776933036.0, "Ops per second": 59184901.43, "ns per ops": 16.9, "Ops per threads": 888466518.0, "Ops per procs": 888466518.0, "Ops/sec/procs": 29592450.72, "ns per ops/procs": 33.79}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2497804715.0, "Ops per second": 83260157.17, "ns per ops": 12.01, "Ops per threads": 13009399.0, "Ops per procs": 13009399.0, "Ops/sec/procs": 433646.65, "ns per ops/procs": 2306.42}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 533189745.0, "Ops per second": 17772991.5, "ns per ops": 56.38, "Ops per threads": 66648718.0, "Ops per procs": 66648718.0, "Ops/sec/procs": 2221623.94, "ns per ops/procs": 451.05}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 536483869.0, "Ops per second": 17882795.63, "ns per ops": 56.04, "Ops per threads": 67060483.0, "Ops per procs": 67060483.0, "Ops/sec/procs": 2235349.45, "ns per ops/procs": 448.3}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 360644730.0, "Ops per second": 12021491.0, "ns per ops": 83.0, "Ops per threads": 3756715.0, "Ops per procs": 3756715.0, "Ops/sec/procs": 125223.0, "ns per ops/procs": 8011.0}],["rdq-yield-go", "./rdq-yield-go -p 8 -d 30 -t 8", {"Duration (ms)": 30003.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 80140488.0, "Ops per second": 2671028.2, "ns per ops": 374.39, "Ops per threads": 10017561.0, "Ops per procs": 10017561.0, "Ops/sec/procs": 333878.52, "ns per ops/procs": 2995.1}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 361304154.0, "Ops per second": 12043471.0, "ns per ops": 83.0, "Ops per threads": 3763584.0, "Ops per procs": 3763584.0, "Ops/sec/procs": 125452.0, "ns per ops/procs": 7997.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 528322152.0, "Ops per second": 17610738.4, "ns per ops": 56.9, "Ops per threads": 66040269.0, "Ops per procs": 66040269.0, "Ops/sec/procs": 2201342.3, "ns per ops/procs": 455.22}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1219707927.0, "Ops per second": 40656930.0, "ns per ops": 24.0, "Ops per threads": 25410581.0, "Ops per procs": 25410581.0, "Ops/sec/procs": 847019.0, "ns per ops/procs": 1184.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 72 -d 30 -t 72", {"Duration (ms)": 30097.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 399589107.0, "Ops per second": 13319636.0, "ns per ops": 75.0, "Ops per threads": 5549848.0, "Ops per procs": 5549848.0, "Ops/sec/procs": 184994.0, "ns per ops/procs": 5423.0}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30051.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 22185943.0, "Ops per second": 738259.5, "ns per ops": 1354.54, "Ops per threads": 231103.0, "Ops per procs": 231103.0, "Ops/sec/procs": 7690.2, "ns per ops/procs": 130035.58}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 51196499.0, "Ops per second": 1706220.62, "ns per ops": 586.09, "Ops per threads": 3199781.0, "Ops per procs": 3199781.0, "Ops/sec/procs": 106638.79, "ns per ops/procs": 9377.45}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 379863297.0, "Ops per second": 12662109.9, "ns per ops": 79.12, "Ops per threads": 94965824.0, "Ops per procs": 94965824.0, "Ops/sec/procs": 3165527.48, "ns per ops/procs": 316.49}],["rdq-yield-tokio", "./rdq-yield-tokio -p 2 -d 30 -t 2", {"Duration (ms)": 30097.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 500061662.0, "Ops per second": 16668722.0, "ns per ops": 60.0, "Ops per threads": 250030831.0, "Ops per procs": 250030831.0, "Ops/sec/procs": 8334361.0, "ns per ops/procs": 120.0}],["rdq-yield-fibre", "./rdq-yield-fibre -p 4 -d 30 -t 4", {"Duration (ms)": 30023.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 3360941149.0, "Ops per second": 111942207.63, "ns per ops": 8.93, "Ops per threads": 840235287.0, "Ops per procs": 840235287.0, "Ops/sec/procs": 27985551.91, "ns per ops/procs": 35.73}],["rdq-yield-cfa", "./rdq-yield-cfa -p 2 -d 30 -t 2", {"Duration (ms)": 0.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 331581223.0, "Ops per second": 11052707.43, "ns per ops": 90.63, "Ops per threads": 165790611.0, "Ops per procs": 165790611.0, "Ops/sec/procs": 5526353.72, "ns per ops/procs": 181.27}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 378356527.0, "Ops per second": 12611884.23, "ns per ops": 79.43, "Ops per threads": 94589131.0, "Ops per procs": 94589131.0, "Ops/sec/procs": 3152971.06, "ns per ops/procs": 317.73}],["rdq-yield-fibre", "./rdq-yield-fibre -p 48 -d 30 -t 48", {"Duration (ms)": 30004.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 20543753459.0, "Ops per second": 684688201.29, "ns per ops": 1.46, "Ops per threads": 427994863.0, "Ops per procs": 427994863.0, "Ops/sec/procs": 14264337.53, "ns per ops/procs": 70.1}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 300341804.0, "Ops per second": 10011393.0, "ns per ops": 100.0, "Ops per threads": 2085706.0, "Ops per procs": 2085706.0, "Ops/sec/procs": 69523.0, "ns per ops/procs": 14430.0}],["rdq-yield-go", "./rdq-yield-go -p 192 -d 30 -t 192", {"Duration (ms)": 30025.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 16685764.0, "Ops per second": 555716.38, "ns per ops": 1799.48, "Ops per threads": 86905.0, "Ops per procs": 86905.0, "Ops/sec/procs": 2894.36, "ns per ops/procs": 345499.99}],["rdq-yield-go", "./rdq-yield-go -p 96 -d 30 -t 96", {"Duration (ms)": 30047.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 22249563.0, "Ops per second": 740482.27, "ns per ops": 1350.47, "Ops per threads": 231766.0, "Ops per procs": 231766.0, "Ops/sec/procs": 7713.36, "ns per ops/procs": 129645.24}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30025.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1776909132.0, "Ops per second": 59180357.91, "ns per ops": 16.9, "Ops per threads": 888454566.0, "Ops per procs": 888454566.0, "Ops/sec/procs": 29590178.95, "ns per ops/procs": 33.79}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 41570420.0, "Ops per second": 1385327.78, "ns per ops": 721.85, "Ops per threads": 1732100.0, "Ops per procs": 1732100.0, "Ops/sec/procs": 57721.99, "ns per ops/procs": 17324.42}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30004.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 35798455306.0, "Ops per second": 1193117443.01, "ns per ops": 0.84, "Ops per threads": 497200768.0, "Ops per procs": 497200768.0, "Ops/sec/procs": 16571075.6, "ns per ops/procs": 60.35}],["rdq-yield-go", "./rdq-yield-go -p 16 -d 30 -t 16", {"Duration (ms)": 30005.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 50443329.0, "Ops per second": 1681108.89, "ns per ops": 594.85, "Ops per threads": 3152708.0, "Ops per procs": 3152708.0, "Ops/sec/procs": 105069.31, "ns per ops/procs": 9517.53}],["rdq-yield-fibre", "./rdq-yield-fibre -p 24 -d 30 -t 24", {"Duration (ms)": 30002.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 16129323078.0, "Ops per second": 537595137.66, "ns per ops": 1.86, "Ops per threads": 672055128.0, "Ops per procs": 672055128.0, "Ops/sec/procs": 22399797.4, "ns per ops/procs": 44.64}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40796600651.0, "Ops per second": 1359647638.29, "ns per ops": 0.74, "Ops per threads": 424964590.0, "Ops per procs": 424964590.0, "Ops/sec/procs": 14162996.23, "ns per ops/procs": 70.61}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30083.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 18531845.0, "Ops per second": 616018.36, "ns per ops": 1623.33, "Ops per threads": 128693.0, "Ops per procs": 128693.0, "Ops/sec/procs": 4277.91, "ns per ops/procs": 233759.27}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 41686852.0, "Ops per second": 1389210.12, "ns per ops": 719.83, "Ops per threads": 1736952.0, "Ops per procs": 1736952.0, "Ops/sec/procs": 57883.76, "ns per ops/procs": 17276.0}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30007.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 368114720.0, "Ops per second": 12267288.09, "ns per ops": 81.52, "Ops per threads": 184057360.0, "Ops per procs": 184057360.0, "Ops/sec/procs": 6133644.04, "ns per ops/procs": 163.04}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30088.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 17569186.0, "Ops per second": 583922.1, "ns per ops": 1712.56, "Ops per threads": 122008.0, "Ops per procs": 122008.0, "Ops/sec/procs": 4055.01, "ns per ops/procs": 246608.24}],["rdq-yield-tokio", "./rdq-yield-tokio -p 16 -d 30 -t 16", {"Duration (ms)": 30097.0, "Number of processors": 16.0, "Number of threads": 16.0, "Total Operations(ops)": 3406107324.0, "Ops per second": 113536910.0, "ns per ops": 8.0, "Ops per threads": 212881707.0, "Ops per procs": 212881707.0, "Ops/sec/procs": 7096056.0, "ns per ops/procs": 141.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 48 -d 30 -t 48", {"Duration (ms)": 30097.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 1240172589.0, "Ops per second": 41339086.0, "ns per ops": 24.0, "Ops per threads": 25836928.0, "Ops per procs": 25836928.0, "Ops/sec/procs": 861230.0, "ns per ops/procs": 1164.0}],["rdq-yield-tokio", "./rdq-yield-tokio -p 1 -d 30 -t 1", {"Duration (ms)": 30098.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 274033303.0, "Ops per second": 9134443.0, "ns per ops": 109.0, "Ops per threads": 274033303.0, "Ops per procs": 274033303.0, "Ops/sec/procs": 9134443.0, "ns per ops/procs": 109.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 4 -d 30 -t 4", {"Duration (ms)": 0.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 379797876.0, "Ops per second": 12659929.2, "ns per ops": 79.13, "Ops per threads": 94949469.0, "Ops per procs": 94949469.0, "Ops/sec/procs": 3164982.3, "ns per ops/procs": 316.52}],["rdq-yield-tokio", "./rdq-yield-tokio -p 4 -d 30 -t 4", {"Duration (ms)": 30097.0, "Number of processors": 4.0, "Number of threads": 4.0, "Total Operations(ops)": 947802972.0, "Ops per second": 31593432.0, "ns per ops": 31.0, "Ops per threads": 236950743.0, "Ops per procs": 236950743.0, "Ops/sec/procs": 7898358.0, "ns per ops/procs": 127.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 24 -d 30 -t 24", {"Duration (ms)": 0.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 704265830.0, "Ops per second": 23475527.67, "ns per ops": 42.63, "Ops per threads": 29344409.0, "Ops per procs": 29344409.0, "Ops/sec/procs": 978146.99, "ns per ops/procs": 1023.14}],["rdq-yield-fibre", "./rdq-yield-fibre -p 72 -d 30 -t 72", {"Duration (ms)": 30006.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 36436065977.0, "Ops per second": 1214290982.74, "ns per ops": 0.82, "Ops per threads": 506056471.0, "Ops per procs": 506056471.0, "Ops/sec/procs": 16865152.54, "ns per ops/procs": 59.29}],["rdq-yield-go", "./rdq-yield-go -p 24 -d 30 -t 24", {"Duration (ms)": 30007.0, "Number of processors": 24.0, "Number of threads": 24.0, "Total Operations(ops)": 42560075.0, "Ops per second": 1418324.29, "ns per ops": 705.06, "Ops per threads": 1773336.0, "Ops per procs": 1773336.0, "Ops/sec/procs": 59096.85, "ns per ops/procs": 16921.38}],["rdq-yield-go", "./rdq-yield-go -p 144 -d 30 -t 144", {"Duration (ms)": 30085.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 18232395.0, "Ops per second": 606014.58, "ns per ops": 1650.13, "Ops per threads": 126613.0, "Ops per procs": 126613.0, "Ops/sec/procs": 4208.43, "ns per ops/procs": 237618.05}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30005.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 41500410604.0, "Ops per second": 1383115313.23, "ns per ops": 0.72, "Ops per threads": 432295943.0, "Ops per procs": 432295943.0, "Ops/sec/procs": 14407451.18, "ns per ops/procs": 69.41}],["rdq-yield-cfa", "./rdq-yield-cfa -p 144 -d 30 -t 144", {"Duration (ms)": 0.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 1920391366.0, "Ops per second": 64013045.53, "ns per ops": 15.65, "Ops per threads": 13336051.0, "Ops per procs": 13336051.0, "Ops/sec/procs": 444535.04, "ns per ops/procs": 2253.59}],["rdq-yield-tokio", "./rdq-yield-tokio -p 144 -d 30 -t 144", {"Duration (ms)": 30097.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 272589597.0, "Ops per second": 9086319.0, "ns per ops": 110.0, "Ops per threads": 1892983.0, "Ops per procs": 1892983.0, "Ops/sec/procs": 63099.0, "ns per ops/procs": 15899.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 8 -d 30 -t 8", {"Duration (ms)": 0.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 535423186.0, "Ops per second": 17847439.53, "ns per ops": 56.14, "Ops per threads": 66927898.0, "Ops per procs": 66927898.0, "Ops/sec/procs": 2230929.94, "ns per ops/procs": 449.15}],["rdq-yield-fibre", "./rdq-yield-fibre -p 8 -d 30 -t 8", {"Duration (ms)": 30022.0, "Number of processors": 8.0, "Number of threads": 8.0, "Total Operations(ops)": 6537955914.0, "Ops per second": 217766086.7, "ns per ops": 4.59, "Ops per threads": 817244489.0, "Ops per procs": 817244489.0, "Ops/sec/procs": 27220760.84, "ns per ops/procs": 36.74}],["rdq-yield-fibre", "./rdq-yield-fibre -p 2 -d 30 -t 2", {"Duration (ms)": 30023.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 1777758592.0, "Ops per second": 59212349.67, "ns per ops": 16.89, "Ops per threads": 888879296.0, "Ops per procs": 888879296.0, "Ops/sec/procs": 29606174.83, "ns per ops/procs": 33.78}],["rdq-yield-go", "./rdq-yield-go -p 48 -d 30 -t 48", {"Duration (ms)": 30021.0, "Number of processors": 48.0, "Number of threads": 48.0, "Total Operations(ops)": 41139988.0, "Ops per second": 1370342.35, "ns per ops": 729.74, "Ops per threads": 857083.0, "Ops per procs": 857083.0, "Ops/sec/procs": 28548.8, "ns per ops/procs": 35027.74}],["rdq-yield-go", "./rdq-yield-go -p 2 -d 30 -t 2", {"Duration (ms)": 30010.0, "Number of processors": 2.0, "Number of threads": 2.0, "Total Operations(ops)": 367420990.0, "Ops per second": 12242963.44, "ns per ops": 81.68, "Ops per threads": 183710495.0, "Ops per procs": 183710495.0, "Ops/sec/procs": 6121481.72, "ns per ops/procs": 163.36}],["rdq-yield-cfa", "./rdq-yield-cfa -p 192 -d 30 -t 192", {"Duration (ms)": 0.0, "Number of processors": 192.0, "Number of threads": 192.0, "Total Operations(ops)": 2341231403.0, "Ops per second": 78041046.77, "ns per ops": 12.83, "Ops per threads": 12193913.0, "Ops per procs": 12193913.0, "Ops/sec/procs": 406463.79, "ns per ops/procs": 2462.41}],["rdq-yield-fibre", "./rdq-yield-fibre -p 96 -d 30 -t 96", {"Duration (ms)": 30061.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 40915153648.0, "Ops per second": 1361064496.69, "ns per ops": 0.73, "Ops per threads": 426199517.0, "Ops per procs": 426199517.0, "Ops/sec/procs": 14177755.17, "ns per ops/procs": 70.53}],["rdq-yield-cfa", "./rdq-yield-cfa -p 1 -d 30 -t 1", {"Duration (ms)": 0.0, "Number of processors": 1.0, "Number of threads": 1.0, "Total Operations(ops)": 238301806.0, "Ops per second": 7943393.53, "ns per ops": 126.1, "Ops per threads": 238301806.0, "Ops per procs": 238301806.0, "Ops/sec/procs": 7943393.53, "ns per ops/procs": 126.1}],["rdq-yield-tokio", "./rdq-yield-tokio -p 96 -d 30 -t 96", {"Duration (ms)": 30097.0, "Number of processors": 96.0, "Number of threads": 96.0, "Total Operations(ops)": 399959519.0, "Ops per second": 13331983.0, "ns per ops": 75.0, "Ops per threads": 4166244.0, "Ops per procs": 4166244.0, "Ops/sec/procs": 138874.0, "ns per ops/procs": 7224.0}],["rdq-yield-cfa", "./rdq-yield-cfa -p 72 -d 30 -t 72", {"Duration (ms)": 0.0, "Number of processors": 72.0, "Number of threads": 72.0, "Total Operations(ops)": 923251633.0, "Ops per second": 30775054.43, "ns per ops": 32.5, "Ops per threads": 12822939.0, "Ops per procs": 12822939.0, "Ops/sec/procs": 427431.31, "ns per ops/procs": 2339.86}],["rdq-yield-fibre", "./rdq-yield-fibre -p 144 -d 30 -t 144", {"Duration (ms)": 30009.0, "Number of processors": 144.0, "Number of threads": 144.0, "Total Operations(ops)": 61347909654.0, "Ops per second": 2044285055.62, "ns per ops": 0.49, "Ops per threads": 426027150.0, "Ops per procs": 426027150.0, "Ops/sec/procs": 14196424.0, "ns per ops/procs": 70.44}]]
  • doc/theses/thierry_delisle_PhD/thesis/glossary.tex

    r12df6fe r4520b77e  
    1414% Definitions
    1515
    16 \longnewglossaryentry{thrd}
    17 {name={thread}}
     16\longnewglossaryentry{at}
     17{name={Thread},text={thread}}
    1818{
    19 Threads created and managed inside user-space. Each thread has its own stack and its own thread of execution. User-level threads are invisible to the underlying operating system.
     19A 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.
    2020
    21 \textit{Synonyms : User threads, Lightweight threads, Green threads, Virtual threads, Tasks.}
     21\textit{Synonyms : Tasks, Jobs, Blocks.}
    2222}
    2323
    2424\longnewglossaryentry{proc}
    25 {name={processor}}
     25{name={Processor},text={processor}}
    2626{
     27Entity 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.
    2728
     29\textit{Synonyms : Server, Worker.}
    2830}
    2931
    3032\longnewglossaryentry{rQ}
    31 {name={ready-queue}}
     33{name={Ready Queue}, text={ready-queue}}
    3234{
    33 
     35Data 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.
    3436}
    3537
    3638\longnewglossaryentry{uthrding}
    37 {name={user-level threading}}
     39{name={User-Level Threading},text={user-level threading}}
    3840{
    39 
     41Threading model where a scheduler runs in users space and maps threads managed and created inside the user-space onto \glspl{kthrd}.
    4042
    4143\textit{Synonyms : User threads, Lightweight threads, Green threads, Virtual threads, Tasks.}
     
    4345
    4446\longnewglossaryentry{rmr}
    45 {name={remote memory reference}}
     47{name={Remote Memory Reference},text={remote memory reference}}
    4648{
    47 
     49A 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.
    4850}
    4951
     
    5153
    5254\longnewglossaryentry{hthrd}
    53 {name={hardware thread}}
     55{name={Hardware Threading},text={hardware thread}}
    5456{
    55 Threads representing the underlying hardware directly, \eg the CPU core, or hyper-thread if the hardware supports multiple threads of execution per core. The number of hardware threads is considered to be always fixed to a specific number determined by the hardware.
     57Threads 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.
    5658
    57 \textit{Synonyms : }
     59\textit{Synonyms : Core, Hyper-Thread, Processing Unit, CPU.}
    5860}
    5961
    6062\longnewglossaryentry{kthrd}
    61 {name={kernel-level thread}}
     63{name={Kernel-Level Thread},text={kernel-level thread}}
    6264{
    63 Threads 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.
     65Threads 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.
    6466
    6567\textit{Synonyms : OS threads, Hardware threads, Physical threads.}
     
    6769
    6870\longnewglossaryentry{fiber}
    69 {name={fiber}}
     71{name={Fiber},text={fiber}}
    7072{
    71 Fibers 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.
     73Fibers 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.
    7274
    7375\textit{Synonyms : Tasks.}
     
    7577
    7678\longnewglossaryentry{job}
    77 {name={job}}
     79{name={Job},text={job}}
    7880{
    7981Unit 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.
     
    8385
    8486\longnewglossaryentry{pool}
    85 {name={thread-pool}}
     87{name={Thread Pool},text={thread-pool}}
    8688{
    87 Group of homogeneuous threads that loop executing units of works after another.
     89Group of homogeneous threads that loop executing units of works. Often executing \glspl{jobs}.
    8890
    89 \textit{Synonyms : }
     91\textit{Synonyms : Executor.}
    9092}
    9193
    9294\longnewglossaryentry{preemption}
    93 {name={preemption}}
     95{name={Preemption},text={preemption}}
    9496{
    9597Involuntary context switch imposed on threads at a given rate.
     
    98100}
    99101
    100 
    101 
    102 \longnewglossaryentry{at}
    103 {name={task}}
    104 {
    105 Abstract object representing an unit of work. Systems will offer one or more concrete implementations of this concept (\eg \gls{kthrd}, \gls{job}), however, most of the concept of schedulings are independent of the particular implementations of the work representation. For this reason, this document use the term \Gls{at} to mean any representation and not one in particular.
    106 }
    107 
    108102\longnewglossaryentry{atsched}
    109103{name={Scheduling a \gls{at}}}
    110104{
    111 Scheduling 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.
     105Scheduling 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.
    112106
    113 \textit{Synonyms : None.}
     107\textit{Synonyms : Unparking.}
    114108}
    115109
     
    117111{name={Running a \gls{at}}}
    118112{
    119 Running 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.
     113Running 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.
    120114
    121115\textit{Synonyms : None.}
     
    123117
    124118\longnewglossaryentry{atmig}
    125 {name={migration of \gls{at}}}
     119{name={\Glspl{at} Migration}}
    126120{
    127 Migration refers to the idea of an \gls{at} running on a different worker/processor than the last time it was run. It is generally preferable to minimise migration as it incurs cost but any load balancing among workers requires some amount of migration.
     121Migration 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.
    128122
    129123\textit{Synonyms : None.}
     
    131125
    132126\longnewglossaryentry{atpass}
    133 {name={overtaking \gls{at}}}
     127{name={Overtaking \gls{at}}}
    134128{
    135129When 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}.
     
    139133
    140134\longnewglossaryentry{atblock}
    141 {name={Blocking an \gls{at}}}
     135{name={\Gls{at} Blocking}}
    142136{
    143 Blocking an abstract task refers to the act of taking a task that us running on a CPU off the CPU. Unless no other task is ready, this action is generally immediately followed by running an other task.
     137\Gls{at} blocking means taking a running \at off a CPU. Unless no other \at is ready, this action is immediately followed by running another \at.
    144138
    145 \textit{Synonyms : None.}
     139\textit{Synonyms : Parking.}
    146140}
    147141
     
    149143{name={Running to completion}}
    150144{
    151 Running to completion refers to the entire sequence of : being scheduled, running and blocking, for a given task.
     145Running to completion refers to the entire sequence of : being scheduled, running and blocking, for a given \at.
    152146
    153147See also \gls{atsched}, \gls{atrun}, \gls{atblock}
     
    157151
    158152\longnewglossaryentry{load}
    159 {name={System Load}}
     153{name={System Load},text={load}}
    160154{
    161 The load is refers to the rate at which \glspl{at} are \glslink{atsched}{scheduled} versus the rate at which they are \glslink{atrun}{run}. When \glspl{at} are being scheduled faster than they are run, the system is considered \emph{overloaded}. When \glspl{at} are being run faster than they are scheduled, the system is considered \emph{underloaded}. Conrrespondingly, if both rates are equal, the system is considered \emph{loaded}. Note that the system is considered loaded only of the rate at which \glspl{at} are scheduled/run is non-zero, otherwise the system is empty, it has no load.
     155The 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.}
    162158}
    163159
  • doc/theses/thierry_delisle_PhD/thesis/local.bib

    r12df6fe r4520b77e  
    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
    431519% --------------------------------------------------
    432520% ULE FreeBSD scheduler
     
    524612  title = {Mach Scheduling and Thread Interfaces - Kernel Programming Guide},
    525613  organization = {Apple Inc.},
    526   howPublish = {\href{https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/scheduler/scheduler.html}{https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/scheduler/scheduler.html}}
     614  note = {\href{https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/scheduler/scheduler.html}{https://\-developer.apple.com/\-library/archive/\-documentation/\-Darwin/\-Conceptual/\-KernelProgramming/\-scheduler/\-scheduler.html}}
     615}
     616
     617@misc{MemcachedThreading,
     618  author = {Oracle},
     619  title = {MySQL 5.6 Reference Manual Including MySQL NDB Cluster 7.3-7.4 Reference Guide},
     620  howpublished = {\href{https://docs.oracle.com/cd/E17952_01/mysql-5.6-en/ha-memcached-using-threads.html}{https://docs.oracle.com/\-cd/E17952\_01/\-mysql-5.6-en/\-ha-memcached-using-threads.html}},
     621  note = "[Online; accessed 5-August-2022]"
    527622}
    528623
     
    582677}
    583678
     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
    584779% --------------------------------------------------
    585780% Man Pages
     
    619814}
    620815
     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
    621837@manual{MAN:aio,
    622838  key        = "aio",
     
    624840  year       = "2019",
    625841  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}}
    626851}
    627852
     
    635860}
    636861
     862
    637863% --------------------------------------------------
    638864% Wikipedia Entries
     
    709935}
    710936
    711 % RMR notes :
    712 % [05/04, 12:36] Trevor Brown
    713 %     i don't know where rmr complexity was first introduced, but there are many many many papers that use the term and define it
    714 % [05/04, 12:37] Trevor Brown
    715 %     here's one paper that uses the term a lot and links to many others that use it... might trace it to something useful there https://drops.dagstuhl.de/opus/volltexte/2021/14832/pdf/LIPIcs-DISC-2021-30.pdf
    716 % [05/04, 12:37] Trevor Brown
    717 %     another option might be to cite a textbook
    718 % [05/04, 12:42] Trevor Brown
    719 %     but i checked two textbooks in the area i'm aware of and i don't see a definition of rmr complexity in either
    720 % [05/04, 12:42] Trevor Brown
    721 %     this one has a nice statement about the prevelance of rmr complexity, as well as some rough definition
    722 % [05/04, 12:42] Trevor Brown
    723 %     https://dl.acm.org/doi/pdf/10.1145/3465084.3467938
    724 
    725 % Race to idle notes :
    726 % [13/04, 16:56] Martin Karsten
    727 %       I don't have a citation. Google brings up this one, which might be good:
    728 %
    729 % https://doi.org/10.1137/1.9781611973099.100
    730 
    731 
     937@misc{wiki:ma,
     938  author = "{Wikipedia contributors}",
     939  title = "Bin packing problem --- {W}ikipedia{,} The Free Encyclopedia",
     940  year = "2022",
     941  howpublished = "\href{https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average}{https://\-en.wikipedia.org/\-wiki/\-Moving\_average\#Exponential\_moving\_average}",
     942  note = "[Online; accessed 5-August-2022]"
     943}
     944
     945@misc{wiki:jni,
     946  author = "{Wikipedia contributors}",
     947  title = "Java Native Interface --- {W}ikipedia{,} The Free Encyclopedia",
     948  year = "2021",
     949  howpublished = "\href{https://en.wikipedia.org/wiki/Java_Native_Interface}{https://\-en.wikipedia.org/\-wiki/\-Java\_Native\_Interface}",
     950  note = "[Online; accessed 5-August-2022]"
     951}
     952
     953@misc{wiki:zipf,
     954  author = "{Wikipedia contributors}",
     955  title = "Zipf's law --- {W}ikipedia{,} The Free Encyclopedia",
     956  year = "2021",
     957  howpublished = "\href{https://en.wikipedia.org/wiki/Zipf%27s_law}{https://\-en.wikipedia.org/\-wiki/\-Zipf\%27s\-\_law}",
     958  note = "[Online; accessed 5-August-2022]"
     959}
     960
     961@misc{wiki:htm,
     962  author = "{Wikipedia contributors}",
     963  title = "Transactional memory --- {W}ikipedia{,} The Free Encyclopedia",
     964  year = "2022",
     965  howpublished = "\href{https://en.wikipedia.org/wiki/Zipf%27s_law}{https://\-en.wikipedia.org/\-wiki/\-Zipf\%27s\-\_law}",
     966  note = "[Online; accessed 7-September-2022]"
     967}
     968
     969@inproceedings{Pai99Flash,
     970    contributer = {pabuhr@watmsg},
     971    author      = {Vivek S. Pai and Peter Druschel and Willy Zwaenepoel},
     972    title       = {{F}lash: An efficient and portable {W}eb server},
     973    booktitle   = {Proceedings of the 1999 USENIX Annual Technical Conference},
     974    organization= {USENIX Association},
     975    address     = {Monterey, California, U.S.A.},
     976    month       = jun,
     977    year        = {1999},
     978}
     979
     980@inproceedings{Behren03,
     981    contributer = {pabuhr@watmsg},
     982    author      = {Rob von Behren and Jeremy Condit and Feng Zhou and George C. Necula and Eric Brewer},
     983    title       = {Capriccio: Scalable Threads for Internet Services},
     984    booktitle   = {Proceedings of the 19th ACM Symposium on Operating Systems Principles},
     985    year        = {2003},
     986    pages       = {268-281},
     987    location    = {Bolton Landing, NY, USA},
     988    publisher   = {ACM Press},
     989    address     = {New York, NY, USA},
     990}
     991
     992@article{Welsh01,
     993    contributer = {pabuhr@plg},
     994    author      = {Welsh, Matt and Culler, David and Brewer, Eric},
     995    title       = {{SEDA}: An Architecture for Well-conditioned, Scalable Internet Services},
     996    journal     = {SIGOPS Oper. Syst. Rev.},
     997    volume      = {35},
     998    number      = {5},
     999    month       = oct,
     1000    year        = {2001},
     1001    pages       = {230--243},
     1002    numpages    = {14},
     1003    publisher   = {ACM},
     1004    address     = {New York, NY, USA},
     1005}
     1006
     1007@inproceedings{Harji12,
     1008    keywords    = {web server, architecture, multi-core},
     1009    contributer = {pabuhr@plg},
     1010    author      = {Ashif S. Harji and Peter A. Buhr and Tim Brecht},
     1011    title       = {Comparing High-Performance Multi-core Web-Server Architectures},
     1012    booktitle   = {Proceedings of the 5th Annual International Systems and Storage Conference},
     1013    series      = {SYSTOR '12},
     1014    publisher   = {ACM},
     1015    address     = {New York, NY, USA},
     1016    location    = {Haifa, Israel},
     1017    month       = jun,
     1018    year        = 2012,
     1019    articleno   = 1,
     1020    pages       = {1:1--1:12},
     1021}
     1022
     1023
     1024@inproceedings{Barford98,
     1025    title       = {Generating Representative Web Workloads for Network and Server Performance Evaluation},
     1026    author      = {Paul Barford and Mark Crovella},
     1027    booktitle   = {Proc. of ACM SIGMETRICS 1998},
     1028    address     = {Madison, Wis.},
     1029    year        = {1998}
     1030}
     1031
     1032@article{httperf,
     1033    author      = {David Mosberger and Tai Jin},
     1034    title       = {httperf Tool for Measuring Web Server Performance},
     1035    journal     = {ACM SIGMETRICS},
     1036    volume      = {26},
     1037    number      = {3},
     1038    year        = {1998},
     1039    optissn     = {0163-5999},
     1040    pages       = {31-37},
     1041    optdoi      = {http://doi.acm.org/10.1145/306225.306235},
     1042    publisher   = {ACM Press},
     1043    address     = {New York, NY, USA},
     1044}
     1045
     1046% --------------------------------------------------
     1047% True Misc
    7321048@misc{AIORant,
    7331049  author = "Linus Torvalds",
     
    7391055}
    7401056
    741 @misc{apache,
    742   key = {Apache Software Foundation},
    743   title = {{T}he {A}pache Web Server},
    744   howpublished = {\href{http://httpd.apache.org}{http://\-httpd.apache.org}},
    745   note = "[Online; accessed 6-June-2022]"
    746 }
    747 
    748 @misc{SeriallyReusable,
    749     author      = {IBM},
    750     title       = {Serially reusable programs},
    751     month       = mar,
    752     howpublished= {\href{https://www.ibm.com/docs/en/ztpf/1.1.0.15?topic=structures-serially-reusable-programs}{https://www.ibm.com/\-docs/\-en/\-ztpf/\-1.1.0.15?\-topic=structures\--serially\--reusable-programs}},
    753     year        = 2021,
    754 }
    755 
    756 @inproceedings{Albers12,
    757     author      = {Susanne Albers and Antonios Antoniadis},
    758     title       = {Race to Idle: New Algorithms for Speed Scaling with a Sleep State},
    759     booktitle   = {Proceedings of the 2012  Annual ACM-SIAM Symposium on Discrete Algorithms (SODA)},
    760     doi         = {10.1137/1.9781611973099.100},
    761     URL         = {https://epubs.siam.org/doi/abs/10.1137/1.9781611973099.100},
    762     eprint      = {https://epubs.siam.org/doi/pdf/10.1137/1.9781611973099.100},
    763     year        = 2012,
    764     month       = jan,
    765     pages       = {1266-1285},
    766 }
     1057@misc{xkcd:dynamicentropy,
     1058  author = "Randall Munroe",
     1059  title = "2318: Dynamic Entropy",
     1060  year = "2020",
     1061  month = "June",
     1062  howpublished = "\href{https://xkcd.com/2318/}",
     1063  note = "[Online; accessed 10-June-2020]"
     1064}
     1065
     1066@misc{xkcd:cloud,
     1067  author = "Randall Munroe",
     1068  title = "908: The Cloud",
     1069  year = "2011",
     1070  month = "June",
     1071  howpublished = "\href{https://xkcd.com/908/}",
     1072  note = "[Online; accessed 25-August-2022]"
     1073}
     1074
     1075@misc{go:safepoints,
     1076  author = "The Go Programming Language",
     1077  title = "src/runtime/preempt.go",
     1078  howpublished = {\href{https://go.dev/src/runtime/preempt.go}},
     1079  note = "[Online; accessed 5-August-2022]"
     1080}
     1081
     1082@misc{go:cgo,
     1083  author = "The Go Programming Language",
     1084  title = "cgo",
     1085  howpublished = {\href{https://pkg.go.dev/cmd/cgo}},
     1086  note = "[Online; accessed 5-August-2022]"
     1087}
     1088
     1089@article{reese2008nginx,
     1090    title       = {NGINX: the high-performance web server and reverse proxy},
     1091    author      = {Reese, Will},
     1092    journal     = {Linux Journal},
     1093    volume      = {2008},
     1094    number      = {173},
     1095    pages       = {2},
     1096    year        = {2008},
     1097    publisher   = {Belltown Media}
     1098}
     1099
     1100@phdthesis{Harji10,
     1101    author      = {Ashif Harji},
     1102    title       = {Performance Comparison of Uniprocessor and Multiprocessor Web Server Architectures},
     1103    school      = {University of Waterloo},
     1104    year        = 2010,
     1105    month       = feb,
     1106    address     = {Waterloo, Ontario, Canada, N2L 3G1},
     1107    note        = {\textsf{http://uwspace.uwaterloo.ca/\-bitstream/\-10012/\-5040/\-1/\-Harji\_thesis.pdf}},
     1108}
  • doc/theses/thierry_delisle_PhD/thesis/text/core.tex

    r12df6fe r4520b77e  
    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 \glspl{thrd} 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 \ats 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 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 \gls{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 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.
     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 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.
    1919        \label{q:LinuxCFS}
    2020\end{displayquote}
    2121
    22 Applied to threads, this model states that every ready \gls{thrd} immediately runs in parallel with all other ready \glspl{thrd}. While a strict implementation of this model is not feasible, programmers still have expectations about scheduling that come from this model.
    23 
    24 In general, the expectation at the center of this model is that ready \glspl{thrd} do not interfere with each other but simply share the hardware.
    25 This assumption makes it easier to reason about threading because ready \glspl{thrd} can be thought of in isolation and the effect of the scheduler can be virtually ignored.
    26 This expectation of \gls{thrd} independence means the scheduler is expected to offer two guarantees:
     22Applied 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
     24In general, the expectation at the centre of this model is that ready \ats do not interfere with each other but simply share the hardware.
     25This 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.
     26This expectation of \at independence means the scheduler is expected to offer two guarantees:
    2727\begin{enumerate}
    28         \item A fairness guarantee: a \gls{thrd} that is ready to run is not prevented by another thread.
    29         \item A performance guarantee: a \gls{thrd} that wants to start or stop running is not prevented by other threads wanting to do the same.
     28        \item A fairness guarantee: a \at that is ready to run is not prevented by another thread.
     29        \item A performance guarantee: a \at that wants to start or stop running is not prevented by other threads wanting to do the same.
    3030\end{enumerate}
    3131
    3232It is important to note that these guarantees are expected only up to a point.
    33 \Glspl{thrd} that are ready to run should not be prevented to do so, but they still share the limited hardware resources.
    34 Therefore, the guarantee is considered respected if a \gls{thrd} gets access to a \emph{fair share} of the hardware resources, even if that share is very small.
     33\Glspl{at} that are ready to run should not be prevented from doing so, but they still share the limited hardware resources.
     34Therefore, 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.
    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 to other popular languages, the guarantee is consider achieved.
     42Therefore, if the cost of scheduling is competitive with other popular languages, the guarantee is considered 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, 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 or 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 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 \gls{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 \gls{thrd}, and as consequence cache lines, to a \gls{hthrd} that is currently available.
    71 Note that this section discusses \emph{internal locality}, \ie, the locality of the data used by the scheduler versus \emph{external locality}, \ie, how the data used by the application is affected by scheduling.
     70Indeed, 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.
     71Note 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.
    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 \gls{thrd} awaits running is shown as the time the ready \gls{thrd} waits increases, Ready Time, the chances that its data is still in cache decreases, Locality.
    83         At the same time, the need for fairness increases since other \glspl{thrd} may have the chance to run many times, breaking the fairness model.
     82        \caption[Fairness vs Locality graph]{Rule of thumb Fairness vs Locality graph \smallskip\newline The importance of Fairness and Locality while a ready \at awaits running is shown as the time the ready \at waits increases (Ready Time) the chances that its data is still in cache decreases (Locality).
     83        At the same time, the need for fairness increases since other \ats may have the chance to run many times, breaking the fairness model.
    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 dequeues \ats.
    95 One could expect that doubling the number of \procs would double the rate at which \ats are dequeued, but contention on the internal data structure of the scheduler can lead to worst 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 dequeue \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 diminish the 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 migration.
     99Another important source of scheduling latency is \glslink{atmig}{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{subqueues} forming the logical ready-queue and the subqueues are accessed by multiple \glspl{hthrd} without interfering.
     110The 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.
    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 subqueue and \glspl{proc} only access each other's subqueue 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 sub-queue and \glspl{proc} only access each other's sub-queue 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 pathological cases work stealing can lead to indefinite starvation.
    123 
    124 Based 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.
     122Chapter~\ref{microbench} shows that, in pathological cases, work stealing can lead to indefinite starvation.
     123
     124Based 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.
    125125
    126126\subsection{Relaxed-FIFO}
    127 A different scheduling approach is to create a ``relaxed-FIFO'' queue, as in \todo{cite Trevor's paper}.
    128 This approach forgoes any ownership between \gls{proc} and subqueue, and simply creates a pool of ready-queues from which \glspl{proc} pick.
     127A different scheduling approach is to create a ``relaxed-FIFO'' queue, as in \cite{alistarh2018relaxed}.
     128This approach forgoes any ownership between \gls{proc} and sub-queue, and simply creates a pool of sub-queues from which \glspl{proc} pick.
    129129Scheduling is performed as follows:
    130130\begin{itemize}
    131131\item
    132 All subqueues are protected by TryLocks.
    133 \item
    134 Timestamps are added to each element of a subqueue.
    135 \item
    136 A \gls{proc} randomly tests ready queues until it has acquired one or two queues.
    137 \item
    138 If two queues are acquired, the older of the two \ats at the front the acquired queues is dequeued.
    139 \item
    140 Otherwise the \ats from the single queue is dequeued.
     132All sub-queues are protected by TryLocks.
     133\item
     134Timestamps are added to each element of a sub-queue.
     135\item
     136A \gls{proc} randomly tests sub-queues until it has acquired one or two queues.
     137\item
     138If two queues are acquired, the older of the two \ats is dequeued from the front of the acquired queues.
     139\item
     140Otherwise, the \at 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 subqueue results in unfairness for its \ats in comparison to a \gls{proc} with a short subqueue.
     144This 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.
    145145This unfairness persists until a \gls{proc} runs out of work and steals.
    146146
    147 An 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.
     147An 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.
    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, makes the relaxed-FIFO queue a good candidate to form the basis of a new scheduler.
     154The inherent fairness and good performance with many \ats make 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 subqueues are empty.
    157 Furthermore, the non-empty subqueues are unlikely to hold more than one item.
    158 The consequence is that a random dequeue operation is likely to pick an empty subqueue, resulting in an unbounded number of selections.
    159 This state is generally unstable: each subqueue 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 subqueue and every push is expected to add to an empty subqueue.
    161 In the worst case, a check of the subqueues sees all are empty or full.
     156In these situations, the wide sharding of the ready queue means most of its sub-queues are empty.
     157Furthermore, the non-empty sub-queues are unlikely to hold more than one item.
     158The consequence is that a random dequeue operation is likely to pick an empty sub-queue, resulting in an unbounded number of selections.
     159This state is generally unstable: each sub-queue 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 sub-queue and every push is expected to add to an empty sub-queue.
     161In the worst case, a check of the sub-queues 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 subqueue 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 subqueues.
     164The 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}.
     165This sharded data can be organized in different forms, \eg a bitmask or a binary tree that tracks the nonempty sub-queues.
    166166Specifically, many modern architectures have powerful bitmask manipulation instructions or searching a binary tree has good Big-O complexity.
    167 However, precisely tracking nonempty subqueues is problematic.
    168 The reason is that the subqueues 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 subqueues.
    170 Otherwise, it does not provide useful information because reading this new data structure risks being as costly as simply picking a subqueue at random.
    171 But if the tracking mechanism \emph{is} denser than the shared subqueues, than constant updates invariably create a new source of contention.
     167However, precisely tracking nonempty sub-queues is problematic.
     168The reason is that the sub-queues 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 sub-queues.
     170Otherwise, it does not provide useful information because reading this new data structure risks being as costly as simply picking a sub-queue at random.
     171But if the tracking mechanism \emph{is} denser than the shared sub-queues, then 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 subqueues, than 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 sub-queues, then 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 subqueue so this information quickly becomes stale.
     177Each \proc is only aware of the last state it saw about each sub-queue 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 actually be beneficial.
    182 If 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.
    183 This suggests to the following approach:
    184 
    185 \subsection{Dynamic Entropy}\cit{https://xkcd.com/2318/}
    186 The Relaxed-FIFO approach can be made to handle the case of mostly empty subqueues by tweaking the \glsxtrlong{prng}.
    187 The \glsxtrshort{prng} state can be seen as containing a list of all the future subqueues 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 subqueues that were accessed.
    189 Luckily, bidirectional \glsxtrshort{prng} algorithms do exist, \eg some Linear Congruential Generators\cit{https://en.wikipedia.org/wiki/Linear\_congruential\_generator} support running the algorithm backwards while offering good quality and performance.
     181However, using a very low-cost but inaccurate approach for local tracking can still be beneficial.
     182If 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.
     183This suggests the following approach:
     184
     185\subsection{Dynamic Entropy}\cite{xkcd:dynamicentropy}
     186The Relaxed-FIFO approach can be made to handle the case of mostly empty sub-queues by tweaking the \glsxtrlong{prng}.
     187The \glsxtrshort{prng} state can be seen as containing a list of all the future sub-queues 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 sub-queues that were accessed.
     189Luckily, 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.
    190190This particular \glsxtrshort{prng} can be used as follows:
    191191\begin{itemize}
    192192\item
    193 Each \proc maintains two \glsxtrshort{prng} states, refereed to as $F$ and $B$.
    194 \item
    195 When a \proc attempts to dequeue a \at, it picks a subqueue by running $B$ backwards.
    196 \item
    197 When a \proc attempts to enqueue a \at, it runs $F$ forward picking a subqueue to enqueue to.
    198 If the enqueue is successful, the state $B$ is overwritten with the content of $F$.
     193Each \proc maintains two \glsxtrshort{prng} states, referred to as $F$ and $B$.
     194\item
     195When a \proc attempts to dequeue a \at, it picks a sub-queue by running $B$ backwards.
     196\item
     197When a \proc attempts to enqueue a \at, it runs $F$ forward picking a sub-queue to enqueue to.
     198If the enqueue is successful, 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 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.
     201When 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.
    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++}
     210\section{Work Stealing++}\label{helping}
    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 subqueues.
     212First, the relaxed-FIFO algorithm has fundamentally better fairness because each \proc always monitors all sub-queues.
    213213Therefore, the work-stealing algorithm must be prepended with some monitoring.
    214 Before attempting to dequeue from a \proc's subqueue, the \proc must make some effort to ensure other subqueues are not being neglected.
     214Before attempting to dequeue from a \proc's sub-queue, the \proc must make some effort to ensure other sub-queues 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 subqueues offers the sharding, two per \glspl{proc}.
    222         Each \gls{proc} can access all of the subqueues.
     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.
    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 subqueues are placed in an array so \procs can access them in constant time.
     228This structure is similar to classic work-stealing except the sub-queues 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 subqueue and compares its timestamp to the timestamps of its local subqueue(s).
     232When 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).
    233233The oldest waiting \at is dequeued to provide global fairness.
    234234
    235 However, this na\"ive implemented has performance problems.
     235However, this na\"ive implementation 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 slowdown to the level of relaxed-FIFO.
     238These bursts can cause increased migrations and make this work-stealing approach slow down 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 subqueue.}
     243        \caption[\CFA design with Moving Average]{\CFA design with Moving Average \smallskip\newline A moving average is added to each sub-queue.}
    244244        \label{fig:base-ma}
    245245\end{figure}
    246246
    247 A simple solution to this problem is to use an exponential moving average\cit{https://en.wikipedia.org/wiki/Moving\_average\#Exponential\_moving\_average} (MA) instead of a raw timestamps, shown in Figure~\ref{fig:base-ma}.
    248 Note, this is more complex because the \at at the head of a subqueue is still waiting, so its wait time has not ended.
    249 Therefore, the exponential moving average is actually an exponential moving average of how long each dequeued \at has waited.
    250 To 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.
     247A 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}.
     248Note 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.
     249Therefore, the exponential moving average is an average of how long each dequeued \at has waited.
     250To 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.
    251251This new waiting is averaged with the stored average.
    252 To further limit migration, a bias can be added to a local subqueue, where a remote subqueue is helped only if its moving average is more than $X$ times the local subqueue's average.
     252To 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.
    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 or no starvation.
    257 The 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.
    258 To 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.
    259 Conversely, the active subqueues do not benefit much from helping since starvation is already a non-issue.
    260 This puts this algorithm in the awkward situation of paying for a cost that is largely unnecessary.
    261 The good news is that this problem can be mitigated
    262 
    263 \subsection{Redundant Timestamps}
    264 The problem with polling remote subqueues is that correctness is critical.
    265 There must be a consensus among \procs on which subqueues hold which \ats, as the \ats are in constant motion.
    266 Furthermore, since timestamps are use for fairness, it is critical to have consensus on which \at is the oldest.
    267 However, when deciding if a remote subqueue is worth polling, correctness is less of a problem.
    268 Since the only requirement is that a subqueue 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 unfairness or no starvation.
     257The 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.
     258To 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.
     259Conversely, the active sub-queues 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 largely unnecessary cost.
     261The good news is that this problem can be mitigated.
     262
     263\subsection{Redundant Timestamps}\label{relaxedtimes}
     264The problem with polling remote sub-queues is that correctness is critical.
     265There must be a consensus among \procs on which sub-queues hold which \ats, as the \ats are in constant motion.
     266Furthermore, since timestamps are used for fairness, it is critical to have a consensus on which \at is the oldest.
     267However, when deciding if a remote sub-queue is worth polling, correctness is less of a problem.
     268Since the only requirement is that a sub-queue 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 less cache invalidations.
     270Furthermore, stale timestamps can be desirable since lower freshness requirements mean fewer 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 subqueue's critical sections using relaxed atomics.
     273This copy is updated \emph{after} the sub-queue'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 really are but appearing fresher can be a problem.
    288 For the timestamps, this means missing writes to the timestamp is acceptable since they make the head \at look older.
     287Therefore, it is acceptable if stale data makes queues appear older than they are but appearing fresher can be a problem.
     288For the timestamps, this means it is acceptable to miss writes to the timestamp 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 satisfy the limited correctness that is required.
     290Therefore, this unprotected read of the timestamp and average satisfies 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 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.
     294For 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.
    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 L3 cache.
     315In contrast, in Figure~\ref{fig:cache-noshare} misses in the L2 cache can be satisfied by either instance of the 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 grow, so too does the chance that the random helping causes significant cache latency.
    319 The solution is for the scheduler be aware of the cache topology.
     318Hence, as the number of L3 instances grows, so too does the chance that the random helping causes significant cache latency.
     319The solution is for the scheduler to 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 subqueues of the ready queue are local to which subcomponents of the cache structure.
    326 Once 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{
     325This 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.
     326Once 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{
    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 subqueues to cache structure is to statically tie subqueues to CPUs.
    330 Instead of having each subqueue local to a specific \proc, the system is initialized with subqueues for each hardware hyperthread/core up front.
    331 Then \procs dequeue and enqueue by first asking which CPU id they are executing on, in order to identify which subqueues are the local ones.
     329The simplest approach for mapping sub-queues to cache structure is to statically tie sub-queues to CPUs.
     330Instead of having each sub-queue local to a specific \proc, the system is initialized with sub-queues for each hardware hyperthread/core up front.
     331Then \procs dequeue and enqueue by first asking which CPU id they are executing on, to identify which sub-queues 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 subqueues and the bias against subqueues tied to different cache substructures make it unlikely that every subqueue is picked.
    337 To make things worst, the small number of \procs mean that few helping attempts are made.
    338 This combination of low selection and few helping attempts allow a \at to become stranded on a subqueue 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 actually take multiple seconds for a \at to get dequeued from a remote queue.
    340 Therefore, a more dynamic matching of subqueues to cache instance is needed.
     336In 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.
     337To make things worst, the small number of \procs means that few helping attempts are made.
     338This 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.
     339On 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.
     340Therefore, a more dynamic match of sub-queues to cache instances is needed.
    341341
    342342\subsection{Topological Work Stealing}
    343343\label{s:TopologicalWorkStealing}
    344 Therefore, 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.
     344The 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.
    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 subqueues are tied to \procs, each \proc can then update the cache instance mapped to the local subqueue(s).
    349 To avoid unnecessary cache line invalidation, the map is only written to if the mapping changes.
     348Since sub-queues are tied to \procs, each \proc can then update the cache instance mapped to the local sub-queue(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

    r12df6fe r4520b77e  
    11\chapter{Macro-Benchmarks}\label{macrobench}
    2 
    3 \section{Static Web-Server}
    4 
    5 In Memory Plain Text
    6 
    7 Networked ZIPF
    8 
    9 Nginx : 5Gb still good, 4Gb starts to suffer
    10 
    11 Cforall : 10Gb too high, 4 Gb too low
     2The previous chapter demonstrated the \CFA scheduler achieves its equivalent performance goal in small and controlled \at-scheduling scenarios.
     3The next step is to demonstrate performance stays true in more realistic and complete scenarios.
     4Therefore, this chapter exercises both \at and I/O scheduling using two flavours of web servers that demonstrate \CFA performs competitively compared to web servers used in production environments.
     5
     6Web servers are chosen because they offer fairly simple applications that perform complex I/O, both network and disk, and are useful as standalone products.
     7Furthermore, web servers are generally amenable to parallelization since their workloads are mostly homogeneous.
     8Therefore, web servers offer a stringent performance benchmark for \CFA.
     9Indeed, existing web servers have close to optimal performance, while the homogeneity of the workload means fairness may not be a problem.
     10As such, these experiments should highlight the overhead due to any \CFA fairness cost in realistic scenarios.
    1211
    1312\section{Memcached}
     13Memcached~\cite{memcached} is an in-memory key-value store used in many production environments, \eg \cite{atikoglu2012workload}.
     14The Memcached server is so popular there exists a full-featured front-end for performance testing, called @mutilate@~\cite{GITHUB:mutilate}.
     15Experimenting 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.
     16Note that this experiment does not exercise the \io subsystem with regard to disk operations because Memcached is an in-memory server.
    1417
    1518\subsection{Benchmark Environment}
    16 These experiments are run on a cluster of homogenous Supermicro SYS-6017R-TDF compute nodes with the following characteristics:
     19The Memcached experiments are run on a cluster of homogeneous Supermicro SYS-6017R-TDF compute nodes with the following characteristics.
     20\begin{itemize}
     21\item
    1722The server runs Ubuntu 20.04.3 LTS on top of Linux Kernel 5.11.0-34.
     23\item
    1824Each node has 2 Intel(R) Xeon(R) CPU E5-2620 v2 running at 2.10GHz.
    19 These CPUs have 6 cores per CPUs and 2 \glspl{hthrd} per core, for a total of 24 \glspl{hthrd}.
    20 The cpus each have 384 KB, 3 MB and 30 MB of L1, L2 and L3 caches respectively.
    21 Each node is connected to the network through a Mellanox 10 Gigabit Ethernet port.
    22 The network route uses 1 Mellanox SX1012 10/40 Gigabit Ethernet cluster switch.
    23 
    24 
     25\item
     26Each CPU has 6 cores and 2 \glspl{hthrd} per core, for a total of 24 \glspl{hthrd}.
     27\item
     28A CPU has 384 KB, 3 MB and 30 MB of L1, L2 and L3 caches, respectively.
     29\item
     30The compute nodes are connected to the network through a Mellanox 10 Gigabit Ethernet port.
     31\item
     32Network routing is performed by a Mellanox SX1012 10/40 Gigabit Ethernet switch.
     33\end{itemize}
     34
     35\subsection{Memcached threading}\label{memcd:thrd}
     36Memcached can be built to use multiple threads in addition to its @libevent@ subsystem to handle requests.
     37When enabled, the threading implementation operates as follows~\cite[\S~16.2.2.8]{MemcachedThreading}:
     38\begin{itemize}
     39\item
     40Threading is handled by wrapping functions within the code to provide basic protection from updating the same global structures at the same time.
     41\item
     42Each thread uses its own instance of the @libevent@ to help improve performance.
     43\item
     44TCP/IP connections are handled with a single thread listening on the TCP/IP socket.
     45Each connection is then distributed to one of the active threads on a simple round-robin basis.
     46Each connection then operates solely within this thread while the connection remains open.
     47\item
     48For UDP connections, all the threads listen to a single UDP socket for incoming requests.
     49Threads that are not currently dealing with another request ignore the incoming packet.
     50One of the remaining, non-busy, threads reads the request and sends the response.
     51This implementation can lead to increased CPU \gls{load} as threads wake from sleep to potentially process the request.
     52\end{itemize}
     53Here, 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.
     54Alternative web server architectures are:
     55\begin{itemize}
     56\item
     57pipeline~\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
     59thread-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}
     61Both pipelining and thread-per-connection add flexibility to the implementation, as the serving logic can now block without halting the event engine~\cite{Harji12}.
     62
     63However, \gls{kthrd}ing in Memcached is not amenable to this work, which is based on \gls{uthrding}.
     64While it is feasible to layer one user thread per kernel thread, it is not meaningful as it fails to exercise the user runtime;
     65it simply adds extra scheduling overhead over the kernel threading.
     66Hence, there is no direct way to compare Memcached using a kernel-level runtime with a user-level runtime.
     67
     68Fortunately, there exists a recent port of Memcached to \gls{uthrding} based on the libfibre~\cite{DBLP:journals/pomacs/KarstenB20} \gls{uthrding} library.
     69This port did all of the heavy-lifting, making it straightforward to replace the libfibre user-threading with the \gls{uthrding} in \CFA.
     70It is now possible to compare the original kernel-threading Memcached with both user-threading runtimes in libfibre and \CFA.
     71
     72As 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}
     80This experiment is done by having the clients establish 15,360 total connections, which persist for the duration of the experiment.
     81The 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.
     82Figure~\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
     84Like 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.
     85The solid line represents the median while the dashed and dotted lines represent the maximum and minimum respectively.
     86For rates below 500K queries per second, all three web servers match the client rate.
     87Beyond 500K, the web servers cannot match the client rate.
     88During this interval, vanilla Memcached achieves the highest web server throughput, with libfibre and \CFA slightly lower but very similar throughput.
     89Overall 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.
    2590
    2691\begin{figure}
    2792        \centering
    28         \input{result.memcd.updt.qps.pstex_t}
    29         \caption[Churn Benchmark : Throughput on Intel]{Churn Benchmark : Throughput on Intel\smallskip\newline Description}
    30         \label{fig:memcd:updt:qps}
     93        \resizebox{0.83\linewidth}{!}{\input{result.memcd.rate.qps.pstex_t}}
     94        \caption[Memcached Benchmark: Throughput]{Memcached Benchmark: Throughput\smallskip\newline Desired vs Actual query rate for 15,360 connections. Target QPS is the query rate that the clients are attempting to maintain and Actual QPS is the rate at which the server can respond.}
     95        \label{fig:memcd:rate:qps}
     96%\end{figure}
     97\bigskip
     98%\begin{figure}
     99        \centering
     100        \resizebox{0.83\linewidth}{!}{\input{result.memcd.rate.99th.pstex_t}}
     101        \caption[Memcached Benchmark: 99th Percentile Latency]{Memcached Benchmark: 99th Percentile Latency\smallskip\newline 99th Percentile of the response latency as a function of \emph{desired} query rate for 15,360 connections. }
     102        \label{fig:memcd:rate:tail}
    31103\end{figure}
     104
     105\subsection{Tail Latency}
     106Another 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?
     107Since 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.
     108Figure~\ref{fig:memcd:rate:tail} shows the 99th percentile latency results for the same Memcached experiment.
     109
     110Again, each experiment is run 15 times with the median, maximum and minimum plotted with different lines.
     111As 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.
     112Because of this dramatic increase, the Y-axis is presented using a log scale.
     113Note 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
     115For all three servers, the saturation point is reached before 500K queries per second, which is when throughput starts to decline among the web servers.
     116In this experiment, all three web servers are much more distinguishable than in the throughput experiment.
     117Vanilla 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.
     119Overall, all three web servers achieve microsecond latencies and the increases in latency mostly follow each other.
     120
     121\subsection{Update rate}
     122Since Memcached is effectively a simple database, the cache information can be written to concurrently by multiple queries.
     123And since writes can significantly affect performance, it is interesting to see how varying the update rate affects performance.
     124Figure~\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
     177In the end, this experiment mostly demonstrates that the performance of Memcached is affected very little by the update rate.
     178Indeed, since values read/written can be bigger than what can be read/written atomically, a lock must be acquired while the value is read.
     179Hence, I believe the underlying locking pattern for reads and writes is fairly similar, if not the same.
     180These 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.
     181In the end, the update experiment shows that \CFA is achieving equivalent performance.
     182
     183\section{Static Web-Server}
     184The Memcached experiment does not exercise two key aspects of the \io subsystem: accept\-ing new connections and interacting with disks.
     185On 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{
     186web 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.}
     187The static web server experiment compares NGINX~\cite{nginx} with a custom \CFA-based web server developed for this experiment.
     188
     189\subsection{NGINX threading}
     190NGINX is a high-performance, \emph{full-service}, event-driven web server.
     191It can handle both static and dynamic web content, as well as serve as a reverse proxy and a load balancer~\cite{reese2008nginx}.
     192This wealth of capabilities comes with a variety of potential configurations, dictating available features and performance.
     193The NGINX server runs a master process that performs operations such as reading configuration files, binding to ports, and controlling worker processes.
     194When running as a static web server, it uses an event-driven architecture to service incoming requests.
     195Incoming connections are assigned a \emph{stackless} HTTP state machine and worker processes can handle thousands of these state machines.
     196For 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.
     197Because of the realities of Linux, see Subsection~\ref{ononblock}, NGINX also maintains a pool of auxiliary threads to handle blocking \io.
     198The configuration can set the number of worker processes desired, as well as the size of the auxiliary pool.
     199However, for the following experiments, NGINX is configured to let the master process decide the appropriate number of threads.
     200
     201\subsection{\CFA web server}
     202The \CFA web server is a straightforward thread-per-connection web server, where a fixed number of \ats are created upfront.
     203Each \at calls @accept@, through @io_uring@, on the listening port and handles the incoming connection once accepted.
     204Most of the implementation is fairly straightforward;
     205however, the inclusion of file \io found an @io_uring@ problem that required an unfortunate workaround.
     206
     207Normally, 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.
     208While @io_uring@ does not support @sendfile@, it does support @splice@~\cite{MAN:splice}, which is strictly more powerful.
     209However, because of how Linux implements file \io, see Subsection~\ref{ononblock}, @io_uring@ must delegate splice calls to worker threads \emph{inside} the kernel.
     210As 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}.
     211Such a high number of \glspl{kthrd} slows Linux significantly.
     212Rather than abandon the experiment, the \CFA web server was switched to @sendfile@.
     213
     214Starting with \emph{blocking} @sendfile@, \CFA achieves acceptable performance until saturation is reached.
     215At saturation, latency increases and client connections begin to timeout.
     216As 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.
     217Indeed, until the server connection is closed, the connection lingers in the CLOSE-WAIT TCP state~\cite{rfc:tcp} and the TCP buffers are preserved.
     218However, this poses a problem using blocking @sendfile@ calls:
     219when @sendfile@ blocks, the \proc rather than the \at blocks, preventing other connections from closing their sockets.
     220The 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.}
     222This effect results in a negative feedback loop where more timeouts lead to more @sendfile@ calls running out of resources.
     223
     224Normally, this problem is addressed by using @select@/@epoll@ to wait for sockets to have sufficient resources.
     225However, 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:
     226all calls simply immediately return @EAGAIN@ and all asynchronicity is lost.
     227
     228Switching the entire \CFA runtime to @epoll@ for this experiment is unrealistic and does not help in the evaluation of the \CFA runtime.
     229For this reason, the \CFA web server sets and resets the @O_NONBLOCK@ flag before and after any calls to @sendfile@.
     230However, when the nonblocking @sendfile@ returns @EAGAIN@, the \CFA server cannot block the \at because its I/O subsystem uses @io_uring@.
     231Therefore, the \at spins performing the @sendfile@, yields if the call returns @EAGAIN@ and retries in these cases.
     232
     233Interestingly, 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.
     234Presumably, this limit would prevent the explosion of \glspl{kthrd}, which justified using @sendfile@ over @io_uring@ and @splice@.
     235However, recall from Section~\ref{iouring} that @io_uring@ maintains two pools of workers: bounded workers and unbounded workers.
     236For a web server, the unbounded workers should handle accepts and reads on sockets, and the bounded workers should handle reading files from disk.
     237This setup allows fine-grained control over the number of workers needed for each operation type and presumably leads to good performance.
     238
     239However, @io_uring@ must contend with another reality of Linux: the versatility of @splice@.
     240Indeed, @splice@ can be used both for reading and writing to or from any type of file descriptor.
     241This generality makes it ambiguous which pool @io_uring@ should delegate @splice@ calls to.
     242In 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.
     243To make things more complicated, @splice@ can read from a pipe and write to a regular file.
     244In this case, the read is an unbounded operation but the write is a bounded one.
     245This leaves @io_uring@ in a difficult situation where it can be very difficult to delegate splice operations to the appropriate type of worker.
     246Since there is little or no context available to @io_uring@, it seems to always delegate @splice@ operations to the unbounded workers.
     247This 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@.
     248For this reason, the @sendfile@ approach described above is still the most performant solution in Linux 5.15.
     249
     250One 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.
     251However, I do not believe this solution is appropriate in general;
     252it simply replaces my current web server hack with a different, equivalent hack.
     253
     254\subsection{Benchmark Environment}
     255Unlike the Memcached experiment, the web server experiment is run on a heterogeneous environment.
     256\begin{itemize}
     257\item
     258The server runs Ubuntu 20.04.4 LTS on top of Linux Kernel 5.13.0-52.
     259\item
     260The 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
     262The computer is booted with only 8 CPUs enabled, which is sufficient to achieve line rate.
     263\item
     264Each CPU has 64 KB, 256 KiB and 8 MB of L1, L2 and L3 caches respectively.
     265\item
     266The computer is booted with only 25GB of memory to restrict the file-system cache.
     267\end{itemize}
     268There are 8 client machines.
     269\begin{itemize}
     270\item
     271A client runs a 2.6.11-1 SMP Linux kernel, which permits each client load generator to run on a separate CPU.
     272\item
     273It has two 2.8 GHz Xeon CPUs, and four one-gigabit Ethernet cards.
     274\item
     275Network routing is performed by an HP 2530 10 Gigabit Ethernet switch.
     276\item
     277A client machine runs two copies of the workload generator.
     278\end{itemize}
     279The clients and network are sufficiently provisioned to drive the server to saturation and beyond.
     280Hence, any server effects are attributable solely to the runtime system and web server.
     281Finally, 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.
     282Trying 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}
     285To 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.
     286The clients run httperf~\cite{httperf} to request a set of static files.
     287The httperf load generator is used with session files to simulate a large number of users and to implement a partially open-loop system.
     288This 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
     290The 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.
     291This distribution is representative of users accessing static data through a web browser.
     292Each 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.
     293Some trace elements have multiple file names that are read across a persistent connection.
     294A client times out if the server does not complete a request within 10 seconds.
     295
     296An experiment consists of running a server with request rates ranging from 10,000 to 70,000 requests per second;
     297each rate takes about 5 minutes to complete.
     298There are 20 seconds of idle time between rates and between experiments to allow connections in the TIME-WAIT state to clear.
     299Server throughput is measured both at peak and after saturation (\ie after peak).
     300Peak indicates the level of client requests the server can handle and after peak indicates if a server degrades gracefully.
     301Throughput is measured by aggregating the results from httperf for all the clients.
     302
     303This experiment can be done for two workload scenarios by reconfiguring the server with different amounts of memory: 25 GB and 2.5 GB.
     304The two workloads correspond to in-memory and disk-I/O respectively.
     305Due to the Zipf distribution, only a small amount of memory is needed to service a significant percentage of requests.
     306Table~\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.
     307Interestingly, 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 \\
     314Memory (MB)   & 0.5 & 1.5 & 8.4 & 12.2 & 20.1 & 94.3 & \textbf{126.5} & 2,291.6 \\
     315File Size (B) & 409 & 716 & 4,096 & 5,120 & 7,168 & 40,960 & \textbf{51,200} & 921,600
     316\end{tabular}
     317\end{table}
    32318
    33319\begin{figure}
    34320        \centering
    35         \input{result.memcd.updt.lat.pstex_t}
    36         \caption[Churn Benchmark : Throughput on Intel]{Churn Benchmark : Throughput on Intel\smallskip\newline Description}
    37         \label{fig:memcd:updt:lat}
     321        \subfloat[][Throughput]{
     322                \resizebox{0.85\linewidth}{!}{\input{result.swbsrv.25gb.pstex_t}}
     323                \label{fig:swbsrv:ops}
     324        }
     325
     326        \subfloat[][Rate of Errors]{
     327                \resizebox{0.85\linewidth}{!}{\input{result.swbsrv.25gb.err.pstex_t}}
     328                \label{fig:swbsrv:err}
     329        }
     330        \caption[Static web server Benchmark: Throughput]{Static web server Benchmark: Throughput\smallskip\newline Throughput vs request rate for short-lived connections.}
     331        \label{fig:swbsrv}
    38332\end{figure}
    39333
    40 \begin{figure}
    41         \centering
    42         \input{result.memcd.rate.qps.pstex_t}
    43         \caption[Churn Benchmark : Throughput on Intel]{Churn Benchmark : Throughput on Intel\smallskip\newline Description}
    44         \label{fig:memcd:rate:qps}
    45 \end{figure}
    46 
    47 \begin{figure}
    48         \centering
    49         \input{result.memcd.rate.99th.pstex_t}
    50         \caption[Churn Benchmark : Throughput on Intel]{Churn Benchmark : Throughput on Intel\smallskip\newline Description}
    51         \label{fig:memcd:rate:tail}
    52 \end{figure}
     334Figure~\ref{fig:swbsrv} shows the results comparing \CFA to NGINX in terms of throughput.
     335These results are fairly straightforward.
     336Both servers achieve the same throughput until around 57,500 requests per second.
     337Since 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.
     338Once the saturation point is reached, both servers are still very close.
     339NGINX achieves slightly better throughput.
     340However, 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.
     341This suggests \CFA is slightly fairer with less throughput, while NGINX sacrifices fairness for more throughput.
     342This experiment demonstrates that the \CFA web server is able to match the performance of NGINX up to and beyond the saturation point of the machine.
     343
     344\subsection{Disk Operations}
     345With 25GB of memory, the entire experimental file-set plus the web server and OS fit in memory.
     346If memory is constrained, the OS must evict files from the file cache, which causes @sendfile@ to read from disk.\footnote{
     347For 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.}
     348web servers can behave very differently once file I/O begins and increases.
     349Hence, prior work~\cite{Harji10} suggests running both kinds of experiments to test overall web server performance.
     350
     351However, after reducing memory to 2.5GB, the problem with @splice@ and @io_uring@ rears its ugly head again.
     352Indeed, in the in-memory configuration, replacing @splice@ with calls to @sendfile@ works because the bounded side basically never blocks.
     353Like @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.
     354The unbounded side can be handled by yielding when it returns @EAGAIN@, as mentioned above, but this trick does not work for the bounded side.
     355The only solution for the bounded side is to spawn more threads and let these handle the blocking.
     356
     357Supporting this case in the web server would require creating more \procs or creating a dedicated thread pool.
     358However, 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;
     359hence, I decided to forgo experiments on low-memory performance.
  • doc/theses/thierry_delisle_PhD/thesis/text/eval_micro.tex

    r12df6fe r4520b77e  
    11\chapter{Micro-Benchmarks}\label{microbench}
    22
    3 The first step in evaluating this work is to test-out small controlled cases to ensure the basics work properly.
    4 This chapter presents five different experimental setup, evaluating some of the basic features of \CFA's scheduler.
    5 
    6 \section{Benchmark Environment}
     3The first step in evaluating this work is to test small controlled cases to ensure the basics work properly.
     4This chapter presents five different experimental setups for evaluating the basic features of the \CFA, libfibre~\cite{libfibre}, Go, and Tokio~\cite{Tokio} schedulers.
     5All of these systems have a \gls{uthrding} model.
     6The goal of this chapter is to show that the \CFA scheduler obtains equivalent performance to other, less fair, schedulers through the different experiments.
     7Note that only the code of the \CFA tests is shown;
     8all tests in the other systems are functionally identical and available online~\cite{GITHUB:SchedulingBenchmarks}.
     9
     10\section{Benchmark Environment}\label{microenv}
     11
    712All benchmarks are run on two distinct hardware platforms.
    813\begin{description}
    914\item[AMD] is a server with two AMD EPYC 7662 CPUs and 256GB of DDR4 RAM.
    10 The EPYC CPU has 64 cores with 2 \glspl{hthrd} per core, for 128 \glspl{hthrd} per socket with 2 sockets for a total of 256 \glspl{hthrd}.
     15The 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}.
    1116Each CPU has 4 MB, 64 MB and 512 MB of L1, L2 and L3 caches, respectively.
    12 Each 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}.
     17Each 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}.
    1318The server runs Ubuntu 20.04.2 LTS on top of Linux Kernel 5.8.0-55.
    1419
     
    2025\end{description}
    2126
    22 For all benchmarks, @taskset@ is used to limit the experiment to 1 NUMA Node with no hyper threading.
    23 If more \glspl{hthrd} are needed, then 1 NUMA Node with hyperthreading is used.
    24 If still more \glspl{hthrd} are needed, then the experiment is limited to as few NUMA Nodes as needed.
    25 
    26 The limited sharing of the last-level cache on the AMD machine is markedly different than the Intel machine.
    27 Indeed, while on both architectures L2 cache misses that are served by L3 caches on a different CPU incur a significant latency, on the AMD it is also the case that cache misses served by a different L3 instance on the same CPU still incur high latency.
    28 
    29 
    30 \section{Cycling latency}
     27For all benchmarks, @taskset@ is used to limit the experiment to 1 NUMA node with no hyperthreading.
     28If more \glspl{hthrd} are needed, then 1 NUMA node with hyperthreading is used.
     29If still more \glspl{hthrd} are needed, then the experiment is limited to as few NUMA nodes as needed.
     30For 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.
     31This pattern is repeated between 49 and 96, between 97 and 144, and between 145 and 192.
     32On AMD, the same algorithm is used, but the machine only has 2 sockets.
     33So hyperthreading\footnote{
     34Hyperthreading normally refers specifically to the technique used by Intel, however, it is often used generically to refer to any equivalent feature.}
     35is used when the \proc count reaches 65 and 193.
     36
     37The limited sharing of the last-level cache on the AMD machine is markedly different from the Intel machine.
     38Indeed, 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
     42Each experiment is run 15 times varying the number of processors depending on the two different computers.
     43All experiments gather throughput data and secondary data for scalability or latency.
     44The 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{
     45An alternative display is to use error bars with min/max as the bottom/top for the bar.
     46However, this approach is not truly an error bar around a mean value and I felt the connected lines are easier to read.}
     47This graph presentation offers an overview of the distribution of the results for each experiment.
     48
     49For 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}).
     50Scalability uses the same data as throughput but the Y-axis is calculated as the number of \procs over the throughput.
     51In 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
     53The left column shows results for hundreds of \ats per \proc, enough to always keep every \proc busy.
     54The right column shows results for very few \ats per \proc, where the ready queues are expected to be near empty most of the time.
     55The 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
     59The most basic evaluation of any ready queue is the latency needed to push and pop one element from the ready queue.
     60Since these two operations also describe a @yield@ operation, many systems use this operation as the fundamental benchmark.
     61However, yielding can be treated as a special case by optimizing it away since the number of ready \ats does not change.
     62Hence, systems that perform this optimization have an artificial performance benefit because the yield becomes a \emph{nop}.
     63For this reason, I designed a different push/pop benchmark, called \newterm{Cycle Benchmark}.
     64This benchmark arranges several \ats into a ring, as seen in Figure~\ref{fig:cycle}, where the ring is a circular singly-linked list.
     65At runtime, each \at unparks the next \at before \glslink{atblock}{parking} itself.
     66Unparking 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
    3168\begin{figure}
    3269        \centering
    3370        \input{cycle.pstex_t}
    34         \caption[Cycle benchmark]{Cycle benchmark\smallskip\newline Each \gls{at} unparks the next \gls{at} in the cycle before parking itself.}
     71        \caption[Cycle benchmark]{Cycle benchmark\smallskip\newline Each \at unparks the next \at in the cycle before \glslink{atblock}{parking} itself.}
    3572        \label{fig:cycle}
    3673\end{figure}
    37 The most basic evaluation of any ready queue is to evaluate the latency needed to push and pop one element from the ready queue.
    38 Since these two operation also describe a @yield@ operation, many systems use this operation as the most basic benchmark.
    39 However, yielding can be treated as a special case by optimizing it away (dead code) since the number of ready \glspl{at} does not change.
    40 Not all systems perform this optimization, but those that do have an artificial performance benefit because the yield becomes a \emph{nop}.
    41 For this reason, I chose a different first benchmark, called \newterm{Cycle Benchmark}.
    42 This benchmark arranges a number of \glspl{at} into a ring, as seen in Figure~\ref{fig:cycle}, where the ring is a circular singly-linked list.
    43 At runtime, each \gls{at} unparks the next \gls{at} before parking itself.
    44 Unparking the next \gls{at} pushes that \gls{at} onto the ready queue as does the ensuing park.
    45 
    46 Hence, the underlying runtime cannot rely on the number of ready \glspl{at} staying constant over the duration of the experiment.
    47 In fact, the total number of \glspl{at} waiting on the ready queue is expected to vary because of the race between the next \gls{at} unparking and the current \gls{at} parking.
    48 That is, the runtime cannot anticipate that the current task will immediately park.
    49 As well, the size of the cycle is also decided based on this race, \eg a small cycle may see the chain of unparks go full circle before the first \gls{at} parks because of time-slicing or multiple \procs.
    50 Every runtime system must handle this race and cannot optimized away the ready-queue pushes and pops.
    51 To prevent any attempt of silently omitting ready-queue operations, the ring of \glspl{at} is made big enough so the \glspl{at} have time to fully park before being unparked again.
    52 (Note, an unpark is like a V on a semaphore, so the subsequent park (P) may not block.)
     74
     75Therefore, the underlying runtime cannot rely on the number of ready \ats staying constant over the duration of the experiment.
     76In 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}.
     77That is, the runtime cannot anticipate that the current task immediately parks.
     78As 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.
     79If 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.)
     81Every runtime system must handle this race and cannot optimize away the ready-queue pushes and pops.
     82To 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.
    5383Finally, to further mitigate any underlying push/pop optimizations, especially on SMP machines, multiple rings are created in the experiment.
    5484
    55 To avoid this benchmark being affected by idle-sleep handling, the number of rings is multiple times greater than the number of \glspl{proc}.
    56 This design avoids the case where one of the \glspl{proc} runs out of work because of the variation on the number of ready \glspl{at} mentioned above.
    57 
    58 Figure~\ref{fig:cycle:code} shows the pseudo code for this benchmark.
    59 There is additional complexity to handle termination (not shown), which requires a binary semaphore or a channel instead of raw @park@/@unpark@ and carefully picking the order of the @P@ and @V@ with respect to the loop condition.
     85Figure~\ref{fig:cycle:code} shows the pseudo code for this benchmark, where each cycle has 5 \ats.
     86There 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.
    6087
    6188\begin{figure}
     
    6491        count := 0
    6592        for {
     93                @this.next.wake()@
    6694                @wait()@
    67                 @this.next.wake()@
    6895                count ++
    6996                if must_stop() { break }
     
    7299}
    73100\end{cfa}
    74 \caption[Cycle Benchmark : Pseudo Code]{Cycle Benchmark : Pseudo Code}
     101\caption[Cycle Benchmark: Pseudo Code]{Cycle Benchmark: Pseudo Code}
    75102\label{fig:cycle:code}
     103\bigskip
     104        \subfloat[][Throughput, 100 cycles per \proc]{
     105                \resizebox{0.5\linewidth}{!}{
     106                        \input{result.cycle.jax.ops.pstex_t}
     107                }
     108                \label{fig:cycle:jax:ops}
     109        }
     110        \subfloat[][Throughput, 1 cycle per \proc]{
     111                \resizebox{0.5\linewidth}{!}{
     112                        \input{result.cycle.low.jax.ops.pstex_t}
     113                }
     114                \label{fig:cycle:jax:low:ops}
     115        }
     116
     117        \subfloat[][Scalability, 100 cycles per \proc]{
     118                \resizebox{0.5\linewidth}{!}{
     119                        \input{result.cycle.jax.ns.pstex_t}
     120                }
     121                \label{fig:cycle:jax:ns}
     122        }
     123        \subfloat[][Scalability, 1 cycle per \proc]{
     124                \resizebox{0.5\linewidth}{!}{
     125                        \input{result.cycle.low.jax.ns.pstex_t}
     126                }
     127                \label{fig:cycle:jax:low:ns}
     128        }
     129        \caption[Cycle Benchmark on Intel]{Cycle Benchmark on Intel\smallskip\newline Throughput and scalability as a function of \proc count, 5 \ats per cycle, and different cycle counts.
     130        For throughput, higher is better, for scalability, lower is better.
     131        Each series represent 15 independent runs, the dashed lines are the maximums of each series while the solid lines are the median and the dotted lines are the minimums.}
     132        \label{fig:cycle:jax}
     133\end{figure}
     134
     135\begin{figure}
     136        \subfloat[][Throughput, 100 cycles per \proc]{
     137                \resizebox{0.5\linewidth}{!}{
     138                        \input{result.cycle.nasus.ops.pstex_t}
     139                }
     140                \label{fig:cycle:nasus:ops}
     141        }
     142        \subfloat[][Throughput, 1 cycle per \proc]{
     143                \resizebox{0.5\linewidth}{!}{
     144                        \input{result.cycle.low.nasus.ops.pstex_t}
     145                }
     146                \label{fig:cycle:nasus:low:ops}
     147        }
     148
     149        \subfloat[][Scalability, 100 cycles per \proc]{
     150                \resizebox{0.5\linewidth}{!}{
     151                        \input{result.cycle.nasus.ns.pstex_t}
     152                }
     153                \label{fig:cycle:nasus:ns}
     154        }
     155        \subfloat[][Scalability, 1 cycle per \proc]{
     156                \resizebox{0.5\linewidth}{!}{
     157                        \input{result.cycle.low.nasus.ns.pstex_t}
     158                }
     159                \label{fig:cycle:nasus:low:ns}
     160        }
     161        \caption[Cycle Benchmark on AMD]{Cycle Benchmark on AMD\smallskip\newline Throughput and scalability as a function of \proc count, 5 \ats per cycle, and different cycle counts.
     162        For throughput, higher is better, for scalability, lower is better.
     163        Each series represent 15 independent runs, the dashed lines are the maximums of each series while the solid lines are the median and the dotted lines are the minimums.}
     164        \label{fig:cycle:nasus}
    76165\end{figure}
    77166
    78167\subsection{Results}
    79 Figure~\ref{fig:cycle:jax} shows the throughput as a function of \proc count, where each run uses 100 cycles per \proc and 5 \ats per cycle.
    80 
    81 \begin{figure}
    82         \subfloat[][Throughput, 100 \ats per \proc]{
    83                 \resizebox{0.5\linewidth}{!}{
    84                         \input{result.cycle.jax.ops.pstex_t}
    85                 }
    86                 \label{fig:cycle:jax:ops}
    87         }
    88         \subfloat[][Throughput, 1 \ats per \proc]{
    89                 \resizebox{0.5\linewidth}{!}{
    90                         \input{result.cycle.low.jax.ops.pstex_t}
    91                 }
    92                 \label{fig:cycle:jax:low:ops}
    93         }
    94 
    95         \subfloat[][Latency, 100 \ats per \proc]{
    96                 \resizebox{0.5\linewidth}{!}{
    97                         \input{result.cycle.jax.ns.pstex_t}
    98                 }
    99 
    100         }
    101         \subfloat[][Latency, 1 \ats per \proc]{
    102                 \resizebox{0.5\linewidth}{!}{
    103                         \input{result.cycle.low.jax.ns.pstex_t}
    104                 }
    105                 \label{fig:cycle:jax:low:ns}
    106         }
    107         \caption[Cycle Benchmark on Intel]{Cycle Benchmark on Intel\smallskip\newline Throughput as a function of \proc count with 100 cycles per \proc and 5 \ats per cycle.}
    108         \label{fig:cycle:jax}
    109 \end{figure}
    110 
    111 \todo{results discussion}
     168
     169Figures~\ref{fig:cycle:jax} and \ref{fig:cycle:nasus} show the results for the cycle experiment on Intel and AMD, respectively.
     170Looking 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.
     172Libfibre is slightly behind in this case but still scales decently.
     173As 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.
     174This effect even causes a decrease in throughput in libfibre's case.
     175As expected, this pattern repeats between \proc count 72 and 96.
     176
     177Looking 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.
     179Go achieves slightly better performance than \CFA and Tokio, but all three display significantly worst performance compared to the left column.
     180This decrease in performance is likely due to the additional overhead of the idle-sleep mechanism.
     181This 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.
     182Indeed, unlike the left column, it is likely that the ready queue is transiently empty, which likely triggers additional synchronization steps.
     183Interestingly, libfibre achieves better performance with 1 cycle.
     184
     185Looking 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.
     186Note the maximum of the Y-axis on Intel and AMD differ significantly.
     187Looking 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.
     188However, as the number of \procs grows higher, the results on AMD show notably more variability than on Intel.
     189The 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.
     190Looking 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.
     191This result is different than on Intel, where Tokio behaved like \CFA rather than behaving like Go.
     192Again, the same performance increase for libfibre is visible when running fewer \ats.
     193Note, I did not investigate the libfibre performance boost for 1 cycle in this experiment.
     194
     195The conclusion from both architectures is that all of the compared runtimes have fairly equivalent performance for this micro-benchmark.
     196Clearly, the pathological case with 1 cycle per \proc can affect fairness algorithms managing mostly idle processors, \eg \CFA, but only at high core counts.
     197In this case, \emph{any} helping is likely to cause a cascade of \procs running out of work and attempting to steal.
     198For this experiment, the \CFA scheduler has achieved the goal of obtaining equivalent performance to other, less fair, schedulers.
    112199
    113200\section{Yield}
    114 For completion, the classic yield benchmark is included.
    115 This benchmark is simpler than the cycle test: it creates many \glspl{at} that call @yield@.
     201
     202For completeness, the classic yield benchmark is included.
     203Here, the throughput is dominated by the mechanism used to handle the @yield@ function.
     204Figure~\ref{fig:yield:code} shows pseudo code for this benchmark, where the cycle @wait/next.wake@ is replaced by @yield@.
    116205As mentioned, this benchmark may not be representative because of optimization shortcuts in @yield@.
    117 The only interesting variable in this benchmark is the number of \glspl{at} per \glspl{proc}, where ratios close to 1 means the ready queue(s) can be empty.
    118 This scenario can put a strain on the idle-sleep handling compared to scenarios where there is plenty of work.
    119 Figure~\ref{fig:yield:code} shows pseudo code for this benchmark, where the @wait/next.wake@ is replaced by @yield@.
     206The 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.
    120207
    121208\begin{figure}
     
    131218}
    132219\end{cfa}
    133 \caption[Yield Benchmark : Pseudo Code]{Yield Benchmark : Pseudo Code}
     220\caption[Yield Benchmark: Pseudo Code]{Yield Benchmark: Pseudo Code}
    134221\label{fig:yield:code}
     222%\end{figure}
     223\bigskip
     224%\begin{figure}
     225        \subfloat[][Throughput, 100 \ats per \proc]{
     226                \resizebox{0.5\linewidth}{!}{
     227                        \input{result.yield.jax.ops.pstex_t}
     228                }
     229                \label{fig:yield:jax:ops}
     230        }
     231        \subfloat[][Throughput, 1 \at per \proc]{
     232                \resizebox{0.5\linewidth}{!}{
     233                \input{result.yield.low.jax.ops.pstex_t}
     234                }
     235                \label{fig:yield:jax:low:ops}
     236        }
     237
     238        \subfloat[][Scalability, 100 \ats per \proc]{
     239                \resizebox{0.5\linewidth}{!}{
     240                \input{result.yield.jax.ns.pstex_t}
     241                }
     242                \label{fig:yield:jax:ns}
     243        }
     244        \subfloat[][Scalability, 1 \at per \proc]{
     245                \resizebox{0.5\linewidth}{!}{
     246                \input{result.yield.low.jax.ns.pstex_t}
     247                }
     248                \label{fig:yield:jax:low:ns}
     249        }
     250        \caption[Yield Benchmark on Intel]{Yield Benchmark on Intel\smallskip\newline Throughput and scalability as a function of \proc count.
     251        For throughput, higher is better, for scalability, lower is better.
     252        Each series represent 15 independent runs, the dashed lines are the maximums of each series while the solid lines are the median and the dotted lines are the minimums.}
     253        \label{fig:yield:jax}
    135254\end{figure}
    136255
    137256\subsection{Results}
    138257
    139 Figure~\ref{fig:yield:jax} shows the throughput as a function of \proc count, where each run uses 100 \ats per \proc.
     258Figures~\ref{fig:yield:jax} and \ref{fig:yield:nasus} show the results for the yield experiment on Intel and AMD, respectively.
     259Looking 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.
     260Note that the Y-axis on this graph is twice as large as the Intel cycle graph.
     261A 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.
     263Hence, the @yield@ throughput and scalability graphs have similar shapes to the corresponding @cycle@ graphs.
     264The only difference is slightly better performance for @yield@ because of less synchronization.
     265Libfibre 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.
     266Hence, libfibre behaves very differently in the cycle and yield benchmarks, with a 4 times increase in performance on the left column.
     267Go has special handling for @yield@ by putting a yielding goroutine on a secondary global ready-queue, giving it a lower priority.
     268The result is that multiple \glspl{hthrd} contend for the global queue and performance suffers drastically.
     269Hence, Go behaves very differently in the cycle and yield benchmarks, with a complete performance collapse in @yield@.
     270Tokio 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.)
     272Note that since there is no communication among \ats, locality problems are much less likely than for the cycle benchmark.
     273This lack of communication is probably why the plateaus due to topology are not present.
     274
     275Looking 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.
     276As 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.
     277This result is to be expected since fewer \ats mean \procs are more likely to run out of work.
     278On the other hand, when only running 1 \at per \proc, libfibre optimizes further and forgoes the context switch entirely.
     279This results in libfibre outperforming other runtimes, even more, achieving 8 times more throughput than for @cycle@.
     280Finally, Go and Tokio's performance collapse is still the same with fewer \ats.
     281The only exception is Tokio running on 24 \procs, deepening the mystery of its yielding mechanism further.
    140282
    141283\begin{figure}
    142284        \subfloat[][Throughput, 100 \ats per \proc]{
    143285                \resizebox{0.5\linewidth}{!}{
    144                         \input{result.yield.jax.ops.pstex_t}
    145                 }
    146                 \label{fig:yield:jax:ops}
    147         }
    148         \subfloat[][Throughput, 1 \ats per \proc]{
    149                 \resizebox{0.5\linewidth}{!}{
    150                 \input{result.yield.low.jax.ops.pstex_t}
    151                 }
    152                 \label{fig:yield:jax:low:ops}
    153         }
    154 
    155         \subfloat[][Latency, 100 \ats per \proc]{
    156                 \resizebox{0.5\linewidth}{!}{
    157                 \input{result.yield.jax.ns.pstex_t}
    158                 }
    159                 \label{fig:yield:jax:ns}
    160         }
    161         \subfloat[][Latency, 1 \ats per \proc]{
    162                 \resizebox{0.5\linewidth}{!}{
    163                 \input{result.yield.low.jax.ns.pstex_t}
    164                 }
    165                 \label{fig:yield:jax:low:ns}
    166         }
    167         \caption[Yield Benchmark on Intel]{Yield Benchmark on Intel\smallskip\newline Throughput as a function of \proc count, using 1 \ats per \proc.}
    168         \label{fig:yield:jax}
    169 \end{figure}
    170 
    171 \todo{results discussion}
     286                        \input{result.yield.nasus.ops.pstex_t}
     287                }
     288                \label{fig:yield:nasus:ops}
     289        }
     290        \subfloat[][Throughput, 1 \at per \proc]{
     291                \resizebox{0.5\linewidth}{!}{
     292                        \input{result.yield.low.nasus.ops.pstex_t}
     293                }
     294                \label{fig:yield:nasus:low:ops}
     295        }
     296
     297        \subfloat[][Scalability, 100 \ats per \proc]{
     298                \resizebox{0.5\linewidth}{!}{
     299                        \input{result.yield.nasus.ns.pstex_t}
     300                }
     301                \label{fig:yield:nasus:ns}
     302        }
     303        \subfloat[][Scalability, 1 \at per \proc]{
     304                \resizebox{0.5\linewidth}{!}{
     305                        \input{result.yield.low.nasus.ns.pstex_t}
     306                }
     307                \label{fig:yield:nasus:low:ns}
     308        }
     309        \caption[Yield Benchmark on AMD]{Yield Benchmark on AMD\smallskip\newline Throughput and scalability as a function of \proc count.
     310        For throughput, higher is better, for scalability, lower is better.
     311        Each series represent 15 independent runs, the dashed lines are the maximums of each series while the solid lines are the median and the dotted lines are the minimums.}
     312        \label{fig:yield:nasus}
     313\end{figure}
     314
     315Looking 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.
     316Note that the maximum of the Y-axis on Intel and AMD differ less in @yield@ than @cycle@.
     317Looking at the left column first, Figures~\ref{fig:yield:nasus:ops} and \ref{fig:yield:nasus:ns}, \CFA achieves very similar throughput and scaling.
     318Libfibre still outpaces all other runtimes, but it encounters a performance hit at 64 \procs.
     319This 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.
     320Go and Tokio still display the same performance collapse as on Intel.
     321Looking 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.
     322At the high \ats count, the only difference is Libfibre's scaling and this difference disappears on the right column.
     323This behaviour suggests whatever communication issue it encountered on the left is completely circumvented on the right.
     324
     325It is difficult to draw conclusions for this benchmark when runtime systems treat @yield@ so differently.
     326The 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
    172328
    173329\section{Churn}
    174 The Cycle and Yield benchmark represent an \emph{easy} scenario for a scheduler, \eg an embarrassingly parallel application.
    175 In these benchmarks, \glspl{at} can be easily partitioned over the different \glspl{proc} upfront and none of the \glspl{at} communicate with each other.
    176 
    177 The Churn benchmark represents more chaotic execution, where there is no relation between the last \gls{proc} on which a \gls{at} ran and blocked and the \gls{proc} that subsequently unblocks it.
    178 With processor-specific ready-queues, when a \gls{at} is unblocked by a different \gls{proc} that means the unblocking \gls{proc} must either ``steal'' the \gls{at} from another processor or find it on a global queue.
    179 This dequeuing results in either contention on the remote queue and/or \glspl{rmr} on \gls{at} data structure.
    180 In either case, this benchmark aims to highlight how each scheduler handles these cases, since both cases can lead to performance degradation if not handled correctly.
     330
     331The Cycle and Yield benchmarks represent an \emph{easy} scenario for a scheduler, \eg an embarrassingly parallel application.
     332In these benchmarks \ats can be easily partitioned over the different \procs upfront and none of the \ats communicate with each other.
     333
     334The 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.
     335With 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.
     336This dequeuing results in either contention on the remote queue and/or \glspl{rmr} on the \at data structure.
     337Hence, this benchmark has performance dominated by the cache traffic as \procs are constantly accessing each other's data.
     338In 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.
    181339
    182340This benchmark uses a fixed-size array of counting semaphores.
    183 Each \gls{at} picks a random semaphore, @V@s it to unblock any \at waiting, and then @P@s on the semaphore.
    184 This creates a flow where \glspl{at} push each other out of the semaphores before being pushed out themselves.
    185 For this benchmark to work, the number of \glspl{at} must be equal or greater than the number of semaphores plus the number of \glspl{proc}.
    186 Note, the nature of these semaphores mean the counter can go beyond 1, which can lead to nonblocking calls to @P@.
     341Each \at picks a random semaphore, @V@s it to unblock any waiting \at, and then @P@s (maybe blocks) the \at on the semaphore.
     342This creates a flow where \ats push each other out of the semaphores before being pushed out themselves.
     343For 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.
     345Note that the nature of these semaphores means the counter can go beyond 1, which can lead to nonblocking calls to @P@.
    187346Figure~\ref{fig:churn:code} shows pseudo code for this benchmark, where the @yield@ is replaced by @V@ and @P@.
    188347
     
    201360}
    202361\end{cfa}
    203 \caption[Churn Benchmark : Pseudo Code]{Churn Benchmark : Pseudo Code}
     362\caption[Churn Benchmark: Pseudo Code]{Churn Benchmark: Pseudo Code}
    204363\label{fig:churn:code}
     364%\end{figure}
     365\bigskip
     366%\begin{figure}
     367        \subfloat[][Throughput, 100 \ats per \proc]{
     368                \resizebox{0.5\linewidth}{!}{
     369                        \input{result.churn.jax.ops.pstex_t}
     370                }
     371                \label{fig:churn:jax:ops}
     372        }
     373        \subfloat[][Throughput, 2 \ats per \proc]{
     374                \resizebox{0.5\linewidth}{!}{
     375                        \input{result.churn.low.jax.ops.pstex_t}
     376                }
     377                \label{fig:churn:jax:low:ops}
     378        }
     379
     380        \subfloat[][Scalability, 100 \ats per \proc]{
     381                \resizebox{0.5\linewidth}{!}{
     382                        \input{result.churn.jax.ns.pstex_t}
     383                }
     384                \label{fig:churn:jax:ns}
     385        }
     386        \subfloat[][Scalability, 2 \ats per \proc]{
     387                \resizebox{0.5\linewidth}{!}{
     388                        \input{result.churn.low.jax.ns.pstex_t}
     389                }
     390                \label{fig:churn:jax:low:ns}
     391        }
     392        \caption[Churn Benchmark on Intel]{Churn Benchmark on Intel\smallskip\newline Throughput and scalability as a function of \proc count.
     393        For throughput, higher is better, for scalability, lower is better.
     394        Each series represent 15 independent runs, the dashed lines are the maximums of each series while the solid lines are the median and the dotted lines are the minimums.}
     395        \label{fig:churn:jax}
    205396\end{figure}
    206397
    207398\subsection{Results}
    208 Figure~\ref{fig:churn:jax} shows the throughput as a function of \proc count, where each run uses 100 cycles per \proc and 5 \ats per cycle.
     399
     400Figures~\ref{fig:churn:jax} and Figure~\ref{fig:churn:nasus} show the results for the churn experiment on Intel and AMD, respectively.
     401Looking 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.
     403As expected, it scales decently up to 48 \procs, drops from 48 to 72 \procs, and then plateaus.
     404Tokio 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.
     405Libfibre obtains effectively the same results as Tokio with slightly less scaling, \ie the scaling curve is the same but with slightly lower values.
     406Finally, Go gets the most peculiar results, scaling worst than other runtimes until 48 \procs.
     407At 72 \procs, the results of the Go runtime vary significantly, sometimes scaling sometimes plateauing.
     408However, beyond this point Go keeps this level of variation but does not scale further in any of the runs.
     409
     410Throughput and scalability are notably worst for all runtimes than the previous benchmarks since there is inherently more communication between processors.
     411Indeed, none of the runtimes reach 40 million operations per second while in the cycle benchmark all but libfibre reached 400 million operations per second.
     412Figures~\ref{fig:churn:jax:ns} and \ref{fig:churn:jax:low:ns} show that for all \proc counts, all runtimes produce poor scaling.
     413However, 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.
     414At this point, the benchmark is dominated by inter-socket communication costs for all runtimes.
     415
     416An interesting aspect to note here is that the runtimes differ in how they handle this situation.
     417Indeed, 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.
     419In this particular benchmark, the inherent chaos of the benchmark, in addition to the small memory footprint, means neither approach wins over the other.
     420
     421Looking 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.
     423Libfibre follows very closely behind with basically the same performance and scaling.
     424Tokio maintains effectively the same curve shapes as \CFA and libfibre, but it incurs extra costs for all \proc counts.
     425While Go maintains overall similar results to the others, it again encounters significant variation at high \proc counts.
     426Inexplicably resulting in super-linear scaling for some runs, \ie the scalability curves display a negative slope.
     427
     428Interestingly, unlike the cycle benchmark, running with fewer \ats does not produce drastically different results.
     429In fact, the overall throughput stays almost exactly the same on the left and right columns.
    209430
    210431\begin{figure}
    211432        \subfloat[][Throughput, 100 \ats per \proc]{
    212433                \resizebox{0.5\linewidth}{!}{
    213                         \input{result.churn.jax.ops.pstex_t}
    214                 }
    215                 \label{fig:churn:jax:ops}
    216         }
    217         \subfloat[][Throughput, 1 \ats per \proc]{
    218                 \resizebox{0.5\linewidth}{!}{
    219                         \input{result.churn.low.jax.ops.pstex_t}
    220                 }
    221                 \label{fig:churn:jax:low:ops}
    222         }
    223 
    224         \subfloat[][Latency, 100 \ats per \proc]{
    225                 \resizebox{0.5\linewidth}{!}{
    226                         \input{result.churn.jax.ns.pstex_t}
    227                 }
    228 
    229         }
    230         \subfloat[][Latency, 1 \ats per \proc]{
    231                 \resizebox{0.5\linewidth}{!}{
    232                         \input{result.churn.low.jax.ns.pstex_t}
    233                 }
    234                 \label{fig:churn:jax:low:ns}
    235         }
    236         \caption[Churn Benchmark on Intel]{\centering Churn Benchmark on Intel\smallskip\newline Throughput and latency of the Churn on the benchmark on the Intel machine.
    237         Throughput is the total operation per second across all cores. Latency is the duration of each operation.}
    238         \label{fig:churn:jax}
    239 \end{figure}
    240 
    241 \todo{results discussion}
     434                        \input{result.churn.nasus.ops.pstex_t}
     435                }
     436                \label{fig:churn:nasus:ops}
     437        }
     438        \subfloat[][Throughput, 2 \ats per \proc]{
     439                \resizebox{0.5\linewidth}{!}{
     440                        \input{result.churn.low.nasus.ops.pstex_t}
     441                }
     442                \label{fig:churn:nasus:low:ops}
     443        }
     444
     445        \subfloat[][Scalability, 100 \ats per \proc]{
     446                \resizebox{0.5\linewidth}{!}{
     447                        \input{result.churn.nasus.ns.pstex_t}
     448                }
     449                \label{fig:churn:nasus:ns}
     450        }
     451        \subfloat[][Scalability, 2 \ats per \proc]{
     452                \resizebox{0.5\linewidth}{!}{
     453                        \input{result.churn.low.nasus.ns.pstex_t}
     454                }
     455                \label{fig:churn:nasus:low:ns}
     456        }
     457        \caption[Churn Benchmark on AMD]{Churn Benchmark on AMD\smallskip\newline Throughput and scalability as a function of \proc count.
     458        For throughput, higher is better, for scalability, lower is better.
     459        Each series represent 15 independent runs, the dashed lines are the maximums of each series while the solid lines are the median and the dotted lines are the minimums.}
     460        \label{fig:churn:nasus}
     461\end{figure}
     462
     463
     464Looking now at the results for the AMD architecture, Figure~\ref{fig:churn:nasus}, the results show a somewhat different story.
     465Looking 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.
     467Go still produces intriguing results in this case and even more intriguingly, the results have fairly low variation.
     468
     469One possible explanation for Go's difference is that it has very few available concurrent primitives, so a channel is substituted for a semaphore.
     470On paper, a semaphore can be replaced by a channel, and with zero-sized objects passed through the channel, equivalent performance could be expected.
     471However, in practice, there are implementation differences between the two, \eg if the semaphore count can get somewhat high so objects accumulate in the channel.
     472Note that this substitution is also made in the cycle benchmark;
     473however, in that context, it did not have a notable impact.
     474
     475A second possible explanation is that Go may use the heap when allocating variables based on the result of the escape analysis of the code.
     476It is possible for variables that could be placed on the stack to instead be placed on the heap.
     477This placement could cause extra pointer chasing in the benchmark, heightening locality effects.
     478Depending on how the heap is structured, this could also lead to false sharing.
     479I did not investigate what causes these unusual results.
     480
     481Looking 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.
     483Go still suffers from poor scalability but is now unusual in a different way.
     484While it obtains effectively constant performance regardless of \proc count, this ``sequential'' performance is higher than the other runtimes for low \proc count.
     485Up to 32 \procs, after which the other runtimes manage to outscale Go.
     486
     487In 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.
     488Indeed, the fact that most runtimes achieve some scaling between various \proc counts demonstrates migrations do not need to be serialized.
     489Again these results demonstrate that \CFA achieves satisfactory performance compared to the other runtimes.
    242490
    243491\section{Locality}
    244492
    245 \todo{code, setup, results}
     493As 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{
     494It is also possible to \unpark to a third unrelated ready-queue, but without additional knowledge about the situation, it is likely to degrade performance.}
     495The locality experiment includes two variations of the churn benchmark, where a data array is added.
     496In both variations, before @V@ing the semaphore, each \at calls a @work@ function which increments random cells inside the data array.
     497In the noshare variation, the array is not passed on and each thread continuously accesses its private array.
     498In 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.
     499Figure~\ref{fig:locality:code} shows the pseudo code for this benchmark.
     500
     501The objective here is to highlight the different decisions made by the runtime when \glslink{atsched}{unparking}.
     502Since each thread unparks a random semaphore, it means that it is unlikely that a \at is unparked from the last \proc it ran on.
     503In 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.
     504In the shared variation, \glslink{atsched}{unparking} the \at on a remote \proc is an appropriate choice.
     505
     506The 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.
     507This decision should lead to \CFA, Go and Tokio achieving better performance in the share variation while libfibre achieves better performance in noshare.
     508Indeed, \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]
     516Thread.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]
     535Thread.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
     564Figures~\ref{fig:locality:jax} and \ref{fig:locality:nasus} show the results for the locality experiment on Intel and AMD, respectively.
     565In 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.
     566Looking 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.
     569Libfibre, on the other hand, unparks remotely, and as such the unparked \at is likely to miss on the shared data.
     570Go trails behind in this experiment, presumably for the same reasons that were observable in the churn benchmark.
     571Otherwise, the results are similar to the churn benchmark, with lower throughput due to the array processing.
     572As 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
     638Looking 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.
     639The graphs show the expected performance inversion where libfibre now outperforms \CFA and Tokio.
     640Indeed, 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.
     641Results 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
     644Looking at the results for the AMD architecture, Figure~\ref{fig:locality:nasus}, shows results similar to the Intel.
     645Again the overall performance is higher and slightly more variation is visible.
     646Looking 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.
     647This advantage is expected from the AMD server with its smaller and narrower caches that magnify the costs of processing the array.
     648Go still has the same poor performance as on Intel.
     649
     650Finally 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.
     651Go still has the same poor performance.
     652
     653Overall, this benchmark mostly demonstrates the two options available when \glslink{atsched}{unparking} a \at.
     654Depending on the workload, either of these options can be the appropriate one.
     655Since 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
     657Once 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.
    246658
    247659\section{Transfer}
    248660The last benchmark is more of an experiment than a benchmark.
    249661It tests the behaviour of the schedulers for a misbehaved workload.
    250 In this workload, one of the \gls{at} is selected at random to be the leader.
    251 The leader then spins in a tight loop until it has observed that all other \glspl{at} have acknowledged its leadership.
    252 The leader \gls{at} then picks a new \gls{at} to be the ``spinner'' and the cycle repeats.
    253 The benchmark comes in two flavours for the non-leader \glspl{at}:
     662In this workload, one \at is selected at random to be the leader.
     663The leader then spins in a tight loop until it has observed that all other \ats have acknowledged its leadership.
     664The leader \at then picks a new \at to be the next leader and the cycle repeats.
     665The benchmark comes in two variations for the non-leader \ats:
    254666once they acknowledged the leader, they either block on a semaphore or spin yielding.
    255 
    256 The experiment is designed to evaluate the short-term load-balancing of a scheduler.
    257 Indeed, schedulers where the runnable \glspl{at} are partitioned on the \glspl{proc} may need to balance the \glspl{at} for this experiment to terminate.
    258 This problem occurs because the spinning \gls{at} is effectively preventing the \gls{proc} from running any other \glspl{thrd}.
    259 In the semaphore flavour, the number of runnable \glspl{at} eventually dwindles down to only the leader.
    260 This scenario is a simpler case to handle for schedulers since \glspl{proc} eventually run out of work.
    261 In the yielding flavour, the number of runnable \glspl{at} stays constant.
    262 This scenario is a harder case to handle because corrective measures must be taken even when work is available.
    263 Note, runtime systems with preemption circumvent this problem by forcing the spinner to yield.
    264 
    265 \todo{code, setup, results}
     667Figure~\ref{fig:transfer:code} shows pseudo code for this benchmark.
    266668
    267669\begin{figure}
     
    273675                return
    274676        }
    275 
    276677        // Wait for everyone to acknowledge my leadership
    277678        start: = timeNow()
     
    282683                }
    283684        }
    284 
    285685        // pick next leader
    286686        leader := threads[ prng() % len(threads) ]
    287 
    288         // wake every one
     687        // wake everyone
    289688        if ! exhaust {
    290689                for t in threads {
     
    293692        }
    294693}
    295 
    296694Thread.wait() {
    297695        this.idx_seen := lead_idx
     
    299697        else { yield() }
    300698}
    301 
    302699Thread.main() {
    303700        while !done  {
     
    307704}
    308705\end{cfa}
    309 \caption[Transfer Benchmark : Pseudo Code]{Transfer Benchmark : Pseudo Code}
     706\caption[Transfer Benchmark: Pseudo Code]{Transfer Benchmark: Pseudo Code}
    310707\label{fig:transfer:code}
    311708\end{figure}
    312709
     710The experiment is designed to evaluate the short-term load balancing of a scheduler.
     711Indeed, schedulers where the runnable \ats are partitioned on the \procs may need to balance the \ats for this experiment to terminate.
     712This problem occurs because the spinning \at is effectively preventing the \proc from running any other \at.
     713In the semaphore variation, the number of runnable \ats eventually dwindles to only the leader.
     714This scenario is a simpler case to handle for schedulers since \procs eventually run out of work.
     715In the yielding variation, the number of runnable \ats stays constant.
     716This scenario is a harder case to handle because corrective measures must be taken even when work is available.
     717Note that runtimes with preemption circumvent this problem by forcing the spinner to yield.
     718In \CFA preemption was disabled as it only obfuscates the results.
     719I am not aware of a method to disable preemption in Go.
     720
     721In both variations, the experiment effectively measures how long it takes for all \ats to run once after a given synchronization point.
     722In 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)$,
     723where $CSL$ is the context-switch latency, $SL$ is the cost for enqueueing and dequeuing a \at, and $NP$ is the number of \procs.
     724However, if the scheduler allows \ats to run many times before other \ats can run once, this delay increases.
     725The semaphore version is an approximation of strictly FIFO scheduling, where none of the \ats \emph{attempt} to run more than once.
     726The benchmark effectively provides the fairness guarantee in this case.
     727In the yielding version, however, the benchmark provides no such guarantee, which means the scheduler has full responsibility and any unfairness is measurable.
     728
     729While this is an artificial scenario, in real life it requires only a few simple pieces.
     730The yielding version simply creates a scenario where a \at runs uninterrupted in a saturated system and the starvation has an easily measured impact.
     731Hence, \emph{any} \at that runs uninterrupted for a significant time in a saturated system could lead to this kind of starvation.
     732
    313733\subsection{Results}
    314 Figure~\ref{fig:transfer:jax} shows the throughput as a function of \proc count, where each run uses 100 cycles per \proc and 5 \ats per cycle.
    315 
    316 \todo{results discussion}
     734
     735\begin{table}
     736\caption[Transfer Benchmark on Intel and AMD]{Transfer Benchmark on Intel and AMD\smallskip\newline Average measurement of how long it takes for all \ats to acknowledge the leader \at.
     737DNC 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}
     743Machine   &                     \multicolumn{4}{c |}{Intel}                &          \multicolumn{4}{c}{AMD}             \\
     744\cline{2-9}
     745Variation & \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   \\
     750libfibre  & 127 $\mu$s  & ~33.5 ms   & DNC         & DNC           & 156 $\mu$s  & ~36.7 ms   & DNC         & DNC         \\
     751Go        & 106 $\mu$s  & ~64.0 ms   & 24.6 ms     & 74.3 ms       & 271 $\mu$s  & 121.6 ms   & ~~1.21~ms   & 117.4 ms    \\
     752Tokio     & 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
     757Table~\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.
     758Note 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.
     759As such, data points within the same order of magnitude are considered equal.
     760That is, the takeaway of this experiment is the presence of very large differences.
     761The semaphore variation is denoted ``Park'', where the number of \ats dwindles as the new leader is acknowledged.
     762The yielding variation is denoted ``Yield''.
     763The experiment is only run for a few and many \procs since scaling is not the focus of this experiment.
     764
     765The first two columns show the results for the semaphore variation on Intel.
     766While there are some differences in latencies, \CFA is consistently the fastest and Tokio the slowest, all runtimes achieve fairly close results.
     767Again, this experiment is meant to highlight major differences so latencies within $10\times$ of each other are considered equal.
     768
     769Looking 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.
     771Go does complete the experiment, but with drastically higher latency:
     772latency at 2 \procs is $350\times$ higher than \CFA and $70\times$ higher at 192 \procs.
     773This 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.
     775Neither Libfibre nor Tokio complete the experiment.
     776Both 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
     778Looking now at the results for the AMD architecture, the results show effectively the same story.
     779The first two columns show all runtime obtaining results well within $10\times$ of each other.
     780The 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.
     781Neither Libfibre nor Tokio complete the experiment.
     782
     783This experiment clearly demonstrates that \CFA achieves significantly better fairness.
     784The semaphore variation serves as a control, where all runtimes are expected to transfer leadership fairly quickly.
     785Since \ats block after acknowledging the leader, this experiment effectively measures how quickly \procs can steal \ats from the \proc running the leader.
     786Table~\ref{fig:transfer:res} shows that while Go and Tokio are slower using the semaphore, all runtimes achieve decent latency.
     787
     788However, the yielding variation shows an entirely different picture.
     789Since libfibre and Tokio have a traditional work-stealing scheduler, \procs that have \ats on their local queues never steal from other \procs.
     790The result is that the experiment simply does not complete for these runtimes.
     791Without \procs stealing from the \proc running the leader, the experiment cannot terminate.
     792Go manages to complete the experiment because it adds preemption on top of classic work-stealing.
     793However, since preemption is fairly infrequent, it achieves significantly worst performance.
     794In contrast, \CFA achieves equivalent performance in both variations, demonstrating very good fairness.
     795Interestingly \CFA achieves better delays in the yielding version than the semaphore version, however, that is likely due to fairness being equivalent but removing the cost of the semaphores and idle sleep.
  • doc/theses/thierry_delisle_PhD/thesis/text/existing.tex

    r12df6fe r4520b77e  
    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 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 
    12 Scheduling physical resources, \eg in an assembly line, is generally amenable to using well-informed scheduling, since information can be gathered much faster than the physical resources can be assigned and workloads are likely to stay stable for long periods of time.
     10Note, 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
     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.
    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 incarnation of the same problems.
    17 As a result, there are no standard naming conventions for scheduling that is respected across these communities.
     16Scheduling has been studied by various communities concentrating on different incarnations of the same problems.
     17As a result, there are no standard naming conventions for scheduling that are 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 be explicitly and exhaustively specified prior to scheduling.
     21\newterm{Static schedulers} require \ats dependencies and costs to be explicitly and exhaustively specified prior to scheduling.
    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 programming language does not have as part of its concurrency semantic.
     24In 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.
    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 \ats dependencies and costs during scheduling, if at all.
    30 Hence, unlike static scheduling, \ats dependencies are conditional and detected at runtime.
    31 This detection takes the form of observing new \ats(s) in the system and determining dependencies from their behaviour, including suspending or halting a \ats that dynamically detects unfulfilled dependencies.
    32 Furthermore, each \ats has the responsibility of adding dependent \ats back into the system once dependencies are fulfilled.
     29\newterm{Dynamic schedulers} determine \at dependencies and costs during scheduling, if at all.
     30Hence, unlike static scheduling, \at dependencies are conditional and detected at runtime.
     31This 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.
     32Furthermore, each \at 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 \ats, some information may be available about each \ats, \eg expected duration, required resources, relative importance, \etc.
    37 When available, a scheduler can then use this information to direct the scheduling decisions. \cit{Examples of schedulers with more information}
    38 However, most programmers do not determine or even \emph{predict} this information;
    39 at best, the scheduler has only some imprecise information provided by the programmer, \eg, indicating a \ats takes approximately 3--7 seconds to complete, rather than exactly 5 seconds.
    40 Providing this kind of information is a significant programmer burden especially if the information does not scale with the number of \ats and their complexity.
    41 For example, providing an exhaustive list of files read by 5 \ats is an easier requirement then providing an exhaustive list of memory addresses accessed by 10,000 independent \ats.
     36While 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.
     37When available, a scheduler can then use this information to direct the scheduling decisions.
     38For 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.
     39However, in the context of user-level threading, most programmers do not determine or even \emph{predict} this information;
     40at 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.
     41Providing this kind of information is a significant programmer burden, especially if the information does not scale with the number of \ats and their complexity.
     42For 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.
    4243
    4344Since 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.
     
    4546\subsubsection{Priority Scheduling}
    4647Common information used by schedulers to direct their algorithm is priorities.
    47 Each \ats is given a priority and higher-priority \ats are preferred to lower-priority ones.
    48 The 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.
     48Each \at is given a priority, and higher-priority \ats are preferred to lower-priority ones.
     49The 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.
    4950Asking programmers to provide an exhaustive set of unique priorities can be prohibitive when the system has a large number of \ats.
    50 It can therefore be desirable for schedulers to support \ats with identical priorities and/or automatically setting and adjusting priorities for \ats.
     51It can therefore be desirable for schedulers to support \ats with identical priorities and/or automatically set and adjust priorities for \ats.
    5152Most common operating systems use some variant on priorities with overlaps and dynamic priority adjustments.
    52 For example, Microsoft Windows uses a pair of priorities
    53 \cit{https://docs.microsoft.com/en-us/windows/win32/procthread/scheduling-priorities,https://docs.microsoft.com/en-us/windows/win32/taskschd/taskschedulerschema-priority-settingstype-element}, one specified by users out of ten possible options and one adjusted by the system.
     53For 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.
    5454
    5555\subsection{Uninformed and Self-Informed Dynamic Schedulers}
    56 Several 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.
     56Several 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.
    5757
    5858
    5959\subsubsection{Feedback Scheduling}
    60 As mentioned, schedulers may also gather information about each \ats to direct their decisions.
     60As mentioned, schedulers may also gather information about each \at 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, in order to direct scheduling decisions.
    64 The important distinction being whether or not the scheduler can function without this additional information.
     63However, some feedback schedulers do allow programmers to offer additional information on certain \ats, to direct scheduling decisions.
     64The important distinction is whether the scheduler can function without this additional information.
    6565
    6666
    6767\section{Work Stealing}\label{existing:workstealing}
    68 One of the most popular scheduling algorithm in practice (see~\ref{existing:prod}) is work stealing.
    69 This idea, introduce by \cite{DBLP:conf/fpca/BurtonS81}, effectively has each worker process its local \ats first, but allows the possibility for other workers to steal local \ats if they run out of \ats.
    70 \cite{DBLP:conf/focs/Blumofe94} introduced the more familiar incarnation of this, where each 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.}.
    71 Blumofe and Leiserson also prove worst case space and time requirements for well-structured computations.
     68One of the most popular scheduling algorithms in practice (see~\ref{existing:prod}) is work stealing.
     69This 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.}.
     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} 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.
     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} Another aspect of work stealing that has been studied extensively is the mapping between \at and \proc.
     82In its simplest form, work stealing assumes that all \procs are interchangeable and therefore the mapping between \at and \proc is not interesting.
     83However, in real-life architectures there are contexts where different \procs can have different characteristics, which makes some mapping more interesting than others.
     84A common example where this is statically true is architectures with \glsxtrshort{numa}.
     85In these cases, it can be relevant to change the scheduler to be cognizant of the topology~\cite{vikranth2013topology,min2011hierarchical}.
     86Another 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.
     89This is arguably strongly related to Task Placement but extends into more heterogeneous architectures.
     90As \CFA offers no particular support for heterogeneous architecture, this is also an area that is less relevant to this thesis.
     91Although it could be an interesting avenue for future work.
    8692
    8793\subsection{Theoretical Results}
    88 There is also a large body of research on the theoretical aspects of work stealing. These evaluate, for example, the cost of migration~\cite{DBLP:conf/sigmetrics/SquillanteN91,DBLP:journals/pe/EagerLZ86}, how affinity affects performance~\cite{DBLP:journals/tpds/SquillanteL93,DBLP:journals/mst/AcarBB02,DBLP:journals/ipl/SuksompongLS16} and theoretical models for heterogeneous systems~\cite{DBLP:journals/jpdc/MirchandaneyTS90,DBLP:journals/mst/BenderR02,DBLP:conf/sigmetrics/GastG10}.
     94There 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}.
    8995\cite{DBLP:journals/jacm/BlellochGM99} examines the space bounds of work stealing and \cite{DBLP:journals/siamcomp/BerenbrinkFG03} shows that for under-loaded systems, the scheduler completes its computations in finite time, \ie is \newterm{stable}.
    90 Others show that work stealing is 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}.
     96Others 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}.
    9197\cite{DBLP:conf/ipps/ColeR13} also studied how randomized work-stealing affects false sharing among \ats.
    9298
    93 However, as \cite{DBLP:journals/ijpp/YangH18} highlights, it is worth mentioning that this theoretical research has mainly focused on ``fully-strict'' computations, \ie workloads that can be fully represented with a direct acyclic graph.
    94 It is unclear how well these distributions represent workloads in real world scenarios.
     99However, 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.
     100It is unclear how well these distributions represent workloads in real-world scenarios.
    95101
    96102\section{Preemption}
    97103One last aspect of scheduling is preemption since many schedulers rely on it for some of their guarantees.
    98104Preemption is the idea of interrupting \ats that have been running too long, effectively injecting suspend points into the application.
    99 There are multiple techniques to achieve this effect but they all aim to guarantee that the suspend points in a \ats are never further apart than some fixed duration.
    100 While this helps schedulers guarantee that no \ats unfairly monopolizes a worker, preemption can effectively be added to any scheduler.
    101 Therefore, the only interesting aspect of preemption for the design of scheduling is whether or not to require it.
     105There 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.
     106While this helps schedulers guarantee that no \ats unfairly monopolize a worker, preemption can effectively be added to any scheduler.
     107Therefore, the only interesting aspect of preemption for the design of scheduling is whether to require it.
    102108
    103109\section{Production Schedulers}\label{existing:prod}
     
    105111While these schedulers do not necessarily represent the most recent advances in scheduling, they are what is generally accessible to programmers.
    106112As such, I believe these schedulers are at least as relevant as those presented in published work.
    107 Schedulers that operate in kernel space and in user space are considered, as both can offer relevant insight for this project.
     113Both Schedulers that operate in kernel space and user space are considered, as both can offer relevant insight for this project.
    108114However, real-time schedulers are not considered, as these have constraints that are much stricter than what is needed for this project.
    109115
    110116\subsection{Operating System Schedulers}
    111 Operating System Schedulers tend to be fairly complex as they generally support some amount of real-time, aim to balance interactive and non-interactive \ats and support multiple users sharing hardware without requiring these users to cooperate.
     117Operating 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.
    112118Here are more details on a few schedulers used in the common operating systems: Linux, FreeBSD, Microsoft Windows and Apple's OS X.
    113 The information is less complete for operating systems with closed source.
     119The information is less complete for closed source operating systems.
    114120
    115121\paragraph{Linux's CFS}
    116122The default scheduler used by Linux, the Completely Fair Scheduler~\cite{MAN:linux/cfs,MAN:linux/cfs2}, is a feedback scheduler based on CPU time.
    117123For each processor, it constructs a Red-Black tree of \ats waiting to run, ordering them by the amount of CPU time used.
    118 The \ats that has used the least CPU time is scheduled.
     124The \at that has used the least CPU time is scheduled.
    119125It also supports the concept of \newterm{Nice values}, which are effectively multiplicative factors on the CPU time used.
    120 The ordering of \ats is also affected by a group based notion of fairness, where \ats belonging to groups having used less CPU time are preferred to \ats belonging to groups having used more CPU time.
    121 Linux achieves load-balancing by regularly monitoring the system state~\cite{MAN:linux/cfs/balancing} and using some heuristic on the load, currently CPU time used in the last millisecond plus a decayed version of the previous time slots~\cite{MAN:linux/cfs/pelt}.
    122 
    123 \cite{DBLP:conf/eurosys/LoziLFGQF16} shows that Linux's CFS also does work stealing to balance the workload of each processors, but the paper argues this aspect can be improved significantly.
    124 The issues highlighted stem from Linux's need to support fairness across \ats \emph{and} across users\footnote{Enforcing fairness across users means that given two users, one with a single \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 
    126 Linux also offers a FIFO scheduler, a real-time scheduler, which runs the highest-priority \ats, and a round-robin scheduler, which is an extension of the FIFO-scheduler that adds fixed time slices. \cite{MAN:linux/sched}
     126The 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.
     127Linux 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.
     130The 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
     132Linux 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}
    127133
    128134\paragraph{FreeBSD}
    129135The ULE scheduler used in FreeBSD\cite{DBLP:conf/bsdcon/Roberson03} is a feedback scheduler similar to Linux's CFS.
    130136It uses different data structures and heuristics but also schedules according to some combination of CPU time used and niceness values.
    131 It also periodically balances the load of the system (according to a different heuristic), but uses a simpler work stealing approach.
     137It also periodically balances the load of the system (according to a different heuristic) but uses a simpler work stealing approach.
    132138
    133139\paragraph{Windows(OS)}
    134140Microsoft's Operating System's Scheduler~\cite{MAN:windows/scheduler} is a feedback scheduler with priorities.
    135141It supports 32 levels of priorities, some of which are reserved for real-time and privileged applications.
    136 It schedules \ats based on the highest priorities (lowest number) and how much CPU time each \ats has used.
     142It schedules \ats based on the highest priorities (lowest number) and how much CPU time each \at has used.
    137143The scheduler may also temporarily adjust priorities after certain effects like the completion of I/O requests.
    138144
    139 \todo{load balancing}
     145In~\cite{russinovich2009windows}, Chapter 1 section 2.3 ``Processes, Threads, and Jobs'' discusses the scheduling policy more in-depth.
     146Multicore scheduling is based on a combination of priorities and \proc preference.
     147Each \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.
     149This 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.
    140150
    141151\paragraph{Apple OS X}
     
    149159\end{displayquote}
    150160
    151 \todo{load balancing}
     161There is very little documentation on the internals of this scheduler.
     162However, the documentation does describe a feature set that is very similar to the Windows and Linux OS schedulers.
     163Presumably, this means that the internals are also fairly similar overall.
    152164
    153165\subsection{User-Level Schedulers}
    154 By 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.
     166By 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.
    155167
    156168\paragraph{Go}\label{GoSafePoint}
    157169Go's scheduler uses a randomized work-stealing algorithm that has a global run-queue (\emph{GRQ}) and each processor (\emph{P}) has both a fixed-size run-queue (\emph{LRQ}) and a high-priority next ``chair'' holding a single element~\cite{GITHUB:go,YTUBE:go}.
    158 Preemption is present, but only at safe-points,~\cit{https://go.dev/src/runtime/preempt.go} which are inserted detection code at various frequent access boundaries.
     170Preemption is present, but only at safe points,~\cite{go:safepoints} which are detection code inserted at various frequent access boundaries.
    159171
    160172The algorithm is as follows :
     
    172184Erlang is a functional language that supports concurrency in the form of processes: threads that share no data.
    173185It uses a kind of round-robin scheduler, with a mix of work sharing and stealing to achieve load balancing~\cite{:erlang}, where under-loaded workers steal from other workers, but overloaded workers also push work to other workers.
    174 This migration logic is directed by monitoring logic that evaluates the load a few times per seconds.
     186This \glslink{atmig}{migration} logic is directed by monitoring logic that evaluates the load a few times per second.
    175187
    176188\paragraph{Intel\textregistered ~Threading Building Blocks}
    177189\newterm{Thread Building Blocks} (TBB) is Intel's task parallelism \cite{wiki:taskparallel} framework.
    178 It runs \newterm{jobs}, which are uninterruptable \ats that must always run to completion, on a pool of worker threads.
     190It runs \newterm{jobs}, which are uninterruptible \ats that must always run to completion, on a pool of worker threads.
    179191TBB's scheduler is a variation of randomized work-stealing that also supports higher-priority graph-like dependencies~\cite{MAN:tbb/scheduler}.
    180 It schedules \ats as follows (where \textit{t} is the last \ats completed):
     192It schedules \ats as follows (where \textit{t} is the last \at completed):
    181193\begin{displayquote}
    182194        \begin{enumerate}
    183195                \item The task returned by \textit{t}@.execute()@
    184196                \item The successor of t if \textit{t} was its last completed predecessor.
    185                 \item A task popped from the end of the thread's own deque.
    186                 \item A task with affinity for the thread.
     197                \item A task popped from the end of the thread's own queue.
     198                \item A task with an affinity for the thread.
    187199                \item A task popped from approximately the beginning of the shared queue.
    188                 \item A task popped from the beginning of another randomly chosen thread's deque.
     200                \item A task popped from the beginning of another randomly chosen thread's queue.
    189201        \end{enumerate}
    190202
     
    199211
    200212\paragraph{Grand Central Dispatch}
    201 An Apple\cit{Official GCD source} API that offers task parallelism~\cite{wiki:taskparallel}.
     213An Apple~\cite{apple:gcd} API that offers task parallelism~\cite{wiki:taskparallel}.
    202214Its distinctive aspect is multiple ``Dispatch Queues'', some of which are created by programmers.
    203215Each queue has its own local ordering guarantees, \eg \ats on queue $A$ are executed in \emph{FIFO} order.
    204216
    205 \todo{load balancing and scheduling}
    206 
    207 % http://web.archive.org/web/20090920043909/http://images.apple.com/macosx/technology/docs/GrandCentral_TB_brief_20090903.pdf
    208 
    209 In terms of semantics, the Dispatch Queues seem to be very similar to Intel\textregistered ~TBB @execute()@ and predecessor semantics.
     217While the documentation only gives limited insight into the scheduling and load balancing approach, \cite{apple:gcd2} suggests a fairly classic approach.
     218Each \proc has a queue of \ats to run, called \newterm{blocks}, which are drained in \glsxtrshort{fifo}.
     219GCD also has secondary queues, called \newterm{Dispatch Queues}, with clear ordering, where executing a block ends up scheduling more blocks.
     220In terms of semantics, these Dispatch Queues seem to be very similar to Intel\textregistered ~TBB \lstinline{execute()} and predecessor semantics.
     221
     222The similarity of API and semantics between GCD and Intel\textregistered ~TBB suggest the underlying scheduling algorithms are similar.
    210223
    211224\paragraph{LibFibre}
    212 LibFibre~\cite{DBLP:journals/pomacs/KarstenB20} is a light-weight user-level threading framework developed at the University of Waterloo.
    213 Similarly to Go, it uses a variation of work stealing with a global queue that is higher priority than stealing.
     225LibFibre~\cite{DBLP:journals/pomacs/KarstenB20} is a lightweight user-level threading framework developed at the University of Waterloo.
     226Similarly to Go, it uses a variation of work stealing with a global queue that has a higher priority than stealing.
    214227Unlike Go, it does not have the high-priority next ``chair'' and does not use randomized work-stealing.
  • doc/theses/thierry_delisle_PhD/thesis/text/front.tex

    r12df6fe r4520b77e  
    3939                \vspace*{2.0cm}
    4040
    41                 Waterloo, Ontario, Canada, 2021 \\
    42 
    43                 \vspace*{1.0cm}
    44 
    45                 \copyright\ Thierry Delisle 2021 \\
     41                Waterloo, Ontario, Canada, 2022 \\
     42
     43                \vspace*{1.0cm}
     44
     45                \copyright\ Thierry Delisle 2022 \\
    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}
    63 \bigskip
    64 
    65 \noindent
    66 \begin{tabbing}
    67         Internal-External Member: \=  \kill % using longest text to define tab length
    68         External Examiner: \>  TBD \\
    69         \> TBD \\
     62\bigskip
     63
     64\noindent
     65\begin{tabbing}
     66        Internal-External Member: \=  \kill % using longest text to define tab length
     67        External Examiner: \>  Doug Lea \\
     68        \> Professor, Computer Science Department \\
     69        \> State University of New York at Oswego \\
    7070\end{tabbing}
    7171\bigskip
     
    9696\begin{tabbing}
    9797        Internal-External Member: \=  \kill % using longest text to define tab length
    98         Internal-External Member: \> TBD \\
    99         \> TBD \\
     98        Internal-External Member: \> Patrick Lam \\
     99        \> Associate Professor, Department of Electrical and Computer Engineering \\
    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 Delaration Page as provided by the GSO
     108% The following is a sample Declaration 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 This is the abstract.
    126 
    127 Vulputate minim vel consequat praesent at vel iusto et, ex delenit, esse euismod luptatum augue ut sit et eu vel augue autem feugiat, quis ad dolore. Nulla vel, laoreet lobortis te commodo elit qui aliquam enim ex iriure ea ullamcorper nostrud lorem, lorem laoreet eu ex ut vel in zzril wisi quis. Nisl in autem praesent dignissim, sit vel aliquam at te, vero dolor molestie consequat.
    128 
    129 Tation iriure sed wisi feugait odio dolore illum duis in accumsan velit illum consequat consequat ipsum molestie duis duis ut ullamcorper. Duis exerci odio blandit vero dolore eros odio amet et nisl in nostrud consequat iusto eum suscipit autem vero. Iusto dolore exerci, ut erat ex, magna in facilisis duis amet feugait augue accumsan zzril delenit aliquip dignissim at. Nisl molestie nibh, vulputate feugait nibh luptatum ea delenit nostrud dolore minim veniam odio volutpat delenit nulla accumsan eum vero ullamcorper eum. Augue velit veniam, dolor, exerci ea feugiat nulla molestie, veniam nonummy nulla dolore tincidunt, consectetuer dolore nulla ipsum commodo.
    130 
    131 At nostrud lorem, lorem laoreet eu ex ut vel in zzril wisi. Suscipit consequat in autem praesent dignissim, sit vel aliquam at te, vero dolor molestie consequat eros tation facilisi diam dolor. Odio luptatum dolor in facilisis et facilisi et adipiscing suscipit eu iusto praesent enim, euismod consectetuer feugait duis. Odio veniam et iriure ad qui nonummy aliquip at qui augue quis vel diam, nulla. Autem exerci tation iusto, hendrerit et, tation esse consequat ut velit te dignissim eu esse eros facilisis lobortis, lobortis hendrerit esse dignissim nisl. Nibh nulla minim vel consequat praesent at vel iusto et, ex delenit, esse euismod luptatum.
    132 
    133 Ut eum vero ullamcorper eum ad velit veniam, dolor, exerci ea feugiat nulla molestie, veniam nonummy nulla. Elit tincidunt, consectetuer dolore nulla ipsum commodo, ut, at qui blandit suscipit accumsan feugiat vel praesent. In dolor, ea elit suscipit nisl blandit hendrerit zzril. Sit enim, et dolore blandit illum enim duis feugiat velit consequat iriure sed wisi feugait odio dolore illum duis. Et accumsan velit illum consequat consequat ipsum molestie duis duis ut ullamcorper nulla exerci odio blandit vero dolore eros odio amet et.
    134 
    135 In augue quis vel diam, nulla dolore exerci tation iusto, hendrerit et, tation esse consequat ut velit. Duis dignissim eu esse eros facilisis lobortis, lobortis hendrerit esse dignissim nisl illum nulla minim vel consequat praesent at vel iusto et, ex delenit, esse euismod. Nulla augue ut sit et eu vel augue autem feugiat, quis ad dolore te vel, laoreet lobortis te commodo elit qui aliquam enim ex iriure. Ut ullamcorper nostrud lorem, lorem laoreet eu ex ut vel in zzril wisi quis consequat in autem praesent dignissim, sit vel. Dolore at te, vero dolor molestie consequat eros tation facilisi diam. Feugait augue luptatum dolor in facilisis et facilisi et adipiscing suscipit eu iusto praesent enim, euismod consectetuer feugait duis vulputate veniam et.
    136 
    137 Ad eros odio amet et nisl in nostrud consequat iusto eum suscipit autem vero enim dolore exerci, ut. Esse ex, magna in facilisis duis amet feugait augue accumsan zzril. Lobortis aliquip dignissim at, in molestie nibh, vulputate feugait nibh luptatum ea delenit nostrud dolore minim veniam odio. Euismod delenit nulla accumsan eum vero ullamcorper eum ad velit veniam. Quis, exerci ea feugiat nulla molestie, veniam nonummy nulla. Elit tincidunt, consectetuer dolore nulla ipsum commodo, ut, at qui blandit suscipit accumsan feugiat vel praesent.
    138 
    139 Dolor zzril wisi quis consequat in autem praesent dignissim, sit vel aliquam at te, vero. Duis molestie consequat eros tation facilisi diam dolor augue. Dolore dolor in facilisis et facilisi et adipiscing suscipit eu iusto praesent enim, euismod consectetuer feugait duis vulputate.
     125User-Level threading (M:N) is gaining popularity over kernel-level threading (1:1) in many programming languages.
     126The user threading approach is often a better mechanism to express complex concurrent applications by efficiently running 10,000+ threads on multicore systems.
     127Indeed, over-partitioning into small work-units with user threading significantly eases load bal\-ancing, while simultaneously providing advanced synchronization and mutual exclusion capabilities.
     128To manage these high levels of concurrency, the underlying runtime must efficiently schedule many user threads across a few kernel threads;
     129which begs the question of how many kernel threads are needed and should the number be dynamically reevaluated.
     130Furthermore, scheduling must prevent kernel threads from blocking, otherwise user-thread parallelism drops.
     131When user-threading parallelism does drop, how and when should idle \glspl{kthrd} be put to sleep to avoid wasting CPU resources.
     132Finally, the scheduling system must provide fairness to prevent a user thread from monopolizing a kernel thread;
     133otherwise, other user threads can experience short/long term starvation or kernel threads can deadlock waiting for events to occur on busy kernel threads.
     134
     135This thesis analyses multiple scheduler systems, where each system attempts to fulfill the requirements for user-level threading.
     136The 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.
     137Preventing 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.
     138Fairness is handled through preemption and/or ad-hoc solutions, which leads to coarse-grained fairness with some pathological cases.
     139
     140After 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.
     142As one of its primary goals, \CFA aims to offer increased safety and productivity without sacrificing performance.
     143The new scheduler achieves this goal by demonstrating equivalent performance to work-stealing schedulers while offering better fairness.
     144The implementation uses several optimizations that successfully balance the cost of fairness against performance;
     145some of these optimizations rely on interesting hardware optimizations present on modern CPUs.
     146The 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}.
     147The 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.
     148To complete the scheduler, an idle sleep mechanism is implemented that significantly reduces wasted CPU cycles, which are then available outside the application.
    140149
    141150\cleardoublepage
     
    146155\begin{center}\textbf{Acknowledgements}\end{center}
    147156
    148 \todo{Acknowledgements}
     157I would like to thank my supervisor, Professor Peter Buhr, for his guidance through my degree as well as the editing of this document.
     158
     159I would like to thank Professors Martin Karsten and Trevor Brown, for reading my thesis and providing helpful feedback.
     160
     161Thanks 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
     163Finally, 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.
    149164\cleardoublepage
    150165
     
    164179\phantomsection    % allows hyperref to link to the correct page
    165180
     181% L I S T   O F   F I G U R E S
     182% -----------------------------
     183\addcontentsline{toc}{chapter}{List of Figures}
     184\listoffigures
     185\cleardoublepage
     186\phantomsection         % allows hyperref to link to the correct page
     187
    166188% L I S T   O F   T A B L E S
    167189% ---------------------------
     
    171193\phantomsection         % allows hyperref to link to the correct page
    172194
    173 % L I S T   O F   F I G U R E S
    174 % -----------------------------
    175 \addcontentsline{toc}{chapter}{List of Figures}
    176 \listoffigures
    177 \cleardoublepage
    178 \phantomsection         % allows hyperref to link to the correct page
    179 
    180195% GLOSSARIES (Lists of definitions, abbreviations, symbols, etc. provided by the glossaries-extra package)
    181196% -----------------------------
     
    184199\phantomsection         % allows hyperref to link to the correct page
    185200
    186 % TODOs and missing citations
    187 % -----------------------------
    188 \listofcits
    189 \listoftodos
    190 \cleardoublepage
    191 \phantomsection         % allows hyperref to link to the correct page
    192 
    193 
    194201% Change page numbering back to Arabic numerals
    195202\pagenumbering{arabic}
  • doc/theses/thierry_delisle_PhD/thesis/text/intro.tex

    r12df6fe r4520b77e  
    11\chapter{Introduction}\label{intro}
    2 \section{\CFA programming language}
    32
    4 The \CFA programming language~\cite{cfa:frontpage,cfa:typesystem} extends the C programming language by adding modern safety and productivity features, while maintaining backwards compatibility.
    5 Among its productivity features, \CFA supports user-level threading~\cite{Delisle21} allowing programmers to write modern concurrent and parallel programs.
    6 My previous master's thesis on concurrent in \CFA focused on features and interfaces.
    7 This Ph.D.\ thesis focuses on performance, introducing \glsxtrshort{api} changes only when required by performance considerations.
    8 Specifically, this work concentrates on scheduling and \glsxtrshort{io}.
    9 Prior to this work, the \CFA runtime used a strict \glsxtrshort{fifo} \gls{rQ} and no \glsxtrshort{io} capabilities at the user-thread level\footnote{C supports \glsxtrshort{io} capabilities at the kernel level, which means blocking operations block kernel threads where blocking user-level threads whould be more appropriate for \CFA.}.
     3\Gls{uthrding} (M:N) is gaining popularity over kernel-level threading (1:1) in many programming languages.
     4The user threading approach is often a better mechanism to express complex concurrent applications by efficiently running 10,000+ threads on multicore systems.
     5Indeed, over-partitioning into small work units with user threading significantly eases load bal\-ancing, while simultaneously providing advanced synchronization and mutual exclusion capabilities.
     6To manage these high levels of concurrency, the underlying runtime must efficiently schedule many user threads across a few kernel threads;
     7which begs the question of how many kernel threads are needed and should the number be dynamically reevaluated.
     8Furthermore, scheduling must prevent kernel threads from blocking, otherwise user-thread parallelism drops.
     9When user-threading parallelism does drop, how and when should idle kernel-threads be put to sleep to avoid wasting CPU resources.
     10Finally, the scheduling system must provide fairness to prevent a user thread from monopolizing a kernel thread;
     11otherwise, other user threads can experience short/long term starvation or kernel threads can deadlock waiting for events to occur on busy kernel threads.
    1012
    11 As a research project, this work builds exclusively on newer versions of the Linux operating-system and gcc/clang compilers.
    12 While \CFA is released, supporting older versions of Linux ($<$~Ubuntu 16.04) and gcc/clang compilers ($<$~gcc 6.0) is not a goal of this work.
     13This thesis analyzes multiple scheduler systems, where each system attempts to fulfill the requirements for \gls{uthrding}.
     14The 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.
     15Preventing 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.
     16Fairness is handled through preemption and/or ad hoc solutions, which leads to coarse-grained fairness with some pathological cases.
    1317
    14 \section{Scheduling}
    15 Computer systems share multiple resources across many threads of execution, even on single user computers like laptops or smartphones.
    16 On a computer system with multiple processors and work units, there exists the problem of mapping work onto processors in an efficient manner, called \newterm{scheduling}.
    17 These systems are normally \newterm{open}, meaning new work arrives from an external source or is spawned from an existing work unit.
    18 On a computer system, the scheduler takes a sequence of work requests in the form of threads and attempts to complete the work, subject to performance objectives, such as resource utilization.
    19 A general-purpose dynamic-scheduler for an open system cannot anticipate future work requests, so its performance is rarely optimal.
    20 With complete knowledge of arrive order and work, creating an optimal solution still effectively needs solving the bin packing problem\cite{wiki:binpak}.
    21 However, optimal solutions are often not required.
    22 Schedulers do produce excellent solutions, whitout needing optimality, by taking advantage of regularities in work patterns.
     18After 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.
     19The goal of the new scheduler is to offer increased safety and productivity without sacrificing performance.
     20The 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.
    2321
    24 Scheduling occurs at discreet points when there are transitions in a system.
    25 For example, a thread cycles through the following transitions during its execution.
     22Chapter~\ref{intro} defines scheduling and its general goals.
     23Chapter~\ref{existing} discusses how scheduler implementations attempt to achieve these goals, but all implementations optimize some workloads better than others.
     24Chapter~\ref{cfaruntime} presents the relevant aspects of the \CFA runtime system that have a significant effect on the new scheduler design and implementation.
     25Chapter~\ref{core} analyses different scheduler approaches while looking for scheduler mechanisms that provide both performance and fairness.
     26Chapter~\ref{userio} covers the complex mechanisms that must be used to achieve nonblocking I/O to prevent the blocking of \glspl{kthrd}.
     27Chapter~\ref{practice} presents the mechanisms needed to adjust the amount of parallelism, both manually and automatically.
     28Chapters~\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}
     32Computer systems share multiple resources across many threads of execution, even on single-user computers like laptops or smartphones.
     33On 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}.
     34Scheduling systems are normally \newterm{open}, meaning new work arrives from an external source or is randomly spawned from an existing work unit.
     35In general, work units without threads, like routines and coroutines, are self-scheduling, while work units with threads, like tasks and programs, are scheduled.
     36For scheduled work-units, a scheduler takes a sequence of threads and attempts to run them to completion, subject to shared resource restrictions and utilization.
     37In an open system, a general-purpose dynamic scheduler cannot anticipate work requests, so its performance is rarely optimal.
     38Even with complete knowledge of arrival order and work, creating an optimal solution is a bin packing problem~\cite{wiki:binpak}.
     39However, optimal solutions are often not required: schedulers often produce excellent solutions, without needing optimality, by taking advantage of regularities in work patterns.
     40
     41Scheduling occurs at discrete points when there are transitions in a system.
     42For example, a \at cycles through the following transitions during its execution.
    2643\begin{center}
    2744\input{executionStates.pstex_t}
    2845\end{center}
    29 These \newterm{state transition}s are initiated in response to events (\Index{interrupt}s):
     46These \newterm{state transition}s are initiated in response to events, \eg blocking, interrupts, errors:
    3047\begin{itemize}
    3148\item
    3249entering the system (new $\rightarrow$ ready)
    3350\item
     51scheduler assigns a \at to a computing resource, \eg CPU (ready $\rightarrow$ running)
     52\item
    3453timer alarm for preemption (running $\rightarrow$ ready)
    3554\item
    36 long term delay versus spinning (running $\rightarrow$ blocked)
     55long-term delay versus spinning (running $\rightarrow$ blocked)
    3756\item
    38 blocking ends, \ie network or I/O completion (blocked $\rightarrow$ ready)
     57completion of delay, \eg network or I/O completion (blocked $\rightarrow$ ready)
    3958\item
    40 normal completion or error, \ie segment fault (running $\rightarrow$ halted)
    41 \item
    42 scheduler assigns a thread to a resource (ready $\rightarrow$ running)
     59normal completion or error, \eg segment fault (running $\rightarrow$ halted)
    4360\end{itemize}
    44 Key to scheduling is that a thread cannot bypass the ``ready'' state during a transition so the scheduler maintains complete control of the system.
     61Key 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.
    4562
    4663When 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}.
    4764Ready queues organize threads for scheduling, which indirectly organizes the work to be performed.
    48 The structure of ready queues can take many different forms.
    49 Where simple examples include single-queue multi-server (SQMS) and the multi-queue multi-server (MQMS).
     65The 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).
    5066\begin{center}
    5167\begin{tabular}{l|l}
     
    5571\end{tabular}
    5672\end{center}
    57 Beyond these two schedulers are a host of options, \ie adding an optional global, shared queue to MQMS.
     73Beyond these two schedulers are a host of options, \eg adding a global shared queue to MQMS or adding multiple private queues with distinct characteristics.
    5874
    59 The three major optimization criteria for a scheduler are:
     75Once there are multiple resources and ready queues, a scheduler is faced with three major optimization criteria:
    6076\begin{enumerate}[leftmargin=*]
    6177\item
     
    6884
    6985\noindent
    70 Essentially, all multi-processor computers have non-uniform memory access (NUMA), with one or more quantized steps to access data at different levels in the memory hierarchy.
     86Essentially, 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.
    7187When a system has a large number of independently executing threads, affinity becomes difficult because of \newterm{thread churn}.
    72 That is, threads must be scheduled on multiple processors to obtain high processors utilization because the number of threads $\ggg$ processors.
     88That is, threads must be scheduled on different processors to obtain high processor utilization because the number of threads $\ggg$ processors.
    7389
    7490\item
    75 \newterm{contention}: safe access of shared objects by multiple processors requires mutual exclusion in some form, generally locking\footnote{
    76 Lock-free data-structures do not involve locking but incurr similar costs to achieve mutual exclusion.}
    77 
    78 \noindent
    79 Mutual exclusion cost and latency increases significantly with the number of processors accessing a shared object.
     91\newterm{contention}: safe access of shared objects by multiple processors requires mutual exclusion in some form, generally locking.\footnote{
     92Lock-free data-structures do not involve locking but incur similar costs to achieve mutual exclusion.}
     93Mutual exclusion cost and latency increase significantly with the number of processors access\-ing a shared object.
    8094\end{enumerate}
    8195
    82 Nevertheless, schedulers are a series of compromises, occasionally with some static or dynamic tuning parameters to enhance specific patterns.
    83 Scheduling is a zero-sum game as computer processors normally have a fixed, maximum number of cycles per unit time\footnote{Frequency scaling and turbot boost add a degree of complexity that can be ignored in this discussion without loss of generality.}.
    84 SQMS has perfect load-balancing but poor affinity and high contention by the processors, because of the single queue.
    85 MQMS has poor load-balancing but perfect affinity and no contention, because each processor has its own queue.
     96Scheduling is a zero-sum game as computer processors normally have a fixed, maximum number of cycles per unit time.\footnote{
     97Frequency scaling and turbo-boost add a degree of complexity that can be ignored in this discussion without loss of generality.}
     98Hence, schedulers are a series of compromises, occasionally with some static or dynamic tuning parameters to enhance specific workload patterns.
     99For example, SQMS has perfect load-balancing but poor affinity and high contention by the processors, because of the single queue.
     100While MQMS has poor load-balancing but perfect affinity and no contention, because each processor has its own queue.
    86101
    87 Significant research effort has also looked at load sharing/stealing among queues, when a ready queue is too long or short, respectively.
     102Significant 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.
    88103These approaches attempt to perform better load-balancing at the cost of affinity and contention.
    89 Load sharing/stealing schedulers attempt to push/pull work units to/from other ready queues
     104However, \emph{all} approaches come at a cost, but not all compromises are necessarily equivalent, especially across workloads.
     105Hence, some schedulers perform very well for specific workloads, while others offer acceptable performance over a wider range of workloads.
    90106
    91 Note however that while any change comes at a cost, hence the zero-sum game, not all compromises are necessarily equivalent.
    92 Some schedulers can perform very well only in very specific workload scenarios, others might offer acceptable performance but be applicable to a wider range of workloads.
    93 Since \CFA attempts to improve the safety and productivity of C, the scheduler presented in this thesis attempts to achieve the same goals.
    94 More specifically, safety and productivity for scheduling means supporting a wide range of workloads so that programmers can rely on progress guarantees (safety) and more easily achieve acceptable performance (productivity).
     107\section{\CFA programming language}
    95108
     109The \CFA programming language~\cite{Cforall,Moss18} extends the C programming language by adding modern safety and productivity features, while maintaining backwards compatibility.
     110Among its productivity features, \CFA supports \gls{uthrding}~\cite{Delisle21} as its fundamental threading model allowing programmers to easily write modern concurrent and parallel programs.
     111My previous master's thesis on concurrency in \CFA focused on features and interfaces~\cite{Delisle18}.
     112This Ph.D.\ thesis focuses on performance, introducing \glsxtrshort{api} changes only when required by performance considerations.
     113Specifically, this work concentrates on advanced thread and \glsxtrshort{io} scheduling.
     114Prior 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{
     115C/\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
     117Since \CFA attempts to improve the safety and productivity of C, the new scheduler presented in this thesis attempts to achieve the same goals.
     118More 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).
     119The 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}.
     120To complete the scheduler, an idle sleep mechanism is implemented that significantly reduces wasted CPU cycles, which are then available outside the application.
     121
     122As a research project, this work builds exclusively on newer versions of the Linux operating system and gcc/clang compilers.
     123The new scheduler implementation uses several optimizations to successfully balance the cost of fairness against performance;
     124some of these optimizations rely on interesting hardware optimizations only present on modern CPUs.
     125The \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.
     126This decision allowed an interesting performance and fairness comparison with other threading systems using @select@, @epoll@, \etc.
     127While 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.
     128The hope is that these new features will soon become mainstream features.
    96129
    97130\section{Contributions}\label{s:Contributions}
    98 This work provides the following contributions in the area of user-level scheduling in an advanced programming-language runtime-system:
     131This work provides the following scheduling contributions for advanced \gls{uthrding} runtime systems:
    99132\begin{enumerate}[leftmargin=*]
    100133\item
    101134A scalable scheduling algorithm that offers progress guarantees.
    102135\item
     136Support for user-level \glsxtrshort{io} capabilities based on Linux's @io_uring@.
     137\item
    103138An algorithm for load-balancing and idle sleep of processors, including NUMA awareness.
    104139\item
    105 Support for user-level \glsxtrshort{io} capabilities based on Linux's @io_uring@.
     140A 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
     142An optimization of the helping mechanism for load balancing to reduce scheduling costs.
     143\item
     144An optimization for the alternative relaxed-list for load balancing to reduce scheduling costs in embarrassingly parallel cases.
    106145\end{enumerate}
  • doc/theses/thierry_delisle_PhD/thesis/text/io.tex

    r12df6fe r4520b77e  
    1 \chapter{User Level \io}
    2 As mentioned in Section~\ref{prev:io}, user-level \io requires multiplexing the \io operations of many \glspl{thrd} onto fewer \glspl{proc} using asynchronous \io operations.
    3 Different operating systems offer various forms of asynchronous operations and, as mentioned in Chapter~\ref{intro}, this work is exclusively focused on the Linux operating-system.
     1\chapter{User Level \io}\label{userio}
     2As 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.
     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}}
     8\subsection{\lstinline{O_NONBLOCK}}\label{ononblock}
    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 issues again for the remaining bytes, at which point it may return \lstinline{EAGAIN}.}
    16 This mechanism is also crucial in determining when all \glspl{thrd} are blocked and the application \glspl{kthrd} can now block.
     15For 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}.}
     16This mechanism is also crucial in determining when all \ats 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}
    36 From: Tim Brecht <brecht@uwaterloo.ca>
    37 Subject: Re: FD sets
    38 Date: Wed, 6 Jul 2022 00:29:41 +0000
    39 
    40 Large number of open files
    41 --------------------------
    42 
    43 In order to be able to use more than the default number of open file
    44 descriptors you may need to:
    45 
    46 o increase the limit on the total number of open files /proc/sys/fs/file-max
    47   (on Linux systems)
    48 
    49 o 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}
    7234
    7335\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.
    7436For small interest sets with densely packed FDs, the @select@ bit mask can take less storage, and hence, copy less information into the kernel.
    75 Furthermore, @poll@ is non-destructive, so the array of structures does not have to be re-initialize on every call.
    76 Like @select@, @poll@ suffers from the limitation that the interest set cannot be changed by other \gls{kthrd}, while a manager thread is blocked in @poll@.
     37Furthermore, @poll@ is non-destructive, so the array of structures does not have to be re-initialized on every call.
     38Like @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@.
    7739
    7840\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}.
     
    8446However, all three of these I/O systems have limitations.
    8547The @man@ page for @O_NONBLOCK@ mentions that ``[@O_NONBLOCK@] has no effect for regular files and block devices'', which means none of these three system calls are viable multiplexing strategies for these types of \io operations.
    86 Furthermore, @epoll@ has been shown to have problems with pipes and ttys~\cit{Peter's examples in some fashion}.
     48Furthermore, TTYs can also be tricky to use since they can take different forms based on how the command is executed.
     49For 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@.
    8750Finally, 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.
    8851
     
    9053An alternative to @O_NONBLOCK@ is the AIO interface.
    9154Its interface lets programmers enqueue operations to be performed asynchronously by the kernel.
    92 Completions of these operations can be communicated in various ways: either by spawning a new \gls{kthrd}, sending a Linux signal, or by polling for completion of one or more operation.
    93 For this work, spawning a new \gls{kthrd} is counter-productive but a related solution is discussed in Section~\ref{io:morethreads}.
    94 Using interrupts handlers can also lead to fairly complicated interactions between subsystems and has non-trivial cost.
     55Completions 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.
     56For this work, spawning a new \gls{kthrd} is counterproductive but a related solution is discussed in Section~\ref{io:morethreads}.
     57Using interrupt handlers can also lead to fairly complicated interactions between subsystems and has a non-trivial cost.
    9558Leaving polling for completion, which is similar to the previous system calls.
    9659AIO 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.
    9760It also supports batching multiple operations in a single system call.
    9861
    99 AIO offers two different approaches to polling: @aio_error@ can be used as a spinning form of polling, returning @EINPROGRESS@ until the operation is completed, and @aio_suspend@ can be used similarly to @select@, @poll@ or @epoll@, to wait until one or more requests have completed.
    100 For the purpose of \io multiplexing, @aio_suspend@ is the best interface.
     62AIO 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.
     63For \io multiplexing, @aio_suspend@ is the best interface.
    10164However, even if AIO requests can be submitted concurrently, @aio_suspend@ suffers from the same limitation as @select@ and @poll@, \ie, the interest set cannot be dynamically changed while a call to @aio_suspend@ is in progress.
    102 AIO also suffers from the limitation of specifying which requests have completed, \ie programmers have to poll each request in the interest set using @aio_error@ to identify the completed requests.
     65AIO 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.
    10366This 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.
    10467Finally, AIO does not seem to be a popular interface, which I believe is due in part to this poor polling interface.
     
    12487in
    12588``some kind of arbitrary \textit{queue up asynchronous system call} model''.
    126 This description is actually quite close to the interface described in the next section.
     89This description is quite close to the interface described in the next section.
    12790
    12891\subsection{\lstinline{io_uring}}
     
    13598In 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.
    13699
    137 On top of these, @io_uring@ adds many extras like avoiding copies between the kernel and user-space using shared memory, allowing different mechanisms to communicate with device drivers, and supporting chains of requests, \ie, requests that automatically trigger followup requests on completion.
     100On 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.
    138101
    139102\subsection{Extra Kernel Threads}\label{io:morethreads}
    140 Finally, if the operating system does not offer a satisfactory form of asynchronous \io operations, an ad-hoc solution is to create a pool of \glspl{kthrd} and delegate operations to it to avoid blocking \glspl{proc}, which is a compromise for multiplexing.
    141 In the worst case, where all \glspl{thrd} are consistently blocking on \io, it devolves into 1-to-1 threading.
    142 However, regardless of the frequency of \io operations, it achieves the fundamental goal of not blocking \glspl{proc} when \glspl{thrd} are ready to run.
    143 This approach is used by languages like Go\cit{Go}, frameworks like libuv\cit{libuv}, and web servers like Apache~\cite{apache} and Nginx~\cite{nginx}, since it has the advantage that it can easily be used across multiple operating systems.
     103Finally, 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.
     104In the worst case, where all \ats are consistently blocking on \io, it devolves into 1-to-1 threading.
     105However, regardless of the frequency of \io operations, it achieves the fundamental goal of not blocking \glspl{proc} when \ats are ready to run.
     106This 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.
    144107This advantage is especially relevant for languages like Go, which offer a homogeneous \glsxtrshort{api} across all platforms.
    145 As opposed to C, which has a very limited standard api for \io, \eg, the C standard library has no networking.
     108As opposed to C, which has a very limited standard \glsxtrshort{api} for \io, \eg, the C standard library has no networking.
    146109
    147110\subsection{Discussion}
    148111These options effectively fall into two broad camps: waiting for \io to be ready versus waiting for \io to complete.
    149112All operating systems that support asynchronous \io must offer an interface along one of these lines, but the details vary drastically.
    150 For example, Free BSD offers @kqueue@~\cite{MAN:bsd/kqueue}, which behaves similarly to @epoll@, but with some small quality of use improvements, while Windows (Win32)~\cit{https://docs.microsoft.com/en-us/windows/win32/fileio/synchronous-and-asynchronous-i-o} offers ``overlapped I/O'', which handles submissions similarly to @O_NONBLOCK@ with extra flags on the synchronous system call, but waits for completion events, similarly to @io_uring@.
     113For 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@.
    151114
    152115For this project, I selected @io_uring@, in large parts because of its generality.
    153 While @epoll@ has been shown to be a good solution for socket \io (\cite{DBLP:journals/pomacs/KarstenB20}), @io_uring@'s transparent support for files, pipes, and more complex operations, like @splice@ and @tee@, make it a better choice as the foundation for a general \io subsystem.
     116While @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.
    154117
    155118\section{Event-Engine}
    156119An event engine's responsibility is to use the kernel interface to multiplex many \io operations onto few \glspl{kthrd}.
    157 In concrete terms, this means \glspl{thrd} enter the engine through an interface, the event engine then starts an operation and parks the calling \glspl{thrd}, returning control to the \gls{proc}.
    158 The parked \glspl{thrd} are then rescheduled by the event engine once the desired operation has completed.
    159 
    160 \subsection{\lstinline{io_uring} in depth}
     120In 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}.
     121The 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}
    161124Before 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.
    162125Figure~\ref{fig:iouring} shows an overview of an @io_uring@ instance.
     
    171134        \centering
    172135        \input{io_uring.pstex_t}
    173         \caption[Overview of \lstinline{io_uring}]{Overview of \lstinline{io_uring} \smallskip\newline Two ring buffer are used to communicate with the kernel, one for completions~(right) and one for submissions~(left). The submission ring indexes into a pre-allocated array (denoted \emph{S}) instead.}
     136        \caption[Overview of \lstinline{io_uring}]{Overview of \lstinline{io_uring} \smallskip\newline Two ring buffers are used to communicate with the kernel, one for completions~(right) and one for submissions~(left). The submission ring indexes into a pre-allocated array (denoted \emph{S}) instead.}
    174137        \label{fig:iouring}
    175138\end{figure}
     
    184147\item
    185148The SQE is filled according to the desired operation.
    186 This step is straight forward.
    187 The only detail worth mentioning is that SQEs have a @user_data@ field that must be filled in order to match submission and completion entries.
     149This step is straightforward.
     150The only detail worth mentioning is that SQEs have a @user_data@ field that must be filled to match submission and completion entries.
    188151\item
    189152The 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++}.
     
    207170
    208171The @io_uring_enter@ system call is protected by a lock inside the kernel.
    209 This protection means that concurrent call to @io_uring_enter@ using the same instance are possible, but there is no performance gained from parallel calls to @io_uring_enter@.
     172This 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@.
    210173It is possible to do the first three submission steps in parallel;
    211174however, doing so requires careful synchronization.
     
    216179This restriction means \io request bursts may have to be subdivided and submitted in chunks at a later time.
    217180
     181An 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.
     182Indeed, 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.
     183In this case, the @io_uring@ operations that cannot be handled directly in the system call must be delegated to some other \gls{kthrd}.
     184To this end, @io_uring@ maintains multiple \glspl{kthrd} inside the kernel that are not exposed to the user.
     185Three kinds of operations that can need the \glspl{kthrd}:
     186
     187\paragraph{Operations using} @IOSQE_ASYNC@.
     188This 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.}
     191This 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.
     193In 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.}
     196While 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.
     197Since 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.
     199The \glspl{kthrd} in this pool are referred to as \newterm{unbounded workers}.
     200Unbounded 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.
     203This effectively encapsulates the work that is needed when using @epoll@.
     204Indeed, @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
    218207\subsection{Multiplexing \io: Submission}
    219208
    220 The submission side is the most complicated aspect of @io_uring@ and the completion side effectively follows from the design decisions made in the submission side.
     209The 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.
    221210While there is freedom in designing the submission side, there are some realities of @io_uring@ that must be taken into account.
    222211It is possible to do the first steps of submission in parallel;
     
    229218As described in Chapter~\ref{practice}, this does not translate into constant CPU usage.}.
    230219Note that once an operation completes, there is nothing that ties it to the @io_uring@ instance that handled it.
    231 There is nothing preventing a new operation with, \eg the same file descriptors to a different @io_uring@ instance.
     220Nothing preventing a new operation, with for example the same file descriptor, to use a different @io_uring@ instance.
    232221
    233222A 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.
     
    237226Support for this feature can be fulfilled simply by supporting arbitrary user code between allocation and submission.
    238227
    239 Similar to scheduling, sharding @io_uring@ instances can be done privately, \ie, one instance per \glspl{proc}, in decoupled pools, \ie, a pool of \glspl{proc} 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.
     228Similar 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.
    240229These three sharding approaches are analyzed.
    241230
    242231\subsubsection{Private Instances}
    243232The private approach creates one ring instance per \gls{proc}, \ie one-to-one coupling.
    244 This alleviates the need for synchronization on the submissions, requiring only that \glspl{thrd} are not time-sliced during submission steps.
    245 This requirement is the same as accessing @thread_local@ variables, where a \gls{thrd} is accessing kernel-thread data, is time-sliced, and continues execution on another kernel thread but is now accessing the wrong data.
    246 This failure is the serially reusable problem~\cite{SeriallyReusable}.
    247 Hence, allocated SQEs must be submitted to the same ring on the same \gls{proc}, which effectively forces the application to submit SQEs in allocation order.\footnote{
    248 To remove this requirement, a \gls{thrd} needs the ability to ``yield to a specific \gls{proc}'', \ie, park with the guarantee it unparks on a specific \gls{proc}, \ie the \gls{proc} attached to the correct ring.}
     233This alleviates the need for synchronization on the submissions, requiring only that \ats are not time-sliced during submission steps.
     234This 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.
     235This failure is the \newterm{serially reusable problem}~\cite{SeriallyReusable}.
     236Hence, 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{
     237To 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.}
    249238From the subsystem's point of view, the allocation and submission are sequential, greatly simplifying both.
    250239In this design, allocation and submission form a partitioned ring buffer as shown in Figure~\ref{fig:pring}.
    251 Once added to the ring buffer, the attached \gls{proc} has a significant amount of flexibility with regards to when to perform the system call.
    252 Possible options are: when the \gls{proc} runs out of \glspl{thrd} to run, after running a given number of \glspl{thrd}, \etc.
     240Once added to the ring buffer, the attached \gls{proc} has a significant amount of flexibility with regard to when to perform the system call.
     241Possible options are: when the \gls{proc} runs out of \ats to run, after running a given number of \ats, \etc.
    253242
    254243\begin{figure}
    255244        \centering
    256245        \input{pivot_ring.pstex_t}
    257         \caption[Partitioned ring buffer]{Partitioned ring buffer \smallskip\newline Allocated sqes are appending to the first partition.
     246        \caption[Partitioned ring buffer]{Partitioned ring buffer \smallskip\newline Allocated sqes are appended to the first partition.
    258247        When submitting, the partition is advanced.
    259248        The kernel considers the partition as the head of the ring.}
     
    262251
    263252This approach has the advantage that it does not require much of the synchronization needed in a shared approach.
    264 However, this benefit means \glspl{thrd} submitting \io operations have less flexibility: they cannot park or yield, and several exceptional cases are handled poorly.
    265 Instances running out of SQEs cannot run \glspl{thrd} wanting to do \io operations.
    266 In this case, the \io \gls{thrd} needs to be moved to a different \gls{proc}, and the only current way of achieving this is to @yield()@ hoping to be scheduled on a different \gls{proc} with free SQEs, which is not guaranteed.
     253However, this benefit means \ats submitting \io operations have less flexibility: they cannot \park or yield, and several exceptional cases are handled poorly.
     254Instances running out of SQEs cannot run \ats wanting to do \io operations.
     255In 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.
    267256
    268257A more involved version of this approach tries to solve these problems using a pattern called \newterm{helping}.
    269 \Glspl{thrd} that cannot submit \io operations, either because of an allocation failure or 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.
    270 While there is still the strong coupling between \glspl{proc} and @io_uring@ instances, these data structures allow moving \glspl{thrd} to a specific \gls{proc}, when the current \gls{proc} cannot fulfill the \io request.
    271 
    272 Imagine a simple scenario with two \glspl{thrd} on two \glspl{proc}, where one \gls{thrd} submits an \io operation and then sets a flag, while the other \gls{thrd} spins until the flag is set.
    273 Assume both \glspl{thrd} are running on the same \gls{proc}, and the \io \gls{thrd} is preempted between allocation and submission, moved to the second \gls{proc}, and the original \gls{proc} starts running the spinning \gls{thrd}.
    274 In this case, the helping solution has the \io \gls{thrd} append an \io object to the submission list of the first \gls{proc}, where the allocation was made.
    275 No other \gls{proc} can help the \gls{thrd} since @io_uring@ instances are strongly coupled to \glspl{proc}.
    276 However, the \io \gls{proc} is unable to help because it is executing the spinning \gls{thrd} resulting in a deadlock.
    277 While this example is artificial, in the presence of many \glspl{thrd}, it is possible for this problem to arise ``in the wild''.
     258\ats that cannot submit \io operations, either because of an allocation failure or \glslink{atmig}{migration} to a different \gls{proc} between allocation and submission, create an \io object and add it to a list of pending submissions per \gls{proc} and a list of pending allocations, probably per cluster.
     259While 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
     261Imagine 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.
     262Assume 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.
     263In 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.
     264No other \gls{proc} can help the \at since @io_uring@ instances are strongly coupled to \glspl{proc}.
     265However, the \io \gls{proc} is unable to help because it is executing the spinning \at resulting in a deadlock.
     266While this example is artificial, in the presence of many \ats, this problem can arise ``in the wild''.
    278267Furthermore, this pattern is difficult to reliably detect and avoid.
    279 Once in this situation, the only escape is to interrupted the spinning \gls{thrd}, either directly or via some regular preemption, \eg time slicing.
    280 Having to interrupt \glspl{thrd} for this purpose is costly, the latency can be large between interrupts, and the situation may be hard to detect.
     268Once in this situation, the only escape is to interrupt the spinning \at, either directly or via some regular preemption, \eg time slicing.
     269Having to interrupt \ats for this purpose is costly, the latency can be large between interrupts, and the situation may be hard to detect.
    281270Interrupts are needed here entirely because the \gls{proc} is tied to an instance it is not using.
    282 Therefore, a more satisfying solution is for the \gls{thrd} submitting the operation to notice that the instance is unused and simply go ahead and use it.
     271Therefore, 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.
    283272This approach is presented shortly.
    284273
    285274\subsubsection{Public Instances}
    286275The public approach creates decoupled pools of @io_uring@ instances and processors, \ie without one-to-one coupling.
    287 \Glspl{thrd} attempting an \io operation pick one of the available instances and submit the operation to that instance.
    288 Since there is no coupling between @io_uring@ instances and \glspl{proc} in this approach, \glspl{thrd} running on more than one \gls{proc} can attempt to submit to the same instance concurrently.
     276\ats attempting an \io operation pick one of the available instances and submit the operation to that instance.
     277Since 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.
    289278Because @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:
    290279\begin{itemize}
     
    293282\item
    294283The scheme to route \io requests to specific @io_uring@ instances does not introduce contention.
    295 This 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.
     284This 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.
    296285\end{itemize}
    297286
    298287Allocation in this scheme is fairly easy.
    299 Free SQEs, \ie, SQEs that are not currently being used to represent a request, can be written to safely and have a field called @user_data@ that the kernel only reads to copy to @cqe@s.
    300 Allocation also requires no ordering guarantee as all free SQEs are interchangeable.
     288Free 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.
     289Allocation also does not require ordering guarantees as all free SQEs are interchangeable.
    301290The only added complexity is that the number of SQEs is fixed, which means allocation can fail.
    302291
    303 Allocation failures need to be pushed to a routing algorithm: \glspl{thrd} attempting \io operations must not be directed to @io_uring@ instances without sufficient SQEs available.
    304 Furthermore, the routing algorithm should block operations up-front, if none of the instances have available SQEs.
    305 
    306 Once an SQE is allocated, \glspl{thrd} insert the \io request information, and keep track of the SQE index and the instance it belongs to.
    307 
    308 Once an SQE is filled in, it is added to the submission ring buffer, an operation that is not thread-safe, and then the kernel must be notified using the @io_uring_enter@ system call.
    309 The submission ring buffer is the same size as the pre-allocated SQE buffer, therefore pushing to the ring buffer cannot fail because it would mean a \lstinline{sqe} multiple times in the ring buffer, which is undefined behaviour.
    310 However, as mentioned, the system call itself can fail with the expectation that it can be retried once some submitted operations complete.
     292Allocation 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.
     293Furthermore, the routing algorithm should block operations upfront if none of the instances have available SQEs.
     294
     295Once an SQE is allocated, \ats insert the \io request information and keep track of the SQE index and the instance it belongs to.
     296
     297Once 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.
     298The 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.
     299However, as mentioned, the system call itself can fail with the expectation that it can be retried once some submitted operations are complete.
    311300
    312301Since multiple SQEs can be submitted to the kernel at once, it is important to strike a balance between batching and latency.
    313 Operations that are ready to be submitted should be batched together in few system calls, but at the same time, operations should not be left pending for long period of times before being submitted.
    314 Balancing submission can be handled by either designating one of the submitting \glspl{thrd} as the being responsible for the system call for the current batch of SQEs or by having some other party regularly submitting all ready SQEs, \eg, the poller \gls{thrd} mentioned later in this section.
    315 
    316 Ideally, when multiple \glspl{thrd} attempt to submit operations to the same @io_uring@ instance, all requests should be batched together and one of the \glspl{thrd} is designated to do the system call on behalf of the others, called the \newterm{submitter}.
     302Operations 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.
     303Balancing 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
     305Ideally, 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}.
    317306However, in practice, \io requests must be handed promptly so there is a need to guarantee everything missed by the current submitter is seen by the next one.
    318 Indeed, as long as there is a ``next'' submitter, \glspl{thrd} submitting new \io requests can move on, knowing that some future system call includes their request.
    319 Once the system call is done, the submitter must also free SQEs so that the allocator can reused them.
    320 
    321 Finally, the completion side is much simpler since the @io_uring@ system-call enforces a natural synchronization point.
    322 Polling simply needs to regularly do the system call, go through the produced CQEs and communicate the result back to the originating \glspl{thrd}.
    323 Since CQEs only own a signed 32 bit result, in addition to the copy of the @user_data@ field, all that is needed to communicate the result is a simple future~\cite{wiki:future}.
     307Indeed, 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.
     308Once the system call is done, the submitter must also free SQEs so that the allocator can reuse them.
     309
     310Finally, the completion side is much simpler since the @io_uring@ system call enforces a natural synchronization point.
     311Polling simply needs to regularly do the system call, go through the produced CQEs and communicate the result back to the originating \ats.
     312Since 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}.
    324313If the submission side does not designate submitters, polling can also submit all SQEs as it is polling events.
    325 A simple approach to polling is to allocate a \gls{thrd} per @io_uring@ instance and simply let the poller \glspl{thrd} poll their respective instances when scheduled.
     314A 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.
    326315
    327316With the pool of SEQ instances approach, the big advantage is that it is fairly flexible.
    328 It does not impose restrictions on what \glspl{thrd} submitting \io operations can and cannot do between allocations and submissions.
     317It does not impose restrictions on what \ats submitting \io operations can and cannot do between allocations and submissions.
    329318It also can gracefully handle running out of resources, SQEs or the kernel returning @EBUSY@.
    330 The down side to this approach is that many of the steps used for submitting need complex synchronization to work properly.
    331 The routing and allocation algorithm needs to keep track of which ring instances have available SQEs, block incoming requests if no instance is available, prevent barging if \glspl{thrd} are already queued up waiting for SQEs and handle SQEs being freed.
     319The downside to this approach is that many of the steps used for submitting need complex synchronization to work properly.
     320The 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.
    332321The submission side needs to safely append SQEs to the ring buffer, correctly handle chains, make sure no SQE is dropped or left pending forever, notify the allocation side when SQEs can be reused, and handle the kernel returning @EBUSY@.
    333 All this synchronization has a significant cost, and compared to the private-instance approach, this synchronization is entirely overhead.
     322Compared to the private-instance approach, all this synchronization has a significant cost this synchronization is entirely overhead.
    334323
    335324\subsubsection{Instance borrowing}
    336325Both of the prior approaches have undesirable aspects that stem from tight or loose coupling between @io_uring@ and \glspl{proc}.
    337326The first approach suffers from tight coupling causing problems when a \gls{proc} does not benefit from the coupling.
    338 The second approach suffers from loose coupling causing operations to have synchronization overhead, which tighter coupling avoids.
     327The second approach suffers from loose couplings causing operations to have synchronization overhead, which tighter coupling avoids.
    339328When \glspl{proc} are continuously issuing \io operations, tight coupling is valuable since it avoids synchronization costs.
    340329However, in unlikely failure cases or when \glspl{proc} are not using their instances, tight coupling is no longer advantageous.
     
    344333
    345334In this approach, each cluster, see Figure~\ref{fig:system}, owns a pool of @io_uring@ instances managed by an \newterm{arbiter}.
    346 When a \gls{thrd} attempts to issue an \io operation, it ask for an instance from the arbiter and issues requests to that instance.
    347 This instance is now bound to the \gls{proc} the \gls{thrd} is running on.
    348 This binding is kept until the arbiter decides to revoke it, taking back the instance and reverting the \gls{proc} to its initial state with respect to \io.
     335When a \at attempts to issue an \io operation, it ask for an instance from the arbiter and issues requests to that instance.
     336This instance is now bound to the \gls{proc} the \at is running on.
     337This binding is kept until the arbiter decides to revoke it, taking back the instance and reverting the \gls{proc} to its initial \io state.
    349338This 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.
    350339However, it differs in that revocation by the arbiter means this approach does not suffer from the deadlock scenario described above.
     
    354343        \item The current \gls{proc} does not hold an instance.
    355344        \item The current instance does not have sufficient SQEs to satisfy the request.
    356         \item The current \gls{proc} has a wrong instance, this happens if the submitting \gls{thrd} context-switched between allocation and submission, called \newterm{external submissions}.
     345        \item The current \gls{proc} has a wrong instance, this happens if the submitting \at context-switched between allocation and submission, called \newterm{external submissions}.
    357346\end{enumerate}
    358347However, even when the arbiter is not directly needed, \glspl{proc} need to make sure that their instance ownership is not being revoked, which is accomplished by a lock-\emph{less} handshake.\footnote{
    359 Note the handshake is not lock \emph{free} since it lacks the proper progress guarantee.}
     348Note the handshake is not lock-\emph{free} since it lacks the proper progress guarantee.}
    360349A \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.
    361350If not, it proceeds, otherwise it delegates the operation to the arbiter.
     
    363352
    364353Correspondingly, before revoking an instance, the arbiter marks the instance and then waits for the \gls{proc} using it to lower its local flag.
    365 Only then does it reclaim the instance and potentially assign it to an other \gls{proc}.
     354Only then does it reclaim the instance and potentially assign it to another \gls{proc}.
    366355
    367356The arbiter maintains four lists around which it makes its decisions:
     
    380369
    381370\paragraph{Pending Allocations} are handled by the arbiter when it has available instances and can directly hand over the instance and satisfy the request.
    382 Otherwise, it must hold onto the list of threads until SQEs are made available again.
     371Otherwise, it must hold on to the list of threads until SQEs are made available again.
    383372This 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.
    384373
    385374While an arbiter has the potential to solve many of the problems mentioned above, it also introduces a significant amount of complexity.
    386 Tracking which processors are borrowing which instances and which instances have SQEs available ends-up adding a significant synchronization prelude to any I/O operation.
     375Tracking which processors are borrowing which instances and which instances have SQEs available ends up adding a significant synchronization prelude to any I/O operation.
    387376Any submission must start with a handshake that pins the currently borrowed instance, if available.
    388377An attempt to allocate is then made, but the arbiter can concurrently be attempting to allocate from the same instance from a different \gls{hthrd}.
    389378Once the allocation is completed, the submission must check that the instance is still burrowed before attempting to flush.
    390379These synchronization steps turn out to have a similar cost to the multiple shared-instances approach.
    391 Furthermore, if the number of instances does not match the number of processors actively submitting I/O, the system can fall into a state where instances are constantly being revoked and end-up cycling the processors, which leads to significant cache deterioration.
     380Furthermore, 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.
    392381For 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()
    450382
    451383\section{Interface}
    452384The last important part of the \io subsystem is its interface.
    453 There are multiple approaches that can be offered to programmers, each with advantages and disadvantages.
    454 The new \io subsystem can replace the C runtime API or extend it, and in the later case, the interface can go from very similar to vastly different.
     385Multiple approaches can be offered to programmers, each with advantages and disadvantages.
     386The 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.
    455387The following sections discuss some useful options using @read@ as an example.
    456 The standard Linux interface for C is :
     388The standard Linux interface for C is:
    457389\begin{cfa}
    458390ssize_t read(int fd, void *buf, size_t count);
     
    466398However, this approach also entails a plethora of subtle technical challenges, which generally boils down to making a perfect replacement.
    467399If the \CFA interface replaces only \emph{some} of the calls to glibc, then this can easily lead to esoteric concurrency bugs.
    468 Since the gcc ecosystems does not offer a scheme for perfect replacement, this approach was rejected as being laudable but infeasible.
     400Since the gcc ecosystem does not offer a scheme for perfect replacement, this approach was rejected as being laudable but infeasible.
    469401
    470402\subsection{Synchronous Extension}
     
    477409It 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.
    478410However, it has the advantage of implementation simplicity.
    479 Finally, there is a certain irony to using a blocking synchronous interfaces for a feature often referred to as ``non-blocking'' \io.
     411Finally, there is a certain irony to using a blocking synchronous interface for a feature often referred to as ``non-blocking'' \io.
    480412
    481413\subsection{Asynchronous Extension}
     
    505437This offers more flexibility to users wanting to fully utilize all of the @io_uring@ features.
    506438However, it is not the most user-friendly option.
    507 It obviously imposes a strong dependency between user code and @io_uring@ but at the same time restricting users to usages that are compatible with how \CFA internally uses @io_uring@.
     439It obviously imposes a strong dependency between user code and @io_uring@ but at the same time restricts users to usages that are compatible with how \CFA internally uses @io_uring@.
  • doc/theses/thierry_delisle_PhD/thesis/text/practice.tex

    r12df6fe r4520b77e  
    1616} // delete 4 kernel threads
    1717\end{cfa}
    18 Dynamically allocated processors can be deleted an any time, \ie their lifetime exceeds the block of creation.
     18Dynamically allocated processors can be deleted at 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 clusters at startup/teardown.
     23Programmers normally create/delete processors on a cluster 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 for 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 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 remain constant.
     30It should also avoid as much as possible any effect on performance when the number of \procs remains 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 attempt 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 attempting 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, 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, but 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 subqueues 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 sub-queues 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 To achieve this goal requires each reader to have its own memory to mark as locked and unlocked.
    61 The read acquire possibly waits for a writer to finish the critical section and then acquires a reader's local spinlock.
    62 The write acquire acquires the global lock, guaranteeing mutual exclusion among writers, and then acquires each of the local reader locks.
    63 Acquiring all the local read locks guarantees mutual exclusion among the readers and the writer, while the wait on the read side prevents readers from continuously starving the writer.
    64 
     60Achieving this goal requires that each reader 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 writer 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.
    6564Figure~\ref{f:SpecializedReadersWriterLock} shows the outline for this specialized readers-writer lock.
    6665The lock in nonblocking, so both readers and writers spin while the lock is held.
    67 \todo{finish explanation}
     66This very wide sharding strategy means that readers have very good locality since they only ever need to access two memory locations.
    6867
    6968\begin{figure}
     
    9998\section{Idle-Sleep}\label{idlesleep}
    10099While manual resizing of \procs is expected to be rare, the number of \ats can vary significantly over an application's lifetime, which means there are times when there are too few or too many \procs.
    101 For this work, it is the programer's responsibility to manually create \procs, so if there are too few \procs, the application must address this issue.
     100For 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.
    102101This leaves too many \procs when there are not enough \ats for all the \procs to be useful.
    103102These 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.
     
    109108Because idle sleep is spurious, this data structure has strict performance requirements, in addition to strict correctness requirements.
    110109Next, some mechanism is needed to block \glspl{kthrd}, \eg @pthread_cond_wait@ on a pthread semaphore.
    111 The complexity here is to support \at parking and unparking, user-level locking, timers, \io operations, and all other \CFA features with minimal complexity.
     110The 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.
    112111Finally, the scheduler needs a heuristic to determine when to block and unblock an appropriate number of \procs.
    113112However, this third challenge is outside the scope of this thesis because developing a general heuristic is complex enough to justify its own work.
    114113Therefore, the \CFA scheduler simply follows the ``Race-to-Idle''~\cite{Albers12} approach where a sleeping \proc is woken any time a \at becomes ready and \procs go to idle sleep anytime they run out of work.
    115 An interesting sub-part of this heuristic is what to do with bursts of \ats that become ready.
    116 Since waking up a sleeping \proc can have notable latency, it is possible multiple \ats become ready while a single \proc is waking up.
    117 This facts begs the question, if many \procs are available, how many should be woken?
    118 If the ready \ats will run longer than the wake-up latency, waking one \proc per \at will offer maximum parallelisation.
    119 If the ready \ats will run for a short very short time, waking many \procs may be wasteful.
     114
     115An interesting subpart of this heuristic is what to do with bursts of \ats that become ready.
     116Since waking up a sleeping \proc can have notable latency, multiple \ats may become ready while a single \proc is waking up.
     117This fact 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 parallelization.
     119If the ready \ats will run for a 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 corner-stone of any feature related to the kernel is the choice of system call.
     123As usual, the cornerstone 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 \glspl{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 \gls{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\cit{eventfd}.
     139Another interesting approach is to use an event file descriptor\cite{MAN: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 a 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 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 make sure the newly ready \at is visible to \procs searching for \ats, and then attempt to notify an idle \proc.
     156The notifier first makes sure the newly ready \at is visible to \procs searching for \ats, and then attempts 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 Conversly, if the notifier does not see any idle \proc, then a \proc is guaranteed to find the new \at in its exhaustive search.
     160Conversely, 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 period of times 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 periods 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 notify when a new \at is readied, but also must be notified during manual resizing, so the \gls{kthrd} can be joined.
     175Indeed, \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.
    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 of time is likely in certain scenarios.
    182 Therefore, 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.
     181As mentioned in this section, \procs going to sleep for extremely short periods is likely in certain scenarios.
     182Therefore, the latency of doing a system call to read from and write to an event @fd@ can negatively affect overall performance notably.
    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 notifier write to the @fd@ since reads consume all previous writes.
    208 Note that with and without this atomic pointer, bursts of notification can lead to an unspecified number of \procs being woken up, depending on how the arrival notification compares witht the latency of \procs waking up.
     207This behaviour is equivalent to having multiple notifiers 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 with 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\cit{benaphore} in front of the event @fd@.
    220 The benaphore over the event @fd@ logically provides a three state flag to avoid unnecessary system calls, where the states are expressed explicit in Figure~\ref{fig:idle:state}.
    221 A \proc begins its idle sleep by adding itself to the idle list before searching for an \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\cite{schillings1996engineering} 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 explicitly in Figure~\ref{fig:idle:state}.
     221A \proc begins its idle sleep by adding itself to the idle list before searching for a \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 @AWAKE@ state.
     225Meanwhile, notifiers atomically exchange the state to the @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 leads to the final data structure shown in Figure~\ref{fig:idle}.
     228These extensions lead 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

    r12df6fe r4520b77e  
    1 \chapter{\CFA Runtime}
     1\chapter{\CFA Runtime}\label{cfaruntime}
    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 the @_Thread_local@ storage class, and libraries @stdatomic.h@ and @threads.h@.
     6\Celeven introduced threading features, such as the @_Thread_local@ storage class, and libraries @stdatomic.h@ and @threads.h@.
    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 \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.
     15Threading 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.
    1616
    17 The \CFA M:N threading models is implemented using many user-level threads mapped onto fewer \glspl{kthrd}.
     17The \CFA M:N threading model 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 \gls{thrd} until it context switches out, it then chooses a different \gls{thrd} 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 \at until it context switches out, it then chooses a different \at to run.
    2020
    2121\section{Clusters}
    2222\CFA allows the option to group user-level threading, in the form of clusters.
    23 Both \glspl{thrd} and \glspl{proc} belong to a specific cluster.
    24 \Glspl{thrd} are only scheduled onto \glspl{proc} in the same cluster and scheduling is done independently of other clusters.
     23Both \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.
    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{thrd} are scheduled inside a particular cluster and run on the \glspl{proc} that belong to the cluster. The discrete-event manager, which handles preemption and timeout, is a \gls{proc} that lives outside any cluster and does not run \glspl{thrd}.}
     32        \caption[Overview of the \CFA runtime]{Overview of the \CFA runtime \newline \Glspl{at} are scheduled inside a particular cluster and run on the \glspl{proc} that belong to the cluster. The discrete-event manager, which handles preemption and timeout, is a \gls{proc} that lives outside any cluster and does not run \ats.}
    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 \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:
     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 \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:
    4141
    4242\begin{quote}
    43 Given a simple network program with 2 \glspl{thrd} and a single \gls{proc}, one \gls{thrd} sends network requests to a server and the other \gls{thrd} waits for a response from the server.
    44 If the second \gls{thrd} races ahead, it may wait for responses to requests that have not been sent yet.
    45 In theory, this should not be a problem, even if the second \gls{thrd} waits, because the first \gls{thrd} is still ready to run and should be able to get CPU time to send the request.
    46 With M:N threading, while the first \gls{thrd} is ready, the lone \gls{proc} \emph{cannot} run the first \gls{thrd} if it is blocked in the \glsxtrshort{io} operation of the second \gls{thrd}.
    47 If this happen, the system is in a synchronization deadlock\footnote{In this example, the deadlock could be resolved if the server sends unprompted messages to the client.
     43Given 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.
     44If the second \at 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 \at waits, because the first \at is still ready to run and should be able to get CPU time to send the request.
     46With 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.
     47If 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.
    4848However, this solution is neither general nor appropriate even in this simple case.}.
    4949\end{quote}
    5050
    51 Therefore, one of the objective of this work is to introduce \emph{User-Level \glsxtrshort{io}}, which like \glslink{uthrding}{User-Level \emph{Threading}}, blocks \glspl{thrd} rather than \glspl{proc} when doing \glsxtrshort{io} ope      rations.
    52 This feature entails multiplexing the \glsxtrshort{io} operations of many \glspl{thrd} onto fewer \glspl{proc}.
     51Therefore, 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.
     52This feature entails multiplexing the \glsxtrshort{io} operations of many \ats 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 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.
     62Only 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.
    6363
    64 Languages like Go and Java, which have strict interoperability with C\cit{JNI, GoLang with C}, can control operations in C by ``sandboxing'' them, \eg a blocking function may be delegated to a \gls{kthrd}. Sandboxing may help towards guaranteeing that the kind of deadlock mentioned above does not occur.
     64Languages 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.
    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 are 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 is redirected to \CFA user-level locks. This capability further reduces the chances of blocking a \gls{kthrd}.}
  • doc/theses/thierry_delisle_PhD/thesis/thesis.tex

    r12df6fe r4520b77e  
    8484\usepackage{subcaption}
    8585\usepackage{comment} % Removes large sections of the document.
     86\usepackage{array}
    8687
    8788% Hyperlinks make it very easy to navigate an electronic document.
     
    210211\newcommand\proc{\gls{proc}\xspace}%
    211212\newcommand\procs{\glspl{proc}\xspace}%
     213\newcommand\park{\glslink{atblock}{park}\xspace}%
     214\newcommand\unpark{\glslink{atsched}{unpark}\xspace}%
    212215
    213216%======================================================================
     
    247250\input{text/eval_macro.tex}
    248251\part{Conclusion \& Annexes}
     252\input{text/conclusion.tex}
     253
    249254
    250255%----------------------------------------------------------------------
     
    280285% Appendices
    281286
    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}
    294 Properties of Matab plots can be adjusted from the plot window via a graphical interface. Under the Desktop menu in the Figure window, select the Property Editor. You may also want to check the Plot Browser and Figure Palette for more tools. To adjust properties of the axes, look under the Edit menu and select Axes Properties.
    295 
    296 To set the figure size and to save as PDF or other file formats, click the Export Setup button in the figure Property Editor.
    297 
    298 \section{From the Command Line}
    299 All figure properties can also be manipulated from the command line. Here's an example:
    300 \begin{verbatim}
    301 x=[0:0.1:pi];
    302 hold on % Plot multiple traces on one figure
    303 plot(x,sin(x))
    304 plot(x,cos(x),'--r')
    305 plot(x,tan(x),'.-g')
    306 title('Some Trig Functions Over 0 to \pi') % Note LaTeX markup!
    307 legend('{\it sin}(x)','{\it cos}(x)','{\it tan}(x)')
    308 hold off
    309 set(gca,'Ylim',[-3 3]) % Adjust Y limits of "current axes"
    310 set(gcf,'Units','inches') % Set figure size units of "current figure"
    311 set(gcf,'Position',[0,0,6,4]) % Set figure width (6 in.) and height (4 in.)
    312 cd n:\thesis\plots % Select where to save
    313 print -dpdf plot.pdf % Save as PDF
    314 \end{verbatim}
     287% % The \appendix statement indicates the beginning of the appendices.
     288% \appendix
     289% % Add an un-numbered title page before the appendices and a line in the Table of Contents
     290% \chapter*{APPENDICES}
     291% \addcontentsline{toc}{chapter}{APPENDICES}
     292% % Appendices are just more chapters, with different labeling (letters instead of numbers).
     293% %======================================================================
     294% \chapter[PDF Plots From Matlab]{Matlab Code for Making a PDF Plot}
     295% \label{AppendixA}
     296% % Tip 4: Example of how to get a shorter chapter title for the Table of Contents
     297% %======================================================================
     298% \section{Using the GUI}
     299% Properties of Matab plots can be adjusted from the plot window via a graphical interface. Under the Desktop menu in the Figure window, select the Property Editor. You may also want to check the Plot Browser and Figure Palette for more tools. To adjust properties of the axes, look under the Edit menu and select Axes Properties.
     300
     301% To set the figure size and to save as PDF or other file formats, click the Export Setup button in the figure Property Editor.
     302
     303% \section{From the Command Line}
     304% All figure properties can also be manipulated from the command line. Here's an example:
     305% \begin{verbatim}
     306% x=[0:0.1:pi];
     307% hold on % Plot multiple traces on one figure
     308% plot(x,sin(x))
     309% plot(x,cos(x),'--r')
     310% plot(x,tan(x),'.-g')
     311% title('Some Trig Functions Over 0 to \pi') % Note LaTeX markup!
     312% legend('{\it sin}(x)','{\it cos}(x)','{\it tan}(x)')
     313% hold off
     314% set(gca,'Ylim',[-3 3]) % Adjust Y limits of "current axes"
     315% set(gcf,'Units','inches') % Set figure size units of "current figure"
     316% set(gcf,'Position',[0,0,6,4]) % Set figure width (6 in.) and height (4 in.)
     317% cd n:\thesis\plots % Select where to save
     318% print -dpdf plot.pdf % Save as PDF
     319% \end{verbatim}
    315320
    316321% GLOSSARIES (Lists of definitions, abbreviations, symbols, etc. provided by the glossaries-extra package)
  • doc/user/user.tex

    r12df6fe r4520b77e  
    1111%% Created On       : Wed Apr  6 14:53:29 2016
    1212%% Last Modified By : Peter A. Buhr
    13 %% Last Modified On : Mon Feb 14 17:20:39 2022
    14 %% Update Count     : 5382
     13%% Last Modified On : Mon Aug 22 23:43:30 2022
     14%% Update Count     : 5503
    1515%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    1616
     
    964964
    965965\begin{figure}
    966 \begin{tabular}{@{}l@{\hspace{25pt}}|l@{}}
    967 \multicolumn{1}{@{}c@{\hspace{25pt}}|}{loop control} & \multicolumn{1}{c@{}}{output} \\
     966\begin{tabular}{@{}l@{\hspace{40pt}}|l@{}}
     967\multicolumn{1}{@{}c@{\hspace{40pt}}|}{loop control} & \multicolumn{1}{c@{}}{output} \\
    968968\hline
    969969\begin{cfa}
    970 while ®($\,$)® { sout | "empty"; break; }
    971 do { sout | "empty"; break; } while ®($\,$)®;
    972 for ®($\,$)® { sout | "empty"; break; }
    973 for ( ®0® ) { sout | "A"; } sout | "zero";
    974 for ( ®1® ) { sout | "A"; }
    975 for ( ®10® ) { sout | "A"; }
    976 for ( ®= 10® ) { sout | "A"; }
    977 for ( ®1 ~= 10 ~ 2® ) { sout | "B"; }
    978 for ( ®10 -~= 1 ~ 2® ) { sout | "C"; }
    979 for ( ®0.5 ~ 5.5® ) { sout | "D"; }
    980 for ( ®5.5 -~ 0.5® ) { sout | "E"; }
    981 for ( ®i; 10® ) { sout | i; }
    982 for ( ®i; = 10® ) { sout | i; }
    983 for ( ®i; 1 ~= 10 ~ 2® ) { sout | i; }
    984 for ( ®i; 10 -~= 1 ~ 2® ) { sout | i; }
    985 for ( ®i; 0.5 ~ 5.5® ) { sout | i; }
    986 for ( ®i; 5.5 -~ 0.5® ) { sout | i; }
    987 for ( ®ui; 2u ~= 10u ~ 2u® ) { sout | ui; }
    988 for ( ®ui; 10u -~= 2u ~ 2u® ) { sout | ui; }
     970while () { sout | "empty"; break; }
     971do { sout | "empty"; break; } while ();
     972for () { sout | "empty"; break; }                                                       $\C[3in]{sout | nl | nlOff;}$
     973
     974for ( 0 ) { sout | "A"; } sout | "zero";                                        $\C{sout | nl;}$
     975for ( 1 ) { sout | "A"; }                                                                       $\C{sout | nl;}$
     976for ( 10 ) { sout | "A"; }                                                                      $\C{sout | nl;}$
     977for ( ~= 10 ) { sout | "A"; }                                                           $\C{sout | nl;}$
     978for ( 1 ~= 10 ~ 2 ) { sout | "B"; }                                                     $\C{sout | nl;}$
     979for ( 1 -~= 10 ~ 2 ) { sout | "C"; }                                            $\C{sout | nl;}$
     980for ( 0.5 ~ 5.5 ) { sout | "D"; }                                                       $\C{sout | nl;}$
     981for ( 0.5 -~ 5.5 ) { sout | "E"; }                                                      $\C{sout | nl;}$
     982for ( i; 10 ) { sout | i; }                                                                     $\C{sout | nl;}$
     983for ( i; ~= 10 ) { sout | i; }                                                          $\C{sout | nl;}$
     984for ( i; 1 ~= 10 ~ 2 ) { sout | i; }                                            $\C{sout | nl;}$
     985for ( i; 1 -~= 10 ~ 2 ) { sout | i; }                                           $\C{sout | nl;}$
     986for ( i; 0.5 ~ 5.5 ) { sout | i; }                                                      $\C{sout | nl;}$
     987for ( i; 0.5 -~ 5.5 ) { sout | i; }                                                     $\C{sout | nl;}$
     988for ( ui; 2u ~= 10u ~ 2u ) { sout | ui; }                                       $\C{sout | nl;}$
     989for ( ui; 2u -~= 10u ~ 2u ) { sout | ui; }                                      $\C{sout | nl | nl | nl;}$
     990
    989991enum { N = 10 };
    990 for ( ®N® ) { sout | "N"; }
    991 for ( ®i; N® ) { sout | i; }
    992 for ( ®i; N -~ 0® ) { sout | i; }
    993 const int start = 3, comp = 10, inc = 2;
    994 for ( ®i; start ~ comp ~ inc + 1® ) { sout | i; }
    995 for ( i; 1 ~ ®@® ) { if ( i > 10 ) break; sout | i; }
    996 for ( i; 10 -~ ®@® ) { if ( i < 0 ) break; sout | i; }
    997 for ( i; 2 ~ ®@® ~ 2 ) { if ( i > 10 ) break; sout | i; }
    998 for ( i; 2.1 ~ ®@® ~ ®@® ) { if ( i > 10.5 ) break; sout | i; i += 1.7; }
    999 for ( i; 10 -~ ®@® ~ 2 ) { if ( i < 0 ) break; sout | i; }
    1000 for ( i; 12.1 ~ ®@® ~ ®@® ) { if ( i < 2.5 ) break; sout | i; i -= 1.7; }
    1001 for ( i; 5 ®:® j; -5 ~ @ ) { sout | i | j; }
    1002 for ( i; 5 ®:® j; -5 -~ @ ) { sout | i | j; }
    1003 for ( i; 5 ®:® j; -5 ~ @ ~ 2 ) { sout | i | j; }
    1004 for ( i; 5 ®:® j; -5 -~ @ ~ 2 ) { sout | i | j; }
    1005 for ( i; 5 ®:® j; -5 ~ @ ) { sout | i | j; }
    1006 for ( i; 5 ®:® j; -5 -~ @ ) { sout | i | j; }
    1007 for ( i; 5 ®:® j; -5 ~ @ ~ 2 ) { sout | i | j; }
    1008 for ( i; 5 ®:® j; -5 -~ @ ~ 2 ) { sout | i | j; }
    1009 for ( i; 5 ®:® j; -5 -~ @ ~ 2 ®:® k; 1.5 ~ @ ) { sout | i | j | k; }
    1010 for ( i; 5 ®:® j; -5 -~ @ ~ 2 ®:® k; 1.5 ~ @ ) { sout | i | j | k; }
    1011 for ( i; 5 ®:® k; 1.5 ~ @ ®:® j; -5 -~ @ ~ 2 ) { sout | i | j | k; }
     992for ( N ) { sout | "N"; }                                                                       $\C{sout | nl;}$
     993for ( i; N ) { sout | i; }                                                                      $\C{sout | nl;}$
     994for ( i; -~ N ) { sout | i; }                                                           $\C{sout | nl | nl | nl;}$
     995
     996const int low = 3, high = 10, inc = 2;
     997for ( i; low ~ high ~ inc + 1 ) { sout | i; }                           $\C{sout | nl;}$
     998for ( i; 1 ~ @ ) { if ( i > 10 ) break; sout | i; }                     $\C{sout | nl;}$
     999for ( i; @ -~ 10 ) { if ( i < 0 ) break; sout | i; }            $\C{sout | nl;}$
     1000for ( i; 2 ~ @ ~ 2 ) { if ( i > 10 ) break; sout | i; }         $\C{sout | nl;}$
     1001for ( i; 2.1 ~ @ ~ @ ) { if ( i > 10.5 ) break; sout | i; i += 1.7; } $\C{sout | nl;}$
     1002for ( i; @ -~ 10 ~ 2 ) { if ( i < 0 ) break; sout | i; }        $\C{sout | nl;}$
     1003for ( i; 12.1 ~ @ ~ @ ) { if ( i < 2.5 ) break; sout | i; i -= 1.7; } $\C{sout | nl;}$
     1004for ( i; 5 : j; -5 ~ @ ) { sout | i | j; }                                      $\C{sout | nl;}$
     1005for ( i; 5 : j; @ -~ -5 ) { sout | i | j; }                                     $\C{sout | nl;}$
     1006for ( i; 5 : j; -5 ~ @ ~ 2 ) { sout | i | j; }                          $\C{sout | nl;}$
     1007for ( i; 5 : j; @ -~ -5 ~ 2 ) { sout | i | j; }                         $\C{sout | nl;}$
     1008for ( i; 5 : j; -5 ~ @ ) { sout | i | j; }                                      $\C{sout | nl;}$
     1009for ( i; 5 : j; @ -~ -5 ) { sout | i | j; }                                     $\C{sout | nl;}$
     1010for ( i; 5 : j; -5 ~ @ ~ 2 ) { sout | i | j; }                          $\C{sout | nl;}$
     1011for ( i; 5 : j; @ -~ -5 ~ 2 ) { sout | i | j; }                         $\C{sout | nl;}$
     1012for ( i; 5 : j; @ -~ -5 ~ 2 : k; 1.5 ~ @ ) { sout | i | j | k; } $\C{sout | nl;}$
     1013for ( i; 5 : j; @ -~ -5 ~ 2 : k; 1.5 ~ @ ) { sout | i | j | k; } $\C{sout | nl;}$
     1014for ( i; 5 : k; 1.5 ~ @ : j; @ -~ -5 ~ 2 ) { sout | i | j | k; } $\C{sout | nl;}\CRT$
    10121015\end{cfa}
    10131016&
     
    10161019empty
    10171020empty
     1021
    10181022zero
    10191023A
     
    1033103710 8 6 4 2
    10341038
     1039
    10351040N N N N N N N N N N
    103610410 1 2 3 4 5 6 7 8 9
    1037104210 9 8 7 6 5 4 3 2 1
     1043
    10381044
    103910453 6 9
     
    10731079
    10741080Looping a fixed number of times, possibly with a loop index, occurs frequently.
    1075 \CFA condenses simply looping to facilitate coding speed and safety.
    1076 The \Indexc{for}, \Indexc{while}, and \Indexc{do} loop-control is augmented as follows \see{examples in \VRef[Figure]{f:LoopControlExamples}}:
    1077 \begin{itemize}[itemsep=0pt]
    1078 \item
    1079 ©0© is the implicit start value;
    1080 \item
    1081 ©1© is the implicit increment value.
    1082 \item
    1083 The up-to range uses operator ©+=© for increment;
    1084 \item
    1085 The down-to range uses operator ©-=© for decrement.
    1086 \item
    1087 The loop index is polymorphic in the type of the comparison value N (when the start value is implicit) or the start value M.
    1088 \begin{cfa}
    1089 for ( i; ®5® )                                  $\C[2.5in]{// typeof(5) i; 5 is comparison value}$
    1090 for ( i; ®1.5®~5.5~0.5 )                $\C{// typeof(1.5) i; 1.5 is start value}$
    1091 \end{cfa}
    1092 \item
    1093 An empty conditional implies comparison value of ©1© (true).
     1081\CFA condenses simply looping to facilitate coding speed and safety~\see{examples in \VRef[Figure]{f:LoopControlExamples}}.
     1082
     1083The \Indexc{for}, \Indexc{while}, and \Indexc{do} loop-control allow an empty conditional, which implies a comparison value of ©1© (true).
    10941084\begin{cfa}
    10951085while ( ®/*empty*/®  )                  $\C{// while ( true )}$
     
    10971087do ... while ( ®/*empty*/®  )    $\C{// do ... while ( true )}$
    10981088\end{cfa}
    1099 \item
    1100 A comparison N is implicit up-to exclusive range [0,N\R{)}.
     1089
     1090The ©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
     1102The ©for© index components, low (L), high (H), and increment (I), are optional.
     1103If 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
     1110The up-to range uses operator \Indexc{+=} for increment.
     1111\item
     1112The down-to range uses operator \Indexc{-=} for decrement.
     1113\end{itemize}
     1114
     1115If 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}
     1117for ( ®5® )                                             $\C{// typeof(5) anonymous-index; 5 is high value}$
     1118for ( i; ®1.5® ~ 5.5 )                  $\C{// typeof(1.5) i; 1.5 is low value}$
     1119for ( ®int i®; 0 ~ 10 ~ 2 )             $\C{// int i; type is explicit}$
     1120\end{cfa}
     1121
     1122The following are examples for constructing different for-control:
     1123\begin{itemize}[itemsep=0pt]
     1124\item
     1125H is implicit up-to exclusive range [0,H\R{)}.
    11011126\begin{cfa}
    11021127for ( ®5® )                                             $\C{// for ( typeof(5) i; i < 5; i += 1 )}$
    11031128\end{cfa}
    11041129\item
    1105 A comparison ©=© N is implicit up-to inclusive range [0,N\R{]}.
    1106 \begin{cfa}
    1107 for ( ®5 )                                    $\C{// for ( typeof(5) i; i <= 5; i += 1 )}$
    1108 \end{cfa}
    1109 \item
    1110 The up-to range M ©~©\index{~@©~©} N means exclusive range [M,N\R{)}.
    1111 \begin{cfa}
    1112 for ( 1®~®5 )                                   $\C{// for ( typeof(1) i = 1; i < 5; i += 1 )}$
    1113 \end{cfa}
    1114 \item
    1115 The up-to range M ©~=©\index{~=@©~=©} N means inclusive range [M,N\R{]}.
    1116 \begin{cfa}
    1117 for ( 1®~=®5 )                                  $\C{// for ( typeof(1) i = 1; i <= 5; i += 1 )}$
    1118 \end{cfa}
    1119 \item
    1120 The down-to range M ©-~©\index{-~@©-~©} N means exclusive range [N,M\R{)}.
    1121 \begin{cfa}
    1122 for ( 1®-~®5 )                                  $\C{// for ( typeof(1) i = 5; i > 0; i -= 1 )}$
    1123 \end{cfa}
    1124 \item
    1125 The down-to range M ©-~=©\index{-~=@©-~=©} N means inclusive range [N,M\R{]}.
    1126 \begin{cfa}
    1127 for ( 1®-~=®5 )                                 $\C{// for ( typeof(1) i = 5; i >= 0; i -= 1 )}$
     1130©~=© H is implicit up-to inclusive range [0,H\R{]}.
     1131\begin{cfa}
     1132for ( ®~=® 5 )                                  $\C{// for ( typeof(5) i; i <= 5; i += 1 )}$
     1133\end{cfa}
     1134\item
     1135L ©~©\index{~@©~©} H is explicit up-to exclusive range [L,H\R{)}.
     1136\begin{cfa}
     1137for ( 1 ®~® 5 )                                 $\C{// for ( typeof(1) i = 1; i < 5; i += 1 )}$
     1138\end{cfa}
     1139\item
     1140L ©~=©\index{~=@©~=©} H is explicit up-to inclusive range [L,H\R{]}.
     1141\begin{cfa}
     1142for ( 1 ®~=® 5 )                                        $\C{// for ( typeof(1) i = 1; i <= 5; i += 1 )}$
     1143\end{cfa}
     1144\item
     1145L ©-~©\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}
     1147for ( 1 ®-~® 5 )                                        $\C{// for ( typeof(1) i = 5; i > 0; i -= 1 )}$
     1148\end{cfa}
     1149\item
     1150L ©-~=©\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}
     1152for ( 1 ®-~=® 5 )                                       $\C{// for ( typeof(1) i = 5; i >= 0; i -= 1 )}$
    11281153\end{cfa}
    11291154\item
    11301155©@© means put nothing in this field.
    11311156\begin{cfa}
    1132 for ( 1~®@®~2 )                                 $\C{// for ( typeof(1) i = 1; /*empty*/; i += 2 )}$
    1133 \end{cfa}
    1134 \item
    1135 ©:© means start another index.
    1136 \begin{cfa}
    1137 for ( i; 5 ®:® j; 2~12~3 )              $\C{// for ( typeof(i) i = 1, j = 2; i < 5 \&\& j < 12; i += 1, j += 3 )}\CRT$
     1157for ( i; 1 ~ ®@® ~ 2 )                  $\C{// for ( typeof(1) i = 1; \R{/* empty */}; i += 2 )}$
     1158for ( i; 1 ~ 10 ~ ®@® )                 $\C{// for ( typeof(1) i = 1; i < 10; \R{/* empty */} )}$
     1159for ( i; 1 ~ ®@® ~ ®@® )                $\C{// for ( typeof(1) i = 1; /*empty*/; \R{/* empty */} )}$
     1160\end{cfa}
     1161L 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.
     1162Similarly, 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}
     1166for ( i; 5 ®:® j; 2 ~ 12 ~ 3 )          $\C{// for ( typeof(i) i = 1, j = 2; i < 5 \&\& j < 12; i += 1, j += 3 )}$
    11381167\end{cfa}
    11391168\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}
     1171for ( i; 1 ~ 10 )       ${\C[1.5in]{// up range}$
     1172for ( i; 1 -~ 10 )      ${\C{// down range}$
     1173for ( i; ®10 -~ 1® )    ${\C{// \R{WRONG down range!}}\CRT}$
     1174\end{cfa}
     1175The 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.
    11401176
    11411177
     
    47944830        int id;
    47954831        float size;
    4796         Parts * optionalParts;
     4832        int * optionalint;
    47974833};
    47984834
     
    48014837// Subsequent arguments can be specified for initialization
    48024838
    4803 void ?{}(Widget &w) { // default constructor
     4839void ?{}( Widget & w ) { $\C{// default constructor}$
    48044840        w.id = -1;
    48054841        w.size = 0.0;
    4806         w.optionalParts = 0;
     4842        w.optionalint = 0p;
    48074843}
    48084844
    48094845// constructor with values (does not need to include all fields)
    4810 void ?{}(Widget &w, int id, float size) {
     4846void ?{}( Widget & w, int id, float size ) {
    48114847        w.id = id;
    48124848        w.size = size;
    4813         w.optionalParts = 0;
    4814 }
    4815 
    4816 // ^? is the destructor operator identifier
    4817 void ^?(Widget &w) { // destructor
     4849        w.optionalint = 0p;
     4850}
     4851
     4852// ^?{} is the destructor operator identifier
     4853void ^?{}( Widget & w ) { $\C{// destructor}$
    48184854        w.id = 0;
    48194855        w.size = 0.0;
    4820         if (w.optionalParts != 0) {
    4821         // This is the only pointer to optionalParts, free it
    4822         free(w.optionalParts);
    4823         w.optionalParts = 0;
     4856        if ( w.optionalint != 0p ) {
     4857                free( w.optionalint );
     4858                w.optionalint = 0p;
    48244859        }
    48254860}
    48264861
    4827 Widget baz; // reserve space only
    4828 Widget foo{}; // calls default constructor
    4829 Widget bar{23, 2.45}; // calls constructor with values
    4830 baz{24, 0.91}; // calls constructor with values
    4831 ?{}(baz, 24, 0.91}; // explicit call to constructor
    4832 ^bar; // explicit call to destructor
    4833 ^?(bar); // explicit call to destructor
     4862Widget baz; $\C{// reserve space only}$
     4863Widget foo{}; $\C{// calls default constructor}$
     4864Widget bar{ 23, 2.45 }; $\C{// calls constructor with values}$
     4865baz{ 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}$
    48344868\end{cfa}
    48354869\caption{Constructors and Destructors}
  • driver/Makefile.am

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

    r12df6fe r4520b77e  
    5353        return arg.substr( 0, pre.size() ) == pre;
    5454} // prefix
    55 
    56 static inline bool ends_with(const string & str, const string & sfix) {
    57         if (sfix.size() > str.size()) return false;
    58         return std::equal(str.rbegin(), str.rbegin() + sfix.size(), sfix.rbegin(), sfix.rend());
    59 }
    6055
    6156// check if string has suffix
  • libcfa/prelude/Makefile.am

    r12df6fe r4520b77e  
    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++14
     52        ${AM_V_GEN}${CXX} ${AM_CXXFLAGS} ${CXXFLAGS} ${AM_CFLAGS} ${<} -o prelude-gen -Wall -Wextra -O2 -g -std=c++17
    5353        @./prelude-gen > ${@}
    5454        @rm ./prelude-gen
     
    7676
    7777if ENABLE_DISTCC
    78 distribution: @LOCAL_CFACC@ @LOCAL_CC1@ @CFACPP@ gcc-builtins.cf builtins.cf extras.cf prelude.cfa bootloader.c $(srcdir)/../../tools/build/push2dist.sh
     78distribution: @LOCAL_CFACC@ @LOCAL_CC1@ @CFACPP@ defines.hfa 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

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

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

    r12df6fe r4520b77e  
    2424#define likely(x)   __builtin_expect(!!(x), 1)
    2525#define unlikely(x) __builtin_expect(!!(x), 0)
    26 #define thread_local _Thread_local
    2726
    2827typedef void (*fptr_t)();
     
    3736#endif
    3837
     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
    3948#define libcfa_public __attribute__((visibility("default")))
     49#define libcfa_nopreempt __attribute__((section("cfatext_nopreempt"))) __attribute__((__noinline__)) ATTRIBUTE_NOCLONE
     50
     51struct __cfa_nopreempt_region {
     52        void * start;
     53        void * stop;
     54};
    4055
    4156#ifdef __cforall
  • libcfa/src/bits/locks.hfa

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

    r12df6fe r4520b77e  
    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].tv != ULLONG_MAX );
     243                                /* paranoid */ verify( io.tscs[target].t.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].tv, io.tscs[target].ma);
     246                                        const unsigned long long age = moving_average(ctsc, io.tscs[target].t.tv, io.tscs[target].t.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; )
    434435                processor * proc = __cfaabi_tls.this_processor;
    435                 $io_context * ctx = proc->io.ctx;
     436                io_context$ * ctx = proc->io.ctx;
    436437                /* paranoid */ verify( __cfaabi_tls.this_processor );
    437438                /* paranoid */ verify( ctx );
     
    464465        // by io_uring
    465466        // This cannot be done by multiple threads
    466         static __u32 __release_sqes( struct $io_context & ctx ) {
     467        static __u32 __release_sqes( struct io_context$ & ctx ) {
    467468                const __u32 mask = *ctx.sq.mask;
    468469
     
    537538        }
    538539
    539         static $io_context * __ioarbiter_allocate( $io_arbiter & this, __u32 idxs[], __u32 want ) {
     540        static io_context$ * __ioarbiter_allocate( io_arbiter$ & this, __u32 idxs[], __u32 want ) {
    540541                // __cfadbg_print_safe(io, "Kernel I/O : arbiter allocating\n");
    541542
     
    556557        }
    557558
    558         static void __ioarbiter_notify( $io_arbiter & this, $io_context * ctx ) {
     559        static void __ioarbiter_notify( io_arbiter$ & this, io_context$ * ctx ) {
    559560                /* paranoid */ verify( !empty(this.pending.queue) );
    560561
     
    586587        }
    587588
    588         static void __ioarbiter_notify( $io_context & ctx ) {
     589        static void __ioarbiter_notify( io_context$ & ctx ) {
    589590                if(!empty( ctx.arbiter->pending )) {
    590591                        __ioarbiter_notify( *ctx.arbiter, &ctx );
     
    593594
    594595        // Simply append to the pending
    595         static void __ioarbiter_submit( $io_context * ctx, __u32 idxs[], __u32 have, bool lazy ) {
     596        static void __ioarbiter_submit( io_context$ * ctx, __u32 idxs[], __u32 have, bool lazy ) {
    596597                __cfadbg_print_safe(io, "Kernel I/O : submitting %u from the arbiter to context %u\n", have, ctx->fd);
    597598
     
    617618        }
    618619
    619         static void __ioarbiter_flush( $io_context & ctx ) {
     620        static void __ioarbiter_flush( io_context$ & ctx ) {
    620621                if(!empty( ctx.ext_sq )) {
    621622                        __STATS__( false, io.flush.external += 1; )
     
    641642        #if defined(CFA_WITH_IO_URING_IDLE)
    642643                bool __kernel_read(processor * proc, io_future_t & future, iovec & iov, int fd) {
    643                         $io_context * ctx = proc->io.ctx;
     644                        io_context$ * ctx = proc->io.ctx;
    644645                        /* paranoid */ verify( ! __preemption_enabled() );
    645646                        /* paranoid */ verify( proc == __cfaabi_tls.this_processor );
  • libcfa/src/concurrency/io/call.cfa.in

    r12df6fe r4520b77e  
    3434#include "kernel.hfa"
    3535#include "io/types.hfa"
     36#include "stats.hfa"
    3637
    3738//=============================================================================================
     
    7475        ;
    7576
    76         extern struct $io_context * cfa_io_allocate(struct io_uring_sqe * out_sqes[], __u32 out_idxs[], __u32 want)  __attribute__((nonnull (1,2)));
    77         extern void cfa_io_submit( struct $io_context * in_ctx, __u32 in_idxs[], __u32 have, bool lazy ) __attribute__((nonnull (1,2)));
     77        extern struct io_context$ * cfa_io_allocate(struct io_uring_sqe * out_sqes[], __u32 out_idxs[], __u32 want)  __attribute__((nonnull (1,2)));
     78        extern void cfa_io_submit( struct io_context$ * in_ctx, __u32 in_idxs[], __u32 have, bool lazy ) __attribute__((nonnull (1,2)));
    7879#endif
    7980
     
    199200                __u32 idx;
    200201                struct io_uring_sqe * sqe;
    201                 struct $io_context * ctx = cfa_io_allocate( &sqe, &idx, 1 );
    202 
     202                struct io_context$ * ctx = cfa_io_allocate( &sqe, &idx, 1 );
     203
     204                memset(sqe, 0, sizeof(*sqe));
    203205                sqe->opcode = IORING_OP_{op};
     206                sqe->flags = sflags;
    204207                sqe->user_data = (uintptr_t)&future;
    205                 sqe->flags = sflags;
    206                 sqe->ioprio = 0;
    207                 sqe->fd = 0;
    208                 sqe->off = 0;
    209                 sqe->addr = 0;
    210                 sqe->len = 0;
    211                 sqe->fsync_flags = 0;
    212                 sqe->__pad2[0] = 0;
    213                 sqe->__pad2[1] = 0;
    214                 sqe->__pad2[2] = 0;{body}
     208                {body}
    215209
    216210                asm volatile("": : :"memory");
     
    226220        async_{name}( future, {args}, submit_flags );
    227221
    228         wait( future );
     222        __attribute__((unused)) bool parked;
     223        parked = wait( future );
     224        __STATS__(false, if(!parked) io.submit.nblk += 1; )
    229225        if( future.result < 0 ) {{
    230226                errno = -future.result;
  • libcfa/src/concurrency/io/setup.cfa

    r12df6fe r4520b77e  
    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                {
    230231                        // 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
    233232                        __cfadbg_print_safe(io_core, "Kernel I/O : registering %d for completion with ring %d\n", procfd, fd);
    234233
     
    239238
    240239                        __cfadbg_print_safe(io_core, "Kernel I/O : registered %d for completion with ring %d\n", procfd, fd);
    241                 #endif
     240                }
     241                #endif
     242
     243                // TODO: implement a proper version of this.
     244                // I have not found a better maximum that works in general but users should be able to configure it
     245                // the same way they configure other I/O options
     246                // #if defined(CFA_HAVE_IORING_REGISTER_IOWQ_MAX_WORKERS)
     247                // {
     248                //      // Step 5 : max worker count
     249                //      __cfadbg_print_safe(io_core, "Kernel I/O : lmiting max workers for ring %d\n", fd);
     250
     251                //      unsigned int maxes[2];
     252                //      maxes[0] = 64; // max number of bounded workers (Regular files / block)
     253                //      maxes[1] = 64;  // max number of unbounded workers (IOSQE_ASYNC)
     254                //      int ret = syscall( __NR_io_uring_register, fd, IORING_REGISTER_IOWQ_MAX_WORKERS, maxes, 2);
     255                //      if (ret < 0) {
     256                //              abort("KERNEL ERROR: IO_URING MAX WORKER REGISTER - %s\n", strerror(errno));
     257                //      }
     258
     259                //      __cfadbg_print_safe(io_core, "Kernel I/O : lmited max workers for ring %d\n", fd);
     260                // }
     261                // #endif
    242262
    243263                // some paranoid checks
     
    257277        }
    258278
    259         static void __io_uring_teardown( $io_context & this ) {
     279        static void __io_uring_teardown( io_context$ & this ) {
    260280                // Shutdown the io rings
    261281                struct __sub_ring_t & sq = this.sq;
     
    300320// I/O Context Sleep
    301321//=============================================================================================
    302         // static inline void __epoll_ctl($io_context & ctx, int op, const char * error) {
     322        // static inline void __epoll_ctl(io_context$ & ctx, int op, const char * error) {
    303323        //      struct epoll_event ev;
    304324        //      ev.events = EPOLLIN | EPOLLONESHOT;
     
    310330        // }
    311331
    312         // static void __epoll_register($io_context & ctx) {
     332        // static void __epoll_register(io_context$ & ctx) {
    313333        //      __epoll_ctl(ctx, EPOLL_CTL_ADD, "ADD");
    314334        // }
    315335
    316         // static void __epoll_unregister($io_context & ctx) {
     336        // static void __epoll_unregister(io_context$ & ctx) {
    317337        //      // Read the current epoch so we know when to stop
    318338        //      size_t curr = __atomic_load_n(&iopoll.epoch, __ATOMIC_SEQ_CST);
     
    333353        // }
    334354
    335         // void __ioctx_prepare_block($io_context & ctx) {
     355        // void __ioctx_prepare_block(io_context$ & ctx) {
    336356        //      __cfadbg_print_safe(io_core, "Kernel I/O - epoll : Re-arming io poller %d (%p)\n", ctx.fd, &ctx);
    337357        //      __epoll_ctl(ctx, EPOLL_CTL_MOD, "REARM");
     
    342362// I/O Context Misc Setup
    343363//=============================================================================================
    344         void ?{}( $io_arbiter & this ) {
     364        void ?{}( io_arbiter$ & this ) {
    345365                this.pending.empty = true;
    346366        }
    347367
    348         void ^?{}( $io_arbiter & this ) {}
    349 
    350         $io_arbiter * create(void) {
     368        void ^?{}( io_arbiter$ & mutex this ) {}
     369
     370        io_arbiter$ * create(void) {
    351371                return new();
    352372        }
    353         void destroy($io_arbiter * arbiter) {
     373        void destroy(io_arbiter$ * arbiter) {
    354374                delete(arbiter);
    355375        }
  • libcfa/src/concurrency/io/types.hfa

    r12df6fe r4520b77e  
    3333
    3434        struct processor;
    35         monitor $io_arbiter;
     35        monitor io_arbiter$;
    3636
    3737        //-----------------------------------------------------------------------
     
    125125
    126126
    127         struct __attribute__((aligned(128))) $io_context {
    128                 $io_arbiter * arbiter;
     127        struct __attribute__((aligned(64))) 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         struct __attribute__((aligned(128))) $io_arbiter {
     155        monitor __attribute__((aligned(64))) 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

    r12df6fe r4520b77e  
    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

    r12df6fe r4520b77e  
    305305        RUNNING:  while(true) {
    306306                thrd_dst->preempted = __NO_PREEMPTION;
    307                 thrd_dst->state = Active;
    308307
    309308                // Update global state
    310309                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;
    311315
    312316                /* paranoid */ verify( ! __preemption_enabled() );
     
    335339                /* paranoid */ verify( ! __preemption_enabled() );
    336340
    337                 // Reset global state
    338                 kernelTLS().this_thread = 0p;
    339 
    340341                // We just finished running a thread, there are a few things that could have happened.
    341342                // 1 - Regular case : the thread has blocked and now one has scheduled it yet.
     
    346347
    347348                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
    348353                        // The thread was preempted, reschedule it and reset the flag
    349354                        schedule_thread$( thrd_dst, UNPARK_LOCAL );
     
    352357
    353358                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
    354363                        // The thread has halted, it should never be scheduled/run again
    355364                        // finish the thread
     
    360369                /* paranoid */ verify( thrd_dst->state == Active );
    361370                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;
    362375
    363376                // set state of processor coroutine to active and the thread to inactive
  • libcfa/src/concurrency/kernel.hfa

    r12df6fe r4520b77e  
    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(128))) processor {
     85struct __attribute__((aligned(64))) 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 struct __attribute__((aligned(128))) __intrusive_lane_t;
     173union __attribute__((aligned(64))) __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 struct __attribute__((aligned(128))) __timestamp_t {
    179         volatile unsigned long long tv;
    180         volatile unsigned long long ma;
    181 };
    182 
    183 static inline void  ?{}(__timestamp_t & this) { this.tv = 0; this.ma = 0; }
     178union __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
     186static inline void  ?{}(__timestamp_t & this) { this.t.tv = 0; this.t.ma = 0; }
    184187static inline void ^?{}(__timestamp_t &) {}
    185188
     
    212215//-----------------------------------------------------------------------------
    213216// Cluster
    214 struct __attribute__((aligned(128))) cluster {
     217struct __attribute__((aligned(64))) cluster {
    215218        struct {
    216219                struct {
     
    227230                struct {
    228231                        // Array of $io_
    229                         $io_context ** data;
     232                        io_context$ ** data;
    230233
    231234                        // Time since subqueues were processed
     
    264267
    265268        struct {
    266                 $io_arbiter * arbiter;
     269                io_arbiter$ * arbiter;
    267270                io_context_params params;
    268271        } io;
  • libcfa/src/concurrency/kernel/cluster.cfa

    r12df6fe r4520b77e  
    9393//=======================================================================
    9494void  ?{}(__scheduler_RWLock_t & this) {
    95         this.max   = __max_processors();
    96         this.alloc = 0;
    97         this.ready = 0;
    98         this.data  = alloc(this.max);
    99         this.write_lock  = false;
    100 
    101         /*paranoid*/ verify(__atomic_is_lock_free(sizeof(this.alloc), &this.alloc));
    102         /*paranoid*/ verify(__atomic_is_lock_free(sizeof(this.ready), &this.ready));
     95        this.lock.max   = __max_processors();
     96        this.lock.alloc = 0;
     97        this.lock.ready = 0;
     98        this.lock.data  = alloc(this.lock.max);
     99        this.lock.write_lock  = false;
     100
     101        /*paranoid*/ verify(__atomic_is_lock_free(sizeof(this.lock.alloc), &this.lock.alloc));
     102        /*paranoid*/ verify(__atomic_is_lock_free(sizeof(this.lock.ready), &this.lock.ready));
    103103
    104104}
    105105void ^?{}(__scheduler_RWLock_t & this) {
    106         free(this.data);
     106        free(this.lock.data);
    107107}
    108108
     
    110110//=======================================================================
    111111// Lock-Free registering/unregistering of threads
    112 unsigned register_proc_id( void ) with(*__scheduler_lock) {
     112unsigned register_proc_id( void ) with(__scheduler_lock.lock) {
    113113        __kernel_rseq_register();
    114114
     
    132132        }
    133133
    134         if(max <= alloc) abort("Trying to create more than %ud processors", __scheduler_lock->max);
     134        if(max <= alloc) abort("Trying to create more than %ud processors", __scheduler_lock.lock.max);
    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->max);
     138        if(max <= n) abort("Trying to create more than %ud processors", __scheduler_lock.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) {
     156void unregister_proc_id( unsigned id ) with(__scheduler_lock.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) {
     171uint_fast32_t ready_mutate_lock( void ) with(__scheduler_lock.lock) {
    172172        /* paranoid */ verify( ! __preemption_enabled() );
    173173
     
    196196}
    197197
    198 void ready_mutate_unlock( uint_fast32_t last_s ) with(*__scheduler_lock) {
     198void ready_mutate_unlock( uint_fast32_t last_s ) with(__scheduler_lock.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].lock);
     231                                assert(!readyQ.data[idx].l.lock);
    232232
    233233                                        if(is_empty(sl)) {
    234                                                 assert( sl.anchor.next == 0p );
    235                                                 assert( sl.anchor.ts   == MAX );
    236                                                 assert( mock_head(sl)  == sl.prev );
     234                                                assert( sl.l.anchor.next == 0p );
     235                                                assert( sl.l.anchor.ts   == MAX );
     236                                                assert( mock_head(sl)  == sl.l.prev );
    237237                                        } else {
    238                                                 assert( sl.anchor.next != 0p );
    239                                                 assert( sl.anchor.ts   != MAX );
    240                                                 assert( mock_head(sl)  != sl.prev );
     238                                                assert( sl.l.anchor.next != 0p );
     239                                                assert( sl.l.anchor.ts   != MAX );
     240                                                assert( mock_head(sl)  != sl.l.prev );
    241241                                        }
    242242                        }
     
    249249static inline void fix(__intrusive_lane_t & ll) {
    250250        if(is_empty(ll)) {
    251                 verify(ll.anchor.next == 0p);
    252                 ll.prev = mock_head(ll);
     251                verify(ll.l.anchor.next == 0p);
     252                ll.l.prev = mock_head(ll);
    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].tv = rdtscl();
    302                 tscs[i].ma = 0;
     301                tscs[i].t.tv = rdtscl();
     302                tscs[i].t.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].lock);
     402                        __attribute__((unused)) bool locked = __atomic_try_acquire(&readyQ.data[idx].l.lock);
    403403                        verify(locked);
    404404
     
    418418
    419419                        // Unlock the lane
    420                         __atomic_unlock(&readyQ.data[idx].lock);
     420                        __atomic_unlock(&readyQ.data[idx].l.lock);
    421421
    422422                        // TODO print the queue statistics here
     
    467467}
    468468
     469#define nested_offsetof(type, field) ((off_t)(&(((type*)0)-> field)))
     470
    469471// Ctor
    470472void ?{}( __intrusive_lane_t & this ) {
    471         this.lock = false;
    472         this.prev = mock_head(this);
    473         this.anchor.next = 0p;
    474         this.anchor.ts   = MAX;
     473        this.l.lock = false;
     474        this.l.prev = mock_head(this);
     475        this.l.anchor.next = 0p;
     476        this.l.anchor.ts   = MAX;
    475477        #if !defined(__CFA_NO_STATISTICS__)
    476                 this.cnt  = 0;
     478                this.l.cnt  = 0;
    477479        #endif
    478480
    479481        // We add a boat-load of assertions here because the anchor code is very fragile
    480         /* paranoid */ _Static_assert( offsetof( thread$, link ) == offsetof(__intrusive_lane_t, anchor) );
    481         /* paranoid */ verify( offsetof( thread$, link ) == offsetof(__intrusive_lane_t, anchor) );
    482         /* paranoid */ verify( ((uintptr_t)( mock_head(this) ) + offsetof( thread$, link )) == (uintptr_t)(&this.anchor) );
    483         /* paranoid */ verify( &mock_head(this)->link.next == &this.anchor.next );
    484         /* paranoid */ verify( &mock_head(this)->link.ts   == &this.anchor.ts   );
     482        /* paranoid */ _Static_assert( offsetof( thread$, link ) == nested_offsetof(__intrusive_lane_t, l.anchor) );
     483        /* paranoid */ verify( offsetof( thread$, link ) == nested_offsetof(__intrusive_lane_t, l.anchor) );
     484        /* paranoid */ verify( ((uintptr_t)( mock_head(this) ) + offsetof( thread$, link )) == (uintptr_t)(&this.l.anchor) );
     485        /* paranoid */ verify( &mock_head(this)->link.next == &this.l.anchor.next );
     486        /* paranoid */ verify( &mock_head(this)->link.ts   == &this.l.anchor.ts   );
    485487        /* paranoid */ verify( mock_head(this)->link.next == 0p );
    486488        /* paranoid */ verify( mock_head(this)->link.ts   == MAX );
    487         /* paranoid */ verify( mock_head(this) == this.prev );
    488         /* paranoid */ verify( __alignof__(__intrusive_lane_t) == 128 );
    489         /* paranoid */ verify( __alignof__(this) == 128 );
    490         /* paranoid */ verifyf( ((intptr_t)(&this) % 128) == 0, "Expected address to be aligned %p %% 128 == %zd", &this, ((intptr_t)(&this) % 128) );
    491 }
     489        /* paranoid */ verify( mock_head(this) == this.l.prev );
     490        /* paranoid */ verify( __alignof__(__intrusive_lane_t) == 64 );
     491        /* paranoid */ verify( __alignof__(this) == 64 );
     492        /* paranoid */ verifyf( ((intptr_t)(&this) % 64) == 0, "Expected address to be aligned %p %% 64 == %zd", &this, ((intptr_t)(&this) % 64) );
     493}
     494
     495#undef nested_offsetof
    492496
    493497// Dtor is trivial
    494498void ^?{}( __intrusive_lane_t & this ) {
    495499        // Make sure the list is empty
    496         /* paranoid */ verify( this.anchor.next == 0p );
    497         /* paranoid */ verify( this.anchor.ts   == MAX );
    498         /* paranoid */ verify( mock_head(this)  == this.prev );
     500        /* paranoid */ verify( this.l.anchor.next == 0p );
     501        /* paranoid */ verify( this.l.anchor.ts   == MAX );
     502        /* paranoid */ verify( mock_head(this)    == this.l.prev );
    499503}
    500504
  • libcfa/src/concurrency/kernel/cluster.hfa

    r12df6fe r4520b77e  
    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 );
    2826        /* paranoid */ verifyf( old_avg < 15000000000000, "Suspiciously large previous average: %'llu (%llx)\n", old_avg, old_avg );
    2927
     
    3937        if (ts_next == ULLONG_MAX) return;
    4038        unsigned long long now = rdtscl();
    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);
     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);
    4442}
    4543
     
    6159                if(ptsc != ULLONG_MAX) {
    6260                        /* paranoid */ verify( start + i < count );
    63                         unsigned long long tsc = moving_average(ctsc, ptsc, tscs[start + i].ma);
     61                        unsigned long long tsc = moving_average(ctsc, ptsc, tscs[start + i].t.ma);
    6462                        if(tsc > max) max = tsc;
    6563                }
  • libcfa/src/concurrency/kernel/fwd.hfa

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

    r12df6fe r4520b77e  
    8888#elif defined(CFA_HAVE_LINUX_RSEQ_H)
    8989        extern "Cforall" {
    90                 extern __attribute__((aligned(128))) thread_local volatile struct rseq __cfaabi_rseq;
     90                extern __attribute__((aligned(64))) __thread volatile struct rseq __cfaabi_rseq;
    9191        }
    9292#else
     
    139139//-----------------------------------------------------------------------------
    140140// I/O
    141 $io_arbiter * create(void);
    142 void destroy($io_arbiter *);
     141io_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
    163166        while( __builtin_expect(__atomic_exchange_n(ll, (bool)true, __ATOMIC_SEQ_CST), false) ) {
    164167                while(__atomic_load_n(ll, (int)__ATOMIC_RELAXED))
     
    166169        }
    167170        /* paranoid */ verify(*ll);
     171        /* paranoid */ verify( ! __preemption_enabled() );
    168172}
    169173
    170174// Non-Blocking acquire
    171175static inline bool __atomic_try_acquire(volatile bool * ll) {
     176        /* paranoid */ verify( ! __preemption_enabled() );
     177        /* paranoid */ verify(ll);
     178
    172179        return !__atomic_exchange_n(ll, (bool)true, __ATOMIC_SEQ_CST);
    173180}
     
    175182// Release
    176183static inline void __atomic_unlock(volatile bool * ll) {
     184        /* paranoid */ verify( ! __preemption_enabled() );
     185        /* paranoid */ verify(ll);
    177186        /* paranoid */ verify(*ll);
    178187        __atomic_store_n(ll, (bool)false, __ATOMIC_RELEASE);
     
    184193// have been hard-coded to for the ready-queue for
    185194// simplicity and performance
    186 struct __scheduler_RWLock_t {
    187         // total cachelines allocated
    188         unsigned int max;
    189 
    190         // cachelines currently in use
    191         volatile unsigned int alloc;
    192 
    193         // cachelines ready to itereate over
    194         // (!= to alloc when thread is in second half of doregister)
    195         volatile unsigned int ready;
    196 
    197         // writer lock
    198         volatile bool write_lock;
    199 
    200         // data pointer
    201         volatile bool * volatile * data;
     195union __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];
    202216};
    203217
     
    205219void ^?{}(__scheduler_RWLock_t & this);
    206220
    207 extern __scheduler_RWLock_t * __scheduler_lock;
     221extern __scheduler_RWLock_t __scheduler_lock;
    208222
    209223//-----------------------------------------------------------------------
    210224// Reader side : acquire when using the ready queue to schedule but not
    211225//  creating/destroying queues
    212 static inline void ready_schedule_lock(void) with(*__scheduler_lock) {
     226static inline void ready_schedule_lock(void) with(__scheduler_lock.lock) {
    213227        /* paranoid */ verify( ! __preemption_enabled() );
    214228        /* paranoid */ verify( ! kernelTLS().in_sched_lock );
     
    235249}
    236250
    237 static inline void ready_schedule_unlock(void) with(*__scheduler_lock) {
     251static inline void ready_schedule_unlock(void) with(__scheduler_lock.lock) {
    238252        /* paranoid */ verify( ! __preemption_enabled() );
    239253        /* paranoid */ verify( data[kernelTLS().sched_id] == &kernelTLS().sched_lock );
     
    256270
    257271        static inline bool ready_mutate_islocked() {
    258                 return __scheduler_lock->write_lock;
     272                return __scheduler_lock.lock.write_lock;
    259273        }
    260274#endif
  • libcfa/src/concurrency/kernel/startup.cfa

    r12df6fe r4520b77e  
    113113KERNEL_STORAGE(thread$,              mainThread);
    114114KERNEL_STORAGE(__stack_t,            mainThreadCtx);
    115 KERNEL_STORAGE(__scheduler_RWLock_t, __scheduler_lock);
     115// KERNEL_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;
    126125
    127126extern "C" {
     
    134133//-----------------------------------------------------------------------------
    135134// Global state
    136 thread_local struct KernelThreadData __cfaabi_tls __attribute__ ((tls_model ( "initial-exec" ))) @= {
     135__thread struct KernelThreadData __cfaabi_tls __attribute__ ((tls_model ( "initial-exec" ))) @= {
    137136        NULL,                                                                                           // cannot use 0p
    138137        NULL,
     
    148147};
    149148
     149__scheduler_RWLock_t __scheduler_lock @= { 0 };
     150
    150151#if   defined(CFA_HAVE_LINUX_LIBRSEQ)
    151152        // No data needed
    152153#elif defined(CFA_HAVE_LINUX_RSEQ_H)
    153154        extern "Cforall" {
    154                 __attribute__((aligned(128))) thread_local volatile struct rseq __cfaabi_rseq @= {
     155                __attribute__((aligned(64))) __thread volatile struct rseq __cfaabi_rseq @= {
    155156                        .cpu_id : RSEQ_CPU_ID_UNINITIALIZED,
    156157                };
     
    198199
    199200        // Initialize the global scheduler lock
    200         __scheduler_lock = (__scheduler_RWLock_t*)&storage___scheduler_lock;
    201         (*__scheduler_lock){};
     201        // __scheduler_lock = (__scheduler_RWLock_t*)&storage___scheduler_lock;
     202        (__scheduler_lock){};
    202203
    203204        // Initialize the main cluster
     
    336337        ^(*mainCluster){};
    337338
    338         ^(*__scheduler_lock){};
     339        ^(__scheduler_lock){};
    339340
    340341        ^(__cfa_dbg_global_clusters.list){};
  • libcfa/src/concurrency/preemption.cfa

    r12df6fe r4520b77e  
    238238//----------
    239239// special case for preemption since used often
    240 __attribute__((optimize("no-reorder-blocks"))) bool __preemption_enabled() libcfa_public {
     240__attribute__((optimize("no-reorder-blocks"))) bool __preemption_enabled() libcfa_nopreempt libcfa_public {
    241241        // create a assembler label before
    242242        // marked as clobber all to avoid movement
     
    272272}
    273273
     274extern "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
     285static inline bool __cfaabi_in( void * const ip, const struct __cfa_nopreempt_region & const region ) {
     286        return ip >= region.start && ip <= region.stop;
     287}
     288
    274289
    275290//----------
    276291// Get data from the TLS block
    277292// struct asm_region __cfaasm_get;
    278 uintptr_t __cfatls_get( unsigned long int offset ) __attribute__((__noinline__, visibility("default"))); //no inline to avoid problems
     293uintptr_t __cfatls_get( unsigned long int offset ) libcfa_nopreempt libcfa_public; //no inline to avoid problems
    279294uintptr_t __cfatls_get( unsigned long int offset ) {
    280295        // create a assembler label before
     
    295310extern "C" {
    296311        // Disable interrupts by incrementing the counter
    297         __attribute__((__noinline__, visibility("default"))) void disable_interrupts() libcfa_public {
     312        void disable_interrupts() libcfa_nopreempt libcfa_public {
    298313                // create a assembler label before
    299314                // marked as clobber all to avoid movement
     
    326341        // Enable interrupts by decrementing the counter
    327342        // If counter reaches 0, execute any pending __cfactx_switch
    328         void enable_interrupts( bool poll ) libcfa_public {
     343        void enable_interrupts( bool poll ) libcfa_nopreempt libcfa_public {
    329344                // Cache the processor now since interrupts can start happening after the atomic store
    330345                processor   * proc = __cfaabi_tls.this_processor;
     
    358373                }
    359374        }
     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        }
    360398}
    361399
     
    463501
    464502//-----------------------------------------------------------------------------
    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 
    545503// KERNEL ONLY
    546504// Check if a __cfactx_switch signal handler shoud defer
     
    548506// If false : preemption is unsafe and marked as pending
    549507static 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 
    556508        // Check if preemption is safe
    557509        bool ready = true;
    558         if( __cfaasm_in( ip, get    ) ) { ready = false; goto EXIT; };
    559         if( __cfaasm_in( ip, check  ) ) { ready = false; goto EXIT; };
    560         if( __cfaasm_in( ip, dsable ) ) { ready = false; goto EXIT; };
    561         // if( __cfaasm_in( ip, debug  ) ) { ready = false; goto EXIT; };
     510        if( __cfaabi_in( ip, __libcfa_nopreempt ) ) { ready = false; goto EXIT; };
     511        if( __cfaabi_in( ip, __libcfathrd_nopreempt ) ) { ready = false; goto EXIT; };
     512
    562513        if( !__cfaabi_tls.preemption_state.enabled) { ready = false; goto EXIT; };
    563514        if( __cfaabi_tls.preemption_state.in_progress ) { ready = false; goto EXIT; };
     
    643594// Kernel Signal Handlers
    644595//=============================================================================================
    645 __cfaabi_dbg_debug_do( static thread_local void * last_interrupt = 0; )
     596__cfaabi_dbg_debug_do( static __thread void * last_interrupt = 0; )
    646597
    647598// Context switch signal handler
  • libcfa/src/concurrency/ready_queue.cfa

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

    r12df6fe r4520b77e  
    66
    77// Intrusives lanes which are used by the relaxed ready queue
    8 struct __attribute__((aligned(128))) __intrusive_lane_t {
    9         struct thread$ * prev;
     8union __attribute__((aligned(64))) __intrusive_lane_t {
     9        struct {
     10                struct thread$ * prev;
    1011
    11         // spin lock protecting the queue
    12         volatile bool lock;
     12                // spin lock protecting the queue
     13                volatile bool lock;
    1314
    14         __thread_desc_link anchor;
     15                __thread_desc_link anchor;
    1516
    16         #if !defined(__CFA_NO_STATISTICS__)
    17                 unsigned cnt;
    18         #endif
     17                #if !defined(__CFA_NO_STATISTICS__)
     18                        unsigned cnt;
     19                #endif
     20        } l;
     21        char __padding[192];
    1922};
    2023
     
    2225static inline thread$ * mock_head(const __intrusive_lane_t & this) {
    2326        thread$ * rhead = (thread$ *)(
    24                 (uintptr_t)( &this.anchor ) - __builtin_offsetof( thread$, link )
     27                (uintptr_t)( &this.l.anchor ) - __builtin_offsetof( thread$, link )
    2528        );
    2629        return rhead;
     
    3033// returns true of lane was empty before push, false otherwise
    3134static inline void push( __intrusive_lane_t & this, thread$ * node ) {
    32         /* paranoid */ verify( this.lock );
     35        /* paranoid */ verify( this.l.lock );
    3336        /* paranoid */ verify( node->link.next == 0p );
    3437        /* paranoid */ verify( __atomic_load_n(&node->link.ts, __ATOMIC_RELAXED) == MAX  );
    35         /* paranoid */ verify( this.prev->link.next == 0p );
    36         /* paranoid */ verify( __atomic_load_n(&this.prev->link.ts, __ATOMIC_RELAXED)   == MAX  );
    37         if( this.anchor.next == 0p ) {
    38                 /* paranoid */ verify( this.anchor.next == 0p );
    39                 /* paranoid */ verify( __atomic_load_n(&this.anchor.ts, __ATOMIC_RELAXED) == MAX );
    40                 /* paranoid */ verify( __atomic_load_n(&this.anchor.ts, __ATOMIC_RELAXED) != 0  );
    41                 /* paranoid */ verify( this.prev == mock_head( this ) );
     38        /* paranoid */ verify( this.l.prev->link.next == 0p );
     39        /* paranoid */ verify( __atomic_load_n(&this.l.prev->link.ts, __ATOMIC_RELAXED)   == MAX  );
     40        if( this.l.anchor.next == 0p ) {
     41                /* paranoid */ verify( this.l.anchor.next == 0p );
     42                /* paranoid */ verify( __atomic_load_n(&this.l.anchor.ts, __ATOMIC_RELAXED) == MAX );
     43                /* paranoid */ verify( __atomic_load_n(&this.l.anchor.ts, __ATOMIC_RELAXED) != 0  );
     44                /* paranoid */ verify( this.l.prev == mock_head( this ) );
    4245        } else {
    43                 /* paranoid */ verify( this.anchor.next != 0p );
    44                 /* paranoid */ verify( __atomic_load_n(&this.anchor.ts, __ATOMIC_RELAXED) != MAX );
    45                 /* paranoid */ verify( __atomic_load_n(&this.anchor.ts, __ATOMIC_RELAXED) != 0  );
    46                 /* paranoid */ verify( this.prev != mock_head( this ) );
     46                /* paranoid */ verify( this.l.anchor.next != 0p );
     47                /* paranoid */ verify( __atomic_load_n(&this.l.anchor.ts, __ATOMIC_RELAXED) != MAX );
     48                /* paranoid */ verify( __atomic_load_n(&this.l.anchor.ts, __ATOMIC_RELAXED) != 0  );
     49                /* paranoid */ verify( this.l.prev != mock_head( this ) );
    4750        }
    4851
    4952        // Get the relevant nodes locally
    50         this.prev->link.next = node;
    51         __atomic_store_n(&this.prev->link.ts, rdtscl(), __ATOMIC_RELAXED);
    52         this.prev = node;
     53        this.l.prev->link.next = node;
     54        __atomic_store_n(&this.l.prev->link.ts, rdtscl(), __ATOMIC_RELAXED);
     55        this.l.prev = node;
    5356        #if !defined(__CFA_NO_STATISTICS__)
    54                 this.cnt++;
     57                this.l.cnt++;
    5558        #endif
    5659}
     
    6063// returns true of lane was empty before push, false otherwise
    6164static inline [* thread$, unsigned long long] pop( __intrusive_lane_t & this ) {
    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   );
     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   );
    6669
    6770        // Get the relevant nodes locally
    68         thread$ * node = this.anchor.next;
    69         this.anchor.next = node->link.next;
    70         __atomic_store_n(&this.anchor.ts, __atomic_load_n(&node->link.ts, __ATOMIC_RELAXED), __ATOMIC_RELAXED);
    71         bool is_empty = this.anchor.next == 0p;
     71        thread$ * node = this.l.anchor.next;
     72        this.l.anchor.next = node->link.next;
     73        __atomic_store_n(&this.l.anchor.ts, __atomic_load_n(&node->link.ts, __ATOMIC_RELAXED), __ATOMIC_RELAXED);
     74        bool is_empty = this.l.anchor.next == 0p;
    7275        node->link.next = 0p;
    7376        __atomic_store_n(&node->link.ts, ULLONG_MAX, __ATOMIC_RELAXED);
    7477        #if !defined(__CFA_NO_STATISTICS__)
    75                 this.cnt--;
     78                this.l.cnt--;
    7679        #endif
    7780
    7881        // Update head time stamp
    79         if(is_empty) this.prev = mock_head( this );
     82        if(is_empty) this.l.prev = mock_head( this );
    8083
    81         unsigned long long ats = __atomic_load_n(&this.anchor.ts, __ATOMIC_RELAXED);
     84        unsigned long long ats = __atomic_load_n(&this.l.anchor.ts, __ATOMIC_RELAXED);
    8285        /* paranoid */ verify( node->link.next == 0p );
    8386        /* paranoid */ verify( __atomic_load_n(&node->link.ts , __ATOMIC_RELAXED) == MAX );
     
    9093// Check whether or not list is empty
    9194static inline bool is_empty(__intrusive_lane_t & this) {
    92         return this.anchor.next == 0p;
     95        return this.l.anchor.next == 0p;
    9396}
    9497
     
    9699static inline unsigned long long ts(__intrusive_lane_t & this) {
    97100        // Cannot verify 'emptiness' here since it may not be locked
    98         /* paranoid */ verify(this.anchor.ts != 0);
    99         /* paranoid */ static_assert(__atomic_always_lock_free(sizeof(this.anchor.ts), &this.anchor.ts));
    100         return __atomic_load_n(&this.anchor.ts, __ATOMIC_RELAXED);
     101        /* paranoid */ verify(this.l.anchor.ts != 0);
     102        /* paranoid */ static_assert(__atomic_always_lock_free(sizeof(this.l.anchor.ts), &this.l.anchor.ts));
     103        return __atomic_load_n(&this.l.anchor.ts, __ATOMIC_RELAXED);
    101104}
  • libcfa/src/concurrency/stats.cfa

    r12df6fe r4520b77e  
    4646                        stats->io.submit.fast       = 0;
    4747                        stats->io.submit.slow       = 0;
     48                        stats->io.submit.eagr       = 0;
     49                        stats->io.submit.nblk       = 0;
    4850                        stats->io.flush.external    = 0;
    4951                        stats->io.flush.dirty       = 0;
     
    116118                        tally_one( &cltr->io.submit.fast      , &proc->io.submit.fast       );
    117119                        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       );
    118122                        tally_one( &cltr->io.flush.external   , &proc->io.flush.external    );
    119123                        tally_one( &cltr->io.flush.dirty      , &proc->io.flush.dirty       );
     
    197201                                        sstr | "fast," | eng3(io.submit.slow) | "slow (" | ws(3, 3, avgfasts) | "%)" | nonl;
    198202                                }
     203                                sstr | " - eager" | eng3(io.submit.eagr) | nonl;
     204                                sstr | " - no-wait" | eng3(io.submit.nblk) | nonl;
    199205                                sstr | nl;
    200206
  • libcfa/src/concurrency/stats.hfa

    r12df6fe r4520b77e  
    9292                                volatile uint64_t fast;
    9393                                volatile uint64_t slow;
     94                                volatile uint64_t eagr;
     95                                volatile uint64_t nblk;
    9496                        } submit;
    9597                        struct {
     
    130132        #endif
    131133
    132         struct __attribute__((aligned(128))) __stats_t {
     134        struct __attribute__((aligned(64))) __stats_t {
    133135                __stats_readyQ_t ready;
    134136                #if defined(CFA_HAVE_LINUX_IO_URING_H)
  • libcfa/src/iostream.cfa

    r12df6fe r4520b77e  
    1010// Created On       : Wed May 27 17:56:53 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Jan 19 08:15:53 2022
    13 // Update Count     : 1352
     12// Last Modified On : Thu Aug 25 18:05:49 2022
     13// Update Count     : 1354
    1414//
    1515
     
    197197                        fmt( os, "%s", buf ); \
    198198                        if ( isfinite( val ) ) { /* if number, print decimal point when no fraction or exponent */ \
    199                                 for ( int i = 0;; i += 1 ) { \
     199                                for ( i; 0 ~ @ ) { \
    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

    r12df6fe r4520b77e  
    1010// Created On       : Wed Apr  6 17:54:28 2016
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Jul 20 16:30:06 2021
    13 // Update Count     : 193
     12// Last Modified On : Thu Aug 25 18:09:58 2022
     13// Update Count     : 194
    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

    r12df6fe r4520b77e  
    4141        } // __cfaabi_appready_shutdown
    4242
    43         void disable_interrupts() __attribute__(( weak )) libcfa_public {}
    44         void enable_interrupts() __attribute__(( weak )) libcfa_public {}
     43        void disable_interrupts() __attribute__(( weak )) libcfa_nopreempt libcfa_public {}
     44        void enable_interrupts() __attribute__(( weak )) libcfa_nopreempt libcfa_public {}
     45        bool poll_interrupts() __attribute__(( weak )) libcfa_nopreempt libcfa_public { return false; }
     46
     47        __attribute__((visibility("hidden"))) extern void * const __start_cfatext_nopreempt;
     48        __attribute__((visibility("hidden"))) extern void * const __stop_cfatext_nopreempt;
     49
     50        __attribute__((visibility("protected"))) const __cfa_nopreempt_region __libcfa_nopreempt @= {
     51                (void * const)&__start_cfatext_nopreempt,
     52                (void * const)&__stop_cfatext_nopreempt
     53        };
    4554
    4655
  • libcfa/src/stdlib.cfa

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

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

    r12df6fe r4520b77e  
    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::C, const Expr * bitWd = nullptr,
     110                Linkage::Spec linkage = Linkage::Cforall, 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::C,
     145                CompoundStmt * stmts, Storage::Classes storage = {}, Linkage::Spec linkage = Linkage::Cforall,
    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::C,
     151                CompoundStmt * stmts, Storage::Classes storage = {}, Linkage::Spec linkage = Linkage::Cforall,
    152152                std::vector<ptr<Attribute>>&& attrs = {}, Function::Specs fs = {}, bool isVarArgs = false);
    153153
     
    217217
    218218        /// convenience accessor to match Type::isComplete()
    219         bool isComplete() { return sized; }
     219        bool isComplete() const { return sized; }
    220220
    221221        const Decl * accept( Visitor & v ) const override { return v.visit( this ); }
  • src/AST/DeclReplacer.cpp

    r12df6fe r4520b77e  
    99// Author           : Aaron B. Moss
    1010// Created On       : Wed May 8 13:00:00 2019
    11 // Last Modified By : Aaron B. Moss
    12 // Last Modified On : Wed May 8 13:00:00 2019
    13 // Update Count     : 1
     11// Last Modified By : Andrew Beach
     12// Last Modified On : Thr Sep 15 11:55:00 2022
     13// Update Count     : 2
    1414//
    1515
    1616#include "DeclReplacer.hpp"
     17
    1718#include "Expr.hpp"
     19#include "Pass.hpp"
    1820#include "Type.hpp"
    19 
    20 #include "Pass.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;
    3125
    32                 public:
    33                         DeclReplacer(const DeclMap & declMap, const TypeMap & typeMap, bool debug)
    34                                 : declMap( declMap ), typeMap( typeMap ), debug( debug )
    35                         {}
     26namespace {
     27        struct DeclReplacer {
     28        private:
     29                const DeclMap & declMap;
     30                const TypeMap & typeMap;
     31                bool debug;
    3632
    37                         const ast::VariableExpr * previsit( const ast::VariableExpr * );
    38                         const ast::TypeInstType * previsit( const ast::TypeInstType * );
    39                 };
     33        public:
     34                DeclReplacer( const DeclMap & declMap, const TypeMap & typeMap, bool debug )
     35                        : declMap( declMap ), typeMap( typeMap ), debug( debug )
     36                {}
    4037
    41                 struct VarExprReplacer {
    42                 private:
    43                         const ExprMap & exprMap;
    44                        
    45                 public:
    46                         VarExprReplacer(const ExprMap & exprMap): exprMap (exprMap) {}
     38                const ast::VariableExpr * previsit( const ast::VariableExpr * );
     39                const ast::TypeInstType * previsit( const ast::TypeInstType * );
     40        };
    4741
    48                         const Expr * postvisit (const VariableExpr *);
    49                 };
     42        struct VarExprReplacer {
     43        private:
     44                const ExprMap & exprMap;
     45
     46        public:
     47                VarExprReplacer( const ExprMap & exprMap ) : exprMap( exprMap ) {}
     48
     49                const Expr * postvisit( const VariableExpr * );
     50        };
     51} // namespace
     52
     53const ast::Node * replace( const ast::Node * node, const DeclMap & declMap, const TypeMap & typeMap, bool debug ) {
     54        if(!node) return nullptr;
     55        Pass<DeclReplacer> replacer = { declMap, typeMap, debug };
     56        return node->accept( replacer );
     57}
     58
     59const ast::Node * replace( const ast::Node * node, const DeclMap & declMap, bool debug ) {
     60        TypeMap typeMap;
     61        return replace( node, declMap, typeMap, debug );
     62}
     63
     64const ast::Node * replace( const ast::Node * node, const TypeMap & typeMap, bool debug ) {
     65        DeclMap declMap;
     66        return replace( node, declMap, typeMap, debug );
     67}
     68
     69const ast::Node * replace( const ast::Node * node, const ExprMap & exprMap ) {
     70        Pass<VarExprReplacer> replacer = {exprMap};
     71        return node->accept( replacer );
     72}
     73
     74namespace {
     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;
    5090        }
    5191
    52         const ast::Node * replace( const ast::Node * node, const DeclMap & declMap, const TypeMap & typeMap, bool debug ) {
    53                 if(!node) return nullptr;
    54                 Pass<DeclReplacer> replacer = { declMap, typeMap, debug };
    55                 return node->accept( replacer );
     92        const TypeInstType * DeclReplacer::previsit( const TypeInstType * inst ) {
     93                if ( !typeMap.count( inst->base ) ) return inst;
     94
     95                auto replacement = typeMap.at( inst->base );
     96                if ( debug ) {
     97                        std::cerr << "replacing type reference: "
     98                                << (void*)inst->base.get() << " " << inst->base
     99                                << " with " << (void*)replacement << " " << replacement
     100                                << std::endl;
     101                }
     102                auto ninst = mutate(inst);
     103                ninst->base = replacement;
     104                return ninst;
    56105        }
    57106
    58         const ast::Node * replace( const ast::Node * node, const DeclMap & declMap, bool debug ) {
    59                 TypeMap typeMap;
    60                 return replace( node, declMap, typeMap, debug );
     107        const Expr * VarExprReplacer::postvisit( const VariableExpr * expr ) {
     108                if ( !exprMap.count( expr->var ) ) return expr;
     109                return exprMap.at( expr->var );
    61110        }
     111} // namespace
    62112
    63         const ast::Node * replace( const ast::Node * node, const TypeMap & typeMap, bool debug ) {
    64                 DeclMap declMap;
    65                 return replace( node, declMap, typeMap, debug );
    66         }
     113} // namespace DeclReplacer
    67114
    68         const ast::Node * replace( const ast::Node * node, const ExprMap & exprMap) {
    69                 Pass<VarExprReplacer> replacer = {exprMap};
    70                 return node->accept( replacer );
    71         }
    72 
    73         namespace {
    74                 // replace variable with new node from decl map
    75                 const ast::VariableExpr * DeclReplacer::previsit( const VariableExpr * varExpr ) {
    76                         // xxx - assertions and parameters aren't accounted for in this... (i.e. they aren't inserted into the map when it's made, only DeclStmts are)
    77                         if ( !declMap.count( varExpr->var ) ) return varExpr;
    78 
    79                         auto replacement = declMap.at( varExpr->var );
    80                         if ( debug ) {
    81                                 std::cerr << "replacing variable reference: "
    82                                         << (void*)varExpr->var.get() << " " << varExpr->var
    83                                         << " with " << (void*)replacement << " " << replacement
    84                                         << std::endl;
    85                         }
    86                         auto nexpr = mutate(varExpr);
    87                         nexpr->var = replacement;
    88                         return nexpr;
    89                 }
    90 
    91                 const TypeInstType * DeclReplacer::previsit( const TypeInstType * inst ) {
    92                         if ( !typeMap.count( inst->base ) ) return inst;
    93 
    94                         auto replacement = typeMap.at( inst->base );
    95                         if ( debug ) {
    96                                 std::cerr << "replacing type reference: "
    97                                         << (void*)inst->base.get() << " " << inst->base
    98                                         << " with " << (void*)replacement << " " << replacement
    99                                         << std::endl;
    100                         }
    101                         auto ninst = mutate(inst);
    102                         ninst->base = replacement;
    103                         return ninst;
    104                 }
    105 
    106                 const Expr * VarExprReplacer::postvisit( const VariableExpr * expr ) {
    107                         if (!exprMap.count(expr->var)) return expr;
    108 
    109                         return exprMap.at(expr->var);
    110                 }
    111 
    112         }
    113 }
    114 
    115 }
     115} // namespace ast
    116116
    117117// Local Variables: //
  • src/AST/Pass.hpp

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

    r12df6fe r4520b77e  
    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 ); \
    2729        /* back-up the visit children */ \
    2830        __attribute__((unused)) ast::__pass::visit_children_guard guard1( ast::__pass::visit_children(core, 0) ); \
     
    597599                        guard_symtab guard { *this };
    598600                        // 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.
    599602                        static ast::ptr< ast::ObjectDecl > func{ new ast::ObjectDecl{
    600603                                CodeLocation{}, "__func__",
     
    602605                                        new ast::BasicType{ ast::BasicType::Char, ast::CV::Const },
    603606                                        nullptr, VariableLen, DynamicDim
    604                                 }
     607                                },
     608                                nullptr,
     609                                ast::Storage::Classes(),
     610                                ast::Linkage::C,
    605611                        } };
    606612                        __pass::symtab::addId( core, 0, func );
  • src/AST/Pass.proto.hpp

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

    r12df6fe r4520b77e  
    3333{
    3434        return array<C,sizeof...(T)>{
    35                 forward<T>(values)...
     35                std::forward<T>(values)...
    3636        };
    3737}
     
    8686
    8787                static constexpr auto StorageClasses = make_array<const char*>(
    88                         "extern", "static", "auto", "register", "_Thread_local"
     88                        "extern", "static", "auto", "register", "__thread", "_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*, 5> Printer::Names::StorageClasses;
     1636constexpr array<const char*, 6> Printer::Names::StorageClasses;
    16371637constexpr array<const char*, 6> Printer::Names::Qualifiers;
    16381638}
  • src/AST/StorageClasses.hpp

    r12df6fe r4520b77e  
    2424        /// Bitflags for storage classes
    2525        enum {
    26                 Extern      = 1 << 0,
    27                 Static      = 1 << 1,
    28                 Auto        = 1 << 2,
    29                 Register    = 1 << 3,
    30                 ThreadLocal = 1 << 4,
    31                 NumClasses       = 5
     26                Extern         = 1 << 0,
     27                Static         = 1 << 1,
     28                Auto           = 1 << 2,
     29                Register       = 1 << 3,
     30                ThreadLocalGcc = 1 << 4,
     31                ThreadLocalC11 = 1 << 5,
     32                NumClasses          = 6
    3233        };
    3334
     
    3738                        unsigned int val;
    3839                        struct {
    39                                 bool is_extern      : 1;
    40                                 bool is_static      : 1;
    41                                 bool is_auto        : 1;
    42                                 bool is_register    : 1;
    43                                 bool is_threadlocal : 1;
     40                                bool is_extern         : 1;
     41                                bool is_static         : 1;
     42                                bool is_auto           : 1;
     43                                bool is_register       : 1;
     44                                bool is_threadlocalGcc : 1;
     45                                bool is_threadlocalC11 : 1;
    4446                        };
    4547
     
    4850
    4951                constexpr class_flags( unsigned int val = 0 ) : val(val) {}
     52
     53                bool is_threadlocal_any() { return this->is_threadlocalC11 || this->is_threadlocalGcc; }
    5054        };
    5155
  • src/AST/Type.cpp

    r12df6fe r4520b77e  
    143143TraitInstType::TraitInstType(
    144144        const TraitDecl * b, CV::Qualifiers q, std::vector<ptr<Attribute>>&& as )
    145 : BaseInstType( b->name, q, move(as) ), base( b ) {}
     145: BaseInstType( b->name, q, std::move(as) ), base( b ) {}
    146146
    147147// --- TypeInstType
     
    149149TypeInstType::TypeInstType( const TypeDecl * b,
    150150        CV::Qualifiers q, std::vector<ptr<Attribute>> && as )
    151 : BaseInstType( b->name, q, move(as) ), base( b ), kind( b->kind ) {}
     151: BaseInstType( b->name, q, std::move(as) ), base( b ), kind( b->kind ) {}
    152152
    153153void TypeInstType::set_base( const TypeDecl * b ) {
     
    161161
    162162TupleType::TupleType( std::vector<ptr<Type>> && ts, CV::Qualifiers q )
    163 : Type( q ), types( move(ts) ), members() {
     163: Type( q ), types( std::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

    r12df6fe r4520b77e  
    8383template< enum Node::ref_type ref_t >
    8484void reset_qualifiers( ptr_base< Type, ref_t > & p, CV::Qualifiers q = {} ) {
    85         if ( p->qualifiers.val != q.val ) p.get_and_mutate()->qualifiers = q;
     85        if ( p->qualifiers != q ) p.get_and_mutate()->qualifiers = q;
    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.val & q.val ) != q.val ) p.get_and_mutate()->qualifiers |= q;
     91        if ( ( p->qualifiers & q ) != q ) 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.val & q.val ) != 0 ) p.get_and_mutate()->qualifiers -= q;
     97        if ( ( p->qualifiers & q ) != 0 ) p.get_and_mutate()->qualifiers -= q;
    9898}
    9999
  • src/Common/Eval.cc

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

    r12df6fe r4520b77e  
    1010// Created On       : Wed Dec 2 11:37:00 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Mon May 21 15:22:40 2018
    13 // Update Count     : 3
     12// Last Modified On : Tue Feb 15 08:41:28 2022
     13// Update Count     : 5
    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,
    61                                                value_type > {
     60        class iterator : public std::iterator< std::bidirectional_iterator_tag, value_type > {
    6261        friend class ScopedMap;
    6362        friend class const_iterator;
     
    7271
    7372                /// Increments on invalid
    74                 iterator& next_valid() {
     73                iterator & next_valid() {
    7574                        if ( ! is_valid() ) { ++(*this); }
    7675                        return *this;
     
    7877
    7978                /// Decrements on invalid
    80                 iterator& prev_valid() {
     79                iterator & prev_valid() {
    8180                        if ( ! is_valid() ) { --(*this); }
    8281                        return *this;
    8382                }
    8483
    85                 iterator(scope_list &_scopes, const wrapped_iterator &_it, size_type inLevel)
     84                iterator(scope_list & _scopes, const wrapped_iterator & _it, size_type inLevel)
    8685                        : scopes(&_scopes), it(_it), level(inLevel) {}
    8786        public:
    88                 iterator(const iterator &that) : scopes(that.scopes), it(that.it), level(that.level) {}
    89                 iterator& operator= (const iterator &that) {
     87                iterator(const iterator & that) : scopes(that.scopes), it(that.it), level(that.level) {}
     88                iterator & operator= (const iterator & that) {
    9089                        scopes = that.scopes; level = that.level; it = that.it;
    9190                        return *this;
     
    9594                pointer operator-> () const { return it.operator->(); }
    9695
    97                 iterator& operator++ () {
     96                iterator & operator++ () {
    9897                        if ( it == (*scopes)[level].map.end() ) {
    9998                                if ( level == 0 ) return *this;
     
    107106                iterator operator++ (int) { iterator tmp = *this; ++(*this); return tmp; }
    108107
    109                 iterator& operator-- () {
     108                iterator & operator-- () {
    110109                        // may fail if this is the begin iterator; allowed by STL spec
    111110                        if ( it == (*scopes)[level].map.begin() ) {
     
    118117                iterator operator-- (int) { iterator tmp = *this; --(*this); return tmp; }
    119118
    120                 bool operator== (const iterator &that) const {
     119                bool operator== (const iterator & that) const {
    121120                        return scopes == that.scopes && level == that.level && it == that.it;
    122121                }
    123                 bool operator!= (const iterator &that) const { return !( *this == that ); }
     122                bool operator!= (const iterator & that) const { return !( *this == that ); }
    124123
    125124                size_type get_level() const { return level; }
    126125
    127                 Note& get_note() { return (*scopes)[level].note; }
    128                 const Note& get_note() const { return (*scopes)[level].note; }
     126                Note & get_note() { return (*scopes)[level].note; }
     127                const Note & get_note() const { return (*scopes)[level].note; }
    129128
    130129        private:
     
    148147
    149148                /// Increments on invalid
    150                 const_iterator& next_valid() {
     149                const_iterator & next_valid() {
    151150                        if ( ! is_valid() ) { ++(*this); }
    152151                        return *this;
     
    154153
    155154                /// Decrements on invalid
    156                 const_iterator& prev_valid() {
     155                const_iterator & prev_valid() {
    157156                        if ( ! is_valid() ) { --(*this); }
    158157                        return *this;
    159158                }
    160159
    161                 const_iterator(scope_list const &_scopes, const wrapped_const_iterator &_it, size_type inLevel)
     160                const_iterator(scope_list const & _scopes, const wrapped_const_iterator & _it, size_type inLevel)
    162161                        : scopes(&_scopes), it(_it), level(inLevel) {}
    163162        public:
    164                 const_iterator(const iterator &that) : scopes(that.scopes), it(that.it), level(that.level) {}
    165                 const_iterator(const const_iterator &that) : scopes(that.scopes), it(that.it), level(that.level) {}
    166                 const_iterator& operator= (const iterator &that) {
     163                const_iterator(const iterator & that) : scopes(that.scopes), it(that.it), level(that.level) {}
     164                const_iterator(const const_iterator & that) : scopes(that.scopes), it(that.it), level(that.level) {}
     165                const_iterator & operator= (const iterator & that) {
    167166                        scopes = that.scopes; level = that.level; it = that.it;
    168167                        return *this;
    169168                }
    170                 const_iterator& operator= (const const_iterator &that) {
     169                const_iterator & operator= (const const_iterator & that) {
    171170                        scopes = that.scopes; level = that.level; it = that.it;
    172171                        return *this;
     
    176175                const_pointer operator-> () { return it.operator->(); }
    177176
    178                 const_iterator& operator++ () {
     177                const_iterator & operator++ () {
    179178                        if ( it == (*scopes)[level].map.end() ) {
    180179                                if ( level == 0 ) return *this;
     
    188187                const_iterator operator++ (int) { const_iterator tmp = *this; ++(*this); return tmp; }
    189188
    190                 const_iterator& operator-- () {
     189                const_iterator & operator-- () {
    191190                        // may fail if this is the begin iterator; allowed by STL spec
    192191                        if ( it == (*scopes)[level].map.begin() ) {
     
    199198                const_iterator operator-- (int) { const_iterator tmp = *this; --(*this); return tmp; }
    200199
    201                 bool operator== (const const_iterator &that) const {
     200                bool operator== (const const_iterator & that) const {
    202201                        return scopes == that.scopes && level == that.level && it == that.it;
    203202                }
    204                 bool operator!= (const const_iterator &that) const { return !( *this == that ); }
     203                bool operator!= (const const_iterator & that) const { return !( *this == that ); }
    205204
    206205                size_type get_level() const { return level; }
    207206
    208                 const Note& get_note() const { return (*scopes)[level].note; }
     207                const Note & get_note() const { return (*scopes)[level].note; }
    209208
    210209        private:
     
    221220        // Starts a new scope with the given note
    222221        template<typename N>
    223         void beginScope( N&& n ) {
     222        void beginScope( N && n ) {
    224223                scopes.emplace_back( std::forward<N>(n) );
    225224        }
     
    236235        /// Constructs with a given note on the outermost scope
    237236        template<typename N>
    238         ScopedMap( N&& n ) : scopes() { beginScope(std::forward<N>(n)); }
     237        ScopedMap( N && n ) : scopes() { beginScope(std::forward<N>(n)); }
    239238
    240239        iterator begin() { return iterator(scopes, scopes.back().map.begin(), currentScope()).next_valid(); }
     
    249248
    250249        /// Gets the note at the given scope
    251         Note& getNote() { return scopes.back().note; }
    252         const Note& getNote() const { return scopes.back().note; }
    253         Note& getNote( size_type i ) { return scopes[i].note; }
    254         const Note& getNote( size_type i ) const { return scopes[i].note; }
     250        Note & getNote() { return scopes.back().note; }
     251        const Note & getNote() const { return scopes.back().note; }
     252        Note & getNote( size_type i ) { return scopes[i].note; }
     253        const Note & getNote( size_type i ) const { return scopes[i].note; }
    255254
    256255        /// Finds the given key in the outermost scope it occurs; returns end() for none such
    257         iterator find( const Key &key ) {
     256        iterator find( const Key & key ) {
    258257                for ( size_type i = scopes.size() - 1; ; --i ) {
    259258                        typename MapType::iterator val = scopes[i].map.find( key );
     
    263262                return end();
    264263        }
    265         const_iterator find( const Key &key ) const {
     264        const_iterator find( const Key & key ) const {
    266265                        return const_iterator( const_cast< ScopedMap< Key, Value, Note >* >(this)->find( key ) );
    267266        }
    268267
    269268        /// Finds the given key in the provided scope; returns end() for none such
    270         iterator findAt( size_type scope, const Key& key ) {
     269        iterator findAt( size_type scope, const Key & key ) {
    271270                typename MapType::iterator val = scopes[scope].map.find( key );
    272271                if ( val != scopes[scope].map.end() ) return iterator( scopes, val, scope );
    273272                return end();
    274273        }
    275         const_iterator findAt( size_type scope, const Key& key ) const {
     274        const_iterator findAt( size_type scope, const Key & key ) const {
    276275                return const_iterator( const_cast< ScopedMap< Key, Value, Note >* >(this)->findAt( scope, key ) );
    277276        }
    278277
    279278        /// Finds the given key in the outermost scope inside the given scope where it occurs
    280         iterator findNext( const_iterator &it, const Key &key ) {
     279        iterator findNext( const_iterator & it, const Key & key ) {
    281280                if ( it.level == 0 ) return end();
    282281                for ( size_type i = it.level - 1; ; --i ) {
     
    287286                return end();
    288287        }
    289         const_iterator findNext( const_iterator &it, const Key &key ) const {
     288        const_iterator findNext( const_iterator & it, const Key & key ) const {
    290289                        return const_iterator( const_cast< ScopedMap< Key, Value, Note >* >(this)->findNext( it, key ) );
    291290        }
     
    293292        /// Inserts the given key-value pair into the outermost scope
    294293        template< typename value_type_t >
    295         std::pair< iterator, bool > insert( value_type_t&& value ) {
     294        std::pair< iterator, bool > insert( value_type_t && value ) {
    296295                std::pair< typename MapType::iterator, bool > res = scopes.back().map.insert( std::forward<value_type_t>( value ) );
    297296                return std::make_pair( iterator(scopes, std::move( res.first ), scopes.size()-1), std::move( res.second ) );
     
    299298
    300299        template< typename value_type_t >
    301         std::pair< iterator, bool > insert( iterator at, value_type_t&& value ) {
    302                 MapType& scope = (*at.scopes)[ at.level ].map;
     300        std::pair< iterator, bool > insert( iterator at, value_type_t && value ) {
     301                MapType & scope = (*at.scopes)[ at.level ].map;
    303302                std::pair< typename MapType::iterator, bool > res = scope.insert( std::forward<value_type_t>( value ) );
    304303                return std::make_pair( iterator(scopes, std::move( res.first ), at.level), std::move( res.second ) );
     
    306305
    307306        template< typename value_t >
    308         std::pair< iterator, bool > insert( const Key &key, value_t&& value ) { return insert( std::make_pair( key, std::forward<value_t>( value ) ) ); }
     307        std::pair< iterator, bool > insert( const Key & key, value_t && value ) { return insert( std::make_pair( key, std::forward<value_t>( value ) ) ); }
    309308
    310309        template< typename value_type_t >
    311         std::pair< iterator, bool > insertAt( size_type scope, value_type_t&& value ) {
     310        std::pair< iterator, bool > insertAt( size_type scope, value_type_t && value ) {
    312311                std::pair< typename MapType::iterator, bool > res = scopes.at(scope).map.insert( std::forward<value_type_t>( value ) );
    313312                return std::make_pair( iterator(scopes, std::move( res.first ), scope), std::move( res.second ) );
     
    315314
    316315        template< typename value_t >
    317         std::pair< iterator, bool > insertAt( size_type scope, const Key& key, value_t&& value ) {
     316        std::pair< iterator, bool > insertAt( size_type scope, const Key & key, value_t && value ) {
    318317                return insertAt( scope, std::make_pair( key, std::forward<value_t>( value ) ) );
    319318        }
    320319
    321         Value& operator[] ( const Key &key ) {
     320        Value & operator[] ( const Key & key ) {
    322321                iterator slot = find( key );
    323322                if ( slot != end() ) return slot->second;
     
    326325
    327326        iterator erase( iterator pos ) {
    328                 MapType& scope = (*pos.scopes)[ pos.level ].map;
    329                 const typename iterator::wrapped_iterator& new_it = scope.erase( pos.it );
     327                MapType & scope = (*pos.scopes)[ pos.level ].map;
     328                const typename iterator::wrapped_iterator & new_it = scope.erase( pos.it );
    330329                iterator it( *pos.scopes, new_it, pos.level );
    331330                return it.next_valid();
    332331        }
    333332
    334         size_type count( const Key &key ) const {
     333        size_type count( const Key & key ) const {
    335334                size_type c = 0;
    336335                auto it = find( key );
     
    344343                return c;
    345344        }
    346 
    347345};
    348346
  • src/Common/utility.h

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

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

    r12df6fe r4520b77e  
    508508                ObjectDecl * vtable_object = Virtual::makeVtableForward(
    509509                        "_default_vtable_object_declaration",
    510                         vtable_decl->makeInst( move( poly_args ) ) );
     510                        vtable_decl->makeInst( std::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

    r12df6fe r4520b77e  
    398398                        new ast::ReferenceType( vtable_object->type, ast::CV::Const ),
    399399                        new ast::SingleInit( location,
    400                                 new ast::VariableExpr( location, vtable_object ) ),
    401                         ast::Storage::Classes(),
    402                         ast::Linkage::Cforall
     400                                new ast::VariableExpr( location, vtable_object ) )
    403401                )
    404402        );
     
    471469                location,
    472470                "this",
    473                 new ast::ReferenceType( new ast::StructInstType( decl ) ),
    474                 nullptr,
    475                 ast::Storage::Classes(),
    476                 ast::Linkage::Cforall
     471                new ast::ReferenceType( new ast::StructInstType( decl ) )
    477472        );
    478473
     
    480475                location,
    481476                "ret",
    482                 new ast::PointerType( new ast::StructInstType( type_decl ) ),
    483                 nullptr,
    484                 ast::Storage::Classes(),
    485                 ast::Linkage::Cforall
     477                new ast::PointerType( new ast::StructInstType( type_decl ) )
    486478        );
    487479
     
    530522                location,
    531523                field_name,
    532                 new ast::StructInstType( type_decl ),
    533                 nullptr,
    534                 ast::Storage::Classes(),
    535                 ast::Linkage::Cforall
     524                new ast::StructInstType( type_decl )
    536525        );
    537526
     
    577566                location,
    578567                "this",
    579                 new ast::ReferenceType( new ast::StructInstType( decl ) ),
    580                 nullptr,
    581                 ast::Storage::Classes(),
    582                 ast::Linkage::Cforall
     568                new ast::ReferenceType( new ast::StructInstType( decl ) )
    583569        );
    584570
     
    10771063                                ) }
    10781064                        )
    1079                 ),
    1080                 ast::Storage::Classes(),
    1081                 ast::Linkage::Cforall
     1065                )
    10821066        );
    10831067
     
    11071091                                {},
    11081092                                ast::MaybeConstruct
    1109                         ),
    1110                         ast::Storage::Classes(),
    1111                         ast::Linkage::Cforall
     1093                        )
    11121094                ))
    11131095        );
     
    11611143                                }
    11621144                        )
    1163                 ),
    1164                 ast::Storage::Classes(),
    1165                 ast::Linkage::Cforall
     1145                )
    11661146        );
    11671147
     
    11901170                                {},
    11911171                                ast::MaybeConstruct
    1192                         ),
    1193                         ast::Storage::Classes(),
    1194                         ast::Linkage::Cforall
     1172                        )
    11951173                ))
    11961174        );
     
    12961274                                }
    12971275                        )
    1298                 ),
    1299                 ast::Storage::Classes(),
    1300                 ast::Linkage::Cforall
     1276                )
    13011277        );
    13021278
     
    13701346                                        {},
    13711347                                        ast::MaybeConstruct
    1372                                 ),
    1373                                 ast::Storage::Classes(),
    1374                                 ast::Linkage::Cforall
     1348                                )
    13751349                        )
    13761350                )
     
    15131487                                {},
    15141488                                ast::MaybeConstruct
    1515                         ),
    1516                         ast::Storage::Classes(),
    1517                         ast::Linkage::Cforall
     1489                        )
    15181490                )
    15191491        ));
  • src/Concurrency/WaitforNew.cpp

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

    r12df6fe r4520b77e  
    110110                "parent",
    111111                new ast::PointerType(
    112                         new ast::StructInstType( "__cfavir_type_info", ast::CV::Const ) ),
    113                 nullptr,
    114                 ast::Storage::Classes(),
    115                 ast::Linkage::Cforall
     112                        new ast::StructInstType( "__cfavir_type_info", ast::CV::Const ) )
    116113        ) );
    117114        decl->body = true;
     
    166163                location,
    167164                "__cfavir_typeid",
    168                 new ast::PointerType( typeIdType ),
    169                 nullptr,
    170                 ast::Storage::Classes(),
    171                 ast::Linkage::Cforall
     165                new ast::PointerType( typeIdType )
    172166        );
    173167        ast::ObjectDecl * size = new ast::ObjectDecl(
    174168                location,
    175169                "size",
    176                 new ast::TypeInstType( "size_t", ast::TypeDecl::Dtype ),
    177                 nullptr,
    178                 ast::Storage::Classes(),
    179                 ast::Linkage::Cforall
     170                new ast::TypeInstType( "size_t", ast::TypeDecl::Dtype )
    180171        );
    181172        ast::ObjectDecl * copy = new ast::ObjectDecl(
    182173                location,
    183174                "copy",
    184                 new ast::PointerType( createCopyFuncType( exceptionName, params ) ),
    185                 nullptr,
    186                 ast::Storage::Classes(),
    187                 ast::Linkage::Cforall
     175                new ast::PointerType( createCopyFuncType( exceptionName, params ) )
    188176        );
    189177        ast::ObjectDecl * dtor = new ast::ObjectDecl(
    190178                location,
    191179                "^?{}",
    192                 new ast::PointerType( createDtorFuncType( exceptionName, params ) ),
    193                 nullptr,
    194                 ast::Storage::Classes(),
    195                 ast::Linkage::Cforall
     180                new ast::PointerType( createDtorFuncType( exceptionName, params ) )
    196181        );
    197182        ast::ObjectDecl * msg = new ast::ObjectDecl(
    198183                location,
    199184                "msg",
    200                 new ast::PointerType( createMsgFuncType( exceptionName, params ) ),
    201                 nullptr,
    202                 ast::Storage::Classes(),
    203                 ast::Linkage::Cforall
     185                new ast::PointerType( createMsgFuncType( exceptionName, params ) )
    204186        );
    205187        ast::StructDecl * decl = new ast::StructDecl(
     
    229211                "virtual_table",
    230212                new ast::PointerType(
    231                         createVTableInstType( exceptionName, params ) ),
    232                 nullptr,
    233                 ast::Storage::Classes(),
    234                 ast::Linkage::Cforall
     213                        createVTableInstType( exceptionName, params ) )
    235214        ) );
    236215        for ( ast::ptr<ast::Decl> const & member : members ) {
     
    289268                                "this",
    290269                                new ast::PointerType(
    291                                         createExceptionInstType( exceptionName, params ) ),
    292                                 nullptr,
    293                                 ast::Storage::Classes(),
    294                                 ast::Linkage::Cforall
     270                                        createExceptionInstType( exceptionName, params ) )
    295271                        ),
    296272                        new ast::ObjectDecl(
     
    298274                                "that",
    299275                                new ast::PointerType(
    300                                         createExceptionInstType( exceptionName, params ) ),
    301                                 nullptr,
    302                                 ast::Storage::Classes(),
    303                                 ast::Linkage::Cforall
     276                                        createExceptionInstType( exceptionName, params ) )
    304277                        ),
    305278                },
    306279                {
    307                         new ast::ObjectDecl(
    308                                 location,
    309                                 "",
    310                                 new ast::VoidType(),
    311                                 nullptr,
    312                                 ast::Storage::Classes(),
    313                                 ast::Linkage::Cforall
    314                         ),
     280                        new ast::ObjectDecl( location, "", new ast::VoidType() ),
    315281                },
    316282                new ast::CompoundStmt( location, {
     
    366332                                "this",
    367333                                new ast::PointerType(
    368                                         createExceptionInstType( exceptionName, params ) ),
    369                                 nullptr,
    370                                 ast::Storage::Classes(),
    371                                 ast::Linkage::Cforall
     334                                        createExceptionInstType( exceptionName, params ) )
    372335                        ),
    373336                },
     
    377340                                "",
    378341                                new ast::PointerType(
    379                                         new ast::BasicType( ast::BasicType::Char, ast::CV::Const ) ),
    380                                 nullptr,
    381                                 ast::Storage::Classes(),
    382                                 ast::Linkage::Cforall
     342                                        new ast::BasicType( ast::BasicType::Char, ast::CV::Const ) )
    383343                        ),
    384344                },
     
    432392                tableName,
    433393                createVTableInstType( exceptionName, params ),
    434                 new ast::ListInit( location, std::move( inits ), std::move( dsigs ) ),
    435                 ast::Storage::Classes(),
    436                 ast::Linkage::Cforall
     394                new ast::ListInit( location, std::move( inits ), std::move( dsigs ) )
    437395        );
    438396}
  • src/ControlStruct/ExceptTranslateNew.cpp

    r12df6fe r4520b77e  
    3232        }
    3333
    34 class TranslateThrowsCore : public ast::WithGuards {
     34class TranslateThrowsCore final : public ast::WithGuards {
    3535        const ast::ObjectDecl * terminateHandlerExcept;
    3636        enum Context { NoHandler, TerHandler, ResHandler } currentContext;
     
    136136
    137137
    138 class TryMutatorCore {
     138class TryMutatorCore final {
    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),
    193                 nullptr, //init
    194                 ast::Storage::Classes{},
    195                 ast::Linkage::Cforall
     192                new ast::BasicType( ast::BasicType::SignedInt )
    196193                );
    197194}
     
    203200                location,
    204201                "__exception_inst",
    205                 new ast::PointerType(
    206                         new ast::StructInstType( except_decl )
    207                         ),
    208                 nullptr, //init
    209                 ast::Storage::Classes{},
    210                 ast::Linkage::Cforall
     202                new ast::PointerType( new ast::StructInstType( except_decl ) )
    211203                );
    212204}
  • src/ControlStruct/LabelFixer.cc

    r12df6fe r4520b77e  
    119119
    120120// Builds a table that maps a label to its defining statement.
    121 std::map<Label, Statement * > * LabelFixer::resolveJumps() throw ( SemanticErrorException ) {
     121std::map<Label, Statement * > * LabelFixer::resolveJumps() {
    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

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

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

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

    r12df6fe r4520b77e  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Jun 29 21:45:53 2016
    13 // Update Count     : 14
     11// Last Modified By : Andrew Beach
     12// Last Modified On : Wed Sep 14  9:24:00 2022
     13// Update Count     : 15
    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
    8596                /// Checks a parameter list for inclusion of polymorphic parameters; will substitute according to env if present
    8697                bool includesPolyParams( std::list< Expression* >& params, const TypeSubstitution *env ) {
     
    198209                }
    199210                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;
    200231        }
    201232
     
    378409                inline D* as( B* p ) { return reinterpret_cast<D*>(p); }
    379410
     411                template<typename D, typename B>
     412                inline D const * as( B const * p ) {
     413                        return reinterpret_cast<D const *>( p );
     414                }
     415
    380416                /// Flattens a declaration list
    381417                template<typename Output>
     
    391427                        for ( Type* ty : src ) {
    392428                                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 );
    393436                        }
    394437                }
     
    409452                                // if ( is<VoidType>( aparam->get_type() ) || is<VoidType>( bparam->get_type() ) ) continue;
    410453                                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                                }
    411479                        }
    412480
     
    505573        }
    506574
     575bool 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
    507687        namespace {
    508688                // temporary hack to avoid re-implementing anything related to TyVarMap
  • src/GenPoly/GenPoly.h

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

    r12df6fe r4520b77e  
    1919
    2020class Declaration;
     21namespace ast {
     22        class TranslationUnit;
     23}
    2124
    2225namespace GenPoly {
    23         /// Replaces all generic types that have static layout with concrete instantiations.
    24         /// Types with concrete values for otype parameters will be template-expanded, while
    25         /// dtype and ftype parameters will be replaced by the appropriate void type.
    26         void instantiateGeneric( std::list< Declaration* > &translationUnit );
     26/// Replaces all generic types that have static layout with concrete
     27/// instantiations. Types with concrete values for otype parameters will be
     28/// template-expanded, while dtype and ftype parameters will be replaced by
     29/// the appropriate void type.
     30void instantiateGeneric( std::list< Declaration* > &translationUnit );
     31void instantiateGeneric( ast::TranslationUnit & translationUnit );
    2732} // namespace GenPoly
    2833
  • src/GenPoly/ScrubTyVars.cc

    r12df6fe r4520b77e  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Mar 16 15:44:27 2017
    13 // Update Count     : 3
     11// Last Modified By : Andrew Beach
     12// Last Modified On : Fri Aug 19 16:10:00 2022
     13// Update Count     : 4
    1414//
    1515
    1616#include <utility>                      // for pair
    1717
     18#include "AST/Pass.hpp"
    1819#include "GenPoly.h"                    // for mangleType, TyVarMap, alignof...
    1920#include "GenPoly/ErasableScopedMap.h"  // for ErasableScopedMap<>::const_it...
    2021#include "ScrubTyVars.h"
     22#include "SymTab/Mangler.h"             // for mangle, typeMode
    2123#include "SynTree/Declaration.h"        // for TypeDecl, TypeDecl::Data, Typ...
    2224#include "SynTree/Expression.h"         // for Expression (ptr only), NameExpr
     
    112114                return pointer;
    113115        }
     116
     117namespace {
     118
     119enum class ScrubMode {
     120        FromMap,
     121        DynamicFromMap,
     122        All,
     123};
     124
     125struct 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
     147private:
     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
     185ast::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
     217ast::Type const * ScrubTypeVars::postvisit( ast::StructInstType const * type ) {
     218        return postvisitAggregateType( type );
     219}
     220
     221ast::Type const * ScrubTypeVars::postvisit( ast::UnionInstType const * type ) {
     222        return postvisitAggregateType( type );
     223}
     224
     225ast::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
     235ast::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
     245ast::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
     255const 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
     269template<>
     270ast::Node const * scrubAllTypeVars<ast::Node>( const ast::Node * target ) {
     271        return scrubTypeVarsBase( target, ScrubMode::All, nullptr );
     272}
     273
    114274} // namespace GenPoly
    115275
  • src/GenPoly/ScrubTyVars.h

    r12df6fe r4520b77e  
    99// Author           : Richard C. Bilson
    1010// Created On       : Mon May 18 07:44:20 2015
    11 // Last Modified By : Peter A. Buhr
    12 // Last Modified On : Sat Jul 22 09:21:47 2017
    13 // Update Count     : 2
     11// Last Modified By : Andrew Beach
     12// Last Modified On : Fri Aug 19 14:14:00 2022
     13// Update Count     : 3
    1414//
    1515
     
    1818#include <cassert>            // for assert
    1919
     20#include "AST/Fwd.hpp"        // for Node
    2021#include "Common/PassVisitor.h"
    2122#include "GenPoly.h"          // for TyVarMap, isPolyType, isDynType
     
    108109        }
    109110
     111/// For all polymorphic types, replaces generic types, with the appropriate
     112/// void type, and sizeof/alignof expressions with the proper variable.
     113template<typename node_t>
     114node_t const * scrubAllTypeVars( node_t const * target ) {
     115        return strict_dynamic_cast<node_t const *>( scrubAllTypeVars<ast::Node>( target ) );
     116}
     117
     118template<>
     119ast::Node const * scrubAllTypeVars<ast::Node>( const ast::Node * target );
     120
    110121} // namespace GenPoly
    111122
  • src/GenPoly/Specialize.h

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

    r12df6fe r4520b77e  
    55// file "LICENCE" distributed with Cforall.
    66//
    7 // SpecializeNew.cpp --
     7// SpecializeNew.cpp -- Generate thunks to specialize polymorphic functions.
    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         //}
    208203        return mut;
    209204}
     
    227222}
    228223
    229 // Restructures the arguments to match the structure of the formal parameters
    230 // of the actual function. [begin, end) are the exploded arguments.
    231 template<typename Iterator, typename OutIterator>
    232 void structureArg( const CodeLocation & location, const ast::Type * type,
    233                 Iterator & begin, Iterator end, OutIterator out ) {
    234         if ( auto tuple = dynamic_cast<const ast::TupleType *>( type ) ) {
    235                 std::vector<ast::ptr<ast::Expr>> exprs;
    236                 for ( const ast::Type * t : *tuple ) {
    237                         structureArg( location, t, begin, end, std::back_inserter( exprs ) );
    238                 }
    239                 *out++ = new ast::TupleExpr( location, std::move( exprs ) );
    240         } else {
    241                 assertf( begin != end, "reached the end of the arguments while structuring" );
    242                 *out++ = *begin++;
    243         }
    244 }
    245 
    246 #if 0
     224// Restructures arguments to match the structure of the formal parameters
     225// of the actual function. Returns the next structured argument.
    247226template<typename Iterator>
    248227const ast::Expr * structureArg(
    249228                const CodeLocation& location, const ast::ptr<ast::Type> & type,
    250229                Iterator & begin, const Iterator & end ) {
    251         if ( auto tuple = type->as<ast::TupleType>() ) {
     230        if ( auto tuple = type.as<ast::TupleType>() ) {
    252231                std::vector<ast::ptr<ast::Expr>> exprs;
    253                 for ( const ast::Type * t : *tuple ) {
     232                for ( const ast::ptr<ast::Type> & t : *tuple ) {
    254233                        exprs.push_back( structureArg( location, t, begin, end ) );
    255234                }
     
    260239        }
    261240}
    262 #endif
    263 
    264 namespace {
    265         struct TypeInstFixer : public ast::WithShortCircuiting {
    266                 std::map<const ast::TypeDecl *, std::pair<int, int>> typeMap;
    267 
    268                 void previsit(const ast::TypeDecl *) { visit_children = false; }
    269                 const ast::TypeInstType * postvisit(const ast::TypeInstType * typeInst) {
    270                         if (typeMap.count(typeInst->base)) {
    271                                 ast::TypeInstType * newInst = mutate(typeInst);
    272                                 newInst->expr_id = typeMap[typeInst->base].first;
    273                                 newInst->formal_usage = typeMap[typeInst->base].second;
    274                                 return newInst;
    275                         }
    276                         return typeInst;
    277                 }
    278         };
    279 }
     241
     242struct 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};
    280257
    281258const ast::Expr * SpecializeCore::createThunkFunction(
     
    291268                // Must replace only occurrences of type variables
    292269                // that occure free in the thunk's type.
    293                 //ast::TypeSubstitution::ApplyResult<ast::FunctionType>
    294                 //      typeSubs->applyFree( newType );
    295270                auto result = typeSubs->applyFree( newType );
    296271                newType = result.node.release();
     
    300275        using DeclVector = std::vector<ast::ptr<ast::TypeDecl>>;
    301276
    302         //const std::string & thunkName = thunkNamer.newName();
    303         //UniqueName paramNamer(thunkName + "Param");
    304277        UniqueName paramNamer( paramPrefix );
    305278
    306         //auto toParamDecl = [&location, &paramNamer]( const ast::Type * type ) {
    307         //      return new ast::ObjectDecl(
    308         //              location, paramNamer.newName(), ast::deepCopy( type ) );
    309         //};
    310 
    311279        // Create new thunk with same signature as formal type.
    312 
    313         // std::map<const ast::TypeDecl *, std::pair<int, int>> typeMap;
    314280        ast::Pass<TypeInstFixer> fixer;
    315281        for (const auto & kv : newType->forall) {
    316282                if (fixer.core.typeMap.count(kv->base)) {
    317                         std::cerr << location << ' ' << kv->base->name << ' ' << kv->expr_id << '_' << kv->formal_usage << ','
    318                         << fixer.core.typeMap[kv->base].first << '_' << fixer.core.typeMap[kv->base].second << std::endl;
     283                        std::cerr << location << ' ' << kv->base->name
     284                                << ' ' << kv->expr_id << '_' << kv->formal_usage
     285                                << ',' << fixer.core.typeMap[kv->base].first
     286                                << '_' << fixer.core.typeMap[kv->base].second << std::endl;
    319287                        assertf(false, "multiple formals in specialize");
    320288                }
     
    322290                        fixer.core.typeMap[kv->base] = std::make_pair(kv->expr_id, kv->formal_usage);
    323291                }
    324         } 
     292        }
    325293
    326294        ast::CompoundStmt * thunkBody = new ast::CompoundStmt( location );
     
    345313                );
    346314
    347         // thunkFunc->accept(fixer);
    348315        thunkFunc->fixUniqueId();
    349 
    350 
    351316
    352317        // Thunks may be generated and not used, avoid them.
     
    375340                // Name each thunk parameter and explode it.
    376341                // These are then threaded back into the actual function call.
    377                 //param->name = paramNamer.newName();
    378342                ast::DeclWithType * mutParam = ast::mutate( param.get() );
    379                 // - Should be renamed earlier. -
    380                 //mutParam->name = paramNamer.newName();
    381343                explodeSimple( location, new ast::VariableExpr( location, mutParam ),
    382344                        std::back_inserter( args ) );
     
    388350                argBegin = args.begin(), argEnd = args.end();
    389351        for ( const auto & actualArg : actualType->params ) {
    390                 structureArg( location, actualArg.get(), argBegin, argEnd,
    391                         std::back_inserter( app->args ) );
     352                app->args.push_back(
     353                        structureArg( location, actualArg.get(), argBegin, argEnd ) );
    392354        }
    393355        assertf( argBegin == argEnd, "Did not structure all arguments." );
     
    469431        // Create thunks for the inferred parameters.
    470432        // This is not needed for intrinsic calls, because they aren't
    471         // actually passed
    472         //
    473         // need to handle explicit params before inferred params so that
    474         // explicit params do not recieve a changed set of inferParams (and
    475         // change them again) alternatively, if order starts to matter then
    476         // copy appExpr's inferParams and pass them to handleExplicitParams.
     433        // actually passed to the function. It needs to handle explicit params
     434        // before inferred params so that explicit params do not recieve a
     435        // changed set of inferParams (and change them again).
     436        // Alternatively, if order starts to matter then copy expr's inferParams
     437        // and pass them to handleExplicitParams.
    477438        ast::ApplicationExpr * mut = handleExplicitParams( expr );
    478439        if ( !mut->inferred.hasParams() ) {
     
    500461        if ( specialized != expr->arg ) {
    501462                // Assume that the specialization incorporates the cast.
    502                 std::cerr << expr <<std::endl;
    503463                return specialized;
    504464        } else {
  • src/GenPoly/module.mk

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

    r12df6fe r4520b77e  
    595595                if ( arg && isIntrinsicCallExpr( dtor ) ) {
    596596                        return new ast::CommaExpr(loc, arg, new ast::VariableExpr(loc, ret ) );
    597                         // return;
    598597                }
    599598
     
    654653                if ( ! result->isVoid() ) {
    655654                        static UniqueName retNamer("_tmp_cp_ret");
    656                         // result = result->clone();
    657655                        auto subResult = env->apply( result ).node;
    658656                        auto ret = new ast::ObjectDecl(loc, retNamer.newName(), subResult, nullptr );
     
    833831                        }
    834832
    835                         // stmtsToAddBefore.splice( stmtsToAddBefore.end(), fixer.pass.stmtsToAddBefore );
    836                         // stmtsToAddAfter.splice( stmtsToAddAfter.end(), fixer.pass.stmtsToAddAfter );
    837833                        unqMap[mutExpr->id] = mutExpr;
    838834                } else {
     
    13491345                auto tmp = new ast::ObjectDecl(loc, tempNamer.newName(), callExpr->args.front()->result );
    13501346                declsToAddBefore.push_back( tmp );
    1351                 // delete ctorExpr;
    13521347
    13531348                // build assignment and replace constructor's first argument with new temporary
  • src/InitTweak/InitTweak.cc

    r12df6fe r4520b77e  
    2727#include "AST/Stmt.hpp"
    2828#include "AST/Type.hpp"
     29#include "CodeGen/OperatorTable.h" // for isConstructor, isDestructor, isCto...
    2930#include "Common/PassVisitor.h"
    3031#include "Common/SemanticError.h"  // for SemanticError
     
    770771                        std::list< Expression * > callExprs;
    771772                        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                 if ( getPointerBase( type ) ) return type;
    994                 else return nullptr;
     993                return getPointerBase( type ) ? type : nullptr;
    995994        }
    996995
     
    10141013                                src = new AddressExpr( src );
    10151014                        }
    1016                         // src = new CastExpr( src, new ReferenceType( noQualifiers, src->result->stripReferences()->clone() ) );
    10171015                }
    10181016                return new ApplicationExpr( VariableExpr::functionPointer( assign ), { dst, src } );
     
    11671165        }
    11681166
    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 
    11751167        const FunctionDecl * isCopyFunction( const Declaration * decl, const std::string & fname ) {
    11761168                const FunctionDecl * function = dynamic_cast< const FunctionDecl * >( decl );
     
    11921184
    11931185bool isAssignment( const ast::FunctionDecl * decl ) {
    1194         return isAssignment( decl->name ) && isCopyFunction( decl );
     1186        return CodeGen::isAssignment( decl->name ) && isCopyFunction( decl );
    11951187}
    11961188
    11971189bool isDestructor( const ast::FunctionDecl * decl ) {
    1198         return isDestructor( decl->name );
     1190        return CodeGen::isDestructor( decl->name );
    11991191}
    12001192
    12011193bool isDefaultConstructor( const ast::FunctionDecl * decl ) {
    1202         return isConstructor( decl->name ) && 1 == decl->params.size();
     1194        return CodeGen::isConstructor( decl->name ) && 1 == decl->params.size();
    12031195}
    12041196
    12051197bool isCopyConstructor( const ast::FunctionDecl * decl ) {
    1206         return isConstructor( decl->name ) && 2 == decl->params.size();
     1198        return CodeGen::isConstructor( decl->name ) && 2 == decl->params.size();
    12071199}
    12081200
     
    12221214        }
    12231215        const FunctionDecl * isDestructor( const Declaration * decl ) {
    1224                 if ( isDestructor( decl->name ) ) {
     1216                if ( CodeGen::isDestructor( decl->name ) ) {
    12251217                        return dynamic_cast< const FunctionDecl * >( decl );
    12261218                }
     
    12281220        }
    12291221        const FunctionDecl * isDefaultConstructor( const Declaration * decl ) {
    1230                 if ( isConstructor( decl->name ) ) {
     1222                if ( CodeGen::isConstructor( decl->name ) ) {
    12311223                        if ( const FunctionDecl * func = dynamic_cast< const FunctionDecl * >( decl ) ) {
    12321224                                if ( func->type->parameters.size() == 1 ) {
     
    12491241        static const char * const tlsd_section = ".tdata" ASM_COMMENT;
    12501242        void addDataSectionAttribute( ObjectDecl * objDecl ) {
    1251                 const bool is_tls = objDecl->get_storageClasses().is_threadlocal;
     1243                const bool is_tls = objDecl->get_storageClasses().is_threadlocal_any();
    12521244                const char * section = is_tls ? tlsd_section : data_section;
    12531245                objDecl->attributes.push_back(new Attribute("section", {
     
    12571249
    12581250        void addDataSectionAttribute( ast::ObjectDecl * objDecl ) {
    1259                 const bool is_tls = objDecl->storage.is_threadlocal;
     1251                const bool is_tls = objDecl->storage.is_threadlocal_any();
    12601252                const char * section = is_tls ? tlsd_section : data_section;
    12611253                objDecl->attributes.push_back(new ast::Attribute("section", {
  • src/Makefile.am

    r12df6fe r4520b77e  
    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++14 $(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++17 $(TCMALLOCFLAG)
    7474AM_LDFLAGS  = @HOST_FLAGS@ -Xlinker -export-dynamic
    7575ARFLAGS     = cr
  • src/Parser/DeclarationNode.cc

    r12df6fe r4520b77e  
    1010// Created On       : Sat May 16 12:34:05 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed Jul 14 17:36:57 2021
    13 // Update Count     : 1154
     12// Last Modified On : Mon Aug  8 17:07:00 2022
     13// Update Count     : 1185
    1414//
    1515
     
    128128        if ( name ) {
    129129                os << *name << ": ";
    130         } else {
    131                 os << "unnamed: ";
    132130        } // if
    133131
     
    154152                initializer->printOneLine( os );
    155153                os << " maybe constructed? " << initializer->get_maybeConstructed();
    156 
    157         } // if
     154        } // if
     155
     156        for ( Attribute * attr: reverseIterate( attributes ) ) {
     157                os << string( indent + 2, ' ' ) << "attr " << attr->name.c_str();
     158        } // for
    158159
    159160        os << endl;
     
    243244        newnode->type = new TypeData( TypeData::Aggregate );
    244245        newnode->type->aggregate.kind = kind;
    245         newnode->type->aggregate.name =  name == nullptr ? new string( DeclarationNode::anonymous.newName() ) : name;
     246        newnode->type->aggregate.name = name == nullptr ? new string( DeclarationNode::anonymous.newName() ) : name;
    246247        newnode->type->aggregate.actuals = actuals;
    247248        newnode->type->aggregate.fields = fields;
     
    262263        newnode->type->enumeration.typed = typed;
    263264        if ( base && base->type)  {
    264                 newnode->type->base = base->type;       
     265                newnode->type->base = base->type;
    265266        } // if
    266267
     
    504505                        } // for
    505506                        // src is the new item being added and has a single bit
    506                 } else if ( ! src->storageClasses.is_threadlocal ) { // conflict ?
     507                } else if ( ! src->storageClasses.is_threadlocal_any() ) { // conflict ?
    507508                        appendError( error, string( "conflicting " ) + Type::StorageClassesNames[storageClasses.ffs()] +
    508509                                                 " & " + Type::StorageClassesNames[src->storageClasses.ffs()] );
     
    518519        storageClasses |= q->storageClasses;
    519520
    520         for ( Attribute *attr: reverseIterate( q->attributes ) ) {
     521        for ( Attribute * attr: reverseIterate( q->attributes ) ) {
    521522                attributes.push_front( attr->clone() );
    522523        } // for
     
    683684        } // if
    684685        delete o;
     686
    685687        return this;
    686688}
  • src/Parser/TypeData.cc

    r12df6fe r4520b77e  
    99// Author           : Rodolfo G. Esteves
    1010// Created On       : Sat May 16 15:12:51 2015
    11 // Last Modified By : Henry Xue
    12 // Last Modified On : Tue Jul 20 04:10:50 2021
    13 // Update Count     : 673
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Tue May 10 22:36:52 2022
     13// Update Count     : 677
    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 ) { // basic type
    286                         assert( basictype != DeclarationNode::NoBasicType );
    287                         os << DeclarationNode::basicTypeNames[ basictype ] << " ";
    288                 } else {                                                                                // complex type
    289                         // handle double _Complex
    290                         if ( basictype != DeclarationNode::NoBasicType ) os << DeclarationNode::basicTypeNames[ basictype ] << " ";
    291                         os << DeclarationNode::complexTypeNames[ complextype ] << " ";
    292                 } // if
     285                if ( complextype != DeclarationNode::NoComplexType ) os << DeclarationNode::complexTypeNames[ complextype ] << " ";
     286                if ( basictype != DeclarationNode::NoBasicType ) os << DeclarationNode::basicTypeNames[ basictype ] << " ";
    293287                break;
    294288          case Pointer:
     
    437431                        __attribute__((fallthrough));
    438432                #endif
     433                // FALL THROUGH
    439434          case Typeof:
    440435                os << "type-of expression ";
     
    442437                        typeexpr->print( os, indent + 2 );
    443438                } // if
     439                break;
     440          case Vtable:
     441                os << "vtable";
    444442                break;
    445443          case Builtin:
  • src/Parser/TypeData.h

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

    r12df6fe r4520b77e  
    1010// Created On       : Sat May 16 15:20:13 2015
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Wed May 19 08:30:14 2021
    13 // Update Count     : 262
     12// Last Modified On : Tue Feb 15 08:27:24 2022
     13// Update Count     : 275
    1414//
    1515
     
    1818#include <cassert>                                                                              // for assert
    1919#include <iostream>
     20using namespace std;
    2021
    2122#if 0
     
    2829
    2930debugPrint(
    30 static const char *kindName( int kind ) {
    31         switch ( kind ) {
    32           case IDENTIFIER: return "identifier";
    33           case TYPEDIMname: return "typedim";
    34           case TYPEDEFname: return "typedef";
    35           case TYPEGENname: return "typegen";
    36           default:
    37                 cerr << "Error: cfa-cpp internal error, invalid kind of identifier" << endl;
    38                 abort();
    39         } // switch
    40 } // kindName
    41 )
     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);
    4243
    4344TypedefTable::~TypedefTable() {
     
    8081
    8182void TypedefTable::addToScope( const string & identifier, int kind, const char * locn __attribute__((unused)) ) {
    82         auto scope = kindTable.currentScope();
     83        KindTable::size_type scope = kindTable.currentScope();
    8384        debugPrint( cerr << "Adding current at " << locn << " " << identifier << " as " << kindName( kind ) << " scope " << scope << endl );
    8485        kindTable.insertAt( scope, identifier, kind );
     
    8687
    8788void TypedefTable::addToEnclosingScope( const string & identifier, int kind, const char * locn __attribute__((unused)) ) {
    88         auto scope = kindTable.currentScope() - 1 - kindTable.getNote( kindTable.currentScope() - 1 ).level;
    89 //      auto scope = level - kindTable.getNote( kindTable.currentScope() - 1 ).level;
     89        KindTable::size_type scope = kindTable.currentScope() - 1 - kindTable.getNote( kindTable.currentScope() - 1 ).level;
     90//      size_type scope = level - kindTable.getNote( kindTable.currentScope() - 1 ).level;
    9091        debugPrint( cerr << "Adding enclosing at " << locn << " " << identifier << " as " << kindName( kind ) << " scope " << scope << " level " << level << " note " << kindTable.getNote( kindTable.currentScope() - 1 ).level << endl );
    91         auto ret = kindTable.insertAt( scope, identifier, kind );
     92        pair< KindTable::iterator, bool > ret = kindTable.insertAt( scope, identifier, kind );
    9293        if ( ! ret.second ) ret.first->second = kind;           // exists => update
    9394} // TypedefTable::addToEnclosingScope
  • src/Parser/lex.ll

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

    r12df6fe r4520b77e  
    1010// Created On       : Sat Sep  1 20:22:55 2001
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Fri Jul  1 15:35:08 2022
    13 // Update Count     : 5405
     12// Last Modified On : Sat Aug 27 13:21:28 2022
     13// Update Count     : 5661
    1414//
    1515
     
    5858
    5959// lex uses __null in a boolean context, it's fine.
     60#pragma GCC diagnostic ignored "-Wpragmas"
    6061#pragma GCC diagnostic ignored "-Wparentheses-equality"
     62#pragma GCC diagnostic warning "-Wpragmas"
    6163
    6264extern DeclarationNode * parseTree;
     
    197199} // fieldDecl
    198200
     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
     208ForCtrl * 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
    199222ForCtrl * forCtrl( ExpressionNode * type, string * index, ExpressionNode * start, enum OperKinds compop, ExpressionNode * comp, ExpressionNode * inc ) {
    200223        ConstantExpr * constant = dynamic_cast<ConstantExpr *>(type->expr.get());
     
    206229                distAttr( DeclarationNode::newTypeof( type, true ), DeclarationNode::newName( index )->addInitializer( new InitializerNode( start ) ) ),
    207230                // NULL comp/inc => leave blank
    208                 comp ? new ExpressionNode( build_binary_val( compop, new ExpressionNode( build_varref( new string( *index ) ) ), comp ) ) : 0,
     231                comp ? new ExpressionNode( build_binary_val( compop, new ExpressionNode( build_varref( new string( *index ) ) ), comp ) ) : nullptr,
    209232                inc ? new ExpressionNode( build_binary_val( compop == OperKinds::LThan || compop == OperKinds::LEThan ? // choose += or -= for upto/downto
    210                                                         OperKinds::PlusAssn : OperKinds::MinusAssn, new ExpressionNode( build_varref( new string( *index ) ) ), inc ) ) : 0 );
     233                                                        OperKinds::PlusAssn : OperKinds::MinusAssn, new ExpressionNode( build_varref( new string( *index ) ) ), inc ) ) : nullptr );
    211234} // forCtrl
    212235
     
    272295%token TYPEDEF
    273296%token EXTERN STATIC AUTO REGISTER
    274 %token THREADLOCAL                                                                              // C11
     297%token THREADLOCALGCC THREADLOCALC11                                            // GCC, C11
    275298%token INLINE FORTRAN                                                                   // C99, extension ISO/IEC 9899:1999 Section J.5.9(1)
    276299%token NORETURN                                                                                 // C11
     
    346369%type<ifctl> conditional_declaration
    347370%type<fctl> for_control_expression              for_control_expression_list
    348 %type<compop> inclexcl
     371%type<compop> updown updowneq downupdowneq
    349372%type<en> subrange
    350373%type<decl> asm_name_opt
     
    12391262iteration_statement:
    12401263        WHILE '(' ')' statement                                                         %prec THEN // CFA => while ( 1 )
    1241                 { $$ = new StatementNode( build_while( new CondCtl( nullptr, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ), maybe_build_compound( $4 ) ) ); }
     1264                { $$ = new StatementNode( build_while( new CondCtl( nullptr, NEW_ONE ), maybe_build_compound( $4 ) ) ); }
    12421265        | WHILE '(' ')' statement ELSE statement                        // CFA
    12431266                {
    1244                         $$ = new StatementNode( build_while( new CondCtl( nullptr, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ), maybe_build_compound( $4 ) ) );
     1267                        $$ = new StatementNode( build_while( new CondCtl( nullptr, NEW_ONE ), maybe_build_compound( $4 ) ) );
    12451268                        SemanticWarning( yylloc, Warning::SuperfluousElse, "" );
    12461269                }
     
    12501273                { $$ = new StatementNode( build_while( $3, maybe_build_compound( $5 ), $7 ) ); }
    12511274        | DO statement WHILE '(' ')' ';'                                        // CFA => do while( 1 )
    1252                 { $$ = new StatementNode( build_do_while( new ExpressionNode( build_constantInteger( *new string( "1" ) ) ), maybe_build_compound( $2 ) ) ); }
     1275                { $$ = new StatementNode( build_do_while( NEW_ONE, maybe_build_compound( $2 ) ) ); }
    12531276        | DO statement WHILE '(' ')' ELSE statement                     // CFA
    12541277                {
    1255                         $$ = new StatementNode( build_do_while( new ExpressionNode( build_constantInteger( *new string( "1" ) ) ), maybe_build_compound( $2 ) ) );
     1278                        $$ = new StatementNode( build_do_while( NEW_ONE, maybe_build_compound( $2 ) ) );
    12561279                        SemanticWarning( yylloc, Warning::SuperfluousElse, "" );
    12571280                }
     
    13041327                { $$ = new ForCtrl( $1, $2, $4 ); }
    13051328
    1306         | comma_expression                                                                      // CFA
    1307                 { $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), new ExpressionNode( build_constantInteger( *new string( "0" ) ) ),
    1308                                                 OperKinds::LThan, $1->clone(), new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); }
    1309         | '=' comma_expression                                                          // CFA
    1310                 { $$ = forCtrl( $2, new string( DeclarationNode::anonymous.newName() ), new ExpressionNode( build_constantInteger( *new string( "0" ) ) ),
    1311                                                 OperKinds::LEThan, $2->clone(), new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); }
    1312         | comma_expression inclexcl comma_expression            // CFA
    1313                 { $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), $1->clone(), $2, $3, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); }
    1314         | comma_expression inclexcl comma_expression '~' comma_expression // CFA
    1315                 { $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), $1->clone(), $2, $3, $5 ); }
    1316         | comma_expression ';'                                                          // CFA
    1317                 { $$ = forCtrl( new ExpressionNode( build_constantInteger( *new string( "0u" ) ) ), $1, nullptr, OperKinds::LThan, nullptr, nullptr ); }
     1329        | '@' ';' comma_expression                                                      // CFA, empty loop-index
     1330                { $$ = new ForCtrl( (ExpressionNode *)nullptr, $3, nullptr ); }
     1331        | '@' ';' comma_expression ';' comma_expression         // CFA, empty loop-index
     1332                { $$ = new ForCtrl( (ExpressionNode *)nullptr, $3, $5 ); }
     1333
     1334        | comma_expression                                                                      // CFA, anonymous loop-index
     1335                { $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), NEW_ZERO, OperKinds::LThan, $1->clone(), NEW_ONE ); }
     1336        | downupdowneq comma_expression                                         // CFA, anonymous loop-index
     1337                { $$ = forCtrl( $2, new string( DeclarationNode::anonymous.newName() ), UPDOWN( $1, NEW_ZERO, $2->clone() ), $1, UPDOWN( $1, $2->clone(), NEW_ZERO ), NEW_ONE ); }
     1338
     1339        | comma_expression updowneq comma_expression            // CFA, anonymous loop-index
     1340                { $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), UPDOWN( $2, $1->clone(), $3 ), $2, UPDOWN( $2, $3->clone(), $1->clone() ), NEW_ONE ); }
     1341        | '@' updowneq comma_expression                                         // CFA, anonymous loop-index
     1342                {
     1343                        if ( $2 == OperKinds::LThan || $2 == OperKinds::LEThan ) { SemanticError( yylloc, MISSING_LOW ); $$ = nullptr; }
     1344                        else $$ = forCtrl( $3, new string( DeclarationNode::anonymous.newName() ), $3->clone(), $2, nullptr, NEW_ONE );
     1345                }
     1346        | comma_expression updowneq '@'                                         // CFA, anonymous loop-index
     1347                {
     1348                        if ( $2 == OperKinds::LThan || $2 == OperKinds::LEThan ) { SemanticError( yylloc, MISSING_ANON_FIELD ); $$ = nullptr; }
     1349                        else { SemanticError( yylloc, MISSING_HIGH ); $$ = nullptr; }
     1350                }
     1351        | comma_expression updowneq comma_expression '~' comma_expression // CFA, anonymous loop-index
     1352                { $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), UPDOWN( $2, $1->clone(), $3 ), $2, UPDOWN( $2, $3->clone(), $1->clone() ), $5 ); }
     1353        | '@' updowneq comma_expression '~' comma_expression // CFA, anonymous loop-index
     1354                {
     1355                        if ( $2 == OperKinds::LThan || $2 == OperKinds::LEThan ) { SemanticError( yylloc, MISSING_LOW ); $$ = nullptr; }
     1356                        else $$ = forCtrl( $3, new string( DeclarationNode::anonymous.newName() ), $3->clone(), $2, nullptr, $5 );
     1357                }
     1358        | comma_expression updowneq '@' '~' comma_expression // CFA, anonymous loop-index
     1359                {
     1360                        if ( $2 == OperKinds::LThan || $2 == OperKinds::LEThan ) { SemanticError( yylloc, MISSING_ANON_FIELD ); $$ = nullptr; }
     1361                        else { SemanticError( yylloc, MISSING_HIGH ); $$ = nullptr; }
     1362                }
     1363        | comma_expression updowneq comma_expression '~' '@' // CFA, error
     1364                { SemanticError( yylloc, MISSING_ANON_FIELD ); $$ = nullptr; }
     1365        | '@' updowneq '@'                                                                      // CFA, error
     1366                { SemanticError( yylloc, MISSING_ANON_FIELD ); $$ = nullptr; }
     1367        | '@' updowneq comma_expression '~' '@'                         // CFA, error
     1368                { SemanticError( yylloc, MISSING_ANON_FIELD ); $$ = nullptr; }
     1369        | comma_expression updowneq '@' '~' '@'                         // CFA, error
     1370                { SemanticError( yylloc, MISSING_ANON_FIELD ); $$ = nullptr; }
     1371        | '@' updowneq '@' '~' '@'                                                      // CFA, error
     1372                { SemanticError( yylloc, MISSING_ANON_FIELD ); $$ = nullptr; }
     1373
    13181374        | comma_expression ';' comma_expression                         // CFA
    1319                 { $$ = forCtrl( $3, $1, new ExpressionNode( build_constantInteger( *new string( "0" ) ) ),
    1320                                                 OperKinds::LThan, $3->clone(), new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); }
    1321         | comma_expression ';' '=' comma_expression                     // CFA
    1322                 { $$ = forCtrl( $4, $1, new ExpressionNode( build_constantInteger( *new string( "0" ) ) ),
    1323                                                 OperKinds::LEThan, $4->clone(), new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); }
    1324         | comma_expression ';' comma_expression inclexcl comma_expression // CFA
    1325                 { $$ = forCtrl( $3, $1, $3->clone(), $4, $5, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); }
    1326         | comma_expression ';' comma_expression inclexcl comma_expression '~' comma_expression // CFA
    1327                 { $$ = forCtrl( $3, $1, $3->clone(), $4, $5, $7 ); }
     1375                { $$ = forCtrl( $3, $1, NEW_ZERO, OperKinds::LThan, $3->clone(), NEW_ONE ); }
     1376        | comma_expression ';' downupdowneq comma_expression // CFA
     1377                { $$ = forCtrl( $4, $1, UPDOWN( $3, NEW_ZERO, $4->clone() ), $3, UPDOWN( $3, $4->clone(), NEW_ZERO ), NEW_ONE ); }
     1378
     1379        | comma_expression ';' comma_expression updowneq comma_expression // CFA
     1380                { $$ = forCtrl( $3, $1, UPDOWN( $4, $3->clone(), $5 ), $4, UPDOWN( $4, $5->clone(), $3->clone() ), NEW_ONE ); }
     1381        | comma_expression ';' '@' updowneq comma_expression // CFA
     1382                {
     1383                        if ( $4 == OperKinds::LThan || $4 == OperKinds::LEThan ) { SemanticError( yylloc, MISSING_LOW ); $$ = nullptr; }
     1384                        else $$ = forCtrl( $5, $1, $5->clone(), $4, nullptr, NEW_ONE );
     1385                }
     1386        | comma_expression ';' comma_expression updowneq '@' // CFA
     1387                {
     1388                        if ( $4 == OperKinds::GThan || $4 == OperKinds::GEThan ) { SemanticError( yylloc, MISSING_HIGH ); $$ = nullptr; }
     1389                        else if ( $4 == OperKinds::LEThan ) { SemanticError( yylloc, "Equality with missing high value is meaningless. Use \"~\"." ); $$ = nullptr; }
     1390                        else $$ = forCtrl( $3, $1, $3->clone(), $4, nullptr, NEW_ONE );
     1391                }
     1392        | comma_expression ';' '@' updowneq '@'                         // CFA, error
     1393                { SemanticError( yylloc, "Missing low/high value for up/down-to range so index is uninitialized." ); $$ = nullptr; }
     1394
     1395        | comma_expression ';' comma_expression updowneq comma_expression '~' comma_expression // CFA
     1396                { $$ = forCtrl( $3, $1, UPDOWN( $4, $3->clone(), $5 ), $4, UPDOWN( $4, $5->clone(), $3->clone() ), $7 ); }
     1397        | comma_expression ';' '@' updowneq comma_expression '~' comma_expression // CFA, error
     1398                {
     1399                        if ( $4 == OperKinds::LThan || $4 == OperKinds::LEThan ) { SemanticError( yylloc, MISSING_LOW ); $$ = nullptr; }
     1400                        else $$ = forCtrl( $5, $1, $5->clone(), $4, nullptr, $7 );
     1401                }
     1402        | comma_expression ';' comma_expression updowneq '@' '~' comma_expression // CFA
     1403                {
     1404                        if ( $4 == OperKinds::GThan || $4 == OperKinds::GEThan ) { SemanticError( yylloc, MISSING_HIGH ); $$ = nullptr; }
     1405                        else if ( $4 == OperKinds::LEThan ) { SemanticError( yylloc, "Equality with missing high value is meaningless. Use \"~\"." ); $$ = nullptr; }
     1406                        else $$ = forCtrl( $3, $1, $3->clone(), $4, nullptr, $7 );
     1407                }
     1408        | comma_expression ';' comma_expression updowneq comma_expression '~' '@' // CFA
     1409                { $$ = forCtrl( $3, $1, UPDOWN( $4, $3->clone(), $5 ), $4, UPDOWN( $4, $5->clone(), $3->clone() ), nullptr ); }
     1410        | comma_expression ';' '@' updowneq comma_expression '~' '@' // CFA, error
     1411                {
     1412                        if ( $4 == OperKinds::LThan || $4 == OperKinds::LEThan ) { SemanticError( yylloc, MISSING_LOW ); $$ = nullptr; }
     1413                        else $$ = forCtrl( $5, $1, $5->clone(), $4, nullptr, nullptr );
     1414                }
     1415        | comma_expression ';' comma_expression updowneq '@' '~' '@' // CFA
     1416                {
     1417                        if ( $4 == OperKinds::GThan || $4 == OperKinds::GEThan ) { SemanticError( yylloc, MISSING_HIGH ); $$ = nullptr; }
     1418                        else if ( $4 == OperKinds::LEThan ) { SemanticError( yylloc, "Equality with missing high value is meaningless. Use \"~\"." ); $$ = nullptr; }
     1419                        else $$ = forCtrl( $3, $1, $3->clone(), $4, nullptr, nullptr );
     1420                }
     1421        | comma_expression ';' '@' updowneq '@' '~' '@' // CFA
     1422                { SemanticError( yylloc, "Missing low/high value for up/down-to range so index is uninitialized." ); $$ = nullptr; }
     1423
     1424        | declaration comma_expression                                          // CFA
     1425                { $$ = forCtrl( $1, NEW_ZERO, OperKinds::LThan, $2, NEW_ONE ); }
     1426        | declaration downupdowneq comma_expression                     // CFA
     1427                { $$ = forCtrl( $1, UPDOWN( $2, NEW_ZERO, $3 ), $2, UPDOWN( $2, $3->clone(), NEW_ZERO ), NEW_ONE ); }
     1428
     1429        | declaration comma_expression updowneq comma_expression // CFA
     1430                { $$ = forCtrl( $1, UPDOWN( $3, $2->clone(), $4 ), $3, UPDOWN( $3, $4->clone(), $2->clone() ), NEW_ONE ); }
     1431        | declaration '@' updowneq comma_expression                     // CFA
     1432                {
     1433                        if ( $3 == OperKinds::LThan || $3 == OperKinds::LEThan ) { SemanticError( yylloc, MISSING_LOW ); $$ = nullptr; }
     1434                        else $$ = forCtrl( $1, $4, $3, nullptr, NEW_ONE );
     1435                }
     1436        | declaration comma_expression updowneq '@'                     // CFA
     1437                {
     1438                        if ( $3 == OperKinds::GThan || $3 == OperKinds::GEThan ) { SemanticError( yylloc, MISSING_HIGH ); $$ = nullptr; }
     1439                        else if ( $3 == OperKinds::LEThan ) { SemanticError( yylloc, "Equality with missing high value is meaningless. Use \"~\"." ); $$ = nullptr; }
     1440                        else $$ = forCtrl( $1, $2, $3, nullptr, NEW_ONE );
     1441                }
     1442
     1443        | declaration comma_expression updowneq comma_expression '~' comma_expression // CFA
     1444                { $$ = forCtrl( $1, UPDOWN( $3, $2, $4 ), $3, UPDOWN( $3, $4->clone(), $2->clone() ), $6 ); }
     1445        | declaration '@' updowneq comma_expression '~' comma_expression // CFA
     1446                {
     1447                        if ( $3 == OperKinds::LThan || $3 == OperKinds::LEThan ) { SemanticError( yylloc, MISSING_LOW ); $$ = nullptr; }
     1448                        else $$ = forCtrl( $1, $4, $3, nullptr, $6 );
     1449                }
     1450        | declaration comma_expression updowneq '@' '~' comma_expression // CFA
     1451                {
     1452                        if ( $3 == OperKinds::GThan || $3 == OperKinds::GEThan ) { SemanticError( yylloc, MISSING_HIGH ); $$ = nullptr; }
     1453                        else if ( $3 == OperKinds::LEThan ) { SemanticError( yylloc, "Equality with missing high value is meaningless. Use \"~\"." ); $$ = nullptr; }
     1454                        else $$ = forCtrl( $1, $2, $3, nullptr, $6 );
     1455                }
     1456        | declaration comma_expression updowneq comma_expression '~' '@' // CFA
     1457                { $$ = forCtrl( $1, UPDOWN( $3, $2, $4 ), $3, UPDOWN( $3, $4->clone(), $2->clone() ), nullptr ); }
     1458        | declaration '@' updowneq comma_expression '~' '@' // CFA
     1459                {
     1460                        if ( $3 == OperKinds::LThan || $3 == OperKinds::LEThan ) { SemanticError( yylloc, MISSING_LOW ); $$ = nullptr; }
     1461                        else $$ = forCtrl( $1, $4, $3, nullptr, nullptr );
     1462                }
     1463        | declaration comma_expression updowneq '@' '~' '@'     // CFA
     1464                {
     1465                        if ( $3 == OperKinds::GThan || $3 == OperKinds::GEThan ) { SemanticError( yylloc, MISSING_HIGH ); $$ = nullptr; }
     1466                        else if ( $3 == OperKinds::LEThan ) { SemanticError( yylloc, "Equality with missing high value is meaningless. Use \"~\"." ); $$ = nullptr; }
     1467                        else $$ = forCtrl( $1, $2, $3, nullptr, nullptr );
     1468                }
     1469        | declaration '@' updowneq '@' '~' '@'                          // CFA, error
     1470                { SemanticError( yylloc, "Missing low/high value for up/down-to range so index is uninitialized." ); $$ = nullptr; }
    13281471
    13291472        | comma_expression ';' TYPEDEFname                                      // CFA, array type
    13301473                {
    1331                         SemanticError( yylloc, "Array interator is currently unimplemented." ); $$ = nullptr;
    1332                         $$ = forCtrl( new ExpressionNode( build_varref( $3 ) ), $1, nullptr, OperKinds::Range, nullptr, nullptr );
    1333                 }
    1334 
    1335                 // There is a S/R conflicit if ~ and -~ are factored out.
    1336         | comma_expression ';' comma_expression '~' '@'         // CFA
    1337                 { $$ = forCtrl( $3, $1, $3->clone(), OperKinds::LThan, nullptr, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); }
    1338         | comma_expression ';' comma_expression ErangeDown '@' // CFA
    1339                 { $$ = forCtrl( $3, $1, $3->clone(), OperKinds::GThan, nullptr, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ); }
    1340         | comma_expression ';' comma_expression '~' '@' '~' comma_expression // CFA
    1341                 { $$ = forCtrl( $3, $1, $3->clone(), OperKinds::LThan, nullptr, $7 ); }
    1342         | comma_expression ';' comma_expression ErangeDown '@' '~' comma_expression // CFA
    1343                 { $$ = forCtrl( $3, $1, $3->clone(), OperKinds::GThan, nullptr, $7 ); }
    1344         | comma_expression ';' comma_expression '~' '@' '~' '@' // CFA
    1345                 { $$ = forCtrl( $3, $1, $3->clone(), OperKinds::LThan, nullptr, nullptr ); }
     1474                        SemanticError( yylloc, "Type iterator is currently unimplemented." ); $$ = nullptr;
     1475                        //$$ = forCtrl( new ExpressionNode( build_varref( $3 ) ), $1, nullptr, OperKinds::Range, nullptr, nullptr );
     1476                }
     1477        | comma_expression ';' downupdowneq TYPEDEFname         // CFA, array type
     1478                {
     1479                        if ( $3 == OperKinds::LEThan || $3 == OperKinds::GEThan ) { SemanticError( yylloc, "All enumation ranges are equal (all values). Remove \"=~\"." ); $$ = nullptr; }
     1480                        SemanticError( yylloc, "Type iterator is currently unimplemented." ); $$ = nullptr;
     1481                }
    13461482        ;
    13471483
    1348 inclexcl:
     1484downupdowneq:
     1485        ErangeDown
     1486                { $$ = OperKinds::GThan; }
     1487        | ErangeUpEq
     1488                { $$ = OperKinds::LEThan; }
     1489        | ErangeDownEq
     1490                { $$ = OperKinds::GEThan; }
     1491        ;
     1492
     1493updown:
    13491494        '~'
    13501495                { $$ = OperKinds::LThan; }
     1496        | ErangeDown
     1497                { $$ = OperKinds::GThan; }
     1498        ;
     1499
     1500updowneq:
     1501        updown
    13511502        | ErangeUpEq
    13521503                { $$ = OperKinds::LEThan; }
    1353         | ErangeDown
    1354                 { $$ = OperKinds::GThan; }
    13551504        | ErangeDownEq
    13561505                { $$ = OperKinds::GEThan; }
     
    19352084        | REGISTER
    19362085                { $$ = DeclarationNode::newStorageClass( Type::Register ); }
    1937         | THREADLOCAL                                                                           // C11
    1938                 { $$ = DeclarationNode::newStorageClass( Type::Threadlocal ); }
     2086        | THREADLOCALGCC                                                                                // GCC
     2087                { $$ = DeclarationNode::newStorageClass( Type::ThreadlocalGcc ); }
     2088        | THREADLOCALC11                                                                                // C11
     2089                { $$ = DeclarationNode::newStorageClass( Type::ThreadlocalC11 ); }
    19392090                // Put function specifiers here to simplify parsing rules, but separate them semantically.
    19402091        | INLINE                                                                                        // C99
  • src/ResolvExpr/CandidateFinder.cpp

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

    r12df6fe r4520b77e  
    15421542        }
    15431543
    1544 
    15451544        const ast::StaticAssertDecl * Resolver_new::previsit(
    15461545                const ast::StaticAssertDecl * assertDecl
     
    15541553        const PtrType * handlePtrType( const PtrType * type, const ResolveContext & context ) {
    15551554                if ( type->dimension ) {
    1556                         ast::ptr< ast::Type > sizeType = context.global.sizeType;
     1555                        const ast::Type * sizeType = context.global.sizeType.get();
    15571556                        ast::ptr< ast::Expr > dimension = findSingleExpression( type->dimension, sizeType, context );
    15581557                        assertf(dimension->env->empty(), "array dimension expr has nonempty env");
    15591558                        dimension.get_and_mutate()->env = nullptr;
    1560                         ast::mutate_field(
    1561                                 type, &PtrType::dimension,
    1562                                 dimension);
     1559                        ast::mutate_field( type, &PtrType::dimension, dimension );
    15631560                }
    15641561                return type;
  • src/SymTab/Autogen.cc

    r12df6fe r4520b77e  
    258258        }
    259259
    260         ///
     260        /// Given type T, generate type of default ctor/dtor, i.e. function type void (*) (T &).
    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));
     265                return new ast::FunctionDecl(loc, fname, std::move(typeParams), {dstParam}, {}, new ast::CompoundStmt(loc), {}, ast::Linkage::Cforall);
    266266        }
    267267
  • src/SynTree/Statement.cc

    r12df6fe r4520b77e  
    105105};
    106106
    107 BranchStmt::BranchStmt( Label target, Type type ) throw ( SemanticErrorException ) :
     107BranchStmt::BranchStmt( Label target, Type type ) :
    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 ) throw ( SemanticErrorException ) :
     115BranchStmt::BranchStmt( Expression * computedTarget, Type type ) :
    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 ) throw ( SemanticErrorException ) :
     213CaseStmt::CaseStmt( Expression * condition, const list<Statement *> & statements, bool deflt ) :
    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

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

    r12df6fe r4520b77e  
    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_local" };
     82const char * Type::StorageClassesNames[] = { "extern", "static", "auto", "register", "__thread", "_Thread_local" };
    8383const char * Type::QualifiersNames[] = { "const", "restrict", "volatile", "mutex", "_Atomic" };
    8484
  • src/SynTree/Type.h

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

    r12df6fe r4520b77e  
    99// Author           : Henry Xue
    1010// Created On       : Mon Aug 23 15:36:09 2021
    11 // Last Modified By : Henry Xue
    12 // Last Modified On : Mon Aug 23 15:36:09 2021
    13 // Update Count     : 1
     11// Last Modified By : Andrew Beach
     12// Last Modified On : Mon Aug 15 17:00:00 2022
     13// Update Count     : 3
    1414//
    1515
    1616#include "Tuples.h"
    1717
     18#include "AST/Pass.hpp"
     19#include "Common/ScopedMap.h"
     20
    1821namespace Tuples {
     22
    1923namespace {
    20         struct MemberTupleExpander final : public ast::WithShortCircuiting, public ast::WithVisitorRef< MemberTupleExpander > {
    21                 void previsit( const ast::UntypedMemberExpr * ) { visit_children = false; }
    22         const ast::Expr * postvisit( const ast::UntypedMemberExpr * memberExpr );
    23         };
    24         struct UniqueExprExpander final : public ast::WithDeclsToAdd<> {
    25                 const ast::Expr * postvisit( const ast::UniqueExpr * unqExpr );
    26                 std::map< int, ast::ptr<ast::Expr> > decls; // not vector, because order added may not be increasing order
    27         };
     24
     25struct 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
     30struct 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
     37const 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
     51const 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
     68const 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.
     103struct 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        }
     217private:
     218        ScopedMap< int, ast::StructDecl const * > typeMap;
     219        CodeLocation const * location = nullptr;
     220};
     221
     222ast::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
     256struct 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
    28263} // namespace
    29264
     
    32267}
    33268
    34 namespace {
    35         namespace {
    36                 /// given a expression representing the member and an expression representing the aggregate,
    37                 /// reconstructs a flattened UntypedMemberExpr with the right 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 
    73269void expandUniqueExpr( ast::TranslationUnit & translationUnit ) {
    74270        ast::Pass< UniqueExprExpander >::run( translationUnit );
    75271}
    76272
    77 namespace {
    78         const ast::Expr * UniqueExprExpander::postvisit( const ast::UniqueExpr * unqExpr ) {
    79                 const CodeLocation loc = unqExpr->location;
    80                 const int id = unqExpr->id;
    81 
    82                 // on first time visiting a unique expr with a particular ID, generate the expression that replaces all UniqueExprs with that ID,
    83                 // and lookup on subsequent hits. This ensures that all unique exprs with the same ID reference the same variable.
    84                 if ( ! decls.count( id ) ) {
    85                         ast::ptr< ast::Expr > assignUnq;
    86                         const ast::VariableExpr * var = unqExpr->var;
    87                         if ( unqExpr->object ) {
    88                                 // an object was generated to represent this unique expression -- it should be added to the list of declarations now
    89                                 declsToAddBefore.push_back( unqExpr->object.as< ast::Decl >() );
    90                                 // deep copy required due to unresolved issues with UniqueExpr
    91                                 assignUnq = ast::UntypedExpr::createAssign( loc, var, unqExpr->expr );
    92                         } else {
    93                                 const auto commaExpr = unqExpr->expr.strict_as< ast::CommaExpr >();
    94                                 assignUnq = commaExpr->arg1;
    95                         }
    96                         auto finished = new ast::ObjectDecl( loc, toString( "_unq", id, "_finished_" ), new ast::BasicType( ast::BasicType::Kind::Bool ),
    97                                 new ast::SingleInit( loc, ast::ConstantExpr::from_int( loc, 0 ) ), {}, ast::Linkage::Cforall );
    98                         declsToAddBefore.push_back( finished );
    99                         // (finished ? _unq_expr_N : (_unq_expr_N = <unqExpr->get_expr()>, finished = 1, _unq_expr_N))
    100                         // This pattern ensures that each unique expression is evaluated once, regardless of evaluation order of the generated C code.
    101                         auto assignFinished = ast::UntypedExpr::createAssign( loc, new ast::VariableExpr( loc, finished ),
    102                                 ast::ConstantExpr::from_int( loc, 1 ) );
    103                         auto condExpr = new ast::ConditionalExpr( loc, new ast::VariableExpr( loc, finished ), var,
    104                                 new ast::CommaExpr( loc, new ast::CommaExpr( loc, assignUnq, assignFinished ), var ) );
    105                         condExpr->result = var->result;
    106                         condExpr->env = unqExpr->env;
    107                         decls[id] = condExpr;
    108                 }
    109                 //delete unqExpr;
    110                 return ast::deepCopy(decls[id].get());
    111         }
    112 } // namespace
     273void expandTuples( ast::TranslationUnit & translationUnit ) {
     274        // These can't just be combined simply (there might be a way with work).
     275        ast::Pass<TupleMainExpander>::run( translationUnit );
     276        ast::Pass<TupleExprExpander>::run( translationUnit );
     277}
     278
    113279} // namespace Tuples
  • src/Tuples/Tuples.h

    r12df6fe r4520b77e  
    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 );
    4546
    4647        /// replaces UniqueExprs with a temporary variable and one call
  • src/Validate/Autogen.cpp

    r12df6fe r4520b77e  
    377377ast::ObjectDecl * FuncGenerator::dstParam() const {
    378378        return new ast::ObjectDecl( getLocation(), "_dst",
    379                 new ast::ReferenceType( ast::deepCopy( type ) ),
    380                 nullptr, {}, ast::Linkage::Cforall );
     379                new ast::ReferenceType( ast::deepCopy( type ) ) );
    381380}
    382381
    383382ast::ObjectDecl * FuncGenerator::srcParam() const {
    384383        return new ast::ObjectDecl( getLocation(), "_src",
    385                 ast::deepCopy( type ),
    386                 nullptr, {}, ast::Linkage::Cforall );
     384                ast::deepCopy( type ) );
    387385}
    388386
     
    436434                ast::ObjectDecl * param = new ast::ObjectDecl(
    437435                        getLocation(), member->name, paramType );
    438                 param->linkage = ast::Linkage::Cforall;
    439436                for ( auto & attr : member->attributes ) {
    440437                        if ( attr->isValidOnFuncParam() ) {
  • src/Virtual/ExpandCasts.cc

    r12df6fe r4520b77e  
    1010// Created On       : Mon Jul 24 13:59:00 2017
    1111// Last Modified By : Andrew Beach
    12 // Last Modified On : Fri Jul 31 10:29:00 2020
    13 // Update Count     : 4
     12// Last Modified On : Thu Aug 11 12:06:00 2022
     13// Update Count     : 5
    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"
    2225#include "Common/PassVisitor.h"    // for PassVisitor
    2326#include "Common/ScopedMap.h"      // for ScopedMap
     
    3235namespace Virtual {
    3336
    34 static bool is_prefix( const std::string & prefix, const std::string& entire ) {
     37namespace {
     38
     39bool is_prefix( const std::string & prefix, const std::string& entire ) {
    3540        size_t const p_size = prefix.size();
    3641        return (p_size < entire.size() && prefix == entire.substr(0, p_size));
    3742}
    3843
    39 static bool is_type_id_object( const ObjectDecl * objectDecl ) {
     44bool is_type_id_object( const ObjectDecl * objectDecl ) {
    4045        const std::string & objectName = objectDecl->name;
    4146        return is_prefix( "__cfatid_", objectName );
     47}
     48
     49bool is_type_id_object( const ast::ObjectDecl * decl ) {
     50        return is_prefix( "__cfatid_", decl->name );
    4251}
    4352
     
    124133                }
    125134        }
    126 
    127         namespace {
    128135
    129136        /// Better error locations for generated casts.
     
    229236        }
    230237
    231         } // namespace
    232 
    233238        Expression * VirtualCastCore::postmutate( VirtualCastExpr * castExpr ) {
    234239                assertf( castExpr->result, "Virtual Cast target not found before expansion." );
     
    265270        }
    266271
    267         void expandCasts( std::list< Declaration * > & translationUnit ) {
    268                 PassVisitor<VirtualCastCore> translator;
    269                 mutateAll( translationUnit, translator );
    270         }
    271 }
     272/// Better error locations for generated casts.
     273// TODO: Does the improved distribution of code locations make this unneeded?
     274CodeLocation castLocation( const ast::VirtualCastExpr * castExpr ) {
     275        if ( castExpr->location.isSet() ) {
     276                return castExpr->location;
     277        } else if ( castExpr->arg->location.isSet() ) {
     278                return castExpr->arg->location;
     279        } else {
     280                return CodeLocation();
     281        }
     282}
     283
     284[[noreturn]] void castError( ast::VirtualCastExpr const * castExpr, std::string const & message ) {
     285        SemanticError( castLocation( castExpr ), message );
     286}
     287
     288class TypeIdTable final {
     289        ScopedMap<std::string, ast::ObjectDecl const *> instances;
     290public:
     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
     319struct 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
     334void ExpandCastsCore::previsit( ast::FunctionDecl const * decl ) {
     335        if ( !vcast_decl && "__cfavir_virtual_cast" == decl->name ) {
     336                vcast_decl = decl;
     337        }
     338}
     339
     340void ExpandCastsCore::previsit( ast::StructDecl const * decl ) {
     341        if ( !info_decl && decl->body && "__cfavir_type_info" == decl->name ) {
     342                info_decl = decl;
     343        }
     344}
     345
     346void 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.
     354ast::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.
     365ast::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.
     381ast::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.
     425ast::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
     442ast::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
     485ast::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
     497void expandCasts( std::list< Declaration * > & translationUnit ) {
     498        PassVisitor<VirtualCastCore> translator;
     499        mutateAll( translationUnit, translator );
     500}
     501
     502void expandCasts( ast::TranslationUnit & translationUnit ) {
     503        ast::Pass<ExpandCastsCore>::run( translationUnit );
     504}
     505
     506} // namespace Virtual
  • src/Virtual/ExpandCasts.h

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

    r12df6fe r4520b77e  
    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
    3329
    3430/* Major.Minor */
  • src/main.cc

    r12df6fe r4520b77e  
    1010// Created On       : Fri May 15 23:12:02 2015
    1111// Last Modified By : Andrew Beach
    12 // Last Modified On : Mon Jul 18 11:08:00 2022
    13 // Update Count     : 676
     12// Last Modified On : Thu Sep 15 13:58:00 2022
     13// Update Count     : 678
    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
    4240#include "CodeTools/TrackLoc.h"             // for fillLocations
    4341#include "Common/CodeLocationTools.hpp"     // for forceFillCodeLocations
     
    4543#include "Common/DeclStats.hpp"             // for printDeclStats
    4644#include "Common/ResolvProtoDump.hpp"       // for dumpAsResolverProto
    47 #include "Common/Stats.h"
    48 #include "Common/PassVisitor.h"
    49 #include "Common/SemanticError.h"           // for SemanticError
     45#include "Common/Stats.h"                   // for Stats
    5046#include "Common/UnimplementedError.h"      // for UnimplementedError
    5147#include "Common/utility.h"                 // for deleteAll, filter, printAll
     
    5349#include "Concurrency/Waitfor.h"            // for generateWaitfor
    5450#include "ControlStruct/ExceptDecl.h"       // for translateExcept
    55 #include "ControlStruct/ExceptTranslate.h"  // for translateEHM
     51#include "ControlStruct/ExceptTranslate.h"  // for translateThrows, translat...
    5652#include "ControlStruct/FixLabels.hpp"      // for fixLabels
    5753#include "ControlStruct/HoistControlDecls.hpp" //  hoistControlDecls
    58 #include "ControlStruct/Mutate.h"           // for mutate
    5954#include "GenPoly/Box.h"                    // for box
    6055#include "GenPoly/InstantiateGeneric.h"     // for instantiateGeneric
     
    6661#include "Parser/ParseNode.h"               // for DeclarationNode, buildList
    6762#include "Parser/TypedefTable.h"            // for TypedefTable
    68 #include "ResolvExpr/AlternativePrinter.h"  // for AlternativePrinter
    6963#include "ResolvExpr/CandidatePrinter.hpp"  // for printCandidates
    7064#include "ResolvExpr/Resolver.h"            // for resolve
    71 #include "SymTab/Validate.h"                // for validate
    72 #include "SymTab/ValidateType.h"            // for linkReferenceToTypes
    7365#include "SynTree/LinkageSpec.h"            // for Spec, Cforall, Intrinsic
    7466#include "SynTree/Declaration.h"            // for Declaration
    75 #include "SynTree/Visitor.h"                // for acceptAll
    7667#include "Tuples/Tuples.h"                  // for expandMemberTuples, expan...
    7768#include "Validate/Autogen.hpp"             // for autogenerateRoutines
     
    330321                Stats::Time::StopBlock();
    331322
    332                 if( useNewAST ) {
    333                         if (Stats::Counters::enabled) {
    334                                 ast::pass_visitor_stats.avg = Stats::Counters::build<Stats::Counters::AverageCounter<double>>("Average Depth - New");
    335                                 ast::pass_visitor_stats.max = Stats::Counters::build<Stats::Counters::MaxCounter<double>>("Max depth - New");
    336                         }
    337                         auto transUnit = convert( move( translationUnit ) );
    338 
    339                         forceFillCodeLocations( transUnit );
    340 
    341                         PASS( "Translate Exception Declarations", ControlStruct::translateExcept( transUnit ) );
    342                         if ( exdeclp ) {
    343                                 dump( move( transUnit ) );
    344                                 return EXIT_SUCCESS;
    345                         }
    346 
    347                         PASS( "Verify Ctor, Dtor & Assign", Validate::verifyCtorDtorAssign( transUnit ) );
    348                         PASS( "Hoist Type Decls", Validate::hoistTypeDecls( transUnit ) );
    349                         // Hoist Type Decls pulls some declarations out of contexts where
    350                         // locations are not tracked. Perhaps they should be, but for now
    351                         // the full fill solves it.
    352                         forceFillCodeLocations( transUnit );
    353 
    354                         PASS( "Replace Typedefs", Validate::replaceTypedef( transUnit ) );
    355                         PASS( "Fix Return Types", Validate::fixReturnTypes( transUnit ) );
    356                         PASS( "Enum and Pointer Decay", Validate::decayEnumsAndPointers( transUnit ) );
    357 
    358                         PASS( "Link Reference To Types", Validate::linkReferenceToTypes( transUnit ) );
    359 
    360                         PASS( "Fix Qualified Types", Validate::fixQualifiedTypes( transUnit ) );
    361                         PASS( "Hoist Struct", Validate::hoistStruct( transUnit ) );
    362                         PASS( "Eliminate Typedef", Validate::eliminateTypedef( transUnit ) );
    363                         PASS( "Validate Generic Parameters", Validate::fillGenericParameters( transUnit ) );
    364                         PASS( "Translate Dimensions", Validate::translateDimensionParameters( transUnit ) );
    365                         PASS( "Check Function Returns", Validate::checkReturnStatements( transUnit ) );
    366                         PASS( "Fix Return Statements", InitTweak::fixReturnStatements( transUnit ) );
    367                         PASS( "Implement Concurrent Keywords", Concurrency::implementKeywords( transUnit ) );
    368                         PASS( "Forall Pointer Decay", Validate::decayForallPointers( transUnit ) );
    369                         PASS( "Hoist Control Declarations", ControlStruct::hoistControlDecls( transUnit ) );
    370 
    371                         PASS( "Generate Autogen Routines", Validate::autogenerateRoutines( transUnit ) );
    372 
    373                         PASS( "Implement Mutex", Concurrency::implementMutex( transUnit ) );
    374                         PASS( "Implement Thread Start", Concurrency::implementThreadStarter( transUnit ) );
    375                         PASS( "Compound Literal", Validate::handleCompoundLiterals( transUnit ) );
    376                         PASS( "Set Length From Initializer", Validate::setLengthFromInitializer( transUnit ) );
    377                         PASS( "Find Global Decls", Validate::findGlobalDecls( transUnit ) );
    378                         PASS( "Fix Label Address", Validate::fixLabelAddresses( transUnit ) );
    379 
    380                         if ( symtabp ) {
    381                                 return EXIT_SUCCESS;
    382                         } // if
    383 
    384                         if ( expraltp ) {
    385                                 ResolvExpr::printCandidates( transUnit );
    386                                 return EXIT_SUCCESS;
    387                         } // if
    388 
    389                         if ( validp ) {
    390                                 dump( move( transUnit ) );
    391                                 return EXIT_SUCCESS;
    392                         } // if
    393 
    394                         PASS( "Translate Throws", ControlStruct::translateThrows( transUnit ) );
    395                         PASS( "Fix Labels", ControlStruct::fixLabels( transUnit ) );
    396                         PASS( "Fix Names", CodeGen::fixNames( transUnit ) );
    397                         PASS( "Gen Init", InitTweak::genInit( transUnit ) );
    398                         PASS( "Expand Member Tuples" , Tuples::expandMemberTuples( transUnit ) );
    399 
    400                         if ( libcfap ) {
    401                                 // Generate the bodies of cfa library functions.
    402                                 LibCfa::makeLibCfa( transUnit );
    403                         } // if
    404 
    405                         if ( declstatsp ) {
    406                                 printDeclStats( transUnit );
    407                                 return EXIT_SUCCESS;
    408                         } // if
    409 
    410                         if ( bresolvep ) {
    411                                 dump( move( transUnit ) );
    412                                 return EXIT_SUCCESS;
    413                         } // if
    414 
    415                         if ( resolvprotop ) {
    416                                 dumpAsResolverProto( transUnit );
    417                                 return EXIT_SUCCESS;
    418                         } // if
    419 
    420                         PASS( "Resolve", ResolvExpr::resolve( transUnit ) );
    421                         if ( exprp ) {
    422                                 dump( move( transUnit ) );
    423                                 return EXIT_SUCCESS;
    424                         } // if
    425 
    426                         forceFillCodeLocations( transUnit );
    427 
    428                         PASS( "Fix Init", InitTweak::fix(transUnit, buildingLibrary()));
    429 
    430                         // fix ObjectDecl - replaces ConstructorInit nodes
    431                         if ( ctorinitp ) {
    432                                 dump( move( transUnit ) );
    433                                 return EXIT_SUCCESS;
    434                         } // if
    435 
    436                         // Currently not working due to unresolved issues with UniqueExpr
    437                         PASS( "Expand Unique Expr", Tuples::expandUniqueExpr( transUnit ) ); // xxx - is this the right place for this? want to expand ASAP so tha, sequent passes don't need to worry about double-visiting a unique expr - needs to go after InitTweak::fix so that copy constructed return declarations are reused
    438 
    439                         PASS( "Translate Tries", ControlStruct::translateTries( transUnit ) );
    440                         PASS( "Gen Waitfor", Concurrency::generateWaitFor( transUnit ) );
    441                         PASS( "Convert Specializations",  GenPoly::convertSpecializations( transUnit ) ); // needs to happen before tuple types are expanded
    442 
    443 
    444                         translationUnit = convert( move( transUnit ) );
    445                 } else {
    446                         PASS( "Translate Exception Declarations", ControlStruct::translateExcept( translationUnit ) );
    447                         if ( exdeclp ) {
    448                                 dump( translationUnit );
    449                                 return EXIT_SUCCESS;
    450                         } // if
    451 
    452                         // add the assignment statement after the initialization of a type parameter
    453                         PASS( "Validate", SymTab::validate( translationUnit ) );
    454 
    455                         if ( symtabp ) {
    456                                 deleteAll( translationUnit );
    457                                 return EXIT_SUCCESS;
    458                         } // if
    459 
    460                         if ( expraltp ) {
    461                                 PassVisitor<ResolvExpr::AlternativePrinter> printer( cout );
    462                                 acceptAll( translationUnit, printer );
    463                                 return EXIT_SUCCESS;
    464                         } // if
    465 
    466                         if ( validp ) {
    467                                 dump( translationUnit );
    468                                 return EXIT_SUCCESS;
    469                         } // if
    470 
    471                         PASS( "Translate Throws", ControlStruct::translateThrows( translationUnit ) );
    472                         PASS( "Fix Labels", ControlStruct::fixLabels( translationUnit ) );
    473                         PASS( "Fix Names", CodeGen::fixNames( translationUnit ) );
    474                         PASS( "Gen Init", InitTweak::genInit( translationUnit ) );
    475                         PASS( "Expand Member Tuples" , Tuples::expandMemberTuples( translationUnit ) );
    476 
    477                         if ( libcfap ) {
    478                                 // Generate the bodies of cfa library functions.
    479                                 LibCfa::makeLibCfa( translationUnit );
    480                         } // if
    481 
    482                         if ( declstatsp ) {
    483                                 CodeTools::printDeclStats( translationUnit );
    484                                 deleteAll( translationUnit );
    485                                 return EXIT_SUCCESS;
    486                         } // if
    487 
    488                         if ( bresolvep ) {
    489                                 dump( translationUnit );
    490                                 return EXIT_SUCCESS;
    491                         } // if
    492 
    493                         CodeTools::fillLocations( translationUnit );
    494 
    495                         if ( resolvprotop ) {
    496                                 CodeTools::dumpAsResolvProto( translationUnit );
    497                                 return EXIT_SUCCESS;
    498                         } // if
    499 
    500                         PASS( "Resolve", ResolvExpr::resolve( translationUnit ) );
    501                         if ( exprp ) {
    502                                 dump( translationUnit );
    503                                 return EXIT_SUCCESS;
    504                         }
    505 
    506                         PASS( "Fix Init", InitTweak::fix( translationUnit, buildingLibrary() ) );
    507 
    508                         // fix ObjectDecl - replaces ConstructorInit nodes
    509                         if ( ctorinitp ) {
    510                                 dump ( translationUnit );
    511                                 return EXIT_SUCCESS;
    512                         } // if
    513 
    514                         PASS( "Expand Unique Expr", Tuples::expandUniqueExpr( translationUnit ) ); // xxx - is this the right place for this? want to expand ASAP so tha, sequent passes don't need to worry about double-visiting a unique expr - needs to go after InitTweak::fix so that copy constructed return declarations are reused
    515                         PASS( "Translate Tries", ControlStruct::translateTries( translationUnit ) );
    516                         PASS( "Gen Waitfor", Concurrency::generateWaitFor( translationUnit ) );
    517                         PASS( "Convert Specializations",  GenPoly::convertSpecializations( translationUnit ) ); // needs to happen before tuple types are expanded
    518 
     323                if (Stats::Counters::enabled) {
     324                        ast::pass_visitor_stats.avg = Stats::Counters::build<Stats::Counters::AverageCounter<double>>("Average Depth - New");
     325                        ast::pass_visitor_stats.max = Stats::Counters::build<Stats::Counters::MaxCounter<double>>("Max depth - New");
    519326                }
    520 
    521 
    522                 // PASS( "Convert Specializations",  GenPoly::convertSpecializations( translationUnit ) ); // needs to happen before tuple types are expanded
    523 
    524                 PASS( "Expand Tuples", Tuples::expandTuples( translationUnit ) ); // xxx - is this the right place for this?
     327                auto transUnit = convert( std::move( translationUnit ) );
     328
     329                forceFillCodeLocations( transUnit );
     330
     331                PASS( "Translate Exception Declarations", ControlStruct::translateExcept( transUnit ) );
     332                if ( exdeclp ) {
     333                        dump( std::move( transUnit ) );
     334                        return EXIT_SUCCESS;
     335                }
     336
     337                PASS( "Verify Ctor, Dtor & Assign", Validate::verifyCtorDtorAssign( transUnit ) );
     338                PASS( "Hoist Type Decls", Validate::hoistTypeDecls( transUnit ) );
     339                // Hoist Type Decls pulls some declarations out of contexts where
     340                // locations are not tracked. Perhaps they should be, but for now
     341                // the full fill solves it.
     342                forceFillCodeLocations( transUnit );
     343
     344                PASS( "Replace Typedefs", Validate::replaceTypedef( transUnit ) );
     345                PASS( "Fix Return Types", Validate::fixReturnTypes( transUnit ) );
     346                PASS( "Enum and Pointer Decay", Validate::decayEnumsAndPointers( transUnit ) );
     347
     348                PASS( "Link Reference To Types", Validate::linkReferenceToTypes( transUnit ) );
     349
     350                PASS( "Fix Qualified Types", Validate::fixQualifiedTypes( transUnit ) );
     351                PASS( "Hoist Struct", Validate::hoistStruct( transUnit ) );
     352                PASS( "Eliminate Typedef", Validate::eliminateTypedef( transUnit ) );
     353                PASS( "Validate Generic Parameters", Validate::fillGenericParameters( transUnit ) );
     354                PASS( "Translate Dimensions", Validate::translateDimensionParameters( transUnit ) );
     355                PASS( "Check Function Returns", Validate::checkReturnStatements( transUnit ) );
     356                PASS( "Fix Return Statements", InitTweak::fixReturnStatements( transUnit ) );
     357                PASS( "Implement Concurrent Keywords", Concurrency::implementKeywords( transUnit ) );
     358                PASS( "Forall Pointer Decay", Validate::decayForallPointers( transUnit ) );
     359                PASS( "Hoist Control Declarations", ControlStruct::hoistControlDecls( transUnit ) );
     360
     361                PASS( "Generate Autogen Routines", Validate::autogenerateRoutines( transUnit ) );
     362
     363                PASS( "Implement Mutex", Concurrency::implementMutex( transUnit ) );
     364                PASS( "Implement Thread Start", Concurrency::implementThreadStarter( transUnit ) );
     365                PASS( "Compound Literal", Validate::handleCompoundLiterals( transUnit ) );
     366                PASS( "Set Length From Initializer", Validate::setLengthFromInitializer( transUnit ) );
     367                PASS( "Find Global Decls", Validate::findGlobalDecls( transUnit ) );
     368                PASS( "Fix Label Address", Validate::fixLabelAddresses( transUnit ) );
     369
     370                if ( symtabp ) {
     371                        return EXIT_SUCCESS;
     372                } // if
     373
     374                if ( expraltp ) {
     375                        ResolvExpr::printCandidates( transUnit );
     376                        return EXIT_SUCCESS;
     377                } // if
     378
     379                if ( validp ) {
     380                        dump( std::move( transUnit ) );
     381                        return EXIT_SUCCESS;
     382                } // if
     383
     384                PASS( "Translate Throws", ControlStruct::translateThrows( transUnit ) );
     385                PASS( "Fix Labels", ControlStruct::fixLabels( transUnit ) );
     386                PASS( "Fix Names", CodeGen::fixNames( transUnit ) );
     387                PASS( "Gen Init", InitTweak::genInit( transUnit ) );
     388                PASS( "Expand Member Tuples" , Tuples::expandMemberTuples( transUnit ) );
     389
     390                if ( libcfap ) {
     391                        // Generate the bodies of cfa library functions.
     392                        LibCfa::makeLibCfa( transUnit );
     393                } // if
     394
     395                if ( declstatsp ) {
     396                        printDeclStats( transUnit );
     397                        return EXIT_SUCCESS;
     398                } // if
     399
     400                if ( bresolvep ) {
     401                        dump( std::move( transUnit ) );
     402                        return EXIT_SUCCESS;
     403                } // if
     404
     405                if ( resolvprotop ) {
     406                        dumpAsResolverProto( transUnit );
     407                        return EXIT_SUCCESS;
     408                } // if
     409
     410                PASS( "Resolve", ResolvExpr::resolve( transUnit ) );
     411                if ( exprp ) {
     412                        dump( std::move( transUnit ) );
     413                        return EXIT_SUCCESS;
     414                } // if
     415
     416                forceFillCodeLocations( transUnit );
     417
     418                PASS( "Fix Init", InitTweak::fix(transUnit, buildingLibrary()));
     419
     420                // fix ObjectDecl - replaces ConstructorInit nodes
     421                if ( ctorinitp ) {
     422                        dump( std::move( transUnit ) );
     423                        return EXIT_SUCCESS;
     424                } // if
     425
     426                // Currently not working due to unresolved issues with UniqueExpr
     427                PASS( "Expand Unique Expr", Tuples::expandUniqueExpr( transUnit ) ); // xxx - is this the right place for this? want to expand ASAP so tha, sequent passes don't need to worry about double-visiting a unique expr - needs to go after InitTweak::fix so that copy constructed return declarations are reused
     428
     429                PASS( "Translate Tries", ControlStruct::translateTries( transUnit ) );
     430                PASS( "Gen Waitfor", Concurrency::generateWaitFor( transUnit ) );
     431
     432                // Needs to happen before tuple types are expanded.
     433                PASS( "Convert Specializations",  GenPoly::convertSpecializations( transUnit ) );
     434
     435                PASS( "Expand Tuples", Tuples::expandTuples( transUnit ) );
    525436
    526437                if ( tuplep ) {
    527                         dump( translationUnit );
    528                         return EXIT_SUCCESS;
    529                 } // if
    530 
    531                 PASS( "Virtual Expand Casts", Virtual::expandCasts( translationUnit ) ); // Must come after translateEHM
    532 
    533                 PASS( "Instantiate Generics", GenPoly::instantiateGeneric( translationUnit ) );
     438                        dump( std::move( transUnit ) );
     439                        return EXIT_SUCCESS;
     440                } // if
     441
     442                // Must come after Translate Tries.
     443                PASS( "Virtual Expand Casts", Virtual::expandCasts( transUnit ) );
     444
     445                PASS( "Instantiate Generics", GenPoly::instantiateGeneric( transUnit ) );
     446
     447                translationUnit = convert( std::move( transUnit ) );
     448
    534449                if ( genericsp ) {
    535450                        dump( translationUnit );
     
    614529
    615530
    616 static const char optstring[] = ":c:ghlLmNnpdOAP:S:twW:D:";
     531static const char optstring[] = ":c:ghlLmNnpdP:S:twW:D:";
    617532
    618533enum { PreludeDir = 128 };
     
    628543        { "prototypes", no_argument, nullptr, 'p' },
    629544        { "deterministic-out", no_argument, nullptr, 'd' },
    630         { "old-ast", no_argument, nullptr, 'O'},
    631         { "new-ast", no_argument, nullptr, 'A'},
    632545        { "print", required_argument, nullptr, 'P' },
    633546        { "prelude-dir", required_argument, nullptr, PreludeDir },
     
    651564        "do not generate prelude prototypes => prelude not printed", // -p
    652565        "only print deterministic output",                  // -d
    653         "Use the old-ast",                                                                      // -O
    654         "Use the new-ast",                                                                      // -A
    655566        "print",                                                                                        // -P
    656567        "<directory> prelude directory for debug/nodebug",      // no flag
     
    761672                        deterministic_output = true;
    762673                        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;
    769674                  case 'P':                                                                             // print options
    770675                        for ( int i = 0;; i += 1 ) {
     
    883788
    884789static void dump( ast::TranslationUnit && transUnit, ostream & out ) {
    885         std::list< Declaration * > translationUnit = convert( move( transUnit ) );
     790        std::list< Declaration * > translationUnit = convert( std::move( transUnit ) );
    886791        dump( translationUnit, out );
    887792}
  • tests/.expect/declarationSpecifier.arm64.txt

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

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

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

    r12df6fe r4520b77e  
    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 else
     3510 9 8 7 6 5 4 3 2 1 0 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
    5138
    52390 -5 1 -4 2 -3 3 -2 4 -1 5 0 6 1 7 2 8 3 9 4 else
     
    63500 -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
    64510 -5 1.5 1 -7 2.5 2 -9 3.5 3 -11 4.5 4 -13 5.5 5 -15 6.5 6 -17 7.5 7 -19 8.5 8 -21 9.5 9 -23 10.5 else
     52(0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)else
     53(0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)else
     54
     55(0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)else
     56(0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)else
     57(0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)(10 10)else
     58(0 0)(1 1)(2 2)(3 3)(4 4)(5 5)(6 6)(7 7)(8 8)(9 9)(10 10)else
     59
     60(10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)else
     61(10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)else
     62(10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)(0 0)else
     63(10 10)(9 9)(8 8)(7 7)(6 6)(5 5)(4 4)(3 3)(2 2)(1 1)(0 0)else
     64
  • tests/.expect/loopctrl.txt

    r12df6fe r4520b77e  
    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
     3310 9 8 7 6 5 4 3 2 1 0
    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)
    4936
    50370 -5 1 -4 2 -3 3 -2 4 -1 5 0 6 1 7 2 8 3 9 4
     
    61480 -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
    62490 -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
     63A A A A A A A A A A
     64B B B B B B B B B B B
     65C C C C C C C C C C
     66D D D D D D D D D D D
     67A A A A A A A A A A
     68B B B B B B B B B B B
     69C C C C C C C C C C
     70D D D D D D D D D D D
     71A A A A A
     72B B B B B B
     73C C C C C
     74D D D D D D
     750 1 2 3 4 5 6 7 8 9
     760 1 2 3 4 5 6 7 8 9 10
     7710 9 8 7 6 5 4 3 2 1
     7810 9 8 7 6 5 4 3 2 1 0
     790 1 2 3 4 5 6 7 8 9
     800 1 2 3 4 5 6 7 8 9 10
     8110 9 8 7 6 5 4 3 2 1
     8210 9 8 7 6 5 4 3 2 1 0
     830 2 4 6 8
     840 2 4 6 8 10
     8510 8 6 4 2
     8610 8 6 4 2 0
     870 1 2 3 4 5 6 7 8 9
     880 1 2 3 4 5 6 7 8 9
     890 1 2 3 4 5 6 7 8 9 10
     9010 9 8 7 6 5 4 3 2 1
     9110 9 8 7 6 5 4 3 2 1 0
     920 1 2 3 4 5 6 7 8 9
     930 1 2 3 4 5 6 7 8 9 10
     9410 9 8 7 6 5 4 3 2 1
     9510 9 8 7 6 5 4 3 2 1 0
     960 2 4 6 8
     970 2 4 6 8 10
     9810 8 6 4 2
     9910 8 6 4 2 0
     1000 1 2 3 4 5 6 7 8 9
     1010 -1 -2 -3 -4 -5 -6 -7 -8 -9
     1020 2 4 6 8
     1030 -2 -4 -6 -8
     1040 1 2 3 4 5 6 7 8 9
     1050 2 4 6 8
     1060 -2 -4 -6 -8
     1070 2 4 6 8
     1080 -2 -4 -6 -8
     1090 1 2 3 4 5 6 7 8 9
  • tests/Makefile.am

    r12df6fe r4520b77e  
    5454
    5555# adjust CC to current flags
    56 CC = LC_ALL=C $(if $(DISTCC_CFA_PATH),distcc $(DISTCC_CFA_PATH) ${ARCH_FLAGS} ${AST_FLAGS},$(TARGET_CFA) ${DEBUG_FLAGS} ${ARCH_FLAGS} ${AST_FLAGS})
     56CC = LC_ALL=C $(if $(DISTCC_CFA_PATH),distcc $(DISTCC_CFA_PATH) ${ARCH_FLAGS} ,$(TARGET_CFA) ${DEBUG_FLAGS} ${ARCH_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} ${AST_FLAGS},$(TARGET_CFA) ${DEBUG_FLAGS} ${ARCH_FLAGS} ${AST_FLAGS})
     63CFACCLOCAL = $(if $(DISTCC_CFA_PATH),$(DISTCC_CFA_PATH) ${ARCH_FLAGS} ,$(TARGET_CFA) ${DEBUG_FLAGS} ${ARCH_FLAGS})
    6464CFACCLINK = $(CFACCLOCAL) -quiet $(if $(test), 2> $(test), ) $($(shell echo "${@}_FLAGSLD" | sed 's/-\|\//_/g'))
    6565
  • tests/concurrent/clib.c

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

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

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

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

    r12df6fe r4520b77e  
    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;
    5356
    5457static inline const volatile int f11();
  • tests/heap.cfa

    r12df6fe r4520b77e  
    1010// Created On       : Tue Nov  6 17:54:56 2018
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Dec 15 12:11:51 2020
    13 // Update Count     : 79
     12// Last Modified On : Wed Aug 10 09:57:01 2022
     13// Update Count     : 86
    1414//
    1515
     
    2626//      return __CFA_DEFAULT_PREEMPTION__;
    2727// }
    28 
    29 size_t default_heap_expansion() {
    30         return 10 * 1024 * 1024;
    31 } // default_heap_expansion
    32 
    33 size_t default_mmap_start() {
    34         return 512 * 1024 + 1;
    35 } // default_mmap_start
    3628
    3729thread Worker {
     
    6658                        for ( k; i ) locns[i][k] = '\345';
    6759                } // for
    68                 for ( i; NoOfAllocs - 1 -~= 0 ) {
     60                for ( i; -~= NoOfAllocs - 1 ) {
    6961                        //sout | (void *)locns[i];
    7062                        for ( k; i ) if ( locns[i][k] != '\345' ) abort( "new/delete corrupt storage2" );
     
    9991
    10092        for ( i; NoOfMmaps ) {
    101                 size_t s = i + default_mmap_start();                    // cross over point
     93                size_t s = i + malloc_mmap_start();                     // cross over point
    10294                char * area = (char *)malloc( s );
    10395                area[0] = '\345'; area[s - 1] = '\345';                 // fill first/last
     
    10799
    108100        for ( i; NoOfMmaps ) {
    109                 size_t s = i + default_mmap_start();                    // cross over point
     101                size_t s = i + malloc_mmap_start();                     // cross over point
    110102                locns[i] = (char *)malloc( s );
    111103                locns[i][0] = '\345'; locns[i][s - 1] = '\345'; // fill first/last
     
    113105        } // for
    114106        for ( i; NoOfMmaps ) {
    115                 size_t s = i + default_mmap_start();                    // cross over point
     107                size_t s = i + malloc_mmap_start();                     // cross over point
    116108                if ( locns[i][0] != '\345' || locns[i][s - 1] != '\345' ||
    117109                         locns[i][malloc_usable_size( locns[i] ) - 1] != '\345' ) abort( "malloc/free corrupt storage" );
     
    151143
    152144        for ( i; NoOfMmaps ) {
    153                 size_t s = i + default_mmap_start();                    // cross over point
     145                size_t s = i + malloc_mmap_start();                     // cross over point
    154146                char * area = (char *)calloc( 1, s );
    155147                if ( area[0] != '\0' || area[s - 1] != '\0' ) abort( "calloc/free corrupt storage4.1" );
     
    162154
    163155        for ( i; NoOfMmaps ) {
    164                 size_t s = i + default_mmap_start();                    // cross over point
     156                size_t s = i + malloc_mmap_start();                     // cross over point
    165157                locns[i] = (char *)calloc( 1, s );
    166158                if ( locns[i][0] != '\0' || locns[i][s - 1] != '\0' ||
     
    171163        } // for
    172164        for ( i; NoOfMmaps ) {
    173                 size_t s = i + default_mmap_start();                    // cross over point
     165                size_t s = i + malloc_mmap_start();                     // cross over point
    174166                if ( locns[i][0] != '\345' || locns[i][s - 1] != '\345' ||
    175167                         locns[i][malloc_usable_size( locns[i] ) - 1] != '\345' ) abort( "calloc/free corrupt storage6" );
     
    198190                //sout | alignments[a];
    199191                for ( i; 1 ~ NoOfMmaps ) {
    200                         size_t s = i + default_mmap_start();            // cross over point
     192                        size_t s = i + malloc_mmap_start();             // cross over point
    201193                        char * area = (char *)memalign( a, s );
    202194                        //sout | i | area;
     
    232224        for ( i; 2 ~ NoOfAllocs ~ 12 ) {
    233225                // initial N byte allocation
    234                 size_t s = i + default_mmap_start();                    // cross over point
     226                size_t s = i + malloc_mmap_start();                     // cross over point
    235227                char * area = (char *)malloc( s );
    236228                area[0] = '\345'; area[s - 1] = '\345';                 // fill first/penultimate byte
     
    269261        for ( i; 2 ~ NoOfAllocs ~ 12 ) {
    270262                // initial N byte allocation
    271                 size_t s = i + default_mmap_start();                    // cross over point
     263                size_t s = i + malloc_mmap_start();                     // cross over point
    272264                char * area = (char *)malloc( s );
    273265                area[0] = '\345'; area[s - 1] = '\345';                 // fill first/penultimate byte
     
    307299        for ( i; 1 ~ 10_000 ~ 12 ) {
    308300                // initial N byte allocation
    309                 size_t s = i + default_mmap_start();                    // cross over point
     301                size_t s = i + malloc_mmap_start();                     // cross over point
    310302                char * area = (char *)calloc( 1, s );
    311303                if ( area[0] != '\0' || area[s - 1] != '\0' ||
     
    481473
    482474int main() {
    483         const unsigned int NoOfWorkers = 4;
     475        enum { NoOfWorkers = 4 };
    484476        {
    485477                processor processors[NoOfWorkers - 1] __attribute__(( unused )); // more than one processor
  • tests/io/away_fair.cfa

    r12df6fe r4520b77e  
    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

    r12df6fe r4520b77e  
    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       bool do_read = has_user_level_blocking( (fptr_t)async_read );
     67        char thrash[1];
     68        bool do_read = has_user_level_blocking( (fptr_t)async_read );
    6869
    69       for(TIMES) {
    70             io_future_t f;
    71             if ( do_read ) {
    72                   char thrash[1];
    73                   async_read(f, globals.pipe[0], thrash, 1, 0);
    74             } else {
    75                   fulfil(f, 0); // If we don't have user-level blocking just play along
    76             }
     70        for(TIMES) {
     71                io_future_t f;
     72                if ( do_read ) {
     73                        async_read(f, globals.pipe[0], thrash, 1, 0);
     74                } else {
     75                        fulfil(f, 0); // If we don't have user-level blocking just play along
     76                }
    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

    r12df6fe r4520b77e  
    2020
    2121int main() {
    22     sout | nlOff;                                                                               // turn off auto newline
    23         while () { sout | "empty"; break; } else { sout | "else"; }                                         sout | nl;
    24         do { sout | "empty"; break; } while () else { sout | "else"; }                              sout | nl;
    25         for () { sout | "empty"; break; } else { sout | "else"; }                                           sout | nl | nl;
     22        // Test some loop options.
    2623
    27     do { sout | "false"; } while (false) else { sout | "else"; }                                    sout | nl | nl;
     24        sout | nlOff;                                                                           // turn off auto newline
     25        while () { sout | "empty"; break; } else { sout | "else"; }                                             sout | nl;
     26        do { sout | "empty"; break; } while () else { sout | "else"; }                                  sout | nl;
     27        for () { sout | "empty"; break; } else { sout | "else"; }                                               sout | nl | nl;
    2828
    29         for ( 0 ) { sout | "A"; } else { sout | "else"; }                                                   sout | "zero" | nl;
     29        do { sout | "false"; } while (false) else { sout | "else"; }                                    sout | nl | nl;
     30
     31        for ( 0 ) { sout | "A"; } else { sout | "else"; }                                                               sout | "zero" | nl;
    3032        for ( 1 ) { sout | "A"; } else { sout | "else"; }                                                               sout | nl;
    31         for ( 10 ) { sout | "A"; } else { sout | "else"; }                                                          sout | nl;
    32         for ( = 10 ) { sout | "A"; } else { sout | "else"; }                                                    sout | nl;
     33        for ( 10 ) { sout | "A"; } else { sout | "else"; }                                                              sout | nl;
     34        for ( ~= 10 ) { sout | "A"; } else { sout | "else"; }                                                   sout | nl;
    3335        for ( 1 ~= 10 ~ 2 ) { sout | "B"; } else { sout | "else"; }                                             sout | nl;
    34         for ( 10 -~= 1 ~ 2 ) { sout | "C"; } else { sout | "else"; }                                    sout | nl;
     36        for ( 1 -~= 10 ~ 2 ) { sout | "C"; } else { sout | "else"; }                                    sout | nl;
    3537        for ( 0.5 ~ 5.5 ) { sout | "D"; } else { sout | "else"; }                                               sout | nl;
    36         for ( 5.5 -~ 0.5 ) { sout | "E"; } else { sout | "else"; }                                              sout | nl | nl;
     38        for ( 0.5 -~ 5.5 ) { sout | "E"; } else { sout | "else"; }                                              sout | nl | nl;
    3739
    3840        for ( i; 10 ) { sout | i; } else { sout | "else"; }                                                             sout | nl;
    39         for ( i; = 10 ) { sout | i; } else { sout | "else"; }                                                   sout | nl;
     41        for ( i; ~= 10 ) { sout | i; } else { sout | "else"; }                                                  sout | nl;
    4042        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;
     43        for ( i; 1 -~= 10 ~ 2 ) { sout | i; } else { sout | "else"; }                                   sout | nl;
    4244        for ( i; 0.5 ~ 5.5 ) { sout | i; } else { sout | "else"; }                                              sout | nl;
    43         for ( i; 5.5 -~ 0.5 ) { sout | i; } else { sout | "else"; }                                             sout | nl;
     45        for ( i; 0.5 -~ 5.5 ) { sout | i; } else { sout | "else"; }                                             sout | nl;
    4446        for ( ui; 2u ~= 10u ~ 2u ) { sout | ui; } else { sout | "else"; }                               sout | nl;
    45         for ( ui; 10u -~= 2u ~ 2u ) { sout | ui; } else { sout | "else"; }                              sout | nl | nl;
     47        for ( ui; 2u -~= 10u ~ 2u ) { sout | ui; } else { sout | "else"; }                              sout | nl | nl;
    4648
    4749        // @ means do nothing
     
    5052                sout | i;
    5153        } else { sout | "else"; }                                                                                                               sout | nl;
    52         for ( i; 10 -~ @ ) {
     54        for ( i; @ -~ 10 ) {
    5355          if ( i < 0 ) break;
    5456                sout | i;
     
    6365                i += 1.7;
    6466        } else { sout | "else"; }                                                                                                               sout | nl;
    65         for ( i; 10 -~ @ ~ 2 ) {
     67        for ( i; @ -~ 10 ~ 2 ) {
    6668          if ( i < 0 ) break;
    6769                sout | i;
     
    7678        for ( N ) { sout | "N"; } else { sout | "else"; }                                                       sout | nl;
    7779        for ( i; N ) { sout | i; } else { sout | "else"; }                                                      sout | nl;
    78         for ( i; = N ) { sout | i; } else { sout | "else"; }                                            sout | nl;
    79         for ( i; N -~ 0 ) { sout | i; } else { sout | "else"; }                                         sout | nl | nl;
     80        for ( i; ~= N ) { sout | i; } else { sout | "else"; }                                           sout | nl;
     81        for ( i; -~= N ) { sout | i; } else { sout | "else"; }                                          sout | nl | nl;
    8082
    8183        const int start = 3, comp = 10, inc = 2;
    8284        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;
    8399
    84100        for ( S s = (S){0}; s < (S){10,10}; s += (S){1} ) { sout | s; } else { sout | "else"; } sout | nl;
     
    90106        for ( s; (S){0} ~= (S){10,10} ~ (S){1} ) { sout | s; } else { sout | "else"; } sout | nl;
    91107        sout | nl;
    92         for ( s; (S){10,10} -~ (S){0} ) { sout | s; } else { sout | "else"; }            sout | nl;
    93         for ( s; (S){10,10} -~ (S){0} ~ (S){1} ) { sout | s; } else { sout | "else"; } sout | nl;
    94         for ( s; (S){10,10} -~= (S){0} ) { sout | s; } else { sout | "else"; }           sout | nl;
    95         for ( s; (S){10,10} -~= (S){0} ~ (S){1} ) { sout | s; } else { sout | "else"; } sout | nl | nl;
    96 
    97         for ( i; 10 : j; -5 ~ @ ) { sout | i | j; } else { sout | "else"; } sout | nl;
    98         for ( i; 10 : j; -5 -~ @ ) { sout | i | j; } else { sout | "else"; } sout | nl;
    99         for ( i; 10 : j; -5 ~ @ ~ 2 ) { sout | i | j; } else { sout | "else"; } sout | nl;
    100         for ( i; 10 : j; -5 -~ @ ~ 2 ) { sout | i | j; } else { sout | "else"; } sout | nl | nl;
    101 
    102         for ( j; -5 ~ @ : i; 10 ) { sout | i | j; } else { sout | "else"; } sout | nl;
    103         for ( j; -5 -~ @ : i; 10 ) { sout | i | j; } else { sout | "else"; } sout | nl;
    104         for ( j; -5 ~ @ ~ 2 : i; 10 ) { sout | i | j; } else { sout | "else"; } sout | nl;
    105         for ( j; -5 -~ @ ~ 2 : i; 10 ) { sout | i | j; } else { sout | "else"; } sout | nl | nl;
    106 
    107         for ( j; -5 -~ @ ~ 2 : i; 10 : k; 1.5 ~ @ ) { sout | i | j | k; } else { sout | "else"; } sout | nl;
    108         for ( j; -5 -~ @ ~ 2 : k; 1.5 ~ @ : i; 10 ) { sout | i | j | k; } else { sout | "else"; } sout | nl;
    109         for ( k; 1.5 ~ @ : j; -5 -~ @ ~ 2 : i; 10 ) { sout | i | j | k; } else { sout | "else"; } sout | nl;
     108        for ( s; (S){0} -~  (S){10,10} ) { sout | s; } else { sout | "else"; }           sout | nl;
     109        for ( s; (S){0} -~  (S){10,10} ~ (S){1} ) { sout | s; } else { sout | "else"; } sout | nl;
     110        for ( s; (S){0} -~= (S){10,10} ) { sout | s; } else { sout | "else"; }           sout | nl;
     111        for ( s; (S){0} -~= (S){10,10} ~ (S){1} ) { sout | s; } else { sout | "else"; } sout | nl | nl;
    110112}
  • tests/loopctrl.cfa

    r12df6fe r4520b77e  
    1010// Created On       : Wed Aug  8 18:32:59 2018
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Thu Dec 12 17:55:26 2019
    13 // Update Count     : 108
     12// Last Modified On : Thu Aug 11 23:04:35 2022
     13// Update Count     : 160
    1414//
    1515
    1616#include <fstream.hfa>
     17
     18void 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}
    1790
    1891struct S { int i, j; };
     
    35108
    36109int main() {
     110        // Test some loop options.
     111
    37112        sout | nlOff;                                                                           // turn off auto newline
    38113        while () { sout | "empty"; break; }                                     sout | nl;
     
    43118        for ( 1 ) { sout | "A"; }                                                       sout | nl;
    44119        for ( 10 ) { sout | "A"; }                                                      sout | nl;
    45         for ( = 10 ) { sout | "A"; }                                            sout | nl;
     120        for ( ~= 10 ) { sout | "A"; }                                           sout | nl;
    46121        for ( 1 ~= 10 ~ 2 ) { sout | "B"; }                                     sout | nl;
    47         for ( 10 -~= 1 ~ 2 ) { sout | "C"; }                            sout | nl;
     122        for ( 1 -~= 10 ~ 2 ) { sout | "C"; }                            sout | nl;
    48123        for ( 0.5 ~ 5.5 ) { sout | "D"; }                                       sout | nl;
    49         for ( 5.5 -~ 0.5 ) { sout | "E"; }                                      sout | nl | nl;
     124        for ( 0.5 -~ 5.5 ) { sout | "E"; }                                      sout | nl | nl;
    50125
    51126        for ( i; 10 ) { sout | i; }                                                     sout | nl;
    52         for ( i; = 10 ) { sout | i; }                                           sout | nl;
     127        for ( i; ~= 10 ) { sout | i; }                                          sout | nl;
    53128        for ( i; 1 ~= 10 ~ 2 ) { sout | i; }                            sout | nl;
    54         for ( i; 10 -~= 1 ~ 2 ) { sout | i; }                           sout | nl;
     129        for ( i; 1 -~= 10 ~ 2 ) { sout | i; }                           sout | nl;
    55130        for ( i; 0.5 ~ 5.5 ) { sout | i; }                                      sout | nl;
    56         for ( i; 5.5 -~ 0.5 ) { sout | i; }                                     sout | nl;
     131        for ( i; 0.5 -~ 5.5 ) { sout | i; }                                     sout | nl;
    57132        for ( ui; 2u ~= 10u ~ 2u ) { sout | ui; }                       sout | nl;
    58         for ( ui; 10u -~= 2u ~ 2u ) { sout | ui; }                      sout | nl | nl;
     133        for ( ui; 2u -~= 10u ~ 2u ) { sout | ui; }                      sout | nl | nl;
    59134
    60135        // @ means do nothing
     
    63138                sout | i;
    64139        }                                                                                                       sout | nl;
    65         for ( i; 10 -~ @ ) {
     140        for ( i; @ -~ 10 ) {
    66141          if ( i < 0 ) break;
    67142                sout | i;
     
    76151                i += 1.7;
    77152        }                                                                                                       sout | nl;
    78         for ( i; 10 -~ @ ~ 2 ) {
     153        for ( i; @ -~ 10 ~ 2 ) {
    79154          if ( i < 0 ) break;
    80155                sout | i;
     
    89164        for ( N ) { sout | "N"; }                                                       sout | nl;
    90165        for ( i; N ) { sout | i; }                                                      sout | nl;
    91         for ( i; = N ) { sout | i; }                                            sout | nl;
    92         for ( i; N -~ 0 ) { sout | i; }                                         sout | nl | nl;
     166        for ( i; ~= N ) { sout | i; }                                           sout | nl;
     167        for ( i; -~= N ) { sout | i; }                                          sout | nl | nl;
    93168
    94169        const int start = 3, comp = 10, inc = 2;
    95170        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;
    96185
    97186        for ( S s = (S){0}; s < (S){10,10}; s += (S){1} ) { sout | s; } sout | nl;
     
    103192        for ( s; (S){0} ~= (S){10,10} ~ (S){1} ) { sout | s; } sout | nl;
    104193        sout | nl;
    105         for ( s; (S){10,10} -~ (S){0} ) { sout | s; }            sout | nl;
    106         for ( s; (S){10,10} -~ (S){0} ~ (S){1} ) { sout | s; } sout | nl;
    107         for ( s; (S){10,10} -~= (S){0} ) { sout | s; }           sout | nl;
    108         for ( s; (S){10,10} -~= (S){0} ~ (S){1} ) { sout | s; } sout | nl | nl;
    109 
    110         for ( i; 10 : j; -5 ~ @ ) { sout | i | j; } sout | nl;
    111         for ( i; 10 : j; -5 -~ @ ) { sout | i | j; } sout | nl;
    112         for ( i; 10 : j; -5 ~ @ ~ 2 ) { sout | i | j; } sout | nl;
    113         for ( i; 10 : j; -5 -~ @ ~ 2 ) { sout | i | j; } sout | nl | nl;
    114 
    115         for ( j; -5 ~ @ : i; 10 ) { sout | i | j; } sout | nl;
    116         for ( j; -5 -~ @ : i; 10 ) { sout | i | j; } sout | nl;
    117         for ( j; -5 ~ @ ~ 2 : i; 10 ) { sout | i | j; } sout | nl;
    118         for ( j; -5 -~ @ ~ 2 : i; 10 ) { sout | i | j; } sout | nl | nl;
    119 
    120         for ( j; -5 -~ @ ~ 2 : i; 10 : k; 1.5 ~ @ ) { sout | i | j | k; } sout | nl;
    121         for ( j; -5 -~ @ ~ 2 : k; 1.5 ~ @ : i; 10 ) { sout | i | j | k; } sout | nl;
    122         for ( k; 1.5 ~ @ : j; -5 -~ @ ~ 2 : i; 10 ) { sout | i | j | k; } sout | nl;
     194        for ( s; (S){0} -~  (S){10,10} ) { sout | s; }           sout | nl;
     195        for ( s; (S){0} -~  (S){10,10} ~ (S){1} ) { sout | s; } sout | nl;
     196        for ( s; (S){0} -~= (S){10,10} ) { sout | s; }           sout | nl;
     197        for ( s; (S){0} -~= (S){10,10} ~ (S){1} ) { sout | s; } sout | nl | nl;
     198
     199        fred();
    123200}
    124201
  • tests/pybin/settings.py

    r12df6fe r4520b77e  
    9797                self.path   = "debug" if value else "nodebug"
    9898
    99 class 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 
    12199class Install:
    122100        def __init__(self, value):
     
    141119
    142120def init( options ):
    143         global all_ast
    144121        global all_arch
    145122        global all_debug
    146123        global all_install
    147         global ast
    148124        global arch
    149125        global debug
     
    160136        global timeout2gdb
    161137
    162         all_ast      = [AST(o)          for o in list(dict.fromkeys(options.ast    ))] if options.ast  else [AST(None)]
    163138        all_arch     = [Architecture(o) for o in list(dict.fromkeys(options.arch   ))] if options.arch else [Architecture(None)]
    164139        all_debug    = [Debug(o)        for o in list(dict.fromkeys(options.debug  ))]
  • tests/pybin/test_run.py

    r12df6fe r4520b77e  
    1111                self.path = ''
    1212                self.arch = ''
    13                 self.astv = ''
    1413
    1514        def toString(self):
    16                 return "{:25s} ({:5s} arch, {:s} ast: {:s})".format( self.name, self.arch if self.arch else "Any", self.astv if self.astv else "Any", self.target() )
     15                return "{:25s} ({:5s} arch: {:s})".format( self.name, self.arch if self.arch else "Any", self.target() )
    1716
    1817        def prepare(self):
     
    2221        def expect(self):
    2322                arch = '' if not self.arch else ".%s" % self.arch
    24                 astv = '' if not self.astv else ".nast" if self.astv == "new" else ".oast"
    25                 return os.path.normpath( os.path.join(settings.SRCDIR  , self.path, ".expect", "%s%s%s.txt" % (self.name,astv,arch)) )
     23                return os.path.normpath( os.path.join(settings.SRCDIR  , self.path, ".expect", "%s%s.txt" % (self.name,arch)) )
    2624
    2725        def error_log(self):
     
    5856
    5957        @staticmethod
    60         def new_target(target, arch, astv):
     58        def new_target(target, arch):
    6159                test = Test()
    6260                test.name = os.path.basename(target)
    6361                test.path = os.path.relpath (os.path.dirname(target), settings.SRCDIR)
    6462                test.arch = arch.target if arch else ''
    65                 test.astv = astv.target if astv else ''
    6663                return test
    6764
  • tests/pybin/tools.py

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

    r12df6fe r4520b77e  
    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_local, ``throw, ``throwResume, ``trait, ``try, ``typedef,
     33        ``_Static_assert, ``struct, ``switch, ``_thread, ``_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

    r12df6fe r4520b77e  
    2323
    2424        def match_test(path):
    25                 match = re.search("^%s\/([\w\/\-_]*).expect\/([\w\-_]+)(\.nast|\.oast)?(\.[\w\-_]+)?\.txt$" % settings.SRCDIR, path)
     25                match = re.search("^%s\/([\w\/\-_]*).expect\/([\w\-_]+)(\.[\w\-_]+)?\.txt$" % settings.SRCDIR, path)
    2626                if match :
    2727                        test = Test()
    2828                        test.name = match.group(2)
    2929                        test.path = match.group(1)
    30                         test.arch = match.group(4)[1:] if match.group(4) else None
    31 
    32                         astv = match.group(3)[1:] if match.group(3) else None
    33                         if astv == 'oast':
    34                                 test.astv = 'old'
    35                         elif astv == 'nast':
    36                                 test.astv = 'new'
    37                         elif astv:
    38                                 print('ERROR: "%s", expect file has astv but it is not "nast" or "oast"' % testname, file=sys.stderr)
    39                                 sys.exit(1)
     30                        test.arch = match.group(3)[1:] if match.group(3) else None
    4031
    4132                        expected.append(test)
     
    8172                                # this is a valid name, let's check if it already exists
    8273                                found = [test for test in all_tests if canonical_path( test.target() ) == testname]
    83                                 setup = itertools.product(settings.all_arch if options.arch else [None], settings.all_ast if options.ast else [None])
     74                                setup = itertools.product(settings.all_arch if options.arch else [None])
    8475                                if not found:
    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] )
     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] )
    8778                                elif len(found) == 1 and not found[0].arch:
    8879                                        # we found a single test, the user better be wanting to create a cross platform test
    8980                                        if options.arch:
    9081                                                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)
    9382                                        else:
    9483                                                tests.append( found[0] )
    9584                                else:
    9685                                        # this test is already cross platform, just add a test for each platform the user asked
    97                                         tests.extend( [Test.new_target(testname, arch, ast) for arch, ast in setup] )
     86                                        tests.extend( [Test.new_target(testname, arch) for arch in setup] )
    9887
    9988                                        # print a warning if it users didn't ask for a specific architecture
     
    10291                                                print('WARNING: "%s", test has architecture specific expected files but --arch was not specified, regenerating only for current host' % testname, file=sys.stderr)
    10392
    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 
    11093                        else :
    11194                                print('ERROR: "%s", tests are not allowed to end with a C/C++/CFA extension, ignoring it' % testname, file=sys.stderr)
     
    127110        # create a parser with the arguments for the tests script
    128111        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)
    130112        parser.add_argument('--arch', help='Test for specific architecture', type=comma_separated(str), default=None)
    131113        parser.add_argument('--debug', help='Run all tests in debug or release', type=comma_separated(yes_no), default='yes')
     
    351333
    352334                # print the possible options
    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='')
     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='')
    354336                print(" ".join(map(lambda t: "%s" % (t.target()), tests)))
    355337
     
    422404        # for each build configurations, run the test
    423405        with Timed() as total_dur:
    424                 for ast, arch, debug, install in itertools.product(settings.all_ast, settings.all_arch, settings.all_debug, settings.all_install):
    425                         settings.ast     = ast
     406                for arch, debug, install in itertools.product(settings.all_arch, settings.all_debug, settings.all_install):
    426407                        settings.arch    = arch
    427408                        settings.debug   = debug
     
    430411                        # filter out the tests for a different architecture
    431412                        # tests are the same across debug/install
    432                         local_tests = settings.ast.filter( tests )
    433                         local_tests = settings.arch.filter( local_tests )
     413                        local_tests = settings.arch.filter( tests )
    434414
    435415                        # check the build configuration works
     
    438418
    439419                        # print configuration
    440                         print('%s %i tests on %i cores (%s:%s - %s)' % (
     420                        print('%s %i tests on %i cores (%s - %s)' % (
    441421                                'Regenerating' if settings.generating else 'Running',
    442422                                len(local_tests),
    443423                                jobs,
    444                                 settings.ast.string,
    445424                                settings.arch.string,
    446425                                settings.debug.string
Note: See TracChangeset for help on using the changeset viewer.