Hyppää sisältöön

A new version of SD Connect and SD Desktop will be available from Monday, September 28. The major upgrade will introduce significant improvements, but also includes changes that are not compatible with the current version of the service. Click here to review the available support materials.

Warning!

Puhti and Mahti computing services have been decommissioned and no new jobs are accepted or executed on its compute nodes. Puhti and Mahti login nodes and storage services are planned to remain available until 15 October 2026. Clean up unnecessary files and move any data you need to keep by 31 August 2026. See the Roihu data migration guide for instructions on transferring your data to Roihu.

Koneoppimisen käytön aloittaminen CSC:llä

Tämä opas on osa koneoppimisen opastamme.

Sinulla on Pythonilla kirjoitettua koneoppimiskoodia, joka pyörii kannettavallasi, mutta se on todella hidasta. Olet kuullut, että siirtyminen GPU:ihin ja CSC:n supertietokoneisiin voisi olla ratkaisu, mutta dokumentaatio vaikuttaa hieman pelottavalta.

CSC:n laskentaympäristö on hyvin dokumentoitu osoitteessa docs.csc.fi, mutta aloittelijalle voi olla hieman vaikeaa tietää, mistä aloittaa. Tämä opas näyttää sinulle vaihe vaiheelta, kuinka saat koodisi ja datasi Roihu-supertietokoneelle ja ajettua GPU:illa. Se on osa koneoppimisen opastamme.

CSC:llä on kaksi supertietokonetta: Roihu ja LUMI. Tässä oppaassa keskitymme Roihun käyttöön, koska siinä on laajin ohjelmistovalikoima ja siihen on suomalaisen akateemisen käyttäjän helpointa saada käyttöoikeus.

Kun siirrät koodiasi kannettavaltasi Roihu-supertietokoneelle, on tärkeää ymmärtää, että Roihu ei ole vain "nopeampi kannettava". Koska mittakaava on perustavanlaatuisesti erilainen, jotkin asiat toimivat supertietokoneessa hyvin eri tavalla. Varaudu siis ottamaan askel taaksepäin ja opettelemaan uudelleen joitakin laskennan toimintatapoja. Pidämme tätä kohtuullisena hintana siitä, että saat käyttöösi Suomen tehokkaimman tutkijoille tarkoitetun GPU-resurssin!

Linuxin perustaidot

Vaikka tämä opas pyrkii selittämään jokaisen vaiheen huolellisesti, on silti suositeltavaa, että sinulla on vähintään perustason tuntemus Linuxin komentorivistä, sillä sinun täytyy käyttää sitä muutamassa vaiheessa. Voit esimerkiksi tutustua Linuxin perusteet -oppaamme ensimmäiseen osioon.

Vaihe 1: Hanki CSC-käyttäjätunnus

Ensimmäiseksi tarvitset CSC-käyttäjätunnuksen, jos sinulla ei vielä ole sellaista. Jos työskentelet tai opiskelet suomalaisessa yliopistossa, siirry MyCSC-portaaliin osoitteessa my.csc.fi ja napsauta "Create account". Valitse Haka-kirjautuminen ja oma yliopistosi pudotusvalikosta. Tämän jälkeen sinun pitäisi voida kirjautua sisään tavallisilla yliopistotunnuksillasi. Täytä tietosi Sign up -sivulla. Kun olet valmis, sinun pitäisi saada vahvistussähköposti.

Lisätietoja ja erityistapauksia löydät erillisestä "How to create new user account" -dokumentaatiostamme. Huomaa, että sinun täytyy olla ottanut käyttöön monivaiheinen tunnistautuminen yliopistosi kautta tai määrittänyt CSC MFA:n.

Vaihe 2: Liity olemassa olevaan projektiin tai luo uusi

Toiseksi sinun täytyy kuulua laskentaprojektiin. Tämä johtuu siitä, että CSC:n on seurattava, miten resurssejamme käytetään, ja laskentaprojektit ovat siihen käytettävä mekanismi.

Jos kuulut tutkimusryhmään, kysy professoriltasi tai ryhmäsi vetäjältä, onko teillä jo CSC-projekti, johon voit liittyä. Jos näin on, projektin johtaja (todennäköisesti professori) voi lisätä sinut projektiin MyCSC-portaalin kautta. Katso tarkemmat ohjeemme siitä, kuinka uusi käyttäjä lisätään projektiin

Muussa tapauksessa, esimerkiksi jos työskentelet oman väitöskirjaprojektisi parissa, voit luoda oman projektin. Luodaksesi uuden projektin, siirry My CSC:hen ja kirjaudu sisään kuten yllä olevassa vaiheessa 1. Valitse Projects ja napsauta New project -painiketta. "Academic" on useimmissa tapauksissa todennäköisesti sopiva luokka. Anna projektille nimi ja kuvaile lyhyesti tekemääsi tutkimusta. Lisätietoja löydät "Creating a new project" -dokumentaatiostamme.

Kun projektisi on luotu, sinun täytyy myös lisätä projektiisi käyttöoikeus Roihuun. Katso lisätietoja kohdasta Palvelun käyttöoikeuden lisääminen projektille.

Kirjoita muistiin projektin tunniste, joka on tyypillisesti jotain muotoa project_2001234. Tässä dokumentissa käytämme jatkossa project_2001234:ää paikkamerkkinä aina, kun viittaamme projektin tunnisteeseen, mutta muista aina korvata se omalla todellisella projektinumerollasi.

Vaihe 3: Kirjaudu Roihuun

Roihuun pääsee monella tavalla. Perinteinen tapa on käyttää SSH-asiakasohjelmaa, joka tarjoaa pelkästään tekstipohjaisen komentoriviyhteyden Roihussa toimivaan Linux-järjestelmään. Ellet kuitenkaan tunne tätä hyvin, suosittelemme Roihun selainkäyttöliittymää, johon pääsee verkkoselaimella osoitteessa www.roihu.csc.fi. Sinne kirjaudutaan yleensä Hakalla, samalla tavalla kuin MyCSC:hen. Tässä vaiheessa sinua voidaan pyytää syöttämään myös monivaiheisen tunnistautumisen (MFA) koodi.

Roihu-tilin aktivointi ei tapahdu heti

Jos olet juuri luonut tilisi muutama minuutti sitten, voi olla, että sitä ei ole vielä aktivoitu Roihussa. Käy hakemassa kahvia tai muuta haluamaasi juotavaa ja yritä uudelleen muutaman minuutin kuluttua!   ☕

Kirjautumisen jälkeen näet Roihun selainkäyttöliittymän, joka näyttää suunnilleen tältä:

Roihu web interface front page

Jos Roihun selainkäyttöliittymä (perustuu Open OnDemandiin) ei ole sinulle tuttu, käytä hetki sen toimintojen tutustumiseen.

Toistaiseksi tärkeimmät tarkistettavat asiat ovat:

  • Files-valikko, jonka pitäisi näyttää useita levyalueita käyttöösi: henkilökohtainen Home directory sekä projappl- ja scratch-hakemistot jokaiselle projektillesi.

  • ToolsLogin node shell, jolla käynnistät päätesession Roihussa. Täältä voit suorittaa Linux-komentoja.

Roihussa on erilliset CPU- ja GPU-puolet

Roihussa on erilliset CPU- ja GPU-puolet, nimeltään Roihu-CPU ja Roihu-GPU. GPU:iden lisäksi Roihu-GPU:ssa on myös erilainen CPU-arkkitehtuuri, minkä vuoksi on tärkeää valita oikea kirjautuminen sen mukaan, aiotko käyttää GPU:ita vai et.

GPU:t – tekoälyyn ja koneoppimiseen tarvittavat kiihdytinkortit

Jos et ole varma, tarvitsetko GPU:ita, tarkista käyttämäsi ohjelmisto. Mainitaanko siinä GPU-tuki? Esimerkiksi PyTorch ja TensorFlow hyötyvät tyypillisesti GPU:ista. Yleinen nyrkkisääntö on, että kaikki neuroverkkoja käyttävä (esimerkiksi tekoälysovellukset) hyötyy yleensä GPU:ista. Tässä opastuksessa käytämme Roihu-GPU:ta.

Vaihe 4: Kopioi koodisi Roihuun

On suositeltavaa säilyttää koodisi sen projektin projappl-hakemistossa, johon koodisi kuuluu, esimerkiksi /projappl/project_2001234/. Voit siirtyä tähän sijaintiin Roihun selainkäyttöliittymän tiedostoselaimessa.

Jos sinulla on koodia omalla tietokoneellasi, yksi vaihtoehto on käyttää "Upload"-painiketta tiedostoselaimen oikeassa yläkulmassa.

Meidän tapauksessamme kloonaamme koodin GitHub-repositoriosta, ja sitä varten meidän täytyy avata päätesessio. Napsauta tiedostoselaimessa "Open in Terminal" tai käynnistä Login node shell (Roihu-GPU) Tools-valikosta. Kirjoita sitten seuraavat komennot (ja paina ENTER jokaisen rivin lopuksi):

cd /projappl/project_2001234
git clone https://github.com/CSCfi/pytorch-cifar10-example

Tämän pitäisi luoda kopio annetun GitHub-repositorion koodista Roihun levylle. Voit nyt siirtyä vastaluotuun hakemistoon joko päätteen kautta tai tiedostoselaimella.

Esimerkkikoodi

Olemme tässä tarjonneet esimerkkikoodia yksinkertaisen neuroverkon opettamiseen CIFAR10-datalla. Voit tietenkin korvata sen omalla koodillasi, esimerkiksi omalta tietokoneeltasi.

Tiedostoselaimessa voit tarkastella tiedostoa napsauttamalla sitä. Tarkista erityisesti päälähdekoodi tiedostossa cifar10_cnn.py. Tiedoston loppupuolella näet komentorivivalinnat. Huomaa, että --data_path on pakollinen valinta; se on polku siihen, missä aineisto sijaitsee.

Tiedostoselaimessa voit muokata tiedostoa napsauttamalla tiedostokohtaista valikkoa (kolme pistettä) ja valitsemalla Edit, kuten alla on esitetty.

How to edit a file in Roihu web

Vaihe 5: Kopioi datasi Roihuun

On suositeltavaa säilyttää opetusdata projektin scratch-hakemistossa, esimerkiksi /scratch/project_2001234/. Muista, että scratch-alue siivotaan säännöllisesti, joten älä säilytä siellä mitään tärkeää. Aineistoilla tulisi yleensä olla toinen pysyvämpi sijainti, kuten Allas säilytystä varten projektin elinkaaren ajan.

Voit siirtyä kohtaan /scratch/project_2001234/ Files-selaimessa Roihun selainkäyttöliittymässä. Tässä haemme aineiston julkisesta Allas-ämpäristä komennolla wget. wget-komentoa voidaan käyttää minkä tahansa URL-osoitteen omaavien tiedostojen lataamiseen.

Kirjoita komento aineiston lataamiseksi (avaa pääte kuten vaiheessa 4, jos et ole vielä tehnyt sitä):

cd /scratch/project_2001234
wget https://a3s.fi/mldata/cifar-10-python.tar.gz

Ladattu tiedosto on pakattu arkisto CIFAR10-aineistosta Python-ystävällisessä muodossa.

Seuraavaksi voisit purkaa arkiston, mutta tässä esimerkissä olemme päättäneet olla tekemättä niin. Sen sijaan puramme tiedostot nopealle paikalliselle levylle jokaisen ajon alussa. Lisää tästä seuraavassa osiossa.

Vaihe 6: Tarkista, mitä Python-kirjastoja tarvitset

Ennen koodisi suorittamista sinun kannattaa tarkistaa, mitä Python-kehyksiä tai -kirjastoja tarvitset. Jos käytät Internetistä lataamaasi koodia, siellä on yleensä asennusohjeita tai requirements.txt-tiedosto, joka kertoo, mitä Python-kirjastoja tarvitaan. Muista, että usein asennusohjeita ei pidä noudattaa täsmälleen sellaisinaan, koska niissä oletetaan usein, että asennat ohjelmistoa henkilökohtaiselle tietokoneelle.

CSC tarjoaa monia valmiiksi asennettuja Python-ympäristöjä suosittuja kehyksiä ja kirjastoja varten. Niitä kannattaa yleensä käyttää lähtökohtana, vaikka ne eivät sisältäisikään kaikkia tarvitsemiasi paketteja. Katso luettelo CSC:n supertietokoneilla tarjolla olevista data-analytiikan ja koneoppimisen moduuleista.

Esimerkiksi PyTorchilla ja TensorFlow’lla on omat erilliset moduulinsa, kun taas Python Data on yleinen moduuli, joka sisältää monia data-analyysin kirjastoja, kuten numpy, SciPy, Scikit-learn, Dask, JupyterLab ja monia muita. Nämä ohjelmistoympäristöt voidaan aktivoida komennolla module load. Katso yllä luetelluilta dokumentaatiosivuilta tarkemmat tiedot.

Jos löydät moduulin, jossa on suurin osa tarvitsemastasi, mutta muutama paketti puuttuu, voit helposti asentaa ne itse (kotihakemistoosi) komennolla pip install yhdessä Pythonin virtuaaliympäristön ("venv") kanssa. Katso Python-dokumentaatiostamme lisätietoja pakettien asentamisesta itse.

Jos ohjelmistotarpeesi ovat monimutkaisemmat eikä niitä ole helppo kattaa nykyisillä moduuleillamme, on aina mahdollista luoda omia Python-ympäristöjäsi. Jos et ole varma, mitä tehdä, voit aina ottaa yhteyttä asiakastukeemme.

Vaihe 7: Luo ensimmäinen eräajon komentotiedosto

Roihu on supertietokoneklusteri, mikä tarkoittaa, että se on satojen tietokoneiden kokoelma. Ohjelmia ei ajeta suoraan, vaan ne laitetaan jonoon, ja ajastusjärjestelmä (nimeltään "Slurm") päättää, milloin ja missä ohjelma suoritetaan.

Jotta ohjelma voidaan suorittaa Slurmissa, meidän täytyy määritellä eräajon komentotiedosto. Tämä on vain tekstitiedosto, joka sisältää joukon Slurm-valintoja määrittelemään ohjelmalle tarvitsemamme resurssit sekä varsinaiset komennot, joilla ohjelma suoritetaan. Voit lukea lisää eräajon komentotiedostojen määrittelystä erilliseltä dokumentaatiosivultamme.

Tiedostosta run-cifar10.sh koodihakemistossamme löydät esimerkin eräajon komentotiedostosta:

#!/bin/bash
#SBATCH --account=project_2001234
#SBATCH --partition=gputest
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=72
#SBATCH --time=15
#SBATCH --gres=gpu:gh200:1

module purge
module load python-pytorch/2.13

tar xf /scratch/project_2001234/cifar-10-python.tar.gz -C $TMPDIR

srun python3 cifar10_cnn.py --data_path=$TMPDIR/cifar-10-batches-py

Tämä suorittaa työn gputest-osiossa käyttäen 72 CPU-ydintä ja yhtä NVIDIA GH200 GPU:ta. CPU- ja GPU-muistin määrä on automaattisesti suurin mahdollinen (96 Gt GPU-muistia, 120 Gt CPU-muistia). Työn enimmäiskesto on 15 minuuttia. Itse asiassa 15 minuuttia on pisin ajoaika, jonka voit pyytää gputest-osiossa, koska se on tarkoitettu vain lyhyisiin testiajoihin.

#SBATCH-valintojen alapuolella näet varsinaiset komennot. Komentotiedostomme tekee kolme asiaa:

  1. Lataa python-pytorch-moduulin tietyllä versiolla (ja ensin poistaa kaikki muut aiemmin ladatut moduulit)
  2. Purkaa CIFAR10-aineiston scratch-alueella olevasta arkistosta nopealle paikalliselle levylle. Nopean paikallisen levyn polku löytyy ympäristömuuttujasta $TMPDIR. Scratch-alueen polku vaihtelee projektin nimen mukaan, joten sinun täytyy muokata komentotiedostoa asettaaksesi oikean polun omaan tapaukseesi.
  3. Lopuksi se suorittaa varsinaisen Python-skriptin käyttäen argumentissa --data_path annettua polkua siihen, missä data sijaitsee. Huomaa, että data on nyt nopealla paikallisella levyllä.

Nopean paikallisen tallennustilan käyttö on hyvä ajatus

Sinun ei tarvitse käyttää nopeaa paikallista levyä ($TMPDIR) kuten tässä esimerkissä, mutta se on hyvä käytäntö, koska suuren tiedostomäärän lukeminen jaetusta tiedostojärjestelmästä (kuten scratchista ja projapplista) voi aiheuttaa heikon suorituskyvyn ja ääritapauksissa heikentää suorituskykyä kaikille käyttäjille. Lue lisää tiedostojärjestelmän tehokkaasta käytöstä koneoppimisen oppaastamme.

Vaihe 8: Suorita ensimmäinen testiajo

Suorittaaksesi komentotiedoston eli lähettääksesi sen Slurm-jonoon, suorita komento (koodihakemistosta):

sbatch run-cifar10.sh

Jos lähetys onnistui, sen pitäisi ilmoittaa jotakin tämän kaltaista:

Submitted batch job 12345678

Jos näet sen sijaan jonkin virheilmoituksen, katso yleisten eräajovirheiden sivuamme. Jos et löydä sieltä ratkaisua, älä epäröi ottaa yhteyttä asiakastukeemme.

Voit tarkistaa käynnissä olevan työsi joko päätteestä:

squeue -l --me

tai Roihun selainkäyttöliittymän valikosta JobsActive Jobs.

Vaihe 9: Tarkista työn tuloste

Kun työ on päättynyt, sen tulosteen pitäisi ilmestyä tiedostoon, jonka nimi on jotakin kuten slurm-12345678.out, missä numero on työsi eräajon tunniste (tulostetaan lähetyshetkellä). Voit tarkastella tätä tiedostoa napsauttamalla sitä tiedostoselaimessa tai käyttämällä esimerkiksi komentorivillä less-komentoa (paina 'q' poistuaksesi less:stä).

Kun olet tyytyväinen siihen, että työ toimii kuten pitääkin, voit ajaa sen varsinaisessa gpumedium-osiossa, joka sallii yli 15 minuutin pituiset työt. Muokkaa vain run-cifar10.sh-tiedostoa vaihtaaksesi osion arvoksi gpumedium ja lähetä työ uudelleen.

Huomaa, että voit lähettää monta työtä samaan aikaan, esimerkiksi eri parametreilla. Älä kuitenkaan lähetä satoja töitä samanaikaisesti.

Vaihe 10: Lisälukemista ja avun saaminen

Nyt kun olet päässyt alkuun, saatat olla kiinnostunut tutustumaan muuhun dokumentaatioomme. Esimerkiksi:

Jos sinulla on kysyttävää tästä oppaasta tai muita ongelmia koneoppimisen käytön aloittamisessa CSC:n palveluissa, älä epäröi ottaa yhteyttä asiakastukeemme.

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta