MANTA performance plan: the fastest integral engine beside libint¶
Status 2026-10-30. Owner: the MANTA programme (#617); performance tracker #638. This page is the ordered implementation plan behind the “MANTA speed n/12” tracker issues; each issue carries the equations, files, steps and acceptance for one bounded increment so independent chats can take steps in parallel. The target is the maintainer’s: the speedup SHARK reaches over libint, generalized to the molecular and the periodic selected routes, as a second engine beside libint (never a replacement), with a paper at the end.
Where MANTA stands (measured)¶
Measurement |
Result |
Source |
|---|---|---|
Per-quartet kernel, identical shell schedule, HBr and ZnH+ in STO-3G |
5.5x slower than libint (22x before the #638 kernel slices) |
|
Complete selected RHF on 10 bohr water chains, n = 4 and 8 |
4,700x (RI-J, exact K) to 18,000x (RI-BUPO) slower than libint; exact K grows as n^4; no screening. After #748 slice 1 (tau = 1e-10, exact K screened, RI passes not yet): 790x (n = 4) and 320x (n = 8); after #757 step 2 the best path (RI-BUPO leaf 8 / order 6) is 645x and 204x; after #748 slice 3 (RI-J passes screened) RI-J is 574x and 135x; after #750 slices 0/0b (shared pair expansions) 224x and 60x; after #749 step 1 (unique quartets) 122x and 38x; after #749 step 2 (unique RI pairs) 95x and 28x; after #752 (grid-Taylor Boys) 80x and 23x; after #751 step 1 at the route’s default channel batch 1 (earlier rows used 2) 60x and 20x; with the retained RI coupling (#638) 24x and 7.8x |
|
RI-BUPO-J at the test fixture (order 12, leaf 1) |
3.0-3.9x the RI-J build; 74% of the SCF in the far-block admission repeated every build |
same |
Streamed RI K |
3.3x the exact K at 14-28 basis functions (every three-center tile re-evaluated per mode-block pass) |
same |
The gap has three independent causes, in order of size: no screening and no
incremental builds (the route is certificate-first and the screening
certificate was never written, manta_engine.md section 2.2); per-quartet
assembly instead of block matrix products; and a far-field fixture whose
admission work exceeds the passes it replaces.
What the fastest engines do¶
SHARK (Neese 2023) is McMurchie-Davidson like MANTA. Its measured ratio to libint is parity to 1.3x on whole double and triple zeta Fock builds (penicillin def2-TZVPP 417 s against 481 s on Intel, 329 s against 315 s on Apple M1; def2-QZVPP 3175 s against 3862 s) and 2-6x per batch at l >= 3 with contraction depth >= 2. The mechanisms: per-shell-pair E matrices with contraction and solid-harmonic transform folded in and primitive pairs pre-screened (section 3.2); two BLAS level 3 products per shell-pair block (Eqs. 21-26, Scheme 1); loop-free routines for l_tot <= 2 (section 3.1); digestion with redundancy factors (Eq. 37); Split-J and Split-RI-J in the Hermite basis (Eqs. 38-50); a per-class hybrid dispatch with libint (section 3.5). LibintX (Asadchev and Valeev 2023-2025) pushes the same factorization to SIMD and GPUs: variable-size shell-set batches, 30-90% of FP64 peak, up to 30x over libint on CPUs per class, terminal-Hermite folding and early contraction. Screening: Cauchy-Schwarz (Häser and Ahlrichs 1989) is rigorous for every positive-definite kernel; distance-including rigorous bounds (Thompson and Ochsenfeld 2017) and tight estimates (QQR, Maurer et al. 2012) remove the well-separated remainder; difference-density builds make the omission shrink along the SCF. The Boys function has table-free minimax rational approximations to 5e-14 (Vikhamar-Sandberg and Repisky 2025). Exchange beyond screening: occupied RI-K, COSX (Neese et al. 2009), sn-LinK (Laqua et al. 2020) and analytic/seminumerical hybrids (Zhang et al. 2024). Far field: BUPO (Neese et al. 2025) at Lmax 6-10 with about 150 shell pairs per bubble crosses Split-RI-J near 300 atoms; Split-RI-J is 2-4x faster than RI-J.
The core equations the engine implements¶
Hermite expansion and E recurrence (McMurchie and Davidson 1978):
G_a G_b = sum_t E_t^{ab} Lambda_t, E_t^{a+1,b} = E_{t-1}^{ab}/(2p) + X_PA E_t^{ab} + (t+1) E_{t+1}^{ab}, E_0^{00} = K_AB, terminal
E_{a+b}^{ab} = (2p)^{-(a+b)} E_0^{00}. Folded transform H(tuv, mu nu) = sum t_{ijk,lm} t_{i'j'k',l'm'} d d' E. Integral block (mu nu|kappa tau) = (H_bra^T R H_ket) with R(tuv,t'u'v') = C (-1)^{t'+u'+v'} R_{t+t',u+u',v+v'},
R^{(n)}_{t+1,u,v} = t R^{(n+1)}_{t-1,u,v} + X_PQ R^{(n+1)}_{t,u,v},
R^{(n)}_{000} = (-2 rho)^n F_n(rho R_PQ^2). Ket-first contraction
T = sum_ij d_i d_j H^{(ij)T} R, I = sum_kl d_k d_l T H^{(kl)}. Range
separation enters only through F_n: F_n^{RS} = f F_n(T) + g kappa^{n+1/2} F_n(kappa T), which is MANTA’s radial_boys. Split-RI-J: Hermite density
Pbar(tuv) = sum E(tuv,kappa tau) P_{kappa tau}, auxiliary pre-densities
Pbar(t'u'v') = sum Pbar(tuv) R(tuv,t'u'v'), fit Ptilde = V^{-1} Pbar,
back transform and J_{mu nu} = sum E(tuv,mu nu) Jbar(tuv). Screening:
|(mu nu|lambda sigma)| <= Q_ab Q_cd with Q_ab = max sqrt((mu nu|mu nu)),
density-weighted omission bound summed into the receipt; far bound
|(ab|cd)| <= ||ab||_1 ||cd||_1 / (R - r_ab - r_cd). Boys regimes:
rational minimax on [0, 11.9) per n with downward recurrence, one minimax
for F_0 on [11.9, 29.0) with upward recurrence, asymptotic beyond.
The ordered issues¶
Step |
Issue |
Lever |
Depends on |
Parallel with |
|---|---|---|---|---|
1 |
#747 MANTA speed 1/12 |
per-class microbenchmark and evidence ledger |
none |
2, 3, 4, 6 |
2 |
#748 MANTA speed 2/12 |
certified Schwarz screening with omission receipts, molecular and periodic |
none |
3, 4, 6 |
3 |
#749 MANTA speed 3/12 |
unique-tile digestion with redundancy factors |
none |
2, 4, 6 |
4 |
#750 MANTA speed 4/12 |
shell-pair H matrices, primitive-pair pre-screening, terminal folding |
none |
2, 3, 6 |
5 |
#751 MANTA speed 5/12 |
block matrix-MD contraction with GEMM, loop-free low-l kernels |
3, 4 |
6, 7 |
6 |
#752 MANTA speed 6/12 |
SIMD batched R tensor and minimax Boys |
none (interface with 5) |
2-5 |
7 |
#753 MANTA speed 7/12 |
distance-including bounds, certified incremental builds (#621) |
2 |
5, 6, 8 |
8 |
#754 MANTA speed 8/12 |
Split-J and Split-RI-J in the Hermite basis |
4, 5 |
6, 7, 10 |
9 |
#755 MANTA speed 9/12 |
periodic generalization (image-batched R, erfc, Hermite Ewald J, Bloch digestion) |
2, 4, 5, 8 |
10, 11 |
10 |
#756 MANTA speed 10/12 |
retained factors, occupied RI-K, seminumerical hybrid exchange |
2, 4 |
8, 9, 11 |
11 |
#757 MANTA speed 11/12 |
BUPO regime, far-field retention, Split-RI-J crossover |
steps 1-3 none; step 4 needs 8 |
9, 10 |
12 |
#758 MANTA speed 12/12 |
hybrid dispatch, Supported envelope, paper package |
2-11 as landed |
assembled incrementally |
Tracker issues (project issue numbers), created 2026-10-30:
Step |
Tracker issue |
Title |
|---|---|---|
1 |
#747 |
matched per-class microbenchmark and evidence ledger |
2 |
#748 |
certified Schwarz screening with omission receipts |
3 |
#749 |
symmetry-unique digestion with redundancy factors |
4 |
#750 |
shell-pair E and H matrices with primitive-pair pre-screening and terminal-Hermite folding |
5 |
#751 |
block matrix-MD contraction over shell-pair batches with GEMM, and loop-free low-l kernels |
6 |
#752 |
SIMD batched R-tensor and Boys evaluation |
7 |
#753 |
distance-including certified bounds and certified incremental builds |
8 |
#754 |
Split-J and Split-RI-J in the Hermite basis |
9 |
#755 |
periodic generalization of the engine |
10 |
#756 |
exchange, retained factors, occupied RI-K and seminumerical hybrid |
11 |
#757 |
BUPO regime, far-field retention and the Split-RI-J crossover |
12 |
#758 |
hybrid libint/MANTA dispatch, Supported envelope and the paper evidence package |
Rules every step follows¶
Measurement first: every result note reports the ratio to libint from the step-1 harness and appends a row to the evidence ledger.
Bit-identity where the arithmetic is unchanged (saved-tile comparison), a stated tolerance with the reason where the summation order changes; the l = 6 pure-channel cancellation test is never loosened.
Every omission is certified in the receipt (bound and identity) and the terminal full-build confirmation stays; defaults do not change before the readiness ledger reaches Supported for that row.
One engine, two digestion layers: the periodic routes consume the same pair data, R kernels, screening policy and Hermite densities.
libint stays; the hybrid dispatch chooses per class from measured data.
References¶
McMurchie and Davidson, J. Comput. Phys. 26, 218 (1978), DOI
10.1016/0021-9991(78)90092-X. Neese, J. Comput. Chem. 44, 381 (2023), DOI
10.1002/jcc.26942 (SHARK). Neese, J. Comput. Chem. 24, 1740 (2003)
(Split-RI-J). Asadchev and Valeev, J. Phys. Chem. A 127, 10889 (2023);
J. Chem. Phys. 160, 244109 (2024), DOI 10.1063/5.0217001; arXiv:2506.12501
(2025), DOI 10.1021/acs.jpca.5c04136 (LibintX). Häser and Ahlrichs, J.
Comput. Chem. 10, 104 (1989), DOI 10.1002/jcc.540100111. Maurer, Lambrecht,
Flaig, Ochsenfeld, J. Chem. Phys. 136, 144107 (2012), DOI 10.1063/1.3693908.
Thompson and Ochsenfeld, J. Chem. Phys. 147, 144101 (2017), DOI
10.1063/1.4994190; J. Chem. Phys. 150, 044101 (2019). Vikhamar-Sandberg and
Repisky, arXiv:2512.10059 (2025). Neese, Wennmohs, Hansen, Becker, Chem.
Phys. 356, 98 (2009), DOI 10.1016/j.chemphys.2008.10.036 (COSX). Laqua,
Thompson, Kussmann, Ochsenfeld, J. Chem. Theory Comput. 16, 1456 (2020), DOI
10.1021/acs.jctc.9b00860 (sn-LinK). Zhang, Lei, Suo, Liu, arXiv:2411.01526
(2024). Neese, Colinet, DeSouza, Helmich-Paris, Wennmohs, Becker, J. Phys.
Chem. A 129, 2618 (2025), DOI 10.1021/acs.jpca.4c07415 (BUPO). White,
Johnson, Gill, Head-Gordon, Chem. Phys. Lett. 230, 8 (1994) (CFMM). Sierka,
Hofmann, Sauer, J. Chem. Phys. 118, 9136 (2003) (MARI-J). Weigend, J.
Comput. Chem. 29, 167 (2008), DOI 10.1002/jcc.20702. Helgaker, Jørgensen,
Olsen, Molecular Electronic-Structure Theory, Wiley 2000, chapter 9. The
SHARK and BUPO primary texts are in the local literature library
(software-libraries/); the others are open-access preprints or in the
library wishlist.