Skip to content

Thread pool design kept as a record, marked dropped - #334

Merged
skavhaug merged 3 commits into
masterfrom
worktree-sun-threads
Oct 22, 2026
Merged

skavhaug merged 3 commits into
masterfrom
worktree-sun-threads

Conversation

@skavhaug

Copy link
Copy Markdown
Member

Docs only: increment 88's design (the parallel helper keeps its threads between calls) kept as a record, marked dropped and not built, per Ola's ruling of 2026-10-22: the year has 4,684 parallel calls (the 35,000 assumed was threads started, 8 a call), so a pool saves about 1-1.5 s a year; the time was per-receiver trigonometry, sped up in the private package's increment 89, which cites this design. ROADMAP row 88 says the same. Review: APPROVED on 0f641c6 (@Reviewer).

🤖 Generated with Claude Code

skavhaug and others added 3 commits October 21, 2026 22:45
…itect)

for_each_block wakes a persistent team per call instead of starting
min(threads, blocks) new std::jthreads, so the private package's per-step
kernels (sun-and-shadow evaluator, snow, evaporation) stop paying a start
and a join each step. Same partition, counter and error order; a busy pool
(second calling thread, nested call), a forked child or a shut-down pool
falls back to today's start-and-join. One pool per shared library, joined
at process exit by a static reaper. Reverses increment 14 R7's "no pool".

Premise checked against the profile at ee9565d3: about 35,000 is threads
started in the loop (4,684 evaluator calls x 8), not calls; estimated
saving 1-1.5 s of the year run, not the evaluator's 18.5 s.

Tests P1-P8 (reuse counted by a new thread_starts(), growth, participants,
partition, nested, two callers, exit, fork); micro-benchmark of 10,000
short calls; bench.py refine must not regress. About 85 counted lines.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…#328, #329, #330 (@architect)

Merge base 3b21eb5. First-parent merges brought in
(git log --merges --first-parent --oneline 3b21eb5..2818da3):
  2818da3 Merge pull request #330 from expertanalytics/worktree-worktree-retro-1022b
  3b7325a Merge pull request #329 from expertanalytics/worktree-h29-review-rules
  bc86453 Merge pull request #328 from expertanalytics/worktree-retro-1021d
  a393378 Merge pull request #327 from expertanalytics/worktree-worktree-retro-1022a
Conflicts: none
Gates on the merged tree, in ./.venv:
check_prohibited_deps, check_detria_boundary, check_citations --base origin/master, ruff check, ruff format --check, mypy, pytest.
_core rebuilt: no, no C++ came in.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
…citation (@architect)

Ola ruled on 2026-10-22 that the thread-pool design goes to the public repo
marked dropped rather than deleted, because the private package's increment
89 (the sun evaluator speed-up, private PR #40) cites it.

- docs/increments/88-thread-pool.md: status line now says dropped, not built,
  and why: the request assumed about 35,000 parallel calls a year, but the
  year makes 4,684 (35,000 was threads started, 8 a call, as section 1
  already said), so a persistent team would save about 1 to 1.5 s a year;
  the evaluator's time was per-receiver trigonometry, sped up in the private
  increment 89. The design body is unchanged.
- ROADMAP.md row 88: status column matches; the row stays on line 90.

origin/master 2818da3 was merged in first as 7dc2c6d (tools/merge_master.py).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@skavhaug
skavhaug enabled auto-merge October 22, 2026 05:44
@skavhaug
skavhaug added this pull request to the merge queue Oct 22, 2026
Merged via the queue into master with commit 94a157b Oct 22, 2026
9 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