Purpose
Persistent profiling, benchmark, acceptance, and progress ledger for end-to-end ProcessSystem and multi-area ProcessModel performance. This campaign changes code only for a unique, measured process-layer bottleneck with a meaningful representative-workload benefit.
Current master at roadmap creation: c1cde6a1c47f.
Owned scope
ProcessSystem execution preparation, strategy selection, graph/level orchestration, dirty-state traversal, nested modules, and repeated-run overhead;
ProcessModel area scheduling, boundary-stream convergence, plan validation, recycle coordination, and diagnostics;
- process-layer allocation, cloning, serialization, result construction, and disabled logging/telemetry overhead;
- end-to-end attribution of flash, thermodynamic initialization, and physical-property work performed by process equipment;
- representative cold, repeated-unchanged, and nearby-state process execution.
Coordination and exclusions
Coordinate rather than duplicate:
- TP/stability/multiphase solver internals: #2937;
- column/tray solver internals: #2936;
- transient execution contracts and reservoir-to-market dynamics: #2911;
- TwoFluidPipe and conservative pipeline solvers: #2907, #2935, and focused candidate #2850;
- initialization-level call-site audits: #2698;
- optimizer algorithms and capacity/sensitivity semantics belong to Production Optimization.
This lane may measure those components inside a complete process, but it must hand an internal solver bottleneck to its owning roadmap unless the fix is strictly process-layer orchestration.
Frozen benchmark matrix
Every candidate must use current unmodified master and retain a minimal deterministic reproducer. Cover the applicable subset of:
- Serial state-changing process: rich-gas SRK/classic feed through at least eight sequential heaters/coolers/separation/compression operations.
- Wide independent process: multiple independent SRK trains exercising automatic optimized dispatch.
- Multi-area process: at least four
ProcessSystem areas with shared boundary streams, two or more outer convergence iterations, and both sparse and dense boundary diagnostics.
- Recycle process: a deterministic recycle tear with recorded iteration count, convergence residual, mass closure, and repeat behavior.
- Associating control: SRK-CPA gas/water or glycol-bearing process so a cubic-only improvement cannot hide CPA regressions.
- Orchestration control: stable lightweight units where process-layer CPU/allocation remains observable separately from EOS work.
For each relevant workload exercise:
- cold first execution;
- repeated unchanged execution;
- nearby temperature, pressure, flow, or specification changes;
- deterministic repeat after convergence;
- direct concrete execution entry points when dispatcher behavior changes.
Measurement contract
- fixed JVM and heap; report JVM/OS/GC;
- warmed deterministic inputs with multiple alternating baseline/candidate fresh-JVM pairs;
- median and paired-win count; retain raw fork results;
- main-thread and relevant worker allocation where measurable;
- JFR/async-profiler or explicit work counters for dominant execution paths;
- count process iterations, equipment runs, flash calls, thermodynamic init levels, physical-property initialization, plan validations, clone/serialization events, and submitted tasks when applicable;
- report full-process wall time even when a kernel is faster;
- no wall-clock assertion in ordinary CI.
Engineering acceptance gates
A production optimization requires all applicable evidence:
- at least 5% median end-to-end gain on a representative state-changing
ProcessSystem or ProcessModel workload, with a majority of paired wins; or at least 15% allocation reduction plus a measured operational GC/throughput benefit;
- no material regression in thermodynamics-dominated, CPA, genuinely parallel, or nearby-state controls;
- unchanged public API and serialized compatibility unless separately approved;
- deterministic repeated results and calculation-ID behavior;
- unchanged phase topology, convergence/fallback status, iteration acceptance, and diagnostics;
- total/component mass and energy balances at least as tight as baseline;
- thread safety, clone independence, and no static/shared mutable cache;
- focused regression plus proportionate broader process tests;
- documentation-impact assessment and repository publication gates.
A kernel-only improvement without representative end-to-end benefit is evidence, not authorization for a PR.
Verified merged ledger
#2687 — avoid duplicate run preparation
Merged as 1e35232218b6. Warm optimized-process medians improved 23.7–35.0%, and a four-area lightweight ProcessModel improved 25.6%; thermodynamics-dominated sequential execution showed no reliable change. Nearby-point results were bit-identical.
#2902 — skip redundant nested active-state scan
Merged process-layer scan removal. A 500-stable-unit workload improved 4.54% (6/7 pairs); one-area ProcessModel improvement was noise-level, so no broad model claim was made.
#2904 — avoid dataflow scheduler for serial flowsheets
Merged as 152e9b76badd. A state-changing serial rich-gas chain improved 6.63% (6/7 pairs) with identical checksum, zero mass residual, phase count, and outlet pressure; genuinely parallel and multi-area controls were noise-level.
#2924 — reuse area plan in convergence diagnostics
Merged as 66a866f1e2e8. Direct diagnostics improved 32.5–85.7%; the full 10-area/900-boundary-stream ProcessModel improved 27.9% with identical convergence work and checksum. The thermodynamic control was noise-level.
#2929 — reduce convergence-diagnostic allocation
Merged as 31d0d9009c37. Repeated 900/4,500-stream diagnostics reduced allocation by 13.8–15.8% and runtime by 1.1–14.3%, preserving exact cardinality and checksum.
Coordinated flash evidence
#2930 merged as c1cde6a1c47f and is ledgered in TP-flash roadmap #2937. Its accepted raw-coefficient cache improved the beta-objective kernel 25.6–40.0% while preserving bit-identical derivatives; complete-flash improvement was only 0.47%, so no robust end-to-end claim was made.
#2963 — restore evidence-qualified equipment initialization
Merged as f604a089d2a8 after #2953 changed Compressor, Pump, and Recycle initialization without clearing the roadmap's representative-benefit gate. Exact-source A/B showed the four-stage Pump ProcessSystem 2.48% slower (2/7 wins), the three-stage SRK compressor train 1.05% slower by absolute medians, and only a kernel-level Recycle gain without convergence evidence. #2963 restored the qualified calls and added focused normal/low-flow Pump and Recycle guards. Its exact head bcca19e20368 passed PaperLab, pre-commit, an empty final Spotless patch, CodeQL, Javadocs, the Linux/Windows Java matrix, and all four slow-test shards; no reviews or unresolved threads remained. Public API, serialization, calculation identity, balances, phase behavior, and numerical results were unchanged.
Active increment
No Process Performance implementation PR is active.
Next dependency-ready investigation
Profile current master across the frozen matrix and attribute complete-run work before editing. The first ranked question is whether a process execution performs duplicate equipment runs, flashes, thermodynamic initialization, or initProperties() for the same accepted calculation state during:
- unchanged repeated execution;
- one nearby feed/specification change;
- one multi-area convergence iteration;
- one recycle convergence iteration.
Instrument counts locally to the benchmark or use JFR; do not add public telemetry merely to profile. Cross-reference every high-level initialization candidate with #2698 and every flash-internal candidate with #2937.
Stop without a PR if the dominant work is required physics, already owned elsewhere, or no unique process-layer change clears the end-to-end acceptance gate. Record the call/work distribution and next ranked hypothesis here.
Purpose
Persistent profiling, benchmark, acceptance, and progress ledger for end-to-end
ProcessSystemand multi-areaProcessModelperformance. This campaign changes code only for a unique, measured process-layer bottleneck with a meaningful representative-workload benefit.Current master at roadmap creation:
c1cde6a1c47f.Owned scope
ProcessSystemexecution preparation, strategy selection, graph/level orchestration, dirty-state traversal, nested modules, and repeated-run overhead;ProcessModelarea scheduling, boundary-stream convergence, plan validation, recycle coordination, and diagnostics;Coordination and exclusions
Coordinate rather than duplicate:
This lane may measure those components inside a complete process, but it must hand an internal solver bottleneck to its owning roadmap unless the fix is strictly process-layer orchestration.
Frozen benchmark matrix
Every candidate must use current unmodified master and retain a minimal deterministic reproducer. Cover the applicable subset of:
ProcessSystemareas with shared boundary streams, two or more outer convergence iterations, and both sparse and dense boundary diagnostics.For each relevant workload exercise:
Measurement contract
Engineering acceptance gates
A production optimization requires all applicable evidence:
ProcessSystemorProcessModelworkload, with a majority of paired wins; or at least 15% allocation reduction plus a measured operational GC/throughput benefit;A kernel-only improvement without representative end-to-end benefit is evidence, not authorization for a PR.
Verified merged ledger
#2687 — avoid duplicate run preparation
Merged as
1e35232218b6. Warm optimized-process medians improved 23.7–35.0%, and a four-area lightweightProcessModelimproved 25.6%; thermodynamics-dominated sequential execution showed no reliable change. Nearby-point results were bit-identical.#2902 — skip redundant nested active-state scan
Merged process-layer scan removal. A 500-stable-unit workload improved 4.54% (6/7 pairs); one-area
ProcessModelimprovement was noise-level, so no broad model claim was made.#2904 — avoid dataflow scheduler for serial flowsheets
Merged as
152e9b76badd. A state-changing serial rich-gas chain improved 6.63% (6/7 pairs) with identical checksum, zero mass residual, phase count, and outlet pressure; genuinely parallel and multi-area controls were noise-level.#2924 — reuse area plan in convergence diagnostics
Merged as
66a866f1e2e8. Direct diagnostics improved 32.5–85.7%; the full 10-area/900-boundary-streamProcessModelimproved 27.9% with identical convergence work and checksum. The thermodynamic control was noise-level.#2929 — reduce convergence-diagnostic allocation
Merged as
31d0d9009c37. Repeated 900/4,500-stream diagnostics reduced allocation by 13.8–15.8% and runtime by 1.1–14.3%, preserving exact cardinality and checksum.Coordinated flash evidence
#2930 merged as
c1cde6a1c47fand is ledgered in TP-flash roadmap #2937. Its accepted raw-coefficient cache improved the beta-objective kernel 25.6–40.0% while preserving bit-identical derivatives; complete-flash improvement was only 0.47%, so no robust end-to-end claim was made.#2963 — restore evidence-qualified equipment initialization
Merged as
f604a089d2a8after #2953 changed Compressor, Pump, and Recycle initialization without clearing the roadmap's representative-benefit gate. Exact-source A/B showed the four-stage PumpProcessSystem2.48% slower (2/7 wins), the three-stage SRK compressor train 1.05% slower by absolute medians, and only a kernel-level Recycle gain without convergence evidence. #2963 restored the qualified calls and added focused normal/low-flow Pump and Recycle guards. Its exact headbcca19e20368passed PaperLab, pre-commit, an empty final Spotless patch, CodeQL, Javadocs, the Linux/Windows Java matrix, and all four slow-test shards; no reviews or unresolved threads remained. Public API, serialization, calculation identity, balances, phase behavior, and numerical results were unchanged.Active increment
No Process Performance implementation PR is active.
Next dependency-ready investigation
Profile current master across the frozen matrix and attribute complete-run work before editing. The first ranked question is whether a process execution performs duplicate equipment runs, flashes, thermodynamic initialization, or
initProperties()for the same accepted calculation state during:Instrument counts locally to the benchmark or use JFR; do not add public telemetry merely to profile. Cross-reference every high-level initialization candidate with #2698 and every flash-internal candidate with #2937.
Stop without a PR if the dominant work is required physics, already owned elsewhere, or no unique process-layer change clears the end-to-end acceptance gate. Record the call/work distribution and next ranked hypothesis here.