Stabilointi. Marja Hassinen. p.1/48

Samankaltaiset tiedostot
Stabilointi. arvosana. arvostelija. Marja Hassinen

Stabiloivat synkronoijat ja nimeäminen

Itsestabilointi: perusmääritelmiä ja klassisia tuloksia

Stabiloivat synkronoijat ja nimeäminen

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007

Hajautetut algoritmit. seminaari syksyllä 2007 vastuuhenkilö Jyrki Kivinen toinen vetäjä Timo Karvi

Yleinen paikallinen vakautuva synkronointialgoritmi

Algoritmit 2. Luento 6 To Timo Männikkö

Paikallinen stabilointi

Harjoitus 6 ( )

Datatähti 2019 loppu

Algoritmit 1. Luento 7 Ti Timo Männikkö

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

Algoritmit 2. Luento 2 Ke Timo Männikkö

Algoritmit 2. Luento 2 To Timo Männikkö

Luku 8. Aluekyselyt. 8.1 Summataulukko

Algoritmit 2. Luento 4 To Timo Männikkö

7.4 Sormenjälkitekniikka

811312A Tietorakenteet ja algoritmit, , Harjoitus 6, Ratkaisu

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari

Algoritmit 2. Luento 6 Ke Timo Männikkö

v 1 v 2 v 3 v 4 d lapsisolmua d 1 avainta lapsen v i alipuun avaimet k i 1 ja k i k 0 =, k d = Sisäsolmuissa vähint. yksi avain vähint.

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta

Jaetun muistin muuntaminen viestinvälitykseksi

Verkon värittämistä hajautetuilla algoritmeilla

Harjoitus 6 ( )

Algoritmit 1. Luento 6 Ke Timo Männikkö

Kohdissa 2 ja 3 jos lukujen valintaan on useita vaihtoehtoja, valitaan sellaiset luvut, jotka ovat mahdollisimman lähellä listan alkua.

811312A Tietorakenteet ja algoritmit, , Harjoitus 7, ratkaisu

Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia

Seminaari: Hajautetut algoritmit syksy 2009

58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko,

811312A Tietorakenteet ja algoritmit, , Harjoitus 6, Ratkaisu

58131 Tietorakenteet ja algoritmit Uusinta- ja erilliskoe ratkaisuja (Jyrki Kivinen)

Algoritmit 1. Luento 8 Ke Timo Männikkö

58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 2, , vastauksia

3.4 Peruutus (backtracking)

Itsestabiloivabysanttilainen yhteisymmärrys. Timo Virkkala

V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen

Algoritmit 2. Luento 4 Ke Timo Männikkö

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

Algoritmit 2. Luento 12 To Timo Männikkö

Algoritmit 2. Luento 7 Ti Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö

Tietorakenteet, laskuharjoitus 7, ratkaisuja

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu

(a) L on listan tunnussolmu, joten se ei voi olla null. Algoritmi lisäämiselle loppuun:

Miten käydä läpi puun alkiot (traversal)?

v 8 v 9 v 5 C v 3 v 4

Algoritmi on periaatteellisella tasolla seuraava:

Algoritmit 2. Luento 11 Ti Timo Männikkö

Silmukkaoptimoinnista

Itsestabilointi: perusmääritelmiä ja klassisia tuloksia

Konsensusongelma hajautetuissa järjestelmissä

13 Lyhimmät painotetut polut

Teknillinen korkeakoulu T Tietojenkäsittelyopin ohjelmatyö. Testitapaukset - Koordinaattieditori

Johdatus graafiteoriaan

S BAB ABA A aas bba B bbs c

Hiha- ja sormilyönnin ydinkohdat Must do -asiat valmentajien tueksi! Tuulevi Piesanen/Lännen alue

Algoritmit 2. Luento 9 Ti Timo Männikkö

Malliratkaisut Demot

Algoritmit 2. Luento 10 To Timo Männikkö

Hakupuut. tässä luvussa tarkastelemme puita tiedon tallennusrakenteina

58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen)

Algoritmit 2. Luento 14 Ke Timo Männikkö

Tieteellinen laskenta 2 Törmäykset

Algoritmit 1. Luento 13 Ti Timo Männikkö

A* Reitinhaku Aloittelijoille

Algoritmit 1. Luento 10 Ke Timo Männikkö

Algoritmit 2. Luento 12 Ke Timo Männikkö

Algoritmit 1. Luento 10 Ke Timo Männikkö

Algoritmit 2. Luento 5 Ti Timo Männikkö

Paperiton näyttösuunnitelma

33. pohjoismainen matematiikkakilpailu 2019 Ratkaisut

verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari

Oppilaan opas. Visuaaliviestinnän Instituutti VVI Oy. Versio 0.2 ( )

Luentorunko keskiviikolle Hierarkkinen ryvästäminen

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

Algoritmit 1. Luento 13 Ma Timo Männikkö

Rinnakkaistietokoneet luento S

Malliratkaisut Demot

T Luonnollisen kielen tilastollinen käsittely Vastaukset 8, ti , 8:30-10:00 Tilastolliset yhteydettömät kieliopit, Versio 1.

Graafin 3-värittyvyyden tutkinta T Graafiteoria, projektityö (eksakti algoritmi), kevät 2005

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

Algoritmit 2. Luento 13 Ti Timo Männikkö

Toiminnallinen määrittely versio 1.2

BL40A1711 Johdanto digitaaleketroniikkaan: Sekvenssilogiikka, pitopiirit ja kiikut

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen)

Tarkennamme geneeristä painamiskorotusalgoritmia

Harjoitus 3 ( )

11. Javan toistorakenteet 11.1

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia

Ohjelmistojen mallintaminen, sekvenssikaaviot

isomeerejä yhteensä yhdeksän kappaletta.

7. Satunnaisalgoritmit (randomized algorithms)

Transkriptio:

Stabilointi Marja Hassinen marja.hassinen@cs.helsinki.fi p.1/48

Kertausta ja käsitteitä Sisältö Stabilointi Resynkroninen stabilointi Yleinen stabilointi Tarkkailu Alustus Kysymyksiä / kommentteja saa esittää esityksen aikana! p.2/48

Kertausta Kierros (round): Jokainen prosessori suorittaa vähintään yhden askelen. Sykli (cycle): Jokainen prosessori suorittaa silmukkansa vähintään kerran. Toipumiskykyisyys (self-stabilization): Algoritmi päätyy sallittuun tilaan, vaikka suoritus alkaa mielivaltaisesta alkutilasta. Reilu koostaminen (fair composition): Toipumiskykyisen algoritmin käyttäminen toisen toipumiskykyisen algoritmin osana. p.3/48

Stabilointi Stabilointi: Annetun algoritmin muuntaminen toipumiskykyiseksi. Koska stabilointi on mahdollista, toipumiskykyisten ja ei-toipumiskykyisten algoritmien välillä ei ole periaatteellista eroa. Aikaisemmin esitettyjen muunnosten takia voidaan tarkastella synkronisia tai asynkronisia järjestelmiä, viestinvälitykseen tai jaettuun muistiin perustuvia järjestelmiä jne. p.4/48

Resynkroninen stabilointi (1) Tarkastellaan synkronista järjestelmää ja algoritmia A, jonka suoritus kestää korkeintaan t askelta. Tallennetaan jokaisen prosessorin Pi yhteyteen taulukko sen tiloista algoritmin A suorituksen aikana. Tallennettavat tilat ovat Ti,0,T i,1,...,t i,t. Prosessorin Pi seuraava tila T i,k+1 riippuu nykyisestä tilasta T i,k ja naapuriprosessorien P j nykyisistä tiloista T j,k. p.5/48

