Skip to content
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

Fix physical domain for benchmark stencils #1772

Open
wants to merge 6 commits into
base: develop
Choose a base branch
from

Conversation

MarcelKoch
Copy link
Member

This PR changes the stencil generation for the benchmarks to always use the fixed physical domain $[0, 1]^d$. Before, the domain was scaling with the number of processes, as each process subdomain had to be a square/cube. Now, the shape of the subdomains (as in their number of degrees of freedom per dimension) is not square/cubic anymore, and can differ (slightly) between processes.

The subdomain sizes are chosen such that:

  • the global number of DOFs is the same in each dimension
  • the sum of all DOFs in one dimension over all subdomains in that dimension is equal to the global number of DOFs
  • the difference between of DOFs in one dimension of any subdomains is at most 1

Example: Consider a 2D equidistant grid with 81 DOFs in each direction. Given 2x2 processes, then the process at [0, 0] will have 41 x 41 DOFs, and the process [1, 0] will have 40 x 41 DOFs.

As a consequence of the variable subdomain size, the computed process local sizes have to be propagated up from the stencil creation.

This implies that the process subdomains will not be square/cube shaped anymore. Instead, they can have arbitrary shape `d_x * d_y (* d_z)`. The values `d_x, d_y, d_z` are process dependent, but they differ by at most 1 each.
@MarcelKoch MarcelKoch self-assigned this Jan 27, 2025
@ginkgo-bot ginkgo-bot added reg:testing This is related to testing. mod:core This is related to the core module. reg:benchmarking This is related to benchmarking. type:solver This is related to the solvers type:preconditioner This is related to the preconditioners labels Jan 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
mod:core This is related to the core module. reg:benchmarking This is related to benchmarking. reg:testing This is related to testing. type:preconditioner This is related to the preconditioners type:solver This is related to the solvers
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants