The Computer Journal Advance Access published online on February 27, 2008
The Computer Journal, doi:10.1093/comjnl/bxm115
Vertex-ordering Algorithms for Automatic Differentiation of Computer Codes
Department of Computing Science, King's College, University of Aberdeen, Aberdeen AB24 3UE, UK
* Corresponding author: etadjoud{at}csd.abdn.ac.uk
Received 2 April 2007; revised 7 January 2008
In the context of Automatic Differentiation (AD) of functions represented by computer code via the vertex elimination approach first advocated by Griewank and Reese (On the Calculation of Jacobian Matrices by the Markowitz Rule. In Griewank, A. and Corliss, G.F. (eds), Automatic Differentiation of Algorithms: Theory, Implementation and Application, pp. 126–135. SIAM, 1991, Philadelphia, PA.), we present two approximate algorithms based on the linearized computational graph of the input code. The first is a statement-reordering algorithm aiming to tune the AD-generated code so as to maximize its performance for modern superscalar processors. The second is aimed at detecting interface contractions introduced by Bischof and Haghighat (Hierarchical Approaches to Automatic Differentiation. In Berz, M., Bischof, C., Corliss, G. and Griewank, A. (eds), Computational Differentiation: Techniques, Applications, and Tools, pp. 83–94. SIAM, 1996, Philadelphia, PA) in order to enable exploitation of the structure of the input code in the differentiation process. Performance data are also presented.
Key Words: Automatic Differentiation vertex elimination code reordering interface contraction graph partitioning