I think the long term optimization strategy is for computing technology to try to keep pace with DF's development. In 20 years when it's finished, hopefully FPS death won't be much of an issue.
CPUs pretty much stopped advancing when it comes to raw, single core power. Until DF becomes multithreaded, the difference between P4 2ghz and Core 20 Cent 100x6ghz will pretty much boil down to 2ghz vs 6ghz.
The worst offenders (temperature, fluids) are actually among the easiest to multithread. In fact, they could even run mostly on GPU with relatively little work.
While clock speed hasn't moved much - or technically, gone back in a lot of cases - it's definitely not the case that "raw, single core power" has stopped advancing. One core of my i7 clocked at 2.8ghz compared with a P4 at the same speed would run circles so fast around the P4 that uh, a tornado would form and blow the P4 away. Or something. There's been plenty of pipelining improvements, better branch prediction, and all the other micro architecture improvements you can think of. It is literally 2-3x faster when clock speed is normalized.
That said, there are obviously big limits to how much you can shuffle the architecture around and still get significant improvements, and we're pretty much hit a wall when it comes to increasing clock speed. Moore's Law (which, of course, isn't a real physical law, but rather how things have happened to hold up for the past few decades) says that the amount of transistors on a chip doubles every 18 months or so, not that processing power gets twice as fast every 18 months or so. There is a huge difference.
Basically, don't expect any major speed increases for the next decade unless something radical happens in materials science or we get quantum computing. Expect more cores. But there's a limit to that, too.
The worst offenders (temperature, fluids) are actually among the easiest to multithread. In fact, they could even run mostly on GPU with relatively little work.
And you know this... how? Have you perhaps seen the source code? We have no way of knowing how those things (especially temperature, which is affecting everything) works and when/how the checks are made.
Also, you must remember that Toady has stated that he has no experience in multithreading. So, to gain some speed which may very well be minimal, he has to spend time to learn multithreading. And from experience I can say that it's not easy thing to do, and I'm studying IT in university.
Well, it's a pain to read since it's totally undocumented, but it's not impossible for him to have taken a look at the decompiled binary.
And generally, you don't need to see it anyway to make a statement like "fluids and temperature are among the easiest to multithread" when they are well-understood problems.
But yes, I don't think it'd be worth it in the short-term - even if you perfectly parallelize everything, that's just a 2x-4x improvement for most people. It doesn't fix the underlying problem, you just spread the underlying slowness out. DF
could be plenty fast as a single-threaded application.
And no, multithreading is not that difficult. No offense man, but "studying IT in university" doesn't mean much, especially when there are universities out there who have total crap in their CS curriculum. I assume it's an European university (based on the fact in the States IT generally means "I fix computers" rather than "I understand computer science from computational complexity to grammars" while in Europe it can go either way), but it honestly doesn't tell us anything. And at any rate, Toady has a PhD in mathematics, as I recall, and given I have only a Masters in CS and experience, Toady should be much more capable of understanding it than you or I - this is really all just applied math.
The temperature calculations could probably be offloaded without any real concern though, especially if you don't care about losing some precision by introducing race conditions. Fluid flows would be pretty tough to put on a GPU, so I wouldn't recommend that. The question then is how much benefit this gives you in performance, which I'm not sure of. It would probably be significant enough to notice, but even an infinite speedup would only be equivalent to turning temperature off and having no fluid flows.
Huh? CFD is done on GPUs all the time and is much faster, thanks to fluid dynamics being highly parallel in nature.
But again, for emphasis: parallelism is not the problem, even if it wouldn't hurt.