You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
So s_pressure_relaxation_procedure — which for a six-equation case runs over the whole domain every step, including a Newton iteration per cell and the equation-of-state chain beneath it — is never benchmarked. The correctness side is well covered (16 model_eqns = 3 entries in toolchain/mfc/test/cases.py), but nothing measures what it costs.
Two consequences:
A change that regresses six-equation throughput cannot be caught by CI. Nothing would move.
A change that improves it cannot be demonstrated either, which is the position Stop NVHPC IPO silently miscompiling the six-equation relaxation kernel #1878 was in: the NVHPC IPO exclusion it adds lands on exactly this path, and the existing suite could not say whether that was free or expensive. Measuring it needed a purpose-built case.
For what it is worth, that measurement came out at roughly 0.2% either way on a 3D 128^3 two-fluid case with a state-dependent EOS, 100 steps — well inside run-to-run noise, so the exclusion is free. But that number came from a throwaway case rather than anything the repository keeps.
A six-equation entry in benchmarks/ would close the gap. A Mie-Gruneisen or JWL fluid paired with a stiffened-gas one exercises the state-dependent branch of s_phase_coefficients, which is the part with the deepest call chain and the one most sensitive to inlining decisions; a two-fluid sphere-collapse or shock-interface setup reaches relaxation in most cells rather than a handful.
Noting the sizing honestly: the benchmark suite already runs on Frontier and Phoenix for every PR, so an eighth case is not free, and whether it earns its wall-clock is a judgement call for whoever owns that budget.
Every case in
benchmarks/runsmodel_eqns = 2:model_eqns5eq_rk3_weno3_hll5eq_rk3_weno3_hllc5eq_rk3_weno3_lfhypo_hllibmigrviscous_weno5_sgb_acousticSo
s_pressure_relaxation_procedure— which for a six-equation case runs over the whole domain every step, including a Newton iteration per cell and the equation-of-state chain beneath it — is never benchmarked. The correctness side is well covered (16model_eqns = 3entries intoolchain/mfc/test/cases.py), but nothing measures what it costs.Two consequences:
For what it is worth, that measurement came out at roughly 0.2% either way on a 3D 128^3 two-fluid case with a state-dependent EOS, 100 steps — well inside run-to-run noise, so the exclusion is free. But that number came from a throwaway case rather than anything the repository keeps.
A six-equation entry in
benchmarks/would close the gap. A Mie-Gruneisen or JWL fluid paired with a stiffened-gas one exercises the state-dependent branch ofs_phase_coefficients, which is the part with the deepest call chain and the one most sensitive to inlining decisions; a two-fluid sphere-collapse or shock-interface setup reaches relaxation in most cells rather than a handful.Noting the sizing honestly: the benchmark suite already runs on Frontier and Phoenix for every PR, so an eighth case is not free, and whether it earns its wall-clock is a judgement call for whoever owns that budget.