Software Disponibile¶
Il SSC mantiene una suite di programmi software, librerie e toolchain, chiamata "Ambienti Software Standard", per l'uso sui nostri cluster.
I cluster HPC possono eseguire la maggior parte del software che funziona su Linux. In molti casi, il software di cui hai bisogno sarà già installato e disponibile sui nodi di calcolo. Accedi al software utilizzando ciò che viene chiamato "modulo". Se il software di cui hai bisogno non è disponibile, puoi chiedere al nostro staff di installarlo per te oppure farlo da solo.
Utilizzare i Moduli¶
I moduli sono semplicemente file di configurazione che modificano dinamicamente il tuo ambiente permettendoti di eseguire un'applicazione o di accedere a una particolare libreria. Il sistema di moduli consente al SSC di fornire più versioni del software contemporaneamente e permette agli utenti di passare facilmente tra versioni diverse senza conflitti. Gli utenti possono anche creare e mantenere i propri moduli per un controllo più preciso sull'ambiente del proprio gruppo.
I moduli sono gestiti utilizzando uno strumento chiamato Environment Module e vengono installati utilizzando Spack
Per vedere quali moduli software sono disponibili, accedi al nodo di login tramite OnDemand ed esegui:
$ module avail
Questo comando restituirà un elenco di moduli disponibili da caricare nel tuo ambiente.
Note
Se un modulo ha dipendenze, potresti non vedere il modulo elencato fino a quando le dipendenze non sono caricate. Ad esempio, il software compilato con il toolchain GCC non sarà mostrato fino a quando non carichi i moduli GCC o FOSS. Consulta la sezione moduli gerarchici per ulteriori informazioni.
Per caricare i moduli scelti nell'ambiente, esegui:
$ module load nome_modulo
# Ad esempio:
$ module load python
Puoi specificare la versione del software aggiungendo uno /
con il numero di versione:
$ module load nome_modulo/versione
# Ad esempio:
$ module load python/3.9.5
Moduli Gerarchici¶
Il SSC utilizza una convenzione di denominazione gerarchica per i moduli, per supportare programmi costruiti con requisiti specifici per compilatori, librerie e architettura della CPU. Ad esempio, quando esegui module avail
su un nodo di calcolo AMD Zen2, vedrai due livelli gerarchici di moduli che appariranno così:
-------------------------- 1 /cm/local/modulefiles -----------------------------
-------------------------- 2 /cm/shared/modulefiles ----------------------------
1. Moduli Core¶
I moduli Core sono indipendenti dal compilatore e dall'architettura.
2. Moduli MPI¶
Questi moduli dipendono da una specifica architettura della CPU, da una toolchain del compilatore e da una libreria MPI.
Caricare i Moduli in uno Script di Job¶
I moduli in uno script di job possono essere caricati dopo le direttive #SBATCH
e prima di chiamare il tuo eseguibile effettivo. Un esempio di script di job che carica Python nell'ambiente è mostrato qui sotto:
#!/bin/bash -l
#SBATCH --nodes=1
#SBATCH --time=00:01:00
#SBATCH --ntasks=1
#SBATCH --job-name=test-job
# Opzionalmente carica un ambiente software specifico
module load ccrsoft/xxxx.yy
# Carica i tuoi moduli qui
module load some_module
python3 test-program.py
Elenco moduli disponibili¶
Software | Nome modulo | Versioni installate |
---|---|---|
Adios2 | adios2 | 2.7.1, 2.10.0 |
Apache Spark | spark | 3.1.1 |
Apptainer | apptainer | 1.1.9 |
Conduit | conduit | 0.9.1 |
CUDA | cuda | 11.8.0 |
Gloo | gloo | 2023-12-03 |
Hypre | hypre | 2.31.0 |
IGV | igv | 2.16.2 |
Jupyter Notebook | py-notebook | 7.2.1, 6.5.4 |
LLVM | llvm | 16.0.6, 17.0.6 |
Matlab | matlab | R2024B |
Mathematica | wolfram | 14.1 |
Metis | metis | 5.1.0 |
mfem | mfem | 4.6.0 |
MPMath | mpmath | 1.2.1 |
NumPy | py-numpy | 1.26.4, 1.24.3 |
OpenBLAS | openblas | 0.3.26 |
OpenFOAM | openfoam | 2312 |
OpenMPI | openmpi | 5.0.3 |
ParaView | paraview | 5.12.0 |
Parmetis | parmetis | 4.0.3 |
PyTorch | py-torch | 2.3.0 |
Relion | relion | 4.0.1 |
RStudio Server | rstudio | 2023.06.1.524 |
Scotch | scotch | 7.0.4 |
TensorBoard | py-tensorboard | 2.16.2, 2.15.2 |
TensorFlow | py-tensorflow | 2.16.1 |
VMD | vmd | 1.9.3 |
Visit | visit | 3.3.3 |
VSCode | code-server | 4.98.2 |
Elenco moduli aggiornato al 20/05/2025
Moduli personali¶
Se si rende necessario l'utilizzo di un applicativo o di una libreria non presente come modulo di sistema, l'utente può installare quanto necessario nella propria home o nella directory di progetto utilizzando anaconda o miniconda
Anaconda Python¶
Modulo da caricare:
module load miniconda3
conda create -n nome_ambiente
conda activate nome_ambiente
conda install software_necessario
Per evitare conflitti, ricordarsi sempre di disattivare l'ambiente una volta che i moduli non sono più necessari, con il comando:
conda deactivate