Lec 5
Lec 5
Introduction
• Multiprocessing is the use of two or more central processing units (CPUs)
within a single computer system. The term also refers to the ability of a
system to support more than one processor and/or the ability to allocate
tasks between them.
• The term ‘processor’ in multiprocessor can mean either a CPU or an input-
output processor (IOP).
• There are some similarities between multiprocessor and multicomputer
systems since both support concurrent operations. However, there exists an
important distinction between the two.
• In case of multicomputer systems, several autonomous computers are
connected through a network that may or may not communicate with each
other. On the other hand, in a multiprocessor system, processors interact
with each other through an operating system and cooperate in the solution
of a problem.
Flynn’s taxonomy
Flynn’s classification –
• Single instruction stream, single data stream (SISD)
An SISD computing system is a uniprocessor machine which is capable of
executing a single instruction, operating on a single data stream. In SISD,
machine instructions are processed in a sequential manner and computers
adopting this model are popularly called sequential computers.
Example:
Classical Von Neumann machine
• Single instruction stream, multiple data streams (SIMD)
An SIMD system is a multiprocessor machine capable of executing the same
instruction on all the CPUs but operating on different data streams. Machines
based on an SIMD model are well suited to scientific computing since they
involve lots of vector and matrix operations. So that the information can be
passed to all the processing elements (PEs) organized data elements of vectors
can be divided into multiple sets(N-sets for N PE systems) and each PE can
process one data set.
Example:
Vector supercomputer, array processor
• Multiple instruction streams, single data stream (MISD)
An MISD computing system is a multiprocessor machine capable of executing
different instructions on different PEs but all of them operating on the same
dataset .
• Example Z = sin(x)+cos(x)+tan(x)
The system performs different operations on the same data set. Machines
built using the MISD model are not useful in most of the application, a few
machines are built, but none of them are available commercially.
• This is an uncommon architecture which is generally used for fault
tolerance
• Examples include the Space Shuttle flight control computer.
• Multiple instruction streams, multiple data streams (MIMD)
• An MIMD system is a multiprocessor machine which is capable of
executing multiple instructions on multiple data sets. Each PE in the MIMD
model has separate instruction and data streams; therefore machines built
using this model are capable to any kind of application.
• MIMD machines are broadly categorized based on the way PEs are
coupled to the main memory.
• All the PEs are connected to a single global memory and they all have
access to it. The communication between PEs in this model takes place
through the shared memory, modification of the data stored in the global
memory by one PE is visible to all other PEs. Dominant representative
shared memory MIMD systems are Silicon Graphics machines and
Sun/IBM’s SMP (Symmetric Multi-Processing).
Distributed memory MIMD machines (loosely
coupled multiprocessor systems)
• All PEs have a local memory. The communication between PEs in this
model takes place through the interconnection network (the inter process
communication channel, or IPC). The network connecting PEs can be
configured to tree, mesh or in accordance with the requirement.
The shared-memory MIMD architecture is easier to program but is less
tolerant to failures and harder to extend with respect to the distributed
memory MIMD model