Perché usare un cluster?
- Il calcolo ad alte prestazioni (HPC) comporta tipicamente la connessione a sistemi di calcolo molto grandi in altre parti del mondo.
- Questi altri sistemi possono essere utilizzati per eseguire lavori che sarebbero impossibili o molto più lenti su sistemi più piccoli.
- Le risorse HPC sono condivise da più utenti.
- Il metodo standard di interazione con questi sistemi è tramite un’interfaccia a riga di comando.
Connessione a un sistema HPC remoto
- Un sistema HPC è un insieme di macchine collegate in rete.
- I sistemi HPC forniscono in genere nodi di accesso e una serie di nodi worker.
- Le risorse presenti sui nodi indipendenti (worker) possono variare per volume e tipo (quantità di RAM, architettura del processore, disponibilità di filesystem montati in rete, ecc.)
- I file salvati su un nodo sono disponibili su tutti i nodi.
Lavorare su un sistema HPC remoto
- “Un sistema HPC è un insieme di macchine collegate in rete”
- “I sistemi HPC forniscono tipicamente nodi di accesso e una serie di nodi lavoratori.”
- “Le risorse presenti sui nodi indipendenti (lavoratori) possono variare in volume e tipo (quantità di RAM, architettura del processore, disponibilità di filesystem montati in rete, ecc.)
- “I file salvati su un nodo sono disponibili su tutti i nodi.”
Fondamenti di scheduler
- Lo scheduler gestisce la condivisione delle risorse di calcolo tra gli utenti.
- Un lavoro è solo uno script di shell.
- Richiedere poco più risorse di quelle necessarie.
Variabili d'ambiente
- Le variabili di shell sono trattate per impostazione predefinita come stringhe
- Le variabili vengono assegnate utilizzando “
=
” e richiamate utilizzando il nome della variabile preceduto da “$
” - Usare “
export
” per rendere una variabile disponibile ad altri programmi - La variabile
PATH
definisce il percorso di ricerca della shell
Accesso al software tramite moduli
- Carica il software con
module load softwareName
. - Scarica il software con
module unload
- Il sistema dei moduli gestisce automaticamente le versioni del software e i conflitti tra i pacchetti.
Trasferimento di file con computer remoti
-
wget
ecurl -O
scaricano un file da Internet. -
scp
ersync
trasferiscono i file da e verso il computer. - È possibile utilizzare un client SFTP come FileZilla per trasferire i file attraverso un’interfaccia grafica.
Esecuzione di un lavoro parallelo
- La programmazione parallela consente alle applicazioni di sfruttare l’hardware parallelo.
- Il sistema di accodamento facilita l’esecuzione di compiti paralleli.
- I miglioramenti delle prestazioni derivanti dall’esecuzione parallela non hanno una scala lineare.
Usare le risorse in modo efficace
- Job script accurati aiutano il sistema di accodamento ad allocare in modo efficiente le risorse condivise.
Usare le risorse condivise in modo responsabile
- Fare attenzione a come si usa il nodo login.
- I dati presenti sul sistema sono sotto la propria responsabilità.
- Pianificare e testare trasferimenti di dati di grandi dimensioni.
- Spesso è meglio convertire molti file in un singolo file di archivio prima di trasferirli.