Changeset 2266


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

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

Location:
palm/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SCRIPTS/subjob

    r2257 r2266  
    2828# -----------------
    2929# $Id$
     30# nech related parts removed
     31#
     32# 2257 2017-06-07 14:07:05Z witha
    3033# adjustments for lceddy, removed lcflow-specific code
    3134#
     
    231234     (climate*)              local_address=165.132.26.68;  local_host=lcyon;;
    232235     (clogin*)               local_address=86.50.166.21;   local_host=lccrayf;;
    233      (cs*)                   local_address=136.172.44.131; local_host=nech;;
    234236     (elephanta)             local_address=130.75.105.6;   local_host=lcmuk;;
    235237     (hpcl*)                 local_address=eddy.hpc.uni-oldenburg.de; local_host=lceddy;;
     
    334336    printf "\n        -h    execution host, available hosts:    $remote_host"
    335337    printf "\n              ibm, ibmh, ibmkisti, ibmku, ibms, lc...,"
    336     printf "\n              lckiaps, lctit, nech"
     338    printf "\n              lckiaps, lctit"
    337339    printf "\n        -m    memory demand per process in MByte  ---"
    338340    printf "\n        -n    jobname                             <jobdatei>"
     
    420422        (lcxt5m)  remote_address=193.166.211.144; submcom=/opt/pbs/10.1.0.91350/bin/qsub;;
    421423        (lcyon)   remote_address=165.132.26.68; submcom=/usr/torque/bin/qsub;;
    422         (nech)    qsubmem=memsz_job; qsubtime=cputim_job; remote_address=136.172.44.147; submcom="/usr/local/bin/qsub";;
    423424        (*)       printf "\n  +++ hostname \"$remote_host\" not allowed";
    424425                  locat=parameter; exit;;
     
    536537    fi
    537538 done
    538  if [[ $remote_host = nech ]]
    539  then
    540     if (( tasks_per_node != 0 ))
    541     then
    542        (( cputime = cputime * tasks_per_node ))
    543     elif [[ $numprocs != 0 ]]
    544     then
    545        (( cputime = cputime * numprocs ))
    546     fi
    547  fi
    548539 (( stunden  = cputime / 3600 ))
    549540 (( resttime = cputime - stunden * 3600 ))
     
    569560 done
    570561
    571  if [[ $remote_host = nech ]]
    572  then
    573     if (( tasks_per_node != 0 ))
    574     then
    575        (( Memory = memory * tasks_per_node / 1000 ))
    576     elif [[ $numprocs != 0 ]]
    577     then
    578        (( Memory = memory * numprocs / 1000 ))
    579     else
    580        (( Memory = memory / 1000 ))
    581     fi
    582  elif [[ $remote_host = lctit ]]
     562 if [[ $remote_host = lctit ]]
    583563 then
    584564    (( Memory = memory * tasks_per_node / 1000 ))
     
    12041184%%END%%
    12051185
    1206  elif [[ $remote_host = nech ]]
    1207  then
    1208 
    1209     if (( nodes > 1 ))
    1210     then
    1211        cat > $job_to_send << %%END%%
    1212 #!/bin/ksh
    1213 #PBS -l cpunum_prc=$processes_per_node,cputim_job=$cputime
    1214 #PBS -l ${qsubmem}=${Memory}gb
    1215 #PBS -b $nodes
    1216 #PBS -o $remote_dayfile
    1217 #PBS -N palm
    1218 #PBS -j o
    1219 #PBS -T mpisx
    1220 
    1221 %%END%%
    1222 
    1223     elif [[ $numprocs != 0 ]]
    1224     then
    1225        cat > $job_to_send << %%END%%
    1226 #!/bin/ksh
    1227 #PBS -l cpunum_prc=$processes_per_node,cputim_job=$cputime
    1228 #PBS -l ${qsubmem}=${Memory}gb
    1229 #PBS -o $remote_dayfile
    1230 #PBS -N palm
    1231 #PBS -j o
    1232 
    1233 %%END%%
    1234 
    1235     else
    1236        cat > $job_to_send << %%END%%
    1237 #!/bin/ksh
    1238 #PBS -l ${qsubmem}=${Memory}gb,${qsubtime}=$cputime
    1239 #PBS -o $remote_dayfile
    1240 #PBS -j o
    1241 
    1242 %%END%%
    1243 
    1244     fi
    1245 
    12461186 elif [[ $remote_host = lctit ]]
    12471187 then
     
    13521292          fi
    13531293          echo "echo \"exit\" >> scpjob.$identifier"                     >>  $job_to_send
    1354 
    1355        elif [[ $remote_host = nech ]]
    1356        then
    1357           echo "cd /pf/b/${remote_user}/job_queue" >>  $job_to_send
    1358           echo "cat > scpjob.$identifier << %%END%%"  >>  $job_to_send
    1359           echo "#PBS -l ${qsubmem}=1GB,${qsubtime}=100"  >>  $job_to_send
    1360           echo "#PBS -o last_job_transfer_protocol"      >>  $job_to_send
    1361           echo "#PBS -j o"                         >>  $job_to_send
    1362           echo " "                                 >>  $job_to_send
    1363           echo "set -x"                            >>  $job_to_send
    1364           echo "cd /pf/b/${remote_user}/job_queue" >>  $job_to_send
    1365           echo "batch_scp  $PORTOPT  -d  -w 10  -u $local_user $local_address  $remote_dayfile  \"$job_catalog\"  $local_dayfile"  >>  $job_to_send
    1366           echo "[[ \"\$for_subjob_to_do\" != \"\" ]]  &&  eval \$for_subjob_to_do"  >>  $job_to_send
    1367           echo "%%END%%"                           >>  $job_to_send
    13681294
    13691295       elif [[ $remote_host = lcbullhh ]]
     
    15331459          echo "rm  scpjob.$identifier"            >>  $job_to_send
    15341460       fi
    1535        if [[ $remote_host = nech ]]
    1536        then
    1537           echo "cd -"                           >>  $job_to_send
    1538        fi
    15391461    else
    15401462#       echo "ftpcopy  -d  $local_address  ${job_catalog}/$remote_dayfile  \"$job_catalog\"  $local_dayfile"  >>  $job_to_send
     
    15751497          job_catalog_save=$job_catalog
    15761498          job_catalog=job_queue
    1577        elif [[ $remote_host = nech ]]
    1578        then
    1579           job_catalog_save=$job_catalog
    1580           job_catalog=/hpf/b/${remote_user}/job_queue
    15811499       fi
    1582        if [[ $remote_host = nech ]]
    1583        then
    1584              # FILES CAN ONLY BE TRANSFERED VIA DKRZ'S ARCHIVE-SERVER
    1585           scp  $PORTOPT  $job_to_send  ${remote_user}@136.172.44.205:${job_catalog}/$job_on_remhost
    1586        else
    1587           scp  $ssh_key  $PORTOPT  $job_to_send  ${remote_user}@${remote_address}:${job_catalog}/$job_on_remhost
    1588        fi
     1500       scp  $ssh_key  $PORTOPT  $job_to_send  ${remote_user}@${remote_address}:${job_catalog}/$job_on_remhost
    15891501       if [[ $? = 1 ]]
    15901502       then
     
    16251537          chmod  u+x  $job_on_remhost
    16261538          eval  $submcom  $job_on_remhost
    1627        elif [[ $local_host = nech ]]
    1628        then
    1629           if [[ $queue = default ]]
    1630           then
    1631              eval  $submcom  $job_on_remhost
    1632           else
    1633              eval  $submcom  -q $queue  $job_on_remhost
    1634           fi
    16351539       elif [[ $local_host = lcbullhh ]]
    16361540       then
  • 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.