Table Of ContentDelft University of Technology
GPU-accelerated CFD Simulations for Turbomachinery Design Optimization
Aissa, Mohamed
DOI
10.4233/uuid:1fcc6ab4-daf5-416d-819a-2a7b0594c369
Publication date
2017
Document Version
Final published version
Citation (APA)
Aissa, M. (2017). GPU-accelerated CFD Simulations for Turbomachinery Design Optimization.
https://doi.org/10.4233/uuid:1fcc6ab4-daf5-416d-819a-2a7b0594c369
Important note
To cite this publication, please use the final published version (if applicable).
Please check the document version above.
Copyright
Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent
of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.
Takedown policy
Please contact us and provide details if you believe this document breaches copyrights.
We will remove access to the work immediately and investigate your claim.
This work is downloaded from Delft University of Technology.
For technical reasons the number of authors shown on this cover page is limited to a maximum of 10.
GPU-accelerated CFD Simulations
for Turbomachinery Design Optimization
PROEFSCHRIFT
ter verkrijging van de graad van doctor
aan de Technische Universiteit Delft,
op gezag van de Rector Magnificus prof.ir. K.C.A.M. Luyben,
voorzitter van het College voor Promoties,
in het openbaar te verdedigen op
maandag 2 oktober 2017 om 10:00 uur
door
Mohamed Hassanine AISSA
Diplom in Aerospace Engineering, University of Stuttgart, Germany
geboren te Nabeul,Tunesi¨e
Dit proefschrift is goedgekeurd door de
Promotor: Prof.dr.ir. C. Vuik
Copromotor: Dr.ir. T. Verstraete
Samenstelling promotiecommissie:
Rector Magnificus, voorzitter
Prof.dr.ir. C. Vuik, Technische Universiteit Delft, promotor
Dr.ir. T. Verstraete, Von Karman Institute, Belgium, copromotor
Onafhankelijke leden:
Prof.dr. S. Hickel Technische Universiteit Delft , The Netherlands
Prof.dr.ir. C.W. Oost- CWI and Technische Universiteit Delft , The Netherlands
erlee
Prof.dr.ir. B. Koren Technische Universiteit Eindhoven, The Netherlands
Prof.dr. S.F. Portegies Universiteit Leiden , The Netherlands
Zwart
Dr. A. Lani Von Karman Institute, Belgium
GPU-accelerated CFD Simulations for Turbomachinery Design Optimization
Dissertation at Delft University of Technology.
Copyright (cid:13)c 2017 by M.H. Aissa
The work described in this thesis has received funding from the European Union
SeventhFrameworkProgramme(FP7/2007-2013),MarieCurieInitialTrainingNet-
works (ITN) action, under grant agreement no. 316394, AMEDEO. This work was
also partially funded by VLAIO in the framework of the SBO EUFORIA project
(IWT-140068). The support is gratefully acknowledged.
ISBN 978-2-87516-123-9
Published by: The Von Karman Institute for Fluid Dynamics with permission
Contents
Samenvatting vii
Summary ix
Acknowledgment xi
1 Introduction 1
1.1 CFD and automated optimization . . . . . . . . . . . . . . . . . . . 1
1.2 High-Performance Computing . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Research objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Context and outline of the thesis . . . . . . . . . . . . . . . . . . . . 8
2 Graphics Processing Units for High Performance Computing 11
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 From graphics pipelines to High Performance Computing . . . . . . 12
2.3 GPUs: a throughput-oriented latency-tolerant HPC device. . . . . . 14
2.4 CUDA: a programming language and an execution model . . . . . . 15
2.5 Memory hierarchy of the GPU . . . . . . . . . . . . . . . . . . . . . 21
2.6 Profiler-Driven code optimization . . . . . . . . . . . . . . . . . . . . 24
2.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3 Literature Review: Use of the GPU in Design Optimization 29
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2 Topology optimization . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.1 SolidIsotropicMicrostructurewithPenalizationmethod(SIMP) 31
3.2.2 Level-Set method . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.2.3 Underlying FEM . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.3 Shape optimization . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.4 Multidisciplinary Design Optimization (MDO) . . . . . . . . . . . . 39
3.5 GPU in meta-heuristics . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.6 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
iii
iv
4 GPU-accelerated Simulations with Explicit Time-Stepping 43
4.1 Reynolds-Averaged Navier-Stokes Equations . . . . . . . . . . . . . . 43
4.2 Implementation and discussion . . . . . . . . . . . . . . . . . . . . . 45
4.2.1 The convective flux evaluation . . . . . . . . . . . . . . . . . 45
4.2.2 Viscous flux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.2.3 Boundary conditions . . . . . . . . . . . . . . . . . . . . . . . 63
4.2.4 Interface update . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.2.5 Runge-Kutta stages . . . . . . . . . . . . . . . . . . . . . . . 65
4.2.6 Convergence acceleration techniques . . . . . . . . . . . . . . 67
4.3 Validation and benchmark . . . . . . . . . . . . . . . . . . . . . . . . 72
4.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5 GPU-accelerated Simulations with Implicit Time-Stepping 77
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.2 Numerical scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.3 Preconditioned Krylov solvers . . . . . . . . . . . . . . . . . . . . . . 80
5.4 Flow solver implementation . . . . . . . . . . . . . . . . . . . . . . . 85
5.4.1 System assembly . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.4.2 Linear solver with on-demand factorization . . . . . . . . . . 100
5.5 Results. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
5.6 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
5.6.1 Effect of the CFL number on the GPU speedup . . . . . . . . 115
5.6.2 Effect of the RK stages number on the GPU speedup . . . . 115
5.6.3 Effect of the linear solver stop condition on the GPU speedup 116
5.7 Validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
5.8 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
5.9 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
6 Explicit versus Implicit CFD Simulations, the GPU dimension 119
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
6.2 The classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
6.3 Acceleration of the time integration method . . . . . . . . . . . . . . 127
6.4 Numerical experiments: the subsonic turbine cascade T106C . . . . 130
6.5 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
6.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
7 Applications: GPU CFD solvers in Design Optimization 137
7.1 One-level optimization of a supersonic compressor cascade . . . . . . 137
7.2 Metamodel-assisted optimization using Kriging . . . . . . . . . . . . 140
7.2.1 Kriging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
7.2.2 The LS82 cascade . . . . . . . . . . . . . . . . . . . . . . . . 143
7.3 Final remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
8 Conclusions 149
8.1 Future work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
8.1.1 Convergence acceleration of explicit solver . . . . . . . . . . . 151
8.1.2 Metamodeling on the GPU . . . . . . . . . . . . . . . . . . . 151
v
A Appendix: Used Test cases 153
A.1 Turbine inlet guide vane: LS89 . . . . . . . . . . . . . . . . . . . . . 153
A.2 Compressor stator cascade: CC2D . . . . . . . . . . . . . . . . . . . 155
A.3 Turbine stator cascade: T106C . . . . . . . . . . . . . . . . . . . . . 155
A.4 3D Compressor stator blade: Turbolab . . . . . . . . . . . . . . . . . 155
Curriculum vitae 157
List of publications and presentations 159
Samenvatting
Ontwerp optimalisatie is sterk afhankelijk van tijdrovende simulaties, vooral bij het
gebruik van gradintvrije methodes. Deze methoden vereisen een groot aantal simu-
latiesomeenmerkbareverbeteringtekrijgenopbestaandeontwerpen,dietegenwo-
ordigopbasisvandegeaccumuleerdekennisoverdejarenheenvaakreedsoptimaal
zijn.
HighPerformanceComputing(HPC)isessentieelomdeuitvoeringstijdvansim-
ulaties te verminderen. Terwijl parallelle programmering met behulp van de CPU
gevestigd is sinds meer dan twee decennia, is het gebruik van andere technieken,
zoals de Graphics Processing Unit (GPU), relatief recent in het domein van ontwer-
poptimalisatie. De GPU heeft eigenlijk een enorme rekenkracht die vergelijkbaar is
met een cluster van verschillende CPUs maar geconcentreerd in slechts n apparaat.
Dezerekenkrachtisevenwelnietgemakkelijktegebruiken,aangezienvolledigedelen
vandebroncodemoetenherschrevenwordenineenGPU-programmeertaal. Hoewel
hoog-niveauprogrammeertalen(bijvoorbeeldopenACC)eenversnellingmeteenlage
ontwikkelingskost kunnen realiseren, is het niet eenvoudig om met deze methoden
grote snelheden te krijgen. Programma-talen op laag niveau zijn efficinter, maar er
worden verschillende versnellingen gemeld en er is behoefte aan een diepere anal-
yse om het GPU-potentieel transparanter te maken voor wetenschappers, vooral
niet-experts in HPC.
OmdeGPU-versnellingvoorstationaireCFD-simulatiestebestuderen,zijntwee
verschillende technieken binnen de GPU ingevoerd; n met expliciete en de tweede
met impliciete tijdsintegratie. Na de overdracht en de validatie van de CPU-code
naar de GPU, leidt de GPU-code optimalisatie tot het identificeren van een reeks
sleutelparametersdiedeGPU-efficintiebenvloeden. Tegelijkertijdzijnbeidemetho-
denvergeleken,watresulteertineenprestatiemodeleneenclassificatievandeGPU-
versnelling van sommige CFD-operaties. Het doel is om wetenschappers in staat te
stellen een beslissing te nemen over de GPU-overdracht van hun CPU-applicaties
door een GPU-versnelling te voorspellen.
Naast de twee GPU CFD-codes die nu gentegreerd zijn in het optimalisatie soft-
warepakketontwikkeldinhetVKI,verschafteditonderzoeksleutelelementenomde
dubbelzinnigheidoverhetGPU-potentieelteverminderen,namelijkeenkwalitatieve
analyseeneenclassificatie. Dezehulpmiddelenkunnenhelpenbijhetselecterenvan
vii
viii
de beste kandidaat voor een doorbraak in CFD-acceleratie. Tegelijkertijd identi-
ficeerdeditwerkernstigebeperkingenbijdepreconditioningvaneenlineairsysteem
van vergelijkingen en de limiet van hedendaagse iteratieve matrixfactorisatiemeth-
oden met betrekking tot stabiliteit en convergentie. Er is nood aan een paradigma
verschuiving naar inherente parallelle preconditioners.
De ontwikkelde codes werden getest op het optimaliseren van een compressor en
een turbine cascade, dewelke resulteerden in een sneller optimalisatieproces op de
GPU.
Summary
Design optimization relies heavily on time-consuming simulations, especially when
using gradient-free optimization methods. These methods require a large number
of simulations in order to get a remarkable improvement over reference designs,
which are nowadays based on the accumulated engineering knowledge already quite
optimal.
High-Performance Computing (HPC) is essential to reduce the execution time
of the simulations. While parallel programming using the CPU is established since
morethantwodecades,theuseofaccelerators,suchastheGraphicsProcessingUnit
(GPU), is relatively recent in design optimization. The GPU has actually a huge
computational power comparable to a many-core cluster but concentrated in one
device. This raw power is not easy to utilize as entire code parts have to be rewrit-
ten using a GPU programming language. Even though high-level standards (e.g.
openACC) are able to bring a basic acceleration with a low development effort, it is
not simple to get large speedups with these methods. Low-level programming lan-
guages are more efficient but different speedups are reported and there is a need for
a deep analysis to make the GPU potential more transparent to scientists especially
non-experts in HPC.
InordertostudytheGPUaccelerationforCFDsteadysimulations,twoin-house
CFD solvers have been ported to the GPU; one with explicit and the second with
implicit time-stepping. After the porting and the validation of the GPU solvers,
the GPU code optimization leads to the identification of a set of key parameters
affecting the GPU efficiency. At the same time, both methods have been compared
resulting into a performance model and a classification of the GPU acceleration
of some CFD operations. The purpose is to enable scientists to take an educated
decision concerning the GPU porting of their CPU applications by providing an
expected GPU speedup.
In addition to the two GPU CFD solvers that are now integrated into the in-
house design optimization software package, this research provided key elements to
reduce the ambiguity about the GPU potential, namely a qualitative analysis and a
classification. These tools can help selecting the best candidate for a breakthrough
in CFD acceleration. At the same time, this work identified serious limitations in
the preconditioning of a linear system of equations and the limit of today iterative
ix
Description:4 GPU-accelerated Simulations with Explicit Time-Stepping. 43 6.4 Numerical experiments: the subsonic turbine cascade T106C to meet and exchange with great people, visit many research institutes and access .. The real start of GPU computing is related to the release of Tesla processors.