Benchmarking Python Tools for Automatic Differentiation
Andrei Turkin, Aung Thu

TL;DR
This paper evaluates and compares the performance and precision of various Python tools for automatic differentiation using a cluster geometry optimization problem, highlighting PyCppAD's superior performance.
Contribution
It provides a systematic benchmarking of Python AD tools, revealing PyCppAD's efficiency and comparable precision to PyADOL-C for large-scale problems.
Findings
PyCppAD has the best performance among tested tools.
PyADOL-C also performs well but slightly less efficiently.
Both tools maintain high precision in gradient calculations.
Abstract
In this paper we compare several Python tools for automatic differentiation. In order to assess the difference in performance and precision, the problem of finding the optimal geometrical structure of the cluster with identical atoms is used as follows. First, we compare performance of calculating gradients for the objective function. We showed that the PyADOL-C and PyCppAD tools have much better performance for big clusters than the other ones. Second, we assess precision of these two tools by calculating the difference between the obtained at the optimal configuration gradient norms. We conclude that PyCppAD has the best performance among others, while having almost the same precision as the second- best performing tool - PyADOL-C.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsNumerical Methods and Algorithms · Numerical methods for differential equations · Model Reduction and Neural Networks
