This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
wiki:uso_sist [2022/06/15 20:14] cnr-guest created |
wiki:uso_sist [2023/06/14 16:31] (current) cnr-guest |
||
---|---|---|---|
Line 8: | Line 8: | ||
Per cambiarla usare da linea di comando il comando '' | Per cambiarla usare da linea di comando il comando '' | ||
+ | |||
+ | La procedura di login cambierà leggermente tra pochi mesi, v. avanti Modalità di accesso | ||
==== Modalità di accesso ==== | ==== Modalità di accesso ==== | ||
Line 18: | Line 20: | ||
Per accedere da sistemi windows si può usare il software putty, reperibile gratuitamente al sito '' | Per accedere da sistemi windows si può usare il software putty, reperibile gratuitamente al sito '' | ||
+ | |||
+ | Tra alcuni mesi l' | ||
+ | Gli utenti attuali sono invitati a generare la coppia di chiavi e caricare la chiave pubblica sul server nella loro home.\\ | ||
+ | I nuovi utenti, quando chiederanno un account, seguiranno una procedura leggermente differente: essi genereranno la coppia di chiavi, ma non caricheranno la chiave pubblica sul server (non avranno ancora accesso): essi la manderanno all' | ||
+ | Una volta entrato, l' | ||
+ | |||
+ | Ovviamente, è importante tenere in un posto segreto e sicuro la chiave privata e la passphrase, altrimenti, come in tutti i problemi di sicurezza, tutti i vantaggi portati da algoritmi di accesso più sicuri sarnno vanificati. | ||
+ | |||
+ | Qui mostriamo un possibile modo di generare la coppia di chiavi in linux e in windows. In ogni caso c'è molta documentazione in internet su come fare. | ||
+ | |||
+ | **su un sistema linux**\\ | ||
+ | |||
+ | dalla vostra home directory eseguite\\ | ||
+ | '' | ||
+ | Premete enter alla prima domanda (filename)\\ | ||
+ | In risposta alla richiesta "Enter passphrase", | ||
+ | La coppia di chiavi viene generata dal sistema. | ||
+ | * Se ancora avete accesso con password al sistema (vecchi utenti), potete eseguire il seguente comando che copia la vostra chiave pubblica sul server e la aggiunge al file ./ | ||
+ | '' | ||
+ | * Se siete nuovi utenti, semplicemente mandate per e-mail il file ~/ | ||
+ | | ||
+ | **su un sistema Windows**\\ | ||
+ | |||
+ | Noi suggeriamo PuTTY, un pachetto software per Windows che semplifica l'uso di Windows come client SSH a la gestione delle connessioni a host remoti\\ | ||
+ | Per creare la coppia di chiavi (https:// | ||
+ | |||
+ | - Eseguite PUTTYGEN.EXE | ||
+ | - Lasciate le scelte standard (Key -> SSH-2 RSA Key,Use probable primes, show fingerprint as SHA256; Parameters -> RSA, 2048 bit) | ||
+ | - Premete il bottone " | ||
+ | - quando viene chiesta un passphrase, inseritene una buona e salvatela in un luogo sicuro | ||
+ | - salvate in qualche directory sicura o in un dispositivo usb esterno la chiave privata (ricordatevi il percorso, necessario ad eseguire una sessione con PuTTY) | ||
+ | - copiate tutto il contentuto del riquadro sotto " | ||
+ | - mandate per e-mail la chiave pubblica agli admin: come scritto prima essi provederanno a copiarla nella vostra directory .ssh nel cluster con i corretti permessi. | ||
+ | |||
==== File system disponibili ==== | ==== File system disponibili ==== | ||
Line 31: | Line 67: | ||
''/ | ''/ | ||
file system locale a ciascun nodo da usare come area scratch | file system locale a ciascun nodo da usare come area scratch | ||
+ | |||
+ | ATTENZIONE: ''/ | ||
Documentazione approfondita su Lustre è reperibile in rete, al link: '' | Documentazione approfondita su Lustre è reperibile in rete, al link: '' | ||
+ | |||
+ | ''/ | ||
+ | nuova area scratch condivisa tra UI e nodi di calcolo (disponibile dal 07/ | ||
==== Preparazione e sottomissione di job ==== | ==== Preparazione e sottomissione di job ==== | ||
+ | |||
+ | === Premessa: nuove regole di gestione dei job attive dal 9/10/2022 === | ||
+ | |||
+ | Per migliorare l'uso delle risorse sono state cambiate le regole di gestione dei job. | ||
+ | |||
+ | * Sono state implementate nuove politiche di utilizzo basate su meccanismi di // | ||
+ | * Sono state definite nuove code per la sottomissione dei job | ||
+ | - Coda **sequential**: | ||
+ | * accetta solo job sequenziali con numero di task non superiore ad 1, | ||
+ | * che non usano le GP-GPU, | ||
+ | * per un numero totale di job su di essa in esecuzione non superiore a 128 | ||
+ | * e limite massimo del tempo di esecuzione pari a 1 settimana | ||
+ | - Coda **parallel**: | ||
+ | * accetta solo job paralleli con numero di task superiore ad 1 e minore di 1580, | ||
+ | * che facciano uso di non più 64 GP-GPU | ||
+ | * e limite massimo del tempo di esecuzione pari a 1 settimana | ||
+ | - Coda **gpus**: | ||
+ | * accetta solo job che facciano uso di non più di 64 GP-GPU, | ||
+ | * con numero di task minore di 1580 | ||
+ | * e limite massimo del tempo di esecuzione pari a 1 settimana | ||
+ | - Coda **hparallel**: | ||
+ | * accetta solo job paralleli con numero di task superiore a 1580 e minore di 3160, | ||
+ | * che facciano uso di almeno 64 GP-GPU | ||
+ | * e limite massimo del tempo di esecuzione pari a 1 giorno | ||
+ | |||
+ | Dal 9 ottobre sarà disabilitata la coda corrente e saranno attive solo quelle definite qui, da selezionare in modo esplicito. Ad esempio, per sottomottere un job nella coda **parallel** eseguire\\ | ||
+ | |||
+ | $ srun -p parallel <ALTRE OPZIONI> <NOME COMANDO> | ||
+ | |||
+ | Se il job non è conforme alle regole della coda usata, sarà terminato. | ||
+ | |||
+ | === Uso delle risorse === | ||
Per usare le risorse del cluster è installato nel sistema il gestore di risorse SLURM. Documentazione approfondita su esso è disponibile al link '' | Per usare le risorse del cluster è installato nel sistema il gestore di risorse SLURM. Documentazione approfondita su esso è disponibile al link '' | ||
Line 42: | Line 115: | ||
SLURM è un sistema software open source per la gestione di cluster; è altamente scalabile, offre meccanismi di fault-tolerance e di scheduling di jobs. | SLURM è un sistema software open source per la gestione di cluster; è altamente scalabile, offre meccanismi di fault-tolerance e di scheduling di jobs. | ||
- | === Concetti base di SLURM === | + | ==== Concetti base di SLURM ==== |
Le componenti principali di SLURM sono: | Le componenti principali di SLURM sono: | ||
Line 67: | Line 140: | ||
Un elenco completo dei comandi disponibili si trova nel man (disponibile anche online all’indirizzo '' | Un elenco completo dei comandi disponibili si trova nel man (disponibile anche online all’indirizzo '' | ||
- | === Esempi di uso di alcuni dei comandi base === | + | ==== Esempi di uso di alcuni dei comandi base ==== |
== Informazione su sistema e risorse == | == Informazione su sistema e risorse == | ||
Line 158: | Line 231: | ||
Esempio, per sottomettere un job interattivo MPI con <N> tasks, dalla UI: | Esempio, per sottomettere un job interattivo MPI con <N> tasks, dalla UI: | ||
$ srun -n <N> < | $ srun -n <N> < | ||
+ | | ||
+ | **Comando importante quando si usa OpenMP** | ||
+ | |||
+ | Aggiungere il seguente comando nello script usato per sottomettere un job OpenMP: | ||
+ | |||
+ | $ export OMP_NUM_THREADS = < | ||
+ | |||
+ | * Esso specifica il numero di threads da usare quando si eswegue codice che usa OpenMP per eseguire un programma parallelo (C/ | ||
+ | |||
| | ||
==== Suggerimenti per l'uso della suite Intel OneAPI (suite compilatori, | ==== Suggerimenti per l'uso della suite Intel OneAPI (suite compilatori, | ||
Line 213: | Line 295: | ||
< | < | ||
conda activate bioconda | conda activate bioconda | ||
+ | < | ||
+ | conda deactivate | ||
+ | conda deactivate</ | ||
+ | |||
+ | === Pytorch === | ||
+ | |||
+ | Per usare l' | ||
+ | |||
+ | < | ||
+ | conda activate pytorchenv | ||
< | < | ||
conda deactivate | conda deactivate | ||
Line 291: | Line 383: | ||
< | < | ||
< | < | ||
+ | |||
+ | ==== Suggerimenti per l'uso di Matlab per l' | ||
+ | |||
+ | == Suggerimenti base == | ||
+ | |||
+ | * Per usare la finestra comandi di Matlab, usare '' | ||
+ | * Configurare l' | ||
+ | * Si può accedere a Matlab versione R2022a usando il comando '' | ||
+ | |||
+ | == configurazione ed esecuzione == | ||
+ | |||
+ | Qui allegato si può trovare un esempio di un ***Profile File*** che può essere usato per configurare la macchina parallela multi-nodo per l' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | // Il file deve essere decompresso prima dell' | ||
+ | |||
+ | Affinché al cluster acceda un programma Matlab, l' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | //Figure 1: Finestra di Configurazione parallela// | ||
+ | |||
+ | In ***Create and Manage Clusters*** selezionare l' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | //Figure 2: Finestra di importazione delle configurazione// | ||
+ | |||
+ | Una volta che il profilo è stato importato, ad esso può far irferimento un programma parallelo Matlab usando il nome profilo ' | ||
+ | |||
+ | < | ||
+ | ... | ||
+ | delete(mypool); | ||
+ | |||
+ | Per modificare il profilo ' | ||
+ | |||
+ | - la finestra ***Create and Manage Clusters*** | ||
+ | - i comandi di profilo Martlab tipo saveProfile | ||
+ | |||
+ | === Esempio di esecuzione di uno script matlab parallelo === | ||
+ | |||
+ | Questo è un esempio di utilizzo di **parfor** per parallelizzare il ciclo for (dimostrato in {{https:// | ||
+ | In questo esempio viene calcolato il raggio spettrale di una matrice e viene convertito un for-loop in un parfor-loop. Aprire un file denominato **test.m** con il codice seguente | ||
+ | |||
+ | < | ||
+ | n = 100; | ||
+ | A = 200; | ||
+ | a = zeros(n); | ||
+ | parfor i = 1:n | ||
+ | a(i) = max(abs(eig(rand(A)))); | ||
+ | end | ||
+ | delete(mypool); | ||
+ | quit | ||
+ | </ | ||
+ | |||
+ | Per eseguire questo codice, è possibile utilizzare il seguente comando sulla UI: | ||
+ | < | ||
+ | / | ||
+ | </ | ||