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

CRESCO: Descrizione del Cluster CRESCO6 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. Vtune Profiler
  9. Come sottomettere un job

1. Caratteristiche del cluster

Il cluster CRESCO6 di Portici è un sistema di calcolo costituito da 434 nodi. Ogni nodo ha: Si hanno quindi a disposizione 20832 core connessi tra loro da una rete a larga banda e bassa latenza basata su Intel Omni-Path a 100 Gb/s.

L'architettura di un nodo di CRESCO6 è 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 CRESCO6 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 ENEAGRID (meglio se uno di Portici) elencati QUI, e poi ai front-end di CRESCO6.

L'accesso ai front-end di ENEAGRID 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 CRESCO6 sono:

5. Compilatori e librerie numeriche

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


GNU (4.8.5) GNU
(7.3.0)
Intel (17.0.4) Intel (18.0.2) PGI (11.10-0)
PATH compilatori /usr/bin /opt/gcc730/bin /opt/intel/bin/ /opt/intel18/bin /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/mkl/lib/intel64
Intel MKL

/opt/intel18/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 CRESCO6 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.

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.

Le flavour MPI presenti, distinte per compilatore, sono elencate nella seguente tabella:


GNU (version 4.8.5/7.3.0) Intel (version 17.0.4/18.0.2) PGI (version 11.10-0)
Mvapich mvapich2.2.2_gcc_hfi mvapich2.2.2_intel-hfi mvapich2.2.2_pgi-hfi
OpenMPI openmpi_gcc-1.10.4-hfi
openmpi_gcc-3.1.1
openmpi_gcc730-3.1.1
openmpi_intel-1.10.4-hfi
openmpi_intel-3.1.1
openmpi_pgi-1.10.4-hfi
openmpi_pgi-3.1.1
Intel MPI Nessuna Flavour IntelMPI Nessuna Flavour

[sommario]


8. Vtune Profiler

Per i compilatori Intel, sia alla versione 17 che alla versione 18 si ha a disposizione lo strumento Vtune Amplifier. Per poter avviare l'applicazione si possono usare i comandi:

amplxe-gui (interfaccia grafica)

amplxe-cl (riga di comando)

Una guida rapida per lo strumento in questione si trova al seguente link.

[sommario]


9. Come sottomettere un job

Per la sottomissione di batch job sul cluster CRESCO6 valgono le regole generali indicate al paragrafo Batch Job/LSF.

Sotto vengono riportate le code di sottomissione per il cluster in questione e alcuni esempi di wrapper di sottomissione per OpenMPI,Mvapich ed IntelMPI.

Code definite su CRESCO6:

cresco6_48h24 - Coda per job paralleli che richiedono almeno 48 core. Accetta job con un numero di core multiplo di 48 ed un tempo massimo di RUNNING pari a 24 ore

Sulla coda è 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 per OpenMPI, Mvapich ed Intel MPI.

• OpenMPI (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

• Mvapich (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

#!/bin/sh

exe=/afs/enea.it/por/user/raia/Hello_MPI    # path of your MPI program
N_procs=`cat $LSB_DJOB_HOSTFILE | wc -l`     # number of slots

host_numb=`echo "$N_procs/48" | bc`     # number of hosts to involve

export I_MPI_HYDRA_BRANCH_COUNT=$host_numb

mpirun -bootstrap rsh $exe

Esempi di sottomissione:


Precisiamo che sulla coda cresco6_48h24, affinché il job sia accettato, è necessario che i core richiesti dal job siano un multiplo di 48 (numero di core di ogni singolo nodo di calcolo) e fino ad un massimo di 6144 (128 nodi). Sulla coda cresco6_48h48 va sottomesso sempre a multipli di 48 fino ad un massimo di 3072 (64 core) avendo contezza che in ogni istante 3072 rappresenta anche il limite sul numero totale di core disponibili per l'intera utenza su questa coda.



[sommario]


ultimo aggiornamento: 3/11/2015|e-mail: Guido Guarnieri

Cookies Policy