Brevi istruzioni cluster tnt (nato nel 2020 con i fondi PRIN CO-NEST)

ACCESSO

ssh -X utente@pgls_login.artov.rm.cnr.it

HOME DIRECTORY

la home di ogni utente si trova in un grande disco esterno da 5Tb (totali); la home e' il luogo dove tenere i vostri dati (backup) e tutti gli script ed eseguibili che si vogliono conservare; la home NON e' il posto dove le simulazioni scrivono durante l'esecuzione

ESECUZIONE DI UN JOB

i programmi vanno lanciati usando il sistema di code che si occupa di allocare ogni programma sul nodo piu' libero; si prega di non lanciare programmi direttamente da terminale perche' questi verrebbero eseguiti dal nodo di login che ha pochissime risorse; il modo per eseguire un job tramite sistema di code e' il seguente

1) scrivere uno script di esecuzione, si consiglia di farlo in bash, chiamandolo (ad esempio) submit.sh; qui c'e' un esempio


#!/bin/bash
#SBATCH --chdir=/mnt/ssd/puglisi/
#SBATCH --job-name=test
#SBATCH --output=res.txt
#SBATCH --ntasks=1

mkdir nuovadirectory
cd nuovadirectory
cp /home/puglisi/eseguibili/disks .
srun ./disks
mv res.txt /home/puglisi/prova
mv * /home/puglisi/prova
cd ..
rmdir nuovadirectory


2) eseguire lo script con il comando

sbatch submit.sh

3) controllare l'esecuzione del job con il comando

squeue

MODIFICARE LO SCRIPT

lo script di esempio si deve modificare in molte parti:

#!/bin/bash            OBBLIGATORIA
#SBATCH --chdir=/mnt/ssd/puglisi/       OBBLIGATORIA (ma cambiare "puglisi" nel vostro user)
#SBATCH --job-name=test                 OBBLIGATORIA (ma potete  cambiare a piacimento il nome "test")
#SBATCH --output=res.txt                UTILE (e "res.txt" si può cambiare, in questo file viene scritto stdout)
#SBATCH --ntasks=1                      UTILE (in particolare se volete occupare più processori ad es. per cose in parallelo)

mkdir nuovadirectory         IMPORTANTE (ogni simulazione dovrebbe girare in una dir diversa per non rischiare che si sovrapponga ad altre)
cd nuovadirectory                       IMPORTANTE (se create una dir ci dovete entrare)
cp /home/puglisi/eseguibili/disks .     OBBLICATORIA (il vostro programma/simulazione deve essere copiato da dove si trova a dove siete ora)
srun ./disks                            OBBLIGATORIA (esegue la simulazione)
mv * /home/puglisi/prova                IMPORTANTE (copiate i dati che ha generato il vostro programma in una cartella nella home, da modificare a piacere)
cd ..                                   IMPORTANTE (uscite dalla dir)
rmdir nuovadirectory                    IMPORTANTE (cancellate la dir che non serve più)

le righe mkdir e cd vanno modificate con un nome di directory specifico (temporaneo) per quella simulazione (per evitare che diverse simulazioni scrivano sulle stesse directory); l'eseguibile ovviamente lo segliete voi; le righe finali ("mv ....") vanno personalizzate con molta attenzione: e' vostra cura spostare tutto quello che e' stato prodotto dalla simulazioni e che ritenete necessario conservare dalla dir dove ha girato alla home, in una directory apposita (evitando di sovrascrivere altri dati); infine le ultime due righe servono per cancellare la directory temporanea dove ha girato la simulazione: facendo in questo modo tutto quel che non viene spostato (con i comandi "mv...") viene perso; ovviamente potete anche non mettere questi comandi alla fine, ma questo significa accumulare dati nei dischi dei nodi rischiando di finire lo spazio (nei nodi lo spazio e' molto minore); gli amministratori periodicamente libereranno spazio nei dischi dei nodi

ALTRA DOCUMENTAZIONE PER IL SISTEMA DI CODE: il sistema di code si chiama "slurm" ed e' molto ben documentato (ed e' pieno di opzioni), si veda https://slurm.schedmd.com/documentation.html

si puo' trovare anche un tutorial veloce e ben fatto qui: https://support.ceci-hpc.be/doc/_contents/QuickStart/SubmittingJobs/SlurmTutorial.html

esiste anche una guida "tedesca" con una sintesi della documentazione e molti dettagli utili (ma e' piu' per amministratori che altro): https://wiki.fysik.dtu.dk/niflheim/Slurm_configuration

ACCEDERE AI FILE SUI NODI LOCALI: durante l'esecuzione, ogni utente puo' vedere i file che vengono generati durante la simulazione controllando (tramite comando squeue) quale nodo N sta runnando il processo che vi interessa e poi andando su /mnt/ssd_nodeN/nomeutente

-- Andrea Puglisi - 2020-12-01

Comments

Edit | Attach | Watch | Print version | History: r5 < r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions...
Topic revision: r2 - 2020-12-01 - AndreaPuglisi
 
  • Edit
  • Attach
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2022 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback