Section: New Results

Multi-Activity specialized Differentiation

Participants : Laurent Hascoët, Ian Hueckelheim [Queen Mary University of London] .

Up to this year, Tapenade did not allow for specialization of differentiated routines for different “activity” patterns. If a procedure must be differentiated once with respect to some of its arguments, and once with respect to another subset of arguments, then only one generalized differentiated procedure is created, with respect to the union of all subsets of active arguments. This incurs an efficiency penalty, but avoids a combinatorial explosion of the differentiated code.

However, there are cases where the efficiency penalty is high, and some users want more flexibility. Also the specialized adjoint for Fixed-Point iterations cf  6.7 uses two distinct activity patterns for the Fixed-Point loop body, and merging them looses some of the benefits of the approach. We have modified Tapenade to perform activity-specialized differentiation, giving the end-user a complete control through differentiation directives.

The experiments on a non-contrived industrial testcase of the AboutFlow project showed a non-negligible improvement between 5 to 10%. Work is still in progress to incorporate this new functionality into the mainstream distributed Tapenade. Ian Hueckelheim presented these results at the 16th EuroAD workshop in Jena, Germany, December 8-9.