HOME| CRESCO| Guide/tutorials| Contatti| F.A.Q.

CRESCO: Descrizione delCluster CRESCO3 di Portici (dismesso in data 13/03/2018)

I nodi dismessi del cluster CRESCO3 sono stati riutilizzati in generale nel sistema Cloud della divisione DTE-ICT e due chassis per un totale di 8 nodi sono in funzione nella base italiana in Antartide: CRESCO3 In Antartide


SOMMARIO:

  1. Caratteristiche del Cluster
  2. Nodi di Front-End
  3. Accesso tramite Client ssh
  4. File System
  5. Compilatori e librerie numeriche
  6. Uso di Modules
  7. Flavour MPI presenti
  8. Come sottomettere un job

1. Caratteristiche del Cluster

Il cluster CRESCO 3 di Portici è un sistema di calcolo costituito da 84 server con le seguenti caratteristiche: Si hanno a disposizione un totale di 2016 cores connessi tra loro da una rete a bassa latenza basata su Infiniband 4xQDR a 40 Gbps gestita da uno switch Qlogic 12800.

L'architettura AMD Opteron 6234 e' riconducibile al seguente schema:

Cresco
      project site

[sommario]


2. Nodi di Front-End

L'utilizzo del cluster avviene facendo il login in uno dei nodi di front-end. I nodi di front-end servono semplicemente per il lancio delle applicazioni tramite LSF, per editare i propri script di lancio o per le compilazioni. I nodi di calcolo sono raggiungibili solo tramite LSF. Per il cluster Cresco 3 si ha a disposizione il front-end: Inoltre per la fase di post-processing e di analisi grafica dei dati è disponibile il front-end grafico Precisiamo che il processore della cresco-gpu01 è un Intel Xeon E5620, quindi questa macchina non va utilizzata per le compilazioni.

[sommario]


3. Accesso tramite Client ssh.

Per accedere al sistema tramite "ssh" è sufficiente collegarsi direttamente al nodo di front-end indicato in precedenza se il proprio PC è collegato alla LAN di uno dei centri ENEA. Dall'esterno collegarsi invece ad uno dei nodi di front-end dell'ENEA-GRID (meglio se uno di Portici) elencati QUI, e poi al front-end cresco3x001.portici.enea.it.

[sommario]


4. File system

I file system disponibili su CRESCO3 sono:
I file system GPFS disponibili sui nodi di CRESCO3 sono:

Il file system /gporq1_1M è stato configurato con una block size di 1 MB e dovrebbe essere usato per i file che hanno dimensione ≥ 1 MB ai fini di ottenere buone prestazioni di I/O.

Il file system /gporq1_256k è stato configurato con una block size di 256 KB e dovrebbe essere usato per i file che hanno dimensione ≤ 1 MB ai fini di ottenere buone prestazioni di I/O.


Gli utenti possono accedere a questi file system o utilizzando il PATH assoluto /gporq1_*/usr/userid, oppure dalla propria home AFS attraverso i link "porq1_*" presenti nella directory PFS.

Ciascun utente ha di default nella sua area /gporq1_*/usr/userid una quota di 200 GB.

I cluster CRESCO3 e CRESCO4 fanno parte di un cluster GPFS che utilizza una interconnessione InfiniBand (IB) QDR 40 Gb/s. I siste mi CRESCO1/2 fanno invece parte di un cluster GPFS basato su interconnessione IB DDR 20 Gb/s. Anche il sistema CRESCO di Frascati fa parte di un cluster GPFS basato su rete IB QDR 40 Gb/s. Il sistema CRESCO di Brindisi fa parte di un cluster GPFS che non &# 232; dotato di IB. Tutti questi cluster GPFS sono indipendenti, ma hanno una interfaccia di rete pubblica che ha consentito di c onfigurarli in una struttura multicluster. Il multicluster GPFS si può implementare all'interno della stessa LAN, oppure pu& #242; essere geografico su WAN. Il multicluster GPFS consente di esportare un file system definito localmente per i nodi di un si stema di calcolo, sui nodi del sistema di calcolo remoto.

È importante precisare che accedendo ad un file system remoto le prestazioni risultano d ecisamente inferiori (l'accesso remoto avviene ad una velocità pari ad un 1 Gb/s mentre l'accesso locale avviene a 32 Gb/s). Non è quindi conveniente utilizzare i file system remoti per eseguire applicazioni caratterizzate da accessi intensivi ai d ati.



Sui nodi di CRESCO1/2 sono accessibili i seguenti file system remoti GPFS:

Sui nodi di CRESCO3 sono accessibili i seguenti file system remoti GPFS:

Sui nodi di CRESCO Frascati sono accessibili i seguenti file system remoti GPFS:

5. Compilatori e librerie numeriche

Durante il fermo del 18 Maggio 2015 il cluster CRESCO3 è stato allineato al cluster CRESCO4 acquisendo da quest'ultimo l'immagine relativamente agli ambienti di compilazione (gcc, intel e pgi) ed alle librerie numeriche. CRESCO3 ha conservato comumque l'ambiente Open64 e le librerie numeriche acml ed anche il compilatore Intel alla versione 12. Nella tabella seguente sono riportati i compilatori e le librerie numeriche attualmente presenti su CRESCO3.

Avvertiamo gli utenti che, sulla base dei benchmark HPL effettuati su CRESCO3 per misurarne la potenza computazionale in termini di operazioni floating point per secondo (Gflops), per ottenere buone prestazioni è stato necessario usare opportune FLAG di compilazione ed utilizzare le librerie numeriche ACML native AMD. Per fare un esempio, usando il compilatore e le librerie MKL native di Intel si è misurata una efficienza del 28%. Usando, invece, il compilatore Intel e le librerie ACML di AMD compilate per Intel al posto delle MKL l'efficienza è stata del 74.3%.
Le FLAG di compilazione, di linking e le librerie utilizzate per i benchmark HPL sono consultabili in questa slide



Open64 (4.5.1) GNU (4.4.6) GNU
(4.8.2)
Intel (14.0.1) Intel (12.1.3) PGI (11.10-0)
PATH compilatori /opt/x86_open64-4.5.1/bin /usr/bin /opt/gcc482/bin /opt/intel/composer_xe_2013_sp1.1.106/bin/intel64 /opt/intel/composer_xe_2011_sp1.9.293/bin/intel64 /afs/enea.it/software/pgi_11.10/linux86-64/11.10/bin
PATH
Librerie numeriche
ACLM di AMD

/opt/acml4.4.0
/opt/acml5.0.0
/opt/acml5.1.0
BLAS/LAPACK/ATLAS

/usr/lib

/usr/lib64

/usr/lib/atlas-sse*

/usr/lib64/atlas

/usr/lib64/atlas-sse*
BLAS/LAPACK/ATLAS

/usr/lib

/usr/lib64

/usr/lib/atlas-sse*

/usr/lib64/atlas

/usr/lib64/atlas-sse*
Intel MKL

/opt/intel/composer_xe_2013_sp1.1.106/mkl/lib/ia32

/opt/intel/composer_xe_2013_sp1.1.106/mkl/lib/intel64
Intel MKL

/opt/intel/composer_xe_2011_sp1.9.293/mkl/lib/intel64
PGI per AMD/ACML e CUDA

/afs/enea.it/software/pgi_11.10/linux86-64/11.10/lib

/afs/enea.it/software/pgi_11.10/linux86-64/11.10/libso

6. Uso di Modules.

Sul cluster Cresco 3 l'inizializzazione dell'ambiente per il singolo utente viene effettuata grazie al software Modules. Per i dettagli sull'implementazione, sulle scelte fatte e sull'uso del software è possibile consultare la relativa documentazione.

In particolare, per impostare in maniera opportuna l'ambiente per la compilazione e la sottomissione di job paralleli non sarà disponibile il comando mpi-selector come sui restanti cluster di ENEA-GRID, ma dovranno essere utilizzati i comandi messi a disposizione da Modules.

Per listare l'elenco delle flavour disponili si potrà utilizzare il comando: La flavour impostata di default per tutti gli utenti è: Se l'utente vuole scegliere una diversa flavour dovrà utilizzare il comando: Ad esempio se si vuole scegliere la libreria OpenMPI compilata con GCC si dovrà dare il comando: A questo punto l'ambiente risulta impostato coerentemente con la scelta della nuova flavour.

N.B. Per gli utenti che chiamano bash o ksh, affinchè Modules riesca ad impostare correttamente l'ambiente, è necessario creare nella propria HOME AFS i file .bashrc o .kshrc (oppure modificarli se giá esistenti) inserendo in testa ad essi delle opportune righe di codice.

Per il file .bashrc:

if [ -f /usr/share/Modules/init/bash ]
then
. /usr/share/Modules/init/bash
fi


Per il file .kshrc:

if [ -f /usr/share/Modules/init/ksh ]
then
. /usr/share/Modules/init/ksh
fi


[sommario]


7. Flavour MPI presenti.

Sul Cluster CRESCO 3 di Portici è presente OFED alla versione: OFED-1.5.4.1. Le flavour MPI presenti, distinte per compilatore, sono elencate nella seguente tabella:


Open64 (version 4.5.1) GNU (version 4.4.6/4.8.2) Intel (version 14.0.1) Intel (version 12.1.3) PGI (version 11.10-0)
Mvapich mancante mvapich2_gcc_qlc-1.7 mvapich2_intel14_qlc-1.7 mvapich2_intel12_qlc-1.7 mvapich2_pgi_qlc-1.7
OpenMPI openmpi_open64-1.4.3
openmpi_open64-1.6.5
openmpi_gcc-1.4.3
openmpi_gcc-1.6.5
openmpi_gcc482-1.4.3
openmpi_gcc482-1.6.5
openmpi_intel14-1.4.3-qlc
openmpi_intel14-1.6.5
openmpi_intel12-1.5.4-qlc openmpi_pgi-1.4.3-qlc
openmpi_pgi-1.6.5
Intel MPI Nessuna Flavour Nessuna Flavour impi-4.1.2 Nessuna Flavour Nessuna Flavour


Dopo la reinstallazione di CRESCO3 avvenuta nel fermo del 18 Maggio 2015 sono stati condotti test prestazionali con il test HPL. Abbiamo osservato che utilizzando le librerie OpenMPI alla versione 1.4.3 si misura un'efficienza del 75% mentre adoperando le OpenMPI alla versione 1.6.5 l'efficienza è stata del 50%. La versione 1.4.3 delle OpenMPI, del resto, è quella meglio supportata dallo stack OFED.

[sommario]


8. Come sottomettere un job

Per la sottomissione di batch job sul cluster cresco 3 valgono le regole generali indicate al paragrafo Batch Job/LSF.
È utile però indicare quali sono le code di sottomissione per il cluster in questione e dare degli esempi di wrapper di sottomissione sia per OpenMPI che per Mvapich.

Code definite su Cresco 3:

cresco3_h144 - Coda per job seriali e job paralleli con basso numero di processi richiesti (massimo 71)

cresco3_72h24 - Coda per job paralleli, il numero minimo di processi da richiedere su questa coda è pari a 72

Di seguito vengono riportati degli esempi di esempi di script di sottomissione i primi due per OpenMPI, il terzo per Mvapich ed il quarto per Intel MPI.

• OpenMPI 1.4.3 (GCC, Intel, PGI)

#!/bin/sh

exe=/afs/enea.it/por/user/raia/Hello_MPI    # path of your MPI program
HOSTFILE=$LSB_DJOB_HOSTFILE     # name of hostfile for mpirun

N_procs=`cat $LSB_DJOB_HOSTFILE | wc -l`     # give to mpirun same number of slots

mpirun --mca plm_rsh_agent "blaunch.sh" -n $N_procs --hostfile $HOSTFILE $exe

• OpenMPI 1.6.5 (GCC, Intel, PGI)

#!/bin/sh

exe=/afs/enea.it/por/user/raia/Hello_MPI    # path of your MPI program
HOSTFILE=$LSB_DJOB_HOSTFILE     # name of hostfile for mpirun

N_procs=`cat $LSB_DJOB_HOSTFILE | wc -l`     # give to mpirun same number of slots

mpirun --mca orte_rsh_agent "blaunch.sh" -n $N_procs --hostfile $HOSTFILE $exe

• Mvapich2 (GCC, Intel, PGI)

#!/bin/sh

exe=/afs/enea.it/por/user/raia/Hello_MPI    # path of your MPI program
HOSTFILE=$LSB_DJOB_HOSTFILE     # name of hostfile for mpirun

N_procs=`cat $LSB_DJOB_HOSTFILE | wc -l`     # give to mpirun same number of slots

mpirun_rsh -rsh -np $N_procs -hostfile $HOSTFILE $exe

• Intel MPI 4.1.2

#!/bin/sh

exe=/afs/enea.it/por/user/raia/Hello_MPI    # path of your MPI program
HOSTFILE=$LSB_DJOB_HOSTFILE     # name of hostfile for mpirun

N_procs=`cat $LSB_DJOB_HOSTFILE | wc -l`     # give to mpirun same number of slots

mpirun -bootstrap rsh -n $N_procs -machinefile $HOSTFILE $exe



Esempi di sottomissione:

Precisiamo che sulla coda cresco3_72h24, affinchè il job sia accettato, è necessario sottomettere a multipli di 24 (numero di core di ogni singolo nodo di calcolo).



[sommario]


ultimo aggiornamento: 15/03/2013|e-mail: Agostino Funel - Guido Guarnieri - Carlo Scio

Cookies Policy