Just finished pushing a massive overhaul of the OLG transition path commands, e.g., TransitionPath_Case1_FHorz() and the like. There was a lot of internal reworking that the user won’t notice, beyond being slightly faster. The main additional feature was that you can now use grid interpolation layer, specifically you can set
transpathoptions.fastOLG=1;
vfoptions.divideandconquer=1;
vfoptions.gridinterplayer=1;
(and vfoptions.ngridinterp and put the grid interp into simoptions). This is a very powerful combination, combining parallelization over j (fastOLG) with divide-and-conquer in the endogenous state and then a grid interpolation layer in the endogenous state.
If you are using OLG transition path commands, you want to turn this on for the best performance.
With these improvements I can now run the Conesa & Krueger (1999) example codes on my desktop at very high accuracy, substantially higher than the original (they are actually solving something much more complex as the codes do not exploit that you can get a closed form solution for labor supply and thus remove it from the model).
I also completed a whole bunch of quality assurance tests for the FHorz TPath commands:
————-
Footnote: transpathoptions.fastOLG=1 is applied to the value fn (backward) iteration. Regardless of whether you use this there is also simoptions.fastOLG=1 which is on by default and is applied to the agent distribution (forward) iteration and the evaluation of the aggregate variables. To parallelize over j I change it so that the ordering of the state space is (a,j,z,e), rather than the usual (a,z,e,j) since this makes expectations and agent distribution iteration much cleaner to implement. [This is not new, it is how fastOLG has always operated since it was introduced.]