SWATGenXSWATGenX
Watershed ExplorerPricing
ServicesWatershed ExplorerExample modelsCloud calibrationDocsPricing

What We Sped Up and How We Checked It

SWAT+ steps through a watershed one day at a time.

1:33 · captions on by default

Transcript

SWAT+ steps through a watershed one day at a time. On our largest benchmark, the Peace River, one simulated year takes just over three minutes on a single core.

So we rebuilt the engine to run in parallel. Land units that don't depend on each other run together, then the stream network does the same, level by level.

On that same model, on twenty-four threads, the year drops from just over three minutes to under half a minute, about seven times faster than the original.

But speed means nothing if the answers move. In every comparison we ran, every simulated value matched the serial engine, bit for bit.

We tested that with a check that can fail. A version before our fixes failed it every time. The fixed engine left all of more than nine hundred thousand compared values unchanged.

The speed gain keeps growing with threads. Against its own single-thread run, it is about four times faster on eight threads, and more than five times on twenty-four.

It is honest about the other end, too. On a small model run on one thread, it is not faster than the original, so the gain belongs to large models and more threads.

The engine is open source, every change is a commit you can read, and every benchmark is on our Accelerated SWAT+ page.

Accelerated SWAT+, at swatgenx.com.

Credits

SWAT+ model by USDA-ARS and Texas A&M AgriLife Research; timings measured on one 32-core machine, Peace River model, one simulated year, best of two runs; engine source under LGPL-2.1.

All films