Miksi algoritmit ovat surkeita ja analogiset tietokoneet ovat tulevaisuutta
Tiedän, että tämän artikkelin otsikko saattaa kuulostaa hieman provosoivalta, mutta se on totta: Algoritminen laskenta ei vain skaalautu kovin hyvin, kun on kyse ongelmista, jotka vaativat valtavia määriä laskentatehoa.
Katsokaa vaikka viimeisintä huipputehokkaiden tietokoneiden Top500-listaa. Tällä hetkellä tehokkain supertietokone on Sunway TaihuLight National Supercomputing Centerissä Wuxissa Kiinassa. Tämä jättiläinen tuottaa huimat 93 petaflopsia (yksi petaflop vastaa kvadriljoonaa liukulukuoperaatiota sekunnissa), mikä on todella käsittämätöntä.
Supertietokoneet ja energiankulutus
Näinkin valtavasta laskentatehosta on kuitenkin hintansa. Tässä tapauksessa se vaatii 10.649.600 laskentayksikköä, niin sanottuja ytimiä, jotka kuluttavat 15.371 megawattia – määrä sähköä, joka riittäisi virransyöttöön noin 16.000 asukkaan pikkukaupungille, joka perustuisi San Franciscon keskimääräiseen energiankulutukseen.
Jos käännämme huomiomme pois tehokkaimmista supertietokoneista ja keskitymme sen sijaan kaikkein energiatehokkaimpiin, löydämme Tokion teknologiainstituutissa toimivan TSUBAME3.0-järjestelmän Green500-listan kärjestä. Se tuottaa 14,11 gigaflopsia/wattia, ja sen 36288 ytimen kokonaisvirrankulutus on ”vain” 142 kilowattia. Energiatehokkuudessa tämä on noin kaksi kertaa parempi kuin TaihuLight. Mutta 142 kilowattia on silti hirveän paljon sähköenergiaa.
Mutta eikö ole olemassa supertietokoneita, jotka eivät tarvitse näin paljon energiaa toimiakseen? On tosiaan olemassa: Ihmisen aivot ovat hyvä esimerkki – niiden laskentatehon arvioidaan olevan noin 38 petaflopsia, noin kaksi viidesosaa TaihuLightin laskentatehosta. Mutta se tarvitsee toimiakseen vain noin 20 wattia energiaa. Watteja, ei megawatteja! Ja silti se suorittaa tehtäviä, joita – ainakin tähän asti – yksikään kone ei ole koskaan pystynyt suorittamaan.”
”Eikö ole olemassa supertietokoneita, jotka eivät tarvitse näin paljon energiaa toimiakseen? On tosiaan olemassa: Ihmisen aivot ovat loistava esimerkki.”
Miten tämä ero johtuu? Ensinnäkin aivot ovat niin sanotusti erikoistunut tietokone, kun taas TaihuLightin ja TSUBAME3.0:n kaltaiset järjestelmät ovat paljon yleiskäyttöisempiä koneita, jotka kykenevät ratkaisemaan monenlaisia ongelmia.
Tällaisia koneita ohjelmoidaan algoritmin, niin sanotun ohjelman avulla. Periaatteessa tämä on sarja ohjeita, jotka kukin prosessori suorittaa lukemalla ne muistin osajärjestelmästä, purkamalla ohjeet, hakemalla operandit, suorittamalla pyydetyn operaation, tallentamalla tulokset takaisin jne.
Taloudellinen supertietokone: Ihmisaivot
Kaikki nämä muistipyynnöt vaativat huomattavan määrän energiaa ja hidastavat toimintaa huomattavasti. Satojen tuhansien yksittäisten ytimien olemassaolo edellyttää myös monimutkaista liitäntärakennetta, jotta dataa voidaan tarvittaessa vaihtaa ytimien välillä, mikä myös lisää laskennan suorittamiseen tarvittavaa aikaa ja tehoa.
Aivot sen sijaan toimivat täysin erilaisella lähestymistavalla. Sen toimintaan ei liity mitään ohjelmaa. Sitä yksinkertaisesti ”ohjelmoidaan” sen aktiivisten komponenttien, useimmiten niin sanottujen neuronien, välisillä yhteyksillä.
Aivojen ei tarvitse hakea ohjeita tai tietoja mistään muistista, purkaa ohjeita jne. Neuronit saavat syöttötietoa toisilta neuroneilta, toimivat tällä tiedolla ja tuottavat lähtötietoa, joka syötetään vastaanottaville neuroneille. OK – tämä on hieman liian yksinkertaistettua, mutta se riittää tuomaan meidät seuraaviin kysymyksiin:
- 1. Eikö tällaiselle tietokonearkkitehtuurille ole olemassa elektronista vastinetta?
- 2. Tarvitsemmeko todella yleiskäyttöisiä supertietokoneita?
- 3. Voisiko erikoistunut järjestelmä olla parempi joidenkin ongelmien ratkaisemiseen?
Vastaus ensimmäiseen kysymykseen on: Kyllä, tällaiselle arkkitehtuurille on olemassa elektroninen vastine.
Sitä kutsutaan analogiseksi tietokoneeksi.
Sisään analogiset tietokoneet
”Analoginen” tulee kreikan kielen sanasta ”analogon”, joka tarkoittaa ”mallia”. Ja juuri sitä analoginen tietokone on: Tietyn ongelman malli, jota voidaan sitten käyttää juuri tuon ongelman ratkaisemiseen simuloimalla sitä.
Ns. suorat analogit – jotka perustuvat samaan perusperiaatteeseen kuin tutkittava ongelma – muodostavat yksinkertaisimman luokan tällaisista analogisista menetelmistä. Minimipintojen tuottamiseen käytettävät saippuakuplat ovat tästä klassinen esimerkki.
”Analoginen tietokone on malli tietylle ongelmalle, jota voidaan sitten käyttää juuri tuon ongelman ratkaisemiseen simuloimalla sitä.”
Yleisemmin käyttökelpoinen luokka sisältää epäsuoria analogioita, jotka edellyttävät kartoitusta ongelman ja laskenta-alueen välillä. Tyypillisesti tällaiset analogiat perustuvat analogisiin elektronisiin piireihin, kuten summaajiin, integroijiin ja kertojiin. Ne voidaan kuitenkin toteuttaa myös digitaalisilla komponenteilla, jolloin niitä kutsutaan digitaalisiksi differentiaalianalysaattoreiksi.
Kummallakin lähestymistavalla on yksi yhteinen piirre: Tällaisen tietokoneen toimintaa ohjaavaa tallennettua ohjelmaa ei ole. Sen sijaan sitä ohjelmoidaan muuttamalla sen monien laskentaelementtien välisiä kytkentöjä – ikään kuin aivojen tapaan.
Analogitietokoneista hybriditietokoneisiin
Tarkastellaan omaa analogiatietokoneen prototyyppiä, joka on esimerkki klassisesta analogis-sähköisestä tietokoneesta. Johtojen ristikkäisyyttä voidaan kuvata koneen ohjelmaksi. Tässä tapauksessa se on asetettu simuloimaan ilmavirtausta niin sanotun Joukowsky-siivekkeen ympärillä – ei mikään triviaali tehtävä.
Koneen kaikki laskentaelementit työskentelevät täydellisessä rinnakkaisajattelussa ilman, että koneen keskusmuistiin tai hajautettuun muistiin on päästävä käsiksi tai sitä on odotettava. Tietokonetta ohjelmoidaan kytkemällä liitäntäjohtoja sisään ja ulos. Tämä voi olla varsin hyödyllistä yksittäiselle tutkijalle ja opetustarkoituksiin, mutta todellista yleiskäyttöistä analogista tietokonetta varten olisi päästävä eroon tästä manuaalisesta paikkausmenettelystä.
Nykyaikaisella elektroniikkatekniikalla on onneksi mahdollista rakentaa integroituja piirejä, jotka sisältävät peruslaskentaelementtien lisäksi myös ristikytkentäpalkin, jota voidaan ohjelmoida siihen liitetystä digitaalisesta laskimesta käsin.
Tällaiset analogiset tietokoneet saavuttavat tietyissä ongelmakokonaisuuksissa erittäin suuren laskentatehon. Ne ovat muun muassa ylitsepääsemättömiä differentiaaliyhtälöihin ja niiden järjestelmiin perustuvien ongelmien ratkaisemisessa – mikä pätee moniin, ellei jopa useimpiin nykypäivän merkityksellisimpiin ongelmiin tieteessä ja teknologiassa.
Esimerkiksi Glenn E. R. Cowan kuvasi vuonna 2005 julkaisemassaan artikkelissa erittäin suuren mittakaavan integroitua analogiatietokonetta (Very-Large-Scale-Integrated Analog Computer, VLSI) eli niin sanotusti analogitietokonetta sirulla. Tämä siru tuotti huimat 21 gigaflopsia wattia kohden tietylle differentiaaliyhtälöluokalle, mikä on parempi kuin tämän päivän Green500-listan energiatehokkain järjestelmä.
The Analog Future of Computing
Analoginen tietojenkäsittely, joka oli vallitseva huipputehokkaan tietojenkäsittelyn muoto pitkälle 1970-luvulle asti, on pitkälti unohdettu sen jälkeen, kun tämän päivän digitaaliset tietokoneet, joihin on tallennettu ohjelmia, ovat ottaneet vallan. Aika on kuitenkin kypsä tämän muuttamiseen.
”Huomisen sovellukset vaativat vahvempia laskentatehoja paljon pienemmällä energiankulutuksella. Digitaaliset tietokoneet eivät voi tarjota tätä.”
Tomorrow’s applications demand stronger computing powers at much lower energy consumption levels. Mutta digitaaliset tietokoneet eivät yksinkertaisesti pysty tarjoamaan tätä suoraan laatikosta. On siis korkea aika alkaa kehittää nykyaikaisia analogisia rinnakkaisprosessoreita, jotka ottavat perinteisiltä tietokoneilta pois monimutkaisten differentiaaliyhtälöiden ratkaisemisen taakan. Tuloksena olisivat niin sanotut hybriditietokoneet.
Tällaiset koneet voisivat tarjota nykyisiä supertietokoneita suuremman laskentatehon vertailukelpoisella energiankulutuksella tai niitä voitaisiin käyttää aloilla, joilla energiaa on käytettävissä vain pieniä määriä, kuten lääketieteessä käytettävät implantoidut ohjaimet ja muut sulautetut järjestelmät.
Tulevaisuuden haasteet
Tulevaisuuden haasteet
Tulevaisuuden lupaukset analogisessa tietojenkäsittelyssä ovat selvästikin suuret. Yksi tärkeimmistä ratkaistavista ongelmista tulee olemaan se, että analogisten tietokoneiden ohjelmointi eroaa täysin kaikesta siitä, mitä opiskelijat nykyään yliopistossa oppivat.
Analogisissa tietokoneissa ei ole algoritmeja, ei silmukoita, ei mitään sellaista, minkä he tuntevat. Sen sijaan on olemassa pari yksinkertaista, mutta tehokasta laskentaelementtiä, jotka on kytkettävä taitavasti toisiinsa, jotta voidaan muodostaa elektroninen analogi jollekin matemaattisesti kuvatulle ongelmalle.
Teknologiset haasteet, kuten tehokkaat liitännät tai pitkälle integroidut, mutta täsmälliset laskentaelementit, tuntuvat vähäpätöisiltä tähän koulutukselliseen haasteeseen verrattuna. Loppujen lopuksi ihmisten ajattelutavan muuttaminen ohjelmoinnista on suurin este analogisen tietojenkäsittelyn tulevaisuudelle.