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.

Käyttäjän Spack-moduulin käyttö ohjelmistojen asennuksiin

Spack on pakettienhallintaohjelma supertietokoneille, Linuxille ja macOS:lle. Sitä voidaan käyttää monimutkaisten tieteellisten ohjelmistopakettien helppoon asentamiseen. CSC asentaa Spackilla kehityspinon, mukaan lukien kääntäjät, MPI-kirjastot sekä monia muita kirjastoja ja sovelluksia. CSC tarjoaa asiakkaille myös käyttäjämoduulin, joka mahdollistaa projektikohtaiset ohjelmistoasennukset Spackin avulla.

Huomio

Spack on edistynyt työkalu, ja sen käyttö edellyttää ohjelmien kääntämisen ja linkittämisen ymmärtämistä.

Saatavilla olevat versiot

Vastaava Roihun ohje, jossa käytetään suoraan Spackia, on erillisessä dokumentissa Spackin käyttö ohjelmistojen asentamiseen Roihussa. Tämä ohje olettaa, että käytät Puhtia, jossa on asennettuna spack/v0.18-user. Mahdissa käyttäjille on saatavilla kaksi Spack-versiota, spack/v0.17-user ja spack/v0.20-user. Moduuliversioita lukuun ottamatta kuvattu menettely on sama molemmissa järjestelmissä.

Spack-instanssin luominen

Ennen kuin suoritat Spack-moduulin ensimmäistä kertaa, sinun täytyy valmistella asennussijainti, joka voi sijaita joko /projappl- tai /scratch-levyalueella. Sinun täytyy myös asettaa ympäristömuuttuja, joka osoittaa Spack-instanssin sijaintiin.

Jos esimerkiksi haluat luoda Spack-instanssin /projappl-hakemistoon, voit alustaa ympäristön seuraavasti:

[maijam@puhti-login11 ~]$ module purge
The following modules were not unloaded:
  (Use "module --force purge" to unload all):

  1) csc-tools
[maijam@puhti-login11 ~]$ export USER_SPACK_ROOT=/projappl/project_2001234/spack-instance-1
[maijam@puhti-login11 ~]$ mkdir -p ${USER_SPACK_ROOT}
[maijam@puhti-login11 ~]$ module load spack/v0.18-user
Run user-spack-init to initialize user installation in /projappl/project_2001234/spack-instance-1
[maijam@puhti-login11 ~]$ user-spack-init
[INFO] USER_SPACK_GROUP not set, defaulting to project_2001234 based on target directory

Tyhjennä ympäristö ennen lataamista

Ennen Spackin lataamista sinun täytyy suorittaa module purge, jotta kaikki oletusympäristön kääntäjä- ja kirjastomoduulit poistetaan, sillä ne voivat häiritä Spack-rakennuksia.

Useita Spack-instansseja

Samassa projektissa voi olla useita Spack-instansseja. Käytettävä instanssi määritetään $USER_SPACK_ROOT-ympäristömuuttujalla, joka osoittaa instanssin juurihakemistoon.

Alustaminen

Ennen kuin käytät Spack-instanssia ensimmäistä kertaa, sinun täytyy alustaa se suorittamalla komento user-spack-init.

Spack-instanssin käyttö

Alustettu instanssi voidaan aktivoida tyhjentämällä moduuliympäristö, asettamalla instanssin juuripolku ja lataamalla Spack-moduuli:

[maijam@puhti-login11 ~]$ module purge
The following modules were not unloaded:
  (Use "module --force purge" to unload all):

  1) csc-tools
[maijam@puhti-login11 ~]$ export USER_SPACK_ROOT=/projappl/project_2001234/spack-instance-1
[maijam@puhti-login11 ~]$ module load spack/v0.18-user
Found existing user spack installation at /projappl/project_2001234/spack-instance-1

Esimerkkikäännös

[maijam@puhti-login11 ~]$ spack spec -I --reuse kakoune
Input spec
--------------------------------
 -   kakoune

