From 018cc19915c6a2ff89febd6aa59a62b93e49a668 Mon Sep 17 00:00:00 2001 From: ESCOBAR Juan <escj@nuwa> Date: Wed, 26 Oct 2022 18:02:26 +0200 Subject: [PATCH] Juan 26/10/2022:ZSOLVER/advection_metsv.f90, Nvhpc/22.7+ bug , MAXVAL not longer parallelize on GPU => replace with "!$acc parallel reduction(max:..." --- src/ZSOLVER/advection_metsv.f90 | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/ZSOLVER/advection_metsv.f90 b/src/ZSOLVER/advection_metsv.f90 index 034505c02..e7b76ef20 100644 --- a/src/ZSOLVER/advection_metsv.f90 +++ b/src/ZSOLVER/advection_metsv.f90 @@ -668,12 +668,24 @@ ZCFLW_MAX = MAX_ll(ZCFLW,IINFO_ll) ZCFL_MAX = MAX_ll(ZCFL,IINFO_ll) #else ! +#ifndef MNH_COMPILER_NVHPC !$acc kernels ZCFLU_MAX = MAXVAL(ZCFLU(IIB:IIE,IJB:IJE,IKB:IKE)) ZCFLV_MAX = MAXVAL(ZCFLV(IIB:IIE,IJB:IJE,IKB:IKE)) ZCFLW_MAX = MAXVAL(ZCFLW(IIB:IIE,IJB:IJE,IKB:IKE)) ZCFL_MAX = MAXVAL(ZCFL (IIB:IIE,IJB:IJE,IKB:IKE)) !$acc end kernels +#else +ZCFLU_MAX = 0.0 ; ZCFLV_MAX = 0.0 ; ZCFLW_MAX = 0.0 ; ZCFL_MAX = 0.0 +!$acc parallel reduction(max:ZCFLU_MAX,ZCFLV_MAX,ZCFLW_MAX,ZCFL_MAX) +!$mnh_do_concurrent (JI=IIB:IIE,JJ=IJB:IJE,JK=IKB:IKE) + ZCFLU_MAX = MAX(ZCFLU_MAX,ZCFLU(JI,JJ,JK)) + ZCFLV_MAX = MAX(ZCFLV_MAX,ZCFLV(JI,JJ,JK)) + ZCFLW_MAX = MAX(ZCFLW_MAX,ZCFLW(JI,JJ,JK)) + ZCFL_MAX = MAX(ZCFL_MAX,ZCFL (JI,JJ,JK)) +!$mnh_end_do() +!$acc end parallel +#endif ! CALL MPI_ALLREDUCE(MPI_IN_PLACE,ZCFLU_MAX,1,MNHREAL_MPI,MPI_MAX,NMNH_COMM_WORLD,IINFO_ll) CALL MPI_ALLREDUCE(MPI_IN_PLACE,ZCFLV_MAX,1,MNHREAL_MPI,MPI_MAX,NMNH_COMM_WORLD,IINFO_ll) -- GitLab