PolyChord / PolyChordLite

Public version of PolyChord: See polychord.co.uk for PolyChordPro
https://polychord.io/
Other
83 stars 26 forks source link

Error "non-deterministic likelihood" after resuming #44

Closed qminor closed 2 years ago

qminor commented 4 years ago

I ran a job that had to be stopped after 48 hours, but when I resumed it, I got the error "non-deterministic likelihood". What does this mean, and why would it happen upon resuming?

Thanks, Quinn

williamjameshandley commented 4 years ago

Hi @qminor.

It means that your likelihood has the property that it does not return the same result if you call it again at a later time with the same inputs, which is a requirement if you want to perform slice sampling.

This can occur if there is a deliberate (unseeded) random element to your likelihood, or if there is a bug in ones code (such as accessing of deallocated memory, which would introduce unintentional randomness). In my experience it is not unusual for slice sampling to pick up bugs that have previously gone unnoticed (since this kind of nondeterminism doesn't affect Metropolis Hastings algorithms or MultiNest).