Changeset 71cf630


Ignore:
Timestamp:
Aug 16, 2022, 4:04:47 PM (3 years ago)
Author:
Thierry Delisle <tdelisle@…>
Branches:
ADT, ast-experimental, master, pthread-emulation
Children:
aec2c022
Parents:
741e22c (diff), 17c6edeb (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' of plg.uwaterloo.ca:software/cfa/cfa-cc

Files:
8 added
54 edited

Legend:

Unmodified
Added
Removed
  • benchmark/io/http/main.cfa

    r741e22c r71cf630  
    163163        {
    164164                int pipe_cnt = options.clopts.nworkers * 2;
     165                // int pipe_cnt = 0;
    165166                int pipe_off;
    166167                int * fds;
  • benchmark/io/http/printer.cfa

    r741e22c r71cf630  
    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

    r741e22c r71cf630  
    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

    r741e22c r71cf630  
    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}
     
    3031#define PLAINTEXT_NOCOPY
    3132// #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; }
     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                        }
    7480
    7581                        abort( "'answer error' error: (%d) %s\n", (int)errno, strerror(errno) );
     
    8389}
    8490
    85 int answer_error( int fd, HttpCode code ) {
    86         /* paranoid */ assert( code < KNOWN_CODES && code != OK200 );
    87         int idx = (int)code;
    88         return answer( fd, http_msgs[idx]->msg, http_msgs[idx]->len );
    89 }
     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// }
    9096
    9197static int fill_header(char * it, size_t size) {
     
    103109}
    104110
    105 #if defined(PLAINTEXT_NOCOPY)
    106 int answer_plaintext( int fd ) {
    107         return answer(fd, http_msgs[OK200_PlainText]->msg, http_msgs[OK200_PlainText]->len); // +1 cause snprintf doesn't count nullterminator
    108 }
    109 #elif defined(PLAINTEXT_MEMCPY)
    110 #define TEXTSIZE 15
    111 int answer_plaintext( int fd ) {
    112         char text[] = "Hello, World!\n\n";
    113         char ts[] = xstr(TEXTSIZE) " \n\n";
    114         _Static_assert(sizeof(text) - 1 == TEXTSIZE);
    115         char buffer[512 + TEXTSIZE];
    116         char * it = buffer;
    117         memcpy(it, http_msgs[OK200]->msg, http_msgs[OK200]->len);
    118         it += http_msgs[OK200]->len;
    119         int len = http_msgs[OK200]->len;
    120         memcpy(it, ts, sizeof(ts) - 1);
    121         it += sizeof(ts) - 1;
    122         len += sizeof(ts) - 1;
    123         memcpy(it, text, TEXTSIZE);
    124         return answer(fd, buffer, len + TEXTSIZE);
    125 }
    126 #elif defined(PLAINTEXT_1WRITE)
    127 int answer_plaintext( int fd ) {
    128         char text[] = "Hello, World!\n\n";
    129         char buffer[512 + sizeof(text)];
    130         char * it = buffer;
    131         memcpy(it, http_msgs[OK200]->msg, http_msgs[OK200]->len);
    132         it += http_msgs[OK200]->len;
    133         int len = http_msgs[OK200]->len;
    134         int r = snprintf(it, 512 - len, "%d \n\n", sizeof(text));
    135         it += r;
    136         len += r;
    137         memcpy(it, text, sizeof(text));
    138         return answer(fd, buffer, len + sizeof(text));
    139 }
    140 #else
    141 int answer_plaintext( int fd ) {
    142         char text[] = "Hello, World!\n\n";
    143         int ret = answer_header(fd, sizeof(text));
    144         if( ret < 0 ) return ret;
    145         return answer(fd, text, sizeof(text));
    146 }
    147 #endif
    148 
    149 int answer_empty( int fd ) {
    150         return answer_header(fd, 0);
    151 }
     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// }
    152158
    153159static int sendfile( int pipe[2], int fd, int ans_fd, size_t count, sendfile_stats_t & stats ) {
     
    161167        if(zipf_idx < 0) mutex(serr) serr | "SENDFILE" | count | " greated than biggest zipf file";
    162168
    163 
    164         unsigned sflags = SPLICE_F_MOVE; // | SPLICE_F_MORE;
    165         off_t offset = 0;
    166         ssize_t ret;
    167         SPLICE1: while(count > 0) {
    168                 stats.tries++;
    169                 // ret = cfa_splice(ans_fd, &offset, pipe[1], 0p, count, sflags, CFA_IO_LAZY);
    170                 ret = splice(ans_fd, &offset, pipe[1], 0p, count, sflags);
    171                 if( ret <= 0 ) {
    172                         if( errno == ECONNRESET ) return -ECONNRESET;
    173                         if( errno == EPIPE ) return -EPIPE;
    174                         abort( "splice [0] error: %d (%d) %s\n", ret, (int)errno, strerror(errno) );
    175                 }
    176                 count -= ret;
    177                 stats.splcin++;
    178                 if(count > 0) stats.avgrd[zipf_idx].calls++;
    179                 stats.avgrd[zipf_idx].bytes += ret;
    180 
    181                 size_t in_pipe = ret;
    182                 SPLICE2: while(in_pipe > 0) {
    183                         // ret = cfa_splice(pipe[0], 0p, fd, 0p, in_pipe, sflags, CFA_IO_LAZY);
    184                         ret = splice(pipe[0], 0p, fd, 0p, in_pipe, sflags);
     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);
    185179                        if( ret <= 0 ) {
    186                                 if( errno == ECONNRESET ) return -ECONNRESET;
    187                                 if( errno == EPIPE ) return -EPIPE;
    188                                 abort( "splice [1] error: %d (%d) %s\n", ret, (int)errno, strerror(errno) );
     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) );
    189191                        }
    190                         stats.splcot++;
    191                         in_pipe -= ret;
    192                 }
    193 
    194         }
     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
    195241        return count;
    196242}
    197243
    198 enum FSM_STATE {
    199         Initial,
    200         Retry,
    201         Error,
    202         Done,
    203 };
    204 
    205 struct FSM_Result {
    206         FSM_STATE state;
    207         int error;
    208 };
    209 
    210 static inline void ?{}(FSM_Result & this) { this.state = Initial; this.error = 0; }
    211 static inline bool is_error(FSM_Result & this) { return Error == this.state; }
    212 static inline bool is_done(FSM_Result & this) { return Done == this.state; }
    213 
    214 static inline int error(FSM_Result & this, int error) {
    215         this.error = error;
    216         this.state = Error;
    217         return error;
    218 }
    219 
    220 static inline int done(FSM_Result & this) {
    221         this.state = Done;
    222         return 0;
    223 }
    224 
    225 static inline int retry(FSM_Result & this) {
    226         this.state = Retry;
    227         return 0;
    228 }
    229 
    230 static inline int need(FSM_Result & this) {
    231         switch(this.state) {
    232                 case Initial:
    233                 case Retry:
    234                         return 1;
    235                 case Error:
    236                         if(this.error == 0) mutex(serr) serr | "State marked error but code is 0";
    237                 case Done:
    238                         return 0;
    239         }
    240 }
    241 
    242 // Generator that handles sending the header
    243 generator header_g {
    244         io_future_t f;
    245         const char * next;
    246         int fd; size_t len;
    247         FSM_Result res;
    248 };
    249 
    250 static inline void ?{}(header_g & this, int fd, const char * it, size_t len ) {
    251         this.next = it;
    252         this.fd = fd;
    253         this.len = len;
    254 }
    255 
    256 static inline void fill(header_g & this, struct io_uring_sqe * sqe) {
    257         zero_sqe(sqe);
    258         sqe->opcode = IORING_OP_SEND;
    259         sqe->user_data = (uintptr_t)&this.f;
    260         sqe->flags = IOSQE_IO_LINK;
    261         sqe->fd = this.fd;
    262         sqe->addr = (uintptr_t)this.next;
    263         sqe->len = this.len;
    264 }
    265 
    266 static inline int error(header_g & this, int error) {
    267         int ret = close(this.fd);
    268         if( ret != 0 ) {
    269                 mutex(serr) serr | "Failed to close fd" | errno;
    270         }
    271         return error(this.res, error);
    272 }
    273 
    274 static inline int wait_and_process(header_g & this, sendfile_stats_t & stats) {
    275         wait(this.f);
    276 
    277         // Did something crazy happen?
    278         if(this.f.result > this.len) {
    279                 mutex(serr) serr | "HEADER sent too much!";
    280                 return error(this, -ERANGE);
    281         }
    282 
    283         // Something failed?
    284         if(this.f.result < 0) {
    285                 int error = -this.f.result;
    286                 if( error == ECONNRESET ) return error(this, -ECONNRESET);
    287                 if( error == EPIPE ) return error(this, -EPIPE);
    288                 if( error == ECANCELED ) {
    289                         mutex(serr) serr | "HEADER was cancelled, WTF!";
    290                         return error(this, -ECONNRESET);
    291                 }
    292                 if( error == EAGAIN || error == EWOULDBLOCK) {
    293                         mutex(serr) serr | "HEADER got eagain, WTF!";
    294                         return error(this, -ECONNRESET);
    295                 }
    296         }
    297 
    298         // Done?
    299         if(this.f.result == this.len) {
    300                 return done(this.res);
    301         }
    302 
    303         stats.header++;
    304 
    305         // It must be a Short read
    306         this.len  -= this.f.result;
    307         this.next += this.f.result;
    308         reset(this.f);
    309         return retry(this.res);
    310 }
    311 
    312 // Generator that handles splicing in a file
    313 struct splice_in_t {
    314         io_future_t f;
    315         int fd; int pipe; size_t len; off_t off;
    316         short zipf_idx;
    317         FSM_Result res;
    318 };
    319 
    320 static inline void ?{}(splice_in_t & this, int fd, int pipe, size_t len) {
    321         this.fd = fd;
    322         this.pipe = pipe;
    323         this.len = len;
    324         this.off = 0;
    325         this.zipf_idx = -1;
    326         STATS: for(i; zipf_cnts) {
    327                 if(len <= zipf_sizes[i]) {
    328                         this.zipf_idx = i;
    329                         break STATS;
    330                 }
    331         }
    332         if(this.zipf_idx < 0) mutex(serr) serr | "SPLICE IN" | len | " greated than biggest zipf file";
    333 }
    334 
    335 static inline void fill(splice_in_t & this, struct io_uring_sqe * sqe) {
    336         zero_sqe(sqe);
    337         sqe->opcode = IORING_OP_SPLICE;
    338         sqe->user_data = (uintptr_t)&this.f;
    339         sqe->flags = 0;
    340         sqe->splice_fd_in = this.fd;
    341         sqe->splice_off_in = this.off;
    342         sqe->fd = this.pipe;
    343         sqe->off = (__u64)-1;
    344         sqe->len = this.len;
    345         sqe->splice_flags = SPLICE_F_MOVE;
    346 }
    347 
    348 static inline int wait_and_process(splice_in_t & this, sendfile_stats_t & stats ) {
    349         wait(this.f);
    350 
    351         // Something failed?
    352         if(this.f.result < 0) {
    353                 int error = -this.f.result;
    354                 if( error == ECONNRESET ) return error(this.res, -ECONNRESET);
    355                 if( error == EPIPE ) return error(this.res, -EPIPE);
    356                 if( error == ECANCELED ) {
    357                         mutex(serr) serr | "SPLICE IN was cancelled, WTF!";
    358                         return error(this.res, -ECONNRESET);
    359                 }
    360                 if( error == EAGAIN || error == EWOULDBLOCK) {
    361                         mutex(serr) serr | "SPLICE IN got eagain, WTF!";
    362                         return error(this.res, -ECONNRESET);
    363                 }
    364                 mutex(serr) serr | "SPLICE IN got" | error | ", WTF!";
    365                 return error(this.res, -ECONNRESET);
    366         }
    367 
    368         // Did something crazy happen?
    369         if(this.f.result > this.len) {
    370                 mutex(serr) serr | "SPLICE IN spliced too much!";
    371                 return error(this.res, -ERANGE);
    372         }
    373 
    374         // Done?
    375         if(this.f.result == this.len) {
    376                 return done(this.res);
    377         }
    378 
    379         stats.splcin++;
    380         stats.avgrd[this.zipf_idx].calls++;
    381         stats.avgrd[this.zipf_idx].bytes += this.f.result;
    382 
    383         // It must be a Short read
    384         this.len -= this.f.result;
    385         this.off += this.f.result;
    386         reset(this.f);
    387         return retry(this.res);
    388 }
    389 
    390 generator splice_out_g {
    391         io_future_t f;
    392         int pipe; int fd; size_t len;
    393         FSM_Result res;
    394 };
    395 
    396 static inline void ?{}(splice_out_g & this, int pipe, int fd, size_t len) {
    397         this.pipe = pipe;
    398         this.fd = fd;
    399         this.len = len;
    400 }
    401 
    402 static inline void fill(splice_out_g & this, struct io_uring_sqe * sqe) {
    403         zero_sqe(sqe);
    404         sqe->opcode = IORING_OP_SPLICE;
    405         sqe->user_data = (uintptr_t)&this.f;
    406         sqe->flags = 0;
    407         sqe->splice_fd_in = this.pipe;
    408         sqe->splice_off_in = (__u64)-1;
    409         sqe->fd = this.fd;
    410         sqe->off = (__u64)-1;
    411         sqe->len = this.len;
    412         sqe->splice_flags = SPLICE_F_MOVE;
    413 }
    414 
    415 static inline int error(splice_out_g & this, int error) {
    416         int ret = close(this.fd);
    417         if( ret != 0 ) {
    418                 mutex(serr) serr | "Failed to close fd" | errno;
    419         }
    420         return error(this.res, error);
    421 }
    422 
    423 static inline void wait_and_process(splice_out_g & this, sendfile_stats_t & stats ) {
    424         wait(this.f);
    425 
    426         // Something failed?
    427         if(this.f.result < 0) {
    428                 int error = -this.f.result;
    429                 if( error == ECONNRESET ) return error(this, -ECONNRESET);
    430                 if( error == EPIPE ) return error(this, -EPIPE);
    431                 if( error == ECANCELED ) {
    432                         this.f.result = 0;
    433                         goto SHORT_WRITE;
    434                 }
    435                 if( error == EAGAIN || error == EWOULDBLOCK) {
    436                         mutex(serr) serr | "SPLICE OUT got eagain, WTF!";
    437                         return error(this, -ECONNRESET);
    438                 }
    439                 mutex(serr) serr | "SPLICE OUT got" | error | ", WTF!";
    440                 return error(this, -ECONNRESET);
    441         }
    442 
    443         // Did something crazy happen?
    444         if(this.f.result > this.len) {
    445                 mutex(serr) serr | "SPLICE OUT spliced too much!" | this.f.result | ">" | this.len;
    446                 return error(this.res, -ERANGE);
    447         }
    448 
    449         // Done?
    450         if(this.f.result == this.len) {
    451                 return done(this.res);
    452         }
    453 
    454 SHORT_WRITE:
    455         stats.splcot++;
    456 
    457         // It must be a Short Write
    458         this.len -= this.f.result;
    459         reset(this.f);
    460         return retry(this.res);
    461 }
     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// }
    462508
    463509int answer_sendfile( int pipe[2], int fd, int ans_fd, size_t fsize, sendfile_stats_t & stats ) {
    464510        stats.calls++;
    465511        #if defined(LINKED_IO)
    466                 char buffer[512];
    467                 int len = fill_header(buffer, fsize);
    468                 header_g header = { fd, buffer, len };
    469                 splice_in_t splice_in = { ans_fd, pipe[1], fsize };
    470                 splice_out_g splice_out = { pipe[0], fd, fsize };
    471 
    472                 RETRY_LOOP: for() {
    473                         stats.tries++;
    474                         int have = need(header.res) + need(splice_in.res) + 1;
    475                         int idx = 0;
    476                         struct io_uring_sqe * sqes[3];
    477                         __u32 idxs[3];
    478                         struct $io_context * ctx = cfa_io_allocate(sqes, idxs, have);
    479 
    480                         if(need(splice_in.res)) { fill(splice_in, sqes[idx++]); }
    481                         if(need(   header.res)) { fill(header   , sqes[idx++]); }
    482                         fill(splice_out, sqes[idx]);
    483 
    484                         // Submit everything
    485                         asm volatile("": : :"memory");
    486                         cfa_io_submit( ctx, idxs, have, false );
    487 
    488                         // wait for the results
    489                         // Always wait for splice-in to complete as
    490                         // we may need to kill the connection if it fails
    491                         // If it already completed, this is a no-op
    492                         wait_and_process(splice_in, stats);
    493 
    494                         if(is_error(splice_in.res)) {
    495                                 if(splice_in.res.error == -EPIPE) return -ECONNRESET;
    496                                 mutex(serr) serr | "SPLICE IN failed with" | splice_in.res.error;
    497                                 close(fd);
    498                         }
    499 
    500                         // Process the other 2
    501                         wait_and_process(header, stats);
    502                         wait_and_process(splice_out, stats);
    503 
    504                         if(is_done(splice_out.res)) {
    505                                 break RETRY_LOOP;
    506                         }
    507 
    508                         // We need to wait for the completion if
    509                         // - both completed
    510                         // - the header failed
    511                         // -
    512 
    513                         if(  is_error(header.res)
    514                           || is_error(splice_in.res)
    515                           || is_error(splice_out.res)) {
    516                                 return -ECONNRESET;
    517                         }
    518                 }
    519 
    520                 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;
    521568        #else
    522569                int ret = answer_header(fd, fsize);
    523                 if( ret < 0 ) { close(fd); return ret; }
     570                if( ret < 0 ) { return ret; }
    524571                return sendfile(pipe, fd, ans_fd, fsize, stats);
    525572        #endif
     
    541588                }
    542589                // int ret = read(fd, (void*)it, count);
    543                 if(ret == 0 ) { close(fd); 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                }
    544595                if(ret < 0 ) {
    545                         if( errno == ECONNRESET ) { close(fd); return [E408, true, 0, 0]; }
    546                         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                        }
    547601                        abort( "read error: (%d) %s\n", (int)errno, strerror(errno) );
    548602                }
  • benchmark/io/http/protocol.hfa

    r741e22c r71cf630  
    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

    r741e22c r71cf630  
    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

    r741e22c r71cf630  
    1414#include "filecache.hfa"
    1515
    16 static const unsigned long long period = 50_000_000;
     16static const unsigned long long period = 5_000_000;
    1717
    1818//=============================================================================================
     
    3333
    3434                // if we are done, break out of the loop
    35                 if( closed ) break REQUEST;
     35                if( closed ) {
     36                        if( code != OK200 ) this.stats.sendfile.error++;
     37                        break REQUEST;
     38                }
    3639
    3740                // If this wasn't a request retrun 400
    3841                if( code != OK200 ) {
    39                         sout | "=== Invalid Request :" | code_val(code) | "===";
    40                         answer_error(fd, code);
    41                         continue REQUEST;
    42                 }
    43 
    44                 if(0 == strncmp(file, "plaintext", min(name_size, sizeof("plaintext") ))) {
    45                         if( options.log ) mutex(sout) sout | "=== Request for /plaintext ===";
    46 
    47                         int ret = answer_plaintext(fd);
    48                         if( ret == -ECONNRESET ) break REQUEST;
    49 
    50                         if( options.log ) mutex(sout) sout | "=== Answer sent ===";
    51                         continue REQUEST;
    52                 }
    53 
    54                 if(0 == strncmp(file, "ping", min(name_size, sizeof("ping") ))) {
    55                         if( options.log ) mutex(sout) sout | "=== Request for /ping ===";
    56 
    57                         // Send the header
    58                         int ret = answer_empty(fd);
    59                         if( ret == -ECONNRESET ) break REQUEST;
    60 
    61                         if( options.log ) mutex(sout) sout | "=== Answer sent ===";
    62                         continue REQUEST;
    63                 }
     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                // }
    6467
    6568                if( options.log ) {
     
    7073
    7174                if( !options.file_cache.path ) {
    72                         if( options.log ) {
    73                                 sout | "=== File Not Found (" | nonl;
    74                                 write(sout, file, name_size);
    75                                 sout | ") ===";
    76                         }
    77                         answer_error(fd, E405);
    78                         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;
    7983                }
    8084
     
    8690                // If we can't find the file, return 404
    8791                if( ans_fd < 0 ) {
    88                         if( options.log ) {
    89                                 sout | "=== File Not Found (" | nonl;
    90                                 write(sout, file, name_size);
    91                                 sout | ") ===";
    92                         }
    93                         answer_error(fd, E404);
    94                         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;
    95100                }
    96101
     
    98103                int ret = answer_sendfile( this.pipe, fd, ans_fd, count, this.stats.sendfile );
    99104                if(ret < 0) {
    100                         if( ret == -ECONNABORTED ) break REQUEST;
    101                         if( ret == -ECONNRESET ) break REQUEST;
    102                         if( ret == -EPIPE ) break REQUEST;
    103                         abort( "sendfile error: %d (%d) %s\n", ret, (int)errno, strerror(errno) );
     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) );
    104110                }
    105111
     
    107113        }
    108114
     115        this.stats.sendfile.close++;
     116
    109117        if (stats_thrd) {
    110                 unsigned long long next = rdtscl();
    111                 if(next > (last + period)) {
     118                // unsigned long long next = rdtscl();
     119                // if(next > (last + period)) {
    112120                        if(try_lock(stats_thrd->stats.lock __cfaabi_dbg_ctx2)) {
    113121                                push(this.stats.sendfile, stats_thrd->stats.send);
    114122                                unlock(stats_thrd->stats.lock);
    115                                 last = next;
    116                         }
    117                 }
     123                                // last = next;
     124                        }
     125                // }
    118126        }
    119127}
     
    144152                if(this.done) break;
    145153
     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                }
     159
    146160                if( options.log ) mutex(sout) sout | "=== New connection" | fd | "" | ", waiting for requests ===";
    147161                size_t len = options.socket.buflen;
     
    149163                handle_connection( this.conn, fd, buffer, len, 0p, last );
    150164                this.conn.stats.sendfile.maxfd = max(this.conn.stats.sendfile.maxfd, fd);
    151                 this.conn.stats.sendfile.close++;
    152165
    153166                if( options.log ) mutex(sout) sout | "=== Connection closed ===";
     
    172185        /* paranoid */ assert( this.conn.pipe[1] != -1 );
    173186        this.conn.stats.sendfile.maxfd = max(this.conn.pipe[0], this.conn.pipe[1]);
     187        // this.conn.stats.sendfile.maxfd = 0;
    174188        for() {
    175189                size_t len = options.socket.buflen;
     
    220234                p = pop(*this.queue);
    221235                if(p) break;
     236                // abort( "Too few threads" );
    222237                yield();
    223238                this.stats.creates++;
     
    288303
    289304                if (stats_thrd) {
    290                         unsigned long long next = rdtscl();
    291                         if(next > (last + period)) {
     305                        // unsigned long long next = rdtscl();
     306                        // if(next > (last + period)) {
    292307                                if(try_lock(stats_thrd->stats.lock)) {
    293308                                        push(this.stats, stats_thrd->stats.accpt);
    294309                                        unlock(stats_thrd->stats.lock);
    295                                         last = next;
     310                                        // last = next;
    296311                                }
    297                         }
     312                        // }
    298313                }
    299314
  • benchmark/io/http/worker.hfa

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

    r741e22c r71cf630  
    1818import statistics
    1919import sys
    20 
     20import time
     21
     22import matplotlib
    2123import matplotlib.pyplot as plt
    22 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"
    2333
    2434class Field:
     
    3242field_names = {
    3343        "ns per ops"            : Field('ns'    , 0, False),
    34         "Number of processors"  : Field(''      , 1, False),
     44        "Number of processors"  : Field(''      , 1, "exact"),
    3545        "Ops per procs"         : Field('Ops'   , 0, False),
    3646        "Ops per threads"       : Field('Ops'   , 0, False),
    37         "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)" ),
    3848        "Number of threads"     : Field(''      , 1, False),
    3949        "Total Operations(ops)" : Field('Ops'   , 0, False),
     
    4555        "Target QPS"            : Field(''      , 0, False),
    4656        "Actual QPS"            : Field(''      , 0, False),
    47         "Average Read Latency"  : Field('s'     , 0, True, _factor = 0.000001),
     57        "Average Read Latency"  : Field('s'     , 0, False, _factor = 0.000001),
    4858        "Median Read Latency"   : Field('s'     , 0, True, _factor = 0.000001),
    4959        "Tail Read Latency"     : Field('s'     , 0, True, _factor = 0.000001),
     
    5161        "Median Update Latency" : Field('s'     , 0, True, _factor = 0.000001),
    5262        "Tail Update Latency"   : Field('s'     , 0, True, _factor = 0.000001),
    53         "Update Ratio"          : Field('\%'    , 0, False),
     63        "Update Ratio"          : Field('%'   , 0, False),
    5464        "Request Rate"          : Field('req/s' , 0, False),
    5565        "Data Rate"             : Field('b/s'   , 0, False, _factor = 1000 * 1000, _name = "Response Throughput"),
     66        "Errors"                : Field('%'   , 0, False),
    5667}
    5768
     
    6677        for entry in in_data:
    6778                name = entry[0]
     79                if options.filter and not name.startswith(options.filter):
     80                        continue
     81
    6882                if not name in series:
    6983                        series[name] = {'x':[], 'y':[]}
     
    123137        elif field_names[x].log:
    124138                ax.set_xscale('log')
     139                if field_names[x].log == "exact":
     140                        xvals = set()
     141                        for s in series.values():
     142                                xvals |= set(s['x'])
     143                        ax.set_xticks(sorted(xvals))
     144                        ax.get_xaxis().set_major_formatter(ScalarFormatter())
     145                        plt.xticks(rotation = 45)
    125146        else:
    126147                plt.xlim(field_names[x].min, mx + 0.25)
     
    138159
    139160        print("Results Ready")
     161        start = time.time()
    140162        if options.out:
    141163                plt.savefig(options.out, bbox_inches='tight')
    142164        else:
    143165                plt.show()
     166        end = time.time()
     167        print("Took {}".format(fmtDur(end - start)))
    144168
    145169
     
    155179        parser.add_argument('--logy', action='store_true', help="if set, makes the y-axis logscale")
    156180        parser.add_argument('--MaxY', nargs='?', type=int, help="maximum value of the y-axis")
     181        parser.add_argument('--filter', nargs='?', type=str, default="", help="if not empty, only print series that start with specified filter")
    157182
    158183        options =  parser.parse_args()
     184
     185        # if not options.out:
     186        #       matplotlib.use('SVG')
    159187
    160188        # ================================================================================
     
    178206                        fields.add(label)
    179207
    180         # find the common prefix on series for removal
     208        # filter out the series if needed
     209        if options.filter:
     210                series = set(filter(lambda elem: elem.startswith(options.filter), series))
     211
     212        # find the common prefix on series for removal (only if no filter)
    181213        prefix = os.path.commonprefix(list(series))
    182214
  • benchmark/process-trun.py

    r741e22c r71cf630  
    6565                        'ActRateC':     float(vals[16]),
    6666                        'ActRate':      float(vals[17]),
    67                         'ErrRate':      float(vals[18]),
     67                        'Error Rate':   float(vals[18]),
    6868                        'SamplesT':     float(vals[19]),
    6969                        'SamplesR':     float(vals[20])
  • doc/bibliography/pl.bib

    r741e22c r71cf630  
    78377837}
    78387838
     7839@misc{Tokio,
     7840    contributer = {pabuhr@plg},
     7841    key         = {Tokio},
     7842    title       = {{T}okio Asynchronous Runtime for {R}ust},
     7843    author      = {Tokio},
     7844    howpublished= {\href{https://tokio.rs}{https://\-tokio.rs}},
     7845}
     7846
    78397847@misc{Bumbulis90,
    78407848    keywords    = {parameter inference, ForceN},
     
    81528160    doi         = {10.1145/3379483},
    81538161    journal     = {Proc. ACM Meas. Anal. Comput. Syst.},
    8154     month       = mar,
     8162    month       = jun,
    81558163    numpages    = {30},
    81568164}
  • doc/theses/thierry_delisle_PhD/thesis/Makefile

    r741e22c r71cf630  
    2626        eval_micro \
    2727        eval_macro \
     28        conclusion \
    2829}}
    2930
     
    5455        result.yield.nasus.ops \
    5556        result.churn.jax.ops \
     57        result.churn.nasus.ops \
     58        result.locality.share.jax.ops \
     59        result.locality.share.nasus.ops \
     60        result.locality.noshare.jax.ops \
     61        result.locality.noshare.nasus.ops \
    5662        result.cycle.jax.ns \
    5763        result.cycle.nasus.ns \
     
    5965        result.yield.nasus.ns \
    6066        result.churn.jax.ns \
     67        result.churn.nasus.ns \
     68        result.locality.share.jax.ns \
     69        result.locality.share.nasus.ns \
     70        result.locality.noshare.jax.ns \
     71        result.locality.noshare.nasus.ns \
    6172        result.cycle.low.jax.ops \
    6273        result.cycle.low.nasus.ops \
     
    6475        result.yield.low.nasus.ops \
    6576        result.churn.low.jax.ops \
     77        result.churn.low.nasus.ops \
    6678        result.cycle.low.jax.ns \
    6779        result.cycle.low.nasus.ns \
     
    6981        result.yield.low.nasus.ns \
    7082        result.churn.low.jax.ns \
    71         result.memcd.updt.qps \
    72         result.memcd.updt.lat \
     83        result.churn.low.nasus.ns \
    7384        result.memcd.rate.qps \
    7485        result.memcd.rate.99th \
     86        result.memcd.forall.qps \
     87        result.memcd.forall.lat \
     88        result.memcd.fibre.qps \
     89        result.memcd.fibre.lat \
     90        result.memcd.vanilla.qps \
     91        result.memcd.vanilla.lat \
    7592        result.swbsrv.25gb \
     93        result.swbsrv.25gb.err \
    7694        SQMS
    7795
     
    162180yield_jax_ops_FLAGS = --MaxY=1000000000
    163181yield_low_jax_ops_FLAGS = --MaxY=1000000000
    164 yield_jax_ns_FLAGS = --MaxY=1500
    165 yield_low_jax_ns_FLAGS = --MaxY=1500
     182yield_jax_ns_FLAGS = --MaxY=4000
     183yield_low_jax_ns_FLAGS = --MaxY=4000
     184
     185yield_nasus_ops_FLAGS = --MaxY=1500000000
     186yield_low_nasus_ops_FLAGS = --MaxY=1500000000
     187yield_nasus_ns_FLAGS = --MaxY=1500
     188yield_low_nasus_ns_FLAGS = --MaxY=1500
     189
     190churn_jax_ops_FLAGS = --MaxY=50000000
     191churn_low_jax_ops_FLAGS = --MaxY=50000000
     192churn_jax_ns_FLAGS = --MaxY=20000
     193churn_low_jax_ns_FLAGS = --MaxY=20000
     194
     195churn_nasus_ops_FLAGS = --MaxY=75000000
     196churn_low_nasus_ops_FLAGS = --MaxY=75000000
     197churn_nasus_ns_FLAGS = --MaxY=20000
     198churn_low_nasus_ns_FLAGS = --MaxY=20000
    166199
    167200build/result.%.ns.svg : data/% Makefile ../../../../benchmark/plot.py | ${Build}
     
    171204        ../../../../benchmark/plot.py -f $< -o $@ -y "Ops per second" $($(subst .,_,$*)_ops_FLAGS)
    172205
    173 build/result.memcd.updt.qps.svg : data/memcd.updt Makefile ../../../../benchmark/plot.py | ${Build}
    174         ../../../../benchmark/plot.py -f $< -o $@ -y "Actual QPS" -x "Update Ratio"
    175 
    176 build/result.memcd.updt.lat.svg : data/memcd.updt Makefile ../../../../benchmark/plot.py | ${Build}
    177         ../../../../benchmark/plot.py -f $< -o $@ -y "Average Read Latency" -x "Update Ratio"
    178 
    179206build/result.memcd.rate.qps.svg : data/memcd.rate Makefile ../../../../benchmark/plot.py | ${Build}
    180         ../../../../benchmark/plot.py -f $< -o $@ -y "Actual QPS" -x "Target QPS"
     207        ../../../../benchmark/plot.py -f $< -o $@ -y "Actual QPS" -x "Target QPS" --MaxY=750000
    181208
    182209build/result.memcd.rate.99th.svg : data/memcd.rate Makefile ../../../../benchmark/plot.py | ${Build}
    183210        ../../../../benchmark/plot.py -f $< -o $@ -y "Tail Read Latency" -x "Target QPS"
    184211
     212build/result.memcd.forall.qps.svg : data/memcd.updt Makefile ../../../../benchmark/plot.py | ${Build}
     213        ../../../../benchmark/plot.py -f $< -o $@ -y "Actual QPS" -x "Target QPS" --filter forall --MaxY=700000
     214
     215build/result.memcd.forall.lat.svg : data/memcd.updt Makefile ../../../../benchmark/plot.py | ${Build}
     216        ../../../../benchmark/plot.py -f $< -o $@ -y "Tail Read Latency" -x "Target QPS" --filter forall --MaxY=1
     217
     218build/result.memcd.vanilla.qps.svg : data/memcd.updt Makefile ../../../../benchmark/plot.py | ${Build}
     219        ../../../../benchmark/plot.py -f $< -o $@ -y "Actual QPS" -x "Target QPS" --filter vanilla --MaxY=700000
     220
     221build/result.memcd.vanilla.lat.svg : data/memcd.updt Makefile ../../../../benchmark/plot.py | ${Build}
     222        ../../../../benchmark/plot.py -f $< -o $@ -y "Tail Read Latency" -x "Target QPS" --filter vanilla --MaxY=1
     223
     224build/result.memcd.fibre.qps.svg : data/memcd.updt Makefile ../../../../benchmark/plot.py | ${Build}
     225        ../../../../benchmark/plot.py -f $< -o $@ -y "Actual QPS" -x "Target QPS" --filter fibre --MaxY=700000
     226
     227build/result.memcd.fibre.lat.svg : data/memcd.updt Makefile ../../../../benchmark/plot.py | ${Build}
     228        ../../../../benchmark/plot.py -f $< -o $@ -y "Tail Read Latency" -x "Target QPS" --filter fibre --MaxY=1
     229
    185230build/swbsrv.% : data/swbsrv.%.nginx data/swbsrv.%.cfa Makefile ../../../../benchmark/process-trun.py | ${Build}
    186231        ../../../../benchmark/process-trun.py --out $@ $^
     
    188233build/result.swbsrv.%.svg : build/swbsrv.% Makefile ../../../../benchmark/plot.py | ${Build}
    189234        ../../../../benchmark/plot.py -f $< -o $@ -y "Data Rate" -x "Request Rate"
     235
     236build/result.swbsrv.%.err.svg : build/swbsrv.% Makefile ../../../../benchmark/plot.py | ${Build}
     237        ../../../../benchmark/plot.py -f $< -o $@ -y "Errors" -x "Request Rate"
    190238
    191239## pstex with inverted colors
  • doc/theses/thierry_delisle_PhD/thesis/data/churn.jax

    r741e22c r71cf630  
    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-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30028.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 775087297.0, "Total blocks": 404231307.0, "Ops per second": 25811832.87, "ns per ops": 38.74, "Ops per threads": 40369.0, "Ops per procs": 4036913.0, "Ops/sec/procs": 134436.63, "ns per ops/procs": 7438.45}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30061.688608, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 543388831.0, "Total blocks": 199631300.0, "Ops per second": 18075792.02, "ns per ops": 55.32, "Ops per threads": 56603.0, "Ops per procs": 5660300.0, "Ops/sec/procs": 188289.5, "ns per ops/procs": 5310.97}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30019.153973, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 352793765.0, "Total blocks": 143605059.0, "Ops per second": 11752288.73, "ns per ops": 85.09, "Ops per threads": 146997.0, "Ops per procs": 14699740.0, "Ops/sec/procs": 489678.7, "ns per ops/procs": 2042.16}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30027.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 512527014.0, "Ops per second": 17084233.0, "ns per ops": 58.0, "Ops per threads": 53388.0, "Ops per procs": 5338823.0, "Ops/sec/procs": 177960.0, "ns per ops/procs": 5624.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30027.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 503331584.0, "Ops per second": 16777719.0, "ns per ops": 59.0, "Ops per threads": 52430.0, "Ops per procs": 5243037.0, "Ops/sec/procs": 174767.0, "ns per ops/procs": 5727.0}],["rdq-churn-fibre", "./rdq-churn-fibre -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)": 783222911.0, "Total blocks": 408475998.0, "Ops per second": 26070681.19, "ns per ops": 38.36, "Ops per threads": 40792.0, "Ops per procs": 4079285.0, "Ops/sec/procs": 135784.8, "ns per ops/procs": 7364.6}],["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)": 160059884.0, "Ops per second": 5328609.11, "ns per ops": 187.67, "Ops per threads": 400149.0, "Ops per procs": 40014971.0, "Ops/sec/procs": 1332152.28, "ns per ops/procs": 750.66}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30010.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 792336457.0, "Total blocks": 415790249.0, "Ops per second": 26401856.27, "ns per ops": 37.88, "Ops per threads": 41267.0, "Ops per procs": 4126752.0, "Ops/sec/procs": 137509.67, "ns per ops/procs": 7272.22}],["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)": 155445492.0, "Ops per second": 5174967.48, "ns per ops": 193.24, "Ops per threads": 388613.0, "Ops per procs": 38861373.0, "Ops/sec/procs": 1293741.87, "ns per ops/procs": 772.95}],["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)": 408159929.0, "Ops per second": 13605330.0, "ns per ops": 73.0, "Ops per threads": 56688.0, "Ops per procs": 5668887.0, "Ops/sec/procs": 188962.0, "ns per ops/procs": 5297.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30027.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 487339699.0, "Ops per second": 16244656.0, "ns per ops": 61.0, "Ops per threads": 50764.0, "Ops per procs": 5076455.0, "Ops/sec/procs": 169215.0, "ns per ops/procs": 5915.0}],["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)": 135283736.0, "Ops per second": 4503912.36, "ns per ops": 222.03, "Ops per threads": 169104.0, "Ops per procs": 16910467.0, "Ops/sec/procs": 562989.04, "ns per ops/procs": 1776.23}],["rdq-churn-fibre", "./rdq-churn-fibre -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)": 375990442.0, "Total blocks": 204683717.0, "Ops per second": 12518702.65, "ns per ops": 79.88, "Ops per threads": 156662.0, "Ops per procs": 15666268.0, "Ops/sec/procs": 521612.61, "ns per ops/procs": 1917.13}],["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)": 545210188.0, "Total blocks": 303103740.0, "Ops per second": 18120059.32, "ns per ops": 55.19, "Ops per threads": 113585.0, "Ops per procs": 11358545.0, "Ops/sec/procs": 377501.24, "ns per ops/procs": 2649.0}],["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)": 216943841.0, "Ops per second": 7231461.0, "ns per ops": 138.0, "Ops per threads": 271179.0, "Ops per procs": 27117980.0, "Ops/sec/procs": 903932.0, "ns per ops/procs": 1107.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)": 296405716.0, "Total blocks": 152607514.0, "Ops per second": 9869934.72, "ns per ops": 101.32, "Ops per threads": 185253.0, "Ops per procs": 18525357.0, "Ops/sec/procs": 616870.92, "ns per ops/procs": 1621.08}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30022.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 694369635.0, "Ops per second": 23128465.11, "ns per ops": 43.24, "Ops per threads": 96440.0, "Ops per procs": 9644022.0, "Ops/sec/procs": 321228.68, "ns per ops/procs": 3113.05}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30052.127905, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 467817207.0, "Total blocks": 2799374.0, "Ops per second": 15566857.98, "ns per ops": 64.24, "Ops per threads": 2339086.0, "Ops per procs": 233908603.0, "Ops/sec/procs": 7783428.99, "ns per ops/procs": 128.48}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30062.953207, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 712197789.0, "Total blocks": 208822882.0, "Ops per second": 23690213.8, "ns per ops": 42.21, "Ops per threads": 148374.0, "Ops per procs": 14837453.0, "Ops/sec/procs": 493546.12, "ns per ops/procs": 2026.15}],["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)": 986417269.0, "Ops per second": 32880575.0, "ns per ops": 30.0, "Ops per threads": 51375.0, "Ops per procs": 5137589.0, "Ops/sec/procs": 171252.0, "ns per ops/procs": 5840.0}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30074.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 201149877.0, "Ops per second": 6688427.28, "ns per ops": 149.51, "Ops per threads": 20953.0, "Ops per procs": 2095311.0, "Ops/sec/procs": 69671.12, "ns per ops/procs": 14353.15}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30025.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 472492168.0, "Ops per second": 15749738.0, "ns per ops": 63.0, "Ops per threads": 49217.0, "Ops per procs": 4921793.0, "Ops/sec/procs": 164059.0, "ns per ops/procs": 6100.0}],["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)": 251920172.0, "Ops per second": 8386055.25, "ns per ops": 119.25, "Ops per threads": 104966.0, "Ops per procs": 10496673.0, "Ops/sec/procs": 349418.97, "ns per ops/procs": 2861.89}],["rdq-churn-tokio", "./rdq-churn-tokio -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": 6.0, "Total Operations(ops)": 172701039.0, "Ops per second": 5756701.0, "ns per ops": 173.0, "Ops per threads": 863505.0, "Ops per procs": 86350519.0, "Ops/sec/procs": 2878350.0, "ns per ops/procs": 347.0}],["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)": 135806420.0, "Total blocks": 82215722.0, "Ops per second": 4512342.79, "ns per ops": 221.61, "Ops per threads": 339516.0, "Ops per procs": 33951605.0, "Ops/sec/procs": 1128085.7, "ns per ops/procs": 886.46}],["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)": 457624314.0, "Ops per second": 15231124.17, "ns per ops": 65.66, "Ops per threads": 23834.0, "Ops per procs": 2383459.0, "Ops/sec/procs": 79328.77, "ns per ops/procs": 12605.77}],["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)": 554873159.0, "Total blocks": 305543980.0, "Ops per second": 18441195.37, "ns per ops": 54.23, "Ops per threads": 115598.0, "Ops per procs": 11559857.0, "Ops/sec/procs": 384191.57, "ns per ops/procs": 2602.87}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.31041, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 453264749.0, "Total blocks": 6565476.0, "Ops per second": 15083027.76, "ns per ops": 66.3, "Ops per threads": 2266323.0, "Ops per procs": 226632374.0, "Ops/sec/procs": 7541513.88, "ns per ops/procs": 132.6}],["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)": 131650327.0, "Ops per second": 4383846.14, "ns per ops": 228.11, "Ops per threads": 164562.0, "Ops per procs": 16456290.0, "Ops/sec/procs": 547980.77, "ns per ops/procs": 1824.88}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30058.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 470012231.0, "Ops per second": 15636753.0, "ns per ops": 63.95, "Ops per threads": 32639.0, "Ops per procs": 3263973.0, "Ops/sec/procs": 108588.56, "ns per ops/procs": 9209.07}],["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)": 424245709.0, "Ops per second": 14141523.0, "ns per ops": 70.0, "Ops per threads": 58923.0, "Ops per procs": 5892301.0, "Ops/sec/procs": 196410.0, "ns per ops/procs": 5099.0}],["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)": 368453841.0, "Ops per second": 12262693.32, "ns per ops": 81.55, "Ops per threads": 76761.0, "Ops per procs": 7676121.0, "Ops/sec/procs": 255472.78, "ns per ops/procs": 3914.31}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30062.140188, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 684141485.0, "Total blocks": 248502568.0, "Ops per second": 22757577.5, "ns per ops": 43.94, "Ops per threads": 142529.0, "Ops per procs": 14252947.0, "Ops/sec/procs": 474116.2, "ns per ops/procs": 2109.19}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30078.901127, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 300801344.0, "Total blocks": 123853239.0, "Ops per second": 10000410.01, "ns per ops": 100.0, "Ops per threads": 188000.0, "Ops per procs": 18800084.0, "Ops/sec/procs": 625025.63, "ns per ops/procs": 1599.93}],["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)": 376164338.0, "Total blocks": 204665143.0, "Ops per second": 12525429.52, "ns per ops": 79.84, "Ops per threads": 156735.0, "Ops per procs": 15673514.0, "Ops/sec/procs": 521892.9, "ns per ops/procs": 1916.1}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30060.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 319541309.0, "Ops per second": 10651376.0, "ns per ops": 94.0, "Ops per threads": 199713.0, "Ops per procs": 19971331.0, "Ops/sec/procs": 665711.0, "ns per ops/procs": 1505.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30079.141425, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 295232797.0, "Total blocks": 110900678.0, "Ops per second": 9815200.27, "ns per ops": 101.88, "Ops per threads": 184520.0, "Ops per procs": 18452049.0, "Ops/sec/procs": 613450.02, "ns per ops/procs": 1630.12}],["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)": 296563233.0, "Total blocks": 152340919.0, "Ops per second": 9875531.26, "ns per ops": 101.26, "Ops per threads": 185352.0, "Ops per procs": 18535202.0, "Ops/sec/procs": 617220.7, "ns per ops/procs": 1620.17}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30002.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 985856666.0, "Ops per second": 32861888.0, "ns per ops": 30.0, "Ops per threads": 51346.0, "Ops per procs": 5134670.0, "Ops/sec/procs": 171155.0, "ns per ops/procs": 5843.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30007.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 998189774.0, "Ops per second": 33272992.0, "ns per ops": 30.0, "Ops per threads": 51989.0, "Ops per procs": 5198905.0, "Ops/sec/procs": 173296.0, "ns per ops/procs": 5771.0}],["rdq-churn-go", "./rdq-churn-go -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)": 245078750.0, "Ops per second": 8158085.75, "ns per ops": 122.58, "Ops per threads": 102116.0, "Ops per procs": 10211614.0, "Ops/sec/procs": 339920.24, "ns per ops/procs": 2941.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)": 192000591.0, "Total blocks": 0.0, "Ops per second": 6394281.39, "ns per ops": 156.39, "Ops per threads": 1920005.0, "Ops per procs": 192000591.0, "Ops/sec/procs": 6394281.39, "ns per ops/procs": 156.39}],["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)": 136006630.0, "Ops per second": 4533328.82, "ns per ops": 220.59, "Ops per threads": 1360066.0, "Ops per procs": 136006630.0, "Ops/sec/procs": 4533328.82, "ns per ops/procs": 220.59}],["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)": 192361692.0, "Total blocks": 0.0, "Ops per second": 6406293.39, "ns per ops": 156.1, "Ops per threads": 1923616.0, "Ops per procs": 192361692.0, "Ops/sec/procs": 6406293.39, "ns per ops/procs": 156.1}],["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)": 460261703.0, "Ops per second": 15342056.0, "ns per ops": 65.0, "Ops per threads": 4602617.0, "Ops per procs": 460261703.0, "Ops/sec/procs": 15342056.0, "ns per ops/procs": 65.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30046.030706, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 647200348.0, "Total blocks": 197301204.0, "Ops per second": 21540294.43, "ns per ops": 46.42, "Ops per threads": 33708.0, "Ops per procs": 3370835.0, "Ops/sec/procs": 112189.03, "ns per ops/procs": 8913.53}],["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)": 836897804.0, "Ops per second": 27896593.0, "ns per ops": 35.0, "Ops per threads": 58117.0, "Ops per procs": 5811790.0, "Ops/sec/procs": 193726.0, "ns per ops/procs": 5162.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30031.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 157805979.0, "Total blocks": 87396338.0, "Ops per second": 5254667.45, "ns per ops": 190.31, "Ops per threads": 197257.0, "Ops per procs": 19725747.0, "Ops/sec/procs": 656833.43, "ns per ops/procs": 1522.46}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30028.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 186781894.0, "Ops per second": 6226063.0, "ns per ops": 160.0, "Ops per threads": 933909.0, "Ops per procs": 93390947.0, "Ops/sec/procs": 3113031.0, "ns per ops/procs": 321.0}],["rdq-churn-fibre", "./rdq-churn-fibre -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": 8.0, "Total Operations(ops)": 162169417.0, "Total blocks": 87662797.0, "Ops per second": 5401302.93, "ns per ops": 185.14, "Ops per threads": 202711.0, "Ops per procs": 20271177.0, "Ops/sec/procs": 675162.87, "ns per ops/procs": 1481.12}],["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)": 142536673.0, "Ops per second": 4745964.92, "ns per ops": 210.71, "Ops per threads": 178170.0, "Ops per procs": 17817084.0, "Ops/sec/procs": 593245.62, "ns per ops/procs": 1685.64}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30036.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 483037285.0, "Ops per second": 16081495.56, "ns per ops": 62.18, "Ops per threads": 33544.0, "Ops per procs": 3354425.0, "Ops/sec/procs": 111677.05, "ns per ops/procs": 8954.39}],["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)": 977159836.0, "Ops per second": 32571994.0, "ns per ops": 30.0, "Ops per threads": 50893.0, "Ops per procs": 5089374.0, "Ops/sec/procs": 169645.0, "ns per ops/procs": 5895.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30071.391844, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 414077131.0, "Total blocks": 163209730.0, "Ops per second": 13769802.65, "ns per ops": 72.62, "Ops per threads": 57510.0, "Ops per procs": 5751071.0, "Ops/sec/procs": 191247.26, "ns per ops/procs": 5228.83}],["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)": 137584581.0, "Ops per second": 4583678.86, "ns per ops": 218.17, "Ops per threads": 1375845.0, "Ops per procs": 137584581.0, "Ops/sec/procs": 4583678.86, "ns per ops/procs": 218.17}],["rdq-churn-fibre", "./rdq-churn-fibre -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": 16.0, "Total Operations(ops)": 266894786.0, "Total blocks": 135518665.0, "Ops per second": 8880272.12, "ns per ops": 112.61, "Ops per threads": 166809.0, "Ops per procs": 16680924.0, "Ops/sec/procs": 555017.01, "ns per ops/procs": 1801.75}],["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)": 465600611.0, "Ops per second": 15498522.7, "ns per ops": 64.52, "Ops per threads": 32333.0, "Ops per procs": 3233337.0, "Ops/sec/procs": 107628.63, "ns per ops/procs": 9291.21}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30042.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 488868938.0, "Total blocks": 261283346.0, "Ops per second": 16272639.91, "ns per ops": 61.45, "Ops per threads": 50923.0, "Ops per procs": 5092384.0, "Ops/sec/procs": 169506.67, "ns per ops/procs": 5899.47}],["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)": 232582304.0, "Ops per second": 7730307.17, "ns per ops": 129.36, "Ops per threads": 24227.0, "Ops per procs": 2422732.0, "Ops/sec/procs": 80524.03, "ns per ops/procs": 12418.65}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30079.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 183230624.0, "Ops per second": 6091572.05, "ns per ops": 164.16, "Ops per threads": 19086.0, "Ops per procs": 1908652.0, "Ops/sec/procs": 63453.88, "ns per ops/procs": 15759.48}],["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)": 192396324.0, "Total blocks": 0.0, "Ops per second": 6407436.98, "ns per ops": 156.07, "Ops per threads": 1923963.0, "Ops per procs": 192396324.0, "Ops/sec/procs": 6407436.98, "ns per ops/procs": 156.07}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30067.964155, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 494289464.0, "Total blocks": 181620434.0, "Ops per second": 16439073.21, "ns per ops": 60.83, "Ops per threads": 68651.0, "Ops per procs": 6865131.0, "Ops/sec/procs": 228320.46, "ns per ops/procs": 4379.81}],["rdq-churn-fibre", "./rdq-churn-fibre -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)": 481529161.0, "Total blocks": 260563600.0, "Ops per second": 16023902.26, "ns per ops": 62.41, "Ops per threads": 50159.0, "Ops per procs": 5015928.0, "Ops/sec/procs": 166915.65, "ns per ops/procs": 5991.05}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30017.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 534842996.0, "Ops per second": 17828099.0, "ns per ops": 56.0, "Ops per threads": 111425.0, "Ops per procs": 11142562.0, "Ops/sec/procs": 371418.0, "ns per ops/procs": 2693.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30058.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 476822183.0, "Total blocks": 254732896.0, "Ops per second": 15862947.55, "ns per ops": 63.04, "Ops per threads": 49668.0, "Ops per procs": 4966897.0, "Ops/sec/procs": 165239.04, "ns per ops/procs": 6051.84}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30072.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 264210299.0, "Ops per second": 8785813.75, "ns per ops": 113.82, "Ops per threads": 27521.0, "Ops per procs": 2752190.0, "Ops/sec/procs": 91518.89, "ns per ops/procs": 10926.71}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30056.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 407465726.0, "Ops per second": 13582190.0, "ns per ops": 73.0, "Ops per threads": 56592.0, "Ops per procs": 5659246.0, "Ops/sec/procs": 188641.0, "ns per ops/procs": 5311.0}],["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)": 306541991.0, "Ops per second": 10218066.0, "ns per ops": 98.0, "Ops per threads": 191588.0, "Ops per procs": 19158874.0, "Ops/sec/procs": 638629.0, "ns per ops/procs": 1569.0}],["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)": 390845899.0, "Total blocks": 206060873.0, "Ops per second": 12996953.06, "ns per ops": 76.94, "Ops per threads": 54284.0, "Ops per procs": 5428415.0, "Ops/sec/procs": 180513.24, "ns per ops/procs": 5539.76}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30095.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 167495069.0, "Ops per second": 5583168.0, "ns per ops": 179.0, "Ops per threads": 837475.0, "Ops per procs": 83747534.0, "Ops/sec/procs": 2791584.0, "ns per ops/procs": 359.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30038.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 780552772.0, "Total blocks": 407043017.0, "Ops per second": 25984742.95, "ns per ops": 38.48, "Ops per threads": 40653.0, "Ops per procs": 4065379.0, "Ops/sec/procs": 135337.2, "ns per ops/procs": 7388.95}],["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)": 448309460.0, "Ops per second": 14919021.52, "ns per ops": 67.03, "Ops per threads": 23349.0, "Ops per procs": 2334945.0, "Ops/sec/procs": 77703.24, "ns per ops/procs": 12869.48}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30066.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 169263964.0, "Ops per second": 5642132.0, "ns per ops": 177.0, "Ops per threads": 423159.0, "Ops per procs": 42315991.0, "Ops/sec/procs": 1410533.0, "ns per ops/procs": 710.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.54681, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 159223231.0, "Total blocks": 70044695.0, "Ops per second": 5297632.15, "ns per ops": 188.76, "Ops per threads": 398058.0, "Ops per procs": 39805807.0, "Ops/sec/procs": 1324408.04, "ns per ops/procs": 755.05}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30094.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 548287465.0, "Total blocks": 305089836.0, "Ops per second": 18218870.01, "ns per ops": 54.89, "Ops per threads": 114226.0, "Ops per procs": 11422655.0, "Ops/sec/procs": 379559.79, "ns per ops/procs": 2634.63}],["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)": 120049888.0, "Ops per second": 3998568.36, "ns per ops": 250.09, "Ops per threads": 600249.0, "Ops per procs": 60024944.0, "Ops/sec/procs": 1999284.18, "ns per ops/procs": 500.18}],["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)": 279911096.0, "Total blocks": 144090777.0, "Ops per second": 9318425.82, "ns per ops": 107.31, "Ops per threads": 174944.0, "Ops per procs": 17494443.0, "Ops/sec/procs": 582401.61, "ns per ops/procs": 1717.03}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30087.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 545643335.0, "Total blocks": 303234090.0, "Ops per second": 18135277.06, "ns per ops": 55.14, "Ops per threads": 113675.0, "Ops per procs": 11367569.0, "Ops/sec/procs": 377818.27, "ns per ops/procs": 2646.78}],["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)": 460793792.0, "Ops per second": 15359793.0, "ns per ops": 65.0, "Ops per threads": 4607937.0, "Ops per procs": 460793792.0, "Ops/sec/procs": 15359793.0, "ns per ops/procs": 65.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30029.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 639376150.0, "Total blocks": 355973512.0, "Ops per second": 21291911.7, "ns per ops": 46.97, "Ops per threads": 44401.0, "Ops per procs": 4440112.0, "Ops/sec/procs": 147860.5, "ns per ops/procs": 6763.13}],["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)": 502488599.0, "Ops per second": 16749619.0, "ns per ops": 59.0, "Ops per threads": 209370.0, "Ops per procs": 20937024.0, "Ops/sec/procs": 697900.0, "ns per ops/procs": 1433.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30060.753483, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 196376229.0, "Total blocks": 84755954.0, "Ops per second": 6532644.94, "ns per ops": 153.08, "Ops per threads": 245470.0, "Ops per procs": 24547028.0, "Ops/sec/procs": 816580.62, "ns per ops/procs": 1224.62}],["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)": 192462187.0, "Total blocks": 0.0, "Ops per second": 6409675.84, "ns per ops": 156.01, "Ops per threads": 1924621.0, "Ops per procs": 192462187.0, "Ops/sec/procs": 6409675.84, "ns per ops/procs": 156.01}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30060.469266, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 195057481.0, "Total blocks": 81540497.0, "Ops per second": 6488836.86, "ns per ops": 154.11, "Ops per threads": 243821.0, "Ops per procs": 24382185.0, "Ops/sec/procs": 811104.61, "ns per ops/procs": 1232.89}],["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)": 258207887.0, "Ops per second": 8595455.81, "ns per ops": 116.34, "Ops per threads": 107586.0, "Ops per procs": 10758661.0, "Ops/sec/procs": 358143.99, "ns per ops/procs": 2792.17}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30049.529478, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1200693899.0, "Total blocks": 0.0, "Ops per second": 39957161.39, "ns per ops": 25.03, "Ops per threads": 12006938.0, "Ops per procs": 1200693899.0, "Ops/sec/procs": 39957161.39, "ns per ops/procs": 25.03}],["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)": 152340100.0, "Ops per second": 5071775.49, "ns per ops": 197.17, "Ops per threads": 380850.0, "Ops per procs": 38085025.0, "Ops/sec/procs": 1267943.87, "ns per ops/procs": 788.68}],["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)": 363680107.0, "Ops per second": 12104730.4, "ns per ops": 82.61, "Ops per threads": 75766.0, "Ops per procs": 7576668.0, "Ops/sec/procs": 252181.88, "ns per ops/procs": 3965.39}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30018.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 219206821.0, "Ops per second": 7306894.0, "ns per ops": 136.0, "Ops per threads": 274008.0, "Ops per procs": 27400852.0, "Ops/sec/procs": 913361.0, "ns per ops/procs": 1095.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30061.375289, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 194529838.0, "Total blocks": 68866518.0, "Ops per second": 6471089.1, "ns per ops": 154.53, "Ops per threads": 243162.0, "Ops per procs": 24316229.0, "Ops/sec/procs": 808886.14, "ns per ops/procs": 1236.27}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30067.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 165199556.0, "Ops per second": 5506651.0, "ns per ops": 182.0, "Ops per threads": 412998.0, "Ops per procs": 41299889.0, "Ops/sec/procs": 1376662.0, "ns per ops/procs": 728.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30075.828843, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 305067043.0, "Total blocks": 83273164.0, "Ops per second": 10143263.04, "ns per ops": 98.59, "Ops per threads": 190666.0, "Ops per procs": 19066690.0, "Ops/sec/procs": 633953.94, "ns per ops/procs": 1577.4}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30077.764871, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 289494693.0, "Total blocks": 109101776.0, "Ops per second": 9624873.86, "ns per ops": 103.9, "Ops per threads": 180934.0, "Ops per procs": 18093418.0, "Ops/sec/procs": 601554.62, "ns per ops/procs": 1662.36}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30030.83888, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 541865124.0, "Total blocks": 205413772.0, "Ops per second": 18043622.63, "ns per ops": 55.42, "Ops per threads": 56444.0, "Ops per procs": 5644428.0, "Ops/sec/procs": 187954.4, "ns per ops/procs": 5320.44}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30066.052024, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 454836529.0, "Total blocks": 177066242.0, "Ops per second": 15127910.0, "ns per ops": 66.1, "Ops per threads": 63171.0, "Ops per procs": 6317174.0, "Ops/sec/procs": 210109.86, "ns per ops/procs": 4759.41}],["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)": 286016526.0, "Total blocks": 146655192.0, "Ops per second": 9522815.05, "ns per ops": 105.01, "Ops per threads": 178760.0, "Ops per procs": 17876032.0, "Ops/sec/procs": 595175.94, "ns per ops/procs": 1680.18}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30050.394183, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1204052659.0, "Total blocks": 0.0, "Ops per second": 40067782.53, "ns per ops": 24.96, "Ops per threads": 12040526.0, "Ops per procs": 1204052659.0, "Ops/sec/procs": 40067782.53, "ns per ops/procs": 24.96}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30023.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 449633736.0, "Ops per second": 14987791.0, "ns per ops": 66.0, "Ops per threads": 93673.0, "Ops per procs": 9367369.0, "Ops/sec/procs": 312245.0, "ns per ops/procs": 3205.0}],["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)": 964183374.0, "Ops per second": 32139445.0, "ns per ops": 31.0, "Ops per threads": 50217.0, "Ops per procs": 5021788.0, "Ops/sec/procs": 167392.0, "ns per ops/procs": 5975.0}],["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)": 148994839.0, "Ops per second": 4960021.53, "ns per ops": 201.61, "Ops per threads": 372487.0, "Ops per procs": 37248709.0, "Ops/sec/procs": 1240005.38, "ns per ops/procs": 806.45}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30080.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 306111541.0, "Ops per second": 10203718.0, "ns per ops": 98.0, "Ops per threads": 191319.0, "Ops per procs": 19131971.0, "Ops/sec/procs": 637732.0, "ns per ops/procs": 1572.0}],["rdq-churn-go", "./rdq-churn-go -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30020.0, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 136454614.0, "Ops per second": 4545369.67, "ns per ops": 220.0, "Ops per threads": 1364546.0, "Ops per procs": 136454614.0, "Ops/sec/procs": 4545369.67, "ns per ops/procs": 220.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.794231, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 470118191.0, "Total blocks": 465415.0, "Ops per second": 15643598.1, "ns per ops": 63.92, "Ops per threads": 2350590.0, "Ops per procs": 235059095.0, "Ops/sec/procs": 7821799.05, "ns per ops/procs": 127.85}],["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)": 374214236.0, "Ops per second": 12463931.77, "ns per ops": 80.23, "Ops per threads": 51974.0, "Ops per procs": 5197419.0, "Ops/sec/procs": 173110.16, "ns per ops/procs": 5776.67}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30057.455305, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 201526415.0, "Total blocks": 87867813.0, "Ops per second": 6704706.47, "ns per ops": 149.15, "Ops per threads": 251908.0, "Ops per procs": 25190801.0, "Ops/sec/procs": 838088.31, "ns per ops/procs": 1193.19}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30050.253735, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1197873059.0, "Total blocks": 919451.0, "Ops per second": 39862327.61, "ns per ops": 25.09, "Ops per threads": 11978730.0, "Ops per procs": 1197873059.0, "Ops/sec/procs": 39862327.61, "ns per ops/procs": 25.09}],["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)": 86167528.0, "Total blocks": 43085002.0, "Ops per second": 2865884.79, "ns per ops": 348.93, "Ops per threads": 430837.0, "Ops per procs": 43083764.0, "Ops/sec/procs": 1432942.39, "ns per ops/procs": 697.86}],["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)": 477080806.0, "Ops per second": 15884834.46, "ns per ops": 62.95, "Ops per threads": 33130.0, "Ops per procs": 3313061.0, "Ops/sec/procs": 110311.35, "ns per ops/procs": 9065.25}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30028.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 238388075.0, "Ops per second": 7938689.1, "ns per ops": 125.97, "Ops per threads": 148992.0, "Ops per procs": 14899254.0, "Ops/sec/procs": 496168.07, "ns per ops/procs": 2015.45}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30026.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 504676820.0, "Ops per second": 16822560.0, "ns per ops": 59.0, "Ops per threads": 52570.0, "Ops per procs": 5257050.0, "Ops/sec/procs": 175235.0, "ns per ops/procs": 5711.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)": 977592543.0, "Ops per second": 32586418.0, "ns per ops": 30.0, "Ops per threads": 50916.0, "Ops per procs": 5091627.0, "Ops/sec/procs": 169720.0, "ns per ops/procs": 5893.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30026.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 495309015.0, "Ops per second": 16510300.0, "ns per ops": 60.0, "Ops per threads": 51594.0, "Ops per procs": 5159468.0, "Ops/sec/procs": 171982.0, "ns per ops/procs": 5819.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)": 191397456.0, "Total blocks": 0.0, "Ops per second": 6374155.6, "ns per ops": 156.88, "Ops per threads": 1913974.0, "Ops per procs": 191397456.0, "Ops/sec/procs": 6374155.6, "ns per ops/procs": 156.88}],["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)": 246979799.0, "Ops per second": 8222922.06, "ns per ops": 121.61, "Ops per threads": 102908.0, "Ops per procs": 10290824.0, "Ops/sec/procs": 342621.75, "ns per ops/procs": 2918.67}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30050.292739, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1187784620.0, "Total blocks": 2470292.0, "Ops per second": 39526557.37, "ns per ops": 25.3, "Ops per threads": 11877846.0, "Ops per procs": 1187784620.0, "Ops/sec/procs": 39526557.37, "ns per ops/procs": 25.3}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30020.845884, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 376354571.0, "Total blocks": 142182402.0, "Ops per second": 12536441.26, "ns per ops": 79.77, "Ops per threads": 156814.0, "Ops per procs": 15681440.0, "Ops/sec/procs": 522351.72, "ns per ops/procs": 1914.42}],["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)": 318547803.0, "Ops per second": 10618260.0, "ns per ops": 94.0, "Ops per threads": 199092.0, "Ops per procs": 19909237.0, "Ops/sec/procs": 663641.0, "ns per ops/procs": 1510.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30071.338569, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 511724220.0, "Total blocks": 207717416.0, "Ops per second": 17017008.37, "ns per ops": 58.76, "Ops per threads": 35536.0, "Ops per procs": 3553640.0, "Ops/sec/procs": 118173.67, "ns per ops/procs": 8462.12}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30029.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 500329525.0, "Ops per second": 16677650.0, "ns per ops": 60.0, "Ops per threads": 208470.0, "Ops per procs": 20847063.0, "Ops/sec/procs": 694902.0, "ns per ops/procs": 1440.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30030.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 647617727.0, "Total blocks": 359903343.0, "Ops per second": 21565594.22, "ns per ops": 46.37, "Ops per threads": 44973.0, "Ops per procs": 4497345.0, "Ops/sec/procs": 149761.07, "ns per ops/procs": 6677.3}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30022.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 495118687.0, "Ops per second": 16503956.0, "ns per ops": 60.0, "Ops per threads": 51574.0, "Ops per procs": 5157486.0, "Ops/sec/procs": 171916.0, "ns per ops/procs": 5821.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)": 541243015.0, "Ops per second": 18015433.56, "ns per ops": 55.51, "Ops per threads": 37586.0, "Ops per procs": 3758632.0, "Ops/sec/procs": 125107.18, "ns per ops/procs": 7993.15}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30088.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 634992974.0, "Total blocks": 353748737.0, "Ops per second": 21104180.93, "ns per ops": 47.38, "Ops per threads": 44096.0, "Ops per procs": 4409673.0, "Ops/sec/procs": 146556.81, "ns per ops/procs": 6823.29}],["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)": 231116171.0, "Ops per second": 7696412.79, "ns per ops": 129.93, "Ops per threads": 144447.0, "Ops per procs": 14444760.0, "Ops/sec/procs": 481025.8, "ns per ops/procs": 2078.89}],["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)": 438751128.0, "Ops per second": 14603629.88, "ns per ops": 68.48, "Ops per threads": 22851.0, "Ops per procs": 2285162.0, "Ops/sec/procs": 76060.57, "ns per ops/procs": 13147.42}],["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)": 147419543.0, "Ops per second": 4908213.15, "ns per ops": 203.74, "Ops per threads": 184274.0, "Ops per procs": 18427442.0, "Ops/sec/procs": 613526.64, "ns per ops/procs": 1629.92}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.157553, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 170567978.0, "Total blocks": 42637093.0, "Ops per second": 5675164.99, "ns per ops": 176.21, "Ops per threads": 426419.0, "Ops per procs": 42641994.0, "Ops/sec/procs": 1418791.25, "ns per ops/procs": 704.83}],["rdq-churn-go", "./rdq-churn-go -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30035.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 369775986.0, "Ops per second": 12311253.1, "ns per ops": 81.23, "Ops per threads": 51357.0, "Ops per procs": 5135777.0, "Ops/sec/procs": 170989.63, "ns per ops/procs": 5848.31}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30029.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 492978704.0, "Ops per second": 16432623.0, "ns per ops": 60.0, "Ops per threads": 51351.0, "Ops per procs": 5135194.0, "Ops/sec/procs": 171173.0, "ns per ops/procs": 5847.0}],["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)": 151142575.0, "Ops per second": 5031514.74, "ns per ops": 198.75, "Ops per threads": 377856.0, "Ops per procs": 37785643.0, "Ops/sec/procs": 1257878.69, "ns per ops/procs": 794.99}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30096.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 482932491.0, "Total blocks": 257863450.0, "Ops per second": 16045923.41, "ns per ops": 62.32, "Ops per threads": 50305.0, "Ops per procs": 5030546.0, "Ops/sec/procs": 167145.04, "ns per ops/procs": 5982.83}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30050.071195, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1203986312.0, "Total blocks": 0.0, "Ops per second": 40066005.31, "ns per ops": 24.96, "Ops per threads": 12039863.0, "Ops per procs": 1203986312.0, "Ops/sec/procs": 40066005.31, "ns per ops/procs": 24.96}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30082.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 198539012.0, "Ops per second": 6599923.85, "ns per ops": 151.52, "Ops per threads": 20681.0, "Ops per procs": 2068114.0, "Ops/sec/procs": 68749.21, "ns per ops/procs": 14545.62}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.899298, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 446967606.0, "Total blocks": 48916.0, "Ops per second": 14873189.93, "ns per ops": 67.24, "Ops per threads": 2234838.0, "Ops per procs": 223483803.0, "Ops/sec/procs": 7436594.96, "ns per ops/procs": 134.47}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30062.745864, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 478054167.0, "Total blocks": 178645952.0, "Ops per second": 15901879.66, "ns per ops": 62.89, "Ops per threads": 66396.0, "Ops per procs": 6639641.0, "Ops/sec/procs": 220859.44, "ns per ops/procs": 4527.77}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30035.387004, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 566672479.0, "Total blocks": 209011802.0, "Ops per second": 18866827.95, "ns per ops": 53.0, "Ops per threads": 59028.0, "Ops per procs": 5902838.0, "Ops/sec/procs": 196529.46, "ns per ops/procs": 5088.3}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30060.223512, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 206419013.0, "Total blocks": 87921384.0, "Ops per second": 6866848.91, "ns per ops": 145.63, "Ops per threads": 258023.0, "Ops per procs": 25802376.0, "Ops/sec/procs": 858356.11, "ns per ops/procs": 1165.02}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30076.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 392486528.0, "Total blocks": 207495688.0, "Ops per second": 13049802.21, "ns per ops": 76.63, "Ops per threads": 54512.0, "Ops per procs": 5451201.0, "Ops/sec/procs": 181247.25, "ns per ops/procs": 5517.33}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30070.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 307230846.0, "Ops per second": 10241028.0, "ns per ops": 97.0, "Ops per threads": 192019.0, "Ops per procs": 19201927.0, "Ops/sec/procs": 640064.0, "ns per ops/procs": 1566.0}],["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)": 835704330.0, "Ops per second": 27856811.0, "ns per ops": 35.0, "Ops per threads": 58035.0, "Ops per procs": 5803502.0, "Ops/sec/procs": 193450.0, "ns per ops/procs": 5169.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30012.923037, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 658361902.0, "Total blocks": 266135679.0, "Ops per second": 21935947.43, "ns per ops": 45.59, "Ops per threads": 34289.0, "Ops per procs": 3428968.0, "Ops/sec/procs": 114249.73, "ns per ops/procs": 8752.76}],["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)": 119650446.0, "Ops per second": 3984884.53, "ns per ops": 250.95, "Ops per threads": 598252.0, "Ops per procs": 59825223.0, "Ops/sec/procs": 1992442.27, "ns per ops/procs": 501.9}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30019.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 479142569.0, "Ops per second": 15971418.0, "ns per ops": 62.0, "Ops per threads": 199642.0, "Ops per procs": 19964273.0, "Ops/sec/procs": 665475.0, "ns per ops/procs": 1503.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30055.314794, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 502566679.0, "Total blocks": 186364010.0, "Ops per second": 16721391.29, "ns per ops": 59.8, "Ops per threads": 52350.0, "Ops per procs": 5235069.0, "Ops/sec/procs": 174181.16, "ns per ops/procs": 5741.15}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30068.077935, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 610919550.0, "Total blocks": 246532604.0, "Ops per second": 20317878.36, "ns per ops": 49.22, "Ops per threads": 31818.0, "Ops per procs": 3181872.0, "Ops/sec/procs": 105822.28, "ns per ops/procs": 9449.81}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30056.122428, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 620146795.0, "Total blocks": 249660833.0, "Ops per second": 20632960.77, "ns per ops": 48.47, "Ops per threads": 32299.0, "Ops per procs": 3229931.0, "Ops/sec/procs": 107463.34, "ns per ops/procs": 9305.5}],["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)": 133896912.0, "Total blocks": 80980739.0, "Ops per second": 4449096.09, "ns per ops": 224.76, "Ops per threads": 334742.0, "Ops per procs": 33474228.0, "Ops/sec/procs": 1112274.02, "ns per ops/procs": 899.06}],["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)": 360514092.0, "Ops per second": 11999501.06, "ns per ops": 83.34, "Ops per threads": 75107.0, "Ops per procs": 7510710.0, "Ops/sec/procs": 249989.61, "ns per ops/procs": 4000.17}],["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)": 493803985.0, "Ops per second": 16460132.0, "ns per ops": 60.0, "Ops per threads": 205751.0, "Ops per procs": 20575166.0, "Ops/sec/procs": 685838.0, "ns per ops/procs": 1459.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30062.870226, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 204710634.0, "Total blocks": 85439800.0, "Ops per second": 6809417.48, "ns per ops": 146.86, "Ops per threads": 255888.0, "Ops per procs": 25588829.0, "Ops/sec/procs": 851177.18, "ns per ops/procs": 1174.84}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.874177, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 173294990.0, "Total blocks": 43331642.0, "Ops per second": 5765761.09, "ns per ops": 173.44, "Ops per threads": 433237.0, "Ops per procs": 43323747.0, "Ops/sec/procs": 1441440.27, "ns per ops/procs": 693.75}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30018.299612, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 373225080.0, "Total blocks": 137404001.0, "Ops per second": 12433251.88, "ns per ops": 80.43, "Ops per threads": 155510.0, "Ops per procs": 15551045.0, "Ops/sec/procs": 518052.16, "ns per ops/procs": 1930.31}],["rdq-churn-tokio", "./rdq-churn-tokio -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": 6.0, "Total Operations(ops)": 217462358.0, "Ops per second": 7248745.0, "ns per ops": 138.0, "Ops per threads": 271827.0, "Ops per procs": 27182794.0, "Ops/sec/procs": 906093.0, "ns per ops/procs": 1104.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30009.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 188096159.0, "Ops per second": 6269871.0, "ns per ops": 159.0, "Ops per threads": 940480.0, "Ops per procs": 94048079.0, "Ops/sec/procs": 3134935.0, "ns per ops/procs": 319.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30060.834728, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 186939143.0, "Total blocks": 46076772.0, "Ops per second": 6218694.35, "ns per ops": 160.81, "Ops per threads": 233673.0, "Ops per procs": 23367392.0, "Ops/sec/procs": 777336.79, "ns per ops/procs": 1286.44}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30001.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 989297787.0, "Ops per second": 32976592.0, "ns per ops": 30.0, "Ops per threads": 51525.0, "Ops per procs": 5152592.0, "Ops/sec/procs": 171753.0, "ns per ops/procs": 5822.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30053.408887, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 553396244.0, "Total blocks": 162014917.0, "Ops per second": 18413759.52, "ns per ops": 54.31, "Ops per threads": 57645.0, "Ops per procs": 5764544.0, "Ops/sec/procs": 191809.99, "ns per ops/procs": 5213.49}],["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)": 238479693.0, "Ops per second": 7940583.26, "ns per ops": 125.94, "Ops per threads": 149049.0, "Ops per procs": 14904980.0, "Ops/sec/procs": 496286.45, "ns per ops/procs": 2014.97}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30056.837293, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 707411810.0, "Total blocks": 283381817.0, "Ops per second": 23535803.29, "ns per ops": 42.49, "Ops per threads": 147377.0, "Ops per procs": 14737746.0, "Ops/sec/procs": 490329.24, "ns per ops/procs": 2039.45}],["rdq-churn-go", "./rdq-churn-go -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30052.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 371411084.0, "Ops per second": 12358696.75, "ns per ops": 80.91, "Ops per threads": 77377.0, "Ops per procs": 7737730.0, "Ops/sec/procs": 257472.85, "ns per ops/procs": 3883.9}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30062.097202, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 201687788.0, "Total blocks": 59344651.0, "Ops per second": 6709039.18, "ns per ops": 149.05, "Ops per threads": 252109.0, "Ops per procs": 25210973.0, "Ops/sec/procs": 838629.9, "ns per ops/procs": 1192.42}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30000.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 119060083.0, "Total blocks": 70682342.0, "Ops per second": 3968643.91, "ns per ops": 251.98, "Ops per threads": 297650.0, "Ops per procs": 29765020.0, "Ops/sec/procs": 992160.98, "ns per ops/procs": 1007.9}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30059.76376, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 222352008.0, "Total blocks": 92637850.0, "Ops per second": 7396997.85, "ns per ops": 135.19, "Ops per threads": 277940.0, "Ops per procs": 27794001.0, "Ops/sec/procs": 924624.73, "ns per ops/procs": 1081.52}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30038.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 454672093.0, "Ops per second": 15136329.41, "ns per ops": 66.07, "Ops per threads": 23680.0, "Ops per procs": 2368083.0, "Ops/sec/procs": 78835.05, "ns per ops/procs": 12684.71}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30015.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 650367787.0, "Total blocks": 361182691.0, "Ops per second": 21667684.19, "ns per ops": 46.15, "Ops per threads": 45164.0, "Ops per procs": 4516442.0, "Ops/sec/procs": 150470.03, "ns per ops/procs": 6645.84}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30049.117235, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 519247476.0, "Total blocks": 210109901.0, "Ops per second": 17279957.74, "ns per ops": 57.87, "Ops per threads": 36058.0, "Ops per procs": 3605885.0, "Ops/sec/procs": 119999.71, "ns per ops/procs": 8333.35}],["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)": 164325404.0, "Ops per second": 5470716.4, "ns per ops": 182.79, "Ops per threads": 410813.0, "Ops per procs": 41081351.0, "Ops/sec/procs": 1367679.1, "ns per ops/procs": 731.17}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30010.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 778808571.0, "Total blocks": 406521151.0, "Ops per second": 25951512.3, "ns per ops": 38.53, "Ops per threads": 40562.0, "Ops per procs": 4056294.0, "Ops/sec/procs": 135164.13, "ns per ops/procs": 7398.41}],["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)": 489486580.0, "Ops per second": 16316219.0, "ns per ops": 61.0, "Ops per threads": 203952.0, "Ops per procs": 20395274.0, "Ops/sec/procs": 679842.0, "ns per ops/procs": 1471.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30061.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 309900584.0, "Total blocks": 162977303.0, "Ops per second": 10308925.22, "ns per ops": 97.0, "Ops per threads": 129125.0, "Ops per procs": 12912524.0, "Ops/sec/procs": 429538.55, "ns per ops/procs": 2328.08}],["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)": 179720294.0, "Total blocks": 96843418.0, "Ops per second": 5987819.66, "ns per ops": 167.01, "Ops per threads": 224650.0, "Ops per procs": 22465036.0, "Ops/sec/procs": 748477.46, "ns per ops/procs": 1336.05}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30021.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 460989142.0, "Total blocks": 246234357.0, "Ops per second": 15355532.87, "ns per ops": 65.12, "Ops per threads": 48019.0, "Ops per procs": 4801970.0, "Ops/sec/procs": 159953.47, "ns per ops/procs": 6251.82}],["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)": 307146630.0, "Ops per second": 10238221.0, "ns per ops": 97.0, "Ops per threads": 191966.0, "Ops per procs": 19196664.0, "Ops/sec/procs": 639888.0, "ns per ops/procs": 1565.0}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30040.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 461100702.0, "Ops per second": 15349302.39, "ns per ops": 65.15, "Ops per threads": 24015.0, "Ops per procs": 2401566.0, "Ops/sec/procs": 79944.28, "ns per ops/procs": 12508.71}],["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)": 136056382.0, "Ops per second": 4534984.0, "ns per ops": 220.51, "Ops per threads": 1360563.0, "Ops per procs": 136056382.0, "Ops/sec/procs": 4534984.0, "ns per ops/procs": 220.51}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.541712, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 519014098.0, "Total blocks": 3462246.0, "Ops per second": 17270797.72, "ns per ops": 57.9, "Ops per threads": 2595070.0, "Ops per procs": 259507049.0, "Ops/sec/procs": 8635398.86, "ns per ops/procs": 115.8}],["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)": 390493938.0, "Total blocks": 207020698.0, "Ops per second": 12988246.71, "ns per ops": 76.99, "Ops per threads": 54235.0, "Ops per procs": 5423526.0, "Ops/sec/procs": 180392.32, "ns per ops/procs": 5543.47}],["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)": 966872282.0, "Ops per second": 32229076.0, "ns per ops": 31.0, "Ops per threads": 50357.0, "Ops per procs": 5035793.0, "Ops/sec/procs": 167859.0, "ns per ops/procs": 5958.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30007.55481, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 628651333.0, "Total blocks": 246069418.0, "Ops per second": 20949768.72, "ns per ops": 47.73, "Ops per threads": 32742.0, "Ops per procs": 3274225.0, "Ops/sec/procs": 109113.38, "ns per ops/procs": 9164.78}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30054.896609, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 150429352.0, "Total blocks": 65667762.0, "Ops per second": 5005152.87, "ns per ops": 199.79, "Ops per threads": 376073.0, "Ops per procs": 37607338.0, "Ops/sec/procs": 1251288.22, "ns per ops/procs": 799.18}],["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)": 260263199.0, "Ops per second": 8664378.13, "ns per ops": 115.42, "Ops per threads": 108442.0, "Ops per procs": 10844299.0, "Ops/sec/procs": 361015.76, "ns per ops/procs": 2769.96}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30026.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 478216060.0, "Total blocks": 255553438.0, "Ops per second": 15926719.51, "ns per ops": 62.79, "Ops per threads": 49814.0, "Ops per procs": 4981417.0, "Ops/sec/procs": 165903.33, "ns per ops/procs": 6027.61}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30063.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 393440861.0, "Total blocks": 208657474.0, "Ops per second": 13086788.68, "ns per ops": 76.41, "Ops per threads": 54644.0, "Ops per procs": 5464456.0, "Ops/sec/procs": 181760.95, "ns per ops/procs": 5501.73}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30064.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 650182886.0, "Total blocks": 358920338.0, "Ops per second": 21626484.18, "ns per ops": 46.24, "Ops per threads": 45151.0, "Ops per procs": 4515158.0, "Ops/sec/procs": 150183.92, "ns per ops/procs": 6658.5}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30089.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 180914644.0, "Ops per second": 6030488.0, "ns per ops": 166.0, "Ops per threads": 904573.0, "Ops per procs": 90457322.0, "Ops/sec/procs": 3015244.0, "ns per ops/procs": 332.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)": 365406877.0, "Ops per second": 12160710.56, "ns per ops": 82.23, "Ops per threads": 76126.0, "Ops per procs": 7612643.0, "Ops/sec/procs": 253348.14, "ns per ops/procs": 3947.14}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30027.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 795530283.0, "Total blocks": 417327755.0, "Ops per second": 26493129.69, "ns per ops": 37.75, "Ops per threads": 41433.0, "Ops per procs": 4143386.0, "Ops/sec/procs": 137985.05, "ns per ops/procs": 7247.16}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30034.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 422477163.0, "Ops per second": 14082572.0, "ns per ops": 71.0, "Ops per threads": 58677.0, "Ops per procs": 5867738.0, "Ops/sec/procs": 195591.0, "ns per ops/procs": 5118.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30011.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 592781334.0, "Ops per second": 19759377.0, "ns per ops": 50.0, "Ops per threads": 123496.0, "Ops per procs": 12349611.0, "Ops/sec/procs": 411653.0, "ns per ops/procs": 2430.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30078.579584, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 490965905.0, "Total blocks": 195509201.0, "Ops per second": 16322775.6, "ns per ops": 61.26, "Ops per threads": 68189.0, "Ops per procs": 6818970.0, "Ops/sec/procs": 226705.22, "ns per ops/procs": 4411.02}],["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)": 136695609.0, "Ops per second": 4556268.78, "ns per ops": 219.48, "Ops per threads": 1366956.0, "Ops per procs": 136695609.0, "Ops/sec/procs": 4556268.78, "ns per ops/procs": 219.48}],["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)": 460244850.0, "Ops per second": 15341495.0, "ns per ops": 65.0, "Ops per threads": 4602448.0, "Ops per procs": 460244850.0, "Ops/sec/procs": 15341495.0, "ns per ops/procs": 65.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30033.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 376014949.0, "Total blocks": 204508896.0, "Ops per second": 12519978.53, "ns per ops": 79.87, "Ops per threads": 156672.0, "Ops per procs": 15667289.0, "Ops/sec/procs": 521665.77, "ns per ops/procs": 1916.94}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30038.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 402993152.0, "Ops per second": 13433105.0, "ns per ops": 74.0, "Ops per threads": 55971.0, "Ops per procs": 5597127.0, "Ops/sec/procs": 186570.0, "ns per ops/procs": 5366.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30086.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 164835473.0, "Ops per second": 5494515.0, "ns per ops": 182.0, "Ops per threads": 412088.0, "Ops per procs": 41208868.0, "Ops/sec/procs": 1373628.0, "ns per ops/procs": 730.0}],["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)": 175148256.0, "Ops per second": 5822477.81, "ns per ops": 171.75, "Ops per threads": 18244.0, "Ops per procs": 1824461.0, "Ops/sec/procs": 60650.81, "ns per ops/procs": 16487.83}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30078.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 391819015.0, "Total blocks": 207323273.0, "Ops per second": 13026668.87, "ns per ops": 76.77, "Ops per threads": 54419.0, "Ops per procs": 5441930.0, "Ops/sec/procs": 180925.96, "ns per ops/procs": 5527.12}],["rdq-churn-fibre", "./rdq-churn-fibre -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30040.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 295663167.0, "Total blocks": 151946241.0, "Ops per second": 9842120.52, "ns per ops": 101.6, "Ops per threads": 184789.0, "Ops per procs": 18478947.0, "Ops/sec/procs": 615132.53, "ns per ops/procs": 1625.67}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30078.123814, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 274883339.0, "Total blocks": 106512031.0, "Ops per second": 9138978.9, "ns per ops": 109.42, "Ops per threads": 171802.0, "Ops per procs": 17180208.0, "Ops/sec/procs": 571186.18, "ns per ops/procs": 1750.74}],["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)": 178648995.0, "Total blocks": 96170898.0, "Ops per second": 5952100.58, "ns per ops": 168.01, "Ops per threads": 223311.0, "Ops per procs": 22331124.0, "Ops/sec/procs": 744012.57, "ns per ops/procs": 1344.06}],["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)": 835606985.0, "Ops per second": 27853566.0, "ns per ops": 35.0, "Ops per threads": 58028.0, "Ops per procs": 5802826.0, "Ops/sec/procs": 193427.0, "ns per ops/procs": 5171.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30056.800334, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 719997513.0, "Total blocks": 283175891.0, "Ops per second": 23954562.86, "ns per ops": 41.75, "Ops per threads": 149999.0, "Ops per procs": 14999948.0, "Ops/sec/procs": 499053.39, "ns per ops/procs": 2003.79}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30010.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 998307858.0, "Ops per second": 33276928.0, "ns per ops": 30.0, "Ops per threads": 51995.0, "Ops per procs": 5199520.0, "Ops/sec/procs": 173317.0, "ns per ops/procs": 5771.0}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30049.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 497523982.0, "Ops per second": 16556849.89, "ns per ops": 60.4, "Ops per threads": 34550.0, "Ops per procs": 3455027.0, "Ops/sec/procs": 114978.12, "ns per ops/procs": 8697.31}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30075.390263, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 290705388.0, "Total blocks": 112773831.0, "Ops per second": 9665889.14, "ns per ops": 103.46, "Ops per threads": 181690.0, "Ops per procs": 18169086.0, "Ops/sec/procs": 604118.07, "ns per ops/procs": 1655.31}],["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)": 87539469.0, "Total blocks": 43771194.0, "Ops per second": 2911485.15, "ns per ops": 343.47, "Ops per threads": 437697.0, "Ops per procs": 43769734.0, "Ops/sec/procs": 1455742.58, "ns per ops/procs": 686.93}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30038.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 464947823.0, "Ops per second": 15478155.83, "ns per ops": 64.61, "Ops per threads": 32288.0, "Ops per procs": 3228804.0, "Ops/sec/procs": 107487.19, "ns per ops/procs": 9303.43}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30060.189864, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 701678862.0, "Total blocks": 245054987.0, "Ops per second": 23342462.74, "ns per ops": 42.84, "Ops per threads": 146183.0, "Ops per procs": 14618309.0, "Ops/sec/procs": 486301.31, "ns per ops/procs": 2056.34}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30038.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 414658007.0, "Ops per second": 13821933.0, "ns per ops": 72.0, "Ops per threads": 57591.0, "Ops per procs": 5759138.0, "Ops/sec/procs": 191971.0, "ns per ops/procs": 5215.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30084.619943, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 450337025.0, "Total blocks": 165496311.0, "Ops per second": 14969011.6, "ns per ops": 66.8, "Ops per threads": 62546.0, "Ops per procs": 6254680.0, "Ops/sec/procs": 207902.94, "ns per ops/procs": 4809.94}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30020.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 661384847.0, "Total blocks": 367806835.0, "Ops per second": 22031210.77, "ns per ops": 45.39, "Ops per threads": 45929.0, "Ops per procs": 4592950.0, "Ops/sec/procs": 152994.52, "ns per ops/procs": 6536.18}],["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)": 84215611.0, "Total blocks": 42109082.0, "Ops per second": 2800897.63, "ns per ops": 357.03, "Ops per threads": 421078.0, "Ops per procs": 42107805.0, "Ops/sec/procs": 1400448.81, "ns per ops/procs": 714.06}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30023.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 495024495.0, "Ops per second": 16500816.0, "ns per ops": 60.0, "Ops per threads": 206260.0, "Ops per procs": 20626020.0, "Ops/sec/procs": 687534.0, "ns per ops/procs": 1455.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)": 297381525.0, "Total blocks": 153066217.0, "Ops per second": 9902453.11, "ns per ops": 100.99, "Ops per threads": 185863.0, "Ops per procs": 18586345.0, "Ops/sec/procs": 618903.32, "ns per ops/procs": 1615.76}],["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)": 819127556.0, "Ops per second": 27304251.0, "ns per ops": 36.0, "Ops per threads": 56883.0, "Ops per procs": 5688385.0, "Ops/sec/procs": 189612.0, "ns per ops/procs": 5273.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30077.898838, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 297891997.0, "Total blocks": 109881649.0, "Ops per second": 9904016.19, "ns per ops": 100.97, "Ops per threads": 186182.0, "Ops per procs": 18618249.0, "Ops/sec/procs": 619001.01, "ns per ops/procs": 1615.51}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30063.809346, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 532086307.0, "Total blocks": 221255408.0, "Ops per second": 17698565.77, "ns per ops": 56.5, "Ops per threads": 36950.0, "Ops per procs": 3695043.0, "Ops/sec/procs": 122906.71, "ns per ops/procs": 8136.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)": 120240877.0, "Ops per second": 4004738.2, "ns per ops": 249.7, "Ops per threads": 601204.0, "Ops per procs": 60120438.0, "Ops/sec/procs": 2002369.1, "ns per ops/procs": 499.41}],["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)": 222000095.0, "Ops per second": 7392417.44, "ns per ops": 135.27, "Ops per threads": 138750.0, "Ops per procs": 13875005.0, "Ops/sec/procs": 462026.09, "ns per ops/procs": 2164.38}],["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)": 576213370.0, "Ops per second": 19207112.0, "ns per ops": 52.0, "Ops per threads": 120044.0, "Ops per procs": 12004445.0, "Ops/sec/procs": 400148.0, "ns per ops/procs": 2499.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30019.886862, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 368550923.0, "Total blocks": 151740389.0, "Ops per second": 12276892.47, "ns per ops": 81.45, "Ops per threads": 153562.0, "Ops per procs": 15356288.0, "Ops/sec/procs": 511537.19, "ns per ops/procs": 1954.89}],["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)": 213679380.0, "Ops per second": 7115252.22, "ns per ops": 140.54, "Ops per threads": 133549.0, "Ops per procs": 13354961.0, "Ops/sec/procs": 444703.26, "ns per ops/procs": 2248.69}],["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)": 134277573.0, "Ops per second": 4470883.52, "ns per ops": 223.67, "Ops per threads": 167846.0, "Ops per procs": 16784696.0, "Ops/sec/procs": 558860.44, "ns per ops/procs": 1789.36}],["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)": 360953725.0, "Ops per second": 12012364.73, "ns per ops": 83.25, "Ops per threads": 75198.0, "Ops per procs": 7519869.0, "Ops/sec/procs": 250257.6, "ns per ops/procs": 3995.88}],["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)": 363466694.0, "Total blocks": 198744099.0, "Ops per second": 12100515.83, "ns per ops": 82.64, "Ops per threads": 151444.0, "Ops per procs": 15144445.0, "Ops/sec/procs": 504188.16, "ns per ops/procs": 1983.39}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30052.003616, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 451311639.0, "Total blocks": 2448009.0, "Ops per second": 15017688.83, "ns per ops": 66.59, "Ops per threads": 2256558.0, "Ops per procs": 225655819.0, "Ops/sec/procs": 7508844.41, "ns per ops/procs": 133.18}],["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)": 258621333.0, "Ops per second": 8610721.96, "ns per ops": 116.13, "Ops per threads": 107758.0, "Ops per procs": 10775888.0, "Ops/sec/procs": 358780.08, "ns per ops/procs": 2787.22}],["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)": 252103223.0, "Ops per second": 8393212.59, "ns per ops": 119.14, "Ops per threads": 105043.0, "Ops per procs": 10504300.0, "Ops/sec/procs": 349717.19, "ns per ops/procs": 2859.45}],["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)": 179318716.0, "Ops per second": 5962225.11, "ns per ops": 167.72, "Ops per threads": 18679.0, "Ops per procs": 1867903.0, "Ops/sec/procs": 62106.51, "ns per ops/procs": 16101.37}],["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)": 354770205.0, "Total blocks": 190161787.0, "Ops per second": 11810679.2, "ns per ops": 84.67, "Ops per threads": 147820.0, "Ops per procs": 14782091.0, "Ops/sec/procs": 492111.63, "ns per ops/procs": 2032.06}],["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)": 427358834.0, "Ops per second": 14245294.0, "ns per ops": 70.0, "Ops per threads": 59355.0, "Ops per procs": 5935539.0, "Ops/sec/procs": 197851.0, "ns per ops/procs": 5059.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)": 118595276.0, "Ops per second": 3950060.13, "ns per ops": 253.16, "Ops per threads": 592976.0, "Ops per procs": 59297638.0, "Ops/sec/procs": 1975030.06, "ns per ops/procs": 506.32}],["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)": 151192302.0, "Ops per second": 5033349.49, "ns per ops": 198.67, "Ops per threads": 377980.0, "Ops per procs": 37798075.0, "Ops/sec/procs": 1258337.37, "ns per ops/procs": 794.7}],["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)": 489474892.0, "Ops per second": 16315829.0, "ns per ops": 61.0, "Ops per threads": 203947.0, "Ops per procs": 20394787.0, "Ops/sec/procs": 679826.0, "ns per ops/procs": 1472.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)": 157108677.0, "Ops per second": 5230846.47, "ns per ops": 191.17, "Ops per threads": 196385.0, "Ops per procs": 19638584.0, "Ops/sec/procs": 653855.81, "ns per ops/procs": 1529.39}],["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)": 833355646.0, "Ops per second": 27778521.0, "ns per ops": 36.0, "Ops per threads": 57871.0, "Ops per procs": 5787191.0, "Ops/sec/procs": 192906.0, "ns per ops/procs": 5185.0}],["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)": 166908823.0, "Ops per second": 5563627.0, "ns per ops": 180.0, "Ops per threads": 417272.0, "Ops per procs": 41727205.0, "Ops/sec/procs": 1390906.0, "ns per ops/procs": 720.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30050.848195, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 453245685.0, "Total blocks": 8754185.0, "Ops per second": 15082625.36, "ns per ops": 66.3, "Ops per threads": 2266228.0, "Ops per procs": 226622842.0, "Ops/sec/procs": 7541312.68, "ns per ops/procs": 132.6}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30037.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 429924964.0, "Ops per second": 14330832.0, "ns per ops": 69.0, "Ops per threads": 59711.0, "Ops per procs": 5971180.0, "Ops/sec/procs": 199039.0, "ns per ops/procs": 5030.0}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30038.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 454633307.0, "Ops per second": 15135144.96, "ns per ops": 66.07, "Ops per threads": 31571.0, "Ops per procs": 3157175.0, "Ops/sec/procs": 105105.17, "ns per ops/procs": 9514.28}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30050.166048, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1203343059.0, "Total blocks": 0.0, "Ops per second": 40044472.87, "ns per ops": 24.97, "Ops per threads": 12033430.0, "Ops per procs": 1203343059.0, "Ops/sec/procs": 40044472.87, "ns per ops/procs": 24.97}],["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)": 223987548.0, "Ops per second": 7466251.0, "ns per ops": 134.0, "Ops per threads": 279984.0, "Ops per procs": 27998443.0, "Ops/sec/procs": 933281.0, "ns per ops/procs": 1072.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30021.576501, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 335680092.0, "Total blocks": 126090058.0, "Ops per second": 11181294.63, "ns per ops": 89.44, "Ops per threads": 139866.0, "Ops per procs": 13986670.0, "Ops/sec/procs": 465887.28, "ns per ops/procs": 2146.44}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30098.735706, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 537147968.0, "Total blocks": 216861523.0, "Ops per second": 17846197.04, "ns per ops": 56.03, "Ops per threads": 37301.0, "Ops per procs": 3730194.0, "Ops/sec/procs": 123931.92, "ns per ops/procs": 8068.95}],["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)": 224188139.0, "Ops per second": 7466357.04, "ns per ops": 133.93, "Ops per threads": 140117.0, "Ops per procs": 14011758.0, "Ops/sec/procs": 466647.31, "ns per ops/procs": 2142.95}],["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)": 180060386.0, "Total blocks": 97118665.0, "Ops per second": 5998687.41, "ns per ops": 166.7, "Ops per threads": 225075.0, "Ops per procs": 22507548.0, "Ops/sec/procs": 749835.93, "ns per ops/procs": 1333.63}],["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)": 361971693.0, "Ops per second": 12055325.88, "ns per ops": 82.95, "Ops per threads": 50273.0, "Ops per procs": 5027384.0, "Ops/sec/procs": 167435.08, "ns per ops/procs": 5972.46}],["rdq-churn-fibre", "./rdq-churn-fibre -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)": 346753917.0, "Total blocks": 185859244.0, "Ops per second": 11542759.34, "ns per ops": 86.63, "Ops per threads": 144480.0, "Ops per procs": 14448079.0, "Ops/sec/procs": 480948.31, "ns per ops/procs": 2079.23}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30060.35337, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 211184628.0, "Total blocks": 89543027.0, "Ops per second": 7025354.14, "ns per ops": 142.34, "Ops per threads": 263980.0, "Ops per procs": 26398078.0, "Ops/sec/procs": 878169.27, "ns per ops/procs": 1138.73}],["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)": 143753366.0, "Total blocks": 86925579.0, "Ops per second": 4776980.56, "ns per ops": 209.34, "Ops per threads": 359383.0, "Ops per procs": 35938341.0, "Ops/sec/procs": 1194245.14, "ns per ops/procs": 837.35}],["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)": 256513936.0, "Ops per second": 8539099.61, "ns per ops": 117.11, "Ops per threads": 106880.0, "Ops per procs": 10688080.0, "Ops/sec/procs": 355795.82, "ns per ops/procs": 2810.6}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30050.217559, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1191471061.0, "Total blocks": 1330770.0, "Ops per second": 39649332.28, "ns per ops": 25.22, "Ops per threads": 11914710.0, "Ops per procs": 1191471061.0, "Ops/sec/procs": 39649332.28, "ns per ops/procs": 25.22}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30049.789372, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 554932737.0, "Total blocks": 191922530.0, "Ops per second": 18467109.04, "ns per ops": 54.15, "Ops per threads": 38536.0, "Ops per procs": 3853699.0, "Ops/sec/procs": 128243.81, "ns per ops/procs": 7797.65}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30062.13595, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 202750516.0, "Total blocks": 71965211.0, "Ops per second": 6744381.58, "ns per ops": 148.27, "Ops per threads": 253438.0, "Ops per procs": 25343814.0, "Ops/sec/procs": 843047.7, "ns per ops/procs": 1186.17}],["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)": 317570660.0, "Ops per second": 10585688.0, "ns per ops": 94.0, "Ops per threads": 198481.0, "Ops per procs": 19848166.0, "Ops/sec/procs": 661605.0, "ns per ops/procs": 1514.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.910043, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 453290817.0, "Total blocks": 1854188.0, "Ops per second": 15083594.23, "ns per ops": 66.3, "Ops per threads": 2266454.0, "Ops per procs": 226645408.0, "Ops/sec/procs": 7541797.12, "ns per ops/procs": 132.59}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30040.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 149664937.0, "Ops per second": 4982078.11, "ns per ops": 200.72, "Ops per threads": 374162.0, "Ops per procs": 37416234.0, "Ops/sec/procs": 1245519.53, "ns per ops/procs": 802.88}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30095.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 486012141.0, "Total blocks": 259186868.0, "Ops per second": 16148796.6, "ns per ops": 61.92, "Ops per threads": 50626.0, "Ops per procs": 5062626.0, "Ops/sec/procs": 168216.63, "ns per ops/procs": 5944.72}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30051.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 405648381.0, "Total blocks": 214551337.0, "Ops per second": 13498538.49, "ns per ops": 74.08, "Ops per threads": 56340.0, "Ops per procs": 5634005.0, "Ops/sec/procs": 187479.7, "ns per ops/procs": 5333.91}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30096.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 635261238.0, "Total blocks": 352786326.0, "Ops per second": 21107308.15, "ns per ops": 47.38, "Ops per threads": 44115.0, "Ops per procs": 4411536.0, "Ops/sec/procs": 146578.53, "ns per ops/procs": 6822.28}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30019.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 489212975.0, "Ops per second": 16307099.0, "ns per ops": 61.0, "Ops per threads": 203838.0, "Ops per procs": 20383873.0, "Ops/sec/procs": 679462.0, "ns per ops/procs": 1472.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30021.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 491620536.0, "Ops per second": 16387351.0, "ns per ops": 61.0, "Ops per threads": 102420.0, "Ops per procs": 10242094.0, "Ops/sec/procs": 341403.0, "ns per ops/procs": 2931.0}],["rdq-churn-fibre", "./rdq-churn-fibre -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)": 295180165.0, "Total blocks": 151695423.0, "Ops per second": 9828257.14, "ns per ops": 101.75, "Ops per threads": 184487.0, "Ops per procs": 18448760.0, "Ops/sec/procs": 614266.07, "ns per ops/procs": 1627.96}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30060.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 220472099.0, "Ops per second": 7349069.0, "ns per ops": 136.0, "Ops per threads": 275590.0, "Ops per procs": 27559012.0, "Ops/sec/procs": 918633.0, "ns per ops/procs": 1090.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)": 351956354.0, "Total blocks": 188710844.0, "Ops per second": 11716625.66, "ns per ops": 85.35, "Ops per threads": 146648.0, "Ops per procs": 14664848.0, "Ops/sec/procs": 488192.74, "ns per ops/procs": 2048.37}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30030.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 484251626.0, "Ops per second": 16141720.0, "ns per ops": 62.0, "Ops per threads": 100885.0, "Ops per procs": 10088575.0, "Ops/sec/procs": 336285.0, "ns per ops/procs": 2976.0}],["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)": 638967782.0, "Ops per second": 21277352.41, "ns per ops": 47.0, "Ops per threads": 88745.0, "Ops per procs": 8874552.0, "Ops/sec/procs": 295518.78, "ns per ops/procs": 3383.88}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.593328, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 156804544.0, "Total blocks": 74816955.0, "Ops per second": 5217150.18, "ns per ops": 191.68, "Ops per threads": 392011.0, "Ops per procs": 39201136.0, "Ops/sec/procs": 1304287.54, "ns per ops/procs": 766.7}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.477463, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 447361740.0, "Total blocks": 804301.0, "Ops per second": 14886514.0, "ns per ops": 67.17, "Ops per threads": 2236808.0, "Ops per procs": 223680870.0, "Ops/sec/procs": 7443257.0, "ns per ops/procs": 134.35}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30031.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 485692115.0, "Ops per second": 16189737.0, "ns per ops": 61.0, "Ops per threads": 50592.0, "Ops per procs": 5059292.0, "Ops/sec/procs": 168643.0, "ns per ops/procs": 5935.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)": 133951887.0, "Ops per second": 4459984.78, "ns per ops": 224.22, "Ops per threads": 167439.0, "Ops per procs": 16743985.0, "Ops/sec/procs": 557498.1, "ns per ops/procs": 1793.73}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30077.202142, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 295448454.0, "Total blocks": 127016909.0, "Ops per second": 9823003.24, "ns per ops": 101.8, "Ops per threads": 184655.0, "Ops per procs": 18465528.0, "Ops/sec/procs": 613937.7, "ns per ops/procs": 1628.83}],["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)": 415518029.0, "Ops per second": 13838265.52, "ns per ops": 72.26, "Ops per threads": 57710.0, "Ops per procs": 5771083.0, "Ops/sec/procs": 192198.13, "ns per ops/procs": 5202.96}],["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)": 218068235.0, "Ops per second": 7268941.0, "ns per ops": 137.0, "Ops per threads": 272585.0, "Ops per procs": 27258529.0, "Ops/sec/procs": 908617.0, "ns per ops/procs": 1101.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30002.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 967980836.0, "Ops per second": 32266027.0, "ns per ops": 30.0, "Ops per threads": 50415.0, "Ops per procs": 5041566.0, "Ops/sec/procs": 168052.0, "ns per ops/procs": 5950.0}],["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)": 621485773.0, "Ops per second": 20697560.72, "ns per ops": 48.31, "Ops per threads": 86317.0, "Ops per procs": 8631746.0, "Ops/sec/procs": 287466.12, "ns per ops/procs": 3478.67}],["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)": 155994127.0, "Ops per second": 5194060.14, "ns per ops": 192.53, "Ops per threads": 194992.0, "Ops per procs": 19499265.0, "Ops/sec/procs": 649257.52, "ns per ops/procs": 1540.22}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30069.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 648391912.0, "Total blocks": 360593314.0, "Ops per second": 21562876.49, "ns per ops": 46.38, "Ops per threads": 45027.0, "Ops per procs": 4502721.0, "Ops/sec/procs": 149742.2, "ns per ops/procs": 6678.15}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30016.464045, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 585048196.0, "Total blocks": 241029283.0, "Ops per second": 19490909.89, "ns per ops": 51.31, "Ops per threads": 30471.0, "Ops per procs": 3047126.0, "Ops/sec/procs": 101515.16, "ns per ops/procs": 9850.75}],["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)": 185779358.0, "Ops per second": 6192645.0, "ns per ops": 161.0, "Ops per threads": 928896.0, "Ops per procs": 92889679.0, "Ops/sec/procs": 3096322.0, "ns per ops/procs": 323.0}],["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)": 306368555.0, "Ops per second": 10212285.0, "ns per ops": 98.0, "Ops per threads": 191480.0, "Ops per procs": 19148034.0, "Ops/sec/procs": 638267.0, "ns per ops/procs": 1570.0}],["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)": 367957104.0, "Ops per second": 12246040.41, "ns per ops": 81.66, "Ops per threads": 76657.0, "Ops per procs": 7665773.0, "Ops/sec/procs": 255125.84, "ns per ops/procs": 3919.63}],["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)": 216218063.0, "Ops per second": 7200051.01, "ns per ops": 138.89, "Ops per threads": 135136.0, "Ops per procs": 13513628.0, "Ops/sec/procs": 450003.19, "ns per ops/procs": 2222.21}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30025.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 118397368.0, "Ops per second": 3943178.95, "ns per ops": 253.6, "Ops per threads": 591986.0, "Ops per procs": 59198684.0, "Ops/sec/procs": 1971589.48, "ns per ops/procs": 507.2}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30078.265793, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 293185383.0, "Total blocks": 112209049.0, "Ops per second": 9747416.46, "ns per ops": 102.59, "Ops per threads": 183240.0, "Ops per procs": 18324086.0, "Ops/sec/procs": 609213.53, "ns per ops/procs": 1641.46}],["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)": 686637253.0, "Ops per second": 22864579.22, "ns per ops": 43.74, "Ops per threads": 95366.0, "Ops per procs": 9536628.0, "Ops/sec/procs": 317563.6, "ns per ops/procs": 3148.98}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30035.28097, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 518287679.0, "Total blocks": 199952052.0, "Ops per second": 17255962.4, "ns per ops": 57.95, "Ops per threads": 53988.0, "Ops per procs": 5398829.0, "Ops/sec/procs": 179749.61, "ns per ops/procs": 5563.3}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30052.113055, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 662990250.0, "Total blocks": 242148809.0, "Ops per second": 22061352.18, "ns per ops": 45.33, "Ops per threads": 138122.0, "Ops per procs": 13812296.0, "Ops/sec/procs": 459611.5, "ns per ops/procs": 2175.75}],["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)": 366049203.0, "Ops per second": 12182154.2, "ns per ops": 82.09, "Ops per threads": 76260.0, "Ops per procs": 7626025.0, "Ops/sec/procs": 253794.88, "ns per ops/procs": 3940.19}],["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)": 144508007.0, "Ops per second": 4810832.12, "ns per ops": 207.86, "Ops per threads": 180635.0, "Ops per procs": 18063500.0, "Ops/sec/procs": 601354.02, "ns per ops/procs": 1662.91}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30095.286527, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 569654633.0, "Total blocks": 223488744.0, "Ops per second": 18928367.15, "ns per ops": 52.83, "Ops per threads": 39559.0, "Ops per procs": 3955934.0, "Ops/sec/procs": 131446.99, "ns per ops/procs": 7607.63}],["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)": 444077233.0, "Ops per second": 14782259.76, "ns per ops": 67.65, "Ops per threads": 30838.0, "Ops per procs": 3083869.0, "Ops/sec/procs": 102654.58, "ns per ops/procs": 9741.41}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 176607855.0, "Ops per second": 5886928.0, "ns per ops": 170.0, "Ops per threads": 883039.0, "Ops per procs": 88303927.0, "Ops/sec/procs": 2943464.0, "ns per ops/procs": 340.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30082.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 650094122.0, "Total blocks": 361602989.0, "Ops per second": 21610556.29, "ns per ops": 46.27, "Ops per threads": 45145.0, "Ops per procs": 4514542.0, "Ops/sec/procs": 150073.31, "ns per ops/procs": 6663.41}],["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)": 231429181.0, "Ops per second": 7707226.52, "ns per ops": 129.75, "Ops per threads": 144643.0, "Ops per procs": 14464323.0, "Ops/sec/procs": 481701.66, "ns per ops/procs": 2075.97}],["rdq-churn-fibre", "./rdq-churn-fibre -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)": 161432893.0, "Total blocks": 87321068.0, "Ops per second": 5374769.9, "ns per ops": 186.05, "Ops per threads": 201791.0, "Ops per procs": 20179111.0, "Ops/sec/procs": 671846.24, "ns per ops/procs": 1488.44}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30048.794962, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 547667800.0, "Total blocks": 202267056.0, "Ops per second": 18225948.85, "ns per ops": 54.87, "Ops per threads": 57048.0, "Ops per procs": 5704872.0, "Ops/sec/procs": 189853.63, "ns per ops/procs": 5267.22}],["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)": 841709635.0, "Ops per second": 28056987.0, "ns per ops": 35.0, "Ops per threads": 58452.0, "Ops per procs": 5845205.0, "Ops/sec/procs": 194840.0, "ns per ops/procs": 5133.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30033.50335, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 553080283.0, "Total blocks": 206590418.0, "Ops per second": 18415443.47, "ns per ops": 54.3, "Ops per threads": 38408.0, "Ops per procs": 3840835.0, "Ops/sec/procs": 127885.02, "ns per ops/procs": 7819.52}],["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)": 143703241.0, "Ops per second": 4784646.74, "ns per ops": 209.0, "Ops per threads": 179629.0, "Ops per procs": 17962905.0, "Ops/sec/procs": 598080.84, "ns per ops/procs": 1672.01}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30026.964502, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 543013048.0, "Total blocks": 218812100.0, "Ops per second": 18084180.57, "ns per ops": 55.3, "Ops per threads": 37709.0, "Ops per procs": 3770923.0, "Ops/sec/procs": 125584.59, "ns per ops/procs": 7962.76}],["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)": 222380161.0, "Ops per second": 7405416.38, "ns per ops": 135.04, "Ops per threads": 138987.0, "Ops per procs": 13898760.0, "Ops/sec/procs": 462838.52, "ns per ops/procs": 2160.58}],["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)": 218649601.0, "Ops per second": 7281546.78, "ns per ops": 137.33, "Ops per threads": 136656.0, "Ops per procs": 13665600.0, "Ops/sec/procs": 455096.67, "ns per ops/procs": 2197.34}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30055.410932, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 494167663.0, "Total blocks": 184581990.0, "Ops per second": 16441886.76, "ns per ops": 60.82, "Ops per threads": 68634.0, "Ops per procs": 6863439.0, "Ops/sec/procs": 228359.54, "ns per ops/procs": 4379.06}],["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)": 118798632.0, "Ops per second": 3957296.34, "ns per ops": 252.7, "Ops per threads": 593993.0, "Ops per procs": 59399316.0, "Ops/sec/procs": 1978648.17, "ns per ops/procs": 505.4}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30026.673081, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 561258054.0, "Total blocks": 199394662.0, "Ops per second": 18691982.71, "ns per ops": 53.5, "Ops per threads": 58464.0, "Ops per procs": 5846438.0, "Ops/sec/procs": 194708.15, "ns per ops/procs": 5135.89}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.167793, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 455320726.0, "Total blocks": 3932383.0, "Ops per second": 15151515.21, "ns per ops": 66.0, "Ops per threads": 2276603.0, "Ops per procs": 227660363.0, "Ops/sec/procs": 7575757.61, "ns per ops/procs": 132.0}],["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)": 120523896.0, "Total blocks": 71597726.0, "Ops per second": 4004154.95, "ns per ops": 249.74, "Ops per threads": 301309.0, "Ops per procs": 30130974.0, "Ops/sec/procs": 1001038.74, "ns per ops/procs": 998.96}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30083.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 318138317.0, "Ops per second": 10604610.0, "ns per ops": 94.0, "Ops per threads": 198836.0, "Ops per procs": 19883644.0, "Ops/sec/procs": 662788.0, "ns per ops/procs": 1512.0}],["rdq-churn-go", "./rdq-churn-go -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)": 136522993.0, "Ops per second": 4546746.46, "ns per ops": 219.94, "Ops per threads": 1365229.0, "Ops per procs": 136522993.0, "Ops/sec/procs": 4546746.46, "ns per ops/procs": 219.94}],["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)": 506799324.0, "Total blocks": 278949440.0, "Ops per second": 16837136.67, "ns per ops": 59.39, "Ops per threads": 105583.0, "Ops per procs": 10558319.0, "Ops/sec/procs": 350773.68, "ns per ops/procs": 2850.84}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30019.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 500621559.0, "Ops per second": 16687385.0, "ns per ops": 59.0, "Ops per threads": 52148.0, "Ops per procs": 5214807.0, "Ops/sec/procs": 173826.0, "ns per ops/procs": 5756.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30077.47981, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 287320119.0, "Total blocks": 108882567.0, "Ops per second": 9552666.01, "ns per ops": 104.68, "Ops per threads": 179575.0, "Ops per procs": 17957507.0, "Ops/sec/procs": 597041.63, "ns per ops/procs": 1674.93}],["rdq-churn-go", "./rdq-churn-go -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30024.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 239583176.0, "Ops per second": 7979631.4, "ns per ops": 125.32, "Ops per threads": 149739.0, "Ops per procs": 14973948.0, "Ops/sec/procs": 498726.96, "ns per ops/procs": 2005.11}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30060.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 167239503.0, "Ops per second": 5574650.0, "ns per ops": 179.0, "Ops per threads": 418098.0, "Ops per procs": 41809875.0, "Ops/sec/procs": 1393662.0, "ns per ops/procs": 718.0}],["rdq-churn-fibre", "./rdq-churn-fibre -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": 48.0, "Total Operations(ops)": 503519362.0, "Total blocks": 277419786.0, "Ops per second": 16782920.93, "ns per ops": 59.58, "Ops per threads": 104899.0, "Ops per procs": 10489986.0, "Ops/sec/procs": 349644.19, "ns per ops/procs": 2860.05}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30049.349784, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 717076122.0, "Total blocks": 274220017.0, "Ops per second": 23863282.47, "ns per ops": 41.91, "Ops per threads": 149390.0, "Ops per procs": 14939085.0, "Ops/sec/procs": 497151.72, "ns per ops/procs": 2011.46}],["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)": 364413042.0, "Ops per second": 12129000.29, "ns per ops": 82.45, "Ops per threads": 75919.0, "Ops per procs": 7591938.0, "Ops/sec/procs": 252687.51, "ns per ops/procs": 3957.46}],["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)": 453636692.0, "Ops per second": 15096967.31, "ns per ops": 66.24, "Ops per threads": 23626.0, "Ops per procs": 2362691.0, "Ops/sec/procs": 78630.04, "ns per ops/procs": 12717.79}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30025.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 150252490.0, "Ops per second": 5004153.72, "ns per ops": 199.83, "Ops per threads": 187815.0, "Ops per procs": 18781561.0, "Ops/sec/procs": 625519.21, "ns per ops/procs": 1598.67}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30052.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 403300680.0, "Total blocks": 211142254.0, "Ops per second": 13420091.18, "ns per ops": 74.52, "Ops per threads": 56013.0, "Ops per procs": 5601398.0, "Ops/sec/procs": 186390.16, "ns per ops/procs": 5365.09}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30054.584234, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 151976230.0, "Total blocks": 72512868.0, "Ops per second": 5056673.84, "ns per ops": 197.76, "Ops per threads": 379940.0, "Ops per procs": 37994057.0, "Ops/sec/procs": 1264168.46, "ns per ops/procs": 791.03}],["rdq-churn-go", "./rdq-churn-go -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": 72.0, "Total Operations(ops)": 384058417.0, "Ops per second": 12791616.7, "ns per ops": 78.18, "Ops per threads": 53341.0, "Ops per procs": 5334144.0, "Ops/sec/procs": 177661.34, "ns per ops/procs": 5628.69}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30049.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 224235663.0, "Ops per second": 7474522.0, "ns per ops": 134.0, "Ops per threads": 280294.0, "Ops per procs": 28029457.0, "Ops/sec/procs": 934315.0, "ns per ops/procs": 1072.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.90884, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 457146378.0, "Total blocks": 4354283.0, "Ops per second": 15211891.55, "ns per ops": 65.74, "Ops per threads": 2285731.0, "Ops per procs": 228573189.0, "Ops/sec/procs": 7605945.77, "ns per ops/procs": 131.48}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30092.947204, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 445395114.0, "Total blocks": 160695648.0, "Ops per second": 14800647.84, "ns per ops": 67.56, "Ops per threads": 61860.0, "Ops per procs": 6186043.0, "Ops/sec/procs": 205564.55, "ns per ops/procs": 4864.65}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30069.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 316535439.0, "Ops per second": 10551181.0, "ns per ops": 94.0, "Ops per threads": 197834.0, "Ops per procs": 19783464.0, "Ops/sec/procs": 659448.0, "ns per ops/procs": 1519.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30029.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 499478438.0, "Ops per second": 16649281.0, "ns per ops": 60.0, "Ops per threads": 52029.0, "Ops per procs": 5202900.0, "Ops/sec/procs": 173430.0, "ns per ops/procs": 5771.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30074.09714, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 449729842.0, "Total blocks": 164692498.0, "Ops per second": 14954059.63, "ns per ops": 66.87, "Ops per threads": 62462.0, "Ops per procs": 6246247.0, "Ops/sec/procs": 207695.27, "ns per ops/procs": 4814.75}],["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)": 839569012.0, "Ops per second": 27985633.0, "ns per ops": 35.0, "Ops per threads": 58303.0, "Ops per procs": 5830340.0, "Ops/sec/procs": 194344.0, "ns per ops/procs": 5146.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30052.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 407664001.0, "Ops per second": 13588800.0, "ns per ops": 73.0, "Ops per threads": 56620.0, "Ops per procs": 5662000.0, "Ops/sec/procs": 188733.0, "ns per ops/procs": 5307.0}],["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)": 473430603.0, "Ops per second": 15753366.08, "ns per ops": 63.48, "Ops per threads": 24657.0, "Ops per procs": 2465784.0, "Ops/sec/procs": 82048.78, "ns per ops/procs": 12187.87}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30075.423217, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 274612732.0, "Total blocks": 93168104.0, "Ops per second": 9130801.92, "ns per ops": 109.52, "Ops per threads": 171632.0, "Ops per procs": 17163295.0, "Ops/sec/procs": 570675.12, "ns per ops/procs": 1752.31}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30085.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 410586760.0, "Total blocks": 216454604.0, "Ops per second": 13647384.27, "ns per ops": 73.27, "Ops per threads": 57025.0, "Ops per procs": 5702593.0, "Ops/sec/procs": 189547.0, "ns per ops/procs": 5275.74}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30059.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 404725482.0, "Total blocks": 213051228.0, "Ops per second": 13464248.53, "ns per ops": 74.27, "Ops per threads": 56211.0, "Ops per procs": 5621187.0, "Ops/sec/procs": 187003.45, "ns per ops/procs": 5347.5}],["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)": 479035717.0, "Total blocks": 255720322.0, "Ops per second": 15963538.86, "ns per ops": 62.64, "Ops per threads": 49899.0, "Ops per procs": 4989955.0, "Ops/sec/procs": 166286.86, "ns per ops/procs": 6013.7}],["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)": 136409693.0, "Ops per second": 4546748.4, "ns per ops": 219.94, "Ops per threads": 1364096.0, "Ops per procs": 136409693.0, "Ops/sec/procs": 4546748.4, "ns per ops/procs": 219.94}],["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)": 210974431.0, "Ops per second": 7025455.59, "ns per ops": 142.34, "Ops per threads": 131859.0, "Ops per procs": 13185901.0, "Ops/sec/procs": 439090.97, "ns per ops/procs": 2277.43}],["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)": 549104700.0, "Total blocks": 304859004.0, "Ops per second": 18250896.3, "ns per ops": 54.79, "Ops per threads": 114396.0, "Ops per procs": 11439681.0, "Ops/sec/procs": 380227.01, "ns per ops/procs": 2630.01}],["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)": 546325320.0, "Total blocks": 303485414.0, "Ops per second": 18155163.43, "ns per ops": 55.08, "Ops per threads": 113817.0, "Ops per procs": 11381777.0, "Ops/sec/procs": 378232.57, "ns per ops/procs": 2643.88}],["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)": 230101579.0, "Ops per second": 7661004.77, "ns per ops": 130.53, "Ops per threads": 143813.0, "Ops per procs": 14381348.0, "Ops/sec/procs": 478812.8, "ns per ops/procs": 2088.5}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30089.519404, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 431748437.0, "Total blocks": 174784846.0, "Ops per second": 14348798.04, "ns per ops": 69.69, "Ops per threads": 59965.0, "Ops per procs": 5996506.0, "Ops/sec/procs": 199288.86, "ns per ops/procs": 5017.84}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30049.732024, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1203302068.0, "Total blocks": 0.0, "Ops per second": 40043687.15, "ns per ops": 24.97, "Ops per threads": 12033020.0, "Ops per procs": 1203302068.0, "Ops/sec/procs": 40043687.15, "ns per ops/procs": 24.97}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.856, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 513190925.0, "Total blocks": 1211761.0, "Ops per second": 17076846.27, "ns per ops": 58.56, "Ops per threads": 2565954.0, "Ops per procs": 256595462.0, "Ops/sec/procs": 8538423.13, "ns per ops/procs": 117.12}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30025.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 480420317.0, "Ops per second": 16014010.0, "ns per ops": 62.0, "Ops per threads": 200175.0, "Ops per procs": 20017513.0, "Ops/sec/procs": 667250.0, "ns per ops/procs": 1499.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)": 192408701.0, "Total blocks": 0.0, "Ops per second": 6407823.67, "ns per ops": 156.06, "Ops per threads": 1924087.0, "Ops per procs": 192408701.0, "Ops/sec/procs": 6407823.67, "ns per ops/procs": 156.06}],["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)": 179762652.0, "Total blocks": 96977070.0, "Ops per second": 5989325.7, "ns per ops": 166.96, "Ops per threads": 224703.0, "Ops per procs": 22470331.0, "Ops/sec/procs": 748665.71, "ns per ops/procs": 1335.71}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30021.291468, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 366641766.0, "Total blocks": 142397645.0, "Ops per second": 12212724.64, "ns per ops": 81.88, "Ops per threads": 152767.0, "Ops per procs": 15276740.0, "Ops/sec/procs": 508863.53, "ns per ops/procs": 1965.16}],["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)": 161349221.0, "Ops per second": 5371852.47, "ns per ops": 186.16, "Ops per threads": 403373.0, "Ops per procs": 40337305.0, "Ops/sec/procs": 1342963.12, "ns per ops/procs": 744.62}],["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)": 192278499.0, "Total blocks": 0.0, "Ops per second": 6403513.47, "ns per ops": 156.16, "Ops per threads": 1922784.0, "Ops per procs": 192278499.0, "Ops/sec/procs": 6403513.47, "ns per ops/procs": 156.16}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30059.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 319580917.0, "Ops per second": 10652697.0, "ns per ops": 94.0, "Ops per threads": 199738.0, "Ops per procs": 19973807.0, "Ops/sec/procs": 665793.0, "ns per ops/procs": 1504.0}],["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)": 546907675.0, "Total blocks": 303993585.0, "Ops per second": 18176654.38, "ns per ops": 55.02, "Ops per threads": 113939.0, "Ops per procs": 11393909.0, "Ops/sec/procs": 378680.3, "ns per ops/procs": 2640.75}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30048.044701, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 686275241.0, "Total blocks": 260725338.0, "Ops per second": 22839264.51, "ns per ops": 43.78, "Ops per threads": 142974.0, "Ops per procs": 14297400.0, "Ops/sec/procs": 475818.01, "ns per ops/procs": 2101.64}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30007.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 224118185.0, "Ops per second": 7470606.0, "ns per ops": 133.0, "Ops per threads": 280147.0, "Ops per procs": 28014773.0, "Ops/sec/procs": 933825.0, "ns per ops/procs": 1071.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30032.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 780039424.0, "Total blocks": 406598221.0, "Ops per second": 25972987.05, "ns per ops": 38.5, "Ops per threads": 40627.0, "Ops per procs": 4062705.0, "Ops/sec/procs": 135275.97, "ns per ops/procs": 7392.3}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30064.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 766518642.0, "Total blocks": 399561533.0, "Ops per second": 25495430.01, "ns per ops": 39.22, "Ops per threads": 39922.0, "Ops per procs": 3992284.0, "Ops/sec/procs": 132788.7, "ns per ops/procs": 7530.76}],["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)": 369220616.0, "Ops per second": 12287825.46, "ns per ops": 81.38, "Ops per threads": 76920.0, "Ops per procs": 7692096.0, "Ops/sec/procs": 255996.36, "ns per ops/procs": 3906.31}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30077.98976, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 550661432.0, "Total blocks": 233427204.0, "Ops per second": 18307787.07, "ns per ops": 54.62, "Ops per threads": 28680.0, "Ops per procs": 2868028.0, "Ops/sec/procs": 95353.06, "ns per ops/procs": 10487.34}],["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)": 151781081.0, "Ops per second": 5054147.27, "ns per ops": 197.86, "Ops per threads": 189726.0, "Ops per procs": 18972635.0, "Ops/sec/procs": 631768.41, "ns per ops/procs": 1582.86}],["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)": 489172969.0, "Ops per second": 16305765.0, "ns per ops": 61.0, "Ops per threads": 203822.0, "Ops per procs": 20382207.0, "Ops/sec/procs": 679406.0, "ns per ops/procs": 1472.0}],["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)": 168558017.0, "Ops per second": 5618600.0, "ns per ops": 178.0, "Ops per threads": 421395.0, "Ops per procs": 42139504.0, "Ops/sec/procs": 1404650.0, "ns per ops/procs": 713.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)": 368478476.0, "Ops per second": 12262314.16, "ns per ops": 81.55, "Ops per threads": 76766.0, "Ops per procs": 7676634.0, "Ops/sec/procs": 255464.88, "ns per ops/procs": 3914.43}],["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)": 251031652.0, "Ops per second": 8357450.51, "ns per ops": 119.65, "Ops per threads": 104596.0, "Ops per procs": 10459652.0, "Ops/sec/procs": 348227.1, "ns per ops/procs": 2871.69}],["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)": 411007153.0, "Ops per second": 13700238.0, "ns per ops": 73.0, "Ops per threads": 57084.0, "Ops per procs": 5708432.0, "Ops/sec/procs": 190281.0, "ns per ops/procs": 5263.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)": 192508166.0, "Total blocks": 0.0, "Ops per second": 6411255.09, "ns per ops": 155.98, "Ops per threads": 1925081.0, "Ops per procs": 192508166.0, "Ops/sec/procs": 6411255.09, "ns per ops/procs": 155.98}],["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)": 217098912.0, "Ops per second": 7236630.0, "ns per ops": 138.0, "Ops per threads": 271373.0, "Ops per procs": 27137364.0, "Ops/sec/procs": 904578.0, "ns per ops/procs": 1106.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30060.266647, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 520281745.0, "Total blocks": 193469152.0, "Ops per second": 17307955.09, "ns per ops": 57.78, "Ops per threads": 54196.0, "Ops per procs": 5419601.0, "Ops/sec/procs": 180291.2, "ns per ops/procs": 5546.58}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30038.825862, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 639542051.0, "Total blocks": 195130995.0, "Ops per second": 21290514.28, "ns per ops": 46.97, "Ops per threads": 33309.0, "Ops per procs": 3330948.0, "Ops/sec/procs": 110888.1, "ns per ops/procs": 9018.1}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30037.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 420965320.0, "Ops per second": 14032177.0, "ns per ops": 71.0, "Ops per threads": 58467.0, "Ops per procs": 5846740.0, "Ops/sec/procs": 194891.0, "ns per ops/procs": 5137.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)": 135120420.0, "Ops per second": 4503778.84, "ns per ops": 222.04, "Ops per threads": 1351204.0, "Ops per procs": 135120420.0, "Ops/sec/procs": 4503778.84, "ns per ops/procs": 222.04}],["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)": 180394539.0, "Total blocks": 97365389.0, "Ops per second": 6010539.2, "ns per ops": 166.37, "Ops per threads": 225493.0, "Ops per procs": 22549317.0, "Ops/sec/procs": 751317.4, "ns per ops/procs": 1331.0}],["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)": 234195932.0, "Ops per second": 7799415.34, "ns per ops": 128.21, "Ops per threads": 146372.0, "Ops per procs": 14637245.0, "Ops/sec/procs": 487463.46, "ns per ops/procs": 2051.44}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30040.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 432389881.0, "Ops per second": 14393327.27, "ns per ops": 69.48, "Ops per threads": 22520.0, "Ops per procs": 2252030.0, "Ops/sec/procs": 74965.25, "ns per ops/procs": 13339.51}],["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)": 237983574.0, "Ops per second": 7925620.93, "ns per ops": 126.17, "Ops per threads": 148739.0, "Ops per procs": 14873973.0, "Ops/sec/procs": 495351.31, "ns per ops/procs": 2018.77}],["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)": 192551687.0, "Total blocks": 0.0, "Ops per second": 6412604.61, "ns per ops": 155.94, "Ops per threads": 1925516.0, "Ops per procs": 192551687.0, "Ops/sec/procs": 6412604.61, "ns per ops/procs": 155.94}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30047.902625, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 436006175.0, "Total blocks": 172685130.0, "Ops per second": 14510369.67, "ns per ops": 68.92, "Ops per threads": 60556.0, "Ops per procs": 6055641.0, "Ops/sec/procs": 201532.91, "ns per ops/procs": 4961.97}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30054.730213, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 174550924.0, "Total blocks": 43636476.0, "Ops per second": 5807768.79, "ns per ops": 172.18, "Ops per threads": 436377.0, "Ops per procs": 43637731.0, "Ops/sec/procs": 1451942.2, "ns per ops/procs": 688.73}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.661686, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 509144612.0, "Total blocks": 3468721.0, "Ops per second": 16942311.45, "ns per ops": 59.02, "Ops per threads": 2545723.0, "Ops per procs": 254572306.0, "Ops/sec/procs": 8471155.73, "ns per ops/procs": 118.05}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30060.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 171086534.0, "Ops per second": 5702884.0, "ns per ops": 175.0, "Ops per threads": 427716.0, "Ops per procs": 42771633.0, "Ops/sec/procs": 1425721.0, "ns per ops/procs": 702.0}],["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)": 153220970.0, "Ops per second": 5100937.13, "ns per ops": 196.04, "Ops per threads": 383052.0, "Ops per procs": 38305242.0, "Ops/sec/procs": 1275234.28, "ns per ops/procs": 784.17}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.143262, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 139908678.0, "Total blocks": 66492307.0, "Ops per second": 4655066.08, "ns per ops": 214.82, "Ops per threads": 349771.0, "Ops per procs": 34977169.0, "Ops/sec/procs": 1163766.52, "ns per ops/procs": 859.28}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30045.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 388406248.0, "Ops per second": 12946874.0, "ns per ops": 77.0, "Ops per threads": 53945.0, "Ops per procs": 5394531.0, "Ops/sec/procs": 179817.0, "ns per ops/procs": 5569.0}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30031.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 147741060.0, "Ops per second": 4919542.56, "ns per ops": 203.27, "Ops per threads": 369352.0, "Ops per procs": 36935265.0, "Ops/sec/procs": 1229885.64, "ns per ops/procs": 813.08}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30050.139224, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1201558746.0, "Total blocks": 48188.0, "Ops per second": 39985130.75, "ns per ops": 25.01, "Ops per threads": 12015587.0, "Ops per procs": 1201558746.0, "Ops/sec/procs": 39985130.75, "ns per ops/procs": 25.01}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30053.438807, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 764383665.0, "Total blocks": 276217432.0, "Ops per second": 25434149.81, "ns per ops": 39.32, "Ops per threads": 159246.0, "Ops per procs": 15924659.0, "Ops/sec/procs": 529878.12, "ns per ops/procs": 1887.23}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30025.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 220456710.0, "Ops per second": 7348557.0, "ns per ops": 136.0, "Ops per threads": 275570.0, "Ops per procs": 27557088.0, "Ops/sec/procs": 918569.0, "ns per ops/procs": 1089.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)": 460834385.0, "Ops per second": 15361146.0, "ns per ops": 65.0, "Ops per threads": 4608343.0, "Ops per procs": 460834385.0, "Ops/sec/procs": 15361146.0, "ns per ops/procs": 65.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30021.963027, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 348654768.0, "Total blocks": 127740860.0, "Ops per second": 11613323.48, "ns per ops": 86.11, "Ops per threads": 145272.0, "Ops per procs": 14527282.0, "Ops/sec/procs": 483888.48, "ns per ops/procs": 2066.59}],["rdq-churn-fibre", "./rdq-churn-fibre -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)": 344867790.0, "Total blocks": 182853485.0, "Ops per second": 11480219.83, "ns per ops": 87.11, "Ops per threads": 143694.0, "Ops per procs": 14369491.0, "Ops/sec/procs": 478342.49, "ns per ops/procs": 2090.55}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30018.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 584025738.0, "Ops per second": 19467524.0, "ns per ops": 51.0, "Ops per threads": 121672.0, "Ops per procs": 12167202.0, "Ops/sec/procs": 405573.0, "ns per ops/procs": 2467.0}],["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)": 275522323.0, "Total blocks": 139885510.0, "Ops per second": 9172643.35, "ns per ops": 109.02, "Ops per threads": 172201.0, "Ops per procs": 17220145.0, "Ops/sec/procs": 573290.21, "ns per ops/procs": 1744.32}],["rdq-churn-go", "./rdq-churn-go -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30033.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 249537493.0, "Ops per second": 8308716.77, "ns per ops": 120.36, "Ops per threads": 103973.0, "Ops per procs": 10397395.0, "Ops/sec/procs": 346196.53, "ns per ops/procs": 2888.53}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30066.25612, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 470495820.0, "Total blocks": 174985413.0, "Ops per second": 15648633.41, "ns per ops": 63.9, "Ops per threads": 65346.0, "Ops per procs": 6534664.0, "Ops/sec/procs": 217342.13, "ns per ops/procs": 4601.04}],["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)": 135422869.0, "Total blocks": 82057107.0, "Ops per second": 4499857.7, "ns per ops": 222.23, "Ops per threads": 338557.0, "Ops per procs": 33855717.0, "Ops/sec/procs": 1124964.42, "ns per ops/procs": 888.92}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30039.595314, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 622528463.0, "Total blocks": 241935300.0, "Ops per second": 20723596.86, "ns per ops": 48.25, "Ops per threads": 32423.0, "Ops per procs": 3242335.0, "Ops/sec/procs": 107935.4, "ns per ops/procs": 9264.8}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30010.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 832431123.0, "Ops per second": 27747704.0, "ns per ops": 36.0, "Ops per threads": 57807.0, "Ops per procs": 5780771.0, "Ops/sec/procs": 192692.0, "ns per ops/procs": 5191.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30084.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 403400629.0, "Total blocks": 211866068.0, "Ops per second": 13408988.85, "ns per ops": 74.58, "Ops per threads": 56027.0, "Ops per procs": 5602786.0, "Ops/sec/procs": 186235.96, "ns per ops/procs": 5369.53}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30025.603656, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 559680215.0, "Total blocks": 207513229.0, "Ops per second": 18640098.68, "ns per ops": 53.65, "Ops per threads": 58300.0, "Ops per procs": 5830002.0, "Ops/sec/procs": 194167.69, "ns per ops/procs": 5150.19}],["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)": 460859354.0, "Ops per second": 15361978.0, "ns per ops": 65.0, "Ops per threads": 4608593.0, "Ops per procs": 460859354.0, "Ops/sec/procs": 15361978.0, "ns per ops/procs": 65.0}],["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)": 506104297.0, "Total blocks": 278804829.0, "Ops per second": 16814745.59, "ns per ops": 59.47, "Ops per threads": 105438.0, "Ops per procs": 10543839.0, "Ops/sec/procs": 350307.2, "ns per ops/procs": 2854.64}],["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)": 180383551.0, "Ops per second": 5995394.97, "ns per ops": 166.79, "Ops per threads": 18789.0, "Ops per procs": 1878995.0, "Ops/sec/procs": 62452.03, "ns per ops/procs": 16012.29}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30044.620866, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 659407644.0, "Total blocks": 263217603.0, "Ops per second": 21947610.75, "ns per ops": 45.56, "Ops per threads": 34344.0, "Ops per procs": 3434414.0, "Ops/sec/procs": 114310.47, "ns per ops/procs": 8748.11}],["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)": 192551754.0, "Total blocks": 0.0, "Ops per second": 6412595.41, "ns per ops": 155.94, "Ops per threads": 1925517.0, "Ops per procs": 192551754.0, "Ops/sec/procs": 6412595.41, "ns per ops/procs": 155.94}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.022076, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 148097981.0, "Total blocks": 70656487.0, "Ops per second": 4927561.88, "ns per ops": 202.94, "Ops per threads": 370244.0, "Ops per procs": 37024495.0, "Ops/sec/procs": 1231890.47, "ns per ops/procs": 811.76}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30011.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 591273090.0, "Ops per second": 19709103.0, "ns per ops": 50.0, "Ops per threads": 123181.0, "Ops per procs": 12318189.0, "Ops/sec/procs": 410606.0, "ns per ops/procs": 2436.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.250692, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 146432067.0, "Total blocks": 69689176.0, "Ops per second": 4872096.01, "ns per ops": 205.25, "Ops per threads": 366080.0, "Ops per procs": 36608016.0, "Ops/sec/procs": 1218024.0, "ns per ops/procs": 821.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30059.108827, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 470109958.0, "Total blocks": 178952564.0, "Ops per second": 15639517.48, "ns per ops": 63.94, "Ops per threads": 65293.0, "Ops per procs": 6529304.0, "Ops/sec/procs": 217215.52, "ns per ops/procs": 4603.72}],["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)": 297665501.0, "Total blocks": 153299544.0, "Ops per second": 9911873.91, "ns per ops": 100.89, "Ops per threads": 186040.0, "Ops per procs": 18604093.0, "Ops/sec/procs": 619492.12, "ns per ops/procs": 1614.23}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30043.531403, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 600490304.0, "Total blocks": 235484020.0, "Ops per second": 19987340.9, "ns per ops": 50.03, "Ops per threads": 41700.0, "Ops per procs": 4170071.0, "Ops/sec/procs": 138800.98, "ns per ops/procs": 7204.56}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30036.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 410597024.0, "Ops per second": 13686567.0, "ns per ops": 73.0, "Ops per threads": 57027.0, "Ops per procs": 5702736.0, "Ops/sec/procs": 190091.0, "ns per ops/procs": 5266.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30019.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 515524891.0, "Ops per second": 17184163.0, "ns per ops": 58.0, "Ops per threads": 53700.0, "Ops per procs": 5370050.0, "Ops/sec/procs": 179001.0, "ns per ops/procs": 5590.0}],["rdq-churn-fibre", "./rdq-churn-fibre -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": 96.0, "Total Operations(ops)": 475786004.0, "Total blocks": 252002313.0, "Ops per second": 15855671.1, "ns per ops": 63.07, "Ops per threads": 49561.0, "Ops per procs": 4956104.0, "Ops/sec/procs": 165163.24, "ns per ops/procs": 6054.62}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30031.908586, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 630058044.0, "Total blocks": 246439654.0, "Ops per second": 20979620.47, "ns per ops": 47.67, "Ops per threads": 32815.0, "Ops per procs": 3281552.0, "Ops/sec/procs": 109268.86, "ns per ops/procs": 9151.74}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30028.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 481142242.0, "Ops per second": 16038074.0, "ns per ops": 62.0, "Ops per threads": 200475.0, "Ops per procs": 20047593.0, "Ops/sec/procs": 668253.0, "ns per ops/procs": 1497.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)": 119728039.0, "Ops per second": 3988180.77, "ns per ops": 250.74, "Ops per threads": 598640.0, "Ops per procs": 59864019.0, "Ops/sec/procs": 1994090.39, "ns per ops/procs": 501.48}],["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)": 295962201.0, "Total blocks": 152162900.0, "Ops per second": 9854893.53, "ns per ops": 101.47, "Ops per threads": 184976.0, "Ops per procs": 18497637.0, "Ops/sec/procs": 615930.85, "ns per ops/procs": 1623.56}],["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)": 136197300.0, "Ops per second": 4539671.37, "ns per ops": 220.28, "Ops per threads": 1361973.0, "Ops per procs": 136197300.0, "Ops/sec/procs": 4539671.37, "ns per ops/procs": 220.28}],["rdq-churn-fibre", "./rdq-churn-fibre -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30023.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 168324118.0, "Total blocks": 91661768.0, "Ops per second": 5606387.16, "ns per ops": 178.37, "Ops per threads": 210405.0, "Ops per procs": 21040514.0, "Ops/sec/procs": 700798.39, "ns per ops/procs": 1426.94}],["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)": 136334753.0, "Ops per second": 4544249.33, "ns per ops": 220.06, "Ops per threads": 1363347.0, "Ops per procs": 136334753.0, "Ops/sec/procs": 4544249.33, "ns per ops/procs": 220.06}],["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)": 119086238.0, "Ops per second": 3966301.68, "ns per ops": 252.12, "Ops per threads": 595431.0, "Ops per procs": 59543119.0, "Ops/sec/procs": 1983150.84, "ns per ops/procs": 504.25}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30031.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 222435516.0, "Ops per second": 7414517.0, "ns per ops": 135.0, "Ops per threads": 278044.0, "Ops per procs": 27804439.0, "Ops/sec/procs": 926814.0, "ns per ops/procs": 1080.0}],["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)": 83916392.0, "Total blocks": 41958959.0, "Ops per second": 2790719.03, "ns per ops": 358.33, "Ops per threads": 419581.0, "Ops per procs": 41958196.0, "Ops/sec/procs": 1395359.51, "ns per ops/procs": 716.66}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.870883, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 164607492.0, "Total blocks": 70920731.0, "Ops per second": 5476716.77, "ns per ops": 182.59, "Ops per threads": 411518.0, "Ops per procs": 41151873.0, "Ops/sec/procs": 1369179.19, "ns per ops/procs": 730.36}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30060.236823, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 201529808.0, "Total blocks": 84857606.0, "Ops per second": 6704198.95, "ns per ops": 149.16, "Ops per threads": 251912.0, "Ops per procs": 25191226.0, "Ops/sec/procs": 838024.87, "ns per ops/procs": 1193.28}],["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)": 840143003.0, "Ops per second": 28004766.0, "ns per ops": 35.0, "Ops per threads": 58343.0, "Ops per procs": 5834326.0, "Ops/sec/procs": 194477.0, "ns per ops/procs": 5143.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30021.925477, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 352878671.0, "Total blocks": 142203864.0, "Ops per second": 11754031.94, "ns per ops": 85.08, "Ops per threads": 147032.0, "Ops per procs": 14703277.0, "Ops/sec/procs": 489751.33, "ns per ops/procs": 2041.85}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30065.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 90194985.0, "Total blocks": 45098289.0, "Ops per second": 2999965.64, "ns per ops": 333.34, "Ops per threads": 450974.0, "Ops per procs": 45097492.0, "Ops/sec/procs": 1499982.82, "ns per ops/procs": 666.67}],["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)": 500343296.0, "Ops per second": 16678109.0, "ns per ops": 59.0, "Ops per threads": 52119.0, "Ops per procs": 5211909.0, "Ops/sec/procs": 173730.0, "ns per ops/procs": 5758.0}],["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)": 175180667.0, "Total blocks": 94784128.0, "Ops per second": 5835222.83, "ns per ops": 171.37, "Ops per threads": 218975.0, "Ops per procs": 21897583.0, "Ops/sec/procs": 729402.85, "ns per ops/procs": 1370.98}],["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)": 83081069.0, "Total blocks": 41541254.0, "Ops per second": 2762961.84, "ns per ops": 361.93, "Ops per threads": 415405.0, "Ops per procs": 41540534.0, "Ops/sec/procs": 1381480.92, "ns per ops/procs": 723.86}],["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)": 821300496.0, "Ops per second": 27376683.0, "ns per ops": 36.0, "Ops per threads": 57034.0, "Ops per procs": 5703475.0, "Ops/sec/procs": 190115.0, "ns per ops/procs": 5260.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30000.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 500612696.0, "Total blocks": 275756116.0, "Ops per second": 16686723.46, "ns per ops": 59.93, "Ops per threads": 104294.0, "Ops per procs": 10429431.0, "Ops/sec/procs": 347640.07, "ns per ops/procs": 2876.54}],["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)": 661980983.0, "Total blocks": 366126464.0, "Ops per second": 22002319.14, "ns per ops": 45.45, "Ops per threads": 45970.0, "Ops per procs": 4597090.0, "Ops/sec/procs": 152793.88, "ns per ops/procs": 6544.76}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30050.122702, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1202828808.0, "Total blocks": 215949.0, "Ops per second": 40027417.52, "ns per ops": 24.98, "Ops per threads": 12028288.0, "Ops per procs": 1202828808.0, "Ops/sec/procs": 40027417.52, "ns per ops/procs": 24.98}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30060.245147, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 701602348.0, "Total blocks": 264282622.0, "Ops per second": 23339874.46, "ns per ops": 42.85, "Ops per threads": 146167.0, "Ops per procs": 14616715.0, "Ops/sec/procs": 486247.38, "ns per ops/procs": 2056.57}],["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)": 87903474.0, "Total blocks": 43952899.0, "Ops per second": 2923647.37, "ns per ops": 342.04, "Ops per threads": 439517.0, "Ops per procs": 43951737.0, "Ops/sec/procs": 1461823.69, "ns per ops/procs": 684.08}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30084.428668, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 612081203.0, "Total blocks": 251211309.0, "Ops per second": 20345448.8, "ns per ops": 49.15, "Ops per threads": 31879.0, "Ops per procs": 3187922.0, "Ops/sec/procs": 105965.88, "ns per ops/procs": 9437.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30076.783803, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 294334592.0, "Total blocks": 124235654.0, "Ops per second": 9786105.92, "ns per ops": 102.19, "Ops per threads": 183959.0, "Ops per procs": 18395912.0, "Ops/sec/procs": 611631.62, "ns per ops/procs": 1634.97}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30058.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 477746427.0, "Total blocks": 255533482.0, "Ops per second": 15893845.89, "ns per ops": 62.92, "Ops per threads": 49765.0, "Ops per procs": 4976525.0, "Ops/sec/procs": 165560.89, "ns per ops/procs": 6040.07}],["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)": 179493744.0, "Total blocks": 96798499.0, "Ops per second": 5979029.7, "ns per ops": 167.25, "Ops per threads": 224367.0, "Ops per procs": 22436718.0, "Ops/sec/procs": 747378.71, "ns per ops/procs": 1338.01}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30019.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 503912435.0, "Ops per second": 16797081.0, "ns per ops": 59.0, "Ops per threads": 52490.0, "Ops per procs": 5249087.0, "Ops/sec/procs": 174969.0, "ns per ops/procs": 5719.0}],["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)": 646388282.0, "Ops per second": 21525773.98, "ns per ops": 46.46, "Ops per threads": 89776.0, "Ops per procs": 8977615.0, "Ops/sec/procs": 298969.08, "ns per ops/procs": 3344.83}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30019.674334, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 341419072.0, "Total blocks": 136890326.0, "Ops per second": 11373177.08, "ns per ops": 87.93, "Ops per threads": 142257.0, "Ops per procs": 14225794.0, "Ops/sec/procs": 473882.38, "ns per ops/procs": 2110.23}],["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)": 117705686.0, "Ops per second": 3920387.28, "ns per ops": 255.08, "Ops per threads": 588528.0, "Ops per procs": 58852843.0, "Ops/sec/procs": 1960193.64, "ns per ops/procs": 510.15}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30056.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 220996430.0, "Ops per second": 7366547.0, "ns per ops": 136.0, "Ops per threads": 276245.0, "Ops per procs": 27624553.0, "Ops/sec/procs": 920818.0, "ns per ops/procs": 1088.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)": 119628109.0, "Ops per second": 3984482.26, "ns per ops": 250.97, "Ops per threads": 598140.0, "Ops per procs": 59814054.0, "Ops/sec/procs": 1992241.13, "ns per ops/procs": 501.95}],["rdq-churn-go", "./rdq-churn-go -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30060.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 454587693.0, "Ops per second": 15122315.43, "ns per ops": 66.13, "Ops per threads": 23676.0, "Ops per procs": 2367644.0, "Ops/sec/procs": 78762.06, "ns per ops/procs": 12696.47}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30030.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 547744780.0, "Total blocks": 304355050.0, "Ops per second": 18239819.45, "ns per ops": 54.83, "Ops per threads": 114113.0, "Ops per procs": 11411349.0, "Ops/sec/procs": 379996.24, "ns per ops/procs": 2631.61}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30059.589771, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 186604395.0, "Total blocks": 83295232.0, "Ops per second": 6207815.76, "ns per ops": 161.09, "Ops per threads": 233255.0, "Ops per procs": 23325549.0, "Ops/sec/procs": 775976.97, "ns per ops/procs": 1288.7}],["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)": 133769930.0, "Total blocks": 81014656.0, "Ops per second": 4444919.33, "ns per ops": 224.98, "Ops per threads": 334424.0, "Ops per procs": 33442482.0, "Ops/sec/procs": 1111229.83, "ns per ops/procs": 899.9}],["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)": 460687687.0, "Ops per second": 15356256.0, "ns per ops": 65.0, "Ops per threads": 4606876.0, "Ops per procs": 460687687.0, "Ops/sec/procs": 15356256.0, "ns per ops/procs": 65.0}],["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)": 135654554.0, "Total blocks": 82159792.0, "Ops per second": 4507767.92, "ns per ops": 221.84, "Ops per threads": 339136.0, "Ops per procs": 33913638.0, "Ops/sec/procs": 1126941.98, "ns per ops/procs": 887.36}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30034.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 459461903.0, "Ops per second": 15315396.0, "ns per ops": 65.0, "Ops per threads": 95721.0, "Ops per procs": 9572122.0, "Ops/sec/procs": 319070.0, "ns per ops/procs": 3137.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30094.481119, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 545307853.0, "Total blocks": 216162896.0, "Ops per second": 18119862.27, "ns per ops": 55.19, "Ops per threads": 37868.0, "Ops per procs": 3786860.0, "Ops/sec/procs": 125832.38, "ns per ops/procs": 7947.08}],["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)": 460491082.0, "Ops per second": 15349702.0, "ns per ops": 65.0, "Ops per threads": 4604910.0, "Ops per procs": 460491082.0, "Ops/sec/procs": 15349702.0, "ns per ops/procs": 65.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30065.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 87676299.0, "Total blocks": 43839148.0, "Ops per second": 2916177.41, "ns per ops": 342.91, "Ops per threads": 438381.0, "Ops per procs": 43838149.0, "Ops/sec/procs": 1458088.71, "ns per ops/procs": 685.83}],["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)": 356608988.0, "Ops per second": 11876048.4, "ns per ops": 84.2, "Ops per threads": 49529.0, "Ops per procs": 4952902.0, "Ops/sec/procs": 164945.12, "ns per ops/procs": 6062.62}],["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)": 177202973.0, "Ops per second": 5906765.0, "ns per ops": 169.0, "Ops per threads": 886014.0, "Ops per procs": 88601486.0, "Ops/sec/procs": 2953382.0, "ns per ops/procs": 338.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30065.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 87966257.0, "Total blocks": 43983966.0, "Ops per second": 2925833.08, "ns per ops": 341.78, "Ops per threads": 439831.0, "Ops per procs": 43983128.0, "Ops/sec/procs": 1462916.54, "ns per ops/procs": 683.57}],["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)": 647191409.0, "Total blocks": 360156884.0, "Ops per second": 21502460.73, "ns per ops": 46.51, "Ops per threads": 44943.0, "Ops per procs": 4494384.0, "Ops/sec/procs": 149322.64, "ns per ops/procs": 6696.91}],["rdq-churn-go", "./rdq-churn-go -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30040.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 159541992.0, "Ops per second": 5310866.49, "ns per ops": 188.29, "Ops per threads": 398854.0, "Ops per procs": 39885498.0, "Ops/sec/procs": 1327716.62, "ns per ops/procs": 753.17}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30032.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 761341360.0, "Total blocks": 399393870.0, "Ops per second": 25350679.46, "ns per ops": 39.45, "Ops per threads": 39653.0, "Ops per procs": 3965319.0, "Ops/sec/procs": 132034.79, "ns per ops/procs": 7573.76}],["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)": 168451360.0, "Ops per second": 5615045.0, "ns per ops": 178.0, "Ops per threads": 421128.0, "Ops per procs": 42112840.0, "Ops/sec/procs": 1403761.0, "ns per ops/procs": 714.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30096.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 665689370.0, "Total blocks": 375371525.0, "Ops per second": 22118234.55, "ns per ops": 45.21, "Ops per threads": 46228.0, "Ops per procs": 4622842.0, "Ops/sec/procs": 153598.85, "ns per ops/procs": 6510.47}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30055.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 354906234.0, "Ops per second": 11808204.11, "ns per ops": 84.69, "Ops per threads": 36969.0, "Ops per procs": 3696939.0, "Ops/sec/procs": 123002.13, "ns per ops/procs": 8129.94}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30025.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 221130057.0, "Ops per second": 7371001.0, "ns per ops": 135.0, "Ops per threads": 276412.0, "Ops per procs": 27641257.0, "Ops/sec/procs": 921375.0, "ns per ops/procs": 1086.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)": 118441600.0, "Ops per second": 3944922.48, "ns per ops": 253.49, "Ops per threads": 592208.0, "Ops per procs": 59220800.0, "Ops/sec/procs": 1972461.24, "ns per ops/procs": 506.98}],["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)": 135880223.0, "Ops per second": 4529119.31, "ns per ops": 220.79, "Ops per threads": 1358802.0, "Ops per procs": 135880223.0, "Ops/sec/procs": 4529119.31, "ns per ops/procs": 220.79}],["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)": 460236807.0, "Ops per second": 15341226.0, "ns per ops": 65.0, "Ops per threads": 4602368.0, "Ops per procs": 460236807.0, "Ops/sec/procs": 15341226.0, "ns per ops/procs": 65.0}],["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)": 474576187.0, "Ops per second": 15798460.11, "ns per ops": 63.3, "Ops per threads": 32956.0, "Ops per procs": 3295667.0, "Ops/sec/procs": 109711.53, "ns per ops/procs": 9114.81}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30018.847889, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 373721253.0, "Total blocks": 147400726.0, "Ops per second": 12449553.51, "ns per ops": 80.32, "Ops per threads": 155717.0, "Ops per procs": 15571718.0, "Ops/sec/procs": 518731.4, "ns per ops/procs": 1927.78}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30023.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 464554355.0, "Ops per second": 15485145.0, "ns per ops": 64.0, "Ops per threads": 96782.0, "Ops per procs": 9678215.0, "Ops/sec/procs": 322607.0, "ns per ops/procs": 3102.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.536077, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 150237929.0, "Total blocks": 71852696.0, "Ops per second": 4998677.4, "ns per ops": 200.05, "Ops per threads": 375594.0, "Ops per procs": 37559482.0, "Ops/sec/procs": 1249669.35, "ns per ops/procs": 800.21}],["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)": 968176632.0, "Ops per second": 32272554.0, "ns per ops": 30.0, "Ops per threads": 50425.0, "Ops per procs": 5042586.0, "Ops/sec/procs": 168086.0, "ns per ops/procs": 5950.0}],["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)": 804402642.0, "Ops per second": 26813421.0, "ns per ops": 37.0, "Ops per threads": 55861.0, "Ops per procs": 5586129.0, "Ops/sec/procs": 186204.0, "ns per ops/procs": 5371.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30025.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 473211737.0, "Ops per second": 15773724.0, "ns per ops": 63.0, "Ops per threads": 197171.0, "Ops per procs": 19717155.0, "Ops/sec/procs": 657238.0, "ns per ops/procs": 1522.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30060.740251, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 271871433.0, "Total blocks": 65699952.0, "Ops per second": 9044069.8, "ns per ops": 110.57, "Ops per threads": 339839.0, "Ops per procs": 33983929.0, "Ops/sec/procs": 1130508.72, "ns per ops/procs": 884.56}],["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)": 460859342.0, "Ops per second": 15361978.0, "ns per ops": 65.0, "Ops per threads": 4608593.0, "Ops per procs": 460859342.0, "Ops/sec/procs": 15361978.0, "ns per ops/procs": 65.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30051.620044, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 483983889.0, "Total blocks": 602711.0, "Ops per second": 16105084.79, "ns per ops": 62.09, "Ops per threads": 2419919.0, "Ops per procs": 241991944.0, "Ops/sec/procs": 8052542.4, "ns per ops/procs": 124.18}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30050.208613, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1201956961.0, "Total blocks": 51944.0, "Ops per second": 39998290.08, "ns per ops": 25.0, "Ops per threads": 12019569.0, "Ops per procs": 1201956961.0, "Ops/sec/procs": 39998290.08, "ns per ops/procs": 25.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30078.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 183083603.0, "Ops per second": 6102786.0, "ns per ops": 164.0, "Ops per threads": 915418.0, "Ops per procs": 91541801.0, "Ops/sec/procs": 3051393.0, "ns per ops/procs": 328.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30099.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 505567041.0, "Total blocks": 278301401.0, "Ops per second": 16796392.46, "ns per ops": 59.54, "Ops per threads": 105326.0, "Ops per procs": 10532646.0, "Ops/sec/procs": 349924.84, "ns per ops/procs": 2857.76}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30020.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 796549363.0, "Total blocks": 418984418.0, "Ops per second": 26533847.23, "ns per ops": 37.69, "Ops per threads": 41486.0, "Ops per procs": 4148694.0, "Ops/sec/procs": 138197.12, "ns per ops/procs": 7236.04}],["rdq-churn-fibre", "./rdq-churn-fibre -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)": 789386502.0, "Total blocks": 415122174.0, "Ops per second": 26270653.92, "ns per ops": 38.07, "Ops per threads": 41113.0, "Ops per procs": 4111388.0, "Ops/sec/procs": 136826.32, "ns per ops/procs": 7308.54}],["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)": 293331384.0, "Total blocks": 151133801.0, "Ops per second": 9767127.12, "ns per ops": 102.38, "Ops per threads": 183332.0, "Ops per procs": 18333211.0, "Ops/sec/procs": 610445.45, "ns per ops/procs": 1638.15}],["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)": 135651798.0, "Ops per second": 4521501.13, "ns per ops": 221.17, "Ops per threads": 1356517.0, "Ops per procs": 135651798.0, "Ops/sec/procs": 4521501.13, "ns per ops/procs": 221.17}],["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)": 275236578.0, "Total blocks": 139727371.0, "Ops per second": 9162995.43, "ns per ops": 109.13, "Ops per threads": 172022.0, "Ops per procs": 17202286.0, "Ops/sec/procs": 572687.21, "ns per ops/procs": 1746.15}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30056.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 221536923.0, "Ops per second": 7384564.0, "ns per ops": 135.0, "Ops per threads": 276921.0, "Ops per procs": 27692115.0, "Ops/sec/procs": 923070.0, "ns per ops/procs": 1085.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30033.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 375198936.0, "Total blocks": 204178016.0, "Ops per second": 12492879.26, "ns per ops": 80.05, "Ops per threads": 156332.0, "Ops per procs": 15633289.0, "Ops/sec/procs": 520536.64, "ns per ops/procs": 1921.09}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30093.303697, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 651299427.0, "Total blocks": 265214200.0, "Ops per second": 21642669.53, "ns per ops": 46.21, "Ops per threads": 33921.0, "Ops per procs": 3392184.0, "Ops/sec/procs": 112722.24, "ns per ops/procs": 8871.37}],["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)": 449899327.0, "Ops per second": 14975316.07, "ns per ops": 66.78, "Ops per threads": 23432.0, "Ops per procs": 2343225.0, "Ops/sec/procs": 77996.44, "ns per ops/procs": 12821.1}],["rdq-churn-go", "./rdq-churn-go -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30027.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 118421786.0, "Ops per second": 3943820.08, "ns per ops": 253.56, "Ops per threads": 592108.0, "Ops per procs": 59210893.0, "Ops/sec/procs": 1971910.04, "ns per ops/procs": 507.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)": 135892970.0, "Ops per second": 4529538.45, "ns per ops": 220.77, "Ops per threads": 1358929.0, "Ops per procs": 135892970.0, "Ops/sec/procs": 4529538.45, "ns per ops/procs": 220.77}],["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)": 460286648.0, "Ops per second": 15342888.0, "ns per ops": 65.0, "Ops per threads": 4602866.0, "Ops per procs": 460286648.0, "Ops/sec/procs": 15342888.0, "ns per ops/procs": 65.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)": 87334526.0, "Total blocks": 43668323.0, "Ops per second": 2904753.11, "ns per ops": 344.26, "Ops per threads": 436672.0, "Ops per procs": 43667263.0, "Ops/sec/procs": 1452376.56, "ns per ops/procs": 688.53}],["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)": 741095299.0, "Ops per second": 24678140.57, "ns per ops": 40.52, "Ops per threads": 102929.0, "Ops per procs": 10292990.0, "Ops/sec/procs": 342751.95, "ns per ops/procs": 2917.56}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.457934, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 150676091.0, "Total blocks": 71935390.0, "Ops per second": 5013268.85, "ns per ops": 199.47, "Ops per threads": 376690.0, "Ops per procs": 37669022.0, "Ops/sec/procs": 1253317.21, "ns per ops/procs": 797.88}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30063.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 391598940.0, "Total blocks": 206889133.0, "Ops per second": 13025785.52, "ns per ops": 76.77, "Ops per threads": 54388.0, "Ops per procs": 5438874.0, "Ops/sec/procs": 180913.69, "ns per ops/procs": 5527.5}],["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)": 652612113.0, "Total blocks": 363156653.0, "Ops per second": 21688961.18, "ns per ops": 46.11, "Ops per threads": 45320.0, "Ops per procs": 4532028.0, "Ops/sec/procs": 150617.79, "ns per ops/procs": 6639.32}],["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)": 138756786.0, "Ops per second": 4619575.56, "ns per ops": 216.47, "Ops per threads": 173445.0, "Ops per procs": 17344598.0, "Ops/sec/procs": 577446.95, "ns per ops/procs": 1731.76}],["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)": 85803402.0, "Total blocks": 42903267.0, "Ops per second": 2853758.01, "ns per ops": 350.42, "Ops per threads": 429017.0, "Ops per procs": 42901701.0, "Ops/sec/procs": 1426879.01, "ns per ops/procs": 700.83}],["rdq-churn-tokio", "./rdq-churn-tokio -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": 6.0, "Total Operations(ops)": 161091880.0, "Ops per second": 5369729.0, "ns per ops": 186.0, "Ops per threads": 402729.0, "Ops per procs": 40272970.0, "Ops/sec/procs": 1342432.0, "ns per ops/procs": 747.0}],["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)": 459415438.0, "Total blocks": 244812779.0, "Ops per second": 15294876.94, "ns per ops": 65.38, "Ops per threads": 47855.0, "Ops per procs": 4785577.0, "Ops/sec/procs": 159321.63, "ns per ops/procs": 6276.61}],["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)": 192434695.0, "Total blocks": 0.0, "Ops per second": 6408693.9, "ns per ops": 156.04, "Ops per threads": 1924346.0, "Ops per procs": 192434695.0, "Ops/sec/procs": 6408693.9, "ns per ops/procs": 156.04}],["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)": 247779497.0, "Ops per second": 8241667.03, "ns per ops": 121.33, "Ops per threads": 25810.0, "Ops per procs": 2581036.0, "Ops/sec/procs": 85850.7, "ns per ops/procs": 11648.13}],["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)": 361439845.0, "Ops per second": 12029471.57, "ns per ops": 83.13, "Ops per threads": 75299.0, "Ops per procs": 7529996.0, "Ops/sec/procs": 250613.99, "ns per ops/procs": 3990.2}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30027.32212, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 550084059.0, "Total blocks": 219224618.0, "Ops per second": 18319451.09, "ns per ops": 54.59, "Ops per threads": 38200.0, "Ops per procs": 3820028.0, "Ops/sec/procs": 127218.41, "ns per ops/procs": 7860.5}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30001.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 474753877.0, "Total blocks": 252536334.0, "Ops per second": 15824074.36, "ns per ops": 63.19, "Ops per threads": 49453.0, "Ops per procs": 4945352.0, "Ops/sec/procs": 164834.11, "ns per ops/procs": 6066.71}],["rdq-churn-tokio", "./rdq-churn-tokio -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": 6.0, "Total Operations(ops)": 190577302.0, "Ops per second": 6352576.0, "ns per ops": 157.0, "Ops per threads": 952886.0, "Ops per procs": 95288651.0, "Ops/sec/procs": 3176288.0, "ns per ops/procs": 315.0}],["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)": 473908378.0, "Ops per second": 15772093.54, "ns per ops": 63.4, "Ops per threads": 24682.0, "Ops per procs": 2468272.0, "Ops/sec/procs": 82146.32, "ns per ops/procs": 12173.4}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30058.254308, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 603961379.0, "Total blocks": 231948294.0, "Ops per second": 20093029.12, "ns per ops": 49.77, "Ops per threads": 41941.0, "Ops per procs": 4194176.0, "Ops/sec/procs": 139534.92, "ns per ops/procs": 7166.66}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30076.293572, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 293341421.0, "Total blocks": 108768494.0, "Ops per second": 9753243.71, "ns per ops": 102.53, "Ops per threads": 183338.0, "Ops per procs": 18333838.0, "Ops/sec/procs": 609577.73, "ns per ops/procs": 1640.48}],["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)": 163513045.0, "Total blocks": 88564650.0, "Ops per second": 5446502.26, "ns per ops": 183.6, "Ops per threads": 204391.0, "Ops per procs": 20439130.0, "Ops/sec/procs": 680812.78, "ns per ops/procs": 1468.83}],["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)": 261124684.0, "Ops per second": 8693562.33, "ns per ops": 115.03, "Ops per threads": 108801.0, "Ops per procs": 10880195.0, "Ops/sec/procs": 362231.76, "ns per ops/procs": 2760.66}],["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)": 135836583.0, "Ops per second": 4527661.59, "ns per ops": 220.86, "Ops per threads": 1358365.0, "Ops per procs": 135836583.0, "Ops/sec/procs": 4527661.59, "ns per ops/procs": 220.86}],["rdq-churn-fibre", "./rdq-churn-fibre -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30009.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 465629080.0, "Total blocks": 246326915.0, "Ops per second": 15515958.89, "ns per ops": 64.45, "Ops per threads": 48503.0, "Ops per procs": 4850302.0, "Ops/sec/procs": 161624.57, "ns per ops/procs": 6187.18}],["rdq-churn-tokio", "./rdq-churn-tokio -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30011.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 6.0, "Total Operations(ops)": 805137941.0, "Ops per second": 26837931.0, "ns per ops": 37.0, "Ops per threads": 55912.0, "Ops per procs": 5591235.0, "Ops/sec/procs": 186374.0, "ns per ops/procs": 5367.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)": 161494954.0, "Total blocks": 87372340.0, "Ops per second": 5377104.82, "ns per ops": 185.97, "Ops per threads": 201868.0, "Ops per procs": 20186869.0, "Ops/sec/procs": 672138.1, "ns per ops/procs": 1487.79}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30078.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 780859964.0, "Total blocks": 408047601.0, "Ops per second": 25961057.89, "ns per ops": 38.52, "Ops per threads": 40669.0, "Ops per procs": 4066978.0, "Ops/sec/procs": 135213.84, "ns per ops/procs": 7395.69}],["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)": 120561852.0, "Ops per second": 4015481.46, "ns per ops": 249.04, "Ops per threads": 602809.0, "Ops per procs": 60280926.0, "Ops/sec/procs": 2007740.73, "ns per ops/procs": 498.07}],["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)": 87172413.0, "Total blocks": 43587486.0, "Ops per second": 2899313.35, "ns per ops": 344.91, "Ops per threads": 435862.0, "Ops per procs": 43586206.0, "Ops/sec/procs": 1449656.68, "ns per ops/procs": 689.82}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30033.879539, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 518084721.0, "Total blocks": 210937934.0, "Ops per second": 17250009.95, "ns per ops": 57.97, "Ops per threads": 53967.0, "Ops per procs": 5396715.0, "Ops/sec/procs": 179687.6, "ns per ops/procs": 5565.22}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30023.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 481809053.0, "Ops per second": 16060301.0, "ns per ops": 62.0, "Ops per threads": 100376.0, "Ops per procs": 10037688.0, "Ops/sec/procs": 334589.0, "ns per ops/procs": 2991.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)": 354906174.0, "Ops per second": 11812390.73, "ns per ops": 84.66, "Ops per threads": 73938.0, "Ops per procs": 7393878.0, "Ops/sec/procs": 246091.47, "ns per ops/procs": 4063.53}],["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)": 135692522.0, "Total blocks": 82122490.0, "Ops per second": 4508846.12, "ns per ops": 221.79, "Ops per threads": 339231.0, "Ops per procs": 33923130.0, "Ops/sec/procs": 1127211.53, "ns per ops/procs": 887.14}],["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)": 192121982.0, "Total blocks": 0.0, "Ops per second": 6398283.77, "ns per ops": 156.29, "Ops per threads": 1921219.0, "Ops per procs": 192121982.0, "Ops/sec/procs": 6398283.77, "ns per ops/procs": 156.29}],["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)": 655524600.0, "Ops per second": 21829370.73, "ns per ops": 45.81, "Ops per threads": 91045.0, "Ops per procs": 9104508.0, "Ops/sec/procs": 303185.7, "ns per ops/procs": 3298.31}],["rdq-churn-go", "./rdq-churn-go -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30031.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 166049363.0, "Ops per second": 5529143.12, "ns per ops": 180.86, "Ops per threads": 207561.0, "Ops per procs": 20756170.0, "Ops/sec/procs": 691142.89, "ns per ops/procs": 1446.88}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30032.639168, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 490409744.0, "Total blocks": 178494650.0, "Ops per second": 16329225.72, "ns per ops": 61.24, "Ops per threads": 51084.0, "Ops per procs": 5108434.0, "Ops/sec/procs": 170096.1, "ns per ops/procs": 5879.03}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30060.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 350275251.0, "Ops per second": 11652465.85, "ns per ops": 85.82, "Ops per threads": 36487.0, "Ops per procs": 3648700.0, "Ops/sec/procs": 121379.85, "ns per ops/procs": 8238.6}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30051.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 167331922.0, "Ops per second": 5577730.0, "ns per ops": 179.0, "Ops per threads": 418329.0, "Ops per procs": 41832980.0, "Ops/sec/procs": 1394432.0, "ns per ops/procs": 718.0}],["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)": 464509707.0, "Ops per second": 15455726.31, "ns per ops": 64.7, "Ops per threads": 24193.0, "Ops per procs": 2419321.0, "Ops/sec/procs": 80498.57, "ns per ops/procs": 12422.58}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30059.297676, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 680052336.0, "Total blocks": 265356728.0, "Ops per second": 22623693.45, "ns per ops": 44.2, "Ops per threads": 141677.0, "Ops per procs": 14167757.0, "Ops/sec/procs": 471326.95, "ns per ops/procs": 2121.67}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30097.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 783698996.0, "Total blocks": 412040075.0, "Ops per second": 26038922.75, "ns per ops": 38.4, "Ops per threads": 40817.0, "Ops per procs": 4081765.0, "Ops/sec/procs": 135619.39, "ns per ops/procs": 7373.58}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30056.623082, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 483760927.0, "Total blocks": 178815274.0, "Ops per second": 16094985.98, "ns per ops": 62.13, "Ops per threads": 50391.0, "Ops per procs": 5039176.0, "Ops/sec/procs": 167656.1, "ns per ops/procs": 5964.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)": 460843734.0, "Ops per second": 15361457.0, "ns per ops": 65.0, "Ops per threads": 4608437.0, "Ops per procs": 460843734.0, "Ops/sec/procs": 15361457.0, "ns per ops/procs": 65.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)": 853146365.0, "Ops per second": 28438212.0, "ns per ops": 35.0, "Ops per threads": 59246.0, "Ops per procs": 5924627.0, "Ops/sec/procs": 197487.0, "ns per ops/procs": 5064.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)": 191613466.0, "Total blocks": 0.0, "Ops per second": 6381358.35, "ns per ops": 156.71, "Ops per threads": 1916134.0, "Ops per procs": 191613466.0, "Ops/sec/procs": 6381358.35, "ns per ops/procs": 156.71}],["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)": 385708035.0, "Total blocks": 206190831.0, "Ops per second": 12843149.99, "ns per ops": 77.86, "Ops per threads": 160711.0, "Ops per procs": 16071168.0, "Ops/sec/procs": 535131.25, "ns per ops/procs": 1868.7}],["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)": 297264694.0, "Total blocks": 152983098.0, "Ops per second": 9897601.54, "ns per ops": 101.03, "Ops per threads": 185790.0, "Ops per procs": 18579043.0, "Ops/sec/procs": 618600.1, "ns per ops/procs": 1616.55}],["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)": 598367970.0, "Ops per second": 19924835.25, "ns per ops": 50.19, "Ops per threads": 83106.0, "Ops per procs": 8310666.0, "Ops/sec/procs": 276733.82, "ns per ops/procs": 3613.58}],["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)": 474153312.0, "Total blocks": 251502796.0, "Ops per second": 15799744.81, "ns per ops": 63.29, "Ops per threads": 49390.0, "Ops per procs": 4939097.0, "Ops/sec/procs": 164580.68, "ns per ops/procs": 6076.05}],["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)": 354065693.0, "Total blocks": 189823872.0, "Ops per second": 11787533.48, "ns per ops": 84.84, "Ops per threads": 147527.0, "Ops per procs": 14752737.0, "Ops/sec/procs": 491147.23, "ns per ops/procs": 2036.05}],["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)": 143942139.0, "Total blocks": 87123317.0, "Ops per second": 4783730.82, "ns per ops": 209.04, "Ops per threads": 359855.0, "Ops per procs": 35985534.0, "Ops/sec/procs": 1195932.71, "ns per ops/procs": 836.17}],["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)": 460080702.0, "Ops per second": 15336023.0, "ns per ops": 65.0, "Ops per threads": 4600807.0, "Ops per procs": 460080702.0, "Ops/sec/procs": 15336023.0, "ns per ops/procs": 65.0}],["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)": 827600886.0, "Ops per second": 27586696.0, "ns per ops": 36.0, "Ops per threads": 57472.0, "Ops per procs": 5747228.0, "Ops/sec/procs": 191574.0, "ns per ops/procs": 5220.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30061.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 663977574.0, "Total blocks": 367223529.0, "Ops per second": 22087484.9, "ns per ops": 45.27, "Ops per threads": 46109.0, "Ops per procs": 4610955.0, "Ops/sec/procs": 153385.31, "ns per ops/procs": 6519.53}],["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)": 262598965.0, "Ops per second": 8743165.73, "ns per ops": 114.38, "Ops per threads": 109416.0, "Ops per procs": 10941623.0, "Ops/sec/procs": 364298.57, "ns per ops/procs": 2745.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30075.65204, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 287188886.0, "Total blocks": 120172030.0, "Ops per second": 9548883.12, "ns per ops": 104.72, "Ops per threads": 179493.0, "Ops per procs": 17949305.0, "Ops/sec/procs": 596805.19, "ns per ops/procs": 1675.59}],["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)": 118572409.0, "Ops per second": 3949264.45, "ns per ops": 253.21, "Ops per threads": 592862.0, "Ops per procs": 59286204.0, "Ops/sec/procs": 1974632.23, "ns per ops/procs": 506.42}],["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)": 425917799.0, "Ops per second": 14174525.29, "ns per ops": 70.55, "Ops per threads": 22183.0, "Ops per procs": 2218321.0, "Ops/sec/procs": 73825.65, "ns per ops/procs": 13545.43}],["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)": 192385955.0, "Total blocks": 0.0, "Ops per second": 6407103.73, "ns per ops": 156.08, "Ops per threads": 1923859.0, "Ops per procs": 192385955.0, "Ops/sec/procs": 6407103.73, "ns per ops/procs": 156.08}],["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)": 505553181.0, "Total blocks": 278507634.0, "Ops per second": 16796353.94, "ns per ops": 59.54, "Ops per threads": 105323.0, "Ops per procs": 10532357.0, "Ops/sec/procs": 349924.04, "ns per ops/procs": 2857.76}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30032.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 463416837.0, "Ops per second": 15430364.78, "ns per ops": 64.81, "Ops per threads": 32181.0, "Ops per procs": 3218172.0, "Ops/sec/procs": 107155.31, "ns per ops/procs": 9332.25}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30077.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 166984133.0, "Ops per second": 5566137.0, "ns per ops": 180.0, "Ops per threads": 417460.0, "Ops per procs": 41746033.0, "Ops/sec/procs": 1391534.0, "ns per ops/procs": 720.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30021.954851, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 348020909.0, "Total blocks": 104971749.0, "Ops per second": 11592213.46, "ns per ops": 86.26, "Ops per threads": 145008.0, "Ops per procs": 14500871.0, "Ops/sec/procs": 483008.89, "ns per ops/procs": 2070.36}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30018.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 576177043.0, "Ops per second": 19205901.0, "ns per ops": 52.0, "Ops per threads": 120036.0, "Ops per procs": 12003688.0, "Ops/sec/procs": 400122.0, "ns per ops/procs": 2500.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30015.405675, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 350621509.0, "Total blocks": 130891083.0, "Ops per second": 11681384.98, "ns per ops": 85.61, "Ops per threads": 146092.0, "Ops per procs": 14609229.0, "Ops/sec/procs": 486724.37, "ns per ops/procs": 2054.55}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30034.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 466380104.0, "Ops per second": 15546003.0, "ns per ops": 64.0, "Ops per threads": 97162.0, "Ops per procs": 9716252.0, "Ops/sec/procs": 323875.0, "ns per ops/procs": 3091.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)": 191369161.0, "Total blocks": 0.0, "Ops per second": 6373216.7, "ns per ops": 156.91, "Ops per threads": 1913691.0, "Ops per procs": 191369161.0, "Ops/sec/procs": 6373216.7, "ns per ops/procs": 156.91}],["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)": 460360000.0, "Ops per second": 15345333.0, "ns per ops": 65.0, "Ops per threads": 4603600.0, "Ops per procs": 460360000.0, "Ops/sec/procs": 15345333.0, "ns per ops/procs": 65.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30089.778422, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 556922386.0, "Total blocks": 201876391.0, "Ops per second": 18508690.17, "ns per ops": 54.03, "Ops per threads": 58012.0, "Ops per procs": 5801274.0, "Ops/sec/procs": 192798.86, "ns per ops/procs": 5186.75}],["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)": 488909454.0, "Ops per second": 16276633.91, "ns per ops": 61.44, "Ops per threads": 33952.0, "Ops per procs": 3395204.0, "Ops/sec/procs": 113032.18, "ns per ops/procs": 8847.04}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30090.339562, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 527063540.0, "Total blocks": 202633473.0, "Ops per second": 17516038.29, "ns per ops": 57.09, "Ops per threads": 36601.0, "Ops per procs": 3660163.0, "Ops/sec/procs": 121639.15, "ns per ops/procs": 8221.04}],["rdq-churn-cfa", "./rdq-churn-cfa -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30033.657948, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 557197606.0, "Total blocks": 207231371.0, "Ops per second": 18552438.97, "ns per ops": 53.9, "Ops per threads": 58041.0, "Ops per procs": 5804141.0, "Ops/sec/procs": 193254.57, "ns per ops/procs": 5174.52}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30055.662461, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 733201298.0, "Total blocks": 284343482.0, "Ops per second": 24394780.82, "ns per ops": 40.99, "Ops per threads": 152750.0, "Ops per procs": 15275027.0, "Ops/sec/procs": 508224.6, "ns per ops/procs": 1967.63}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30064.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 770184116.0, "Total blocks": 401376424.0, "Ops per second": 25617862.88, "ns per ops": 39.04, "Ops per threads": 40113.0, "Ops per procs": 4011375.0, "Ops/sec/procs": 133426.37, "ns per ops/procs": 7494.77}],["rdq-churn-go", "./rdq-churn-go -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30048.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 476315076.0, "Ops per second": 15851802.81, "ns per ops": 63.08, "Ops per threads": 33077.0, "Ops per procs": 3307743.0, "Ops/sec/procs": 110081.96, "ns per ops/procs": 9084.14}],["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)": 466203932.0, "Ops per second": 15518361.35, "ns per ops": 64.44, "Ops per threads": 32375.0, "Ops per procs": 3237527.0, "Ops/sec/procs": 107766.4, "ns per ops/procs": 9279.33}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30022.177715, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 330348726.0, "Total blocks": 122384506.0, "Ops per second": 11003489.79, "ns per ops": 90.88, "Ops per threads": 137645.0, "Ops per procs": 13764530.0, "Ops/sec/procs": 458478.74, "ns per ops/procs": 2181.13}],["rdq-churn-fibre", "./rdq-churn-fibre -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)": 375840315.0, "Total blocks": 204571796.0, "Ops per second": 12513698.22, "ns per ops": 79.91, "Ops per threads": 156600.0, "Ops per procs": 15660013.0, "Ops/sec/procs": 521404.09, "ns per ops/procs": 1917.9}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30050.280357, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1199665058.0, "Total blocks": 655572.0, "Ops per second": 39921925.64, "ns per ops": 25.05, "Ops per threads": 11996650.0, "Ops per procs": 1199665058.0, "Ops/sec/procs": 39921925.64, "ns per ops/procs": 25.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)": 478223828.0, "Ops per second": 15920898.02, "ns per ops": 62.81, "Ops per threads": 33209.0, "Ops per procs": 3320998.0, "Ops/sec/procs": 110561.79, "ns per ops/procs": 9044.72}],["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)": 179893177.0, "Ops per second": 5979099.39, "ns per ops": 167.25, "Ops per threads": 18738.0, "Ops per procs": 1873887.0, "Ops/sec/procs": 62282.29, "ns per ops/procs": 16055.93}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30062.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 404122785.0, "Total blocks": 212091412.0, "Ops per second": 13442835.08, "ns per ops": 74.39, "Ops per threads": 56128.0, "Ops per procs": 5612816.0, "Ops/sec/procs": 186706.04, "ns per ops/procs": 5356.01}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30061.861936, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 682338462.0, "Total blocks": 239897520.0, "Ops per second": 22697811.05, "ns per ops": 44.06, "Ops per threads": 142153.0, "Ops per procs": 14215384.0, "Ops/sec/procs": 472871.06, "ns per ops/procs": 2114.74}],["rdq-churn-cfa", "./rdq-churn-cfa -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30075.925845, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 16.0, "Total Operations(ops)": 287247533.0, "Total blocks": 96871302.0, "Ops per second": 9550746.15, "ns per ops": 104.7, "Ops per threads": 179529.0, "Ops per procs": 17952970.0, "Ops/sec/procs": 596921.63, "ns per ops/procs": 1675.26}],["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)": 144598199.0, "Total blocks": 87394734.0, "Ops per second": 4805584.54, "ns per ops": 208.09, "Ops per threads": 361495.0, "Ops per procs": 36149549.0, "Ops/sec/procs": 1201396.14, "ns per ops/procs": 832.36}],["rdq-churn-fibre", "./rdq-churn-fibre -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)": 354571727.0, "Total blocks": 190102011.0, "Ops per second": 11804684.81, "ns per ops": 84.71, "Ops per threads": 147738.0, "Ops per procs": 14773821.0, "Ops/sec/procs": 491861.87, "ns per ops/procs": 2033.09}],["rdq-churn-tokio", "./rdq-churn-tokio -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": 6.0, "Total Operations(ops)": 171630531.0, "Ops per second": 5721017.0, "ns per ops": 174.0, "Ops per threads": 858152.0, "Ops per procs": 85815265.0, "Ops/sec/procs": 2860508.0, "ns per ops/procs": 349.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30064.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 312305592.0, "Ops per second": 10410186.0, "ns per ops": 96.0, "Ops per threads": 195190.0, "Ops per procs": 19519099.0, "Ops/sec/procs": 650636.0, "ns per ops/procs": 1540.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30035.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 393803380.0, "Ops per second": 13126779.0, "ns per ops": 76.0, "Ops per threads": 54694.0, "Ops per procs": 5469491.0, "Ops/sec/procs": 182316.0, "ns per ops/procs": 5491.0}],["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)": 971273762.0, "Ops per second": 32375792.0, "ns per ops": 30.0, "Ops per threads": 50587.0, "Ops per procs": 5058717.0, "Ops/sec/procs": 168623.0, "ns per ops/procs": 5932.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)": 145313016.0, "Ops per second": 4837861.84, "ns per ops": 206.7, "Ops per threads": 363282.0, "Ops per procs": 36328254.0, "Ops/sec/procs": 1209465.46, "ns per ops/procs": 826.81}],["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)": 318535162.0, "Ops per second": 10617838.0, "ns per ops": 94.0, "Ops per threads": 199084.0, "Ops per procs": 19908447.0, "Ops/sec/procs": 663614.0, "ns per ops/procs": 1509.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30032.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 174874521.0, "Ops per second": 5829150.0, "ns per ops": 171.0, "Ops per threads": 874372.0, "Ops per procs": 87437260.0, "Ops/sec/procs": 2914575.0, "ns per ops/procs": 343.0}],["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)": 134713084.0, "Total blocks": 81514132.0, "Ops per second": 4476450.69, "ns per ops": 223.39, "Ops per threads": 336782.0, "Ops per procs": 33678271.0, "Ops/sec/procs": 1119112.67, "ns per ops/procs": 893.57}],["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)": 256000674.0, "Ops per second": 8523401.04, "ns per ops": 117.32, "Ops per threads": 106666.0, "Ops per procs": 10666694.0, "Ops/sec/procs": 355141.71, "ns per ops/procs": 2815.78}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30059.93427, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 476341340.0, "Total blocks": 188284432.0, "Ops per second": 15846386.61, "ns per ops": 63.11, "Ops per threads": 66158.0, "Ops per procs": 6615851.0, "Ops/sec/procs": 220088.7, "ns per ops/procs": 4543.62}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30049.828564, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1204060815.0, "Total blocks": 0.0, "Ops per second": 40068808.13, "ns per ops": 24.96, "Ops per threads": 12040608.0, "Ops per procs": 1204060815.0, "Ops/sec/procs": 40068808.13, "ns per ops/procs": 24.96}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30070.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 168384341.0, "Ops per second": 5612811.0, "ns per ops": 178.0, "Ops per threads": 420960.0, "Ops per procs": 42096085.0, "Ops/sec/procs": 1403202.0, "ns per ops/procs": 714.0}],["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)": 169494475.0, "Ops per second": 5649815.0, "ns per ops": 177.0, "Ops per threads": 423736.0, "Ops per procs": 42373618.0, "Ops/sec/procs": 1412453.0, "ns per ops/procs": 709.0}],["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)": 441873605.0, "Ops per second": 14702306.41, "ns per ops": 68.02, "Ops per threads": 23014.0, "Ops per procs": 2301425.0, "Ops/sec/procs": 76574.51, "ns per ops/procs": 13059.18}],["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)": 497668235.0, "Ops per second": 16588941.0, "ns per ops": 60.0, "Ops per threads": 207361.0, "Ops per procs": 20736176.0, "Ops/sec/procs": 691205.0, "ns per ops/procs": 1447.0}],["rdq-churn-tokio", "./rdq-churn-tokio -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": 6.0, "Total Operations(ops)": 184108502.0, "Ops per second": 6136950.0, "ns per ops": 163.0, "Ops per threads": 920542.0, "Ops per procs": 92054251.0, "Ops/sec/procs": 3068475.0, "ns per ops/procs": 326.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30064.30244, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 631469231.0, "Total blocks": 263575889.0, "Ops per second": 21003954.18, "ns per ops": 47.61, "Ops per threads": 32889.0, "Ops per procs": 3288902.0, "Ops/sec/procs": 109395.59, "ns per ops/procs": 9141.14}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30080.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 314955581.0, "Ops per second": 10498519.0, "ns per ops": 95.0, "Ops per threads": 196847.0, "Ops per procs": 19684723.0, "Ops/sec/procs": 656157.0, "ns per ops/procs": 1528.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30024.349476, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 580967189.0, "Total blocks": 235396046.0, "Ops per second": 19349867.66, "ns per ops": 51.68, "Ops per threads": 40344.0, "Ops per procs": 4034494.0, "Ops/sec/procs": 134374.08, "ns per ops/procs": 7441.91}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30019.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 500465866.0, "Ops per second": 16682195.0, "ns per ops": 59.0, "Ops per threads": 208527.0, "Ops per procs": 20852744.0, "Ops/sec/procs": 695091.0, "ns per ops/procs": 1439.0}],["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)": 551265668.0, "Ops per second": 18361370.61, "ns per ops": 54.46, "Ops per threads": 76564.0, "Ops per procs": 7656467.0, "Ops/sec/procs": 255019.04, "ns per ops/procs": 3921.28}],["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)": 135560227.0, "Ops per second": 4518432.01, "ns per ops": 221.32, "Ops per threads": 1355602.0, "Ops per procs": 135560227.0, "Ops/sec/procs": 4518432.01, "ns per ops/procs": 221.32}],["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)": 226756617.0, "Ops per second": 7541079.35, "ns per ops": 132.61, "Ops per threads": 23620.0, "Ops per procs": 2362048.0, "Ops/sec/procs": 78552.91, "ns per ops/procs": 12730.27}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30053.784374, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 153136376.0, "Total blocks": 67265888.0, "Ops per second": 5095410.75, "ns per ops": 196.26, "Ops per threads": 382840.0, "Ops per procs": 38284094.0, "Ops/sec/procs": 1273852.69, "ns per ops/procs": 785.02}],["rdq-churn-tokio", "./rdq-churn-tokio -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30028.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 6.0, "Total Operations(ops)": 486323830.0, "Ops per second": 16210794.0, "ns per ops": 61.0, "Ops per threads": 50658.0, "Ops per procs": 5065873.0, "Ops/sec/procs": 168862.0, "ns per ops/procs": 5927.0}],["rdq-churn-go", "./rdq-churn-go -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)": 453044323.0, "Ops per second": 15072650.6, "ns per ops": 66.35, "Ops per threads": 23596.0, "Ops per procs": 2359605.0, "Ops/sec/procs": 78503.39, "ns per ops/procs": 12738.3}],["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)": 162579906.0, "Ops per second": 5412944.62, "ns per ops": 184.74, "Ops per threads": 406449.0, "Ops per procs": 40644976.0, "Ops/sec/procs": 1353236.16, "ns per ops/procs": 738.97}],["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)": 84758248.0, "Total blocks": 42380709.0, "Ops per second": 2818986.54, "ns per ops": 354.74, "Ops per threads": 423791.0, "Ops per procs": 42379124.0, "Ops/sec/procs": 1409493.27, "ns per ops/procs": 709.47}],["rdq-churn-fibre", "./rdq-churn-fibre -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30080.0, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 640135652.0, "Total blocks": 355948707.0, "Ops per second": 21280883.32, "ns per ops": 46.99, "Ops per threads": 44453.0, "Ops per procs": 4445386.0, "Ops/sec/procs": 147783.91, "ns per ops/procs": 6766.64}],["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)": 392847400.0, "Total blocks": 207204652.0, "Ops per second": 13066885.81, "ns per ops": 76.53, "Ops per threads": 54562.0, "Ops per procs": 5456213.0, "Ops/sec/procs": 181484.53, "ns per ops/procs": 5510.11}],["rdq-churn-tokio", "./rdq-churn-tokio -p 16 -d 30 -s 16 -t 1600", {"Duration (ms)": 30064.0, "Number of processors": 16.0, "Number of threads": 1600.0, "Number of spots": 6.0, "Total Operations(ops)": 308185457.0, "Ops per second": 10272848.0, "ns per ops": 97.0, "Ops per threads": 192615.0, "Ops per procs": 19261591.0, "Ops/sec/procs": 642053.0, "ns per ops/procs": 1560.0}],["rdq-churn-fibre", "./rdq-churn-fibre -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": 2.0, "Total Operations(ops)": 86972977.0, "Total blocks": 43487492.0, "Ops per second": 2892250.66, "ns per ops": 345.75, "Ops per threads": 434864.0, "Ops per procs": 43486488.0, "Ops/sec/procs": 1446125.33, "ns per ops/procs": 691.5}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30021.282957, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 351538941.0, "Total blocks": 130264829.0, "Ops per second": 11709657.5, "ns per ops": 85.4, "Ops per threads": 146474.0, "Ops per procs": 14647455.0, "Ops/sec/procs": 487902.4, "ns per ops/procs": 2049.59}],["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)": 135637678.0, "Total blocks": 82085825.0, "Ops per second": 4507166.19, "ns per ops": 221.87, "Ops per threads": 339094.0, "Ops per procs": 33909419.0, "Ops/sec/procs": 1126791.55, "ns per ops/procs": 887.48}],["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)": 367750303.0, "Ops per second": 12238791.25, "ns per ops": 81.71, "Ops per threads": 76614.0, "Ops per procs": 7661464.0, "Ops/sec/procs": 254974.82, "ns per ops/procs": 3921.96}],["rdq-churn-cfa", "./rdq-churn-cfa -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30056.573132, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 616364894.0, "Total blocks": 240048443.0, "Ops per second": 20506825.29, "ns per ops": 48.76, "Ops per threads": 32102.0, "Ops per procs": 3210233.0, "Ops/sec/procs": 106806.38, "ns per ops/procs": 9362.74}],["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)": 973715763.0, "Ops per second": 32457192.0, "ns per ops": 30.0, "Ops per threads": 50714.0, "Ops per procs": 5071436.0, "Ops/sec/procs": 169047.0, "ns per ops/procs": 5917.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30060.212988, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 8.0, "Total Operations(ops)": 193417811.0, "Total blocks": 64066561.0, "Ops per second": 6434345.99, "ns per ops": 155.42, "Ops per threads": 241772.0, "Ops per procs": 24177226.0, "Ops/sec/procs": 804293.25, "ns per ops/procs": 1243.33}],["rdq-churn-tokio", "./rdq-churn-tokio -p 8 -d 30 -s 8 -t 800", {"Duration (ms)": 30031.0, "Number of processors": 8.0, "Number of threads": 800.0, "Number of spots": 6.0, "Total Operations(ops)": 219620247.0, "Ops per second": 7320674.0, "ns per ops": 136.0, "Ops per threads": 274525.0, "Ops per procs": 27452530.0, "Ops/sec/procs": 915084.0, "ns per ops/procs": 1093.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)": 157339685.0, "Ops per second": 5238400.87, "ns per ops": 190.9, "Ops per threads": 393349.0, "Ops per procs": 39334921.0, "Ops/sec/procs": 1309600.22, "ns per ops/procs": 763.59}],["rdq-churn-fibre", "./rdq-churn-fibre -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30098.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 134479830.0, "Total blocks": 81429519.0, "Ops per second": 4468043.72, "ns per ops": 223.81, "Ops per threads": 336199.0, "Ops per procs": 33619957.0, "Ops/sec/procs": 1117010.93, "ns per ops/procs": 895.25}],["rdq-churn-fibre", "./rdq-churn-fibre -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)": 477001990.0, "Total blocks": 252277537.0, "Ops per second": 15863510.4, "ns per ops": 63.04, "Ops per threads": 49687.0, "Ops per procs": 4968770.0, "Ops/sec/procs": 165244.9, "ns per ops/procs": 6051.62}],["rdq-churn-tokio", "./rdq-churn-tokio -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30014.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 6.0, "Total Operations(ops)": 494691312.0, "Ops per second": 16489710.0, "ns per ops": 60.0, "Ops per threads": 206121.0, "Ops per procs": 20612138.0, "Ops/sec/procs": 687071.0, "ns per ops/procs": 1456.0}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30082.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 197294098.0, "Ops per second": 6558437.18, "ns per ops": 152.48, "Ops per threads": 20551.0, "Ops per procs": 2055146.0, "Ops/sec/procs": 68317.05, "ns per ops/procs": 14637.63}],["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)": 174340625.0, "Total blocks": 94005398.0, "Ops per second": 5808236.14, "ns per ops": 172.17, "Ops per threads": 217925.0, "Ops per procs": 21792578.0, "Ops/sec/procs": 726029.52, "ns per ops/procs": 1377.35}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30087.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 404262239.0, "Total blocks": 211641011.0, "Ops per second": 13436012.95, "ns per ops": 74.43, "Ops per threads": 56147.0, "Ops per procs": 5614753.0, "Ops/sec/procs": 186611.29, "ns per ops/procs": 5358.73}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30050.037404, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1193218192.0, "Total blocks": 1474194.0, "Ops per second": 39707710.71, "ns per ops": 25.18, "Ops per threads": 11932181.0, "Ops per procs": 1193218192.0, "Ops/sec/procs": 39707710.71, "ns per ops/procs": 25.18}],["rdq-churn-fibre", "./rdq-churn-fibre -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30093.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 394272350.0, "Total blocks": 207455576.0, "Ops per second": 13101633.38, "ns per ops": 76.33, "Ops per threads": 54760.0, "Ops per procs": 5476004.0, "Ops/sec/procs": 181967.13, "ns per ops/procs": 5495.5}],["rdq-churn-cfa", "./rdq-churn-cfa -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30020.950814, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 362966011.0, "Total blocks": 130934681.0, "Ops per second": 12090423.56, "ns per ops": 82.71, "Ops per threads": 151235.0, "Ops per procs": 15123583.0, "Ops/sec/procs": 503767.65, "ns per ops/procs": 1985.04}],["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)": 165932832.0, "Total blocks": 92020586.0, "Ops per second": 5526025.01, "ns per ops": 180.96, "Ops per threads": 207416.0, "Ops per procs": 20741604.0, "Ops/sec/procs": 690753.13, "ns per ops/procs": 1447.7}],["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)": 88501649.0, "Total blocks": 44251365.0, "Ops per second": 2943542.85, "ns per ops": 339.73, "Ops per threads": 442508.0, "Ops per procs": 44250824.0, "Ops/sec/procs": 1471771.42, "ns per ops/procs": 679.45}],["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)": 546885800.0, "Total blocks": 304023647.0, "Ops per second": 18228202.84, "ns per ops": 54.86, "Ops per threads": 113934.0, "Ops per procs": 11393454.0, "Ops/sec/procs": 379754.23, "ns per ops/procs": 2633.28}],["rdq-churn-tokio", "./rdq-churn-tokio -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30039.0, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 6.0, "Total Operations(ops)": 412069999.0, "Ops per second": 13735666.0, "ns per ops": 72.0, "Ops per threads": 57231.0, "Ops per procs": 5723194.0, "Ops/sec/procs": 190773.0, "ns per ops/procs": 5248.0}],["rdq-churn-fibre", "./rdq-churn-fibre -p 24 -d 30 -s 24 -t 2400", {"Duration (ms)": 30055.0, "Number of processors": 24.0, "Number of threads": 2400.0, "Number of spots": 24.0, "Total Operations(ops)": 307296948.0, "Total blocks": 161618478.0, "Ops per second": 10224240.12, "ns per ops": 97.81, "Ops per threads": 128040.0, "Ops per procs": 12804039.0, "Ops/sec/procs": 426010.0, "ns per ops/procs": 2347.36}],["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)": 171028659.0, "Ops per second": 5700955.0, "ns per ops": 175.0, "Ops per threads": 427571.0, "Ops per procs": 42757164.0, "Ops/sec/procs": 1425238.0, "ns per ops/procs": 703.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)": 368690696.0, "Ops per second": 12271933.03, "ns per ops": 81.49, "Ops per threads": 76810.0, "Ops per procs": 7681056.0, "Ops/sec/procs": 255665.27, "ns per ops/procs": 3911.36}],["rdq-churn-cfa", "./rdq-churn-cfa -p 72 -d 30 -s 72 -t 7200", {"Duration (ms)": 30054.459266, "Number of processors": 72.0, "Number of threads": 7200.0, "Number of spots": 72.0, "Total Operations(ops)": 470979769.0, "Total blocks": 181177829.0, "Ops per second": 15670878.15, "ns per ops": 63.81, "Ops per threads": 65413.0, "Ops per procs": 6541385.0, "Ops/sec/procs": 217651.09, "ns per ops/procs": 4594.51}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30037.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 176151716.0, "Ops per second": 5871723.0, "ns per ops": 170.0, "Ops per threads": 880758.0, "Ops per procs": 88075858.0, "Ops/sec/procs": 2935861.0, "ns per ops/procs": 341.0}],["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)": 247880056.0, "Ops per second": 8252639.58, "ns per ops": 121.17, "Ops per threads": 103283.0, "Ops per procs": 10328335.0, "Ops/sec/procs": 343859.98, "ns per ops/procs": 2908.16}],["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)": 285527060.0, "Total blocks": 146769951.0, "Ops per second": 9506302.59, "ns per ops": 105.19, "Ops per threads": 178454.0, "Ops per procs": 17845441.0, "Ops/sec/procs": 594143.91, "ns per ops/procs": 1683.09}],["rdq-churn-go", "./rdq-churn-go -p 96 -d 30 -s 96 -t 9600", {"Duration (ms)": 30056.0, "Number of processors": 96.0, "Number of threads": 9600.0, "Number of spots": 96.0, "Total Operations(ops)": 340053734.0, "Ops per second": 11313806.71, "ns per ops": 88.39, "Ops per threads": 35422.0, "Ops per procs": 3542226.0, "Ops/sec/procs": 117852.15, "ns per ops/procs": 8485.21}],["rdq-churn-cfa", "./rdq-churn-cfa -p 1 -d 30 -s 1 -t 100", {"Duration (ms)": 30050.10734, "Number of processors": 1.0, "Number of threads": 100.0, "Number of spots": 1.0, "Total Operations(ops)": 1191272046.0, "Total blocks": 1293104.0, "Ops per second": 39642854.93, "ns per ops": 25.23, "Ops per threads": 11912720.0, "Ops per procs": 1191272046.0, "Ops/sec/procs": 39642854.93, "ns per ops/procs": 25.23}],["rdq-churn-cfa", "./rdq-churn-cfa -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30052.326769, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 2.0, "Total Operations(ops)": 489557015.0, "Total blocks": 132294.0, "Ops per second": 16290153.46, "ns per ops": 61.39, "Ops per threads": 2447785.0, "Ops per procs": 244778507.0, "Ops/sec/procs": 8145076.73, "ns per ops/procs": 122.77}],["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)": 589752944.0, "Ops per second": 19658431.0, "ns per ops": 50.0, "Ops per threads": 122865.0, "Ops per procs": 12286519.0, "Ops/sec/procs": 409550.0, "ns per ops/procs": 2442.0}],["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)": 261936489.0, "Ops per second": 8720521.75, "ns per ops": 114.67, "Ops per threads": 109140.0, "Ops per procs": 10914020.0, "Ops/sec/procs": 363355.07, "ns per ops/procs": 2752.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)": 459213128.0, "Ops per second": 15307104.0, "ns per ops": 65.0, "Ops per threads": 4592131.0, "Ops per procs": 459213128.0, "Ops/sec/procs": 15307104.0, "ns per ops/procs": 65.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30063.338204, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 688751153.0, "Total blocks": 276536804.0, "Ops per second": 22910002.49, "ns per ops": 43.65, "Ops per threads": 143489.0, "Ops per procs": 14348982.0, "Ops/sec/procs": 477291.72, "ns per ops/procs": 2095.15}],["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)": 119642677.0, "Ops per second": 3984779.33, "ns per ops": 250.95, "Ops per threads": 598213.0, "Ops per procs": 59821338.0, "Ops/sec/procs": 1992389.66, "ns per ops/procs": 501.91}],["rdq-churn-tokio", "./rdq-churn-tokio -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30013.0, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 6.0, "Total Operations(ops)": 590241148.0, "Ops per second": 19674704.0, "ns per ops": 50.0, "Ops per threads": 122966.0, "Ops per procs": 12296690.0, "Ops/sec/procs": 409889.0, "ns per ops/procs": 2440.0}],["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)": 143493906.0, "Total blocks": 86710433.0, "Ops per second": 4768855.1, "ns per ops": 209.69, "Ops per threads": 358734.0, "Ops per procs": 35873476.0, "Ops/sec/procs": 1192213.78, "ns per ops/procs": 838.78}],["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)": 833603473.0, "Ops per second": 27786782.0, "ns per ops": 35.0, "Ops per threads": 57889.0, "Ops per procs": 5788913.0, "Ops/sec/procs": 192963.0, "ns per ops/procs": 5183.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30051.33861, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 4.0, "Total Operations(ops)": 158049598.0, "Total blocks": 69513492.0, "Ops per second": 5259319.73, "ns per ops": 190.14, "Ops per threads": 395123.0, "Ops per procs": 39512399.0, "Ops/sec/procs": 1314829.93, "ns per ops/procs": 760.55}],["rdq-churn-fibre", "./rdq-churn-fibre -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30053.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 192.0, "Total Operations(ops)": 787446382.0, "Total blocks": 410857495.0, "Ops per second": 26201572.37, "ns per ops": 38.17, "Ops per threads": 41012.0, "Ops per procs": 4101283.0, "Ops/sec/procs": 136466.52, "ns per ops/procs": 7327.8}],["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)": 141109188.0, "Ops per second": 4698170.61, "ns per ops": 212.85, "Ops per threads": 176386.0, "Ops per procs": 17638648.0, "Ops/sec/procs": 587271.33, "ns per ops/procs": 1702.79}],["rdq-churn-tokio", "./rdq-churn-tokio -p 2 -d 30 -s 2 -t 200", {"Duration (ms)": 30057.0, "Number of processors": 2.0, "Number of threads": 200.0, "Number of spots": 6.0, "Total Operations(ops)": 175141388.0, "Ops per second": 5838046.0, "ns per ops": 171.0, "Ops per threads": 875706.0, "Ops per procs": 87570694.0, "Ops/sec/procs": 2919023.0, "ns per ops/procs": 343.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)": 460147782.0, "Ops per second": 15338259.0, "ns per ops": 65.0, "Ops per threads": 4601477.0, "Ops per procs": 460147782.0, "Ops/sec/procs": 15338259.0, "ns per ops/procs": 65.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 144 -d 30 -s 144 -t 14400", {"Duration (ms)": 30011.752423, "Number of processors": 144.0, "Number of threads": 14400.0, "Number of spots": 144.0, "Total Operations(ops)": 535670591.0, "Total blocks": 218979085.0, "Ops per second": 17848694.19, "ns per ops": 56.03, "Ops per threads": 37199.0, "Ops per procs": 3719934.0, "Ops/sec/procs": 123949.27, "ns per ops/procs": 8067.82}],["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)": 987916613.0, "Ops per second": 32930553.0, "ns per ops": 30.0, "Ops per threads": 51453.0, "Ops per procs": 5145399.0, "Ops/sec/procs": 171513.0, "ns per ops/procs": 5831.0}],["rdq-churn-tokio", "./rdq-churn-tokio -p 4 -d 30 -s 4 -t 400", {"Duration (ms)": 30055.0, "Number of processors": 4.0, "Number of threads": 400.0, "Number of spots": 6.0, "Total Operations(ops)": 168342479.0, "Ops per second": 5611415.0, "ns per ops": 178.0, "Ops per threads": 420856.0, "Ops per procs": 42085619.0, "Ops/sec/procs": 1402853.0, "ns per ops/procs": 714.0}],["rdq-churn-cfa", "./rdq-churn-cfa -p 48 -d 30 -s 48 -t 4800", {"Duration (ms)": 30056.291934, "Number of processors": 48.0, "Number of threads": 4800.0, "Number of spots": 48.0, "Total Operations(ops)": 723920777.0, "Total blocks": 287926681.0, "Ops per second": 24085498.59, "ns per ops": 41.52, "Ops per threads": 150816.0, "Ops per procs": 15081682.0, "Ops/sec/procs": 501781.22, "ns per ops/procs": 1992.9}],["rdq-churn-tokio", "./rdq-churn-tokio -p 192 -d 30 -s 192 -t 19200", {"Duration (ms)": 30002.0, "Number of processors": 192.0, "Number of threads": 19200.0, "Number of spots": 6.0, "Total Operations(ops)": 975733286.0, "Ops per second": 32524442.0, "ns per ops": 30.0, "Ops per threads": 50819.0, "Ops per procs": 5081944.0, "Ops/sec/procs": 169398.0, "ns per ops/procs": 5903.0}]]
  • doc/theses/thierry_delisle_PhD/thesis/data/churn.low.jax

    r741e22c r71cf630  
    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/memcd.rate

    r741e22c r71cf630  
    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

    r741e22c r71cf630  
    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[["forall-10", "memcached forall-10", {"Target QPS": 700000, "Actual QPS": 578924.8, "Average Read Latency": 15545.5, "Median Read Latency": 13115.7, "Tail Read Latency": 28338.2, "Average Update Latency": 15746.6, "Median Update Latency": 13118.4, "Tail Update Latency": 28653.3}], ["forall-10", "memcached forall-10", {"Target QPS": 400000, "Actual QPS": 400656.5, "Average Read Latency": 164.0, "Median Read Latency": 122.0, "Tail Read Latency": 581.3, "Average Update Latency": 169.6, "Median Update Latency": 125.1, "Tail Update Latency": 553.4}], ["vanilla-10", "memcached vanilla-10", {"Target QPS": 300000, "Actual QPS": 300199.9, "Average Read Latency": 100.9, "Median Read Latency": 94.7, "Tail Read Latency": 186.8, "Average Update Latency": 103.8, "Median Update Latency": 97.7, "Tail Update Latency": 190.9}], ["forall-10", "memcached forall-10", {"Target QPS": 100000, "Actual QPS": 100366.1, "Average Read Latency": 99.0, "Median Read Latency": 94.1, "Tail Read Latency": 152.2, "Average Update Latency": 103.1, "Median Update Latency": 100.7, "Tail Update Latency": 156.1}], ["vanilla-50", "memcached vanilla-50", {"Target QPS": 700000, "Actual QPS": 590674.8, "Average Read Latency": 22247.4, "Median Read Latency": 13313.2, "Tail Read Latency": 248625.5, "Average Update Latency": 20593.0, "Median Update Latency": 13300.6, "Tail Update Latency": 237617.9}], ["vanilla-50", "memcached vanilla-50", {"Target QPS": 600000, "Actual QPS": 566735.3, "Average Read Latency": 10672.0, "Median Read Latency": 7637.9, "Tail Read Latency": 224454.0, "Average Update Latency": 11869.1, "Median Update Latency": 7323.8, "Tail Update Latency": 230793.0}], ["forall-05", "memcached forall-05", {"Target QPS": 400000, "Actual QPS": 400535.7, "Average Read Latency": 163.1, "Median Read Latency": 119.5, "Tail Read Latency": 551.4, "Average Update Latency": 174.7, "Median Update Latency": 123.2, "Tail Update Latency": 586.8}], ["forall-03", "memcached forall-03", {"Target QPS": 600000, "Actual QPS": 560072.7, "Average Read Latency": 13637.9, "Median Read Latency": 12864.9, "Tail Read Latency": 28209.5, "Average Update Latency": 13406.8, "Median Update Latency": 12867.2, "Tail Update Latency": 28868.1}], ["vanilla-05", "memcached vanilla-05", {"Target QPS": 600000, "Actual QPS": 562460.7, "Average Read Latency": 11754.1, "Median Read Latency": 5071.5, "Tail Read Latency": 228337.4, "Average Update Latency": 10343.8, "Median Update Latency": 6548.4, "Tail Update Latency": 224874.5}], ["forall-05", "memcached forall-05", {"Target QPS": 800000, "Actual QPS": 544413.4, "Average Read Latency": 14249.5, "Median Read Latency": 13941.7, "Tail Read Latency": 28831.2, "Average Update Latency": 14600.8, "Median Update Latency": 13988.4, "Tail Update Latency": 28923.8}], ["fibre-10", "memcached fibre-10", {"Target QPS": 400000, "Actual QPS": 400130.7, "Average Read Latency": 279.6, "Median Read Latency": 123.9, "Tail Read Latency": 3561.8, "Average Update Latency": 307.3, "Median Update Latency": 125.7, "Tail Update Latency": 4770.7}], ["forall-03", "memcached forall-03", {"Target QPS": 700000, "Actual QPS": 540491.3, "Average Read Latency": 14058.0, "Median Read Latency": 13527.6, "Tail Read Latency": 28914.8, "Average Update Latency": 14959.5, "Median Update Latency": 13525.5, "Tail Update Latency": 53791.3}], ["vanilla-03", "memcached vanilla-03", {"Target QPS": 300000, "Actual QPS": 300409.4, "Average Read Latency": 104.5, "Median Read Latency": 96.8, "Tail Read Latency": 207.1, "Average Update Latency": 111.5, "Median Update Latency": 100.6, "Tail Update Latency": 218.0}], ["vanilla-50", "memcached vanilla-50", {"Target QPS": 100000, "Actual QPS": 100259.4, "Average Read Latency": 91.0, "Median Read Latency": 88.7, "Tail Read Latency": 135.1, "Average Update Latency": 97.7, "Median Update Latency": 95.6, "Tail Update Latency": 145.1}], ["fibre-10", "memcached fibre-10", {"Target QPS": 800000, "Actual QPS": 494450.0, "Average Read Latency": 27290.2, "Median Read Latency": 14703.7, "Tail Read Latency": 315692.4, "Average Update Latency": 27472.3, "Median Update Latency": 14189.5, "Tail Update Latency": 304255.4}], ["vanilla-50", "memcached vanilla-50", {"Target QPS": 500000, "Actual QPS": 497580.9, "Average Read Latency": 6898.2, "Median Read Latency": 4451.5, "Tail Read Latency": 20297.3, "Average Update Latency": 6599.2, "Median Update Latency": 479.2, "Tail Update Latency": 17628.7}], ["vanilla-05", "memcached vanilla-05", {"Target QPS": 800000, "Actual QPS": 586577.9, "Average Read Latency": 29074.9, "Median Read Latency": 26283.6, "Tail Read Latency": 219645.7, "Average Update Latency": 29128.9, "Median Update Latency": 26476.8, "Tail Update Latency": 219446.3}], ["vanilla-50", "memcached vanilla-50", {"Target QPS": 200000, "Actual QPS": 200482.7, "Average Read Latency": 89.0, "Median Read Latency": 86.0, "Tail Read Latency": 139.9, "Average Update Latency": 93.0, "Median Update Latency": 89.8, "Tail Update Latency": 144.9}], ["forall-03", "memcached forall-03", {"Target QPS": 400000, "Actual QPS": 400172.3, "Average Read Latency": 162.7, "Median Read Latency": 120.2, "Tail Read Latency": 537.4, "Average Update Latency": 170.1, "Median Update Latency": 123.3, "Tail Update Latency": 563.3}], ["forall-50", "memcached forall-50", {"Target QPS": 700000, "Actual QPS": 547201.1, "Average Read Latency": 14858.2, "Median Read Latency": 14122.0, "Tail Read Latency": 30264.6, "Average Update Latency": 15705.0, "Median Update Latency": 14154.7, "Tail Update Latency": 35124.2}], ["vanilla-05", "memcached vanilla-05", {"Target QPS": 200000, "Actual QPS": 200133.9, "Average Read Latency": 90.5, "Median Read Latency": 87.0, "Tail Read Latency": 144.4, "Average Update Latency": 94.8, "Median Update Latency": 92.2, "Tail Update Latency": 146.9}], ["fibre-10", "memcached fibre-10", {"Target QPS": 600000, "Actual QPS": 505621.8, "Average Read Latency": 25887.6, "Median Read Latency": 17109.8, "Tail Read Latency": 258402.0, "Average Update Latency": 26413.0, "Median Update Latency": 16961.2, "Tail Update Latency": 261833.5}], ["vanilla-50", "memcached vanilla-50", {"Target QPS": 400000, "Actual QPS": 400320.0, "Average Read Latency": 117.2, "Median Read Latency": 103.9, "Tail Read Latency": 299.9, "Average Update Latency": 121.2, "Median Update Latency": 106.3, "Tail Update Latency": 282.5}], ["vanilla-03", "memcached vanilla-03", {"Target QPS": 200000, "Actual QPS": 200364.9, "Average Read Latency": 88.2, "Median Read Latency": 85.1, "Tail Read Latency": 137.9, "Average Update Latency": 92.0, "Median Update Latency": 89.2, "Tail Update Latency": 140.5}], ["vanilla-50", "memcached vanilla-50", {"Target QPS": 500000, "Actual QPS": 499435.9, "Average Read Latency": 5700.9, "Median Read Latency": 246.2, "Tail Read Latency": 12449.3, "Average Update Latency": 5585.3, "Median Update Latency": 242.5, "Tail Update Latency": 12446.5}], ["forall-03", "memcached forall-03", {"Target QPS": 600000, "Actual QPS": 553135.0, "Average Read Latency": 15120.1, "Median Read Latency": 10074.2, "Tail Read Latency": 226396.8, "Average Update Latency": 15928.5, "Median Update Latency": 10052.8, "Tail Update Latency": 228722.8}], ["vanilla-50", "memcached vanilla-50", {"Target QPS": 800000, "Actual QPS": 574703.5, "Average Read Latency": 37166.0, "Median Read Latency": 35804.8, "Tail Read Latency": 88204.7, "Average Update Latency": 36635.2, "Median Update Latency": 35408.6, "Tail Update Latency": 85909.4}], ["forall-10", "memcached forall-10", {"Target QPS": 800000, "Actual QPS": 560826.6, "Average Read Latency": 14123.1, "Median Read Latency": 13526.4, "Tail Read Latency": 25784.2, "Average Update Latency": 14137.1, "Median Update Latency": 13470.3, "Tail Update Latency": 26087.3}], ["vanilla-05", "memcached vanilla-05", {"Target QPS": 100000, "Actual QPS": 100214.7, "Average Read Latency": 98.7, "Median Read Latency": 87.8, "Tail Read Latency": 138.9, "Average Update Latency": 110.6, "Median Update Latency": 94.2, "Tail Update Latency": 145.4}], ["fibre-50", "memcached fibre-50", {"Target QPS": 100000, "Actual QPS": 100322.4, "Average Read Latency": 95.9, "Median Read Latency": 94.0, "Tail Read Latency": 142.8, "Average Update Latency": 101.0, "Median Update Latency": 99.6, "Tail Update Latency": 151.6}], ["fibre-10", "memcached fibre-10", {"Target QPS": 800000, "Actual QPS": 504109.5, "Average Read Latency": 19733.4, "Median Read Latency": 12687.0, "Tail Read Latency": 233637.1, "Average Update Latency": 20973.1, "Median Update Latency": 13344.9, "Tail Update Latency": 238811.3}], ["fibre-03", "memcached fibre-03", {"Target QPS": 500000, "Actual QPS": 477643.3, "Average Read Latency": 17326.6, "Median Read Latency": 11445.3, "Tail Read Latency": 234304.9, "Average Update Latency": 17684.8, "Median Update Latency": 11695.8, "Tail Update Latency": 234802.2}], ["fibre-03", "memcached fibre-03", {"Target QPS": 100000, "Actual QPS": 100152.8, "Average Read Latency": 96.3, "Median Read Latency": 92.6, "Tail Read Latency": 153.3, "Average Update Latency": 99.8, "Median Update Latency": 98.1, "Tail Update Latency": 153.4}], ["forall-05", "memcached forall-05", {"Target QPS": 800000, "Actual QPS": 554351.8, "Average Read Latency": 16034.5, "Median Read Latency": 13806.4, "Tail Read Latency": 30631.5, "Average Update Latency": 15214.1, "Median Update Latency": 13806.7, "Tail Update Latency": 30041.8}], ["vanilla-10", "memcached vanilla-10", {"Target QPS": 200000, "Actual QPS": 200275.1, "Average Read Latency": 88.4, "Median Read Latency": 85.3, "Tail Read Latency": 131.6, "Average Update Latency": 96.8, "Median Update Latency": 88.8, "Tail Update Latency": 141.1}], ["forall-10", "memcached forall-10", {"Target QPS": 300000, "Actual QPS": 300082.2, "Average Read Latency": 109.8, "Median Read Latency": 100.8, "Tail Read Latency": 251.5, "Average Update Latency": 113.5, "Median Update Latency": 104.1, "Tail Update Latency": 264.1}], ["fibre-05", "memcached fibre-05", {"Target QPS": 600000, "Actual QPS": 502609.1, "Average Read Latency": 22126.5, "Median Read Latency": 12956.8, "Tail Read Latency": 288254.6, "Average Update Latency": 21427.2, "Median Update Latency": 12802.4, "Tail Update Latency": 269115.4}], ["forall-50", "memcached forall-50", {"Target QPS": 100000, "Actual QPS": 100322.8, "Average Read Latency": 97.8, "Median Read Latency": 93.3, "Tail Read Latency": 146.4, "Average Update Latency": 103.7, "Median Update Latency": 100.4, "Tail Update Latency": 154.8}], ["vanilla-10", "memcached vanilla-10", {"Target QPS": 800000, "Actual QPS": 592119.2, "Average Read Latency": 30146.0, "Median Read Latency": 29456.8, "Tail Read Latency": 69404.1, "Average Update Latency": 29495.6, "Median Update Latency": 28699.5, "Tail Update Latency": 69346.7}], ["fibre-50", "memcached fibre-50", {"Target QPS": 700000, "Actual QPS": 491137.4, "Average Read Latency": 26552.9, "Median Read Latency": 15054.5, "Tail Read Latency": 276484.9, "Average Update Latency": 26897.3, "Median Update Latency": 15060.1, "Tail Update Latency": 277637.8}], ["vanilla-03", "memcached vanilla-03", {"Target QPS": 100000, "Actual QPS": 100290.0, "Average Read Latency": 87.1, "Median Read Latency": 84.2, "Tail Read Latency": 125.9, "Average Update Latency": 92.0, "Median Update Latency": 89.7, "Tail Update Latency": 135.4}], ["fibre-50", "memcached fibre-50", {"Target QPS": 600000, "Actual QPS": 497511.4, "Average Read Latency": 23561.8, "Median Read Latency": 13972.7, "Tail Read Latency": 264362.4, "Average Update Latency": 24575.9, "Median Update Latency": 14111.1, "Tail Update Latency": 283913.5}], ["fibre-50", "memcached fibre-50", {"Target QPS": 800000, "Actual QPS": 496108.4, "Average Read Latency": 22136.0, "Median Read Latency": 13145.8, "Tail Read Latency": 239616.4, "Average Update Latency": 24106.6, "Median Update Latency": 13241.7, "Tail Update Latency": 290431.8}], ["forall-10", "memcached forall-10", {"Target QPS": 700000, "Actual QPS": 574150.2, "Average Read Latency": 16939.7, "Median Read Latency": 12934.7, "Tail Read Latency": 33133.0, "Average Update Latency": 16103.9, "Median Update Latency": 12984.8, "Tail Update Latency": 30380.4}], ["fibre-50", "memcached fibre-50", {"Target QPS": 500000, "Actual QPS": 480452.0, "Average Read Latency": 19308.7, "Median Read Latency": 13500.5, "Tail Read Latency": 233531.4, "Average Update Latency": 20494.3, "Median Update Latency": 13460.3, "Tail Update Latency": 236190.2}], ["forall-50", "memcached forall-50", {"Target QPS": 800000, "Actual QPS": 550343.0, "Average Read Latency": 14474.6, "Median Read Latency": 13070.6, "Tail Read Latency": 27075.3, "Average Update Latency": 14463.9, "Median Update Latency": 13166.3, "Tail Update Latency": 28846.0}], ["fibre-03", "memcached fibre-03", {"Target QPS": 200000, "Actual QPS": 200198.9, "Average Read Latency": 99.3, "Median Read Latency": 94.5, "Tail Read Latency": 188.6, "Average Update Latency": 102.3, "Median Update Latency": 98.2, "Tail Update Latency": 181.2}], ["forall-50", "memcached forall-50", {"Target QPS": 600000, "Actual QPS": 574905.9, "Average Read Latency": 13572.0, "Median Read Latency": 12575.8, "Tail Read Latency": 28619.8, "Average Update Latency": 13745.5, "Median Update Latency": 12576.4, "Tail Update Latency": 30408.4}], ["fibre-50", "memcached fibre-50", {"Target QPS": 400000, "Actual QPS": 400271.7, "Average Read Latency": 803.4, "Median Read Latency": 126.1, "Tail Read Latency": 13307.5, "Average Update Latency": 1219.0, "Median Update Latency": 127.9, "Tail Update Latency": 15221.5}], ["fibre-05", "memcached fibre-05", {"Target QPS": 200000, "Actual QPS": 200263.9, "Average Read Latency": 102.2, "Median Read Latency": 94.0, "Tail Read Latency": 175.4, "Average Update Latency": 111.2, "Median Update Latency": 97.6, "Tail Update Latency": 189.9}], ["forall-05", "memcached forall-05", {"Target QPS": 600000, "Actual QPS": 536793.4, "Average Read Latency": 14902.7, "Median Read Latency": 11434.2, "Tail Read Latency": 211495.6, "Average Update Latency": 15061.0, "Median Update Latency": 11623.7, "Tail Update Latency": 213634.9}], ["fibre-50", "memcached fibre-50", {"Target QPS": 800000, "Actual QPS": 520372.6, "Average Read Latency": 24761.6, "Median Read Latency": 17372.4, "Tail Read Latency": 250977.0, "Average Update Latency": 26031.2, "Median Update Latency": 17906.7, "Tail Update Latency": 259306.7}], ["forall-50", "memcached forall-50", {"Target QPS": 700000, "Actual QPS": 551122.2, "Average Read Latency": 15189.1, "Median Read Latency": 14351.9, "Tail Read Latency": 28673.5, "Average Update Latency": 16248.3, "Median Update Latency": 14397.1, "Tail Update Latency": 34103.5}], ["forall-10", "memcached forall-10", {"Target QPS": 500000, "Actual QPS": 496854.7, "Average Read Latency": 7268.8, "Median Read Latency": 1345.0, "Tail Read Latency": 205016.8, "Average Update Latency": 6543.1, "Median Update Latency": 1185.2, "Tail Update Latency": 16529.3}], ["fibre-50", "memcached fibre-50", {"Target QPS": 200000, "Actual QPS": 200165.8, "Average Read Latency": 98.6, "Median Read Latency": 94.3, "Tail Read Latency": 176.2, "Average Update Latency": 102.1, "Median Update Latency": 97.8, "Tail Update Latency": 175.0}], ["fibre-50", "memcached fibre-50", {"Target QPS": 300000, "Actual QPS": 300271.1, "Average Read Latency": 142.7, "Median Read Latency": 99.4, "Tail Read Latency": 364.5, "Average Update Latency": 182.4, "Median Update Latency": 102.0, "Tail Update Latency": 341.2}], ["forall-03", "memcached forall-03", {"Target QPS": 800000, "Actual QPS": 538932.7, "Average Read Latency": 14293.5, "Median Read Latency": 13876.8, "Tail Read Latency": 29123.2, "Average Update Latency": 15087.9, "Median Update Latency": 13812.3, "Tail Update Latency": 39682.0}], ["forall-10", "memcached forall-10", {"Target QPS": 600000, "Actual QPS": 554949.9, "Average Read Latency": 16344.6, "Median Read Latency": 10745.9, "Tail Read Latency": 226845.2, "Average Update Latency": 16724.4, "Median Update Latency": 10636.5, "Tail Update Latency": 227209.1}], ["fibre-05", "memcached fibre-05", {"Target QPS": 500000, "Actual QPS": 482442.9, "Average Read Latency": 19030.5, "Median Read Latency": 12748.5, "Tail Read Latency": 236100.5, "Average Update Latency": 19078.3, "Median Update Latency": 12999.7, "Tail Update Latency": 236390.7}], ["fibre-03", "memcached fibre-03", {"Target QPS": 800000, "Actual QPS": 526409.1, "Average Read Latency": 20960.4, "Median Read Latency": 13515.1, "Tail Read Latency": 236882.5, "Average Update Latency": 20133.3, "Median Update Latency": 13111.2, "Tail Update Latency": 236268.0}], ["vanilla-05", "memcached vanilla-05", {"Target QPS": 100000, "Actual QPS": 100322.9, "Average Read Latency": 90.7, "Median Read Latency": 87.8, "Tail Read Latency": 140.4, "Average Update Latency": 96.8, "Median Update Latency": 94.5, "Tail Update Latency": 148.5}], ["fibre-03", "memcached fibre-03", {"Target QPS": 400000, "Actual QPS": 400309.0, "Average Read Latency": 354.2, "Median Read Latency": 130.8, "Tail Read Latency": 5204.2, "Average Update Latency": 415.6, "Median Update Latency": 134.4, "Tail Update Latency": 8007.6}], ["vanilla-03", "memcached vanilla-03", {"Target QPS": 600000, "Actual QPS": 561579.4, "Average Read Latency": 10142.1, "Median Read Latency": 6048.9, "Tail Read Latency": 227482.4, "Average Update Latency": 11686.0, "Median Update Latency": 6750.2, "Tail Update Latency": 231104.2}], ["vanilla-50", "memcached vanilla-50", {"Target QPS": 800000, "Actual QPS": 582548.5, "Average Read Latency": 32272.9, "Median Read Latency": 31346.4, "Tail Read Latency": 80986.4, "Average Update Latency": 32023.1, "Median Update Latency": 31813.0, "Tail Update Latency": 77064.8}], ["vanilla-05", "memcached vanilla-05", {"Target QPS": 800000, "Actual QPS": 585258.0, "Average Read Latency": 30898.2, "Median Read Latency": 29618.1, "Tail Read Latency": 74921.3, "Average Update Latency": 30783.7, "Median Update Latency": 29917.0, "Tail Update Latency": 76411.1}], ["forall-03", "memcached forall-03", {"Target QPS": 500000, "Actual QPS": 496757.1, "Average Read Latency": 7022.6, "Median Read Latency": 660.8, "Tail Read Latency": 16524.8, "Average Update Latency": 7067.6, "Median Update Latency": 756.8, "Tail Update Latency": 28492.6}], ["fibre-05", "memcached fibre-05", {"Target QPS": 400000, "Actual QPS": 400287.6, "Average Read Latency": 439.8, "Median Read Latency": 129.1, "Tail Read Latency": 7233.2, "Average Update Latency": 574.7, "Median Update Latency": 132.5, "Tail Update Latency": 11012.8}], ["forall-10", "memcached forall-10", {"Target QPS": 400000, "Actual QPS": 400128.6, "Average Read Latency": 170.3, "Median Read Latency": 122.1, "Tail Read Latency": 553.8, "Average Update Latency": 174.8, "Median Update Latency": 126.2, "Tail Update Latency": 588.0}], ["fibre-10", "memcached fibre-10", {"Target QPS": 200000, "Actual QPS": 200294.6, "Average Read Latency": 103.7, "Median Read Latency": 98.4, "Tail Read Latency": 197.2, "Average Update Latency": 106.6, "Median Update Latency": 101.4, "Tail Update Latency": 202.3}], ["forall-05", "memcached forall-05", {"Target QPS": 700000, "Actual QPS": 574713.0, "Average Read Latency": 15967.6, "Median Read Latency": 12767.8, "Tail Read Latency": 29032.0, "Average Update Latency": 16043.7, "Median Update Latency": 12729.9, "Tail Update Latency": 30898.8}], ["vanilla-10", "memcached vanilla-10", {"Target QPS": 500000, "Actual QPS": 498882.2, "Average Read Latency": 5359.3, "Median Read Latency": 198.7, "Tail Read Latency": 12366.1, "Average Update Latency": 5532.1, "Median Update Latency": 203.1, "Tail Update Latency": 12402.3}], ["fibre-10", "memcached fibre-10", {"Target QPS": 100000, "Actual QPS": 100289.6, "Average Read Latency": 96.6, "Median Read Latency": 94.7, "Tail Read Latency": 145.7, "Average Update Latency": 101.8, "Median Update Latency": 99.3, "Tail Update Latency": 157.1}], ["forall-03", "memcached forall-03", {"Target QPS": 300000, "Actual QPS": 300099.2, "Average Read Latency": 119.2, "Median Read Latency": 99.6, "Tail Read Latency": 269.3, "Average Update Latency": 117.7, "Median Update Latency": 103.9, "Tail Update Latency": 265.7}], ["forall-05", "memcached forall-05", {"Target QPS": 400000, "Actual QPS": 400549.5, "Average Read Latency": 171.1, "Median Read Latency": 122.8, "Tail Read Latency": 584.9, "Average Update Latency": 178.9, "Median Update Latency": 128.8, "Tail Update Latency": 579.3}], ["forall-50", "memcached forall-50", {"Target QPS": 300000, "Actual QPS": 300276.2, "Average Read Latency": 108.7, "Median Read Latency": 99.2, "Tail Read Latency": 244.3, "Average Update Latency": 115.5, "Median Update Latency": 104.0, "Tail Update Latency": 259.2}], ["fibre-10", "memcached fibre-10", {"Target QPS": 700000, "Actual QPS": 520490.9, "Average Read Latency": 21809.6, "Median Read Latency": 14661.4, "Tail Read Latency": 242948.2, "Average Update Latency": 19916.9, "Median Update Latency": 14518.3, "Tail Update Latency": 235161.7}], ["forall-50", "memcached forall-50", {"Target QPS": 200000, "Actual QPS": 200495.8, "Average Read Latency": 101.5, "Median Read Latency": 95.7, "Tail Read Latency": 205.3, "Average Update Latency": 107.3, "Median Update Latency": 101.0, "Tail Update Latency": 212.1}], ["vanilla-10", "memcached vanilla-10", {"Target QPS": 100000, "Actual QPS": 100292.4, "Average Read Latency": 88.9, "Median Read Latency": 86.3, "Tail Read Latency": 132.4, "Average Update Latency": 100.0, "Median Update Latency": 92.8, "Tail Update Latency": 149.4}], ["vanilla-03", "memcached vanilla-03", {"Target QPS": 700000, "Actual QPS": 586933.0, "Average Read Latency": 21597.2, "Median Read Latency": 13045.3, "Tail Read Latency": 239922.7, "Average Update Latency": 21560.9, "Median Update Latency": 13005.2, "Tail Update Latency": 242205.3}], ["vanilla-10", "memcached vanilla-10", {"Target QPS": 400000, "Actual QPS": 399855.0, "Average Read Latency": 115.1, "Median Read Latency": 102.1, "Tail Read Latency": 300.6, "Average Update Latency": 120.0, "Median Update Latency": 105.7, "Tail Update Latency": 317.4}], ["vanilla-05", "memcached vanilla-05", {"Target QPS": 200000, "Actual QPS": 200646.8, "Average Read Latency": 90.4, "Median Read Latency": 87.0, "Tail Read Latency": 144.9, "Average Update Latency": 94.5, "Median Update Latency": 91.6, "Tail Update Latency": 142.9}], ["vanilla-03", "memcached vanilla-03", {"Target QPS": 800000, "Actual QPS": 589620.6, "Average Read Latency": 30742.0, "Median Read Latency": 29064.1, "Tail Read Latency": 81951.8, "Average Update Latency": 30723.8, "Median Update Latency": 29273.2, "Tail Update Latency": 79021.8}], ["forall-10", "memcached forall-10", {"Target QPS": 200000, "Actual QPS": 200435.0, "Average Read Latency": 109.4, "Median Read Latency": 96.4, "Tail Read Latency": 225.7, "Average Update Latency": 109.5, "Median Update Latency": 101.3, "Tail Update Latency": 221.6}], ["vanilla-03", "memcached vanilla-03", {"Target QPS": 500000, "Actual QPS": 499078.3, "Average Read Latency": 5020.9, "Median Read Latency": 200.6, "Tail Read Latency": 12363.2, "Average Update Latency": 5052.2, "Median Update Latency": 211.4, "Tail Update Latency": 12372.4}], ["fibre-03", "memcached fibre-03", {"Target QPS": 700000, "Actual QPS": 515280.5, "Average Read Latency": 14375.3, "Median Read Latency": 9364.8, "Tail Read Latency": 230807.6, "Average Update Latency": 15385.6, "Median Update Latency": 9523.5, "Tail Update Latency": 234891.9}], ["vanilla-10", "memcached vanilla-10", {"Target QPS": 500000, "Actual QPS": 498237.9, "Average Read Latency": 5900.4, "Median Read Latency": 282.0, "Tail Read Latency": 12478.6, "Average Update Latency": 5674.9, "Median Update Latency": 398.1, "Tail Update Latency": 12476.7}], ["vanilla-05", "memcached vanilla-05", {"Target QPS": 700000, "Actual QPS": 591351.0, "Average Read Latency": 20163.0, "Median Read Latency": 13245.7, "Tail Read Latency": 241499.3, "Average Update Latency": 19016.3, "Median Update Latency": 13173.7, "Tail Update Latency": 234730.6}], ["fibre-03", "memcached fibre-03", {"Target QPS": 700000, "Actual QPS": 500826.6, "Average Read Latency": 18291.7, "Median Read Latency": 13374.9, "Tail Read Latency": 235063.1, "Average Update Latency": 18423.0, "Median Update Latency": 13315.2, "Tail Update Latency": 236337.1}], ["forall-03", "memcached forall-03", {"Target QPS": 100000, "Actual QPS": 100193.3, "Average Read Latency": 100.9, "Median Read Latency": 93.6, "Tail Read Latency": 176.4, "Average Update Latency": 105.6, "Median Update Latency": 101.8, "Tail Update Latency": 185.8}], ["fibre-50", "memcached fibre-50", {"Target QPS": 100000, "Actual QPS": 100384.1, "Average Read Latency": 106.4, "Median Read Latency": 96.3, "Tail Read Latency": 152.4, "Average Update Latency": 112.1, "Median Update Latency": 101.1, "Tail Update Latency": 157.3}], ["vanilla-50", "memcached vanilla-50", {"Target QPS": 300000, "Actual QPS": 300361.8, "Average Read Latency": 101.4, "Median Read Latency": 95.1, "Tail Read Latency": 193.0, "Average Update Latency": 105.9, "Median Update Latency": 98.8, "Tail Update Latency": 194.9}], ["fibre-50", "memcached fibre-50", {"Target QPS": 700000, "Actual QPS": 509392.0, "Average Read Latency": 22893.6, "Median Read Latency": 15688.3, "Tail Read Latency": 234951.5, "Average Update Latency": 25849.0, "Median Update Latency": 16202.2, "Tail Update Latency": 255076.2}], ["fibre-50", "memcached fibre-50", {"Target QPS": 200000, "Actual QPS": 200574.3, "Average Read Latency": 102.3, "Median Read Latency": 96.2, "Tail Read Latency": 191.4, "Average Update Latency": 105.3, "Median Update Latency": 99.8, "Tail Update Latency": 205.9}], ["fibre-10", "memcached fibre-10", {"Target QPS": 400000, "Actual QPS": 400141.7, "Average Read Latency": 451.4, "Median Read Latency": 127.5, "Tail Read Latency": 7564.3, "Average Update Latency": 596.5, "Median Update Latency": 128.8, "Tail Update Latency": 11365.6}], ["fibre-03", "memcached fibre-03", {"Target QPS": 800000, "Actual QPS": 513436.7, "Average Read Latency": 24972.6, "Median Read Latency": 17242.9, "Tail Read Latency": 236950.2, "Average Update Latency": 25755.6, "Median Update Latency": 17450.7, "Tail Update Latency": 246826.5}], ["vanilla-05", "memcached vanilla-05", {"Target QPS": 300000, "Actual QPS": 300297.2, "Average Read Latency": 102.4, "Median Read Latency": 95.3, "Tail Read Latency": 195.1, "Average Update Latency": 104.9, "Median Update Latency": 99.4, "Tail Update Latency": 195.5}], ["vanilla-05", "memcached vanilla-05", {"Target QPS": 300000, "Actual QPS": 300357.8, "Average Read Latency": 105.2, "Median Read Latency": 98.0, "Tail Read Latency": 207.8, "Average Update Latency": 107.7, "Median Update Latency": 101.3, "Tail Update Latency": 207.1}], ["forall-50", "memcached forall-50", {"Target QPS": 500000, "Actual QPS": 492931.4, "Average Read Latency": 7439.2, "Median Read Latency": 658.8, "Tail Read Latency": 200755.0, "Average Update Latency": 8234.3, "Median Update Latency": 849.0, "Tail Update Latency": 207909.0}], ["vanilla-50", "memcached vanilla-50", {"Target QPS": 300000, "Actual QPS": 299955.3, "Average Read Latency": 101.6, "Median Read Latency": 94.7, "Tail Read Latency": 185.3, "Average Update Latency": 105.6, "Median Update Latency": 98.2, "Tail Update Latency": 195.5}], ["forall-03", "memcached forall-03", {"Target QPS": 800000, "Actual QPS": 548681.8, "Average Read Latency": 14767.8, "Median Read Latency": 14551.7, "Tail Read Latency": 26767.3, "Average Update Latency": 14971.7, "Median Update Latency": 14572.2, "Tail Update Latency": 28569.4}], ["vanilla-05", "memcached vanilla-05", {"Target QPS": 600000, "Actual QPS": 555752.9, "Average Read Latency": 11281.4, "Median Read Latency": 6958.2, "Tail Read Latency": 228269.2, "Average Update Latency": 10101.9, "Median Update Latency": 7548.8, "Tail Update Latency": 226009.4}], ["forall-10", "memcached forall-10", {"Target QPS": 600000, "Actual QPS": 554812.9, "Average Read Latency": 15363.8, "Median Read Latency": 13042.6, "Tail Read Latency": 50422.9, "Average Update Latency": 16288.5, "Median Update Latency": 13047.3, "Tail Update Latency": 93654.7}], ["fibre-03", "memcached fibre-03", {"Target QPS": 300000, "Actual QPS": 300233.3, "Average Read Latency": 162.3, "Median Read Latency": 106.6, "Tail Read Latency": 391.9, "Average Update Latency": 149.3, "Median Update Latency": 110.5, "Tail Update Latency": 326.0}], ["fibre-05", "memcached fibre-05", {"Target QPS": 400000, "Actual QPS": 400451.2, "Average Read Latency": 481.7, "Median Read Latency": 122.4, "Tail Read Latency": 8950.9, "Average Update Latency": 613.7, "Median Update Latency": 125.0, "Tail Update Latency": 11722.6}], ["vanilla-05", "memcached vanilla-05", {"Target QPS": 400000, "Actual QPS": 400248.2, "Average Read Latency": 117.9, "Median Read Latency": 102.6, "Tail Read Latency": 313.0, "Average Update Latency": 125.5, "Median Update Latency": 107.1, "Tail Update Latency": 319.9}], ["fibre-10", "memcached fibre-10", {"Target QPS": 300000, "Actual QPS": 300152.1, "Average Read Latency": 148.1, "Median Read Latency": 99.7, "Tail Read Latency": 655.4, "Average Update Latency": 182.8, "Median Update Latency": 103.1, "Tail Update Latency": 1915.3}], ["vanilla-50", "memcached vanilla-50", {"Target QPS": 100000, "Actual QPS": 100197.2, "Average Read Latency": 89.6, "Median Read Latency": 87.1, "Tail Read Latency": 136.6, "Average Update Latency": 95.9, "Median Update Latency": 94.0, "Tail Update Latency": 141.3}], ["forall-05", "memcached forall-05", {"Target QPS": 200000, "Actual QPS": 200338.3, "Average Read Latency": 99.9, "Median Read Latency": 94.3, "Tail Read Latency": 198.9, "Average Update Latency": 104.7, "Median Update Latency": 98.8, "Tail Update Latency": 211.3}], ["fibre-03", "memcached fibre-03", {"Target QPS": 300000, "Actual QPS": 300203.9, "Average Read Latency": 138.7, "Median Read Latency": 105.3, "Tail Read Latency": 410.4, "Average Update Latency": 151.6, "Median Update Latency": 108.7, "Tail Update Latency": 348.0}], ["fibre-10", "memcached fibre-10", {"Target QPS": 600000, "Actual QPS": 513762.9, "Average Read Latency": 20017.4, "Median Read Latency": 13956.1, "Tail Read Latency": 238947.8, "Average Update Latency": 20998.7, "Median Update Latency": 14147.1, "Tail Update Latency": 239873.0}], ["forall-10", "memcached forall-10", {"Target QPS": 200000, "Actual QPS": 200087.8, "Average Read Latency": 102.7, "Median Read Latency": 96.0, "Tail Read Latency": 210.9, "Average Update Latency": 107.8, "Median Update Latency": 100.9, "Tail Update Latency": 231.9}], ["vanilla-50", "memcached vanilla-50", {"Target QPS": 400000, "Actual QPS": 400297.7, "Average Read Latency": 125.9, "Median Read Latency": 106.9, "Tail Read Latency": 301.7, "Average Update Latency": 128.5, "Median Update Latency": 110.1, "Tail Update Latency": 317.6}], ["vanilla-03", "memcached vanilla-03", {"Target QPS": 200000, "Actual QPS": 200377.8, "Average Read Latency": 87.3, "Median Read Latency": 84.4, "Tail Read Latency": 134.4, "Average Update Latency": 91.2, "Median Update Latency": 88.1, "Tail Update Latency": 144.0}], ["fibre-10", "memcached fibre-10", {"Target QPS": 100000, "Actual QPS": 100148.9, "Average Read Latency": 93.2, "Median Read Latency": 91.7, "Tail Read Latency": 139.1, "Average Update Latency": 98.1, "Median Update Latency": 96.4, "Tail Update Latency": 141.1}], ["forall-03", "memcached forall-03", {"Target QPS": 500000, "Actual QPS": 496583.6, "Average Read Latency": 8174.0, "Median Read Latency": 1955.3, "Tail Read Latency": 213148.3, "Average Update Latency": 7597.5, "Median Update Latency": 1080.4, "Tail Update Latency": 208611.0}], ["vanilla-05", "memcached vanilla-05", {"Target QPS": 500000, "Actual QPS": 499586.6, "Average Read Latency": 5764.5, "Median Read Latency": 460.0, "Tail Read Latency": 12519.6, "Average Update Latency": 5895.7, "Median Update Latency": 371.8, "Tail Update Latency": 12629.8}], ["fibre-03", "memcached fibre-03", {"Target QPS": 400000, "Actual QPS": 400538.5, "Average Read Latency": 310.2, "Median Read Latency": 123.3, "Tail Read Latency": 5618.0, "Average Update Latency": 437.2, "Median Update Latency": 127.5, "Tail Update Latency": 8481.1}], ["forall-50", "memcached forall-50", {"Target QPS": 400000, "Actual QPS": 400000.7, "Average Read Latency": 178.6, "Median Read Latency": 122.2, "Tail Read Latency": 577.3, "Average Update Latency": 177.1, "Median Update Latency": 126.8, "Tail Update Latency": 579.6}], ["forall-03", "memcached forall-03", {"Target QPS": 200000, "Actual QPS": 200182.8, "Average Read Latency": 100.0, "Median Read Latency": 94.7, "Tail Read Latency": 210.4, "Average Update Latency": 106.4, "Median Update Latency": 100.1, "Tail Update Latency": 223.4}], ["vanilla-03", "memcached vanilla-03", {"Target QPS": 100000, "Actual QPS": 100362.3, "Average Read Latency": 86.4, "Median Read Latency": 84.3, "Tail Read Latency": 128.2, "Average Update Latency": 92.7, "Median Update Latency": 90.8, "Tail Update Latency": 136.1}], ["forall-05", "memcached forall-05", {"Target QPS": 200000, "Actual QPS": 200239.5, "Average Read Latency": 105.5, "Median Read Latency": 97.7, "Tail Read Latency": 232.3, "Average Update Latency": 110.7, "Median Update Latency": 103.2, "Tail Update Latency": 256.2}], ["vanilla-10", "memcached vanilla-10", {"Target QPS": 600000, "Actual QPS": 567500.9, "Average Read Latency": 9787.7, "Median Read Latency": 4918.6, "Tail Read Latency": 224253.6, "Average Update Latency": 10084.1, "Median Update Latency": 4912.8, "Tail Update Latency": 223792.6}], ["vanilla-10", "memcached vanilla-10", {"Target QPS": 600000, "Actual QPS": 567401.0, "Average Read Latency": 12093.6, "Median Read Latency": 7584.0, "Tail Read Latency": 227011.3, "Average Update Latency": 12151.0, "Median Update Latency": 7849.4, "Tail Update Latency": 227527.1}], ["fibre-05", "memcached fibre-05", {"Target QPS": 100000, "Actual QPS": 100280.5, "Average Read Latency": 95.2, "Median Read Latency": 93.1, "Tail Read Latency": 145.3, "Average Update Latency": 100.3, "Median Update Latency": 97.9, "Tail Update Latency": 151.7}], ["fibre-05", "memcached fibre-05", {"Target QPS": 800000, "Actual QPS": 507832.5, "Average Read Latency": 25356.0, "Median Read Latency": 14150.2, "Tail Read Latency": 299156.2, "Average Update Latency": 25223.2, "Median Update Latency": 14075.7, "Tail Update Latency": 292415.6}], ["forall-03", "memcached forall-03", {"Target QPS": 200000, "Actual QPS": 200078.2, "Average Read Latency": 103.4, "Median Read Latency": 96.9, "Tail Read Latency": 213.4, "Average Update Latency": 108.2, "Median Update Latency": 102.4, "Tail Update Latency": 218.0}], ["vanilla-03", "memcached vanilla-03", {"Target QPS": 500000, "Actual QPS": 499485.4, "Average Read Latency": 5539.4, "Median Read Latency": 206.9, "Tail Read Latency": 12457.2, "Average Update Latency": 5141.3, "Median Update Latency": 295.9, "Tail Update Latency": 12363.4}], ["fibre-03", "memcached fibre-03", {"Target QPS": 600000, "Actual QPS": 513848.7, "Average Read Latency": 25447.7, "Median Read Latency": 17419.6, "Tail Read Latency": 246475.0, "Average Update Latency": 25704.2, "Median Update Latency": 17383.5, "Tail Update Latency": 250157.9}], ["fibre-50", "memcached fibre-50", {"Target QPS": 300000, "Actual QPS": 300236.0, "Average Read Latency": 119.1, "Median Read Latency": 98.7, "Tail Read Latency": 253.2, "Average Update Latency": 127.0, "Median Update Latency": 101.8, "Tail Update Latency": 278.7}], ["fibre-03", "memcached fibre-03", {"Target QPS": 200000, "Actual QPS": 200144.4, "Average Read Latency": 109.9, "Median Read Latency": 98.3, "Tail Read Latency": 185.2, "Average Update Latency": 122.4, "Median Update Latency": 102.1, "Tail Update Latency": 187.2}], ["fibre-50", "memcached fibre-50", {"Target QPS": 600000, "Actual QPS": 501622.5, "Average Read Latency": 25130.7, "Median Read Latency": 19197.1, "Tail Read Latency": 239144.8, "Average Update Latency": 25969.8, "Median Update Latency": 19290.2, "Tail Update Latency": 246584.3}], ["fibre-50", "memcached fibre-50", {"Target QPS": 400000, "Actual QPS": 399943.8, "Average Read Latency": 286.1, "Median Read Latency": 126.4, "Tail Read Latency": 3854.3, "Average Update Latency": 352.4, "Median Update Latency": 127.3, "Tail Update Latency": 5556.8}], ["vanilla-03", "memcached vanilla-03", {"Target QPS": 700000, "Actual QPS": 590538.8, "Average Read Latency": 21280.1, "Median Read Latency": 13138.4, "Tail Read Latency": 245956.1, "Average Update Latency": 21876.4, "Median Update Latency": 13239.3, "Tail Update Latency": 249978.9}], ["forall-50", "memcached forall-50", {"Target QPS": 400000, "Actual QPS": 400251.7, "Average Read Latency": 164.5, "Median Read Latency": 117.8, "Tail Read Latency": 524.7, "Average Update Latency": 167.2, "Median Update Latency": 123.0, "Tail Update Latency": 530.1}], ["forall-05", "memcached forall-05", {"Target QPS": 500000, "Actual QPS": 493271.3, "Average Read Latency": 7493.6, "Median Read Latency": 812.8, "Tail Read Latency": 207246.3, "Average Update Latency": 8184.9, "Median Update Latency": 809.5, "Tail Update Latency": 215555.9}], ["forall-50", "memcached forall-50", {"Target QPS": 200000, "Actual QPS": 200362.4, "Average Read Latency": 116.5, "Median Read Latency": 96.9, "Tail Read Latency": 204.6, "Average Update Latency": 118.6, "Median Update Latency": 102.2, "Tail Update Latency": 209.3}], ["fibre-10", "memcached fibre-10", {"Target QPS": 500000, "Actual QPS": 483419.8, "Average Read Latency": 13303.0, "Median Read Latency": 9585.5, "Tail Read Latency": 226038.8, "Average Update Latency": 14377.3, "Median Update Latency": 9468.2, "Tail Update Latency": 230538.4}], ["vanilla-05", "memcached vanilla-05", {"Target QPS": 700000, "Actual QPS": 583004.3, "Average Read Latency": 23129.1, "Median Read Latency": 14377.1, "Tail Read Latency": 236450.5, "Average Update Latency": 23524.7, "Median Update Latency": 14233.4, "Tail Update Latency": 242959.1}], ["vanilla-10", "memcached vanilla-10", {"Target QPS": 700000, "Actual QPS": 586711.4, "Average Read Latency": 20524.2, "Median Read Latency": 12918.9, "Tail Read Latency": 239079.0, "Average Update Latency": 20465.5, "Median Update Latency": 12685.6, "Tail Update Latency": 238025.4}], ["forall-50", "memcached forall-50", {"Target QPS": 100000, "Actual QPS": 100108.2, "Average Read Latency": 108.8, "Median Read Latency": 93.3, "Tail Read Latency": 152.4, "Average Update Latency": 145.2, "Median Update Latency": 100.4, "Tail Update Latency": 181.8}], ["forall-50", "memcached forall-50", {"Target QPS": 600000, "Actual QPS": 542466.3, "Average Read Latency": 14992.6, "Median Read Latency": 13428.8, "Tail Read Latency": 48820.9, "Average Update Latency": 16068.3, "Median Update Latency": 13479.3, "Tail Update Latency": 94086.5}], ["vanilla-03", "memcached vanilla-03", {"Target QPS": 400000, "Actual QPS": 400183.3, "Average Read Latency": 116.4, "Median Read Latency": 103.7, "Tail Read Latency": 297.4, "Average Update Latency": 118.8, "Median Update Latency": 105.9, "Tail Update Latency": 291.7}], ["fibre-05", "memcached fibre-05", {"Target QPS": 600000, "Actual QPS": 509527.1, "Average Read Latency": 24353.3, "Median Read Latency": 16750.3, "Tail Read Latency": 236780.0, "Average Update Latency": 25152.5, "Median Update Latency": 16585.5, "Tail Update Latency": 249339.2}], ["vanilla-10", "memcached vanilla-10", {"Target QPS": 800000, "Actual QPS": 581395.9, "Average Read Latency": 33017.2, "Median Read Latency": 30304.2, "Tail Read Latency": 93752.0, "Average Update Latency": 32034.6, "Median Update Latency": 30695.7, "Tail Update Latency": 88616.3}], ["fibre-05", "memcached fibre-05", {"Target QPS": 500000, "Actual QPS": 484789.5, "Average Read Latency": 19290.6, "Median Read Latency": 13917.3, "Tail Read Latency": 229120.8, "Average Update Latency": 20124.2, "Median Update Latency": 13726.0, "Tail Update Latency": 234758.9}], ["forall-50", "memcached forall-50", {"Target QPS": 300000, "Actual QPS": 300134.1, "Average Read Latency": 120.3, "Median Read Latency": 107.1, "Tail Read Latency": 298.4, "Average Update Latency": 123.4, "Median Update Latency": 111.7, "Tail Update Latency": 315.2}], ["fibre-10", "memcached fibre-10", {"Target QPS": 200000, "Actual QPS": 200180.0, "Average Read Latency": 103.3, "Median Read Latency": 93.8, "Tail Read Latency": 175.8, "Average Update Latency": 110.6, "Median Update Latency": 97.0, "Tail Update Latency": 195.5}], ["vanilla-05", "memcached vanilla-05", {"Target QPS": 400000, "Actual QPS": 400483.3, "Average Read Latency": 114.9, "Median Read Latency": 103.5, "Tail Read Latency": 271.8, "Average Update Latency": 119.2, "Median Update Latency": 107.2, "Tail Update Latency": 273.5}], ["vanilla-10", "memcached vanilla-10", {"Target QPS": 300000, "Actual QPS": 300183.2, "Average Read Latency": 102.2, "Median Read Latency": 95.4, "Tail Read Latency": 191.8, "Average Update Latency": 104.3, "Median Update Latency": 98.2, "Tail Update Latency": 192.7}], ["fibre-05", "memcached fibre-05", {"Target QPS": 700000, "Actual QPS": 501004.9, "Average Read Latency": 23405.5, "Median Read Latency": 14056.8, "Tail Read Latency": 248987.9, "Average Update Latency": 23970.6, "Median Update Latency": 14218.9, "Tail Update Latency": 255571.2}], ["forall-05", "memcached forall-05", {"Target QPS": 700000, "Actual QPS": 557739.7, "Average Read Latency": 15137.5, "Median Read Latency": 13248.4, "Tail Read Latency": 30152.0, "Average Update Latency": 16433.8, "Median Update Latency": 13263.5, "Tail Update Latency": 32184.0}], ["forall-10", "memcached forall-10", {"Target QPS": 100000, "Actual QPS": 100299.4, "Average Read Latency": 98.6, "Median Read Latency": 94.5, "Tail Read Latency": 153.4, "Average Update Latency": 102.3, "Median Update Latency": 100.1, "Tail Update Latency": 157.3}], ["forall-50", "memcached forall-50", {"Target QPS": 500000, "Actual QPS": 498217.7, "Average Read Latency": 6993.8, "Median Read Latency": 823.6, "Tail Read Latency": 19185.7, "Average Update Latency": 7045.5, "Median Update Latency": 788.3, "Tail Update Latency": 198748.8}], ["forall-03", "memcached forall-03", {"Target QPS": 300000, "Actual QPS": 300496.1, "Average Read Latency": 121.6, "Median Read Latency": 108.0, "Tail Read Latency": 306.3, "Average Update Latency": 124.5, "Median Update Latency": 111.7, "Tail Update Latency": 292.5}], ["forall-10", "memcached forall-10", {"Target QPS": 800000, "Actual QPS": 567804.3, "Average Read Latency": 14394.3, "Median Read Latency": 13540.3, "Tail Read Latency": 27479.7, "Average Update Latency": 14514.9, "Median Update Latency": 13583.9, "Tail Update Latency": 27703.7}], ["forall-03", "memcached forall-03", {"Target QPS": 400000, "Actual QPS": 400374.0, "Average Read Latency": 157.9, "Median Read Latency": 120.9, "Tail Read Latency": 500.0, "Average Update Latency": 176.7, "Median Update Latency": 125.6, "Tail Update Latency": 525.8}], ["vanilla-10", "memcached vanilla-10", {"Target QPS": 700000, "Actual QPS": 591944.7, "Average Read Latency": 19579.0, "Median Read Latency": 12737.3, "Tail Read Latency": 228331.0, "Average Update Latency": 20965.8, "Median Update Latency": 12871.9, "Tail Update Latency": 235805.9}], ["forall-50", "memcached forall-50", {"Target QPS": 800000, "Actual QPS": 554497.3, "Average Read Latency": 14399.2, "Median Read Latency": 13489.5, "Tail Read Latency": 27769.2, "Average Update Latency": 14513.3, "Median Update Latency": 13507.0, "Tail Update Latency": 28472.9}], ["forall-05", "memcached forall-05", {"Target QPS": 600000, "Actual QPS": 560009.8, "Average Read Latency": 17097.1, "Median Read Latency": 10981.0, "Tail Read Latency": 228700.3, "Average Update Latency": 17390.8, "Median Update Latency": 11019.3, "Tail Update Latency": 228423.6}], ["vanilla-10", "memcached vanilla-10", {"Target QPS": 100000, "Actual QPS": 100371.2, "Average Read Latency": 90.2, "Median Read Latency": 87.2, "Tail Read Latency": 136.1, "Average Update Latency": 95.3, "Median Update Latency": 93.3, "Tail Update Latency": 140.7}], ["forall-05", "memcached forall-05", {"Target QPS": 300000, "Actual QPS": 300497.5, "Average Read Latency": 119.0, "Median Read Latency": 106.3, "Tail Read Latency": 277.0, "Average Update Latency": 123.3, "Median Update Latency": 110.9, "Tail Update Latency": 291.2}], ["forall-03", "memcached forall-03", {"Target QPS": 700000, "Actual QPS": 570966.7, "Average Read Latency": 14108.6, "Median Read Latency": 13417.2, "Tail Read Latency": 27094.5, "Average Update Latency": 14240.9, "Median Update Latency": 13416.6, "Tail Update Latency": 27842.0}], ["vanilla-03", "memcached vanilla-03", {"Target QPS": 400000, "Actual QPS": 400208.5, "Average Read Latency": 140.7, "Median Read Latency": 106.6, "Tail Read Latency": 613.3, "Average Update Latency": 142.6, "Median Update Latency": 109.7, "Tail Update Latency": 593.9}], ["fibre-05", "memcached fibre-05", {"Target QPS": 800000, "Actual QPS": 499851.3, "Average Read Latency": 23810.7, "Median Read Latency": 12976.7, "Tail Read Latency": 312200.9, "Average Update Latency": 23245.6, "Median Update Latency": 12979.2, "Tail Update Latency": 297088.1}], ["vanilla-50", "memcached vanilla-50", {"Target QPS": 200000, "Actual QPS": 200257.1, "Average Read Latency": 89.3, "Median Read Latency": 86.2, "Tail Read Latency": 137.0, "Average Update Latency": 92.9, "Median Update Latency": 90.1, "Tail Update Latency": 141.3}], ["fibre-05", "memcached fibre-05", {"Target QPS": 700000, "Actual QPS": 508273.2, "Average Read Latency": 21468.4, "Median Read Latency": 12346.2, "Tail Read Latency": 341454.9, "Average Update Latency": 22664.4, "Median Update Latency": 12156.8, "Tail Update Latency": 350233.6}], ["vanilla-03", "memcached vanilla-03", {"Target QPS": 600000, "Actual QPS": 567127.5, "Average Read Latency": 10341.4, "Median Read Latency": 3719.6, "Tail Read Latency": 225817.0, "Average Update Latency": 10631.8, "Median Update Latency": 3565.4, "Tail Update Latency": 228918.9}], ["forall-05", "memcached forall-05", {"Target QPS": 500000, "Actual QPS": 496460.7, "Average Read Latency": 6854.4, "Median Read Latency": 836.1, "Tail Read Latency": 31460.1, "Average Update Latency": 6655.6, "Median Update Latency": 680.5, "Tail Update Latency": 18883.1}], ["forall-05", "memcached forall-05", {"Target QPS": 300000, "Actual QPS": 300223.4, "Average Read Latency": 127.1, "Median Read Latency": 108.1, "Tail Read Latency": 306.3, "Average Update Latency": 129.9, "Median Update Latency": 112.2, "Tail Update Latency": 299.3}], ["fibre-05", "memcached fibre-05", {"Target QPS": 100000, "Actual QPS": 100311.6, "Average Read Latency": 93.1, "Median Read Latency": 91.2, "Tail Read Latency": 137.3, "Average Update Latency": 98.1, "Median Update Latency": 95.9, "Tail Update Latency": 142.7}], ["fibre-03", "memcached fibre-03", {"Target QPS": 100000, "Actual QPS": 100208.6, "Average Read Latency": 106.7, "Median Read Latency": 95.3, "Tail Read Latency": 155.2, "Average Update Latency": 115.3, "Median Update Latency": 100.7, "Tail Update Latency": 169.1}], ["fibre-50", "memcached fibre-50", {"Target QPS": 500000, "Actual QPS": 481032.0, "Average Read Latency": 15843.1, "Median Read Latency": 9799.0, "Tail Read Latency": 232564.2, "Average Update Latency": 14998.7, "Median Update Latency": 9709.7, "Tail Update Latency": 231557.6}], ["fibre-10", "memcached fibre-10", {"Target QPS": 300000, "Actual QPS": 300306.8, "Average Read Latency": 111.0, "Median Read Latency": 100.0, "Tail Read Latency": 230.7, "Average Update Latency": 114.4, "Median Update Latency": 102.5, "Tail Update Latency": 227.1}], ["fibre-05", "memcached fibre-05", {"Target QPS": 200000, "Actual QPS": 200142.5, "Average Read Latency": 101.6, "Median Read Latency": 97.1, "Tail Read Latency": 182.8, "Average Update Latency": 104.9, "Median Update Latency": 100.4, "Tail Update Latency": 185.1}], ["fibre-05", "memcached fibre-05", {"Target QPS": 300000, "Actual QPS": 300553.8, "Average Read Latency": 108.9, "Median Read Latency": 97.7, "Tail Read Latency": 224.0, "Average Update Latency": 121.1, "Median Update Latency": 100.6, "Tail Update Latency": 230.7}], ["vanilla-05", "memcached vanilla-05", {"Target QPS": 500000, "Actual QPS": 498863.1, "Average Read Latency": 5511.9, "Median Read Latency": 266.4, "Tail Read Latency": 12358.0, "Average Update Latency": 5555.9, "Median Update Latency": 356.1, "Tail Update Latency": 12376.6}], ["forall-05", "memcached forall-05", {"Target QPS": 100000, "Actual QPS": 100445.8, "Average Read Latency": 99.7, "Median Read Latency": 95.2, "Tail Read Latency": 153.1, "Average Update Latency": 108.2, "Median Update Latency": 102.0, "Tail Update Latency": 161.2}], ["forall-05", "memcached forall-05", {"Target QPS": 100000, "Actual QPS": 100211.9, "Average Read Latency": 97.8, "Median Read Latency": 93.2, "Tail Read Latency": 152.8, "Average Update Latency": 106.1, "Median Update Latency": 100.7, "Tail Update Latency": 171.7}], ["forall-10", "memcached forall-10", {"Target QPS": 500000, "Actual QPS": 493410.2, "Average Read Latency": 8782.3, "Median Read Latency": 3870.8, "Tail Read Latency": 220042.9, "Average Update Latency": 8010.1, "Median Update Latency": 4518.4, "Tail Update Latency": 203017.0}], ["vanilla-03", "memcached vanilla-03", {"Target QPS": 300000, "Actual QPS": 300175.0, "Average Read Latency": 101.1, "Median Read Latency": 94.2, "Tail Read Latency": 187.8, "Average Update Latency": 104.1, "Median Update Latency": 96.9, "Tail Update Latency": 190.1}], ["vanilla-10", "memcached vanilla-10", {"Target QPS": 400000, "Actual QPS": 400419.2, "Average Read Latency": 165.7, "Median Read Latency": 113.2, "Tail Read Latency": 742.6, "Average Update Latency": 169.7, "Median Update Latency": 115.2, "Tail Update Latency": 753.7}], ["vanilla-50", "memcached vanilla-50", {"Target QPS": 600000, "Actual QPS": 562187.4, "Average Read Latency": 11826.2, "Median Read Latency": 6992.8, "Tail Read Latency": 233008.4, "Average Update Latency": 11652.2, "Median Update Latency": 5357.3, "Tail Update Latency": 232596.2}], ["forall-10", "memcached forall-10", {"Target QPS": 300000, "Actual QPS": 299860.1, "Average Read Latency": 108.4, "Median Read Latency": 97.7, "Tail Read Latency": 254.3, "Average Update Latency": 112.7, "Median Update Latency": 102.6, "Tail Update Latency": 261.8}], ["vanilla-03", "memcached vanilla-03", {"Target QPS": 800000, "Actual QPS": 587202.2, "Average Read Latency": 31625.7, "Median Read Latency": 31009.8, "Tail Read Latency": 72087.5, "Average Update Latency": 31891.9, "Median Update Latency": 31211.7, "Tail Update Latency": 73411.3}], ["vanilla-10", "memcached vanilla-10", {"Target QPS": 200000, "Actual QPS": 200347.5, "Average Read Latency": 90.7, "Median Read Latency": 87.4, "Tail Read Latency": 143.4, "Average Update Latency": 95.5, "Median Update Latency": 92.4, "Tail Update Latency": 147.4}], ["vanilla-50", "memcached vanilla-50", {"Target QPS": 700000, "Actual QPS": 588863.2, "Average Read Latency": 21018.0, "Median Read Latency": 12493.8, "Tail Read Latency": 245429.0, "Average Update Latency": 19455.5, "Median Update Latency": 12660.3, "Tail Update Latency": 234455.2}], ["fibre-10", "memcached fibre-10", {"Target QPS": 500000, "Actual QPS": 481437.2, "Average Read Latency": 17571.8, "Median Read Latency": 11447.7, "Tail Read Latency": 233279.9, "Average Update Latency": 17895.6, "Median Update Latency": 11361.0, "Tail Update Latency": 231800.2}], ["forall-03", "memcached forall-03", {"Target QPS": 100000, "Actual QPS": 100178.6, "Average Read Latency": 102.4, "Median Read Latency": 93.4, "Tail Read Latency": 176.3, "Average Update Latency": 104.1, "Median Update Latency": 100.3, "Tail Update Latency": 180.7}], ["fibre-03", "memcached fibre-03", {"Target QPS": 600000, "Actual QPS": 509451.1, "Average Read Latency": 26833.5, "Median Read Latency": 20512.5, "Tail Read Latency": 248912.5, "Average Update Latency": 26959.9, "Median Update Latency": 20108.2, "Tail Update Latency": 255770.8}], ["fibre-10", "memcached fibre-10", {"Target QPS": 700000, "Actual QPS": 492843.5, "Average Read Latency": 25377.5, "Median Read Latency": 14857.4, "Tail Read Latency": 336408.8, "Average Update Latency": 26147.1, "Median Update Latency": 14868.7, "Tail Update Latency": 308630.0}], ["fibre-03", "memcached fibre-03", {"Target QPS": 500000, "Actual QPS": 481085.4, "Average Read Latency": 14389.4, "Median Read Latency": 9696.1, "Tail Read Latency": 229417.2, "Average Update Latency": 14718.7, "Median Update Latency": 9770.5, "Tail Update Latency": 228572.0}], ["fibre-05", "memcached fibre-05", {"Target QPS": 300000, "Actual QPS": 300385.8, "Average Read Latency": 122.6, "Median Read Latency": 99.5, "Tail Read Latency": 260.0, "Average Update Latency": 177.8, "Median Update Latency": 102.3, "Tail Update Latency": 316.7}]]
  • doc/theses/thierry_delisle_PhD/thesis/data/swbsrv.25gb.cfa

    r741e22c r71cf630  
    1 Run and Block are the number of processes in those states.
    2 User, Sys and Wait are the average CPU utilization on the server.
    3 Qlen is the average established connection queue length.
    4 PktsIn packet arrival rate and PktsOut the packet departure rate
    5 at the server (in packets/second).
    6 KB/s is the average disk throughput in Kilobytes/second.
    7 SPS is the average number of disk seeks per second.
    8 (Except where stated otherwise, each quantity is the average of
    9  approx. 20 samples per test run.)
    10 
    11          _Ready_Queue    ______CPU_Util_____     Syscl Lstn  ________Network_____________   _Disk_I/O_    QDrops  QDrops/s
    12          Run    Block    Wait    User    Sys    1/sec Qlen    PktsIn   PktsOut     Rxmit   KB/s   SPS
    13 10000      2        0       0      24     71        0   -1   51587.8      -0.0 18446744073709551615     -1    -1         3       0.0
    14 15000      3        0       0      33     61        0   -1  103208.6      -0.0 18446744073709551615     -1    -1         1       0.0
    15 20000      3        1       0      41     52        0   -1  103302.6      -0.0 18446744073709551615     -1    -1         0       0.0
    16 25000      4        1       0      49     42        0   -1  155151.5      -0.0 18446744073709551615     -1    -1         3       0.0
    17 30000      5        0       0      54     37        0   -1  154927.2      -0.0 18446744073709551615     -1    -1         2       0.0
    18 35000      5        1       0      59     31        0   -1  206649.5      -0.0 18446744073709551615     -1    -1         0       0.0
    19 40000      6        0       0      64     26        0   -1  206362.8      -0.0 18446744073709551615     -1    -1         2       0.0
    20 45000      6        0       0      68     22        0   -1  257603.9      -0.0 18446744073709551615     -1    -1         0       0.0
    21 50000      7        1       0      71     19        0   -1  256337.3      -0.0 18446744073709551615     -1    -1         1       0.0
    22 52500      7        0       0      72     19        0   -1  307467.8      -0.0 18446744073709551615     -1    -1         1       0.0
    23 55000      7        0       0      73     18        0   -1  306704.5      -0.0 18446744073709551615     -1    -1         0       0.0
    24 57500      5        1       0      55     39        0   -1  222251.6      -0.0 18446744073709551615     -1    -1   1404719    4148.9
    25 60000      1        1       0       4     95        0   -1   26951.8      -0.0 18446744073709551615     -1    -1   6607576   20336.9
    26 62500      0        1       0       3     97        0   -1   19908.1      -0.0 18446744073709551615     -1    -1   6783394   21719.6
    27 65000      0        0       0       2     97        0   -1   19863.1      -0.0 18446744073709551615     -1    -1   8051709   23061.5
    28 70000      0        0       0       3     97        0   -1   17097.3      -0.0 18446744073709551615     -1    -1   8184302   25190.2
    29 
    30 The first five columns are the actual request rate, min, avg, max reply
    31 rate and the stddev of the reply rate, the last four columns being computed
    32 across multiple clients.
    33 Response time components are: connect, first response, data transfer times,
    34 followed by the aggregated values (across multiple clients) for mean
    35 connection time (Total), standard deviation (Std), median (Med - bogus aggregate),
    36 followed by the min and max response time measured across all clients.
    37 Data is the network bandwidth consumed by HTTP payload (headers & data).
    38 Err is the percentage of requests resulting in a network error on the client.
    39 Reqs is the maximum number of outstanding requests on the client.
    40 TSmpl is the total number of reply rate samples.
    41 RSmpl is the average number of response times samples
    42 .
     1Frankenstein results
    432
    443Combined                      connection times
    454    Rate    Min   Mean    Max   Std    Conn   Resp    Xfer  Total    Std    Med    Min    Max   Data   Errs   Reqs ActRate ActRate ErrRate  Samples
    465   req/s ______replies/s___________  __________________msec__________________________________   Mb/s      %         creq/s   req/s   err/s  TSmpl RSmpl
    47  10000.0   1277   9512  10515  1768     0.2    0.2     0.3 8022.0 8022.0   7722    0.2  18120 1137.6    0.0  11897  1302.1  9492.2     0.0 1060  26996
    48  15000.0   1825  14433  15731  2364     0.2    0.2     0.3 8022.1 9825.0   7722    0.3  18125 1727.1    0.0  17641  1977.0 14412.6     0.0 1397  53992
    49  20000.0   2232  18974  20836  3646     0.2    0.2     0.3 8022.3 12684.2   7722    0.2  18130 2271.8    0.0  23315  2600.4 18956.2     0.0 1063  53992
    50  25000.0   2791  23932  26010  4184     0.2    0.3     0.3 8022.5 13100.4   7722    0.3  18163 2863.5    0.0  28891  3277.9 23894.0     0.0 1264  80988
    51  30000.0   3275  28462  30908  5452     0.2    0.3     0.3 8022.8 15361.8   7722    0.2  18124 3405.3    0.0  34502  3897.9 28414.5     0.0 1063  80988
    52  35000.0   3649  33392  35934  6055     0.2    0.3     0.4 8023.1 15535.7   7722    0.3  18131 3998.3    0.0  40048  4577.0 33363.2     0.0 1208 107984
    53  40000.0   3998  37882  41092  7407     0.3    0.4     0.4 8023.5 17485.3   7723    0.3  21106 4538.3    0.0  45592  5195.3 37870.1     0.0 1065 107984
    54  45000.0   4490  42842  45986  7951     0.3    0.4     0.4 8024.0 17577.6   7723    0.3  21104 5132.4    0.0  51081  5875.1 42827.3     0.0 1177 134979
    55  50000.0   4969  47353  51109  9252     0.3    0.5     0.5 8025.0 19322.9   7724    0.3  21106 5672.3    0.0  56620  6493.2 47331.3     0.0 1065 134979
    56  52500.0   5243  50049  53503  9147     0.3    0.6     0.5 8026.2 19379.5   7725    0.3  18169 5994.9    0.0  59383  6862.4 50025.1     0.0 1209 161975
    57  55000.0   5773  52387  56178  9626     0.3    0.8     0.6 8027.9 20976.5   7726    0.3  18161 6266.8    0.0  62196  7173.2 52290.6     0.0 1155 161975
    58  57500.0      0  39873  58547 25800     1.1   54.3    20.5 8425.6 25937.3   7739    0.3  50488 4768.6   29.2 140969  7654.4 40649.3  2235.6 1083 118439
    59  60000.0      0   2724  56647 10229    89.0  710.7   301.7 12505.1 87879.3  11059    0.3  47890  318.3   96.0 147374  7977.6  3479.2  7654.8 1039  10531
    60  62500.0      0   1381  37905  5861   264.8 1252.2   532.0 13969.0 111405.4  14628    0.3  45325  157.3   98.2 148024  8298.8  2168.0  8148.0  998   6657
    61  65000.0      0    814  28032  3948   304.3 1867.3   543.0 13461.1 126895.7  15062    0.2  45961   91.2   99.0 144054  8660.8  1561.5  8570.8 1116   5190
    62  70000.0      0    284   9397  1356   302.6 3702.9  1319.6 14025.2 185599.6  13013    0.3  44400   26.5   99.6 124641  9307.2   997.8  9269.7 1039   2440
    63 
    64 
    65 Client 1.1                      connection times
    66     Rate    Min   Mean    Max   Std    Conn   Resp    Xfer  Total    Std    Med    Min    Max   Data   Errs   Reqs ActRate ActRate ErrRate  Samples
    67    req/s ______replies/s___________  __________________msec__________________________________   Mb/s      %         creq/s   req/s   err/s  TSmpl RSmpl
    68    625.0     86    597    654   114     0.2    0.2     0.3 8011.7 6151.1   7722    0.3  18111   71.8    0.0    734    81.9   597.0     0.0   66  26996
    69    937.5    131    906    983   149     0.2    0.2     0.3 8011.9 6151.1   7722    0.3  18112  108.9    0.0   1089   124.2   905.4     0.0   87  53992
    70   1250.0     95   1177   1298   258     0.2    0.2     0.3 8012.1 6151.3   7722    0.3  18124  143.3    0.0   1445   163.3  1190.6     0.0   67  53992
    71   1562.5    217   1497   1624   270     0.2    0.3     0.3 8012.3 6151.4   7722    0.3  18143  180.3    0.0   1791   205.5  1498.3     0.0   79  80988
    72   1875.0    143   1766   1937   382     0.2    0.3     0.3 8012.5 6151.5   7722    0.3  18118  214.4    0.0   2139   244.4  1781.6     0.0   67  80988
    73   2187.5    170   2075   2248   418     0.2    0.3     0.3 8012.8 6151.6   7722    0.3  18117  251.5    0.0   2493   286.7  2090.2     0.0   76 107984
    74   2500.0    195   2355   2580   503     0.3    0.4     0.4 8013.3 6151.9   7722    0.3  18141  285.5    0.0   2841   325.5  2372.5     0.0   67 107984
    75   2812.5    215   2664   2868   539     0.3    0.4     0.4 8013.8 6152.3   7724    0.3  18131  322.7    0.0   3195   367.9  2681.7     0.0   74 134979
    76   3125.0    239   2943   3216   625     0.3    0.5     0.4 8014.7 6152.8   7724    0.3  18138  356.6    0.0   3547   406.6  2963.7     0.0   67 134979
    77   3281.2    252   3113   3366   618     0.3    0.6     0.5 8015.9 6153.6   7724    0.3  18137  376.8    0.0   3721   429.6  3131.4     0.0   76 161975
    78   3437.5    172   3241   3532   688     0.3    0.8     0.6 8017.8 6154.8   7726    0.3  18160  393.9    0.0   3900   449.0  3273.2     0.0   73 161975
    79   3593.8      0   2485   3670  1615     1.1   54.7    20.6 8425.5 6871.0   7738    0.3  47400  299.7   29.2   8822   478.4  2542.4   108.9   68 118436
    80   3750.0      0    175   3385   652    90.9  714.4   304.8 12687.2 11068.7  11082    0.3  46223   20.4   96.0   9250   498.6   219.4   357.7   65  10531
    81   3906.2      0     90   2409   361   283.3 1245.2   520.0 14114.9 11275.0  15202    0.3  44068   10.1   98.2   9299   518.6   137.1   366.0   63   6643
    82   4062.5      0     55   1820   254   313.0 1869.6   543.1 13640.9 10448.2  15616    0.3  44025    6.0   99.0   9051   541.3    98.3   430.3   70   5188
    83   4375.0      0     22    564    98   299.1 3694.9  1271.5 14114.9 11009.1  13014    0.3  44400    1.8   99.6   7843   581.7    62.5   433.1   65   2396
    84 
    85 
    86 Client 1.2                      connection times
    87     Rate    Min   Mean    Max   Std    Conn   Resp    Xfer  Total    Std    Med    Min    Max   Data   Errs   Reqs ActRate ActRate ErrRate  Samples
    88    req/s ______replies/s___________  __________________msec__________________________________   Mb/s      %         creq/s   req/s   err/s  TSmpl RSmpl
    89    625.0     40    589    657   132     0.2    0.2     0.3 8020.8 6156.2   7722    0.3  18116   70.7    0.0    745    81.2   592.0     0.0   67  26996
    90    937.5     59    896    978   173     0.2    0.2     0.3 8020.9 6156.2   7722    0.3  18116  107.5    0.0   1087   123.4   899.7     0.0   88  53992
    91   1250.0     86   1177   1292   258     0.2    0.3     0.3 8021.2 6156.3   7722    0.3  18121  141.4    0.0   1433   162.4  1183.6     0.0   67  53992
    92   1562.5    214   1496   1609   269     0.2    0.3     0.3 8021.4 6156.4   7722    0.3  18146  178.3    0.0   1798   204.8  1492.6     0.0   79  80988
    93   1875.0    136   1766   1927   381     0.2    0.3     0.3 8021.6 6156.5   7722    0.3  18124  212.1    0.0   2150   243.5  1775.2     0.0   67  80988
    94   2187.5    163   2075   2234   418     0.2    0.3     0.4 8021.9 6156.7   7722    0.3  18124  249.1    0.0   2498   286.0  2084.8     0.0   76 107984
    95   2500.0    189   2354   2557   503     0.3    0.4     0.4 8022.4 6157.0   7722    0.3  18141  282.7    0.0   2844   324.7  2366.7     0.0   67 107984
    96   2812.5    214   2664   2879   539     0.3    0.4     0.4 8022.8 6157.3   7724    0.3  18134  319.8    0.0   3193   367.2  2676.8     0.0   74 134979
    97   3125.0    240   2943   3183   626     0.3    0.5     0.5 8023.7 6157.8   7724    0.3  18134  353.4    0.0   3532   405.8  2958.5     0.0   67 134979
    98   3281.2    254   3112   3330   618     0.3    0.6     0.5 8025.0 6158.7   7724    0.3  18150  373.5    0.0   3712   429.0  3127.0     0.0   76 161975
    99   3437.5    182   3241   3502   688     0.4    0.8     0.6 8026.9 6159.9   7726    0.3  18156  390.5    0.0   3893   448.4  3268.7     0.0   73 161975
    100   3593.8      0   2483   3655  1614     1.2   54.9    20.4 8424.7 6870.6   7740    0.3  47223  297.0   29.2   8827   478.4  2540.7   108.2   68 118448
    101   3750.0      0    174   3420   643    83.8  720.1   300.9 12571.2 11151.3  11076    0.3  46735   19.7   96.0   9249   498.6   218.0   355.4   65  10544
    102   3906.2      0     88   2401   354   275.3 1271.3   516.0 13886.4 11148.3  14654    0.3  44190    9.4   98.2   9271   518.6   135.0   363.6   63   6658
    103   4062.5      0     53   1671   243   306.0 1882.4   521.9 13073.7 10541.3  14536    0.3  42533    5.1   98.9   8929   541.3    96.6   427.3   70   5172
    104   4375.0      0     21    584    96   293.9 3695.9  1336.6 14068.7 11450.8  13014    0.3  44027    1.6   99.6   7787   581.7    62.3   430.2   65   2400
    105 
    106 
    107 Client 2.1                      connection times
    108     Rate    Min   Mean    Max   Std    Conn   Resp    Xfer  Total    Std    Med    Min    Max   Data   Errs   Reqs ActRate ActRate ErrRate  Samples
    109    req/s ______replies/s___________  __________________msec__________________________________   Mb/s      %         creq/s   req/s   err/s  TSmpl RSmpl
    110    625.0     86    597    669   107     0.2    0.2     0.3 8021.7 6154.5   7722    0.3  18113   72.4    0.0    744    82.2   599.0     0.0   66  26996
    111    937.5    129    906    978   140     0.2    0.2     0.3 8021.8 6154.6   7722    0.3  18115  109.7    0.0   1092   124.5   907.6     0.0   87  53992
    112   1250.0    172   1194   1296   211     0.2    0.2     0.3 8022.0 6154.7   7722    0.3  18118  144.2    0.0   1457   163.7  1193.6     0.0   66  53992
    113   1562.5    214   1497   1618   261     0.2    0.3     0.3 8022.2 6154.8   7722    0.3  18141  181.3    0.0   1803   205.9  1500.8     0.0   79  80988
    114   1875.0    258   1791   1922   314     0.2    0.3     0.3 8022.5 6154.9   7722    0.3  18123  215.6    0.0   2145   244.8  1784.6     0.0   66  80988
    115   2187.5    117   2075   2251   410     0.2    0.3     0.4 8022.8 6155.1   7722    0.3  18126  252.8    0.0   2497   287.1  2092.8     0.0   76 107984
    116   2500.0    141   2354   2564   496     0.3    0.4     0.4 8023.3 6155.4   7722    0.3  18446  287.0    0.0   2846   325.9  2375.4     0.0   67 107984
    117   2812.5    169   2664   2852   532     0.3    0.4     0.4 8023.9 6155.8   7724    0.3  18135  324.3    0.0   3178   368.2  2684.4     0.0   74 134979
    118   3125.0    192   2943   3168   618     0.3    0.5     0.5 8024.8 6156.3   7724    0.3  18135  358.4    0.0   3518   407.0  2966.6     0.0   67 134979
    119   3281.2    205   3112   3322   612     0.3    0.6     0.5 8026.1 6157.2   7724    0.3  18145  378.6    0.0   3691   429.9  3134.0     0.0   76 161975
    120   3437.5    471   3284   3492   578     0.4    0.8     0.6 8028.2 6158.5   7726    0.3  18159  395.8    0.0   3861   449.4  3275.9     0.0   72 161975
    121   3593.8      0   2484   3630  1612     1.2   53.6    20.8 8436.8 6889.9   7740    0.3  50387  300.3   29.2   8837   478.4  2541.7   108.2   68 118443
    122   3750.0      0    173   3489   641    96.3  700.3   292.2 12527.0 11001.5  11076    0.3  46998   20.0   96.0   9234   498.6   218.2   355.5   65  10501
    123   3906.2      0     88   2549   366   264.6 1257.5   553.0 14273.2 11334.8  14932    0.3  44356    9.7   98.2   9314   518.7   136.0   363.7   63   6678
    124   4062.5      0     52   1604   239   321.3 1889.2   564.4 13658.2 10618.4  15276    0.3  44600    5.5   99.0   9018   541.3    96.9   427.6   70   5134
    125   4375.0      0     21    576    93   295.7 3743.5  1319.0 14053.8 11082.0  13012    0.3  43172    1.5   99.6   7776   581.7    62.4   430.3   65   2442
    126 
    127 
    128 Client 2.2                      connection times
    129     Rate    Min   Mean    Max   Std    Conn   Resp    Xfer  Total    Std    Med    Min    Max   Data   Errs   Reqs ActRate ActRate ErrRate  Samples
    130    req/s ______replies/s___________  __________________msec__________________________________   Mb/s      %         creq/s   req/s   err/s  TSmpl RSmpl
    131    625.0     66    588    648   115     0.2    0.2     0.3 8036.0 6165.2   7722    0.3  18115   71.0    0.0    810    81.2   592.0     0.0   67  26996
    132    937.5     97    896   1051   155     0.2    0.2     0.3 8036.1 6165.2   7722    0.3  18115  107.8    0.0   1201   123.4   899.5     0.0   88  53992
    133   1250.0    121   1177   1357   236     0.2    0.2     0.3 8036.3 6165.4   7722    0.3  18125  141.8    0.0   1559   162.3  1183.0     0.0   67  53992
    134   1562.5    214   1496   1699   249     0.2    0.3     0.3 8036.5 6165.4   7722    0.3  18143  178.8    0.0   1901   204.7  1491.8     0.0   79  80988
    135   1875.0    169   1765   1996   359     0.2    0.3     0.3 8036.8 6165.6   7722    0.3  18124  212.7    0.0   2229   243.4  1774.0     0.0   67  80988
    136   2187.5    191   2074   2307   396     0.2    0.3     0.4 8037.1 6165.8   7722    0.3  18130  249.8    0.0   2577   285.8  2083.5     0.0   76 107984
    137   2500.0    215   2354   2615   481     0.3    0.4     0.4 8037.5 6166.0   7724    0.3  18144  283.5    0.0   2923   324.4  2364.9     0.0   67 107984
    138   2812.5    237   2663   2936   518     0.3    0.4     0.4 8038.0 6166.3   7724    0.3  21104  320.6    0.0   3255   366.9  2674.8     0.0   74 134979
    139   3125.0    259   2942   3242   604     0.3    0.5     0.5 8038.9 6166.9   7724    0.3  18131  354.4    0.0   3601   405.5  2956.1     0.0   67 134979
    140   3281.2    273   3112   3402   599     0.4    0.7     0.5 8040.8 6168.1   7726    0.3  18169  374.6    0.0   3774   428.6  3124.6     0.0   76 161975
    141   3437.5    198   3240   3542   669     0.3    0.8     0.6 8041.9 6168.8   7726    0.3  18148  391.5    0.0   3954   448.0  3266.1     0.0   73 161975
    142   3593.8      0   2480   3703  1612     1.1   53.6    20.2 8421.1 6870.4   7740    0.3  50488  297.4   29.2   8764   478.4  2537.6   108.0   68 118425
    143   3750.0      0    169   3368   620    82.8  714.6   300.3 12327.3 11077.0  10824    0.3  47379   19.2   95.9   9130   498.6   214.5   355.1   65  10498
    144   3906.2      0     86   2605   370   261.4 1258.1   528.3 13671.9 11223.2  13516    0.3  42975    9.7   98.1   9145   518.7   133.8   363.2   63   6693
    145   4062.5      0     52   1482   233   322.8 1845.2   548.2 13257.1 10553.3  14654    0.3  42694    5.5   98.9   8926   541.3    96.1   427.3   70   5133
    146   4375.0      0     20    568    90   288.9 3752.0  1321.9 14064.0 11148.8  13012    0.3  43222    1.6   99.6   7770   581.7    62.3   430.2   65   2446
    147 
    148 
    149 Client 3.1                      connection times
    150     Rate    Min   Mean    Max   Std    Conn   Resp    Xfer  Total    Std    Med    Min    Max   Data   Errs   Reqs ActRate ActRate ErrRate  Samples
    151    req/s ______replies/s___________  __________________msec__________________________________   Mb/s      %         creq/s   req/s   err/s  TSmpl RSmpl
    152    625.0     61    588    660   121     0.2    0.2     0.3 8013.7 6149.6   7722    0.3  18114   70.9    0.0    735    81.2   591.9     0.0   67  26996
    153    937.5     76    896    973   161     0.2    0.2     0.3 8013.8 6149.7   7722    0.3  18118  107.7    0.0   1102   123.4   899.4     0.0   88  53992
    154   1250.0     92   1176   1288   245     0.2    0.2     0.3 8014.1 6149.8   7722    0.3  18124  141.7    0.0   1444   162.3  1182.9     0.0   67  53992
    155   1562.5    214   1496   1604   257     0.2    0.3     0.3 8014.3 6149.9   7722    0.3  18138  178.7    0.0   1793   204.6  1491.7     0.0   79  80988
    156   1875.0    127   1765   1920   369     0.2    0.3     0.3 8014.5 6150.0   7722    0.3  18124  212.5    0.0   2145   243.3  1773.9     0.0   67  80988
    157   2187.5    151   2074   2228   406     0.3    0.3     0.3 8014.8 6150.2   7722    0.3  18124  249.5    0.0   2490   285.8  2083.4     0.0   76 107984
    158   2500.0    173   2353   2549   492     0.3    0.4     0.4 8015.2 6150.4   7722    0.3  21106  283.3    0.0   2822   324.4  2364.8     0.0   67 107984
    159   2812.5    191   2663   2852   529     0.3    0.4     0.4 8015.7 6150.7   7722    0.3  18126  320.4    0.0   3159   366.9  2674.7     0.0   74 134979
    160   3125.0    206   2942   3180   616     0.3    0.5     0.4 8016.6 6151.3   7724    0.3  21106  354.1    0.0   3503   405.5  2956.0     0.0   67 134979
    161   3281.2    217   3111   3324   610     0.3    0.6     0.5 8017.7 6152.0   7724    0.3  18142  374.3    0.0   3670   428.6  3124.6     0.0   76 161975
    162   3437.5    471   3282   3493   578     0.4    0.8     0.6 8020.1 6153.5   7726    0.3  18153  391.2    0.0   3837   448.0  3266.1     0.0   72 161975
    163   3593.8      0   2482   3636  1612     1.1   54.2    20.1 8412.5 6846.9   7738    0.3  50168  297.5   29.2   8814   478.4  2540.4   108.1   68 118448
    164   3750.0      0    172   3490   630    89.8  705.7   304.5 12512.9 11033.5  11072    0.3  46722   19.6   96.0   9200   498.6   217.5   355.2   65  10524
    165   3906.2      0     88   2730   386   225.6 1239.9   532.4 13908.2 11351.2  14456    0.3  44721   10.0   98.2   9223   518.7   136.1   363.4   63   6739
    166   4062.5      0     52   1416   235   323.2 1867.0   541.0 13546.0 10566.6  15506    0.3  43006    5.7   99.0   9028   541.3    97.4   427.4   70   5100
    167   4375.0      0     20    571    89   319.2 3710.8  1361.1 14371.0 11377.3  13014    0.3  42560    1.5   99.6   7823   581.7    62.5   430.2   65   2434
    168 
    169 
    170 Client 3.2                      connection times
    171     Rate    Min   Mean    Max   Std    Conn   Resp    Xfer  Total    Std    Med    Min    Max   Data   Errs   Reqs ActRate ActRate ErrRate  Samples
    172    req/s ______replies/s___________  __________________msec__________________________________   Mb/s      %         creq/s   req/s   err/s  TSmpl RSmpl
    173    625.0     86    597    652   112     0.2    0.2     0.3 8025.5 6160.9   7722    0.3  18113   71.0    0.0    731    81.5   594.1     0.0   66  26996
    174    937.5    128    905    979   147     0.2    0.2     0.3 8025.6 6160.9   7722    0.3  18122  107.7    0.0   1107   123.6   901.1     0.0   87  53992
    175   1250.0     69   1177   1297   258     0.2    0.2     0.3 8025.8 6161.0   7722    0.3  18130  141.6    0.0   1464   162.6  1185.1     0.0   67  53992
    176   1562.5    211   1496   1624   270     0.2    0.3     0.3 8026.0 6161.1   7722    0.3  18149  178.5    0.0   1805   204.9  1493.6     0.0   79  80988
    177   1875.0    101   1765   1944   384     0.2    0.3     0.3 8026.3 6161.3   7722    0.3  18120  212.2    0.0   2177   243.7  1776.2     0.0   67  80988
    178   2187.5    120   2074   2263   422     0.2    0.3     0.4 8026.5 6161.4   7722    0.3  18123  249.2    0.0   2528   286.1  2085.4     0.0   76 107984
    179   2500.0    141   2353   2592   509     0.2    0.4     0.4 8026.9 6161.6   7722    0.3  18141  282.8    0.0   2874   324.7  2367.0     0.0   67 107984
    180   2812.5    160   2663   2899   546     0.3    0.4     0.4 8027.6 6162.1   7722    0.3  18128  319.8    0.0   3235   367.2  2676.7     0.0   74 134979
    181   3125.0    178   2941   3214   634     0.3    0.5     0.5 8028.4 6162.6   7724    0.3  18134  353.5    0.0   3565   405.8  2958.2     0.0   67 134979
    182   3281.2    186   3111   3369   627     0.3    0.6     0.5 8029.4 6163.2   7724    0.3  18135  373.6    0.0   3734   428.9  3126.6     0.0   76 161975
    183   3437.5    471   3283   3526   594     0.3    0.8     0.6 8031.4 6164.5   7726    0.3  18154  390.5    0.0   3903   448.3  3268.1     0.0   72 161975
    184   3593.8      0   2482   3683  1614     1.1   54.8    20.7 8439.9 6883.8   7738    0.3  48900  297.4   29.3   8876   478.4  2541.5   108.3   68 118431
    185   3750.0      0    172   3495   629    92.5  725.7   311.6 12731.8 11151.0  11088    0.3  47483   20.1   96.0   9309   498.6   218.3   355.4   65  10535
    186   3906.2      0     87   2678   383   225.4 1240.2   529.6 13866.1 11284.7  14446    0.3  44019   10.0   98.2   9229   518.7   135.8   363.3   63   6745
    187   4062.5      0     51   1368   232   327.4 1871.2   529.6 13399.5 10567.9  14714    0.3  42144    5.7   99.0   9024   541.3    97.0   427.4   70   5073
    188   4375.0      0     19    559    85   319.9 3729.7  1297.1 13697.3 11293.6  13012    0.3  42992    1.7   99.6   7767   581.7    61.9   430.0   65   2424
    189 
    190 
    191 Client 4.1                      connection times
    192     Rate    Min   Mean    Max   Std    Conn   Resp    Xfer  Total    Std    Med    Min    Max   Data   Errs   Reqs ActRate ActRate ErrRate  Samples
    193    req/s ______replies/s___________  __________________msec__________________________________   Mb/s      %         creq/s   req/s   err/s  TSmpl RSmpl
    194    625.0     73    588    659   118     0.2    0.2     0.3 8015.7 6145.3   7722    0.3  18114   71.3    0.0    734    81.2   591.6     0.0   67  26996
    195    937.5    101    895    988   159     0.2    0.2     0.3 8015.8 6145.3   7722    0.3  18116  108.4    0.0   1107   123.3   899.2     0.0   88  53992
    196   1250.0    116   1176   1321   243     0.2    0.2     0.3 8016.0 6145.4   7722    0.3  18124  142.6    0.0   1471   162.2  1182.6     0.0   67  53992
    197   1562.5    214   1496   1632   254     0.2    0.3     0.3 8016.2 6145.5   7722    0.3  18161  179.8    0.0   1805   204.6  1491.5     0.0   79  80988
    198   1875.0    148   1764   1918   367     0.2    0.3     0.3 8016.5 6145.7   7722    0.3  18122  213.8    0.0   2136   243.3  1773.6     0.0   67  80988
    199   2187.5    168   2074   2226   404     0.2    0.3     0.3 8016.7 6145.8   7722    0.3  18127  251.1    0.0   2474   285.8  2083.1     0.0   76 107984
    200   2500.0    186   2353   2543   490     0.3    0.4     0.4 8017.2 6146.1   7722    0.3  18134  285.0    0.0   2813   324.4  2364.5     0.0   67 107984
    201   2812.5    205   2662   2851   528     0.3    0.4     0.4 8017.6 6146.3   7724    0.3  18132  322.4    0.0   3167   366.9  2674.4     0.0   74 134979
    202   3125.0    220   2941   3170   615     0.3    0.5     0.5 8018.9 6147.2   7724    0.3  18139  356.3    0.0   3514   405.5  2955.7     0.0   67 134979
    203   3281.2    229   3111   3313   609     0.3    0.6     0.5 8020.0 6147.9   7724    0.3  18149  376.6    0.0   3690   428.6  3124.3     0.0   76 161975
    204   3437.5    472   3282   3501   576     0.3    0.8     0.6 8021.4 6148.7   7726    0.3  18149  393.7    0.0   3883   448.0  3265.7     0.0   72 161975
    205   3593.8      0   2480   3660  1614     1.1   54.0    20.3 8406.5 6850.7   7738    0.3  49329  299.9   29.2   8766   478.4  2539.4   108.0   68 118411
    206   3750.0      0    170   3496   624    86.9  711.6   300.9 12384.3 11035.7  11070    0.3  46879   20.1   95.9   9170   498.6   216.2   355.0   65  10543
    207   3906.2      0     87   2542   377   265.1 1260.8   535.0 13867.3 11421.0  14636    0.3  44238   10.1   98.2   9208   518.6   134.9   363.3   62   6653
    208   4062.5      0     51   1487   232   298.1 1887.7   546.8 13419.2 10655.9  14838    0.2  44201    5.8   99.0   8991   541.3    97.2   427.3   70   5180
    209   4375.0      0     18    565    85   299.0 3704.6  1298.3 13895.5 11243.4  13012    0.3  43041    1.8   99.6   7788   581.7    62.2   430.0   65   2440
    210 
    211 
    212 Client 4.2                      connection times
    213     Rate    Min   Mean    Max   Std    Conn   Resp    Xfer  Total    Std    Med    Min    Max   Data   Errs   Reqs ActRate ActRate ErrRate  Samples
    214    req/s ______replies/s___________  __________________msec__________________________________   Mb/s      %         creq/s   req/s   err/s  TSmpl RSmpl
    215    625.0     86    596    663   106     0.2    0.2     0.3 8021.6 6155.9   7722    0.3  18115   71.1    0.0    740    81.3   592.3     0.0   66  26996
    216    937.5     57    895    982   166     0.2    0.2     0.3 8021.7 6155.9   7722    0.3  18116  107.9    0.0   1086   123.4   899.7     0.0   88  53992
    217   1250.0     68   1176   1298   250     0.2    0.2     0.3 8021.9 6156.0   7722    0.3  18120  142.0    0.0   1431   162.3  1183.3     0.0   67  53992
    218   1562.5    214   1496   1603   258     0.2    0.3     0.3 8022.2 6156.2   7722    0.3  18134  179.0    0.0   1783   204.7  1492.1     0.0   79  80988
    219   1875.0     90   1764   1919   374     0.2    0.3     0.3 8022.4 6156.3   7722    0.3  18123  212.9    0.0   2132   243.4  1774.4     0.0   67  80988
    220   2187.5    104   2074   2228   411     0.2    0.3     0.4 8022.7 6156.4   7722    0.3  18125  250.0    0.0   2481   285.9  2083.8     0.0   76 107984
    221   2500.0    117   2352   2546   497     0.3    0.4     0.4 8023.1 6156.7   7722    0.3  18143  283.7    0.0   2822   324.5  2365.2     0.0   67 107984
    222   2812.5    131   2662   2853   534     0.3    0.4     0.4 8023.7 6157.1   7724    0.3  18129  320.9    0.0   3173   367.0  2675.2     0.0   74 134979
    223   3125.0    148   2941   3161   622     0.3    0.5     0.5 8024.6 6157.6   7724    0.3  18130  354.7    0.0   3523   405.6  2956.4     0.0   67 134979
    224   3281.2    158   3110   3319   615     0.3    0.6     0.5 8025.9 6158.4   7724    0.3  18143  374.9    0.0   3691   428.7  3125.0     0.0   76 161975
    225   3437.5    472   3282   3480   578     0.3    0.8     0.6 8027.5 6159.5   7726    0.3  18161  391.9    0.0   3863   448.1  3266.5     0.0   72 161975
    226   3593.8      0   2481   3640  1615     1.1   54.2    20.2 8420.0 6854.9   7740    0.3  48928  298.5   29.2   8774   478.4  2541.3   108.0   68 118430
    227   3750.0      0    171   3563   634    86.7  707.2   298.5 12458.3 10994.4  11070    0.3  47219   20.1   95.9   9198   498.6   218.3   355.0   65  10518
    228   3906.2      0     88   2505   381   263.2 1256.1   537.1 14183.9 11327.2  14768    0.3  41638   10.0   98.2   9304   518.7   136.8   363.4   62   6631
    229   4062.5      0     51   1611   238   294.9 1864.5   534.6 13687.2 10426.2  15640    0.3  44206    5.8   99.0   9078   541.3    98.2   427.4   70   5213
    230   4375.0      0     18    559    82   310.7 3695.1  1402.9 14372.4 11412.5  13014    0.3  42507    1.7   99.6   7819   581.7    62.5   430.0   65   2457
    231 
    232 
    233 Client 5.1                      connection times
    234     Rate    Min   Mean    Max   Std    Conn   Resp    Xfer  Total    Std    Med    Min    Max   Data   Errs   Reqs ActRate ActRate ErrRate  Samples
    235    req/s ______replies/s___________  __________________msec__________________________________   Mb/s      %         creq/s   req/s   err/s  TSmpl RSmpl
    236    625.0     86    596    657   102     0.2    0.2     0.3 8017.0 6146.8   7722    0.3  18113   70.6    0.0    736    81.3   592.5     0.0   66  26996
    237    937.5    129    905    965   137     0.2    0.2     0.3 8017.2 6146.9   7722    0.3  18125  107.2    0.0   1089   123.4   899.8     0.0   87  53992
    238   1250.0    172   1193   1288   209     0.2    0.2     0.3 8017.4 6147.0   7722    0.3  18122  141.0    0.0   1441   162.3  1183.5     0.0   66  53992
    239   1562.5    214   1496   1610   257     0.2    0.3     0.3 8017.6 6147.1   7722    0.3  18150  177.8    0.0   1786   204.7  1492.2     0.0   79  80988
    240   1875.0    257   1789   1920   313     0.2    0.3     0.3 8017.8 6147.2   7722    0.3  18119  211.4    0.0   2134   243.4  1774.5     0.0   66  80988
    241   2187.5    300   2099   2243   344     0.2    0.3     0.3 8018.1 6147.4   7722    0.3  18129  248.3    0.0   2489   285.9  2083.9     0.0   75 107984
    242   2500.0    144   2352   2572   497     0.3    0.4     0.4 8018.6 6147.7   7722    0.3  18139  281.9    0.0   2845   324.5  2365.4     0.0   67 107984
    243   2812.5    158   2662   2879   534     0.3    0.4     0.4 8019.0 6147.9   7722    0.3  18135  318.8    0.0   3192   367.0  2675.3     0.0   74 134979
    244   3125.0    172   2940   3197   622     0.3    0.5     0.4 8019.9 6148.5   7724    0.3  18132  352.3    0.0   3535   405.6  2956.6     0.0   67 134979
    245   3281.2    180   3110   3338   616     0.3    0.6     0.5 8021.2 6149.3   7724    0.3  18157  372.4    0.0   3711   428.7  3125.1     0.0   76 161975
    246   3437.5    472   3282   3509   579     0.4    0.8     0.6 8022.9 6150.3   7726    0.3  18156  389.2    0.0   3877   448.1  3266.6     0.0   72 161975
    247   3593.8      0   2480   3660  1616     1.1   54.8    21.1 8430.2 6883.0   7738    0.3  49891  296.3   29.2   8841   478.4  2540.6   108.1   68 118466
    248   3750.0      0    170   3583   630    88.5  714.9   310.1 12570.8 11089.2  11078    0.3  47758   19.5   96.0   9247   498.6   217.4   355.1   65  10544
    249   3906.2      0     86   2310   370   290.1 1236.7   523.9 13855.8 11274.2  14418    0.3  43618    9.5   98.2   9237   518.7   134.6   363.4   62   6515
    250   4062.5      0     50   1718   238   301.5 1894.9   560.2 13501.5 10562.6  14878    0.3  42224    5.4   99.0   9007   541.3    97.4   427.2   70   5254
    251   4375.0      0     18    569    82   303.1 3659.2  1270.8 13752.2 11044.6  13012    0.3  43482    1.6   99.6   7757   581.7    62.7   429.9   65   2499
    252 
    253 
    254 Client 5.2                      connection times
    255     Rate    Min   Mean    Max   Std    Conn   Resp    Xfer  Total    Std    Med    Min    Max   Data   Errs   Reqs ActRate ActRate ErrRate  Samples
    256    req/s ______replies/s___________  __________________msec__________________________________   Mb/s      %         creq/s   req/s   err/s  TSmpl RSmpl
    257    625.0     88    596    652   106     0.2    0.2     0.3 8019.1 6152.6   7722    0.3  18114   70.1    0.0    734    81.1   591.5     0.0   66  26996
    258    937.5    132    905    990   142     0.2    0.2     0.3 8019.1 6152.8   7722    0.3  18115  106.5    0.0   1097   123.3   899.1     0.0   87  53992
    259   1250.0    177   1193   1291   213     0.2    0.2     0.3 8019.3 6152.9   7722    0.3  18128  140.1    0.0   1438   162.2  1182.5     0.0   66  53992
    260   1562.5    201   1496   1605   262     0.2    0.3     0.3 8019.5 6153.0   7722    0.3  18163  176.7    0.0   1803   204.6  1491.4     0.0   79  80988
    261   1875.0    265   1789   1928   318     0.2    0.3     0.3 8019.8 6153.2   7722    0.3  18122  210.2    0.0   2161   243.3  1773.5     0.0   66  80988
    262   2187.5    310   2099   2240   348     0.2    0.3     0.4 8020.0 6153.3   7722    0.3  18122  246.9    0.0   2493   285.8  2083.1     0.0   75 107984
    263   2500.0    354   2386   2557   422     0.3    0.4     0.4 8020.4 6153.5   7722    0.3  18134  280.2    0.0   2843   324.4  2364.4     0.0   66 107984
    264   2812.5    397   2696   2876   452     0.3    0.4     0.4 8021.0 6153.9   7722    0.3  18133  316.9    0.0   3180   366.9  2674.4     0.0   73 134979
    265   3125.0    441   2982   3202   527     0.3    0.5     0.4 8021.8 6154.5   7724    0.3  18143  350.3    0.0   3531   405.5  2955.6     0.0   66 134979
    266   3281.2    463   3149   3359   520     0.3    0.6     0.5 8022.9 6155.1   7724    0.3  18146  370.2    0.0   3712   428.6  3124.2     0.0   75 161975
    267   3437.5    481   3282   3516   583     0.3    0.7     0.6 8024.5 6156.2   7726    0.3  18144  387.0    0.0   3899   448.0  3265.7     0.0   72 161975
    268   3593.8      0   2481   3678  1618     1.1   53.5    20.6 8425.4 6865.9   7738    0.3  48989  294.8   29.2   8797   478.4  2541.8   108.0   68 118421
    269   3750.0      0    170   3636   639    89.3  706.5   301.8 12555.1 11006.1  11076    0.3  46598   19.8   96.0   9203   498.6   218.6   355.1   65  10504
    270   3906.2      0     86   2176   369   279.9 1251.5   517.6 13901.3 11398.4  14832    0.3  44513    9.6   98.2   9252   518.7   135.3   363.3   62   6506
    271   4062.5      0     50   1872   247   300.6 1875.6   531.2 13595.9 10384.0  15372    0.3  44080    5.6   99.0   9042   541.3    98.1   427.3   70   5220
    272   4375.0      0     17    591    82   295.2 3623.4  1354.8 14226.1 11280.5  13012    0.3  43830    1.6   99.6   7785   581.7    62.7   430.0   65   2514
    273 
    274 
    275 Client 6.1                      connection times
    276     Rate    Min   Mean    Max   Std    Conn   Resp    Xfer  Total    Std    Med    Min    Max   Data   Errs   Reqs ActRate ActRate ErrRate  Samples
    277    req/s ______replies/s___________  __________________msec__________________________________   Mb/s      %         creq/s   req/s   err/s  TSmpl RSmpl
    278    625.0     96    596    651   106     0.2    0.2     0.3 8021.1 6158.7   7722    0.3  18118   71.8    0.0    732    81.1   591.5     0.0   66  26996
    279    937.5    143    905    962   142     0.2    0.2     0.3 8021.2 6158.7   7722    0.3  18115  109.1    0.0   1073   123.3   899.1     0.0   87  53992
    280   1250.0    191   1193   1288   215     0.2    0.2     0.3 8021.4 6158.8   7722    0.3  18121  143.6    0.0   1430   162.2  1182.5     0.0   66  53992
    281   1562.5    148   1495   1618   264     0.2    0.3     0.3 8021.6 6158.9   7722    0.3  18146  181.1    0.0   1781   204.6  1491.4     0.0   79  80988
    282   1875.0    286   1789   1920   321     0.2    0.3     0.3 8021.9 6159.0   7722    0.3  18124  215.3    0.0   2147   243.3  1773.5     0.0   66  80988
    283   2187.5    334   2100   2238   352     0.2    0.3     0.4 8022.2 6159.2   7722    0.3  18125  252.9    0.0   2486   285.8  2083.0     0.0   75 107984
    284   2500.0    380   2386   2554   426     0.2    0.4     0.4 8022.6 6159.5   7722    0.3  18132  287.0    0.0   2822   324.3  2364.4     0.0   66 107984
    285   2812.5    428   2696   2858   456     0.3    0.4     0.4 8023.1 6159.7   7722    0.3  18133  324.7    0.0   3174   366.9  2674.4     0.0   73 134979
    286   3125.0    475   2982   3176   530     0.3    0.5     0.5 8024.2 6160.4   7724    0.3  18135  358.8    0.0   3530   405.5  2955.6     0.0   66 134979
    287   3281.2    499   3150   3338   523     0.3    0.6     0.5 8025.3 6161.2   7724    0.3  18142  379.3    0.0   3701   428.6  3124.2     0.0   75 161975
    288   3437.5    421   3282   3496   587     0.3    0.8     0.6 8027.0 6162.2   7726    0.3  18153  396.5    0.0   3879   448.0  3265.7     0.0   72 161975
    289   3593.8      0   2479   3659  1620     1.1   54.0    20.9 8428.2 6890.9   7738    0.3  46603  302.4   29.2   8810   478.4  2540.2   108.1   68 118413
    290   3750.0      0    169   3649   636    91.3  709.5   302.1 12469.1 11075.2  11072    0.3  47776   20.6   96.0   9207   498.6   217.0   355.0   65  10539
    291   3906.2      0     85   2056   362   263.6 1248.8   544.0 13952.9 11274.7  14642    0.3  44526   10.4   98.2   9259   518.7   135.2   363.3   62   6772
    292   4062.5      0     50   1998   256   293.3 1837.1   527.5 13286.6 10510.1  14826    0.3  45961    6.2   99.0   8989   541.3    97.4   427.2   70   5178
    293   4375.0      0     16    609    81   293.7 3716.3  1359.9 14154.1 11362.8  13014    0.3  42710    1.8   99.6   7781   581.7    62.1   430.0   65   2423
    294 
    295 
    296 Client 6.2                      connection times
    297     Rate    Min   Mean    Max   Std    Conn   Resp    Xfer  Total    Std    Med    Min    Max   Data   Errs   Reqs ActRate ActRate ErrRate  Samples
    298    req/s ______replies/s___________  __________________msec__________________________________   Mb/s      %         creq/s   req/s   err/s  TSmpl RSmpl
    299    625.0    104    597    652   102     0.2    0.2     0.3 8016.0 6156.4   7722    0.3  18113   70.4    0.0    762    81.2   592.0     0.0   66  26996
    300    937.5    158    905    994   135     0.2    0.2     0.3 8016.1 6156.4   7722    0.3  18116  107.0    0.0   1121   123.4   899.5     0.0   87  53992
    301   1250.0    210   1193   1335   205     0.2    0.2     0.3 8016.3 6156.5   7722    0.3  18114  140.8    0.0   1498   162.3  1183.0     0.0   66  53992
    302   1562.5    125   1496   1677   257     0.2    0.3     0.3 8016.5 6156.6   7722    0.3  18146  177.5    0.0   1844   204.7  1491.9     0.0   79  80988
    303   1875.0    316   1790   1939   309     0.2    0.3     0.3 8016.8 6156.8   7722    0.3  18116  211.1    0.0   2195   243.4  1774.1     0.0   66  80988
    304   2187.5    369   2100   2256   340     0.2    0.3     0.4 8017.1 6156.9   7722    0.3  18122  247.9    0.0   2544   285.8  2083.5     0.0   75 107984
    305   2500.0    423   2386   2595   412     0.3    0.4     0.4 8017.5 6157.2   7722    0.3  18137  281.4    0.0   2901   324.4  2364.9     0.0   66 107984
    306   2812.5    474   2697   2894   443     0.3    0.4     0.4 8018.0 6157.5   7722    0.3  18140  318.3    0.0   3237   366.9  2674.9     0.0   73 134979
    307   3125.0    526   2983   3229   516     0.3    0.5     0.5 8018.9 6158.1   7724    0.3  18144  351.8    0.0   3559   405.5  2956.1     0.0   66 134979
    308   3281.2    553   3150   3356   510     0.3    0.6     0.5 8020.2 6158.9   7724    0.3  18154  371.8    0.0   3734   428.6  3124.7     0.0   75 161975
    309   3437.5    392   3282   3558   577     0.3    0.8     0.6 8021.7 6159.8   7726    0.3  18148  388.7    0.0   3905   448.1  3266.2     0.0   72 161975
    310   3593.8      0   2516   3649  1604     1.1   54.2    20.4 8409.0 6868.9   7738    0.3  50430  296.1   29.2   8766   478.4  2540.0   107.9   67 118432
    311   3750.0      0    168   3638   640    88.9  705.1   296.7 12346.3 11051.0  11070    0.3  46420   19.8   95.9   9159   498.6   216.7   354.9   65  10550
    312   3906.2      0     86   2050   362   258.4 1251.2   552.6 13957.6 11336.6  14218    0.3  44202   10.1   98.1   9193   518.6   135.6   363.1   62   6777
    313   4062.5      0     50   2096   266   291.5 1855.8   544.2 13557.3 10700.9  15132    0.3  43819    5.9   99.0   9030   541.3    98.1   427.3   70   5153
    314   4375.0      0     16    629    81   297.8 3789.3  1319.6 13971.5 11312.1  13012    0.3  41685    1.6   99.6   7764   581.7    61.7   430.0   65   2376
    315 
    316 
    317 Client 7.1                      connection times
    318     Rate    Min   Mean    Max   Std    Conn   Resp    Xfer  Total    Std    Med    Min    Max   Data   Errs   Reqs ActRate ActRate ErrRate  Samples
    319    req/s ______replies/s___________  __________________msec__________________________________   Mb/s      %         creq/s   req/s   err/s  TSmpl RSmpl
    320    625.0     91    597    660   104     0.2    0.2     0.3 8021.9 6151.7   7722    0.3  18115   71.7    0.0    737    81.5   594.2     0.0   66  26996
    321    937.5    147    905    978   137     0.2    0.2     0.3 8022.1 6151.7   7722    0.3  18118  108.8    0.0   1091   123.7   901.4     0.0   87  53992
    322   1250.0    199   1193   1300   208     0.2    0.2     0.3 8022.3 6151.9   7722    0.3  18127  143.1    0.0   1451   162.7  1185.8     0.0   66  53992
    323   1562.5    108   1496   1628   260     0.2    0.3     0.3 8022.6 6152.0   7722    0.3  18139  180.3    0.0   1810   205.0  1494.5     0.0   79  80988
    324   1875.0    281   1790   1930   311     0.2    0.3     0.3 8022.8 6152.1   7722    0.3  18122  214.5    0.0   2158   243.8  1777.5     0.0   66  80988
    325   2187.5    329   2100   2236   341     0.2    0.3     0.3 8023.0 6152.3   7722    0.3  18125  251.8    0.0   2508   286.3  2086.8     0.0   75 107984
    326   2500.0    385   2386   2580   414     0.3    0.4     0.4 8023.5 6152.6   7722    0.3  18140  285.8    0.0   2860   325.0  2368.9     0.0   66 107984
    327   2812.5    436   2697   2872   444     0.3    0.4     0.4 8024.0 6152.8   7722    0.3  18130  323.2    0.0   3209   367.5  2678.8     0.0   73 134979
    328   3125.0    485   2983   3209   518     0.3    0.5     0.5 8025.2 6153.6   7724    0.3  18137  357.2    0.0   3567   406.2  2960.8     0.0   66 134979
    329   3281.2    516   3150   3348   511     0.4    0.6     0.5 8026.4 6154.4   7724    0.3  18148  377.5    0.0   3733   429.2  3129.0     0.0   75 161975
    330   3437.5    313   3282   3533   580     0.3    0.8     0.6 8028.0 6155.3   7726    0.3  18148  394.7    0.0   3908   448.7  3270.8     0.0   72 161975
    331   3593.8      0   2516   3670  1607     1.1   54.0    20.0 8412.0 6855.4   7738    0.3  48610  299.6   29.2   8732   478.4  2540.2   107.9   67 118442
    332   3750.0      0    169   3677   648    86.3  707.5   300.5 12458.0 11137.2  11070    0.3  47538   19.7   95.9   9146   498.6   217.6   354.9   65  10533
    333   3906.2      0     86   2159   362   256.0 1262.3   539.0 14096.0 11355.2  14990    0.3  44332    9.7   98.2   9277   518.7   136.4   363.3   62   6681
    334   4062.5      0     50   2028   260   331.4 1896.4   557.5 13722.5 10617.5  15768    0.3  44108    5.6   99.0   9029   541.3    97.5   427.3   69   5135
    335   4375.0      0     16    657    84   281.8 3657.0  1304.5 13928.2 11064.3  13014    0.3  42950    1.6   99.6   7806   581.7    62.7   430.0   65   2494
    336 
    337 
    338 Client 7.2                      connection times
    339     Rate    Min   Mean    Max   Std    Conn   Resp    Xfer  Total    Std    Med    Min    Max   Data   Errs   Reqs ActRate ActRate ErrRate  Samples
    340    req/s ______replies/s___________  __________________msec__________________________________   Mb/s      %         creq/s   req/s   err/s  TSmpl RSmpl
    341    625.0    100    596    668   106     0.2    0.2     0.3 8015.7 6146.3   7722    0.3  18117   70.0    0.0    746    81.2   591.8     0.0   66  26996
    342    937.5    144    905    987   140     0.2    0.2     0.3 8015.8 6146.4   7722    0.3  18116  106.4    0.0   1107   123.4   899.3     0.0   87  53992
    343   1250.0    186   1193   1308   212     0.2    0.2     0.3 8016.0 6146.5   7722    0.3  18121  139.9    0.0   1471   162.3  1182.8     0.0   66  53992
    344   1562.5    119   1495   1636   264     0.2    0.3     0.3 8016.2 6146.6   7722    0.3  18149  176.5    0.0   1802   204.6  1491.7     0.0   79  80988
    345   1875.0    266   1789   1948   317     0.2    0.3     0.3 8016.5 6146.7   7722    0.3  18119  209.8    0.0   2165   243.3  1773.8     0.0   66  80988
    346   2187.5    308   2100   2261   348     0.3    0.3     0.3 8016.8 6146.9   7722    0.3  18122  246.4    0.0   2512   285.8  2083.3     0.0   75 107984
    347   2500.0    353   2386   2583   421     0.3    0.4     0.4 8017.4 6147.2   7722    0.3  18137  279.7    0.0   2854   324.4  2364.7     0.0   66 107984
    348   2812.5    397   2696   2887   452     0.3    0.4     0.4 8017.8 6147.5   7724    0.3  18135  316.4    0.0   3183   366.9  2674.7     0.0   73 134979
    349   3125.0    440   2982   3202   526     0.3    0.5     0.5 8018.9 6148.2   7724    0.3  18140  349.7    0.0   3535   405.5  2955.9     0.0   66 134979
    350   3281.2    462   3149   3357   520     0.3    0.6     0.5 8019.9 6148.8   7724    0.3  18150  369.6    0.0   3703   428.6  3124.5     0.0   75 161975
    351   3437.5    294   3281   3508   589     0.3    0.8     0.6 8021.6 6149.9   7726    0.3  18143  386.4    0.0   3880   448.0  3266.0     0.0   72 161975
    352   3593.8      0   2514   3666  1610     1.1   54.4    20.5 8421.0 6862.5   7738    0.3  48544  293.7   29.2   8850   478.4  2539.6   108.2   67 118441
    353   3750.0      0    166   3652   650    86.6  713.6   299.4 12454.8 10992.4  11074    0.3  47890   19.2   96.0   9247   498.6   216.2   355.1   65  10540
    354   3906.2      0     84   2179   354   246.5 1255.8   535.9 13905.8 11294.1  14688    0.3  45325    9.5   98.2   9274   518.7   135.2   363.3   62   6709
    355   4062.5      0     48   1962   255   327.6 1891.6   536.2 13217.2 10589.1  14906    0.3  43132    5.5   98.9   8951   541.3    96.8   427.1   69   5148
    356   4375.0      0     15    634    80   286.2 3664.5  1298.9 13653.6 11236.8  13012    0.3  42438    1.6   99.6   7760   581.7    62.4   429.8   65   2492
    357 
    358 
    359 Client 8.1                      connection times
    360     Rate    Min   Mean    Max   Std    Conn   Resp    Xfer  Total    Std    Med    Min    Max   Data   Errs   Reqs ActRate ActRate ErrRate  Samples
    361    req/s ______replies/s___________  __________________msec__________________________________   Mb/s      %         creq/s   req/s   err/s  TSmpl RSmpl
    362    625.0     53    596    652   111     0.2    0.2     0.3 8032.1 6157.1   7722    0.2  18120   71.7    0.0    733    81.7   595.8     0.0   66  26996
    363    937.5     83    905    968   144     0.2    0.2     0.3 8032.2 6157.1   7722    0.3  18117  108.6    0.0   1097   123.8   902.6     0.0   87  53992
    364   1250.0    127   1193   1284   216     0.2    0.2     0.3 8032.4 6157.3   7722    0.2  18121  142.8    0.0   1439   162.9  1187.4     0.0   66  53992
    365   1562.5     70   1495   1615   269     0.2    0.3     0.3 8032.7 6157.4   7722    0.3  18143  179.9    0.0   1790   205.2  1495.8     0.0   79  80988
    366   1875.0    212   1790   1923   320     0.2    0.3     0.3 8032.9 6157.5   7722    0.3  18121  214.0    0.0   2148   244.1  1779.1     0.0   66  80988
    367   2187.5    258   2100   2244   351     0.2    0.3     0.3 8033.2 6157.7   7722    0.3  18131  251.2    0.0   2494   286.5  2088.2     0.0   75 107984
    368   2500.0    304   2386   2560   425     0.3    0.4     0.4 8033.6 6157.9   7722    0.3  18145  285.1    0.0   2854   325.2  2370.5     0.0   66 107984
    369   2812.5    347   2696   2873   455     0.3    0.4     0.4 8034.1 6158.2   7724    0.3  18137  322.4    0.0   3185   367.7  2680.3     0.0   73 134979
    370   3125.0    382   2982   3185   530     0.3    0.5     0.5 8035.0 6158.9   7724    0.3  18134  356.3    0.0   3538   406.4  2962.4     0.0   66 134979
    371   3281.2    405   3149   3339   523     0.3    0.6     0.5 8036.3 6159.6   7726    0.3  18147  376.5    0.0   3715   429.4  3130.3     0.0   75 161975
    372   3437.5    254   3281   3490   593     0.3    0.8     0.6 8038.0 6160.7   7726    0.3  18154  393.6    0.0   3885   448.9  3272.2     0.0   72 161975
    373   3593.8      0   2516   3644  1609     1.1   55.3    20.8 8444.8 6876.8   7742    0.3  48414  299.4   29.2   8855   478.4  2542.0   108.1   67 118446
    374   3750.0      0    168   3637   660    91.1  703.0   303.0 12566.8 11031.1  11078    0.3  46928   20.2   96.0   9231   498.6   218.7   355.1   65  10528
    375   3906.2      0     84   2267   355   292.5 1252.0   521.7 14119.2 11283.8  15228    0.3  45141    9.5   98.2   9304   518.7   135.7   363.4   62   6562
    376   4062.5      0     50   1996   264   246.0 1841.8   541.0 13519.1 10404.5  14838    0.3  44685    5.8   99.0   9024   541.3    99.4   427.2   69   5377
    377   4375.0      0     14    600    76   328.0 3701.0  1311.9 14164.0 11343.5  13014    0.3  43076    1.8   99.6   7809   581.7    62.6   430.0   65   2416
    378 
    379 
    380 Client 8.2                      connection times
    381     Rate    Min   Mean    Max   Std    Conn   Resp    Xfer  Total    Std    Med    Min    Max   Data   Errs   Reqs ActRate ActRate ErrRate  Samples
    382    req/s ______replies/s___________  __________________msec__________________________________   Mb/s      %         creq/s   req/s   err/s  TSmpl RSmpl
    383    625.0     76    596    660   104     0.2    0.2     0.3 8042.4 6163.8   7722    0.3  18115   71.1    0.0    744    81.3   593.0     0.0   66  26996
    384    937.5    111    905    974   138     0.2    0.2     0.3 8042.5 6163.8   7722    0.3  18115  107.9    0.0   1095   123.5   900.2     0.0   87  53992
    385   1250.0    152   1193   1297   210     0.2    0.2     0.3 8042.7 6163.9   7722    0.3  18122  141.9    0.0   1443   162.4  1184.0     0.0   66  53992
    386   1562.5     92   1495   1607   263     0.2    0.3     0.3 8042.9 6164.0   7722    0.3  18133  179.0    0.0   1796   204.8  1492.7     0.0   79  80988
    387   1875.0    219   1789   1917   314     0.2    0.3     0.3 8043.2 6164.2   7722    0.2  18119  212.8    0.0   2141   243.5  1775.0     0.0   66  80988
    388   2187.5    258   2099   2231   345     0.2    0.3     0.4 8043.5 6164.3   7722    0.3  18119  249.9    0.0   2484   285.9  2084.4     0.0   75 107984
    389   2500.0    298   2385   2546   418     0.3    0.4     0.4 8044.0 6164.6   7724    0.3  18134  283.7    0.0   2828   324.6  2365.9     0.0   66 107984
    390   2812.5    332   2696   2858   449     0.3    0.4     0.4 8044.3 6164.8   7724    0.3  18127  320.8    0.0   3166   367.1  2675.8     0.0   73 134979
    391   3125.0    366   2982   3174   524     0.3    0.5     0.5 8045.5 6165.6   7724    0.3  18449  354.5    0.0   3522   405.7  2957.1     0.0   66 134979
    392   3281.2    389   3149   3322   517     0.3    0.6     0.5 8046.8 6166.4   7726    0.3  18154  374.7    0.0   3691   428.8  3125.6     0.0   75 161975
    393   3437.5    237   3280   3498   588     0.3    0.8     0.6 8048.0 6167.2   7726    0.3  18156  391.7    0.0   3869   448.2  3267.1     0.0   72 161975
    394   3593.8      0   2513   3643  1608     1.1   55.4    21.1 8451.5 6902.2   7740    0.3  48445  298.6   29.2   8838   478.4  2539.9   108.1   67 118491
    395   3750.0      0    168   3469   652    92.8  711.6   299.7 12461.2 11090.3  11070    0.3  45804   20.3   96.0   9194   498.6   216.6   355.1   64  10559
    396   3906.2      0     82   2288   348   285.5 1247.1   525.4 13945.4 11373.8  14426    0.3  44533   10.0   98.2   9235   518.7   134.5   363.3   62   6558
    397   4062.5      0     49   1902   256   269.8 1806.2   561.3 13297.4 10589.2  14494    0.3  42320    6.1   98.9   8937   541.3    99.1   426.9   69   5375
    398   4375.0      0     14    563    72   329.8 3709.2  1284.8 13923.8 11166.9  13012    0.3  43634    1.7   99.6   7806   581.7    62.3   430.0   64   2384
     6 10000.0   1277   9512  10515  1767     0.2    0.2     0.2 8021.9 8021.9   7722    0.2  18125 1148.5    0.0  11897  1302.1  9492.2     0.0 1060  26996
     7 15000.0   1825  14433  15729  2364     0.2    0.2     0.2 8022.0 9824.9   7722    0.1  18126 1744.0    0.0  17642  1977.0 14412.6     0.0 1397  53992
     8 20000.0   2232  18974  20839  3646     0.2    0.3     0.2 8022.2 12684.0   7722    0.2  18124 2293.4    0.0  23315  2600.4 18956.2     0.0 1063  53992
     9 25000.0   2787  23932  26010  4184     0.2    0.3     0.2 8022.3 13100.1   7722    0.2  18124 2890.8    0.0  28889  3277.9 23894.1     0.0 1264  80988
     10 30000.0   3275  28462  30908  5452     0.2    0.4     0.2 8022.6 15361.5   7722    0.1  18197 3437.7    0.0  34502  3897.9 28414.5     0.0 1063  80988
     11 35000.0   3648  33392  35934  6055     0.2    0.4     0.2 8022.9 15535.4   7722    0.2  18132 4036.5    0.0  40047  4577.0 33363.1     0.0 1208 107984
     12 40000.0   3998  37882  41093  7406     0.2    0.5     0.2 8023.4 17485.0   7723    0.2  18152 4581.9    0.0  45591  5195.3 37870.2     0.0 1065 107984
     13 45000.0   4491  42842  45986  7951     0.3    0.6     0.3 8024.1 17577.4   7723    0.2  18318 5181.8    0.0  51085  5875.1 42827.3     0.0 1177 134979
     14 50000.0   4969  47353  51110  9252     0.3    0.7     0.3 8025.0 19322.7   7724    0.2  18146 5726.4    0.0  56619  6493.2 47331.4     0.0 1065 134979
     15 52500.0   5242  50049  53503  9148     0.3    0.8     0.3 8025.6 19379.1   7724    0.2  18149 6052.4    0.0  59382  6862.5 50025.4     0.0 1209 161975
     16 55000.0   5587  52380  56451  9661     0.3    0.9     0.5 8028.0 8028.0   7724    0.2  18758 6266.8    0.0  62515  7173.3 52290.9     0.0 1155 161975
     17 57500.0   5580  54607  58551 10383     0.3    0.7     0.4 8025.6 8025.6   7724    0.2  18455 6536.9    0.0  64950  7482.6 54545.7     0.0 1108 161975
     18 62500.0   4413  53224  58418 10682  1654.3  305.6    14.1 12008.5 12008.6  12646    0.2  37768 6373.2    8.2 107766  7944.1 53193.0   649.8 1044 148722
     19 65000.0   4612  53287  59272  9958  1925.6  326.1    16.7 12446.7 12446.7  12790    0.2  37717 6379.3   12.2 114627  8317.6 53282.5  1014.2 1163 165907
     20 70000.0   2993  52332  60086 10555  2218.7  351.7    21.6 12958.3 12958.3  13112    0.2  39314 6257.9   19.0 126510  8850.2 52401.5  1678.8 1093 153114
  • doc/theses/thierry_delisle_PhD/thesis/local.bib

    r741e22c r71cf630  
    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
     461
    431462% --------------------------------------------------
    432463% ULE FreeBSD scheduler
     
    582613}
    583614
     615@misc{apache,
     616  key = {Apache Software Foundation},
     617  title = {{T}he {A}pache Web Server},
     618  howpublished = {\href{http://httpd.apache.org}{http://\-httpd.apache.org}},
     619  note = "[Online; accessed 6-June-2022]"
     620}
     621
     622@misc{memcached,
     623  key = {Brad Fitzpatrick},
     624  title = {{M}emcached},
     625  year = {2003},
     626  howpublished = {\href{http://httpd.apache.org}{http://\-httpd.apache.org}},
     627  note = "[Online; accessed 6-June-2022]"
     628}
     629
     630@misc{libuv,
     631  author = {libuv team},
     632  title = {libuv: Asynchronous I/O made simple.},
     633  howpublished = {\href{https://libuv.org/}{https://\-libuv.org/}},
     634  note = "[Online; accessed 5-August-2022]"
     635}
     636
     637@misc{SeriallyReusable,
     638    author      = {IBM},
     639    title       = {Serially reusable programs},
     640    month       = mar,
     641    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}},
     642    year        = 2021,
     643}
     644
     645@misc{GITHUB:mutilate,
     646  title = {Mutilate: high-performance memcached load generator },
     647  author = { Jacob Leverich },
     648  howpublished = {\href{https://github.com/leverich/mutilate}{https://\-github.com/\-leverich/\-mutilate}},
     649  version = {Change-Id: d65c6ef7c2f78ae05a9db3e37d7f6ddff1c0af64}
     650}
     651
     652% --------------------------------------------------
     653% Tech documents
     654@techreport{rfc:tcp,
     655  title={Transmission control protocol},
     656  author={Postel, Jon},
     657  year={1981}
     658}
     659
     660@manual{win:priority,
     661  key = {TaskSettings Priority},
     662  title = {TaskSettings.Priority property},
     663  year = "2020",
     664  month = "September",
     665  howpublished = {\href{https://docs.microsoft.com/en-us/windows/win32/taskschd/tasksettings-priority}{https://\-docs.microsoft.com/\-en-us/\-windows/\-win32/\-taskschd/\-tasksettings-priority}},
     666  note = "[Online; accessed 5-August-2022]"
     667}
     668
     669@manual{win:overlap,
     670  key = {Synchronous and Asynchronous IO},
     671  title = {Synchronous and Asynchronous I\/O},
     672  year = "2021",
     673  month = "March",
     674  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}},
     675  note = "[Online; accessed 5-August-2022]"
     676}
     677
     678@book{russinovich2009windows,
     679  title={Windows Internals},
     680  author={Russinovich, M.E. and Solomon, D.A. and Ionescu, A.},
     681  isbn={9780735625303},
     682  lccn={2009927697},
     683  series={Developer Reference Series},
     684  url={https://books.google.ca/books?id=SfglSQAACAAJ},
     685  year={2009},
     686  publisher={Microsoft Press}
     687}
     688
     689@manual{apple:gcd,
     690  key = {Grand Central Dispatch},
     691  title = {Grand Central Dispatch},
     692  year = "2022",
     693  author = {Apple Inc.},
     694  howpublished = {https://developer.apple.com/documentation/DISPATCH},
     695  note = "[Online; accessed 5-August-2022]"
     696}
     697
     698@techreport{apple:gcd2,
     699  key = {Grand Central Dispatch},
     700  title = {Grand Central Dispatch, A better way to do multicore.},
     701  year = "2009",
     702  month = "August",
     703  author = {Apple Inc.},
     704  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}},
     705  note = "[Online; accessed 5-August-2022]"
     706}
     707
     708
    584709% --------------------------------------------------
    585710% Man Pages
     
    619744}
    620745
     746@manual{MAN:sendfile,
     747  key        = "sendfile",
     748  title      = "sendfile(2) Linux User's Manual",
     749  year       = "2017",
     750  month      = "September",
     751}
     752
     753@manual{MAN:splice,
     754  key        = "splice",
     755  title      = "splice(2) Linux User's Manual",
     756  year       = "2019",
     757  month      = "May",
     758}
     759
    621760@manual{MAN:aio,
    622761  key        = "aio",
     
    709848}
    710849
    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 
     850@misc{wiki:ma,
     851  author = "{Wikipedia contributors}",
     852  title = "Bin packing problem --- {W}ikipedia{,} The Free Encyclopedia",
     853  year = "2022",
     854  howpublished = "\href{https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average}{https://\-en.wikipedia.org/\-wiki/\-Moving\_average\#Exponential\_moving\_average}",
     855  note = "[Online; accessed 5-August-2022]"
     856}
     857
     858@misc{wiki:jni,
     859  author = "{Wikipedia contributors}",
     860  title = "Java Native Interface --- {W}ikipedia{,} The Free Encyclopedia",
     861  year = "2021",
     862  howpublished = "\href{https://en.wikipedia.org/wiki/Java_Native_Interface}{https://\-en.wikipedia.org/\-wiki/\-Java\_Native\_Interface}",
     863  note = "[Online; accessed 5-August-2022]"
     864}
     865
     866@misc{wiki:zipf,
     867  author = "{Wikipedia contributors}",
     868  title = "Zipf's law --- {W}ikipedia{,} The Free Encyclopedia",
     869  year = "2021",
     870  howpublished = "\href{https://en.wikipedia.org/wiki/Zipf%27s_law}{https://\-en.wikipedia.org/\-wiki/\-Zipf\%27s\-\_law}",
     871  note = "[Online; accessed 5-August-2022]"
     872}
     873
     874
     875% --------------------------------------------------
     876% True Misc
    732877@misc{AIORant,
    733878  author = "Linus Torvalds",
     
    739884}
    740885
    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 }
     886@misc{xkcd:dynamicentropy,
     887  author = "Randall Munroe",
     888  title = "2318: Dynamic Entropy",
     889  year = "2020",
     890  month = "June",
     891  howpublished = "\href{https://xkcd.com/2318/}",
     892  note = "[Online; accessed 10-June-2020]"
     893}
     894
     895@misc{go:safepoints,
     896  author = "The Go Programming Language",
     897  title = "src/runtime/preempt.go",
     898  howpublished = {\href{https://go.dev/src/runtime/preempt.go}},
     899  note = "[Online; accessed 5-August-2022]"
     900}
     901
     902@misc{go:cgo,
     903  author = "The Go Programming Language",
     904  title = "cgo",
     905  howpublished = {\href{https://pkg.go.dev/cmd/cgo}},
     906  note = "[Online; accessed 5-August-2022]"
     907}
  • doc/theses/thierry_delisle_PhD/thesis/text/core.tex

    r741e22c r71cf630  
    1515For threading, a simple and common execution mental-model is the ``Ideal multi-tasking CPU'' :
    1616
    17 \begin{displayquote}[Linux CFS\cit{https://www.kernel.org/doc/Documentation/scheduler/sched-design-CFS.txt}]
     17\begin{displayquote}[Linux CFS\cite{MAN:linux/cfs}]
    1818        {[The]} ``Ideal multi-tasking CPU'' is a (non-existent  :-)) CPU that has 100\% physical power and which can run each task at precise equal speed, in parallel, each at [an equal fraction of the] speed.  For example: if there are 2 tasks running, then it runs each at 50\% physical power --- i.e., actually in parallel.
    1919        \label{q:LinuxCFS}
     
    183183This suggests to the following approach:
    184184
    185 \subsection{Dynamic Entropy}\cit{https://xkcd.com/2318/}
     185\subsection{Dynamic Entropy}\cite{xkcd:dynamicentropy}
    186186The Relaxed-FIFO approach can be made to handle the case of mostly empty subqueues by tweaking the \glsxtrlong{prng}.
    187187The \glsxtrshort{prng} state can be seen as containing a list of all the future subqueues that will be accessed.
    188188While 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.
     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}
     
    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.
    212212First, the relaxed-FIFO algorithm has fundamentally better fairness because each \proc always monitors all subqueues.
     
    220220        \input{base.pstex_t}
    221221        \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. 
     222        Each \gls{proc} can access all of the subqueues.
    223223        Each \at is timestamped when enqueued.}
    224224        \label{fig:base}
     
    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}.
     247A simple solution to this problem is to use an exponential moving average\cite{wiki:ma} (MA) instead of a raw timestamps, shown in Figure~\ref{fig:base-ma}.
    248248Note, this is more complex because the \at at the head of a subqueue is still waiting, so its wait time has not ended.
    249249Therefore, the exponential moving average is actually an exponential moving average of how long each dequeued \at has waited.
     
    261261The good news is that this problem can be mitigated
    262262
    263 \subsection{Redundant Timestamps}
     263\subsection{Redundant Timestamps}\ref{relaxedtimes}
    264264The problem with polling remote subqueues is that correctness is critical.
    265265There must be a consensus among \procs on which subqueues hold which \ats, as the \ats are in constant motion.
  • doc/theses/thierry_delisle_PhD/thesis/text/eval_macro.tex

    r741e22c r71cf630  
    1010
    1111\section{Memcached}
    12 Memcached~\cit{memcached} is an in memory key-value store that is used in many production environments, \eg \cit{Berk Atikoglu et al., Workload Analysis of a Large-Scale Key-Value Store,
    13 SIGMETRICS 2012}.
    14 This also server also has the notable added benefit that there exists a full-featured front-end for performance testing called @mutilate@~\cit{mutilate}.
     12Memcached~\cite{memcached} is an in memory key-value store that is used in many production environments, \eg \cite{atikoglu2012workload}.
     13This also server also has the notable added benefit that there exists a full-featured front-end for performance testing called @mutilate@~\cite{GITHUB:mutilate}.
    1514Experimenting on memcached allows for a simple test of the \CFA runtime as a whole, it will exercise the scheduler, the idle-sleep mechanism, as well the \io subsystem for sockets.
    1615This experiment does not exercise the \io subsytem with regards to disk operations.
    17 The experiments compare 3 different varitions of memcached:
    18 \begin{itemize}
    19  \item \emph{vanilla}: the official release of memcached, version~1.6.9.
    20  \item \emph{fibre}: a modification of vanilla which uses the thread per connection model on top of the libfibre runtime~\cite{DBLP:journals/pomacs/KarstenB20}.
    21  \item \emph{cfa}: a modification of the fibre webserver that replaces the libfibre runtime with \CFA.
    22 \end{itemize}
    2316
    2417\subsection{Benchmark Environment}
     
    3124The network route uses 1 Mellanox SX1012 10/40 Gigabit Ethernet cluster switch.
    3225
    33 \subsection{Throughput}
     26\subsection{Memcached with threads per connection}
     27Comparing against memcached using a user-level runtime only really make sense if the server actually uses this threading model.
     28Indeed, evaluating a user-level runtime with 1 \at per \proc is not meaningful since it does not exercise the runtime, it simply adds some overhead to the underlying OS scheduler.
     29
     30One approach is to use a webserver that uses a thread-per-connection model, where each incoming connection is served by a single \at in a strict 1-to-1 pairing.
     31This models adds flexibility to the implementation, as the serving logic can now block on user-level primitives without affecting other connections.
     32
     33Memcached is not built according to a thread-per-connection model, but there exists a port of it that is, which was built for libfibre in \cite{DBLP:journals/pomacs/KarstenB20}.
     34Therefore this version can both be compared to the original version and to a port to the \CFA runtime.
     35
     36As such, this memcached experiment compares 3 different varitions of memcached:
     37\begin{itemize}
     38 \item \emph{vanilla}: the official release of memcached, version~1.6.9.
     39 \item \emph{fibre}: a modification of vanilla which uses the thread per connection model on top of the libfibre runtime~\cite{DBLP:journals/pomacs/KarstenB20}.
     40 \item \emph{cfa}: a modification of the fibre webserver that replaces the libfibre runtime with \CFA.
     41\end{itemize}
     42
     43\subsection{Throughput} \label{memcd:tput}
    3444\begin{figure}
    3545        \centering
     
    6272\begin{figure}
    6373        \centering
    64         \input{result.memcd.updt.qps.pstex_t}
    65         \caption[Churn Benchmark : Throughput on Intel]{Churn Benchmark : Throughput on Intel\smallskip\newline Description}
    66         \label{fig:memcd:updt:qps}
    67 \end{figure}
    68 
    69 \begin{figure}
    70         \centering
    71         \input{result.memcd.updt.lat.pstex_t}
    72         \caption[Churn Benchmark : Throughput on Intel]{Churn Benchmark : Throughput on Intel\smallskip\newline Description}
    73         \label{fig:memcd:updt:lat}
     74        \subfloat[][Throughput]{
     75                \input{result.memcd.forall.qps.pstex_t}
     76        }
     77
     78        \subfloat[][Latency]{
     79                \input{result.memcd.forall.lat.pstex_t}
     80        }
     81        \caption[forall Latency results at different update rates]{forall Latency results at different update rates\smallskip\newline Description}
     82        \label{fig:memcd:updt:forall}
     83\end{figure}
     84
     85\begin{figure}
     86        \centering
     87        \subfloat[][Throughput]{
     88                \input{result.memcd.fibre.qps.pstex_t}
     89        }
     90
     91        \subfloat[][Latency]{
     92                \input{result.memcd.fibre.lat.pstex_t}
     93        }
     94        \caption[fibre Latency results at different update rates]{fibre Latency results at different update rates\smallskip\newline Description}
     95        \label{fig:memcd:updt:fibre}
     96\end{figure}
     97
     98\begin{figure}
     99        \centering
     100        \subfloat[][Throughput]{
     101                \input{result.memcd.vanilla.qps.pstex_t}
     102        }
     103
     104        \subfloat[][Latency]{
     105                \input{result.memcd.vanilla.lat.pstex_t}
     106        }
     107        \caption[vanilla Latency results at different update rates]{vanilla Latency results at different update rates\smallskip\newline Description}
     108        \label{fig:memcd:updt:vanilla}
    74109\end{figure}
    75110
     
    79114The memcached experiment has two aspects of the \io subsystem it does not exercise, accepting new connections and interacting with disks.
    80115On the other hand, static webservers, servers that offer static webpages, do stress disk \io since they serve files from disk\footnote{Dynamic webservers, which construct pages as they are sent, are not as interesting since the construction of the pages do not exercise the runtime in a meaningfully different way.}.
    81 The static webserver experiments will compare NGINX with a custom webserver developped for this experiment.
     116The static webserver experiments will compare NGINX~\cit{nginx} with a custom webserver developped for this experiment.
     117
     118\subsection{\CFA webserver}
     119Unlike the memcached experiment, the webserver experiment relies on a custom designed webserver.
     120It is a simple thread-per-connection webserver where a fixed number of \ats are created upfront.
     121Each of the \at calls @accept@, through @io_uring@, on the listening port and handle the incomming connection once accepted.
     122Most of the implementation is fairly straight forward however the inclusion of file \io introduces a new challenge that had to be hacked around.
     123
     124Normally, webservers use @sendfile@\cite{MAN:sendfile} to send files over the socket.
     125@io_uring@ does not support @sendfile@, it supports @splice@\cite{MAN:splice} instead, which is strictly more powerful.
     126However, because of how linux implements file \io, see Subsection~\ref{ononblock}, @io_uring@'s implementation must delegate calls to splice to worker threads inside the kernel.
     127As of Linux 5.13, @io_uring@ caps the numer of these worker threads to @RLIMIT_NPROC@ and therefore, when tens of thousands of splice requests are made, it can create tens of thousands of \glspl{kthrd}.
     128Such a high number of \glspl{kthrd} is more than Linux can handle in this scenario so performance suffers significantly.
     129For this reason, the \CFA webserver calls @sendfile@ directly.
     130This approach works up to a certain point, but once the server approaches saturation, it leads to a new problem.
     131
     132When the saturation point of the server is attained, latency will increase and inevitably some client connections will timeout.
     133As these clients close there connections, the server must close these sockets without delay so the OS can reclaim the resources used by these connections.
     134Indeed, until they are closed on the server end, the connection will linger in the CLOSE-WAIT tcp state~\cite{rfc:tcp} and the tcp buffers will be preserved.
     135However, this poses a problem using blocking @sendfile@ calls.
     136The calls can block if they do not have suffcient memory, which can be caused by having too many connections in the CLOSE-WAIT state.
     137Since blocking in calls to @sendfile@ blocks the \proc rather than the \at, this prevents other connections from closing their sockets.
     138This leads to a vicious cycle where timeouts lead to @sendfile@ calls running out of resources, which lead to more timeouts.
     139
     140Normally, this is address by marking the sockets as non-blocking and using @epoll@ to wait for sockets to have sufficient resources.
     141However, since @io_uring@ respects non-blocking semantics marking all sockets as non-blocking effectively circumvents the @io_uring@ subsystem entirely.
     142For this reason, the \CFA webserver sets and resets the @O_NONBLOCK@ flag before and after any calls to @sendfile@.
     143Normally @epoll@ would also be used when these calls to @sendfile@ return @EAGAIN@, but since this would not help in the evaluation of the \CFA runtime, the \CFA webserver simply yields and retries in these cases.
     144
     145It is important to state that in Linux 5.15 @io_uring@ introduces the ability for users to limit the number of worker threads that are created, through the @IORING_REGISTER_IOWQ_MAX_WORKERS@ option.
     146However, as of writing this document Ubuntu does not have a stable release of Linux 5.15.
     147There exists versions of the kernel that are currently under testing, but these caused unrelated but nevertheless prohibitive issues in this experiment.
     148Presumably, the new kernel would remove the need for the hack described above, as it would allow connections in the CLOSE-WAIT state to be closed even while the calls to @splice@/@sendfile@ are underway.
     149However, since this could not be tested, this is purely a conjecture at this point.
    82150
    83151\subsection{Benchmark Environment}
     
    87155These CPUs has only 8 \glspl{hthrd} enabled by grub, which is sufficient to achieve line rate.
    88156This cpus each have 64 KB, 256 KiB and 8 MB of L1, L2 and L3 caches respectively.
     157The kernel is setup to limit the memory at 25Gb.
    89158
    90159The client machines each have two 2.8 GHz Xeon CPUs, and four one-gigabit Ethernet cards.
     
    95164\todo{switch}
    96165
    97 
    98 
    99166\subsection{Throughput}
    100 \begin{figure}
    101         \centering
    102         \input{result.swbsrv.25gb.pstex_t}
    103         \caption[Static Webserver Benchmark : Throughput]{Static Webserver Benchmark : Throughput\smallskip\newline }
     167To measure the throughput of both webservers, each server is loaded with over 30,000 files making over 4.5 Gigabytes in total.
     168Each client runs httperf~\cit{httperf} which establishes a connection, does an http request for one or more files, closes the connection and repeats the process.
     169The connections and requests are made according to a Zipfian distribution~\cite{zipf}.
     170Throughput is measured by aggregating the results from httperf of all the clients.
     171\begin{figure}
     172        \subfloat[][Throughput]{
     173                \input{result.swbsrv.25gb.pstex_t}
     174                \label{fig:swbsrv:ops}
     175        }
     176
     177        \subfloat[][Rate of Errors]{
     178                \input{result.swbsrv.25gb.err.pstex_t}
     179                \label{fig:swbsrv:err}
     180        }
     181        \caption[Static Webserver Benchmark : Throughput]{Static Webserver Benchmark : Throughput\smallskip\newline Throughput vs request rate for short lived connections connections.}
    104182        \label{fig:swbsrv}
    105183\end{figure}
    106 
    107 Networked ZIPF
    108 
    109 Nginx : 5Gb still good, 4Gb starts to suffer
    110 
    111 Cforall : 10Gb too high, 4 Gb too low
     184Figure~\ref{fig:swbsrv} shows the results comparing \CFA to NGINX in terms of throughput.
     185These results are fairly straight forward.
     186Both servers achieve the same throughput until around 57,500 requests per seconds.
     187Since 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 desired rate.
     188Once the saturation point is reached, both servers are still very close.
     189NGINX achieves slightly better throughtput.
     190However, Figure~\ref{fig:swbsrv:err} shows the rate of errors, a gross approximation of tail latency, where \CFA achives notably fewet errors once the machine reaches saturation.
     191This suggest that \CFA is slightly more fair and NGINX may sloghtly sacrifice some fairness for improved throughtput.
     192It demonstrate that the \CFA webserver described above is able to match the performance of NGINX up-to and beyond the saturation point of the machine.
     193
     194\subsection{Disk Operations}
     195The throughput was made using a server with 25gb of memory, this was sufficient to hold the entire fileset in addition to all the code and data needed to run the webserver and the reste of the machine.
     196Previous work like \cit{Cite Ashif's stuff} demonstrate that an interesting follow-up experiment is to rerun the same throughput experiment but allowing significantly less memory on the machine.
     197If the machine is constrained enough, it will force the OS to evict files from the file cache and cause calls to @sendfile@ to have to read from disk.
     198However, what these low memory experiments demonstrate is how the memory footprint of the webserver affects the performance.
     199However, since what I am to evaluate in this thesis is the runtime of \CFA, I diceded to forgo experiments on low memory server.
     200The implementation of the webserver itself is simply too impactful to be an interesting evaluation of the underlying runtime.
  • doc/theses/thierry_delisle_PhD/thesis/text/eval_micro.tex

    r741e22c r71cf630  
    44This chapter presents five different experimental setup, evaluating some of the basic features of \CFA's scheduler.
    55
    6 \section{Benchmark Environment}
     6\section{Benchmark Environment}\label{microenv}
    77All benchmarks are run on two distinct hardware platforms.
    88\begin{description}
     
    3232        \centering
    3333        \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.}
     34        \caption[Cycle benchmark]{Cycle benchmark\smallskip\newline Each \at unparks the next \at in the cycle before parking itself.}
    3535        \label{fig:cycle}
    3636\end{figure}
    3737The most basic evaluation of any ready queue is to evaluate the latency needed to push and pop one element from the ready queue.
    3838Since 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 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}.
     39However, yielding can be treated as a special case and some aspects of the scheduler can be optimized away since the number of ready \ats does not change.
     40Not all systems perform this type of optimization, but those that do have an artificial performance benefit because the yield becomes a \emph{nop}.
    4141For 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.
     42This benchmark arranges a number of \ats into a ring, as seen in Figure~\ref{fig:cycle}, where the ring is a circular singly-linked list.
     43At runtime, each \at unparks the next \at before parking itself.
     44Unparking the next \at pushes that \at onto the ready queue while the ensuing park leads to a \at being popped from the ready queue.
     45
     46Hence, the underlying runtime cannot rely on the number of ready \ats staying constant over the duration of the experiment.
     47In fact, the total number of \ats waiting on the ready queue is expected to vary because of the delay between the next \at unparking and the current \at parking.
    4848That 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.)
     49As well, the size of the cycle is also decided based on this delay.
     50Note that, an unpark is like a V on a semaphore, so the subsequent park (P) may not block.
     51If this happens, the scheduler push and pop are avoided and the results of the experiment would be skewed.
     52Because of time-slicing or because cycles can be spread over multiple \procs, a small cycle may see the chain of unparks go full circle before the first \at parks.
     53Every runtime system must handle this race and but cannot optimized away the ready-queue pushes and pops if the cycle is long enough.
     54To 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.
    5355Finally, to further mitigate any underlying push/pop optimizations, especially on SMP machines, multiple rings are created in the experiment.
    54 
    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.
    5756
    5857Figure~\ref{fig:cycle:code} shows the pseudo code for this benchmark.
     
    6463        count := 0
    6564        for {
     65                @this.next.wake()@
    6666                @wait()@
    67                 @this.next.wake()@
    6867                count ++
    6968                if must_stop() { break }
     
    103102                \label{fig:cycle:jax:low:ns}
    104103        }
    105         \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 count. For Throughput higher is better, for Scalability lower is better.}
     104        \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 count. For Throughput higher is better, for Scalability lower is better. Each series represent 15 independent runs, the dotted lines are extremums while the solid line is the medium.}
    106105        \label{fig:cycle:jax}
    107106\end{figure}
     
    125124                        \input{result.cycle.nasus.ns.pstex_t}
    126125                }
    127 
     126                \label{fig:cycle:nasus:ns}
    128127        }
    129128        \subfloat[][Scalability, 1 cycle per \proc]{
     
    133132                \label{fig:cycle:nasus:low:ns}
    134133        }
    135         \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 count. For Throughput higher is better, for Scalability lower is better.}
     134        \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 count. For Throughput higher is better, for Scalability lower is better. Each series represent 15 independent runs, the dotted lines are extremums while the solid line is the medium.}
    136135        \label{fig:cycle:nasus}
    137136\end{figure}
    138137Figure~\ref{fig:cycle:jax} and Figure~\ref{fig:cycle:nasus} shows the throughput as a function of \proc count on Intel and AMD respectively, where each cycle has 5 \ats.
    139138The graphs show traditional throughput on the top row and \newterm{scalability} on the bottom row.
    140 Where scalability uses the same data but the Y axis is calculated as throughput over the number of \procs.
     139Where scalability uses the same data but the Y axis is calculated as the number of \procs over the throughput.
    141140In 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.
    142141The left column shows results for 100 cycles per \proc, enough cycles to always keep every \proc busy.
     
    144143The distinction 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.
    145144
     145The experiment was run 15 times for each series and processor count and the \emph{$\times$}s on the graph show all of the results obtained.
     146Each series also has a solid and two dashed lines highlighting the median, maximum and minimum result respectively.
     147This presentation offers an overview of the distribution of the results for each series.
     148
     149The experimental setup uses taskset to limit the placement of \glspl{kthrd} by the operating system.
     150As mentioned in Section~\ref{microenv}, the experiement is setup to prioritize running on 2 \glspl{hthrd} per core before running on multiple sockets.
     151For 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 but \emph{with} hyperthreading.
     152This pattern is repeated between 49 and 96, between 97 and 144, and between 145 and 192.
     153On AMD, the same algorithm is used, but the machine only has 2 sockets.
     154So hyperthreading\footnote{Hyperthreading normally refers specifically to the technique used by Intel, however here it is loosely used to refer to AMD's equivalent feature.} is used when the \proc count reach 65 and 193.
     155
     156Figure~\ref{fig:cycle:jax:ops} and Figure~\ref{fig:cycle:jax:ns} show that for 100 cycles per \proc, \CFA, Go and Tokio all obtain effectively the same performance.
     157Libfibre is slightly behind in this case but still scales decently.
     158As a result of the \gls{kthrd} placement, we can see that additional \procs from 25 to 48 offer less performance improvements for all runtimes.
     159As expected, this pattern repeats between \proc count 72 and 96.
    146160The performance goal of \CFA is to obtain equivalent performance to other, less fair schedulers and that is what results show.
    147161Figure~\ref{fig:cycle:jax:ops} and \ref{fig:cycle:jax:ns} show very good throughput and scalability for all runtimes.
    148 The experimental setup prioritizes running on 2 \glspl{hthrd} per core before running on multiple sockets.
    149 The effect of that setup is seen from 25 to 48 \procs, running on 24 core with 2 \glspl{hthrd} per core.
    150 This effect is again repeated from 73 and 96 \procs, where it happens on the second CPU.
    151 When running only a single cycle, most runtime achieve lower throughput because of the idle-sleep mechanism.
    152 In Figure~\ref{fig:cycle:jax:ops} and \ref{fig:cycle:jax:ns}
    153 
    154 Figure~\ref{fig:cycle:nasus} show effectively the same story happening on AMD as it does on Intel.
    155 The different performance bumps due to cache topology happen at different locations and there is a little more variability.
    156 However, in all cases \CFA is still competitive with other runtimes.
    157 
     162
     163When running only a single cycle, the story is slightly different.
     164\CFA and tokio obtain very smiliar results overall, but tokio shows notably more variations in the results.
     165While \CFA, Go and tokio achive equivalent performance with 100 cycles per \proc, with only 1 cycle per \proc Go achieves slightly better performance.
     166This difference in throughput and scalability is due to the idle-sleep mechanism.
     167With very few cycles, stealing or helping can cause a cascade of tasks migration and trick \proc into very short idle sleeps.
     168Both effect will negatively affect performance.
     169
     170An interesting and unusual result is that libfibre achieves better performance with fewer cycle.
     171This suggest that the cascade effect is never present in libfibre and that some bottleneck disappears in this context.
     172However, I did not investigate this result any deeper.
     173
     174Figure~\ref{fig:cycle:nasus} show a similar story happening on AMD as it does on Intel.
     175The different performance improvements and plateaus due to cache topology appear at the expected \proc counts of 64, 128 and 192, for the same reasons as on Intel.
     176Unlike Intel, on AMD all 4 runtimes achieve very similar throughput and scalability for 100 cycles per \proc.
     177
     178In the 1 cycle per \proc experiment, the same performance increase for libfibre is visible.
     179However, unlike on Intel, tokio achieves the same performance as Go rather than \CFA.
     180This leaves \CFA trailing behind in this particular case, but only at hight core counts.
     181Presumably this is because in this case, \emph{any} helping is likely to cause a cascade of \procs running out of work and attempting to steal.
     182Since this effect is only problematic in cases with 1 \at per \proc it is not very meaningful for the general performance.
     183
     184The conclusion from both architectures is that all of the compared runtime have fairly equivalent performance in this scenario.
     185Which demonstrate that in this case \CFA achieves equivalent performance.
    158186
    159187\section{Yield}
    160188For completion, the classic yield benchmark is included.
    161 This benchmark is simpler than the cycle test: it creates many \glspl{at} that call @yield@.
     189This benchmark is simpler than the cycle test: it creates many \ats that call @yield@.
    162190As mentioned, this benchmark may not be representative because of optimization shortcuts in @yield@.
    163 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.
     191The 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.
    164192This scenario can put a strain on the idle-sleep handling compared to scenarios where there is plenty of work.
    165193Figure~\ref{fig:yield:code} shows pseudo code for this benchmark, where the @wait/next.wake@ is replaced by @yield@.
     
    208236                \label{fig:yield:jax:low:ns}
    209237        }
    210         \caption[Yield Benchmark on Intel]{Yield Benchmark on Intel\smallskip\newline Throughput and Scalability as a function of \proc count, using 1 \ats per \proc. For Throughput higher is better, for Scalability lower is better.}
     238        \caption[Yield Benchmark on Intel]{Yield Benchmark on Intel\smallskip\newline Throughput and Scalability as a function of \proc count, using 1 \ats per \proc. For Throughput higher is better, for Scalability lower is better. Each series represent 15 independent runs, the dotted lines are extremums while the solid line is the medium.}
    211239        \label{fig:yield:jax}
    212240\end{figure}
     
    230258                        \input{result.yield.nasus.ns.pstex_t}
    231259                }
    232 
     260                \label{fig:yield:nasus:ns}
    233261        }
    234262        \subfloat[][Scalability, 1 \at per \proc]{
     
    238266                \label{fig:yield:nasus:low:ns}
    239267        }
    240         \caption[Yield Benchmark on AMD]{Yield Benchmark on AMD\smallskip\newline Throughput and Scalability as a function of \proc count, using 1 \ats per \proc. For Throughput higher is better, for Scalability lower is better.}
     268        \caption[Yield Benchmark on AMD]{Yield Benchmark on AMD\smallskip\newline Throughput and Scalability as a function of \proc count, using 1 \ats per \proc. For Throughput higher is better, for Scalability lower is better. Each series represent 15 independent runs, the dotted lines are extremums while the solid line is the medium.}
    241269        \label{fig:yield:nasus}
    242270\end{figure}
    243 
    244 Figure~\ref{fig:yield:jax} shows the throughput as a function of \proc count, where each run uses 100 \ats per \proc.
     271Figure~\ref{fig:yield:jax} shows the throughput as a function of \proc count on Intel.
    245272It is fairly obvious why I claim this benchmark is more artificial.
    246273The throughput is dominated by the mechanism used to handle the @yield@.
    247 \CFA does not have special handling for @yield@ and achieves very similar performance to the cycle benchmark.
    248 Libfibre uses the fact that @yield@ doesn't change the number of ready fibres and by-passes the idle-sleep mechanism entirely, producing significantly better throughput.
    249 Go puts yielding goroutines on a secondary global ready-queue, giving them lower priority.
    250 The result is that multiple \glspl{hthrd} contend for the global queue and performance suffers drastically.
    251 Based on the scalability, Tokio obtains the same poor performance and therefore it is likely it handles @yield@ in a similar fashion.
     274\CFA does not have special handling for @yield@ but the experiment requires less synchronization.
     275As a result achieves better performance than the cycle benchmark, but still comparable.
    252276
    253277When the number of \ats is reduce to 1 per \proc, the cost of idle sleep also comes into play in a very significant way.
    254 If anything causes a \at migration, where two \ats end-up on the same ready-queue, work-stealing will start occuring and cause every \at to shuffle around.
     278If anything causes a \at migration, where two \ats end-up on the same ready-queue, work-stealing will start occuring and could cause several \ats to shuffle around.
    255279In the process, several \procs can go to sleep transiently if they fail to find where the \ats were shuffled to.
    256280In \CFA, spurious bursts of latency can trick a \proc into helping, triggering this effect.
    257 However, since user-level threading with equal number of \ats and \procs is a somewhat degenerate case, especially when ctxswitching very often, this result is not particularly meaningful and is only included for completness.
     281However, since user-level threading with equal number of \ats and \procs is a somewhat degenerate case, especially when context-switching very often, this result is not particularly meaningful and is only included for completness.
     282
     283Libfibre uses the fact that @yield@ doesn't change the number of ready fibres and by-passes the idle-sleep mechanism entirely, producing significantly better throughput.
     284Additionally, when only running 1 \at per \proc, libfibre optimizes further and forgoes the context-switch entirely.
     285This results in incredible performance results comparing to the other runtimes.
     286
     287In stark contrast with libfibre, Go puts yielding goroutines on a secondary global ready-queue, giving them lower priority.
     288The result is that multiple \glspl{hthrd} contend for the global queue and performance suffers drastically.
     289Based on the scalability, Tokio obtains the similarly poor performance and therefore it is likely it handles @yield@ in a similar fashion.
     290However, it must be doing something different since it does scale at low \proc count.
    258291
    259292Again, Figure~\ref{fig:yield:nasus} show effectively the same story happening on AMD as it does on Intel.
     
    265298\section{Churn}
    266299The Cycle and Yield benchmark represent an \emph{easy} scenario for a scheduler, \eg an embarrassingly parallel application.
    267 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.
    268 
    269 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.
    270 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.
    271 This dequeuing results in either contention on the remote queue and/or \glspl{rmr} on \gls{at} data structure.
    272 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.
     300In these benchmarks, \ats can be easily partitioned over the different \procs upfront and none of the \ats communicate with each other.
     301
     302The Churn benchmark represents more chaotic executions, where there is more communication among \ats but no apparent relation between the last \proc on which a \at ran and blocked, and the \proc that subsequently unblocks it.
     303With 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 place it on a remote queue.
     304This enqueuing results in either contention on the remote queue and/or \glspl{rmr} on the \at data structure.
     305In either case, this benchmark aims to measure how well each scheduler handles these cases, since both cases can lead to performance degradation if not handled correctly.
    273306
    274307This benchmark uses a fixed-size array of counting semaphores.
    275 Each \gls{at} picks a random semaphore, @V@s it to unblock any \at waiting, and then @P@s on the semaphore.
    276 This creates a flow where \glspl{at} push each other out of the semaphores before being pushed out themselves.
    277 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}.
     308Each \at picks a random semaphore, @V@s it to unblock any \at waiting, and then @P@s on the semaphore.
     309This creates a flow where \ats push each other out of the semaphores before being pushed out themselves.
     310For this benchmark to work, the number of \ats must be equal or greater than the number of semaphores plus the number of \procs.
    278311Note, the nature of these semaphores mean the counter can go beyond 1, which can lead to nonblocking calls to @P@.
    279312Figure~\ref{fig:churn:code} shows pseudo code for this benchmark, where the @yield@ is replaced by @V@ and @P@.
     
    298331
    299332\subsection{Results}
    300 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.
    301 
    302333\begin{figure}
    303334        \subfloat[][Throughput, 100 \ats per \proc]{
     
    307338                \label{fig:churn:jax:ops}
    308339        }
    309         \subfloat[][Throughput, 1 \ats per \proc]{
     340        \subfloat[][Throughput, 2 \ats per \proc]{
    310341                \resizebox{0.5\linewidth}{!}{
    311342                        \input{result.churn.low.jax.ops.pstex_t}
     
    318349                        \input{result.churn.jax.ns.pstex_t}
    319350                }
    320 
    321         }
    322         \subfloat[][Latency, 1 \ats per \proc]{
     351                \label{fig:churn:jax:ns}
     352        }
     353        \subfloat[][Latency, 2 \ats per \proc]{
    323354                \resizebox{0.5\linewidth}{!}{
    324355                        \input{result.churn.low.jax.ns.pstex_t}
     
    326357                \label{fig:churn:jax:low:ns}
    327358        }
    328         \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.
    329         Throughput is the total operation per second across all cores. Latency is the duration of each operation.}
     359        \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. For Throughput higher is better, for Scalability lower is better. Each series represent 15 independent runs, the dotted lines are extremums while the solid line is the medium.}
    330360        \label{fig:churn:jax}
    331361\end{figure}
    332362
    333 \todo{results discussion}
     363\begin{figure}
     364        \subfloat[][Throughput, 100 \ats per \proc]{
     365                \resizebox{0.5\linewidth}{!}{
     366                        \input{result.churn.nasus.ops.pstex_t}
     367                }
     368                \label{fig:churn:nasus:ops}
     369        }
     370        \subfloat[][Throughput, 2 \ats per \proc]{
     371                \resizebox{0.5\linewidth}{!}{
     372                        \input{result.churn.low.nasus.ops.pstex_t}
     373                }
     374                \label{fig:churn:nasus:low:ops}
     375        }
     376
     377        \subfloat[][Latency, 100 \ats per \proc]{
     378                \resizebox{0.5\linewidth}{!}{
     379                        \input{result.churn.nasus.ns.pstex_t}
     380                }
     381                \label{fig:churn:nasus:ns}
     382        }
     383        \subfloat[][Latency, 2 \ats per \proc]{
     384                \resizebox{0.5\linewidth}{!}{
     385                        \input{result.churn.low.nasus.ns.pstex_t}
     386                }
     387                \label{fig:churn:nasus:low:ns}
     388        }
     389        \caption[Churn Benchmark on AMD]{\centering Churn Benchmark on AMD\smallskip\newline Throughput and latency of the Churn on the benchmark on the AMD machine.
     390        For Throughput higher is better, for Scalability lower is better. Each series represent 15 independent runs, the dotted lines are extremums while the solid line is the medium.}
     391        \label{fig:churn:nasus}
     392\end{figure}
     393Figure~\ref{fig:churn:jax} and Figure~\ref{fig:churn:nasus} show the throughput as a function of \proc count on Intel and AMD respectively.
     394It uses the same representation as the previous benchmark : 15 runs where the dashed line show the extremums and the solid line the median.
     395The performance cost of crossing the cache boundaries is still visible at the same \proc count.
     396However, this benchmark has performance dominated by the cache traffic as \proc are constantly accessing the eachother's data.
     397Scalability is notably worst than the previous benchmarks since there is inherently more communication between processors.
     398Indeed, once the number of \glspl{hthrd} goes beyond a single socket, performance ceases to improve.
     399An interesting aspect to note here is that the runtimes differ in how they handle this situation.
     400Indeed, when a \proc unparks a \at that was last run on a different \proc, the \at could be appended to the ready-queue local \proc or to the ready-queue of the remote \proc, which previously ran the \at.
     401\CFA, tokio and Go all use the approach of unparking to the local \proc while Libfibre unparks to the remote \proc.
     402In this particular benchmark, the inherent chaos of the benchmark in addition to small memory footprint means neither approach wins over the other.
     403
     404Like for the cycle benchmark, here all runtimes achieve fairly similar performance.
     405Performance improves as long as all \procs fit on a single socket.
     406Beyond that performance starts to suffer from increased caching costs.
     407
     408Indeed on Figures~\ref{fig:churn:jax:ops} and \ref{fig:churn:jax:ns} show that with 1 and 100 \ats per \proc, \CFA, libfibre, Go and tokio achieve effectively equivalent performance for most \proc count.
     409
     410However, Figure~\ref{fig:churn:nasus} again shows a somewhat different story on AMD.
     411While \CFA, libfibre, and tokio achieve effectively equivalent performance for most \proc count, Go starts with better scaling at very low \proc counts but then performance quickly plateaus, resulting in worse performance at higher \proc counts.
     412This performance difference is visible at both high and low \at counts.
     413
     414One possible explanation for this difference is that since Go has very few available concurrent primitives, a channel was used instead of a semaphore.
     415On paper a semaphore can be replaced by a channel and with zero-sized objects passed along equivalent performance could be expected.
     416However, in practice there can be implementation difference between the two.
     417This is especially true if the semaphore count can get somewhat high.
     418Note that this replacement is also made in the cycle benchmark, however in that context it did not seem to have a notable impact.
     419
     420As second possible explanation is that Go may sometimes use the heap when allocating variables based on the result of escape analysis of the code.
     421It is possible that variables that should be placed on the stack are placed on the heap.
     422This could cause extra pointer chasing in the benchmark, heightning locality effects.
     423Depending on how the heap is structure, this could also lead to false sharing.
     424
     425The objective of this benchmark is to demonstrate that unparking \ats from remote \procs do not cause too much contention on the local queues.
     426Indeed, the fact all runtimes achieve some scaling at lower \proc count demontrate that migrations do not need to be serialized.
     427Again these result demonstrate \CFA achieves satisfactory performance.
    334428
    335429\section{Locality}
    336 
    337 \todo{code, setup, results}
     430\begin{figure}
     431\begin{cfa}
     432Thread.main() {
     433        count := 0
     434        for {
     435                r := random() % len(spots)
     436                // go through the array
     437                @work( a )@
     438                spots[r].V()
     439                spots[r].P()
     440                count ++
     441                if must_stop() { break }
     442        }
     443        global.count += count
     444}
     445\end{cfa}
     446\begin{cfa}
     447Thread.main() {
     448        count := 0
     449        for {
     450                r := random() % len(spots)
     451                // go through the array
     452                @work( a )@
     453                // pass array to next thread
     454                spots[r].V( @a@ )
     455                @a = @spots[r].P()
     456                count ++
     457                if must_stop() { break }
     458        }
     459        global.count += count
     460}
     461\end{cfa}
     462\caption[Locality Benchmark : Pseudo Code]{Locality Benchmark : Pseudo Code}
     463\label{fig:locality:code}
     464\end{figure}
     465As mentionned in the churn benchmark, when unparking a \at, it is possible to either unpark to the local or remote ready-queue.
     466\footnote{It is also possible to unpark to a third unrelated ready-queue, but without additional knowledge about the situation, there is little to suggest this would not degrade performance.}
     467The locality experiment includes two variations of the churn benchmark, where an array of data is added.
     468In both variations, before @V@ing the semaphore, each \at increment random cells inside the array.
     469The @share@ variation then passes the array to the shadow-queue of the semaphore, transferring ownership of the array to the woken thread.
     470In the @noshare@ variation the array is not passed on and each thread continously accesses its private array.
     471
     472The objective here is to highlight the different decision made by the runtime when unparking.
     473Since each thread unparks a random semaphore, it means that it is unlikely that a \at will be unparked from the last \proc it ran on.
     474In the @share@ version, this means that unparking the \at on the local \proc is appropriate since the data was last modified on that \proc.
     475In the @noshare@ version, the unparking the \at on the remote \proc is the appropriate approach.
     476
     477The expectation for this benchmark is to see a performance inversion, where runtimes will fare notably better in the variation which matches their unparking policy.
     478This should lead to \CFA, Go and Tokio achieving better performance in @share@ while libfibre achieves better performance in @noshare@.
     479Indeed, \CFA, Go and Tokio have the default policy of unpark \ats on the local \proc, where as libfibre has the default policy of unparks \ats wherever they last ran.
     480
     481\subsection{Results}
     482\begin{figure}
     483        \subfloat[][Throughput share]{
     484                \resizebox{0.5\linewidth}{!}{
     485                        \input{result.locality.share.jax.ops.pstex_t}
     486                }
     487                \label{fig:locality:jax:share:ops}
     488        }
     489        \subfloat[][Throughput noshare]{
     490                \resizebox{0.5\linewidth}{!}{
     491                        \input{result.locality.noshare.jax.ops.pstex_t}
     492                }
     493                \label{fig:locality:jax:noshare:ops}
     494        }
     495
     496        \subfloat[][Scalability share]{
     497                \resizebox{0.5\linewidth}{!}{
     498                        \input{result.locality.share.jax.ns.pstex_t}
     499                }
     500                \label{fig:locality:jax:share:ns}
     501        }
     502        \subfloat[][Scalability noshare]{
     503                \resizebox{0.5\linewidth}{!}{
     504                        \input{result.locality.noshare.jax.ns.pstex_t}
     505                }
     506                \label{fig:locality:jax:noshare:ns}
     507        }
     508        \caption[Locality Benchmark on Intel]{Locality Benchmark on Intel\smallskip\newline Throughput and Scalability as a function of \proc count. For Throughput higher is better, for Scalability lower is better. Each series represent 15 independent runs, the dotted lines are extremums while the solid line is the medium.}
     509        \label{fig:locality:jax}
     510\end{figure}
     511\begin{figure}
     512        \subfloat[][Throughput share]{
     513                \resizebox{0.5\linewidth}{!}{
     514                        \input{result.locality.share.nasus.ops.pstex_t}
     515                }
     516                \label{fig:locality:nasus:share:ops}
     517        }
     518        \subfloat[][Throughput noshare]{
     519                \resizebox{0.5\linewidth}{!}{
     520                        \input{result.locality.noshare.nasus.ops.pstex_t}
     521                }
     522                \label{fig:locality:nasus:noshare:ops}
     523        }
     524
     525        \subfloat[][Scalability share]{
     526                \resizebox{0.5\linewidth}{!}{
     527                        \input{result.locality.share.nasus.ns.pstex_t}
     528                }
     529                \label{fig:locality:nasus:share:ns}
     530        }
     531        \subfloat[][Scalability noshare]{
     532                \resizebox{0.5\linewidth}{!}{
     533                        \input{result.locality.noshare.nasus.ns.pstex_t}
     534                }
     535                \label{fig:locality:nasus:noshare:ns}
     536        }
     537        \caption[Locality Benchmark on AMD]{Locality Benchmark on AMD\smallskip\newline Throughput and Scalability as a function of \proc count. For Throughput higher is better, for Scalability lower is better. Each series represent 15 independent runs, the dotted lines are extremums while the solid line is the medium.}
     538        \label{fig:locality:nasus}
     539\end{figure}
     540
     541Figure~\ref{fig:locality:jax} and \ref{fig:locality:nasus} shows the results on Intel and AMD respectively.
     542In 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@.
     543
     544On Intel, Figure~\ref{fig:locality:jax} shows Go trailing behind the 3 other runtimes.
     545On the left of the figure showing the results for the shared variation, where \CFA and tokio slightly outperform libfibre as expected.
     546And correspondingly on the right, we see the expected performance inversion where libfibre now outperforms \CFA and tokio.
     547Otherwise the results are similar to the churn benchmark, with lower throughtput due to the array processing.
     548Presumably the reason why Go trails behind are the same as in Figure~\ref{fig:churn:nasus}.
     549
     550Figure~\ref{fig:locality:nasus} shows the same experiment on AMD.
     551\todo{why is cfa slower?}
     552Again, we see the same story, where tokio and libfibre swap places and Go trails behind.
    338553
    339554\section{Transfer}
    340555The last benchmark is more of an experiment than a benchmark.
    341556It tests the behaviour of the schedulers for a misbehaved workload.
    342 In this workload, one of the \gls{at} is selected at random to be the leader.
    343 The leader then spins in a tight loop until it has observed that all other \glspl{at} have acknowledged its leadership.
    344 The leader \gls{at} then picks a new \gls{at} to be the ``spinner'' and the cycle repeats.
    345 The benchmark comes in two flavours for the non-leader \glspl{at}:
     557In this workload, one of the \at is selected at random to be the leader.
     558The leader then spins in a tight loop until it has observed that all other \ats have acknowledged its leadership.
     559The leader \at then picks a new \at to be the next leader and the cycle repeats.
     560The benchmark comes in two flavours for the non-leader \ats:
    346561once they acknowledged the leader, they either block on a semaphore or spin yielding.
    347562
    348563The experiment is designed to evaluate the short-term load-balancing of a scheduler.
    349 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.
    350 This problem occurs because the spinning \gls{at} is effectively preventing the \gls{proc} from running any other \glspl{thrd}.
    351 In the semaphore flavour, the number of runnable \glspl{at} eventually dwindles down to only the leader.
    352 This scenario is a simpler case to handle for schedulers since \glspl{proc} eventually run out of work.
    353 In the yielding flavour, the number of runnable \glspl{at} stays constant.
     564Indeed, schedulers where the runnable \ats are partitioned on the \procs may need to balance the \ats for this experiment to terminate.
     565This problem occurs because the spinning \at is effectively preventing the \proc from running any other \at.
     566In the semaphore flavour, the number of runnable \ats eventually dwindles down to only the leader.
     567This scenario is a simpler case to handle for schedulers since \procs eventually run out of work.
     568In the yielding flavour, the number of runnable \ats stays constant.
    354569This scenario is a harder case to handle because corrective measures must be taken even when work is available.
    355570Note, runtime systems with preemption circumvent this problem by forcing the spinner to yield.
    356571
    357 \todo{code, setup, results}
     572In both flavours, the experiment effectively measures how long it takes for all \ats to run once after a given synchronization point.
     573In 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:
     574$ \frac{CSL + SL}{NP - 1}$, where $CSL$ is the context switch latency, $SL$ is the cost for enqueuing and dequeuing a \at and $NP$ is the number of \procs.
     575However, if the scheduler allows \ats to run many times before other \ats are able to run once, this delay will increase.
     576The semaphore version is an approximation of the strictly FIFO scheduling, where none of the \ats \emph{attempt} to run more than once.
     577The benchmark effectively provides the fairness guarantee in this case.
     578In the yielding version however, the benchmark provides no such guarantee, which means the scheduler has full responsability and any unfairness will be measurable.
     579
     580While this is a fairly artificial scenario, it requires only a few simple pieces.
     581The yielding version of this simply creates a scenario where a \at runs uninterrupted in a saturated system, and starvation has an easily measured impact.
     582However, \emph{any} \at that runs uninterrupted for a significant period of time in a saturated system could lead to this kind of starvation.
    358583
    359584\begin{figure}
     
    365590                return
    366591        }
    367 
    368592        // Wait for everyone to acknowledge my leadership
    369593        start: = timeNow()
     
    374598                }
    375599        }
    376 
    377600        // pick next leader
    378601        leader := threads[ prng() % len(threads) ]
    379 
    380602        // wake every one
    381603        if ! exhaust {
     
    385607        }
    386608}
    387 
    388609Thread.wait() {
    389610        this.idx_seen := lead_idx
     
    391612        else { yield() }
    392613}
    393 
    394614Thread.main() {
    395615        while !done  {
     
    404624
    405625\subsection{Results}
    406 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.
    407 
    408 \todo{results discussion}
     626\begin{figure}
     627\begin{centering}
     628\begin{tabular}{r | c c c c | c c c c }
     629Machine   &                     \multicolumn{4}{c |}{Intel}                &          \multicolumn{4}{c}{AMD}                    \\
     630Variation & \multicolumn{2}{c}{Park} & \multicolumn{2}{c |}{Yield} & \multicolumn{2}{c}{Park} & \multicolumn{2}{c}{Yield} \\
     631\procs    &      2      &      192   &      2      &      192      &      2      &      256   &      2      &      256    \\
     632\hline
     633\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   \\
     634libfibre  & 127 $\mu$s  & ~33.5 ms   & DNC         & DNC           & 156 $\mu$s  & ~36.7 ms   & DNC         & DNC         \\
     635Go        & 106 $\mu$s  & ~64.0 ms   & 24.6 ms     & 74.3 ms       & 271 $\mu$s  & 121.6 ms   & ~~1.21~ms   & 117.4 ms    \\
     636tokio     & 289 $\mu$s  & 180.6 ms   & DNC         & DNC           & 157 $\mu$s  & 111.0 ms   & DNC         & DNC
     637\end{tabular}
     638\end{centering}
     639\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. DNC stands for ``did not complete'', meaning that after 5 seconds of a new leader being decided, some \ats still had not acknowledged the new leader. }
     640\label{fig:transfer:res}
     641\end{figure}
     642Figure~\ref{fig:transfer:res} shows the result for the transfer benchmark with 2 \procs and all \procs, where each experiement runs 100 \at per \proc.
     643Note 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.
     644As such, data points that are the on the same order of magnitude as eachother should be basically considered equal.
     645The takeaway of this experiement is the presence of very large differences.
     646The semaphore variation is denoted ``Park'', where the number of \ats dwindles down as the new leader is acknowledged.
     647The yielding variation is denoted ``Yield''.
     648The experiement was only run for the extremums of the number of cores since the scaling per core behaves like previous experiements.
     649This experiments clearly demonstrate that while the other runtimes achieve similar performance in previous benchmarks, here \CFA achieves significantly better fairness.
     650The semaphore variation serves as a control group, where all runtimes are expected to transfer leadership fairly quickly.
     651Since \ats block after acknowledging the leader, this experiment effectively measures how quickly \procs can steal \ats from the \proc running leader.
     652Figure~\ref{fig:transfer:res} shows that while Go and Tokio are slower, all runtime achieve decent latency.
     653However, the yielding variation shows an entirely different picture.
     654Since libfibre and tokio have a traditional work-stealing scheduler, \procs that have \ats on their local queues will never steal from other \procs.
     655The result is that the experiement simply does not complete for these runtime.
     656Without \procs stealing from the \proc running the leader, the experiment will simply never terminate.
     657Go manages to complete the experiement because it adds preemption on top of classic work-stealing.
     658However, since preemption is fairly costly it achieves significantly worst performance.
     659In contrast, \CFA achieves equivalent performance in both variations, demonstrating very good fairness.
     660Interestingly \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

    r741e22c r71cf630  
    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 incarnation of the same problems.
     17As a result, there are no standard naming conventions for scheduling that is respected across these communities.
    1818This document uses the term \newterm{\Gls{at}} to refer to the abstract objects being scheduled and the term \newterm{\Gls{proc}} to refer to the concrete objects executing these \ats.
    1919
     
    2828\section{Dynamic Scheduling}
    2929\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. 
     30Hence, unlike static scheduling, \ats dependencies are conditional and detected at runtime.
    3131This 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.
    3232Furthermore, each \ats has the responsibility of adding dependent \ats back into the system once dependencies are fulfilled.
     
    5151Most common operating systems use some variant on priorities with overlaps and dynamic priority adjustments.
    5252For example, Microsoft Windows uses a pair of priorities
    53 \cit{https://docs.microsoft.com/en-us/windows/win32/procthread/scheduling-priorities,https://docs.microsoft.com/en-us/windows/win32/taskschd/taskschedulerschema-priority-settingstype-element}, one specified by users out of ten possible options and one adjusted by the system.
     53\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}
     
    137137The scheduler may also temporarily adjust priorities after certain effects like the completion of I/O requests.
    138138
    139 \todo{load balancing}
     139In~\cite{russinovich2009windows}, Chapter 1 section ``Processes, Threads, and Jobs'' discusses the scheduling policy more in depth.
     140Multicore scheduling is based on a combination of priorities, preferred \proc.
     141Each \at is assigned an \newterm{ideal} \proc using a round-robin policy.
     142\Gls{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.
     143This is similar to a variation of work stealing, where the stealing \proc restore the \at to its original \proc after running it, but with priorities added onto the mix.
    140144
    141145\paragraph{Apple OS X}
     
    156160\paragraph{Go}\label{GoSafePoint}
    157161Go'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.
     162Preemption is present, but only at safe-points,~\cite{go:safepoints} which are inserted detection code at various frequent access boundaries.
    159163
    160164The algorithm is as follows :
     
    199203
    200204\paragraph{Grand Central Dispatch}
    201 An Apple\cit{Official GCD source} API that offers task parallelism~\cite{wiki:taskparallel}.
     205An Apple\cite{apple:gcd} API that offers task parallelism~\cite{wiki:taskparallel}.
    202206Its distinctive aspect is multiple ``Dispatch Queues'', some of which are created by programmers.
    203207Each queue has its own local ordering guarantees, \eg \ats on queue $A$ are executed in \emph{FIFO} order.
    204208
    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.
     209While the documentation only gives limited insight into the scheduling and load balancing approach, \cite{apple:gcd2} suggests an approach fairly classic;
     210Where each \proc has a queue of \newterm{blocks} to run, effectively \ats, and they drain their respective queues in \glsxtrshort{fifo}.
     211They seem to add the concept of dependent queues with clear ordering, where a executing a block ends-up scheduling more blocks.
     212In terms of semantics, these Dispatch Queues seem to be very similar to Intel\textregistered ~TBB @execute()@ and predecessor semantics.
    210213
    211214\paragraph{LibFibre}
  • doc/theses/thierry_delisle_PhD/thesis/text/front.tex

    r741e22c r71cf630  
    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
     
    124124
    125125User-Level threading (M:N) is gaining popularity over kernel-level threading (1:1) in many programming languages.
    126 The user-level approach is often a better mechanism to express complex concurrent applications by efficiently running 10,000+ threads on multi-core systems.
    127 Indeed, over-partitioning into small work-units significantly eases load balancing while providing user threads for each unit of work offers greater freedom to the programmer.
     126The user threading approach is often a better mechanism to express complex concurrent applications by efficiently running 10,000+ threads on multi-core 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.
    128128To manage these high levels of concurrency, the underlying runtime must efficiently schedule many user threads across a few kernel threads;
    129 which begs of the question of how many kernel threads are needed and when should the need be re-evaliated.
    130 Furthermore, the scheduler must prevent kernel threads from blocking, otherwise user-thread parallelism drops, and put idle kernel-threads to sleep to avoid wasted resources.
     129which begs of 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 kernel-threads be put to sleep to avoid wasting CPU resources.
    131132Finally, the scheduling system must provide fairness to prevent a user thread from monopolizing a kernel thread;
    132 otherwise other user threads can experience short/long term starvation or kernel threads can deadlock waiting for events to occur.
     133otherwise other user threads can experience short/long term starvation or kernel threads can deadlock waiting for events to occur on busy kernel threads.
    133134
    134135This thesis analyses multiple scheduler systems, where each system attempts to fulfill the necessary requirements for user-level threading.
    135 The predominant technique for manage high levels of concurrency is sharding the ready-queue with one queue per kernel-threads and using some form of work stealing/sharing to dynamically rebalance workload shifts.
    136 Fairness can be handled through preemption or ad-hoc solutions, which leads to coarse-grained fairness and pathological cases.
     136The 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.
    137137Preventing kernel blocking is accomplish by transforming kernel locks and I/O operations into user-level operations that do not block the kernel thread or spin up new kernel threads to manage the blocking.
    138 
    139 After selecting specific approaches to these scheduling issues, a complete implementation was created and tested in the \CFA (C-for-all) runtime system.
     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.
    140141\CFA is a modern extension of C using user-level threading as its fundamental threading model.
    141142As one of its primary goals, \CFA aims to offer increased safety and productivity without sacrificing performance.
    142143The new scheduler achieves this goal by demonstrating equivalent performance to work-stealing schedulers while offering better fairness.
    143 This is achieved through several optimization that successfully eliminate the cost of the additional fairness, some of these optimization relying on interesting hardware optimizations present on most modern cpus.
    144 This work also includes support for user-level \io, allowing programmers to have many more user-threads blocking on \io operations than there are \glspl{kthrd}.
    145 The implementation is based on @io_uring@, a recent addition to the Linux kernel, and achieves the same performance and fairness.
    146 To complete the picture, the idle sleep mechanism that goes along is presented.
    147 
    148 
     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 of the application.
    149149
    150150\cleardoublepage
     
    155155\begin{center}\textbf{Acknowledgements}\end{center}
    156156
    157 \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.
    158164\cleardoublepage
    159165
  • doc/theses/thierry_delisle_PhD/thesis/text/intro.tex

    r741e22c r71cf630  
    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 multi-core 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 of 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 analyses multiple scheduler systems, where each system attempts to fulfill the necessary 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 accomplish 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.
     17
     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.
     21
     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 affect 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
    1330
    1431\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.
     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 in an efficient manner, 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.
     37A general-purpose dynamic-scheduler for an open system cannot anticipate work requests, so its performance is rarely optimal.
     38Even with complete knowledge of arrive 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.
    2340
    2441Scheduling occurs at discreet points when there are transitions in a system.
     
    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)
     50\item
     51scheduler assigns a thread to a computing resource, \eg CPU (ready $\rightarrow$ running)
    3352\item
    3453timer alarm for preemption (running $\rightarrow$ ready)
     
    3655long 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 thread 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 an global shared queue to MQMS or adding multiple private queues with distinc 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
     
    7086Essentially, 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.
    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 processors 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 increases 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.
     107\section{\CFA programming language}
     108
     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.
    94118More 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).
     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 of the application.
    95121
     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

    r741e22c r71cf630  
    1 \chapter{User Level \io}
     1\chapter{User Level \io}\label{userio}
    22As 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.
    33Different 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.
     
    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}.
     
    141141In the worst case, where all \glspl{thrd} are consistently blocking on \io, it devolves into 1-to-1 threading.
    142142However, 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.
     143This 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.
    144144This advantage is especially relevant for languages like Go, which offer a homogeneous \glsxtrshort{api} across all platforms.
    145145As opposed to C, which has a very limited standard api for \io, \eg, the C standard library has no networking.
     
    148148These options effectively fall into two broad camps: waiting for \io to be ready versus waiting for \io to complete.
    149149All 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@.
     150For example, Free BSD offers @kqueue@~\cite{MAN:bsd/kqueue}, which behaves similarly to @epoll@, but with some small quality of use improvements, while Windows (Win32)~\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@.
    151151
    152152For this project, I selected @io_uring@, in large parts because of its generality.
  • doc/theses/thierry_delisle_PhD/thesis/text/practice.tex

    r741e22c r71cf630  
    6060To achieve this goal requires each reader to have its own memory to mark as locked and unlocked.
    6161The 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.
     62The write acquires the global lock, guaranteeing mutual exclusion among writers, and then acquires each of the local reader locks.
    6363Acquiring 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 
    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 location.
    6867
    6968\begin{figure}
     
    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.
     114
    115115An interesting sub-part of this heuristic is what to do with bursts of \ats that become ready.
    116116Since waking up a sleeping \proc can have notable latency, it is possible multiple \ats become ready while a single \proc is waking up.
     
    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{eventfd}.
    140140This Linux feature is a file descriptor that behaves like \io, \ie, uses @read@ and @write@, but also behaves like a semaphore.
    141141Indeed, all reads and writes must use a word-sized values, \ie 64 or 32 bits.
     
    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@.
     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@.
    220220The 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}.
    221221A \proc begins its idle sleep by adding itself to the idle list before searching for an \at.
  • doc/theses/thierry_delisle_PhD/thesis/text/runtime.tex

    r741e22c r71cf630  
    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
     
    6262Only UNIX @man@ pages identify whether or not a library function is thread safe, and hence, may block on a pthreads lock or system call; hence interoperability with UNIX library functions is a challenge for an M:N threading model.
    6363
    64 Languages like Go and Java, which have strict interoperability with C\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:
  • doc/theses/thierry_delisle_PhD/thesis/thesis.tex

    r741e22c r71cf630  
    247247\input{text/eval_macro.tex}
    248248\part{Conclusion \& Annexes}
     249\input{text/conclusion.tex}
     250
    249251
    250252%----------------------------------------------------------------------
     
    280282% Appendices
    281283
    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}
     284% % The \appendix statement indicates the beginning of the appendices.
     285% \appendix
     286% % Add an un-numbered title page before the appendices and a line in the Table of Contents
     287% \chapter*{APPENDICES}
     288% \addcontentsline{toc}{chapter}{APPENDICES}
     289% % Appendices are just more chapters, with different labeling (letters instead of numbers).
     290% %======================================================================
     291% \chapter[PDF Plots From Matlab]{Matlab Code for Making a PDF Plot}
     292% \label{AppendixA}
     293% % Tip 4: Example of how to get a shorter chapter title for the Table of Contents
     294% %======================================================================
     295% \section{Using the GUI}
     296% 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.
     297
     298% To set the figure size and to save as PDF or other file formats, click the Export Setup button in the figure Property Editor.
     299
     300% \section{From the Command Line}
     301% All figure properties can also be manipulated from the command line. Here's an example:
     302% \begin{verbatim}
     303% x=[0:0.1:pi];
     304% hold on % Plot multiple traces on one figure
     305% plot(x,sin(x))
     306% plot(x,cos(x),'--r')
     307% plot(x,tan(x),'.-g')
     308% title('Some Trig Functions Over 0 to \pi') % Note LaTeX markup!
     309% legend('{\it sin}(x)','{\it cos}(x)','{\it tan}(x)')
     310% hold off
     311% set(gca,'Ylim',[-3 3]) % Adjust Y limits of "current axes"
     312% set(gcf,'Units','inches') % Set figure size units of "current figure"
     313% set(gcf,'Position',[0,0,6,4]) % Set figure width (6 in.) and height (4 in.)
     314% cd n:\thesis\plots % Select where to save
     315% print -dpdf plot.pdf % Save as PDF
     316% \end{verbatim}
    315317
    316318% GLOSSARIES (Lists of definitions, abbreviations, symbols, etc. provided by the glossaries-extra package)
  • libcfa/src/concurrency/io.cfa

    r741e22c r71cf630  
    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 );
     
    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
     
    434434                __STATS__( true, if(!lazy) io.submit.eagr += 1; )
    435435                processor * proc = __cfaabi_tls.this_processor;
    436                 $io_context * ctx = proc->io.ctx;
     436                io_context$ * ctx = proc->io.ctx;
    437437                /* paranoid */ verify( __cfaabi_tls.this_processor );
    438438                /* paranoid */ verify( ctx );
     
    465465        // by io_uring
    466466        // This cannot be done by multiple threads
    467         static __u32 __release_sqes( struct $io_context & ctx ) {
     467        static __u32 __release_sqes( struct io_context$ & ctx ) {
    468468                const __u32 mask = *ctx.sq.mask;
    469469
     
    538538        }
    539539
    540         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 ) {
    541541                // __cfadbg_print_safe(io, "Kernel I/O : arbiter allocating\n");
    542542
     
    557557        }
    558558
    559         static void __ioarbiter_notify( $io_arbiter & this, $io_context * ctx ) {
     559        static void __ioarbiter_notify( io_arbiter$ & this, io_context$ * ctx ) {
    560560                /* paranoid */ verify( !empty(this.pending.queue) );
    561561
     
    587587        }
    588588
    589         static void __ioarbiter_notify( $io_context & ctx ) {
     589        static void __ioarbiter_notify( io_context$ & ctx ) {
    590590                if(!empty( ctx.arbiter->pending )) {
    591591                        __ioarbiter_notify( *ctx.arbiter, &ctx );
     
    594594
    595595        // Simply append to the pending
    596         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 ) {
    597597                __cfadbg_print_safe(io, "Kernel I/O : submitting %u from the arbiter to context %u\n", have, ctx->fd);
    598598
     
    618618        }
    619619
    620         static void __ioarbiter_flush( $io_context & ctx ) {
     620        static void __ioarbiter_flush( io_context$ & ctx ) {
    621621                if(!empty( ctx.ext_sq )) {
    622622                        __STATS__( false, io.flush.external += 1; )
     
    642642        #if defined(CFA_WITH_IO_URING_IDLE)
    643643                bool __kernel_read(processor * proc, io_future_t & future, iovec & iov, int fd) {
    644                         $io_context * ctx = proc->io.ctx;
     644                        io_context$ * ctx = proc->io.ctx;
    645645                        /* paranoid */ verify( ! __preemption_enabled() );
    646646                        /* paranoid */ verify( proc == __cfaabi_tls.this_processor );
  • libcfa/src/concurrency/io/call.cfa.in

    r741e22c r71cf630  
    7575        ;
    7676
    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)));
     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)));
    7979#endif
    8080
     
    200200                __u32 idx;
    201201                struct io_uring_sqe * sqe;
    202                 struct $io_context * ctx = cfa_io_allocate( &sqe, &idx, 1 );
     202                struct io_context$ * ctx = cfa_io_allocate( &sqe, &idx, 1 );
    203203
    204204                sqe->opcode = IORING_OP_{op};
  • libcfa/src/concurrency/io/setup.cfa

    r741e22c r71cf630  
    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;
     
    270270        }
    271271
    272         static void __io_uring_teardown( $io_context & this ) {
     272        static void __io_uring_teardown( io_context$ & this ) {
    273273                // Shutdown the io rings
    274274                struct __sub_ring_t & sq = this.sq;
     
    313313// I/O Context Sleep
    314314//=============================================================================================
    315         // static inline void __epoll_ctl($io_context & ctx, int op, const char * error) {
     315        // static inline void __epoll_ctl(io_context$ & ctx, int op, const char * error) {
    316316        //      struct epoll_event ev;
    317317        //      ev.events = EPOLLIN | EPOLLONESHOT;
     
    323323        // }
    324324
    325         // static void __epoll_register($io_context & ctx) {
     325        // static void __epoll_register(io_context$ & ctx) {
    326326        //      __epoll_ctl(ctx, EPOLL_CTL_ADD, "ADD");
    327327        // }
    328328
    329         // static void __epoll_unregister($io_context & ctx) {
     329        // static void __epoll_unregister(io_context$ & ctx) {
    330330        //      // Read the current epoch so we know when to stop
    331331        //      size_t curr = __atomic_load_n(&iopoll.epoch, __ATOMIC_SEQ_CST);
     
    346346        // }
    347347
    348         // void __ioctx_prepare_block($io_context & ctx) {
     348        // void __ioctx_prepare_block(io_context$ & ctx) {
    349349        //      __cfadbg_print_safe(io_core, "Kernel I/O - epoll : Re-arming io poller %d (%p)\n", ctx.fd, &ctx);
    350350        //      __epoll_ctl(ctx, EPOLL_CTL_MOD, "REARM");
     
    355355// I/O Context Misc Setup
    356356//=============================================================================================
    357         void ?{}( $io_arbiter & this ) {
     357        void ?{}( io_arbiter$ & this ) {
    358358                this.pending.empty = true;
    359359        }
    360360
    361         void ^?{}( $io_arbiter & mutex this ) {}
    362 
    363         $io_arbiter * create(void) {
     361        void ^?{}( io_arbiter$ & mutex this ) {}
     362
     363        io_arbiter$ * create(void) {
    364364                return new();
    365365        }
    366         void destroy($io_arbiter * arbiter) {
     366        void destroy(io_arbiter$ * arbiter) {
    367367                delete(arbiter);
    368368        }
  • libcfa/src/concurrency/io/types.hfa

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

    r741e22c r71cf630  
    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

    r741e22c r71cf630  
    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

    r741e22c r71cf630  
    3535// I/O
    3636struct cluster;
    37 struct $io_context;
    38 struct $io_arbiter;
     37struct io_context$;
     38struct io_arbiter$;
    3939
    4040struct io_context_params {
     
    113113
    114114        struct {
    115                 $io_context * ctx;
     115                io_context$ * ctx;
    116116                unsigned target;
    117117                volatile bool pending;
     
    230230                struct {
    231231                        // Array of $io_
    232                         $io_context ** data;
     232                        io_context$ ** data;
    233233
    234234                        // Time since subqueues were processed
     
    267267
    268268        struct {
    269                 $io_arbiter * arbiter;
     269                io_arbiter$ * arbiter;
    270270                io_context_params params;
    271271        } io;
  • libcfa/src/concurrency/kernel/cluster.cfa

    r741e22c r71cf630  
    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) {
  • libcfa/src/concurrency/kernel/private.hfa

    r741e22c r71cf630  
    139139//-----------------------------------------------------------------------------
    140140// I/O
    141 $io_arbiter * create(void);
    142 void destroy($io_arbiter *);
     141io_arbiter$ * create(void);
     142void destroy(io_arbiter$ *);
    143143
    144144//=======================================================================
  • src/Common/Eval.cc

    r741e22c r71cf630  
    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

    r741e22c r71cf630  
    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/Parser/DeclarationNode.cc

    r741e22c r71cf630  
    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;
     
    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

    r741e22c r71cf630  
    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

    r741e22c r71cf630  
    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

    r741e22c r71cf630  
    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/parser.yy

    r741e22c r71cf630  
    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 : Fri Aug 12 07:59:58 2022
     13// Update Count     : 5649
    1414//
    1515
     
    5858
    5959// lex uses __null in a boolean context, it's fine.
    60 #pragma GCC diagnostic ignored "-Wparentheses-equality"
     60//#pragma GCC diagnostic ignored "-Wparentheses-equality"
    6161
    6262extern DeclarationNode * parseTree;
     
    197197} // fieldDecl
    198198
     199#define NEW_ZERO new ExpressionNode( build_constantInteger( *new string( "0" ) ) )
     200#define NEW_ONE  new ExpressionNode( build_constantInteger( *new string( "1" ) ) )
     201#define UPDOWN( compop, left, right ) (compop == OperKinds::LThan || compop == OperKinds::LEThan ? left : right)
     202
     203ForCtrl * forCtrl( DeclarationNode * index, ExpressionNode * start, enum OperKinds compop, ExpressionNode * comp, ExpressionNode * inc ) {
     204        if ( index->initializer ) {
     205                SemanticError( yylloc, "Direct initialization disallowed. Use instead: type var; initialization ~ comparison ~ increment." );
     206        } // if
     207        if ( index->next ) {
     208                SemanticError( yylloc, "Multiple loop indexes disallowed in for-loop declaration." );
     209        } // if
     210        return new ForCtrl( index->addInitializer( new InitializerNode( start ) ),
     211                // NULL comp/inc => leave blank
     212                comp ? new ExpressionNode( build_binary_val( compop, new ExpressionNode( build_varref( new string( *index->name ) ) ), comp ) ) : nullptr,
     213                inc ? new ExpressionNode( build_binary_val( compop == OperKinds::LThan || compop == OperKinds::LEThan ? // choose += or -= for upto/downto
     214                                                        OperKinds::PlusAssn : OperKinds::MinusAssn, new ExpressionNode( build_varref( new string( *index->name ) ) ), inc ) ) : nullptr );
     215} // forCtrl
     216
    199217ForCtrl * forCtrl( ExpressionNode * type, string * index, ExpressionNode * start, enum OperKinds compop, ExpressionNode * comp, ExpressionNode * inc ) {
    200218        ConstantExpr * constant = dynamic_cast<ConstantExpr *>(type->expr.get());
     
    206224                distAttr( DeclarationNode::newTypeof( type, true ), DeclarationNode::newName( index )->addInitializer( new InitializerNode( start ) ) ),
    207225                // NULL comp/inc => leave blank
    208                 comp ? new ExpressionNode( build_binary_val( compop, new ExpressionNode( build_varref( new string( *index ) ) ), comp ) ) : 0,
     226                comp ? new ExpressionNode( build_binary_val( compop, new ExpressionNode( build_varref( new string( *index ) ) ), comp ) ) : nullptr,
    209227                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 );
     228                                                        OperKinds::PlusAssn : OperKinds::MinusAssn, new ExpressionNode( build_varref( new string( *index ) ) ), inc ) ) : nullptr );
    211229} // forCtrl
    212230
     
    346364%type<ifctl> conditional_declaration
    347365%type<fctl> for_control_expression              for_control_expression_list
    348 %type<compop> inclexcl
     366%type<compop> updown updowneq downupdowneq
    349367%type<en> subrange
    350368%type<decl> asm_name_opt
     
    12391257iteration_statement:
    12401258        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 ) ) ); }
     1259                { $$ = new StatementNode( build_while( new CondCtl( nullptr, NEW_ONE ), maybe_build_compound( $4 ) ) ); }
    12421260        | WHILE '(' ')' statement ELSE statement                        // CFA
    12431261                {
    1244                         $$ = new StatementNode( build_while( new CondCtl( nullptr, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ), maybe_build_compound( $4 ) ) );
     1262                        $$ = new StatementNode( build_while( new CondCtl( nullptr, NEW_ONE ), maybe_build_compound( $4 ) ) );
    12451263                        SemanticWarning( yylloc, Warning::SuperfluousElse, "" );
    12461264                }
     
    12501268                { $$ = new StatementNode( build_while( $3, maybe_build_compound( $5 ), $7 ) ); }
    12511269        | DO statement WHILE '(' ')' ';'                                        // CFA => do while( 1 )
    1252                 { $$ = new StatementNode( build_do_while( new ExpressionNode( build_constantInteger( *new string( "1" ) ) ), maybe_build_compound( $2 ) ) ); }
     1270                { $$ = new StatementNode( build_do_while( NEW_ONE, maybe_build_compound( $2 ) ) ); }
    12531271        | DO statement WHILE '(' ')' ELSE statement                     // CFA
    12541272                {
    1255                         $$ = new StatementNode( build_do_while( new ExpressionNode( build_constantInteger( *new string( "1" ) ) ), maybe_build_compound( $2 ) ) );
     1273                        $$ = new StatementNode( build_do_while( NEW_ONE, maybe_build_compound( $2 ) ) );
    12561274                        SemanticWarning( yylloc, Warning::SuperfluousElse, "" );
    12571275                }
     
    13051323
    13061324        | 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 ); }
     1325                { $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), NEW_ZERO, OperKinds::LThan, $1->clone(), NEW_ONE ); }
     1326        | downupdowneq comma_expression                                         // CFA
     1327                { $$ = forCtrl( $2, new string( DeclarationNode::anonymous.newName() ), UPDOWN( $1, NEW_ZERO, $2->clone() ), $1, UPDOWN( $1, $2->clone(), NEW_ZERO ), NEW_ONE ); }
     1328
     1329        | comma_expression updowneq comma_expression            // CFA
     1330                { $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), UPDOWN( $2, $1->clone(), $3 ), $2, UPDOWN( $2, $3->clone(), $1->clone() ), NEW_ONE ); }
     1331        | '@' updowneq comma_expression                                         // CFA
     1332                {
     1333                        if ( $2 == OperKinds::LThan || $2 == OperKinds::LEThan ) { SemanticError( yylloc, "Missing start value so cannot compare." ); $$ = nullptr; }
     1334                        else $$ = forCtrl( $3, new string( DeclarationNode::anonymous.newName() ), $3->clone(), $2, nullptr, NEW_ONE );
     1335                }
     1336        | comma_expression updowneq '@'                                         // CFA
     1337                {
     1338                        if ( $2 == OperKinds::LThan || $2 == OperKinds::LEThan ) { SemanticError( yylloc, "Missing comparison ('@') with an anonymous loop index is meaningless." ); $$ = nullptr; }
     1339                        else { SemanticError( yylloc, "Missing start value so cannot compare." ); $$ = nullptr; }
     1340                }
     1341        | comma_expression updowneq comma_expression '~' comma_expression // CFA
     1342                { $$ = forCtrl( $1, new string( DeclarationNode::anonymous.newName() ), UPDOWN( $2, $1->clone(), $3 ), $2, UPDOWN( $2, $3->clone(), $1->clone() ), $5 ); }
     1343        | '@' updowneq comma_expression '~' comma_expression // CFA
     1344                {
     1345                        if ( $2 == OperKinds::LThan || $2 == OperKinds::LEThan ) { SemanticError( yylloc, "Missing start value so cannot compare." ); $$ = nullptr; }
     1346                        else $$ = forCtrl( $3, new string( DeclarationNode::anonymous.newName() ), $3->clone(), $2, nullptr, $5 );
     1347                }
     1348        | comma_expression updowneq '@' '~' comma_expression // CFA
     1349                {
     1350                        if ( $2 == OperKinds::LThan || $2 == OperKinds::LEThan ) { SemanticError( yylloc, "Missing comparison ('@') with an anonymous loop index is meaningless." ); $$ = nullptr; }
     1351                        else { SemanticError( yylloc, "Missing start value so cannot compare." ); $$ = nullptr; }
     1352                }
     1353        | comma_expression updowneq comma_expression '~' '@' // CFA, error
     1354                { SemanticError( yylloc, "Missing increment ('@') with an anonymous loop index is meaningless." ); $$ = nullptr; }
     1355        | '@' updowneq comma_expression '~' '@'                         // CFA, error
     1356                { SemanticError( yylloc, "Missing loop fields ('@') with an anonymous loop index is meaningless." ); $$ = nullptr; }
     1357        | comma_expression updowneq '@' '~' '@'                         // CFA, error
     1358                { SemanticError( yylloc, "Missing loop fields ('@') with an anonymous loop index is meaningless." ); $$ = nullptr; }
     1359        | '@' updowneq '@' '~' '@'                                                      // CFA, error
     1360                { SemanticError( yylloc, "Missing loop fields ('@') with an anonymous loop index is meaningless." ); $$ = nullptr; }
     1361
    13181362        | 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 ); }
     1363                { $$ = forCtrl( $3, $1, NEW_ZERO, OperKinds::LThan, $3->clone(), NEW_ONE ); }
     1364        | comma_expression ';' downupdowneq comma_expression // CFA
     1365                { $$ = forCtrl( $4, $1, UPDOWN( $3, NEW_ZERO, $4->clone() ), $3, UPDOWN( $3, $4->clone(), NEW_ZERO ), NEW_ONE ); }
     1366
     1367        | comma_expression ';' comma_expression updowneq comma_expression // CFA
     1368                { $$ = forCtrl( $3, $1, UPDOWN( $4, $3->clone(), $5 ), $4, UPDOWN( $4, $5->clone(), $3->clone() ), NEW_ONE ); }
     1369        | comma_expression ';' '@' updowneq comma_expression // CFA
     1370                {
     1371                        if ( $4 == OperKinds::LThan || $4 == OperKinds::LEThan ) { SemanticError( yylloc, "Missing start value so cannot compare." ); $$ = nullptr; }
     1372                        else $$ = forCtrl( $5, $1, $5->clone(), $4, nullptr, NEW_ONE );
     1373                }
     1374        | comma_expression ';' comma_expression updowneq '@' // CFA
     1375                {
     1376                        if ( $4 == OperKinds::GThan || $4 == OperKinds::GEThan ) { SemanticError( yylloc, "Missing start value so cannot compare." ); $$ = nullptr; }
     1377                        else if ( $4 == OperKinds::LEThan ) { SemanticError( yylloc, "Equality with missing comparison is meaningless. Use \"~\"." ); $$ = nullptr; }
     1378                        else $$ = forCtrl( $3, $1, $3->clone(), $4, nullptr, NEW_ONE );
     1379                }
     1380        | comma_expression ';' '@' updowneq '@'                         // CFA, error
     1381                { SemanticError( yylloc, "Missing start value so cannot compare." ); $$ = nullptr; }
     1382
     1383        | comma_expression ';' comma_expression updowneq comma_expression '~' comma_expression // CFA
     1384                { $$ = forCtrl( $3, $1, UPDOWN( $4, $3->clone(), $5 ), $4, UPDOWN( $4, $5->clone(), $3->clone() ), $7 ); }
     1385        | comma_expression ';' '@' updowneq comma_expression '~' comma_expression // CFA, error
     1386                {
     1387                        if ( $4 == OperKinds::LThan || $4 == OperKinds::LEThan ) { SemanticError( yylloc, "Missing start value so cannot compare." ); $$ = nullptr; }
     1388                        else $$ = forCtrl( $5, $1, $5->clone(), $4, nullptr, $7 );
     1389                }
     1390        | comma_expression ';' comma_expression updowneq '@' '~' comma_expression // CFA
     1391                {
     1392                        if ( $4 == OperKinds::GThan || $4 == OperKinds::GEThan ) { SemanticError( yylloc, "Missing start value so cannot compare." ); $$ = nullptr; }
     1393                        else if ( $4 == OperKinds::LEThan ) { SemanticError( yylloc, "Equality with missing comparison is meaningless. Use \"~\"." ); $$ = nullptr; }
     1394                        else $$ = forCtrl( $3, $1, $3->clone(), $4, nullptr, $7 );
     1395                }
     1396        | comma_expression ';' comma_expression updowneq comma_expression '~' '@' // CFA
     1397                { $$ = forCtrl( $3, $1, UPDOWN( $4, $3->clone(), $5 ), $4, UPDOWN( $4, $5->clone(), $3->clone() ), nullptr ); }
     1398        | comma_expression ';' '@' updowneq comma_expression '~' '@' // CFA, error
     1399                {
     1400                        if ( $4 == OperKinds::LThan || $4 == OperKinds::LEThan ) { SemanticError( yylloc, "Missing start value so cannot compare." ); $$ = nullptr; }
     1401                        else $$ = forCtrl( $5, $1, $5->clone(), $4, nullptr, nullptr );
     1402                }
     1403        | comma_expression ';' comma_expression updowneq '@' '~' '@' // CFA
     1404                {
     1405                        if ( $4 == OperKinds::GThan || $4 == OperKinds::GEThan ) { SemanticError( yylloc, "Missing start value so cannot compare." ); $$ = nullptr; }
     1406                        else if ( $4 == OperKinds::LEThan ) { SemanticError( yylloc, "Equality with missing comparison is meaningless. Use \"~\"." ); $$ = nullptr; }
     1407                        else $$ = forCtrl( $3, $1, $3->clone(), $4, nullptr, nullptr );
     1408                }
     1409        | comma_expression ';' '@' updowneq '@' '~' '@' // CFA
     1410                { SemanticError( yylloc, "Missing start value so cannot compare." ); $$ = nullptr; }
     1411
     1412        | declaration comma_expression                                          // CFA
     1413                { $$ = forCtrl( $1, NEW_ZERO, OperKinds::LThan, $2, NEW_ONE ); }
     1414        | declaration downupdowneq comma_expression                     // CFA
     1415                { $$ = forCtrl( $1, UPDOWN( $2, NEW_ZERO, $3 ), $2, UPDOWN( $2, $3->clone(), NEW_ZERO ), NEW_ONE ); }
     1416
     1417        | declaration comma_expression updowneq comma_expression // CFA
     1418                { $$ = forCtrl( $1, UPDOWN( $3, $2->clone(), $4 ), $3, UPDOWN( $3, $4->clone(), $2->clone() ), NEW_ONE ); }
     1419        | declaration '@' updowneq comma_expression                     // CFA
     1420                {
     1421                        if ( $3 == OperKinds::LThan || $3 == OperKinds::LEThan ) { SemanticError( yylloc, "Missing start value so cannot compare." ); $$ = nullptr; }
     1422                        else $$ = forCtrl( $1, $4, $3, nullptr, NEW_ONE );
     1423                }
     1424        | declaration comma_expression updowneq '@'                     // CFA
     1425                {
     1426                        if ( $3 == OperKinds::GThan || $3 == OperKinds::GEThan ) { SemanticError( yylloc, "Missing start value so cannot compare." ); $$ = nullptr; }
     1427                        else if ( $3 == OperKinds::LEThan ) { SemanticError( yylloc, "Equality with missing comparison is meaningless. Use \"~\"." ); $$ = nullptr; }
     1428                        else $$ = forCtrl( $1, $2, $3, nullptr, NEW_ONE );
     1429                }
     1430
     1431        | declaration comma_expression updowneq comma_expression '~' comma_expression // CFA
     1432                { $$ = forCtrl( $1, UPDOWN( $3, $2, $4 ), $3, UPDOWN( $3, $4->clone(), $2->clone() ), $6 ); }
     1433        | declaration '@' updowneq comma_expression '~' comma_expression // CFA
     1434                {
     1435                        if ( $3 == OperKinds::LThan || $3 == OperKinds::LEThan ) { SemanticError( yylloc, "Missing start value so cannot compare." ); $$ = nullptr; }
     1436                        else $$ = forCtrl( $1, $4, $3, nullptr, $6 );
     1437                }
     1438        | declaration comma_expression updowneq '@' '~' comma_expression // CFA
     1439                {
     1440                        if ( $3 == OperKinds::GThan || $3 == OperKinds::GEThan ) { SemanticError( yylloc, "Missing start value so cannot compare." ); $$ = nullptr; }
     1441                        else if ( $3 == OperKinds::LEThan ) { SemanticError( yylloc, "Equality with missing comparison is meaningless. Use \"~\"." ); $$ = nullptr; }
     1442                        else $$ = forCtrl( $1, $2, $3, nullptr, $6 );
     1443                }
     1444        | declaration comma_expression updowneq comma_expression '~' '@' // CFA
     1445                { $$ = forCtrl( $1, UPDOWN( $3, $2, $4 ), $3, UPDOWN( $3, $4->clone(), $2->clone() ), nullptr ); }
     1446        | declaration '@' updowneq comma_expression '~' '@' // CFA
     1447                {
     1448                        if ( $3 == OperKinds::LThan || $3 == OperKinds::LEThan ) { SemanticError( yylloc, "Missing start value so cannot compare." ); $$ = nullptr; }
     1449                        else $$ = forCtrl( $1, $4, $3, nullptr, nullptr );
     1450                }
     1451        | declaration comma_expression updowneq '@' '~' '@'     // CFA
     1452                {
     1453                        if ( $3 == OperKinds::GThan || $3 == OperKinds::GEThan ) { SemanticError( yylloc, "Missing start value so cannot compare." ); $$ = nullptr; }
     1454                        else if ( $3 == OperKinds::LEThan ) { SemanticError( yylloc, "Equality with missing comparison is meaningless. Use \"~\"." ); $$ = nullptr; }
     1455                        else $$ = forCtrl( $1, $2, $3, nullptr, nullptr );
     1456                }
     1457        | declaration '@' updowneq '@' '~' '@'                          // CFA, error
     1458                { SemanticError( yylloc, "Missing start value so cannot compare." ); $$ = nullptr; }
    13281459
    13291460        | comma_expression ';' TYPEDEFname                                      // CFA, array type
    13301461                {
    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 ); }
     1462                        SemanticError( yylloc, "Type iterator is currently unimplemented." ); $$ = nullptr;
     1463                        //$$ = forCtrl( new ExpressionNode( build_varref( $3 ) ), $1, nullptr, OperKinds::Range, nullptr, nullptr );
     1464                }
     1465        | comma_expression ';' downupdowneq TYPEDEFname         // CFA, array type
     1466                {
     1467                        if ( $3 == OperKinds::LEThan || $3 == OperKinds::GEThan ) { SemanticError( yylloc, "All enumation ranges are equal (all values). Remove \"=~\"." ); $$ = nullptr; }
     1468                        SemanticError( yylloc, "Type iterator is currently unimplemented." ); $$ = nullptr;
     1469                }
    13461470        ;
    13471471
    1348 inclexcl:
     1472downupdowneq:
     1473        ErangeDown
     1474                { $$ = OperKinds::GThan; }
     1475        | ErangeUpEq
     1476                { $$ = OperKinds::LEThan; }
     1477        | ErangeDownEq
     1478                { $$ = OperKinds::GEThan; }
     1479        ;
     1480
     1481updown:
    13491482        '~'
    13501483                { $$ = OperKinds::LThan; }
     1484        | ErangeDown
     1485                { $$ = OperKinds::GThan; }
     1486        ;
     1487
     1488updowneq:
     1489        updown
    13511490        | ErangeUpEq
    13521491                { $$ = OperKinds::LEThan; }
    1353         | ErangeDown
    1354                 { $$ = OperKinds::GThan; }
    13551492        | ErangeDownEq
    13561493                { $$ = OperKinds::GEThan; }
     
    23952532          '{' enumerator_list comma_opt '}'
    23962533                { $$ = DeclarationNode::newEnum( $3->name, $5, true )->addQualifiers( $2 ); }
     2534        | ENUM '(' ')' attribute_list_opt '{' enumerator_list comma_opt '}'
     2535                { SemanticError( yylloc, "Unvalued enumerated type is currently unimplemented." ); $$ = nullptr; }
    23972536        | ENUM '(' cfa_abstract_parameter_declaration ')' attribute_list_opt '{' enumerator_list comma_opt '}'
    23982537                {
  • src/Tuples/TupleExpansionNew.cpp

    r741e22c r71cf630  
    1010// Created On       : Mon Aug 23 15:36:09 2021
    1111// Last Modified By : Andrew Beach
    12 // Last Modified On : Mon Jul 29 14:06:00 2022
    13 // Update Count     : 2
     12// Last Modified On : Mon Aug 15 17:00:00 2022
     13// Update Count     : 3
    1414//
    1515
     
    100100}
    101101
    102 struct TupleAssignExpander {
     102/// Replaces Tuple Assign & Index Expressions, and Tuple Types.
     103struct TupleMainExpander :
     104                public ast::WithGuards,
     105                public ast::WithVisitorRef<TupleMainExpander>,
     106                public ast::WithDeclsToAdd<> {
    103107        ast::Expr const * postvisit( ast::TupleAssignExpr const * expr ) {
    104108                // Just move the env on the new top level expression.
     
    106110                        &ast::TupleAssignExpr::env, expr->env.get() );
    107111        }
    108 };
    109 
    110 struct TupleTypeReplacer :
    111                 public ast::WithGuards,
    112                 public ast::WithVisitorRef<TupleTypeReplacer>,
    113                 public ast::WithDeclsToAdd<> {
     112
    114113        void previsit( ast::ParseNode const * node ) {
    115114                GuardValue( location ) = &node->location;
     
    185184                return newType;
    186185        }
    187 private:
    188         ScopedMap< int, ast::StructDecl const * > typeMap;
    189         CodeLocation const * location = nullptr;
    190 };
    191 
    192 struct TupleIndexExpander {
     186
    193187        ast::Expr const * postvisit( ast::TupleIndexExpr const * expr ) {
    194188                CodeLocation const & location = expr->location;
     
    221215                return memberExpr;
    222216        }
     217private:
     218        ScopedMap< int, ast::StructDecl const * > typeMap;
     219        CodeLocation const * location = nullptr;
    223220};
    224221
     
    275272
    276273void expandTuples( ast::TranslationUnit & translationUnit ) {
    277         // These may not have to be seperate passes.
    278         ast::Pass<TupleAssignExpander>::run( translationUnit );
    279         ast::Pass<TupleTypeReplacer>::run( translationUnit );
    280         ast::Pass<TupleIndexExpander>::run( translationUnit );
     274        // These can't just be combined simply (there might be a way with work).
     275        ast::Pass<TupleMainExpander>::run( translationUnit );
    281276        ast::Pass<TupleExprExpander>::run( translationUnit );
    282277}
  • src/Virtual/ExpandCasts.cc

    r741e22c r71cf630  
    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 {
     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
     364ast::StructInstType * polyCopy(
     365                ast::StructInstType const * oldType,
     366                ast::StructInstType const * newType ) {
     367        assert( oldType->params.size() == newType->params.size() );
     368        ast::StructInstType * retType = ast::deepCopy( newType );
     369        if ( ! oldType->params.empty() ) {
     370                retType->params.clear();
     371                for ( auto oldParams : oldType->params ) {
     372                        retType->params.push_back( ast::deepCopy( oldParams ) );
     373                }
     374        }
     375        return retType;
     376}
     377
     378/// Follow the "head" field of the structure to get the type that is pointed
     379/// to by that field.
     380ast::StructInstType const * followHeadPointerType(
     381                CodeLocation const & errorLocation,
     382                ast::StructInstType const * oldType,
     383                std::string const & fieldName ) {
     384        ast::StructDecl const * oldDecl = oldType->base;
     385        assert( oldDecl );
     386
     387        // Helper function for throwing semantic errors.
     388        auto throwError = [&fieldName, &errorLocation, &oldDecl](
     389                        std::string const & message ) {
     390                std::string const & context = "While following head pointer of " +
     391                        oldDecl->name + " named '" + fieldName + "': ";
     392                SemanticError( errorLocation, context + message );
     393        };
     394
     395        if ( oldDecl->members.empty() ) {
     396                throwError( "Type has no fields." );
     397        }
     398        ast::ptr<ast::Decl> const & memberDecl = oldDecl->members.front();
     399        assert( memberDecl );
     400        ast::ObjectDecl const * fieldDecl = memberDecl.as<ast::ObjectDecl>();
     401        assert( fieldDecl );
     402        if ( fieldName != fieldDecl->name ) {
     403                throwError( "Head field did not have expected name." );
     404        }
     405
     406        ast::ptr<ast::Type> const & fieldType = fieldDecl->type;
     407        if ( nullptr == fieldType ) {
     408                throwError( "Could not get head field." );
     409        }
     410        auto ptrType = fieldType.as<ast::PointerType>();
     411        if ( nullptr == ptrType ) {
     412                throwError( "First field is not a pointer type." );
     413        }
     414        assert( ptrType->base );
     415        auto newType = ptrType->base.as<ast::StructInstType>();
     416        if ( nullptr == newType ) {
     417                throwError( "First field does not point to a structure type." );
     418        }
     419
     420        return polyCopy( oldType, newType );
     421}
     422
     423/// Get the type-id type from a virtual type.
     424ast::StructInstType const * getTypeIdType(
     425                CodeLocation const & errorLocation,
     426                ast::Type const * type ) {
     427        auto typeInst = dynamic_cast<ast::StructInstType const *>( type );
     428        if ( nullptr == typeInst ) {
     429                return nullptr;
     430        }
     431        ast::ptr<ast::StructInstType> tableInst =
     432                followHeadPointerType( errorLocation, typeInst, "virtual_table" );
     433        if ( nullptr == tableInst ) {
     434                return nullptr;
     435        }
     436        ast::StructInstType const * typeIdInst =
     437                followHeadPointerType( errorLocation, tableInst, "__cfavir_typeid" );
     438        return typeIdInst;
     439}
     440
     441ast::Expr const * ExpandCastsCore::postvisit(
     442                ast::VirtualCastExpr const * expr ) {
     443        assertf( expr->result, "Virtual cast target not found before expansion." );
     444
     445        assert( vcast_decl );
     446        assert( info_decl );
     447
     448        ast::Type const * base_type = getBaseType( expr->result );
     449        if ( nullptr == base_type ) {
     450                castError( expr, "Virtual cast target must be a pointer or reference type." );
     451        }
     452        ast::StructInstType const * type_id_type =
     453                        getTypeIdType( castLocation( expr ), base_type );
     454        if ( nullptr == type_id_type ) {
     455                castError( expr, "Ill formed virtual cast target type." );
     456        }
     457        ast::ObjectDecl const * type_id = symtab.lookup( type_id_type );
     458        if ( nullptr == type_id ) {
     459                // I'm trying to give a different error for polymorpic types as
     460                // different things can go wrong there.
     461                if ( type_id_type->params.empty() ) {
     462                        castError( expr, "Virtual cast does not target a virtual type." );
     463                } else {
     464                        castError( expr, "Virtual cast does not target a type with a "
     465                                "type id (possible missing virtual table)." );
     466                }
     467        }
     468
     469        return new ast::CastExpr( expr->location,
     470                new ast::ApplicationExpr( expr->location,
     471                        ast::VariableExpr::functionPointer( expr->location, vcast_decl ),
     472                        {
     473                                cast_to_type_id(
     474                                        new ast::AddressExpr( expr->location,
     475                                                new ast::VariableExpr( expr->location, type_id ) ),
     476                                        1 ),
     477                                cast_to_type_id( expr->arg, 2 ),
     478                        }
     479                ),
     480                ast::deepCopy( expr->result )
     481        );
     482}
     483
     484ast::CastExpr const * ExpandCastsCore::cast_to_type_id(
     485                ast::Expr const * expr, unsigned int level_of_indirection ) {
     486        assert( info_decl );
     487        ast::Type * type = new ast::StructInstType( info_decl, ast::CV::Const );
     488        for ( unsigned int i = 0 ; i < level_of_indirection ; ++i ) {
     489                type = new ast::PointerType( type );
     490        }
     491        return new ast::CastExpr( expr->location, expr, type );
     492}
     493
     494} // namespace
     495
     496void expandCasts( std::list< Declaration * > & translationUnit ) {
     497        PassVisitor<VirtualCastCore> translator;
     498        mutateAll( translationUnit, translator );
     499}
     500
     501void expandCasts( ast::TranslationUnit & translationUnit ) {
     502        ast::Pass<ExpandCastsCore>::run( translationUnit );
     503}
     504
     505} // namespace Virtual
  • src/Virtual/ExpandCasts.h

    r741e22c r71cf630  
    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/main.cc

    r741e22c r71cf630  
    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 11 12:18:00 2022
     13// Update Count     : 677
    1414//
    1515
     
    445445                        PASS( "Expand Tuples", Tuples::expandTuples( transUnit ) );
    446446
     447                        if ( tuplep ) {
     448                                dump( move( transUnit ) );
     449                                return EXIT_SUCCESS;
     450                        } // if
     451
     452                        // Must come after Translate Tries.
     453                        PASS( "Virtual Expand Casts", Virtual::expandCasts( transUnit ) );
     454
    447455                        translationUnit = convert( move( transUnit ) );
    448456                } else {
     
    520528                        PASS( "Convert Specializations",  GenPoly::convertSpecializations( translationUnit ) ); // needs to happen before tuple types are expanded
    521529                        PASS( "Expand Tuples", Tuples::expandTuples( translationUnit ) ); // xxx - is this the right place for this?
     530
     531                        if ( tuplep ) {
     532                                dump( translationUnit );
     533                                return EXIT_SUCCESS;
     534                        } // if
     535
     536                        PASS( "Virtual Expand Casts", Virtual::expandCasts( translationUnit ) ); // Must come after translateEHM
    522537                }
    523 
    524                 if ( tuplep ) {
    525                         dump( translationUnit );
    526                         return EXIT_SUCCESS;
    527                 } // if
    528 
    529                 PASS( "Virtual Expand Casts", Virtual::expandCasts( translationUnit ) ); // Must come after translateEHM
    530538
    531539                PASS( "Instantiate Generics", GenPoly::instantiateGeneric( translationUnit ) );
  • tests/.expect/loop_else.txt

    r741e22c r71cf630  
    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

    r741e22c r71cf630  
    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/heap.cfa

    r741e22c r71cf630  
    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

    r741e22c r71cf630  
    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/loop_else.cfa

    r741e22c r71cf630  
    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

    r741e22c r71cf630  
    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
Note: See TracChangeset for help on using the changeset viewer.