Skip to content

feat(batch): process-pool + thread executors (#704) - #734

Merged
jepegit merged 1 commit into
masterfrom
704-batch-v3-executor
Jul 26, 2026
Merged

feat(batch): process-pool + thread executors (#704)#734
jepegit merged 1 commit into
masterfrom
704-batch-v3-executor

Conversation

@jepegit

@jepegit jepegit commented Jul 26, 2026

Copy link
Copy Markdown
Owner

A8 — batch v3: parallel executors

Final arc of Epic A (batch v3, #696). Serial vs parallel is a choice of executor, not a second 300-line method (the legacy parallel_update clone). Additive.

  • runner.run(..., executor="serial" | "threads" | "processes") — all reuse load_cell. threads keep live cells (shared memory); processes return pickle-safe outcomes (no live CellpyCell across the boundary — cells re-read from files on demand; batch plan §7 / Windows pickling).
  • EXECUTORS registry; unknown executor → ValueError listing the valid choices.
  • Batch.update(executor=...) threads the choice through the facade.

Tests (3, all green)

threads keep live cells + fire progress; processes return outcomes with cell=None; unknown executor raises. Full batch-v3 suite: 46 green.

Deletion of the legacy parallel_update/dead stubs is E4 (breaking).

This completes Epic A (batch v3). Closes #704. Part of #696.

🤖 Generated with Claude Code

Final arc of Epic A (batch v3, #696). Serial vs parallel is a choice of
executor, not a 300-line clone (the legacy parallel_update).

- runner.run(..., executor="serial"|"threads"|"processes") - all reuse
  load_cell. threads keep live cells (shared memory); processes return
  pickle-safe outcomes (no live CellpyCell across the boundary; cells re-read
  from files on demand, batch plan section 7 / Windows pickling).
- EXECUTORS registry; unknown executor -> ValueError with the valid choices.
- facade Batch.update(executor=...) threads the choice through.

3 tests: threads keep live cells + progress; processes return outcomes with
cell=None; unknown executor raises. Full batch-v3 suite: 46 green.

Note: deletion of the legacy parallel_update/dead stubs is E4 (breaking).

Closes #704.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@jepegit jepegit added this to the v.2.1 milestone Jul 26, 2026
@jepegit jepegit added the cellpy2-stage4 cellpy 2.1 (Stage 4): batch/collectors redesign, utils waves 3-4, F6, shim removals label Jul 26, 2026
@cursor

cursor Bot commented Jul 26, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@jepegit
jepegit enabled auto-merge (squash) July 26, 2026 22:14
@jepegit
jepegit merged commit eb99248 into master Jul 26, 2026
5 of 6 checks passed
@jepegit
jepegit deleted the 704-batch-v3-executor branch July 26, 2026 22:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cellpy2-stage4 cellpy 2.1 (Stage 4): batch/collectors redesign, utils waves 3-4, F6, shim removals

Projects

None yet

Development

Successfully merging this pull request may close these issues.

A8: batch v3 — process-pool executor + handover

1 participant