Skip to content

E52: latency between env client and bridge changes the time, not the weights - #118

Merged
tactino merged 2 commits into
mainfrom
exp/e52-latency-sweep
Oct 2, 2026
Merged

tactino merged 2 commits into
mainfrom
exp/e52-latency-sweep

Conversation

@tactino

@tactino tactino commented Oct 2, 2026

Copy link
Copy Markdown
Member

The question

The paper claims that latency between environment and trainer slows a run without changing what it collects. On one machine, with latency added between the env client and the bridge, does training end on the same weights? And does the time grow by two one-way delays per step?

The answer

The weights are the same at every delay, so P1 holds. SB3 PPO trained 16 Pendulum environments behind delay_proxy.py, three seeds × {direct, 0, 1, 5, 25 ms each way}. All 15 runs end on E50's in-process weights for their seed. At 25 ms a run takes 22× as long and ends on the same bytes.

The time came in a little above the band, so P2 is falsified at 25 ms. Each step cost 2D plus 0.1–3.1 ms. The registered band was 2D to 2D + 3 ms: inside it at 1 and 5 ms, and above it at 25 ms by 0.02–0.10 ms on every seed.

After the runs, proxy_rtt.py measured the proxy alone. It accounts for about 1 ms: its two sleeps are rounded up in epoll_wait, as E47 found. The rest grows with D and is reported as not explained.

…latency between env client and bridge change the weights, and does it cost two one-way delays per step
…e, not the weights; up to 25 ms each way, SB3 ends on its in-process weights

All 15 runs (seeds 0-2 x direct, 0, 1, 5, 25 ms) end on E50 in-process weights. Each step costs 2D plus 0.1-3.1 ms; P2 (band 2D to 2D + 3 ms) is falsified at 25 ms by 0.02-0.10 ms. After the runs, proxy_rtt.py shows the proxy itself accounts for about 1 ms; the rest grows with D and is not explained.
@tactino
tactino merged commit ca9b705 into main Oct 2, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant