Skip to content

DynareOBC v2.51.1579

Compare
Choose a tag to compare
@tholden tholden released this 30 Aug 09:28
· 395 commits to master since this release

This is an incremental bug fix release. The previous release shipped with a broken CurrentVersionURL.txt. Additionally, updates were failing if a parallel pool had been left open. The description of the previous release follows.


This is a minor release focused on performance. There are two main performance enhancements.

Firstly, DynareOBC now tries to disable multi-threading in the MILP solver where possible. Given that not all solvers support setting this option, you are most likely to notice this if using Gurobi, which we now strongly recommend. While it may seem surprising that disabling multi-threading can increase speed, in fact it does, since DynareOBC is parallelized at a higher level, so the MILP solver's multi-threading just leads to contention. Multi-threading can be restored with the new MultiThreadBoundsProblem option, though we stress that this is almost never desirable.

Secondly, during cubature, DynareOBC now includes the initial central point within the main parfor loop. Additionally, with adaptive cubature, (CubatureTolerance>0) DynareOBC batches more calls together to ensure that the parallel pool is fully utilized.

On some problems, each of these two improvements will roughly double the speed, though speed gains are likely to be more marginal generally.

Additionally, this release ensures parallel pools do not time out, and improves the consistency in some warning and error messages.