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 uses the mandatory repository-pinned PRIMME 3.2.3 eigensolver.

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. Measurements from different 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. The selection algorithm explains how output-side spin closure affects the target count.

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

T1 wall / RSS

T8 wall / RSS, speedup

T16 wall / RSS, speedup

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 took about 1.9-2.1 seconds. 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.

Large-Cluster Workloads#

Completed September 2026 Ce:YPO4 workloads used an Intel Xeon E5-1650 (Sandy Bridge, 6 cores/12 hardware threads, AVX, 128 GiB RAM). The older atomic benchmark used an E5-2680 v4 (Broadwell, 14 cores/28 threads, AVX2). These are different hosts and campaigns.

Case

Reference AOs / retained MOs

Physical determinants / ncf

Scalar / SO roots

DIAGPT native wall

Ce:YPO4 RHF-based SCI

750 / 750

753 / 1142

7 / 14

9676.34 s

Ce:YPO4 RHF-based SCI

1052 / 1052

476 / 1236

12 / 24

27953.26 s

Ce:YPO4 SA-CASSCF

1470 / 1300

12 / 12

12 / 24

3839.64 s

Ce3+ atomic benchmark on E5-2680 v4

232 / 232

5104 / 10701

12 / 24

3303.19 s at 14 threads

The cluster exports used materialized DF-expanded integrals with 20 selected orbitals. The 1470-AO reference retained 1300 MOs for downstream work. Its DF export took 7257 s; native-stage peak RSS was 100.54 GB and sampled swap reached 38.07 GB. The two RHF-based SCI cases used eight off-diagonal threads; the small 12-row CAS used one. A completed run does not make these timings transferable to another model space or memory configuration.

The measurement table separates AO, MO, physical-determinant and adapted-model counts. Empty CSV fields are unavailable measurements, not zeros. The table describes completed workloads, not a controlled comparison of release versions.

Determinant And Orbital Scaling#

DIAGPT builds up to ncf*(ncf-1)/2 off-diagonal pairs. At fixed orbital data and similar determinant connectivity, linear diagonal-PT2 and quadratic off-diagonal terms are useful planning approximations. Rejection rules, adjacency, roots and orbital occupations affect the actual work per pair.

For the two RHF-based SCI cases above:

Quantity, 750 → 1052 MOs

Ratio

Stored values in the four selected ERI families

2.36967

ncf

1.08231

Potential off-diagonal pairs

1.17148

Measured diagonal PT2 time

2.92999

Measured off-diagonal time

2.85909

Measured native DIAGPT time

2.88882

ERI-value ratio × pair-count ratio

2.77601

The pair-weighted integral-count estimate is close to this measured change, but the two runs also changed roots, occupied partition and build settings. Ce750 used Release/GCC 15.3; Ce1052 used bounds-enabled RelWithDebInfo/GCC 15.1 with IPO disabled. Swap also differed. This is not a measured universal power law or evidence of ideal thread scaling.

At fixed core and selected counts, the four packed ERI families grow asymptotically as M²; full J/K slices grow as M³. If occupied and virtual spaces grow together, the CV-CV family instead has fourth-power growth. See block sizes before extrapolating.

Small Model Spaces And Threads#

DIAGPT’s off-diagonal OpenMP region is enabled only when ncf - 1 >= 4*T, with requested thread count T. Otherwise that region uses one thread. For ncf=12 and T=10, sequential off-diagonal work is expected. Other stages and numerical libraries have their own threading behavior.

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.

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.