Multi/Many Core Systems

Download Report

Transcript Multi/Many Core Systems

Multi/Many Core Systems
By Ahmed Shah Mashiyat
Processor Trends So Far..
• Smarter Brain
–(e.g. x386  x486  Pentium  P2  P3  P4)
• Larger Memory
–Larger caches, DRAM, Disk
• Smaller Head
–Fewer chips (integrate more things onto a chip)
• More Power Consumption
–few Watts 120+ Watts!
• More Complex
–1Billion Transistors; design + verification
complexity
Processor-Memory Performance
Gap
1000
CPU
100
10
DRAM
DRAM
7%/yr.
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
1
1980
1981
Performance
“Moore’s Law”
µProc
60%/yr.
From D. Patterson, CS252, Spring 1998 ©UCB
Major Problem Today: End of the
Road!
• Can’t increase Power Consumption
(~100W!)
• Can’t increase Design Complexity
• Can’t increase Verification Requirements
No further improvements to a Processor?!
Obvious Answer: Use Multiple
Brains
• If single brain can’t be improved, use
multiple brains!
• Put multiple simple CPUs on a single chip
Multi-Core!
The First Multi-Core: IBM Power 4
Processor
Definitions
• A Multi-Core processor combines two or more
independent cores into a single package composed of a
single integrated circuit (IC), called a die, or more dies
packaged together.
A dual-core processor contains two cores, and a quadcore processor contains four cores.
• Typically the term Many-Core is sometimes used to
describe multi-core architectures with an especially high
number of cores (tens or hundreds).
Multi core
• Single Chip
• Multiple distinct processing Engine
• E.g.) Shared-cache Dual Core Architecture
Core 0
Core 1
CPU
CPU
L1 Cache
L1 Cache
L2 Cache
Multi core
• Cores in a multi-core device may share a single
coherent cache at the highest on- device cache level
(e.g. L2 for the Intel Core 2) or may have separate
caches (e.g. current AMD dual-core processors).
• The processors also share the same interconnect to the
rest of the system.
• Each "core" independently implements optimizations
such as superscalar execution, pipelining, and
multithreading.
• A system with n cores is effective when it is presented
with n or more threads concurrently.
Systems using Multi core
• The most commercially significant (or at least the most
'obvious') multi-core processors are those used in
personal computers (primarily from Intel and AMD)
and game consoles (e.g., the eight-core Cell processor
in the PS3 and the three-core Xenon processor in the
Xbox 360).
• "multi" typically means a relatively small number of
cores. However, the technology is widely used in other
technology areas, especially those of embedded
processors, such as network processors and digital
signal processors, and in GPUs.
Advantages of Multi-core
• The proximity of multiple CPU cores on the same die
allows the cache coherency circuitry to operate at a
much higher clock rate than is possible if the signals
have to travel off-chip. Combining equivalent CPUs on
a single die significantly improves the performance of
cache snoop (alternative: Bus snooping) operations. Put
simply, this means that signals between different CPUs
travel shorter distances, and therefore those signals
degrade less. These higher quality signals allow more
data to be sent in a given time period since individual
signals can be shorter and do not need to be repeated
as often.
Advantages of Multi-core(cont..)
• The largest boost in performance will likely be noticed
in improved response time while running CPUintensive processes, like antivirus scans, ripping/
burning media (requiring file conversion), or searching
for folders. For example, if the automatic virus scan
initiates while a movie is being watched, the application
running the movie is far less likely to be starved of
processor power, as the antivirus program will be
assigned to a different processor core than the one
running the movie playback.
Advantages of Multi-core(cont..)
• Assuming that the die can fit into the package,
physically, the multi-core CPU designs require much
less Printed Circuit Board (PCB) space than multi-chip
SMP designs. Also, a dual-core processor uses slightly
less power than two coupled single-core processors,
principally because of the decreased power required to
drive signals external to the chip. Furthermore, the
cores share some circuitry, like the L2 cache and the
interface to the front side bus (FSB).
The Result…
• Today’s CPU manufacturers have turned to multicore designs e.g. putting more than one “brain” on a
single chip. Intel offers two, four or eight core chips
with more to come, Sun Microsystems has chips with
up to 64 cores, AMD has its quad-core chip (and
others), etc. So it seems the future belongs to multicore systems, especially in the server marketplace.
A Crisis in the Industry!
• Parallelism is Difficult to Find!
–Writing Parallel Programs is much harder!
–Parallel Architectures, Compilers, and
Programmers have been researched for many
decades
• But, now everything will have multi-core:
–Desktops, Servers, Supercomputers, Palmtops,
Embedded Computers
Reason for the crisis…
• Memory bandwidth
-- Memory bandwidth is a major limitation with
multi-core systems. All cores must share access to the
same memory and therefore have to take turns to read from or
write it.
• Disk speed
-- Disk speed can throttle performance. If a disk can
read only 40MB/sec (a common figure for even a fast
laptop hard drive), then a program that needs to read a
400MB file will take a minimum of 10 seconds to open
it, even if it has no computation to do.
Reason for the crisis…
• Software and scalability
--software today is frequently not written to take
advantage of multiple cores efficiently; it is technically
challenging to write efficient threaded code that is free of
threading bugs (threading bugs are those that result
from incorrectly-written threaded code).
-- A highly scalable program is difficult to build. It
requires a lot of expertise.
Crisis Opportunity!
• Industry is willing/forced to consider:
–Code-rewrite to better expose parallelism
–Newer ways of expressing parallelism
–Newer programming languages
–Newer architectures
–Overall: Newer lines of thinking and research!
• Marvelous Opportunity to do Research and
Development in this area!
Conclusions
• That fancy new computer won’t deliver on its
speed promise unless it offers adequate memory
bandwidth for the program you actually run.
Those programs need to be especially well
designed to exploit more than one or two CPU
cores.
• So for now we are not ready to capitalize the
power of multi/many core system to full extent.
References
•
•
•
•
•
•
•
•
Multi-core Computers @
http://diglloyd.com/diglloyd/free/MultiCore/index.html
Multi-core @ http://en.wikipedia.org/wiki/Multi-core
Multi-core state of play @
http://www.builderau.com.au/strategy/architecture/soa/Multicore-state-ofplay/0,339028264,339291257,00.htm?feed=pt_programming
Central processing unit @
http://en.wikipedia.org/wiki/CPU
Multi Core Processors: The Possibilities for a New Era in
Computer Architecture… IBM Research @
http://203.197.173.12/faer/treach/pdf/Multicore-Possibilities.pdf
HETEROGENEOUS MULTICORE PROCESSORS @
http://132.236.67.210/EngrWords/issues/ew04/Vitkalov_talk.pd
f
OVERVIEW OF MULTICORE, PARALLEL COMPUTING,
AND DATA MINING @
http://grids.ucs.indiana.edu/ptliupages/presentations/
Introduction to High Performance Computing @
http://cse.stfx.ca/~ltyang/csci-455/
THANK YOU!
QUESTIONS?