Multicore computers shift the burden of
software performance from chip designers and
processor architects to software developers.
BY James LaRus
over the pASt
three decades, regular, predictable
improvements in computers have been the norm,
progress attributable to Moore’s Law, the steady
40%-per-year increase in the number of transistors
per chip unit area.
The Intel 8086, introduced in 1978, contained 29,000
transistors and ran at 5MHz. The Intel Core 2 Duo,
introduced in 2006, contained 291 million transistors
and ran at 2.93GHz. 9 During those 28 years, the number
of transistors increased by 10,034 times and clock
speed 586 times. This hardware evolution made all
kinds of software run much faster. The Intel Pentium
processor, introduced in 1995, achieved a SPECint95
benchmark score of 2. 9, while the Intel Core 2 Duo
achieved a SPECint2000 benchmark score of 3108.0, a
375-times increase in performance in 11 years.
a Benchmarks from the 8080 era look trivial today and say little about modern processor performance.
A realistic comparison over the decades requires a better starting point than the 8080. Moreover,
the revision of the SPEC benchmarks every few years frustrates direct comparison. This comparison
normalizes using the Dell Precision WorkStation 420 (800MHz PIII) that produced 364 SPECint2000
and 38. 9 SPECint95, a ratio of 9. 4.
These decades are also when the
personal computer and packaged software industries were born and matured. Software development was facilitated by the comforting knowledge
that every processor generation would
run much faster than its predecessor.
This assurance led to the cycle of innovation outlined in Figure 1. Faster processors enabled software vendors to
add new features and functionality to
software that in turn demanded larger
development teams. The challenges
of constructing increasingly complex
software increased demand for higher-level programming languages and
libraries. Their higher level of abstraction contributed to slower code and,
in conjunction with larger and more
complex programs, drove demand for
faster processors and closed the cycle.
This era of steady growth of single-processor performance is over, however, and the industry has embarked on
a historic transition from sequential
to parallel computation. The introduction of mainstream parallel (multicore)
processors in 2004 marked the end of
a remarkable 30-year period during
which sequential computer performance increased 40%–50% per year. 4 It
ended when practical limits on power
dissipation stopped the continual increases in clock speed, and a lack of
exploitable instruction-level parallelism diminished the value of complex
Fortunately, Moore’s Law has not
been repealed. Semiconductor technology still doubles the number of transistors on a chip every two years. 7 However,
this flood of transistors is now used to increase the number of independent processors on a chip, rather than to make
an individual processor run faster.
The challenge the computing industry faces today is how to make parallel
computing the mainstream method
for improving software performance.
Here, I look at this problem by asking how software consumed previous
advanced micro Devices multiple 45nm quad
core die based on the opteron processor,
codenamed “shanghai” ( www.amd.com/)
PHotograPH Courtesy oF aMd