28 MIMD Architecture

Download as pdf or txt
Download as pdf or txt
You are on page 1of 28

Rehan Azmat

Lecture28
MIMD Architecture

Array processors
Vector processors
Cray X1
Multimedia extensions

Introduction and Classification


Symmetric multiprocessors

A set of general purpose processors is connected together.

In contrast to SIMD processors, MIMD processors can


execute different programs on different processors.
Flexibility!

By 90s, SIMD lost ground, since general purpose


microprocessors are now very cheap and powerful.

MIMD machines could be built from commodity (off-the-shelf)


microprocessors.

A variant of this, called single program multiple data


streams (SPMD) executes the same program on different
processors.
Avoid complexity of general concurrent programming.
A programming model rather than an architecture concept!

SIMD computers require less hardware than MIMD


computers (single control unit).

SIMD processors are specially designed, and tend to


be expensive and have long design cycles.

Not all applications are naturally suited to SIMD


processors.

Conceptually MIMD computers cover SIMD need.

Having all processors executing the same program (SPMD).


SPMD can be built from inexpensive off-the-shelf
components with relatively little effort.

Centralized Memory: Shared memory located at


centralized location consisting usually of
several interleaved modules the same distance
from any processor.
Symmetric Multiprocessor (SMP)
Uniform Memory Access (UMA)

Distributed Memory: Memory is distributed to


each processor improves scalability.

Message Passing Architectures: No processor can


directly access another processors memory.
Hardware Distributed Shared Memory (DSM): Memory is
distributed, but the address space is shared.

Tightly coupled, not scalable.


Typically called Multi-processor.

Loosely coupled with message passing,


scalable
Typically called Multi-Computer.

Part (or all) of the memory is accessible to all


processors.
Processors interact by modifying data objects
stored in this shared-address-space.

These platforms comprise of a set of


processors and their own (exclusive) memory.
clustered workstations
non-shared-address-space multi-computers

These platforms are programmed using


(variants of) send and receive primitives.
Libraries such as MPI (Message Passing
Interface) and PVM (Parallel Virtual Machine)
provide such primitives.

A multi-computer system is a collection of


computers interconnected by a message-passing
network.
Clusters.

Each processor is an autonomous computer

having its own local memory, and


communicating with each other through the message
passing network.

Can be easily built with commodity


microprocessors.

Design issues related to an MIMD machine are very


complex, since it involves both architecture and
software issues.
The most important issues include:

Processor design
Physical organization
Interconnection structure
Inter-processor communication protocols
Memory hierarchy
Cache organization and coherency
Operating system design
Parallel programming languages
Application software techniques

Symmetric Multiprocessors

A set of similar processors of comparable capacity.

All processors can perform the same functions (symmetric).

Processors are connected by a bus or other internal connection.

Processors share the same memory.

Memory access time is (approximately) the same for each processor.

All processors share access to I/O.

Controlled by an integrated operating system:

A single memory or a pool of memory modules

Either through the same channels or different channels giving paths to the same
devices

Providing interaction between processors


Interaction at job, task, file and data element levels

High performance

Good availability

Support incremental growth

Scaling

If similar work can be done in parallel (e.g., scientific


computing).
Since all processors can perform the same functions, failure
of a single processor does not stop the system.
Users can enhance performance by adding additional
processors.
Vendors can offer range of products based on different
number of processors.

Advantages:
Simplicity.
Flexibility Easy to expand the system by attaching
more processors.

Disadvantages:
Performance limited by bus bandwidth.
Each processor should have local cache
To reduce number of bus accesses
Can lead to problems with cache coherence
Should be solved in hardware (to be discussed later).

Direct access of memory modules by several processors.

Better performance.

Hardware logic required to resolve conflicts.

Can configure portions of memory as private to one or


more processors

Each processor has dedicated path to memory module

Permanently designated priorities to each memory port.

Increased security.

Write through cache policy necessary to alert other


processors of memory updates.

An SMP OS manages processor resources so that the user


perceives a single system.

It should appear as a single-processor multiprogramming


system.

In both SMP and uniprocessor, multiple processes may be active


at one time.

OS is responsible for scheduling their execution and allocating resources.

A user may construct applications that use multiple processes


without regard to whether a single processor or multiple
processors will be available.
OS supports reliability and fault tolerance
Graceful degradation.

Processor unit (PU)

L2 cache

Bus switching network adapter (BSN)

Memory card

CISC microprocessor
Frequently used instructions hard wired
64k L1 unified cache with 1 cycle access time
384k

Includes 2M of L3 cache

8G per card

Two most common MIMD architectures are


symmetric multiprocessors and clusters.
SMP is an example of tightly coupled system with
shared memories.
Cluster is a loosely coupled system with distributed
memories.

End of the Lecture

You might also like