Frequently Asked Questions

Can I use these hydrologic simulation tool for my project?

Some of the software is open source and covered by licenses of type BSD-3 and reusable by anyone, provided copyright and authorship is respected.

At the time of writing (Jan 2023) much of the C++ code core to the stack is not yet open source, and cannot be used by third parties without prior discussions and agreement. In principle, access for non-commercial and in particular educational and research purposes are encouraged and you should contact the person(s) listed in the home page to request access.

Software components that are agnostic to the scientific domain itself are all open sourced: build scripts, python and R packaging, software interoperability between R, Python, C++, etc.

Does it run fast?

A short answer is: Yes. The choice of C++ for the core engine was made, notably, to foster computational efficiency. Researchers over the years confirm very satisfactory runtime performances, including when compared to several other hydrologic toolsets.

A longer answer would still be yes, even if there are nuances depending on the hardware, the size of the model and simulation length.

Wall time

A model set up for the South Esk catchment (Tasmania, Australia) comprises 42 subareas and 42 routing links. One simulation run over 1920 time steps completes in ~0.1 seconds on a single core (Intel Core i7-10875H CPU @ 2.30GHz).

This figure can be used as a starting point to estimate what a calibration procedure would take to complete. Let’s say you have a calibration procedure that requires 10,000 iterations of the model. On a single core, this would take around 16 minutes. If you run multithreaded on a machine with 4 cores, the same calibration procedure would take around 4 minutes, but assuming some multithreading overhead (see next section), it may take around 6 minutes in practice.

Scalability with parallelism

SWIFT2 is designed to use multithreading where feasible, notably for lengthy model calibrations. Measurements done for the paper SWIFT2: High performance software for short-medium term ensemble streamflow forecasting research and operations show a good capability to scale up with multiple threads.

Scalability of runtime performance with respect to system size, simulation length and degree of parallelism. Each point is the median of 10 replicate test runs to reduce measurement uncertainty.