slides

advertisement
Complexiteit van Parallele Deadlock Detectie
Michiel Derhaeg
KULeuven
2017
1 / 20
Intro
I
Banker’s Algorithm: O(mn log n) ⇒ deadlock ∈ P
I
I
n = processen
m = resources
2 / 20
Intro
I
Banker’s Algorithm: O(mn log n) ⇒ deadlock ∈ P
I
I
I
n = processen
m = resources
Kunnen we beter doen? deadlock ∈ NC ?
2 / 20
Parallele Complexiteit
I
Nieuw computationeel model → PRAM
I
Waarom is P-Compleet belangrijk?
3 / 20
Parallele Random Access Machines
I
Definitie
(De klasse NC .) Voor elke d is de taal L in NC d als L beslist
wordt door een familie van circuits {Cn } waarbij Cn een grootte
heeft van O(nc ) en een diepte van O(logd n) met c en d
constantes. De klasse NC is ∪i≥1 NC i
I
Redeneren over algoritmes in termen van booleaanse circuits
is niet zo handig
4 / 20
Parallele Random Access Machines
Machine met onneindig aantal geheugen registers, allemaal
toegangelijk in constante tijd en een ondeindig aantal processoren.
I
Set lokale registers {R0 , R1 , ..}
I
Set gedeelde registers {C0 , C1 , ..}
I
Lijst met instructies
5 / 20
Parallele Random Access Machines
Instructie
α←α
IDENT
CONST c
ADD α
SUB α
MULT c
DIV c
GOTO i
IFZERO i
HALT
Address α
Ri
RRi
Ci
CRi
Beschrijving
beweeg data tussen registers
laad het processor ID in R0
laad de constante c in R0
tel de inhoud van α op bij R0
trek de inhoud van α af van R0
vermenigvuldig de inhoud van R0 met de constante c
deel de inhoud van R0 door de constante c
ga naar instructie i
ga naar instructie i als de inhoud van R0 gelijk is aan 0
stop de executie van de huidige processor
Beschrijving
lokaal register
lokaal register waarvan het address in Ri zit
gedeeld register
gedeeld register waarvan het address in Ri zit
6 / 20
Parallele Random Access Machines
I
Input x ∈ {0, 1}n → C1 , .., Cn
I
Inputlenghte n → C0
I
1 → C0 ⇐⇒ M beslist L en x ∈ L
Definitie
Stel M is een PRAM, M beslist of een bepaalde string x ∈ {0, 1}n
tot een taal L behoort in t(n) parallele tijd en p(n) processoren
als die voor elke input x ∈ {0, 1}n in hoogstens t(n) stappen
(maximum van alle processoren) en hoogstens p(n) processoren in
gebruik neemt.
M beslist L in sequentièˆle tijd t(n) als die het beslist in t(n)
parallele tijd met 1 processor.
7 / 20
Parallele Random Access Machines
Stelling
Een taal L wordt beslist door een logaritmisch space uniforme
booleaans circuit familie {Cn }∗ met een diepte van O(logc1 n) en
een grootte van O(nc2 ) als en slechts als het beslist wordt door een
PRAM M in O(logc3 n) parallele tijd en O(nc4 ) processoren.
8 / 20
Parallele Random Access Machines
Stelling
Een taal L wordt beslist door een logaritmisch space uniforme
booleaans circuit familie {Cn }∗ met een diepte van O(logc1 n) en
een grootte van O(nc2 ) als en slechts als het beslist wordt door een
PRAM M in O(logc3 n) parallele tijd en O(nc4 ) processoren.
Definitie
De klasse NC is de set van alle talen L die beslisbaar zijn in
O(logc1 n) parallele tijd en O(nc2 ) processoren.
8 / 20
P-Compleet
9 / 20
P-Compleet
Definitie
Een taal L is NC reduceerbaar naar L0 , geschreven als L ≤NC L0 ,
als en slechts als een een PRAM M bestaat die in logaritmisch
parallele tijd en met een polynomiaal aantal processoren de functie
f : {0, 1}∗ − > {0, 1}∗ berekent waarbij als en slechts als x ∈ L dan
f (x) ∈ L0 .
9 / 20
P-Compleet
Definitie
Een taal L is NC reduceerbaar naar L0 , geschreven als L ≤NC L0 ,
als en slechts als een een PRAM M bestaat die in logaritmisch
parallele tijd en met een polynomiaal aantal processoren de functie
f : {0, 1}∗ − > {0, 1}∗ berekent waarbij als en slechts als x ∈ L dan
f (x) ∈ L0 .
Definitie
Een taal is P-Compleet onder NC reducties als het in P zit en NC
reduceerbaar is naar elke andere taal in P.
9 / 20
P-Compleet
Definitie
Een taal L is NC reduceerbaar naar L0 , geschreven als L ≤NC L0 ,
als en slechts als een een PRAM M bestaat die in logaritmisch
parallele tijd en met een polynomiaal aantal processoren de functie
f : {0, 1}∗ − > {0, 1}∗ berekent waarbij als en slechts als x ∈ L dan
f (x) ∈ L0 .
Definitie
Een taal is P-Compleet onder NC reducties als het in P zit en NC
reduceerbaar is naar elke andere taal in P.
Definitie
Een taal is P-Compleet onder logspace reducties als het in P zit en
logspace reduceerbaar is naar elke andere taal in P.
9 / 20
P-Compleet
Definitie
Stel ≤ een reductie en C en complexiteitsklasse, de reductie ≤ is
compatibel met met C als slechts als voor alle talen L en L0 geldt
dat als L ≤ L0 en L0 ∈ C , dan L ∈ C .
10 / 20
P-Compleet
Definitie
Stel ≤ een reductie en C en complexiteitsklasse, de reductie ≤ is
compatibel met met C als slechts als voor alle talen L en L0 geldt
dat als L ≤ L0 en L0 ∈ C , dan L ∈ C .
Lemma
De logspace reductie ≤log is compatibel met NC .
10 / 20
P-Compleet
Definitie
Stel ≤ een reductie en C en complexiteitsklasse, de reductie ≤ is
compatibel met met C als slechts als voor alle talen L en L0 geldt
dat als L ≤ L0 en L0 ∈ C , dan L ∈ C .
Lemma
De logspace reductie ≤log is compatibel met NC .
Lemma
(Ladner) Het circuit value probleem zit in P-Compleet onder
logspace reducties.
10 / 20
Het deadlock probleem
11 / 20
Het deadlock probleem
Serially re-usable resource deadlock detection problem with
multi-unit resources
I
multi-unit vs. single-unit
I
serially re-usable vs. consumable
12 / 20
Resource allocatie graaf
Staat van het systeem op een bepaald moment
I
D = (V , E )
I
V =P ∪R
I
Resources: R = {r1 , .., rm }
I
Processen: P = {p1 , ..., pn }
I
Toekenningsboog:
{(ri , pj )|ri ∈ R, pj ∈ P} ⊂ E
I
Aanvraagsboog:
{(pi , jj )|ri ∈ R, pj ∈ P} ⊂ E
I
Eenheden per resource ri :
ui ≥ 1
13 / 20
Staat overgangen
I
Aanvraag
I
Aaanwerving
I
Vrijgeving
14 / 20
Het deadlock probleem: R.C. Holt
Definitie
Een process pi is geblokkeerd in een staat D wanneer pi uitgaande
aanvraagsbogen heeft waaran niet voldaan kan worden in D.
Definitie
Een resource allocatie graaf D kan worden gereduceerd door een
process pi , die niet geblokkeerd is, door alle bogen vertrekkend uit
en aankomend in pi te verwijderen.
Definitie
De resource allocatie graaf D noemen we irreduceerbaar als het
door geen enkel process kan worden gereduceerd.
Definitie
Een resource allocatie graaf D noemen we volledig reduceerbaar
als er en sequenctie van reducties bestaat waarmee alle bogen van
D verwijderd kunnen worden.
15 / 20
Het deadlock probleem: R.C. Holt
Stelling
Elke reeks van reducties van een resource allocatie graaf zorgen
voor dezelfde irreduceerbare graaf.
Stelling (Deadlock stelling)
De resource allocatie graaf D is in een staat van deadlock als en
slechts als D niet volledig reduceerbaar is.
16 / 20
Deadlock detectie is in P-Compleet
I
I
Circuit-value ≤log deadlock ⇒ deadlock ∈ P-Compleet
Circuit-value probleem volgens Ladner :
I
I
I
I
I
I
I
Booleaans circuit: B = (B0 , .., Bn )
literal: Bi = true of false
operatie: Bi = op(Bj , Bk ) met j, k < i, op is and of or
value(true) = true, value(false) = false
value(op(Bj , Bk )) = op(value(Bj ), value(Bk )).
value(B) = value(Bn )
Beslissingprobleem: is value(B) = true?
17 / 20
Deadlock detectie is in P-Compleet
Figure: Bi = false
18 / 20
Deadlock detectie is in P-Compleet
Figure: Bi = false
Figure: Bi = true
18 / 20
Deadlock detectie is in P-Compleet
Figure: Bi = Bj ∨ Bk
Figure: Bi = false
Figure: Bi = true
18 / 20
Deadlock detectie is in P-Compleet
Figure: Bi = Bj ∨ Bk
Figure: Bi = false
Figure: Bi = true
Figure: Bi = Bj ∧ Bk
18 / 20
Deadlock detectie is in P-Compleet
I
deadlock ∈ P-Compleet
I
P 6= NC ⇒ deadlock 6∈ NC
19 / 20
Het beperkt deadlock detectie probleem
Single-unit resources: ui = 1 voor elke resource ri
Stelling
(Holt) Een resource allocatie graaf met single-unit resources is een
deadlock staat als en slechts als het een cyclus heeft.
20 / 20
Het beperkt deadlock detectie probleem
Single-unit resources: ui = 1 voor elke resource ri
Stelling
(Holt) Een resource allocatie graaf met single-unit resources is een
deadlock staat als en slechts als het een cyclus heeft.
Stelling
Deadlock detectie voor single-unit resources is in NC .
20 / 20
Het beperkt deadlock detectie probleem
Single-unit resources: ui = 1 voor elke resource ri
Stelling
(Holt) Een resource allocatie graaf met single-unit resources is een
deadlock staat als en slechts als het een cyclus heeft.
Stelling
Deadlock detectie voor single-unit resources is in NC .
I
In O(log n) parallele tijd en O(n3 / log n) processoren niet
triviale sterke componenten zoeken
I
sterke component ⇒ cyclus
20 / 20
Download