ArWen 2.2.0
·
11 commits
to main
since this release
Streamed forecasts now run through the normal config. Put a [tiles] table in a plain TOML, keep your physics, and a domain too big to fit the card runs anyway, with output bit-identical to a resident run.
New
[tiles]in a plain TOML streams a forecast throughgpuwm go, with default physics and either radiation option.- A domain too big to hold in VRAM is admitted and run by default, with no flags:
gpuwm goandgpuwm checknow price a streamed run as streamed, not as the resident run it is not. - Streamed output is bit-identical to a resident run of the same config, field for field and byte for byte, including the running maxima.
tools/streamed_frame_parity.pycompares two runs and reports any field, value or provenance difference between them.- The HRRR horizontal operator runs in the Rust bridge, 107x faster than the mirror it replaces and identical bit for bit.
- Shortwave radiation is armored against the 5090's subnormal flushing with inline PTX, so the same code gives the same numbers on that card.
Fixed
- A streamed run no longer drops
OLRfrom its output. Every frame it wrote was missing that field, and the run still reported success. - A streamed frame that cannot publish everything a resident run publishes is now refused, instead of being written short and passing validation.
- Radiation provenance on a streamed file no longer says nobody wrote the surface fields when radiation demonstrably ran.
UP_HELI_MAXis bit-identical under tiling. It differed at one point per frame, on a tile boundary.gpuwm checkno longer tells you that streaming is refused by the forecast routes. It has not been for a release.- Reflectivity is published by a streamed run rather than refused an hour into a healthy forecast.
- Legacy RRTMG builds its shortwave engine once per process instead of once per tile buffer.
Known issues
- The HRRR native route refuses a
[tiles]table by name, before any download. Support is planned.
Full detail in CHANGELOG.md.