Supertietokone on tietokone, joka on suunniteltu käsittelemään erittäin suuria määriä tietoa ja suorittamaan laskutoimituksia paljon nopeammin kuin tavalliset laitteet. Supertietokoneissa on suuri laskentateho ja paljon muisti, ja ne voivat tehdä töitä nopeammin kuin mikään muu saman aikakauden tietokone. Usein ne ovat tuhansia kertoja nopeampia kuin samanaikaiset henkilökohtaiset tietokoneet. Supertietokoneet pystyvät suorittamaan monimutkaisia aritmeettisia ja matemaattisia laskuja erittäin nopeasti. Siksi niitä käytetään esimerkiksi sääennusteisiin, koodien murtamiseen, geneettiseen analyysiin sekä muihin tieteellisiin ja teollisiin tehtäviin, joissa tarvitaan suurta laskentakapasiteettia. Kun tavalliset tietokoneet kehittyvät, niiden suorituskyky saavuttaa aiemmin vain supertietokoneille kuuluneita tasoja, mutta uudet supertietokoneet siirtävät rimaa taas eteenpäin.

Sähköinsinöörit ja tietokonearkkitehdit suunnittelevat supertietokoneita usein yhdistämällä useita tuhansia tai jopa satoja tuhansia suorittavia yksiköitä, kuten mikroprosessoreita.

Suorituskykymittarit

Supertietokoneiden suorituskykyä mitataan yleisesti liukulukutoimituksina sekunnissa (FLOPS). Suurimmat järjestelmät mitataan tera- (10^12), peta- (10^15) ja nykyisin exa- (10^18) FLOPS -luokissa. Yksi tunnettu vertailu on LINPACK-benchmark, jonka tuloksia käytetään muun muassa TOP500-listan koostamiseen—listalla seurataan maailman tehokkaimpia supertietokoneita.

Arkkitehtuuri ja komponentit

Nykyiset supertietokoneet ovat usein klustereita, joissa on valtava määrä laskentayksiköitä (CPU-ytimiä) sekä kiihtyvyysyksiköitä, kuten GPU:t (grafiikkasuorittimet) tai erikoistuneet piirit (esim. TPU:t). Järjestelmät koostuvat solmuista, joiden välillä kommunikoidaan erittäin nopeilla verkkoyhteyksillä. Tällainen rinnakkaislaskenta vaatii tehokasta tiedonsiirtoa, synkronointia ja työkuormien jakamista.

Ohjelmointi ja rinnakkaislaskenta

Supertietokoneiden hyödyntäminen edellyttää rinnakkaisohjelmointia. Yleisiä ohjelmointimalleja ovat esimerkiksi MPI (Message Passing Interface) ja OpenMP, joita käytetään sovellusten hajauttamiseen monelle suorittimelle tai solmulle. Lisäksi kehittäjät optimoivat koodia hyödyntämään sekä CPU:ita että GPU:ita, ja käyttävät erikoiskirjastoja numeeriseen laskentaan.

Käyttökohteet

  • Tiede ja tutkimus: ilmasto- ja säämallinnus, kosmologiset simulaatiot, materiaalitutkimus.
  • Biotieteet: genomianalyysit, proteiinien rakenteen mallinnus ja lääkeaineiden tutkimus.
  • Teollisuus: öljynetsintä ja reservoir-simulaatiot, aerodynamiikan laskelmat, suunnittelu- ja optimointitehtävät.
  • Turvallisuus ja salauksenmurtaminen: suuri laskentakapasiteetti auttaa kryptografisten ongelmien tutkimisessa.
  • Koneoppiminen ja tekoäly: suurten neuroverkkojen koulutus vaatii valtavasti laskentatehoa.

Energiatehokkuus ja jäähdytys

Supertietokoneet kuluttavat paljon sähköä, joten energiatehokkuus on kriittinen suunnittelukriteeri. Jäähdytysratkaisut vaihtelevat tehokkaasta ilmankierron hallinnasta nestejäähdytykseen ja kokonaan upotettuun jäähdytykseen. Modernit järjestelmät suunnitellaan usein niin, että niistä voidaan hyödyntää myös syntyvää hukkalämpöä.

Kustannukset ja ylläpito

Supertietokoneen rakentaminen ja ylläpito on kallista: laitteisto, erikoisrakennukset, jäähdytys, energiakustannukset ja asiantuntijatyö nostavat kokonaiskustannuksia. Siksi suurin osa supertietokoneista sijaitsee tutkimuskeskuksissa, yliopistoissa, julkishallinnossa tai suurissa yrityksissä, jotka tarvitsevat huippuluokan laskentaa.

Tulevaisuuden suuntaukset

Tavoitteena on siirtyminen exascale-tasolle ja sen ylittäminen, parempi energiatehokkuus sekä entistä tiukempi integraatio tekoälyä nopeuttavien kiihdyttimien kanssa. Samalla kehitys jatkaa rinnakkaisarkkitehtuurien, jättimäisten datamäärien hallinnan ja ohjelmistotyökalujen kehittymistä.

Vaikka tavalliset kotitietokoneet ja pilvilaskenta kehittyvät jatkuvasti, supertietokoneilla on yhä oma roolinsa sovelluksissa, joissa tarvitaan ennennäkemätöntä laskentatehoa, erittäin suurta muistikapasiteettia ja nopeaa tiedonsiirtoa solmujen välillä.