Resynkroninen stabilointi (2) Jokaisen prosessorin Pi algoritmi: Lue naapureiden tilataulukot. Laske kaikki omat tilat uudelleen. Siis ensin algoritmin alkutila tallennetaan tilaksi T i,0, Sen jälkeen tila T i,1 lasketaan tilan T i,0 ja naapurien tilojen T j,0 avulla jne. p.6/48

Resynkroninen stabilointi (3) Ensimmäisen virheettömän syklin aikana jokainen prosessori P i tallentaa ainakin alkutilansa T i,0 oikein. Toisen syklin aikana jokainen prosessori Pi laskee tilan T i,1 oikein, sillä oma alkutila ja naapurien alkutilat on laskettu oikein. t syklin jälkeen kaikki tilat on laskettu oikein. Vaikka prosessorit laskevat tilansa uudelleen, oikein lasketut tilat eivät muutu. p.7/48

Esimerkki???? A??? A D?????????? B??? C??? B??? C??? p.8/48

Resynkroninen stabilointi (4) Resynkronisen stabiloinnin ongelmia: Vie epäkäytännöllisen paljon muistia. Ei sovellu satunnaisalgoritmeille. Ei sovellu sellaisten algoritmien stabilointiin, joiden tuloste ei ole kiinteä (esim. keskinäinen poissulkeminen: ei erityistä tulostetta, tavoitteena järjestelmän oikeellinen toiminta). Resynkroninen stabilointi osoittaa kuitenkin, että stabilointi on mahdollista eikä toipumiskykyisten ja ei-toipumiskykyisten algoritmien välillä ole periaatteellista eroa. p.9/48

Yleinen stabilointi Tarkkailu: Havainnoidaan, tapahtuuko virheitä. Alustus: Jos virhe havaitaan, palautetaan järjestelmä sallittuun alkutilaan. Tarkkailun ja alustuksen lomittaminen epätriviaalia: esim. on pidettävä huolta siitä, että alustus suoritetaan loppuun ennen kuin uusia käynnistetään. Seuraavaksi esitetään tarkkailualgoritmi ja alustusalgoritmi. p.10/48

Tarkkailu: Kuvanottoalgoritmi (1) Kootaan yhdelle prosessorille kuva järjestelmän hetkellisestä tilanteesta. Tilannekuvan perusteella prosessori tarkastaa, onko järjestelmä sallitussa tilassa. Kuvan ottaminen ei keskeytä varsinaista laskentaa vaan suoritetaan sen lomassa. Suoritus: Valitaan johtaja toipumiskykyisen johtajanvalinta-algoritmin avulla. Tarvittavat muuttujat alustetaan myöhemmin esitettävän alustusalgoritmin avulla.... jatkuu p.11/48

Tarkkailu: Kuvanottoalgoritmi (2) Johtajan algoritmi: Tallenna oma tila. Lähetä merkkiä kaikille naapureille. Muiden prosessorien algoritmi: Kun saat merkin, tallenna oma tila. Lähetä merkkiä kaikille naapureille P j. Tallenna naapurilta P j tulevat viestit kunnes saat siltä merkin. Kun kaikki naapurit ovat lähettäneet merkin, lähetä tiedot johtajalle. p.12/48

Esimerkki Ajanhetki: 1 merkki A P i X P j Kuva: p.13/48

Esimerkki Ajanhetki: 1 A P i merkki X P j Kuva: A P i p.14/48

Esimerkki Ajanhetki: 2 A P i viesti merkki Y P j Kuva: A P i p.15/48

Esimerkki Ajanhetki: 3 B P i viesti merkki Y P j Kuva: A viesti P i p.16/48

Esimerkki Ajanhetki: 4 B P i merkki Y P j Kuva: A viesti Y P j P i p.17/48

Tarkkailu: Kuvanottoalgoritmi (3) Prosessorien tilat tallennetaan eri ajanhetkinä. Algoritmi johtaa kuitenkin järkevään kokonaiskuvaan, koska myös viestejä tallennetaan. Jos prosessorin Pi tila tallennetaan ennen sen naapurin P j tilaa, niin P i tallentaa P j :n lähettämät viestit. Vaikka prosessorin Pi tila ehtii vaihtua, voidaan kuvitella, ettei prosessori P i olisi saanut suoritusvuoroa eikä siis vaihtanut tilaansa. Silloin prosessorin P j lähettämät viestit olisivat viipyneet viestikanavassa eikä prosessori P i olisi saanut niitä. p.18/48

Tarkkailu: Kuvanottoalgoritmi (4) Se, miten virheet havaitaan tilannekuvasta, riippuu stabiloitavasta algoritmista. On esimerkiksi pystyttävä erottamaan virhetilanne sellaisesta tilanteesta, jossa algoritmi toimii oikein mutta tuloksen laskenta on vielä kesken. Joissain tapauksissa voidaan ottaa paikallisia kuvia ja havaita virheet niistä. Silloin ei tarvitse koota koko tilannekuvaa yhdelle prosessorille. p.19/48

Esimerkki (1) Tarkastellaan seuraavaa algoritmia, joka laskee etäisyydet kohdeprosessorista P 0. Jokaisella prosessorilla P i on muuttuja d i, jossa on nykyinen käsitys etäisyydestä. Prosessorin P0 algoritmi: Aseta d 0 = 0 ja lähetä tieto siitä naapureille. Muiden prosessorien Pi algoritmi: Tallenna d i =. Kun saat naapurilta P j viestinä arvon d j : Jos d j + 1 < d i, aseta d i = d j + 1 ja lähetä d i viestinä muille naapureille. Muuten älä tee mitään. p.20/48

Esimerkki (2) Esimerkkialgoritmi ei ole toipumiskykyinen. Esim. jos jonkin prosessorin d-muuttujaan on tallennettu arvo 0 vaikkei prosessori ole kohdeprosessori, niin sitä ei saada korjatuksi. Virhetilanteet voidaan kuitenkin havaita tarkastelemalla tilannekuvaa prosessorien tiloista ja matkalla oleviesta viesteistä. p.21/48

Esimerkki (3) Esimerkki algoritmin oikeasta suorituksesta: d = 0 d = Inf d = Inf d = Inf p.22/48

Esimerkki (3) Esimerkki algoritmin oikeasta suorituksesta: d = 0 d = 1 d = 1 d = Inf p.23/48

Esimerkki (3) Esimerkki algoritmin oikeasta suorituksesta: d = 0 d = 1 d = 1 d = 2 p.24/48

Esimerkki (4) Esimerkkejä virhetilanteista: d = 0 d = Inf d = 3 d = Inf p.25/48

Esimerkki (5) Esimerkkejä virhetilanteista: d = 0 d = 1 d = 1 d = Inf p.26/48

Esimerkki (6) Esimerkkejä virhetilanteista: d = 0 d = 1 d = 0 d = 2 p.27/48

Alustusalgoritmi (1) Pohjana puun toistuva väritys-algoritmi (käsitelty β-synkronoinnin yhteydessä). Muodostetaan virittävä puu toipumiskykyisen algoritmin avulla. Jokaisella prosessorilla on tieto omasta väristään. Väri on kokonaisluku väliltä [0, 5n 4], n = prosessorien määrä. Jokaiseen kommunikointikanavaan (lapsen Pi ja vanhemman P j välillä) liittyvät muuttujat: color j,i : Vanhempi kertoo lapselleen värinsä color i,j : Lapsi kertoo vanhemmalleen alipuunsa värin p.28/48

Alustusalgoritmi (2) Juuren Pj algoritmi: Jos kaikki lapset kertovat, että niiden alipuut on väritetty juuren värillä, vaihda väri. Uusi väri = vanha väri +1 mod (5n 3) Kerro oma väri lapsille P i (kirjoita color j,i ). Muiden prosessorien Pi algoritmi: Jos vanhempi on eri värinen kuin itse, vaihda oma väri vanhemman väriksi. Jos kaikki lapset kertovat, että niiden alipuut on väritetty nykyisellä värillä, kerro se eteenpäin vanhemmalle P j (kirjoita color i,j ) Kerro oma väri lapsille. p.29/48

