Skip to content

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

Open
wants to merge 19 commits into
base: main
Choose a base branch
from
Open

Time parallel RIDC and SDC #634

wants to merge 19 commits into from

Conversation

atb1995
Copy link
Collaborator

@atb1995 atb1995 commented May 12, 2025

Time parallel SDC and RIDC implementations. Splits SDC code into deferred_correction and parallel_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.

@atb1995 atb1995 self-assigned this May 12, 2025
@atb1995 atb1995 added the enhancement Involves adding a new capability label May 12, 2025
@atb1995 atb1995 requested review from jshipton and connorjward May 14, 2025 14:50
@atb1995 atb1995 marked this pull request as ready for review May 14, 2025 14:56
@atb1995 atb1995 added the parallel Relates to parallel capability label May 14, 2025
@@ -33,7 +33,7 @@ jobs:
GUSTO_PARALLEL_LOG: CONSOLE
PYOP2_CFLAGS: -O0
# Make sure that tests with >4 processes are not silently skipped
PYTEST_MPI_MAX_NPROCS: 4
PYTEST_MPI_MAX_NPROCS: 6
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't sufficient. You also need to add extra - name: Run tests (nprocs = ???) steps below.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Involves adding a new capability parallel Relates to parallel capability
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants