Skip to content

asyncronous IO#237

Merged
heikoklein merged 14 commits intomainfrom
231-io-in-parallel-to-calculations
Feb 19, 2026
Merged

asyncronous IO#237
heikoklein merged 14 commits intomainfrom
231-io-in-parallel-to-calculations

Conversation

@heikoklein
Copy link
Member

@heikoklein heikoklein commented Feb 11, 2026

SNAP uses a asynchronous task to read the next meteorology while working through the calculation loop.

Asynchronous handling needs ASYNC_IO.ON set in snap.input, though it only makes sense if more than 2 threads exist (OMP_NUM_THREADS).

async_io needs 30%-50% more memory for the additional meteorology buffers.
Performance benefits are up to a factor 2 if loop and io take the same time, but usually around 30%.

async_io with netcdf < 4.9.3 gives known warnings about can't locate attribute: '_QuantizeBitGroomNumberOfSignificantDigits'. This is a known bug in older versions of netcdf and is harmless. Check with nc_config --version.

ASYNC_IO.ON reduces the runtime of a standard 48h run with 3 isotopes on a server-CPU run with
time OMP_PLACES=cores OMP_NUM_THREADS=4 ~/Programme/Models/snap/src/naccident/bsnap_naccident snap.input
from real 2m28.153s to real 1m44.771s

@heikoklein heikoklein linked an issue Feb 11, 2026 that may be closed by this pull request
@heikoklein heikoklein marked this pull request as ready for review February 17, 2026 09:46
@heikoklein heikoklein merged commit 800e1a4 into main Feb 19, 2026
4 checks passed
@heikoklein heikoklein deleted the 231-io-in-parallel-to-calculations branch February 19, 2026 13:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

IO in parallel to calculations

2 participants