Skip to content

Add distributed preconditioners to benchmarks #1845

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 1 commit into
base: develop
Choose a base branch
from

Conversation

pratikvn
Copy link
Member

This PR adds distributed preconditioners to benchmarks.

Extracted from: #1660

@pratikvn pratikvn self-assigned this May 16, 2025
@pratikvn pratikvn added 1:ST:ready-for-review This PR is ready for review 1:ST:no-changelog-entry Skip the wiki check for changelog update labels May 16, 2025
@ginkgo-bot ginkgo-bot added the reg:benchmarking This is related to benchmarking. label May 16, 2025
@pratikvn pratikvn added this to the Ginkgo 1.10.0 milestone May 16, 2025
@pratikvn pratikvn requested a review from a team May 16, 2025 13:05
Copy link
Member

@MarcelKoch MarcelKoch left a comment

Choose a reason for hiding this comment

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

The changes are mostly fine (I would want to see the mg also for non-distributed), but there are two more levels of generality we could achieve:

  1. define the inner schwarz preconditioner through a separate option;
  2. define everything directly through our json format.

I think 2. is definitely not in the scope of this PR. For 1., however, I could see this getting added.

"parilut-isai, ic-isai, ilu-isai, sor, overhead");
"parilut-isai, ic-isai, ilu-isai, sor, overhead"
#ifdef GINKGO_BUILD_MPI
", schwarz-jacobi, schwarz-ilu, schwarz-ic, schwarz-lu, dist-mg"
Copy link
Member

Choose a reason for hiding this comment

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

Shouldn't mg just be its own thing? You can use it also without mpi.

"parilut-isai, ic-isai, ilu-isai, sor, overhead");
"parilut-isai, ic-isai, ilu-isai, sor, overhead"
#ifdef GINKGO_BUILD_MPI
", schwarz-jacobi, schwarz-ilu, schwarz-ic, schwarz-lu, dist-mg"
Copy link
Member

Choose a reason for hiding this comment

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

IMO it should just be schwarz and then another option to set the local preconditioner for schwarz.

Comment on lines +65 to +72
DEFINE_uint32(
mg_max_num_levels, false,
"The maximum number of levels to use for the Multigrid preconditioner");

DEFINE_double(mg_tolerance, false, "The tolerance for the coarse solver");

DEFINE_uint32(mg_max_iters, false,
"The max number of iterations for the coarse solver");
Copy link
Member

Choose a reason for hiding this comment

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

To me, this looks like we reached the limit of what we can do through the CLI. I think for now this is fine, but we should consider in the long term to also allow our json config to define these parameters.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1:ST:no-changelog-entry Skip the wiki check for changelog update 1:ST:ready-for-review This PR is ready for review reg:benchmarking This is related to benchmarking.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants