KMV2018 is more challenging than Chen2010, just because for housing most people are happy just, e.g., putting 10 grid points on housing, but this would not be considered enough for illiquid assets. [KMV2018 is also inf horz rather than finite horizon, but while this means a different code it is not important] You are right that from a mathematical perspective they are about equally complex, but the extra grid points make KMV2018 computationally substantially harder.
With current gpus, putting 10 or 20 points on the second endogenous state is easy, but putting 200 or 500 is hard (just get out of gpu memory errors).
Relatedly, one of the current bottlenecks in two endo state models for VFI Toolkit is just the sheer size of the solutions, so I am looking to code ways that allow more accuracy with smaller solutions (which tends to require interpolation of one kind or another).
I implemented divide-and-conquer for inf horz with one endogenous state. But it is actually way slower than not using it (especially in models with decision variables, as can no longer use refine). So it is permanently disabled and not accessible to user (still works for the transition paths). It does mean all those warnings are gone.
If a user wants to try it, you need to manually edit
around what is currently lines 513-515, where it says
if vfoptions.divideandconquer==1 && length(n_a)==1
vfoptions.divideandconquer=0; % is implemented, but is too slow to be something you would ever want, especially because you cannot refine while doing divideandconquer
end
and get rid of that line that is forcing vfoptions.divideandconquer=0 in this situation.
Normally, there might still be a case where while slower, divide-and-conquer reduces memory use so lets you solve a larger model. But I feel like with the next generation of gpus, for models with one endogenous state and inf horizon this is just never going to be a situation anyone will find themselves in. So I permanently disabled it. (Is coded, just disabled.)
In short. You can set vfoptions.divideandconquer=1, and everything will run without any warnings, but it will simply be ignored and will actually just solve using vfoptions.divideandconquer=0. [For inf horz models with a single endogenous state]