TY - JOUR
T1 - Reverse-mode algorithmic differentiation of an OpenMP-parallel compressible flow solver
AU - Hückelheim, Jan
AU - Hovland, Paul
AU - Strout, Michelle Mills
AU - Müller, Jens Dominik
N1 - Funding Information:
This research utilized the Queen Mary University of London’s MidPlus computational facilities, supported by QMUL Research-IT and funded by EPSRC grant EP/K000128/1.
Funding Information:
The author(s) disclosed receipt of the following financial support for the research, authorship, and/or publication of this article: The project has received funding from the European Union’s Seventh Framework Programme for research, technological development and demonstration under grant 317006. This material is based upon work supported by the U.S. Department of Energy, Office of Science, Office of Advanced Scientific Computing Research, Applied Mathematics and Computer Science programs under contract number DE-AC02-06CH11357.
Funding Information:
The submitted manuscript has been created by UChicago Argonne, LLC, Operator of Argonne National Laboratory (‘Argonne’). Argonne, a U.S. Department of Energy Office of Science laboratory, is operated under contract number DEAC02-06CH11357. The U.S. Government retains for itself, and others acting on its behalf, a paid-up nonexclusive, irrevocable worldwide license in said article to reproduce, prepare derivative works, distribute copies to the public and perform publicly and display publicly, by or on behalf of the Government. This work has been conducted within the About Flow project on ‘Adjoint-based optimisation of industrial and unsteady flows’.
Funding Information:
We thank Rolls-Royce Deutschland for the permission to use the turbine stator test case and Warsaw University of Technology for the permission to use the FEV test case. The author(s) disclosed receipt of the following financial support for the research, authorship, and/or publication of this article: The project has received funding from the European Union?s Seventh Framework Programme for research, technological development and demonstration under grant 317006. This material is based upon work supported by the U.S. Department of Energy, Office of Science, Office of Advanced Scientific Computing Research, Applied Mathematics and Computer Science programs under contract number DE-AC02-06CH11357. This research utilized the Queen Mary University of London?s MidPlus computational facilities, supported by QMUL Research-IT and funded by EPSRC grant EP/K000128/1.
Publisher Copyright:
© The Author(s) 2017.
PY - 2019/1/1
Y1 - 2019/1/1
N2 - Reverse-mode algorithmic differentiation (AD) is an established method for obtaining adjoint derivatives of computer simulation applications. In computational fluid dynamics (CFD), adjoint derivatives of a cost function output such as drag or lift with respect to design parameters such as surface coordinates or geometry control points are a key ingredient for shape optimization, uncertainty quantification and flow control. The computational cost of CFD applications and their derivatives makes it essential to use high-performance computing hardware efficiently, including multi- and many-core architectures. Nevertheless, OpenMP is not supported in most AD tools, and previously shown methods achieve poor scalability of the derivative code. We present the AD of an OpenMP-parallelized finite volume compressible flow solver for unstructured meshes. Our approach enables us to reuse the parallelization of the original code in the computation of adjoint derivatives. The method works by identifying code segments that can be differentiated in reverse-mode without changing their memory access pattern. The OpenMP parallelization is integrated into the derivative code during the build process in a way that is robust to modifications of the original code and independent of the OpenMP support of the differentiation tool. We show the scalability of our adjoint CFD solver on test cases ranging from thousands to millions of finite volume mesh cells on CPUs with up to 16 threads as well as on an Intel XeonPhi card with 236 threads. We demonstrate that our approach is more practical to implement for production-sized CFD codes and produces more efficient adjoint derivative code than previously shown AD methods.
AB - Reverse-mode algorithmic differentiation (AD) is an established method for obtaining adjoint derivatives of computer simulation applications. In computational fluid dynamics (CFD), adjoint derivatives of a cost function output such as drag or lift with respect to design parameters such as surface coordinates or geometry control points are a key ingredient for shape optimization, uncertainty quantification and flow control. The computational cost of CFD applications and their derivatives makes it essential to use high-performance computing hardware efficiently, including multi- and many-core architectures. Nevertheless, OpenMP is not supported in most AD tools, and previously shown methods achieve poor scalability of the derivative code. We present the AD of an OpenMP-parallelized finite volume compressible flow solver for unstructured meshes. Our approach enables us to reuse the parallelization of the original code in the computation of adjoint derivatives. The method works by identifying code segments that can be differentiated in reverse-mode without changing their memory access pattern. The OpenMP parallelization is integrated into the derivative code during the build process in a way that is robust to modifications of the original code and independent of the OpenMP support of the differentiation tool. We show the scalability of our adjoint CFD solver on test cases ranging from thousands to millions of finite volume mesh cells on CPUs with up to 16 threads as well as on an Intel XeonPhi card with 236 threads. We demonstrate that our approach is more practical to implement for production-sized CFD codes and produces more efficient adjoint derivative code than previously shown AD methods.
KW - adjoint method
KW - Algorithmic differentiation
KW - finite volume
KW - OpenMP
KW - unstructured mesh
UR - http://www.scopus.com/inward/record.url?scp=85041429012&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85041429012&partnerID=8YFLogxK
U2 - 10.1177/1094342017712060
DO - 10.1177/1094342017712060
M3 - Article
AN - SCOPUS:85041429012
SN - 1094-3420
VL - 33
SP - 140
EP - 154
JO - International Journal of High Performance Computing Applications
JF - International Journal of High Performance Computing Applications
IS - 1
ER -