0% found this document useful (0 votes)
29 views4 pages

Classification of Parallel Computing Systems

There are four major categories of parallel computing systems based on Flynn's classification: 1) SISD systems execute a single instruction on a single data stream and include most conventional computers. 2) SIMD systems execute the same instruction on multiple data streams and are well-suited for scientific computing. Cray's vector processing machines are an example. 3) MISD systems execute different instructions on the same data stream but are not very useful in most applications. 4) MIMD systems execute multiple instructions on multiple data streams and are capable of any application. They can have a shared memory or distributed memory architecture.

Uploaded by

RUCHI KUMARI
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views4 pages

Classification of Parallel Computing Systems

There are four major categories of parallel computing systems based on Flynn's classification: 1) SISD systems execute a single instruction on a single data stream and include most conventional computers. 2) SIMD systems execute the same instruction on multiple data streams and are well-suited for scientific computing. Cray's vector processing machines are an example. 3) MISD systems execute different instructions on the same data stream but are not very useful in most applications. 4) MIMD systems execute multiple instructions on multiple data streams and are capable of any application. They can have a shared memory or distributed memory architecture.

Uploaded by

RUCHI KUMARI
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Parallel Computing System Classification

Parallel computing is a computing where the jobs are broken into discrete parts that can be
executed concurrently. Each part is further broken down to a series of instructions. Instructions
from each part execute simultaneously on different CPUs.
Based on the number of instruction and data streams that can be processed simultaneously,
computing systems are classified into four major categories:

Figure 1 Parallel Computing

Flynn’s classification –
1. Single-instruction, single-data (SISD) systems –
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. Most conventional computers have SISD architecture. All the instructions and data
to be processed have to be stored in primary memory.
Figure 2 SISD
The speed of the processing element in the SISD model is limited(dependent) by the rate at
which the computer can transfer information internally. Dominant representative SISD
systems are IBM PC, workstations.
2. Single-instruction, multiple-data (SIMD) systems –
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.

Figure 3 SIMD

Dominant representative SIMD systems is Cray’s vector processing machine.


3. Multiple-instruction, single-data (MISD) systems –
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 .
Figure 4 MISD
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.
4. Multiple-instruction, multiple-data (MIMD) systems –
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.
Unlike SIMD and MISD machines, PEs in MIMD machines work asynchronously.

Figure 5MIMD
MIMD machines are broadly categorized into shared-memory MIMD and distributed-
memory MIMD based on the way PEs are coupled to the main memory.
In the shared memory MIMD model (tightly coupled multiprocessor systems), 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).
In 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. Failures in a shared-
memory MIMD affect the entire system, whereas this is not the case of the distributed model,
in which each of the PEs can be easily isolated. Moreover, shared memory MIMD
architectures are less likely to scale because the addition of more PEs leads to memory
contention.

Common questions

Powered by AI

Loosely coupled multiprocessor systems in MIMD architecture, typically found in distributed-memory setups, have each processing element (PE) with its own local memory. Communication occurs over an interconnection network, making these systems more fault-tolerant since a failure in one PE or its local memory does not impact others. In contrast, tightly coupled systems, as seen in shared-memory configurations, have a common global memory accessible by all PEs. A failure in this shared component can impact the entire system, reducing fault tolerance. The loosely coupled approach thus enhances the system’s ability to handle failures without widespread effects .

SIMD (Single-instruction, multiple-data) architecture benefits scientific computing because it allows the same instruction to be executed simultaneously on multiple processing elements (PEs) but operates on different data streams. This parallel execution is particularly advantageous in scientific computations that involve vector and matrix operations, where large datasets can be split across multiple PEs. Each PE can process a different part of the data set simultaneously, which results in significant reductions in computation time and increased efficiency .

Shared-memory MIMD systems are easier to program due to the global accessibility of memory, which simplifies data sharing and synchronization among multiple processing elements (PEs). However, they are less fault-tolerant, as failures in shared memory affect the entire system, and they have scalability limitations, as adding more PEs increases memory contention. On the other hand, distributed-memory MIMD systems are more fault-tolerant because each PE has its own local memory, making it easier to isolate faults. They are also more scalable, although they require more complex inter-process communication and programming because data management and synchronization are more complex .

In distributed-memory MIMD systems, the network connecting processing elements (PEs) can be configured in various topologies such as tree, mesh, or others, depending on the application's requirements. These configurations impact the system's communication efficiency, latency, fault tolerance, and scalability. For example, a mesh topology can provide direct communication paths between PEs but can increase complexity in route management. A tree configuration might reduce the number of direct connections required but can lead to bottlenecks at higher levels of the tree. Each configuration must balance these trade-offs to optimize system performance based on specific application needs .

In SISD (Single-instruction, single-data) systems, speed is dependent on the rate of internal information transfer because all instructions are processed sequentially by a single processor. The bottleneck in performance typically arises from how quickly data and instructions can be fetched from memory and processed. Thus, the overall speed of an SISD system is often limited by this data transfer rate. This dependency implies that improvements in processor speed alone do not necessarily result in proportional performance gains if internal data transfer rates do not also improve .

Data contention in shared-memory MIMD systems occurs when multiple processing elements (PEs) attempt to access the same data in global memory simultaneously, leading to delays as PEs must wait for memory access, which can severely impact performance. This contention becomes a significant bottleneck as more PEs are added, affecting the system's scalability. As the number of PEs increases, the likelihood of contention increases, limiting the effective utilization of parallel processing and thereby making it challenging to scale these systems efficiently .

MISD (Multiple-instruction, single-data) computing systems are considered not useful in most applications because they are designed to execute different instructions on the same data set. While this design can be conceptually interesting for specific problems, it does not generally align with common computational tasks where processing multiple data items simultaneously is needed. As such, few machines have been built using the MISD model, and none are available commercially, leading to limited applications for this architecture .

MIMD (Multiple-instruction, multiple-data) architecture allows each processing element (PE) to have its own instruction stream and data stream, enabling the PEs to operate asynchronously. This means that each PE can execute different instructions on different data sets independently. This asynchronous operation is advantageous because it allows for greater flexibility in accommodating a wide range of applications, as each PE can be tasked with specific operations tailored to the data it processes. Asynchronous operation also helps in better utilization of system resources, as each PE can continue processing without waiting for others to complete their tasks .

SIMD systems excel in processing efficiency for tasks that can be executed using the same instruction on multiple data points simultaneously, such as image processing or vector calculations. This uniformity allows for effective data handling with minimal control overhead. In contrast, MIMD systems offer greater flexibility by allowing each processing element to execute different instructions on different data sets, which can adapt to a broader range of complex and varied tasks. MIMD systems generally have higher control complexity but can handle heterogeneous workloads more efficiently. Therefore, SIMD is more efficient for uniform tasks on large datasets, while MIMD is better suited for complex applications requiring diverse processes .

Programming shared-memory MIMD architectures is considered easier because all processing elements (PEs) can directly access a single shared memory space. This access simplifies the programming model since developers can use straightforward mechanisms for data sharing and synchronization, such as using common memory addresses for exchanging data. In contrast, distributed-memory MIMD systems require explicit message passing for data exchange between PEs, complicating program design and implementation due to the need for more complex communications protocols and explicit data management .

You might also like