I just got owned by parallelization actually slowing down my code because of stupid memory buses.
I have a global tree structure. Right now I'm using multiple threads to search the tree but I think because the tree is written in the RAM, it makes multithreading pointless because the memory bus is always saturated by one thread at a time.
So is it possible to forcefully make a subsection of the tree exist in a processor's cache so as to avoid that dread bus?
And if threading isn't useful for searching, what do I do with it?
Like, what are some actual good uses of multithreading?