-
Notifications
You must be signed in to change notification settings - Fork 138
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
Fms2 io update:domain_reads #1226
Fms2 io update:domain_reads #1226
Conversation
…determining the io global domain, so it needs to be modified as well
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.
Looks fine to me.
fms2_io/include/domain_read.inc
Outdated
integer :: e(2) !< The number of points (edges) | ||
logical :: buffer_includes_halos !< .True. if vdata includes halo points | ||
integer :: xgbegin !< Starting x index of global io domain | ||
integer :: xgsize !< Size of global io domain |
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.
in x dimension?
fms2_io/include/domain_read.inc
Outdated
integer :: xgbegin !< Starting x index of global io domain | ||
integer :: xgsize !< Size of global io domain | ||
integer :: ygbegin !< Starting y index of global io domain | ||
integer :: ygsize !< Ending y index of global io domain |
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.
ygsize may not be the ending y index.
fms2_io/include/domain_read.inc
Outdated
integer :: ypos !< The position of the y axis | ||
integer :: i !< For do loops | ||
integer :: isd !< The starting x position of the data io_domain | ||
integer :: isc !< The starting y position of the data io_domain |
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.
Isn't isc related to the x dimension because it is used to compute halo in that dimension?
@ganganoaa thank you for catching those documentation errors. |
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 logic looks sound.
@uramirez8707 did we want to add this to main or patch 2023.01 first? there's a |
Let's patch 2023.01 first, so merge this and #1227 to |
integer :: ygmin !< Starting y index of global io domain | ||
type(FmsNetcdfDomainFile_t), intent(in) :: fileobj !< File object. | ||
character(len=*), intent(in) :: variable_name !< Variable name. | ||
class(*), contiguous, target, intent(inout) :: vdata(:,:) !< Data that will |
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.
I meant to mention your comments mention writes instead of reads here and in the 3d version.
* fix: fms2 io performance update for domain_reads (#1226) * fix: fms2 io performance update for compressed writes (#1227) * chore: build/log updates for patch (#1247) Co-authored-by: uramirez8707 <[email protected]> Co-authored-by: rem1776 <[email protected]>
Description
Fixes #1218 #1219
This should give some performance gain in initialization time for high resolutions.
How Has This Been Tested?
CI, SHiELD
The initialization timings for C3072 SHiELD run:
Original:
Min: 206.756363 Max: 215.601578 Avg: 209.762848
New:
Min: 153.169189 Max: 161.906982 Avg: 156.292923
Checklist:
make distcheck
passes