A new co-located finite-difference solver for the incompressible Navier-Stokes equations, which exploits the direction-splitting method proposed by Guermond and Minev in 2010, developed by Chiarini A., Quadrio M. and Auteri F., has been ported to GPU clusters in order to harness the computational power of the most recent supercomputers. The development of the code was performed using CUDA Fortran and targeting the new Marconi100 cluster, accelerated by NVIDIA Tesla V100 GPUs, present at CINECA. The main feature of the solver is to perform the entire time-loop exclusively on the GPUs using kernels implemented ad hoc to obtain the maximum possible performance in the computational-intensive parts of the algorithm. Communication was managed through the NCCL library, optimized by NVIDIA to increase the portability and scalability of multi-GPU applications. The results obtained were compared with the CPU version and are identical to machine precision, which indicates that the two versions of the code are consistent. Finally, a scalability study was performed using a manufactured solution of the Navier-Stokes equations, integrating the results with those previously obtained on the CPU cluster Galileo (CINECA).

Un nuovo solutore alle differenze finite collocate per le equazioni di Navier-Stokes incomprimibili, che sfrutta il metodo del direction-splitting proposto da Guermond e Minev nel 2010, sviluppato da Chiarini A., Quadrio M. e Auteri F., è stato portato su GPU clusters per poter sfruttare la potenza computazionale dei più recenti supercomputers. Lo sviluppo del codice è stato eseguito utilizzando CUDA Fortran e prendendo come target il nuovo cluster Marconi100, accelerato dalle NVIDIA Tesla V100 GPUs, presente al CINECA. La caratteristica principale del solutore è quella di effettuare l’intero time-loop esclusivamente sulle GPUs utilizzando kernels implementati ad hoc per ottenere il massimo rendimento possibile nelle parti computazionalmente intensive dell’algoritmo. La comunicazione è stata gestita attraverso l’utilizzo della libreria NCCL, ottimizzata da NVIDIA per aumentare la portabilità e scalabilità delle applicazioni multi-GPU. I risultati ottenuti sono stati confrontati con la versione CPU e sono identici a precisione macchina, ciò indica che le due versioni del codice sono consistenti. Infine è stato eseguito uno studio di scalabilità utilizzando una soluzione "costruita" delle equazioni di Navier-Stokes, i cui risultati sono stati integrati con quelli precedentemente ottenuti al CPU cluster Galileo (CINECA).

Development of a multi-GPU Navier-Stokes solver

VIANELLO, JIMMY
2019/2020

Abstract

A new co-located finite-difference solver for the incompressible Navier-Stokes equations, which exploits the direction-splitting method proposed by Guermond and Minev in 2010, developed by Chiarini A., Quadrio M. and Auteri F., has been ported to GPU clusters in order to harness the computational power of the most recent supercomputers. The development of the code was performed using CUDA Fortran and targeting the new Marconi100 cluster, accelerated by NVIDIA Tesla V100 GPUs, present at CINECA. The main feature of the solver is to perform the entire time-loop exclusively on the GPUs using kernels implemented ad hoc to obtain the maximum possible performance in the computational-intensive parts of the algorithm. Communication was managed through the NCCL library, optimized by NVIDIA to increase the portability and scalability of multi-GPU applications. The results obtained were compared with the CPU version and are identical to machine precision, which indicates that the two versions of the code are consistent. Finally, a scalability study was performed using a manufactured solution of the Navier-Stokes equations, integrating the results with those previously obtained on the CPU cluster Galileo (CINECA).
ING - Scuola di Ingegneria Industriale e dell'Informazione
9-giu-2021
2019/2020
Un nuovo solutore alle differenze finite collocate per le equazioni di Navier-Stokes incomprimibili, che sfrutta il metodo del direction-splitting proposto da Guermond e Minev nel 2010, sviluppato da Chiarini A., Quadrio M. e Auteri F., è stato portato su GPU clusters per poter sfruttare la potenza computazionale dei più recenti supercomputers. Lo sviluppo del codice è stato eseguito utilizzando CUDA Fortran e prendendo come target il nuovo cluster Marconi100, accelerato dalle NVIDIA Tesla V100 GPUs, presente al CINECA. La caratteristica principale del solutore è quella di effettuare l’intero time-loop esclusivamente sulle GPUs utilizzando kernels implementati ad hoc per ottenere il massimo rendimento possibile nelle parti computazionalmente intensive dell’algoritmo. La comunicazione è stata gestita attraverso l’utilizzo della libreria NCCL, ottimizzata da NVIDIA per aumentare la portabilità e scalabilità delle applicazioni multi-GPU. I risultati ottenuti sono stati confrontati con la versione CPU e sono identici a precisione macchina, ciò indica che le due versioni del codice sono consistenti. Infine è stato eseguito uno studio di scalabilità utilizzando una soluzione "costruita" delle equazioni di Navier-Stokes, i cui risultati sono stati integrati con quelli precedentemente ottenuti al CPU cluster Galileo (CINECA).
File allegati
File Dimensione Formato  
2021_06_Vianello.pdf

accessibile in internet per tutti

Descrizione: Testo Tesi
Dimensione 1.25 MB
Formato Adobe PDF
1.25 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/176080