The optimization that wasn't

One of the example programs that we provide as part of the ParallelAccelerator package is an implementation of the two-dimensional wave equation. The 2D wave equation is a partial differential equation that models the vibrations of a wave across a thin elastic membrane, such as a drum head.

Our Julia code was ported from an Octave implementation of the 2D wave equation, with the original author’s permission. We then used ParallelAccelerator to speed up the Julia code, as described in section 3.3 of our paper. But this post isn’t about ParallelAccelerator; it’s about a mistake we made when porting the original Octave code to Julia.