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:
  1. collegarsi al server gaussctl.mat.uniroma1.it

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

  3. 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 
  1. 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_prog

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

  2. lanciare l'esecuzione, inviando il comando
    sbatch   run_mio_prog.sh  
      
  • Per inviare  programma MATLAB sulle code di esecuzione del cluster
  1. 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
     

  2. copiare su gaussctl i seguenti file generati dal compilatore:
    CODICE
    run_CODICE.sh
     

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

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

  1. 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.R

    dove
       out_mioprog      è il file di output
     

  2. lanciare l'esecuzione, inviando il comando
    sbatch   esegui_prog.sh

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

© Università degli Studi di Roma "La Sapienza" - Piazzale Aldo Moro 5, 00185 Roma