BreakawayLabs/mom — pull request #54 by marshallward (2014-07-12 03:12:17+00:00)
Title: Optimized potential energy calculation

Replaces a per-level potential energy calculation with a tile sum, followed by a sum over all tiles.

This reduces the number of mpp_sum calls by a factor of N_z (number of vertical levels).

In my test run, this reduced the number of mpp_sum_real8 (mpi_allgather) calls by 50% (130k to 60k in a 1488-timestep simulation. Values were unchanged (within floating point at least; no differences in ncdump output).

Net performance was not affected; there is still another diagnostic bottleneck that was riding the tailwind of this inefficiency. But this is some progress.