Concretized
--------------------------------
 -   kakoune@2021.11.08%gcc@11.3.0 arch=linux-rhel8-cascadelake
[^]      ^ncurses@6.2%gcc@11.3.0~symlinks+termlib abi=none arch=linux-rhel8-cascadelake
[^]          ^pkgconf@1.8.0%gcc@11.3.0 arch=linux-rhel8-cascadelake

Komento spack spec näyttää, mitä asennettaisiin annetulla määrityksellä. Se on hyvä käytäntö suorittaa ennen asennusta, jotta voidaan varmistaa, että käännös näyttää halutunlaiselta. Valitsinta -I käytetään näyttämään paketin ja sen riippuvuuksien nykyinen asennustila, kun taas valitsin --reuse annetaan, jotta jo asennettuja riippuvuuksia voidaan käyttää uudelleen aina kun mahdollista. Varsinainen asennus tehdään sitten komennolla spack install:

[maijam@puhti-login11 ~]$ spack install --reuse kakoune
[+] /appl/spack/v018/install-tree/gcc-11.3.0/pkgconf-1.8.0-2hkydh
[+] /appl/spack/v018/install-tree/gcc-11.3.0/ncurses-6.2-n4phtn
==> Installing kakoune-2021.11.08-yh4nmfid4st4l7gsmuzqv43o6qt6ckrm
==> No binary for kakoune-2021.11.08-yh4nmfid4st4l7gsmuzqv43o6qt6ckrm found: installing from source
==> Using cached archive: /local_scratch/maijam/spack-build-project_2002567/source-cache/_source-cache/archive/aa/aa30889d9da11331a243a8f40fe4f6a8619321b19217debac8f565e06eddb5f4.tar.bz2
==> No patches needed for kakoune
==> kakoune: Executing phase: 'edit'
==> kakoune: Executing phase: 'build'
==> kakoune: Executing phase: 'install'
==> kakoune: Successfully installed kakoune-2021.11.08-yh4nmfid4st4l7gsmuzqv43o6qt6ckrm
  Fetch: 0.00s.  Build: 34.31s.  Total: 34.31s.
[+] /projappl/project_2001234/spack-instance-1/install_tree/gcc-11.3.0/kakoune-2021.11.08-yh4nmf

Spec-syntaksi

Merkkijono, joka määrittää, mikä paketti asennetaan (spec), voi olla yksinkertaisesti vain paketin nimi, kuten yllä, mutta usein saatat haluta asentaa tietyn version, ehkä tietyllä kääntäjällä ja joillakin valinnaisilla asennusvalitsimilla (esimerkiksi ohjelmiston GPU-tuetun version). Spack käyttää tämän tiedon määrittämiseen erityistä syntaksia, kuten virallisessa dokumentaatiossa selitetään.

Moduulien käyttö käyttäjän Spack-asennusten kanssa

Oletuksena Spack luo moduulitiedostot hakemistoon $USER_SPACK_ROOT/modules, ja voit lisätä tämän polun $MODULEPATH-muuttujaan komennolla:

[maijam@puhti-login11 ~]$ module use ${USER_SPACK_ROOT}/modules

Uuden paketin asentamisen jälkeen moduulitiedostot voi olla tarpeen luoda uudelleen. Esimerkiksi:

[maijam@puhti-login11 ~]$ spack module tcl refresh kakoune

Nyt voit nähdä moduulit tavallisilla module avail- ja module spider -komennoilla. Esimerkiksi edellisessä esimerkissä käännettyä kakoune-editoria voidaan etsiä ja ladata seuraavasti:

[maijam@puhti-login11 ~]$ module spider kakoune

--------------------------------
  kakoune: kakoune/2021.11.08-gcc-11.3.0-yh4n
--------------------------------

    This module can be loaded directly: module load kakoune/2021.11.08-gcc-11.3.0-yh4n

[maijam@puhti-login11 ~]$ module load kakoune/2021.11.08-gcc-11.3.0-yh4n

Lisälukemista

Suomenkielinen tekoälykäännös

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

Klikkaa tästä antaaksesi palautetta