Hyppää sisältöön

Welcome to our weekly research support coffee hour on Zoom! Click here for more information.

Warning!

Puhti scratch disk is becoming very full (80+ % ) resulting in performance degradation. Everybody is advised to only keep actively processed data on scratch, all other data should be deleted, transferred to host institute or stored in Lumi-O. No new quota will be granted. Click here for a tool for examining your disk usage.

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

Spack on supertietokoneille, Linuxille ja macOS:lle tarkoitettu paketinhallintajärjestelmä. Sitä voidaan käyttää monimutkaisten tieteellisten ohjelmistopakettien asentamiseen helposti. CSC asentaa Spackin avulla 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

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 käytät Spack-moduulia 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

Saman projektin alla 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 annetun syötteen perusteella. Se on hyvä suorittaa ennen asennusta, jotta voit 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ää asennettavan paketin (spec), voi olla yksinkertaisesti pelkkä paketin nimi, kuten yllä, mutta usein haluat ehkä asentaa tietyn version, mahdollisesti tietyllä kääntäjällä ja joillakin valinnaisilla asennusvalinnoilla (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 voi 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