From 6926117a480ba08c751381e3f5e4da1ad06364db Mon Sep 17 00:00:00 2001 From: Abishek Gopal Date: Mon, 6 Jul 2026 16:33:56 -0600 Subject: [PATCH 1/3] Add timer --- src/core_atmosphere/dynamics/mpas_atm_time_integration.F | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/core_atmosphere/dynamics/mpas_atm_time_integration.F b/src/core_atmosphere/dynamics/mpas_atm_time_integration.F index 227fbde862..79a48b1583 100644 --- a/src/core_atmosphere/dynamics/mpas_atm_time_integration.F +++ b/src/core_atmosphere/dynamics/mpas_atm_time_integration.F @@ -7308,8 +7308,9 @@ subroutine atm_compute_solve_diagnostics_work(nCells, nEdges, nVertices, & if(present(rk_step)) then if(rk_step /= 3) reconstruct_v = .false. end if - + if (reconstruct_v) then + call mpas_timer_start('atm_compute_solve_diag_7313') !$acc parallel default(present) !$acc loop gang do iEdge = edgeStart,edgeEnd @@ -7328,6 +7329,7 @@ subroutine atm_compute_solve_diagnostics_work(nCells, nEdges, nVertices, & end do end do !$acc end parallel + call mpas_timer_stop('atm_compute_solve_diag_7313') end if ! From 9c81d42e43abe93919d01337fafcbc9f4d226f55 Mon Sep 17 00:00:00 2001 From: Abishek Gopal Date: Tue, 7 Jul 2026 13:17:00 -0600 Subject: [PATCH 2/3] Opt 1 - Add worker --- src/core_atmosphere/dynamics/mpas_atm_time_integration.F | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core_atmosphere/dynamics/mpas_atm_time_integration.F b/src/core_atmosphere/dynamics/mpas_atm_time_integration.F index 79a48b1583..5a6c376d9e 100644 --- a/src/core_atmosphere/dynamics/mpas_atm_time_integration.F +++ b/src/core_atmosphere/dynamics/mpas_atm_time_integration.F @@ -7312,7 +7312,7 @@ subroutine atm_compute_solve_diagnostics_work(nCells, nEdges, nVertices, & if (reconstruct_v) then call mpas_timer_start('atm_compute_solve_diag_7313') !$acc parallel default(present) - !$acc loop gang + !$acc loop gang worker do iEdge = edgeStart,edgeEnd !$acc loop vector do k = 1,nVertLevels From 721432ebbd12dbe1fa205b180d97da7d2fae3644 Mon Sep 17 00:00:00 2001 From: Abishek Gopal Date: Tue, 7 Jul 2026 13:43:30 -0600 Subject: [PATCH 3/3] Opt 2 - Swap loop seq and vector --- .../dynamics/mpas_atm_time_integration.F | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/core_atmosphere/dynamics/mpas_atm_time_integration.F b/src/core_atmosphere/dynamics/mpas_atm_time_integration.F index 5a6c376d9e..1f0cfe4c79 100644 --- a/src/core_atmosphere/dynamics/mpas_atm_time_integration.F +++ b/src/core_atmosphere/dynamics/mpas_atm_time_integration.F @@ -7318,12 +7318,12 @@ subroutine atm_compute_solve_diagnostics_work(nCells, nEdges, nVertices, & do k = 1,nVertLevels v(k,iEdge) = 0.0_RKIND end do - !$acc loop seq - do i=1,nEdgesOnEdge(iEdge) - eoe = edgesOnEdge(i,iEdge) !DIR$ IVDEP - !$acc loop vector - do k = 1,nVertLevels + !$acc loop vector + do k = 1,nVertLevels + !$acc loop seq + do i=1,nEdgesOnEdge(iEdge) + eoe = edgesOnEdge(i,iEdge) v(k,iEdge) = v(k,iEdge) + weightsOnEdge(i,iEdge) * u(k, eoe) end do end do