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

CRESCO: Descrizione del Cluster CRESCO5F di Frascati


SOMMARIO:

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

1. Caratteristiche del Cluster

Il cluster è costituito da 8 nodi di cui solo 4 sono dotati di GPU e uno scheda FPGA con la seguente configurazione: 



______________________________
Il cluster CRESCO5F di Frascati è un sistema di calcolo costituito da 8 nodi con le seguenti caratteristiche: Si hanno a disposizione un totale di 256 cores connessi tra loro da una rete a bassa latenza basata su Infiniband Mellanox EDR a 100Gb/s gestita da uno switch Mellanox. I nodi sono installati con un Sistema Operativo Rocky 8.5, una nuova release principale rispetto alle CentOS 7.3 (Cresco6) e alle CentOS 7.8 (Cresco4), quindi chiediamo agli utenti di verificare la portabilità dei propri codici ed eventualmente ricompilarli.
Ogni nodo del cluster ha un'area di disco locale /tempwork da usare come scratch che in totale è 1 TB (disco NVME).
Chiunque abbia bisogna di utilizzarla per i propri job deve fare richiesta tramite ticket.

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

Cresco project site

[sommario]


2. Nodi di Front-End

L'utilizzo del cluster avviene facendo il login dal nodo di front-end (cresco5fx001). Il nodo di front-end serve 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.

[sommario]


3. Accesso tramite Client ssh.

Per accedere al sistema tramite "ssh" è sufficiente collegarsi direttamente al nodo di front-end cresco5fx001.frascati.enea.it se il proprio PC è collegato alla LAN di uno dei centri ENEA.

Dall'esterno l'utente può collegarsi tramite ssh ad uno dei due super-nodi di front-end, cresco-in.frascati.enea.it ovvero cresco-in.portici.enea.it. Dopo aver effettuato il login, l'utente dovrà selezionare il front-end cresco5fx001.frascati.enea.it.

[sommario]


4. Compilatori e librerie numeriche

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

  GNU (gcc 8.5.0) GNU (gcc 11.2.0) Intel (19.1.3) Intel/oneapi 22.1 PGI (20.4-0) NVHPC (22.3)
PATH compilatori /usr/bin/ /opt/gcc112/bin/gcc /opt/intel20/bin/intel64/icc  /afs/enea.it/software/intel_compiler/rocky8_5/oneapi/... ...2022.1.2/compiler/2022.0.2/linux/bin /afs/enea.it/software/pgi_compiler/pgi_20_4/... ...cresco5f/build/linux86-64-llvm/20.4/bin /afs/enea.it/software/cuda/rocky85/nvhpc/22.3/... ...opt/nvidia/Linux_x86_64/22.3/compilers/bin
PATH librerie

/usr/lib64

BLAS/LAPACK:

/usr/lib64/libblas.so.3.8.0 /usr/lib64/liblapack.so.3.8.0

/opt/gcc112/lib64

/opt/intel20/lib/intel64

MKL:

/opt/intel20/mkl/lib/intel64

/afs/enea.it/software/intel_compiler/rocky8_5/oneapi/... ...2022.1.2/compiler/2022.0.2/linux/lib /afs/enea.it/software/pgi_compiler/pgi_20_4/... ...cresco5f/build/linux86-64-llvm/20.4/lib /afs/enea.it/software/cuda/rocky85/nvhpc/22.3/... ...opt/nvidia/Linux_x86_64/22.3/compilers/lib

 



5. Uso di Modules.

Sul cluster CRESCO5F di Frascati 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:
Il compilatore impostato di default per tutti gli utenti è: Se l'utente vuole scegliere una diversa flavour dovrà utilizzare il comando:

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]




 



6. Flavour MPI presenti.

Sul Cluster CRESCO5F di Frascati è presente OFED alla versione: OFED-5.5-1.0.3.2. Le flavour MPI presenti, distinte per compilatore, sono elencate nella seguente tabella:


GNU (version 8.5.0) PGI (version 20.4) INTEL ONEAPI-22.1 INTEL ONEAPI-23.1 NVHPC-22.3
OpenMPI openmpi_gcc-4.1.2 openmpi_pgi-3.1.3 Nessuna Flavour Nessuna Flavour openmpi-4.1.2
Intel MPI Nessuna Flavour Nessuna Flavour impi-2021.5.1 impi-2021.9.0 Nessuna Flavour



NOTA:
Per quanto riguarda le librerie OPENMPI per GNU e PGI esistono due moduli specifici che, rispettivamente, sono: mpi_flavour/openmpi_gcc-4.1.2 e mpi_flavour/openmpi_pgi-3.1.3.
Le librerie INTELMPI invece incluse nei moduli di ONEAPI sono: intel/oneapi22.1 e intel/oneapi23.1.0
All'interno del pacchetto NVHPC sono disponibili le librerie MPI openmpi-4.1.2. Per utilizzarle occorre caricare il modulo nvhpc-22.3

[sommario]


 



7. Come sottomettere un job.

Per la sottomissione di batch job sul cluster CRESCO5F di Frascati 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 Intel MPI.

Code definite su CRESCO5F:

cresco5f_32h24 - Coda per job seriali e paralleli che richiedono al massimo 64 core. Tempo massimo di RUNNING 24 ore.

Di seguito vengono riportati degli esempi di esempi di script di sottomissione, uno per OpenMPI ed uno per Intel MPI.

• OpenMPI (GCC, PGI, NVHPC)

#!/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

• Intel MPI

#!/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



USO DELLE GPU:

Per utilizzare le schede grafiche sui nodi equipaggiati di GPU A100 occorre selezionare in fase di sottomissione del job attraverso il parametro "-R" di bsub una tra le risorsa "ampere100x1" (nodo con singola scheda GPU A100) o "ampere100x2" (nodo con doppia scheda GPU A100). Ad esempio, per sottomettere sui nodi dotati di una singola GPU A100 si può usare la seguente sintassi:

bsub -o %J.out -e %J.err -q cresco5f_32h24 -R "ampere100x1" -n 32 ./submit_cr5f.sh


Se, ad esempio, si vuole sottomettere su un nodo dotato di doppia scheda GPU occorre usare la seguente sintassi:

bsub -o %J.out -e %J.err -q cresco5f_32h24 -R "ampere100x2" -n 32 ./submit_cr5f.sh


Se non viene indicata nessuna tra le risorsa "ampere100x1" o "ampere100x2" il job atterrerà su qualsiasi nodo del cluster privo di scheda grafica.



[sommario]


ultimo aggiornamento: 30/05/2023