Cluster virtuale
Specifiche del sistema di calcolo ad alte prestazioni
Il cluster di Ateneo è un insieme di elaboratori e software ad alte prestazioni per l'esecuzione di calcoli scientifici a fini di ricerca particolarmente impegnativi in termini di potenza e archiviazione di dati.
Il cluster virtuale conta complessivamente 23 nodi, di cui uno di front-end, con le seguenti caratteristiche:
Inoltre sono presenti alcune GPU collegate a nodi specifici:
- 2 NVIDIA Tesla sul nodo 2
- 1 NVIDIA A40 sul nodo 3
- 3 NVIDIA A40 sul nodo 24
Nel cluster sono presenti, tra gli altri, i seguenti software e tool: Matlab, Stata, R, Gromacs 2024, Python, NVIDIA CUDA Toolkit e altri tool standard già presenti nel SO.
Il run time di ogni job eseguito deve avere la durata massima di 24 ore, in modo da favorire l’accesso alle risorse da parte di tutti i progetti attivi. Per job che richiedano necessariamente più tempo di esecuzione è prevista anche una coda specifica con durata massima di 10 giorni.
Il job va schedulato tramite Slurm [ENG]; fanno eccezione i task Matlab e Stata, che girano su software non gestibili dal job manager.
Per attività di test e debug dei task, su Slurm è presente una coda dedicata con durata limitata a 1 ora.
Richiesta di accesso al cluster e abilitazione alla VPN “Ricerca”
Per utilizzare il cluster vHPC secondo quanto previsto dalle linee guida per il supporto informatico alla ricerca, è necessario inviare un ticket ad ASIT nella categoria Assistenza e guasti > Supporto ricerca > Cluster di calcolo chiedendo anche l’abilitazione al profilo "Ricerca" della VPN di Ateneo (se non già attivato). Per sapere chi deve inviare il ticket e con quali informazioni, consulta la pagina www.unive.it/vpn.
Istruzioni d'uso
Accesso
- Collegarsi via VPN
- Scegliere il profilo "Ricerca"
- Connettersi al nodo di frontend
Protocollo: SSH
- user: il proprio account unive
- password: la password del proprio account unive
- server: vhpc01.vhpc.unive.it
esempio:
ssh user.name@vhpc01.vhpc.unive.it- Esecuzione dei job: solo con lo scheduler Slurm [ENG].
Storage
Ci sono due aree di storage utilizzabili: una nella propria home, che non deve superare i 2TB, e un’altra in un'area di scratch che non viene sottoposta a backup periodico (al path /scratch/${USER}_no_bkup). Per i dati non immediatamente necessari o per gli output parziali delle esecuzioni dei job, è buona prassi utilizzare l'area di scratch.
Scheduler
È essenziale utilizzare lo scheduler Slurm [ENG] per l'esecuzione dei job, consultando eventualmente l'archivio ufficiale di Slurm per una specifica versione (eseguendo il comando sinfo --version nel terminale, è possibile verificare quale versione di Slurm è attualmente attiva sul cluster).
#!/bin/bash
#SBATCH --job-name=job_name
#SBATCH --comment="job_comment"
#SBATCH --output=/home/user/job_folder/%x_%j.out
#SBATCH --error=/home/user/job_folder/%x_%j.err
#SBATCH --mail-user=user@domain,user2@domain
#SBATCH --mail-type=ALL
#SBATCH --time=24:00:00
#SBATCH --mem=16gb
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=8RUNPATH=/home/user/job_folder
cd $RUNPATH
source .venv/bin/activate
export PYTHONPATH=$PYTHONPATH:/home/user/job_folder
srun python -u run_script.py <options>
Code e partizioni
Il cluster ha 22 nodi di calcolo: il nodo di frontend (l'unico al quale ci si connette) e gli altri nodi sono organizzati in diverse partizioni. L'elenco delle partizioni attive sul cluster può essere visualizzato con il comando sinfo. La durata della coda longjob è di massimo 10 giorni, mentre la durata delle altre partizioni è di 24 ore: è quindi importante includere gli opportuni checkpoint all'interno del proprio codice, in modo da non perdere eventuali progressi intermedi.
Esempio per far sì che il proprio job riparta dopo le 24 ore [ENG].
GPU
Il cluster dispone di 3 GPU:
- 2 NVIDIA Tesla connesse al nodo 2;
- 1 NVIDIA A40 connessa al nodo 3;
- 3 NVIDIA A40 connesse al nodo 24
Le GPU vanno attivate specificando la partizione Slurm che le utilizza (partizione "gpus") e indicando, opzionalmente, il numero di GPU che si intende utilizzare nello sbatch script. Per l'elenco delle GPU disponibili si faccia riferimento all'output del comando sinfo -o "%.12G %.14N" | grep -v null
per esempio#SBATCH --partition=gpus
#SBATCH --gres=gpu:a40:1 (or #SBATCH --gres=gpu:tesla:2)
seguendo la documentazione di Slurm [ENG] e usando le apposite librerie per l'utilizzo delle GPU.
È disponibile una coda aggiuntiva con 3 GPU NVIDIA A40, per job di massimo 10 giorni. È possibile accedervi facendone richiesta tramite ticket ad ASIT nella categoria Assistenza e guasti > Supporto ricerca > Cluster di calcolo .
Manutenzione
Come indicato a pagina www.unive.it/supporto-ict-ricerca, ogni primo lunedì del mese verrà effettuata la manutenzione programmata mensile del cluster di calcolo. I nodi del cluster saranno posti in drain a partire dal mercoledì precedente, in modo da ridurre al minimo i job attivi e saranno riattivati a fine manutenzione. I job in esecuzione, se dotati degli opportuni checkpoint, saranno mantenuti.
Per ulteriori informazioni
Ulteriori informazioni vengono fornite nel messaggio di benvenuto quando si accede al nodo di frontend.
Per eventuali richieste di informazioni o problemi, inviare un ticket ad ASIT nella categoria Assistenza e guasti > Supporto ricerca > Cluster di calcolo (se ci si riferisce a un account da studente, il ticket dovrà essere inviato dal suo docente supervisore).