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 28 nodi, di cui uno di front-end, con le seguenti caratteristiche:

Nodo 1 (front-end)
  • 8 core AMD EPYC 7413 @2.65GHz
  • 32 GB di RAM
  • 300 GB di storage locale
  • 30 TB di storage su NAS per le home
  • sistema operativo Ubuntu 24.04 LTS
Nodi 2-3
  • 20 core CPU Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz
  • 200 GB di RAM
  • 300 GB di storage locale
  • 30 TB di storage su NAS per le home
  • sistema operativo Ubuntu 24.04 LTS
Nodi 4-10, 16-20, 24
  • 20 core AMD EPYC 7413 @2.65GHz
  • 200 GB di RAM
  • 300 GB di storage locale
  • 30 TB di storage su NAS per le home
  • sistema operativo Ubuntu 24.04 LTS
Nodi 21-22
  • 20 core CPU Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz
  • 400 GB di RAM
  • 300 GB di storage locale
  • 30 TB di storage su NAS per le home
  • sistema operativo Ubuntu 24.04 LTS
Nodi 11-15, 23
  • 20 core CPU Intel(R) Xeon(R) 6760P CPU @ 2.20GHz
  • 200 GB di RAM
  • 300 GB di storage locale
  • 30 TB di storage su NAS per le home
  • sistema operativo Ubuntu 24.04 LTS
Nodi 25-28
  • 40 core CPU Intel(R) Xeon(R) 6760P CPU @ 2.20GHz
  • 200 GB di RAM
  • 300 GB di storage locale
  • 30 TB di storage su NAS per le home
  • sistema operativo Ubuntu 24.04 LTS

Inoltre sono presenti alcune GPU collegate a nodi specifici:

  • 2 NVIDIA Tesla sul nodo 2 
  • 5 NVIDIA A40: 
    • 2 sui nodi 3-4  
    • 3  sul nodo 24  
  • 6 NVIDIA H200 (con 70GB vRAM) sui nodi 11-12, 25-28  
  • 3 NVIDIA H200 (con 140GB vRAM) sui nodi 13-15  
  • 2 RTX PRO 6000 sul nodo 23 

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  sono previste anche  code specifiche  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  che utilizzano le GPU, su Slurm è presente una coda  dedicata. 

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=8

RUNPATH=/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 27 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 delle code longjobs e gpulongjobs è 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

Le GPU vanno attivate specificando una delle partizioni Slurm che le utilizza ("gpus", "gpulongjobs", "debuggpu") e indicando, opzionalmente, il tipo e 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 "%.13G %.11P %.14N" | grep -v null
per esempio
#SBATCH --partition=gpulongjobs
#SBATCH --gres=gpu:a40:1

seguendo la documentazione di Slurm [ENG] e usando le apposite librerie per l'utilizzo delle GPU.

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).