Source-to-Source Automatic Differentiation of OpenMP Parallel Loops
Jan H\"uckelheim, Laurent Hasco\"et

TL;DR
This paper introduces a framework and extension to automatic differentiation for OpenMP parallel loops, enabling correct and efficient gradient computation in parallel environments, implemented in the Tapenade tool.
Contribution
It extends the differentiation model to handle OpenMP parallel loops, ensuring correctness and improving performance of generated derivative code.
Findings
Generated derivatives outperform sequential execution in speed.
Reverse mode scaling is often worse than input programs.
Framework is validated with test cases in Tapenade.
Abstract
This paper presents our work toward correct and efficient automatic differentiation of OpenMP parallel worksharing loops in forward and reverse mode. Automatic differentiation is a method to obtain gradients of numerical programs, which are crucial in optimization, uncertainty quantification, and machine learning. The computational cost to compute gradients is a common bottleneck in practice. For applications that are parallelized for multicore CPUs or GPUs using OpenMP, one also wishes to compute the gradients in parallel. We propose a framework to reason about the correctness of the generated derivative code, from which we justify our OpenMP extension to the differentiation model. We implement this model in the automatic differentiation tool Tapenade and present test cases that are differentiated following our extended differentiation procedure. Performance of the generated derivative…
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
TopicsParallel Computing and Optimization Techniques · Advanced Optimization Algorithms Research · Distributed and Parallel Computing Systems
