-
Notifications
You must be signed in to change notification settings - Fork 12
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
Add edge_interior_ratio argument to TilePartitioner #44
Conversation
…ng, added one test case with just one interface dimension
…nd fixed current unit tests.
…erm/pace into feature/shrinked_edge_partitioning
Can one of the admins verify this patch? |
ok to test |
launch jenkins |
2 similar comments
launch jenkins |
launch jenkins |
launch jenkins |
pace-util/HISTORY.md
Outdated
@@ -7,13 +7,16 @@ latest | |||
Major changes: | |||
- Renamed DummyComm to LocalComm, and added support for message tags. The DummyComm symbol is still in place for backwards compatibility, but points to LocalComm | |||
- added error in CubedSphereCommunicator init if given a communicator with a size not equal to the total ranks of the given partitioner | |||
- `subtile_extent` method of Partitioner classes now takes in a required `rank` argument | |||
- TilePartitioner has a new `edge_interior_ratio` argument which defaults to 1.0, and lets the user specify the relative 1-dimensional extent of edge and corner compute domains compared to interior compute domains. In all cases, the closest valid value will be used, which enables some previously invalid configurations (e.g. C128 on a 3 by 3 layout will use the closest valid edge_interior_ratio to 1.0) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- TilePartitioner has a new `edge_interior_ratio` argument which defaults to 1.0, and lets the user specify the relative 1-dimensional extent of edge and corner compute domains compared to interior compute domains. In all cases, the closest valid value will be used, which enables some previously invalid configurations (e.g. C128 on a 3 by 3 layout will use the closest valid edge_interior_ratio to 1.0) | |
- TilePartitioner has a new `edge_interior_ratio` argument which defaults to 1.0, and lets the user specify the relative 1-dimensional extent of the boundaries (edge and corner) compute domains compared to interior compute domains. In all cases, the closest valid value will be used, which enables some previously invalid configurations (e.g. C128 on a 3 by 3 layout will use the closest valid edge_interior_ratio to 1.0) |
Trying to align the wording with the code (e,g, ratio between interior and boundary tile sizes.
in function comment). Boundary is a bit of a loaded term here, so you might want to flip for a constructed "edge-corner" concept or something better.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will do.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
Do we want to have at least one test using a non-default ratio that actually exchange data? Not quite a unit test per se, but it sounds safer to have at least one of those |
Good catch, I hadn't noticed there wasn't one. I'll add at least one each of a true MPI and mock MPI case. |
…-one edge_interior_ratio
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
launch jenkins |
tests/test_partitioner.py
updated to reflect some more advanced assignments.subtile_extent
method of Partitioner classes now takes in a requiredrank
argumentedge_interior_ratio
argument which defaults to 1.0, and lets the user specify the relative 1-dimensional extent of edge and corner compute domains compared to interior compute domains. In all cases, the closest valid value will be used, which enables some previously invalid configurations (e.g. C128 on a 3 by 3 layout will use the closest valid edge_interior_ratio to 1.0)TilePartitioner.subtile_slice()
to do custom subdomain partitioning.This PR is replacing #33 with its feature branch moved from my fork to the
pace
repo.