mimd shared memory multiprocessors. mimd -- shared memory u each processor has a full cpu u each...

17
MIMD Shared Memory Multiprocessors

Upload: shauna-wilkins

Post on 28-Dec-2015

216 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: MIMD Shared Memory Multiprocessors. MIMD -- Shared Memory u Each processor has a full CPU u Each processors runs its own code –can be the same program

MIMD Shared Memory

Multiprocessors

Page 2: MIMD Shared Memory Multiprocessors. MIMD -- Shared Memory u Each processor has a full CPU u Each processors runs its own code –can be the same program

MIMD -- Shared Memory Each processor has a full CPU Each processors runs its own code

– can be the same program as other processors

or different All processors access the same memory

– Same address space for all processors– UMA Uniform Memory Access

» all memory accessible in same time for every processor

– NUMA Non-Uniform Memory Access» memory is localized

» each processor can access some memory faster than other

Page 3: MIMD Shared Memory Multiprocessors. MIMD -- Shared Memory u Each processor has a full CPU u Each processors runs its own code –can be the same program

MIMD - SM - UMA

PROCESSORS

MEMORY

MODULES

CONNECTION

Page 4: MIMD Shared Memory Multiprocessors. MIMD -- Shared Memory u Each processor has a full CPU u Each processors runs its own code –can be the same program

Options for Connection -- UMA Bus

– Sequential, can be used for one message at a time Switching Network

– Can send many messages at once» depends on connection scheme

– Crossbar» Maximal connections» expensive

– Omega (also called Butterfly, Banyan)» several permutations of proc-mem possible

Page 5: MIMD Shared Memory Multiprocessors. MIMD -- Shared Memory u Each processor has a full CPU u Each processors runs its own code –can be the same program

Bus

Needs smart local cache schemes to reduce bus traffic

Works for low number of processors Depending on technology 20-50 processors

overloads bus, performance degrades Common on 4, 8 processor SMP servers

Page 6: MIMD Shared Memory Multiprocessors. MIMD -- Shared Memory u Each processor has a full CPU u Each processors runs its own code –can be the same program

Bus

Cache

Processors

Bus

Memory

Page 7: MIMD Shared Memory Multiprocessors. MIMD -- Shared Memory u Each processor has a full CPU u Each processors runs its own code –can be the same program

Crossbar switch

Every permutation of processor to memory can work

Expensive N*M switches where

where N = number of processors,

M = Number of memory modules

Page 8: MIMD Shared Memory Multiprocessors. MIMD -- Shared Memory u Each processor has a full CPU u Each processors runs its own code –can be the same program

Processors

Memory

Switches

Crossbar switch

Page 9: MIMD Shared Memory Multiprocessors. MIMD -- Shared Memory u Each processor has a full CPU u Each processors runs its own code –can be the same program

Omega Network

Every Processor Connects to Every Memory Many, but not all, permutations possible An Extra stage adds redundancy and more

permutations Number of switches = (N/2) log N

» For N processors, N memory modules

Number of stages = log N (determines latency)

Page 10: MIMD Shared Memory Multiprocessors. MIMD -- Shared Memory u Each processor has a full CPU u Each processors runs its own code –can be the same program

Omega Network

Processors

Memory

Page 11: MIMD Shared Memory Multiprocessors. MIMD -- Shared Memory u Each processor has a full CPU u Each processors runs its own code –can be the same program

Omega Network

000001

010011

100101

110111

000001

010011

100101

110111

Destination = 101

Page 12: MIMD Shared Memory Multiprocessors. MIMD -- Shared Memory u Each processor has a full CPU u Each processors runs its own code –can be the same program

Omega Network -- A Permutation

000001

010011

100101

110111

000001

010011

100101

110111

Destination = 101

Page 13: MIMD Shared Memory Multiprocessors. MIMD -- Shared Memory u Each processor has a full CPU u Each processors runs its own code –can be the same program

Omega Network with combining

Smart Switches– combine two requests with same destination– make memory accesses equivalent to serial sequence– split return values appropriately

Time trade-off Used in NYU Ultra-computer

– also in IBM RP3 experimental machine Example: Fetch and Increment

Page 14: MIMD Shared Memory Multiprocessors. MIMD -- Shared Memory u Each processor has a full CPU u Each processors runs its own code –can be the same program

Omega Network

000001

010011

100101

110111

000001

010011

100101

110111

Destination = 101

Page 15: MIMD Shared Memory Multiprocessors. MIMD -- Shared Memory u Each processor has a full CPU u Each processors runs its own code –can be the same program

Options for Connection -- NUMA

Each Processor has a segment of memory closer than others– Could be several different levels of access

All Processors still use same address space Omega network with wrap around

– BBN Butterfly Hierarchy of Rings (or other switches)

– Kendall Square Research KSR-1– SGI Origin series

Page 16: MIMD Shared Memory Multiprocessors. MIMD -- Shared Memory u Each processor has a full CPU u Each processors runs its own code –can be the same program

Hierarchical Rings

DirectoryNodes

ComputeNodeTo higher level

ring

Page 17: MIMD Shared Memory Multiprocessors. MIMD -- Shared Memory u Each processor has a full CPU u Each processors runs its own code –can be the same program

Issues for MIMD Shared Memory

Memory Access– Can reads be simultaneous?– How to control multiple writes?

Synchronization mechanism needed– semaphores– monitors

Local caches need to be coordinated– cache coherency protocols