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