Solving the soil model ODE often consumes the majority of the model calibration time. This is because it uses an implicit solver that requires many iterations per time step.
Significant runtime improvements could likely be made if the implicit solver was changed to an explicit scheme (eg Runge Kutta 4). Furthermore, this would allow efficient vectorisation when multiple parameter sets are solved; specifically SIMD for ~<=4 parameter sets and threading across cores for >4 parameter sets. This vectorisation would significantly improve the calibration time of CMAES and DREAM (not SP-UCI) because multiple parameter sets are solved in parallel.
Possible issue with converting from an implicit to explicit solver are:
reduced ODE stability, though this is unlikely to be a major issue because the soil model ODE is unlikely to be stiff.
calibration response surface may become rougher and or the optimal solution may shift.
Solving the soil model ODE often consumes the majority of the model calibration time. This is because it uses an implicit solver that requires many iterations per time step.
Significant runtime improvements could likely be made if the implicit solver was changed to an explicit scheme (eg Runge Kutta 4). Furthermore, this would allow efficient vectorisation when multiple parameter sets are solved; specifically SIMD for ~<=4 parameter sets and threading across cores for >4 parameter sets. This vectorisation would significantly improve the calibration time of CMAES and DREAM (not SP-UCI) because multiple parameter sets are solved in parallel.
Possible issue with converting from an implicit to explicit solver are:
Any thoughts on this are welcome.