Fortran ovat olleet suosituimpia jo vuosikymmentenajan. Vaikka erityisesti Fortranvoi kuulostaa antiikkiselta, sillä onaktiivinen käyttäjäkuntansa tieteellisessälaskennassa. Laskennan näkökulmastasillä on runsaasti hyviä ominaisuuksia,esimerkiksi tuki kompleksiluvuille ja moniulotteisilletaulukoille. Suorituskykyäheikentäviä ominaisuuksia on pyrittyvälttämään. Ei ole mitenkään poikkeuksellista,että saman ohjelman Fortranversiopyyhkii C-versiolla lattiaa.Kielen uusin versio, Fortran 2008,on ominaisuuksiltaan täysin moderniohjelmointikieli, vaikka monet vanhanliiton superkonekoodaajat edelleen vannovatkinlähes 40 vuotta vanhan Fortran77 -standardin nimeen. Siinä kun ei olemitään ylimääräistä eikä suorituskyvyllehaitallista.Nykyään GNU/Linux-käyttöjärjestelmissämukana tulevat GNU-kääntäjätovat erittäin kilpailukykyisiä kaupallistenkääntäjien kanssa (mm. Intel, PGI).Erityisesti GNU Fortran on kehittynythuomattavasti viimeisen viiden vuodenaikana.Kääntäjät eivät kuitenkaan aina osaaoptimoida koodia riittävän hyvin, ja siksisuorituskyvyn kannalta kriittisissä rutiineissakäytetään myös assembleria.Esimerkiksi keskeisimmissä lineaarialgebranrutiineja sisältävissä kirjastoissa(mm. Openblas) on runsaasti eri prosessoreilleoptimoituja osia. Assemblerinkäyttö tehostaa koodia mutta hankaloittaasen siirtämistä uusille alustoille.Perinteisten kielten rinnalle on nousemassajoukko korkeamman tason kieliä,joista suosituimmat ovat avoimenlähdekoodin Python ja kaupallinen Matlab.Korkeamman abstraktiotason tasonkielet mielletään usein tehottomiksi,mutta taitavasti ohjelmoimalla voi niilläkintoteuttaa varsin tehokkaita ohjelmia.Pythonille on kehitetty paketit Scipy(Scientific Python) ja Numpy (NumericalPython), jotka lisäävät Pythoniin tehokkaitarutiineja taulukoiden käsittelyyn.IBM Blue Gene vuodelta 2004.kuyksikkö. Tämän johdosta ydin ei oletäysin binääriyhteensopiva tavallistenx86-prosessoreiden kanssa, mutta tulevaAVX-512-käskykanta lupaa yhteensopivuutta.Muisti näkyy yhtenäisesti kaikilleXeon Phi -prosessorin ytimille, ja välimuistienhallinta on automatisoitu.Kortissa itsessään on riisuttu Linuxkäyttöjärjestelmä,johon on mahdollistakirjautua sisään ja jossa voi ajaa sovelluksiasuoraan. Seuraavan sukupolven XeonPhi (koodinimi Knight’s Landing) tuleeoheiskortin lisäksi tarjolle myös itsenäisenäprosessorina.Muita arkkitehtuurejaPhin ja GPU:iden lisäksi markkinoilla onmuitakin mielenkiintoisia arkkitehtuureja.Kickstarter-projektissa syntynytAdaptevan Parallela-suoritin on samantyyppinenmanycore-arkkitehtuuri kuinedellä mainittu Xeon Phi. Siinä on runsaastipieniä, vähän energiaa tarvitseviaytimiä. 16-ytiminen perusmalli maksaaainoastaan 99 dollaria. Kovin mahtavaksisupertietokoneeksi siitä ei ole, mutta sevoi olla hyvä alusta rinnakkaisohjelmoinninopetteluun.Ohjelmoitavat FPGA-piirit (Field ProgrammableGate Array) soveltuvat hyvintehtäviin, joissa ei ole kyse tavallisestaliukulukulaskennasta. Tekstin tunnistaminenja DNA-sekvenssianalyysi ovat hyviäesimerkkejä. Haittapuolena on FPGApiirienohjelmoinnin hankaluus.Miten supertietokoneitaohjelmoidaan?KieletSupertietokoneiden ohjelmoinnissa perinteisetohjelmointikielet kuten C jaRinnakkaistaminenRinnakkaistamisella tarkoitetaan sitä,että laskentatehtävä pilkotaan pienempiinosiin ja osatehtävät suoritetaan samanaikaisesti.Useat prosessorit saadaannäin tehokkaammin käyttöön. Rinnakkaistaminenon ollut superkoneiden ohjelmoinnissasuurimpia haasteita 60-luvultasaakka. Viime vuosina tekniikka jaohjelmointi on tullut tutummaksi, koskatavallisissa tietokoneissakin on usein moniydinprosessori.Superkonekäyttöön tarkoitettujenohjelmien rinnakkaistamiseen käytetääntyypillisesti Message Passing Interface(MPI) -ohjelmointimallia. Se perustuumelko yksinkertaisiin kirjastokutsuihin,joilla välitetään viestejä kahden tai useammanprosessin välillä. Ohjelmointimallion erittäin tehokas mutta myös haastava,etenkin jos halutaan tehdä tehokastaja helposti toiselle arkkitehtuurille sovitettavaakoodia.Standardista on lukuisia erilaisia toteutuksiaMPI-kirjastojen muodossa. EsimerkiksiCraylla on oma, Aries-kytkentäverkkoavarten optimoitu kirjastonsa.OpenMPI puolestaan on suosittu yhteisövetoisestikehitetty avoimen lähdekoodinMPI-kirjasto, joka toimii useiden erilaistenkytkentäverkkojen kanssa.Jos riittää, että ohjelma suoritetaanrinnakkaisesti vain yhden noodin sisällä,on myös OpenMP varteenotettava vaihtoehto.Nimestään huolimatta sillä ei olemitään tekemistä OpenMPI:n kanssa.Joissakin tapauksissa, esimerkiksi hyvinsuurissa laskentatehtävissä, voi olla kannattavaayhdistää molemmat niin, ettäOpenMP:tä käytetään noodien sisällä jaMPI:tä niiden välillä.Supertietokoneiden tulevaisuusOn varmaa, että supertietokoneiden suorituskykyjatkaa tulevaisuudessakin kasvamistaanja että niiden käyttö lisääntyy.Vasta pieni osa mahdollisuuksista on hyödynnetty:on runsaasti erilaisia tutkimusalueitaja toimialoja, joilla superkoneitavoitaisiin hyödyntää uusilla tavoilla.Superkoneiden ongelmana ovat virrankulutusja jäähdytystarve, jotka kasvavatnopeammin kuin suorituskyky. Josnykyinen kehityssuunta jatkuu, tehokkaimmatkoneet tulevat vaatimaan hurjiamääriä sähköä.Kansainvälinen superkoneyhteisö on42 2014.1
asettanut tavoitteekseen eksaflopin laskentatehonsaavuttamisen noin vuonna2020. Jos siinä onnistutaan, ollaan melkohyvin Mooren lakiin perustuvalla kehityskäyrällä.Nykyisellä kehityksellä tällaisenkoneen sähköteho tulee olemaan noin200 megawattia. Tarkoitus olisi kuitenkinsaada sähkönkulutus supistettua 20megawatin paikkeille, joka on vain hiemanenemmän kuin mitä tämän päiväntehokkaimmat koneet kuluttavat. Ongelmanratkaiseminen vaatii radikaaleja uudistuksianiin teknologiaan, ohjelmointiinkuin infrastruktuurinkin.MobiiliprosessoritEräs mahdollinen osaratkaisu voi löytyämobiiliprosessoreiden maailmasta, jossaenergiataloudellisuus on keskeisin tavoite.Toistaiseksi prosessorit ovat kuitenkinolleet arkkitehtuuriltaan sellaisia, että nesoveltuvat huonosti raskaaseen laskentaanja suurten datamäärien käsittelyyn.Arkkitehtuurit kuitenkin kehittyvät,ja tilanne on korjaantumassa. Euroopanunionin Mont Blanc -tutkimusprojektintavoitteena on toteuttaa ensimmäinentodella kilpailukykyinen mobiiliprosessoreihinperustuva laskentaklusteri. MyösNvidialla on Project Denver -niminenhanke, jonka tavoitteena on yhdistää64-bittinen ARM-ydin ja Nvidian GPU.SuoritinpinotMikropiirejä voidaan pinota päällekkäinkolmiulotteisiksi prosessoreiksi. Esimerkiksimuistipiirejä voi asettaa suoraanprosessorin päälle, jolloin muistikaistamoninkertaistuu, muistin viiveet lyhenevätja energiankulutus vähenee.Tällainen teknologia on parhaillaansiirtymässä testilaboratoriosta todellisuuteen.Tänä vuonna Micronilta ontulossa ensimmäiset kolmiulotteisestirakennetut Hybrid Memory Cube(HMC) -muistimoduulit. Heillä on myösAutomata-niminen prototyyppi, johon onyhdistetty prosessointikerroksia. Tulevaisuudenkiihdyttimiin (Nvidia Volta, IntelKnight’s Landing) kaavaillaan prosessorinpäälle pinottavaa nopeaa muistia.Optiset komponentitSuurin osa superkoneen energiasta kuluudatan siirtoon komponenttien välilläja niiden sisällä. Siirtymällä sähköisistäsignaaleista optisiin – ensin piirilevylläja myöhemmin jopa mikropiirien sisällä– saadaan merkittäviä energiasäästöjä.Muun muassa IBM ja HP kehittävät molemmataktiivisesti prototyyppejä tälläsaralla.KvanttiprosessoritKvanttien superpositioon perustuvakvanttilaskenta mahdollistaa eräitä tehokkaitaoperaatioita. Monimutkaisestalaskutoimituksesta voidaan käydä samanaikaisestikaikki ratkaisuvaihtoehdotläpi ja oikea vastaus voidaan poimia ratkaisujenjoukosta.Menetelmä soveltuu erittäin hyvinesimerkiksi epäsymmetrisen salauksenmurtamiseen, joka on perinteisten laskentamenetelmiennäkökulmasta lähesmahdoton tehtävä. Toisaalta on myös ongelmia,joita on hyvin vaikeaa tai mahdotontamuuttaa kvanteille sopivaan muotoon.Kvanttiprosessorit eivät sovelluihan kaikkeen.Yritys nimeltä D-Wave on kehittänytkvanttikoneita jo useita vuosia muttasaanut melko skeptisen vastaanoton.Tutkijat kiistelevät edelleen siitä, ovatkoD-Waven laitteet aitoja kvanttitietokoneita.Yhtiö on kuitenkin toimittanut laitteitamuun muassa Lockheedille ja GooglenQuantum Artificial Research Labille.OhjelmointimallitTulevaisuuden eksaflop-teholuokan koneissatulee todennäköisesti olemaansatoja miljoonia ytimiä. Ohjelmien rinnakkaistaminentälle tasolle vaatii uudenlaisiaohjelmointimalleja. Myös energiankulutuspitänee ottaa entistä paremminhuomioon ohjelmia suunniteltaessa. Näinsuurissa laitteissa myös komponenttejarikkoutuu kymmenittäin joka päivä, jotenohjelmien täytyy osata käsitellä laitteistovikoja.Ne eivät saa kaatua heti ensimmäiseenpieneen laitevikaan, ja suuremmatkaanongelmat eivät saa aiheuttaakovin pahoja viivästyksiä.InfrastruktuuriKonesalit ovat siirtymässä sinne, missäniitä on kokonaistaloudellisesti järkevintäylläpitää. Googlen Hamina-projekti oneräs tunnetuimmista esimerkeistä, muttamyös CSC on siirtänyt raskaan laskennanEspoosta Kajaaniin, entiseen paperivarastoon.Energia on halpaa, konetta voijäähdyttää avaamalla ikkunan (ainakinmelkein) ja tilaa riittää.Tulevaisuudessa suuntaus varmastijatkuu ja kansallisista supertietokonekeskuksistasiirrytään ainakin laitteistojenosalta yhä massiivisempiin kansainvälisiinkeskuksiin, joiden sijainti on erittäintarkasti valittu.Rakenna oma klusteriOman pienen laskentaklusterin rakentaminenon helpompaa kuin koskaan. Kaikki keskeisettoiminnot on toteutettavissa avoimen lähdekoodinohjelmilla – samoilla ohjelmilla, joitamaailman suurimmat tietokonekeskuksetkinkäyttävät. Alla on lista tärkeimmistä komponenteista.Rauta• Vähintään yksi edusta- tai hallintakone.Isoissa järjestelmissä voi olla kymmeniähallintakoneita erilaisissa rooleissa, muunmuassa sisään kirjautumiselle, etähallinnalle,eräajojärjestelmälle jne.• Useita koneita laskentakoneiksi.• Jonkinlainen kytkentäverkko, jolla noodityhdistetään.Ohjelmisto• Käyttöjärjestelmäksi GNU/Linux. On makuasia,mitä jakelukokonaisuutta käyttää, muttatavallisimmat ovat Red Hat, CentOS, SuSE,Ubuntu ja Debian. Eräät tärkeät tieteellisenlaskennan kaupalliset sovellukset tukevatainoastaan Red Hat -tyyppistä jakelua, minkävuoksi suuret laskentakeskukset käyttävättyypillisesti Red Hat Enterprise Linuxia taisen ilmaisversiota CentOS:ää.• Klusterihallinta on järjestelmä, joka hallinnoiklusteria, esimerkiksi noodien asennusta.Pienessä järjestelmässä se on vapaavalintainen,suuremmassa pakollinen. Vaihtoehtoja:Warewulf, xCAT ja Rocks Linux.• Eräajojärjestelmä delegoi vapaita noodejakäyttäjille ja seuraa muun muassa töidenetenemistä. Jos järjestelmässä on montakäyttäjää tai useita töitä suoritetaan samanaikaisesti,kannattaa käyttää eräajojärjestelmää.Slurm (Simple Linux Resource Manager)on monipuolinen ja melko helposti asennettava.Muita ovat esimerkiksi SGE, Torque,PBS ja LSF (kaupallinen).• Kääntäjät: GNU C/C++, Fortran ja Pythonovat hyvä perussetti. Muita ovat esimerkiksiLLVM, PGI (kaupallinen) ja Intel Composer XE(kaupallinen).• MPI-kirjasto: OpenMPI:ssä on ilmaisistavaihtoehdoista monipuolisin tuki erilaisillekytkentäverkoille. Muita ovat esimerkiksiIntel MPI (kaupallinen), MPICH2 ja MVAPICH2(vain Infiniband).Alan suurimmassa konferenssissa, Yhdysvalloissavuosittain järjestettävässä Supercomputingissa(http://supercomputing.org/) onStudent Cluster Competition, jossa opiskelijajoukkueetkilpailevat siitä, kuka pystyy rakentamaantehokkaimman klusterin. ToistaiseksiSuomesta ei ole vielä ollut joukkuetta. Olisikohanaika korjata tilanne?43