Comparison of two activity analyses for automatic differentiation: context-sensitive flow-insensitive vs. context-insensitive flow-sensitive

Automatic differentiation (AD) is a family of techniques to generate derivative code from a mathematical model expressed in a programming language. AD computes partial derivatives for each operation in the input code and combines them to produce the desired derivative by applying the chain rule. Activity analysis is a compiler analysis used to find active variables in automatic differentiation. By lifting the burden of computing partial derivatives for passive variables, activity analysis can reduce the memory requirement and run time of the generated derivative code. This paper compares a new context-sensitive flow-insensitive (CSFI) activity analysis with an existing context-insensitive flow-sensitive (CIFS) activity analysis in terms of execution time and the quality of the analysis results. Our experiments with eight benchmarks show that the new CSFI activity analysis runs up to 583 times faster and overestimates up to 18.5 times fewer active variables than does the existing CIFS activity analysis.

[1]  Paul D. Hovland,et al.  Hybrid Static/Dynamic Activity Analysis , 2006, International Conference on Computational Science.

[2]  Paul D. Hovland,et al.  Data-Flow Analysis for MPI Programs , 2006, 2006 International Conference on Parallel Processing (ICPP'06).

[3]  Christian Bischof,et al.  Adifor 2.0: automatic differentiation of Fortran 77 programs , 1996 .

[4]  Paul D. Hovland,et al.  Representation-independent program analysis , 2005, PASTE '05.

[5]  A. Griewank,et al.  Automatic differentiation of algorithms : theory, implementation, and application , 1994 .

[6]  Uwe Naumann,et al.  "To be recorded" analysis in reverse-mode automatic differentiation , 2005, Future Gener. Comput. Syst..

[7]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[8]  Jean Utke OpenAD : algorithm implementation user guide. , 2004 .

[9]  Susan Horwitz,et al.  The Effects of the Precision of Pointer Analysis , 1997, SAS.

[10]  R. V. D. Wijngaart NAS Parallel Benchmarks Version 2.4 , 2022 .

[11]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[12]  Thomas W. Reps,et al.  Speeding up slicing , 1994, SIGSOFT '94.

[13]  Arun Lakhotia Rule-based approach to computing module cohesion , 1993, Proceedings of 1993 15th International Conference on Software Engineering.

[14]  Thomas W. Reps,et al.  Precise interprocedural chopping , 1995, SIGSOFT FSE.

[15]  Guoliang Xue,et al.  The MINPACK-2 test problem collection , 1992 .

[16]  Dhananjay M. Dhamdhere,et al.  A generalized theory of bit vector data flow analysis , 1994, TOPL.

[17]  Message Passing Interface Forum MPI: A message - passing interface standard , 1994 .

[18]  Martin Berz,et al.  Computational differentiation : techniques, applications, and tools , 1996 .