Introduction-Multicore Programming

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

TAPIWANASHE CHAMUNOKARA

R205984B

MULTICORE PROGRAMMING

• Programming is the process of creating a set of instructions that tell a computer how to
perform particular tasks. It involves writing and designing computer programs.

• Multicore programming involves the of writing computer instructions/algorithms to create


concurrent systems for deployment on multicore processors and multiprocessor systems.

• Multicore programming helps to compliment parallelized approaches in modern high-


performance computing.

• Multicore programming came about due to the introduction of multicore processors and
multiprocessor systems.

• A multicore processor system is basically a single processor with multiple execution cores in
one chip.

MULTICORE PROCESSOR & MULTIPROCESSOR SYSTEMS

• A multicore processor is simply a processor with two or more executing units called cores.
The cores of a multicore processor can individually read and execute program instructions at
the same time.

• This increases the speed of execution of the programs and supports parallel computing.

• Multiprocessor systems have two or more processors. The processors of a multiprocessor


system share the same memory, a system bus (a pathway that connects the major
components of a computer system to carry data and information), and I/O devices.
THE GOAL OF MULTICORE PROGRAMMING

• The goal of multicore programming is to create programs that take advantage of the
multicore processors/multiprocessor systems and achieve parallelism.

• This comes with a number of advantages as listed below:

1. Energy Efficiency - by using multicore processors we can decrease the number of


embedded computers, leading to less heat being generated.

2. Performance – this increases performance by running multiple applications/tasks


concurrently. This is also aided by the shorter distance between cores.

3. Reliability and robustness – allocating applications/tasks on multiple cores increases


reliability and increases fault tolerance.

4. Hardware cost – by using multicore processors we can build systems with fewer
computers and processors.

SIMD AND GPGPU

• We are going to look at approaches to parallelism.

• SIMD is a classification of parallelism which is part of the Flynn’s taxonomy. This was
brought up from two characteristics; instructions and data.

• GPGPU which has large number of cores and specializes in processing data in
graphical form at low frequencies.

CHALLENGES OF MULTICORE PROGRAMMING

Portability: Deployment to Different Architectures

The hardware configuration that runs the deployed application is known as the architecture. It can
contain multicore processors, multiprocessor systems, FPGAs, or a combination of these.
Deployment of the same application to different architectures can require effort due to:

• Different number and types of processor nodes on the architecture

• Communication and data transfer standards for the architecture

• Standards for certain events, synchronization, and data protection in each architecture

Cyclic Data Dependency

Some tasks of a system depend on the output of other tasks. The data dependency between tasks
determines their processing order. Two or more partitions containing data dependencies in a cycle
creates a data dependency loop, also known as an algebraic loop.

You might also like