Discussion on DYNARE Issues and future plans
Held: 09/05/08 Present: S. Adjemian, M Juillard, S. Villemot, G Perendia
Matlab Issues
Meaningful variable naming
More meaningful naming was suggested and agreed that it is recommended for the new code. However, names of standard (e.g. Kalman Filter) matrices, denoted by their standard letters will not need longer titles but, to ease keyword search, they will contain at least pairs of their characteristic capital letters.
Shorter function files
- It was agreed in principle that, for easier maintenance, the files should be shorter, (Post meeting nOte: a recommended length by literature is up to around 50-100 lines) and some of the longest files may be refactored.
- The files should also contain change control notes but some of those are available from SVN logs.
- SA suggested organizing Dynare into logical subfolders so that code management can be easier and more efficient.
Dynare Modules’ dependency structure and diagrams – Asia is developing one.
Gracefull handling of exceptions and errors We should introduce a more graceful handling of exceptions and errors, e.g. using try & catch and using warnings with if-then forking instead of using error statement which halts execution abruptly.
As SA raised run-time performance issue with try-catch, and due to the development and run-time implications, such use should be restricted to more critical locations. We however first need to test for performance implications of the alternatives: - no exception handling (and its implications), - abrupt error statement handling - try-catch, and - if-then test with warnings
Testing SV suggested that test stubs (wrappers) around functions should be developed to drive consistent and semi-automated testing of new or modified functions. Again, due to development and processing time implications, such use of stubs should be restricted to more critical functions. Test routines will be held with Dynare code under separate sub-directory.
Octave Dynare: SV had a go and tested Dynare using Octave package - a free Matlab clone – Though at a bit lower performance rate, it was still a success and he suggested we construct and distribute Octave releases too so to make Dynare truly free software.
Future Actions and Dynare.net program planning: Migration to Gandi: Planning to start in September.
C++ Kalman – SA suggested that a Starting point will be integration of Dynare++ which contains C++ Kalman filter for first order solution (see below) so that Dynare++ integration should be higher (earlier) on the priority list.
SA will complete conditional forecasting
GP joined the development team and will concentrate over the summer on: - Integration of AIM solver: Although faster than C Sims solver, it is expected that its Matlab implementation will be still substantially slower than the present Dynare C DLL solver.
- integration of Dynare ++ - among the rest to get efficient general (i.e. unknown) model numeric differentiation and fast first order Kalman filter
- extending development & coding guidelines