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
1. Caratteristiche del Cluster
Il cluster CRESCO 3 di Portici è un sistema di calcolo costituito da 84 server con le seguenti caratteristiche:L'architettura AMD Opteron 6234 e' riconducibile al seguente schema:
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: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.4. File system
I file system disponibili su 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.
È 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.
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.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.
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.• 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: