All else being equal, which is faster?

All else being equal, which is faster?

A. 2 core CPU at 4GHz
B. 4 core CPU at 2GHz

The 2 core CPU is faster, obviously.

>Which is a faster way to move people, a Ferrari or a bus?

Depends on the task.

2 cores because Amdahl's law and Hitler Threading.

>muh ahmder lerr
You bring this up in literally every thread. Amdahl's law only applies to a single task being performed. If all you do is crunch numbers in Prime 95 all day, you might have a point. Except you STILL don't, because Prime 95 avoids your "law" by simply running multiple instances of the same algorithm.

2 core at single threaded applications
4 at multithreaded applications

define faster

Increasing the core count scales better than increasing the core speed for most applications

More cores let you perform more tasks at the same speend. Less cores let you perform fewer tasks, but faster...

The 2-core is better for most applications, but the 4-core is better at heavily multithreaded applications (8+ threads probably, due to SMT overhead), and is also more power efficient, as voltage scales with clocks, but power scales quadractically with voltage.

A, assuming you are not being bottle necked by cache misses. It would be always be A if you said 2 cores with 2x cache per core

If you're running multiple tasks you're still limited by how fast a single task runs, hence Amdahl's law holds.

Ferrari can move 2 people 200 miles in one hour
for a total of 400 person-miles moved in one hour
a bus can move 60 people 60 miles in one hour
for a total of 3600 person-miles moved in one hour

Indeed, the question is unclear about that. If you only have to move two people and not more then you get the job done faster with a Ferrari, but how likely would that be? Are we moving one, two, three or twenty people? If a bus can move up to 60 people then it's more likely to be the better option, but in a very specific scenario it will be significantly slower.

you must be gnu

4 core has 4 L1 caches

Hitler threading should be a thing

Depends entirely on the task.

Highly dependent on architecture and number of execution threads.
E.g. if you only have 1 or 2 threads, the 2-core will obviously be faster, but if you have 4 identical threads, the 4-core will be faster since context switching is not a free operation. Then there's cache, which complicates things since it comes in several levels with per-core and shared varieties with different sharing algorithms. Etc.

And then you discover that the bus only has 1 narrow door so it takes 20 minutes to load and unload people, and Ferrari has netburst

...

...