CPU scaling benchmark

workers
10 +1 main
iters total
500M
45454545/stream
elapsed
1154.9 ms
total CPU used
11360.36 ms
speedup
9.84×
vs serial
efficiency
89.5%
of 11× ideal
stream spawn ms spawned@ work start@ work end@ work ms reap wait ms
0 (main) 0 33.52 33.53 1140.85 1107.32 0
1 2.142 2.16 18.54 1152.13 1133.59 11.4
2 1.642 3.83 15.89 1088.11 1072.22 0.14
3 1.541 5.39 21.97 1015.03 993.06 0.2
4 4.222 9.62 33.72 1127.77 1094.05 0.22
5 1.573 11.21 47.2 1128.18 1080.98 0.24
6 1.517 12.74 37.26 1115.08 1077.82 0.26
7 3.832 16.59 46.13 890.96 844.83 0.28
8 7.621 24.23 63.76 971.18 907.42 0.3
9 7.26 31.51 83.6 1137.21 1053.61 0.31
10 1.979 33.51 71.01 1066.47 995.46 0.33
main
w1
w2
w3
w4
w5
w6
w7
w8
w9
w10
    fork+handshake      CPU work      parent reap wait
what this measures
Each stream runs a tight integer LCG loop — working set is one CPU register, no memory access, no shared data. Speedup = sum(stream CPU time) / wall-clock elapsed. Efficiency = speedup / (workers+1). 100% efficiency means perfect linear scaling; less than 100% is the cost of serial fork setup, reap tail, SMT/core contention.