Seminaari: Hajautetut algoritmit syksy 2009 http://www.cs.helsinki.fi/u/josuomel/sem-2009s/ Jukka Suomela 10.9.2009
Seminaari: Hajautetut algoritmit syksy 2009 Seminaarin työmuodot 2 / 38
Aikataulu ja tiedottaminen Lue aikataulu ja ohjeet seminaarin verkkosivulta! http://www.cs.helsinki.fi/u/josuomel/sem-2009s/ I periodi: 2 tapaamista, 2 viikon tauko, 2 tapaamista II periodi: 6 tapaamista Laita kaikki päivämäärät kalenteriin saman tien (en aio spämmätä niistä jokaisesta erikseen) Aikarajat tiukkoja (hyväksyttävä syy sairaus tms.) 3 / 38
Esitelmistä Esiintyjä itse huolehtii, että tekniikka on kunnossa ja esitelmä saadaan alkamaan ajallaan! Tarkista kaikki etukäteen mieluiten sillä koneella ja tykillä, jota aiot käyttää Tule ajoissa paikalle Kysy ajoissa, jos jokin on epäselvää Harjoittele esitys; muuten on mahdoton arvioida, onko esitelmä sopivan pituinen 4 / 38
Ohjaus Sähköpostia saa laittaa mistä tahansa aiheesta: työmuodot, aikataulu ym. lähteiden ymmärtäminen lähteiden löytäminen luonnoksen tarjoaminen kommentoitavaksi tapaamisesta sopiminen... 5 / 38
Arvostelusta Arvosteluun vaikuttavat kaikki osasuoritukset: kirjoitelma esitelmä keskustelut vertaisarviointi kirjoitelman viimeistelty versio (palautteen vastaanottaminen!) Pääpaino kirjoitelmalla ja esitelmällä 6 / 38
Tavoitteet: esitelmä Pidä sellainen oppitunti, josta itse nauttisit! Esittele perusasiat erittäin huolella: mikä ongelma, mikä laskennan malli,... Pidä huolta, että kuulijat oppivat jotain uutta Yritä kertoa jotain siistiä: esim. hieno algoritminen kikka tai nerokas todistustekniikka Unohda tylsät matemaattiset detaljit, keskity oleelliseen, paljon kuvia ja kiva tarina 7 / 38
Tavoitteet: kirjoitelma Osoita, että olet tosissasi perehtynyt aihepiiriin! Kuten esitelmässäkin, esittele perusasiat erittäin huolella ja pidä huolta, että laiskakin lukija oppii jotain uutta Mutta yksityiskohdissa tulisi olla huomattavasti huolellisempi ja täsmällisempi: määritelmät, faktat, lähdeviitteet, todistukset,... Yllätä minut positiivisesti, näytä omaa ajattelua 8 / 38
Seminaarijärjestelyt Kysyttävää käytännön järjestelyistä? Parannusehdotuksia? Aina voi laittaa sähköpostia: jukka.suomela@cs.helsinki.fi 9 / 38
Seminaari: Hajautetut algoritmit syksy 2009 Johdantoa aihepiiriin 10 / 38
Johdantoa aihepiiriin Yksi keskeisiä hajautettuihin algoritmeihin liittyviä tutkimuskysymyksiä on vikasietoisuus A distributed system is one in which the failure of a computer you didn t even know existed can render your own computer unusable. L. Lamport (1987) Tällä kertaa kuitenkin unohdetaan vikasietoisuus ja katsotaan, mitä voidaan laskea ehjällä järjestelmällä 11 / 38
Johdantoa aihepiiriin Seminaarissa keskitytään lähinnä hajautettuihin algoritmeihin, jotka ratkaisevat verkko-ongelmia Mitä ovat verkko-ongelmat? Mitä tarkoittaa, että verkko-ongelman ratkaisemiseen on olemassa hajautettu algoritmi? 12 / 38
Verkko-ongelmat Syötteenä verkko G = (V, E) Etsittävä esim. solmujen joukko, kaarien joukko tai solmujen ositus, joka täyttää annetut ehdot Yleensä optimointiongelmia Osa NP-kovia ja osa ratkeaa polynomisessa ajassa Suurin osa toivottavasti tuttuja tietojenkäsittelytieteen tai matematiikan kursseilta 13 / 38
Esimerkkejä peitto-ongelmista Etsi annetusta verkosta G (pieni tai minimaalinen) solmupeite joka kaaresta ainakin yksi päätepiste dominoiva joukko jos solmu ei ole mukana, ainakin yksi sen naapuri on 14 / 38
Esimerkkejä pakkausongelmista Etsi annetusta verkosta G (suuri tai maksimaalinen) riippumaton joukko joka kaaresta enintään yksi päätepiste pariutus joka solmuun enintään yksi kaari 15 / 38
Esimerkkejä ositusongelmista Etsi annetusta verkosta G (pieni) väritys ositus riippumattomiin joukkoihin (suuri) domaattinen ositus ositus dominoiviin joukkoihin 16 / 38
Algoritmeja verkko-ongelmiin Perinteisesti tietojenkäsittelytieteessä verkko-ongelman ratkaiseva algoritmi tarkoittaa tätä: Syöteverkko G koodataan merkkijonoksi Merkkijono annetaan tietokoneelle Tietokone laskee aikansa ja tulostaa merkkijonon, johon on koodattu verkko-ongelman ratkaisu Verkko-ongelman ratkaiseva hajautettu algoritmi tarkoittaa jotain aivan muuta! 17 / 38
Hajautettujen algoritmien malli Tietokone... 18 / 38
Hajautettujen algoritmien malli Tietokone, jossa on tietoliikenneportteja... 1 2 3 4 5 19 / 38
Hajautettujen algoritmien malli Tietokone, jossa on tietoliikenneportteja ja näyttö Hello world 1 2 3 4 5 20 / 38
Hajautettujen algoritmien malli Kirjoitetaan tietokoneohjelma, laskennan lisäksi komentoja: Lähetä viesti m porttiin i Vastaanota viesti portista i Tulosta x ja lopeta 1 2 3 4 5 21 / 38
Hajautettujen algoritmien malli Vastustaja tekee n kloonia tästä tietokoneesta (kaikissa klooneissa sama ohjelma!)... 22 / 38
Hajautettujen algoritmien malli Vastustaja tekee n kloonia tästä tietokoneesta ja kytkee ne yhteen tietoliikenneverkoksi 1 2 3 4 5 1 2 3 4 5 23 / 38
Hajautettujen algoritmien malli Käynnistetään tietokoneet... 1 2 3 4 5 1 2 3 4 5 24 / 38
Hajautettujen algoritmien malli Käynnistetään tietokoneet ja katsotaan, mitä ne tulostavat ohjelman päätyttyä xyzzy foo bar baz 1 2 3 4 5 1 2 3 4 5 25 / 38
Hajautettujen algoritmien malli Tietoliikenneverkkoa vastaa matemaattinen verkko G G 26 / 38
Hajautettujen algoritmien malli Tietokoneiden tulosteet vastaavat esim. verkon G solmujen osajoukkoja kyllä kyllä G ei ei 1 2 3 4 5 1 2 3 4 5 27 / 38
Hajautettujen algoritmien malli... tai verkon G kaarien osajoukkoja portti 1 portti 2 G portit 1,2-1 2 3 4 5 1 2 3 4 5 28 / 38
Hajautettujen algoritmien malli Hajautettu algoritmi ratkaisee verkko-ongelman, jos se tuottaa oikean tulosteen kaikissa verkoissa kyllä kyllä G ei ei 1 2 3 4 5 1 2 3 4 5 29 / 38
Hajautettujen algoritmien malli Yhteenvetona: Kaikki tietokoneet suorittavat samaa ohjelmaa Ohjelmaan voi vaikuttaa, verkkoon ei Ohjelman toimittava missä tahansa verkossa Siis ohjelman olisi kiva toimia todellisessa, tämänhetkisessä Internetissä (eikä vain sellaisessa Internetissä, joka on ohjelmoijan mielestä mukava) 30 / 38
Hajautettujen algoritmien malli Yhteenvetona: Kaikki tietokoneet suorittavat samaa ohjelmaa Ohjelmaan voi vaikuttaa, verkkoon ei Ohjelman toimittava missä tahansa verkossa Verkko-ongelmissa (yleensä) hajautetun algoritmin syöte G on hajautettu järjestelmä itse! 31 / 38
Synkroniset algoritmit Keskitymme lähinnä synkronisiin hajautettuihin algoritmeihin: Kaikki verkon tietokoneet käynnistetään samaan aikaan Toimivat ikään kuin yhteisen kellopulssin tahdittamina 32 / 38
Synkroniset algoritmit Jokaisella kommunikointikierroksella kukin solmu 1. suorittaa paikallista laskentaa. 2. lähettää viestin kullekin naapurille 3. lukee samaansa viestit 33 / 38
Synkroniset algoritmit Synkronisuus helpottaa algoritmien suunnittelua, muttei kuitenkaan ole epärealistinen oletus: Usein itseasiassa algoritmisuunnittelun näkökulmasta pahin tapaus on juuri täysin synkroninen järjestelmä symmetriaa ei saa rikottua! Synkronista algoritmia voi aina simuloida asynkronisessa järjestelmässä (C2) 34 / 38
Hajautetun algoritmin tehokkuus Hajautetun algoritmin tehokkuus: Vähän kommunikointikierroksia Lisäksi mielellään pienikokoisia viestejä Yleensä aikavaativuus = synkronisten kommunikointikierrosten määrä Paikallinen laskenta on ilmaista, kiinnitetään huomiota nimenomaan verkkoliikenteeseen 35 / 38
Kaksi keskeistä haastetta Symmetrian rikkominen: Jos verkon alkutilanne on symmetrinen, kaikki tietokoneet identtisiä ja laskenta on determinististä, miten saadaan symmetria rikki? Rinnakkaisuus: Kaikkien koneiden pitäisi alkaa laskea heti; ei ole aikaa odotella, että laskentavuoro vähitellen etenee verkon laidalta toiselle 36 / 38
Kaksi keskeistä haastetta: lähestymistapoja Symmetrian rikkominen: Oletetaan lisätietoa, esim. yksilölliset tunnisteet Hyödynnetään satunnaisuutta Ehkä käsillä olevan ongelman ratkaiseminen ei vaadikaan symmetrian rikkomista! Rinnakkaisuus: Paljon erilaisia esimerkkejä tässä seminaarissa... 37 / 38
Seminaari: Hajautetut algoritmit syksy 2009 Tulevaa: esimerkkejä hajautetuista algoritmeista 38 / 38