0% found this document useful (0 votes)
21 views9 pages

BCSE412L - Parallel Computing 04

Uploaded by

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

BCSE412L - Parallel Computing 04

Uploaded by

aavsgpt
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 9

BCSE412L- Parallel Computing

Faculty Name: Dr. A. ILAVENDHAN


School of Computer Science and Engineering (SCOPE)
Parallel Architecture
• Parallel architecture refers to the design and organization of computer systems
that use multiple processors or cores to perform tasks simultaneously.

• The goal of parallel architecture is to increase computational speed and


efficiency by dividing a large problem into smaller, manageable tasks that can
be solved concurrently.

Key concepts in parallel architecture include:

• Parallel Processing
• Task Decomposition
• Data Decomposition
• Concurrency
• Scalability
• Types of Parallelism
• sas
Parallel Architecture
Parallel Algorithms: Algorithms designed to take advantage of parallel
processing, ensuring efficient and simultaneous execution on multiple
processors.

Parallel Architectural Models:

•Shared Memory (SMP): Multiple processors share a common


memory space, allowing them to communicate by reading and writing to
shared memory locations

•Distributed Memory (Cluster): Each processor has its own local


memory, and communication between processors is achieved through
message passing.
Parallel Architecture
Parallel Processing Paradigms:

Vector Processing: Single instruction operates on multiple data elements


simultaneously.

Pipeline Processing: Multiple stages of instruction execution occur


concurrently.

SIMD (Single Instruction, Multiple Data): Multiple processing elements


execute the same instruction on different data.

MIMD (Multiple Instruction, Multiple Data): Multipleprocessors execute


different instructions on different data.
SIMD (Single Instruction, Multiple Data)
Architecture
• SIMD is a parallel computing architecture where a single instruction is
broadcasted to multiple processing elements (PEs), and each PE performs the
same operation on multiple data elements simultaneously.

Characteristics of SIMD Architecture:


Single Instruction Stream:
• All processing elements in a SIMD architecture execute the same instruction at
the same time.
• The instruction is broadcasted from a single control unit to all processing
elements.
SIMD (Single Instruction, Multiple Data)
Architecture
Characteristics of SIMD Architecture:
Multiple Data Streams:
• Each processing element operates on its own set of data simultaneously.
• The data elements are typically stored in vector registers.
Vector Processing:
• SIMD architecture is often referred to as vector processing because operations
are performed on vectors of data.
Performance Enhancement:
• SIMD architectures can provide significant performance improvements for
specific types of computations by processing multiple data elements in
parallel.
• The degree of performance improvement depends on the level of data
parallelism in the application.
SIMD Implementations:
Vector Processors:
• Dedicated vector processors are designed to efficiently execute SIMD instructions.
• These processors have specialized vector registers and functional units optimized for
vector operations.

SIMD Extensions in General-Purpose Processors:


• Many general-purpose processors, like those in modern CPUs and GPUs, incorporate
SIMD instructions as extensions to the instruction set architecture.

Vectorization in Compilers:
• Compilers can automatically vectorize code by converting scalar operations into
SIMD instructions.
• This process transforms sequential code into parallelized code suitable for SIMD
execution.
Applications of SIMD Architecture:
Graphics Processing:
• Rendering graphics involves performing similar operations on large sets of pixels or
vertices, making SIMD well-suited for graphics processing units (GPUs).
Signal Processing:
• SIMD is commonly used in applications such as audio and video processing,
where the same operations need to be applied to multiple data samples.
Scientific Simulations:
• Numerical simulations, simulations of physical processes, and scientific
computations often involve repetitive calculations on large datasets, making SIMD
beneficial
Data Compression:
• Algorithms like JPEG compression and MPEG video encoding leverage SIMD to
process blocks of data concurrently.
Machine Learning and AI:
• SIMD instructions are utilized in certain operations within machine learning and
artificial intelligence algorithms, especially those involving vectorized data.
Challenges and Considerations:
• Data Alignment:
• Efficient SIMD execution often requires data elements to be aligned in
memory, which may introduce alignment constraints.
• Conditional Branching:
• SIMD instructions are most effective when the same operation is performed on
all data elements. Conditional branching within SIMD code can lead to
performance penalties.
• Compiler Support:
• Effective utilization of SIMD requires good compiler support to
automatically vectorize code.
• Limited Flexibility:
• SIMD is well-suited for specific types of computations, but it may not be as
versatile as other parallel architectures like MIMD for more general-purpose
tasks.

You might also like