Enable GPU execution of mpas_reconstruct_2d via OpenACC #1289
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR slightly modifies and adds OpenACC directives to
mpas_reconstruct_2d
so it can execute on GPU(s).Timing for the OpenACC data transfers in this routine is captured in the log file by a new timer:
mpas_reconstruct_2d [ACC_data_xfer]
.NOTE two things about this PR:
sin
andcos
functions on the GPU causes answer differences from previous GPU results. You can merge the commit in gdicker1/MPAS-Model:framework/acc_mpas_reconstruct_2d-correctness-sincosloops to run these loops on the CPU and verify this.coeffs_reconstruct
,nEdgesOnCell
,edgesOnCell
,latCell
, andlonCell
) are handled in bothmpas_reconstruct_2d
and inmpas_atm_dynamics_{init,finalize}
. Like Enable GPU execution of MPAS-Atmosphere initialization of coupled diagnostic fields via OpenACC #1216, this routine is called beforempas_atm_dynamics_init
.