Intermediate V: performance
SDDP is a computationally intensive algorithm. In this tutorial, we give suggestions for how the computational performance can be improved.
Numerical stability (again)
We've already discussed this in the Numerical stability section of Basic VI: words of warning. But, it's so important that we're going to say it again: improving the problem scaling is one of the best ways to improve the numerical performance of your models.
Solver selection
The majority of the solution time is spent inside the low-level solvers. Choosing which solver (and the associated settings) correctly can lead to big speed-ups.
Choose a commercial solver.
Options include CPLEX, Gurobi, and Xpress. Using free solvers such as CLP and GLPK isn't a viable approach for large problems.
Try different solvers.
Even commercial solvers can have wildly different solution times. We've seen models on which CPLEX was 50% fast than Gurobi, and vice versa.
Experiment with different solver options.
Using the default settings is usually a good option. However, sometimes it can pay to change these. In particular, forcing solvers to use the dual simplex algorithm (e.g.,
Method=1
in Gurobi ) is usually a performance win.