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 scratch is very full: keep only active data there and move or delete everything else. No new Puhti scratch quota will be granted.

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. Malliskriptit rinnakkaisille R-eräajoille löytyvät nyt erilliseltä ohjesivulta Esimerkkejä rinnakkaisista R-eräajoskripteistä.
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ä napsauttamalla)

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 kaikkein muistisyöpimpiä tehtäviä lukuun ottamatta. Puhtiin tottuneiden käyttäjien kannattaa huomata, 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 asiakastukeen.

Saatavuus

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-osiossa ajettavilla interaktiivisilla ajoilla on tietyt resurssirajat (aika, muisti, CPU-ytimet). Katso Roihun käytettävissä olevat resurssit, Puhdin ja Mahdin.

Ei-interaktiivinen käyttö

  • Ei-interaktiiviset eräajot ilman varattujen laskentaresurssien rajoituksia (muita kuin ne, jotka koskevat kyseistä CSC:n supertietokonetta yleisesti)

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

  • Interaktiivinen käyttö on tarkoitettu koodin valmisteluun ja pienempiin analyyseihin, jotka kestävät enintään muutamia tunteja, ja siinä resurssit voivat olla rajalliset.
  • 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 etäkäynnistämiseen verkkoselaimessa.

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

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 kuluttaa kohtuullisen määrän laskentaresursseja. Pitkät, paljon muistia vaativat tai muuten raskaat tehtävät kannattaa tehdä ei-interaktiivisina eräajoina.

2. R-konsoli interaktiivisessa komentotulkkisessiossa

Jos haluat käyttää R:ää interaktiivisesti komentoriviltä laskentasolmulla, käynnistä ensin interaktiivinen komentotulkkisessio.

Interaktiivisen komentotulkkisession käynnistäminen (näytä ohjeet napsauttamalla)

Vaihtoehto 1. Avaa supertietokoneiden selainkäyttöliittymissä komentotulkkisessio 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 komentotulkkisessio käyttäen sinteractive-komentoa. Esimerkiksi alla oleva komento käynnistäisi session, jossa on 4 Gt muistia ja 8 Gt paikallista levytilaa (Puhdissa ja Mahdissa).

Jokainen ydin antaa 1,875 Gt muistia. Jos tarvitset enemmän 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-osiossa.

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 komentotulkkisession, voit käynnistää R:n komentoriviversion seuraavasti (huomaa, että komento täytyy suorittaa 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ää kirjautumissolmulla myös kevyisiin tehtäviin. Käytä tätä vaihtoehtoa vain datan siirtämiseen, pakettien saatavuuden tarkistamiseen ja pakettien asentamiseen. Kirjautumissolmuja ei ole tarkoitettu raskaaseen laskentaan.

Käynnistä R-konsoli kirjautumissolmulla suorittamalla 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 lisätietoja yleisestä eräajodokumentaatiosta. 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.

R-eräajoskriptin perusteet

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-osiossa. Katso lisätietoja 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-ajoille)
#SBATCH --nodes=1               # Solmujen määrä (muuta tätä vain monisolmu-/MPI-ajoille)
#SBATCH --mem-per-cpu=2000M     # Varattava muisti CPU-ydintä kohti

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

# Suorita 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-ajoille)
#SBATCH --nodes=1               # Solmujen määrä (muuta tätä vain monisolmu-/MPI-ajoille)
#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

# Suorita 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 kutakin kohti)
#SBATCH --ntasks=1              # Tehtävien määrä (muuta tätä vain monisolmu-/MPI-ajoille)
#SBATCH --nodes=1               # Solmujen määrä (muuta tätä vain monisolmu-/MPI-ajoille)

# 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

# Suorita 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).

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ä osioissa small, interactive ja test. Tätä tallennustilaa käytetään ympäristömuuttujan $TMPDIR kautta.

Jos R-ajosi tuottavat erittäin paljon tai erittäin suuria väliaikaistiedostoja, jotka ylittävät 20 GiB, ohjaa väliaikaistiedostot projektisi /scratch-hakemistoon alla olevan esimerkin mukaisesti tai nopeaan paikalliseen scratch-tallennustilaan (toistaiseksi saatavilla Roihussa vain täysiä solmuja käyttäville ajoille). Huomaa, että täyden solmun ajot medium-osiossa 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, mikä haittaa 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, mikä haittaa sinun ja muiden käyttäjien ajoja.

Kun tiedosto on valmis, se 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äytettynä foreach-paketin kanssa) ja pbdMPI.

Katso erillinen dokumentaatio seuraavista:

Lisäneuvoja rinnakkaisista R-ajoista ja niiden tehokkaasta suorittamisesta CSC:n supertietokoneilla saat ottamalla yhteyttä CSC:n asiakastukeen.

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:n asiakastukeen

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 suorittamalla R:ssä:

.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 ajaksi. Toisin sanoen sinun täytyy suorittaa se joka kerta, kun käynnistät R:n.

Kun olet noudattanut yllä olevia ohjeita, pakettiasennusten pitäisi nyt oletuksena ohjautua 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 esimerkin 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:ä, käyttäjän määrittämät muutokset R:n kirjastopolkuihin täytyy määrittää R-istunnon sisällä tai .Renviron-tiedoston kautta. 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 suuren määrän 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-osioissa 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 sitä käytetään ympäristömuuttujan $TMPDIR kautta. 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

# Suorita 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

# Suorita 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 Bayes-päättelyä käyttäen, kuten rstan ja cmdstanr.

R:n käyttö CmdStan-taustaosan kanssa

r-env-moduulin mukana tulee erillinen CmdStan -asennus, joka on sidottu jokaiseen moduuliversioon. Sen käyttämiseksi täytyy asettaa oikea polku CmdStaniin käyttäen cmdstanr-pakettia. 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 suorittaa 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 sessiossa, 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-taustaosan 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:n asiakastukeen saadaksesi ohjeet.

Säieaffiniteettimuuttujan APPTAINERENV_OMP_PLACES=cores on havaittu häiritsevän rstan-pakettia käyttäviä rinnakkaisajoja. Suosittelemme tällä hetkellä, että tätä muuttujaa ei käytetä Stania hyödyntävissä 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 lukemalla profiloinnista profvisillä RStudiossa ja profiloinnista R:ssä 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:n asiakastukeen saadaksesi neuvoja.

Työskentely Altaan 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 suorittamalla nämä komennot terminaalissa:

module load allas
allas-conf --mode s3cmd

Voit nyt käyttää ä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, suorita seuraava komento R:ssä. Kun sinulta kysytään olemassa olevasta LaTeX-jakelusta, valitse y eli kyllä jatkaaksesi asennusta siitä huolimatta.

tinytex::install_tinytex()

Viittaaminen

Jos 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