Mathematical Programming Computation

, Volume 8, Issue 4, pp 393–433

Capitalizing on live variables: new algorithms for efficient Hessian computation via automatic differentiation

Full Length Paper

DOI: 10.1007/s12532-016-0100-3

Cite this article as:
Wang, M., Gebremedhin, A. & Pothen, A. Math. Prog. Comp. (2016) 8: 393. doi:10.1007/s12532-016-0100-3


We revisit an algorithm [called Edge Pushing (EP)] for computing Hessians using Automatic Differentiation (AD) recently proposed by Gower and Mello (Optim Methods Softw 27(2): 233–249, 2012). Here we give a new, simpler derivation for the EP algorithm based on the notion of live variables from data-flow analysis in compiler theory and redesign the algorithm with close attention to general applicability and performance. We call this algorithm Livarh and develop an extension of Livarh that incorporates preaccumulation to further reduce execution time—the resulting algorithm is called Livarhacc. We engineer robust implementations for both algorithms Livarh and Livarhacc within ADOL-C, a widely-used operator overloading based AD software tool. Rigorous complexity analyses for the algorithms are provided, and the performance of the algorithms is evaluated using a mesh optimization application and several kinds of synthetic functions as testbeds. The results show that the new algorithms outperform state-of-the-art sparse methods (based on sparsity pattern detection, coloring, compressed matrix evaluation, and recovery) in some cases by orders of magnitude. We have made our implementation available online as open-source software and it will be included in a future release of ADOL-C.


Algorithmic differentiation Hessian computation Reverse mode AD Edge pushing ADOL-C Data-flow analysis 

Mathematics Subject Classification

90C30 (Nonlinear programming) 49M37 (Methods of nonlinear programming type) 65K05 (Mathematical programming methods) 

Copyright information

© Springer-Verlag Berlin Heidelberg and The Mathematical Programming Society 2016

Authors and Affiliations

  1. 1.Department of Computer SciencePurdue UniversityWest LafayetteUSA
  2. 2.School of Electrical Engineering and Computer ScienceWashington State UniversityPullmanUSA
  3. 3.Department of Computer SciencePurdue UniversityWest LafayetteUSA

Personalised recommendations