-
Käyttäjän Spack-moduulin käyttö ohjelmistojen asentamiseen
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:
Uuden paketin asentamisen jälkeen moduulitiedostot voi olla tarpeen luoda uudelleen. Esimerkiksi:
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