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
Per ulteriori informazioni, consulta la sezione Esecuzione dei Job.

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
Comandi da eseguire:
conda create -n nome_ambiente  
conda activate nome_ambiente  
conda install software_necessario
A questo punto è possibile proseguire normalmente.

Per evitare conflitti, ricordarsi sempre di disattivare l'ambiente una volta che i moduli non sono più necessari, con il comando:

conda deactivate