-
Käyttäjän Spack-moduulin käyttö ohjelmistojen asennuksiin
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:
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
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