Performance evaluation of explicit finite difference algorithms with   varying amounts of computational and memory intensity
  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. 
Satya P. Jammy, Christian T. Jacobs, Neil D. Sandham
cs.DS cs.DC cs.MS physics.comp-ph physics.flu-dyn