Update
Two months ago I tried out the program on an AMD EPYC. 128 threads is quite a lot, so I didn’t expect it to rip it apart due to the slow storage speeds. However, it was worse than that. I managed to pin it to at least 12 cores, but it never went above 17 cores. Hence it got me thinking why it was so slow. Actually, I then tried to add so it would check if there was more regions than threads in the pool, and therefore ignore putting the chunks in the pool and instead work the chunks in the region thread instead, therefore limiting reads of a region to one thread but keep the speed that comes with having multiple cores. It still didn’t fly away, only increasing to a steadily 19 cores. I then put the world directly into memory and therefore got 22 cores chugging. A 30% performance increase.
I will look into more ways to pull out more cores in the future, but for now I will focus on the overall experience with the program and maybe a release anytime soon.
Also, there is some issues with Unix compilation at the moment, so that needs to be fixed up as well. I am trying to make most of the compilation work without platform specific workarounds, like I had in the Beta version. Luckily, the stl library have since C++11 added a significantly larger amount of useful libraries that makes it a lot easier to implement platform independent functionality without having to have several different versions to work around with.