CalcoloScientifico

From I.N.F.N. Wiki
Jump to: navigation, search

User (E. Mazzoni)

Note sull'uso delle risorse di Calcolo Scientifico di INFN-Pisa




Introduzione[edit]

Queste pagine wiki raccolgono alcune note circa l'uso dell'Infrastruttura di Calcolo Scientifico delle sezione INFN Pisa. Le risorse disponibili si dividono in HPC e HTC, in entrambi i casi l'uso delle risorse è mediato dal sistema di batch LSF. L'accesso avviene attraverso macchine di login pubblico chiamate User Interface che, grazie alla infrastruttura di AAI, possono essere utilizzate da tutto il personale INFN (dipendente o associato) che abbia un account in una qualsiasi sezione dell'istituto.


Accesso[edit]

Prima di potersi collegare ad una qualsiasi delle User Interface è necessario inizializzare il proprio account, per fare questo sarà sufficiente fare login sulla macchina setupui.pi.infn.it

    nbenrico:~> ssh username@setupui.pi.infn.it
    username@setupui.pi.infn.it's password:
Last login: Sat Dec 23 22:34:48 2017 from 151.29.129.119
 !!! ATTENZIONE: il tuo account sarà attivo entro 5 minuti da ora. !!!
Da questo momento in poi per accedere alle risorse di Calcolo Scientifico presenti a Pisa e' necessario fare login su ....
gridui.pi.infn.it
oppure
localui.pi.infn.it
 !!! ATTENTION: your account will be active in 5 minuts from now. !!!
From now on to get access to the INFN-Pisa Scientific Computing resources you must login on ....
gridui.pi.infn.it
or
localui.pi.infn.it
Buon Lavoro
Connection to setupui.pi.infn.it closed.



eseguita questa inizializzazione sarà possibile accedere alle User Interface attraverso l'alias gridui.pi.infn.it è possibile autenticarsi attraverso varimeccanismi:

  • username e password: meccanismo disponibile sia per utenti di INFN-Pisa che di altre sezioni, si usano le credeziali della propria sede (le solite utilizzate per autenticarsi via AAI al portale del Sistema Informativo)



 nbenrico:~> ssh username@gridui.pi.infn.it
 username@gridui.pi.infn.it's password: 
---------------------------------------------------------- | Welcome to the INFN-Pisa Public Grid UI Service, SL 6.9 | | IP will be banned for at least 1h after 5 failed logins! | | To get help: grid-prod@lists.pi.infn.it ----------------------------------------------------------
[username@gridui2 ~]$



  • con chiavi ssh: meccanismo disponibile per tutti gli utenti che consiste nel copiare la parte pubblica delle proprie chiavi ssh nel file .ssh/authorized_keys per poter sfruttare questo meccanismo è comunque necessario un primo login con un altro metodo
  • kerberos5: meccanismo disponibile solo per gli utenti che abbiano un account a Pisa e che si colleghino partendo da una macchian con il client kerberos 5 installato. Il meccanismo è particolarmente sicuro perché non c'è la trasmissione della propria password in rete, prevede la creazione del proprio ticket kerberos sulla macchina da cui ci si collega e quindi il normale ssh:



 mazzoni@nbenrico:~> kinit username@PI.INFN.IT
 Password for username@PI.INFN.IT: 
mazzoni@nbenrico:~> ssh username@gridui.pi.infn.it
---------------------------------------------------------- | Welcome to the INFN-Pisa Public Grid UI Service, SL 6.9 | | IP will be banned for at least 1h after 5 failed logins! | | To get help: grid-prod@lists.pi.infn.it ----------------------------------------------------------
[username@gridui2 ~]$



Le User Interface sono solo macchine di login pubblico, non sono quindi da utilizzare per scopi computazionale. Attraverso di loro si ha accesso all'intera infrastruttura di Calcolo Scientifico di INFN-Pisa composta da varie componenti, sono queste componenti che dovranno essere usate per le proprie necessità computazionali. Nel caso la propria attività richieda l'uso di applicazioni grafiche è necessario ricordarsi di abilitare il forward X11 al momento della connessione alle UI. Per far questo si hanno due possibilità:

  • forward tradizione attraverso l'incapsulamento della sessione grafica X11 all'interno del tunnel ssh creato al momento della connessione. Questo meccaimso è particolarmente semplice da utilizzare ma ha basse prestazioni risentendo molto della latenza della connessione che si utilizza. Per questo motivo è utilizzabile se si lavora dall'interno della rete locale di INFN-Pisa ma sconsigliabile in caso di connessione dall'esterno della LAN o utilizzando una linea ADSL. Per poter abilitare questo tipo di forward sarà sufficiente specificare l'opzione -Y di ssh:

