Professional Documents
Culture Documents
UNIT 4-
School of Computing
Vel Tech Rangarajan Dr. Sagunthala R&D Institute of
11/07/2023 Science and Technology 1
Unit-4::Syllabus
UNIT- IV DESIGN
Unit 4 High Performance Computing (HPC)
9Hours
11/07/2023 3
Unit-4::Invention of HPC
• Need for ever increasing Performance
• Visionary concept of Parallel Computing
11/07/2023 4
Unit-4::Invention of HPC
How does HPC work?
11/07/2023 5
• To build an efficient and high performance computing architecture, in HPC
computational servers are interconnected to work on large or complex operations in
the Cluster environment.
• In the cluster, where software programs or algorithms run simultaneously to produce
the effective outcome.
• Then the cluster will be networked together in the data storage to produce the output.
• To operate at the maximum level, each component in the cluster should pace with
each other (in the cluster each component is referred to as a node).
• The storage component should be able to feed and inject the data from various
network sources.
• Each networking component should be able to deliver high speed data transportation
between the computational servers and data storage devices.
11/07/2023 6
HPC Application
11/07/2023 7
Unit-4::Parallel Processing
11/07/2023 8
Unit-4::Parallel Processing
• one possible way of separating the execution unit into
eight functional units operating in parallel. diagram
shows one possible way of separating the execution unit
into eight functional units operating in parallel.
11/07/2023 9
Unit-4::Parallel Processing
11/07/2023 10
Unit-4::Parallel Memory Models
11/07/2023 13
Unit-4::NUMA
11/07/2023 14
Unit-4::NUMA
11/07/2023 15
Unit-4::COMA
11/07/2023 17
Unit-4::Parallelism
Parallelism
Parallelism is an implementation property.
Parallelism is literally the simultaneous physical
execution of tasks at runtime, and it requires
hardware with multiple computing resources.
11/07/2023 18
Unit-4::Parallelism
11/07/2023 19
Unit-4::Parallelism
Parallel Computing
• Parallel computing uses multiple computer cores
to do several operations at once.
• Parallel architecture can break down a job into
its component parts and multi-task them.
• Parallel computer systems are well suited to
modeling and simulating real-world phenomena.
11/07/2023 20
Unit-4:: Examples
Advantages of Parallelism:
• Execute code more efficiently - save time and
money by sorting through “big data” faster than
ever.
• Compared to serial computing, parallel computing is
much better suited for modeling, simulating and
understanding complex, real-world phenomena.
11/07/2023 22
Unit-4::Parallelism-Advantages
Advantages of Parallelism:
• Throwing more resources at a task will shorten its time to
completion
• Parallel computers can be built from cheap, commodity
components.
• Many problems are so large and/or complex that it is
impractical or impossible to solve them on a single computer
can be done by using multiple computing resources.
• It has massive data storage and quick data computations.
11/07/2023 23
Unit-4::Parallelism-Disadvantages
11/07/2023 24
Unit-4::Parallelism-Disadvantages
• Various code tweaking ( changing the values of underlying
variables to coincide with desired results.) has to be performed
for different target architectures for improved performance.
• Better cooling technologies are required in case of clusters.
• Power consumption is huge by the multi-core architectures.
• Parallel solutions are harder to implement, to debug or prove
correct.
• communication and coordination overhead is more when coou
11/07/2023 25
Unit-4::Parallelism-Examples
• SMARTPHONES
• iPhone 5 has a 1.5 GHz dual-core processor.
• iPhone 11 has 6 cores.
• Samsung Galaxy Note 10 has 8 cores.
• . LAPTOPS AND DESKTOPS
• Intel Core™ i5 and Core i7 chips in the HP Spectre Folio
and HP EliteBook x360 each have 4 processing cores.
• The HP Z8 - the world’s most powerful workstation - packs
in 56-cores of computer power
( it perform real-time video editing in 8K video or run
complex 3D simulations.)
11/07/2023 26
Unit-4::Parallelism-Examples
• ILLIAC IV
- First “massively” parallel computer, built largely at
the University of Illinois.
- The machine was developed in the 1960s with help
from NASA and the U.S. Air Force.
- It had 64 processing elements capable of handling
131,072 bits at a time
11/07/2023 27
Unit-4::Parallelism-Examples
• SETI
-The Search for Extra terrestrial Intelligence (SETI)
- Monitors millions of frequencies all day and night.
- uses parallel computing through the Berkeley Open
Infrastructure
for Network Computing (BOINC) (Millions of people
donate unused computer time to process all those signals.)
• BITCOIN
- uses multiple computers to validate transactions.
11/07/2023 29
Unit-4::Parallelism-Examples
11/07/2023 30
Unit-4::Parallelism-Examples
• PYTHON
- A special multiprocessing module
- It uses “subprocesses” in place of threads. (Threads
share memory, while subprocesses use different
memory
• PARALLEL COMPUTING IN R
- a serial coding language for statistical and graphical
computing. The parallel package released in 2011
• PARALLEL COMPUTING TOOLBOX
- The Parallel Computing Toolbox from MathWorks
11/07/2023 31
Unit-4::Parallelism-Architecture
One machine with multiple processors, or lots of machines
cooperating in a network.
There are 3 distinct architectures.
•Shared memory : Parallel computers use multiple processors to
access the same memory resources. (modern laptops, desktops, and
smartphones)
•Distributed memory: Parallel computers use multiple processors,
each with their own memory, connected over a network. (cloud
computing, distributed rendering of computer graphics, and shared
resource systems like SETI ).
•Hybrid memory: parallel systems combine shared-memory
parallel computers and distributed memory networks.
11/07/2023 32
Unit-4::Parallelism-Architecture
• Quantum computers -
- will enhance parallel computations.
- It can do in 4 minutes what the most powerful
supercomputer on Earth would take 10,000 years to
accomplish
- 300-qubit quantum computer could do more
operations at once than the number of atoms in our
universe
11/07/2023 33
Unit-4::Parallelism-Types
• Data Parallelism
Data Parallelism means concurrent execution of the same task on
each multiple computing core.
•Let’s take an example, summing the contents of an array of size N.
For a single-core system, one thread would simply sum the elements
[0] . . . [N − 1].
•In Dual core the Thread A, running on core 0, could sum the
elements [0] . . . [N/2 − 1] and Thread B, running on core 1, could sum
the elements [N/2] . . . [N − 1].
(Two threads would be running in parallel on separate computing
cores.)
.
11/07/2023 34
Unit-4::Parallelism-Types
• Task Parallelism
• Task Parallelism means concurrent execution of the
different task on multiple computing cores.
In task parallelism might involve two threads, each
performing a unique statistical operation on the array of
elements.
The threads are operating in parallel on separate
computing cores, but each is performing a unique
operation.
11/07/2023 35
Unit-4::Parallelism-Types
• Bit-level parallelism
• Bit-level parallelism is a form of parallel
computing which is based on increasing
processor word size.
• Increasing the word size reduces the number of
instructions the processor must execute in order
to perform an operation on variables whose
sizes are greater than the length of the word.
11/07/2023 36
Unit-4::Parallelism-Types
• Bit-level parallelism
• Bit-level parallelism is a form of parallel computing which is based
on increasing processor word size.
• Increasing the word size reduces the number of instructions the
processor must execute in order to perform an operation on
variables whose sizes are greater than the length of the word.
• (E.g., consider a case where an 8-bit processor must add two 16-
bit integers. First the 8 lower-order bits from each integer were
must added by processor, then add the 8 higher-order bits, and
then two instructions to complete a single operation. A processor
with 16- bit would be able to complete the operation with single
instruction.
11/07/2023 37
Unit-4::Parallelism-Types
• Instruction-level parallelism
• Instruction-level parallelism means the simultaneous
execution of multiple instructions from a program.
Example
• for (i=1; i<=100; i= i+1)
• y[i] = y[i] + x[i];
• This is a parallel loop. Every iteration of the loop can
overlap with any other iteration, although within each
loop iteration there is little opportunity for overlap.
11/07/2023 38
The key differences between Data Parallelisms and Task
Parallelisms
Data Parallelisms Task Parallelisms
1. Same task are performed on different subsets of same 1. Different task are performed on the same or different
data. data.
3. As there is only one execution thread operating on all 3. As each processor will execute a different thread or
sets of data, so the speedup is more. process on the same or different set of data, so speedup is
less.
5. It is designed for optimum load balance on 5. Here, load balancing depends upon on the e
multiprocessor system. availability of the hardware and scheduling algorithms
like static and dynamic scheduling.
11/07/2023 39
Unit-4:: High Throughput Computing
• Flexibility: more flexible and can be used for many computing tasks related to
business analytics and scientific research.
• Reliability: mostly designed to provide high reliability and make sure that all tasks
run efficiently even if any one of the individual components fails.
•
• Resource Optimization: Proper resource allocation by ensuring that all the
resources that are available are efficiently used and accordingly increases the value
of computing resources that are available.
11/07/2023 42
Unit-4:: HTC- Exampls
11/07/2023 43
Unit-4:: HTC- Exampls
11/07/2023 47
Vector Instruction Format
11/07/2023 49
11/07/2023 50
Comparison Of General Processing vs
Vector Processing
11/07/2023 51
Basic Vector Architecture
11/07/2023 52
Application
•Multimedia Processing (compress., graphics, audio synth, image proc.)
•Cryptography (RSA, DES/IDEA, SHA/MD5)
•Speech and handwriting recognition
•Databases (hash/join, data mining, image/video serving)
•The following are some areas where vector processing is used:
1. Petroleum exploration.
2. Medical diagnosis.
3. Data analysis.
4. Weather forecasting.
5. Aerodynamics and space flight simulations.
6. Image processing.
7. Artificial intelligence.
11/07/2023 53
11/07/2023 54
Unit-4: Multithreading
11/07/2023 55
Types of Multithreading
11/07/2023 56
11/07/2023 57
11/07/2023 58
Multithreading vs. Multiprocessing
11/07/2023 59
Comparison of Multithreading
Multiprocessing
11/07/2023 60
Department of
Computer Science and Engineering
Thank You
School of Computing
Vel Tech Rangarajan Dr. Sagunthala R&D Institute of
11/07/2023 Science and Technology 61