Skip to content

Remove normalization buffers that amplify multicore image preparation cost - #1107

Merged
trissim merged 2 commits into
mainfrom
perf/normalization-scaling-min3-20261008
Oct 8, 2026
Merged

trissim merged 2 commits into
mainfrom
perf/normalization-scaling-min3-20261008

Conversation

@trissim

@trissim trissim commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator

Per-plane image normalization creates cast planes and divided planes before stacking them into another complete buffer. Under four workers, WoundHealing image-request preparation takes a median 226.54 ms per assignment, versus 106.93 ms for image processing. The exact reconstructed invocation proves the loaded source is reused; no source admission guards are loosened.

Delegate plane normalization to the existing ArrayBridge memory operation owner, and keep divisor validation and scale proofs in one existing OpenHCS intensity authority. Require ArrayBridge 0.3.8 and pin its merged implementation (ArrayBridge PR #9). Mutable arrays allocate one owned output buffer; immutable backends retain the original recipe. Producer pixels remain unchanged.

The bounded four-fork saved-source replay reduced the three-assignment critical path from 1.174 s to 0.377 s with exact pixels and metadata. This is diagnostic boundary evidence, not a full-pipeline speedup claim. Validation includes 252 original-owner comparisons, genuine WoundHealing RGB inputs, three CuPy controls, the existing OpenHCS normalization checks, and the full ArrayBridge suite (242 passed, 17 skipped); external lint, format, and type checks passed. Matched production receiving is complete: all 96 assignment comparisons passed. Full output-complete execution medians are 7.908462 s with one worker and 3.199810 s with four workers, giving 2.471542x actual scaling with the new one-worker denominator. The prior published four-worker result was 5.207406 s. Raw reports, all eight receipts/progress streams, diagnostic controls and hashes are archived in benchmark/results/normalization_scaling_receiving_20261008. External startup and scientific qualification are outside these clocks; saving, exports, publication and finalization are included. This bounded result does not replace the full thirty-workflow manuscript figures or complete the minimum 3x scaling goal.

Closes #1106.

@trissim
trissim marked this pull request as ready for review October 8, 2026 02:03
Copilot AI balanced review requested due to automatic review settings October 8, 2026 02:03
@trissim
trissim merged commit 6671b86 into main Oct 8, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

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.

Remove redundant per-plane normalization buffers that amplify multiprocessing allocation cost

2 participants