  Future architectures designed to deliver exascale performance motivate the
need for novel algorithmic changes in order to fully exploit their
capabilities. In this paper, the performance of several numerical algorithms,
characterised by varying degrees of memory and computational intensity, are
evaluated in the context of finite difference methods for fluid dynamics
problems. It is shown that, by storing some of the evaluated derivatives as
single thread- or process-local variables in memory, or recomputing the
derivatives on-the-fly, a speed-up of ~2 can be obtained compared to
traditional algorithms that store all derivatives in global arrays.
