Aggiunte info spack e moduli

main
Cirdans-Home 10 months ago
parent 9f72105409
commit b6956b1e30

@ -27,6 +27,9 @@ sidebar:
- name: Software - name: Software
icon: <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24"><path fill="currentColor" d="M14 18.32A7.06 7.06 0 0 1 11.28 16H3V4h18v2.26a7.08 7.08 0 0 1 2 2.15V4a2 2 0 0 0-2-2H3a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h7v2H8v2h8v-2h-2Z"/><path fill="currentColor" d="M17 6a6 6 0 1 0 6 6a6 6 0 0 0-6-6m0 7.5a1.5 1.5 0 1 1 1.5-1.5a1.5 1.5 0 0 1-1.5 1.5"/></svg> icon: <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24"><path fill="currentColor" d="M14 18.32A7.06 7.06 0 0 1 11.28 16H3V4h18v2.26a7.08 7.08 0 0 1 2 2.15V4a2 2 0 0 0-2-2H3a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h7v2H8v2h8v-2h-2Z"/><path fill="currentColor" d="M17 6a6 6 0 1 0 6 6a6 6 0 0 0-6-6m0 7.5a1.5 1.5 0 1 1 1.5-1.5a1.5 1.5 0 0 1-1.5 1.5"/></svg>
link: ./software.html link: ./software.html
- name: Spack
icon: <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 128 128"><path fill="#0f3a80" d="m73.192 4.603l50.205 50.205a12.972 12.972 0 0 1 0 18.384l-50.205 50.205a12.972 12.972 0 0 1-18.384 0L4.603 73.192a12.972 12.972 0 0 1 0-18.384L54.808 4.603a12.972 12.972 0 0 1 18.384 0"/><path fill="#ffa600" d="m48.59 32.389l-8.336 9.261l-2.602-2.343l-5.466 13.918l13.27-6.891l-2.602-2.344l8.332-9.254a13.126 13.126 0 0 1-2.596-2.347m8.16 4.478v.172l.135-.15c-.046-.006-.09-.016-.135-.022m3.5 4.102l-3.5 3.886v32.97h-3.5l5.25 14l5.25-14h-3.5zM58.5 14c-5.54 0-10 4.46-10 10s4.46 10 10 10c.356 0 .704-.03 1.049-.068l.719-.8c.164.167.335.325.507.481c-2.62-2.38-4.275-5.807-4.275-9.613c0-3.853 1.692-7.321 4.37-9.705A9.949 9.949 0 0 0 58.5 14M24 54c-5.54 0-10 4.46-10 10s4.46 10 10 10s10-4.46 10-10s-4.46-10-10-10m10.33 17.855a13.113 13.113 0 0 1-2.475 2.475l10.936 10.936l-2.475 2.474l13.612 6.188l-6.188-13.612l-2.474 2.475zM64 94c-5.54 0-10 4.46-10 10s4.46 10 10 10s10-4.46 10-10s-4.46-10-10-10"/><path fill="#fff" d="M104 54c-5.54 0-10 4.46-10 10s4.46 10 10 10s10-4.46 10-10s-4.46-10-10-10M67.75 36.867v40.957h-3.5l5.25 14l5.25-14h-3.5V36.867A12.96 12.96 0 0 1 69.5 37a12.95 12.95 0 0 1-1.75-.133m25.92 34.988L82.734 82.791l-2.474-2.475l-6.188 13.612l13.612-6.188l-2.475-2.474L96.145 74.33a13.113 13.113 0 0 1-2.475-2.475M79.41 32.389a13.127 13.127 0 0 1-2.597 2.35l8.333 9.253l-2.601 2.342l13.27 6.89l-5.467-13.917l-2.602 2.343zm-19.142.744l-16.3 18.103l-2.6-2.341L35.9 62.81l13.27-6.891l-2.602-2.342L63.055 35.27a13.09 13.09 0 0 1-2.787-2.138ZM69.5 14c-5.54 0-10 4.46-10 10s4.46 10 10 10s10-4.46 10-10s-4.46-10-10-10"/></svg>
link: ./spack.html
- name: Definizioni - name: Definizioni
icon: <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24"><g fill="none" fill-rule="evenodd"><path d="M24 0v24H0V0zM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035c-.01-.004-.019-.001-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427c-.002-.01-.009-.017-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093c.012.004.023 0 .029-.008l.004-.014l-.034-.614c-.003-.012-.01-.02-.02-.022m-.715.002a.023.023 0 0 0-.027.006l-.006.014l-.034.614c0 .012.007.02.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"/><path fill="currentColor" d="M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2zm10.939 2.655c-.353-.883-1.618-.833-1.902.074l-1.752 5.606l-.388-.777A1.01 1.01 0 0 0 8.994 12H7a1 1 0 1 0 0 2h1.382l1.212 2.425c.407.813 1.597.717 1.868-.15l1.654-5.293l.953 2.383c.153.384.525.635.938.635H17a1 1 0 1 0 0-2h-1.323z"/></g></svg> icon: <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24"><g fill="none" fill-rule="evenodd"><path d="M24 0v24H0V0zM12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035c-.01-.004-.019-.001-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427c-.002-.01-.009-.017-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093c.012.004.023 0 .029-.008l.004-.014l-.034-.614c-.003-.012-.01-.02-.02-.022m-.715.002a.023.023 0 0 0-.027.006l-.006.014l-.034.614c0 .012.007.02.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"/><path fill="currentColor" d="M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2zm10.939 2.655c-.353-.883-1.618-.833-1.902.074l-1.752 5.606l-.388-.777A1.01 1.01 0 0 0 8.994 12H7a1 1 0 1 0 0 2h1.382l1.212 2.425c.407.813 1.597.717 1.868-.15l1.654-5.293l.953 2.383c.153.384.525.635.938.635H17a1 1 0 1 0 0-2h-1.323z"/></g></svg>
link: ./definizioni.html link: ./definizioni.html

