Tietotekniikan laitos
cs.aalto.fi
Tietokoneet ovat vieneet ihmiskunnan pidemmälle kuin niiden varhaiset kehittäjät olisivat voineet ikinä kuvitella. Tulevaisuudessa ne voivat kenties tuottaa vastauksia, joihin nykypäivän sukupolvet eivät osaa vielä edes keksiä kysymyksiä. Mitkä näiden ihmeellisten koneiden rajat ovat? Onko niitä? Entä miten saamme niistä maksimaalisen tehon irti?
Professori Jukka Suomela tutkii ryhmänsä kanssa näitä kysymyksiä Aalto-yliopiston tietotekniikan laitoksella. Eräässä tutkimusprojektissa ryhmän tavoite on automatisoida heidän oma työnsä.
Juttelimme Suomelan kanssa tietokoneista, algoritmeista, vaikeista kysymyksistä ja suunnitelmasta automatisoida tieteen tekeminen.
Älypuhelimet voivat nykyään tehdä asioita, joihin edes supertietokoneet eivät kyenneet vain muutama vuosikymmen sitten. Tämä johtuu edistyksestä kahdella rintamalla – laitteistossa sekä ohjelmistoissa. Laitteisto muuttuu nopeammaksi koko ajan – nykyään tietokoneet voivat tehdä tuhansia miljardeja laskutoimituksia sekunnissa. Tietotekniikan tutkijat kehittävät myös yhä nerokkaampia algoritmeja monenlaisten ongelmien ratkaisemiseksi. Uusien algoritmien ansiosta vanhemmatkin tietokoneet voivat nyt tehdä enemmän kuin koskaan ennen.
Tämä kehityksen yhdistelmä on tuonut DNA-sekvensoinnin, internetin hakukoneet, reaaliaikaisen 3D-grafiikan ja puheentunnistuksen tieteisfiktiosta osaksi meidän arkeamme.
Tutkin, mitä asioita voi laskea tehokkaasti. Tutkimukseni liittyy algoritmeihin, logiikkaan ja laskennan vaativuuteen. Yhteiskuntamme ovat vahvasti riippuvaisia nopeista tietokoneista ja tietoliikenneverkoista. Kaiken tämän perustana on selkeä ymmärrys siitä, mitä tietokoneilla voi tehdä tehokkaasti ja mitä ei. Ohjelmistoissa ja laitteistoissa on tiettyjä fundamentaalisia rajoitteita, joita ei arjessa välttämättä huomaa, mutta jotka vaikuttavat meihin nyt ja erityisesti tulevaisuudessa.
Laitteistoja rajoittavat fysiikan lait, kuten valonnopeus internetissä. Jos lähetät viestin Suomesta Uuteen-Seelantiin ja haluat vastauksen sille, tulee viestissä kestämään aina vähintään sata millisekuntia. Ohjelmistolla on myös omat rajoitteensa, mutta ne eivät seuraa fysiikasta, vaan laskennan matemaattisista laeista.
Tutkimusryhmäni työskentelee näiden lakien kanssa, koska me haluamme ymmärtää kaikenlaisten tietokoneiden mahdollisuuksia sekä rajoituksia. Keskitymme pääasiassa tietojenkäsittelytieteen teoreettiseen puoleen sekä hajautettuun ja rinnakkaislaskentaan.
Rinnakkaislaskennalla viitataan siis tilanteeseen, jossa meillä on monta prosessoria työstämässä annettua ongelmaa. Tutkimme kysymyksiä, kuten mitä laskennallisia ongelmia voidaan ratkaista tehokkaasti rinnakkaisjärjestelmillä. Esimerkiksi jos yhdellä prosessorilla menee tuhat vuotta ratkaista ongelma, niin voimmeko ratkaista tuhannella prosessorilla ongelman vuodessa?
Hajautettua laskentaa voi ajatella tietoverkkona, joka haluaa ratkaista jonkin ongelman yhdessä. Olemme tutkineet muun muassa ongelmaa, jossa haluamme värittää verkon siten, että kaikki naapurisolut ovat eri värisiä. Tämä on verrattavissa lennonjohtajana työskentelyyn ja sen varmistamiseen, että kaikilla ilma-aluksilla on tarpeeksi tilaa ja aikaa tietyssä ilmatilassa, eivätkä ne törmää toisiinsa.
Tiedämme, että monet tehtävät ovat vanhoillekin tietokoneille helppoja, koska olemme kehittäneet tehokkaita algoritmeja ratkaisemaan niitä. Joidenkin tehtävien laskennallinen vaikeus on taas avoin kysymys – emme tiedä, onko niiden ratkaisemiseksi olemassa parempi algoritmi.
Tiedämme myös, että monet tehtävät ovat laskennallisesti erittäin vaikeita. On matemaattinen fakta, että emme pysty ratkaisemaan näitä tehtäviä nopeasti tietokoneella, siitä riippumatta, minkälaisia ohjelmistoja käytämme.
Samalla, kun kehitämme tehokkaampia algoritmeja ongelmien ratkaisemiseksi, ymmärrämme tietokoneiden rajoja yhä paremmin. Aina on jotain, mitä tietokoneet eivät pysty tekemään. Eivät edes parhaimmat supertietokoneemme.
Monet niistä liittyvät omaan alaani eli tietojenkäsittelytieteeseen ja laskentaan. Algoritmien suunnittelu, tietokoneohjelmien kirjoittaminen ja näiden ohjelmien vianmääritys ovat kaikki haastavia tehtäviä ihmiselle. On huomattu, että ne ovat myös vaikeita tehtäviä tietokoneille. Esimerkiksi minun tutkimusryhmäni tutkii mahdollisuutta käyttää tietokoneita itse tietojenkäsittelytieteen tutkimuksessa. Yritämme siis käytännössä tehdä itsestämme työttömiä.
On erittäin vaikeaa varmistaa, toimiiko annettu algoritmi oikein – matemaattisesti ottaen emme pysty kirjoittamaan tietokoneohjelmaa, joka ratkaisee tämän tehtävän aina. Parhaimmillaankin voimme toivoa sen onnistuvan vain joissakin tapauksissa. Tutkimusryhmämme tähtää kuitenkin pidemmälle – emme halua pelkästään varmistaa olemassa olevaa algoritmia, vaan pyrimme saada tietokoneet tuottamaan uusia algoritmeja automatisoidusti!
Tietokoneita on yritetty saada luomaan tietokoneohjelmia jo vuosikymmeniä, tällöin puhutaan algoritmisynteesistä. Vasta hiljattain tällaista synteesiä on onnistuttu tekemään ongelmissa, jotka ovat tieteellisesti mielekkäitä. Olemme yksiä harvoja tutkimusryhmiä, jotka ovat onnistuneet luomaan mielekkäitä algoritmisynteesejä hajautetun laskennan ja rinnakkaislaskennan aloilla.
ChatGPT:n kaltaisia generatiivisen tekoälyn työkaluja voi käyttää soveltamaan ja yhdistämään opetusdatassa esiintyviä, ennestään tunnettuja algoritmi-ideoita, mutta meidän työssämme on kyse jostain täysin muusta. Me pyydämme tietokoneita löytämään aivan uusia algoritmeja, ilman minkäänlaista opetusdataa.
Olemme esimerkiksi työstäneet algoritmeja, jotka synkronisoivat tietokoneiden kellot siten, että kaikki tietokoneet voivat sopia keskenään, että minkä askeleen ne ottavat. Tämä on helppoa, jos kaikki toimii täydellisesti – antaa vain yhden tietokoneen johtaa muita. Mutta entä jos haluamme saada tietokoneiden verkon sietämään virheitä? Jos johtava tietokone menee rikki, niin algoritmimme ei toimi ja se saattaa pahimmassa tapauksessa antaa väärää tietoa. Jos ihminen alkaa miettiä kaikkia mahdollisia vikatilanteita, menee tehtävä hyvin vaikeaksi hyvin nopeasti, puhumattakaan inhimillisen virheiden mahdollisuudesta. Toisaalta tällainen looginen päättely on tietokoneiden ominta alaa.
Nykyään tutkijat käyttävät klassisia tietokoneita kvanttilaskennan perusteiden tutkimuksessa. Olisi erittäin kiinnostavaa nähdä se päivä, kun käytämme kvanttitietokoneita klassisen laskennan perusteiden tutkimiseen!
Käyn varmaan kävelyillä Laajalahdella ja nautin luonnosta. Tai no, totta puhuen tätä aion tehdä, vaikka en onnistuisikaan automatisoimaan koko tutkimusalaa.
Tämä on erittäin hyvä kysymys, koska nyt lähestytään asioita, jotka ovat täysin avoimia!
Voiko tietokone turhautua, ihan mistä tahansa syystä? Nykyään chatbotti voi varmasti esittää turhautunutta tai sanoa olevansa turhautunut. Mutta voimmeko todella rakentaa piisiruista jotain, joka pystyy aidosti tuntemaan samalla tavalla kuin ihminen? Kukaan ei tiedä. Toivon, että elän tarpeeksi pitkään ja ehdin nähdä edes jotain näitä asioita valottavaa tutkimusta vielä.
Mikäli haluat sukeltaa syvemmälle teoreettiseen tietojenkäsittelytieteeseen, tutustu Suomelan kaikille avoimiin nettikursseihin hajautetuista algoritmeista sekä rinnakkaislaskennasta. Tarkempaa tietoa Suomelan tutkimusryhmästä osoitteessa: https://research.cs.aalto.fi/da/
cs.aalto.fi
Research focuses on the foundations of distributed computing. The key research question is related to the concept of locality in the context large computer networks.
Mikä tahansa pariutusongelman ratkaiseva menetelmä on joko hidas tai johtaa väistämättä väärään ratkaisuun.