User Tools

Site Tools


wiki:uso_sist

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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 ''yppasswd'',  adatto a creare (o cambiare) una password valida non sul solo sistema di ingresso, ma su tutte le risorse del sistema HPC (Network password in un Network Information Service  - NIS) Per cambiarla usare da linea di comando il comando ''yppasswd'',  adatto a creare (o cambiare) una password valida non sul solo sistema di ingresso, ma su tutte le risorse del sistema HPC (Network password in un Network Information Service  - NIS)
 +
 +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 ''https://www.putty.org/'', oppure, da Windows 10 in poi, usando da finestra di comandi (CMD.exe o Powershell.exe) il software Openssh già installato in Windows (eventualmente non attivo, va semplicemente attivato nelle optional features)  Per accedere da sistemi windows si può usare il software putty, reperibile gratuitamente al sito ''https://www.putty.org/'', oppure, da Windows 10 in poi, usando da finestra di comandi (CMD.exe o Powershell.exe) il software Openssh già installato in Windows (eventualmente non attivo, va semplicemente attivato nelle optional features) 
 +
 +Tra alcuni mesi l'accesso al cluster avverrà  esclusivamente tramite il metodo "utente - SSH Key" (altri metodi di accesso sicuro sono allo studio).\\
 +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'admin Ibisco.  L'admin la copierà, con i corretti permessi, nella home del nuovo utente. Dopodiché l'utente avrà l'abitlià di entrare nel sistema senza inserire una password del server (ma avrà ancora da inserire una passphrase, v. avanti).\\
 +Una volta entrato, l'utente creerà una password per il server con yppasswd per l'accesso a tutti i nodi del cluster.\\
 +
 +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\\
 +''$ ssh-keygen -t rsa''\\
 +Premete enter alla prima domanda (filename)\\
 +In risposta alla richiesta "Enter passphrase",  inserite una psspphrase della chiave per proteggere l'accesso alla chiave privata. L'uso della passphrase rafforza la sicurezza e quindi si raccomanda di usarla.
 +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 ./ssh/authorized_keys con i corretti permessi:
 +      ''$ ssh-copy-id -i ~/.ssh/id_rsa.pub <username>@ibiscohpc-wiki.scope.unina.it''
 +    * Se siete nuovi utenti, semplicemente mandate per e-mail il file ~/.ssh/id_rsa.pub agli admin Ibisco: essi provederanno a copiarla nella vostra directory .ssh nel cluster con i corretti permessi.
 +    
 +**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://the.earth.li/~sgtatham/putty/0.77/htmldoc/) potete seguire la seguente procedura.
 +
 +   - 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 "Generate" e seguite le indicazioni
 +   - 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 "Public key for pasting ..." (copia-incolla) in un file id_rsa.pub. Esso avrà il formato giusto per essere accettato da OpenSSH (il software SSH disponibile su linux e perciò anche su IBiSco)
 +   - 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:
 ''/home/scratch'' ''/home/scratch''
 file system locale a ciascun nodo da usare come area scratch file system locale a ciascun nodo da usare come area scratch
 +
 +ATTENZIONE: ''/lustre/scratch'' e ''/home/scratch'' sono accessibili SOLO dai nodi (vale a dire, quando si accede ad uno di essi), non dalla UI
  
 Documentazione approfondita su Lustre è reperibile in rete, al link: ''https://www.lustre.org/'' Documentazione approfondita su Lustre è reperibile in rete, al link: ''https://www.lustre.org/''
 +
 +''/ibiscostorage''
 +nuova area scratch condivisa tra UI e nodi di calcolo (disponibile dal 07/10/2022), **non** basata su Lustre
  
  
  
 ==== 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 //fairshare// \\
 + * 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 ''https://slurm.schedmd.com/'' Per usare le risorse del cluster è installato nel sistema il gestore di risorse SLURM. Documentazione approfondita su esso è disponibile al link ''https://slurm.schedmd.com/''
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 ''https://slurm.schedmd.com/man_index.html''): ''man <cmd>'' Un elenco completo dei comandi disponibili si trova nel man (disponibile anche online all’indirizzo ''https://slurm.schedmd.com/man_index.html''): ''man <cmd>''
  
