firedrakeproject / gusto

Three dimensional atmospheric dynamical core using the Gung Ho numerics.
http://firedrakeproject.org/gusto/
MIT License
12 stars 11 forks source link

Ensemble parallelism #505

Open jshipton opened 6 months ago

jshipton commented 6 months ago

When running time parallel problems we still need to interact with the io. This PR is a start. The Ensemble is created first so that the spatial communicator can be passed to the mesh. The ensemble instance is then passed to the timestepper so that it can be passed as required to the io and (in future, or on other branches!) to the time discretisation classes.

Here I have sorted out the VTK output. Diagnostics also seem to work, but I have not verified that they are correct. I have not thought about netCDF output or the case where we pick up. I have implemented a test that doesn't check anything other than for hanging. I can see that it does hang if spatial_parallelism=True but this seems to be a pytest issue as it is creating multiple output directories, one for each process.

I know @JDBetteridge and @tommbendall have been looking at parallel tests and having issues - would be good to hear what you think!

JDBetteridge commented 3 months ago

A quick note that Ensembe is currently broken in Firedrake. This would be a good little project for the upcoming hackathon!