9
Prestazioni computazionali di OpenFOAM sul sistema HPC CRESCO di ENEA GRID NOTA TECNICA ENEA GRID/CRESCO: NEPTUNIUS PROJECT 201001 NOME FILE: NEPTUNIUS201001.doc DATA: 03/08/10 STATO: Versione rivista N. 1 AUTORE/I: A. Funel, F. Ambrosino Abstract: In questo documento vengono presentati alcuni risultati inerenti le prestazioni computazionali, in termini di scalabilità ed efficienza, del codice OpenFOAM sul sistema HPC CRESCO della GRID ENEA. Le prestazioni del codice sono state studiate mediante simulazioni di aerodinamica esterna al fine di calcolare il coefficiente di resistenza sulla superficie di un autoveicolo commercializzato. Le simulazioni sono state fatte in parallelo fino a 2000 core. Per il calcolo del campo di flusso, supposto stazionario ed incomprimibile, si è usato il solutore simpleFoam con il modello standard K-ε per la turbolenza. NOTA TECNICA ENEA-GRID/CRESCO NEPTUNIUS PROJECT 201001

Prestazioni computazionali di OpenFOAM sul sistema … · Prestazioni computazionali di OpenFOAM sul sistema HPC CRESCO di ENEA GRID NOTA TECNICA ENEA GRID/CRESCO: NEPTUNIUS PROJECT

Embed Size (px)

Citation preview

Page 1: Prestazioni computazionali di OpenFOAM sul sistema … · Prestazioni computazionali di OpenFOAM sul sistema HPC CRESCO di ENEA GRID NOTA TECNICA ENEA GRID/CRESCO: NEPTUNIUS PROJECT

Prestazioni computazionali di OpenFOAM sul

sistema HPC CRESCO di ENEA GRID

NOTA TECNICA

ENEA GRID/CRESCO: NEPTUNIUS PROJECT 201001

NOME FILE: NEPTUNIUS201001.doc

DATA: 03/08/10

STATO: Versione rivista N. 1

AUTORE/I: A. Funel, F. Ambrosino

Abstract:

In questo documento vengono presentati alcuni risultati inerenti le prestazioni computazionali, in termini di scalabilità ed efficienza, del codice OpenFOAM sul sistema HPC CRESCO della GRID ENEA. Le prestazioni del codice sono state studiate mediante simulazioni di aerodinamica esterna al fine di calcolare il coefficiente di resistenza sulla superficie di un autoveicolo commercializzato. Le simulazioni sono state fatte in parallelo fino a 2000 core. Per il calcolo del campo di flusso, supposto stazionario ed incomprimibile, si è usato il solutore simpleFoam con il modello standard K-ε per la turbolenza.

NOTA TECNICA ENEA-GRID/CRESCO NEPTUNIUS PROJECT 201001

Page 2: Prestazioni computazionali di OpenFOAM sul sistema … · Prestazioni computazionali di OpenFOAM sul sistema HPC CRESCO di ENEA GRID NOTA TECNICA ENEA GRID/CRESCO: NEPTUNIUS PROJECT

Log Documento

VERSIONE DATA COMMENTO AUTORE/I

1.0 03/08/10 Versione iniziale A. Funel,F. Ambrosino

NOTA TECNICA ENEA-GRID/CRESCO NEPTUNIUS PROJECT 201001

Page 3: Prestazioni computazionali di OpenFOAM sul sistema … · Prestazioni computazionali di OpenFOAM sul sistema HPC CRESCO di ENEA GRID NOTA TECNICA ENEA GRID/CRESCO: NEPTUNIUS PROJECT

INDICE

Introduzione...........................................................................................................................................4

1- Descrizione del problema..................................................................................................................5

2 – Architettura dell'hardware................................................................................................................5

3 – Software...........................................................................................................................................7

4 – Risultati............................................................................................................................................7

Bibliografia...........................................................................................................................................10

NOTA TECNICA ENEA-GRID/CRESCO NEPTUNIUS PROJECT 201001

Page 4: Prestazioni computazionali di OpenFOAM sul sistema … · Prestazioni computazionali di OpenFOAM sul sistema HPC CRESCO di ENEA GRID NOTA TECNICA ENEA GRID/CRESCO: NEPTUNIUS PROJECT

Introduzione

