Beruflich Dokumente
Kultur Dokumente
PROCESSING :
FUNDAMENTALS
Khushdeep Singh
Department of Computer Science and Engineering
IIT Kanpur
TUTOR : Prof. Dr. U. Rude, Florian Schornbaum
Overview
1. What is Parallel Processing ?
2. Why use Parallel Processing ?
Flynns Classical Taxonomy
Parallel Computer Memory Architectures
1. Shared Memory
2. Distributed Memory
3. Hybrid Distributed-Shared Memory
Parallel Programming Models
Designing Parallel Programs
Amdahls Law
Embarrassingly parallel
Summary
OUTLINE
Simultaneous use of
multiple resources to solve a
computational problem :
Shared Memory :
Ability for all processors to access all memory as global
address space
Changes in a memory location effected by one processor are
visible to all other processors
Shared memory machines can be divided into two main
classes based upon memory access times:
Uniform Memory Access (UMA)
Non-Uniform Memory Access (NUMA)
Parallel Architectures
Parallel Architectures
10
Parallel Architectures
11
Distributed Memory :
Processors have their own local memory
Change in a processors local memory have no effect on the
memory of other processors
Needs message passing
Explicit programming required
Parallel Architectures
12
Parallel Architectures
Shared vs Distributed memory :
Distributed Memory
Advantages
Disadvantages
Advantages
Disadvantages
Data sharing
between tasks is
fast
Expense with
increase in no. of
processors
Memory is
scalable with no.
of processors
Explicit
programming
required
User-friendly
programming
perspective to
memory
Programmer
responsible for
synchronization
No overhead
in cache
coherency
Message passing
involves overhead
Lack of scalability
Cost effectiveness
due to
Networking
Shared Memory
13
Parallel Architectures
Shared memory component : a cache coherent SMP machine
Distributed memory component : networking of multiple SMP
machines
14
15
16
17
18
19
20
21
22
23
Programmer Directed :
using "compiler directives" or flags, the programmer explicitly tells
the compiler how to parallelize the code
E.g. : OpenMP
24
Partitioning :
Breaking the problem into discrete "chunks" of work that can
be distributed to multiple tasks
Two basic ways to partition :
25
Partitioning :
Two basic ways to partition :
26
Load Balancing :
Practice of distributing work among tasks so that all tasks are
kept busy all of the time
Two types :
27
Granularity :
Qualitative measure of the ratio of
computation to communication
Fine-grain Parallelism : relatively small
28
Expected speedup of
parallelized
implementations of
an algorithm relative
to the serial
algorithm.
Eq. :
Speedup =
1
1 +/
Amdahls Law
29
Embarrassingly parallel
30
Applications of parallel
processing
31
Summary
32
References
Introduction to Parallel Computing :
https://computing.llnl.gov/tutorials/parallel_comp/#Hybrid
THANK YOU !
http://en.wikipedia.org
Introduction to Scientific High Performance Computing :
33