Abstract
The leapfrog scheme is a commonly used second-order difference scheme for solving differential equations. If Z(t) denotes the state of a system at a particular time step t, the leapfrog scheme computes the state at the next time step as Z(t+1)=H(Z(t),Z(t-1),W), where H is the nonlinear time-stepping operator and W represents parameters that are not time-dependent. In this note, we show how the associativity of the chain rule of differential calculus can be used to compute a so-called adjoint, the derivative of a scalar-valued function applied to the final state Z(T) with respect to some chosen parameters, efficiently in a parallel fashion. To this end, we (1) employ the reverse mode of automatic differentiation at the outermost level, (2) use a sparsity-exploiting version of the forward mode of automatic differentiation to compute derivatives of H at every time step, and (3) exploit chain rule associativity to compute derivatives at individual time steps in parallel. We report on experimental results with a 2-D shallow water equations model problem on an IBM SP parallel computer and a network of Sun SPARCstations.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.