Kesäkoulu rakentuu suurteholaskennan opeista ja yhdessä tekemisestä
Kahden vuoden tauon jälkeen kesällä 2022 järjestetty suurteholaskennan kesäkoulu oli onnistunut. Kymmenen päivää kestäneellä intensiivikurssilla paneuduttiin suurteholaskennan maailmaan sekä ohjelmoitiin paljon erilaisia harjoitustehtäviä. Kuten aina aiemminkin, kesäkoulun osallistujien taustat olivat monenlaisilta aloilta, kuten bio- ja molekyylitieteet, hiukkasfysiikka, tekoäly sekä kvanttilaskenta. Osallistujia oli Suomen lisäksi ympäri Eurooppaa ja hieman Euroopan ulkopuoleltakin.
Kesäkoulu oli kaksi edeltävää vuotta tauolla, sillä kesäkoulu on paljon muutakin kuin oppitunteja, joten sen toteuttaminen etäyhteyksin pandemian aikana ei olisi ollut yhtä mielekästä. Tärkeä osa kokemusta ovat niin Nuuksion upeat puitteet, vapaa-ajan aktiviteetit kuin tiivis ryhmähenkikin.
Kesäkoulun vastuuopettaja, CSC:llä sovellusasiantuntijana työskentelevä Jussi Enkovaara summaa lähiopetuksen hyödyt opetuksen näkökulmasta:
– On ollut hienoa nähdä ihmisiä luokkahuoneessa pitkästä aikaa ja käydä keskusteluja taukojen aikana. Opettajana olen kaivannut juuri ihmisten välistä vuorovaikutusta, jota on usein hankala saavuttaa etänä työskenneltäessä.
Perinteisiä suurteholaskennan aiheita sekä ripaus LUMIa
Kesäkoulussa painotus on erityisesti rinnakkaisohjelmoinnin perusteissa, mutta kurssin aikana opitaan paljon uutta myös edistyneemmistä aiheista, kuten hajautetun ja jaetun muistimallin yhdistämisestä (MPI + OpenMP) sekä GPU-ohjelmoinnista, eli grafiikkaprosessorien käyttämisestä koodin tehostamiseksi. Joka vuosi mukana on perusteiden lisäksi myös ajankohtaisia suurteholaskentaan liittyviä aiheita. Kesällä 2022 sisällössä näkyi kesäkuussa käyttöön vihitty LUMI-supertietokone.
Ensimmäisestä vuonna 2009 järjestetystä kesäkoulusta asti mukana opettamassa ollut Enkovaara kertoo LUMIn vaikutuksista kesäkoulun opetussisältöön:
– LUMI on täällä ja se tuo mukanaan merkittävää ohjelmointiparadigman muutosta etenkin suomalaisille käyttäjille, koska LUMI perustuu GPU:iden käyttämiselle. Vaikka meillä on ollut GPU-ohjelmointia myös aiemmin kesäkouluissa, tänä vuonna sitä painotettiin erityisesti.
Suurteholaskentaa erilaisiin tarpeisiin
Kaikki kurssilaiset osallistuvat opetukseen omista lähtökohdistaan. Suurimmalla osalla on jo mielessään joku tietty kohde, johon he aikovat suurteholaskentaa hyödyntää, mutta osa tulee kesäkouluun vain oppimaan lisää suurteholaskennasta yleisesti.
Genovan yliopistossa laskennallisen fysiikan tohtorintutkintoa suorittava Sonia Cambiaso kokee voivansa hyödyntää kesäkoulusta oppimaansa tulevaisuudessa:
– Tärkeimpiä asioita, joita tältä kurssilta voin hyödyntää työssäni tekemiini simulaatioihin ovat käsitteet, kuten esimerkiksi rinnakkaislaskennan periaatteet, joita täällä opin.
Rinnakkaislaskennalla tarkoitetaan yhden laskentatehtävän ratkaisemista rinnakkaisesti useita suorittimia hyödyntämällä. Rinnakkaislaskennan onnistumisen kannalta on kuitenkin tärkeää, että laskentatehtäviä jaetaan tarkoituksenmukaisella tavalla suoritinten kesken ja niiden ajoitus on onnistunut.
Myös Helsingin yliopiston väitöskirjatutkija Mikko Saukkoriipi tietää käyttävänsä kesäkoulun oppeja konenäköön liittyvässä tutkimuksessaan:
– Tämä kurssi oli oikeastaan laajempi kuin mitä alun perin ajattelin, ja tässä sai todella laajan läpileikkauksen tähän suurteholaskennan aihealueeseen sekä todella hyvän pohjan syksyllä alkaneelle tutkimukselleni. Minulla on suunnitelmissa käyttää CSC:n uutta LUMI-supertietokonetta, jota varten kirjoitan GPU:lle optimoitua koodia.
Kenelle suurteholaskennan kesäkoulu sopii?
Kesäkoulussa suurteholaskentaan ja rinnakkaisohjelmointiin lähdetään tutustumaan aivan perusteista käsin, joten osallistujan ei tarvitse etukäteen ymmärtää suurteholaskentaa. Sen sijaan kurssille osallistuminen edellyttää joitain lähtötaitoja. Yleensä kesäkoulussa on käytetty C++ ja Fortran ohjelmointikieliä, joten niiden perusteet on syytä osata, jotta opetuksesta ja harjoituksista saa mahdollisimman paljon irti. Myös Unix-ympäristöjen perustason hallinta on osallistumisen kannalta tärkeää.
Kesäkoulussa kesällä 2022 avustajana toiminut Leopekka Saraste kertoo kesäkoulun lähtövaatimuksista:
– Jonkintasoinen ohjelmointitaito pitää olla taustalla. Me emme lähde opettamaan ihan perusasioita koodaamisesta, esimerkiksi sitä, miten koodia kirjoitetaan tai lähdetään rakentamaan. Täällä koodi ajetaan supertietokoneelta käsin, jossa on Unix-pohjainen käyttöympäristö. On siis hyvä tietää, miten Unixissa käytetään komentoriviä sekä kuinka hakemistoissa ja kansioissa liikutaan.
Tällaisella osaamisella kesäkouluun voi siis osallistua, mutta kenelle osallistumisesta on erityistä hyötyä? Kesäkoulun osallistujat Sonia ja Mikko suosittelisivat kesäkoulua laajasti eri alojen tutkijoille ja opiskelijoille.
– Kesäkoulu on todella hyödyllinen niin tietojenkäsittelytieteen opiskelijoille kuin myös tutkijoille esimerkiksi fysiikan ja insinööritieteiden aloilta sekä kaikille muillekin, jotka hyödyntävät työssään rinnakkaisohjelmointia.
– Suosittelisin tätä kenelle tahansa, jolle on tärkeää tehdä optimoitua ja tehokasta koodia, erityisesti, jos koodi vaatii rinnakkaistamista usealle CPU:lle tai GPU:lle.
Kesäkoulun pääpaino on tiiviissä opiskelussa ja harjoituksissa mutta tärkeäksi osaksi ohjelmaa ovat muodostuneet myös erilaiset oheisaktiviteetit. Kesäkoulun osallistuja Sonia summaa kurssin sosiaalista puolta:
– Kurssi oli hyvä kokemus, ei pelkästään sisältöjensä puolesta, vaan myös yhdessä tehtyjen vapaa-ajan aktiviitteettien ja uusiin ihmisiin tutustumisen ansiosta.
Kesäkoulu järjestetään taas kesällä 2023 – ilmoittaudu mukaan!
Kesäkoulu järjestetään taas 27.6.–6.7.2023 Nuuksiossa, Espoossa, hotelli Nuuksion tiloissa kauniin Siikajärven rannalla. Kesän ohjelma mukailee aiempien vuosien kaavaa ja pitää sisällään suurteholaskennan perusperiaatteita, ohjelmointia sekä vapaa-ajan ohjelmaa. Joten nähdäänhän Nuuksiossa?