COSC 462 Parallel Programming

advertisement
COSC 462 Parallel Programming
Reading Quiz 00
NAME Carl Carter
KEY
The past decade has seen tremendous advances in microprocessor technology. Clock
rates of processors have increased from about 40 MHz (e.g., a MIPS R3000, circa
1988) to over 2.0 GHz (e.g., a Pentium 4, circa 2002). At the same time, processors
are now capable of executing multiple instructions in the same cycle. The average
number of cycles per instruction (CPI) of high end processors has improved by roughly
an order of magnitude over the past 10 years. All this translates to an increase in the
peak floating point operations execution rate (floating point operations per second, or
FLOPS) of several orders of magnitude. A variety of other issues have also become
important over the same period. Perhaps the most prominent of these is the ability (or
lack thereof) of the memory system to feed data to the processor at the required rate.
Significant innovations in architecture and software have addressed the alleviation of
bottlenecks posed by the datapath and the memory.
The past decade has seen tremendous advances in microprocessor
technology.
Clock rates of (micro)processors have increased from about 40 MHz
(e.g., a MIPS R3000, circa 1988) to over 2.0 GHz (e.g., a Pentium 4, circa
2002).
At the same time, processors are now capable of executing multiple
instructions in the same cycle.
The average number of cycles per instruction (CPI) of high end processors
has improved by roughly an order of magnitude over the past 10 years.
All this (advances-in-processor-technologies) translates to an increase
in the peak floating point operations execution rate (floating point
operations per second, or FLOPS) of several orders of magnitude.
A variety of other issues have also become important over the same
period.
Perhaps the most prominent of these (what?) is the ability (or lack thereof)
of the memory system to feed data to the processor at the required rate.
Significant innovations in architecture and software have addressed the
alleviation of bottlenecks posed by the datapath and the memory.
The past decade has seen tremendous advances in microprocessor technology.
The “past decade” is
the 1990s
A microprocessor is
a computer chip, a CPU, with millions of transistors
One example of a microprocessor technology is
gate size; clock speed
One example of an advance in microprocessor technology over the past decade is
increased clock speed
Clock rates of processors have increased from about 40 MHz (e.g., a MIPS R3000, circa 1988) to over
2.0 GHz (e.g., a Pentium 4, circa 2002).
A 2 GHz clock rate is faster than a 40 MHz clock rate by a factor of
50
In 2011, a high-end processor has a clock rate of
3.6 GHz
This rate is faster than the 2 GHz clock rate of the Pentium 4 by a factor of
1.8
Hz stands for
Hertz
Hz is named after
Heinrich Hertz
1 Hz means
1 cycle per second
MHz stands for
megahertz
GHz stands for
gigahertz
MIPS stands for
Million Instructions Per Second; Microprocessor without Interlocked Pipeline Stages
e.g. stands for
exempli gratia
circa means
about
The Pentium 4 was the product of a company named
Intel
The average number of CPI of high end processors has improved by roughly an order of magnitude
over the past 10 years.
CPI stands for
cycles per instruction
10 years ago the average number of CPI was
3 instructions per cycle
Nowdays the average number of CPI is
4 instructions per cycle (Intel Core i7 processor) or 3 instructions per cycle (AMD chips)
An order of magnitude is
a factor of two or ten (for most people)
All this translates to an increase in the peak FLOPS of several orders of magnitude.
FLOPS means
floating point operations per second
10 years ago the peak FLOPS was
~2100 flops
Nowdays the peak FLOPS is
~70 gflops
In the phrase “peak floating point operation execution rate“, the number of nouns is
5
Significant innovations in architecture and software have addressed the alleviation of bottlenecks
posed by the datapath and the memory.
A bottleneck is
an area whose relative speed restricts the speed of the overall architecture
True of false: the innovations in architecture and software didn’t merely address the alleviation
of bottlenecks, but they actually alleviated bottlenecks posed by the datapath and the memory.
true
A datapath is
the path in which information flows in a computer (ie processor -> caches -> memory etc
One innovation in architecture that alleviated bottlenecks was
multiple cores in processors
One innovation in software that alleviated bottlenecks was
parallel computing
The role of concurrency in accelerating computing elements has been recognized for several
decades. However, their role in providing multiplicity of datapaths, increased access to
storage elements (both memory and disk), scalable performance, and lower costs is reflected
in the wide variety of applications of parallel computing. Desktop machines, engineering
workstations, and compute servers with two, four, or even eight processors connected together
are becoming common platforms for design applications. Large scale applications in science
and engineering rely on larger configurations of parallel computers, often comprising hundreds
of processors. Data intensive platforms such as database or web servers and applications such
as transactions processing and data mining often use clusters of workstations that provide high
aggregate disk bandwidth. Applications in graphics and visualization use multiple rendering
pipes and processing elements to compute and render realistic environments with millions of
polygons in real time. Applications requiring high availability rely on parallel and distributed
platforms for redundancy. It is therefore extremely important, from the point of view of cost,
performance, and application requirements, to understand the principles, tools, and techniques
for programming the wide variety of parallel platforms currently available.
The role of concurrency in accelerating computing elements has been
recognized for several decades.
However, their role in providing multiplicity of datapaths, increased access
to storage elements (both memory and disk), scalable performance,
and lower costs is reflected in the wide variety of applications of parallel
computing.
Desktop machines, engineering workstations, and compute servers with
two, four, or even eight processors connected together are becoming
common platforms for design applications.
Large scale applications in science and engineering rely on larger
configurations of parallel computers, often comprising hundreds of
processors.
Data intensive platforms such as database or web servers and applications
such as transactions processing and data mining often use clusters of
workstations that provide high aggregate disk bandwidth.
Applications in graphics and visualization use multiple rendering pipes and
processing elements to compute and render realistic environments with
millions of polygons in real time.
Applications requiring high availability rely on parallel and distributed
platforms for redundancy.
It is therefore extremely important, from the point of view of cost,
performance, and application requirements, to understand the principles,
tools, and techniques for programming the wide variety of parallel platforms
currently available.
Which decades is the author referring to when speaking about the role of concurrency?
Whose role is it to provide multiplicity of datapaths, etc.?
What is scalable performance as the author references it?
What are some examples of large scale applications?
What is a cluster of workstations?
How do you measure disk bandwidth in a parallel application?
What is high availability in the application sense?
What type of cost is the author referring to in the last sentence?
Which platforms are considered parallel?
What time period is current in the context of this book?
Download