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

CRESCO: Descrizione del Cluster CRESCO7 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 CRESCO7 di Portici è un sistema di calcolo costituito da 144 nodi. Ogni nodo ha: Si hanno quindi a disposizione 6912 core connessi tra loro da una rete a larga banda e bassa latenza basata su Mellanox-EDR a 100 Gb/s.

L'architettura di un nodo di CRESCO7 è 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 SLURM, per editare i propri script di lancio o per le compilazioni. I nodi di calcolo sono raggiungibili solo tramite SLURM. Per il cluster CRESCO7 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 CRESCO7.

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

[sommario]


4. File system

I file system disponibili su CRESCO7 sono:

5. Compilatori e librerie numeriche

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


GNU (11.3.1) Intel (17.0.4) Intel (18.0.2) Intel (OneAPI2023) Intel (OneAPI2024)
PATH compilatori /usr/bin /opt/intel17/bin /opt/intel18/bin /afs/enea.it/software/intel_compiler/alma9_2/oneapi2023/compiler/2023.1.0/linux/bin/intel64 /afs/enea.it/software/intel_compiler/alma9_2/oneapi2024/compiler/2024.0/bin/compiler
PATH
Librerie numeriche
BLAS/LAPACK/ATLAS

/usr/lib64

/usr/lib/atlas-sse*

/usr/lib64/atlas

/usr/lib64/atlas-sse*
Intel MKL

/opt/intel17/mkl/lib/intel64
Intel MKL

/opt/intel18/mkl/lib/intel64
Intel MKL

/afs/enea.it/software/intel_compiler/alma9_2/oneapi2023/mkl/latest/lib/intel64





*icc e icpc sono deprecati
Intel MKL

/afs/enea.it/software/intel_compiler/alma9_2/oneapi2024/compiler/2024.0/lib





*non ha più icc e icpc

6. Uso di Modules.

Sul cluster CRESCO7 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 degli ambienti disponili si potrà utilizzare il comando: La flavour parallela 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 11.3.1) Intel (version 17.0.4/18.0.2) Intel (version OneAPI2023)
OpenMPI openmpi_gcc-1.10.4-hfi
openmpi_gcc-4.1.5
openmpi_gcc-4.1.6
Nessuna flavour
openmpi_intel-4.1.5
Intel MPI Nessuna flavour IntelMPI IntelMPI

[sommario]


8. Vtune Profiler

Per tutti i compilatori Intel 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

Lo scheduler che gestisce le risorse di CRESCO7 e che permette la sottomissione di job batch è SLURM.

Sotto viene riportata la sola partizione SLURM definita per CRESCO7 e vengono proposti alcuni esempi di wrapper di sottomissione per job seriali e job paralleli validi sia per OpenMPI che per IntelMPI. Vengono proposti, altresì, esempi di sottomissione per job ibridi (MPI+openMP).

Partizione definita su CRESCO7:

cresco7 - Sulla partizione si possono sottomettere sia job seriali che paralleli che abbiano un tempo massimo di RUNNING pari a 24 ore.

Sulla partizione per CRESCO7 sono state definite delle "quality of service" che consentono agli utenti un utilizzo di risorse massimo di 40 nodi di calcolo.
La priorità dei job è gestita da un meccanismo di "fairshare" che la abbassa ai job degli utenti che hanno già utilizzato intensamente il sistema.

Di seguito vengono riportati degli esempi di script di sottomissione per job seriali, job parallei e job ibridi.

• Esempio per job seriali (nell'esempio riportato il job occuperà un solo core su un nodo)

#!/bin/sh

#SBATCH --nodes=1
#SBATCH --ntasks-per-node=1
#SBATCH --partition=cresco7
#SBATCH --job-name=seriaJOB
#SBATCH --auks=yes
#SBATCH --err=%j.err
#SBATCH --out=%j.out
#SBATCH --account=your_account

/path/to/exe

• Esempio per job MPI (nell'esempio riportato il job occuperà 20 nodi di cresco7 lanciando 48 processi MPI per nodo)

#!/bin/bash

#SBATCH --nodes=20
#SBATCH --ntasks-per-node=48
#SBATCH --partition=cresco7
#SBATCH --job-name=jobMPI
#SBATCH --auks=yes
#SBATCH --err=%j.err
#SBATCH --out=%j.out
#SBATCH --account=your_account

export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK}

mpirun --bind-to none /path/to/exe

• Esempio per job ibridi (nell'esempio riportato il job occuperà 20 nodi lanciando due processi MPI per nodo, uno per socket ed ognuno dei 2 processi MPI aprirà 24 threads)

#!/bin/bash

#SBATCH --nodes=20
#SBATCH --ntasks-per-node=2
#SBATCH --cpus-per-task=24
#SBATCH --ntasks-per-socket=1
#SBATCH --partition=cresco7
#SBATCH --job-name=jobMPI
#SBATCH --auks=yes
#SBATCH --err=%j.err
#SBATCH --out=%j.out
#SBATCH --account=your_account

echo $SLURM_CPUS_PER_TASK

export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK}

mpirun --bind-to none /path/to/exe

• Esempio di sottomissione per tutte le tipologie di job:

• Gestione del token AFS nei job batch:

• Esempi di sessioni interattive:

• COMANDI UTILI:

• LINK UTILI:



[sommario]


ultimo aggiornamento: 06/06/2024|e-mail: Guido Guarnieri

Cookies Policy