-
Notifications
You must be signed in to change notification settings - Fork 371
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
Fix OpenACC rountine issue for subgrid wetting and drying #6472
Conversation
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'm about to head out on vacation so can't give this a proper review - but this looks ok except that you probably want to update the device copies of any array that is changed in the loop and make sure the input args have been similarly updated on host. I will go ahead and approve assuming someone else can test and check whether all arrays have been appropriately synchronized.
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 compiled this with gnu (debug and optimized) on chicoma and intel on chrysalis and tested with the nightly test suite. This works fine. I tried to run buttermilk bay and the parabolic bowl on chicoma, but it was failing because it didn't find the mesh file, unrelated to this PR. Anyway, the code changes are clear and I am comfortable with this change.
Approved by code inspection and based on @sbrus89's testing. I think we should just keep the vmix fixes here because otherwise we'll have too many PRs. |
I've added the host/device updates as @philipwjones suggested and tested one more time. All stages of |
Fix OpenACC rountine issue for subgrid wetting and drying This PR moves a subgrid subroutine call out of a OpenACC parallel region to fix the compile problems noted in #6470. Since subgrid wetting and drying is strictly a MPAS-Ocean standalone feature, it should be fine for this code to remain CPU-only. This PR also fixes a couple issues in mpas_ocn_vmix.F: * An OpenACC bug related to the use of gang vector collapse(3) on a double nested loop with variable inner loop bounds. * A missing !$omp parallel region in a calculation for the config_use_gotm option. [BFB] -- mpas-ocean standalone only
Passes:
merged to next |
merged to master |
This merge updates the E3SM-Project submodule from [31f771c](https://github.com/E3SM-Project/E3SM/tree/31f771c) to [c7d7998](https://github.com/E3SM-Project/E3SM/tree/c7d7998). This update includes the following MPAS-Ocean and MPAS-Frameworks PRs (check mark indicates bit-for-bit with previous PR in the list): - [ ] (ocn) E3SM-Project/E3SM#6472 - [ ] (ocn) E3SM-Project/E3SM#6471 - [ ] (ocn) E3SM-Project/E3SM#6481
This merge updates the E3SM-Project submodule from [31f771c](https://github.com/E3SM-Project/E3SM/tree/31f771c) to [c7d7998](https://github.com/E3SM-Project/E3SM/tree/c7d7998). This update includes the following MPAS-Ocean and MPAS-Frameworks PRs (check mark indicates bit-for-bit with previous PR in the list): - [ ] (ocn) E3SM-Project/E3SM#6472 - [ ] (ocn) E3SM-Project/E3SM#6471 - [ ] (ocn) E3SM-Project/E3SM#6481
This merge updates the E3SM-Project submodule from [31f771c](https://github.com/E3SM-Project/E3SM/tree/31f771c) to [c7d7998](https://github.com/E3SM-Project/E3SM/tree/c7d7998). This update includes the following MPAS-Ocean and MPAS-Frameworks PRs (check mark indicates bit-for-bit with previous PR in the list): - [ ] (ocn) E3SM-Project/E3SM#6472 - [ ] (ocn) E3SM-Project/E3SM#6471 - [ ] (ocn) E3SM-Project/E3SM#6481
This merge updates the E3SM-Project submodule from [31f771c](https://github.com/E3SM-Project/E3SM/tree/31f771c) to [c7d7998](https://github.com/E3SM-Project/E3SM/tree/c7d7998). This update includes the following MPAS-Ocean and MPAS-Frameworks PRs (check mark indicates bit-for-bit with previous PR in the list): - [ ] (ocn) E3SM-Project/E3SM#6472 - [ ] (ocn) E3SM-Project/E3SM#6471 - [ ] (ocn) E3SM-Project/E3SM#6481
This PR moves a subgrid subroutine call out of a OpenACC parallel region to fix the compile problems noted in #6470. Since subgrid wetting and drying is strictly a MPAS-Ocean standalone feature, I believe it should be fine for this code to remain CPU-only.
This PR also fixes a couple issues in
mpas_ocn_vmix.F
:gang vector collapse(3)
on a double nested loop with variable inner loop bounds.!$omp parallel
region in a calculation for theconfig_use_gotm
option.[BFB] -- mpas-ocean standalone