Delft 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: