0% found this document useful (0 votes)
18 views11 pages

BCSE412L - Parallel Computing 03

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)
18 views11 pages

BCSE412L - Parallel Computing 03

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/ 11

BCSE412L- Parallel Computing

Faculty Name: Dr. A. ILAVENDHAN


School of Computer Science and Engineering (SCOPE)
Multi-Core Processors

• Multi-core processors are a type of central processing unit (CPU)


that integrates multiple processing cores onto a single chip.

• Each core in a multi-core processor is a separate processing unit


capable of executing its own instructions independently of the others.

• The development of multi-core processors was driven by the need to


increase computational performance while maintaining reasonable
power consumption and thermal efficiency.
Some key aspects to consider when discussing multi-core
processors:
Parallel Processing:
One of the main advantages of multi-core processors is their ability to
execute multiple tasks simultaneously.

Types of Multi-Core Architectures:


Symmetric Multi-Processing (SMP): In SMP systems, each core is
identical, and they share access to the same memory. This architecture is
commonly used in desktops and servers.

Asymmetric Multi-Processing (AMP): AMP systems feature cores with


different capabilities. For example, there might be high-performance cores
alongside power-efficient cores. This approach is often seen in mobile devices.
Benefits:
•Increased Performance: Multi-core processors provide improved performance for
parallelizable tasks.
•Applications that can be divided into multiple threads can benefit significantly from multi-
core architectures.

•Efficiency: Instead of relying on a single powerful core, multi-core processors can distribute
the workload, leading to better power efficiency and thermal management.

Challenges:
•Software Optimization: Not all software is designed to take full advantage of multi-core
architectures. Efficiently utilizing multiple cores requires well-optimized software that can
divide tasks into parallel threads.

•Amdahl's Law: Some tasks cannot be parallelized, and Amdahl's Law dictates that the
overall speedup is limited by the sequential portion of the code. Thus, not all applications
experience a linear increase in performance with additional cores.
Applications:

•Multithreaded Applications: Software that is designed to execute multiple threads concurrently


can benefit from multi-core processors.
• Examples include video editing software, scientific simulations, and certain gaming
applications.

•Server Environments: Multi-core processors are widely used in servers to handle multiple tasks
simultaneously, improving the server's ability to handle concurrent user requests.

Future Trends:

•Increasing Core Count: The trend in processor development is toward increasing the number of
cores on a single chip. However, adding more cores does not always translate directly into better
performance due to challenges such as memory access and communication between cores.

•Heterogeneous Architectures: Combining different types of cores (heterogeneous architectures)


is becoming more common to achieve a balance between performance and power efficiency.
Examples of multicore processors

latest Intel 12th-generation multicore processors include the following:

•Intel Core i9 12900 family provides 8 cores and 24 threads.


•Intel Core i7 12700 family provides 8 cores and 20 threads.
•Top Intel Core i5 12600K processors offer 6 cores and 16 threads.

Examples of latest AMD Zen multicore processors include:

•AMD Zen 3 family provides 4 to 16 cores.


•AMD Zen 2 family provides up to 64 cores.
•AMD Zen+ family provides 4 to 32 cores.
Shared vs Distributed memory

• Shared memory and distributed memory are two different paradigms used in
parallel computing to facilitate communication and coordination among multiple
processing units.
Shared Memory:
•Definition: Shared memory is a programming model where multiple processors share a
common, global memory space.

•Communication: Processors can directly read and write to the same memory locations,
allowing for easy communication and data sharing.

•Synchronization: Since all processors have access to the same memory, synchronization
mechanisms (like locks or semaphores) are required to control access and avoid
conflicts when multiple processors attempt to modify the same data simultaneously.

•Programming Model: Shared-memory systems are typically easier to program, as


developers can use familiar constructs like variables and pointers for communication.

•Examples: Multiprocessor systems, multicore processors, and symmetric


multiprocessing (SMP) architectures are examples of shared-memory systems.
Distributed Memory:
•Definition: Distributed memory is a programming model where each processor has its own local
memory, and communication between processors is explicitly managed through message
passing.

•Communication: Processors communicate by sending messages to each other. Each processor


has its own memory, and data must be explicitly transferred between processors when needed.

•Synchronization: Since processors have independent memory spaces, there is typically less
need for synchronization mechanisms related to shared data. However, proper coordination is
still necessary for effective communication.

•Programming Model: Programming distributed-memory systems can be more challenging, as


developers need to explicitly manage communication and data distribution. Message passing
libraries (e.g., MPI - Message Passing Interface) are often used in this paradigm.

•Examples: Clusters, grid computing, and many supercomputers (like those using a distributed-
memory architecture with interconnected nodes) employ a distributed-memory model.

You might also like