Add option to auto-compute an IO LAYOUT when auto masking is on#342
Merged
Conversation
When Auto Masking is enabled, the LAYOUT is unknown a priori, so it's not possible to predetermine a compatible IO_LAYOUT. This commit introduces an option to set a target number of IO PEs (TARGET_IO_PES), to be used as a reference for the auto masking routine to come up with an IO_LAYOUT compatible with LAYOUT on the fly. If original TARGET_IO_PES is not achievable without having to sacrifice too much land masking, IO PEs is decremented until a feasible combination of LAYOUT and IO_LAYOUT is found.
This was referenced Mar 4, 2025
jedwards4b
approved these changes
Mar 5, 2025
mnlevy1981
approved these changes
Mar 17, 2025
Collaborator
mnlevy1981
left a comment
There was a problem hiding this comment.
Details of my testing in ESCOMP/FMS#5 (review)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is one of three PRs to enable automated parallel IO in MOM6 within CESM by making use of the existing parallel IO implementation that comes with FMS. These series of PRs (1) enable FMS parallel IO, (2) make sure the IO PE Layout is compatible with auto-land block elimination (i.e., masking), and (3) that partitioned files are automatically merged after a run is completed.
When auto-masking (land-block elimination) is enabled, the compute PE
LAYOUTis unknown a priori, so it's not possible to predetermine an IO_LAYOUT compatible withLAYOUT. This PR introduces an option to set a target number of IO PEs (TARGET_IO_PES), to be used as a reference for the auto-masking routine to determine an IO_LAYOUT compatible with LAYOUT on-the-fly. If original TARGET_IO_PES is not achievable without having to sacrifice too much auto land masking, then the number of IO PEs is decremented until a feasible combination of LAYOUT and IO_LAYOUT is found.testing: aux_mom.derecho
status: b4b, except for masking in static files due to changing compute layout.
Performance: varies depending on the resolution, pe count and IO layout, from no enhancement or degradation to more than 50% enhancement.
This PR should be evaluated in conjunction with:
ESCOMP/FMS#5
ESCOMP/MOM_interface#235