- I’m already using a seed. The results are nearly identical, but nearly is not enough
- I don’t want to use a single thread. I want to understand the problem and possibly fix it.
Some helpful ANTs users told me that MSQ and CC are reproducible, but not MI, because all threads are working on the same joint histogram (PDF?) before they calculate the sum. I tried to study the code but it’s not simple! Still, I understand that the mutex and joint histogram is created here, they are passed to each thread. The rest of the action is in those files
but I would need to study them for much longer to understand what’s going on.
I have several questions!
- I’m using the word “histogram” here (that’s what stnava wrote), but I see PDF in the code. I’m not a statistician, but I know that those things are different. Which word should I use to better understand the algorithm?
- Why is it done like that? Using a global variable used by all threads. Can’t each thread works on it’s own local histogram, then we merge them all after, calculate the sum, etc.?
- Is there a non-threaded version that I can study? If not, can somebody explain me what’s going on. It’s complicated and hard to follow!
Thank you for your time.