|written by Speeder on Feb 06, 2016 18:19|
|So, I've been playing SimCity 4 and some other simulation games (Rollercoaster for example).|
And I noticed there is a problem: They can't be easily made parallelized...
SimCity 4 was released alongside Pentium 4, that was our peak "single-core" performance, since then people are making CPUs with more and more cores, sometimes with less speed per core (AMD for example went overboard on this).
The result was that since SimCity 4 release, all simulators simulate LESS stuff, they try different approaches, including some more agreeable with paralelism (like using Agents)
But the result is less than encouraging, simulator games are stuck, they can't simulate larger things, because CPUs are also stuck.
If I would recode SimCity 4 today, the best that could be done is enable a city double the size of SimCity 4 (and that is not much), and give one quarter of the city to a core, thus a 4 core processor would have a slighly bigger city.
And that would be still rather small for a city, making a city simulation games that simulate a whole metropolis is out of question with the current hardware on the market.
I think this rather disappointing.
|It is my understanding that while clock rates for CPUs have stalled out years ago, single thread performance is still getting better because with each cycle, modern CPUs are able to do more work than their predecessors.|
Even back then, clock rate wasn't really a good indicator of performance anyway. It's less so even now.
CPUs are still getting better, it's just harder to quantify... and I think in most cases, it's harder to notice.
Single core benchmarks
|written by Speeder on Feb 06, 2016 18:51|
|They improved single-core speed in the sense they support more complex instructions, out of ordering, and stuffing more threads on the same core to use more of the pipeline.|
But the performance of a single thread running alone in a core, didn't improved much.
Also benchmark is a problem, first they tend to attempt to use all features as possible (your game might not use them all, probably is not even possible).
The other issue is that Intel is known to cheat at benchmark, in unexpected ways even (it was found out both that Intel has benchmark detector that change CPU behavioru, and also that benchmarks compiled with Intel Compiler tools have cheats built-in, and people are having trouble to get rid of all of it, since the "taint" enters your code even if you use only a tiny statically library somewhere that was once compiled with ICC).