\begin{table}[p] \centering\scriptsize\setlength{\tabcolsep}{2.2pt} \begin{threeparttable} \caption{Measured multi-node benchmarks of the protocol (logistic regression, $N = 2^{22}$, medians over repeats): wall-clock of the local phase (slowest worker) and of the synchronized derivative phases, worker compute times, 99th-percentile reply latency, and bytes moved.}\label{tab:bench} \begin{tabular}{@{}lrrrrrlrrrrrrrr@{}} \toprule Design & $K$ & hosts & $p$ & $r$ & $q$ & curvature & local (s) & fit max (s) & rounds (s) & per round (s) & der.\ max (s) & lat.\ p99 (s) & up (kB) & down (kB) \\ \midrule K128 r1q2 & 128 & 16 & 8 & 1 & 2 & exact & 0.059 & 0.038 & 0.014 & 0.007 & 0.005 & 0.006 & 199.7 & 85.5 \\ K128 r2q1 & 128 & 16 & 8 & 2 & 1 & exact & 0.097 & 0.076 & 0.007 & 0.007 & 0.005 & 0.006 & 127.5 & 53.0 \\ K256 r1q2 & 256 & 16 & 8 & 1 & 2 & exact & 0.076 & 0.044 & 0.016 & 0.008 & 0.004 & 0.006 & 399.4 & 170.8 \\ K256 r2q1 & 256 & 16 & 8 & 2 & 1 & exact & 0.108 & 0.068 & 0.008 & 0.008 & 0.004 & 0.006 & 255.1 & 106.0 \\ K64 r1q2 & 64 & 16 & 8 & 1 & 2 & exact & 0.085 & 0.064 & 0.019 & 0.009 & 0.008 & 0.009 & 99.9 & 42.9 \\ K64 r2q1 & 64 & 16 & 8 & 2 & 1 & exact & 0.148 & 0.127 & 0.009 & 0.009 & 0.008 & 0.009 & 63.8 & 26.7 \\ cmp p64 r1q2 & 16 & 16 & 64 & 1 & 2 & exact & 14.792 & 14.682 & 3.635 & 1.818 & 1.819 & 1.812 & 569.8 & 25.0 \\ cmp p64 r2q1 & 16 & 16 & 64 & 2 & 1 & exact & 29.452 & 29.342 & 1.826 & 1.826 & 1.821 & 1.818 & 291.9 & 13.8 \\ cmp p64 r2q1 stale & 16 & 16 & 64 & 2 & 1 & stale & 29.431 & 29.320 & 1.828 & 1.828 & 1.825 & 1.822 & 550.1 & 13.8 \\ cmp r1q2 & 16 & 16 & 8 & 1 & 2 & exact & 0.262 & 0.231 & 0.061 & 0.031 & 0.030 & 0.031 & 25.0 & 10.7 \\ cmp r2q1 single & 16 & 16 & 8 & 2 & 1 & single & 0.495 & 0.464 & 0.053 & 0.053 & 0.051 & 0.051 & 15.9 & 6.7 \\ cmp r2q1 stale & 16 & 16 & 8 & 2 & 1 & stale & 0.494 & 0.463 & 0.053 & 0.053 & 0.051 & 0.051 & 19.7 & 6.7 \\ cmp r3q1 & 16 & 16 & 8 & 3 & 1 & exact & 0.724 & 0.693 & 0.065 & 0.065 & 0.063 & 0.063 & 16.0 & 6.7 \\ cmp r4q0 & 16 & 16 & 8 & 4 & 0 & exact & 0.956 & 0.925 & 0.000 & 0.000 & 0.000 & 0.000 & 7.0 & 2.6 \\ hosts1 & 16 & 1 & 8 & 2 & 1 & exact & 0.407 & 0.372 & 0.027 & 0.027 & 0.025 & 0.025 & 16.0 & 6.7 \\ hosts16 & 16 & 16 & 8 & 2 & 1 & exact & 0.494 & 0.463 & 0.054 & 0.054 & 0.052 & 0.053 & 15.9 & 6.7 \\ hosts2 & 16 & 2 & 8 & 2 & 1 & exact & 0.402 & 0.369 & 0.026 & 0.026 & 0.024 & 0.025 & 16.0 & 6.7 \\ hosts4 & 16 & 4 & 8 & 2 & 1 & exact & 0.499 & 0.463 & 0.037 & 0.037 & 0.035 & 0.036 & 16.0 & 6.7 \\ hosts8 & 16 & 8 & 8 & 2 & 1 & exact & 0.515 & 0.483 & 0.052 & 0.052 & 0.049 & 0.050 & 15.9 & 6.7 \\ p32 r1q2 & 16 & 16 & 32 & 1 & 2 & exact & 2.591 & 2.528 & 0.625 & 0.313 & 0.311 & 0.312 & 160.2 & 16.8 \\ p32 r2q1 & 16 & 16 & 32 & 2 & 1 & exact & 5.129 & 5.061 & 0.315 & 0.315 & 0.313 & 0.313 & 85.1 & 9.7 \\ p32 r2q1 stale & 16 & 16 & 32 & 2 & 1 & stale & 5.130 & 5.065 & 0.314 & 0.314 & 0.311 & 0.312 & 148.7 & 9.7 \\ p32 r3q1 & 16 & 16 & 32 & 3 & 1 & exact & 7.666 & 7.602 & 0.314 & 0.314 & 0.312 & 0.312 & 85.1 & 9.8 \\ \bottomrule \end{tabular} \begin{tablenotes}\footnotesize \item Python 3.9/3.14 + NumPy over TCP (length-prefixed pickle frames) on the MacLustr LAN (1 GbE/10 GbE mixed); coordinator on a Mac Studio M4 Max. `local' is the wall-clock from the first `fit' broadcast to the last upload, i.e.\ the slowest worker; `rounds' sums the synchronized derivative phases. Bytes include frame headers and pickle overhead. Repeats and raw logs: \texttt{results/raw/benchmarks.jsonl}. \end{tablenotes} \end{threeparttable} \end{table}