Esimerkki p.30/48

Esimerkki p.31/48

Esimerkki p.32/48

Esimerkki p.33/48

Esimerkki p.34/48

Esimerkki p.35/48

Esimerkki p.36/48

Esimerkki p.37/48

Esimerkki p.38/48

Alustusalgoritmi (3) Tarkastellaan yleisempää tapausta: Mikä tahansa prosessori voi pyytää alustusta, jos se huomaa virheen. (Siis ei vain edellä kuvatun virheentarkastusalgoritmin johtaja.) Jos alustus ei ole käynnissä, jokainen prosessori suorittaa virheentarkastusalgoritmin ennen kuin se raportoi alipuunsa värin vanhemmalleen. Puussa ylöspäin kulkevaan tietoon liitetään tieto siitä, onko alustuspyyntö voimassa vai ei. Puussa alaspäin kulkevaan tietoon liitetään tieto siitä, onko alustus käynnissä vai ei. p.39/48

Alustusalgoritmi (4) Alustus tapahtuu siis näin: Jokin solmu huomaa virheen ja tekee alustuspyynnön. Pyyntö kulkee puussa ylöspäin samalla kun solmu kertoo vanhemmalleen että sen alipuu on väritetty. Juuri saa alustuspyynnön ja käynnistää alustuksen. Tieto alustuksesta kulkee alaspäin puussa samalla kun solmu kertoo oman värinsä lapsilleen. p.40/48

Alustusalgoritmi (5) Alustus tapahtuu siis näin (jatkuu): Kun alustus on käynnissä, mikään prosessori ei suorita virheentarkastusalgoritmia eikä pyydä uutta alustusta. Kun tietoa seuraavan kerran välitetään puussa ylöspäin, mukana ei kulje alustuspyyntöjä. Kun juuri vaihtaa väriään, se totetaa alustuksen loppuneeksi. Tieto alustuksen loppumisesta kulkee puussa alaspäin. p.41/48

Esimerkki pyyntö p.42/48

Esimerkki alustus p.43/48

Esimerkki ei pyyntöä p.44/48

Esimerkki ei alustusta p.45/48

Toipumiskykyisyys (1) Reilu koostaminen: kun osatehtäviä suorittavat algoritmit (esim. virittävän puun muodostus, toistuva väritys) ovat toipuneet virheistä, voi itse stabilointialgoritmin toipuminen alkaa. Aluksi virheentarkkailualgoritmi voi olla mielivaltaisessa tilassa (esim. ilmoittaa olemattomista virheistä). Kun virheidentarkkailualgoritmi on toipunut, voi alustusalgoritmi alkaa toipua. p.46/48

Toipumiskykyisyys (2) Kun alustusalgoritmi on toipunut, varsinainen stabiloitava algoritmi voi olla mielivaltaisessa tilassa. Virheet kuitenkin havaitaan ja algoritmi palautetaan tarvittaessa sallittuun alkutilaan. p.47/48

Yhteenveto (1) Algoritmi voidaan muuntaa toipumiskykyiseksi stabiloinnin avulla. Resynkronisessa stabiloinnissa prosessorit tallentavat kaikki algoritmin suorituksen aikana esiintyvät tilansa ja laskevat niitä uudelleen. Yleinen stabilointi suoritetaan tarkkailu- ja alustusalgoritmien avulla. Tarkkailualgoritmi havaitsee, jos algoritmi on virheellisessä tilassa. Se, miten virheet havaitaan, riippuu stabiloitavasta algoritmista. Alustusalgoritmi palauttaa järjestelmän sallittuun alkutilaan. p.48/48

Yhteenveto (2) On varmistettava, että alustus suoritetaan loppuun ennen uusien virheiden havaitsemista ja uusien alustusten pyytämistä. Kysyttävää, kommentteja? p.49/48