OpenFOAM [1] è un codice open source utilizzato sia in ambienti accademici che industriali. Il codice è costituito da un insieme di librerie, scritte in C++ secondo la metodologia della programmazione ad oggetti, per la soluzione di equazioni differenziali alle derivate parziali. Il codice è utilizzato soprattutto per problemi di CFD. In questo documento si analizzano le prestazioni computazionali di OpenFOAM, in termini di scalabilità ed efficienza, sul sistema HPC CRESCO [2] della GRID ENEA. Le prestazioni del codice sono state valutate mediante simulazioni di aerodinamica esterna di interesse industriale per il calcolo del coefficiente di resistenza sulla superficie di un autoveicolo commercializzato. Il campo di flusso è stato supposto essere stazionario ed incomprimibile. Si è utilizzato il solutore simpleFoam con il modello standard K-ε per la turbolenza. Il dominio computazionale è costituito di circa 30 milioni di celle e, pertanto, le simulazioni hanno richiesto un impiego notevole di memoria. La geometria è stata decomposta per run paralleli adottando, tra gli algoritmi disponibili in OpenFOAM, quello metis che minimizza il numero di facce comuni tra i processori per ridurre i tempi della comunicazione. Il calcolo è stato fatto sulla sezione 2 di CRESCO, costituita da 256 blade IBM HS21 ciascuno dotato di Dual Xeon Quad-Core Clovertown E5345 (2.33 GHz, 8 MB L2) per un totale di 2048 core. Le prestazioni di OpenFOAM sono state studiate con due configurazioni network: InfiniBand (4X DDR) [3] e GigaEthernet. Al fine di minimizzare il più possibile gli effetti di un I/O massivo i dati sono stati raccolti sul file system parallelo ad alte prestazioni GPFS [4]. Vengono qui presentati anche i risultati ottenuti con il processore Intel Turbo Boost Nehalem E5530 (2.40 GHz, 8 MB L3) [5].

NOTA TECNICA ENEA-GRID/CRESCO NEPTUNIUS PROJECT 201001

Page 5: Prestazioni computazionali di OpenFOAM sul sistema … · Prestazioni computazionali di OpenFOAM sul sistema HPC CRESCO di ENEA GRID NOTA TECNICA ENEA GRID/CRESCO: NEPTUNIUS PROJECT

1- Descrizione del problema

La geometria del caso studiato è mostrata in Fig. 1. L'aria entra con una velocità di U=39.0 m/s ortogonale alla parete dell'inlet. La pressione ambiente è P= 1 atm. L'intero dominio computazionale, comprendente metà del volume della galleria in cui si trova il veicolo grazie alla simmetria del problema, è costituito da una mesh di circa 30 milioni di celle tetraedriche. La memoria richiesta per questo caso è di circa 20 GB. Le simulazioni sono state portate a convergenza, monitorando residui e grandezze integrali come il coefficiente di resistenza aerodinamica complessivo dell'autovettura con 5000 iterazioni. Le prestazioni sono state ottenute considerando le prime 1000 iterazioni.

Fig. 1 La geometria del caso

2 – Architettura dell'hardware

Il sistema HPC CRESCO è basato sulla tecnologia muti-core con un'architettura x86_64. Il cluster è costituito da due sezioni principali: (1) per job che richiedono un parallelismo moderato, ma molta memoria; (2) per job per i quali è indispensabile avere una buona scalabilità piuttosto che molta memoria a disposizione. Vi è poi una sezione speciale (3) dedicata a speciali architetture (Cell, FPGA, CUDA etc.).

Le simulazioni sono state fatte sulla sezione (2) di CRESCO che consiste in 256 blade IBM HS21 ciascuno equipaggiato con processori Intel Dual Xeon Quad-Core Clovertown E5345 (2.33 GHz, 8 MB L2, 16 GB RAM) per un totale di 2048 core. Si è utilizzato il file system parallelo GPFS ad alte prestazioni della IBM che consente un accesso veloce ai dati, sia in lettura che scrittura, via rete di interconnessione InfiniBand (IB) 4X DDR. Il network IB di CRESCO è basato su uno switch CISCO SFS 7024 con 288 porte, un CISCO SFS 7012 con 144 porte, e un CISCO SFS 7000 con 120 porte. Alla sezione (2) di CRESCO sono stati aggiunti 28 blade equipaggiati con processori Intel Xeon Dual Quad-Core Turbo Boost Nehalem E5530 (2.40 GHz, 8 MB L3, 16 GB RAM) per un totale di 224 core.

La topologia della rete di interconnessione IB di CRESCO è mostrata in Fig. 2.

NOTA TECNICA ENEA-GRID/CRESCO NEPTUNIUS PROJECT 201001

Page 6: Prestazioni computazionali di OpenFOAM sul sistema … · Prestazioni computazionali di OpenFOAM sul sistema HPC CRESCO di ENEA GRID NOTA TECNICA ENEA GRID/CRESCO: NEPTUNIUS PROJECT

Fig. 2 Architettura della rete InfiniBand di CRESCO con il sistema di storage IBM/DDN 9550. I 4 nodi I/O collegati via Fibre Channel allo storage sono i server NSD del file system parallelo GPFS.

3 – Software

