Repository navigation
Thread card: draw only the mu positions the driver reports (#58) - #59
Conversation
muProgressVector() manufactured four per-mu cursor positions from the single cfg-progress scalar (fixed +/-0.06 offsets, mean forced back onto the scalar by rebalanceMuMean), so the four markers always moved together; the real coordinates were consulted only when the scalar was missing, which on a running job is never. petrus spotted it on seed 9101. Now the vector holds only reported positions: for a loop cursor, T along tdir and R along sdir (from meas_cursor_t / meas_cursor_r, or the shift vector when present); the other rows are NaN and the existing marker code draws nothing for them. The stabiliser keeps NaN and no longer rebalances. The magenta cfg-progress track stays the one moving element for overall progress, as before. Legend explains why two rows carry no marker: the GPU heat bath updates every direction in one kernel, there is no per-direction sweep position. Page script parses; applied to the live seed 9101 dashboard. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 00e8bd9cda
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const c = toFiniteNumber(coords?.[mu], NaN); | ||
| const l = toFiniteNumber(dims?.[mu], NaN); | ||
| if (!Number.isFinite(c)) return NaN; | ||
| const denom = Number.isFinite(l) && l > 1 ? (l - 1) : 1; | ||
| return clamp01(c / denom); |
There was a problem hiding this comment.
Ignore GPU skip counts as cursor positions
When a GPU worker is in skip_sweeps, this raw-vector path still treats every finite meas_cursor_shift entry as a lattice position. In gpt/applications/hmc/su2_2q_signal_scan.py, the GPU one_sweep() invokes its callback only after the complete 2 * Nd sweep, while on_skip_substep() expands that completion into equal counters for every direction before emitting the shift vector. As a result, all four μ markers still appear and move together in exactly the GPU scenario where the new legend says no per-direction position exists; GPU skip-count vectors should not populate these position rows.
Useful? React with 👍 / 👎.
With only the reported positions drawn, the markers jumped with every operator because the driver's cursor is a scan over loop geometries, not a position travelling along an axis (petrus: 'jumping wildly'). Rows now print the current T (time direction row) and R (space direction row); the magenta cfg-progress track is the only moving element. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Fixes #58 (reported by @Petrus: "thread a has mu_0-3 but all the mus move together").
Cause:
muProgressVector()manufactured four per-mu cursor positions from the single cfg-progress scalar (fixed +/-0.06 offsets, mean forced back onto the scalar byrebalanceMuMean). The real coordinates were consulted only when the scalar was missing, which on a running job is never.Fix: the vector holds only reported positions: for a loop cursor, T along tdir and R along sdir (from
meas_cursor_t/meas_cursor_r, or the shift vector when present); the other rows are NaN and the existing marker code draws nothing for them. The stabiliser keeps NaN and no longer rebalances. The magenta cfg-progress track stays the one moving element for overall progress. Legend now says why two rows carry no marker: the GPU heat bath updates every direction in one kernel, so there is no per-direction sweep position to report.Checks: page script parses; applied to the live seed 9101 dashboard, screenshot in the room.
🤖 Generated with Claude Code