This thesis presents an in-depth examination of the role of AmgX Solvers in computational fluid dynamics (CFD) and the influence of CUDA-C in the realm of high-performance computing. It begins with a discussion on linear systems in CFD, including governing equations for fluid flows and dominant iterative methods for large linear systems in CFD. Following this, the spotlight moves to CUDA-C’s role in high-performance computing, discussing parallel programming, the computational grid structure, GPU memory management, and the Thrust library. The heart of the discussion presents a systematic methodology for testing AmgX solvers, comparing CPU and GPU-based solutions using different preconditioners and iterative methods. Subsequently, the discussion explores the current integration of AmgX within OpenFOAM to leverage the immense potential of parallel computation in solving CFD linear systems. Particular emphasis is directed towards the pressing requirement of adapting OpenFOAM’s linear matrix structure to be compatible with AmgX’s preferred CSR format. In this context, the foam2CSR library, which implements the algorithm for such conversion, is analyzed, assessing its strengths and limitations. In the final stages, the document presents the simulation outcomes derived from tutorial cases utilized to test the present integration of AmgX in OpenFOAM, as detailed in Section 3. These findings lay the groundwork for the subsequent discussion concerning future enhancements and recommendations.

Questa tesi presenta un esame approfondito del ruolo che Solutori Lineari presenti in AmgX potrebbero avere nel campo della fluidodinamica computazionale (CFD) e dell’influenza di CUDA-C nel campo del calcolo numerico ad alte prestazioni. Inizia con una discussione sul ruolo dei sistemi lineari in CFD, partendo dalle equazioni di governo dei fluidi e i metodi iterativi dominanti in questo ambito per risolvere grandi sistemi lineari. Successivamente, l’attenzione si sposta sul ruolo di CUDA-C nell’ambito del calcolo numerico ad alte prestazioni, discutendo la programmazione parallela, la struttura della griglia computazionale, la gestione della memoria nella GPU e la libreria Thrust. Poi si entra nel cuore della discussione presentando una metodologia sistematica per testare i solutori lineari di AmgX, confrontando le soluzioni basate su CPU e GPU utilizzando diversi precondizionatori e metodi iterativi. Successivamente, la discussione esplora l’attuale integrazione di AmgX all’interno di OpenFOAM per sfruttare l’enorme potenziale del calcolo in parallelo nella risoluzione dei sistemi lineari in CFD. Un particolare enfasi è diretta verso la stringente necessità di adattare la struttura matriciale lineare di OpenFOAM per essere compatibile con il formato CSR utilizzato da AmgX. In questo contesto, viene analizzata la libreria foam2CSR, che implementa l’algoritmo per tale conversione, valutandone i punti di forza e le limitazioni. Nelle fasi finali, il documento presenta i risultati delle simulazioni derivati dai casi guida utilizzati per testare l’attuale integrazione di AmgX in OpenFOAM, come dettagliato nella Sezione 3. Questi risultati gettano poi le basi per la successiva discussione riguardante i futuri miglioramenti e le raccomandazioni per nuovi sviluppi.

Accelerating linear system solution through GPGPU in OpenFOAM

GHISELLINI, ROBERTO
2022/2023

Abstract

This thesis presents an in-depth examination of the role of AmgX Solvers in computational fluid dynamics (CFD) and the influence of CUDA-C in the realm of high-performance computing. It begins with a discussion on linear systems in CFD, including governing equations for fluid flows and dominant iterative methods for large linear systems in CFD. Following this, the spotlight moves to CUDA-C’s role in high-performance computing, discussing parallel programming, the computational grid structure, GPU memory management, and the Thrust library. The heart of the discussion presents a systematic methodology for testing AmgX solvers, comparing CPU and GPU-based solutions using different preconditioners and iterative methods. Subsequently, the discussion explores the current integration of AmgX within OpenFOAM to leverage the immense potential of parallel computation in solving CFD linear systems. Particular emphasis is directed towards the pressing requirement of adapting OpenFOAM’s linear matrix structure to be compatible with AmgX’s preferred CSR format. In this context, the foam2CSR library, which implements the algorithm for such conversion, is analyzed, assessing its strengths and limitations. In the final stages, the document presents the simulation outcomes derived from tutorial cases utilized to test the present integration of AmgX in OpenFOAM, as detailed in Section 3. These findings lay the groundwork for the subsequent discussion concerning future enhancements and recommendations.
Ghioldi, Federico
ING - Scuola di Ingegneria Industriale e dell'Informazione
18-lug-2023
2022/2023
Questa tesi presenta un esame approfondito del ruolo che Solutori Lineari presenti in AmgX potrebbero avere nel campo della fluidodinamica computazionale (CFD) e dell’influenza di CUDA-C nel campo del calcolo numerico ad alte prestazioni. Inizia con una discussione sul ruolo dei sistemi lineari in CFD, partendo dalle equazioni di governo dei fluidi e i metodi iterativi dominanti in questo ambito per risolvere grandi sistemi lineari. Successivamente, l’attenzione si sposta sul ruolo di CUDA-C nell’ambito del calcolo numerico ad alte prestazioni, discutendo la programmazione parallela, la struttura della griglia computazionale, la gestione della memoria nella GPU e la libreria Thrust. Poi si entra nel cuore della discussione presentando una metodologia sistematica per testare i solutori lineari di AmgX, confrontando le soluzioni basate su CPU e GPU utilizzando diversi precondizionatori e metodi iterativi. Successivamente, la discussione esplora l’attuale integrazione di AmgX all’interno di OpenFOAM per sfruttare l’enorme potenziale del calcolo in parallelo nella risoluzione dei sistemi lineari in CFD. Un particolare enfasi è diretta verso la stringente necessità di adattare la struttura matriciale lineare di OpenFOAM per essere compatibile con il formato CSR utilizzato da AmgX. In questo contesto, viene analizzata la libreria foam2CSR, che implementa l’algoritmo per tale conversione, valutandone i punti di forza e le limitazioni. Nelle fasi finali, il documento presenta i risultati delle simulazioni derivati dai casi guida utilizzati per testare l’attuale integrazione di AmgX in OpenFOAM, come dettagliato nella Sezione 3. Questi risultati gettano poi le basi per la successiva discussione riguardante i futuri miglioramenti e le raccomandazioni per nuovi sviluppi.
File allegati
File Dimensione Formato  
2023_07_Ghisellini.pdf

non accessibile

Descrizione: Thesis text
Dimensione 3.03 MB
Formato Adobe PDF
3.03 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/208385