I also wouldn't simply assume that AMD does badly in Dwarf Fortress. People have suggested that DF is bogged down by cache misses, and cache performance is generally very high on Ryzen. It would have to be benchmarked though.
The "power wall" is just the limit on the amount of electrical power that can be put into a chip before heat or current leakage through transistors becomes a problem for system stability, and there's nothing particularly significant about the 4Ghz mark. The current generation of i9 processors will supposedly do 5 Ghz pretty consistently. It's all just a matter of how much power a given chip will take.
There is nothing specifically about strategy games that make them ill-suited for parallel processing, it's just that parallelism is hard to program for to begin with, and even harder to retrofit into legacy code.
4GHz for old CPUs then, and 5GHz for new ones.
Yes, parallelism is hard to begin with. This is true. Lots of theory. Little automation. Data parallelism, thread parallelism, cache issues. False sharing issues. Major headache. First you study computer architecture, then parallel systems and you still confused.
There is a 1-day solution:
First you watch 4h of introduction to openMPI:
www.youtube.com/playlist?list=PLLX-Q6B8xqZ8n8bwjGdzBJ25X2utwnoEGThen you need to install openMPI for gcc.
"sudo apt-get install libopenmpi-dev"
"sudo apt-get install openmpi-bin"
then add at top of cpp file you add in header:
#include <omp.h>
Then you look for every for-loop in program and just write above "#pragma omp parallel for reduction(operation:variable)"
#pragma omp parallel for reduction(+:x)
for (int i = 0; i < (N - 1); ++i) {
x += calculation;
}
or
#pragma omp parallel for reduction(-:x)
for (int i = 0; i < (N - 1); ++i) {
x -= calculation;
}
or alike.
then you compile the thing.cpp with flag "-fopenmp" like "g++ thing.cpp -fopenmp -o thing"
and suddenly you're genius at parallel programming.
Your program runs suddenly 20 times faster for no other reason then 4 cores CPU and 8 threads in them.
Reduction does it all for you automatically. Magic touch for programmers.
Of course going into details and learning it all, allows you to program even faster executing parallel code, but at the cost of limitation of your parallel program to particular given CPU architecture.
GPU parallel programming however is a pain in the unmentionable. What do you watch with greater ease, SSE and AVX programs or Dwarf Fortress graphics?