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

CRESCO: Descrizione del Cluster CRESCO4 di Portici


SOMMARIO:

  1. Caratteristiche del Cluster
  2. Nodi di front-end
  3. Accesso
  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 CRESCO4 di Portici è un sistema di calcolo costituito da 304 nodi. Ogni nodo ha: Si hanno quindi a disposizione 4864 core connessi tra loro da una rete a larga banda e bassa latenza basata su Infiniband 4xQDR a 40 Gb/s gestita da uno switch Qlogic 12800.

L'architettura di un nodo di CRESCO4 è riconducibile al seguente schema:

Cresco project site

[sommario]


2. Nodi di front-end

L'utilizzo del cluster avviene facendo il login su 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 CRESCO4 si hanno a disposizione i front-end:

[sommario]


3. Accesso

Per accedere al sistema tramite "SSH" è sufficiente collegarsi direttamente ad uno dei nodi di front-end indicati 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 di ENEA-GRID (meglio se uno di Portici) elencati QUI, e poi ai front-end di CRESCO4.

L'accesso ai front-end di ENEA-GRID può avvenire anche via web dalla pagina di CRESCO (www.cresco.enea.it) mediante la interfaccia FARO/NX.

[sommario]


4. File system

I file system disponibili su CRESCO4 sono:
I file system GPFS disponibili sui nodi di CRESCO4 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 sistemi 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 è dotato di IB. Tutti questi cluster GPFS sono indipendenti, ma hanno una interfaccia di rete pubblica che ha consentito di configurarli in una struttura multicluster. Il multicluster GPFS si può implementare all'interno della stessa LAN, oppure può essere geografico su WAN. Il multicluster GPFS consente di esportare un file system definito localmente per i nodi di un sistema di calcolo, sui nodi del sistema di calcolo remoto.

È importante precisare che accedendo ad un file system remoto le prestazioni risultano decisamente 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 dati.



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



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



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



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



5. Compilatori e librerie numeriche

Nella tabella seguente sono riportati i compilatori e le librerie numeriche presenti su CRESCO4.


GNU (4.4.6) GNU
(4.8.2)
Intel (14.0.1) Intel (16.0.0) PGI (11.10-0)
PATH compilatori /usr/bin /opt/gcc482/bin /opt/intel/composer_xe_2013_sp1.1.106/bin/intel64 /opt/intel16/compilers_and_libraries_2016.0.109/linux/bin/intel64 /afs/enea.it/software/pgi_11.10/linux86-64/11.10/bin
PATH
Librerie numeriche
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/intel16/compilers_and_libraries_2016.0.109/linux/mkl/lib/intel64_lin
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 CRESCO4 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 CRESCO4 di Portici è presente OFED alla versione: OFED-1.5.4.1. Le flavour MPI presenti, distinte per compilatore, sono elencate nella seguente tabella:


GNU (version 4.4.6/4.8.2) Intel (version 14.0.1) PGI (version 11.10-0)
Mvapich mvapich2_gcc_qlc-1.7 mvapich2_intel_qlc-1.7 mvapich2_pgi_qlc-1.7
OpenMPI openmpi_gcc-1.4.3
openmpi_gcc-1.6.5
openmpi_gcc482-1.4.3
openmpi_gcc482-1.6.5
openmpi_intel-1.4.3-qlc
openmpi_intel-1.6.5
openmpi_pgi-1.4.3-ql
openmpi_pgi-1.6.5
Intel MPI Nessuna Flavour impi-4.1.2 Nessuna Flavour

[sommario]


8. Come sottomettere un job

Per la sottomissione di batch job sul cluster CRESCO4 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 CRESCO4:

cresco4_h6 - Coda per job seriali e paralleli che richiedono al massimo 256 core. Tempo massimo di RUNNING 6 ore, aperta a tutti a scopo di test e prove;

cresco4_256h24 - Coda per job paralleli con numero_core ≥ 257, granularità 16 core, tempo massimo di RUNNING 24 ore.

Su entrambe le code è definito il "fairshare" che abbassa la priorità ai job degli utenti che hanno già utilizzato intensamente il sistema.

Di seguito vengono riportati degli 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 cresco4_256h24, affinché il job sia accettato, è necessario che i core richiesti dal job siano un multiplo di 16 (numero di core di ogni singolo nodo di calcolo).



[sommario]


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