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

Add option to auto-compute an IO LAYOUT when auto masking is on #342

Open
wants to merge 1 commit into
base: dev/ncar
Choose a base branch
from

Conversation

alperaltuntas
Copy link
Member

@alperaltuntas alperaltuntas commented Mar 4, 2025

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 LAYOUT is unknown a priori, so it's not possible to predetermine an IO_LAYOUT compatible with LAYOUT. 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

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.
Copy link
Collaborator

@mnlevy1981 mnlevy1981 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Details of my testing in ESCOMP/FMS#5 (review)

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.

3 participants