-
Notifications
You must be signed in to change notification settings - Fork 21
Enable auto IO LAYOUT (via FMS parallel IO) #235
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
Changes from all commits
5ae867d
75f030b
aea3490
66749e3
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -47,6 +47,10 @@ diag_manager_nml: | |
| else: 30 | ||
| max_axes: | ||
| values: 90 | ||
| auto_merge_nc: | ||
| values: | ||
| $OCN_GRID in ["tx2_3v2", "tx0.25v1"]: .true. | ||
| else: .false. | ||
|
Comment on lines
+52
to
+53
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can we use the |
||
|
|
||
| mpp_io_nml: | ||
| cf_compliance: | ||
|
|
||
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.
The comment about this being the first iteration makes me wonder why we don't just initialize
max_feasible_p = int(np.ceil(npes / glob_ocn_frac))and then we can always setp_up = max_feasible_p; but then I seeAnd I'm not sure if that's changing
max_feasible_pfromint(np.ceil(npes / glob_ocn_frac))or not (maybep = p_upcould result in an extreme aspect ratio and then the first time in this block is when p = p_up - 1?)I guess I have two points in this comment:
max_feasible_pand skip a couple of if blocks in this code.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.
For a number of divisions
pto be feasible, it must (1) have a reasonable aspect ratio and (2) eliminate enough land blocks. The firstpthat meets these criteria ismax_feasible_p(which is usually far less thanp_up). Additionally, there is now a third criterion, the existence of a compatibleIO_LAYOUT, but this only becomes relevant after identifyingmax_feasible_p(which is identified at the end of the first iteration of the outer loop).I'm not sure why we'd set
max_feasible_pto the initial upper boundp_up = int(np.ceil(npes / glob_ocn_frac)). Butp_upinstead can indeed be initialized asint(np.ceil(npes / glob_ocn_frac))and later updated tomax_feasible_pwhen it's found (at the end of the first iteration of the outer for loop). However, I opted for an explicit if block in the beginning of the inner for loop to make it clear that it has a varying iteration bound.