ssh -Y username@gridui.pi.infn.it

  • acceleratare attraverso l'uso di un client opportuno. Nel caso ci si colleghi dall'esterno della LAN di INFN-Pisa o comunque siano necessarie prestazioni superiori al tradizionale forward via ssh si dovrà ricorrere ad un software specifico, tutte le UI sono dotate del servizio x2go, installando sulla proprio macchina il client reperibile dal sito di x2go sarà possibile collegarsi alle UI con una sessione grafica più efficente. Una volta installato il client x2go lo si eseguirà ottenendo la seguente finestra

X2go-1.png

nel menu "Session" in alto a sinistra si selezionerà "New session" per creare una nuova sessione

X2go-2.png

con i seguenti parametri

Session name: quello che si vuole
Host: gridui.pi.infn.it
Login: username
Session type: single application
Command: terminal


a questo punto selezionando la sessione appena creata sarà possibile fare login su una delle UI e quindi verrà aperto un xterm sulla proprio macchina attraverso cui poter lavorare.

Risorse computazionali[edit]

Sono disponibili varie tipologie di risorse computazionali per rispondere alle esigenze di calcolo degli utenti, queste possono essere suddivise in tre grandi gruppi: 1 risorse per analisi interattiva 2 risorse batch di tipo HTC o seriali 3 risorse batch di tipo HPC o parallelo l'accesso a tutte le risorse è mediato dal sistema di batch LSF e quindi le varie tipologie di risorse corrisponderanno a code diverse. Vediamo le modalità di accesso alle varie risorse.

FAI (Farm Analisi Interattiva)[edit]

In questo gruppo si trovano risorse di calcolo che rispondono alle esigenze di tipo interattivo, sia per applicazioni "standard" che per quelle che hanno bisogno di utilizzare "molta" RAM. È inoltre possibile selezionare il tipo di ambiente operativo che si vuol utilizzare fra:

  • Scintific Linux 6: sl6
  • CentOS 7: cs7

è inoltre possibile utilizzre più CPU sulla solita macchina. Il trasporto della sessione grafica X11 è garantito dal sistema di batch e quindi non è necessario fare nessuna confiugrazione particolare. Nel seguito si riportano i comandi necessari per collegarsi alla FAI nelle varie modalità.

FAI "bassa memoria"[edit]
  • 1CPU e 1GB di RAM su un nodo a bassa memoria

bsub -Is -q fai -a "docker-ver" /bin/bash

con ver che può assumere i valori sl6 o cs7

  • m CPU e mx1GB di RAM su un nodo a bassa memoria

bsub -Is -n m -R span[hosts=1] -q fai -a "docker-ver" /bin/bash

con ver che può assumere i valori sl6 o cs7

In ogni caso il sistema eviterà che utilizzi più CPU di quella che è stata richiesta al momento della sottomissione.

[username@gridui1 ~]$ bsub -Is -n 4 -R span[hosts=1] -q fai -a "docker-sl6" /bin/bash
Job <16246270> is submitted to queue <fai>.
<<Waiting for dispatch ...>>
<<Starting on faiwn4>>
sl6: Pulling from fai/wn-umd4
Digest: sha256:4e021128b2143e23e7485a3319d917e9a72a37416956575e9af23553459f9c98
Status: Image is up to date for fai/wn-umd4:sl6
[username@faiwn4 username]$


FAI "alta memoria"[edit]

In questo caso in fase di sottomissione si deve specificare la quantità di RAM di cui si avrà bisogno, LSF farà in modo di garantire la disponibilità di questa memoria sul nodo a cui si verrà collegati.

  • 1 CPU e X MB di RAM su un nodo ad alta memoria

bsub -Is -R rusage[mem=X] -q faihmem -a "docker-ver" /bin/bash

con ver che può assumere i valori sl6 o cs7

  • m CPU e X MB di RAM su un nodo ad alta memoria

bsub -Is -n m -R span[hosts=1] -R rusage[mem=X] -q faihmem -a "docker-ver" /bin/bash

con ver che può assumere i valori sl6 o cs7

Nel caso non si specifichi la quantità di RAM di cui si ha bisogno il job non partirà. Nel caso che nessun nodo abbia disponibile la quantità di RAM richiesta il job rimarrà in attesa che questa si liberi. In ogni caso il sistema eviterà che utilizzi più CPU di quella che è stata richiesta al momento della sottomissione.

[username@gridui1 ~]$ bsub -Is -n 4 -R span[hosts=1] -R rusage[mem=2048] -q faihmem -a "docker-sl6" /bin/bash
Job <16246597> is submitted to queue <faihmem>.
<<Waiting for dispatch ...>>
<<Starting on faihmwn2>>
sl6: Pulling from fai/wn-umd4
Digest: sha256:4e021128b2143e23e7485a3319d917e9a72a37416956575e9af23553459f9c98
Status: Image is up to date for fai/wn-umd4:sl6
[username@faihmwn2 username]$


Batch di tipo HTC[edit]

Batch di tipo HPC[edit]

Per utilizzare questo tipo di risorse è necessario collegarsi a localui.pi.infn.it con le stesse modalità descitte prima.

Risorse con GPGPU[edit]

Nella nuova installazione dei sistemi cuda è stato usato l'approccio docker già usato per la coda fai. Questo significa che l'installazione non è più rigidamente vincolata ma si ha la possibilità di selezionare l'ambiente in cui lavorare. Questo si traduce nell'avere due gradi di libertà, si può cioè scegliere di utilizzare un ambiente CPU+GPU oppure un ambiente solo CPU. Alla libertà dei vari ambienti HW si aggiunge la libertà dell'ambiente SW. Tutte queste libertà si traducono ovviamente in varie opzioni da passare al bsub per la loro selezione.

Gli ambienti SW disponibili sono riportati nella seguente tabella:

flag Descrizione
sl6 Scientific Linux 6 senza supporto NVidia
cs7 CentOS 7 senza supporto NVidia
91_rtm_cs7 CentOS 7 con supporto NVidia runtime ver. 9.1
91_dev_cs7 CentOS 7 con supporto NVidia sviluppo ver. 9.1
90_tfks_cs7 CentOS 7 con supporto NVidia runtime ver. 9.0 + Tensorflow + Keras

la versione di ambiente software la si seleziona aggiungendo la seguente opzione del busb

-a "docker-flag"

con flag che assume uno dei valori riportati sopra.

Ovviamente non basta selezionare l'ambiente con supporto NVidia per poter accedere alle GPU. E qui veniamo alla selezione HW. È possibile specificare via bsub che si vuol avere accesso alle GPU e a quante, in questo caso l'opzione da utilizzare è -R in particolare se si desidera avere accesso a 2 GPU si dovrà aggiungere l'opzione:

-R "rusage[ngpus=2]"

in questo modo LSF terrà il conto delle GPU assegnate ed eviterà che siano fatti partire più processi delle GPU disponibili. Se questa opzione viene omessa non saranno assegnate GPU anche se si è richiesto un ambiente SW con il supporto NVidia.

Inoltre dato che sulla stessa coda sono disponibili macchine con tipologie di schede diverse è anche necessario specificare il tipo di scheda che si desidera con l'opzione:

-R "select[defined(sch)]

i possibile valori di sch sono riportati nella seguente tabella:

sch Tipo Scheda
K80m TeslaK80
V100 Tesla V100 PCIe 16GB
V10032 Tesla V100 PCIe 32GB
V100SXM2 Tesla V100 SXM2 32GB
P100 Tesla P100 PCIe 12GB
T4 Tesla T4 PCIe 16GB

Nel caso questa opzione non venga specificata LSF assegnerà una macchina qualsiasi senza nessuna selezione della scheda GPGPU.

Facciamo degli esempi:

  • supponiamo di voler eseguire un job che abbia bisogno di 2CPU e 2GPU con supporto NVidia 9.1 su CentOS7 e senza preferenze sul tipo di GPU il comando sarà:

bsub -q nome-coda -n 2 -R "rusage[ngpus=2]" -a "docker-91_rtm_cs7"

  • supponiamo di voler eseguire un job che abbia bisogno di 2CPU e 1GPU con supporto NVidia 9.1 su CentOS7 utilizzando una sche Tesla V100 il comando sarà:

bsub -q nome-coda -n 2 -R "select[defined(V100)] rusage[ngpus=1]" -a "docker-91_rtm_cs7"

  • supponiamo di voler eseguire un job che richieda solo 4CPU con ambiente CentOS7, il bsub sarà:

bsub -q nome-coda -n 4 -a "docker-cs7"

  • attenzione il seguente comando bsub

bsub -q nome-coda -n 2 -a "docker-91_rtm_cs7"

produrrà un sistema con SW che supporta NVidia ma senza nessuna GPU associata e 2CPU riservate.

L'opzione -n può essere omessa (a differenza di ngpus) in questo caso il sistema assume si voglia usare una sola CPU.

LSF tiene contemporaneamente il conto delle CPU e delle GPU assegnate per cui se sono state assegnate tutte le GPU disponibili non entreranno più job che richiedono GPU ma continueranno ad entrare job che richiedono solo CPU. Analogamente se ci sono GPU libere ma non CPU.

Le code disponibili con le caratteristiche salienti sono riportate nella tabella seguente.

nome-coda utilizzabile da batch/interattivo GPU tipo(n)
gpuari gruppo arianna entrambi K80(8) V100(2)
gpu teorici entrambi P100(3) V100SXM2(1) V10032(2) T4(3)

Infrastruttura di Storage[edit]

Software[edit]

Istruzioni per l'uso dei software sotto licenza disponibili nell'infratsruttura di calcolo scientifico.

Mathematica[edit]