edoddridge / aronnax

An idealised isopycnal model that can be run either with n+1/2 layers, or with n layers and variable bathymetry.
http://aronnax.readthedocs.io/en/latest/
MIT License
23 stars 5 forks source link

Parallel performance #218

Closed edoddridge closed 5 years ago

edoddridge commented 5 years ago

Implementing multicore simulations in #212 means one can throw many CPUs at a simulation, which can drastically reduce the runtime.

However, the code contains a number of inefficiencies. This is very clearly highlighted by the atrocious scaling of the 1.5 layer benchmark - above ~10 cores the simulation takes longer with more cores.

Issues to be addressed:

I think the easiest path forwards is to make better use of the halos and eliminate the extraneous exchange calls. For a quick sanity check I removed the calls to see what would happen; the scaling performance improves, but the test suite fails because there are slight differences at the tile edges.