A computer consists of multiple components such as functional units, cache and main memory. At each moment of execution, a
program may have a varied amount of work for each component. Recent development has exploited this imbalance to save energy
by slowing the components that have a lower load. Example techniques include dynamic scaling and clock gating used in processors
from Transmeta and Intel. Symmetrical to reconfiguring hardware is reorganizing software. We can alter program demand for
different components by reordering program instructions. This paper explores the theoretical lowe4r bound of energy consumption
assuming that both a program and a machine are fully adjustable. It shows that a program with a balanced load always consumes
less energy than the same program with uneven loads under the same execution speed. In addition, the paper examines the relation
between energy consumption and program performance. It shows that reducing power is a different problem than that of improving
performance. Finally, the paper presents empirical evidence showing that a program may be transformed to have a balanced demand
in most parts of its execution.