Interfacing OpenAD and Tapenade
|Title||Interfacing OpenAD and Tapenade|
|Year of Publication||2016|
|Authors||Narayanan, SHK, Hascoet, L|
Development of a capable algorithmic differentiation (AD) tool requires large developer effort to provide the various flavors of derivatives, to experiment with the many AD model variants, and to apply them to the candidate application languages. Considering the relatively small size of the academic teams that develop AD tools, collaboration between them is a natural idea. This collaboration can exist at the level of research ideas as well as tool development.
This work describes the interoperation of two source-to-source transformation AD tools OpenAD [1, 2] and Tape- nade [3, 4]. The interoperative pipeline uses the parsing and source analysis capabilities of Tapenade with the trans- formation algorithms of OpenAD.
The aim of such interoperability is to ensure the robustness and stability of the AD tools. The redundancy between some components of either tool offers more flexibility to the end user. A weakness in one component may be compensated by choosing another route in the components graph. A long-term objective is “`a la carte” AD, where one may combine powerful capabilities from either tool, for instance, the preaccumulation capacities of OpenAD with the accurate data-flow model of Tapenade for activity, adjoint liveness, and TBR analysis. Additionally, not relying on any one component, such as the front-end compiler developed externally, allows the AD tool to persist beyond the lifetime of that front end compiler. Even further, we can analyze the strengths and weaknesses of each tool’s AD model. These models are similar (source transformation, with a store-on-kill adjoint model), yet some choices differ, for instance, association-by-name vs. association-by-address .