-
Notifications
You must be signed in to change notification settings - Fork 13
Time parallel RIDC and SDC #634
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
tommbendall
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I haven't checked line-by-line if the implementation matches the maths, but have worked through the tests and comments and am happy that this looks thorough!
I think we're planning on waiting to merge but I'm happy to approve it
Co-authored-by: Thomas Bendall <thomas.bendall@metoffice.gov.uk>
Co-authored-by: Dr Jemma Shipton <j.shipton@exeter.ac.uk>
Co-authored-by: Dr Jemma Shipton <j.shipton@exeter.ac.uk>
Co-authored-by: Dr Jemma Shipton <j.shipton@exeter.ac.uk>
jshipton
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks great - thanks @atb1995 !! And thanks for sorting the netCDF output issue.
Time parallel SDC and RIDC implementations. Splits SDC code into
deferred_correctionandparallel_dc. All should inherit from one overall DC class (Parallel_RIDC from RIDC and Parallel_SDC from SDC).Parallel SDC uses the diagonal preconditioners to compute solutions separately on each node, meaning we have M + 1 communicators.
Parallel RIDC pipelines the corrections, by having the number of nodes (M+1) being much greater than the number of corrections. It uses equispaced nodes on coarse intervals. Each correction (and the initial low order solution) are computed in parallel, meaning we have K + 1 communicators.
Serial RIDC has the reduced stencil and full stencil implementations, only the reduced stencil is used for Parallel RIDC.
The Firedrake Ensemble communicator is used for time parallelisation.