Skip to content

LU2-WP02 - CPU/MPI/GAMG readiness and configuration freeze

Status: PASS_WITH_LIMITATIONS

Execution source snapshot: 3cb817c9391ef7998c5950d3071c8d9ce1be5dd8

This closeout records the configuration used to prepare LU2-WP03 through LU2-WP05. It does not claim universal 3M performance and does not change the WP14 acceptance contract.

Controlled records

  • Contract: qualification/0_2_7/wp02_execution_contract.json
  • Evidence index: qualification/0_2_7/wp02_runtime/wp02_evidence_index.json
  • Freeze: qualification/0_2_7/wp02_runtime/wp02_config_freeze.json
  • State: qualification/0_2_7/wp02_state.json
  • Collector: scripts/collect_lu2_wp02_evidence.py
  • Targeted tests: tests/unit/test_lu2_wp02.py

Frozen runtime

The controlled workload is the existing 3,000,000-true-DOF structured TET4 linear-static FEM model. Its input digest is 084a471b1caab628e8558c65b1777692ed53d504baad681bf0985c411a33671b.

The selected route is PETSc AIJ with CG and GAMG, contiguous partitioning, eight MPI ranks and one thread per rank. The runtime is Docker image qf-solver-large@sha256:d6a1718001fc36772906d1a9505637bbd0a4b7e1d8ccc9afdbcb6f67b7ff6d0e, PETSc/petsc4py 3.25.1, MPICH 5.0.1, Python 3.12.3, NumPy 2.4.6 and SciPy 1.17.1. The frozen configuration is identified by LU2-WP02-FREEZE-bfd1975b012453a3 and digest bfd1975b012453a3b492cc79c968ceeba6ae6951a293e3ce65ddda548d8339a1.

WP14 acceptance remains relative tolerance 1e-8; the explicit PETSc solver relative tolerance is 1e-10, with maximum 10,000 iterations. No tolerance was changed after observation.

MPI evidence

ranks run status iterations total seconds peak RSS bytes residual equilibrium
2 r2_replay1 PASS 619 2638.165 10076241920 9.52e-11 1.25e-9
2 r2_replay2 PASS 619 2660.000 10076286976 9.52e-11 1.25e-9
4 r4_run1 PASS 598 1612.001 5373222912 1.01e-10 3.32e-9
8 r8_replay1 PASS 598 1568.651 2925957120 9.93e-11 2.52e-9
8 r8_replay2 PASS 598 1596.150 2925043712 9.93e-11 2.52e-9

The same input and solver configuration were used for all large-model runs. The 4-rank run is a single recorded run; the required two-replay coverage is present at 2 and 8 ranks. Strong-scaling speedups versus the first 2-rank run are 1.64x at 4 ranks and 1.68x at 8 ranks, with corresponding efficiencies of 0.82 and 0.42. These are measurements for this host and workload only.

Selection evidence

GAMG and HYPRE/BoomerAMG both passed the subscale numerical invariants. GAMG was selected because its recorded total time was 5.54 s versus 60.26 s for HYPRE and its peak RSS was 474 MB versus 1170 MB. This is not a universal preconditioner ranking. Contiguous and graph/PTScotch partitioning also both passed; contiguous was selected because it was faster on the recorded subscale (5.54 s versus 6.56 s).

Phase measurement boundary

The observatory records model setup, operator/assembly, preconditioner setup, KSP solve, reactions post-processing, energy post-processing and total time, plus iterations, residual, equilibrium, energy, peak RSS and RSS imbalance. The legacy runner does not expose separate preflight, redistribution, communication or I/O boundaries. Those fields are therefore explicitly null; no time is inferred from the total. LU2-WP06 remains the place to improve execution-phase diagnostics.

Freeze policy and limitations

The frozen configuration applies to LU2-WP03, LU2-WP04 and LU2-WP05. After this closeout, changing ranks, partitioning, matrix format, KSP, preconditioner, PETSc options, tolerances or runtime requires a documented blocker and Owner review. PETSc remains optional at runtime and must fail closed when unavailable; the legacy SciPy/matrix-free route remains preserved.

This evidence is bounded to one single-host Docker environment, the structured TET4 3M input and the frozen AIJ/CG/GAMG route. It is not a 5M result, a weak scaling result, an HPC portability claim or a universal performance claim.

Decision

LU2-WP02 = PASS_WITH_LIMITATIONS.

The next active work package is LU2-WP03. No solver or FEM formulation source, Owner maturity decision, tag, release or PyPI state was changed by this closeout.