Fast / Slow dynamics and widely varying degrees of identification

It looks to me like the linked paper is suggesting that you could get useful results if you can turn off and on the “fast” dynamics. Doing that is a little like block-updates of the system. If you have K fast variables, you update everything at tiny timesteps for a while. Then you freeze the K fast variables, and do the HMC dynamics on the other N-K for much longer timesteps. Then repeat the whole process.

The problem with this, is that we don’t know which are the fast and which are the slow variables (and of course, in some sense these can change with position as in hierarchical models).

You might be able to add something to the Stan language to hint to the compiler how to block the variables, and what timestep you think they might need:

vector [100] foo HINT(dt=O(epsilon), block=1)
vector [10] bar HINT(dt=O(epsilon^3), block=2)

Then you could update in blocks, Stan would infer the base size of dt=epsilon, and would try other blocks with dt of the order of magnitude given by the dt hint.

Or some such thing.