Skip to content

Commit

Permalink
Initial OpenACC port of atm_advance_acoustic_step_work
Browse files Browse the repository at this point in the history
Enables the GPU execution of the atm_advance_acoustic_step_work subroutine by
adding OpenACC directives. In order to discount the time spent to transfer data
between CPU and GPU within this routine, the new timer
'atm_advance_acoustic_step [ACC_data_xfer]' has been added to the log file.

Changes include:
- Preparing the routine for porting. Modifying whitespace to make regions clear,
  changing implicit loop assignments to be explicit, and fusing some loops.
- Adding OpenACC parallel and loop directives to the do-loops.
- Managing the invariant fields needed for this routine in
  mpas_atm_dynamics_{init,finalize} so they are available across timesteps.
- Managing the other fields needed in the routine with OpenACC directives and
  using default(present) to ensure data isn't missed. default(present) clauses
  cause a run-time error if data isn't present.
  • Loading branch information
gdicker1 committed Jan 21, 2025
1 parent ce4d670 commit 6e40864
Showing 1 changed file with 228 additions and 86 deletions.
Loading

0 comments on commit 6e40864

Please sign in to comment.