Changeset 15072 for NEMO/branches/2021
- Timestamp:
- 2021-07-02T15:54:03+02:00 (3 years ago)
- Location:
- NEMO/branches/2021/dev_r14447_HPC-07_Irrmann_try_new_pt2pt
- Files:
-
- 1 added
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/dev_r14447_HPC-07_Irrmann_try_new_pt2pt/cfgs/SHARED/namelist_ref
r14902 r15072 1501 1501 ln_tspers = .false. ! change to persistent communications in time splitting 1502 1502 ln_async = .false. ! change to asynchronous communications whenever possible 1503 ln_RMA = .false. ! change to RMA communications in time splitting 1503 1504 / 1504 1505 !----------------------------------------------------------------------- -
NEMO/branches/2021/dev_r14447_HPC-07_Irrmann_try_new_pt2pt/src/OCE/DYN/dynspg_ts.F90
r15054 r15072 524 524 !-------------------------------------------------------------------------! 525 525 ! 526 IF( ln_async) THEN526 IF( ln_async .OR. ln_RMA ) THEN 527 527 CALL lbc_lnk( 'dynspg_ts', ssha_e, 'T', 1._wp, zhU, 'U', -1._wp, zhV, 'V', -1._wp, loop_fct=loop_ssha_e ) 528 528 ELSE … … 625 625 !------------------------------------------------------------------------------------------------------------------------! 626 626 627 IF( ln_async ) THEN627 IF( ln_async .OR. ln_RMA ) THEN 628 628 IF( .NOT.ln_linssh ) THEN !* Update ocean depth (variable volume case only) 629 629 CALL lbc_lnk( 'dynspg_ts', ua_e , 'U', -1._wp, va_e , 'V', -1._wp & -
NEMO/branches/2021/dev_r14447_HPC-07_Irrmann_try_new_pt2pt/src/OCE/LBC/lbc_lnk_call_generic.h90
r14899 r15072 80 80 IF( PRESENT(psgn16) ) CALL load_ptr_/**/XD/**/_/**/PRECISION( pt16, cdna16, psgn16, ptab_ptr, cdna_ptr, psgn_ptr, kfld ) 81 81 ! 82 82 83 83 IF( lints ) THEN ! in time splitting 84 84 IF( ln_tspers ) THEN … … 86 86 ELSE IF( PRESENT(loop_fct) .AND. ln_async ) THEN 87 87 CALL lbc_lnk_async( cdname, ptab_ptr, cdna_ptr, psgn_ptr, kfld, kfillmode, pfillval, khls, lsend, lrecv, ld4only, loop_fct ) 88 ELSE IF( PRESENT(loop_fct) .AND. ln_RMA ) THEN 89 CALL lbc_lnk_RMA( cdname, ptab_ptr, cdna_ptr, psgn_ptr, kfld, kfillmode, pfillval, khls, lsend, lrecv, ld4only, loop_fct ) 88 90 ELSE 89 91 SELECT CASE (nn_comm) -
NEMO/branches/2021/dev_r14447_HPC-07_Irrmann_try_new_pt2pt/src/OCE/LBC/lbc_lnk_newpt2pt_generic.h90
r14899 r15072 174 174 ! ----------------------------- ! 175 175 ! 176 !IF( ln_timing ) CALL tic_tac(.TRUE.) 177 DO jn = 1, 8 178 #define NBLOCK_ISEND 179 # include "lbc_lnk_newpt2pt_generic.h90" 180 #undef NBLOCK_ISEND 181 END DO 182 !IF( ln_timing ) CALL tic_tac(.FALSE.) 176 DO jn = 1, 8 177 IF( llsend(jn) ) THEN 178 ishti = ishtSi(jn) 179 ishtj = ishtSj(jn) 180 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1,isizej(jn) ; DO ji = 1,isizei(jn) 181 BUFFSND(idxs) = ptab(jf)%pt4d(ishti+ji,ishtj+jj,jk,jl) 182 idxs = idxs + 1 183 END DO; END DO ; END DO ; END DO ; END DO 184 ENDIF 185 END DO 186 IF( ln_timing ) CALL tic_tac(.TRUE.) 187 IF( llsend(jpso) ) THEN ! jpso = 3, send south first for north fold 188 CALL MPI_ISEND( BUFFSND(ishtS(jpso)+1), iszall(jpso), MPI_TYPE, mpiSnei(ihls,jpso), iStag(jpso), icomm, nreq_p2p(jpso), ierr ) 189 ENDIF 190 DO jn = 1, 2 191 IF( llsend(jn) ) THEN 192 CALL MPI_ISEND( BUFFSND(ishtS(jn)+1), iszall(jn), MPI_TYPE, mpiSnei(ihls,jn), iStag(jn), icomm, nreq_p2p(jn), ierr ) 193 ENDIF 194 END DO 195 DO jn = 4, 8 196 IF( llsend(jn) ) THEN 197 CALL MPI_ISEND( BUFFSND(ishtS(jn)+1), iszall(jn), MPI_TYPE, mpiSnei(ihls,jn), iStag(jn), icomm, nreq_p2p(jn), ierr ) 198 ENDIF 199 END DO 200 IF( ln_timing ) CALL tic_tac(.FALSE.) 183 201 ! 184 202 … … 187 205 ! ------------------------------ ! 188 206 ! 189 !IF( ln_timing ) CALL tic_tac(.TRUE.)207 IF( ln_timing ) CALL tic_tac(.TRUE.) 190 208 DO jn = 1, 8 191 209 IF ( ifill(jn) == jpfillmpi ) THEN ! fill with data received earlier by MPI … … 193 211 END IF 194 212 END DO 195 !IF( ln_timing ) CALL tic_tac(.FALSE.)213 IF( ln_timing ) CALL tic_tac(.FALSE.) 196 214 197 215 ! ----------------------- ! … … 260 278 261 279 262 #if defined NBLOCK_ISEND263 IF( llsend(jn) ) THEN264 ishti = ishtSi(jn)265 ishtj = ishtSj(jn)266 DO jf = 1, ipf ; DO jl = 1, ipl ; DO jk = 1, ipk ; DO jj = 1,isizej(jn) ; DO ji = 1,isizei(jn)267 BUFFSND(idxs) = ptab(jf)%pt4d(ishti+ji,ishtj+jj,jk,jl)268 idxs = idxs + 1269 END DO ; END DO ; END DO ; END DO ; END DO270 IF( ln_timing ) CALL tic_tac(.TRUE.)271 CALL MPI_ISEND( BUFFSND(ishtS(jn)+1), iszall(jn), MPI_TYPE, mpiSnei(ihls,jn), iStag(jn), icomm, nreq_p2p(jn), ierr )272 IF( ln_timing ) CALL tic_tac(.FALSE.)273 ENDIF274 #endif275 280 276 281 #if defined NMPI_FILL -
NEMO/branches/2021/dev_r14447_HPC-07_Irrmann_try_new_pt2pt/src/OCE/LBC/lbc_lnk_pt2pt_async.h90
r14910 r15072 101 101 ENDIF 102 102 END DO 103 DO jn = 5, 8104 IF( llrecv(jn) ) THEN ; ifill(jn) = jpfillmpi ! with an mpi communication105 ELSE ; ifill(jn) = jpfillnothing! do nothing106 ENDIF107 END DO108 103 ! north fold treatment 109 104 ll_IdoNFold = l_IdoNFold .AND. ifill(jpno) /= jpfillnothing … … 270 265 271 266 #if defined BLOCK_IRECV 272 ishti = ishtRi(jn) 273 ishtj = ishtRj(jn) 274 SELECT CASE ( ifill(jn) ) 275 CASE ( jpfillnothing ) ! no filling 276 CASE ( jpfillmpi ) ! fill with data received by MPI 267 IF( ifill(jn) == jpfillmpi ) THEN ! fill with data received by MPI 277 268 #if ! defined key_mpi_off 278 269 IF( ln_timing ) CALL tic_tac(.TRUE.) … … 280 271 IF( ln_timing ) CALL tic_tac(.FALSE.) 281 272 #endif 282 END SELECT 273 END IF 283 274 #endif 284 275 -
NEMO/branches/2021/dev_r14447_HPC-07_Irrmann_try_new_pt2pt/src/OCE/LBC/lbclnk.F90
r15054 r15072 58 58 MODULE PROCEDURE lbc_lnk_async_sp, lbc_lnk_async_dp 59 59 END INTERFACE lbc_lnk_async 60 61 INTERFACE lbc_lnk_RMA 62 MODULE PROCEDURE lbc_lnk_RMA_sp, lbc_lnk_RMA_dp 63 END INTERFACE lbc_lnk_RMA 60 64 ! 61 65 INTERFACE lbc_lnk_icb … … 160 164 # define BUFFRCV buffrcv_async_sp 161 165 # include "lbc_lnk_pt2pt_async.h90" 166 # include "lbc_lnk_pt2pt_RMA.h90" 162 167 # undef BUFFSND 163 168 # undef BUFFRCV … … 181 186 # define BUFFRCV buffrcv_async_dp 182 187 # include "lbc_lnk_pt2pt_async.h90" 188 # include "lbc_lnk_pt2pt_RMA.h90" 183 189 # undef BUFFSND 184 190 # undef BUFFRCV -
NEMO/branches/2021/dev_r14447_HPC-07_Irrmann_try_new_pt2pt/src/OCE/LBC/lib_mpp.F90
r15054 r15072 223 223 LOGICAL , PUBLIC :: ln_tspers ! indicate if persistent call enabled in time-splitting 224 224 LOGICAL , PUBLIC :: ln_async ! indicate if asynchronous communications enabled 225 LOGICAL , PUBLIC :: ln_RMA ! indicate if RMA communications enabled 225 226 226 227 !! * Substitutions -
NEMO/branches/2021/dev_r14447_HPC-07_Irrmann_try_new_pt2pt/src/OCE/LBC/mppini.F90
r14899 r15072 145 145 & cn_ice, nn_ice_dta, & 146 146 & ln_vol, nn_volctl, nn_rimwidth 147 NAMELIST/nammpp/ jpni, jpnj, nn_hls, ln_nnogather, ln_listonly, nn_comm, ln_tspers, ln_async 147 NAMELIST/nammpp/ jpni, jpnj, nn_hls, ln_nnogather, ln_listonly, nn_comm, ln_tspers, ln_async, ln_RMA 148 148 !!---------------------------------------------------------------------- 149 149 ! … … 171 171 WRITE(numout,*) ' communication type nn_comm = ', nn_comm 172 172 WRITE(numout,*) ' switch to persistent calls in time-splitting ln_tspers = ', ln_tspers 173 WRITE(numout,*) ' switch to asynchronous com in time-splitting ln_async = ' , ln_async 174 WRITE(numout,*) ' switch to RMA communications in time-splitting ln_RMA = ' , ln_RMA 173 175 ENDIF 174 176 ! -
NEMO/branches/2021/dev_r14447_HPC-07_Irrmann_try_new_pt2pt/tests/BENCH/MY_SRC/usrdef_nam.F90
r14433 r15072 61 61 !! 62 62 NAMELIST/namusr_def/ nn_isize, nn_jsize, nn_ksize, ln_Iperio, ln_Jperio, ln_NFold, cn_NFtype 63 NAMELIST/nammpp/ jpni, jpnj, nn_hls, ln_nnogather, ln_listonly, nn_comm 63 NAMELIST/nammpp/ jpni, jpnj, nn_hls, ln_nnogather, ln_listonly, nn_comm, ln_tspers, ln_async, ln_RMA 64 64 !!---------------------------------------------------------------------- 65 65 !
Note: See TracChangeset
for help on using the changeset viewer.