Benchmarks And Scaling Guidance#

This page turns accepted MPPT benchmark campaigns into conservative operating guidance. Timings are not portable performance guarantees: chemistry, model space, compiler, libraries, CPU topology, affinity, and storage all matter. Measured values and planning estimates are kept separate below.

Current Recommendations#

For the measured Intel i7-11700 host:

Stage

Recommended setting

Evidence

PySCF selected-route producer

8 threads

Fastest for both 128- and 232-orbital cases; 16-way SMT regressed

CIPSIXX

16 threads for minimum wall, 8 for lower memory

T16 was fastest, but scaling beyond T8 was modest

DIAGPT

PRIMME with 16 threads for minimum wall, 8 for efficiency

T16 was fastest; the off-diagonal Heff build dominated

HEFFSO

oneMKL sparse with 8 threads

Fastest measured backend/thread combination and about 280 MiB below Fortran sparse RSS

DIAGPT now always uses the mandatory repository-pinned PRIMME 3.2.3 eigensolver. Historical LAPACK measurements below are retained only to explain the backend decision; they are not an available runtime configuration.

Measurement Contract#

The primary campaign was i7-a73a799-20260818T055842Z at MPPT commit a73a799eb7e230785390e05f2a085934548a55ec, source tree ebe13e6fdeb424d2af473bcd7d4393045fb53eb4, and CIPSIXX commit 617ae8ba23746b679ec9563a482117a49905b207.

  • Host: Intel i7-11700, 8 physical cores and 16 logical CPUs.

  • Build: GCC/GFortran 13.3.0 Release, -O3, -march=rocketlake, -mtune=rocketlake, PRIMME 3.2.3, and oneMKL dense/sparse support.

  • Affinity: T1 on CPU 0, T8 on CPUs 0-7, and T16 on CPUs 0-15.

  • Execution: cells ran sequentially; no benchmark workloads overlapped.

  • Host policy: intel_pstate, powersave governor, EPP=performance, and turbo enabled.

  • Statistics: one accepted measurement per cell, so no variance or error bars are claimed.

  • Speedup: always uses the measured T1 cell for the same case and backend. Historical campaigns are not mixed into these ratios.

  • Completion: 30 cells passed and 3 conditional target-50000 cells were skipped. Blank skipped-cell metrics mean unavailable, not zero.

The compact selected-route producer checks also verified every required compact dataset and the absence of int2e_full in all six PySCF outputs.

Measured PySCF Producer Scaling#

Both cases used 20 selected orbitals.

Case

T1 wall / RSS

T8 wall / RSS, speedup

T16 wall / RSS, speedup

Pr128

111.189 s / 1987.8 MiB

58.399 s / 2460.9 MiB, 1.904x

93.231 s / 2633.5 MiB, 1.193x

Ce232

5420.064 s / 14947.4 MiB

2260.848 s / 15563.9 MiB, 2.397x

2606.770 s / 15962.9 MiB, 2.079x

T8 was fastest for both systems. More logical threads increased memory and made both transforms slower.

Measured CIPSIXX Scaling#

Requested target, adapted DIAGPT configuration count (ncf), and physical determinant count are different quantities and must not be interchanged.

Target

Actual ncf

Physical determinants

T1 wall / RSS

T8 wall / RSS, speedup

T16 wall / RSS, speedup

10,000

10,028

4,771

259.302 s / 1339.1 MiB

156.434 s / 2586.3 MiB, 1.658x

143.672 s / 3147.8 MiB, 1.805x

20,000

20,068

10,630

2396.722 s / 2113.9 MiB

1712.920 s / 4575.3 MiB, 1.399x

1585.405 s / 5488.2 MiB, 1.512x

Cross-thread physical determinant sets, adapted model spaces, and roots matched at every measured target. Target 50,000 was not measured: all three cells were contract-skipped because the corresponding accepted target-20,000 wall exceeded the strict 600-second launch gate. Therefore there is no measured target-50,000 wall, RSS, speedup, or scientific identity.

Measured DIAGPT Scaling#

The Ce3+ target-5000 fixture contained ncf=5141, 2,446 physical determinants, and 12 states.

Eigensolver in measured revision

T1 wall / RSS

T8 wall / RSS, speedup

T16 wall / RSS, speedup

Retired LAPACK baseline

3750.218 s / 686.5 MiB

853.276 s / 686.4 MiB, 4.395x

723.211 s / 686.5 MiB, 5.186x

PRIMME

3857.508 s / 678.3 MiB

807.300 s / 678.3 MiB, 4.778x

695.691 s / 678.1 MiB, 5.545x