Il sistema operativo con cui si sono fatte le simulazioni è CentOS versione 5.3. Si è utilizzata la versione 1.4.1 di OpenFOAM compilata con il compilatore GNU gcc-4.2.1 con le seguenti flag di compilazione: per il linguaggio C/C++ “-m64 -fPIC”, per l'ottimizzazione “-O3 -fno-gcse”. La comunicazione tra i processori per i run paralleli è stata implementata via paradigma Message Passing Interface (MPI) utilizzando le librerie Open MPI versione 1.2.8 compilate con il compilatore icc versione 11.0 della Intel.

4 – Risultati

I risultati ottenuti sono riportati in Tabella 1 per l'architettura Clovertown. OpenFOAM ha mostrato una buona scalabilità fino a 2000 core con una efficienza media di circa 87%. Si noti che il singolo run in seriale avrebbe richiesto, per raggiungere la convergenza, più di due mesi di calcolo. Si noti, inoltre, che anche utilizzando un cluster con 64 core i tempi di attesa non sono trascurabili.

Si fa notare che le buone prestazioni ottenute non sarebbero state possibili senza il supporto di una efficiente rete di interconnessione come InfiniBand 4X DDR con 20 Gb/s di larghezza di banda. Anche se nel caso in esame l'I/O è stato sensibilmente ridotto minimizzando l'accesso ai dati sia in scrittura che lettura, le misure fatte utilizzando GigaEthernet, che ha solo 1 Gb/s di larghezza di banda, hanno mostrato una riduzione di circa il 60% dello speed-up già con 64 core (32.51 GE, 53.4 IB).

NOTA TECNICA ENEA-GRID/CRESCO NEPTUNIUS PROJECT 201001

Page 7: Prestazioni computazionali di OpenFOAM sul sistema … · Prestazioni computazionali di OpenFOAM sul sistema HPC CRESCO di ENEA GRID NOTA TECNICA ENEA GRID/CRESCO: NEPTUNIUS PROJECT

Tabella 1 Speed-up ed efficienza ottenuti per le simulazione fatte con OpenFOAM fino a 2000 core su CRESCO con processori Intel Xeon Clovertown. Schemi numerici adottati: upwind per i termini laplaciani, Gauss linear per tutti gli altri. La riga “time” riporta il tempo di esecuzione per raggiungere la convergenza.

Fig. 3 Speed-up ed efficienza di OpenFOAM fino a 2000 core su architettura Intel Xeon Dual Quad-Core Clovertown E5345 per simulazioni condotte sul cluster CRESCO. I dati sono stati raccolti sul file system parallelo ad alte prestazioni GPFS della IBM via network di interconnessione InfiniBand (4X DDR) con 20 Gb/s di larghezza di banda.

NOTA TECNICA ENEA-GRID/CRESCO NEPTUNIUS PROJECT 201001

Page 8: Prestazioni computazionali di OpenFOAM sul sistema … · Prestazioni computazionali di OpenFOAM sul sistema HPC CRESCO di ENEA GRID NOTA TECNICA ENEA GRID/CRESCO: NEPTUNIUS PROJECT

In Fig. 4 sono riportati i risultati ottenuti con l'architettura Nehalem E5530. Questi processori si sono mostrati sensibilmente più performanti. In media si è ottenuta una riduzione dei tempi di circa il 50% rispetto ai Clovertown. Poiché la frequenza di clock dei due processori non è molto diversa (2.40 GHz per Nehalem, 2.33 GHz per Clovertown) è probabile che tale risultato sia dovuto ad un migliore utilizzo dell'accesso ai dati in memoria. Il processore Nehalem, infatti, è dotato di un livello di cache in più rispetto ai Clovertown. Il turbo boost, in questo caso, non è stato attivato perché il carico è stato distribuito in maniera tale da utilizzare tutti i core disponibili su ogni blade. In Fig. 5 sono mostrate le streamline del campo finale intorno alla superficie del veicolo.

Fig. 4 Rapporto tra il tempo per iterazione medio ottenuto con processore Clovertown e Nehalem. Il processore Nehalem è circa due volte più veloce del Clovertown fino a simulazioni con 200 core.

Fig. 5 Steam lines

NOTA TECNICA ENEA-GRID/CRESCO NEPTUNIUS PROJECT 201001

Page 9: Prestazioni computazionali di OpenFOAM sul sistema … · Prestazioni computazionali di OpenFOAM sul sistema HPC CRESCO di ENEA GRID NOTA TECNICA ENEA GRID/CRESCO: NEPTUNIUS PROJECT

Bibliografia

[1] OpenFOAM

[2] CRESCO

[3] InfiniBand

[4] GPFS

[5] Nehalem

NOTA TECNICA ENEA-GRID/CRESCO NEPTUNIUS PROJECT 201001