Clock speed stopped being the answer
Two processors at the same clock frequency can differ several-fold in real work done. The reason is that frequency tells you how many cycles per second you get, not how much progress each cycle makes.
The standard accounting is:
time = instructions x cycles per instruction x seconds per cycle
(CPI) (1 / frequency)
Compilers attack the first term. Frequency attacks the third, and stopped scaling usefully once power density became the binding constraint. Nearly all of the interesting engineering for the last two decades has gone into the middle term.
CPI below 1 is the goal, and it is achievable because a core works on many instructions at once. Its reciprocal, instructions per cycle or IPC, is the number people usually quote. This cursus is about where IPC comes from and, more often, where it goes.

