Home
> Dipartimento
> Lab e Centro Calcolo
> Risorse per il calcolo
Laboratorio e Centro Calcolo: cluster per il calcolo
Sul server plutone è installato
SLURM,
Simple Linux Utility for Resource Management.
Tramite SLURM gli utenti possono accedere ad un cluster dedicato al calcolo intensivo.
Il cluster è costituito dal nodo
gauss.mat.uniroma1.it,
con 8 processori (2 cpu Intel Xeon Quad-Core 2.4 Ghz) e 32 GB RAM.
- Chi può utilizzare gauss
-
Gli utenti dei server dipartimentali che desiderano utilizzare il cluster per il calcolo
devono inviare un e-mail a root@mat.uniroma1.it chiedendo di essere inseriti
nel gruppo calcolo. Per gli studenti e per i collaboratori esterni, la richiesta di inserimento nel
gruppo calcolo deve essere inviata da un docente del dipartimento.
- Prime informazioni per utilizzare gauss
-
- Il cluster per il calcolo è accessibile solo tramite plutone;
- È possibile mandare in esecuzione su gauss
programmi scritti in c, c++, fortran e programmi generati
compilando M-files Matlab.
Sono disponibili le seguenti librerie:
BLAS,
Electric Fence,
Givaro,
LinBox,
OpenMPI,
Valgrind
Su richiesta degli utenti interessati potranno essere installati altri
programmi e librerie;
- i programmi devono essere sviluppati (scritti, compilati e testati)
su plutone;
- gli eseguibili ed i file con i dati in input devono essere copiati
sulla directory /calcolo/home/username,
dove username è il nome dell'utente.
- per eseguire programmi su gauss è necessario:
- collegarsi a plutone;
- copiare gli eseguibili o gli M-files MATLAB ed i file con i dati in input sulla
directory /calcolo/home/username,
dove username è il nome dell'utente
(attenzione: la directory /calcolo/home NON viene salvata nei backup);
- posizionarsi sulla directory /calcolo/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 su plutone 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 |
- Qualche esempio
-
- Per lanciare un programma reindirizzando input ed output:
srun -c num -i mio_prog.in -o mio_prog.out mio_prog
| dove |
num è il numero di processori richiesti per l'esecuzione del job (1 <= num <= 8)
mio_prog è il nome del file da eseguire
mio_prog.in è il nome del file contenente i dati in input
mio_prog.out è il nome del file contenente i dati in output.
|
| esempio: |
srun -c4 -i risolvi.in -o risolvi.out risolvi
esegue il programma "risolvi" su 4 processori, leggendo i dati in input dal
file "risolvi.in" e scrivendo in output sul file "risolvi.out" |
- Per lanciare un programma MATLAB:
- dopo aver copiato l'M-file su /calcolo/home/username, compilarlo inviando il comando:
mcc-matlab -m mio_prog.m
Per avere maggiori informazioni sull'utilizzo del compilatore mcc-matlab e sulle opzioni utilizzabili,
consultare il manuale in linea su plutone alla voce mcc-matlab (digitare man mcc-matlab).
- eseguire il programma inviando il comando
srun -c num mio_prog
| dove |
num è il numero di processori richiesti per l'esecuzione del job (1 <= num <= 8)
mio_prog.m è il nome dell'M-file
mio_prog è il nome del programma da eseguire
|
- Per lanciare un programma chiedendo informazioni sui tempi di CPU:
/usr/bin/time -p srun -c num -i mio_prog.in -o mio_prog.out mio_prog
| dove |
num è il numero di processori richiesti per l'esecuzione del job (1 <= num <= 8)
mio_prog è il nome del file da eseguire
mio_prog.in è il nome del file contenente i dati in input
mio_prog.out è il nome del file contenente i dati in output.
|
Per avere maggiori informazioni sul comando /usr/bin/time e sulle opzioni utilizzabili, consultare il
manuale in linea ("man time").
- Per lanciare un programma in batch:
- scrivere uno shell script di nome ad esempio run_mio_prog
contenente le seguenti righe:
#!/bin/sh
srun -c num -i mio_prog.in -o mio_prog.out mio_prog
| dove |
num è il numero di processori richiesti per l'esecuzione del job (1 <= num <= 8)
mio_prog è il nome del file da eseguire
mio_prog.in è il nome del file contenente i dati in input
mio_prog.out è il nome del file contenente i dati in output.
|
- inviare il comando
sbatch run_mio_prog
Se si desidera ricevere via e-mail la notifica di inizio/fine/fallimento del programma, inviare il comando
sbatch --mail-type=ALL --mail-user=indirizzo_email run_mio_prog
| dove |
indirizzo_email è l'indirizzo e-mail al quale deve essere inviata la notifica
run_mio_prog è il nome dello script da eseguire in batch.
|
- Per lanciare in batch un programma che utilizza le librerie OpenMPI:
- scrivere uno shell script di nome ad esempio run_mio_prog_mpi
contenente le seguenti righe:
#!/bin/sh
mpirun -np num -i mio_prog_mpi.in -o mio_prog_mpi.out mio_prog_mpi
| dove |
num è il numero di processori richiesti per l'esecuzione del job (1 <= num <= 8)
mio_prog_mpi è il nome del file da eseguire
mio_prog_mpi.in è il nome del file contenente i dati in input
mio_prog_mpi.out è il nome del file contenente i dati in output.
|
- inviare il comando
sbatch run_mio_prog_mpi
oppure, per ricevere notifica via e-mail
sbatch --mail-type=ALL --mail-user=indirizzo_email run_mio_prog_mpi
- 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
https://computing.llnl.gov/linux/slurm/documentation.html
- Altre risorse di calcolo per gli utenti del Dipartimento di Matematica
- Convenzione con CASPUR