Tehtävämigraatio heterogeenisissä hajautetuissa järjestelmissä
Mukkala, Lauri (2018-07-10)
Tehtävämigraatio heterogeenisissä hajautetuissa järjestelmissä
Mukkala, Lauri
(10.07.2018)
Tätä artikkelia/julkaisua ei ole tallennettu UTUPubiin. Julkaisun tiedoissa voi kuitenkin olla linkki toisaalle tallennettuun artikkeliin / julkaisuun.
Turun yliopisto
Tiivistelmä
Viimeisen vuosikymmenen aikana Internetistä on tullut tärkeä osa jokapäiväistä elämäämme. Internet on perinteisesti koostunut globaalisti toisiinsa kaapeleiden avulla linkittyneistä miljoonista yksittäisistä tietokoneista. Langattomien yhteyksien tultua suositummiksi, on Internetin luonne alkanut hiljalleen muuttua. Tällä hetkellä se, miten erilaisia laitteita voidaan yhdistää Internettiin, on suosittu ja tärkeä tutkimuskysymys. Uuden tyyppistä tietoverkkoa, jossa tietoverkko koostuu suuresta määrästä heterogeenisiä järjestelmiä, kutsutaan myös esineiden Internetiksi (Internet of Things, IoT). Heterogeenisyys vaikeuttaa kaikilla verkon laitteilla toimien sovellusten kehittämistä, koska eri laitteiden ominaisuudet, kuten esimerkiksi prosessoriarkkitehtuuri ja käyttöjärjestelmä, vaihtelevat suuresti. Eräs tapa ratkaista heterogeenisyyden ongelmia, on käyttää apuna virtualisointia. Tässä työssä virtualisointialustaksi valikoitui Docker.
Tässä diplomityössä pyritään etsimään vastauksia siihen, miten prosessorien suorittamia tehtäviä voidaan siirrellä heterogeenisiä järjestelmiä sisältävässä verkossa. Kyky siirrellä tehtäviä mahdollistaa sen, että tehtävien suorittamista ei ole rajoitettu yhteen laitteeseen, vaan tehtäviä voidaan siirrellä esimerkiksi laitteisiin kohdistuvan taakan perusteella verkossa. Tätä varten kehitettiin kaksi erilaista algoritmia. Ensimmäinen algoritmi kloonaa lähtöjärjestelmän kohdejärjestelmään pysäyttämällä ensin molemmat. Tämä on perinteisempi tapa siirtää tehtäviä. Sen hyötynä on, että kopiointivirheiden määrä pysyy vähäisenä, koska molemmat järjestelmät on suljettu siirron ajaksi. Huonona puolena puolestaan on, että tehtäviä ei pystytä suorittamaan siirron aikana. Toisessa algoritmissa molemmat järjestelmät ovat samaan aikaan päällä. Hyötynä on, että tehtäviä voidaan suorittaa koko siirron ajan, mutta heikkoutena on se, että kopiointivirheitä saattaa tulla.
Tehdyissä testeissä voitiin todeta, että toinen algoritmi on nopeampi kuin perinteinen tapa siirtää tehtäviä. Tämän kaltainen algoritmi sopii tilanteisiin, jossa pieni suoritusaika on tärkeämpi kuin siirtotarkkuus. Perinteinen algoritmi puolestaan sopii tilanteisiin, jossa tarkkuus on tärkeämpää. Se, kumman tyyppistä algoritmia käytetään, kannattaakin siis valita tilanteen mukaan. Eräs tulevaisuuden tutkimussuunta saattaa olla lohkoketjuihin perustuvat menetelmät. Niissä tehtävä jaetaan pieniin osiin ja osaset hajautetaan usean suoritusyksikön suoritettavaksi.
Tässä diplomityössä pyritään etsimään vastauksia siihen, miten prosessorien suorittamia tehtäviä voidaan siirrellä heterogeenisiä järjestelmiä sisältävässä verkossa. Kyky siirrellä tehtäviä mahdollistaa sen, että tehtävien suorittamista ei ole rajoitettu yhteen laitteeseen, vaan tehtäviä voidaan siirrellä esimerkiksi laitteisiin kohdistuvan taakan perusteella verkossa. Tätä varten kehitettiin kaksi erilaista algoritmia. Ensimmäinen algoritmi kloonaa lähtöjärjestelmän kohdejärjestelmään pysäyttämällä ensin molemmat. Tämä on perinteisempi tapa siirtää tehtäviä. Sen hyötynä on, että kopiointivirheiden määrä pysyy vähäisenä, koska molemmat järjestelmät on suljettu siirron ajaksi. Huonona puolena puolestaan on, että tehtäviä ei pystytä suorittamaan siirron aikana. Toisessa algoritmissa molemmat järjestelmät ovat samaan aikaan päällä. Hyötynä on, että tehtäviä voidaan suorittaa koko siirron ajan, mutta heikkoutena on se, että kopiointivirheitä saattaa tulla.
Tehdyissä testeissä voitiin todeta, että toinen algoritmi on nopeampi kuin perinteinen tapa siirtää tehtäviä. Tämän kaltainen algoritmi sopii tilanteisiin, jossa pieni suoritusaika on tärkeämpi kuin siirtotarkkuus. Perinteinen algoritmi puolestaan sopii tilanteisiin, jossa tarkkuus on tärkeämpää. Se, kumman tyyppistä algoritmia käytetään, kannattaakin siis valita tilanteen mukaan. Eräs tulevaisuuden tutkimussuunta saattaa olla lohkoketjuihin perustuvat menetelmät. Niissä tehtävä jaetaan pieniin osiin ja osaset hajautetaan usean suoritusyksikön suoritettavaksi.