Fix OpenACC rountine issue for subgrid wetting and drying#6472
Conversation
philipwjones
left a comment
There was a problem hiding this comment.
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.
mark-petersen
left a comment
There was a problem hiding this comment.
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 parallelregion in a calculation for theconfig_use_gotmoption.[BFB] -- mpas-ocean standalone