Skip to content

Latest commit

 

History

History
238 lines (196 loc) · 13.2 KB

File metadata and controls

238 lines (196 loc) · 13.2 KB

Competitive Analysis — scpn-control

Last updated: 2026-06-02 (v0.20.3). Community code timings are from published literature (references at end). SCPN timings are CI-verified on GitHub Actions ubuntu-latest unless noted.

1. Real-Time Control Loop

Code Control Freq Step Latency Language Source
scpn-control (Rust) 10--30 kHz ~5 us P50 (native control cycle) Rust + Python CI native_handoff (EPYC 7763)
DIII-D PCS (production) 4--10 kHz (physics loops) 100--250 us per physics cycle C / Fortran Penaflor 2024; Barr 2024
P-EFIT (GPU) N/A (reconstruction) 300--375 us per iter (129x129) Fortran + CUDA Sabbagh 2023
RT-GSFit ~5 kHz ~200 us C++ Tokamak Energy 2025
TORAX N/A (offline sim) ~ms per timestep Python / JAX Citrin 2024
Gym-TORAX 10--100 Hz ~10 ms (RL env step) Python / JAX DeepMind 2025
ITER PCS (spec) ~100 Hz diagnostics 5--10 ms processing TBD ITER RTF docs
FUSE N/A (design code) N/A Julia Meneghini 2024

Note on DIII-D: The raw data-acquisition cycle runs at ~16.7 kHz (60 us), but physics-level control algorithms include IO, diagnostics, state estimation, and actuator paths. scpn-control's ~5 us P50 is the integrated control cycle on a loopback-UDP campaign. It is not an end-to-end PCS-cycle comparison on fielded plant hardware.

2. Transport Simulation Speed

Code Type Runtime Physics Source
GENE / CGYRO Gyrokinetic 10^5--10^6 CPU-hours Nonlinear 5D Vlasov Jenko 2000; Belli 2008
JINTRAC + QuaLiKiz Full integrated ~217 hours (16 cores) First-principles turbulence TU/e 2021
JINTRAC + QLKNN NN surrogate ~2 hours (1 core) ML surrogate van de Plassche 2020
TORAX 1D JAX Faster than real-time (~seconds) QLKNN10D Citrin 2024
FUSE 1D Julia ~25 ms per step (TJLF) TJLF surrogate Meneghini 2024
scpn-control (Rust) 1.5D step 1.5--5.5 us per step Crit-gradient + neoclassical CI Criterion
scpn-control (MLP) Neural surrogate 24 ns single-point Trained surrogate CI Criterion
QLKNN (TensorFlow) NN inference ~100 us (25 outputs) Surrogate van de Plassche 2020

Fidelity note (v0.17.0+): scpn-control now offers five transport tiers: (1) critical-gradient model (fastest, ~µs), (2) QLKNN-10D MLP surrogate (~24 ns single-point), (3) native linear GK eigenvalue solver (~0.3s per flux surface), (4) native TGLF-like approximation (SAT0/SAT1/SAT2 with E×B shear quench, ~0.5s per surface, no external binary), (5) nonlinear δf gyrokinetic solver (5D Vlasov, JAX-accelerable, ~15s/surface on GPU). External GK codes (TGLF, GENE, GS2, CGYRO, QuaLiKiz) can be represented via strict interface contracts. Quantitative agreement still requires real external runs on identical inputs and digest-bound artefacts.

3. Equilibrium Reconstruction

Code Grid Method Runtime Source
EFIT (Fortran) 65x65 Current-filament Picard ~2 s full recon Lao 1985
P-EFIT (GPU) 65x65 GPU-accelerated Picard <1 ms per iter Sabbagh 2023
RT-GSFit 65x65 Real-time reconstruction ~200 us Tokamak Energy 2025
CHEASE (Fortran) 257x257 Fixed-boundary cubic Hermite ~5 s Lutjens 1996
HELENA 201 flux Isoparametric ~10 s Huysmans 1991
FreeGS Variable Picard + multigrid ~seconds FreeGS GitHub
FreeGSNKE Variable Newton-Krylov Faster than FreeGS FreeGSNKE 2024
scpn-control (Rust) 65x65 Picard + SOR ~100 ms Measured
scpn-control (Neural) 129x129 PCA + MLP surrogate 0.39 ms mean CI verified
scpn-control (Multigrid) 65x65 V-cycle ~12 ms Measured v0.15.0

The Neural Equilibrium Kernel achieves P-EFIT-class speed (0.39 ms) on CPU only, without requiring CUDA or GPU hardware.

4. Feature Breadth

Feature scpn-control TORAX PROCESS FREEGS FUSE DREAM
GS Equilibrium Yes (multigrid) Yes (spectral) No Yes (Picard) Yes No
Free-boundary solve Yes (v0.15.0) Partial No Yes Yes No
Transport solver 1.5D coupled 1D flux-driven 0D No 1D 0--1D
External GK coupling 5 codes (TGLF/GENE/GS2/CGYRO/QuaLiKiz) TGLF only No No TGLF only No
Native linear GK solver Yes (ballooning eigenvalue) No No No No No
Native TGLF-like approximation Yes (SAT0/SAT1/SAT2, no binary) No No No No No
Nonlinear δf GK solver Yes (5D Vlasov, JAX-accelerable) No No No No No
GK-surrogate hybrid Yes + OOD + online learning No No No No No
SCPN phase coupling Yes (8-layer UPDE bridge) No No No No No
Neural surrogate (QLKNN) Yes External No No No No
Neuro-symbolic SNN Yes No No No No No
Disruption prediction (heuristic) Yes (fixed-weight baseline; optional synthetic training) No No No No N/A
SPI mitigation Yes No No No No Yes
Neutronics / TBR Yes (1-D slab) No Yes No Yes No
Digital twin (real-time) Yes No No No No No
Rust native backend Yes (5 crates) No No No No No
IMAS Integration Yes (Dec 2025) Yes No No No No
GPU acceleration Yes (JAX) Yes (JAX) No No JAX No
Autodifferentiation Yes (JAX, full GS) Yes (JAX) No No Yes (Julia) No

5. Where Competitors Lead

Weakness Detail Who Does It Better
Equilibrium autodiff depth RESOLVED v0.13.0: JAX Picard GS solver with jax.grad through full solve
No peer-reviewed publication JOSS paper drafted but not yet submitted TORAX (NF 2024), FUSE (FED 2024)
Smaller community Single-team vs DeepMind / General Atomics resources TORAX, FUSE
RL agent maturity RESOLVED v0.15.0: PPO 500K benchmark artifact records PPO 121.1 vs MPC 59.4 over 50 episodes, 0% disruption

Resolved since v0.10.0

  • GPU equilibrium: JAX neural eq with GPU dispatch (v0.11.0)
  • Transport autodiff: JAX-traced Thomas + CN + neural eq (v0.10.0–v0.11.0)
  • Trained transport model: QLKNN-10D MLP with auto-discovery (v0.12.0)
  • RL agent: PPO on TokamakEnv with PID/MPC benchmark (v0.12.0)
  • Equilibrium autodiff depth: JAX Picard GS solver with jax.grad through full solve (v0.13.0)
  • RL agent maturity: PPO 500K on JarvisLabs, beats MPC and PID, 3-seed reproducible (v0.14.0)

6. Codebase Metrics (v0.17.0+)

Metric Value
Python source modules 153 total / 148 non-init
Python source LOC ~30,700
Rust crates 5
Rust LOC (all .rs) ~61,900
Test files 264
Tests collected 4,000+
Test coverage 99% gate
CI jobs 20
Real DIII-D shots 17 disruption + 1 safe baseline
SPARC GEQDSK files 3
External GK code interfaces 5 (TGLF, GENE, GS2, CGYRO, QuaLiKiz)
Native GK transport tiers 5 (crit-grad, surrogate, linear, TGLF-native, nonlinear δf)
Pretrained weight files 5 (MLP, FNO, neural eq, QLKNN, PPO)

7. scpn-control Unique Position

  1. Neuro-symbolic control with formal contracts — Petri Net → SNN compilation plus pre/post-condition safety contracts checked on every action, across a runtime-selectable PID/MPC/H∞/SNN stack on one interface. No competing open-source fusion code has this path. Control compute is comfortably within the 1–10 kHz real-time budget (native cycle ~5 µs P50 CI), but that is a necessary-not-sufficient property — the fielded bottleneck is diagnostics, reconstruction, and actuation, not the controller.

  2. Nonlinear delta-f GK + native TGLF-like approximation + 5 external GK interfaces + hybrid surrogate validation — no competing code (TORAX, FUSE, DREAM, FreeGS) has the same bundled research breadth. TORAX and FUSE interface external TGLF only (Fortran binary dependency); scpn-control has 5 transport tiers from critical-gradient to nonlinear δf, all pip-installable, no Fortran. Quantitative external-code agreement remains blocked until matched artefacts pass admission.

  3. Neuro-symbolic SNN + contract checking + digital twin — the Petri Net to SNN compiler with runtime contract assertions is architecturally unique in the fusion simulation space.

  4. GK → SCPN phase bridge — GK growth rates and fluxes modulate the 8-layer UPDE Kuramoto coupling matrix in real time. No other code connects first-principles gyrokinetic transport to multi-timescale phase dynamics.

  5. Neural equilibrium at 0.39 ms without GPU — not cross-validated against P-EFIT on identical equilibria, but demonstrates CPU-only sub-ms reconstruction is achievable.

  6. Full-stack breadth — equilibrium, transport (5 tiers), gyrokinetic (3 paths + nonlinear δf), control (7 controllers), disruption mitigation, digital twin in one focused 125-module package.

8. Gap Resolution Status

Gap Resolution Status
Transport-only autodiff JAX neural equilibrium MLP (v0.11.0) RESOLVED
No GPU equilibrium JAX neural eq with GPU dispatch (v0.11.0) RESOLVED
Simpler turbulence QLKNN-10D trained MLP (v0.12.0) RESOLVED
No RL validation PPO + PID + MPC benchmark (v0.12.0) RESOLVED
Equilibrium autodiff depth JAX Picard GS solver, jax.grad through full solve (v0.13.0) RESOLVED
No first-principles GK Native linear eigenvalue + nonlinear δf + TGLF-native + 5 external codes + hybrid (v0.17.0+) RESOLVED
No GK-surrogate hybrid OOD detection + spot-check + correction + online learning (v0.17.0) RESOLVED
Linear GK quantitative accuracy Local dispersion + Newton root-finding implemented; current audited path overpredicts GENE CBC growth and needs native cross-code revalidation OPEN
Dimits shift Subcritical/supercritical scan machinery implemented; full Dimits-gap result needs revalidation after kinetic-electron and velocity-grid changes OPEN
No peer-reviewed pub JOSS paper fact-checked, ready for submission v0.13.0
Smaller community External action: talks, workshops, issue triage Ongoing

References

  • Lao, L.L. et al. (1985). Nucl. Fusion 25, 1611 (EFIT).
  • Sabbagh, S.A. et al. (2023). GPU-accelerated EFIT (P-EFIT). ACM SC23.
  • Lutjens, H. et al. (1996). Comput. Phys. Commun. 97, 219 (CHEASE).
  • Huysmans, G.T.A. et al. (1991). Proc. CP90 (HELENA).
  • Romanelli, M. et al. (2014). Plasma Fusion Res. 9, 3403023 (JINTRAC).
  • Citrin, J. et al. (2024). arXiv:2406.06718 (TORAX).
  • Meneghini, O. et al. (2024). arXiv:2409.05894 (FUSE).
  • Jenko, F. et al. (2000). Phys. Plasmas 7, 1904 (GENE).
  • Belli, E.A. & Candy, J. (2008). Phys. Plasmas 15, 092510 (CGYRO).
  • Hoppe, M. et al. (2021). Comput. Phys. Commun. 268, 108098 (DREAM).
  • van de Plassche, K.L. et al. (2020). Phys. Plasmas 27, 022310 (QLKNN).
  • Penaflor, B.G. et al. (2024). DIII-D PCS. Fus. Eng. Des.
  • Barr, J.L. et al. (2024). arXiv:2511.11964 (Parallelised RT physics on DIII-D).
  • FreeGS: https://github.com/freegs-plasma/freegs
  • FreeGSNKE: https://docs.freegsnke.com/
  • Gym-TORAX: arXiv:2510.11283

How to interpret this comparison

This document mixes measured local benchmarking, repository-reported metrics, and external literature references. The goal is not to claim equal deployment readiness across systems, but to identify where engineering scope differs.

When comparing entries:

  • treat bare-kernel timing as a local runtime indicator,
  • treat published literature values as method-level baselines,
  • keep cross-code and facility claims outside this table unless strict, matched external artifacts are attached.

The practical use is to decide integration priority, not to conclude market-wide dominance from a single number.

How to consume this comparison in decision-making

The values in this file combine three evidence types:

  • repository-reported measurements,
  • local CI or benchmark evidence, and
  • external literature values.

Treat each row as follows:

  • Use local repository timings for engineering direction and implementation comparison, not as full production-cycle claims.
  • Use literature values to understand methodological scope, not to infer deployment equivalence.
  • **Use admission gates in docs/validation.md and docs/production_readiness.md before any market-facing statement about facility-grade performance.

The practical effect is to preserve the difference between a fast inner-kernel path and a PCS-ready closed-loop system.

Practical use and scope

Use this document to benchmark positioning decisions between SCPN Control and adjacent approaches.

  • Use local measurements for engineering direction, not direct facility readiness claims.
  • Use literature values for comparison context and methodology interpretation.
  • Use this page before prioritizing roadmap items that depend on speed, robustness, or deployment maturity.