Changeset 2266 for palm/trunk/SOURCE


Ignore:
Timestamp:
Jun 9, 2017 9:27:21 AM (7 years ago)
Author:
raasch
Message:

bugfix for calculating cpu-time per gridpoint, nech related parts removed from subjob script

File:
1 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/cpulog_mod.f90

    r2119 r2266  
    2525! -----------------
    2626! $Id$
     27! bugfix: cpu-time per grid point is now calculated using ngp_3d in order to
     28! avoid integer overflow,
     29! some re-formatting
     30!
     31! 2119 2017-01-17 16:51:50Z raasch
    2732!
    2833! 2118 2017-01-17 16:38:49Z raasch
     
    126131               
    127132    USE indices,                                                               &
    128         ONLY: nx, ny, nz
     133        ONLY: ngp_3d, nx, ny, nz
    129134       
    130135    USE kinds
     
    256261               first )  THEN
    257262             WRITE( message_string, * ) 'negative time interval occured',      &
    258                          ' &PE',myid,' L=STOP "',TRIM(log_event%place),'" new=', &
    259                          mtime,' last=',log_event%mtime,' isum=',log_event%isum
     263                       ' &PE',myid,' L=STOP "',TRIM(log_event%place),'" new=', &
     264                       mtime,' last=',log_event%mtime,' isum=',log_event%isum
    260265             CALL message( 'cpu_log', 'PA0177', 0, 1, -1, 6, 0 )
    261266             first = .FALSE.
     
    266271          IF ( log_event%sum < 0.0  .AND.  first )  THEN
    267272             WRITE( message_string, * ) 'negative time interval occured',      &
    268                          ' &PE',myid,' L=STOP "',TRIM(log_event%place),'" sum=', &
    269                                          log_event%sum,' mtime=',log_event%mtime
     273                       ' &PE',myid,' L=STOP "',TRIM(log_event%place),'" sum=', &
     274                       log_event%sum,' mtime=',log_event%mtime
    270275             CALL message( 'cpu_log', 'PA0178', 0, 1, -1, 6, 0 )
    271276             first = .FALSE.
     
    276281          log_event%ivect    = 0.0_wp
    277282       ELSE
    278           message_string = 'unknown modus of time measurement: ' // TRIM( modus )
     283          message_string = 'unknown modus of time measurement: ' //            &
     284                           TRIM( modus )
    279285          CALL message( 'cpu_log', 'PA0179', 0, 1, -1, 6, 0 )
    280286       ENDIF
     
    368374          ALLOCATE( pe_max( SIZE( log_point ) ) )
    369375          pe_max = log_point%sum
    370           CALL MPI_SEND( pe_max(1), SIZE( log_point ), MPI_REAL, 0, myid, comm2d, &
    371                          ierr )
     376          CALL MPI_SEND( pe_max(1), SIZE( log_point ), MPI_REAL, 0, myid,     &
     377                         comm2d, ierr )
    372378#endif
    373379
     
    387393
    388394!
    389 !--       Get total time in order to calculate CPU-time per gridpoint and timestep
     395!--       Get total time in order to calculate CPU-time per gridpoint and
     396!--       timestep
    390397          IF ( nr_timesteps_this_run /= 0 )  THEN
    391              average_cputime = log_point(1)%sum / REAL( (nx+1) * (ny+1) * nz, KIND=wp ) / &
    392                                REAL( nr_timesteps_this_run, KIND=wp ) * 1E6_wp  ! in micro-sec
     398             average_cputime = log_point(1)%sum / REAL( ngp_3d(0), KIND=wp ) / &
     399                               REAL( nr_timesteps_this_run, KIND=wp ) * 1E6_wp
     400                               ! in micro-sec
    393401          ELSE
    394402             average_cputime = -1.0_wp
     
    399407          CALL check_open( 18 )
    400408#if defined( __parallel )
    401           WRITE ( 18, 100 )  TRIM( run_description_header ),                          &
    402                              numprocs * threads_per_task, pdims(1), pdims(2),         &
    403                              threads_per_task, nx+1, ny+1, nz, nr_timesteps_this_run, &
    404                              average_cputime
     409          WRITE ( 18, 100 )  TRIM( run_description_header ),                   &
     410                             numprocs * threads_per_task, pdims(1), pdims(2),  &
     411                             threads_per_task, nx+1, ny+1, nz,                 &
     412                             nr_timesteps_this_run, average_cputime
    405413
    406414          WRITE ( 18, 110 )
    407415#else
    408           WRITE ( 18, 100 )  TRIM( run_description_header ),                          &
    409                              numprocs * threads_per_task, 1, 1,                       &
    410                              threads_per_task, nx+1, ny+1, nz, nr_timesteps_this_run, &
    411                              average_cputime
     416          WRITE ( 18, 100 )  TRIM( run_description_header ),                   &
     417                             numprocs * threads_per_task, 1, 1,                &
     418                             threads_per_task, nx+1, ny+1, nz,                 &
     419                             nr_timesteps_this_run, average_cputime
    412420
    413421          WRITE ( 18, 110 )
     
    470478          DO  iii = 1, SIZE( log_point )
    471479             DO  i = 1, numprocs-1
    472                 log_point_s(iii)%sum = log_point_s(iii)%sum + pe_log_points(iii,i)
     480                log_point_s(iii)%sum = log_point_s(iii)%sum +                  &
     481                                       pe_log_points(iii,i)
    473482                pe_min(iii) = MIN( pe_min(iii), pe_log_points(iii,i) )
    474483                pe_max(iii) = MAX( pe_max(iii), pe_log_points(iii,i) )
     
    479488             DO  i = 0, numprocs-1
    480489                pe_rms(iii) = pe_rms(iii) + (                                  &
    481                                     pe_log_points(iii,i) - log_point_s(iii)%sum &
     490                                   pe_log_points(iii,i) - log_point_s(iii)%sum &
    482491                                            )**2
    483492             ENDDO
Note: See TracChangeset for help on using the changeset viewer.