Laboratorio Turing: cluster gauss
Sul server gaussctl è installato SLURM, Simple Linux Utility for Resource Management.
Tramite SLURM gli utenti possono accedere al cluster gauss dedicato al calcolo intensivo. Il cluster è costituito da due nodi
gauss0, con 8 core (2 cpu Intel Xeon Quad-Core 2.4 Ghz), 32 GB RAM e GPU Nvidia GeForce RTX 2070 (anno 2018).
gauss1, con 24 core (2 cpu Intel Xeon Gold 5118 2.3GHz, 16.5 MB L3 cache 8.00GT/s QPI,Turbo,HT,12C/24T) e 64 GB di RAM.
- Chi può utilizzare gauss
-
- Professori e ricercatori afferenti al Dipartimento;
- Professori emeriti già afferenti al Dipartimento;
- Personale del Dipartimento;
- Assegnisti presso il Dipartimento;
- Dottorandi in Matematica presso il Dipartimento;
- Studenti iscritti ai Master istituiti dal Dipartimento;
- Borsisti dei programmi dell'Unione Europea presso il Dipartimento;
- Studenti di uno dei corsi di Laurea magistrale di area Matematica di pertinenza del Dipartimento;
- Laureandi del corso di Laurea triennale in Matematica di pertinenza del Dipartimento;
- Studenti iscritti al percorso di eccellenza del corso di Laurea triennale in Matematica di pertinenza del Dipartimento;
- Professori visitatori presso il Dipartimento;
- Tutti coloro che hanno un rapporto di lavoro, anche temporaneo ma istituzionale, con il Dipartimento;
- Studenti e personale di enti convenzionati
[È prevista la possibilità di concedere l'accesso ai locali e ai servizi del centro di calcolo agli studenti e al personale di altri enti. Tali enti dovranno essere di rilevanza per lo sviluppo delle attività scientifiche del Dipartimento. Le modalità di accesso per questi utenti verranno stabilite dal Direttore del Dipartimento, ove possibile nell'ambito di accordi quadro sottoscritti dai rispettivi Direttori.].
- Richiesta account
- L'apertura di un nuovo account può essere richiesta compilando la form. Per gli studenti ed i professori visitatori, la richiesta dell’account deve essere effettuata da un docente del Dipartimento di Matematica. In quest’ultimo caso, nella mail si deve indicare nome, cognome e qualifica dell'utente per il quale si richiede il nuovo account. Per gli account temporanei (laureandi, visiting, collaboratori, borsisti) è necessario specificare anche la data di scadenza.
- Prime informazioni per utilizzare gauss
- Per mandare in esecuzione programmi sul cluster:
-
collegarsi al server gaussctl.mat.uniroma1.it
-
la cartella di lavoro dove si trovano i file da eseguire, ed i file in input, deve essere sotto la home dell’utente (/home/username)
-
mandare in esecuzione il programma utilizzando i comandi messi a disposizione da SLURM.
Per avere l'elenco completo dei comandi, consultare l'help in linea alla voce slurm (digitare man slurm).
Alcuni dei comandi disponibili sono:srun per inviare jobs sul cluster per il calcolo
sbatch per sottomettere un batch script sul cluster per il calcolo
squeue per visualizzare la coda dei jobs sul cluster per il calcolo
(ogni utente può visualizzare solo i propri job)
scancel per interrompere un jobs sul cluster per il calcolo
sinfo per visualizzare informazioni relative al cluster per il calcolo
Per ulteriori informazioni si consiglia di consultare la documentazione disponibile sul sito Slurm.
-
- Qualche esempio
-
- Per inviare un programma sulle code di esecuzione del cluster
-
scrivere uno shell script, ad esempio run_mio_prog.sh, contenente le seguenti righe:
#!/bin/sh
#SBATCH --mail-type=ALL --mail-user=indirizzo_email
#SBATCH -c numTot
srun -c num -i in_mioprog -o out_mioprog mio_progdove
numTot è il numero di processori richiesti per l'esecuzione del job all'interno del batch
num è il numero di processori richiesti per l'esecuzione del singolo job srun
mio_prog è il file da eseguire
in_mioprog è il file contenente i dati in input
out_mioprog è il file di output
indirizzo_email è l'indirizzo e-mail al quale deve essere inviata la notifica.
- lanciare l'esecuzione, inviando il comando
sbatch run_mio_prog.sh
- Per inviare programma MATLAB sulle code di esecuzione del cluster
-
sviluppare e compilare il codice su una macchina terza, ad esempio marte.mat.uniroma1.it.
Compilare il codice usando il compilatore matlab:mcc -m -R '-nojvm,-nodisplay' -v CODICE.m
-
copiare su gaussctl i seguenti file generati dal compilatore:
CODICE
run_CODICE.sh
-
scrivere uno shell script, ad esempio esegui_prog.sh, contenente le seguenti righe:
#!/bin/sh
#SBATCH --mail-type=ALL --mail-user=indirizzo_email
#SBATCH -c num
srun -c num -o out_mioprog run_CODICE.sh /usr/local/MATLAB/MATLAB_Runtime/vxx/dove
num è il numero di processori richiesti per l'esecuzione del job
out_mioprog è il file di output
indirizzo_email è l'indirizzo e-mail al quale deve essere inviata la notifica
vxx indica la versione da utilizzare di MATLAB runtime environment (disponibile v912)
-
lanciare l'esecuzione, inviando il comando
sbatch esegui_prog.sh
- Esempio di invio di un programma R sulle code di esecuzione del cluster
Per eseguire il programma HelloWorld.R, contente le seguenti righe# R program to print Hello World
aString = "Hello World!"
print ( aString)
-
scrivere uno shell script, ad esempio esegui_prog.sh, contenente le seguenti righe:
#!/bin/sh
#SBATCH -c 1
srun -c 1 -o out_mioprog Rscript ./HelloWorld.Rdove
out_mioprog è il file di output
-
lanciare l'esecuzione, inviando il comando
sbatch esegui_prog.shPer altre informazioni sull'utilizzo di Rscript, vedi anche https://www.tutorialkart.com/r-tutorial/r-script-file/
- Utilizzo delle librerie NVIDIA GPU cuda
per utilizzare le librerie NVIDIA GPU cuda (sia in matlab che in altri linguaggi), inviare il codice sulla coda mat-GPU di gauss0 (che dispone di una GPU), utilizzando l'opzione -p:
sbatch -p mat-GPU ....
srun -p mat-GPU ...
- Per avere informazioni sullo stato delle CPU
sinfo -o %C
Verrà visualizzato il numero di CPUs Allocated/Idle/Other/Total.
Per maggiori informazioni consultare l'help in linea con il comando "man sinfo".
- Documentazione
- Per ulteriori informazioni si consiglia di consultare l'help in linea e la documentazione disponibile sul sito Slurm.