bench: multi-core sharding scaling spike — GO for Way A (#10) #143
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
femboy/yip!143
Loading…
Reference in a new issue
No description provided.
Delete branch "spike/sharding-scale"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
De-risking spike for multi-core sharding (Way A, #10), sub-project 2 part 1. Answers whether the yip receive path scales across cores before building the sharded
yipd. No production code touched — a standaloneyip-benchexample + a benchmark workflow.Verdict: GO for Way A
Level-1 compute scaling on a 6-physical-core / 12-SMT box (real receive chain: deframe → FEC-decode → AEAD decrypt, per-worker distinct L3-exceeding fixture, topology-aware pinning, start barrier):
Near-linear across physical cores (0.90 at N=4, 0.83 at N=6 — ~0.90 clock-normalized after backing out the 7.7% laptop DVFS droop). The N=8/12 sub-linearity is SMT sharing (only 6 physical cores; SMT adds ~20-25% for this compute-bound path), not a memory-bandwidth wall. The ~1.2 Gbps single-core ceiling multiplies with physical cores → on fixed-clock server silicon, expect ~
physical_cores × 1.2 Gbps. Building the shardedyipd(part 2) is justified.Level 2 confirms
SO_REUSEPORTdistributes fairly across N sockets (the inbound steering mechanism Way A relies on); its absolute throughput is blaster-/SMT-/loopback-bound and is not a receiver ceiling.What's here
crates/yip-bench/examples/sharding_scale.rs— the spike (level 1 + level 2), core-count-safe sweep, non-fatal pinning.crates/yip-bench/sharding-scale.md— findings + verdict + caveats.docs/2026-07-26-multicore-sharding-scale-spike-design.md— the spec..forgejo/workflows/benchmarks.yml— runs hotpath + mac_candidates + sharding_scale on the existing runner.How it was built
9 commits, subagent-driven with per-task review. Level 1 (the gate) got deep scrutiny — pinning verified against live sysfs, fixture confirmed >L3, no scaling-inflation (the N=1 baseline is cache-favored, so efficiency is conservative). A whole-branch opus review confirmed the GO is sound and caught the sweep-panic + framing fixes now applied.
Caveats (in the findings doc)
Laptop, not server silicon: absolute Gbps optimistic (loopback), DVFS is a mobile artifact, and 32-64-core memory/interconnect behavior is unverified here — re-run on target hardware (via the workflow) before finalizing shard-count defaults.
Next after this lands: part 2 — the sharded-
yipdarchitecture spec, whose central unsolved problem is the outbound TUN path (routing each inner packet to the core owning its destination peer).