Ignore:
Timestamp:
2018-06-08T14:52:48+02:00 (3 years ago)
Author:
smasson
Message:

dev_r9759_HPC09_ESIWACE: add benchmark features

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2018/dev_r9759_HPC09_ESIWACE/src/OCE/LBC/lib_mpp.F90

    r9667 r9772  
    160160 
    161161   ! Type of send : standard, buffered, immediate 
    162    CHARACTER(len=1), PUBLIC ::   cn_mpi_send        !: type od mpi send/recieve (S=standard, B=bsend, I=isend) 
    163    LOGICAL         , PUBLIC ::   l_isend = .FALSE.  !: isend use indicator (T if cn_mpi_send='I') 
    164    INTEGER         , PUBLIC ::   nn_buffer          !: size of the buffer in case of mpi_bsend 
     162   CHARACTER(len=1), PUBLIC ::   cn_mpi_send            !: type od mpi send/recieve (S=standard, B=bsend, I=isend) 
     163   LOGICAL         , PUBLIC ::   l_isend = .FALSE.      !: isend use indicator (T if cn_mpi_send='I') 
     164   INTEGER         , PUBLIC ::   nn_buffer              !: size of the buffer in case of mpi_bsend 
     165   INTEGER         , PUBLIC ::   nn_comm_mod = 1         !: frequency of communication calls (1 = every time step) 
     166   LOGICAL         , PUBLIC ::   ln_comm_only = .FALSE.  !: replace step routine by realistic communications only 
     167   
     168   INTEGER         , PUBLIC ::   ncom_stp = 0                 !: copy of time step # istp 
     169   INTEGER         , PUBLIC ::   icomm_sequence(500,2) = 0    !: size of communicated arrays (halos) 
     170   INTEGER         , PUBLIC ::   n_sequence = 0               !: # of communicated arrays 
     171  
    165172 
    166173   REAL(wp), DIMENSION(:), ALLOCATABLE, SAVE ::   tampon   ! buffer in case of bsend 
     
    168175   LOGICAL, PUBLIC ::   ln_nnogather                !: namelist control of northfold comms 
    169176   LOGICAL, PUBLIC ::   l_north_nogather = .FALSE.  !: internal control of northfold comms 
     177 
     178   LOGICAL ::           l_print_comm_report = .TRUE.  
    170179 
    171180   !!---------------------------------------------------------------------- 
     
    193202      LOGICAL ::   mpi_was_called 
    194203      ! 
    195       NAMELIST/nammpp/ cn_mpi_send, nn_buffer, jpni, jpnj, jpnij, ln_nnogather 
     204      NAMELIST/nammpp/ cn_mpi_send, nn_buffer, jpni, jpnj, jpnij, ln_nnogather, nn_comm_mod, ln_comm_only 
    196205      !!---------------------------------------------------------------------- 
    197206      ! 
     
    16021611      ! 
    16031612   END SUBROUTINE mpp_lnk_2d_icb 
     1613 
     1614   SUBROUTINE tic_tac (l_tic) 
     1615 
     1616    LOGICAL, INTENT(IN) :: l_tic 
     1617    LOGICAL, SAVE :: l_write_wt = .TRUE. 
     1618    REAL(wp),SAVE  ::   tic_wt=0., tac_wt=0., tic_ct=0., tac_ct=0. 
     1619 
     1620    ! start count 
     1621    IF ( l_tic ) THEN 
     1622       IF ( ncom_stp > nit000 ) tic_wt = MPI_Wtime() 
     1623       IF ( tic_ct > 0.0_wp ) tac_ct = tac_ct + MPI_Wtime() - tic_ct 
     1624    ! stop count and sum up 
     1625    ELSE 
     1626       IF ( ncom_stp > nit000 ) tac_wt = tac_wt + MPI_Wtime() - tic_wt 
     1627       IF ( ( ncom_stp == ( nitend - 1 ) ) .AND. l_write_wt ) then 
     1628          WRITE(6,'(A20,F11.6,A15,I8)') 'Computing time : ',tac_ct,' on MPI rank : ', narea 
     1629          WRITE(6,'(A20,F11.6,A15,I8)') 'Waiting time : ',tac_wt,' on MPI rank : ', narea 
     1630          l_write_wt = .FALSE. 
     1631       END IF 
     1632       IF ( ncom_stp > nit000 ) tic_ct = MPI_Wtime() 
     1633    ENDIF 
     1634   END SUBROUTINE tic_tac 
     1635 
    16041636    
    16051637#else 
Note: See TracChangeset for help on using the changeset viewer.