Hyppää sisältöön

Docs CSC now features an automatic Finnish translation. Click here for more information.

Warning!

Puhti and Mahti are being decommissioned in stages, and their storage areas will become fully unavailable from 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.

Puhti computing services have been decommissioned and no new jobs are accepted or executed on its compute nodes. Puhti login nodes and storage services are planned to remain available until 15 October 2026.

r-env

r-env tarjoaa R:n ja RStudio Serverin sekä useita muita ominaisuuksia niiden käytön helpottamiseksi. Se toimii Apptainer-kontissa.

Uutiset

25.5.2026 r-env-dokumentaatio on päivitetty sisältämään ohjeet R:n käyttöön Roihu-supertietokoneella.
29.4.2026 r-env-dokumentaatio on päivitetty ja järjestelty uudelleen. Rinnakkaisten R-eräajojen malliskriptit löytyvät nyt erilliseltä ohjesivulta Esimerkkejä rinnakkaisista R-eräajoista.
17.2.2026 R-versio 4.5.2 on nyt saatavilla r-env:ssä Puhdissa ja Mahdissa, ja se on asetettu oletusversioksi.

Vanhemmat uutiset (näytä klikkaamalla)

22.7.2025 R-versio 4.5.1 on nyt saatavilla r-env:ssä Puhdissa ja Mahdissa, ja se on asetettu oletusversioksi.

7.4.2025 r-env on nyt saatavilla myös Mahdissa, mukaan lukien RStudio Mahdin selainkäyttöliittymässä. Moduuli toimii yleisesti ottaen samalla tavalla kuin r-env Puhdissa, mutta huomaa, että alla olevaa dokumentaatiota ei ole vielä päivitetty Mahdille. Mahdin uusi small-osio soveltuu monenlaiseen R- ja RStudio-työskentelyyn, pois lukien kaikkein muistisyöpimmät tehtävät. Puhtiin tottuneiden käyttäjien kannattaa huomioida, että Mahdissa ei ole erillistä muistivarausta, ja ainoa tapa saada lisää muistia on varata enemmän ytimiä. Jos sinulla on kysyttävää R:n käytöstä Mahdissa, ota yhteyttä CSC:n Service Deskiin.

Saatavilla

r-env sisältää yli 1700 esiasennettua R-pakettia, mukaan lukien tuki paikkatietoanalyyseille ja rinnakkaislaskennalle. Suorituskyvyn parantamiseksi r-env on käännetty käyttäen Intel® oneAPI Math Kernel Librarya (oneMKL) (entinen Intel® MKL).

Pieniä poikkeuksia lukuun ottamatta r-env:n R-pakettiversiot ovat päivämäärälukittuja (CRAN-paketit) tai sidottuja tiettyyn Bioconductor -versioon.

Nykyiset moduulit ja CSC:n supertietokoneilla tuetut versiot:

Moduulin nimi (R-versio) CRAN-pakettien päiväys Bioconductor-versio RStudio Server -versio oneMKL-versio Cmdstan-versio
r-env/452 (oletus) 4. huhtikuuta 2026 3.22 2026.01.0-392 2025.3.0 2.39.0
Moduulin nimi (R-versio) CRAN-pakettien päiväys Bioconductor-versio RStudio Server -versio oneMKL-versio Cmdstan-versio
r-env/452 (oletus) 7. tammikuuta 2026 3.22 2026.01.0-392 2025.3.0 2.38.0
r-env/451 7. heinäkuuta 2025 3.21 2025.05.1-513 2025.2.0 2.36.0
r-env/442 12. helmikuuta 2025 3.20 2024.12.0-467 2025.0.1 2.36.0
r-env/440 15. toukokuuta 2024 3.19 2024.04.0-735 2024.1.0 2.35.0
r-env/432 15. tammikuuta 2024 3.18 2023.12.0-369 2024.0.0 2.34.1
r-env/430 7. kesäkuuta 2023 3.17 2023.06.0-421 2023.1.0 2.32.2
r-env/422 6. maaliskuuta 2023 3.16 2023.03.0-386 2023.1.0 2.32.1
r-env/421 29. kesäkuuta 2022 3.15 2022.02.3-492 2022.1.0 2.30.1
Moduulin nimi (R-versio) CRAN-pakettien päiväys Bioconductor-versio RStudio Server -versio oneMKL-versio Cmdstan-versio
r-env/452 (oletus) 7. tammikuuta 2026 3.22 2026.01.0-392 2025.3.0 2.38.0
r-env/451 7. heinäkuuta 2025 3.21 2025.05.1-513 2025.2.0 2.36.0
r-env/442 12. helmikuuta 2025 3.20 2024.12.0-467 2025.0.1 2.36.0

Muut ohjelmistot ja kirjastot:

  • Open MPI (Mellanox OFED™ -ohjelmistolla) 4.1.9 (r-env/452 Roihu-CPU:ssa), 4.1.7 (r-env/452 Puhdissa ja Mahdissa, r-env/451), 4.1.2 (r-env/421:stä r-env/442:een)
  • TensorFlow 2.20.0 (r-env/452), 2.19.0 (r-env/451), 2.18.0 (r-env/442), 2.9.1 (r-env/421:stä r-env/440:een)
  • cget 0.2.0

Lisenssit

Lisenssitiedot r-env-kontin sisällä ovat saatavilla tiedostossa /usr/licensing.txt.

Käyttö

R:ää voi käyttää r-env-moduulilla useilla tavoilla:

Interaktiivinen käyttö

interactive-osiolla ajettavilla interaktiivisilla ajoilla on omat resurssirajoituksensa (aika, muisti, CPU-ytimet). Katso Roihun käytettävissä olevat resurssit ja Mahdin resurssit.

Ei-interaktiivinen käyttö

  • Ei-interaktiiviset eräajot ilman varattuihin laskentaresursseihin kohdistuvia rajoituksia (muita kuin kyseiseen CSC:n supertietokoneeseen yleisesti sovellettavia)

Miten minun kannattaa käyttää R:ää r-env:n kanssa?

  • Interaktiivinen käyttö on tarkoitettu koodin valmisteluun ja pienempiin, enintään muutaman tunnin analyyseihin, ja siinä voi olla rajalliset resurssit.
  • Ei-interaktiiviset eräajot tarjoavat enemmän resursseja, ja niitä tulisi käyttää erityisesti pitkiin tai paljon resursseja vaativiin tehtäviin.

Interaktiivinen käyttö laskentasolmulla

1. RStudio

r-env-moduulia voidaan käyttää RStudio Serverin käynnistämiseen etänä verkkoselaimessa.

Suositeltu tapa käynnistää RStudio on käyttää supertietokoneen selainkäyttöliittymää. Katso myös erillinen dokumentaatio selainkäyttöliittymän RStudioon.

RStudio Serverin voi käynnistää myös SSH-tunneloinnin kautta Puhdissa ja Mahdissa. Tämä vaihtoehto edellyttää tunnistautumista Secure Shell (SSH) -avaimella. Yksityiskohtaiset ohjeet löytyvät erillisestä RStudio Serverin käyttöohjeesta.

RStudio on tarkoitettu interaktiiviseen työskentelyyn, joka käyttää kohtuullisen vähän laskentaresursseja. Pitkät, paljon muistia vaativat tai muuten raskaat tehtävät kannattaa tehdä ei-interaktiivisina eräajoina.

2. R-konsoli interaktiivisessa komentotulkki-istunnossa

Jos haluat käyttää R:ää interaktiivisesti komentoriviltä laskentasolmulla, käynnistä ensin interaktiivinen komentotulkki-istunto.

Interaktiivisen komentotulkki-istunnon käynnistäminen (näytä ohjeet klikkaamalla)

Vaihtoehto 1. Avaa supertietokoneen selainkäyttöliittymissä komentotulkki-istunto Compute node shell -työkalulla. Resursseja valitessasi varmista, että varaat paikallista levytilaa väliaikaistiedostoille.

Vaihtoehto 2. Kun yhdistät supertietokoneeseen omalta työasemaltasi SSH-asiakasohjelmalla, avaa komentotulkki-istunto käyttäen sinteractive-komentoa. Esimerkiksi alla oleva komento käynnistäisi istunnon, jossa on 4 Gt muistia ja 8 Gt paikallista levytilaa (Puhdissa ja Mahdissa).

Jokainen ydin antaa 1,875 Gt muistia. Saadaksesi lisää muistia varaa enemmän ytimiä (enintään 32 ydintä 60 Gt muistille). Jokaisella käyttäjällä on oletuksena 20 Gt väliaikaista levytilaa interactive-osiolla.

sinteractive --account <project> --cores 2

Paikallista levytilaa tulee aina varata väliaikaistiedostoille valinnalla --tmp, kun R:ää käytetään interaktiivisesti.

sinteractive --account <project> --mem 4000 --tmp 8

Mahdissa jokainen ydin antaa 1,875 Gt muistia. Paikallista levytilaa tulee aina varata väliaikaistiedostoille valinnalla --tmp, kun R:ää käytetään interaktiivisesti.

sinteractive --account <project> --cores 2 --tmp 8

On mahdollista määrittää myös muita valintoja, mukaan lukien ajoaika (katso sinteractive-dokumentaatio).

Kun olet avannut interaktiivisen komentotulkki-istunnon, voit käynnistää R:n komentoriviversion seuraavasti (huomaa, että komento täytyy ajaa laskentasolmulla):

module load r-env
start-r
module load r-env
start-r
module load r-env
start-r

Interaktiivinen käyttö kirjautumissolmulla

R-konsolia on mahdollista käyttää myös kirjautumissolmulla kevyisiin tehtäviin. Käytä tätä vaihtoehtoa vain datan siirtämiseen, pakettien saatavuuden tarkistamiseen ja pakettien asentamiseen. Kirjautumissolmut eivät ole tarkoitettu raskasta laskentaa varten.

Käynnistä R-konsoli kirjautumissolmulla ajamalla seuraavat komennot:

module load r-env
R --no-save
module load r-env
apptainer_wrapper exec R --no-save
module load r-env
apptainer_wrapper exec R --no-save

Ei-interaktiiviset eräajot

R-skriptien ajaminen ei-interaktiivisesti eräajotiedostojen avulla antaa käyttöön enemmän resursseja ja painottaa tehokkuutta interaktiivisuuden sijaan. Eräajoja suositellaan erityisesti kaikkiin pitkiin ja paljon resursseja vaativiin tehtäviin.

Seuraavien esimerkkien lisäksi katso yleinen eräajodokumentaatio saadaksesi lisätietoa. Jos eräajot ovat sinulle uusia, tutustu CSc Computing Environment -kurssin eräajomateriaaleihin ja tähän ohjeeseen interaktiivisten R-ajojen ja R-eräajojen suorittamisesta.

Perus R-eräajoskripti

Alla on esimerkki sarjallisesta R-eräajosta, joka käyttää yhtä ydintä. Huomaa, että käytössä on test-osio, jonka aikaraja on 15 minuuttia ja jota käytetään vain testaustarkoituksiin. Varsinaiset R-eräajot tulisi useimmissa tapauksissa ajaa small-osiolla. Katso tarkemmat tiedot käytettävissä olevista eräajo-osioista Roihussa, Puhdissa ja Mahdissa.

Enemmän kuin yksi CPU-ydin?

Oletuksena R käyttää yhtä CPU-ydintä. Kun työskentelet R-skriptin tai -paketin kanssa, joka osaa hyödyntää useita ytimiä ja rinnakkaisprosessointia, tutustu rinnakkaisten R-eräajoskriptien esimerkkeihin.

Määrittelemme eräajoskriptin suorittamaan R-skriptin (tässä myscript.R). Puhdissa ja Mahdissa käytämme apptainer_wrapper-komentoa, joka varmistaa, että projektihakemistot näkyvät siinä Apptainer-kontissa, jossa r-env toimii.

#!/bin/bash
#SBATCH --job-name=r_serial     # Ajon nimi
#SBATCH --account=<project>     # Määritä laskutusprojekti, esim. project_2001234
#SBATCH --output=output_%j.txt  # Tiedosto tulosteelle (%j on ajon tunniste)
#SBATCH --error=errors_%j.txt   # Tiedosto virheille (%j on ajon tunniste)
#SBATCH --partition=test        # Ajo-osio (jono), käytä yleensä 'small'
#SBATCH --time=00:05:00         # Ajon enimmäiskesto (hh:mm:ss)
#SBATCH --cpus-per-task=1       # Ytimien määrä
#SBATCH --ntasks=1              # Tehtävien määrä (muuta tätä vain monisolmu-/MPI-ajoissa)
#SBATCH --nodes=1               # Solmujen määrä (muuta tätä vain monisolmu-/MPI-ajoissa)
#SBATCH --mem-per-cpu=2000M     # Varattava muisti CPU-ydintä kohti

# Lataa r-env-moduuli
module load r-env

# Aja R-skripti
srun Rscript --no-save myscript.R
#!/bin/bash
#SBATCH --job-name=r_serial     # Ajon nimi
#SBATCH --account=<project>     # Määritä laskutusprojekti, esim. project_2001234
#SBATCH --output=output_%j.txt  # Tiedosto tulosteelle (%j on ajon tunniste)
#SBATCH --error=errors_%j.txt   # Tiedosto virheille (%j on ajon tunniste)
#SBATCH --partition=test        # Ajojono (osio): käytä yleensä 'small'
#SBATCH --time=00:05:00         # Ajon enimmäiskesto (hh:mm:ss)
#SBATCH --cpus-per-task=1       # Ytimien määrä
#SBATCH --ntasks=1              # Tehtävien määrä (muuta tätä vain monisolmu-/MPI-ajoissa)
#SBATCH --nodes=1               # Solmujen määrä (muuta tätä vain monisolmu-/MPI-ajoissa)
#SBATCH --mem-per-cpu=2000      # Varattava muisti ydintä kohti

# Lataa r-env-moduuli
module load r-env

# Siivoa kotihakemiston .Renviron-tiedosto
if test -f ~/.Renviron; then
    sed -i '/TMPDIR/d' ~/.Renviron
fi

# Määritä väliaikaishakemiston polku (korvaa <project> projektillasi)
echo "TMPDIR=/scratch/<project>" >> ~/.Renviron

# Aja R-skripti
srun apptainer_wrapper exec Rscript --no-save myscript.R
#!/bin/bash
#SBATCH --job-name=r_serial     # Ajon nimi
#SBATCH --account=<project>     # Määritä laskutusprojekti, esim. project_2001234
#SBATCH --output=output_%j.txt  # Tiedosto tulosteelle (%j on ajon tunniste)
#SBATCH --error=errors_%j.txt   # Tiedosto virheille (%j on ajon tunniste)
#SBATCH --partition=test        # Ajojono (osio), käytä yleensä 'small'
#SBATCH --time=00:05:00         # Ajon enimmäiskesto (hh:mm:ss)
#SBATCH --cpus-per-task=1       # Ytimien määrä (1,875 Gt muistia kukin)
#SBATCH --ntasks=1              # Tehtävien määrä (muuta tätä vain monisolmu-/MPI-ajoissa)
#SBATCH --nodes=1               # Solmujen määrä (muuta tätä vain monisolmu-/MPI-ajoissa)

# Lataa r-env-moduuli
module load r-env

# Siivoa kotihakemiston .Renviron-tiedosto
if test -f ~/.Renviron; then
    sed -i '/TMPDIR/d' ~/.Renviron
fi

# Määritä väliaikaishakemiston polku (korvaa <project> projektillasi)
echo "TMPDIR=/scratch/<project>" >> ~/.Renviron

# Aja R-skripti
srun apptainer_wrapper exec Rscript --no-save myscript.R

Yllä olevassa esimerkissä yksi tehtävä (--ntasks=1) suoritetaan yhdellä CPU-ytimellä (--cpus-per-task=1), 2 Gt muistilla (--mem-per-cpu=2000M) ja viiden minuutin ajoajalla (--time=00:05:00), jotka on varattu ajolle.

Komento module load r-env lataa uusimman saatavilla olevan r-env-version. Jos haluat määrittää ladattavan moduuliversion, käytä komentoa module load r-env/<version>, esimerkiksi module load r-env/452.

Tärkeää: varmista, että R-eräajollasi on riittävästi levytilaa väliaikaistiedostoille

Jokaisella käyttäjällä on oletuksena 20 GiB väliaikaista tallennustilaa paikallisella levyllä osioilla small, interactive ja test. Tähän tallennustilaan pääsee ympäristömuuttujalla $TMPDIR.

Jos R-ajosi tuottavat erittäin paljon tai erittäin suuria väliaikaistiedostoja, jotka ylittävät 20 GiB, ohjaa väliaikaistiedostot alla olevan esimerkin mukaisesti projektisi /scratch-hakemistoon tai nopeaan paikalliseen scratch-tallennustilaan (ei tällä hetkellä saatavilla Roihussa). Huomaa, että kokonaisen solmun ajot medium-osiolla tarjoavat oletuksena 600 GiB väliaikaista tallennustilaa.

# Lisää tämä rivi eräajoskriptiin ohjataksesi väliaikaistiedostot projektisi /scratch-hakemistoon
# (korvaa <project> projektillasi)

echo "TMPDIR=/scratch/<project>" >> ~/.Renviron

Varmista, että määrität väliaikaishakemiston polun projektisi scratch-hakemistoon /scratch/<project> kuten yllä olevassa esimerkissä. Tai jos ajosi lukee ja kirjoittaa paljon tiedostoja, käytä sen sijaan nopeaa paikallista levyä. Muuten väliaikaistiedostot menevät hakemistoon /tmp, jossa on rajallisesti tilaa ja joka täyttyy helposti, haitaten sinun ja muiden käyttäjien ajoja.

Varmista, että määrität väliaikaishakemiston polun projektisi scratch-hakemistoon /scratch/<project> kuten yllä olevassa esimerkissä. Tai jos ajosi lukee ja kirjoittaa paljon tiedostoja, käytä sen sijaan nopeaa paikallista levyä. Muuten väliaikaistiedostot menevät hakemistoon /tmp, jossa on rajallisesti tilaa ja joka täyttyy helposti, haitaten sinun ja muiden käyttäjien ajoja.

Kun tiedosto on valmis, eräajotiedosto lähetetään eräajo järjestelmään kirjautumissolmulta:

sbatch batch_job_file.sh

Rinnakkaiset eräajot

r-env-moduulia voidaan käyttää rinnakkaislaskentaan useilla tavoilla. Näihin kuuluvat moniydin- ja taulukkolähetykset sekä MPI (Message Passing Interface) -pohjaiset ja moni-solmuajot. Moduulin mukana tulee useita paketteja, jotka tukevat monisolmuviestintää MPI:n kautta: future, snow, doMPI (käytetään yhdessä foreach-paketin kanssa) ja pbdMPI.

Katso erillinen dokumentaatio seuraavista aiheista:

Lisäneuvoja rinnakkaisista R-ajoista ja niiden tehokkaasta ajamisesta CSC:n supertietokoneilla saat ottamalla yhteyttä CSC Service Deskiin.

R-pakettien asennukset

r-env sisältää yli 1500 esiasennettua R-pakettia. Jos haluat tarkistaa, onko tietty paketti jo asennettu, helpoin tapa on yrittää ladata se:

library(packagename)

Jos et halua ladata pakettia, voit myös hakea sitä listasta:

installed_packages <- library()$results[,1]
"packagename" %in% installed_packages

Lisää R-paketteja voidaan asentaa kahta reittiä pitkin:

  • Asenna paketti itse projektillesi erilliseen pakettihakemistoon /projappl/<project>-hakemistossa (ohjeet alla)

  • Pyydä yleistä asennusta (tarjotaan kaikille käyttäjille osana moduulia): ota yhteyttä CSC Service Deskiin

Jos haluat asentaa paketin itse projektillesi:

Luo ensin uusi kansio projektisi projappl -hakemistoon. Huomaa, että kansion tulee olla käytössäsi olevalle R-versiolle oma. Eri r-env- ja R-versio vaativat uuden asennuksen. Komentokehotteessa:

cd /projappl/<project>
mkdir project_rpackages_<rversion>

Tämän jälkeen voit lisätä kansion R:n kirjastopolkuihin ajamalla R:ssä seuraavan komennon:

.libPaths(c("/projappl/<project>/project_rpackages_<rversion>", .libPaths()))
Jos haluat käyttää /projappl-hakemistoon asennettuja R-paketteja, lisää yllä oleva komento R-skriptisi alkuun. Se muokkaa kirjastopolkuja vain kyseisen R-istunnon aikana. Toisin sanoen sinun täytyy ajaa se joka kerta, kun käynnistät R:n.

Yllä olevien ohjeiden jälkeen pakettiasennusten pitäisi nyt oletuksena kohdistua projektikansioon. Seuraavalla komennolla voit tarkistaa, että kansio näkyy R:lle. Sen pitäisi olla listan ensimmäisenä.

.libPaths() 

Voit tarvittaessa määrittää polun myös asennuskomennossa:

libpath <- .libPaths()[1]
install.packages("package", lib = libpath)

R-version voi hakea myös automaattisesti käyttäen getRversion()-funktiota. Esimerkiksi:

.libPaths(paste0("/projappl/<project>/project_rpackages_", gsub("\\.", "", getRversion()))) 

Jotta .libPaths-asetusta ei tarvitsisi tehdä joka kerta R:ää käynnistettäessä, voit lisätä halutut muutokset .Renviron-tiedostoon alla olevan mukaisesti. Tätä lähestymistapaa suositellaan erityisesti, jos asentamaasi pakettia käytetään rinnakkaisprosessoinnissa, jotta kaikki prosessit näkevät paketin.

echo "R_LIBS=/projappl/<project>/project_rpackages_<rversion>" >> ~/.Renviron

Kun käytät r-env:iä, käyttäjän määrittämät muutokset R:n kirjastopolkuihin täytyy määrittää R-istunnon sisällä tai .Renviron-tiedostoon liittyen. Muut muutokset (esim. ympäristömuuttujien muokkaaminen export-komennolla) eivät toimi, koska R-asennus toimii Apptainer-kontin sisällä. Jos analyysisi vaatisi muutoksia, joita ei voi toteuttaa yllä kuvatuilla tavoilla, ota yhteyttä meihin moduulinlaajuista pakettiasennusta varten.

Nopean paikallisen tallennustilan käyttö

Ajoissa, jotka lukevat ja kirjoittavat suuria määriä tiedostoja (I/O-intensiiviset analyysit), voidaan käyttää nopeaa paikallista tallennustilaa ei-interaktiivisissa eräajoissa pienin muutoksin eräajotiedostoon. Interaktiiviset R-ajot käyttävät nopeaa paikallista tallennustilaa oletuksena.

Alla on esimerkki sarjallisesta eräajosta, joka käyttää 10 Gt nopeaa paikallista tallennustilaa (--gres=nvme:10) Puhdissa ja Mahdissa. Tässä väliaikaishakemisto määritetään ympäristömuuttujalla TMPDIR, toisin kuin aiemmassa esimerkissä, jossa se asetettiin arvoon /scratch/<project>.

Roihun CPU-osioilla small, interactive ja test jokaisella käyttäjällä on oletuksena 20 GiB väliaikaista paikallista tallennustilaa. Tämä tallennustila soveltuu I/O-intensiivisiin tehtäviin, ja siihen pääsee käsiksi ympäristömuuttujalla $TMPDIR. Jos tarvitset enemmän tallennustilaa I/O-intensiivisiin tehtäviin, katso ohjeet nopeasta paikallisesta scratch-tallennustilasta Roihussa.

#!/bin/bash -l
#SBATCH --job-name=r_serial_fastlocal
#SBATCH --account=<project>
#SBATCH --output=output_%j.txt
#SBATCH --error=errors_%j.txt
#SBATCH --partition=test
#SBATCH --time=00:05:00
#SBATCH --ntasks=1
#SBATCH --nodes=1
#SBATCH --cpus-per-task=1
#SBATCH --mem-per-cpu=1000
#SBATCH --gres=nvme:10

# Lataa moduuli
module load r-env

# Siivoa kotihakemiston .Renviron-tiedosto
if test -f ~/.Renviron; then
    sed -i '/TMPDIR/d' ~/.Renviron
fi

# Määritä väliaikaishakemisto nopeaan paikalliseen tallennustilaan
echo "TMPDIR=$TMPDIR" >> ~/.Renviron

# Aja R-skripti
srun apptainer_wrapper exec Rscript --no-save myscript.R
Väliaikaistiedostojen tallennuksen lisäksi analysoitavat aineistot voidaan tallentaa nopealle paikalliselle levylle sijaintiin, jonka määrittää muuttuja LOCAL_SCRATCH. Jotta R löytää datasi, sinun täytyy ilmoittaa tämä sijainti R-skriptissäsi. Kun olet käynnistänyt R:n, voit tulostaa sijainnin seuraavalla komennolla:

Sys.getenv("LOCAL_SCRATCH")

#!/bin/bash -l
#SBATCH --job-name=r_serial_fastlocal
#SBATCH --account=<project>
#SBATCH --output=output_%j.txt
#SBATCH --error=errors_%j.txt
#SBATCH --partition=test
#SBATCH --time=00:05:00
#SBATCH --ntasks=1
#SBATCH --nodes=1
#SBATCH --cpus-per-task=1 # Jokainen ydin antaa 1,875 Gt muistia
#SBATCH --gres=nvme:10

# Lataa moduuli
module load r-env

# Siivoa kotihakemiston .Renviron-tiedosto
if test -f ~/.Renviron; then
    sed -i '/TMPDIR/d' ~/.Renviron
fi

# Määritä väliaikaishakemisto nopeaan paikalliseen tallennustilaan
echo "TMPDIR=$TMPDIR" >> ~/.Renviron

# Aja R-skripti
srun apptainer_wrapper exec Rscript --no-save myscript.R
Väliaikaistiedostojen tallennuksen lisäksi analysoitavat aineistot voidaan tallentaa nopealle paikalliselle levylle sijaintiin, jonka määrittää muuttuja LOCAL_SCRATCH. Jotta R löytää datasi, sinun täytyy ilmoittaa tämä sijainti R-skriptissäsi. Kun olet käynnistänyt R:n, voit tulostaa sijainnin seuraavalla komennolla:

Sys.getenv("LOCAL_SCRATCH")

r-env:n käyttö Stanin kanssa

r-env-moduuli sisältää useita paketteja, jotka tarjoavat rajapinnan Staniin tilastollista mallinnusta varten käyttäen bayesilaista päättelyä, kuten rstan ja cmdstanr.

R:n käyttö CmdStan-taustaohjelman kanssa

r-env-moduulin mukana tulee erillinen CmdStan -asennus, joka on sidottu jokaiseen moduuliversioon. Sen käyttämiseksi oikea polku CmdStaniin täytyy asettaa cmdstanr:llä. Esimerkiksi r-env/452:lle tämä tehdään seuraavasti:

cmdstanr::set_cmdstan_path("/appl/soft/manual/aida/x86_64/r-env/452-stan/cmdstan-2.39.0")
Jos mallin kääntäminen epäonnistuu, kokeile ajaa module purge ennen R:n käynnistämistä.

cmdstanr::set_cmdstan_path("/appl/soft/math/r-env/452-stan/cmdstan-2.38.0")
cmdstanr::set_cmdstan_path("/appl/soft/math/r-env/452-stan/cmdstan-2.38.0")

Jos käytät CmdStania interaktiivisessa istunnossa, yllä oleva komento toimii suoraan. Ei-interaktiivisissa eräajoissa Puhdissa ja Mahdissa CmdStanin polku täytyy asettaa erikseen eräajotiedostossa. Tämä tehdään lisäämällä seuraavat komennot muun eräajotiedoston sisällön lisäksi:

Eräajoskriptissä ei tarvita Cmdstan-kohtaisia asetuksia.

# Set R version
export RVER=452

# Launch R after binding CmdStan
SING_FLAGS="$SING_FLAGS -B /appl/soft/math/r-env/${RVER}-stan:/appl/soft/math/r-env/${RVER}-stan"
srun apptainer_wrapper exec Rscript --no-save script.R
# Set R version
export RVER=452

# Launch R after binding CmdStan
SING_FLAGS="$SING_FLAGS -B /appl/soft/math/r-env/${RVER}-stan:/appl/soft/math/r-env/${RVER}-stan"
srun apptainer_wrapper exec Rscript --no-save script.R

Muut CmdStan-taustaohjelman käyttöön liittyvät yksityiskohdat ovat pakettikohtaisia. Yhtenä esimerkkinä sitä voisi käyttää brms -paketin kanssa:

# Note: this doesn't currently work in Roihu, but we are trying to find a solution. 

library(brms)

fit_serial <- brm(
  count ~ zAge + zBase * Trt + (1|patient),
  data = epilepsy, family = poisson(),
  chains = 4, cores = 4, backend = "cmdstanr"
)

Huomaa, että brms:n ketjunsisäinen rinnakkaistus vaatii projektikohtaisen CmdStan-asennuksen. Ota yhteyttä CSC Service Deskiin saadaksesi ohjeet.

Säieaffiniteettimuuttujan APPTAINERENV_OMP_PLACES=cores on havaittu häiritsevän rinnakkaisia ajoja, joissa käytetään rstan-pakettia. Suosittelemme tällä hetkellä, että tätä muuttujaa ei käytetä Stanin kanssa ajettavissa rinnakkaisissa R-ajoissa.

Profilointityökalut R:ssä

Yleisimmät profilointityökalut R:ssä ovat utils::Rprof() ja profvis. Kun yrität nopeuttaa R-ajoa, voit käyttää näitä työkaluja tunnistaaksesi skriptisi hitaimmat osat ja muokata sitten niitä. Esimerkiksi eri pakettien funktiot voivat käyttää eri määrän aikaa samankaltaiseen laskennalliseen tehtävään. Lisätietoa saat aloittamalla lukemisesta profiloinnista profvisillä RStudiossa ja R:n profiloinnista yleisesti.

Käytännössä yleensä paras tapa nopeuttaa R-ajoa supertietokoneella on muokata se käyttämään useita ytimiä ja ajamaan rinnakkain. Katso esimerkkejä rinnakkaisista R-eräajoskripteistä ja johdanto rinnakkaisiin R-ajoihin, ja ota yhteyttä CSC Service Deskiin saadaksesi neuvoja.

Työskentely Allaksen kanssa

r-env-moduulin mukana tulee aws.s3 -paketti S3-tallennuksen käyttöön, mikä mahdollistaa Allas-tallennusjärjestelmän käytön suoraan R-skriptistä. Katso tästä linkistä käytännön esimerkki rasteridatasta.

Allakseen pääsee käsiksi r-env-moduulin kautta seuraavasti. Määritä ensin Allas ajamalla nämä komennot terminaalissa:

module load allas
allas-conf --mode s3cmd

Voit nyt hakea ämpärilistasi seuraavasti. Huomaa, että jotta tämä toimisi, bucketlist()-funktioon täytyy lisätä argumentti region='':

Sys.setenv(AWS_S3_ENDPOINT="a3s.fi")
library(aws.s3)
bucketlist(region='')

Ongelmia pdf-renderöinnissä

Jos R Markdown- tai Quarto-dokumenttien pdf-renderöinti ei toimi, aja seuraava komento R:ssä. Kun sinulta kysytään olemassa olevasta LaTeX-jakelusta, valitse y eli yes jatkaaksesi asennusta siitä huolimatta.

tinytex::install_tinytex()

Viittaaminen

Kun haluat selvittää oikeat viittaukset R:lle ja eri R-paketeille, voit kirjoittaa:

citation() # for citing R
citation("package") # for citing R packages

Lisätietoja

Suomenkielinen tekoälykäännös

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

Klikkaa tästä antaaksesi palautetta