PERF-2 P2: the red-black colour maps, the residual and the V-cycle's per-level maps on rayon threads (MultigridParameters::threads; RTX_THREADS in the harness; rtx_cfd::configure_threads) — each colour's values computed from the unchanged other colour into a scratch and written back, the L1 sum in the serial order: bit-identical to the serial red-black (pin: 4 right-hand sides at 4 threads); the coarsest level stays serial; no effect on the lexicographic regime
CI / Build (macos-latest) (push) Waiting to run
CI / Test (macos-latest) (push) Blocked by required conditions
CI / Test (ubuntu-latest) (push) Blocked by required conditions
CI / Python Bindings (maturin) (macos-latest) (push) Blocked by required conditions
CI / Python Bindings (maturin) (ubuntu-latest) (push) Blocked by required conditions
CI / WASM Build + Size Check (push) Blocked by required conditions
CI / Distributed Training Tests (push) Blocked by required conditions
CI / CI Success (push) Blocked by required conditions
CI / Format Check (push) Failing after 6s
Performance Benchmarks / Run Benchmarks (push) Failing after 7s
CI / Clippy Check (push) Failing after 7s
CI / Build (ubuntu-latest) (push) Failing after 7s
Documentation / Build User Guide (push) Successful in 7s
CI / Build CPU-Only (Explicit) (push) Failing after 1m19s
Documentation / Build API Documentation (push) Failing after 1m22s

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01YJPeT6WA2e7YvAnS875AHL
This commit is contained in:
Omar Sobh
2026-09-15 23:59:29 -05:00
co-authored by Claude Fable 5.1
parent 364766a54a
commit 7f144e0005
7 changed files with 164 additions and 13 deletions
@@ -313,6 +313,19 @@ impl OversetFluid {
convection_scheme: bg_convection(),
},
)?;
// PERF-2 P2: `RTX_THREADS=n` — rayon's global pool and the multigrid's
// red-black maps on n threads (bit-identical to 1; no effect on the
// lexicographic smoother).
let threads: usize = std::env::var("RTX_THREADS")
.ok()
.and_then(|v| v.parse().ok())
.unwrap_or(1)
.max(1);
if threads > 1 {
rtx_cfd::solvers::incompressible::configure_threads(threads);
background.set_poisson_threads(threads);
println!(" multigrid threads: {threads} (RTX_THREADS)");
}
background.set_boundary_velocity(move |x, y, t| {
if x <= 0.0 {
(inflow_for(u_mean, y, t), 0.0)