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

Partitioning strategies: skip refined #359

Merged
merged 26 commits into from
Aug 28, 2024

Conversation

hannesbrandt
Copy link
Contributor

This PR adds a skip_refined flag as described in #335 to the domain_persist_t.

The flag defaults to 0 and can be set with fclaw2d_domain_set_partitioning.
If true, the patch data of patches that were refined during the most recent call to fclaw3d_domain_adapt is only packed for the sibling with child id 0. Additionally, when a newly refined family is split between multiple processes in the new partition, the patch data will be packed for the first patch sent to each of these processes. In fclaw2d_domain_iterate_unpack every sibling of the newly refined family will be supplied with the data packed by the sibling with child id 0. This option allows to delay the computation/allocation of the siblings' patch data until after the partitioning in memory-intensive runs.

The partitioning demo is adapted to the new option. It now contains a workflow that allocates the siblings' patch data only after partitioning. Furthermore, we add a more sophisticated patch data structure and compute checksums of the local patch data to compare and verify the different partitioning strategies.

@scottaiton
Copy link
Member

Looks good, thank you! I'll work on implementing this on the forestclaw/clawpatch side of things. We'll see how difficult it is.

@scottaiton scottaiton merged commit 10aee81 into ForestClaw:develop-3d Aug 28, 2024
39 checks passed
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.

2 participants