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.

Moduulijärjestelmä

Moduulijärjestelmä mahdollistaa useiden keskenään yhteensopimattomien ohjelmistoympäristöjen hallinnan samalla tietokoneella. Käytä module-komentoa saatavilla olevien sovellusten, kirjastojen tai kääntäjäkokonaisuuksien tarkasteluun ja niiden dynaamiseen käyttöönottoon. Moduulijärjestelmää tulee käyttää sekä interaktiivisissa että eräajoissa.

Ympäristömoduulit tarjoavat kätevän tavan ottaa käyttöön kaikki tietyn sovelluksen tarvitsemat asetukset. Moduulijärjestelmä muokkaa käyttäjän komentotulkin ympäristömuuttujia niin, että suoritettavien tiedostojen oikeat versiot ovat hakupolussa ja linkkeri löytää tarvittavien kirjastojen oikeat versiot. Esimerkiksi komento mpicc viittaa eri kääntäjiin sen mukaan, mikä moduuli on ladattu.

CSC käyttää Lmod-ympäristömoduuleja. Ne on kehitetty Texas Advanced Computing Centerissä (TACC), ja ne on toteutettu Lua-ohjelmointikielellä. Lisää teknisiä yksityiskohtia löytyy [Lmodin kotisivulta].

Roihun GPU- ja CPU-kohtaiset moduulit

Roihussa GPU- ja CPU-osiot ovat erillisissä ympäristöissä CPU- ja GPU-solmujen erilaisen perusarkkitehtuurin vuoksi. Lisätietoja on sivulla Roihun käytön aloittaminen.

Tämän vuoksi ohjelmistot on rakennettava erikseen GPU- ja CPU-solmuarkkitehtuureille, joten GPU- ja CPU-osioille on omat toisistaan riippumattomat ohjelmistomoduulinsa. Niitä käytetään vastaavilta kirjautumissolmuilta roihu-gpu.csc.fi ja roihu-cpu.csc.fi.

Sekä GPU- että CPU-ympäristöissä on oletuksena ladattuna joukko moduuleja, jotka eroavat hieman toisistaan.

GPU:n oletusmoduulit

GPU-ympäristön oletusmoduulit ovat seuraavat:

module list

Currently Loaded Modules:
  1) csc-tools/default (S)   2) gcc/14.3.0   3) cuda/12.9.1   4) openmpi/5.0.10   5) openblas/0.3.30   6) StdEnv

  Where:
   S:  Module is Sticky, requires --force to unload or purge

CPU:n oletusmoduulit

CPU-ympäristön oletusmoduulit ovat seuraavat:

module list

Currently Loaded Modules:
  1) csc-tools/default (S)   2) gcc/15.2.0   3) ucx/1.20.0   4) openmpi/5.0.10   5) openblas/0.3.30   6) StdEnv

  Where:
   S:  Module is Sticky, requires --force to unload or purge

Peruskäyttö

module-komennon syntaksi:

module command modulename

Ladattujen moduulien listaaminen (mukaan lukien nykyinen ympäristösi):

module list

Komento module help antaa yleistä tietoa moduulista. Jos haluat esimerkiksi lisätietoja moduulista openblas, käytä:

module help openblas

Lataa uusia moduuleja ympäristöösi komennolla load. Jos haluat esimerkiksi ladata openblas-moduulin, käytä:

module load openblas

Huomaa, että voit ladata vain moduuleja, jotka ovat yhteensopivia muiden ladattujen moduulien kanssa. Et siis voi ladata moduuleja, jotka ovat ristiriidassa aiemmin ladattujen moduulien kanssa, tai moduuleja, jotka riippuvat moduuleista, joita ei ole ladattu.

Moduulit, joita ei tarvita tai jotka ovat ristiriidassa muiden moduulien kanssa, voidaan poistaa käytöstä komennolla unload:

module unload openblas

Yleisimmin käytetyt moduulikomennot

Module command Description
module help modulename Tietoa moduulista.
module load modulename Lataa ympäristömoduulin oletusversion.
module load modulename/version Lataa moduulin tietyn version.
module unload modulename Poistaa annetun ympäristömoduulin käytöstä.
module list Listaa ladatut moduulit.
module avail Listaa kaikki moduulit, jotka ovat ladattavissa (eli yhteensopivia nykyisen ympäristösi kanssa).
module spider Listaa kaikki olemassa olevat moduulit.
module spider modulename Hakee koko olemassa olevien moduulien listasta.
module spider modulename/version Antaa tietoa moduulin lataamisesta (esivaatimukset jne.).
module swap modulename1 modulename2 Korvaa moduulin toisella (ja yrittää ladata uudelleen yhteensopivat versiot muista ladatuista moduuleista).
module show modulename Näyttää moduulitiedoston komennot.
module purge Poistaa kaikki moduulit käytöstä.

Moduulien etsiminen

Voit listata moduulit, jotka ovat yhteensopivia nykyisen moduulikokonaisuutesi kanssa, komennolla:

module avail

Lmod-järjestelmän hierarkkisen rakenteen vuoksi kaikkia asennettuja moduuleja ei voi ladata yksinkertaisesti yhdellä module load -komennolla. Komento avail ei näytä moduuleja, joita ei voi ladata ristiriitojen tai täyttymättömien riippuvuuksien vuoksi. Nämä suojaavat rajoitukset estävät yhteensopimattomien moduuliyhdistelmien lataamisen.

Listaa kaikki asennetut ohjelmistopaketit:

module spider

Listaa moduulit nimen perusteella:

module spider mpi

Yllä oleva komento listaa kaikki moduulit, joiden nimessä esiintyy merkkijono mpi. Moduulin tarkempi kuvaus voidaan tulostaa käyttämällä koko moduulinimeä versionumeron kanssa:

module spider openmpi/5.0.10

Moduuliriippuvuuksien ratkaiseminen

Jotkin moduulit riippuvat toisista moduuleista. Jos vaadittu moduuli puuttuu, moduulijärjestelmä tulostaa virheilmoituksen:

$ module load boost/1.88.0

Lmod has detected the following error:  These module(s) or extension(s) exist but cannot be loaded as requested:
"boost/1.88.0"
   Try: "module spider boost/1.88.0" to see how to load the module(s).
   Or load any one of these options:
      module load aocc/5.0.0 boost/1.88.0
      module load gcc/15.2.0 boost/1.88.0

Tällaisissa tapauksissa komento module avail jättää moduulin pois listasta, eikä komento module load löydä sitä. Helpoin tapa selvittää vaadittu ympäristö on käyttää module spider -komentoa versionumeron kanssa. Esimerkiksi:

$ module spider boost/1.88.0

-----------------------------------------------------------------------------------------------------------------------------------
  boost: boost/1.88.0
-----------------------------------------------------------------------------------------------------------------------------------

    You will need to load all module(s) on any one of the lines below before the "boost/1.88.0" module is available to load.

      aocc/5.0.0
      gcc/15.2.0

    Help:
      Boost provides free peer-reviewed portable C++ source libraries,
      emphasizing libraries that work well with the C++ Standard Library.
      Boost libraries are intended to be widely useful, and usable across a
      broad spectrum of applications. The Boost license encourages both
      commercial and non-commercial use.

Tässä tapauksessa sinun on ladattava yksi listatuista ympäristöistä ennen kuin jatkat module load -komennolla.

Edistyneet aiheet

Yleisesti ottaen sovellukset ja niiden riippuvuudet tulisi kääntää ja linkittää samalla kääntäjällä. Joissakin tapauksissa tämä on ehdoton vaatimus. Et esimerkiksi voi käyttää Intel-kääntäjillä käännettyä MPI Fortran90 -moduulia yhdessä gfortranin kanssa. Ympäristömoduuleissa on useita mekanismeja, jotka estävät käyttäjää muodostamasta yhteensopimatonta ympäristöä.

Moduulihierarkia auttaa pitämään kääntäjän ja MPI-kirjaston asetukset keskenään yhteensopivina. Käytännössä jokaiselle tuetulle kääntäjälle on moduuli tuetulle MPI-kirjastolle. Kun käyttäjä vaihtaa kääntäjämoduulia, moduulijärjestelmä yrittää löytää ladattujen moduulien oikeat versiot:

$ module list
Currently Loaded Modules:
  1) gcc/15.2.0   2) ucx/1.20.0   3) openmpi/5.0.10   4) parallel-netcdf/1.14.1

$ module swap gcc aocc

Inactive Modules:
  1) openmpi     2) parallel-netcdf     3) ucx/1.20.0

$ module list

Currently Loaded Modules:
  1) aocc/5.1.0

Inactive Modules:
  1) ucx/1.20.0   2) openmpi   3) parallel-netcdf

Jos oikeaa versiota ei löydy, moduulijärjestelmä deaktivoi nämä moduulit (katso yllä). Käytännössä moduuli poistetaan käytöstä, mutta se merkitään niin, että kun kääntäjä-/MPI-kokoonpanoa muutetaan, järjestelmä yrittää löytää oikean version automaattisesti.

Tämä hierarkia toteutetaan muuttamalla $MODULEPATH-muuttujaa. Jokainen kääntäjämoduuli lisää oman polkunsa moduulipolkuun, jotta kyseisen kääntäjän kanssa yhteensopivat ohjelmistomoduulit voidaan listata. Kun kääntäjämoduuli poistetaan käytöstä, tämä polku poistetaan moduulipolusta. Sama koskee myös MPI-moduuleja.

Omien moduulitiedostojen käyttäminen

Jos haluat hallita ohjelmistopaketteja itse asentamillasi moduuleilla, voit sijoittaa omat moduulitiedostosi kotihakemistoosi. Jos esimerkiksi sijoitat moduulitiedostoja hakemistoon $HOME/modulefiles, voit käyttää niitä lisättyäsi polun moduulien hakupolkuun komennolla:

module use $HOME/modulefiles

Jos haluat tutkia olemassa olevia moduulitiedostoja, module show <modulename> näyttää myös moduulitiedoston tiedostonimen.

Suomenkielinen tekoälykäännös

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

Klikkaa tästä antaaksesi palautetta