lower-power ones, as in Sun’s Niagara.
So in terms of providing the optimal
performance/power, an SMP is ideally
suited for some applications but not
all. Having cores of different types in
a single processor enables optimizing
performance per watt for a wider range
of workloads. Having cores of different
types on an AMP enables us to employ
specialization (that is, we can use each
type of core for the type of computation
where it delivers the best performance/
energy trade-off). Specialization enables
maximizing the overall efficiency of the
system and as a result delivers better
performance per watt and per area.
Although single ISA AMP systems
are not yet being built, much of the lit-
erature investigating the properties of
these systems has originated from major hardware players such as Intel1, 7 and
HP,
5, 6 indicating that within the industry there is interest in this architecture.
Furthermore, existing SMP systems can
be configured to be asymmetric if one
wants to reduce the amount of power
consumed by the processor. For example, configuring some of the cores of an
SMP to run at a lower-than-maximum
voltage and frequency (via the dynamic
voltage and frequency scaling facilities available on most modern CPUs)
makes the CPU consume less power
and makes the system asymmetric.
In that case it is crucial to understand
how to get the maximum performance
on this asymmetric system in order to
minimize performance losses associated with running some cores at a lower
Hertz.
Given the emergence of AMPs, how
can you best exploit them to maximize
power efficiency (performance per
watt)? Our goal is to shed light on some
of the challenges software developers
will likely face while trying to achieve
this, and to provide some practical advice on how to maximize exploitation of
AMPs as a result. To that end, we provide
several examples demonstrating how to
employ specialization on AMP systems
in order to maximize performance. One
area that will be of particular importance is the design of scheduling algo-