Utilizing more than one CPU/core in model calculation (multi-threading)


 Applies To 
 Product(s):HAMMER, WaterGEMS, WaterCAD, SewerGEMS, SewerCAD, StormCAD, CivilStorm, PondPack
 Version(s):CONNECT Edition, V8i
 Area: Modeling
 Original Author:Scott Kampa, Bentley Technical Support Group

Question:

Is it possible for Bentley OpenFlows product calculations to utilize more than one CPU/core on a machine with multiple CPUs/cores?

Are OpenFlows products multi-threaded?

Background Information:

When a program uses more than one CPU, this is called multi-threading. Basically, each CPU or CPU core performs a different task in parallel. So, it is like adding more lanes to a road, at the same speed limit. In other words, having more CPUs/cores doesn’t necessarily mean that a calculation will run that much faster, but rather that they have the potential to multi-task and get more calculations done at the same time.  

In general, the Bentley OpenFlows / Hydraulic and Hydrology products currently are not written to use multi-threading for the core hydraulic calculations, with the exception of automated fireflow in more recent versions (see below) and the EPA-SWMM numerical solver in SewerGEMS and CivilStorm. Multithreading may be added to certain aspects of the calculation process in future releases of the products. However, the products do still take advantage of multiple cores, by way of the .NET Framework architecture that it uses. Meaning, certain processes such as loading of the components that make up the application, background optimization of memory usage and other minor tasks that can run in parallel.

Considerations:

However, some types of calculations can benefit from multi-threading, particularly for larger models. For instance, multi-threading has been introduced for automated fire flow with the release of WaterGEMS and WaterCAD V8i SELECTseries 6. In a future release, Water Quality analysis may also benefit from multi-threading. In addition, the Darwin tools, like Darwin Calibrator and Darwin Designer, could benefit from parallelized computations.

Multi-threading - WaterGEMS / WaterCAD

For more information on multi-threading with fireflow, see the "Calculation Performance" section in the article "What's new in WaterGEMS and WaterCAD V8i SELECTseries 6?".

Multi-threading - SewerGEMS / CivilStorm

In SewerGEMS and CivilStorm, multi-threading can be used by selecting the appropriate "Number of threads" in the calculation options. This is currently only supported when the active numerical solver is set to Explicit (SWMM). Set the "Number of Threads" option to 4 if it is not already set, or try "automatic".