-=== 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> <EXEFILE>     $ srun -n <N> <EXEFILE>
 +    
 +**Comando importante quando si usa OpenMP**
 +
 +Aggiungere il seguente comando nello script usato per sottomettere un job OpenMP:
 +
 +    $ export OMP_NUM_THREADS = <nthreads>
 +
 +   * Esso specifica il numero di threads da usare quando si eswegue codice che usa OpenMP per eseguire un programma parallelo (C/C++/Fortran). Il massimo valore dovrebbe essere pari al numero diprocessori disponibili. Per maggiori informazioni su OpenMP, potete consultare [[https://www.openmp.org/spec-html/5.0/openmpse50.html|openMP]].
 +   
          
 ==== Suggerimenti per l'uso della suite Intel OneAPI (suite compilatori, librerie, etc forniti da Intel) ==== ==== Suggerimenti per l'uso della suite Intel OneAPI (suite compilatori, librerie, etc forniti da Intel) ====
Line 213: Line 295:
 <code>source /nfsexports/SOFTWARE/anaconda3.OK/setupconda.sh <code>source /nfsexports/SOFTWARE/anaconda3.OK/setupconda.sh
 conda activate bioconda conda activate bioconda
 +<commands execution> [Example: python example.py]
 +conda deactivate
 +conda deactivate</code>
 +
 +=== Pytorch ===
 +
 +Per usare l'ambiente Pytorch, bisogna eseguire i seguenti comandi:
 +
 +<code>source /nfsexports/SOFTWARE/anaconda3.OK/setupconda.sh
 +conda activate pytorchenv
 <commands execution> [Example: python example.py] <commands execution> [Example: python example.py]
 conda deactivate conda deactivate
Line 291: Line 383:
 <code> $ source /nfsexports/SOFTWARE/OpenFOAM-9.0/etc/bashrc </code> <code> $ source /nfsexports/SOFTWARE/OpenFOAM-9.0/etc/bashrc </code>
 <code> $ source /nfsexports/SOFTWARE/intel/oneapi/compiler/latest/env/vars.sh </code> <code> $ source /nfsexports/SOFTWARE/intel/oneapi/compiler/latest/env/vars.sh </code>
 +
 +==== Suggerimenti per l'uso di Matlab per l'esecuzione di job paralleli sul cluster IBiSco HPC ====
 +
 +== Suggerimenti base ==
 +
 +   * Per usare la finestra comandi di Matlab, usare  '' ssh ibiscohpc-ui.scope.unina.it -l [username] -Y '' quando si entra nel cluster IBISCO.
 +   * Configurare l'ambiente Matlab usando il comando '' /nfsexports/SOFTWARE/MATLAB/R2020b/bin/matlab ''. Questo apre la finestra comandi mathworksdove si potrà aggiungere il file di configurazione (v. avanti).\\
 +   * Si può accedere a Matlab versione R2022a usando il comando '' /nfsexports/SOFTWARE/MATLAB/R2022a/bin/matlab ''
 +
 +== 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'esecuzione di job paralleli Matlab sul cluster HPC IBiSco.\\
 +
 +{{:wiki:SlurmIBISCOHPC.mlsettings.lsettings.zip|Esempio di file di configurazione for esecuizione parallela}}
 +
 +// Il file deve essere decompresso prima dell'uso //
 +
 +Affinché al cluster acceda un programma Matlab, l'utente deve ***prima importare*** quel file avviando il  ***Cluster Profile Manager*** sul desktop Matlab (Sul tab ***Home*** tab, nell'area ***Environment***, selezionare ***Parallel*** > ***Create and Manage Clusters***).\\) 
 +
 +{{:wiki:FinestraConfigurazioneParallel.png?400|Finestra di Configurazione parallela}
 +
 +//Figure 1: Finestra di Configurazione parallela//
 +
 +In ***Create and Manage Clusters*** selezionare l'opzione ***Import***
 +
 +{{:wiki:FinestraImportpParallel.png?400| Finestra di importazione delle configurazione}}
 +
 +//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 'SlurmIBISCOHPC': ovvero\\
 +
 +<code>mypool=parpool('SlurmIBISCOHPC', ___, ___, ___, ___) 
 +...
 +delete(mypool); </code>
 +
 +Per modificare il profilo 'SlurmIBISCOHPC' l'utente può usare 
 +
 +   - la finestra ***Create and Manage Clusters***
 +   - i comandi di profilo Martlab tipo saveProfile  (https://it.mathworks.com/help/parallel-computing/saveprofile.html)
 +
 +=== Esempio di esecuzione di uno script matlab parallelo ===
 +
 +Questo è un esempio di utilizzo di **parfor** per parallelizzare il ciclo for (dimostrato in {{https://it.mathworks.com/help/parallel-computing/decide-when-to-use-parfor.html?s_eid=PSM_15028 | MathWorks}}).
 +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
 +
 +<code>mypool=parpool('SlurmIBISCOHPC', 5) % 5 è il numero di lavoratori
 +n = 100;
 +A = 200;
 +a = zeros(n);
 +parfor i = 1:n
 +    a(i) = max(abs(eig(rand(A))));
 +end
 +delete(mypool); 
 +quit
 +</code>
 +
 +Per eseguire questo codice, è possibile utilizzare il seguente comando sulla UI:
 +<code>
 +/nfsexports/SOFTWARE/MATLAB/R2020b/bin/matlab -nodisplay -nosplash -nodesktop -r test
 +</code>
  
  
wiki/uso_sist.1655324096.txt.gz · Last modified: 2022/06/15 20:14 by cnr-guest