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 e curl -O scaricano un file da Internet.
  • scp e rsync 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.