  The run time of many scientific computation applications for numerical
methods is heavily dependent on just a few multi-dimensional loop nests. Since
these applications are often limited by memory bandwidth rather than
computational resources they can benefit greatly from any optimizations which
decrease the run time of their loops by improving data reuse and thus reducing
the total memory traffic. Some of the most effective of these optimizations are
not suitable for development by hand or require advanced software engineering
knowledge which is beyond the level of many researchers who are not specialists
in code optimization. Several tools exist to automate the generation of
high-performance code for numerical methods, such as Devito which produces code
for finite-difference approximations typically used in the seismic imaging
domain. We present a loop-tiling optimization which can be applied to
Devito-generated loops and improves run time by up to 27.5%, and options for
automating this optimization in the Devito framework.