@ -22,6 +22,14 @@ non esclusivo alle risorse (nodi informatici) per un certo periodo di tempo in
modo che possano eseguire i *job*. Fornisce una struttura per l'avvio, modo che possano eseguire i *job*. Fornisce una struttura per l'avvio,
l'esecuzione e il monitoraggio dei *job*. l'esecuzione e il monitoraggio dei *job*.
Modulo
: I `modulefile` sono file scritti in Tool Command Language, TCL, e sono
interpretati dal programma `module` tramite l'interfaccia utente del modulo.
I file dei moduli possono essere caricati (`load`), scaricati (`unload`) o
commutati al volo (`switch`) mentre l'utente sta lavorando; e possono essere
utilizzati per implementare le politiche del cluster relative all'accesso e
all'utilizzo delle applicazioni.
Scalabilità forte (strong scaling) Scalabilità forte (strong scaling)
: Il numero di processori aumenta mentre la dimensione del problema rimane costante. Ciò si traduce anche in un carico di lavoro ridotto per processore. : Il numero di processori aumenta mentre la dimensione del problema rimane costante. Ciò si traduce anche in un carico di lavoro ridotto per processore.

@ -1,7 +1,13 @@
---
layout: default
---
# Spack # Spack
[Spack](https://spack.io/) rappresenta uno strumento avanzato di gestione dei pacchetti, mirato a supportare simultaneamente diverse versioni e configurazioni di software su una vasta gamma di piattaforme e ambienti. In particolare, è stato appositamente progettato per rispondere alle esigenze dei grandi centri di supercalcolo, in cui numerosi utenti e team applicativi condividono installazioni comuni di software su cluster caratterizzati da architetture non convenzionali e l'utilizzo di librerie prive di un'ABI standardizzata. Un aspetto distintivo di Spack è la sua natura non distruttiva: l'installazione di una nuova versione non interferisce con le installazioni preesistenti, consentendo così la coesistenza di molteplici configurazioni sullo stesso sistema. [Spack](https://spack.io/) rappresenta uno strumento avanzato di gestione dei pacchetti, mirato a supportare simultaneamente diverse versioni e configurazioni di software su una vasta gamma di piattaforme e ambienti. In particolare, è stato appositamente progettato per rispondere alle esigenze dei grandi centri di supercalcolo, in cui numerosi utenti e team applicativi condividono installazioni comuni di software su cluster caratterizzati da architetture non convenzionali e l'utilizzo di librerie prive di un'ABI standardizzata. Un aspetto distintivo di Spack è la sua natura non distruttiva: l'installazione di una nuova versione non interferisce con le installazioni preesistenti, consentendo così la coesistenza di molteplici configurazioni sullo stesso sistema.
## Amministrazione
L'ambiente Spack può essere ottenuto via *git* L'ambiente Spack può essere ottenuto via *git*
```bash ```bash
git clone --depth=100 --branch=releases/v0.21 https://github.com/spack/spack.git spack git clone --depth=100 --branch=releases/v0.21 https://github.com/spack/spack.git spack
@ -11,10 +17,103 @@ Una volta clonato, è possibile caricare l'ambiente con
cd spack cd spack
. share/spack/setup-env.sh . share/spack/setup-env.sh
``` ```
Adesso possiamo visualizzare quali sono i compilatori già installti sul sistema Adesso possiamo visualizzare quali sono i compilatori già installti sul sistema
e quelli disponibili: e quelli disponibili:
```bash ```bash
spack compiler find spack compiler find
spack compilers spack compilers
``` ```
Impieghiamo Spack sul cluster per l'installazione del software e la generazione
di *module file* per [Environment Modules](https://modules.readthedocs.io/en/latest/).
Nello specifico, configuriamo la generazione dei moduli tramite il file di configurazione
dei moduli in `/mnt/raid/software/spack/etc/spack/modules.yaml`
```yaml
modules:
default:
enable:
- tcl
tcl:
hash_length: 0
include:
- gcc
exclude_implicits: true
projections:
all: '{name}/{version}-{compiler.name}-{compiler.version}'
gcc: '{name}/{version}'
all:
conflict:
- '{name}'
```
Per aggiornare i moduli si può usare il comando
```bash
spack module tcl refresh --delete-tree -y
```
Per rendere disponibili i file di modulo su tutti i nodi è necessario aggiungere
il path alla configurazione di sistema. Questo può essere fatto creando il file
`addspackmodulepath.sh`:
```bash
#!/bin/bash
apt-get install -y environment-modules
echo '/mnt/raid/software/spack/share/spack/modules/linux-ubuntu20.04-aarch64/ # Spack Modules' >> /etc/environment-modules/modulespath
```
ed eseguendo
```bash
./runsetup.sh addspackmodulepath.sh
```
## Utenza
Per l'utenza la presenza di Spack è *virtualmente invisibile*, ciò a cui gli utenti
hanno accesso sono i file di modulo per il caricamento nell'ambiente del software
installato.
Si possono investigare i moduli disponibili con il comando
```bash
module avail
```
e caricare nell'ambiente con il comando
```bash
module load programma/versione-compilatore
```
o rimuovere con
```bash
module unload programma/versione-compilatore
```
Un ambiente pulito può essere ottenuto con il comando
```bash
module purge
```
È importante che si faccia uso sempre di catene di moduli compatibili, ovvero
di moduli (software) generato/compilato con il medesimo compilatore. Altrimenti
si rischia la creazione di ambienti inconsistenti e impossibili da usare.
**Esempio:** carichiamo un diverso compilatore, al *login* la richiesta
```bash
gcc --version
```
risponderà
```
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
```
Eseguiamo il comando
```bash
module load gcc/12.3.0
```
seguito da
```bash
gcc --version
```
che ora ci risponderà
```
gcc (Spack GCC) 12.3.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
```

Loading…
Cancel
Save