I was noting in class the other day that it's somewhat fortuitous, from a mnemonic standpoint (helps us remember), that C as in "the C language" (runs fast when optimized) shares its letter with lowercase 'c', typically used for "the speed of light".
The concept of "frequency" is well-developed with regard to CPUs and GPUs. Those with faster clocks crunch through more computations per time interval, accomplishing some "least action" (say a bit flip, taking us into teraflops) more often (right, more frequently).
That means more energy spent in a given time interval (E/t) which relates to the Power (P) of the chip in question.
Energy itself, lets remember, is like a wound up toy, or a battery, all prepped to do work if allowed to, like a runner before the starting gun. The energy is "stored", in the form of chemical stockpiles in the runner's case. Bullets depend on a reservoir of gunpowder.
E = Mcc might get us saying "c squared" but we're also allowed to view an expanding equilateral triangle in place of an expanding square, if we're from a different subculture. The mathematics itself is the same. Cubism is cultural.
E = hf is another statement of how we wind up the toy, by turning the key at some frequency, where a key turn is mass for a distance at some speed (mass times velocity times distance).
In Newtonian units: f = 1/t; E = (mvd)/t = mvv, which is where our mcc comes from, unit-wise. The units of mvd are referred to as "action" and we use h for Planck's minimal action, a discrete minimal delta or change. Those happen over time, and add up in terms of Energy.
When you have a complicated multi-dimensional program to run, just because the CPUs are going at full throttle doesn't mean your program finishes quickly. Some computations take many epochs, even eons, to finish, even if running at the speed of C.