Skip to content

Avoid transporting unused worker artifacts into plate exports - #193

Merged
trissim merged 6 commits into
mainfrom
codex/perf-plate-input-transport-pr
Sep 29, 2026
Merged

trissim merged 6 commits into
mainfrom
codex/perf-plate-input-transport-pr

Conversation

@trissim

@trissim trissim commented Sep 29, 2026 •

Copy link
Copy Markdown
Collaborator

A 16-well plate export waits after all four workers finish because each lane serializes about 1.54 GB of runtime records, mostly images and object labels that the plate spreadsheet does not consume. The new MERGE_PLATE_INPUTS mode retains artifact types declared by compiled plate invocations. Explicit full-value observation and analysis consolidation keep full records, and output paths are captured before filtering. Fixes #192.

This PR is stacked on #191. It includes the outcome-path preservation commit from #157 as a prerequisite because #191's branch does not contain it; that commit can be dropped from this stack after #157 lands. Benchmarks used the integrated checkout documented in the report, which also contains separate pending performance work from #170 and #175.

Run Execution before → after Total before → after Post-worker gap before → after
Official30, fresh-server one well, summed 85.869 → 80.329 s 220.006 → 214.708 s —
Colocalization, 16 wells / 4 fork workers 51.177 → 33.491 s 61.983 → 43.263 s 18.804 → 0.726 s
ImagingFlow, 16 wells / 4 fork workers 212.827 → 126.078 s 227.382 → 139.305 s 88.090 → 3.171 s

All 30 one-well cases succeeded and all 110 generated files matched the control by path and bytes. Both 16-well plate exports matched byte for byte. The exact review branch passed 76 focused unit tests, a real ZMQ full-value export test, and an analysis-consolidation integration test. Its warmed 16-well Colocalization run measured 33.217 s execution and produced the same plate CSV. The report now links the measured four-job native CP 16-well results in #197; its earlier 16× cold-launch projection remains separately labeled.

Derive contract-owned export paths before worker cleanup, retain those lightweight paths with execution results, and let the ZMQ server observe them even when outcome-only retention releases full parent values.

Refs #145.
@trissim
trissim marked this pull request as ready for review September 29, 2026 13:35
Distinguish the historical 16× cold-launch projection from the four-job native CP measurements in PR #197 for issue #196.
@trissim
trissim changed the base branch from codex/perf-single-axis-pr to main September 29, 2026 17:59
Keep the typed observation retention policy while reconciling worker execution with current main. Local focused execution and ZMQ tests: 40 passed; Black and PR diff checks passed.
@trissim
trissim merged commit 6ec2711 into main Sep 29, 2026
25 of 35 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.

Avoid transporting unused worker image and label records into plate exports

1 participant