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

Feature/gunney/point search comm filter #1349

Draft
wants to merge 17 commits into
base: develop
Choose a base branch
from

Conversation

gunney1
Copy link
Contributor

@gunney1 gunney1 commented Jun 10, 2024

Filter out unproductive communication and searches in DistributedClosestPoint

  • This PR is a feature
  • It does the following:
    • Implement a way to filter out unproductive communication and searches. This approach doesn't require a user-specified threshold and can work in conjunction with the threshold.
    • Change the correctness for the DistributedClosestPoint so it doesn't require the object mesh to be a complete sphere in 3D. (The complete sphere has polar singularities that are not representative of typical meshes.)

Motivation

The point search currently allows users to specify a threshold beyond which the user doesn't want to look. However, when this threshold is unspecified or large, the implementation can run unproductive searches. It can search and find distant points before searching more closely and discard the previous results. With this change, we examine the bounding boxes of domains before searching. We find a domain that is guaranteed to have points within a computable distance and exclude searching domains that cannot possibly beat that distance.

Approach

The check for unproductive searches is based on the min-max distance of object mesh partitions from a query mesh partition.

  1. In the current implementation, we already have all-gathered partitions' bounding boxes.
  2. Given any 2 bounding boxes, we can compute the maximum possible distance from a point in one box and a point in the other. For each query partition, find the object partition with the smallest possible maximum distance to it.
  3. Use a query-partition-specific search threshold that is the smaller of the min-max distance and the user-specified threshold (if any). If the user provides a very small threshold, this optimization is not likely to help further, but if no threshold is given this optimization can help.

Skipping unproductive searches also removes the associated communications.

@gunney1 gunney1 force-pushed the feature/gunney/point-search-comm-filter branch from 1769bc2 to 478fce1 Compare June 10, 2024 16:04
If object "sphere" mesh doesn't extend to the poles, distance
assuming a sphere is incorrect.  This change gets it correct
when the object mesh doesn't have the full latitude range.
@gunney1 gunney1 force-pushed the feature/gunney/point-search-comm-filter branch from 478fce1 to 30a4b72 Compare July 12, 2024 16:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant