Project : tropics
Section: Overall Objectives
The TROPICS team is at the junction of two research domains:
AD: On one hand, we study software engineering techniques, to analyze and transform programs semi-automatically. In the past, we developed semi-automatic parallelization strategies aiming at SPMD parallelization. Presently, we focus on Automatic Differentiation (AD). AD transforms a program P that computes a function F, into a program P' that computes some derivatives of F, analytically. In particular, the so-called reverse mode of AD yields gradients. However, this reverse mode remains very delicate to use, and requires time and care.
CFD application of AD: On the other hand, we study the application of AD, and particularly of the adjoint method, to Computational Fluid Dynamics. This involves necessary adaptation of optimization strategies. This work applies to two real-life problems, optimal shape design and mesh adaption.
The second aspect of our work (optimization in Scientific Computing), is thus at the same time the motivation and the application domain of the first aspect (program analysis and transformation, and gradients through AD). Concerning AD, our goal is to automatically produce derivative programs that can compete with the hand-written sensitivity and adjoint programs which exist in the industry. We implement our ideas and algorithms into the tool tapenade, which is developed and maintained by the project. Apart from being an AD tool, tapenade is also a platform for other analyses and transformations of scientific programs. tapenade is easily available. We provide a web server, and alternatively a version can be downloaded from our web server. Practical details can be found in section 5.1.
Our present research directions are :
Modern numerical methods for finite elements or finite differences: multigrid methods, mesh adaption.
Optimal shape design, in the context of fluid dynamics: for example shape optimization of the wings of a supersonic aircraft, to reduce sonic bang. Also, new optimization tactics combining interior point, SQP or one-shot algorithms.
Automatic Differentiation : reduce runtime and memory consumption when computing gradients (``adjoints'') or Jacobian matrices, differentiate parallel programs, differentiate particular algorithms in a specially adapted manner, validate the derivatives.
Common tools for program analysis and transformation: adequate internal representation, Call Graphs, Flow Graphs, Data-Dependence Graphs.