I was wondering whether I have not configured something correctly, e.g. PyMC 4.0 is not using some feature that PyMC3 is using. Otherwise, I was looking for an explanation of what has changed in PyMC 4.0 that might explain the slow down.
I’m checking the claim of higher ESS in v4 with the same example. Here are some results averaged over 10 runs (4 chains per run, 1000 + 1000 draws per chain):
PyMC3
Average wall time (s): 12.418181300163269
Average sampling time (s): 7.8218183517456055
Average min ESS: 633.3899494222175
PyMC 4.0
Average wall time (s): 19.462969613075256
Average sampling time (s): 14.757731986045837
Average min ESS: 618.1402097314276
(Minimum is taken over all parameters; this is now run on a HPC, so times are faster than original post)
There is a significant difference in time, but not in ESS. Why would we expect v4 to have better efficiency?
Perhaps this is not a good example for comparison? Please let me know if there are other examples. For my own problem, I have noticed that v4 is slower and I don’t know why (which makes me doubt whether the migration is worth).