Module 1 – Parallel Computing
1. Explain the classifications of parallel computer.
Introduction:
Parallel computers are designed to execute multiple operations simultaneously. They are
used to solve complex problems faster by dividing a task into smaller sub-tasks and
executing them in parallel. The classification of parallel computers helps in understanding
how data and instructions are processed concurrently across different architectures.
Explanation:
The most common classification of parallel computers is based on Flynn’s Taxonomy, which
categorizes systems by the number of concurrent instruction and data streams. The four
categories are: 1) SISD (Single Instruction, Single Data) – A traditional sequential system
where one instruction operates on one data at a time. 2) SIMD (Single Instruction, Multiple
Data) – Executes the same instruction on multiple data elements simultaneously, such as
vector processors. 3) MISD (Multiple Instruction, Single Data) – Applies multiple
instructions to the same data, though rarely implemented. 4) MIMD (Multiple Instruction,
Multiple Data) – Executes different instructions on different data streams, commonly used
in distributed systems and multicore processors.
Example:
For instance, GPUs are examples of SIMD systems as they perform the same operation
across many data elements at once, while clusters or multicore CPUs are examples of MIMD
systems as each processor can execute different instructions on separate data.
Conclusion:
Thus, parallel computer classification provides a foundation for understanding how
different architectures achieve parallelism. Flynn’s taxonomy remains the most widely used
approach to describe these systems and their operation models.
2. Explain 2 principal types of MIMD Systems based on their process access
memory.
Introduction:
MIMD (Multiple Instruction, Multiple Data) systems execute multiple instructions on
multiple data streams simultaneously. They form the basis of modern multiprocessor
systems. Depending on how processors access memory, MIMD systems are categorized into
shared-memory and distributed-memory architectures.
Explanation:
In a shared-memory MIMD system, all processors access a common global memory space.
Communication occurs through shared variables, making data sharing simple but requiring
synchronization mechanisms to avoid conflicts. This model provides faster communication
but has scalability limits due to memory contention.
In distributed-memory MIMD systems, each processor has its own private local memory.
Processors exchange information using message-passing techniques such as MPI. This
model scales better as each node operates independently and only communicates when
necessary, though programming complexity increases.
Example:
An example of a shared-memory MIMD system is a multicore CPU where cores share the
same RAM. A distributed-memory MIMD example is a computing cluster where each node
has independent memory and communicates via a network.
Conclusion:
Both shared and distributed memory architectures have their advantages. Shared-memory
systems are easy to program and suitable for small-scale parallelism, while distributed-
memory systems offer better scalability for large-scale computing environments like
supercomputers.