Professional Documents
Culture Documents
High-Performance Computing
Philippe Esling.
Associate professor, UPMC
esling@ircam.fr
Listening to
your favorite
female singer
+ Preparing
your course
(Powerpoin
tception)
10 ms
10 ms
10 ms
10 ms
Sniffer
Sniffer
Checker
Sniffer
Checker
Computing
Sniffer
Checker
Computing
• Basic design
• Memory used to store program and data
• Program instructions are coded data
• Data is simply information to be used
• CPU gets instructions and/or data from
memory, decodes the instructions and
then sequentially performs them.
• Advantages
• User-friendly programming perspective to memory
• Data sharing between tasks is both fast and uniform (proximity)
• Disadvantages:
• Lack of scalability between memory and CPUs. Adding more CPUs can
geometrically increases traffic on the shared memory-CPU path.
• Mandatory synchronization constructs that insure "correct" access of
global memory. (cf. mutex, semaphore, conditions)
• Increasingly difficult and expensive to design
Writer thread
Reader thread
Writer thread
Reader thread
Scenography
Memory state
Page 42 Introduction to High Performance Computing
Threads Model : Critical region
2 huge problems with the threads model :
• Shared memory between threads
• Evaluation is completely non-deterministic
Give rise to the problem of memory coherence, known as the classical
writer / reader problem (also called producer / consumer)
Writing new word : “Portal”
Writer thread
Reader thread
Scenography
Memory state
Page 43 Introduction to High Performance Computing
Threads Model : Critical region
2 huge problems with the threads model :
• Shared memory between threads
• Evaluation is completely non-deterministic
Give rise to the problem of memory coherence, known as the classical
writer / reader problem (also called producer / consumer)
Writer thread P o r
Reader thread
Scenography
Memory state
Page 44 Introduction to High Performance Computing
Threads Model : Critical region
2 huge problems with the threads model :
• Shared memory between threads
• Evaluation is completely non-deterministic
Give rise to the problem of memory coherence, known as the classical
writer / reader problem (also called producer / consumer)
Context switch
Writer thread P o r
Reader thread
Memory state
Page 45 Introduction to High Performance Computing
Threads Model : Critical region
2 huge problems with the threads model :
• Shared memory between threads
• Evaluation is completely non-deterministic
Give rise to the problem of memory coherence, known as the classical
writer / reader problem (also called producer / consumer)
Writer thread P o r
Reader thread
Scenography Pornography
Memory state
Page 46 Introduction to High Performance Computing
n2
e programme précédent, que remarquez vous dans un top ? Utiliser les variables de condition de
Threads Model : Critical region
ur éviter ce gâchis de ressources.
Voie !
Voie !
feu2
feu1
Voie2 Voie2
in2 out2
ement, une voie de chemin de fer est réservée pour permettre aux trains de rouler dans un seul se
parallèle à la première réservée pour permettre aux trains de rouler dans le sens opposé. Ces d
sont indiquées dans le dessin ci-dessus par Voie1 et Voie2. Il arrive quelques fois, pour des r
les deux voies soient regroupées en une seule obligeant ainsi des trains roulant en sens opposés de
commune. Pour régler la circulation sur le tronçon à risque, les ingénieurs des chemins de fer dis
s Page
de dispositifs
47 pour contrôler le croisement des trains : Introduction to High Performance Computing
n2
e programme précédent, que remarquez vous dans un top ? Utiliser les variables de condition de
Threads Model : Critical region
ur éviter ce gâchis de ressources.
Voie !
Voie !
feu2
feu1
Voie2 Voie2
in2 out2
ement, une voie de chemin de fer est réservée pour permettre aux trains de rouler dans un seul se
parallèle à la première réservée pour permettre aux trains de rouler dans le sens opposé. Ces d
sont indiquées dans le dessin ci-dessus par Voie1 et Voie2. Il arrive quelques fois, pour des r
les deux voies soient regroupées en une seule obligeant ainsi des trains roulant en sens opposés de
commune. Pour régler la circulation sur le tronçon à risque, les ingénieurs des chemins de fer dis
s Page
de dispositifs
48 pour contrôler le croisement des trains : Introduction to High Performance Computing
n2
e programme précédent, que remarquez vous dans un top ? Utiliser les variables de condition de
Threads Model : Critical region
ur éviter ce gâchis de ressources.
Voie !
Voie !
feu2
feu1
Voie2 Voie2
in2 out2
ement, une voie de chemin de fer est réservée pour permettre aux trains de rouler dans un seul se
parallèle à la première réservée pour permettre aux trains de rouler dans le sens opposé. Ces d
sont indiquées dans le dessin ci-dessus par Voie1 et Voie2. Il arrive quelques fois, pour des r
les deux voies soient regroupées en une seule obligeant ainsi des trains roulant en sens opposés de
commune. Pour régler la circulation sur le tronçon à risque, les ingénieurs des chemins de fer dis
s Page
de dispositifs
49 pour contrôler le croisement des trains : Introduction to High Performance Computing
n2
e programme précédent, que remarquez vous dans un top ? Utiliser les variables de condition de
Threads Model : Critical region
ur éviter ce gâchis de ressources.
Voie !
Voie !
feu2
feu1
Voie2 Voie2
in2 out2
ement, une voie de chemin de fer est réservée pour permettre aux trains de rouler dans un seul se
parallèle à la première réservée pour permettre aux trains de rouler dans le sens opposé. Ces d
sont indiquées dans le dessin ci-dessus par Voie1 et Voie2. Il arrive quelques fois, pour des r
les deux voies soient regroupées en une seule obligeant ainsi des trains roulant en sens opposés de
commune. Pour régler la circulation sur le tronçon à risque, les ingénieurs des chemins de fer dis
s Page
de dispositifs
50 pour contrôler le croisement des trains : Introduction to High Performance Computing
Threads Model : Mutual exclusion
Four conditions to provide mutual exclusion
1. No two processes simultaneously in critical region (safety)
2. No assumptions made about speeds or numbers of CPUs
3. No process running outside critical region may block another
4. No process must wait forever to enter its critical region (liveness)
We avoid busy
waiting through
1. Sleep
2. Wakeup
(Conditions)
S2 Example:
L2
H2
H1 L1 U1 S1 T1 Thread 1
H2
H1 L1 U1 S1 T1
Thread 1
critical section for cnt Introduction to High Performance Computing
Page 56
Safe and Unsafe Trajectories
Thread 2
Def: A trajectory is safe
T2 Safe trajectory iff it doesn t enter any
part of an unsafe region
S2 Unsafe region Unsafe
Claim: A trajectory is
trajectory correct (wrt cnt) iff it is
U2 safe
L2
H2
Thread 1
H1 L1 U1 S1 T1
H2
1 1 0 0 0 0 1 1
• Use of a barrier
• (a) processes approaching a barrier
• (b) all processes but one blocked at barrier
• (c) last process arrives, all are let through
• Job Management
cancel Cancel job or task
destroy Remove job or task object from parent and memory
getAllOutputArguments Output arguments from evaluation of all tasks in job
submit Queue job in scheduler
wait Wait for job to finish or change states
• Actor statements
a ::= new x in a
tell c
if c1→a1 [] c2→a2
a1 | a2
a1 + a2
p(x)
• Procedure definitions
p(x) :- a
R/ R/
BR / AR /
R/
ABR /
O
AR /O BR /O
module ABRO
input A, B, R;
R/ R/ output O;
BR / AR /
loop
R/
[ await A || await B ];
ABR / emit O
O each R
AR /O BR /O
end module
• Non-parallelizable problem
• Calculation of the Fibonacci sequence entail dependent
calculations rather than independent ones.
• Calculation of the k + 2 value uses both k + 1 and k.
• Terms cannot be calculated independently and
task 1 task 2
------ ------
X = 2 X = 4
. .
. .
Y = X**2 Y = X**3
for j = 1:n
for i = 1:n
a(i,j) = fcn(i,j)
end
end
• A serial program :
•
where c is a constant