Skip to content

Releases: tholden/dynareOBC

DynareOBC v2.51.1579

30 Aug 09:28
Compare
Choose a tag to compare

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.

DynareOBC v2.50.1578

30 Aug 09:12
Compare
Choose a tag to compare

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.

DynareOBC v2.40.1571

28 Aug 21:27
Compare
Choose a tag to compare

This is a fairly minor release. Changes follow:

  • New option MaxCubatureSerialLoop which specifies the maximum size of loop over the inner bound problem that DynareOBC should leave serial, rather than parallelizing.
  • Increased accuracy in determinant based tests without VPA thanks to the use of a new double double precision class.
  • Replaced the Aitken Delta Squared sequence convergence accelerator with one using Wynn's Epsilon Transformation.
  • Improved the numerical stability of the sequence transformation thanks to the use of a new double double precision class.
  • Parallelization performance improvements when CubatureTolerance==0.
  • Fixes to some of the examples, for Dynare 4.5 compatibility.
  • Fixes to some of the replication details, for compatibility with recent changes to DynareOBC.
  • A new version of the theory paper.

DynareOBC v2.30.1537

20 Jul 16:03
Compare
Choose a tag to compare

This release removes the CubatureSmoothing option and replaces it with a new CubatureAcceleration one. This accelerates the convergence of the cubature rules using an iterated version of Aitken's Delta Squared process. Performance may be context dependent, so you should test the new option on your model.

Additionally, this release introduces a new test for P matrices, which may help detect uniqueness of solutions for a wider variety of models. This release also introduces a warning message about FastIRFs to discourage their use in the final version of a paper.

Furthermore, this release fixes a major bug which was preventing plots from displaying with Dynare v4.5.0, due to a change in some internal Dynare APIs. It also fixes a minor bug which might have resulted in some matrices being incorrectly classified as P matrices.

DynareOBC v2.21.1530

18 Jul 21:15
Compare
Choose a tag to compare

This is primarily a bug fix release. Two main bugs are fixed. Firstly, this version fixes a bug which was preventing Microsoft Visual C++ redistributables from installing correctly on Windows. Secondly, this version fixes bugs specific to non-Windows platforms, where OptiToolbox install was being invoked when it should not have been.

Additionally, this release contains updates for all dependencies, and some improvements in packaging behind the scenes.

DynareOBC v2.20.1516

24 Jun 12:58
Compare
Choose a tag to compare

This release includes a performance improvement to the core algorithm, along with an update to the OPTI and YALMIP toolboxes.

The new version of the OPTI toolbox depends on 2017 versions of the redistributables of the Microsoft C++ compiler and the Intel Fortran compiler. As a result, you will need admin rights to install this new release. If you do not have such rights, get your administrator to follow the steps in the ReadMe as usual.

The jump in the version number is justified by this major change in requirements.

DynareOBC v2.12.1513

21 Jun 09:37
Compare
Choose a tag to compare

This is a bug fix release, fixing an error caused by a field that was undefined under some conditions. The release notes of the previous release are below.


This is a minor release. Changes follow:

  • Bug fix for models including non-standard functions (e.g. erf) when invoked with the sparse command line option.
  • Compatibility with Dynare 4.5.0.
  • Major performance improvements to RetrieveConditionalCovariances for large models. On one extreme example, this function was sped up from around 2000 seconds per call to around 80 seconds per call.
  • New option RetrieveConditionalCovariancesParallelizationCutOff which gives control of when RetrieveConditionalCovariances is parallelized.
  • Updated YALMIP and the OptiToolbox.
  • Simplifications to internal logic.

DynareOBC v2.12.1512

20 Jun 18:28
Compare
Choose a tag to compare

This is a minor release. Changes follow:

  • Bug fix for models including non-standard functions (e.g. erf) when invoked with the sparse command line option.
  • Compatibility with Dynare 4.5.0.
  • Major performance improvements to RetrieveConditionalCovariances for large models. On one extreme example, this function was sped up from around 2000 seconds per call to around 80 seconds per call.
  • New option RetrieveConditionalCovariancesParallelizationCutOff which gives control of when RetrieveConditionalCovariances is parallelized.
  • Updated YALMIP and the OptiToolbox.
  • Simplifications to internal logic.

DynareOBC v2.11.1500

27 Apr 13:29
Compare
Choose a tag to compare

This release adds the ability for DynareOBC to find parametric solutions to models with multiple bounds, and fixes some edge case bugs associated with parametric solutions.

Previously, correctly computed parametric solutions might not have been used depending on the model's scaling, and following a failure in the parametric solution, an error about yScaled may have been encountered.

It also includes minor improvements to some cubature code, and updates to assorted sub-modules.

Since this release had to be prepared quickly to fix a blocking bug, estimation has been disabled within it. If you wish to perform estimation, I recommend waiting till the next major release in May or June, which, in any case, will perform much more reasonably. Alternatively, you may roll back to an older release.

DynareOBC v2.10.1482

08 Mar 17:01
Compare
Choose a tag to compare

This is a bug-fix release. It fixes additional bugs in simulating models with multiple bounds, and it contains two .m files that were omitted from the previous release due to a mistake in the release generation script. Additionally, this release is more robust to failures in the LP solver used in the initial checks.

The release notes from the previous release are below.


This release is primarily focused on refactoring the code structure for greater manageability. All of the estimation code has been moved into a separate sub-module, with its own examples, documentation and tests, and throughout the folder structure has been improved.

However, this release does add one significant new feature (by request), namely the ability to set the initial state from which a simulation run starts, using the InitialStateFile option. Furthermore, a reduced, updated, version of the OptiToolbox is now included with DynareOBC, reducing the amount DynareOBC downloads on its first run (though increasing the size of the release here).

Additionally, this release fixes bugs in estimation, bugs in models without OBCs, bugs in the "bypass" command and bugs in the simulation of model local variables.