The off-diagonal Heff build dominated total wall. Its PRIMME-run wall was 3225.580, 624.899, and 525.422 seconds at T1/T8/T16. The eigensolver phase was about 1.9-2.1 seconds with PRIMME versus 11.2-12.0 seconds in the retired baseline. All cells returned the same 12 final energies at printed precision. T16 minimized wall, while T8 retained higher parallel efficiency.

Measured HEFFSO Scaling#

All cells requested 24 roots and completed 16 outer iterations and 157 matvecs.

Sparse backend

T1 wall / RSS

T8 wall / RSS, speedup

T16 wall / RSS, speedup

Fortran

24.296 s / 1251.7 MiB

10.519 s / 1254.6 MiB, 2.310x

16.284 s / 1265.0 MiB, 1.492x

oneMKL

14.781 s / 965.2 MiB

8.266 s / 968.4 MiB, 1.788x

11.783 s / 977.1 MiB, 1.254x

The maximum cross-cell energy difference was exactly 0.0 Eh. The conservative relative residual was 2.918e-8, below primme_eps=1e-5. T16 regressed both backends on this host.

Near-50k Planning Estimates#

The following values are derived projections, not campaign measurements.

For CIPSIXX, fitting a local power law between the measured ncf=10028 and ncf=20068 points and evaluating it at ncf=50000 gives:

Threads

Fitted exponent

Estimated wall at ncf=50000

1

3.206

12.42 h

8

3.450

11.10 h

16

3.461

10.38 h

This two-point fit is sensitive to chemistry and selection trajectory. Use roughly 8-16 hours only as a scheduling range, not as an acceptance threshold.

For DIAGPT, scaling only the measured PRIMME off-diagonal phase by the number of configuration pairs, n*(n-1), gives:

ncf

Contract status

Pair multiplier from 5,141

T8 off-diagonal estimate

T16 off-diagonal estimate

One packed float64 triangle

46,340

Current DIAGPT maximum

81.263x

14.11 h

11.86 h

8.00 GiB

50,000

Rejected by current preflight

94.606x

16.42 h

13.81 h

9.31 GiB

These are off-diagonal-only estimates. They exclude selection, diagonal PT2, diagonalizations, I/O, and HEFFSO, and do not predict RSS. Current preflight rejects DIAGPT ncf > 46340 and HEFFSO ncf > 35000; the 50,000 row is capacity planning for a future contract, not a runnable input.

Combining the T16 CIPSIXX fit with the hypothetical DIAGPT off-diagonal value is already about 24.2 hours. A 26-28 hour working estimate and a 36-48 hour reservation leave room for omitted phases and model variation, but neither is a measured end-to-end result. On GNU Fortran, the hypothetical packed Heff is about 9.31 GiB and the packed default-logical interaction table about 4.66 GiB before adjacency, coefficients, PRIMME work arrays, and filesystem copies. A 20-30 GiB RAM budget and 30-40 GiB free-disk budget are conservative planning figures, not measured peaks.

Do not extrapolate sampled D/J subphase clocks. They are worker-seconds and are not automatically scaled totals; see DIAGPT profiling.

Historical Cross-Host Context#

The 2026-08-16 i7-11700 versus Xeon E5-2680 v4 campaign used an earlier source tree and is context only.

  • The matched smoke gate passed with identical reported energies. Ce100 workflow wall was 16.499 s on the i7 and 26.037 s on the Xeon WSL host.

  • The medium ncf=10701 DIAGPT grid was intentionally stopped before measured one-thread points. Accepted i7 walls were 7727.8/4513.3/3097.2/2807.8 seconds at T2/T4/T8/T16; accepted Xeon walls were 7084.6/4304.7/3303.2/2639.3 seconds at T4/T8/T14/T28.

  • At matched T4 and T8, the Xeon was 1.57x and 1.39x slower. The physical-core maximum ratio was 1.067x (Xeon T14 over i7 T8); the logical-CPU maximum ratio was 0.940x (Xeon T28 over i7 T16).

  • The historical HEFFSO path used about one CPU core regardless of requested threads. It is not representative of the later fixed-control sparse-backend campaign above.

Because the medium grid was partial, it supports no measured T1 speedup or D/J profile conclusion. Detailed campaign evidence remains in non-published development records.

Updating This Page#

  • Add measured rows only from completed, accepted cells.

  • Keep skipped, failed, interrupted, measured, and estimated values distinct.

  • Never combine timings across source revisions or campaigns in one speedup.

  • Record hardware, affinity, compiler, dependency, and binary provenance.

  • Keep large artifacts and raw logs outside Git; preserve detailed decisions and paths in non-published development records.